diff --git a/AddToBlock.xib b/AddToBlock.xib new file mode 100644 index 00000000..56ba6ff8 --- /dev/null +++ b/AddToBlock.xib @@ -0,0 +1,465 @@ + + + + 1050 + 9G55 + 677 + 949.43 + 353.00 + + YES + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + TimerWindowController + + + FirstResponder + + + NSApplication + + + 263 + 2 + {{196, 410}, {205, 100}} + 536870912 + Window + NSPanel + + {3.40282e+38, 3.40282e+38} + + + 256 + + YES + + + 268 + {{17, 64}, {42, 17}} + + YES + + 68288064 + 272630784 + Host: + + LucidaGrande + 1.300000e+01 + 1044 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{64, 62}, {121, 22}} + + YES + + -1804468671 + 272630784 + + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + + + + + + 268 + {{123, 19}, {62, 25}} + + YES + + -2080244224 + 134217728 + Add + + + -2038021889 + 163 + + + DQ + 400 + 75 + + + + + 268 + {{20, 19}, {66, 25}} + + YES + + 67239424 + 134217728 + Cancel + + + -2038284033 + 163 + + + + 200 + 25 + + + + {205, 100} + + {{0, 0}, {1680, 1028}} + {3.40282e+38, 3.40282e+38} + + + TimerWindowController + + + + + YES + + + cancelAdd: + + + + 19 + + + + performAdd: + + + + 20 + + + + addSheet_ + + + + 24 + + + + addSheet_ + + + + 25 + + + + addToBlockTextField_ + + + + 26 + + + + addToBlockTextField_ + + + + 27 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + 2 + + + YES + + + + + + + + + 3 + + + YES + + + + + + 4 + + + + + 5 + + + YES + + + + + + 6 + + + + + 7 + + + YES + + + + + + 8 + + + + + 9 + + + YES + + + + + + 10 + + + + + 11 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.NSWindowTemplate.visibleAtLaunch + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 1.windowTemplate.hasMaxSize + 1.windowTemplate.hasMinSize + 1.windowTemplate.maxSize + 1.windowTemplate.minSize + 10.IBPluginDependency + 11.IBPluginDependency + 2.IBPluginDependency + 3.IBPluginDependency + 4.IBPluginDependency + 5.IBPluginDependency + 6.IBPluginDependency + 7.IBPluginDependency + 8.IBPluginDependency + 9.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + {{353, 490}, {205, 100}} + com.apple.InterfaceBuilder.CocoaPlugin + {{353, 490}, {205, 100}} + + {196, 240} + {{202, 428}, {480, 270}} + + + {235, 100} + {235, 100} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 27 + + + + YES + + NSApplication + + IBProjectSource + NSApplication+SystemVersion.h + + + + TimerWindowController + NSWindowController + + YES + + YES + addToBlock: + cancelAdd: + performAdd: + + + YES + id + id + id + + + + YES + + YES + addSheet_ + addToBlockTextField_ + timerLabel_ + + + YES + NSPanel + NSTextField + id + + + + IBProjectSource + TimerWindowController.h + + + + + 0 + SelfControl.xcodeproj + 3 + + diff --git a/AppController.h b/AppController.h index 86666523..d48df801 100755 --- a/AppController.h +++ b/AppController.h @@ -20,10 +20,15 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +// Forward declaration to avoid compiler weirdness +@class TimerWindowController; #import #import "DomainListWindowController.h" #import "TimerWindowController.h" +#import +#import +#import // The main controller for the SelfControl app, which includes several methods // to handle command flow and acts as delegate for the initial window. @@ -50,11 +55,11 @@ // the block duration in words (hours and minutes). - (IBAction)updateTimeSliderDisplay:(id)sender; -// Gets authorization for and then immediately removes the block by calling +/* // Gets authorization for and then immediately removes the block by calling // SelfControl's helper tool with the appropriate arguments. This can be used // for testing, but should not be called at all during normal execution of the // program. -- (void)removeBlock; +- (void)removeBlock; */ // Called when the main Start button is clicked. Gets authorization for and // then immediately adds the block by calling SelfControl's helper tool with the @@ -91,12 +96,22 @@ // was just changed a few seconds ago. - (BOOL)networkConnectionIsAvailable; +// Called whenever the selection of sound to play in the Preferences menu changes. +// Plays the sound so that the user can "sample" them. - (IBAction)soundSelectionChanged:(id)sender; +// Called by timerWindowController_ after its sheet returns, to add a specified +// host to the blacklist (and refresh the block to use the new blacklist) +- (void)addToBlockList:(NSString*)host; + // Property allows initialWindow to be accessed from TimerWindowController // @property (retain, nonatomic, readonly) id initialWindow; // Changed property to manual accessor for pre-Leopard compatibility - (id)initialWindow; +// Getter/setter for domainListWindowController to be accessed from a TimerWindowController +- (id)domainListWindowController; +- (void)setDomainListWindowController:(id)newController; + @end \ No newline at end of file diff --git a/AppController.m b/AppController.m index e9505a48..dfe37b8a 100755 --- a/AppController.m +++ b/AppController.m @@ -21,9 +21,8 @@ // along with this program. If not, see . #import "AppController.h" -#import -#import -#import + +NSString* const kSelfControlLockFilePath = @"/etc/SelfControl.lock"; @implementation AppController @@ -220,7 +219,7 @@ - (void)closeTimerWindow { [timerWindowController_ close]; } -- (void)removeBlock { +/* - (void)removeBlock { // Remember not to use this method, it defeats the point of SelfControl! [defaults_ synchronize]; @@ -261,7 +260,7 @@ - (void)removeBlock { NSLog(@"WARNING: Helper tool returned failure status code %d."); return; } -} +} */ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { [NSApp setDelegate: self]; @@ -287,11 +286,15 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - (BOOL)selfControlLaunchDaemonIsLoaded { [defaults_ synchronize]; - NSDate* blockStartedDate = [defaults_ objectForKey:@"BlockStartedDate"]; - return (![blockStartedDate isEqualToDate: [NSDate distantFuture]]); - // If the user deletes the defaults and therefore destroys our flag (that the - // blockStartedDate will be set to distantFuture if no block is on) our program - // will get very confused. Oh well. + // NSDate* blockStartedDate = [defaults_ objectForKey:@"BlockStartedDate"]; + /*BOOL cur = (![blockStartedDate isEqualToDate: [NSDate distantFuture]]); + BOOL next = [[NSFileManager defaultManager] fileExistsAtPath: kSelfControlLockFilePath]; + if(cur != next) + NSLog(@"cur isn't next!"); + return next; */ + return [[NSFileManager defaultManager] fileExistsAtPath: kSelfControlLockFilePath]; + /* return (![blockStartedDate isEqualToDate: [NSDate distantFuture]]); + return [[NSFileManager defaultManager] fileExistsAtPath: kSelfControlLockFilePath]; */ } - (IBAction)showDomainList:(id)sender { @@ -357,6 +360,127 @@ - (IBAction)soundSelectionChanged:(id)sender { [alertSound play]; } +- (void)addToBlockList:(NSString*)host { + if(host == nil) + return; + + host = [[host stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]] lowercaseString]; + + // Remove "http://" if a user tried to put that in + NSArray* splitString = [host componentsSeparatedByString: @"http://"]; + for(int i = 0; i < [splitString count]; i++) { + if(![[splitString objectAtIndex: i] isEqual: @""]) { + host = [splitString objectAtIndex: i]; + break; + } + } + + // Delete anything after a "/" in case a user tried to copy-paste a web address. + host = [[host componentsSeparatedByString: @"/"] objectAtIndex: 0]; + + if([host isEqualToString: @""]) + return; + + NSMutableArray* list = [[defaults_ arrayForKey: @"HostBlacklist"] mutableCopy]; + [list addObject: host]; + [defaults_ setObject: list forKey: @"HostBlacklist"]; + [defaults_ synchronize]; + + if(([[defaults_ objectForKey:@"BlockStartedDate"] isEqualToDate: [NSDate distantFuture]])) { + // This method shouldn't be getting called, a block is not on (block started + // is in the distantFuture) so the Start button should be disabled. + // Maybe the UI didn't get properly refreshed, so try refreshing it again + // before we return. + [self refreshUserInterface]; + + // Reverse the blacklist change made before we fail + NSMutableArray* list = [[defaults_ arrayForKey: @"HostBlacklist"] mutableCopy]; + [list removeLastObject]; + [defaults_ setObject: list forKey: @"HostBlacklist"]; + + return; + } + + if([defaults_ boolForKey: @"VerifyInternetConnection"] && ![self networkConnectionIsAvailable]) { + NSAlert* networkUnavailableAlert = [[[NSAlert alloc] init] autorelease]; + [networkUnavailableAlert setMessageText: @"No network connection detected"]; + [networkUnavailableAlert setInformativeText:@"A block cannot be started without a working network connection. You can override this setting in Preferences."]; + [networkUnavailableAlert addButtonWithTitle: @"Cancel"]; + [networkUnavailableAlert addButtonWithTitle: @"Network Diagnostics..."]; + if([networkUnavailableAlert runModal] == NSAlertFirstButtonReturn) { + // User clicked cancel + // Reverse the blacklist change made before we fail + NSMutableArray* list = [[defaults_ arrayForKey: @"HostBlacklist"] mutableCopy]; + [list removeLastObject]; + [defaults_ setObject: list forKey: @"HostBlacklist"]; + + return; + } + + // If the user selected Network Diagnostics, launch an assisant to help them. + // apple.com is an arbitrary host chosen to pass to Network Diagnostics. + CFURLRef url = CFURLCreateWithString(NULL, CFSTR("http://apple.com"), NULL); + CFNetDiagnosticRef diagRef = CFNetDiagnosticCreateWithURL(NULL, url); + CFNetDiagnosticDiagnoseProblemInteractively(diagRef); + + // Reverse the blacklist change made before we fail + NSMutableArray* list = [[defaults_ arrayForKey: @"HostBlacklist"] mutableCopy]; + [list removeLastObject]; + [defaults_ setObject: list forKey: @"HostBlacklist"]; + + return; + } + + AuthorizationRef authorizationRef; + char* helperToolPath = [self selfControlHelperToolPathUTF8String]; + int helperToolPathSize = strlen(helperToolPath); + AuthorizationItem right = { + kAuthorizationRightExecute, + helperToolPathSize, + helperToolPath, + 0 + }; + AuthorizationRights authRights = { + 1, + &right + }; + AuthorizationFlags myFlags = kAuthorizationFlagDefaults | + kAuthorizationFlagExtendRights | + kAuthorizationFlagInteractionAllowed; + OSStatus status; + + status = AuthorizationCreate (&authRights, + kAuthorizationEmptyEnvironment, + myFlags, + &authorizationRef); + + if(status) { + NSLog(@"ERROR: Failed to authorize block refresh."); + + // Reverse the blacklist change made before we fail + NSMutableArray* list = [[defaults_ arrayForKey: @"HostBlacklist"] mutableCopy]; + [list removeLastObject]; + [defaults_ setObject: list forKey: @"HostBlacklist"]; + + return; + } + + // We need to pass our UID to the helper tool. It needs to know whose defaults + // it should read in order to properly load the blacklist. + char uidString[10]; + snprintf(uidString, sizeof(uidString), "%d", getuid()); + + char* args[] = { uidString, "--refresh", NULL }; + status = AuthorizationExecuteWithPrivileges(authorizationRef, + helperToolPath, + kAuthorizationFlagDefaults, + args, + NULL); + if(status) { + NSLog(@"WARNING: Authorized execution of helper tool returned failure status code %d", status); + } +} + - (void)dealloc { [domainListWindowController_ release]; [timerWindowController_ release]; @@ -376,4 +500,14 @@ - (id)initialWindow { return initialWindow_; } +- (id)domainListWindowController { + return domainListWindowController_; +} + +- (void)setDomainListWindowController:(id)newController { + [newController retain]; + [domainListWindowController_ release]; + domainListWindowController_ = newController; +} + @end \ No newline at end of file diff --git a/DomainListWindowController.h b/DomainListWindowController.h index d87fca1d..a9789a6a 100755 --- a/DomainListWindowController.h +++ b/DomainListWindowController.h @@ -25,6 +25,9 @@ #import "HostImporter.h" #import "ThunderbirdPreferenceParser.h" +// This is a reference to the kSelfControlLockFilePath const variable in AppController.m +extern NSString* const kSelfControlLockFilePath; + // A subclass of NSWindowController created to manage the domain list (actually // host list, but domain list seems more understandable to inexperienced users // and experienced users will figure out they can put in IP addresses) window, diff --git a/DomainListWindowController.m b/DomainListWindowController.m index aa47db05..fed7f3b1 100755 --- a/DomainListWindowController.m +++ b/DomainListWindowController.m @@ -28,6 +28,8 @@ @implementation DomainListWindowController - (DomainListWindowController*)init { self = [super initWithWindowNibName:@"DomainList"]; + // [domainListTableView_ retain]; + defaults_ = [NSUserDefaults standardUserDefaults]; NSArray* curArray = [defaults_ arrayForKey: @"HostBlacklist"]; @@ -223,4 +225,9 @@ - (IBAction)importOutgoingMailServersFromMail:(id)sender { object: nil]; } +- (void)dealloc { + // [domainListTableView_ release]; + [super dealloc]; +} + @end \ No newline at end of file diff --git a/English.lproj/DomainList.xib b/English.lproj/DomainList.xib index 72d3a96e..d6bf72e9 100755 --- a/English.lproj/DomainList.xib +++ b/English.lproj/DomainList.xib @@ -8,7 +8,7 @@ 353.00 YES - + YES @@ -26,7 +26,7 @@ YES - NSWindowController + DomainListWindowController FirstResponder @@ -471,6 +471,14 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 107 + + + domainListTableView_ + + + + 108 + @@ -799,7 +807,7 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - 107 + 108 @@ -857,6 +865,13 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA DomainListWindowController.h + + NSApplication + + IBProjectSource + NSApplication+SystemVersion.h + + 0 diff --git a/HelperMain.h b/HelperMain.h index 6411668a..9af31e79 100755 --- a/HelperMain.h +++ b/HelperMain.h @@ -20,8 +20,10 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . - -#import +#import +#import "IPFirewall.h" +#import "LaunchctlHelper.h" +#import // The main class for SelfControl's helper tool to be run by launchd with high // privileges in order to handle the root-only configuration. diff --git a/HelperMain.m b/HelperMain.m index 6343ad53..c89d9714 100755 --- a/HelperMain.m +++ b/HelperMain.m @@ -20,13 +20,10 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . - #import "HelperMain.h" -#import "IPFirewall.h" -#import "LaunchctlHelper.h" -#import NSString* const kSelfControlLaunchDaemonPlist = @"\n\n\n\nLabel\norg.eyebeam.SelfControl\nProgramArguments\n\n%@\n%d\n--checkup\n\nStartInterval\n60\nStartOnMount\n\n\n"; +NSString* const kSelfControlLockFilePath = @"/etc/SelfControl.lock"; int main(int argc, char* argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; @@ -46,7 +43,26 @@ int main(int argc, char* argv[]) { NSString* modeString = [NSString stringWithUTF8String: argv[2]]; // We'll need the controlling UID to know what defaults database to search int controllingUID = [[NSString stringWithUTF8String: argv[1]] intValue]; - + + // For proper security, we need to make sure that SelfControl files are owned + // by root and only writable by root. We'll define this here so we can use it + // throughout the main function. + NSDictionary* fileAttributes = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithUnsignedLong: 0], NSFileOwnerAccountID, + [NSNumber numberWithUnsignedLong: 0], NSFileGroupOwnerAccountID, + // 493 (decimal) = 755 (octal) = rwxr-xr-x + [NSNumber numberWithUnsignedLong: 493], NSFilePosixPermissions, + nil]; + + // This is where we get going with the lockfile system, saving a "lock" in /etc/SelfControl.lock + // to make a more reliable block detection system. For most of the program, + // the pattern exhibited here will be used: we attempt to use the lock file's + // contents, and revert to the user's defaults if the lock file has unreasonable + // contents. + NSDictionary* curLockDict = [NSDictionary dictionaryWithContentsOfFile: kSelfControlLockFilePath]; + if(!([[curLockDict objectForKey: @"HostBlacklist"] count] <= 0)) + domainList = [curLockDict objectForKey: @"HostBlacklist"]; + // You'll see this pattern several times in this file. The two resets and // set of euid to the controlling UID are necessary in order to successfully // return the NSUserDefaults object for the controlling user. Also note that @@ -69,28 +85,19 @@ int main(int argc, char* argv[]) { [NSNumber numberWithBool: NO], @"BlockSoundShouldPlay", [NSNumber numberWithInt: 5], @"BlockSound", nil]; - [defaults registerDefaults:appDefaults]; - domainList = [defaults objectForKey:@"HostBlacklist"]; + if(!domainList) { + domainList = [defaults objectForKey:@"HostBlacklist"]; + if([domainList count] <= 0) { + NSLog(@"ERROR: Not enough block information."); + exit(EXIT_FAILURE); + } + } [defaults synchronize]; [NSUserDefaults resetStandardUserDefaults]; seteuid(0); - if([modeString isEqual: @"--install"]) { - [NSUserDefaults resetStandardUserDefaults]; - seteuid(controllingUID); - defaults = [NSUserDefaults standardUserDefaults]; - [defaults addSuiteNamed:@"org.eyebeam.SelfControl"]; - domainList = [defaults objectForKey:@"HostBlacklist"]; - [defaults synchronize]; - [NSUserDefaults resetStandardUserDefaults]; - seteuid(0); - - if(!domainList) { - NSLog(@"ERROR: No blacklist set."); - exit(EXIT_FAILURE); - } - + if([modeString isEqual: @"--install"]) { // Initialize writeErr to nil so calling messages on it later don't cause // crashes (it doesn't make sense we need to do this, but whatever). NSError* writeErr = nil; @@ -114,14 +121,6 @@ int main(int argc, char* argv[]) { } NSFileManager* fileManager = [NSFileManager defaultManager]; - // For proper security, we need to make sure that the helper binary is owned - // by root and only writable by root - NSDictionary* fileAttributes = [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedLong: 0], NSFileOwnerAccountID, - [NSNumber numberWithUnsignedLong: 0], NSFileGroupOwnerAccountID, - // 493 (decimal) = 755 (octal) = rwxr-xr-x - [NSNumber numberWithUnsignedLong: 493], NSFilePosixPermissions, - nil]; if(![fileManager fileExistsAtPath: @"/Library/PrivilegedHelperTools"]) { if(![fileManager createDirectoryAtPath: @"/Library/PrivilegedHelperTools" @@ -161,9 +160,50 @@ int main(int argc, char* argv[]) { defaults = [NSUserDefaults standardUserDefaults]; [defaults addSuiteNamed:@"org.eyebeam.SelfControl"]; [defaults setObject: [NSDate date] forKey: @"BlockStartedDate"]; + // In this case it doesn't make any sense to use an existing lock file (in + // fact, one shouldn't exist), so we fail if the defaults system has unreasonable + // settings. + NSDictionary* lockDictionary = [NSDictionary dictionaryWithObjectsAndKeys: + [defaults objectForKey: @"HostBlacklist"], @"HostBlacklist", + [defaults objectForKey: @"BlockDuration"], @"BlockDuration", + [defaults objectForKey: @"BlockStartedDate"], @"BlockStartedDate", + nil]; + if([[lockDictionary objectForKey: @"HostBlacklist"] count] <= 0 || [[lockDictionary objectForKey: @"BlockDuration"] intValue] < 1 + || [lockDictionary objectForKey: @"BlockStartedDate"] == nil + || [[lockDictionary objectForKey: @"BlockStartedDate"] isEqualToDate: [NSDate distantFuture]]) { + NSLog(@"ERROR: Not enough block information."); + exit(EXIT_FAILURE); + } [defaults synchronize]; [NSUserDefaults resetStandardUserDefaults]; seteuid(0); + + // If perchance another lock is in existence already (which would be weird) + // we try to remove a block and continue as normal. This should definitely not be + // happening though. + if([fileManager fileExistsAtPath: kSelfControlLockFilePath]) { + NSLog(@"WARNING: Lock already created--removing it and destroying any current block."); + + [fileManager removeFileAtPath: kSelfControlLockFilePath handler: nil]; + + [NSUserDefaults resetStandardUserDefaults]; + seteuid(controllingUID); + defaults = [NSUserDefaults standardUserDefaults]; + [defaults addSuiteNamed:@"org.eyebeam.SelfControl"]; + [defaults setObject: [NSDate distantFuture] forKey: @"BlockStartedDate"]; + [defaults synchronize]; + [NSUserDefaults resetStandardUserDefaults]; + seteuid(0); + + removeRulesFromFirewall(controllingUID); + + [LaunchctlHelper unloadLaunchdJobWithPlistAt:@"/Library/LaunchDaemons/org.eyebeam.SelfControl.plist"]; + } + + // And write out our lock... + [lockDictionary writeToFile: kSelfControlLockFilePath atomically: YES]; + // Make sure the privileges are correct on our lock file + [fileManager changeFileAttributes: fileAttributes atPath: kSelfControlLockFilePath]; addRulesToFirewall(controllingUID); @@ -178,7 +218,9 @@ int main(int argc, char* argv[]) { } else NSLog(@"INFO: Block successfully added."); } if([modeString isEqual: @"--remove"]) { + // This was just too easy for the user to remove the block with. NSLog(@"INFO: Nice try."); + exit(EXIT_FAILURE); /* [NSUserDefaults resetStandardUserDefaults]; seteuid(controllingUID); defaults = [NSUserDefaults standardUserDefaults]; @@ -199,36 +241,113 @@ int main(int argc, char* argv[]) { // successfully, because the unload will kill the helper tool. NSLog(@"WARNING: Launch daemon unload failed."); exit(EXIT_FAILURE); */ - } else if([modeString isEqual: @"--add"]) { + /* } else if([modeString isEqual: @"--add"]) { + addRulesToFirewall(controllingUID); + NSLog(@"INFO: Rules successfully added to firewall."); */ + } else if([modeString isEqual: @"--refresh"]) { + NSLog(@"in refresh"); + // Check what the current block is (based on the lock file) because if possible + // we want to keep most of its information. + NSDictionary* curDictionary = [NSDictionary dictionaryWithContentsOfFile: kSelfControlLockFilePath]; + NSDictionary* newLockDictionary; + [NSUserDefaults resetStandardUserDefaults]; seteuid(controllingUID); defaults = [NSUserDefaults standardUserDefaults]; [defaults addSuiteNamed:@"org.eyebeam.SelfControl"]; - domainList = [defaults objectForKey: @"HostBlacklist"]; + if(curDictionary == nil) { + // If there is no block file we just use all information from defaults + + if([[defaults objectForKey: @"BlockStartedDate"] isEqualToDate: [NSDate distantFuture]]) { + // But if the block is already over (which is going to happen if the user + // starts authentication for the host add and then the block expires before + // they authenticate), we shouldn't do anything at all. + + NSLog(@"ERROR: Refreshing domain blacklist, but no block is currently ongoing."); + exit(EXIT_FAILURE); + } + + NSLog(@"WARNING: Refreshing domain blacklist, but no block is currently ongoing. Relaunching block."); + newLockDictionary = [NSDictionary dictionaryWithObjectsAndKeys: + [defaults objectForKey: @"HostBlacklist"], @"HostBlacklist", + [defaults objectForKey: @"BlockDuration"], @"BlockDuration", + [defaults objectForKey: @"BlockStartedDate"], @"BlockStartedDate", + nil]; + // And later on we'll be reloading the launchd daemon if curDictionary + // was nil, just in case. Watch for it. + } else { + NSLog(@"is a block file and [defaults objectForKey: @\"HostBlacklist\"] is %@", [defaults objectForKey: @"HostBlacklist"]); + // If there is an existing block file we can save most of it from the old file + newLockDictionary = [NSDictionary dictionaryWithObjectsAndKeys: + [defaults objectForKey: @"HostBlacklist"], @"HostBlacklist", + [curDictionary objectForKey: @"BlockDuration"], @"BlockDuration", + [curDictionary objectForKey: @"BlockStartedDate"], @"BlockStartedDate", + nil]; + } [defaults synchronize]; [NSUserDefaults resetStandardUserDefaults]; seteuid(0); - if(!domainList) { - NSLog(@"ERROR: No blacklist set."); + if([[newLockDictionary objectForKey: @"HostBlacklist"] count] <= 0 || [[newLockDictionary objectForKey: @"BlockDuration"] intValue] < 1 + || [newLockDictionary objectForKey: @"BlockStartedDate"] == nil + || [[newLockDictionary objectForKey: @"BlockStartedDate"] isEqualToDate: [NSDate distantFuture]]) { + NSLog(@"ERROR: Not enough block information."); exit(EXIT_FAILURE); - } + } + + [newLockDictionary writeToFile: kSelfControlLockFilePath atomically: YES]; + // Make sure the privileges are correct on our lock file + [[NSFileManager defaultManager] changeFileAttributes: fileAttributes atPath: kSelfControlLockFilePath]; + domainList = [newLockDictionary objectForKey: @"HostBlacklist"]; + + // Add and remove the rules to put in any new ones + removeRulesFromFirewall(controllingUID); addRulesToFirewall(controllingUID); - NSLog(@"INFO: Rules successfully added to firewall."); + if(curDictionary == nil) { + // aka if there was no lock file, and it's possible we're reloading the block, + // and we're sure the block is still on (that's checked earlier). + [LaunchctlHelper loadLaunchdJobWithPlistAt: @"/Library/LaunchDaemons/org.eyebeam.SelfControl.plist"]; + } } else if([modeString isEqual: @"--checkup"]) { - [NSUserDefaults resetStandardUserDefaults]; - seteuid(controllingUID); - defaults = [NSUserDefaults standardUserDefaults]; - [defaults addSuiteNamed:@"org.eyebeam.SelfControl"]; - NSDate* blockStartedDate = [defaults objectForKey: @"BlockStartedDate"]; - NSString* blockDurationString = [defaults objectForKey: @"BlockDuration"]; - [defaults synchronize]; - [NSUserDefaults resetStandardUserDefaults]; - seteuid(0); + NSDictionary* curDictionary = [NSDictionary dictionaryWithContentsOfFile: kSelfControlLockFilePath]; + + NSDate* blockStartedDate = [curDictionary objectForKey: @"BlockStartedDate"]; + NSTimeInterval blockDuration = [[curDictionary objectForKey: @"BlockDuration"] intValue]; + + if(blockStartedDate == nil || [blockStartedDate isEqualToDate: [NSDate distantFuture]] + || blockDuration < 1) { + // The lock file seems to be broken. Read from defaults, then write out a + // new lock file while we're at it. + [NSUserDefaults resetStandardUserDefaults]; + seteuid(controllingUID); + defaults = [NSUserDefaults standardUserDefaults]; + [defaults addSuiteNamed:@"org.eyebeam.SelfControl"]; + blockStartedDate = [defaults objectForKey: @"BlockStartedDate"]; + blockDuration = [[defaults objectForKey: @"BlockDuration"] intValue]; + [defaults synchronize]; + [NSUserDefaults resetStandardUserDefaults]; + seteuid(0); + + if(blockStartedDate == nil || [blockStartedDate isEqualToDate: [NSDate distantFuture]] + || blockDuration < 1) { + // Defaults is broken too! Let's get out of here! + NSLog(@"ERROR: Checkup ran -- no block found."); + exit(EXIT_FAILURE); + } + + NSDictionary* newDictionary = [NSDictionary dictionaryWithObjectsAndKeys: + domainList, @"HostBlacklist", + blockStartedDate, @"BlockStartedDate", + blockDuration, @"BlockDuration", + nil]; + [newDictionary writeToFile: kSelfControlLockFilePath atomically: YES]; + // Make sure the privileges are correct on our lock file + [[NSFileManager defaultManager] changeFileAttributes: fileAttributes atPath: kSelfControlLockFilePath]; + } NSTimeInterval timeSinceStarted = [[NSDate date] timeIntervalSinceDate: blockStartedDate]; - NSTimeInterval blockDuration = [blockDurationString intValue] * 60; + blockDuration *= 60; // Note there are a few extra possible conditions on this if statement, this // makes it more likely that an improperly applied block might come right @@ -247,6 +366,8 @@ int main(int argc, char* argv[]) { removeRulesFromFirewall(controllingUID); + [[NSFileManager defaultManager] removeFileAtPath: kSelfControlLockFilePath handler: nil]; + [[NSDistributedNotificationCenter defaultCenter] postNotificationName: @"SCConfigurationChangedNotification" object: nil]; @@ -256,24 +377,28 @@ int main(int argc, char* argv[]) { // should have killed this process. exit(EXIT_FAILURE); } else { + // The block is still on. Check if anybody removed our rules, and if so + // re-add them. Also make sure the user's defaults are set to the correct + // settings just in case. + IPFirewall* firewall = [[IPFirewall alloc] init]; + if(![firewall containsSelfControlBlockSet]) { + addRulesToFirewall(controllingUID); + NSLog(@"INFO: Checkup ran, readded block rules."); + } else NSLog(@"INFO: Checkup ran, no action needed."); + + // Why would we make sure the defaults are correct even if we can get the + // info from the lock file? In case one goes down, we want to make sure + // we always have a backup. [NSUserDefaults resetStandardUserDefaults]; seteuid(controllingUID); defaults = [NSUserDefaults standardUserDefaults]; [defaults addSuiteNamed:@"org.eyebeam.SelfControl"]; - domainList = [defaults objectForKey: @"HostBlacklist"]; + [defaults setObject: blockStartedDate forKey: @"BlockStartedDate"]; + [defaults setObject: [NSNumber numberWithFloat: (blockDuration / 60)] forKey: @"BlockDuration"]; + [defaults setObject: domainList forKey: @"HostBlacklist"]; [defaults synchronize]; [NSUserDefaults resetStandardUserDefaults]; seteuid(0); - - if(!domainList) { - NSLog(@"ERROR: No blacklist set."); - exit(EXIT_FAILURE); - } - IPFirewall* firewall = [[IPFirewall alloc] init]; - if(![firewall containsSelfControlBlockSet]) { - addRulesToFirewall(controllingUID); - NSLog(@"INFO: Checkup ran, readded block rules."); - } else NSLog(@"INFO: Checkup ran, no action needed."); } } diff --git a/HostImporter.h b/HostImporter.h index f5752b82..352a9312 100755 --- a/HostImporter.h +++ b/HostImporter.h @@ -22,6 +22,7 @@ #import +#import "ThunderbirdPreferenceParser.h" // A small class to handle getting the mail hostnames from different mail // programs (just Mail and Thunderbird currently). diff --git a/HostImporter.m b/HostImporter.m index 27363845..1dc9e255 100755 --- a/HostImporter.m +++ b/HostImporter.m @@ -22,7 +22,6 @@ #import "HostImporter.h" -#import "ThunderbirdPreferenceParser.h" @implementation HostImporter diff --git a/IPFirewall.h b/IPFirewall.h index c4ce92a7..92c18821 100755 --- a/IPFirewall.h +++ b/IPFirewall.h @@ -20,7 +20,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -#import +#import #import // A class that represents the ipfw (ipfirewall) command-line firewall tool that diff --git a/IPFirewall.m b/IPFirewall.m index 66246f2b..080ce3bc 100755 --- a/IPFirewall.m +++ b/IPFirewall.m @@ -20,7 +20,6 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . - #import "IPFirewall.h" NSString* const kIPFirewallExecutablePath = @"/sbin/ipfw"; diff --git a/LaunchctlHelper.h b/LaunchctlHelper.h index 6bd749cd..8afdc3dc 100755 --- a/LaunchctlHelper.h +++ b/LaunchctlHelper.h @@ -20,7 +20,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -#import +#import // A simple utility class to deal with launchd jobs by calling the launchctl // command-line tool. Each method corresponds to a launchctl subcommand. diff --git a/NSApplication+SystemVersion.h b/NSApplication+SystemVersion.h new file mode 100644 index 00000000..f84d132a --- /dev/null +++ b/NSApplication+SystemVersion.h @@ -0,0 +1,36 @@ +// +// NSApplication+SystemVersion.h +// SelfControl +// +// Created by Charlie Stigler on 4/3/09. +// Copyright 2009 Eyebeam. + +// This file is part of SelfControl. +// +// SelfControl is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#import + +// A category to add a -getSystemVersionMajor:minor:bugFix method to the NSApplication +// class, because most ways of getting system version are messy. +// This source was taken from CocoaDev at http://www.cocoadev.com/index.pl?DeterminingOSVersion +@interface NSApplication (SystemVersion) + +// Reads the major, minor, and bug-fix versions of the system into three unsigned +// int pointers. +- (void)getSystemVersionMajor:(unsigned *)major + minor:(unsigned *)minor + bugFix:(unsigned *)bugFix; + +@end diff --git a/NSApplication+SystemVersion.m b/NSApplication+SystemVersion.m new file mode 100644 index 00000000..484f9411 --- /dev/null +++ b/NSApplication+SystemVersion.m @@ -0,0 +1,60 @@ +// +// NSApplication+SystemVersion.m +// SelfControl +// +// Created by Charlie Stigler on 4/3/09. +// Copyright 2009 Eyebeam. + +// This file is part of SelfControl. +// +// SelfControl is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#import "NSApplication+SystemVersion.h" + +@implementation NSApplication (SystemVersion) + +- (void)getSystemVersionMajor:(unsigned *)major + minor:(unsigned *)minor + bugFix:(unsigned *)bugFix; +{ + OSErr err; + SInt32 systemVersion, versionMajor, versionMinor, versionBugFix; + if ((err = Gestalt(gestaltSystemVersion, &systemVersion)) != noErr) goto fail; + if (systemVersion < 0x1040) + { + if (major) *major = ((systemVersion & 0xF000) >> 12) * 10 + + ((systemVersion & 0x0F00) >> 8); + if (minor) *minor = (systemVersion & 0x00F0) >> 4; + if (bugFix) *bugFix = (systemVersion & 0x000F); + } + else + { + if ((err = Gestalt(gestaltSystemVersionMajor, &versionMajor)) != noErr) goto fail; + if ((err = Gestalt(gestaltSystemVersionMinor, &versionMinor)) != noErr) goto fail; + if ((err = Gestalt(gestaltSystemVersionBugFix, &versionBugFix)) != noErr) goto fail; + if (major) *major = versionMajor; + if (minor) *minor = versionMinor; + if (bugFix) *bugFix = versionBugFix; + } + + return; + +fail: + NSLog(@"Unable to obtain system version: %ld", (long)err); + if (major) *major = 10; + if (minor) *minor = 0; + if (bugFix) *bugFix = 0; +} + +@end diff --git a/NSCharacterSet+NewlineAddition.h b/NSCharacterSet+NewlineAddition.h index 04c1762b..addfaf67 100644 --- a/NSCharacterSet+NewlineAddition.h +++ b/NSCharacterSet+NewlineAddition.h @@ -1,5 +1,5 @@ // -// ThunderbirdPreferenceParser.h +// NSCharacterSet+NewlineAddition.h // SelfControl // // Created by Charlie Stigler on 4/2/09. diff --git a/NSCharacterSet+NewlineAddition.m b/NSCharacterSet+NewlineAddition.m index b2890dd3..613e42e1 100644 --- a/NSCharacterSet+NewlineAddition.m +++ b/NSCharacterSet+NewlineAddition.m @@ -3,11 +3,24 @@ // SelfControl // // Created by Charlie Stigler on 4/2/09. -// Copyright 2009 Harvard-Westlake Student. All rights reserved. -// +// Copyright 2009 Eyebeam. -#import "NSCharacterSet+NewlineAddition.h" +// This file is part of SelfControl. +// +// SelfControl is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#import "NSCharacterSet+NewlineAddition.h" @implementation NSCharacterSet (NewlineAddition) diff --git a/SelfControl.xcodeproj/charlie.mode1v3 b/SelfControl.xcodeproj/charlie.mode1v3 index 85ef38e5..6fee228e 100755 --- a/SelfControl.xcodeproj/charlie.mode1v3 +++ b/SelfControl.xcodeproj/charlie.mode1v3 @@ -197,11 +197,212 @@ Notifications OpenEditors - + + + Content + + PBXProjectModuleGUID + CBCA81110F8C60A900BD4D0D + PBXProjectModuleLabel + HelperMain.m + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + CBCA81120F8C60A900BD4D0D + PBXProjectModuleLabel + HelperMain.m + _historyCapacity + 0 + bookmark + CB5310130F90687B009929C0 + history + + CBCA82500F8C9DD400BD4D0D + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {1257, 583}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 364 154 1257 624 0 0 1280 778 + + + + Content + + PBXProjectModuleGUID + CBCA81DC0F8C6F1B00BD4D0D + PBXProjectModuleLabel + AppController.m + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + CBCA81DD0F8C6F1B00BD4D0D + PBXProjectModuleLabel + AppController.m + _historyCapacity + 0 + bookmark + CB5310140F90687B009929C0 + history + + CBCA824F0F8C9DD400BD4D0D + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {1101, 578}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 25 159 1101 619 0 0 1280 778 + + + + Content + + PBXProjectModuleGUID + CB1BDBAD0F8A68B6004421F5 + PBXProjectModuleLabel + DomainListWindowController.m + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + CB1BDBAE0F8A68B6004421F5 + PBXProjectModuleLabel + DomainListWindowController.m + _historyCapacity + 0 + bookmark + CB5310150F90687B009929C0 + history + + CBCA82520F8C9DD400BD4D0D + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {1101, 583}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 382 154 1101 624 0 0 1280 778 + + + + Content + + PBXProjectModuleGUID + CB530F4F0F905A97009929C0 + PBXProjectModuleLabel + DomainListWindowController.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + CB530F500F905A97009929C0 + PBXProjectModuleLabel + DomainListWindowController.h + _historyCapacity + 0 + bookmark + CB5310160F90687B009929C0 + history + + CB530F440F905A79009929C0 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {1101, 583}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 740 115 1101 624 0 0 1280 778 + + + + Content + + PBXProjectModuleGUID + CB33E4FE0F88817700750261 + PBXProjectModuleLabel + TimerWindowController.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + CB33E4FF0F88817700750261 + PBXProjectModuleLabel + TimerWindowController.h + _historyCapacity + 0 + bookmark + CB5310170F90687B009929C0 + history + + CBCA82510F8C9DD400BD4D0D + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {955, 588}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 268 -107 955 629 0 0 1280 778 + + + PerspectiveWidths - -1 - -1 + 1178 + 300 Perspectives @@ -228,157 +429,83 @@ Layout - Dock - + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C08E77C0454961000C914BD - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 186 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 29B97314FDCFA39411CA2CEA - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C37FABC05509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 12 - 10 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 274}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {203, 292}} - GroupTreeTableConfiguration - - MainColumn - 186 - - RubberWindowFrame - 49 146 1180 630 0 0 1280 778 - - Module - PBXSmartGroupTreeModule - Proportion - 292pt + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + PBXSmartGroupTreeModuleOutlineStateKey_v7 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C08E77C0454961000C914BD - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 186 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 29B97314FDCFA39411CA2CEA - 1C37FBAC04509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 9 - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 274}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 297}, {203, 292}} - GroupTreeTableConfiguration + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + CB4294DF0F53D865008E10CA + 29B97323FDCFA39411CA2CEA + 1058C7A0FEA54F0111CA2CBB + 1058C7A1FEA54F0111CA2CBB + CB4294F10F53D95D008E10CA + 19C28FACFE9D520D11CA2CBB + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + - MainColumn - 186 + 19 + 1 + 0 - RubberWindowFrame - 49 146 1180 630 0 0 1280 778 - - Module - PBXSmartGroupTreeModule - Proportion - 292pt + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 571}} - + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 589}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + -298 -526 1178 630 0 0 1280 778 + + Module + PBXSmartGroupTreeModule Proportion 203pt @@ -393,7 +520,7 @@ PBXProjectModuleGUID 1CE0B20306471E060097A5F4 PBXProjectModuleLabel - SelfControlAppcast.xml + AppController.m PBXSplitModuleInNavigatorKey Split0 @@ -401,32 +528,52 @@ PBXProjectModuleGUID 1CE0B20406471E060097A5F4 PBXProjectModuleLabel - SelfControlAppcast.xml + AppController.m _historyCapacity 0 bookmark - CBC3C0B50F86B39C0055C0B0 + CB5310120F90687B009929C0 history CB4294F60F53D973008E10CA CB4295050F53D973008E10CA - CB4CF93E0F6A1B540006E2FD CB25E9F50F8286DE0051B37D - CB25EB4E0F828D3F0051B37D - CB25EBAD0F82954E0051B37D CB25EC080F829FED0051B37D - CB9D714A0F83BCD300B19A29 - CB9D714E0F83BCD300B19A29 CB93657E0F85980B00EF284E CB9367020F85BF2500EF284E CB93672B0F85C15500EF284E - CB9367840F85C6F900EF284E - CB93680F0F85D09000EF284E - CB93683F0F85DC0C00EF284E CB97043E0F868DED00B8FC30 - CBC3C0AA0F86B3460055C0B0 - CBC3C0B20F86B39C0055C0B0 - CBC3C0B30F86B39C0055C0B0 + CBC3C0E60F86E2F80055C0B0 + CBC3C0F00F86E2F80055C0B0 + CBC3C1AA0F8724F40055C0B0 + CBC3C1AC0F8724F40055C0B0 + CBC3C1AE0F8724F40055C0B0 + CBC3C1B00F8724F40055C0B0 + CBC3C1B20F8724F40055C0B0 + CBC3C1B40F8724F40055C0B0 + CBC3C1B60F8724F40055C0B0 + CBCA81270F8C690300BD4D0D + CBCA81280F8C690300BD4D0D + CBCA812E0F8C690300BD4D0D + CBCA812F0F8C690300BD4D0D + CBCA81310F8C690300BD4D0D + CBCA81320F8C690300BD4D0D + CBCA81360F8C690300BD4D0D + CBCA81370F8C690300BD4D0D + CBCA81380F8C690300BD4D0D + CBCA81C50F8C6EA100BD4D0D + CBCA81FC0F8C734C00BD4D0D + CBCA82050F8C741C00BD4D0D + CBCA82060F8C741C00BD4D0D + CB530F2A0F905942009929C0 + CB530F2B0F905942009929C0 + CB530F2C0F905942009929C0 + CB530F770F905CE3009929C0 + CB530FBC0F90609A009929C0 + CB530FBD0F90609A009929C0 + CB530FBE0F90609A009929C0 + CB5310080F906833009929C0 + CB5310090F906833009929C0 prevStack @@ -463,9 +610,41 @@ CB9367580F85C35100EF284E CB93675B0F85C35100EF284E CB9368440F85DC0C00EF284E - CBC3C0AC0F86B3460055C0B0 - CBC3C0AD0F86B3460055C0B0 - CBC3C0B40F86B39C0055C0B0 + CBC3C10D0F86E2F80055C0B0 + CBC3C10E0F86E2F80055C0B0 + CBC3C1BF0F8724F40055C0B0 + CBC3C1C10F8724F40055C0B0 + CBC3C1C50F8724F40055C0B0 + CBC3C1C70F8724F40055C0B0 + CBC3C1CD0F8724F40055C0B0 + CBC3C1D30F8724F40055C0B0 + CBC3C1D50F8724F40055C0B0 + CB530F2F0F905942009929C0 + CB530F300F905942009929C0 + CB530F310F905942009929C0 + CB530F320F905942009929C0 + CB530F330F905942009929C0 + CB530F340F905942009929C0 + CB530F4A0F905A97009929C0 + CB530F4B0F905A97009929C0 + CB530F4C0F905A97009929C0 + CB530F4D0F905A97009929C0 + CB530F6A0F905B75009929C0 + CB530F6B0F905B75009929C0 + CB530F6C0F905B75009929C0 + CB530F7C0F905CE3009929C0 + CB530F7D0F905CE3009929C0 + CB530F7E0F905CE3009929C0 + CB530F7F0F905CE3009929C0 + CB530F800F905CE3009929C0 + CB530F890F905D0F009929C0 + CB530FC00F90609A009929C0 + CB530FC10F90609A009929C0 + CB530FC20F90609A009929C0 + CB530FC30F90609A009929C0 + CB530FC40F90609A009929C0 + CB530FC50F90609A009929C0 + CB53100A0F906833009929C0 SplitCount @@ -477,9 +656,9 @@ GeometryConfiguration Frame - {{0, 0}, {972, 415}} + {{0, 0}, {970, 415}} RubberWindowFrame - 49 146 1180 630 0 0 1280 778 + -298 -526 1178 630 0 0 1280 778 Module PBXNavigatorGroup @@ -497,9 +676,9 @@ GeometryConfiguration Frame - {{0, 420}, {972, 169}} + {{0, 420}, {970, 169}} RubberWindowFrame - 49 146 1180 630 0 0 1280 778 + -298 -526 1178 630 0 0 1280 778 Module XCDetailModule @@ -508,7 +687,7 @@ Proportion - 972pt + 970pt Name @@ -516,8 +695,6 @@ ServiceClasses XCModuleDock - XCModuleDock - PBXSmartGroupTreeModule PBXSmartGroupTreeModule XCModuleDock PBXNavigatorGroup @@ -525,11 +702,9 @@ TableOfContents - CBC3C0930F86B31D0055C0B0 - CBC3C0940F86B31D0055C0B0 + CB530F180F9056A4009929C0 1CE0B1FE06471DED0097A5F4 - 1CE0B1FE06471DED0097A5F4 - CBC3C0950F86B31D0055C0B0 + CB530F190F9056A4009929C0 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -537,6 +712,15 @@ xcode.toolbar.config.defaultV3 + ChosenToolbarItems + + buildOrClean + build-and-goOrGo + debugger-enable-breakpoints + com.apple.ide.PBXToolbarStopButton + NSToolbarFlexibleSpaceItem + get-info + ControllerClassBaseName IconName @@ -544,12 +728,10 @@ Identifier perspective.morph IsVertical - 0 + Layout - BecomeActive - 1 ContentConfiguration PBXBottomSmartGroupGIDs @@ -574,7 +756,7 @@ PBXSmartGroupTreeModuleColumnWidthsKey - 186 + 283 PBXSmartGroupTreeModuleColumnsKey_v4 @@ -586,40 +768,47 @@ PBXSmartGroupTreeModuleOutlineStateExpansionKey 29B97314FDCFA39411CA2CEA + CB4294DF0F53D865008E10CA + 29B97323FDCFA39411CA2CEA + 1058C7A0FEA54F0111CA2CBB + 1058C7A1FEA54F0111CA2CBB + CB4294F10F53D95D008E10CA + 19C28FACFE9D520D11CA2CBB + 1C37FBAC04509CD000000102 1C37FABC05509CD000000102 PBXSmartGroupTreeModuleOutlineStateSelectionKey + 34 + 33 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 337}} + {{0, 281}, {283, 572}} PBXTopSmartGroupGIDs XCIncludePerspectivesSwitch - 1 + XCSharingToken com.apple.Xcode.GFSharingToken GeometryConfiguration Frame - {{0, 0}, {203, 355}} + {{0, 0}, {300, 590}} GroupTreeTableConfiguration MainColumn - 186 + 283 - RubberWindowFrame - 373 269 690 397 0 0 1440 878 Module PBXSmartGroupTreeModule Proportion - 100% + 300pt Name @@ -633,6 +822,7 @@ TableOfContents + CB33E4D60F886F6300750261 11E0B1FE06471DED0097A5F4 ToolbarConfiguration @@ -663,13 +853,21 @@ 5 WindowOrderList - 1CD10A99069EF8BA00B06720 + CB530F3C0F905942009929C0 + CB530F3D0F905942009929C0 1C78EAAD065D492600B07095 CB2358380F4521130030F59C + CB33E4FE0F88817700750261 + 1CD10A99069EF8BA00B06720 + CB530F4F0F905A97009929C0 /Users/charlie/selfcontrol/SelfControl.xcodeproj + CB1BDBAD0F8A68B6004421F5 + CBCA81DC0F8C6F1B00BD4D0D + 1C530D57069F1CE1000CFCEE + CBCA81110F8C60A900BD4D0D WindowString - 49 146 1180 630 0 0 1280 778 + -298 -526 1178 630 0 0 1280 778 WindowToolsV3 @@ -690,29 +888,27 @@ PBXProjectModuleGUID 1CD0528F0623707200166675 PBXProjectModuleLabel - + AppController.m StatusBarVisibility GeometryConfiguration Frame - {{0, 0}, {1419, 357}} + {{0, 0}, {1419, 274}} RubberWindowFrame - 475 145 1419 633 0 0 1280 778 + 134 140 1419 633 0 0 1280 778 Module PBXNavigatorGroup Proportion - 357pt + 274pt BecomeActive ContentConfiguration - PBXBuildLogShowsTranscriptDefaultKey - {{0, 5}, {1419, 225}} PBXProjectModuleGUID XCMainBuildResultsModuleGUID PBXProjectModuleLabel @@ -725,14 +921,14 @@ GeometryConfiguration Frame - {{0, 362}, {1419, 230}} + {{0, 279}, {1419, 313}} RubberWindowFrame - 475 145 1419 633 0 0 1280 778 + 134 140 1419 633 0 0 1280 778 Module PBXBuildResultsModule Proportion - 230pt + 313pt Proportion @@ -750,18 +946,18 @@ TableOfContents CB2358380F4521130030F59C - CBC3C0AF0F86B3460055C0B0 + CB530F1E0F9056A4009929C0 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID ToolbarConfiguration xcode.toolbar.config.buildV3 WindowString - 475 145 1419 633 0 0 1280 778 + 134 140 1419 633 0 0 1280 778 WindowToolGUID CB2358380F4521130030F59C WindowToolIsVisible - + FirstTimeWindowDisplayed @@ -844,10 +1040,10 @@ Frame {{543, 0}, {648, 269}} RubberWindowFrame - 106 232 1191 546 0 0 1280 778 + 870 -20 1191 546 0 0 1280 778 RubberWindowFrame - 106 232 1191 546 0 0 1280 778 + 870 -20 1191 546 0 0 1280 778 Module PBXDebugSessionModule @@ -870,22 +1066,22 @@ TableOfContents 1CD10A99069EF8BA00B06720 - CBC3C0B60F86B39C0055C0B0 + CB530F1F0F9056A4009929C0 1C162984064C10D400B95A72 - CBC3C0B70F86B39C0055C0B0 - CBC3C0B80F86B39C0055C0B0 - CBC3C0B90F86B39C0055C0B0 - CBC3C0BA0F86B39C0055C0B0 - CBC3C0BB0F86B39C0055C0B0 + CB530F200F9056A4009929C0 + CB530F210F9056A4009929C0 + CB530F220F9056A4009929C0 + CB530F230F9056A4009929C0 + CB530F240F9056A4009929C0 ToolbarConfiguration xcode.toolbar.config.debugV3 WindowString - 106 232 1191 546 0 0 1280 778 + 870 -20 1191 546 0 0 1280 778 WindowToolGUID 1CD10A99069EF8BA00B06720 WindowToolIsVisible - + FirstTimeWindowDisplayed @@ -903,21 +1099,23 @@ Dock + BecomeActive + ContentConfiguration PBXProjectModuleGUID 1CDD528C0622207200134675 PBXProjectModuleLabel - + AppController.m StatusBarVisibility GeometryConfiguration Frame - {{0, 0}, {1048, 432}} + {{0, 0}, {1048, 276}} RubberWindowFrame - 142 82 1048 689 0 0 1280 778 + 447 75 1048 689 0 0 1280 778 Module PBXNavigatorGroup @@ -926,11 +1124,9 @@ Proportion - 432pt + 276pt - BecomeActive - ContentConfiguration PBXProjectModuleGUID @@ -941,14 +1137,14 @@ GeometryConfiguration Frame - {{0, 437}, {1048, 211}} + {{0, 281}, {1048, 367}} RubberWindowFrame - 142 82 1048 689 0 0 1280 778 + 447 75 1048 689 0 0 1280 778 Module PBXProjectFindModule Proportion - 211pt + 367pt Proportion @@ -966,17 +1162,17 @@ TableOfContents 1C530D57069F1CE1000CFCEE - CB9367390F85C18600EF284E - CB93673A0F85C18600EF284E + CB530F640F905B67009929C0 + CB530F650F905B67009929C0 1CDD528C0622207200134675 1CD0528E0623707200166675 WindowString - 142 82 1048 689 0 0 1280 778 + 447 75 1048 689 0 0 1280 778 WindowToolGUID 1C530D57069F1CE1000CFCEE WindowToolIsVisible - + Identifier @@ -995,8 +1191,6 @@ Dock - BecomeActive - ContentConfiguration PBXProjectModuleGUID @@ -1032,7 +1226,7 @@ TableOfContents 1C78EAAD065D492600B07095 - CBC3C0BC0F86B39C0055C0B0 + CB530F3A0F905942009929C0 1C78EAAC065D492600B07095 ToolbarConfiguration @@ -1042,7 +1236,7 @@ WindowToolGUID 1C78EAAD065D492600B07095 WindowToolIsVisible - + FirstTimeWindowDisplayed @@ -1536,7 +1730,7 @@ Frame {{0, 0}, {761, 534}} RubberWindowFrame - 526 -263 761 575 0 0 1280 778 + 474 -75 761 575 0 0 1280 778 XCRefactoringSplitViewLowerHeight 222 XCRefactoringSplitViewTotalHeight @@ -1563,11 +1757,11 @@ TableOfContents CBBBBED90F51FA6F00FB5DDA - CB25EBA00F82942D0051B37D + CBCA818A0F8C690300BD4D0D CBBBBED80F51FA6F00FB5DDA WindowString - 526 -263 761 575 0 0 1280 778 + 474 -75 761 575 0 0 1280 778 WindowToolGUID CBBBBED90F51FA6F00FB5DDA WindowToolIsVisible diff --git a/SelfControl.xcodeproj/charlie.pbxuser b/SelfControl.xcodeproj/charlie.pbxuser index 03db5376..6f8c346e 100755 --- a/SelfControl.xcodeproj/charlie.pbxuser +++ b/SelfControl.xcodeproj/charlie.pbxuser @@ -10,9 +10,9 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { activeBuildConfigurationName = Release; activeExecutable = CBE738A90F31586D00117AAE /* SelfControl */; - activeTarget = CB9368250F85D84E00EF284E /* Distribution */; + activeTarget = 8D1107260486CEB800E47090 /* SelfControl */; addToTargets = ( - CB9368250F85D84E00EF284E /* Distribution */, + 8D1107260486CEB800E47090 /* SelfControl */, ); breakpoints = ( CB1AED870F3C30D000632468 /* TableViewManager.m:43 */, @@ -23,19 +23,23 @@ CB1AEDB00F3C367100632468 /* TableViewManager.m:19 */, CB1AEDCA0F3C37D100632468 /* TableViewManager.m:33 */, CBB636F60F3DEF6C00EBD135 /* AppController.m:3 */, - CBB0B3CA0F3E79B1004862D5 /* DomainListWindowController.h:28 */, - CBE51E2E0F434DB00082328D /* IPFirewall.m:125 */, - CB2358E40F452BBB0030F59C /* AppController.m:33 */, - CB2359DB0F4542220030F59C /* AppController.m:33 */, - CBFBC98A0F45EFFD00079A5D /* HelperMain.m:157 */, - CBC2FB840F47BB8300CF2A42 /* HelperMain.m:157 */, - CBC2FD030F47D8F900CF2A42 /* HelperMain.m:157 */, - CBC2FD1B0F47D94A00CF2A42 /* HelperMain.m:157 */, - CB7E75660F60368600A9B93C /* TimerWindowController.m:32 */, - CBB57CB50F842DCD00CDD9EE /* DomainListWindowController.m:155 */, - CBB57CBF0F842E2500CDD9EE /* DomainListWindowController.m:148 */, - CBB57CC10F842E2700CDD9EE /* DomainListWindowController.m:147 */, - CBB57CC30F842E2B00CDD9EE /* DomainListWindowController.m:143 */, + CBB0B3CA0F3E79B1004862D5 /* DomainListWindowController.h:31 */, + CBE51E2E0F434DB00082328D /* IPFirewall.m:124 */, + CB2358E40F452BBB0030F59C /* AppController.m:32 */, + CB2359DB0F4542220030F59C /* AppController.m:32 */, + CBFBC98A0F45EFFD00079A5D /* HelperMain.m:26 */, + CBC2FB840F47BB8300CF2A42 /* HelperMain.m:26 */, + CBC2FD030F47D8F900CF2A42 /* HelperMain.m:26 */, + CBC2FD1B0F47D94A00CF2A42 /* HelperMain.m:26 */, + CB7E75660F60368600A9B93C /* TimerWindowController.m:35 */, + CBB57CB50F842DCD00CDD9EE /* DomainListWindowController.m:157 */, + CBB57CBF0F842E2500CDD9EE /* DomainListWindowController.m:150 */, + CBB57CC10F842E2700CDD9EE /* DomainListWindowController.m:149 */, + CBB57CC30F842E2B00CDD9EE /* DomainListWindowController.m:145 */, + CB1BDBBE0F8A697C004421F5 /* TimerWindowController.m:182 */, + CBCA81B30F8C6C5300BD4D0D /* DomainListWindowController.m:227 */, + CB530F130F905685009929C0 /* AppController.m:288 */, + CB530F150F905694009929C0 /* AppController.m:294 */, ); codeSenseManager = CBE738C00F31587500117AAE /* Code sense */; executables = ( @@ -86,11 +90,11 @@ ); }; PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = 1; + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, - 733, + 731, 20, 48, 43, @@ -181,14 +185,13 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 260485912; - PBXWorkspaceStateSaveDate = 260485912; + PBXPerProjectTemplateStateSaveDate = 261117502; + PBXWorkspaceStateSaveDate = 261117502; }; perUserProjectItems = { CB0369E20F4DBD17001877EE = CB0369E20F4DBD17001877EE /* PBXTextBookmark */; CB036A520F4DBFDD001877EE = CB036A520F4DBFDD001877EE /* PBXTextBookmark */; CB1D434B0F4C631D00CD6D6B = CB1D434B0F4C631D00CD6D6B /* PBXTextBookmark */; - CB1ED4030F56657000EFECEE = CB1ED4030F56657000EFECEE /* PBXTextBookmark */; CB2358240F4521130030F59C = CB2358240F4521130030F59C /* PBXTextBookmark */; CB2358250F4521130030F59C = CB2358250F4521130030F59C /* PBXTextBookmark */; CB2358260F4521130030F59C = CB2358260F4521130030F59C /* PBXTextBookmark */; @@ -198,152 +201,392 @@ CB2358B70F4522C60030F59C = CB2358B70F4522C60030F59C /* PBXTextBookmark */; CB2358D60F452B620030F59C = CB2358D60F452B620030F59C /* PBXBookmark */; CB25E9F50F8286DE0051B37D = CB25E9F50F8286DE0051B37D /* PBXTextBookmark */; - CB25EB4E0F828D3F0051B37D = CB25EB4E0F828D3F0051B37D /* PBXTextBookmark */; CB25EB550F828D3F0051B37D = CB25EB550F828D3F0051B37D /* PBXTextBookmark */; - CB25EBAD0F82954E0051B37D = CB25EBAD0F82954E0051B37D /* PBXTextBookmark */; CB25EC080F829FED0051B37D = CB25EC080F829FED0051B37D /* PBXTextBookmark */; - CB25EC090F829FED0051B37D = CB25EC090F829FED0051B37D /* PBXTextBookmark */; + CB36E1D10F8B53290085C0A0 = CB36E1D10F8B53290085C0A0 /* PBXTextBookmark */; + CB36E1D20F8B53290085C0A0 = CB36E1D20F8B53290085C0A0 /* PBXTextBookmark */; CB4159B60F4ECFF400C63C06 = CB4159B60F4ECFF400C63C06 /* PBXTextBookmark */; CB4293C10F53B6AA008E10CA = CB4293C10F53B6AA008E10CA /* PBXTextBookmark */; CB4293C20F53B6AA008E10CA = CB4293C20F53B6AA008E10CA /* PBXTextBookmark */; CB4294F60F53D973008E10CA = CB4294F60F53D973008E10CA /* PBXTextBookmark */; CB4295050F53D973008E10CA = CB4295050F53D973008E10CA /* PBXTextBookmark */; - CB4964EB0F83256400B3751E = CB4964EB0F83256400B3751E /* PBXTextBookmark */; - CB4CF93E0F6A1B540006E2FD = CB4CF93E0F6A1B540006E2FD /* PBXTextBookmark */; + CB530F170F9056A4009929C0 /* PBXTextBookmark */ = CB530F170F9056A4009929C0 /* PBXTextBookmark */; + CB530F1A0F9056A4009929C0 /* PBXTextBookmark */ = CB530F1A0F9056A4009929C0 /* PBXTextBookmark */; + CB530F1B0F9056A4009929C0 /* PBXTextBookmark */ = CB530F1B0F9056A4009929C0 /* PBXTextBookmark */; + CB530F1C0F9056A4009929C0 /* PBXTextBookmark */ = CB530F1C0F9056A4009929C0 /* PBXTextBookmark */; + CB530F1D0F9056A4009929C0 /* PBXTextBookmark */ = CB530F1D0F9056A4009929C0 /* PBXTextBookmark */; + CB530F2A0F905942009929C0 /* PBXTextBookmark */ = CB530F2A0F905942009929C0 /* PBXTextBookmark */; + CB530F2B0F905942009929C0 /* PBXTextBookmark */ = CB530F2B0F905942009929C0 /* PBXTextBookmark */; + CB530F2C0F905942009929C0 /* PBXTextBookmark */ = CB530F2C0F905942009929C0 /* PBXTextBookmark */; + CB530F2D0F905942009929C0 /* PBXTextBookmark */ = CB530F2D0F905942009929C0 /* PBXTextBookmark */; + CB530F2E0F905942009929C0 /* PBXTextBookmark */ = CB530F2E0F905942009929C0 /* PBXTextBookmark */; + CB530F2F0F905942009929C0 /* PBXTextBookmark */ = CB530F2F0F905942009929C0 /* PBXTextBookmark */; + CB530F300F905942009929C0 /* PBXTextBookmark */ = CB530F300F905942009929C0 /* PBXTextBookmark */; + CB530F310F905942009929C0 /* PBXTextBookmark */ = CB530F310F905942009929C0 /* PBXTextBookmark */; + CB530F320F905942009929C0 /* PBXTextBookmark */ = CB530F320F905942009929C0 /* PBXTextBookmark */; + CB530F330F905942009929C0 /* PBXTextBookmark */ = CB530F330F905942009929C0 /* PBXTextBookmark */; + CB530F340F905942009929C0 /* PBXTextBookmark */ = CB530F340F905942009929C0 /* PBXTextBookmark */; + CB530F350F905942009929C0 /* PBXTextBookmark */ = CB530F350F905942009929C0 /* PBXTextBookmark */; + CB530F360F905942009929C0 /* PBXTextBookmark */ = CB530F360F905942009929C0 /* PBXTextBookmark */; + CB530F370F905942009929C0 /* PBXTextBookmark */ = CB530F370F905942009929C0 /* PBXTextBookmark */; + CB530F380F905942009929C0 /* PBXTextBookmark */ = CB530F380F905942009929C0 /* PBXTextBookmark */; + CB530F390F905942009929C0 /* PBXTextBookmark */ = CB530F390F905942009929C0 /* PBXTextBookmark */; + CB530F440F905A79009929C0 /* PBXBookmark */ = CB530F440F905A79009929C0 /* PBXBookmark */; + CB530F460F905A97009929C0 /* PBXTextBookmark */ = CB530F460F905A97009929C0 /* PBXTextBookmark */; + CB530F470F905A97009929C0 /* PBXTextBookmark */ = CB530F470F905A97009929C0 /* PBXTextBookmark */; + CB530F480F905A97009929C0 /* PBXTextBookmark */ = CB530F480F905A97009929C0 /* PBXTextBookmark */; + CB530F490F905A97009929C0 /* PBXTextBookmark */ = CB530F490F905A97009929C0 /* PBXTextBookmark */; + CB530F4A0F905A97009929C0 /* PBXTextBookmark */ = CB530F4A0F905A97009929C0 /* PBXTextBookmark */; + CB530F4B0F905A97009929C0 /* PBXTextBookmark */ = CB530F4B0F905A97009929C0 /* PBXTextBookmark */; + CB530F4C0F905A97009929C0 /* PBXTextBookmark */ = CB530F4C0F905A97009929C0 /* PBXTextBookmark */; + CB530F4D0F905A97009929C0 /* PBXTextBookmark */ = CB530F4D0F905A97009929C0 /* PBXTextBookmark */; + CB530F4E0F905A97009929C0 /* PBXTextBookmark */ = CB530F4E0F905A97009929C0 /* PBXTextBookmark */; + CB530F510F905A97009929C0 /* PBXTextBookmark */ = CB530F510F905A97009929C0 /* PBXTextBookmark */; + CB530F520F905A97009929C0 /* PBXTextBookmark */ = CB530F520F905A97009929C0 /* PBXTextBookmark */; + CB530F530F905A97009929C0 /* PBXTextBookmark */ = CB530F530F905A97009929C0 /* PBXTextBookmark */; + CB530F540F905A97009929C0 /* PBXTextBookmark */ = CB530F540F905A97009929C0 /* PBXTextBookmark */; + CB530F550F905A97009929C0 /* PBXTextBookmark */ = CB530F550F905A97009929C0 /* PBXTextBookmark */; + CB530F5B0F905B67009929C0 /* PBXTextBookmark */ = CB530F5B0F905B67009929C0 /* PBXTextBookmark */; + CB530F5C0F905B67009929C0 /* PBXTextBookmark */ = CB530F5C0F905B67009929C0 /* PBXTextBookmark */; + CB530F5D0F905B67009929C0 /* PBXTextBookmark */ = CB530F5D0F905B67009929C0 /* PBXTextBookmark */; + CB530F5E0F905B67009929C0 /* PBXTextBookmark */ = CB530F5E0F905B67009929C0 /* PBXTextBookmark */; + CB530F5F0F905B67009929C0 /* PBXTextBookmark */ = CB530F5F0F905B67009929C0 /* PBXTextBookmark */; + CB530F600F905B67009929C0 /* PBXTextBookmark */ = CB530F600F905B67009929C0 /* PBXTextBookmark */; + CB530F620F905B67009929C0 /* PBXTextBookmark */ = CB530F620F905B67009929C0 /* PBXTextBookmark */; + CB530F630F905B67009929C0 /* PBXTextBookmark */ = CB530F630F905B67009929C0 /* PBXTextBookmark */; + CB530F670F905B75009929C0 /* PBXTextBookmark */ = CB530F670F905B75009929C0 /* PBXTextBookmark */; + CB530F680F905B75009929C0 /* PBXTextBookmark */ = CB530F680F905B75009929C0 /* PBXTextBookmark */; + CB530F690F905B75009929C0 /* PBXTextBookmark */ = CB530F690F905B75009929C0 /* PBXTextBookmark */; + CB530F6A0F905B75009929C0 /* PBXTextBookmark */ = CB530F6A0F905B75009929C0 /* PBXTextBookmark */; + CB530F6B0F905B75009929C0 /* PBXTextBookmark */ = CB530F6B0F905B75009929C0 /* PBXTextBookmark */; + CB530F6C0F905B75009929C0 /* PBXTextBookmark */ = CB530F6C0F905B75009929C0 /* PBXTextBookmark */; + CB530F6D0F905B75009929C0 /* PBXTextBookmark */ = CB530F6D0F905B75009929C0 /* PBXTextBookmark */; + CB530F6E0F905B75009929C0 /* PBXTextBookmark */ = CB530F6E0F905B75009929C0 /* PBXTextBookmark */; + CB530F6F0F905B75009929C0 /* PBXTextBookmark */ = CB530F6F0F905B75009929C0 /* PBXTextBookmark */; + CB530F700F905B75009929C0 /* PBXTextBookmark */ = CB530F700F905B75009929C0 /* PBXTextBookmark */; + CB530F710F905B75009929C0 /* PBXTextBookmark */ = CB530F710F905B75009929C0 /* PBXTextBookmark */; + CB530F720F905B75009929C0 /* PBXTextBookmark */ = CB530F720F905B75009929C0 /* PBXTextBookmark */; + CB530F770F905CE3009929C0 /* PBXTextBookmark */ = CB530F770F905CE3009929C0 /* PBXTextBookmark */; + CB530F780F905CE3009929C0 /* PBXTextBookmark */ = CB530F780F905CE3009929C0 /* PBXTextBookmark */; + CB530F790F905CE3009929C0 /* PBXTextBookmark */ = CB530F790F905CE3009929C0 /* PBXTextBookmark */; + CB530F7A0F905CE3009929C0 /* PBXTextBookmark */ = CB530F7A0F905CE3009929C0 /* PBXTextBookmark */; + CB530F7B0F905CE3009929C0 /* PBXTextBookmark */ = CB530F7B0F905CE3009929C0 /* PBXTextBookmark */; + CB530F7C0F905CE3009929C0 /* PBXTextBookmark */ = CB530F7C0F905CE3009929C0 /* PBXTextBookmark */; + CB530F7D0F905CE3009929C0 /* PBXTextBookmark */ = CB530F7D0F905CE3009929C0 /* PBXTextBookmark */; + CB530F7E0F905CE3009929C0 /* PBXTextBookmark */ = CB530F7E0F905CE3009929C0 /* PBXTextBookmark */; + CB530F7F0F905CE3009929C0 /* PBXTextBookmark */ = CB530F7F0F905CE3009929C0 /* PBXTextBookmark */; + CB530F800F905CE3009929C0 /* PBXTextBookmark */ = CB530F800F905CE3009929C0 /* PBXTextBookmark */; + CB530F810F905CE3009929C0 /* PBXTextBookmark */ = CB530F810F905CE3009929C0 /* PBXTextBookmark */; + CB530F820F905CE3009929C0 /* PBXTextBookmark */ = CB530F820F905CE3009929C0 /* PBXTextBookmark */; + CB530F830F905CE3009929C0 /* PBXTextBookmark */ = CB530F830F905CE3009929C0 /* PBXTextBookmark */; + CB530F840F905CE3009929C0 /* PBXTextBookmark */ = CB530F840F905CE3009929C0 /* PBXTextBookmark */; + CB530F850F905CE3009929C0 /* PBXTextBookmark */ = CB530F850F905CE3009929C0 /* PBXTextBookmark */; + CB530F860F905CE3009929C0 /* PBXTextBookmark */ = CB530F860F905CE3009929C0 /* PBXTextBookmark */; + CB530F870F905D0F009929C0 /* PBXTextBookmark */ = CB530F870F905D0F009929C0 /* PBXTextBookmark */; + CB530F880F905D0F009929C0 /* PBXTextBookmark */ = CB530F880F905D0F009929C0 /* PBXTextBookmark */; + CB530F890F905D0F009929C0 /* PBXTextBookmark */ = CB530F890F905D0F009929C0 /* PBXTextBookmark */; + CB530F8A0F905D0F009929C0 /* PBXTextBookmark */ = CB530F8A0F905D0F009929C0 /* PBXTextBookmark */; + CB530F8B0F905D0F009929C0 /* PBXTextBookmark */ = CB530F8B0F905D0F009929C0 /* PBXTextBookmark */; + CB530F8C0F905D0F009929C0 /* PBXTextBookmark */ = CB530F8C0F905D0F009929C0 /* PBXTextBookmark */; + CB530F8D0F905D0F009929C0 /* PBXTextBookmark */ = CB530F8D0F905D0F009929C0 /* PBXTextBookmark */; + CB530F8E0F905D0F009929C0 /* PBXTextBookmark */ = CB530F8E0F905D0F009929C0 /* PBXTextBookmark */; + CB530F8F0F905D0F009929C0 /* PBXTextBookmark */ = CB530F8F0F905D0F009929C0 /* PBXTextBookmark */; + CB530F910F905D19009929C0 /* PBXTextBookmark */ = CB530F910F905D19009929C0 /* PBXTextBookmark */; + CB530F920F905D19009929C0 /* PBXTextBookmark */ = CB530F920F905D19009929C0 /* PBXTextBookmark */; + CB530F930F905D19009929C0 /* PBXTextBookmark */ = CB530F930F905D19009929C0 /* PBXTextBookmark */; + CB530F940F905D19009929C0 /* PBXTextBookmark */ = CB530F940F905D19009929C0 /* PBXTextBookmark */; + CB530F950F905D19009929C0 /* PBXTextBookmark */ = CB530F950F905D19009929C0 /* PBXTextBookmark */; + CB530F960F905D19009929C0 /* PBXTextBookmark */ = CB530F960F905D19009929C0 /* PBXTextBookmark */; + CB530F970F905D67009929C0 /* PBXTextBookmark */ = CB530F970F905D67009929C0 /* PBXTextBookmark */; + CB530F980F905D67009929C0 /* PBXTextBookmark */ = CB530F980F905D67009929C0 /* PBXTextBookmark */; + CB530F990F905D67009929C0 /* PBXTextBookmark */ = CB530F990F905D67009929C0 /* PBXTextBookmark */; + CB530F9A0F905D67009929C0 /* PBXTextBookmark */ = CB530F9A0F905D67009929C0 /* PBXTextBookmark */; + CB530F9B0F905D67009929C0 /* PBXTextBookmark */ = CB530F9B0F905D67009929C0 /* PBXTextBookmark */; + CB530F9C0F905D67009929C0 /* PBXTextBookmark */ = CB530F9C0F905D67009929C0 /* PBXTextBookmark */; + CB530F9F0F905D92009929C0 /* PBXTextBookmark */ = CB530F9F0F905D92009929C0 /* PBXTextBookmark */; + CB530FA00F905D92009929C0 /* PBXTextBookmark */ = CB530FA00F905D92009929C0 /* PBXTextBookmark */; + CB530FA10F905D92009929C0 /* PBXTextBookmark */ = CB530FA10F905D92009929C0 /* PBXTextBookmark */; + CB530FA20F905D92009929C0 /* PBXTextBookmark */ = CB530FA20F905D92009929C0 /* PBXTextBookmark */; + CB530FA30F905D92009929C0 /* PBXTextBookmark */ = CB530FA30F905D92009929C0 /* PBXTextBookmark */; + CB530FA40F905D92009929C0 /* PBXTextBookmark */ = CB530FA40F905D92009929C0 /* PBXTextBookmark */; + CB530FA60F905DD6009929C0 /* PBXTextBookmark */ = CB530FA60F905DD6009929C0 /* PBXTextBookmark */; + CB530FA70F905DD6009929C0 /* PBXTextBookmark */ = CB530FA70F905DD6009929C0 /* PBXTextBookmark */; + CB530FA80F905DD6009929C0 /* PBXTextBookmark */ = CB530FA80F905DD6009929C0 /* PBXTextBookmark */; + CB530FA90F905DD6009929C0 /* PBXTextBookmark */ = CB530FA90F905DD6009929C0 /* PBXTextBookmark */; + CB530FAA0F905DD6009929C0 /* PBXTextBookmark */ = CB530FAA0F905DD6009929C0 /* PBXTextBookmark */; + CB530FAB0F905DD6009929C0 /* PBXTextBookmark */ = CB530FAB0F905DD6009929C0 /* PBXTextBookmark */; + CB530FB20F90607A009929C0 /* PBXTextBookmark */ = CB530FB20F90607A009929C0 /* PBXTextBookmark */; + CB530FB30F90607A009929C0 /* PBXTextBookmark */ = CB530FB30F90607A009929C0 /* PBXTextBookmark */; + CB530FB40F90607A009929C0 /* PBXTextBookmark */ = CB530FB40F90607A009929C0 /* PBXTextBookmark */; + CB530FB50F90607A009929C0 /* PBXTextBookmark */ = CB530FB50F90607A009929C0 /* PBXTextBookmark */; + CB530FB60F90607A009929C0 /* PBXTextBookmark */ = CB530FB60F90607A009929C0 /* PBXTextBookmark */; + CB530FB70F90607A009929C0 /* PBXTextBookmark */ = CB530FB70F90607A009929C0 /* PBXTextBookmark */; + CB530FB80F90607A009929C0 /* PBXTextBookmark */ = CB530FB80F90607A009929C0 /* PBXTextBookmark */; + CB530FBB0F90609A009929C0 /* PBXTextBookmark */ = CB530FBB0F90609A009929C0 /* PBXTextBookmark */; + CB530FBC0F90609A009929C0 /* PBXTextBookmark */ = CB530FBC0F90609A009929C0 /* PBXTextBookmark */; + CB530FBD0F90609A009929C0 /* PBXTextBookmark */ = CB530FBD0F90609A009929C0 /* PBXTextBookmark */; + CB530FBE0F90609A009929C0 /* PBXTextBookmark */ = CB530FBE0F90609A009929C0 /* PBXTextBookmark */; + CB530FBF0F90609A009929C0 /* PBXTextBookmark */ = CB530FBF0F90609A009929C0 /* PBXTextBookmark */; + CB530FC00F90609A009929C0 /* PBXTextBookmark */ = CB530FC00F90609A009929C0 /* PBXTextBookmark */; + CB530FC10F90609A009929C0 /* PBXTextBookmark */ = CB530FC10F90609A009929C0 /* PBXTextBookmark */; + CB530FC20F90609A009929C0 /* PBXTextBookmark */ = CB530FC20F90609A009929C0 /* PBXTextBookmark */; + CB530FC30F90609A009929C0 /* PBXTextBookmark */ = CB530FC30F90609A009929C0 /* PBXTextBookmark */; + CB530FC40F90609A009929C0 /* PBXTextBookmark */ = CB530FC40F90609A009929C0 /* PBXTextBookmark */; + CB530FC50F90609A009929C0 /* PBXTextBookmark */ = CB530FC50F90609A009929C0 /* PBXTextBookmark */; + CB530FC60F90609A009929C0 /* PBXTextBookmark */ = CB530FC60F90609A009929C0 /* PBXTextBookmark */; + CB530FC70F90609A009929C0 /* PBXTextBookmark */ = CB530FC70F90609A009929C0 /* PBXTextBookmark */; + CB530FC80F90609A009929C0 /* PBXTextBookmark */ = CB530FC80F90609A009929C0 /* PBXTextBookmark */; + CB530FC90F90609A009929C0 /* PBXTextBookmark */ = CB530FC90F90609A009929C0 /* PBXTextBookmark */; + CB530FCA0F90609A009929C0 /* PBXTextBookmark */ = CB530FCA0F90609A009929C0 /* PBXTextBookmark */; + CB530FCB0F90609A009929C0 /* PBXTextBookmark */ = CB530FCB0F90609A009929C0 /* PBXTextBookmark */; + CB530FCE0F906179009929C0 /* PBXTextBookmark */ = CB530FCE0F906179009929C0 /* PBXTextBookmark */; + CB530FCF0F906179009929C0 /* PBXTextBookmark */ = CB530FCF0F906179009929C0 /* PBXTextBookmark */; + CB530FD00F906179009929C0 /* PBXTextBookmark */ = CB530FD00F906179009929C0 /* PBXTextBookmark */; + CB530FD10F906179009929C0 /* PBXTextBookmark */ = CB530FD10F906179009929C0 /* PBXTextBookmark */; + CB530FD20F906179009929C0 /* PBXTextBookmark */ = CB530FD20F906179009929C0 /* PBXTextBookmark */; + CB530FD30F906179009929C0 /* PBXTextBookmark */ = CB530FD30F906179009929C0 /* PBXTextBookmark */; + CB530FD50F906196009929C0 /* PBXTextBookmark */ = CB530FD50F906196009929C0 /* PBXTextBookmark */; + CB530FD60F906196009929C0 /* PBXTextBookmark */ = CB530FD60F906196009929C0 /* PBXTextBookmark */; + CB530FD70F906196009929C0 /* PBXTextBookmark */ = CB530FD70F906196009929C0 /* PBXTextBookmark */; + CB530FD80F906196009929C0 /* PBXTextBookmark */ = CB530FD80F906196009929C0 /* PBXTextBookmark */; + CB530FD90F906196009929C0 /* PBXTextBookmark */ = CB530FD90F906196009929C0 /* PBXTextBookmark */; + CB530FDA0F906196009929C0 /* PBXTextBookmark */ = CB530FDA0F906196009929C0 /* PBXTextBookmark */; + CB530FDF0F906342009929C0 /* PBXTextBookmark */ = CB530FDF0F906342009929C0 /* PBXTextBookmark */; + CB530FE00F906342009929C0 /* PBXTextBookmark */ = CB530FE00F906342009929C0 /* PBXTextBookmark */; + CB530FE10F906342009929C0 /* PBXTextBookmark */ = CB530FE10F906342009929C0 /* PBXTextBookmark */; + CB530FE20F906342009929C0 /* PBXTextBookmark */ = CB530FE20F906342009929C0 /* PBXTextBookmark */; + CB530FE30F906342009929C0 /* PBXTextBookmark */ = CB530FE30F906342009929C0 /* PBXTextBookmark */; + CB530FE40F906342009929C0 /* PBXTextBookmark */ = CB530FE40F906342009929C0 /* PBXTextBookmark */; + CB530FE70F90646A009929C0 /* PBXTextBookmark */ = CB530FE70F90646A009929C0 /* PBXTextBookmark */; + CB530FE80F90646A009929C0 /* PBXTextBookmark */ = CB530FE80F90646A009929C0 /* PBXTextBookmark */; + CB530FE90F90646A009929C0 /* PBXTextBookmark */ = CB530FE90F90646A009929C0 /* PBXTextBookmark */; + CB530FEA0F90646A009929C0 /* PBXTextBookmark */ = CB530FEA0F90646A009929C0 /* PBXTextBookmark */; + CB530FEB0F90646A009929C0 /* PBXTextBookmark */ = CB530FEB0F90646A009929C0 /* PBXTextBookmark */; + CB530FEC0F90646A009929C0 /* PBXTextBookmark */ = CB530FEC0F90646A009929C0 /* PBXTextBookmark */; + CB530FEE0F90652E009929C0 /* PBXTextBookmark */ = CB530FEE0F90652E009929C0 /* PBXTextBookmark */; + CB530FEF0F90652E009929C0 /* PBXTextBookmark */ = CB530FEF0F90652E009929C0 /* PBXTextBookmark */; + CB530FF00F90652E009929C0 /* PBXTextBookmark */ = CB530FF00F90652E009929C0 /* PBXTextBookmark */; + CB530FF10F90652E009929C0 /* PBXTextBookmark */ = CB530FF10F90652E009929C0 /* PBXTextBookmark */; + CB530FF20F90652E009929C0 /* PBXTextBookmark */ = CB530FF20F90652E009929C0 /* PBXTextBookmark */; + CB530FF30F90652E009929C0 /* PBXTextBookmark */ = CB530FF30F90652E009929C0 /* PBXTextBookmark */; + CB530FF50F906601009929C0 /* PBXTextBookmark */ = CB530FF50F906601009929C0 /* PBXTextBookmark */; + CB530FF60F906601009929C0 /* PBXTextBookmark */ = CB530FF60F906601009929C0 /* PBXTextBookmark */; + CB530FF70F906601009929C0 /* PBXTextBookmark */ = CB530FF70F906601009929C0 /* PBXTextBookmark */; + CB530FF80F906601009929C0 /* PBXTextBookmark */ = CB530FF80F906601009929C0 /* PBXTextBookmark */; + CB530FF90F906601009929C0 /* PBXTextBookmark */ = CB530FF90F906601009929C0 /* PBXTextBookmark */; + CB530FFA0F906601009929C0 /* PBXTextBookmark */ = CB530FFA0F906601009929C0 /* PBXTextBookmark */; + CB530FFC0F9066C0009929C0 /* PBXTextBookmark */ = CB530FFC0F9066C0009929C0 /* PBXTextBookmark */; + CB530FFD0F9066C0009929C0 /* PBXTextBookmark */ = CB530FFD0F9066C0009929C0 /* PBXTextBookmark */; + CB530FFE0F9066C0009929C0 /* PBXTextBookmark */ = CB530FFE0F9066C0009929C0 /* PBXTextBookmark */; + CB530FFF0F9066C0009929C0 /* PBXTextBookmark */ = CB530FFF0F9066C0009929C0 /* PBXTextBookmark */; + CB5310000F9066C0009929C0 /* PBXTextBookmark */ = CB5310000F9066C0009929C0 /* PBXTextBookmark */; + CB5310010F9066C0009929C0 /* PBXTextBookmark */ = CB5310010F9066C0009929C0 /* PBXTextBookmark */; + CB5310080F906833009929C0 /* PBXTextBookmark */ = CB5310080F906833009929C0 /* PBXTextBookmark */; + CB5310090F906833009929C0 /* PBXTextBookmark */ = CB5310090F906833009929C0 /* PBXTextBookmark */; + CB53100A0F906833009929C0 /* PBXTextBookmark */ = CB53100A0F906833009929C0 /* PBXTextBookmark */; + CB53100B0F906833009929C0 /* PBXTextBookmark */ = CB53100B0F906833009929C0 /* PBXTextBookmark */; + CB53100C0F906833009929C0 /* PBXTextBookmark */ = CB53100C0F906833009929C0 /* PBXTextBookmark */; + CB53100D0F906833009929C0 /* PBXTextBookmark */ = CB53100D0F906833009929C0 /* PBXTextBookmark */; + CB53100E0F906833009929C0 /* PBXTextBookmark */ = CB53100E0F906833009929C0 /* PBXTextBookmark */; + CB53100F0F906833009929C0 /* PBXTextBookmark */ = CB53100F0F906833009929C0 /* PBXTextBookmark */; + CB5310100F906833009929C0 /* PBXTextBookmark */ = CB5310100F906833009929C0 /* PBXTextBookmark */; + CB5310120F90687B009929C0 /* PBXTextBookmark */ = CB5310120F90687B009929C0 /* PBXTextBookmark */; + CB5310130F90687B009929C0 /* PBXTextBookmark */ = CB5310130F90687B009929C0 /* PBXTextBookmark */; + CB5310140F90687B009929C0 /* PBXTextBookmark */ = CB5310140F90687B009929C0 /* PBXTextBookmark */; + CB5310150F90687B009929C0 /* PBXTextBookmark */ = CB5310150F90687B009929C0 /* PBXTextBookmark */; + CB5310160F90687B009929C0 /* PBXTextBookmark */ = CB5310160F90687B009929C0 /* PBXTextBookmark */; + CB5310170F90687B009929C0 /* PBXTextBookmark */ = CB5310170F90687B009929C0 /* PBXTextBookmark */; CB90BF950F4A00B1006D202D = CB90BF950F4A00B1006D202D /* PBXTextBookmark */; - CB93656F0F85829800EF284E = CB93656F0F85829800EF284E /* PBXTextBookmark */; - CB93657D0F85980B00EF284E = CB93657D0F85980B00EF284E /* PBXTextBookmark */; CB93657E0F85980B00EF284E = CB93657E0F85980B00EF284E /* PlistBookmark */; - CB93657F0F85980B00EF284E = CB93657F0F85980B00EF284E /* PBXTextBookmark */; CB9365800F85980B00EF284E = CB9365800F85980B00EF284E /* PlistBookmark */; CB9365810F85980B00EF284E = CB9365810F85980B00EF284E /* PBXTextBookmark */; - CB9365820F85980B00EF284E = CB9365820F85980B00EF284E /* PlistBookmark */; - CB9365830F85980B00EF284E = CB9365830F85980B00EF284E /* PBXTextBookmark */; - CB9365840F85980B00EF284E = CB9365840F85980B00EF284E /* PlistBookmark */; - CB9365850F85980B00EF284E = CB9365850F85980B00EF284E /* PBXTextBookmark */; - CB9367010F85BF2500EF284E = CB9367010F85BF2500EF284E /* PBXTextBookmark */; CB9367020F85BF2500EF284E = CB9367020F85BF2500EF284E /* PlistBookmark */; - CB9367030F85BF2500EF284E = CB9367030F85BF2500EF284E /* PBXBookmark */; - CB9367040F85BF2500EF284E = CB9367040F85BF2500EF284E /* PBXTextBookmark */; - CB9367050F85BF2500EF284E = CB9367050F85BF2500EF284E /* PlistBookmark */; - CB9367060F85BF2500EF284E = CB9367060F85BF2500EF284E /* PBXBookmark */; - CB93671A0F85C01C00EF284E = CB93671A0F85C01C00EF284E /* PBXBookmark */; CB93672B0F85C15500EF284E = CB93672B0F85C15500EF284E /* PBXBookmark */; CB93672C0F85C15500EF284E = CB93672C0F85C15500EF284E /* PBXBookmark */; - CB93672D0F85C15500EF284E = CB93672D0F85C15500EF284E /* PBXTextBookmark */; - CB9367310F85C18600EF284E = CB9367310F85C18600EF284E /* PBXTextBookmark */; - CB9367320F85C18600EF284E = CB9367320F85C18600EF284E /* PBXTextBookmark */; - CB9367330F85C18600EF284E = CB9367330F85C18600EF284E /* PBXTextBookmark */; - CB9367340F85C18600EF284E = CB9367340F85C18600EF284E /* PBXTextBookmark */; - CB9367350F85C18600EF284E = CB9367350F85C18600EF284E /* PBXTextBookmark */; - CB9367360F85C18600EF284E = CB9367360F85C18600EF284E /* PBXTextBookmark */; - CB9367370F85C18600EF284E = CB9367370F85C18600EF284E /* PBXTextBookmark */; - CB9367420F85C21500EF284E = CB9367420F85C21500EF284E /* PBXTextBookmark */; - CB9367430F85C21500EF284E = CB9367430F85C21500EF284E /* PBXTextBookmark */; - CB9367440F85C21500EF284E = CB9367440F85C21500EF284E /* PBXTextBookmark */; - CB9367450F85C21500EF284E = CB9367450F85C21500EF284E /* PBXTextBookmark */; - CB9367460F85C21500EF284E = CB9367460F85C21500EF284E /* PBXTextBookmark */; - CB9367470F85C21500EF284E = CB9367470F85C21500EF284E /* PBXTextBookmark */; - CB9367530F85C35100EF284E = CB9367530F85C35100EF284E /* PBXTextBookmark */; - CB9367540F85C35100EF284E = CB9367540F85C35100EF284E /* PBXTextBookmark */; - CB9367550F85C35100EF284E = CB9367550F85C35100EF284E /* PBXTextBookmark */; - CB9367560F85C35100EF284E = CB9367560F85C35100EF284E /* PBXTextBookmark */; - CB9367570F85C35100EF284E = CB9367570F85C35100EF284E /* PBXTextBookmark */; CB9367580F85C35100EF284E = CB9367580F85C35100EF284E /* PBXTextBookmark */; - CB9367590F85C35100EF284E = CB9367590F85C35100EF284E /* PBXTextBookmark */; - CB93675A0F85C35100EF284E = CB93675A0F85C35100EF284E /* PBXTextBookmark */; CB93675B0F85C35100EF284E = CB93675B0F85C35100EF284E /* PBXTextBookmark */; - CB93675C0F85C35100EF284E = CB93675C0F85C35100EF284E /* PBXTextBookmark */; - CB93675D0F85C35100EF284E = CB93675D0F85C35100EF284E /* PBXTextBookmark */; - CB93675E0F85C35100EF284E = CB93675E0F85C35100EF284E /* PBXTextBookmark */; - CB9367640F85C37400EF284E = CB9367640F85C37400EF284E /* PBXTextBookmark */; - CB93677F0F85C6F900EF284E = CB93677F0F85C6F900EF284E /* PBXTextBookmark */; - CB9367800F85C6F900EF284E = CB9367800F85C6F900EF284E /* PBXTextBookmark */; - CB9367810F85C6F900EF284E = CB9367810F85C6F900EF284E /* PBXTextBookmark */; - CB9367820F85C6F900EF284E = CB9367820F85C6F900EF284E /* PBXTextBookmark */; - CB9367830F85C6F900EF284E = CB9367830F85C6F900EF284E /* PBXTextBookmark */; - CB9367840F85C6F900EF284E = CB9367840F85C6F900EF284E /* PBXTextBookmark */; - CB9367850F85C6F900EF284E = CB9367850F85C6F900EF284E /* PBXTextBookmark */; - CB9367860F85C6F900EF284E = CB9367860F85C6F900EF284E /* PBXTextBookmark */; - CB9367870F85C6F900EF284E = CB9367870F85C6F900EF284E /* PBXTextBookmark */; - CB9367880F85C6F900EF284E = CB9367880F85C6F900EF284E /* PBXTextBookmark */; - CB9367890F85C6F900EF284E = CB9367890F85C6F900EF284E /* PBXTextBookmark */; - CB93678A0F85C6F900EF284E = CB93678A0F85C6F900EF284E /* PBXTextBookmark */; - CB93678B0F85C6F900EF284E = CB93678B0F85C6F900EF284E /* PBXTextBookmark */; - CB93678C0F85C6F900EF284E = CB93678C0F85C6F900EF284E /* PBXTextBookmark */; - CB93678D0F85C6F900EF284E = CB93678D0F85C6F900EF284E /* PBXTextBookmark */; - CB93678E0F85C6F900EF284E = CB93678E0F85C6F900EF284E /* PBXTextBookmark */; - CB93678F0F85C6F900EF284E = CB93678F0F85C6F900EF284E /* PBXTextBookmark */; - CB9367900F85C6F900EF284E = CB9367900F85C6F900EF284E /* PBXTextBookmark */; - CB9367910F85C6F900EF284E = CB9367910F85C6F900EF284E /* PBXTextBookmark */; - CB9367920F85C6F900EF284E = CB9367920F85C6F900EF284E /* PBXTextBookmark */; - CB9367930F85C6F900EF284E = CB9367930F85C6F900EF284E /* PBXTextBookmark */; - CB9367940F85C6F900EF284E = CB9367940F85C6F900EF284E /* PBXTextBookmark */; - CB9367950F85C6F900EF284E = CB9367950F85C6F900EF284E /* PBXTextBookmark */; - CB9367960F85C6F900EF284E = CB9367960F85C6F900EF284E /* PBXTextBookmark */; - CB9367970F85C6F900EF284E = CB9367970F85C6F900EF284E /* PBXTextBookmark */; - CB9367980F85C6F900EF284E = CB9367980F85C6F900EF284E /* PBXTextBookmark */; - CB9367990F85C6F900EF284E = CB9367990F85C6F900EF284E /* PBXTextBookmark */; - CB93679A0F85C6F900EF284E = CB93679A0F85C6F900EF284E /* PBXTextBookmark */; - CB93679B0F85C6F900EF284E = CB93679B0F85C6F900EF284E /* PBXTextBookmark */; - CB93680F0F85D09000EF284E = CB93680F0F85D09000EF284E /* PBXTextBookmark */; - CB9368100F85D09000EF284E = CB9368100F85D09000EF284E /* PBXTextBookmark */; - CB9368110F85D09000EF284E = CB9368110F85D09000EF284E /* PBXTextBookmark */; - CB9368120F85D09000EF284E = CB9368120F85D09000EF284E /* PBXTextBookmark */; - CB9368130F85D09000EF284E = CB9368130F85D09000EF284E /* PBXTextBookmark */; - CB93683F0F85DC0C00EF284E = CB93683F0F85DC0C00EF284E /* PBXTextBookmark */; - CB9368400F85DC0C00EF284E = CB9368400F85DC0C00EF284E /* PBXTextBookmark */; - CB9368410F85DC0C00EF284E = CB9368410F85DC0C00EF284E /* PBXTextBookmark */; - CB9368420F85DC0C00EF284E = CB9368420F85DC0C00EF284E /* PBXTextBookmark */; - CB9368430F85DC0C00EF284E = CB9368430F85DC0C00EF284E /* PBXTextBookmark */; CB9368440F85DC0C00EF284E = CB9368440F85DC0C00EF284E /* PBXTextBookmark */; - CB9368450F85DC0C00EF284E = CB9368450F85DC0C00EF284E /* PBXTextBookmark */; - CB9368460F85DC0C00EF284E = CB9368460F85DC0C00EF284E /* PBXTextBookmark */; - CB9368470F85DC0C00EF284E = CB9368470F85DC0C00EF284E /* PBXTextBookmark */; - CB9368480F85DC0C00EF284E = CB9368480F85DC0C00EF284E /* PBXTextBookmark */; - CB9368490F85DC0C00EF284E = CB9368490F85DC0C00EF284E /* PBXTextBookmark */; - CB93684B0F85DCA400EF284E = CB93684B0F85DCA400EF284E /* PBXTextBookmark */; - CB97041E0F868ADC00B8FC30 = CB97041E0F868ADC00B8FC30 /* PBXTextBookmark */; - CB9704340F868B6600B8FC30 = CB9704340F868B6600B8FC30 /* PBXTextBookmark */; - CB9704360F868CCC00B8FC30 = CB9704360F868CCC00B8FC30 /* PBXTextBookmark */; - CB9704370F868CCC00B8FC30 = CB9704370F868CCC00B8FC30 /* PBXTextBookmark */; - CB9704380F868CCC00B8FC30 = CB9704380F868CCC00B8FC30 /* PBXTextBookmark */; - CB9704390F868D7A00B8FC30 = CB9704390F868D7A00B8FC30 /* PBXTextBookmark */; - CB97043A0F868D7A00B8FC30 = CB97043A0F868D7A00B8FC30 /* PBXTextBookmark */; CB97043E0F868DED00B8FC30 = CB97043E0F868DED00B8FC30 /* PBXTextBookmark */; - CB97043F0F868DED00B8FC30 = CB97043F0F868DED00B8FC30 /* PBXTextBookmark */; - CB9704400F868DED00B8FC30 = CB9704400F868DED00B8FC30 /* PBXTextBookmark */; - CB9704410F868DED00B8FC30 = CB9704410F868DED00B8FC30 /* PBXTextBookmark */; - CB97044A0F868ECC00B8FC30 = CB97044A0F868ECC00B8FC30 /* PBXTextBookmark */; - CB9D71490F83BCD300B19A29 = CB9D71490F83BCD300B19A29 /* PBXTextBookmark */; - CB9D714A0F83BCD300B19A29 = CB9D714A0F83BCD300B19A29 /* PBXTextBookmark */; - CB9D714B0F83BCD300B19A29 = CB9D714B0F83BCD300B19A29 /* PBXTextBookmark */; - CB9D714D0F83BCD300B19A29 = CB9D714D0F83BCD300B19A29 /* PBXTextBookmark */; - CB9D714E0F83BCD300B19A29 = CB9D714E0F83BCD300B19A29 /* PBXTextBookmark */; - CB9D71610F83BE7900B19A29 = CB9D71610F83BE7900B19A29 /* PBXTextBookmark */; - CB9D71670F83BEB000B19A29 = CB9D71670F83BEB000B19A29 /* PBXTextBookmark */; - CBB57CD70F8430EC00CDD9EE = CBB57CD70F8430EC00CDD9EE /* PBXTextBookmark */; - CBB57CDD0F84323A00CDD9EE = CBB57CDD0F84323A00CDD9EE /* PBXTextBookmark */; - CBB57CDE0F84323A00CDD9EE = CBB57CDE0F84323A00CDD9EE /* PBXTextBookmark */; - CBB57CDF0F84323A00CDD9EE = CBB57CDF0F84323A00CDD9EE /* PBXTextBookmark */; - CBB57CE00F84323A00CDD9EE = CBB57CE00F84323A00CDD9EE /* PBXTextBookmark */; CBBCA2390F5505BB00C75324 = CBBCA2390F5505BB00C75324 /* PBXTextBookmark */; CBBD3B710F562C8B00E8A802 = CBBD3B710F562C8B00E8A802 /* PBXTextBookmark */; CBC2F8760F4675F900CF2A42 = CBC2F8760F4675F900CF2A42 /* PBXTextBookmark */; CBC2F8770F4675F900CF2A42 = CBC2F8770F4675F900CF2A42 /* PBXTextBookmark */; CBC2F89E0F47793D00CF2A42 = CBC2F89E0F47793D00CF2A42 /* PBXTextBookmark */; CBC2F95D0F478B8F00CF2A42 = CBC2F95D0F478B8F00CF2A42 /* PBXTextBookmark */; - CBC3C0920F86B31D0055C0B0 /* PBXTextBookmark */ = CBC3C0920F86B31D0055C0B0 /* PBXTextBookmark */; - CBC3C0A90F86B3460055C0B0 /* PBXTextBookmark */ = CBC3C0A90F86B3460055C0B0 /* PBXTextBookmark */; - CBC3C0AA0F86B3460055C0B0 /* PBXTextBookmark */ = CBC3C0AA0F86B3460055C0B0 /* PBXTextBookmark */; - CBC3C0AB0F86B3460055C0B0 /* PBXTextBookmark */ = CBC3C0AB0F86B3460055C0B0 /* PBXTextBookmark */; - CBC3C0AC0F86B3460055C0B0 /* PBXTextBookmark */ = CBC3C0AC0F86B3460055C0B0 /* PBXTextBookmark */; - CBC3C0AD0F86B3460055C0B0 /* PBXTextBookmark */ = CBC3C0AD0F86B3460055C0B0 /* PBXTextBookmark */; - CBC3C0AE0F86B3460055C0B0 /* PBXTextBookmark */ = CBC3C0AE0F86B3460055C0B0 /* PBXTextBookmark */; - CBC3C0B20F86B39C0055C0B0 /* PBXTextBookmark */ = CBC3C0B20F86B39C0055C0B0 /* PBXTextBookmark */; - CBC3C0B30F86B39C0055C0B0 /* PBXTextBookmark */ = CBC3C0B30F86B39C0055C0B0 /* PBXTextBookmark */; - CBC3C0B40F86B39C0055C0B0 /* PBXTextBookmark */ = CBC3C0B40F86B39C0055C0B0 /* PBXTextBookmark */; - CBC3C0B50F86B39C0055C0B0 /* PBXTextBookmark */ = CBC3C0B50F86B39C0055C0B0 /* PBXTextBookmark */; + CBC3C0E60F86E2F80055C0B0 = CBC3C0E60F86E2F80055C0B0 /* PBXTextBookmark */; + CBC3C0F00F86E2F80055C0B0 = CBC3C0F00F86E2F80055C0B0 /* PBXTextBookmark */; + CBC3C10D0F86E2F80055C0B0 = CBC3C10D0F86E2F80055C0B0 /* PBXTextBookmark */; + CBC3C10E0F86E2F80055C0B0 = CBC3C10E0F86E2F80055C0B0 /* PBXTextBookmark */; + CBC3C1AA0F8724F40055C0B0 = CBC3C1AA0F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1AC0F8724F40055C0B0 = CBC3C1AC0F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1AE0F8724F40055C0B0 = CBC3C1AE0F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1B00F8724F40055C0B0 = CBC3C1B00F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1B20F8724F40055C0B0 = CBC3C1B20F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1B40F8724F40055C0B0 = CBC3C1B40F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1B60F8724F40055C0B0 = CBC3C1B60F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1BF0F8724F40055C0B0 = CBC3C1BF0F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1C10F8724F40055C0B0 = CBC3C1C10F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1C50F8724F40055C0B0 = CBC3C1C50F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1C70F8724F40055C0B0 = CBC3C1C70F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1CD0F8724F40055C0B0 = CBC3C1CD0F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1D30F8724F40055C0B0 = CBC3C1D30F8724F40055C0B0 /* PBXTextBookmark */; + CBC3C1D50F8724F40055C0B0 = CBC3C1D50F8724F40055C0B0 /* PBXTextBookmark */; + CBCA80E80F8C2B8000BD4D0D = CBCA80E80F8C2B8000BD4D0D /* PBXTextBookmark */; + CBCA80FB0F8C56FC00BD4D0D = CBCA80FB0F8C56FC00BD4D0D /* PBXTextBookmark */; + CBCA81090F8C58E400BD4D0D = CBCA81090F8C58E400BD4D0D /* PBXBookmark */; + CBCA810E0F8C60A900BD4D0D = CBCA810E0F8C60A900BD4D0D /* PBXTextBookmark */; + CBCA810F0F8C60A900BD4D0D = CBCA810F0F8C60A900BD4D0D /* PBXTextBookmark */; + CBCA81180F8C622800BD4D0D = CBCA81180F8C622800BD4D0D /* PBXTextBookmark */; + CBCA81270F8C690300BD4D0D = CBCA81270F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81280F8C690300BD4D0D = CBCA81280F8C690300BD4D0D /* PBXTextBookmark */; + CBCA812E0F8C690300BD4D0D = CBCA812E0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA812F0F8C690300BD4D0D = CBCA812F0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81300F8C690300BD4D0D = CBCA81300F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81310F8C690300BD4D0D = CBCA81310F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81320F8C690300BD4D0D = CBCA81320F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81360F8C690300BD4D0D = CBCA81360F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81370F8C690300BD4D0D = CBCA81370F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81380F8C690300BD4D0D = CBCA81380F8C690300BD4D0D /* PBXTextBookmark */; + CBCA813D0F8C690300BD4D0D = CBCA813D0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA813E0F8C690300BD4D0D = CBCA813E0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA813F0F8C690300BD4D0D = CBCA813F0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81400F8C690300BD4D0D = CBCA81400F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81410F8C690300BD4D0D = CBCA81410F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81420F8C690300BD4D0D = CBCA81420F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81430F8C690300BD4D0D = CBCA81430F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81440F8C690300BD4D0D = CBCA81440F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81450F8C690300BD4D0D = CBCA81450F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81460F8C690300BD4D0D = CBCA81460F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81470F8C690300BD4D0D = CBCA81470F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81480F8C690300BD4D0D = CBCA81480F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81490F8C690300BD4D0D = CBCA81490F8C690300BD4D0D /* PBXTextBookmark */; + CBCA814A0F8C690300BD4D0D = CBCA814A0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA814B0F8C690300BD4D0D = CBCA814B0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA814C0F8C690300BD4D0D = CBCA814C0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA814D0F8C690300BD4D0D = CBCA814D0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA814E0F8C690300BD4D0D = CBCA814E0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA814F0F8C690300BD4D0D = CBCA814F0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81500F8C690300BD4D0D = CBCA81500F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81510F8C690300BD4D0D = CBCA81510F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81520F8C690300BD4D0D = CBCA81520F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81530F8C690300BD4D0D = CBCA81530F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81540F8C690300BD4D0D = CBCA81540F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81550F8C690300BD4D0D = CBCA81550F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81560F8C690300BD4D0D = CBCA81560F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81570F8C690300BD4D0D = CBCA81570F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81580F8C690300BD4D0D = CBCA81580F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81590F8C690300BD4D0D = CBCA81590F8C690300BD4D0D /* PBXTextBookmark */; + CBCA815A0F8C690300BD4D0D = CBCA815A0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA815B0F8C690300BD4D0D = CBCA815B0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA815C0F8C690300BD4D0D = CBCA815C0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA815D0F8C690300BD4D0D = CBCA815D0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA815E0F8C690300BD4D0D = CBCA815E0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA815F0F8C690300BD4D0D = CBCA815F0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81600F8C690300BD4D0D = CBCA81600F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81610F8C690300BD4D0D = CBCA81610F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81620F8C690300BD4D0D = CBCA81620F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81630F8C690300BD4D0D = CBCA81630F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81640F8C690300BD4D0D = CBCA81640F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81650F8C690300BD4D0D = CBCA81650F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81660F8C690300BD4D0D = CBCA81660F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81670F8C690300BD4D0D = CBCA81670F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81680F8C690300BD4D0D = CBCA81680F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81690F8C690300BD4D0D = CBCA81690F8C690300BD4D0D /* PBXTextBookmark */; + CBCA816A0F8C690300BD4D0D = CBCA816A0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA816B0F8C690300BD4D0D = CBCA816B0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA816C0F8C690300BD4D0D = CBCA816C0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA816D0F8C690300BD4D0D = CBCA816D0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA816E0F8C690300BD4D0D = CBCA816E0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA816F0F8C690300BD4D0D = CBCA816F0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81700F8C690300BD4D0D = CBCA81700F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81710F8C690300BD4D0D = CBCA81710F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81720F8C690300BD4D0D = CBCA81720F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81730F8C690300BD4D0D = CBCA81730F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81740F8C690300BD4D0D = CBCA81740F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81750F8C690300BD4D0D = CBCA81750F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81760F8C690300BD4D0D = CBCA81760F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81770F8C690300BD4D0D = CBCA81770F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81780F8C690300BD4D0D = CBCA81780F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81790F8C690300BD4D0D = CBCA81790F8C690300BD4D0D /* PBXTextBookmark */; + CBCA817A0F8C690300BD4D0D = CBCA817A0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA817B0F8C690300BD4D0D = CBCA817B0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA817C0F8C690300BD4D0D = CBCA817C0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA817D0F8C690300BD4D0D = CBCA817D0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA817E0F8C690300BD4D0D = CBCA817E0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA817F0F8C690300BD4D0D = CBCA817F0F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81800F8C690300BD4D0D = CBCA81800F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81810F8C690300BD4D0D = CBCA81810F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81820F8C690300BD4D0D = CBCA81820F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81830F8C690300BD4D0D = CBCA81830F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81840F8C690300BD4D0D = CBCA81840F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81850F8C690300BD4D0D = CBCA81850F8C690300BD4D0D /* PBXTextBookmark */; + CBCA81930F8C6A7800BD4D0D = CBCA81930F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA81940F8C6A7800BD4D0D = CBCA81940F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA81950F8C6A7800BD4D0D = CBCA81950F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA81960F8C6A7800BD4D0D = CBCA81960F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA81970F8C6A7800BD4D0D = CBCA81970F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA81980F8C6A7800BD4D0D = CBCA81980F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA81990F8C6A7800BD4D0D = CBCA81990F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA819A0F8C6A7800BD4D0D = CBCA819A0F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA819B0F8C6A7800BD4D0D = CBCA819B0F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA819C0F8C6A7800BD4D0D = CBCA819C0F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA819D0F8C6A7800BD4D0D = CBCA819D0F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA819E0F8C6A7800BD4D0D = CBCA819E0F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA819F0F8C6A7800BD4D0D = CBCA819F0F8C6A7800BD4D0D /* PBXTextBookmark */; + CBCA81A70F8C6B2300BD4D0D = CBCA81A70F8C6B2300BD4D0D /* PBXTextBookmark */; + CBCA81A80F8C6B2300BD4D0D = CBCA81A80F8C6B2300BD4D0D /* PBXTextBookmark */; + CBCA81C50F8C6EA100BD4D0D = CBCA81C50F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81CB0F8C6EA100BD4D0D = CBCA81CB0F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81CC0F8C6EA100BD4D0D = CBCA81CC0F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81CD0F8C6EA100BD4D0D = CBCA81CD0F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81CE0F8C6EA100BD4D0D = CBCA81CE0F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81CF0F8C6EA100BD4D0D = CBCA81CF0F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81D00F8C6EA100BD4D0D = CBCA81D00F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81D10F8C6EA100BD4D0D = CBCA81D10F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81D20F8C6EA100BD4D0D = CBCA81D20F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81D30F8C6EA100BD4D0D = CBCA81D30F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81D40F8C6EA100BD4D0D = CBCA81D40F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81D50F8C6EA100BD4D0D = CBCA81D50F8C6EA100BD4D0D /* PBXTextBookmark */; + CBCA81E50F8C6FA800BD4D0D = CBCA81E50F8C6FA800BD4D0D /* PBXTextBookmark */; + CBCA81E80F8C6FA800BD4D0D = CBCA81E80F8C6FA800BD4D0D /* PBXTextBookmark */; + CBCA81E90F8C6FA800BD4D0D = CBCA81E90F8C6FA800BD4D0D /* PBXTextBookmark */; + CBCA81EA0F8C6FA800BD4D0D = CBCA81EA0F8C6FA800BD4D0D /* PBXTextBookmark */; + CBCA81EB0F8C6FA800BD4D0D = CBCA81EB0F8C6FA800BD4D0D /* PBXTextBookmark */; + CBCA81EC0F8C6FA800BD4D0D = CBCA81EC0F8C6FA800BD4D0D /* PBXTextBookmark */; + CBCA81ED0F8C6FA800BD4D0D = CBCA81ED0F8C6FA800BD4D0D /* PBXTextBookmark */; + CBCA81FC0F8C734C00BD4D0D = CBCA81FC0F8C734C00BD4D0D /* PBXTextBookmark */; + CBCA81FD0F8C734C00BD4D0D = CBCA81FD0F8C734C00BD4D0D /* PBXTextBookmark */; + CBCA81FE0F8C734C00BD4D0D = CBCA81FE0F8C734C00BD4D0D /* PBXTextBookmark */; + CBCA82050F8C741C00BD4D0D = CBCA82050F8C741C00BD4D0D /* PBXTextBookmark */; + CBCA82060F8C741C00BD4D0D = CBCA82060F8C741C00BD4D0D /* PBXTextBookmark */; + CBCA82070F8C741C00BD4D0D = CBCA82070F8C741C00BD4D0D /* PBXTextBookmark */; + CBCA82090F8C741C00BD4D0D = CBCA82090F8C741C00BD4D0D /* PBXTextBookmark */; + CBCA820A0F8C741C00BD4D0D = CBCA820A0F8C741C00BD4D0D /* PBXTextBookmark */; + CBCA820B0F8C741C00BD4D0D = CBCA820B0F8C741C00BD4D0D /* PBXTextBookmark */; + CBCA820C0F8C741C00BD4D0D = CBCA820C0F8C741C00BD4D0D /* PBXTextBookmark */; + CBCA820D0F8C741C00BD4D0D = CBCA820D0F8C741C00BD4D0D /* PBXTextBookmark */; + CBCA82180F8C753800BD4D0D = CBCA82180F8C753800BD4D0D /* PBXTextBookmark */; + CBCA82190F8C753800BD4D0D = CBCA82190F8C753800BD4D0D /* PBXTextBookmark */; + CBCA821A0F8C753800BD4D0D = CBCA821A0F8C753800BD4D0D /* PBXTextBookmark */; + CBCA82240F8C779600BD4D0D = CBCA82240F8C779600BD4D0D /* PBXTextBookmark */; + CBCA82260F8C779600BD4D0D = CBCA82260F8C779600BD4D0D /* PBXTextBookmark */; + CBCA82270F8C779600BD4D0D = CBCA82270F8C779600BD4D0D /* PBXTextBookmark */; + CBCA82280F8C779600BD4D0D = CBCA82280F8C779600BD4D0D /* PBXTextBookmark */; + CBCA822E0F8C782900BD4D0D = CBCA822E0F8C782900BD4D0D /* PBXTextBookmark */; + CBCA822F0F8C782900BD4D0D = CBCA822F0F8C782900BD4D0D /* PBXTextBookmark */; + CBCA82300F8C782900BD4D0D = CBCA82300F8C782900BD4D0D /* PBXTextBookmark */; + CBCA82310F8C782900BD4D0D = CBCA82310F8C782900BD4D0D /* PBXTextBookmark */; + CBCA82390F8C9CFB00BD4D0D = CBCA82390F8C9CFB00BD4D0D /* PBXTextBookmark */; + CBCA823B0F8C9CFB00BD4D0D = CBCA823B0F8C9CFB00BD4D0D /* PBXTextBookmark */; + CBCA82450F8C9DA200BD4D0D = CBCA82450F8C9DA200BD4D0D /* PBXTextBookmark */; + CBCA82460F8C9DA200BD4D0D = CBCA82460F8C9DA200BD4D0D /* PBXTextBookmark */; + CBCA82470F8C9DA200BD4D0D = CBCA82470F8C9DA200BD4D0D /* PBXTextBookmark */; + CBCA82490F8C9DA200BD4D0D = CBCA82490F8C9DA200BD4D0D /* PBXTextBookmark */; + CBCA824E0F8C9DD400BD4D0D = CBCA824E0F8C9DD400BD4D0D /* PBXTextBookmark */; + CBCA824F0F8C9DD400BD4D0D = CBCA824F0F8C9DD400BD4D0D /* PBXTextBookmark */; + CBCA82500F8C9DD400BD4D0D = CBCA82500F8C9DD400BD4D0D /* PBXTextBookmark */; + CBCA82510F8C9DD400BD4D0D = CBCA82510F8C9DD400BD4D0D /* PBXTextBookmark */; + CBCA82520F8C9DD400BD4D0D = CBCA82520F8C9DD400BD4D0D /* PBXTextBookmark */; CBE5C2CD0F4D1D2C003DB900 = CBE5C2CD0F4D1D2C003DB900 /* PBXTextBookmark */; CBE5C2CF0F4D1D2C003DB900 = CBE5C2CF0F4D1D2C003DB900 /* PBXTextBookmark */; CBEE50D70F48C46A00F5DF1C = CBEE50D70F48C46A00F5DF1C /* PBXTextBookmark */; @@ -426,7 +669,7 @@ ignoreCount = 0; lineNumber = 43; location = SelfControl; - modificationTime = 260321470.914003; + modificationTime = 261118827.954544; state = 2; }; CB1AED940F3C317E00632468 /* TableViewManager.m:17 */ = { @@ -443,7 +686,7 @@ ignoreCount = 0; lineNumber = 17; location = SelfControl; - modificationTime = 260321470.914019; + modificationTime = 261118827.954575; state = 2; }; CB1AED9B0F3C32C400632468 /* TableViewManager.m:2 */ = { @@ -460,7 +703,7 @@ ignoreCount = 0; lineNumber = 2; location = SelfControl; - modificationTime = 260321470.914031; + modificationTime = 261118827.954591; state = 2; }; CB1AEDAA0F3C366600632468 /* TableViewManager.m:18 */ = { @@ -476,7 +719,7 @@ hitCount = 0; ignoreCount = 0; lineNumber = 18; - modificationTime = 260321470.914056; + modificationTime = 261118827.954606; state = 2; }; CB1AEDAE0F3C366E00632468 /* TableViewManager.m:15 */ = { @@ -492,7 +735,7 @@ hitCount = 0; ignoreCount = 0; lineNumber = 15; - modificationTime = 260321470.9140781; + modificationTime = 261118827.954622; state = 2; }; CB1AEDB00F3C367100632468 /* TableViewManager.m:19 */ = { @@ -508,7 +751,7 @@ hitCount = 0; ignoreCount = 0; lineNumber = 19; - modificationTime = 260321470.914093; + modificationTime = 261118827.954654; state = 2; }; CB1AEDCA0F3C37D100632468 /* TableViewManager.m:33 */ = { @@ -525,7 +768,24 @@ ignoreCount = 0; lineNumber = 33; location = SelfControl; - modificationTime = 260321470.914107; + modificationTime = 261118827.954673; + state = 2; + }; + CB1BDBBE0F8A697C004421F5 /* TimerWindowController.m:182 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + functionName = "-performAdd:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 182; + location = SelfControl; + modificationTime = 261118827.956318; state = 2; }; CB1D434B0F4C631D00CD6D6B /* PBXTextBookmark */ = { @@ -533,27 +793,17 @@ fRef = CB90BF820F49F430006D202D /* HostImporter.m */; name = "SCHostImporter.m: 31"; rLen = 0; - rLoc = 4309; + rLoc = 4226; rType = 0; vrLen = 0; vrLoc = 1; }; - CB1ED4030F56657000EFECEE /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */; - name = "ButtonWithPopupMenu.m: 51"; - rLen = 219; - rLoc = 1738; - rType = 0; - vrLen = 826; - vrLoc = 1186; - }; CB2358240F4521130030F59C /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CBA2AFD70F39EC46005AFEBE /* HelperMain.h */; name = "helpermain.h: 17"; rLen = 0; - rLoc = 1345; + rLoc = 1424; rType = 0; vrLen = 322; vrLoc = 0; @@ -563,7 +813,7 @@ fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; name = "AppController.h: 11"; rLen = 0; - rLoc = 877; + rLoc = 958; rType = 0; vrLen = 513; vrLoc = 3; @@ -573,7 +823,7 @@ fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; name = "SCIPFirewall.h: 19"; rLen = 0; - rLoc = 1305; + rLoc = 1315; rType = 0; vrLen = 597; vrLoc = 178; @@ -583,7 +833,7 @@ fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; name = "SCIPFirewall.m: 11"; rLen = 0; - rLoc = 880; + rLoc = 879; rType = 0; vrLen = 567; vrLoc = 3; @@ -622,7 +872,7 @@ isa = PBXBookmark; fRef = CB4C58D50F3F8F2A00B5D7CB /* SelfControlIcon.icns */; }; - CB2358E40F452BBB0030F59C /* AppController.m:33 */ = { + CB2358E40F452BBB0030F59C /* AppController.m:32 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -634,12 +884,12 @@ functionName = "-removeBlock"; hitCount = 0; ignoreCount = 0; - lineNumber = 33; + lineNumber = 32; location = SelfControl; - modificationTime = 260321470.914156; + modificationTime = 261118827.954993; state = 2; }; - CB2359DB0F4542220030F59C /* AppController.m:33 */ = { + CB2359DB0F4542220030F59C /* AppController.m:32 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -651,9 +901,9 @@ functionName = "-selfControlHelperToolPath"; hitCount = 0; ignoreCount = 0; - lineNumber = 33; + lineNumber = 32; location = SelfControl; - modificationTime = 260321470.914168; + modificationTime = 261118827.955177; state = 2; }; CB25E9F50F8286DE0051B37D /* PBXTextBookmark */ = { @@ -673,16 +923,6 @@ path = /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h; sourceTree = ""; }; - CB25EB4E0F828D3F0051B37D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = CB25EB220F8287500051B37D /* Cocoa.h */; - name = "Cocoa.h: 1"; - rLen = 0; - rLoc = 2; - rType = 0; - vrLen = 485; - vrLoc = 0; - }; CB25EB550F828D3F0051B37D /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CB25EB220F8287500051B37D /* Cocoa.h */; @@ -693,16 +933,6 @@ vrLen = 485; vrLoc = 0; }; - CB25EBAD0F82954E0051B37D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */; - name = "ButtonWithPopupMenu.h: 41"; - rLen = 0; - rLoc = 1451; - rType = 0; - vrLen = 1035; - vrLoc = 416; - }; CB25EC080F829FED0051B37D /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CB4C58D90F3F90B000B5D7CB /* Credits.rtf */; @@ -713,15 +943,25 @@ vrLen = 108; vrLoc = 0; }; - CB25EC090F829FED0051B37D /* PBXTextBookmark */ = { + CB36E1D10F8B53290085C0A0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */; - name = "ThunderbirdPreferenceParser.h: 62"; - rLen = 0; - rLoc = 2667; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 96"; + rLen = 597; + rLoc = 3341; + rType = 0; + vrLen = 1643; + vrLoc = 2710; + }; + CB36E1D20F8B53290085C0A0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 51"; + rLen = 35; + rLoc = 2312; rType = 0; - vrLen = 1306; - vrLoc = 840; + vrLen = 1632; + vrLoc = 308; }; CB4159B60F4ECFF400C63C06 /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -787,16 +1027,6 @@ sepNavWindowFrame = "{{3, -250}, {955, 689}}"; }; }; - CB4964EB0F83256400B3751E /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; - name = "DomainListWindowController.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1389; - vrLoc = 1062; - }; CB4C58D50F3F8F2A00B5D7CB /* SelfControlIcon.icns */ = { uiCtxt = { sepNavWindowFrame = "{{15, 84}, {955, 689}}"; @@ -810,34 +1040,24 @@ sepNavWindowFrame = "{{-134, -81}, {1101, 689}}"; }; }; - CB4CF93E0F6A1B540006E2FD /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = CB90BF820F49F430006D202D /* HostImporter.m */; - name = "HostImporter.m: 33"; - rLen = 0; - rLoc = 1324; - rType = 0; - vrLen = 1585; - vrLoc = 843; - }; CB529BBD0F32B7ED00564FB8 /* AppController.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 1414}}"; - sepNavSelRange = "{2134, 0}"; - sepNavVisRange = "{1867, 1314}"; + sepNavIntBoundsRect = "{{0, 0}, {909, 1638}}"; + sepNavSelRange = "{4511, 0}"; + sepNavVisRange = "{3061, 1090}"; sepNavWindowFrame = "{{62, 103}, {1101, 675}}"; }; }; CB529BBE0F32B7ED00564FB8 /* AppController.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {13014, 4844}}"; - sepNavSelRange = "{16271, 0}"; - sepNavVisRange = "{15324, 947}"; + sepNavIntBoundsRect = "{{0, 0}, {13014, 6692}}"; + sepNavSelRange = "{9941, 0}"; + sepNavVisRange = "{8960, 3849}"; sepNavVisRect = "{{0, 4497}, {925, 383}}"; - sepNavWindowFrame = "{{166, 103}, {1101, 675}}"; + sepNavWindowFrame = "{{338, 103}, {1101, 675}}"; }; }; - CB7E75660F60368600A9B93C /* TimerWindowController.m:32 */ = { + CB530F130F905685009929C0 /* AppController.m:288 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -845,1276 +1065,3706 @@ continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; - fileReference = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; - functionName = "-init"; - hitCount = 1; + fileReference = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + functionName = "-selfControlLaunchDaemonIsLoaded"; + hitCount = 0; ignoreCount = 0; - lineNumber = 32; - location = SelfControl; - modificationTime = 260321509.513685; + lineNumber = 288; + modificationTime = 261118827.956549; state = 2; }; - CB90BF810F49F430006D202D /* HostImporter.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 658}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{607, 1144}"; - sepNavWindowFrame = "{{15, 93}, {955, 685}}"; - }; + CB530F150F905694009929C0 /* AppController.m:294 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + functionName = "-selfControlLaunchDaemonIsLoaded"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 294; + location = SelfControl; + modificationTime = 261118827.956736; + state = 1; }; - CB90BF820F49F430006D202D /* HostImporter.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 1288}}"; - sepNavSelRange = "{1324, 0}"; - sepNavVisRange = "{843, 1585}"; - sepNavWindowFrame = "{{381, 98}, {955, 680}}"; - }; + CB530F170F9056A4009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 212"; + rLen = 9; + rLoc = 10851; + rType = 0; + vrLen = 1234; + vrLoc = 9936; }; - CB90BF950F4A00B1006D202D /* PBXTextBookmark */ = { + CB530F1A0F9056A4009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB90BF810F49F430006D202D /* HostImporter.h */; - name = "SCHostImporter.h: 16"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 293"; rLen = 0; - rLoc = 1204; + rLoc = 13173; rType = 0; - vrLen = 318; - vrLoc = 0; + vrLen = 4004; + vrLoc = 9913; }; - CB93656F0F85829800EF284E /* PBXTextBookmark */ = { + CB530F1B0F9056A4009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - name = "HelperMain.m: 458"; + name = "HelperMain.m: 366"; rLen = 0; - rLoc = 21011; + rLoc = 19124; rType = 0; - vrLen = 1069; - vrLoc = 20480; - }; - CB9365770F85846200EF284E /* SelfControlAppcast.xml */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1590, 406}}"; - sepNavSelRange = "{1587, 129}"; - sepNavVisRange = "{39, 1726}"; - }; + vrLen = 1861; + vrLoc = 10624; }; - CB93657D0F85980B00EF284E /* PBXTextBookmark */ = { + CB530F1C0F9056A4009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 6"; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; rLen = 0; - rLoc = 336; + rLoc = 2687; rType = 0; - vrLen = 1078; - vrLoc = 0; - }; - CB93657E0F85980B00EF284E /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 8D1107310486CEB800E47090 /* Info.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - CFBundleVersion, - ); - name = /Users/charlie/selfcontrol/Info.plist; - rLen = 0; - rLoc = 2147483647; + vrLen = 1740; + vrLoc = 417; }; - CB93657F0F85980B00EF284E /* PBXTextBookmark */ = { + CB530F1D0F9056A4009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - name = "HelperMain.m: 54"; - rLen = 82; - rLoc = 2389; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 98"; + rLen = 597; + rLoc = 3341; rType = 0; - vrLen = 1152; - vrLoc = 3067; - }; - CB9365800F85980B00EF284E /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 8D1107310486CEB800E47090 /* Info.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - CFBundleSignature, - ); - name = /Users/charlie/selfcontrol/Info.plist; - rLen = 0; - rLoc = 2147483647; + vrLen = 1643; + vrLoc = 2748; }; - CB9365810F85980B00EF284E /* PBXTextBookmark */ = { + CB530F2A0F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 5"; - rLen = 77; - rLoc = 240; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 212"; + rLen = 9; + rLoc = 10851; rType = 0; - vrLen = 1078; - vrLoc = 0; - }; - CB9365820F85980B00EF284E /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 8D1107310486CEB800E47090 /* Info.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - SUFeedURL, - ); - name = /Users/charlie/selfcontrol/Info.plist; - rLen = 0; - rLoc = 2147483647; + vrLen = 1230; + vrLoc = 9936; }; - CB9365830F85980B00EF284E /* PBXTextBookmark */ = { + CB530F2B0F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 6"; + fRef = CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */; + name = "ThunderbirdPreferenceParser.h: 22"; rLen = 0; - rLoc = 336; + rLoc = 813; rType = 0; - vrLen = 1078; - vrLoc = 0; - }; - CB9365840F85980B00EF284E /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 8D1107310486CEB800E47090 /* Info.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - CFBundleVersion, - ); - name = /Users/charlie/selfcontrol/Info.plist; - rLen = 0; - rLoc = 2147483647; + vrLen = 1226; + vrLoc = 1441; }; - CB9365850F85980B00EF284E /* PBXTextBookmark */ = { + CB530F2C0F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - name = "HelperMain.m: 1"; + fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; + name = "LaunchctlHelper.h: 42"; rLen = 0; - rLoc = 0; + rLoc = 1648; rType = 0; - vrLen = 1389; - vrLoc = 0; + vrLen = 1168; + vrLoc = 480; }; - CB9367010F85BF2500EF284E /* PBXTextBookmark */ = { + CB530F2D0F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - name = "HelperMain.m: 1"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 102"; rLen = 0; - rLoc = 0; + rLoc = 4622; rType = 0; - vrLen = 1389; - vrLoc = 0; - }; - CB9367020F85BF2500EF284E /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = CB4295C20F53EF8C008E10CA /* org.eyebeam.SelfControl.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - ); - name = /Users/charlie/selfcontrol/org.eyebeam.SelfControl.plist; - rLen = 0; - rLoc = 2147483647; + vrLen = 897; + vrLoc = 3449; }; - CB9367030F85BF2500EF284E /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = CB9366E70F85BEF100EF284E /* NSAddTemplate.jpg */; + CB530F2E0F905942009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "error: syntax error before '-' token"; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + rLen = 1; + rLoc = 49; + rType = 1; }; - CB9367040F85BF2500EF284E /* PBXTextBookmark */ = { + CB530F2F0F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - name = "HelperMain.m: 1"; - rLen = 0; - rLoc = 0; + name = "HelperMain.m: 212"; + rLen = 9; + rLoc = 10851; rType = 0; - vrLen = 1389; - vrLoc = 0; - }; - CB9367050F85BF2500EF284E /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = CB4295C20F53EF8C008E10CA /* org.eyebeam.SelfControl.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - ); - name = /Users/charlie/selfcontrol/org.eyebeam.SelfControl.plist; - rLen = 0; - rLoc = 2147483647; - }; - CB9367060F85BF2500EF284E /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = CB9366E70F85BEF100EF284E /* NSAddTemplate.jpg */; - }; - CB93671A0F85C01C00EF284E /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = CB9366E70F85BEF100EF284E /* NSAddTemplate.jpg */; - }; - CB93672B0F85C15500EF284E /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = CB9366E70F85BEF100EF284E /* NSAddTemplate.jpg */; - }; - CB93672C0F85C15500EF284E /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = CB9366E70F85BEF100EF284E /* NSAddTemplate.jpg */; + vrLen = 1230; + vrLoc = 9936; }; - CB93672D0F85C15500EF284E /* PBXTextBookmark */ = { + CB530F300F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 325"; - rLen = 285; - rLoc = 14269; + fRef = CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */; + name = "ThunderbirdPreferenceParser.h: 22"; + rLen = 0; + rLoc = 813; rType = 0; - vrLen = 1014; - vrLoc = 13848; + vrLen = 1226; + vrLoc = 1441; }; - CB9367310F85C18600EF284E /* PBXTextBookmark */ = { + CB530F310F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; - name = "LaunchctlHelper.h: 34"; - rLen = 3; - rLoc = 1278; + name = "LaunchctlHelper.h: 42"; + rLen = 0; + rLoc = 1648; rType = 0; - vrLen = 1088; - vrLoc = 412; + vrLen = 1168; + vrLoc = 480; }; - CB9367320F85C18600EF284E /* PBXTextBookmark */ = { + CB530F320F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; - name = "LaunchctlHelper.m: 27"; - rLen = 0; - rLoc = 867; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 94"; + rLen = 42; + rLoc = 4364; rType = 0; - vrLen = 599; - vrLoc = 660; + vrLen = 904; + vrLoc = 2724; }; - CB9367330F85C18600EF284E /* PBXTextBookmark */ = { + CB530F330F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - comments = "warning: implicit declaration of function 'close'"; - fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; - rLen = 1; - rLoc = 151; - rType = 1; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 43"; + rLen = 0; + rLoc = 1819; + rType = 0; + vrLen = 1076; + vrLoc = 807; }; - CB9367340F85C18600EF284E /* PBXTextBookmark */ = { + CB530F340F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; - name = "LaunchctlHelper.h: 34"; - rLen = 3; - rLoc = 1278; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 102"; + rLen = 0; + rLoc = 4622; rType = 0; - vrLen = 1088; - vrLoc = 412; + vrLen = 897; + vrLoc = 3449; }; - CB9367350F85C18600EF284E /* PBXTextBookmark */ = { + CB530F350F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; - name = "IPFirewall.m: 27"; - rLen = 0; - rLoc = 880; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 47"; + rLen = 21; + rLoc = 2002; rType = 0; - vrLen = 744; - vrLoc = 405; + vrLen = 1150; + vrLoc = 734; }; - CB9367360F85C18600EF284E /* PBXTextBookmark */ = { + CB530F360F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; - name = "LaunchctlHelper.m: 27"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; rLen = 0; - rLoc = 867; + rLoc = 9941; rType = 0; - vrLen = 599; - vrLoc = 660; + vrLen = 3849; + vrLoc = 8960; }; - CB9367370F85C18600EF284E /* PBXTextBookmark */ = { + CB530F370F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; - name = "IPFirewall.m: 142"; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; rLen = 0; - rLoc = 5021; + rLoc = 19124; rType = 0; - vrLen = 849; - vrLoc = 4910; + vrLen = 1811; + vrLoc = 10624; }; - CB9367420F85C21500EF284E /* PBXTextBookmark */ = { + CB530F380F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; - name = "LaunchctlHelper.h: 39"; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; rLen = 0; - rLoc = 1572; + rLoc = 2687; rType = 0; - vrLen = 1328; - vrLoc = 304; + vrLen = 1706; + vrLoc = 417; }; - CB9367430F85C21500EF284E /* PBXTextBookmark */ = { + CB530F390F905942009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 325"; - rLen = 285; - rLoc = 14269; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 98"; + rLen = 597; + rLoc = 3341; rType = 0; - vrLen = 1014; - vrLoc = 13848; + vrLen = 1640; + vrLoc = 2748; + }; + CB530F440F905A79009929C0 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; }; - CB9367440F85C21500EF284E /* PBXTextBookmark */ = { + CB530F460F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 325"; - rLen = 285; - rLoc = 14269; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 47"; + rLen = 21; + rLoc = 2002; rType = 0; - vrLen = 1014; - vrLoc = 13848; + vrLen = 1150; + vrLoc = 734; }; - CB9367450F85C21500EF284E /* PBXTextBookmark */ = { + CB530F470F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; - name = "LaunchctlHelper.h: 39"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 228"; rLen = 0; - rLoc = 1572; + rLoc = 8946; rType = 0; - vrLen = 1328; - vrLoc = 304; + vrLen = 821; + vrLoc = 8532; }; - CB9367460F85C21500EF284E /* PBXTextBookmark */ = { + CB530F480F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 325"; - rLen = 285; - rLoc = 14269; + name = "AppController.m: 509"; + rLen = 0; + rLoc = 21507; rType = 0; - vrLen = 1014; - vrLoc = 13848; + vrLen = 816; + vrLoc = 20617; }; - CB9367470F85C21500EF284E /* PBXTextBookmark */ = { + CB530F490F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; - name = "IPFirewall.h: 24"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 116"; rLen = 0; - rLoc = 838; + rLoc = 5230; rType = 0; - vrLen = 1288; - vrLoc = 404; - }; - CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 518}}"; - sepNavSelRange = "{1413, 0}"; - sepNavVisRange = "{169, 1291}"; - }; + vrLen = 914; + vrLoc = 3486; }; - CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 383}}"; - sepNavSelRange = "{265, 0}"; - sepNavVisRange = "{0, 709}"; - }; + CB530F4A0F905A97009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 47"; + rLen = 21; + rLoc = 2002; + rType = 0; + vrLen = 1150; + vrLoc = 734; }; - CB9367530F85C35100EF284E /* PBXTextBookmark */ = { + CB530F4B0F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; - name = "IPFirewall.h: 24"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 102"; rLen = 0; - rLoc = 838; + rLoc = 4622; rType = 0; - vrLen = 1288; - vrLoc = 404; + vrLen = 838; + vrLoc = 3449; }; - CB9367540F85C35100EF284E /* PBXTextBookmark */ = { + CB530F4C0F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; - name = "NSCharacterSet+NewlineAddition.h: 15"; - rLen = 39; - rLoc = 1414; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 228"; + rLen = 0; + rLoc = 8946; rType = 0; - vrLen = 292; - vrLoc = 0; + vrLen = 821; + vrLoc = 8532; }; - CB9367550F85C35100EF284E /* PBXTextBookmark */ = { + CB530F4D0F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; - name = "NSCharacterSet+NewlineAddition.m: 25"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 509"; rLen = 0; - rLoc = 703; + rLoc = 21507; rType = 0; - vrLen = 709; - vrLoc = 0; + vrLen = 816; + vrLoc = 20617; }; - CB9367560F85C35100EF284E /* PBXTextBookmark */ = { + CB530F4E0F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 326"; - rLen = 285; - rLoc = 14269; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 116"; + rLen = 0; + rLoc = 5230; rType = 0; - vrLen = 1186; - vrLoc = 14962; + vrLen = 824; + vrLoc = 3486; }; - CB9367570F85C35100EF284E /* PBXTextBookmark */ = { + CB530F510F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; - name = "IPFirewall.h: 24"; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 103"; rLen = 0; - rLoc = 838; + rLoc = 4689; rType = 0; - vrLen = 1288; - vrLoc = 404; + vrLen = 1998; + vrLoc = 2887; }; - CB9367580F85C35100EF284E /* PBXTextBookmark */ = { + CB530F520F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; - name = "NSCharacterSet+NewlineAddition.h: 15"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 238"; rLen = 0; - rLoc = 1452; + rLoc = 8946; rType = 0; - vrLen = 291; - vrLoc = 0; + vrLen = 1435; + vrLoc = 7849; }; - CB9367590F85C35100EF284E /* PBXTextBookmark */ = { + CB530F530F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 326"; - rLen = 285; - rLoc = 14269; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; rType = 0; - vrLen = 1186; - vrLoc = 14962; + vrLen = 3849; + vrLoc = 8960; }; - CB93675A0F85C35100EF284E /* PBXTextBookmark */ = { + CB530F540F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; - name = "NSCharacterSet+NewlineAddition.h: 15"; - rLen = 39; - rLoc = 1414; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; + rLen = 0; + rLoc = 19124; rType = 0; - vrLen = 292; - vrLoc = 0; + vrLen = 1811; + vrLoc = 10624; }; - CB93675B0F85C35100EF284E /* PBXTextBookmark */ = { + CB530F550F905A97009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; - name = "NSCharacterSet+NewlineAddition.m: 12"; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; rLen = 0; - rLoc = 264; + rLoc = 2687; rType = 0; - vrLen = 312; - vrLoc = 0; + vrLen = 1706; + vrLoc = 417; }; - CB93675C0F85C35100EF284E /* PBXTextBookmark */ = { + CB530F5B0F905B67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; - name = "NSCharacterSet+NewlineAddition.h: 15"; - rLen = 39; - rLoc = 1414; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 42"; + rLen = 0; + rLoc = 1818; rType = 0; - vrLen = 292; - vrLoc = 0; + vrLen = 768; + vrLoc = 1095; }; - CB93675D0F85C35100EF284E /* PBXTextBookmark */ = { + CB530F5C0F905B67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; - name = "NSCharacterSet+NewlineAddition.m: 25"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 116"; rLen = 0; - rLoc = 703; + rLoc = 5230; rType = 0; - vrLen = 709; - vrLoc = 0; + vrLen = 564; + vrLoc = 3751; }; - CB93675E0F85C35100EF284E /* PBXTextBookmark */ = { + CB530F5D0F905B67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; + comments = "error: 'new' undeclared (first use in this function)"; fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 326"; - rLen = 285; - rLoc = 14269; + rLen = 1; + rLoc = 507; + rType = 1; + }; + CB530F5E0F905B67009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 42"; + rLen = 0; + rLoc = 1818; rType = 0; - vrLen = 1186; - vrLoc = 14962; + vrLen = 768; + vrLoc = 1095; }; - CB9367640F85C37400EF284E /* PBXTextBookmark */ = { + CB530F5F0F905B67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 326"; - rLen = 285; - rLoc = 14269; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 116"; + rLen = 0; + rLoc = 5230; rType = 0; - vrLen = 1186; - vrLoc = 14962; + vrLen = 564; + vrLoc = 3751; }; - CB93677F0F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F600F905B67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 326"; - rLen = 285; - rLoc = 14269; + name = "AppController.m: 507"; + rLen = 26; + rLoc = 21438; rType = 0; - vrLen = 1186; - vrLoc = 14962; + vrLen = 367; + vrLoc = 21089; }; - CB9367800F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F620F905B67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; - name = "TimerWindowController.h: 43"; - rLen = 0; - rLoc = 1578; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + rLen = 9; + rLoc = 4694; rType = 0; - vrLen = 1157; - vrLoc = 417; }; - CB9367810F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F630F905B67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */; - name = "ThunderbirdPreferenceParser.h: 1"; - rLen = 813; - rLoc = 0; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 116"; + rLen = 0; + rLoc = 5230; rType = 0; - vrLen = 1120; - vrLoc = 56; + vrLen = 922; + vrLoc = 3449; }; - CB9367820F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F670F905B75009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; - name = "IPFirewall.h: 26"; - rLen = 350; - rLoc = 840; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 105"; + rLen = 9; + rLoc = 4694; rType = 0; - vrLen = 1288; - vrLoc = 404; + vrLen = 795; + vrLoc = 3486; }; - CB9367830F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F680F905B75009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; - name = "IPFirewall.m: 116"; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 116"; rLen = 0; - rLoc = 4237; + rLoc = 4602; rType = 0; - vrLen = 1029; - vrLoc = 3304; + vrLen = 1047; + vrLoc = 3550; }; - CB9367840F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F690F905B75009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; - name = "NSCharacterSet+NewlineAddition.h: 33"; - rLen = 0; - rLoc = 1413; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 506"; + rLen = 42; + rLoc = 21380; rType = 0; - vrLen = 1291; - vrLoc = 169; + vrLen = 816; + vrLoc = 20617; }; - CB9367850F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F6A0F905B75009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; - name = "NSCharacterSet+NewlineAddition.m: 13"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 105"; + rLen = 9; + rLoc = 4694; + rType = 0; + vrLen = 795; + vrLoc = 3486; + }; + CB530F6B0F905B75009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 506"; + rLen = 42; + rLoc = 21380; + rType = 0; + vrLen = 816; + vrLoc = 20617; + }; + CB530F6C0F905B75009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 116"; rLen = 0; - rLoc = 265; + rLoc = 4602; rType = 0; - vrLen = 709; - vrLoc = 0; + vrLen = 1047; + vrLoc = 3550; }; - CB9367860F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F6D0F905B75009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - name = "HelperMain.m: 1"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 509"; rLen = 0; - rLoc = 0; + rLoc = 21550; rType = 0; - vrLen = 1405; - vrLoc = 3; + vrLen = 881; + vrLoc = 20578; }; - CB9367870F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F6E0F905B75009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */; - name = "ThunderbirdPreferenceParser.m: 132"; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 103"; rLen = 0; - rLoc = 5028; + rLoc = 4689; rType = 0; - vrLen = 1596; - vrLoc = 7268; + vrLen = 1998; + vrLoc = 2887; }; - CB9367880F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F6F0F905B75009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 326"; - rLen = 285; - rLoc = 14269; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 238"; + rLen = 0; + rLoc = 8946; rType = 0; - vrLen = 1186; - vrLoc = 14962; + vrLen = 1435; + vrLoc = 7849; }; - CB9367890F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F700F905B75009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */; - name = "ThunderbirdPreferenceParser.m: 132"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; rLen = 0; - rLoc = 5028; + rLoc = 9941; rType = 0; - vrLen = 1674; - vrLoc = 7552; + vrLen = 3849; + vrLoc = 8960; }; - CB93678A0F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F710F905B75009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */; - name = "ThunderbirdPreferenceParser.h: 25"; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; rLen = 0; - rLoc = 881; + rLoc = 19124; rType = 0; - vrLen = 1039; - vrLoc = 0; + vrLen = 1811; + vrLoc = 10624; }; - CB93678B0F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F720F905B75009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; - name = "TimerWindowController.h: 43"; + name = "TimerWindowController.h: 64"; rLen = 0; - rLoc = 1578; + rLoc = 2687; rType = 0; - vrLen = 1157; + vrLen = 1706; vrLoc = 417; }; - CB93678C0F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F770F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */; - name = "ThunderbirdPreferenceParser.m: 132"; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 113"; rLen = 0; - rLoc = 5028; + rLoc = 4511; rType = 0; - vrLen = 1596; - vrLoc = 7268; + vrLen = 1090; + vrLoc = 3061; }; - CB93678D0F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F780F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */; - name = "ThunderbirdPreferenceParser.h: 1"; - rLen = 813; - rLoc = 0; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 512"; + rLen = 0; + rLoc = 21559; rType = 0; - vrLen = 1120; - vrLoc = 56; + vrLen = 846; + vrLoc = 20617; }; - CB93678E0F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F790F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; - name = "NSCharacterSet+NewlineAddition.h: 25"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; rLen = 0; - rLoc = 985; + rLoc = 8946; rType = 0; - vrLen = 877; - vrLoc = 53; + vrLen = 930; + vrLoc = 8097; }; - CB93678F0F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F7A0F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; - name = "IPFirewall.h: 26"; - rLen = 350; - rLoc = 840; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; rType = 0; - vrLen = 1288; - vrLoc = 404; + vrLen = 1431; + vrLoc = 3264; }; - CB9367900F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F7B0F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; - name = "NSCharacterSet+NewlineAddition.m: 25"; - rLen = 0; - rLoc = 703; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 105"; + rLen = 9; + rLoc = 4694; rType = 0; - vrLen = 709; - vrLoc = 0; + vrLen = 832; + vrLoc = 3483; }; - CB9367910F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F7C0F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; - name = "NSCharacterSet+NewlineAddition.h: 29"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 509"; rLen = 0; - rLoc = 1413; + rLoc = 21550; rType = 0; - vrLen = 1096; - vrLoc = 53; + vrLen = 881; + vrLoc = 20578; }; - CB9367920F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F7D0F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; - name = "NSCharacterSet+NewlineAddition.m: 25"; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 113"; rLen = 0; - rLoc = 703; + rLoc = 4511; rType = 0; - vrLen = 709; - vrLoc = 0; + vrLen = 1090; + vrLoc = 3061; }; - CB9367930F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F7E0F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; - name = "IPFirewall.h: 26"; - rLen = 350; - rLoc = 840; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 512"; + rLen = 0; + rLoc = 21559; rType = 0; - vrLen = 1288; - vrLoc = 404; + vrLen = 846; + vrLoc = 20617; }; - CB9367940F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F7F0F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; - name = "IPFirewall.m: 116"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; rLen = 0; - rLoc = 4237; + rLoc = 8946; rType = 0; - vrLen = 1029; - vrLoc = 3304; + vrLen = 930; + vrLoc = 8097; }; - CB9367950F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F800F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; - name = "NSCharacterSet+NewlineAddition.m: 13"; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; rLen = 0; - rLoc = 265; + rLoc = 4689; rType = 0; - vrLen = 709; - vrLoc = 0; + vrLen = 1431; + vrLoc = 3264; }; - CB9367960F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F810F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; - name = "NSCharacterSet+NewlineAddition.h: 31"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 95"; rLen = 0; - rLoc = 1457; + rLoc = 4409; rType = 0; - vrLen = 1202; - vrLoc = 128; + vrLen = 911; + vrLoc = 3649; }; - CB9367970F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F820F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; - name = "NSCharacterSet+NewlineAddition.m: 13"; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; rLen = 0; - rLoc = 265; + rLoc = 4689; rType = 0; - vrLen = 709; - vrLoc = 0; + vrLen = 1888; + vrLoc = 2807; }; - CB9367980F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F830F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; - name = "NSCharacterSet+NewlineAddition.h: 33"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; rLen = 0; - rLoc = 1413; + rLoc = 8946; rType = 0; - vrLen = 1291; - vrLoc = 169; + vrLen = 1409; + vrLoc = 7618; }; - CB9367990F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F840F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; - name = "NSCharacterSet+NewlineAddition.m: 13"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; rLen = 0; - rLoc = 265; + rLoc = 9941; rType = 0; - vrLen = 709; - vrLoc = 0; + vrLen = 3849; + vrLoc = 8960; }; - CB93679A0F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F850F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - name = "HelperMain.m: 1"; + name = "HelperMain.m: 366"; rLen = 0; - rLoc = 0; + rLoc = 19124; rType = 0; - vrLen = 1405; - vrLoc = 3; + vrLen = 1811; + vrLoc = 10624; }; - CB93679B0F85C6F900EF284E /* PBXTextBookmark */ = { + CB530F860F905CE3009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */; - name = "ThunderbirdPreferenceParser.m: 148"; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; rLen = 0; - rLoc = 5786; + rLoc = 2687; rType = 0; - vrLen = 1519; - vrLoc = 6747; + vrLen = 1706; + vrLoc = 417; }; - CB93680F0F85D09000EF284E /* PBXTextBookmark */ = { + CB530F870F905D0F009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 379"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 110"; rLen = 0; - rLoc = 16271; + rLoc = 4924; rType = 0; - vrLen = 947; - vrLoc = 15324; + vrLen = 1003; + vrLoc = 4498; }; - CB9368100F85D09000EF284E /* PBXTextBookmark */ = { + CB530F880F905D0F009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; - name = "AppController.h: 69"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 512"; rLen = 0; - rLoc = 2609; + rLoc = 21559; rType = 0; - vrLen = 1295; - vrLoc = 1684; + vrLen = 846; + vrLoc = 20617; }; - CB9368110F85D09000EF284E /* PBXTextBookmark */ = { + CB530F890F905D0F009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; - name = "AppController.h: 69"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 110"; rLen = 0; - rLoc = 2609; + rLoc = 4924; rType = 0; - vrLen = 1295; - vrLoc = 1684; + vrLen = 1003; + vrLoc = 4498; }; - CB9368120F85D09000EF284E /* PBXTextBookmark */ = { + CB530F8A0F905D0F009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 379"; + name = "AppController.m: 294"; rLen = 0; - rLoc = 16271; + rLoc = 13186; rType = 0; - vrLen = 947; - vrLoc = 15324; + vrLen = 3389; + vrLoc = 10045; }; - CB9368130F85D09000EF284E /* PBXTextBookmark */ = { + CB530F8B0F905D0F009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; - name = "AppController.h: 58"; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; rLen = 0; - rLoc = 2134; + rLoc = 4689; rType = 0; - vrLen = 1314; - vrLoc = 1867; - }; - CB9368250F85D84E00EF284E /* Distribution */ = { - activeExec = 0; - }; - CB9368390F85DA1D00EF284E /* releasenotes.html */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 383}}"; - sepNavSelRange = "{576, 0}"; - sepNavVisRange = "{0, 576}"; - }; + vrLen = 1888; + vrLoc = 2807; }; - CB93683F0F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F8C0F905D0F009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; - name = "AppController.h: 58"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; rLen = 0; - rLoc = 2134; + rLoc = 8946; rType = 0; - vrLen = 1314; - vrLoc = 1867; + vrLen = 1409; + vrLoc = 7618; }; - CB9368400F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F8D0F905D0F009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; - name = "releasenotes.html: 12"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; rLen = 0; - rLoc = 410; + rLoc = 9941; rType = 0; - vrLen = 410; - vrLoc = 0; + vrLen = 3849; + vrLoc = 8960; }; - CB9368410F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F8E0F905D0F009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 11"; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; rLen = 0; - rLoc = 636; + rLoc = 19124; rType = 0; - vrLen = 1078; - vrLoc = 0; + vrLen = 1811; + vrLoc = 10624; }; - CB9368420F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F8F0F905D0F009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; - name = "AppController.h: 58"; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; rLen = 0; - rLoc = 2134; + rLoc = 2687; rType = 0; - vrLen = 1314; - vrLoc = 1867; + vrLen = 1706; + vrLoc = 417; }; - CB9368430F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F910F905D19009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 5"; - rLen = 55; - rLoc = 240; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 294"; + rLen = 0; + rLoc = 13186; rType = 0; - vrLen = 1078; - vrLoc = 0; + vrLen = 3389; + vrLoc = 10045; }; - CB9368440F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F920F905D19009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; - name = "releasenotes.html: 1"; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; rLen = 0; - rLoc = 1; + rLoc = 4689; rType = 0; - vrLen = 1; - vrLoc = 0; + vrLen = 1971; + vrLoc = 2724; }; - CB9368450F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F930F905D19009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 11"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; rLen = 0; - rLoc = 636; + rLoc = 8946; rType = 0; - vrLen = 1078; - vrLoc = 0; + vrLen = 1505; + vrLoc = 7518; }; - CB9368460F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F940F905D19009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; - name = "releasenotes.html: 9"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; rLen = 0; - rLoc = 236; + rLoc = 9941; rType = 0; - vrLen = 236; - vrLoc = 0; + vrLen = 3849; + vrLoc = 8960; }; - CB9368470F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F950F905D19009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 11"; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; rLen = 0; - rLoc = 636; + rLoc = 19124; rType = 0; - vrLen = 1078; - vrLoc = 0; + vrLen = 1811; + vrLoc = 10624; }; - CB9368480F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F960F905D19009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; - name = "releasenotes.html: 12"; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; rLen = 0; - rLoc = 410; + rLoc = 2687; rType = 0; - vrLen = 410; - vrLoc = 0; + vrLen = 1706; + vrLoc = 417; }; - CB9368490F85DC0C00EF284E /* PBXTextBookmark */ = { + CB530F970F905D67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 13"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 290"; rLen = 0; - rLoc = 872; + rLoc = 13173; rType = 0; - vrLen = 1078; - vrLoc = 0; + vrLen = 3503; + vrLoc = 10045; }; - CB93684B0F85DCA400EF284E /* PBXTextBookmark */ = { + CB530F980F905D67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 8"; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; rLen = 0; - rLoc = 446; + rLoc = 4689; rType = 0; - vrLen = 1078; - vrLoc = 0; + vrLen = 1971; + vrLoc = 2724; }; - CB97041E0F868ADC00B8FC30 /* PBXTextBookmark */ = { + CB530F990F905D67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 8"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; rLen = 0; - rLoc = 446; + rLoc = 8946; rType = 0; - vrLen = 1078; - vrLoc = 0; + vrLen = 1505; + vrLoc = 7518; }; - CB9704340F868B6600B8FC30 /* PBXTextBookmark */ = { + CB530F9A0F905D67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 8"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; rLen = 0; - rLoc = 446; + rLoc = 9941; rType = 0; - vrLen = 1078; - vrLoc = 0; + vrLen = 3849; + vrLoc = 8960; }; - CB9704360F868CCC00B8FC30 /* PBXTextBookmark */ = { + CB530F9B0F905D67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 18"; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; rLen = 0; - rLoc = 1058; + rLoc = 19124; rType = 0; - vrLen = 1705; - vrLoc = 0; + vrLen = 1811; + vrLoc = 10624; }; - CB9704370F868CCC00B8FC30 /* PBXTextBookmark */ = { + CB530F9C0F905D67009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 18"; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; rLen = 0; - rLoc = 1058; + rLoc = 2687; rType = 0; - vrLen = 1705; - vrLoc = 0; + vrLen = 1706; + vrLoc = 417; }; - CB9704380F868CCC00B8FC30 /* PBXTextBookmark */ = { + CB530F9F0F905D92009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; - name = "releasenotes.html: 12"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 291"; rLen = 0; - rLoc = 410; + rLoc = 13281; rType = 0; - vrLen = 410; - vrLoc = 0; + vrLen = 3251; + vrLoc = 10313; }; - CB9704390F868D7A00B8FC30 /* PBXTextBookmark */ = { + CB530FA00F905D92009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; - name = "releasenotes.html: 12"; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; rLen = 0; - rLoc = 410; + rLoc = 4689; rType = 0; - vrLen = 410; - vrLoc = 0; + vrLen = 1971; + vrLoc = 2724; }; - CB97043A0F868D7A00B8FC30 /* PBXTextBookmark */ = { + CB530FA10F905D92009929C0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1505; + vrLoc = 7518; + }; + CB530FA20F905D92009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3849; + vrLoc = 8960; + }; + CB530FA30F905D92009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; + rLen = 0; + rLoc = 19124; + rType = 0; + vrLen = 1811; + vrLoc = 10624; + }; + CB530FA40F905D92009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1706; + vrLoc = 417; + }; + CB530FA60F905DD6009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 295"; + rLen = 0; + rLoc = 13200; + rType = 0; + vrLen = 3297; + vrLoc = 10371; + }; + CB530FA70F905DD6009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB530FA80F905DD6009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1505; + vrLoc = 7518; + }; + CB530FA90F905DD6009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3849; + vrLoc = 8960; + }; + CB530FAA0F905DD6009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; + rLen = 0; + rLoc = 19124; + rType = 0; + vrLen = 1811; + vrLoc = 10624; + }; + CB530FAB0F905DD6009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1706; + vrLoc = 417; + }; + CB530FB20F90607A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 508"; + rLen = 26; + rLoc = 21438; + rType = 0; + vrLen = 664; + vrLoc = 20713; + }; + CB530FB30F90607A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 93"; + rLen = 8; + rLoc = 3514; + rType = 0; + vrLen = 690; + vrLoc = 2890; + }; + CB530FB40F90607A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 413"; + rLen = 8; + rLoc = 18065; + rType = 0; + vrLen = 1017; + vrLoc = 17314; + }; + CB530FB50F90607A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB90BF820F49F430006D202D /* HostImporter.m */; + rLen = 8; + rLoc = 1027; + rType = 0; + }; + CB530FB60F90607A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 93"; + rLen = 8; + rLoc = 3514; + rType = 0; + vrLen = 690; + vrLoc = 2890; + }; + CB530FB70F90607A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 413"; + rLen = 8; + rLoc = 18065; + rType = 0; + vrLen = 1017; + vrLoc = 17314; + }; + CB530FB80F90607A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB90BF820F49F430006D202D /* HostImporter.m */; + name = "HostImporter.m: 30"; + rLen = 8; + rLoc = 1027; + rType = 0; + vrLen = 540; + vrLoc = 2638; + }; + CB530FBB0F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 295"; + rLen = 0; + rLoc = 13200; + rType = 0; + vrLen = 3297; + vrLoc = 10371; + }; + CB530FBC0F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 930; + vrLoc = 8097; + }; + CB530FBD0F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 28"; + rLen = 138; + rLoc = 903; + rType = 0; + vrLen = 1091; + vrLoc = 381; + }; + CB530FBE0F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 28"; + rLen = 0; + rLoc = 1036; + rType = 0; + vrLen = 1138; + vrLoc = 123; + }; + CB530FBF0F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 111"; + rLen = 0; + rLoc = 4924; + rType = 0; + vrLen = 1000; + vrLoc = 4503; + }; + CB530FC00F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 295"; + rLen = 0; + rLoc = 13200; + rType = 0; + vrLen = 3297; + vrLoc = 10371; + }; + CB530FC10F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1008; + vrLoc = 31; + }; + CB530FC20F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 295"; + rLen = 0; + rLoc = 13200; + rType = 0; + vrLen = 3297; + vrLoc = 10371; + }; + CB530FC30F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 930; + vrLoc = 8097; + }; + CB530FC40F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 28"; + rLen = 138; + rLoc = 903; + rType = 0; + vrLen = 1091; + vrLoc = 381; + }; + CB530FC50F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 28"; + rLen = 0; + rLoc = 1036; + rType = 0; + vrLen = 1138; + vrLoc = 123; + }; + CB530FC60F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 93"; + rLen = 0; + rLoc = 3510; + rType = 0; + vrLen = 1158; + vrLoc = 2368; + }; + CB530FC70F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB530FC80F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1505; + vrLoc = 7518; + }; + CB530FC90F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3849; + vrLoc = 8960; + }; + CB530FCA0F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; + rLen = 0; + rLoc = 19124; + rType = 0; + vrLen = 1811; + vrLoc = 10624; + }; + CB530FCB0F90609A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 67"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1729; + vrLoc = 417; + }; + CB530FCE0F906179009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 105"; + rLen = 0; + rLoc = 3877; + rType = 0; + vrLen = 1047; + vrLoc = 2878; + }; + CB530FCF0F906179009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB530FD00F906179009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1509; + vrLoc = 7518; + }; + CB530FD10F906179009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3850; + vrLoc = 8960; + }; + CB530FD20F906179009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; + rLen = 0; + rLoc = 19124; + rType = 0; + vrLen = 1861; + vrLoc = 10624; + }; + CB530FD30F906179009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 67"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1765; + vrLoc = 417; + }; + CB530FD50F906196009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 67"; + rLen = 0; + rLoc = 2222; + rType = 0; + vrLen = 1229; + vrLoc = 1745; + }; + CB530FD60F906196009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB530FD70F906196009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1505; + vrLoc = 7518; + }; + CB530FD80F906196009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3849; + vrLoc = 8960; + }; + CB530FD90F906196009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; + rLen = 0; + rLoc = 19124; + rType = 0; + vrLen = 1811; + vrLoc = 10624; + }; + CB530FDA0F906196009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 67"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1729; + vrLoc = 417; + }; + CB530FDF0F906342009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 67"; + rLen = 0; + rLoc = 2222; + rType = 0; + vrLen = 1319; + vrLoc = 1745; + }; + CB530FE00F906342009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 95"; + rLen = 0; + rLoc = 4954; + rType = 0; + vrLen = 2182; + vrLoc = 3127; + }; + CB530FE10F906342009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1509; + vrLoc = 7518; + }; + CB530FE20F906342009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB530FE30F906342009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3850; + vrLoc = 8960; + }; + CB530FE40F906342009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 67"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1765; + vrLoc = 417; + }; + CB530FE70F90646A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 67"; + rLen = 0; + rLoc = 2222; + rType = 0; + vrLen = 1229; + vrLoc = 1745; + }; + CB530FE80F90646A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 65"; + rLen = 0; + rLoc = 3227; + rType = 0; + vrLen = 2078; + vrLoc = 2928; + }; + CB530FE90F90646A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1505; + vrLoc = 7518; + }; + CB530FEA0F90646A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB530FEB0F90646A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3849; + vrLoc = 8960; + }; + CB530FEC0F90646A009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 67"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1729; + vrLoc = 417; + }; + CB530FEE0F90652E009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 67"; + rLen = 0; + rLoc = 2222; + rType = 0; + vrLen = 1229; + vrLoc = 1745; + }; + CB530FEF0F90652E009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 67"; + rLen = 0; + rLoc = 3267; + rType = 0; + vrLen = 2628; + vrLoc = 2351; + }; + CB530FF00F90652E009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1505; + vrLoc = 7518; + }; + CB530FF10F90652E009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB530FF20F90652E009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3849; + vrLoc = 8960; + }; + CB530FF30F90652E009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 67"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1729; + vrLoc = 417; + }; + CB530FF50F906601009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 67"; + rLen = 0; + rLoc = 2222; + rType = 0; + vrLen = 1229; + vrLoc = 1745; + }; + CB530FF60F906601009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 65"; + rLen = 0; + rLoc = 3255; + rType = 0; + vrLen = 2637; + vrLoc = 2351; + }; + CB530FF70F906601009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1505; + vrLoc = 7518; + }; + CB530FF80F906601009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB530FF90F906601009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3849; + vrLoc = 8960; + }; + CB530FFA0F906601009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 67"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1729; + vrLoc = 417; + }; + CB530FFC0F9066C0009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 67"; + rLen = 0; + rLoc = 2222; + rType = 0; + vrLen = 1229; + vrLoc = 1745; + }; + CB530FFD0F9066C0009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 64"; + rLen = 0; + rLoc = 3193; + rType = 0; + vrLen = 2158; + vrLoc = 3660; + }; + CB530FFE0F9066C0009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1505; + vrLoc = 7518; + }; + CB530FFF0F9066C0009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB5310000F9066C0009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3849; + vrLoc = 8960; + }; + CB5310010F9066C0009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 67"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1729; + vrLoc = 417; + }; + CB5310080F906833009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 67"; + rLen = 0; + rLoc = 2222; + rType = 0; + vrLen = 1229; + vrLoc = 1745; + }; + CB5310090F906833009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + rLen = 5; + rLoc = 13146; + rType = 0; + }; + CB53100A0F906833009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 67"; + rLen = 0; + rLoc = 2222; + rType = 0; + vrLen = 1229; + vrLoc = 1745; + }; + CB53100B0F906833009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 293"; + rLen = 5; + rLoc = 13146; + rType = 0; + vrLen = 3276; + vrLoc = 10606; + }; + CB53100C0F906833009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 279"; + rLen = 0; + rLoc = 14325; + rType = 0; + vrLen = 2337; + vrLoc = 13277; + }; + CB53100D0F906833009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3849; + vrLoc = 8960; + }; + CB53100E0F906833009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1505; + vrLoc = 7518; + }; + CB53100F0F906833009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB5310100F906833009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 67"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1729; + vrLoc = 417; + }; + CB5310120F90687B009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 293"; + rLen = 5; + rLoc = 13146; + rType = 0; + vrLen = 3276; + vrLoc = 10606; + }; + CB5310130F90687B009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 301"; + rLen = 0; + rLoc = 15677; + rType = 0; + vrLen = 2146; + vrLoc = 14455; + }; + CB5310140F90687B009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 272"; + rLen = 0; + rLoc = 9941; + rType = 0; + vrLen = 3849; + vrLoc = 8960; + }; + CB5310150F90687B009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 227"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 1505; + vrLoc = 7518; + }; + CB5310160F90687B009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 100"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1971; + vrLoc = 2724; + }; + CB5310170F90687B009929C0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 67"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1729; + vrLoc = 417; + }; + CB7E75660F60368600A9B93C /* TimerWindowController.m:35 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + functionName = "-init"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 35; + location = SelfControl; + modificationTime = 261118827.955726; + state = 2; + }; + CB90BF810F49F430006D202D /* HostImporter.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {909, 672}}"; + sepNavSelRange = "{1129, 0}"; + sepNavVisRange = "{542, 1043}"; + sepNavWindowFrame = "{{15, 93}, {955, 685}}"; + }; + }; + CB90BF820F49F430006D202D /* HostImporter.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {987, 1400}}"; + sepNavSelRange = "{1027, 8}"; + sepNavVisRange = "{2638, 540}"; + sepNavWindowFrame = "{{381, 98}, {955, 680}}"; + }; + }; + CB90BF950F4A00B1006D202D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB90BF810F49F430006D202D /* HostImporter.h */; + name = "SCHostImporter.h: 16"; + rLen = 0; + rLoc = 1244; + rType = 0; + vrLen = 318; + vrLoc = 0; + }; + CB9365770F85846200EF284E /* SelfControlAppcast.xml */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1590, 406}}"; + sepNavSelRange = "{1646, 0}"; + sepNavVisRange = "{39, 1726}"; + }; + }; + CB93657E0F85980B00EF284E /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + CFBundleVersion, + ); + name = /Users/charlie/selfcontrol/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; + CB9365800F85980B00EF284E /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + CFBundleSignature, + ); + name = /Users/charlie/selfcontrol/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; + CB9365810F85980B00EF284E /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; + name = "SelfControlAppcast.xml: 5"; + rLen = 77; + rLoc = 240; + rType = 0; + vrLen = 1078; + vrLoc = 0; + }; + CB9367020F85BF2500EF284E /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = CB4295C20F53EF8C008E10CA /* org.eyebeam.SelfControl.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = /Users/charlie/selfcontrol/org.eyebeam.SelfControl.plist; + rLen = 0; + rLoc = 2147483647; + }; + CB93672B0F85C15500EF284E /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = CB9366E70F85BEF100EF284E /* NSAddTemplate.jpg */; + }; + CB93672C0F85C15500EF284E /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = CB9366E70F85BEF100EF284E /* NSAddTemplate.jpg */; + }; + CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {909, 518}}"; + sepNavSelRange = "{816, 24}"; + sepNavVisRange = "{244, 1219}"; + }; + }; + CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {909, 560}}"; + sepNavSelRange = "{859, 0}"; + sepNavVisRange = "{424, 929}"; + }; + }; + CB9367580F85C35100EF284E /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; + name = "NSCharacterSet+NewlineAddition.h: 15"; + rLen = 0; + rLoc = 1455; + rType = 0; + vrLen = 291; + vrLoc = 0; + }; + CB93675B0F85C35100EF284E /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; + name = "NSCharacterSet+NewlineAddition.m: 12"; + rLen = 0; + rLoc = 908; + rType = 0; + vrLen = 312; + vrLoc = 0; + }; + CB9368250F85D84E00EF284E /* Distribution */ = { + activeExec = 0; + }; + CB9368390F85DA1D00EF284E /* releasenotes.html */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {911, 383}}"; + sepNavSelRange = "{576, 0}"; + sepNavVisRange = "{0, 576}"; + }; + }; + CB9368440F85DC0C00EF284E /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; + name = "releasenotes.html: 1"; + rLen = 0; + rLoc = 1; + rType = 0; + vrLen = 1; + vrLoc = 0; + }; + CB97043E0F868DED00B8FC30 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; name = "releasenotes.html: 18"; rLen = 0; - rLoc = 576; + rLoc = 576; + rType = 0; + vrLen = 576; + vrLoc = 0; + }; + CBA2AFD10F39EC12005AFEBE /* org.eyebeam.SelfControl */ = { + activeExec = 0; + executables = ( + CBA2AFD30F39EC12005AFEBE /* org.eyebeam.SelfControl */, + ); + }; + CBA2AFD30F39EC12005AFEBE /* org.eyebeam.SelfControl */ = { + isa = PBXExecutable; + activeArgIndices = ( + YES, + YES, + ); + argumentStrings = ( + charlie, + add, + ); + autoAttachOnCrash = 1; + breakpointsEnabled = 0; + configStateDict = { + "PBXLSLaunchAction-0" = { + PBXLSLaunchAction = 0; + PBXLSLaunchStartAction = 1; + PBXLSLaunchStdioStyle = 2; + PBXLSLaunchStyle = 0; + class = PBXLSRunLaunchConfig; + commandLineArgs = ( + ); + displayName = "Executable Runner"; + environment = { + }; + identifier = com.apple.Xcode.launch.runConfig; + remoteHostInfo = ""; + startActionInfo = ""; + }; + }; + customDataFormattersEnabled = 1; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = ""; + enableDebugStr = 1; + environmentEntries = ( + ); + executableSystemSymbolLevel = 0; + executableUserSymbolLevel = 0; + libgmallocEnabled = 0; + name = org.eyebeam.SelfControl; + savedGlobals = { + }; + sourceDirectories = ( + ); + variableFormatDictionary = { + $cs = 1; + $ds = 1; + $eax = 1; + $ebp = 1; + $ebx = 1; + $ecx = 1; + $edi = 1; + $edx = 1; + $eflags = 1; + $eip = 1; + $es = 1; + $esi = 1; + $esp = 1; + $gs = 1; + $ss = 1; + }; + }; + CBA2AFD70F39EC46005AFEBE /* HelperMain.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {909, 728}}"; + sepNavSelRange = "{1303, 0}"; + sepNavVisRange = "{830, 1203}"; + sepNavWindowFrame = "{{525, 98}, {1101, 680}}"; + }; + }; + CBA2AFD80F39EC46005AFEBE /* HelperMain.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {3108, 8358}}"; + sepNavSelRange = "{15677, 0}"; + sepNavVisRange = "{14455, 2146}"; + sepNavWindowFrame = "{{364, 98}, {1257, 680}}"; + }; + }; + CBA2E7590F41388800571571 /* IPFirewall.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {909, 826}}"; + sepNavSelRange = "{1199, 0}"; + sepNavVisRange = "{1271, 1154}"; + sepNavWindowFrame = "{{468, 54}, {1101, 680}}"; + }; + }; + CBA2E75A0F41388800571571 /* IPFirewall.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {909, 2254}}"; + sepNavSelRange = "{796, 0}"; + sepNavVisRange = "{4906, 859}"; + sepNavWindowFrame = "{{443, -545}, {1101, 680}}"; + }; + }; + CBB0B3CA0F3E79B1004862D5 /* DomainListWindowController.h:31 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + hitCount = 0; + ignoreCount = 0; + lineNumber = 31; + modificationTime = 261118827.954936; + state = 2; + }; + CBB57CB50F842DCD00CDD9EE /* DomainListWindowController.m:157 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + functionName = "-tableView:willDisplayCell:forTableColumn:row:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 157; + location = SelfControl; + modificationTime = 261118827.95581; + state = 2; + }; + CBB57CBF0F842E2500CDD9EE /* DomainListWindowController.m:150 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + functionName = "-tableView:willDisplayCell:forTableColumn:row:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 150; + location = SelfControl; + modificationTime = 261118827.95595; + state = 2; + }; + CBB57CC10F842E2700CDD9EE /* DomainListWindowController.m:149 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + functionName = "-tableView:willDisplayCell:forTableColumn:row:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 149; + location = SelfControl; + modificationTime = 261118827.956073; + state = 2; + }; + CBB57CC30F842E2B00CDD9EE /* DomainListWindowController.m:145 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + functionName = "-tableView:willDisplayCell:forTableColumn:row:"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 145; + location = SelfControl; + modificationTime = 261118827.956195; + state = 2; + }; + CBB636F60F3DEF6C00EBD135 /* AppController.m:3 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + hitCount = 0; + ignoreCount = 0; + lineNumber = 3; + location = SelfControl; + modificationTime = 261118827.954688; + state = 2; + }; + CBB637210F3E296000EBD135 /* DomainListWindowController.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1042, 1428}}"; + sepNavSelRange = "{4689, 0}"; + sepNavVisRange = "{2724, 1971}"; + sepNavWindowFrame = "{{740, 59}, {1101, 680}}"; + }; + }; + CBB637220F3E296000EBD135 /* DomainListWindowController.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1470, 3220}}"; + sepNavSelRange = "{8946, 0}"; + sepNavVisRange = "{7518, 1505}"; + sepNavWindowFrame = "{{938, 98}, {1101, 680}}"; + }; + }; + CBBCA2390F5505BB00C75324 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB4295C20F53EF8C008E10CA /* org.eyebeam.SelfControl.plist */; + name = "org.eyebeam.SelfControl.plist: 18"; + rLen = 0; + rLoc = 623; + rType = 0; + vrLen = 957; + vrLoc = 166; + }; + CBBD3B710F562C8B00E8A802 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: init"; + rLen = 0; + rLoc = 1363; + rType = 0; + vrLen = 695; + vrLoc = 1728; + }; + CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {909, 728}}"; + sepNavSelRange = "{1666, 0}"; + sepNavVisRange = "{866, 800}"; + sepNavWindowFrame = "{{532, 93}, {955, 685}}"; + }; + }; + CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {909, 588}}"; + sepNavSelRange = "{1648, 0}"; + sepNavVisRange = "{480, 1168}"; + sepNavWindowFrame = "{{192, 220}, {750, 558}}"; + }; + }; + CBC2F8760F4675F900CF2A42 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "helpermain.m: 202"; + rLen = 0; + rLoc = 23082; + rType = 0; + vrLen = 0; + vrLoc = 8449; + }; + CBC2F8770F4675F900CF2A42 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; + name = "SCLaunchctlHelper.m: 27"; + rLen = 0; + rLoc = 870; + rType = 0; + vrLen = 571; + vrLoc = 353; + }; + CBC2F89E0F47793D00CF2A42 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; + name = "SCLaunchctlHelper.h: 101"; + rLen = 0; + rLoc = 1648; + rType = 0; + vrLen = 168; + vrLoc = 228; + }; + CBC2F95D0F478B8F00CF2A42 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB4C58D90F3F90B000B5D7CB /* Credits.rtf */; + name = "Credits.rtf: 3"; + rLen = 0; + rLoc = 28; + rType = 0; + vrLen = 80; + vrLoc = 0; + }; + CBC2FB840F47BB8300CF2A42 /* HelperMain.m:26 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + functionName = "addRulesToFirewall()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 26; + location = "selfcontrol-helper"; + modificationTime = 261118827.955457; + state = 2; + }; + CBC2FD030F47D8F900CF2A42 /* HelperMain.m:26 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + functionName = "main()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 26; + modificationTime = 261118827.955548; + state = 2; + }; + CBC2FD1B0F47D94A00CF2A42 /* HelperMain.m:26 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + functionName = "main()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 26; + modificationTime = 261118827.955639; + state = 2; + }; + CBC3C0C00F86DDA10055C0B0 /* NSApplication+SystemVersion.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {909, 518}}"; + sepNavSelRange = "{1379, 0}"; + sepNavVisRange = "{313, 1066}"; + }; + }; + CBC3C0C10F86DDA10055C0B0 /* NSApplication+SystemVersion.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {909, 854}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 901}"; + }; + }; + CBC3C0E60F86E2F80055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; + name = "SelfControlAppcast.xml: 25"; + rLen = 0; + rLoc = 1646; + rType = 0; + vrLen = 1726; + vrLoc = 39; + }; + CBC3C0F00F86E2F80055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB25EB220F8287500051B37D /* Cocoa.h */; + name = "Cocoa.h: 12"; + rLen = 34; + rLoc = 395; + rType = 0; + vrLen = 485; + vrLoc = 0; + }; + CBC3C10D0F86E2F80055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C0C00F86DDA10055C0B0 /* NSApplication+SystemVersion.h */; + name = "NSApplication+SystemVersion.h: 14"; + rLen = 0; + rLoc = 1373; + rType = 0; + vrLen = 242; + vrLoc = 0; + }; + CBC3C10E0F86E2F80055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C0C10F86DDA10055C0B0 /* NSApplication+SystemVersion.m */; + name = "NSApplication+SystemVersion.m: 12"; + rLen = 0; + rLoc = 890; + rType = 0; + vrLen = 262; + vrLoc = 0; + }; + CBC3C1AA0F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1AB0F8724F40055C0B0 /* NFIWindow.h */; + name = "NFIWindow.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + CBC3C1AB0F8724F40055C0B0 /* NFIWindow.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = NFIWindow.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/NFIWindow.h; + sourceTree = ""; + }; + CBC3C1AC0F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1AD0F8724F40055C0B0 /* NFIPopUpButtonCell.h */; + name = "NFIPopUpButtonCell.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 255; + vrLoc = 0; + }; + CBC3C1AD0F8724F40055C0B0 /* NFIPopUpButtonCell.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = NFIPopUpButtonCell.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/NFIPopUpButtonCell.h; + sourceTree = ""; + }; + CBC3C1AE0F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1AF0F8724F40055C0B0 /* EtchedTextCell.h */; + name = "EtchedTextCell.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 163; + vrLoc = 0; + }; + CBC3C1AF0F8724F40055C0B0 /* EtchedTextCell.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = EtchedTextCell.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/EtchedTextCell.h; + sourceTree = ""; + }; + CBC3C1B00F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1B10F8724F40055C0B0 /* EtchedText.h */; + name = "EtchedText.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 150; + vrLoc = 0; + }; + CBC3C1B10F8724F40055C0B0 /* EtchedText.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = EtchedText.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/EtchedText.h; + sourceTree = ""; + }; + CBC3C1B20F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1B30F8724F40055C0B0 /* NFHUDPopUpButtonCell.h */; + name = "NFHUDPopUpButtonCell.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 265; + vrLoc = 0; + }; + CBC3C1B30F8724F40055C0B0 /* NFHUDPopUpButtonCell.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = NFHUDPopUpButtonCell.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/NFHUDPopUpButtonCell.h; + sourceTree = ""; + }; + CBC3C1B40F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1B50F8724F40055C0B0 /* NFHUDButtonCell.h */; + name = "NFHUDButtonCell.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 242; + vrLoc = 0; + }; + CBC3C1B50F8724F40055C0B0 /* NFHUDButtonCell.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = NFHUDButtonCell.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/NFHUDButtonCell.h; + sourceTree = ""; + }; + CBC3C1B60F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1B70F8724F40055C0B0 /* NFHUDButton.h */; + name = "NFHUDButton.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 226; + vrLoc = 0; + }; + CBC3C1B70F8724F40055C0B0 /* NFHUDButton.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = NFHUDButton.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/NFHUDButton.h; + sourceTree = ""; + }; + CBC3C1BF0F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1C00F8724F40055C0B0 /* NFIPopUpButtonCell.h */; + name = "NFIPopUpButtonCell.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 255; + vrLoc = 0; + }; + CBC3C1C00F8724F40055C0B0 /* NFIPopUpButtonCell.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = NFIPopUpButtonCell.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/NFIPopUpButtonCell.h; + sourceTree = ""; + }; + CBC3C1C10F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1C20F8724F40055C0B0 /* NFIWindow.h */; + name = "NFIWindow.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 461; + vrLoc = 0; + }; + CBC3C1C20F8724F40055C0B0 /* NFIWindow.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = NFIWindow.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/NFIWindow.h; + sourceTree = ""; + }; + CBC3C1C50F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1C60F8724F40055C0B0 /* EtchedText.h */; + name = "EtchedText.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 150; + vrLoc = 0; + }; + CBC3C1C60F8724F40055C0B0 /* EtchedText.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = EtchedText.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/EtchedText.h; + sourceTree = ""; + }; + CBC3C1C70F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1C80F8724F40055C0B0 /* EtchedTextCell.h */; + name = "EtchedTextCell.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 163; + vrLoc = 0; + }; + CBC3C1C80F8724F40055C0B0 /* EtchedTextCell.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = EtchedTextCell.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/EtchedTextCell.h; + sourceTree = ""; + }; + CBC3C1CD0F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1CE0F8724F40055C0B0 /* NFHUDButton.h */; + name = "NFHUDButton.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 226; + vrLoc = 0; + }; + CBC3C1CE0F8724F40055C0B0 /* NFHUDButton.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = NFHUDButton.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/NFHUDButton.h; + sourceTree = ""; + }; + CBC3C1D30F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1D40F8724F40055C0B0 /* NFHUDPopUpButtonCell.h */; + name = "NFHUDPopUpButtonCell.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 265; + vrLoc = 0; + }; + CBC3C1D40F8724F40055C0B0 /* NFHUDPopUpButtonCell.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = NFHUDPopUpButtonCell.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/NFHUDPopUpButtonCell.h; + sourceTree = ""; + }; + CBC3C1D50F8724F40055C0B0 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C1D60F8724F40055C0B0 /* NFHUDButtonCell.h */; + name = "NFHUDButtonCell.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 242; + vrLoc = 0; + }; + CBC3C1D60F8724F40055C0B0 /* NFHUDButtonCell.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = NFHUDButtonCell.h; + path = /Users/charlie/selfcontrol/iLifeControls.framework/Headers/NFHUDButtonCell.h; + sourceTree = ""; + }; + CBCA80E80F8C2B8000BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 232"; + rLen = 0; + rLoc = 1365; + rType = 0; + vrLen = 1693; + vrLoc = 10877; + }; + CBCA80FB0F8C56FC00BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 148"; + rLen = 0; + rLoc = 6509; + rType = 0; + vrLen = 703; + vrLoc = 4888; + }; + CBCA81090F8C58E400BD4D0D /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + }; + CBCA810E0F8C60A900BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 344"; + rLen = 10; + rLoc = 21088; + rType = 0; + vrLen = 1627; + vrLoc = 12643; + }; + CBCA810F0F8C60A900BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; + name = "LaunchctlHelper.h: 25"; + rLen = 0; + rLoc = 860; + rType = 0; + vrLen = 1101; + vrLoc = 547; + }; + CBCA81180F8C622800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 370"; + rLen = 0; + rLoc = 19817; + rType = 0; + vrLen = 1411; + vrLoc = 17265; + }; + CBCA81270F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */; + name = "ButtonWithPopupMenu.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 787; + vrLoc = 1181; + }; + CBCA81280F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */; + name = "ButtonWithPopupMenu.h: 41"; + rLen = 0; + rLoc = 1451; + rType = 0; + vrLen = 967; + vrLoc = 484; + }; + CBCA812E0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; + name = "IPFirewall.h: 30"; + rLen = 0; + rLoc = 1199; + rType = 0; + vrLen = 1154; + vrLoc = 1271; + }; + CBCA812F0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; + name = "IPFirewall.m: 23"; + rLen = 0; + rLoc = 796; + rType = 0; + vrLen = 859; + vrLoc = 4906; + }; + CBCA81300F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */; + name = "ThunderbirdPreferenceParser.h: 22"; + rLen = 0; + rLoc = 813; + rType = 0; + vrLen = 1226; + vrLoc = 1441; + }; + CBCA81310F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */; + name = "ThunderbirdPreferenceParser.m: 148"; + rLen = 0; + rLoc = 5786; + rType = 0; + vrLen = 1406; + vrLoc = 7826; + }; + CBCA81320F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB90BF810F49F430006D202D /* HostImporter.h */; + name = "HostImporter.h: 33"; + rLen = 0; + rLoc = 1129; + rType = 0; + vrLen = 1043; + vrLoc = 542; + }; + CBCA81360F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; + name = "LaunchctlHelper.m: 52"; + rLen = 0; + rLoc = 1666; + rType = 0; + vrLen = 800; + vrLoc = 866; + }; + CBCA81370F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C0C00F86DDA10055C0B0 /* NSApplication+SystemVersion.h */; + name = "NSApplication+SystemVersion.h: 37"; + rLen = 0; + rLoc = 1379; + rType = 0; + vrLen = 1066; + vrLoc = 313; + }; + CBCA81380F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C0C10F86DDA10055C0B0 /* NSApplication+SystemVersion.m */; + name = "NSApplication+SystemVersion.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 901; + vrLoc = 0; + }; + CBCA813D0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 47"; + rLen = 9; + rLoc = 1448; + rType = 0; + vrLen = 856; + vrLoc = 1193; + }; + CBCA813E0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 387"; + rLen = 0; + rLoc = 20728; + rType = 0; + vrLen = 1240; + vrLoc = 19491; + }; + CBCA813F0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */; + name = "ThunderbirdPreferenceParser.m: 148"; + rLen = 0; + rLoc = 5786; + rType = 0; + vrLen = 927; + vrLoc = 622; + }; + CBCA81400F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB90BF820F49F430006D202D /* HostImporter.m */; + name = "HostImporter.m: 25"; + rLen = 0; + rLoc = 825; + rType = 0; + vrLen = 1219; + vrLoc = 114; + }; + CBCA81410F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 36"; + rLen = 0; + rLoc = 1521; + rType = 0; + vrLen = 1111; + vrLoc = 551; + }; + CBCA81420F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 148"; + rLen = 0; + rLoc = 6509; + rType = 0; + vrLen = 701; + vrLoc = 4894; + }; + CBCA81430F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 226"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 889; + vrLoc = 8055; + }; + CBCA81440F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 101"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1384; + vrLoc = 3359; + }; + CBCA81450F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 203"; + rLen = 0; + rLoc = 7773; + rType = 0; + vrLen = 889; + vrLoc = 7051; + }; + CBCA81460F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 226"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 889; + vrLoc = 8055; + }; + CBCA81470F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 265"; + rLen = 0; + rLoc = 9568; + rType = 0; + vrLen = 743; + vrLoc = 20315; + }; + CBCA81480F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C0C10F86DDA10055C0B0 /* NSApplication+SystemVersion.m */; + name = "NSApplication+SystemVersion.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 778; + vrLoc = 1244; + }; + CBCA81490F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */; + name = "ButtonWithPopupMenu.h: 41"; + rLen = 0; + rLoc = 1451; + rType = 0; + vrLen = 1034; + vrLoc = 417; + }; + CBCA814A0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 265"; + rLen = 0; + rLoc = 9568; + rType = 0; + vrLen = 743; + vrLoc = 20315; + }; + CBCA814B0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 148"; + rLen = 0; + rLoc = 6509; + rType = 0; + vrLen = 703; + vrLoc = 4888; + }; + CBCA814C0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 57"; + rLen = 0; + rLoc = 2409; + rType = 0; + vrLen = 1031; + vrLoc = 1358; + }; + CBCA814D0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; + name = "LaunchctlHelper.h: 25"; + rLen = 0; + rLoc = 860; + rType = 0; + vrLen = 1168; + vrLoc = 480; + }; + CBCA814E0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 148"; + rLen = 0; + rLoc = 6509; + rType = 0; + vrLen = 701; + vrLoc = 4894; + }; + CBCA814F0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 61"; + rLen = 0; + rLoc = 2561; + rType = 0; + vrLen = 1099; + vrLoc = 1405; + }; + CBCA81500F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 164"; + rLen = 0; + rLoc = 6595; + rType = 0; + vrLen = 701; + vrLoc = 4894; + }; + CBCA81510F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 61"; + rLen = 0; + rLoc = 2583; + rType = 0; + vrLen = 1124; + vrLoc = 1406; + }; + CBCA81520F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 150"; + rLen = 0; + rLoc = 6508; + rType = 0; + vrLen = 810; + vrLoc = 4859; + }; + CBCA81530F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 99"; + rLen = 0; + rLoc = 3814; + rType = 0; + vrLen = 911; + vrLoc = 3192; + }; + CBCA81540F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 335"; + rLen = 14; + rLoc = 14768; + rType = 0; + vrLen = 987; + vrLoc = 14917; + }; + CBCA81550F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 945; + vrLoc = 726; + }; + CBCA81560F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1112; + vrLoc = 421; + }; + CBCA81570F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; + name = "IPFirewall.h: 30"; + rLen = 0; + rLoc = 1199; + rType = 0; + vrLen = 1139; + vrLoc = 404; + }; + CBCA81580F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */; + name = "ThunderbirdPreferenceParser.h: 22"; + rLen = 0; + rLoc = 813; + rType = 0; + vrLen = 1227; + vrLoc = 670; + }; + CBCA81590F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB90BF810F49F430006D202D /* HostImporter.h */; + name = "HostImporter.h: 33"; + rLen = 0; + rLoc = 1129; + rType = 0; + vrLen = 978; + vrLoc = 607; + }; + CBCA815A0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 36"; + rLen = 0; + rLoc = 1513; + rType = 0; + vrLen = 1070; + vrLoc = 1300; + }; + CBCA815B0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 150"; + rLen = 0; + rLoc = 6508; + rType = 0; + vrLen = 814; + vrLoc = 4859; + }; + CBCA815C0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; + name = "LaunchctlHelper.h: 25"; + rLen = 0; + rLoc = 860; + rType = 0; + vrLen = 1168; + vrLoc = 480; + }; + CBCA815D0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; + name = "LaunchctlHelper.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 867; + vrLoc = 0; + }; + CBCA815E0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C0C10F86DDA10055C0B0 /* NSApplication+SystemVersion.m */; + name = "NSApplication+SystemVersion.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 782; + vrLoc = 1240; + }; + CBCA815F0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; + name = "NSCharacterSet+NewlineAddition.m: 24"; + rLen = 0; + rLoc = 859; + rType = 0; + vrLen = 910; + vrLoc = 0; + }; + CBCA81600F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 921; + vrLoc = 726; + }; + CBCA81610F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 226"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 889; + vrLoc = 8055; + }; + CBCA81620F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD70F39EC46005AFEBE /* HelperMain.h */; + name = "HelperMain.h: 36"; + rLen = 0; + rLoc = 1303; + rType = 0; + vrLen = 1156; + vrLoc = 901; + }; + CBCA81630F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1338; + vrLoc = 0; + }; + CBCA81640F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 226"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 889; + vrLoc = 8055; + }; + CBCA81650F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 335"; + rLen = 14; + rLoc = 14768; + rType = 0; + vrLen = 934; + vrLoc = 14917; + }; + CBCA81660F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */; + name = "ButtonWithPopupMenu.h: 41"; + rLen = 0; + rLoc = 1451; + rType = 0; + vrLen = 1034; + vrLoc = 417; + }; + CBCA81670F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */; + name = "ButtonWithPopupMenu.m: 59"; + rLen = 0; + rLoc = 1968; + rType = 0; + vrLen = 787; + vrLoc = 1181; + }; + CBCA81680F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; + name = "NSCharacterSet+NewlineAddition.h: 23"; + rLen = 24; + rLoc = 816; + rType = 0; + vrLen = 1056; + vrLoc = 56; + }; + CBCA81690F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */; + name = "ButtonWithPopupMenu.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1010; + vrLoc = 31; + }; + CBCA816A0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */; + name = "ButtonWithPopupMenu.h: 41"; + rLen = 0; + rLoc = 1451; + rType = 0; + vrLen = 1034; + vrLoc = 417; + }; + CBCA816B0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */; + name = "ButtonWithPopupMenu.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 787; + vrLoc = 1181; + }; + CBCA816C0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */; + name = "ButtonWithPopupMenu.h: 41"; + rLen = 0; + rLoc = 1451; + rType = 0; + vrLen = 967; + vrLoc = 484; + }; + CBCA816D0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; + name = "NSCharacterSet+NewlineAddition.h: 23"; + rLen = 24; + rLoc = 816; + rType = 0; + vrLen = 1147; + vrLoc = 316; + }; + CBCA816E0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; + name = "NSCharacterSet+NewlineAddition.m: 24"; + rLen = 0; + rLoc = 859; + rType = 0; + vrLen = 928; + vrLoc = 425; + }; + CBCA816F0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1016; + vrLoc = 3402; + }; + CBCA81700F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1111; + vrLoc = 421; + }; + CBCA81710F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 335"; + rLen = 14; + rLoc = 14768; + rType = 0; + vrLen = 743; + vrLoc = 20315; + }; + CBCA81720F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1308; + vrLoc = 3435; + }; + CBCA81730F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 226"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 889; + vrLoc = 8055; + }; + CBCA81740F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD70F39EC46005AFEBE /* HelperMain.h */; + name = "HelperMain.h: 36"; + rLen = 0; + rLoc = 1303; + rType = 0; + vrLen = 1156; + vrLoc = 901; + }; + CBCA81750F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 892; + vrLoc = 28242; + }; + CBCA81760F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; + name = "IPFirewall.h: 30"; + rLen = 0; + rLoc = 1199; + rType = 0; + vrLen = 1154; + vrLoc = 1271; + }; + CBCA81770F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; + name = "IPFirewall.m: 23"; + rLen = 0; + rLoc = 796; + rType = 0; + vrLen = 859; + vrLoc = 4906; + }; + CBCA81780F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */; + name = "ThunderbirdPreferenceParser.h: 22"; + rLen = 0; + rLoc = 813; + rType = 0; + vrLen = 1226; + vrLoc = 1441; + }; + CBCA81790F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */; + name = "ThunderbirdPreferenceParser.m: 148"; + rLen = 0; + rLoc = 5786; + rType = 0; + vrLen = 1406; + vrLoc = 7826; + }; + CBCA817A0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB90BF810F49F430006D202D /* HostImporter.h */; + name = "HostImporter.h: 33"; + rLen = 0; + rLoc = 1129; + rType = 0; + vrLen = 1043; + vrLoc = 542; + }; + CBCA817B0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB90BF820F49F430006D202D /* HostImporter.m */; + name = "HostImporter.m: 100"; + rLen = 0; + rLoc = 4226; + rType = 0; + vrLen = 812; + vrLoc = 3414; + }; + CBCA817C0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; + rLen = 0; + rLoc = 2687; + rType = 0; + vrLen = 1124; + vrLoc = 1408; + }; + CBCA817D0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 174"; + rLen = 0; + rLoc = 7269; + rType = 0; + vrLen = 793; + vrLoc = 5016; + }; + CBCA817E0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; + name = "LaunchctlHelper.h: 42"; + rLen = 0; + rLoc = 1648; + rType = 0; + vrLen = 1101; + vrLoc = 547; + }; + CBCA817F0F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; + name = "LaunchctlHelper.m: 52"; + rLen = 0; + rLoc = 1666; + rType = 0; + vrLen = 800; + vrLoc = 866; + }; + CBCA81800F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C0C00F86DDA10055C0B0 /* NSApplication+SystemVersion.h */; + name = "NSApplication+SystemVersion.h: 37"; + rLen = 0; + rLoc = 1379; + rType = 0; + vrLen = 1066; + vrLoc = 313; + }; + CBCA81810F8C690300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC3C0C10F86DDA10055C0B0 /* NSApplication+SystemVersion.m */; + name = "NSApplication+SystemVersion.m: 1"; + rLen = 0; + rLoc = 0; rType = 0; - vrLen = 576; + vrLen = 901; vrLoc = 0; }; - CB97043E0F868DED00B8FC30 /* PBXTextBookmark */ = { + CBCA81820F8C690300BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; - name = "releasenotes.html: 18"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 174"; rLen = 0; - rLoc = 576; + rLoc = 7269; rType = 0; - vrLen = 576; - vrLoc = 0; + vrLen = 793; + vrLoc = 5016; }; - CB97043F0F868DED00B8FC30 /* PBXTextBookmark */ = { + CBCA81830F8C690300BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 18"; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 1"; rLen = 0; - rLoc = 1058; + rLoc = 0; rType = 0; - vrLen = 1705; - vrLoc = 0; + vrLen = 1016; + vrLoc = 3402; }; - CB9704400F868DED00B8FC30 /* PBXTextBookmark */ = { + CBCA81840F8C690300BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9368390F85DA1D00EF284E /* releasenotes.html */; - name = "releasenotes.html: 18"; + fRef = CBA2AFD70F39EC46005AFEBE /* HelperMain.h */; + name = "HelperMain.h: 36"; rLen = 0; - rLoc = 576; + rLoc = 1303; rType = 0; - vrLen = 576; - vrLoc = 0; + vrLen = 1156; + vrLoc = 901; }; - CB9704410F868DED00B8FC30 /* PBXTextBookmark */ = { + CBCA81850F8C690300BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 15"; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 26"; rLen = 0; - rLoc = 1058; + rLoc = 1365; rType = 0; - vrLen = 1580; - vrLoc = 185; + vrLen = 1531; + vrLoc = 820; }; - CB97044A0F868ECC00B8FC30 /* PBXTextBookmark */ = { + CBCA81930F8C6A7800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 15"; + fRef = CBA2AFD70F39EC46005AFEBE /* HelperMain.h */; + name = "HelperMain.h: 36"; rLen = 0; - rLoc = 1058; + rLoc = 1303; rType = 0; - vrLen = 1580; - vrLoc = 185; + vrLen = 1095; + vrLoc = 853; }; - CB9D71490F83BCD300B19A29 /* PBXTextBookmark */ = { + CBCA81940F8C6A7800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */; - name = "ThunderbirdPreferenceParser.m: 132"; - rLen = 0; - rLoc = 5028; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 335"; + rLen = 14; + rLoc = 14768; rType = 0; - vrLen = 1882; - vrLoc = 7552; + vrLen = 743; + vrLoc = 20315; }; - CB9D714A0F83BCD300B19A29 /* PBXTextBookmark */ = { + CBCA81950F8C6A7800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; - name = "LaunchctlHelper.m: 28"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 1"; rLen = 0; - rLoc = 870; + rLoc = 0; rType = 0; - vrLen = 832; - vrLoc = 834; + vrLen = 906; + vrLoc = 422; }; - CB9D714B0F83BCD300B19A29 /* PBXTextBookmark */ = { + CBCA81960F8C6A7800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; - name = "LaunchctlHelper.h: 25"; - rLen = 0; - rLoc = 872; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 28"; + rLen = 49; + rLoc = 992; rType = 0; - vrLen = 1340; - vrLoc = 304; + vrLen = 1143; + vrLoc = 240; }; - CB9D714D0F83BCD300B19A29 /* PBXTextBookmark */ = { + CBCA81970F8C6A7800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; - name = "AppController.h: 69"; + name = "AppController.h: 1"; rLen = 0; - rLoc = 2609; + rLoc = 0; rType = 0; - vrLen = 1295; - vrLoc = 1684; + vrLen = 1016; + vrLoc = 3402; }; - CB9D714E0F83BCD300B19A29 /* PBXTextBookmark */ = { + CBCA81980F8C6A7800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB90BF810F49F430006D202D /* HostImporter.h */; - name = "HostImporter.h: 1"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 25"; rLen = 0; - rLoc = 0; + rLoc = 895; rType = 0; - vrLen = 1144; - vrLoc = 607; + vrLen = 1116; + vrLoc = 300; }; - CB9D71610F83BE7900B19A29 /* PBXTextBookmark */ = { + CBCA81990F8C6A7800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; - name = "IPFirewall.h: 31"; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 62"; rLen = 0; - rLoc = 1258; + rLoc = 2311; rType = 0; - vrLen = 1310; - vrLoc = 404; + vrLen = 1234; + vrLoc = 1711; }; - CB9D71670F83BEB000B19A29 /* PBXTextBookmark */ = { + CBCA819A0F8C6A7800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2AFD70F39EC46005AFEBE /* HelperMain.h */; - name = "HelperMain.h: 26"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 25"; rLen = 0; - rLoc = 849; + rLoc = 895; rType = 0; - vrLen = 1158; - vrLoc = 796; + vrLen = 1096; + vrLoc = 228; }; - CBA2AFD10F39EC12005AFEBE /* org.eyebeam.SelfControl */ = { - activeExec = 0; - executables = ( - CBA2AFD30F39EC12005AFEBE /* org.eyebeam.SelfControl */, - ); + CBCA819B0F8C6A7800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 246"; + rLen = 0; + rLoc = 12439; + rType = 0; + vrLen = 1317; + vrLoc = 11750; }; - CBA2AFD30F39EC12005AFEBE /* org.eyebeam.SelfControl */ = { - isa = PBXExecutable; - activeArgIndices = ( - YES, - YES, - ); - argumentStrings = ( - charlie, - add, - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 0; - configStateDict = { - "PBXLSLaunchAction-0" = { - PBXLSLaunchAction = 0; - PBXLSLaunchStartAction = 1; - PBXLSLaunchStdioStyle = 2; - PBXLSLaunchStyle = 0; - class = PBXLSRunLaunchConfig; - commandLineArgs = ( - ); - displayName = "Executable Runner"; - environment = { - }; - identifier = com.apple.Xcode.launch.runConfig; - remoteHostInfo = ""; - startActionInfo = ""; - }; - }; - customDataFormattersEnabled = 1; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = org.eyebeam.SelfControl; - savedGlobals = { - }; - sourceDirectories = ( - ); - variableFormatDictionary = { - $cs = 1; - $ds = 1; - $eax = 1; - $ebp = 1; - $ebx = 1; - $ecx = 1; - $edi = 1; - $edx = 1; - $eflags = 1; - $eip = 1; - $es = 1; - $esi = 1; - $esp = 1; - $gs = 1; - $ss = 1; - }; + CBCA819C0F8C6A7800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1029; + vrLoc = 369; }; - CBA2AFD70F39EC46005AFEBE /* HelperMain.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 700}}"; - sepNavSelRange = "{849, 0}"; - sepNavVisRange = "{796, 1158}"; - sepNavWindowFrame = "{{525, 98}, {1101, 680}}"; - }; + CBCA819D0F8C6A7800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 104"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1305; + vrLoc = 3574; }; - CBA2AFD80F39EC46005AFEBE /* HelperMain.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {3108, 6902}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{3, 1405}"; - sepNavWindowFrame = "{{364, 98}, {1257, 680}}"; - }; + CBCA819E0F8C6A7800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 231"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 878; + vrLoc = 8259; }; - CBA2E7590F41388800571571 /* IPFirewall.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 840}}"; - sepNavSelRange = "{745, 0}"; - sepNavVisRange = "{404, 1288}"; - sepNavWindowFrame = "{{468, 54}, {1101, 680}}"; - }; + CBCA819F0F8C6A7800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 101"; + rLen = 0; + rLoc = 4689; + rType = 0; + vrLen = 1381; + vrLoc = 3498; }; - CBA2E75A0F41388800571571 /* IPFirewall.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 2240}}"; - sepNavSelRange = "{499, 0}"; - sepNavVisRange = "{224, 1193}"; - sepNavWindowFrame = "{{443, -545}, {1101, 680}}"; - }; + CBCA81A70F8C6B2300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 226"; + rLen = 0; + rLoc = 8946; + rType = 0; + vrLen = 883; + vrLoc = 3597; }; - CBB0B3CA0F3E79B1004862D5 /* DomainListWindowController.h:28 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; - hitCount = 0; - ignoreCount = 0; - lineNumber = 28; - modificationTime = 260321470.914132; - state = 2; + CBCA81A80F8C6B2300BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 206"; + rLen = 0; + rLoc = 7773; + rType = 0; + vrLen = 943; + vrLoc = 7093; }; - CBB57CB50F842DCD00CDD9EE /* DomainListWindowController.m:155 */ = { + CBCA81B30F8C6C5300BD4D0D /* DomainListWindowController.m:227 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -2123,399 +4773,551 @@ countType = 0; delayBeforeContinue = 0; fileReference = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; - functionName = "-tableView:willDisplayCell:forTableColumn:row:"; + functionName = "-reloadContents"; hitCount = 0; ignoreCount = 0; - lineNumber = 155; + lineNumber = 227; location = SelfControl; - modificationTime = 260321470.914512; + modificationTime = 261118827.956393; state = 2; }; - CBB57CBF0F842E2500CDD9EE /* DomainListWindowController.m:148 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; - functionName = "-tableView:willDisplayCell:forTableColumn:row:"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 148; - location = SelfControl; - modificationTime = 260321470.914667; - state = 2; + CBCA81C50F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB90BF820F49F430006D202D /* HostImporter.m */; + name = "HostImporter.m: 100"; + rLen = 0; + rLoc = 4226; + rType = 0; + vrLen = 812; + vrLoc = 3414; }; - CBB57CC10F842E2700CDD9EE /* DomainListWindowController.m:147 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; - functionName = "-tableView:willDisplayCell:forTableColumn:row:"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 147; - location = SelfControl; - modificationTime = 260321470.914796; - state = 2; + CBCA81CB0F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 239"; + rLen = 0; + rLoc = 9027; + rType = 0; + vrLen = 863; + vrLoc = 8390; }; - CBB57CC30F842E2B00CDD9EE /* DomainListWindowController.m:143 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; - functionName = "-tableView:willDisplayCell:forTableColumn:row:"; - hitCount = 1; - ignoreCount = 0; - lineNumber = 143; - location = SelfControl; - modificationTime = 260321485.400301; - state = 2; + CBCA81CC0F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; + name = "LaunchctlHelper.h: 42"; + rLen = 0; + rLoc = 1648; + rType = 0; + vrLen = 1168; + vrLoc = 480; + }; + CBCA81CD0F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 160"; + rLen = 0; + rLoc = 6770; + rType = 0; + vrLen = 844; + vrLoc = 3649; + }; + CBCA81CE0F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 685; + vrLoc = 812; + }; + CBCA81CF0F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB90BF820F49F430006D202D /* HostImporter.m */; + name = "HostImporter.m: 100"; + rLen = 0; + rLoc = 4226; + rType = 0; + vrLen = 812; + vrLoc = 3414; + }; + CBCA81D00F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1134; + vrLoc = 734; + }; + CBCA81D10F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 174"; + rLen = 0; + rLoc = 7269; + rType = 0; + vrLen = 793; + vrLoc = 5016; + }; + CBCA81D20F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1001; + vrLoc = 241; + }; + CBCA81D30F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1164; + vrLoc = 669; }; - CBB57CD70F8430EC00CDD9EE /* PBXTextBookmark */ = { + CBCA81D40F8C6EA100BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; - name = "DomainListWindowController.m: 143"; + name = "DomainListWindowController.m: 43"; + rLen = 0; + rLoc = 1368; + rType = 0; + vrLen = 758; + vrLoc = 739; + }; + CBCA81D50F8C6EA100BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 206"; + rLen = 0; + rLoc = 7773; + rType = 0; + vrLen = 968; + vrLoc = 7065; + }; + CBCA81E50F8C6FA800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 113"; rLen = 0; - rLoc = 4955; + rLoc = 4512; rType = 0; - vrLen = 1467; - vrLoc = 4519; + vrLen = 1053; + vrLoc = 3490; }; - CBB57CDD0F84323A00CDD9EE /* PBXTextBookmark */ = { + CBCA81E80F8C6FA800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; - name = "TimerWindowController.m: 32"; + name = "TimerWindowController.m: 115"; rLen = 0; - rLoc = 945; + rLoc = 5230; rType = 0; - vrLen = 672; - vrLoc = 617; + vrLen = 841; + vrLoc = 3352; }; - CBB57CDE0F84323A00CDD9EE /* PBXTextBookmark */ = { + CBCA81E90F8C6FA800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; - name = "IPFirewall.m: 116"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 203"; rLen = 0; - rLoc = 4237; + rLoc = 7773; rType = 0; - vrLen = 812; - vrLoc = 3636; + vrLen = 860; + vrLoc = 7190; + }; + CBCA81EA0F8C6FA800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 113"; + rLen = 0; + rLoc = 4512; + rType = 0; + vrLen = 1053; + vrLoc = 3490; }; - CBB57CDF0F84323A00CDD9EE /* PBXTextBookmark */ = { + CBCA81EB0F8C6FA800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: 325"; - rLen = 285; - rLoc = 14269; + name = "AppController.m: 500"; + rLen = 0; + rLoc = 21375; rType = 0; - vrLen = 948; - vrLoc = 13874; + vrLen = 766; + vrLoc = 20292; }; - CBB57CE00F84323A00CDD9EE /* PBXTextBookmark */ = { + CBCA81EC0F8C6FA800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; - name = "TimerWindowController.h: 43"; + fRef = CB529BBD0F32B7ED00564FB8 /* AppController.h */; + name = "AppController.h: 113"; rLen = 0; - rLoc = 1578; + rLoc = 4512; rType = 0; - vrLen = 1089; - vrLoc = 484; + vrLen = 1053; + vrLoc = 3490; }; - CBB636F60F3DEF6C00EBD135 /* AppController.m:3 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - hitCount = 0; - ignoreCount = 0; - lineNumber = 3; - location = SelfControl; - modificationTime = 260321470.91412; - state = 2; + CBCA81ED0F8C6FA800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 43"; + rLen = 0; + rLoc = 1368; + rType = 0; + vrLen = 685; + vrLoc = 812; }; - CBB637210F3E296000EBD135 /* DomainListWindowController.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 1442}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{1062, 1389}"; - sepNavWindowFrame = "{{740, 59}, {1101, 680}}"; - }; + CBCA81FC0F8C734C00BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD70F39EC46005AFEBE /* HelperMain.h */; + name = "HelperMain.h: 36"; + rLen = 0; + rLoc = 1303; + rType = 0; + vrLen = 1203; + vrLoc = 830; }; - CBB637220F3E296000EBD135 /* DomainListWindowController.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {987, 3290}}"; - sepNavSelRange = "{3772, 0}"; - sepNavVisRange = "{2935, 1249}"; - sepNavWindowFrame = "{{406, 98}, {1101, 680}}"; - }; + CBCA81FD0F8C734C00BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 114"; + rLen = 0; + rLoc = 5230; + rType = 0; + vrLen = 922; + vrLoc = 3455; }; - CBBCA2390F5505BB00C75324 /* PBXTextBookmark */ = { + CBCA81FE0F8C734C00BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB4295C20F53EF8C008E10CA /* org.eyebeam.SelfControl.plist */; - name = "org.eyebeam.SelfControl.plist: 18"; + fRef = CBA2AFD70F39EC46005AFEBE /* HelperMain.h */; + name = "HelperMain.h: 36"; rLen = 0; - rLoc = 623; + rLoc = 1303; rType = 0; - vrLen = 957; - vrLoc = 166; + vrLen = 1203; + vrLoc = 830; }; - CBBD3B710F562C8B00E8A802 /* PBXTextBookmark */ = { + CBCA82050F8C741C00BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; - name = "AppController.m: init"; + fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; + name = "NSCharacterSet+NewlineAddition.m: 24"; rLen = 0; - rLoc = 1384; + rLoc = 859; rType = 0; - vrLen = 695; - vrLoc = 1728; + vrLen = 929; + vrLoc = 424; }; - CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1358, 820}}"; - sepNavSelRange = "{867, 0}"; - sepNavVisRange = "{660, 762}"; - sepNavWindowFrame = "{{532, 93}, {955, 685}}"; - }; + CBCA82060F8C741C00BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; + name = "NSCharacterSet+NewlineAddition.h: 23"; + rLen = 24; + rLoc = 816; + rType = 0; + vrLen = 1219; + vrLoc = 244; }; - CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1358, 588}}"; - sepNavSelRange = "{1633, 5}"; - sepNavVisRange = "{660, 978}"; - sepNavWindowFrame = "{{192, 220}, {750, 558}}"; - }; + CBCA82070F8C741C00BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1061; + vrLoc = 807; }; - CBC2F8760F4675F900CF2A42 /* PBXTextBookmark */ = { + CBCA82090F8C741C00BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - name = "helpermain.m: 202"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 233"; rLen = 0; - rLoc = 15188; + rLoc = 8946; rType = 0; - vrLen = 0; - vrLoc = 8449; + vrLen = 1041; + vrLoc = 8159; }; - CBC2F8770F4675F900CF2A42 /* PBXTextBookmark */ = { + CBCA820A0F8C741C00BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; - name = "SCLaunchctlHelper.m: 27"; + fRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; + name = "NSCharacterSet+NewlineAddition.m: 24"; rLen = 0; - rLoc = 870; + rLoc = 859; rType = 0; - vrLen = 571; - vrLoc = 353; + vrLen = 929; + vrLoc = 424; }; - CBC2F89E0F47793D00CF2A42 /* PBXTextBookmark */ = { + CBCA820B0F8C741C00BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */; + name = "NSCharacterSet+NewlineAddition.h: 23"; + rLen = 24; + rLoc = 816; + rType = 0; + vrLen = 1219; + vrLoc = 244; + }; + CBCA820C0F8C741C00BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 178"; + rLen = 0; + rLoc = 7263; + rType = 0; + vrLen = 725; + vrLoc = 5323; + }; + CBCA820D0F8C741C00BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1061; + vrLoc = 807; + }; + CBCA82180F8C753800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 166"; + rLen = 0; + rLoc = 6825; + rType = 0; + vrLen = 682; + vrLoc = 5419; + }; + CBCA82190F8C753800BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 242"; + rLen = 0; + rLoc = 9019; + rType = 0; + vrLen = 858; + vrLoc = 8489; + }; + CBCA821A0F8C753800BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; - name = "SCLaunchctlHelper.h: 101"; + name = "LaunchctlHelper.h: 42"; rLen = 0; - rLoc = 1638; + rLoc = 1648; rType = 0; - vrLen = 168; - vrLoc = 228; + vrLen = 1168; + vrLoc = 480; }; - CBC2F95D0F478B8F00CF2A42 /* PBXTextBookmark */ = { + CBCA82240F8C779600BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB4C58D90F3F90B000B5D7CB /* Credits.rtf */; - name = "Credits.rtf: 3"; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 1"; rLen = 0; - rLoc = 28; + rLoc = 0; rType = 0; - vrLen = 80; - vrLoc = 0; + vrLen = 1409; + vrLoc = 1672; }; - CBC2FB840F47BB8300CF2A42 /* HelperMain.m:157 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - functionName = "addRulesToFirewall()"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 157; - location = "selfcontrol-helper"; - modificationTime = 260321470.91428; - state = 2; + CBCA82260F8C779600BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 169"; + rLen = 0; + rLoc = 6956; + rType = 0; + vrLen = 701; + vrLoc = 5419; }; - CBC2FD030F47D8F900CF2A42 /* HelperMain.m:157 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - functionName = "main()"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 157; - modificationTime = 260321470.914353; - state = 2; + CBCA82270F8C779600BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 242"; + rLen = 0; + rLoc = 9019; + rType = 0; + vrLen = 858; + vrLoc = 8489; }; - CBC2FD1B0F47D94A00CF2A42 /* HelperMain.m:157 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; - functionName = "main()"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 157; - modificationTime = 260321470.914426; - state = 2; + CBCA82280F8C779600BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; + name = "DomainListWindowController.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1409; + vrLoc = 1672; }; - CBC3C0920F86B31D0055C0B0 /* PBXTextBookmark */ = { + CBCA822E0F8C782900BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 15"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 228"; rLen = 0; - rLoc = 1058; + rLoc = 8946; rType = 0; - vrLen = 1726; - vrLoc = 39; + vrLen = 822; + vrLoc = 8532; }; - CBC3C0A90F86B3460055C0B0 /* PBXTextBookmark */ = { + CBCA822F0F8C782900BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 15"; + fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; + name = "LaunchctlHelper.h: 42"; rLen = 0; - rLoc = 1058; + rLoc = 1648; rType = 0; - vrLen = 1726; - vrLoc = 39; + vrLen = 1168; + vrLoc = 480; }; - CBC3C0AA0F86B3460055C0B0 /* PBXTextBookmark */ = { + CBCA82300F8C782900BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; - name = "IPFirewall.h: 21"; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 228"; rLen = 0; - rLoc = 745; + rLoc = 8946; rType = 0; - vrLen = 1288; - vrLoc = 404; + vrLen = 822; + vrLoc = 8532; }; - CBC3C0AB0F86B3460055C0B0 /* PBXTextBookmark */ = { + CBCA82310F8C782900BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; - name = "IPFirewall.m: 116"; + fRef = CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */; + name = "LaunchctlHelper.h: 42"; rLen = 0; - rLoc = 4237; + rLoc = 1648; rType = 0; - vrLen = 1029; - vrLoc = 3304; + vrLen = 1168; + vrLoc = 480; }; - CBC3C0AC0F86B3460055C0B0 /* PBXTextBookmark */ = { + CBCA82390F8C9CFB00BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 15"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 115"; rLen = 0; - rLoc = 1058; + rLoc = 5230; rType = 0; - vrLen = 1726; - vrLoc = 39; + vrLen = 985; + vrLoc = 3255; }; - CBC3C0AD0F86B3460055C0B0 /* PBXTextBookmark */ = { + CBCA823B0F8C9CFB00BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E7590F41388800571571 /* IPFirewall.h */; - name = "IPFirewall.h: 21"; + fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; + name = "TimerWindowController.m: 115"; rLen = 0; - rLoc = 745; + rLoc = 5230; rType = 0; - vrLen = 1288; - vrLoc = 404; + vrLen = 985; + vrLoc = 3255; }; - CBC3C0AE0F86B3460055C0B0 /* PBXTextBookmark */ = { + CBCA82450F8C9DA200BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; - name = "IPFirewall.m: 28"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 383"; + rLen = 7; + rLoc = 16962; + rType = 0; + vrLen = 1131; + vrLoc = 15859; + }; + CBCA82460F8C9DA200BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 246"; rLen = 0; - rLoc = 961; + rLoc = 12439; rType = 0; - vrLen = 1193; - vrLoc = 224; + vrLen = 1317; + vrLoc = 11750; }; - CBC3C0B20F86B39C0055C0B0 /* PBXTextBookmark */ = { + CBCA82470F8C9DA200BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; - name = "IPFirewall.m: 16"; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 383"; + rLen = 7; + rLoc = 16962; + rType = 0; + vrLen = 1131; + vrLoc = 15859; + }; + CBCA82490F8C9DA200BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 203"; rLen = 0; - rLoc = 499; + rLoc = 7773; rType = 0; - vrLen = 1193; - vrLoc = 224; + vrLen = 1132; + vrLoc = 7195; }; - CBC3C0B30F86B39C0055C0B0 /* PBXTextBookmark */ = { + CBCA824E0F8C9DD400BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 15"; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 212"; + rLen = 9; + rLoc = 10851; + rType = 0; + vrLen = 1234; + vrLoc = 9936; + }; + CBCA824F0F8C9DD400BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; + name = "AppController.m: 291"; rLen = 0; - rLoc = 1058; + rLoc = 13439; rType = 0; - vrLen = 1726; - vrLoc = 39; + vrLen = 3892; + vrLoc = 9913; }; - CBC3C0B40F86B39C0055C0B0 /* PBXTextBookmark */ = { + CBCA82500F8C9DD400BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; - name = "IPFirewall.m: 16"; + fRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; + name = "HelperMain.m: 366"; rLen = 0; - rLoc = 499; + rLoc = 19124; rType = 0; - vrLen = 1193; - vrLoc = 224; + vrLen = 1861; + vrLoc = 10624; }; - CBC3C0B50F86B39C0055C0B0 /* PBXTextBookmark */ = { + CBCA82510F8C9DD400BD4D0D /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; - name = "SelfControlAppcast.xml: 24"; - rLen = 129; - rLoc = 1587; + fRef = CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */; + name = "TimerWindowController.h: 64"; + rLen = 0; + rLoc = 2687; rType = 0; - vrLen = 1726; - vrLoc = 39; + vrLen = 1740; + vrLoc = 417; + }; + CBCA82520F8C9DD400BD4D0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; + name = "DomainListWindowController.m: 98"; + rLen = 597; + rLoc = 3341; + rType = 0; + vrLen = 1643; + vrLoc = 2748; }; CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 924}}"; - sepNavSelRange = "{0, 813}"; - sepNavVisRange = "{56, 1120}"; + sepNavIntBoundsRect = "{{0, 0}, {909, 882}}"; + sepNavSelRange = "{813, 0}"; + sepNavVisRange = "{1441, 1226}"; sepNavWindowFrame = "{{547, 93}, {955, 685}}"; }; }; CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {978, 2940}}"; + sepNavIntBoundsRect = "{{0, 0}, {978, 2954}}"; sepNavSelRange = "{5786, 0}"; - sepNavVisRange = "{6747, 1519}"; + sepNavVisRange = "{7826, 1406}"; sepNavWindowFrame = "{{246, 93}, {955, 685}}"; }; }; - CBE51E2E0F434DB00082328D /* IPFirewall.m:125 */ = { + CBE51E2E0F434DB00082328D /* IPFirewall.m:124 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -2526,8 +5328,8 @@ fileReference = CBA2E75A0F41388800571571 /* IPFirewall.m */; hitCount = 0; ignoreCount = 0; - lineNumber = 125; - modificationTime = 260321470.914144; + lineNumber = 124; + modificationTime = 261118827.954976; state = 2; }; CBE5C2CD0F4D1D2C003DB900 /* PBXTextBookmark */ = { @@ -2552,16 +5354,16 @@ }; CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 574}}"; + sepNavIntBoundsRect = "{{0, 0}, {909, 574}}"; sepNavSelRange = "{1451, 0}"; - sepNavVisRange = "{416, 1035}"; + sepNavVisRange = "{484, 967}"; }; }; CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 826}}"; - sepNavSelRange = "{1738, 219}"; - sepNavVisRange = "{1186, 826}"; + sepNavIntBoundsRect = "{{0, 0}, {909, 826}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{1181, 787}"; sepNavWindowFrame = "{{122, 93}, {955, 685}}"; }; }; @@ -2625,17 +5427,17 @@ }; CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 602}}"; - sepNavSelRange = "{1578, 0}"; - sepNavVisRange = "{417, 1157}"; - sepNavWindowFrame = "{{269, 93}, {955, 685}}"; + sepNavIntBoundsRect = "{{0, 0}, {896, 938}}"; + sepNavSelRange = "{2687, 0}"; + sepNavVisRange = "{417, 1729}"; + sepNavWindowFrame = "{{268, -163}, {955, 685}}"; }; }; CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {911, 1988}}"; - sepNavSelRange = "{945, 0}"; - sepNavVisRange = "{617, 672}"; + sepNavIntBoundsRect = "{{0, 0}, {909, 2926}}"; + sepNavSelRange = "{2222, 0}"; + sepNavVisRange = "{1745, 1229}"; sepNavWindowFrame = "{{210, 98}, {955, 680}}"; }; }; @@ -2654,7 +5456,7 @@ fRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; name = "SCTimerWindowController.m: 1"; rLen = 0; - rLoc = 1; + rLoc = 2; rType = 0; vrLen = 249; vrLoc = 0; @@ -2664,12 +5466,12 @@ fRef = CBB637210F3E296000EBD135 /* DomainListWindowController.h */; name = "DomainListWindowController.h: 14"; rLen = 0; - rLoc = 1230; + rLoc = 1369; rType = 0; vrLen = 374; vrLoc = 0; }; - CBFBC98A0F45EFFD00079A5D /* HelperMain.m:157 */ = { + CBFBC98A0F45EFFD00079A5D /* HelperMain.m:26 */ = { isa = PBXFileBreakpoint; actions = ( ); @@ -2681,8 +5483,8 @@ functionName = "main()"; hitCount = 0; ignoreCount = 0; - lineNumber = 157; - modificationTime = 260321470.914181; + lineNumber = 26; + modificationTime = 261118827.95536; state = 2; }; } diff --git a/SelfControl.xcodeproj/project.pbxproj b/SelfControl.xcodeproj/project.pbxproj index 05b3c922..5723e186 100755 --- a/SelfControl.xcodeproj/project.pbxproj +++ b/SelfControl.xcodeproj/project.pbxproj @@ -49,10 +49,13 @@ CBB7DEEA0F53313F00ABF3EA /* DomainListWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; }; CBBCA14B0F54E1B300C75324 /* org.eyebeam.SelfControl.plist in Resources */ = {isa = PBXBuildFile; fileRef = CB4295C20F53EF8C008E10CA /* org.eyebeam.SelfControl.plist */; }; CBC2F8580F4672FE00CF2A42 /* LaunchctlHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; }; + CBC3C0C20F86DDA10055C0B0 /* NSApplication+SystemVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC3C0C10F86DDA10055C0B0 /* NSApplication+SystemVersion.m */; }; + CBC3C17F0F870D480055C0B0 /* TimerWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CBC3C17E0F870D480055C0B0 /* TimerWindow.xib */; }; + CBC3C19E0F8713370055C0B0 /* TigerTimerWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CBC3C19D0F8713370055C0B0 /* TigerTimerWindow.xib */; }; + CBC3C1A50F8717F50055C0B0 /* AddToBlock.xib in Resources */ = {isa = PBXBuildFile; fileRef = CBC3C1A40F8717F50055C0B0 /* AddToBlock.xib */; }; CBE4401B0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m in Sources */ = {isa = PBXBuildFile; fileRef = CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */; }; CBE5C40B0F4D4531003DB900 /* ButtonWithPopupMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */; }; CBEE50C10F48C21F00F5DF1C /* TimerWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; }; - CBEE50C60F48C37900F5DF1C /* TimerWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CBEE50C50F48C37900F5DF1C /* TimerWindow.xib */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -139,13 +142,17 @@ CBB637220F3E296000EBD135 /* DomainListWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DomainListWindowController.m; sourceTree = ""; }; CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LaunchctlHelper.m; sourceTree = ""; }; CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchctlHelper.h; sourceTree = ""; }; + CBC3C0C00F86DDA10055C0B0 /* NSApplication+SystemVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSApplication+SystemVersion.h"; sourceTree = ""; }; + CBC3C0C10F86DDA10055C0B0 /* NSApplication+SystemVersion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSApplication+SystemVersion.m"; sourceTree = ""; }; + CBC3C17E0F870D480055C0B0 /* TimerWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TimerWindow.xib; sourceTree = ""; }; + CBC3C19D0F8713370055C0B0 /* TigerTimerWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TigerTimerWindow.xib; sourceTree = ""; }; + CBC3C1A40F8717F50055C0B0 /* AddToBlock.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AddToBlock.xib; sourceTree = ""; }; CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThunderbirdPreferenceParser.h; sourceTree = ""; }; CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ThunderbirdPreferenceParser.m; sourceTree = ""; }; CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ButtonWithPopupMenu.h; sourceTree = ""; }; CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ButtonWithPopupMenu.m; sourceTree = ""; }; CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimerWindowController.h; sourceTree = ""; }; CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TimerWindowController.m; sourceTree = ""; }; - CBEE50C50F48C37900F5DF1C /* TimerWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TimerWindow.xib; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -256,12 +263,12 @@ CB4294DF0F53D865008E10CA /* Classes */ = { isa = PBXGroup; children = ( + CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */, + CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */, CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */, CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */, CB529BBD0F32B7ED00564FB8 /* AppController.h */, CB529BBE0F32B7ED00564FB8 /* AppController.m */, - CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */, - CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */, CBB637210F3E296000EBD135 /* DomainListWindowController.h */, CBB637220F3E296000EBD135 /* DomainListWindowController.m */, CBA2AFD70F39EC46005AFEBE /* HelperMain.h */, @@ -276,6 +283,8 @@ CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */, CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */, CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */, + CBC3C0C00F86DDA10055C0B0 /* NSApplication+SystemVersion.h */, + CBC3C0C10F86DDA10055C0B0 /* NSApplication+SystemVersion.m */, ); name = Classes; sourceTree = ""; @@ -283,9 +292,11 @@ CB4294F10F53D95D008E10CA /* Interfaces */ = { isa = PBXGroup; children = ( + CBC3C1A40F8717F50055C0B0 /* AddToBlock.xib */, CB5B40420F3528E100EFBF4A /* DomainList.xib */, 1DDD58140DA1D0A300B32029 /* MainMenu.xib */, - CBEE50C50F48C37900F5DF1C /* TimerWindow.xib */, + CBC3C17E0F870D480055C0B0 /* TimerWindow.xib */, + CBC3C19D0F8713370055C0B0 /* TigerTimerWindow.xib */, ); name = Interfaces; sourceTree = ""; @@ -360,11 +371,13 @@ CB5B40440F3528E100EFBF4A /* DomainList.xib in Resources */, CB4C58D60F3F8F2A00B5D7CB /* SelfControlIcon.icns in Resources */, CB4C58DA0F3F90B000B5D7CB /* Credits.rtf in Resources */, - CBEE50C60F48C37900F5DF1C /* TimerWindow.xib in Resources */, CB9365620F8581B000EF284E /* dsa_pub.pem in Resources */, CB9365780F85846200EF284E /* SelfControlAppcast.xml in Resources */, CB9366E80F85BEF100EF284E /* NSRemoveTemplate.jpg in Resources */, CB9366E90F85BEF100EF284E /* NSAddTemplate.jpg in Resources */, + CBC3C17F0F870D480055C0B0 /* TimerWindow.xib in Resources */, + CBC3C19E0F8713370055C0B0 /* TigerTimerWindow.xib in Resources */, + CBC3C1A50F8717F50055C0B0 /* AddToBlock.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -399,6 +412,7 @@ CBE5C40B0F4D4531003DB900 /* ButtonWithPopupMenu.m in Sources */, CBB7DEEA0F53313F00ABF3EA /* DomainListWindowController.m in Sources */, CB93674F0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m in Sources */, + CBC3C0C20F86DDA10055C0B0 /* NSApplication+SystemVersion.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/TigerTimerWindow.xib b/TigerTimerWindow.xib new file mode 100644 index 00000000..9d1c8458 --- /dev/null +++ b/TigerTimerWindow.xib @@ -0,0 +1,333 @@ + + + + 1040 + 9G55 + 677 + 949.43 + 353.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + TimerWindowController + + + FirstResponder + + + NSApplication + + + TimerWindowController + + + 8215 + 2 + {{196, 428}, {212, 82}} + -469762048 + SelfControl + NFHUDWindow + + {3.40282e+38, 3.40282e+38} + + + 256 + + YES + + + 258 + {{7, 30}, {201, 22}} + + YES + + 68288064 + 138413056 + 00:00:00 + + LucidaGrande + 1.300000e+01 + 1044 + + + YES + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 1 + MSAxIDEAA + + + + + + 268 + {{59, 6}, {94, 25}} + + YES + + 67239424 + 134217728 + Add to Block + + + -2038152961 + 163 + + + 400 + 75 + + + + {212, 82} + + + {{0, 0}, {1280, 778}} + {3.40282e+38, 3.40282e+38} + + + + + YES + + + window + + + + 40 + + + + timerLabel_ + + + + 41 + + + + window + + + + 51 + + + + timerLabel_ + + + + 52 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 7 + + + + + 31 + + + YES + + + + Panel (SelfControl) + + + 32 + + + YES + + + + + + + 49 + + + YES + + + + + + 50 + + + + + 33 + + + YES + + + + + + 34 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 31.IBEditorWindowLastContentRect + 31.IBPluginDependency + 31.IBWindowTemplateEditedContentRect + 31.NSWindowTemplate.visibleAtLaunch + 32.IBPluginDependency + 33.CustomClassName + 33.IBPluginDependency + 34.IBPluginDependency + 49.IBPluginDependency + 50.IBPluginDependency + 7.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + {{244, 382}, {212, 82}} + com.apple.InterfaceBuilder.CocoaPlugin + {{244, 382}, {212, 82}} + + com.apple.InterfaceBuilder.CocoaPlugin + EtchedText + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 52 + + + + YES + + NSApplication + + IBProjectSource + NSApplication+SystemVersion.h + + + + TimerWindowController + NSWindowController + + timerLabel_ + id + + + IBProjectSource + TimerWindowController.h + + + + + YES + + NFHUDWindow + NSPanel + + IBDocumentRelativeSource + iLifeControls.framework/Versions/A/Headers/NFHUDWindow.h + + + + + 0 + SelfControl.xcodeproj + 3 + + diff --git a/TimerWindow.xib b/TimerWindow.xib old mode 100755 new mode 100644 index 0d729540..236adfb9 --- a/TimerWindow.xib +++ b/TimerWindow.xib @@ -8,7 +8,6 @@ 353.00 YES - YES @@ -35,27 +34,30 @@ NSApplication - - 23 + + TimerWindowController + + + 8215 2 - {{196, 463}, {223, 47}} + {{196, 428}, {212, 82}} -469762048 SelfControl - NFHUDWindow + NSPanel {3.40282e+38, 3.40282e+38} - - + + 256 YES - - + + 258 - {{17, 0}, {74, 22}} - + {{7, 30}, {201, 22}} + YES - + 68288064 138413056 00:00:00 @@ -64,7 +66,7 @@ 1.300000e+01 1044 - + YES 6 @@ -81,59 +83,101 @@ + + + 268 + {{46, 10}, {119, 17}} + + YES + + 67239424 + 134348800 + Add to Blacklist + + LucidaGrande + 1.100000e+01 + 3100 + + + -2033434369 + 164 + + 549650432 + {1, 1} + + YES + + YES + + + + TU0AKgAAAAoAAAANAQAAAwAAAAEAAQAAAQEAAwAAAAEAAQAAAQIAAwAAAAIACAAIAQMAAwAAAAEAAQAA +AQYAAwAAAAEAAQAAAREABAAAAAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEgAAAA +ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + + + + + + 3 + MCAwAA + + + + + 400 + 75 + + - {223, 47} - + {212, 82} {{0, 0}, {1280, 778}} {3.40282e+38, 3.40282e+38} - - TimerWindowController - YES - delegate - - + window + + - 13 + 40 timerLabel_ - + - 25 + 41 - timerLabel_ + window - + - 27 + 51 - window - - + timerLabel_ + + - 29 + 52 - - window - - + + addToBlock: + + - 30 + 53 @@ -166,41 +210,57 @@ Application - 3 - + 7 + + + + + 31 + YES - + + Panel (SelfControl) - 4 - + 32 + YES - + + - + - 7 - - + 49 + + + YES + + + - 5 - + 50 + + + + + 33 + YES - + - + - 6 - - + 34 + + @@ -211,13 +271,15 @@ -1.IBPluginDependency -2.IBPluginDependency -3.IBPluginDependency - 3.IBEditorWindowLastContentRect - 3.IBPluginDependency - 3.IBWindowTemplateEditedContentRect - 3.NSWindowTemplate.visibleAtLaunch - 4.IBPluginDependency - 5.IBPluginDependency - 6.IBPluginDependency + 31.IBEditorWindowLastContentRect + 31.IBPluginDependency + 31.IBWindowTemplateEditedContentRect + 31.NSWindowTemplate.visibleAtLaunch + 32.IBPluginDependency + 33.IBPluginDependency + 34.IBPluginDependency + 49.IBPluginDependency + 50.IBPluginDependency 7.IBPluginDependency @@ -225,14 +287,16 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilderKit com.apple.InterfaceBuilderKit - {{235, 365}, {223, 47}} + {{276, 201}, {212, 82}} com.apple.InterfaceBuilder.CocoaPlugin - {{235, 365}, {223, 47}} + {{276, 201}, {212, 82}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin @@ -255,35 +319,44 @@ - 30 + 53 YES + + NSApplication + + IBProjectSource + NSApplication+SystemVersion.h + + TimerWindowController NSWindowController - - timerLabel_ + + addToBlock: id + + YES + + YES + addSheet_ + timerLabel_ + + + YES + NSWindow + id + + IBProjectSource TimerWindowController.h - - YES - - NFHUDWindow - NSPanel - - IBDocumentRelativeSource - ../xcodebuild/Release/iLifeControls.framework/Versions/A/Headers/NFHUDWindow.h - - - 0 SelfControl.xcodeproj diff --git a/TimerWindowController.h b/TimerWindowController.h index 1bc98065..7c487bce 100755 --- a/TimerWindowController.h +++ b/TimerWindowController.h @@ -21,23 +21,47 @@ // along with this program. If not, see . #import +#import "AppController.h" +#import "NSApplication+SystemVersion.h" + +// This is a reference to the kSelfControlLockFilePath const variable in AppController.m +extern NSString* const kSelfControlLockFilePath; // A subclass of NSWindowController created to manage the floating timer window // which tells the user how much time remains in the block. @interface TimerWindowController : NSWindowController { IBOutlet id timerLabel_; + // The leopardWindow_ and leopardLabel_ IBOutlets are connected to versions of + // window and timerLabel_ which are optimized and nicer for Leopard. NSTimer* timerUpdater_; NSDate* blockEndingDate_; + IBOutlet NSPanel* addSheet_; + IBOutlet NSTextField* addToBlockTextField_; } // Updates the window's timer display to the correct time remaining until the // block expires. If the block has expired and been removed, it invalidates // timerUpdater, closes the timer window, and opens the initial window. -- (void)updateTimerDisplay; +- (void)updateTimerDisplay:(NSTimer*)timer; // Invalidates timerUpdater if it's still valid, then restarts the timer and // sets the end time to the scheduled end of the block, or the current time if // no block is scheduled. - (void)reloadTimer; +// Called when the "Add to Block" method is called, instantiates and runs a sheet +// to take input for the host to block. +- (IBAction) addToBlock:(id)sender; + +// Called by the "Add to Block" sheet if the user clicks the cancel button, to +// destroy the sheet without doing anything else. +- (IBAction) cancelAdd:(id)sender; + +// Called by the "Add to Block" sheet if the user clicks the add button, to destroy +// the sheet and first try to add the host to the block. +- (IBAction) performAdd:(id)sender; + +// Delegate method for the sheet. Just closes the sheet. +- (void)didEndSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; + @end \ No newline at end of file diff --git a/TimerWindowController.m b/TimerWindowController.m index 41db5520..8c8833ea 100755 --- a/TimerWindowController.m +++ b/TimerWindowController.m @@ -1,4 +1,4 @@ - + // // TimerWindowController.m // SelfControl @@ -24,12 +24,17 @@ #import "TimerWindowController.h" -#import "AppController.h" - @implementation TimerWindowController - (TimerWindowController*) init { - [super initWithWindowNibName:@"TimerWindow"]; + unsigned int major, minor, bugfix; + + [NSApp getSystemVersionMajor: &major minor: &minor bugFix: &bugfix]; + + if(major <= 10 && minor < 5) + [super initWithWindowNibName:@"TigerTimerWindow"]; + else + [super initWithWindowNibName:@"TimerWindow"]; return self; } @@ -38,7 +43,7 @@ - (void)awakeFromNib { NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; NSWindow* window = [self window]; - + if([defaults boolForKey:@"TimerWindowFloats"]) { [window setLevel: NSFloatingWindowLevel]; [window setHidesOnDeactivate: NO]; @@ -48,8 +53,20 @@ - (void)awakeFromNib { [window setHidesOnDeactivate: NO]; } - NSDate* beginDate = [defaults objectForKey:@"BlockStartedDate"]; - NSTimeInterval blockDuration = [defaults integerForKey:@"BlockDuration"] * 60; + NSDictionary* lockDict = [NSDictionary dictionaryWithContentsOfFile: kSelfControlLockFilePath]; + + NSDate* beginDate = [lockDict objectForKey:@"BlockStartedDate"]; + NSTimeInterval blockDuration = [[lockDict objectForKey:@"BlockDuration"] intValue] * 60; + + if(beginDate == nil || [beginDate isEqualToDate: [NSDate distantFuture]] + || blockDuration <= 0) { + beginDate = [defaults objectForKey:@"BlockStartedDate"]; + blockDuration = [defaults integerForKey:@"BlockDuration"] * 60; + } else { + [defaults setObject: beginDate forKey: @"BlockStartedDate"]; + [defaults setObject: [NSNumber numberWithFloat: (blockDuration / 60)] forKey: @"BlockDuration"]; + } + // It is KEY to retain the block ending date , if you forget to retain it // you'll end up with a nasty program crash. if(blockDuration) @@ -57,46 +74,57 @@ - (void)awakeFromNib { else // If the block duration is 0, the ending date is... now! blockEndingDate_ = [[NSDate date] retain]; - [self updateTimerDisplay]; + [self updateTimerDisplay: nil]; timerUpdater_ = [NSTimer scheduledTimerWithTimeInterval: 1.0 target: self - selector: @selector(updateTimerDisplay) + selector: @selector(updateTimerDisplay:) userInfo: nil repeats: YES]; } - (void)reloadTimer { NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; - NSDate* beginDate = [defaults objectForKey:@"BlockStartedDate"]; - NSTimeInterval blockDuration = [defaults integerForKey:@"BlockDuration"] * 60; + + NSDictionary* lockDict = [NSDictionary dictionaryWithContentsOfFile: kSelfControlLockFilePath]; + + NSDate* beginDate = [lockDict objectForKey:@"BlockStartedDate"]; + NSTimeInterval blockDuration = [[lockDict objectForKey:@"BlockDuration"] intValue] * 60; + + if(beginDate == nil || [beginDate isEqualToDate: [NSDate distantFuture]] + || blockDuration <= 0) { + beginDate = [defaults objectForKey:@"BlockStartedDate"]; + blockDuration = [defaults integerForKey:@"BlockDuration"] * 60; + } else { + [defaults setObject: beginDate forKey: @"BlockStartedDate"]; + [defaults setObject: [NSNumber numberWithFloat: (blockDuration / 60)] forKey: @"BlockDuration"]; + } + [blockEndingDate_ release]; if(blockDuration) blockEndingDate_ = [[beginDate addTimeInterval: blockDuration] retain]; else blockEndingDate_ = [[NSDate date] retain]; - if([timerUpdater_ isValid]) { - [timerUpdater_ invalidate]; - timerUpdater_ = nil; - } + + [timerUpdater_ invalidate]; + timerUpdater_ = nil; + timerUpdater_ = [NSTimer scheduledTimerWithTimeInterval: 1.0 target: self - selector: @selector(updateTimerDisplay) + selector: @selector(updateTimerDisplay:) userInfo: nil repeats: YES]; - [self updateTimerDisplay]; + [self updateTimerDisplay: nil]; } -- (void)updateTimerDisplay { +- (void)updateTimerDisplay:(NSTimer*)timer { int numSeconds = (int) [blockEndingDate_ timeIntervalSinceNow]; int numHours; int numMinutes; if(numSeconds < 0) { if(![[NSApp delegate] selfControlLaunchDaemonIsLoaded]) { - if([timerUpdater_ isValid]) { - [timerUpdater_ invalidate]; - timerUpdater_ = nil; - } + [timer invalidate]; + timerUpdater_ = nil; [timerLabel_ setStringValue: @"Block not active"]; [timerLabel_ setFont: [[NSFontManager sharedFontManager] @@ -106,6 +134,12 @@ - (void)updateTimerDisplay { [timerLabel_ sizeToFit]; + // Also reload the contents of the domain list in case it was changed while + // the block was ongoing. We do this by simply clearing the + // AppController's domainListWindowController variable. It will initialize + // a new object when it is needed, which will have new data. + [[NSApp delegate] setDomainListWindowController: nil]; + [[NSApp delegate] refreshUserInterface]; } @@ -139,4 +173,37 @@ - (void)windowShouldClose:(NSNotification *)notification { } } +- (IBAction) addToBlock:(id)sender { + // At first I tried loading the nib only if it wasn't loaded, but for some reason + // it didn't work right and sometimes the nib would seem to be loaded even though + // it obviously wasn't loaded properly. + [NSBundle loadNibNamed: @"AddToBlock" owner: self]; + + [NSApp beginSheet: addSheet_ + modalForWindow: [self window] + modalDelegate: self + didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) + contextInfo: nil]; +} + +- (IBAction) cancelAdd:(id)sender { + [NSApp endSheet: addSheet_]; +} + +- (IBAction) performAdd:(id)sender { + NSString* addToBlockTextFieldContents = [addToBlockTextField_ stringValue]; + [[NSApp delegate] addToBlockList: addToBlockTextFieldContents]; + [NSApp endSheet: addSheet_]; +} + +- (void)didEndSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo { + [sheet orderOut:self]; +} + +- (void)dealloc { + [timerUpdater_ invalidate]; + timerUpdater_ = nil; + [super dealloc]; +} + @end \ No newline at end of file