Changeset 3505
- Timestamp:
- 12/30/06 01:00:55 (2 years ago)
- Files:
-
- trunk/Chat Core.xcodeproj/project.pbxproj (modified) (5 diffs)
- trunk/Chat Core/MVFileTransfer.h (modified) (1 diff)
- trunk/Chat Core/MVFileTransfer.m (modified) (2 diffs)
- trunk/Chat Core/MVIRCFileTransfer.h (modified) (5 diffs)
- trunk/Chat Core/MVIRCFileTransfer.m (modified) (14 diffs)
- trunk/Chat Core/Transmission.h (added)
- trunk/Controllers/MVFileTransferController.m (modified) (2 diffs)
- trunk/Frameworks/frameworks.tar.gz (modified) (previous)
- trunk/Languages/Dutch.lproj/Credits.rtf (modified) (11 diffs)
- trunk/Languages/Dutch.lproj/JVFileTransferPreferences.nib/classes.nib (modified) (1 diff)
- trunk/Languages/Dutch.lproj/JVFileTransferPreferences.nib/info.nib (modified) (1 diff)
- trunk/Languages/Dutch.lproj/JVFileTransferPreferences.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/English.lproj/Credits.rtf (modified) (11 diffs)
- trunk/Languages/English.lproj/JVFileTransferPreferences.nib/classes.nib (modified) (1 diff)
- trunk/Languages/English.lproj/JVFileTransferPreferences.nib/info.nib (modified) (3 diffs)
- trunk/Languages/English.lproj/JVFileTransferPreferences.nib/keyedobjects.nib (added)
- trunk/Languages/French.lproj/Credits.rtf (modified) (11 diffs)
- trunk/Languages/French.lproj/JVFileTransferPreferences.nib/classes.nib (modified) (1 diff)
- trunk/Languages/French.lproj/JVFileTransferPreferences.nib/info.nib (modified) (2 diffs)
- trunk/Languages/French.lproj/JVFileTransferPreferences.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/German.lproj/Credits.rtf (modified) (10 diffs)
- trunk/Languages/German.lproj/JVFileTransferPreferences.nib/classes.nib (modified) (1 diff)
- trunk/Languages/German.lproj/JVFileTransferPreferences.nib/info.nib (modified) (2 diffs)
- trunk/Languages/German.lproj/JVFileTransferPreferences.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/Italian.lproj/Credits.rtf (modified) (11 diffs)
- trunk/Languages/Italian.lproj/JVFileTransferPreferences.nib/classes.nib (modified) (1 diff)
- trunk/Languages/Italian.lproj/JVFileTransferPreferences.nib/info.nib (modified) (2 diffs)
- trunk/Languages/Italian.lproj/JVFileTransferPreferences.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/Spanish.lproj/Credits.rtf (modified) (11 diffs)
- trunk/Languages/Spanish.lproj/JVFileTransferPreferences.nib/classes.nib (modified) (1 diff)
- trunk/Languages/Spanish.lproj/JVFileTransferPreferences.nib/info.nib (modified) (2 diffs)
- trunk/Languages/Spanish.lproj/JVFileTransferPreferences.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/pt_PT.lproj/Credits.rtf (modified) (11 diffs)
- trunk/Languages/pt_PT.lproj/JVFileTransferPreferences.nib/classes.nib (modified) (1 diff)
- trunk/Languages/pt_PT.lproj/JVFileTransferPreferences.nib/info.nib (modified) (2 diffs)
- trunk/Languages/pt_PT.lproj/JVFileTransferPreferences.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/zh_TW.lproj/Credits.rtf (modified) (19 diffs)
- trunk/Languages/zh_TW.lproj/JVFileTransferPreferences.nib/classes.nib (modified) (1 diff)
- trunk/Languages/zh_TW.lproj/JVFileTransferPreferences.nib/info.nib (modified) (1 diff)
- trunk/Languages/zh_TW.lproj/JVFileTransferPreferences.nib/keyedobjects.nib (modified) (previous)
- trunk/Preferences/JVFileTransferPreferences.h (modified) (1 diff)
- trunk/Preferences/JVFileTransferPreferences.m (modified) (2 diffs)
- trunk/Resources/info.colloquy.plist (modified) (1 diff)
- trunk/Settings/Common Settings.xcconfig (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Chat Core.xcodeproj/project.pbxproj
r3319 r3505 8 8 9 9 /* Begin PBXBuildFile section */ 10 1C11689A0B45F98700F57D2C /* libtransmission.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C1168990B45F98700F57D2C /* libtransmission.a */; }; 10 11 1C11B7A109C27AC800789814 /* BSD License.txt in Resources */ = {isa = PBXBuildFile; fileRef = 1C11B7A009C27AC800789814 /* BSD License.txt */; }; 11 12 1C3D55BC05A4CBBE00F25F5E /* NSNumberAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C3D55BA05A4CBBE00F25F5E /* NSNumberAdditions.m */; }; … … 68 69 089C167FFE841241C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; 69 70 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; 71 1C1168990B45F98700F57D2C /* libtransmission.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtransmission.a; path = Frameworks/libtransmission.a; sourceTree = "<group>"; }; 72 1C1168CC0B45FA4700F57D2C /* Transmission.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Transmission.h; path = "Chat Core/Transmission.h"; sourceTree = "<group>"; }; 70 73 1C11B7A009C27AC800789814 /* BSD License.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "BSD License.txt"; path = "Resources/BSD License.txt"; sourceTree = "<group>"; }; 71 74 1C2EF7EB0427A40B00000102 /* MVChatPluginManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MVChatPluginManager.h; path = "Chat Core/MVChatPluginManager.h"; sourceTree = "<group>"; }; … … 149 152 1CEEB173095BE3A000166A54 /* CoreServices.framework in Frameworks */, 150 153 1C8AAF2B09D6A0A100CF29EB /* AGRegex.framework in Frameworks */, 154 1C11689A0B45F98700F57D2C /* libtransmission.a in Frameworks */, 151 155 ); 152 156 runOnlyForDeploymentPostprocessing = 0; … … 186 190 1C5A233E06FA4FEE00A51F10 /* libsilcclient.framework */, 187 191 1C8AAF2609D6A0A100CF29EB /* AGRegex.framework */, 192 1C1168990B45F98700F57D2C /* libtransmission.a */, 188 193 ); 189 194 name = "Linked Frameworks"; … … 272 277 1CD6290D096118B900BD1DD2 /* InterThreadMessaging.m */, 273 278 1CD6290C096118B900BD1DD2 /* InterThreadMessaging.h */, 279 1C1168CC0B45FA4700F57D2C /* Transmission.h */, 274 280 ); 275 281 name = "Sources & Headers"; trunk/Chat Core/MVFileTransfer.h
r3455 r3505 42 42 + (void) setFileTransferPortRange:(NSRange) range; 43 43 + (NSRange) fileTransferPortRange; 44 45 + (void) setAutoPortMappingEnabled:(BOOL) enable; 46 + (BOOL) isAutoPortMappingEnabled; 44 47 45 48 #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 trunk/Chat Core/MVFileTransfer.m
r3457 r3505 15 15 16 16 static NSRange portRange = { 1024, 24 }; 17 static BOOL autoPortMapping = YES; 17 18 18 19 @implementation MVFileTransfer … … 23 24 + (NSRange) fileTransferPortRange { 24 25 return portRange; 26 } 27 28 + (void) setAutoPortMappingEnabled:(BOOL) enable { 29 autoPortMapping = enable; 30 } 31 32 + (BOOL) isAutoPortMappingEnabled { 33 return autoPortMapping; 25 34 } 26 35 trunk/Chat Core/MVIRCFileTransfer.h
r3455 r3505 1 1 #import "MVFileTransfer.h" 2 2 #import "MVFileTransferPrivate.h" 3 #import "Transmission.h" 3 4 4 5 @class AsyncSocket; … … 7 8 AsyncSocket *_connection; 8 9 AsyncSocket *_acceptConnection; 10 tr_natpmp_t *_natpmp; 11 tr_upnp_t *_upnp; 9 12 NSThread *_connectionThread; 10 13 NSFileHandle *_fileHandle; … … 21 24 - (void) _finish; 22 25 - (unsigned int) _passiveIdentifier; 26 - (void) _setUPnP:(tr_upnp_t *) upnp; 27 - (void) _setNATPMP:(tr_natpmp_t *) natpmp; 23 28 @end 24 29 … … 28 33 AsyncSocket *_connection; 29 34 AsyncSocket *_acceptConnection; 35 tr_natpmp_t *_natpmp; 36 tr_upnp_t *_upnp; 30 37 NSThread *_connectionThread; 31 38 NSFileHandle *_fileHandle; … … 43 50 - (unsigned int) _passiveIdentifier; 44 51 - (void) _setFileNameQuoted:(unsigned int) quoted; 52 - (void) _setUPnP:(tr_upnp_t *) upnp; 53 - (void) _setNATPMP:(tr_natpmp_t *) natpmp; 45 54 @end trunk/Chat Core/MVIRCFileTransfer.m
r3443 r3505 7 7 #import "AsyncSocket.h" 8 8 #import "InterThreadMessaging.h" 9 #import "Transmission.h" 9 10 10 11 #define DCCPacketSize 4096 11 12 12 static BOOL acceptConnectionOnFirstPortInRange( AsyncSocket *connection, NSRange ports ) { 13 static int natTraversalStatus( tr_upnp_t *upnp, tr_natpmp_t *natpmp ) { 14 int statuses[] = { 15 TR_NAT_TRAVERSAL_MAPPED, 16 TR_NAT_TRAVERSAL_MAPPING, 17 TR_NAT_TRAVERSAL_UNMAPPING, 18 TR_NAT_TRAVERSAL_ERROR, 19 TR_NAT_TRAVERSAL_NOTFOUND, 20 TR_NAT_TRAVERSAL_DISABLED, 21 -1 22 }; 23 24 int upnpStatus = TR_NAT_TRAVERSAL_DISABLED; 25 int natpmpStatus = TR_NAT_TRAVERSAL_DISABLED; 26 27 if( upnp ) upnpStatus = tr_upnpStatus( upnp ); 28 if( natpmp ) natpmpStatus = tr_natpmpStatus( natpmp ); 29 30 for( unsigned i = 0; statuses[i] >= 0; i++ ) 31 if( statuses[i] == upnpStatus || statuses[i] == natpmpStatus ) 32 return statuses[i]; 33 34 return TR_NAT_TRAVERSAL_ERROR; 35 } 36 37 static BOOL acceptConnectionOnFirstPortInRange( id transfer, AsyncSocket *connection, NSRange ports ) { 13 38 unsigned int port = ports.location; 14 39 BOOL success = NO; … … 18 43 break; 19 44 } else { 45 [connection disconnect]; 20 46 if( port == 0 ) break; 21 [connection disconnect];22 47 if( ++port > NSMaxRange( ports ) ) 23 48 port = 0; // just use a random port since the user defined range is in use 49 } 50 } 51 52 if( success && [[transfer class] isAutoPortMappingEnabled] ) { 53 tr_msgInit(); 54 tr_setMessageLevel( 3 ); 55 56 static tr_fd_t *fd = NULL; 57 if( ! fd ) fd = tr_fdInit(); 58 if( fd ) { 59 tr_upnp_t *upnp = tr_upnpInit( fd ); 60 tr_upnpStart( upnp ); 61 tr_upnpForwardPort( upnp, port ); 62 [transfer _setUPnP:upnp]; 63 64 tr_natpmp_t *natpmp = tr_natpmpInit( fd ); 65 tr_natpmpStart( natpmp ); 66 tr_natpmpForwardPort( natpmp, port ); 67 [transfer _setNATPMP:natpmp]; 68 69 NSDate *mappingStart = [NSDate date]; 70 int status = 0; 71 do { 72 tr_upnpPulse( upnp ); 73 tr_natpmpPulse( natpmp ); 74 status = natTraversalStatus( upnp, natpmp ); 75 } while( ( status == TR_NAT_TRAVERSAL_MAPPING || status == TR_NAT_TRAVERSAL_NOTFOUND ) 76 && ABS( [mappingStart timeIntervalSinceNow] ) < 5. ); 24 77 } 25 78 } … … 75 128 [_connection disconnect]; 76 129 [_fileHandle closeFile]; 130 131 if( _upnp ) tr_upnpClose( _upnp ); 132 _upnp = NULL; 133 134 if( _natpmp ) tr_natpmpClose( _natpmp ); 135 _natpmp = NULL; 136 77 137 [super finalize]; 78 138 } … … 95 155 [old closeFile]; 96 156 [old release]; 157 158 if( _upnp ) tr_upnpClose( _upnp ); 159 _upnp = NULL; 160 161 if( _natpmp ) tr_natpmpClose( _natpmp ); 162 _natpmp = NULL; 97 163 98 164 _connectionThread = nil; … … 212 278 _acceptConnection = [[AsyncSocket allocWithZone:nil] initWithDelegate:self]; 213 279 214 BOOL success = acceptConnectionOnFirstPortInRange( _acceptConnection, [[self class] fileTransferPortRange] );280 BOOL success = acceptConnectionOnFirstPortInRange( self, _acceptConnection, [[self class] fileTransferPortRange] ); 215 281 216 282 if( success ) { … … 242 308 [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector( _finish ) object:nil]; 243 309 310 if( _upnp ) tr_upnpClose( _upnp ); 311 if( _natpmp ) tr_natpmpClose( _natpmp ); 312 244 313 id old = _acceptConnection; 245 314 _acceptConnection = nil; … … 271 340 BOOL active = YES; 272 341 while( active && ! _done ) { 342 if( _upnp ) tr_upnpPulse( _upnp ); 343 if( _natpmp ) tr_natpmpPulse( _natpmp ); 344 273 345 NSDate *timeout = [[NSDate allocWithZone:nil] initWithTimeIntervalSinceNow:5.]; 274 346 active = [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:timeout]; … … 295 367 [super _setStartOffset:newStartOffset]; 296 368 } 369 370 - (void) _setUPnP:(tr_upnp_t *) upnp { 371 _upnp = upnp; 372 } 373 374 - (void) _setNATPMP:(tr_natpmp_t *) natpmp { 375 _natpmp = natpmp; 376 } 297 377 @end 298 378 … … 305 385 [_fileHandle closeFile]; 306 386 [_fileHandle synchronizeFile]; 387 388 if( _upnp ) tr_upnpClose( _upnp ); 389 _upnp = NULL; 390 391 if( _natpmp ) tr_natpmpClose( _natpmp ); 392 _natpmp = NULL; 307 393 308 394 [super finalize]; … … 327 413 [old closeFile]; 328 414 [old release]; 415 416 if( _upnp ) tr_upnpClose( _upnp ); 417 _upnp = NULL; 418 419 if( _natpmp ) tr_natpmpClose( _natpmp ); 420 _natpmp = NULL; 329 421 330 422 _connectionThread = nil; … … 476 568 _acceptConnection = [[AsyncSocket allocWithZone:nil] initWithDelegate:self]; 477 569 478 BOOL success = acceptConnectionOnFirstPortInRange( _acceptConnection, [[self class] fileTransferPortRange] );570 BOOL success = acceptConnectionOnFirstPortInRange( self, _acceptConnection, [[self class] fileTransferPortRange] ); 479 571 480 572 if( success ) { … … 489 581 - (void) _finish { 490 582 [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector( _finish ) object:nil]; 583 584 if( _upnp ) tr_upnpClose( _upnp ); 585 if( _natpmp ) tr_natpmpClose( _natpmp ); 491 586 492 587 id old = _connection; … … 519 614 BOOL active = YES; 520 615 while( active && ! _done ) { 616 if( _upnp ) tr_upnpPulse( _upnp ); 617 if( _natpmp ) tr_natpmpPulse( _natpmp ); 618 521 619 NSDate *timeout = [[NSDate allocWithZone:nil] initWithTimeIntervalSinceNow:5.]; 522 620 active = [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:timeout]; … … 550 648 _fileNameQuoted = quoted; 551 649 } 650 651 - (void) _setUPnP:(tr_upnp_t *) upnp { 652 _upnp = upnp; 653 } 654 655 - (void) _setNATPMP:(tr_natpmp_t *) natpmp { 656 _natpmp = natpmp; 657 } 552 658 @end trunk/Controllers/MVFileTransferController.m
r3460 r3505 140 140 } 141 141 142 + (void) _setFileTransferPortRange {143 NSRange range = NSRangeFromString( [[NSUserDefaults standardUserDefaults] stringForKey:@"JVFileTransferPortRange"] );144 [MVFileTransfer setFileTransferPortRange:range];145 }146 147 142 #pragma mark - 148 143 … … 157 152 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector( _fileTransferError: ) name:MVFileTransferErrorOccurredNotification object:nil]; 158 153 159 [[self class] performSelector:@selector( _setFileTransferPortRange ) withObject:nil afterDelay:2.]; 154 NSRange range = NSRangeFromString( [[NSUserDefaults standardUserDefaults] stringForKey:@"JVFileTransferPortRange"] ); 155 [MVFileTransfer setFileTransferPortRange:range]; 156 157 BOOL autoOpen = [[NSUserDefaults standardUserDefaults] boolForKey:@"JVAutoOpenTransferPorts"]; 158 [MVFileTransfer setAutoPortMappingEnabled:autoOpen]; 160 159 161 160 _safeFileExtentions = [[NSSet allocWithZone:nil] initWithObjects:@"jpg",@"jpeg",@"gif",@"png",@"tif",@"tiff",@"psd",@"pdf",@"txt",@"rtf",@"html",@"htm",@"swf",@"mp3",@"wma",@"wmv",@"ogg",@"ogm",@"mov",@"mpg",@"mpeg",@"m1v",@"m2v",@"mp4",@"avi",@"vob",@"avi",@"asx",@"asf",@"pls",@"m3u",@"rmp",@"aif",@"aiff",@"aifc",@"wav",@"wave",@"m4a",@"m4p",@"m4b",@"dmg",@"udif",@"ndif",@"dart",@"sparseimage",@"cdr",@"dvdr",@"iso",@"img",@"toast",@"rar",@"sit",@"sitx",@"bin",@"hqx",@"zip",@"gz",@"tgz",@"tar",@"bz",@"bz2",@"tbz",@"z",@"taz",@"uu",@"uue",@"colloquytranscript",@"torrent",nil]; trunk/Languages/Dutch.lproj/Credits.rtf
r3150 r3505 1 {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf350 2 {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fnil\fcharset77 LucidaGrande; 3 \f3\fswiss\fcharset77 Helvetica-Oblique;\f4\fnil\fcharset77 LucidaGrande-Bold;} 1 {\rtf1\mac\ansicpg10000\cocoartf885 2 {\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fnil\fcharset77 LucidaGrande;} 4 3 {\colortbl;\red255\green255\blue255;\red19\green16\blue255;} 5 \vieww9000\viewh8400\viewkind06 4 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 7 5 8 6 \f0\b\fs24 \cf0 Ontwikkeling & Ontwerp 9 \ f1\b0 \7 \b0 \ 10 8 \pard\li359\fi-359\ql\qnatural 11 9 12 \f 2\fs20 \cf0 Timothy Hatcher ({\field{\*\fldinst{HYPERLINK "mailto:timothy@colloquy.info"}}{\fldrslt \cf2 timothy@colloquy.info}})13 \f 1\fs24 \14 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 15 16 \f 2\fs20 \cf0 Patrik Weiskircher ({\field{\*\fldinst{HYPERLINK "mailto:pat@colloquy.info"}}{\fldrslt \cf2 \ul \ulc2 pat@colloquy.info}})\10 \f1\fs20 \cf0 Timothy Hatcher ({\field{\*\fldinst{HYPERLINK "mailto:timothy@colloquy.info"}}{\fldrslt \cf2 timothy@colloquy.info}}) 11 \f0\fs24 \ 12 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 13 14 \f1\fs20 \cf0 Patrik Weiskircher ({\field{\*\fldinst{HYPERLINK "mailto:pat@colloquy.info"}}{\fldrslt \cf2 \ul \ulc2 pat@colloquy.info}})\ 17 15 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 18 16 … … 21 19 22 20 \fs24 \cf0 IRC chatmotor 23 \ f1\b0 \24 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 25 26 \ f3\i\fs20 \cf0 Chat Core IRC gedeelten27 \f 2\i0 \21 \b0 \ 22 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 23 24 \i\fs20 \cf0 Chat Core IRC gedeelten 25 \f1\i0 \ 28 26 \'a9 2003-2005 Timothy Hatcher onder de GPL v. 2\ 29 27 \'a9 2006 Timothy Hatcher onder de BSD License\ … … 35 33 36 34 \fs24 \cf0 SILC chatmotor 37 \ f1\b0 \38 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 39 40 \ f3\i\fs20 \cf0 SILC Toolkit41 \f 2\i0 \35 \b0 \ 36 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 37 38 \i\fs20 \cf0 SILC Toolkit 39 \f1\i0 \ 42 40 \'a9 1997-2004 SILC Project onder de GPL v. 2\ 43 41 \'a9 2005-2006 SILC Project onder de GPL & BSD License\ … … 51 49 52 50 \fs24 \cf0 XML & XSLT motor 53 \ f1\b0 \54 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 55 56 \ f3\i\fs20 \cf0 XML & XSLT C libraries for GNOME57 \f 2\i0 \58 \'a9 1998-2006 Daniel Veillard onder de MIT-licentie .\51 \b0 \ 52 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 53 54 \i\fs20 \cf0 XML & XSLT C libraries for GNOME 55 \f1\i0 \ 56 \'a9 1998-2006 Daniel Veillard onder de MIT-licentie\ 59 57 Zie de MIT-licentie voor meer details.\cf2 \ul \ 60 58 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 61 59 {\field{\*\fldinst{HYPERLINK "http://xmlsoft.org"}}{\fldrslt \cf2 \ulnone http://xmlsoft.org}} 62 \f4\b\fs28 \cf0 \ulnone \ 60 \b\fs28 \cf0 \ulnone \ 61 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 62 63 \f0\fs20 \cf0 \ 64 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 65 66 \fs24 \cf0 NAT Traversal Library 67 \b0 \ 68 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 69 70 \i\fs20 \cf0 Transmission library 71 \f1\i0 \ 72 \'a9 2005-2006 Transmission project onder de MIT-licentie\ 73 Zie de MIT-licentie voor meer details.\cf2 \ul \ulc2 \ 74 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 75 {\field{\*\fldinst{HYPERLINK "http://transmission.m0k.org"}}{\fldrslt \cf2 \ulnone http://transmission.m0k.org}} 76 \b\fs28 \cf0 \ulnone \ 63 77 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 64 78 … … 67 81 68 82 \fs24 \cf0 Reguliere-expressiekader 69 \ f1\b0 \70 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 71 72 \ f3\i\fs20 \cf0 AGRegex Framework wrapping the PCRE library73 \f 2\i0 \83 \b0 \ 84 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 85 86 \i\fs20 \cf0 AGRegex Framework wrapping the PCRE library 87 \f1\i0 \ 74 88 \'a9 2002-2003 Aram Greenman onder de BSD-licentie\ 75 89 Zie de BSD-licentie voor meer details.\cf2 \ul \ 76 90 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 77 91 {\field{\*\fldinst{HYPERLINK "http://sf.net/projects/agkit"}}{\fldrslt \cf2 \ulnone http://sf.net/projects/agkit}} 78 \ f4\b\fs28 \cf0 \ulnone \79 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 80 81 \f 3\i\b0\fs10 \cf0 \92 \b\fs28 \cf0 \ulnone \ 93 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 94 95 \f0\i\b0\fs10 \cf0 \ 82 96 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 83 97 84 98 \fs20 \cf0 Perl Compatible Regular Expressions library 85 \f 2\i0 \99 \f1\i0 \ 86 100 \'a9 1997-2006 Philip Hazel, University of Cambridge\ 87 101 Zie de PCRE-licentie voor meer details.\cf2 \ul \ 88 102 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 89 103 {\field{\*\fldinst{HYPERLINK "http://pcre.org"}}{\fldrslt \cf2 \ulnone http://pcre.org}} 90 \ f4\b\fs28 \cf0 \ulnone \104 \b\fs28 \cf0 \ulnone \ 91 105 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 92 106 … … 95 109 96 110 \fs24 \cf0 Vensters met tabbladen 97 \ f1\b0 \98 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 99 100 \ f3\i\fs20 \cf0 Adium Tab View101 \f 2\i0 \111 \b0 \ 112 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 113 114 \i\fs20 \cf0 Adium Tab View 115 \f1\i0 \ 102 116 \'a9 2001-2006 Adam Iser onder de GPL\ 103 117 Zie de GNU Public License versie 2 voor meer details.\cf2 \ul \ 104 118 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 105 119 {\field{\*\fldinst{HYPERLINK "http://adiumx.com"}}{\fldrslt \cf2 \ulnone http://adiumx.com}} 106 \ f4\b\fs28 \cf0 \ulnone \120 \b\fs28 \cf0 \ulnone \ 107 121 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 108 122 … … 113 127 \pard\pardeftab720\ql\qnatural 114 128 115 \f 2\b0\fs20 \cf0 Stephen Butler\129 \f1\b0\fs20 \cf0 Stephen Butler\ 116 130 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 117 131 \cf0 Phil Larson\ … … 135 149 136 150 \fs24 \cf0 Colloquy.info hosting 137 \ f1\b0 \138 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 139 140 \f 2\fs20 \cf0 James Cox ({\field{\*\fldinst{HYPERLINK "http://imajes.info"}}{\fldrslt \cf2 imajes.info}})141 \f 1\fs24 \142 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 143 144 \ f0\b\fs20 \cf0 \151 \b0 \ 152 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 153 154 \f1\fs20 \cf0 James Cox ({\field{\*\fldinst{HYPERLINK "http://imajes.info"}}{\fldrslt \cf2 imajes.info}}) 155 \f0\fs24 \ 156 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 157 158 \b\fs20 \cf0 \ 145 159 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 146 160 147 161 \fs24 \cf0 Colloquy.info domeinnaam 148 \ f1\b0 \162 \b0 \ 149 163 \pard\li359\fi-359\ql\qnatural 150 164 151 \f 2\fs20 \cf0 Chris Marks ({\field{\*\fldinst{HYPERLINK "http://www.domainlauncher.com"}}{\fldrslt \cf2 domainlauncher.com}})152 \f 1\fs24 \153 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 154 155 \ f0\b\fs20 \cf0 \165 \f1\fs20 \cf0 Chris Marks ({\field{\*\fldinst{HYPERLINK "http://www.domainlauncher.com"}}{\fldrslt \cf2 domainlauncher.com}}) 166 \f0\fs24 \ 167 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 168 169 \b\fs20 \cf0 \ 156 170 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 157 171 … … 159 173 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 160 174 161 \f 2\b0\fs20 \cf0 English: Timothy Hatcher\175 \f1\b0\fs20 \cf0 English: Timothy Hatcher\ 162 176 Duits: Alexander Kempgen\ 163 177 Nederlands: Wouter Goossens\ … … 176 190 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 177 191 178 \f 2\b0\fs20 \cf0 Matt Anton\192 \f1\b0\fs20 \cf0 Matt Anton\ 179 193 Jorge Salvador Caffarena\ 180 194 James Cox\ … … 182 196 Adam Downes\ 183 197 Josh Gibbs 184 \f 1\fs24 \198 \f0\fs24 \ 185 199 \pard\tx0\tx1120\tx2240\tx3360\tx4480\tx5600\tx6720\tx7840\tx8960\tx10080\tx11200\tx12320\tx13440\tx14560\tx15680\tx16800\tx17920\tx19040\tx20160\tx21280\tx22400\tx23520\tx24640\tx25760\tx26880\tx28000\tx29120\tx30240\tx31360\tx32480\tx33600\tx34720\ql\qnatural 186 200 187 \f 2\fs20 \cf0 Hans Gerwitz\201 \f1\fs20 \cf0 Hans Gerwitz\ 188 202 Charles Hartman\ 189 203 Steve Klingsporn\ trunk/Languages/Dutch.lproj/JVFileTransferPreferences.nib/classes.nib
r2997 r3505 3 3 {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 4 4 { 5 ACTIONS = {change PortRange = id; changeSaveDownloads = id; };5 ACTIONS = {changeAutoOpenPorts = id; changePortRange = id; changeSaveDownloads = id; }; 6 6 CLASS = JVFileTransferPreferences; 7 7 LANGUAGE = ObjC; 8 OUTLETS = {maxRate = NSTextField; minRate = NSTextField; saveDownloads = NSPopUpButton; }; 8 OUTLETS = { 9 autoOpenPorts = NSButton; 10 maxRate = NSTextField; 11 minRate = NSTextField; 12 saveDownloads = NSPopUpButton; 13 }; 9 14 SUPERCLASS = NSPreferencesModule; 10 15 }, trunk/Languages/Dutch.lproj/JVFileTransferPreferences.nib/info.nib
r2997 r3505 4 4 <dict> 5 5 <key>IBDocumentLocation</key> 6 <string> 37 113 356 240 0 0 1024 746</string>6 <string>104 383 356 240 0 0 1440 878 </string> 7 7 <key>IBEditorPositions</key> 8 8 <dict> 9 9 <key>5</key> 10 <string> 66 330 545 367 0 0 1024 746</string>10 <string>447 398 545 403 0 0 1440 878 </string> 11 11 </dict> 12 12 <key>IBFramework Version</key> 13 <string>439.0</string> 14 <key>IBGroupedObjects</key> 15 <dict> 16 <key>0</key> 17 <array> 18 <string>85</string> 19 <string>86</string> 20 <string>88</string> 21 <string>89</string> 22 </array> 23 <key>2</key> 24 <array> 25 <string>133</string> 26 <string>132</string> 27 </array> 28 </dict> 29 <key>IBLastGroupID</key> 30 <string>3</string> 31 <key>IBOpenObjects</key> 32 <array> 33 <integer>5</integer> 34 </array> 13 <string>454.0</string> 35 14 <key>IBSystem Version</key> 36 <string> 8C46</string>15 <string>9A321</string> 37 16 </dict> 38 17 </plist> trunk/Languages/English.lproj/Credits.rtf
r3150 r3505 1 {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf350 2 {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fnil\fcharset77 LucidaGrande; 3 \f3\fswiss\fcharset77 Helvetica-Oblique;\f4\fnil\fcharset77 LucidaGrande-Bold;} 1 {\rtf1\mac\ansicpg10000\cocoartf885 2 {\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fnil\fcharset77 LucidaGrande;} 4 3 {\colortbl;\red255\green255\blue255;\red19\green16\blue255;} 5 \vieww9000\viewh8400\viewkind06 4 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 7 5 8 6 \f0\b\fs24 \cf0 Engineering & Design 9 \ f1\b0 \7 \b0 \ 10 8 \pard\li359\fi-359\ql\qnatural 11 9 12 \f 2\fs20 \cf0 Timothy Hatcher ({\field{\*\fldinst{HYPERLINK "mailto:timothy@colloquy.info"}}{\fldrslt \cf2 timothy@colloquy.info}})13 \f 1\fs24 \14 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 15 16 \f 2\fs20 \cf0 Patrik Weiskircher ({\field{\*\fldinst{HYPERLINK "mailto:pat@colloquy.info"}}{\fldrslt \cf2 \ul \ulc2 pat@colloquy.info}})\10 \f1\fs20 \cf0 Timothy Hatcher ({\field{\*\fldinst{HYPERLINK "mailto:timothy@colloquy.info"}}{\fldrslt \cf2 timothy@colloquy.info}}) 11 \f0\fs24 \ 12 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 13 14 \f1\fs20 \cf0 Patrik Weiskircher ({\field{\*\fldinst{HYPERLINK "mailto:pat@colloquy.info"}}{\fldrslt \cf2 \ul \ulc2 pat@colloquy.info}})\ 17 15 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 18 16 … … 21 19 22 20 \fs24 \cf0 IRC Chat Engine 23 \ f1\b0 \24 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 25 26 \ f3\i\fs20 \cf0 Chat Core IRC portions27 \f 2\i0 \21 \b0 \ 22 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 23 24 \i\fs20 \cf0 Chat Core IRC portions 25 \f1\i0 \ 28 26 \'a9 2003-2005 Timothy Hatcher under the GPL v. 2\ 29 27 \'a9 2006 Timothy Hatcher under the BSD License\ … … 35 33 36 34 \fs24 \cf0 SILC Chat Engine 37 \ f1\b0 \38 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 39 40 \ f3\i\fs20 \cf0 SILC Toolkit41 \f 2\i0 \35 \b0 \ 36 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 37 38 \i\fs20 \cf0 SILC Toolkit 39 \f1\i0 \ 42 40 \'a9 1997-2004 SILC Project under the GPL v. 2\ 43 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 44 \cf0 \'a9 2005-2006 SILC Project under the GPL & BSD License\ 45 See the BSD License for more details.\cf2 \ul \ulc2 \ 41 \'a9 2005-2006 SILC Project under the GPL & BSD License\ 42 See the BSD License for more details.\cf2 \ul \ 46 43 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 47 44 {\field{\*\fldinst{HYPERLINK "http://silcnet.org"}}{\fldrslt \cf2 \ulnone http://silcnet.org}}\ulnone \ … … 52 49 53 50 \fs24 \cf0 XML & XSLT Engine 54 \ f1\b0 \55 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 56 57 \ f3\i\fs20 \cf0 XML & XSLT C libraries for GNOME58 \f 2\i0 \51 \b0 \ 52 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 53 54 \i\fs20 \cf0 XML & XSLT C libraries for GNOME 55 \f1\i0 \ 59 56 \'a9 1998-2006 Daniel Veillard under the MIT License\ 60 57 See the MIT License for more details.\cf2 \ul \ 61 58 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 62 59 {\field{\*\fldinst{HYPERLINK "http://xmlsoft.org"}}{\fldrslt \cf2 \ulnone http://xmlsoft.org}} 63 \f4\b\fs28 \cf0 \ulnone \ 60 \b\fs28 \cf0 \ulnone \ 61 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 62 63 \f0\fs20 \cf0 \ 64 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 65 66 \fs24 \cf0 NAT Traversal Library 67 \b0 \ 68 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 69 70 \i\fs20 \cf0 Transmission library 71 \f1\i0 \ 72 \'a9 2005-2006 Transmission project under the MIT License\ 73 See the MIT License for more details.\cf2 \ul \ulc2 \ 74 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 75 {\field{\*\fldinst{HYPERLINK "http://transmission.m0k.org"}}{\fldrslt \cf2 \ulnone http://transmission.m0k.org}} 76 \b\fs28 \cf0 \ulnone \ 64 77 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 65 78 … … 68 81 69 82 \fs24 \cf0 Regular Expression Framework 70 \ f1\b0 \71 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 72 73 \ f3\i\fs20 \cf0 AGRegex Framework wrapping the PCRE library74 \f 2\i0 \83 \b0 \ 84 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 85 86 \i\fs20 \cf0 AGRegex Framework wrapping the PCRE library 87 \f1\i0 \ 75 88 \'a9 2002-2003 Aram Greenman under the BSD License\ 76 89 See the BSD License for more details.\cf2 \ul \ 77 90 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 78 91 {\field{\*\fldinst{HYPERLINK "http://sf.net/projects/agkit"}}{\fldrslt \cf2 \ulnone http://sf.net/projects/agkit}} 79 \ f4\b\fs28 \cf0 \ulnone \80 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 81 82 \f 3\i\b0\fs10 \cf0 \92 \b\fs28 \cf0 \ulnone \ 93 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 94 95 \f0\i\b0\fs10 \cf0 \ 83 96 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 84 97 85 98 \fs20 \cf0 Perl Compatible Regular Expressions library 86 \f 2\i0 \99 \f1\i0 \ 87 100 \'a9 1997-2006 Philip Hazel, University of Cambridge\ 88 101 See the PCRE License for more details.\cf2 \ul \ 89 102 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 90 103 {\field{\*\fldinst{HYPERLINK "http://pcre.org"}}{\fldrslt \cf2 \ulnone http://pcre.org}} 91 \ f4\b\fs28 \cf0 \ulnone \104 \b\fs28 \cf0 \ulnone \ 92 105 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 93 106 … … 96 109 97 110 \fs24 \cf0 Tabbed Windows 98 \ f1\b0 \99 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 100 101 \ f3\i\fs20 \cf0 Adium Tab View102 \f 2\i0 \111 \b0 \ 112 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 113 114 \i\fs20 \cf0 Adium Tab View 115 \f1\i0 \ 103 116 \'a9 2001-2006 Adam Iser under the GPL.\ 104 117 See the GNU Public License v. 2 for more details.\cf2 \ul \ 105 118 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 106 119 {\field{\*\fldinst{HYPERLINK "http://adiumx.com"}}{\fldrslt \cf2 \ulnone http://adiumx.com}} 107 \ f4\b\fs28 \cf0 \ulnone \120 \b\fs28 \cf0 \ulnone \ 108 121 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 109 122 … … 114 127 \pard\pardeftab720\ql\qnatural 115 128 116 \f 2\b0\fs20 \cf0 Stephen Butler\129 \f1\b0\fs20 \cf0 Stephen Butler\ 117 130 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 118 131 \cf0 Phil Larson\ … … 136 149 137 150 \fs24 \cf0 Colloquy.info Hosting 138 \ f1\b0 \139 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 140 141 \f 2\fs20 \cf0 James Cox ({\field{\*\fldinst{HYPERLINK "http://imajes.info"}}{\fldrslt \cf2 imajes.info}})142 \f 1\fs24 \143 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 144 145 \ f0\b\fs20 \cf0 \151 \b0 \ 152 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 153 154 \f1\fs20 \cf0 James Cox ({\field{\*\fldinst{HYPERLINK "http://imajes.info"}}{\fldrslt \cf2 imajes.info}}) 155 \f0\fs24 \ 156 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 157 158 \b\fs20 \cf0 \ 146 159 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 147 160 148 161 \fs24 \cf0 Colloquy.info Domain Name 149 \ f1\b0 \162 \b0 \ 150 163 \pard\li359\fi-359\ql\qnatural 151 164 152 \f 2\fs20 \cf0 Chris Marks ({\field{\*\fldinst{HYPERLINK "http://www.domainlauncher.com"}}{\fldrslt \cf2 domainlauncher.com}})153 \f 1\fs24 \154 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 155 156 \ f0\b\fs20 \cf0 \165 \f1\fs20 \cf0 Chris Marks ({\field{\*\fldinst{HYPERLINK "http://www.domainlauncher.com"}}{\fldrslt \cf2 domainlauncher.com}}) 166 \f0\fs24 \ 167 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 168 169 \b\fs20 \cf0 \ 157 170 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 158 171 … … 160 173 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 161 174 162 \f 2\b0\fs20 \cf0 English: Timothy Hatcher\175 \f1\b0\fs20 \cf0 English: Timothy Hatcher\ 163 176 German: Alexander Kempgen\ 164 177 Dutch: Wouter Goossens\ … … 177 190 \pard\tx560\tx1120\tx1680\tx224
