Bug 1581890 - remove whitespace from end of line in h/c/cpp. r=glandium
authorKai Engert <kaie@kuix.de>
Tue, 24 Sep 2019 00:31:15 +0000
changeset 4834 6856b110d025599a243f0b0128c7f39572a9ead0
parent 4833 71b3c15c753cbdacb24527400fd633da885fab55
child 4835 753c7baeb58d34bb93f6bdcdd49f8e74bc32ee41
push id333
push userkaie@kuix.de
push dateTue, 24 Sep 2019 09:47:48 +0000
reviewersglandium
bugs1581890
Bug 1581890 - remove whitespace from end of line in h/c/cpp. r=glandium Differential Revision: https://phabricator.services.mozilla.com/D46189
config/libc_r.h
config/nsinstall.c
lib/ds/plarena.c
lib/ds/plvrsion.c
lib/libc/include/plbase64.h
lib/libc/include/plgetopt.h
lib/libc/include/plstr.h
lib/libc/src/base64.c
lib/libc/src/plgetopt.c
lib/libc/src/plvrsion.c
lib/libc/src/strcpy.c
lib/libc/src/strlen.c
lib/libc/src/strtok.c
lib/prstreams/plvrsion.c
lib/prstreams/tests/testprstrm/testprstrm.cpp
lib/tests/arena.c
lib/tests/base64t.c
lib/tests/getopt.c
lib/tests/string.c
pr/include/gencfg.c
pr/include/md/_bsdi.h
pr/include/md/_darwin.h
pr/include/md/_hpux.h
pr/include/md/_nspr_pthread.h
pr/include/md/_os2.h
pr/include/md/_os2_errors.h
pr/include/md/_pth.h
pr/include/md/_solaris.h
pr/include/md/_unixos.h
pr/include/md/_unixware.h
pr/include/md/_win95.h
pr/include/md/_winnt.h
pr/include/obsolete/pralarm.h
pr/include/obsolete/probslet.h
pr/include/obsolete/prsem.h
pr/include/prbit.h
pr/include/prcountr.h
pr/include/prcvar.h
pr/include/prenv.h
pr/include/prerror.h
pr/include/prinrval.h
pr/include/prio.h
pr/include/private/pprio.h
pr/include/private/pprthred.h
pr/include/private/primpl.h
pr/include/prlink.h
pr/include/prlock.h
pr/include/prlog.h
pr/include/prlong.h
pr/include/prmwait.h
pr/include/prnetdb.h
pr/include/prolock.h
pr/include/prproces.h
pr/include/prrng.h
pr/include/prrwlock.h
pr/include/prshm.h
pr/include/prshma.h
pr/include/prsystem.h
pr/include/prthread.h
pr/include/prtrace.h
pr/include/prtypes.h
pr/include/prvrsion.h
pr/include/prwin16.h
pr/src/cplus/rcascii.h
pr/src/cplus/rcinrval.h
pr/src/cplus/rcnetio.cpp
pr/src/cplus/rcthread.cpp
pr/src/cplus/rcthread.h
pr/src/cplus/rctime.h
pr/src/cplus/tests/ranfile.cpp
pr/src/cplus/tests/switch.cpp
pr/src/cplus/tests/thread.cpp
pr/src/cplus/tests/tpd.cpp
pr/src/io/prdir.c
pr/src/io/prfdcach.c
pr/src/io/prfile.c
pr/src/io/prio.c
pr/src/io/priometh.c
pr/src/io/pripv6.c
pr/src/io/prlayer.c
pr/src/io/prlog.c
pr/src/io/prmapopt.c
pr/src/io/prmwait.c
pr/src/io/prpolevt.c
pr/src/io/prprf.c
pr/src/io/prscanf.c
pr/src/io/prsocket.c
pr/src/linking/prlink.c
pr/src/malloc/prmalloc.c
pr/src/malloc/prmem.c
pr/src/md/os2/os2_errors.c
pr/src/md/os2/os2cv.c
pr/src/md/os2/os2gc.c
pr/src/md/os2/os2inrval.c
pr/src/md/os2/os2io.c
pr/src/md/os2/os2misc.c
pr/src/md/os2/os2poll.c
pr/src/md/os2/os2sem.c
pr/src/md/os2/os2sock.c
pr/src/md/os2/os2thred.c
pr/src/md/prosdep.c
pr/src/md/unix/hpux.c
pr/src/md/unix/pthreads_user.c
pr/src/md/unix/solaris.c
pr/src/md/unix/unix.c
pr/src/md/unix/unix_errors.c
pr/src/md/unix/unixware.c
pr/src/md/unix/uxpoll.c
pr/src/md/unix/uxproces.c
pr/src/md/unix/uxrng.c
pr/src/md/unix/uxshm.c
pr/src/md/unix/uxwrap.c
pr/src/md/windows/ntgc.c
pr/src/md/windows/ntinrval.c
pr/src/md/windows/ntio.c
pr/src/md/windows/ntmisc.c
pr/src/md/windows/ntsem.c
pr/src/md/windows/ntthread.c
pr/src/md/windows/w32ipcsem.c
pr/src/md/windows/w32poll.c
pr/src/md/windows/w32shm.c
pr/src/md/windows/w95cv.c
pr/src/md/windows/w95io.c
pr/src/md/windows/w95sock.c
pr/src/md/windows/w95thred.c
pr/src/md/windows/win32_errors.c
pr/src/memory/prshm.c
pr/src/memory/prshma.c
pr/src/misc/pralarm.c
pr/src/misc/pratom.c
pr/src/misc/praton.c
pr/src/misc/prcountr.c
pr/src/misc/prdtoa.c
pr/src/misc/prerrortable.c
pr/src/misc/prinit.c
pr/src/misc/prnetdb.c
pr/src/misc/prolock.c
pr/src/misc/prrng.c
pr/src/misc/prsystem.c
pr/src/misc/prthinfo.c
pr/src/misc/prtime.c
pr/src/misc/prtpool.c
pr/src/misc/prtrace.c
pr/src/prvrsion.c
pr/src/pthreads/ptio.c
pr/src/pthreads/ptmisc.c
pr/src/pthreads/ptsynch.c
pr/src/pthreads/ptthread.c
pr/src/threads/combined/prucpu.c
pr/src/threads/combined/prucv.c
pr/src/threads/combined/prulock.c
pr/src/threads/combined/prustack.c
pr/src/threads/combined/pruthr.c
pr/src/threads/prcthr.c
pr/src/threads/prdump.c
pr/src/threads/prrwlock.c
pr/src/threads/prsem.c
pr/src/threads/prtpd.c
pr/tests/accept.c
pr/tests/acceptread.c
pr/tests/acceptreademu.c
pr/tests/addrstr.c
pr/tests/affinity.c
pr/tests/alarm.c
pr/tests/anonfm.c
pr/tests/atomic.c
pr/tests/attach.c
pr/tests/bigfile.c
pr/tests/bug1test.c
pr/tests/cleanup.c
pr/tests/cltsrv.c
pr/tests/concur.c
pr/tests/cvar.c
pr/tests/cvar2.c
pr/tests/dbmalloc.c
pr/tests/dbmalloc1.c
pr/tests/dceemu.c
pr/tests/depend.c
pr/tests/dll/mygetval.c
pr/tests/dlltest.c
pr/tests/dtoa.c
pr/tests/env.c
pr/tests/exit.c
pr/tests/fdcach.c
pr/tests/fileio.c
pr/tests/foreign.c
pr/tests/forktest.c
pr/tests/gethost.c
pr/tests/i2l.c
pr/tests/inrval.c
pr/tests/instrumt.c
pr/tests/intrupt.c
pr/tests/io_timeout.c
pr/tests/io_timeoutk.c
pr/tests/io_timeoutu.c
pr/tests/ioconthr.c
pr/tests/join.c
pr/tests/joinkk.c
pr/tests/joinku.c
pr/tests/joinuk.c
pr/tests/joinuu.c
pr/tests/layer.c
pr/tests/lazyinit.c
pr/tests/lltest.c
pr/tests/lock.c
pr/tests/lockfile.c
pr/tests/logger.c
pr/tests/many_cv.c
pr/tests/mbcs.c
pr/tests/nameshm1.c
pr/tests/nbconn.c
pr/tests/nblayer.c
pr/tests/nonblock.c
pr/tests/ntioto.c
pr/tests/obsints.c
pr/tests/op_2long.c
pr/tests/op_excl.c
pr/tests/op_filnf.c
pr/tests/op_filok.c
pr/tests/op_nofil.c
pr/tests/openfile.c
pr/tests/parent.c
pr/tests/parsetm.c
pr/tests/perf.c
pr/tests/poll_er.c
pr/tests/poll_nm.c
pr/tests/poll_to.c
pr/tests/prftest1.c
pr/tests/prftest2.c
pr/tests/provider.c
pr/tests/prpollml.c
pr/tests/prselect.c
pr/tests/randseed.c
pr/tests/ranfile.c
pr/tests/rmdir.c
pr/tests/rwlocktest.c
pr/tests/sel_spd.c
pr/tests/selct_er.c
pr/tests/selct_nm.c
pr/tests/selct_to.c
pr/tests/select2.c
pr/tests/sem.c
pr/tests/semaerr1.c
pr/tests/sendzlf.c
pr/tests/server_test.c
pr/tests/servr_kk.c
pr/tests/servr_ku.c
pr/tests/servr_uk.c
pr/tests/servr_uu.c
pr/tests/short_thread.c
pr/tests/socket.c
pr/tests/sockopt.c
pr/tests/stack.c
pr/tests/stat.c
pr/tests/strod.c
pr/tests/suspend.c
pr/tests/switch.c
pr/tests/testfile.c
pr/tests/threads.c
pr/tests/thrpool_client.c
pr/tests/thrpool_server.c
pr/tests/thruput.c
pr/tests/time.c
pr/tests/timemac.c
pr/tests/timetest.c
pr/tests/tmoacc.c
pr/tests/tmocon.c
pr/tests/tpd.c
pr/tests/udpsrv.c
pr/tests/version.c
pr/tests/writev.c
pr/tests/xnotify.c
pr/tests/y2k.c
pr/tests/y2ktmo.c
pr/tests/yield.c
pr/tests/zerolen.c
tools/httpget.c
--- a/config/libc_r.h
+++ b/config/libc_r.h
@@ -20,17 +20,17 @@
 #define _LIBC_R_H
 
 /************/
 /*  strtok  */
 /************/
 #define R_STRTOK_INIT_R() \
     char *r_strtok_r=NULL
 
-#define R_STRTOK_R(return,source,delim) \     
+#define R_STRTOK_R(return,source,delim) \
     return=strtok_r(source,delim,&r_strtok_r)
 
 #define R_STRTOK_NORET_R(source,delim) \
     strtok_r(source,delim,&r_strtok_r)
 
 /**************/
 /*  strerror  */
 /**************/
@@ -63,24 +63,24 @@
 #define R_GMTIME_R(time) \
     gmtime_r(time,&r_gmtime_r)
 
 #define R_LOCALTIME_INIT_R() \
    struct tm r_localtime_r
 
 #define R_LOCALTIME_R(val) \
    localtime_r(val,&r_localtime_r)
-    
+
 /***********/
 /*  crypt  */
 /***********/
 #include <crypt.h>
 #define R_CRYPT_INIT_R() \
     CRYPTD r_cryptd_r; \
-    bzero(&r_cryptd_r,sizeof(CRYPTD)) 
+    bzero(&r_cryptd_r,sizeof(CRYPTD))
 
 #define R_CRYPT_R(pass,salt) \
     crypt_r(pass,salt,&r_cryptd_r)
 
 /**************/
 /*  pw stuff  */
 /**************/
 #define R_MAX_PW_LEN_R 1024
--- a/config/nsinstall.c
+++ b/config/nsinstall.c
@@ -34,17 +34,17 @@
 /*
  * Does getcwd() take NULL as the first argument and malloc
  * the result buffer?
  */
 #if !defined(DARWIN)
 #define GETCWD_CAN_MALLOC
 #endif
 
-#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) 
+#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
 #include <getopt.h>
 #endif
 
 #if defined(SCO) || defined(UNIXWARE)
 #if !defined(S_ISLNK) && defined(S_IFLNK)
 #define S_ISLNK(a)	(((a) & S_IFMT) == S_IFLNK)
 #endif
 #endif
@@ -64,17 +64,17 @@ usage(void)
 }
 
 static int
 mkdirs(char *path, mode_t mode)
 {
     char *cp;
     struct stat sb;
     int res;
-    
+
     while (*path == '/' && path[1] == '/')
 	path++;
     for (cp = strrchr(path, '/'); cp && cp != path && cp[-1] == '/'; cp--)
 	;
     if (cp && cp != path) {
 	*cp = '\0';
 	if ((stat(path, &sb) < 0 || !S_ISDIR(sb.st_mode)) &&
 	    mkdirs(path, mode) < 0) {
--- a/lib/ds/plarena.c
+++ b/lib/ds/plarena.c
@@ -69,41 +69,41 @@ PR_IMPLEMENT(void) PL_InitArenaPool(
     pool->stats.next = arena_stats_list;
     arena_stats_list = &pool->stats;
 #endif
 }
 
 
 /*
 ** PL_ArenaAllocate() -- allocate space from an arena pool
-** 
+**
 ** Description: PL_ArenaAllocate() allocates space from an arena
-** pool. 
+** pool.
 **
 ** First, try to satisfy the request from arenas starting at
 ** pool->current. Then try to allocate a new arena from the heap.
 **
 ** Returns: pointer to allocated space or NULL
-** 
+**
 ** Notes: The original implementation had some difficult to
 ** solve bugs; the code was difficult to read. Sometimes it's
 ** just easier to rewrite it. I did that. larryh.
 **
 ** See also: bugzilla: 45343.
 **
 */
 
 PR_IMPLEMENT(void *) PL_ArenaAllocate(PLArenaPool *pool, PRUint32 nb)
 {
-    PLArena *a;   
+    PLArena *a;
     char *rp;     /* returned pointer */
     PRUint32 nbOld;
 
     PR_ASSERT((nb & pool->mask) == 0);
-    
+
     nbOld = nb;
     nb = (PRUword)PL_ARENA_ALIGN(pool, nb); /* force alignment */
     if (nb < nbOld)
         return NULL;
 
     /* attempt to allocate from arenas at pool->current */
     {
         a = pool->current;
@@ -112,33 +112,33 @@ PR_IMPLEMENT(void *) PL_ArenaAllocate(PL
                 pool->current = a;
                 rp = (char *)a->avail;
                 a->avail += nb;
                 return rp;
             }
         } while( NULL != (a = a->next) );
     }
 
-    /* attempt to allocate from the heap */ 
-    {  
+    /* attempt to allocate from the heap */
+    {
         PRUint32 sz = PR_MAX(pool->arenasize, nb);
         if (PR_UINT32_MAX - sz < sizeof *a + pool->mask) {
             a = NULL;
         } else {
             sz += sizeof *a + pool->mask;  /* header and alignment slop */
             a = (PLArena*)PR_MALLOC(sz);
         }
         if ( NULL != a )  {
             a->limit = (PRUword)a + sz;
             a->base = a->avail = (PRUword)PL_ARENA_ALIGN(pool, a + 1);
             PL_MAKE_MEM_NOACCESS((void*)a->avail, a->limit - a->avail);
             rp = (char *)a->avail;
             a->avail += nb;
             PR_ASSERT(a->avail <= a->limit);
-            /* the newly allocated arena is linked after pool->current 
+            /* the newly allocated arena is linked after pool->current
             *  and becomes pool->current */
             a->next = pool->current->next;
             pool->current->next = a;
             pool->current = a;
             if ( NULL == pool->first.next )
                 pool->first.next = a;
             PL_COUNT_ARENA(pool,++);
             COUNT(pool, nmallocs);
--- a/lib/ds/plvrsion.c
+++ b/lib/ds/plvrsion.c
@@ -81,17 +81,17 @@ static char sccsid[] = "@(#)NSPR " PR_VE
 PR_IMPLEMENT(const PRVersionDescription*) libVersionPoint()
 {
 #ifdef XP_UNIX
     /*
      * Add dummy references to rcsid and sccsid to prevent them
      * from being optimized away as unused variables.
      */
     const char *dummy;
-    
+
     dummy = rcsid;
     dummy = sccsid;
 #endif
     return &VERSION_DESC_NAME;
 }  /* versionEntryPointType */
 #ifdef _PR_HAS_PRAGMA_DIAGNOSTIC
 #pragma GCC diagnostic pop
 #endif
--- a/lib/libc/include/plbase64.h
+++ b/lib/libc/include/plbase64.h
@@ -14,21 +14,21 @@ PR_BEGIN_EXTERN_C
  * PL_Base64Encode
  *
  * This routine encodes the data pointed to by the "src" parameter using the
  * base64 algorithm, and returns a pointer to the result.  If the "srclen"
  * parameter is not zero, it specifies the length of the source data.  If it
  * is zero, the source data is assumed to be null-terminated, and PL_strlen
  * is used to determine the source length.  If the "dest" parameter is not
  * null, it is assumed to point to a buffer of sufficient size (which may be
- * calculated: ((srclen + 2)/3)*4) into which the encoded data is placed 
+ * calculated: ((srclen + 2)/3)*4) into which the encoded data is placed
  * (without any termination).  If the "dest" parameter is null, a buffer is
  * allocated from the heap to hold the encoded data, and the result *will*
- * be terminated with an extra null character.  It is the caller's 
- * responsibility to free the result when it is allocated.  A null is returned 
+ * be terminated with an extra null character.  It is the caller's
+ * responsibility to free the result when it is allocated.  A null is returned
  * if the allocation fails.
  *
  * NOTE: when calculating ((srclen + 2)/3)*4), first ensure that
  *     srclen <= (PR_UINT32_MAX/4) * 3
  * to avoid PRUint32 overflow.
  */
 
 PR_EXTERN(char *)
@@ -51,17 +51,17 @@ PL_Base64Encode
  * a buffer of sufficient size (which may be calculated: (srclen * 3)/4
  * when srclen includes the '=' characters) into which the decoded data
  * is placed (without any termination).  If the "dest" parameter is null,
  * a buffer is allocated from the heap to hold the decoded data, and the
  * result *will* be terminated with an extra null character.  It is the
  * caller's responsibility to free the result when it is allocated.  A null
  * is retuned if the allocation fails, or if the source is not well-coded.
  *
- * NOTE: when calculating (srclen * 3)/4, first ensure that 
+ * NOTE: when calculating (srclen * 3)/4, first ensure that
  *     srclen <= PR_UINT32_MAX/3
  * to avoid PRUint32 overflow.  Alternatively, calculate
  *     (srclen/4) * 3 + ((srclen%4) * 3)/4
  * which is equivalent but doesn't overflow for any value of srclen.
  */
 
 PR_EXTERN(char *)
 PL_Base64Decode
--- a/lib/libc/include/plgetopt.h
+++ b/lib/libc/include/plgetopt.h
@@ -11,17 +11,17 @@
 #if defined(PLGETOPT_H_)
 #else
 #define PLGETOPT_H_
 
 #include "prtypes.h"
 
 PR_BEGIN_EXTERN_C
 
-typedef struct PLOptionInternal PLOptionInternal; 
+typedef struct PLOptionInternal PLOptionInternal;
 
 typedef enum
 {
         PL_OPT_OK,              /* all's well with the option */
         PL_OPT_EOL,             /* end of options list */
         PL_OPT_BAD              /* invalid option (and value) */
 } PLOptStatus;
 
@@ -42,81 +42,81 @@ typedef struct PLOptState
 
     PRIntn   longOption;        /* value from PLLongOpt put here */
     PRIntn   longOptIndex;      /* index into caller's array of PLLongOpts */
 } PLOptState;
 
 /*
  * PL_CreateOptState
  *
- * The argument "options" points to a string of single-character option 
- * names.  Option names that may have an option argument value must be 
- * followed immediately by a ':' character.  
+ * The argument "options" points to a string of single-character option
+ * names.  Option names that may have an option argument value must be
+ * followed immediately by a ':' character.
  */
 PR_EXTERN(PLOptState*) PL_CreateOptState(
         PRIntn argc, char **argv, const char *options);
 
-/* 
+/*
  * PL_CreateLongOptState
  *
- * Alternative to PL_CreateOptState.  
- * Allows caller to specify BOTH a string of single-character option names, 
- * AND an array of structures describing "long" (keyword) option names.  
- * The array is terminated by a structure in which longOptName is NULL.  
+ * Alternative to PL_CreateOptState.
+ * Allows caller to specify BOTH a string of single-character option names,
+ * AND an array of structures describing "long" (keyword) option names.
+ * The array is terminated by a structure in which longOptName is NULL.
  * Long option values (arguments) may always be given as "--name=value".
- * If PLLongOpt.valueRequired is not PR_FALSE, and the option name was not 
- * followed by '=' then the next argument from argv is taken as the value.  
+ * If PLLongOpt.valueRequired is not PR_FALSE, and the option name was not
+ * followed by '=' then the next argument from argv is taken as the value.
  */
 PR_EXTERN(PLOptState*) PL_CreateLongOptState(
-        PRIntn argc, char **argv, const char *options, 
+        PRIntn argc, char **argv, const char *options,
         const PLLongOpt *longOpts);
 /*
  * PL_DestroyOptState
  *
  * Call this to destroy the PLOptState returned from PL_CreateOptState or
  * PL_CreateLongOptState.
  */
 PR_EXTERN(void) PL_DestroyOptState(PLOptState *opt);
 
 /*
  * PL_GetNextOpt
  *
- * When this function returns PL_OPT_OK, 
- * - opt->option will hold the single-character option name that was parsed, 
- *   or zero.  
- * When opt->option is zero, the token parsed was either a "long" (keyword) 
- *   option or a positional parameter.  
- * For a positional parameter, 
+ * When this function returns PL_OPT_OK,
+ * - opt->option will hold the single-character option name that was parsed,
+ *   or zero.
+ * When opt->option is zero, the token parsed was either a "long" (keyword)
+ *   option or a positional parameter.
+ * For a positional parameter,
  * - opt->longOptIndex will contain -1, and
  * - opt->value will point to the positional parameter string.
- * For a long option name, 
- * - opt->longOptIndex will contain the non-negative index of the 
- *   PLLongOpt structure in the caller's array of PLLongOpt structures 
- *   corresponding to the long option name, and 
- * For a single-character or long option, 
+ * For a long option name,
+ * - opt->longOptIndex will contain the non-negative index of the
+ *   PLLongOpt structure in the caller's array of PLLongOpt structures
+ *   corresponding to the long option name, and
+ * For a single-character or long option,
  * - opt->longOption will contain the value of the single-character option
  *   name, or the value of the longOption from the PLLongOpt structure
  *   for that long option.  See notes below.
  * - opt->value will point to the argument option string, or will
  *   be NULL if option does not require argument.  If option requires
  *   argument but it is not provided, PL_OPT_BAD is returned.
- * When opt->option is non-zero, 
+ * When opt->option is non-zero,
  * - opt->longOptIndex will be -1
  * When this function returns PL_OPT_EOL, or PL_OPT_BAD, the contents of
  *   opt are undefined.
  *
- * Notes: It is possible to ignore opt->option, and always look at 
+ * Notes: It is possible to ignore opt->option, and always look at
  *   opt->longOption instead.  opt->longOption will contain the same value
  *   as opt->option for single-character option names, and will contain the
  *   value of longOption from the PLLongOpt structure for long option names.
- * This means that it is possible to equivalence long option names to 
+ * This means that it is possible to equivalence long option names to
  *   single character names by giving the longOption in the PLLongOpt struct
- *   the same value as the single-character option name.  
+ *   the same value as the single-character option name.
  * For long options that are NOT intended to be equivalent to any single-
- *   character option, the longOption value should be chosen to not match 
+ *   character option, the longOption value should be chosen to not match
  *   any possible single character name.  It might be advisable to choose
  *   longOption values greater than 0xff for such long options.
  */
 PR_EXTERN(PLOptStatus) PL_GetNextOpt(PLOptState *opt);
 
 PR_END_EXTERN_C
 
 #endif /* defined(PLGETOPT_H_) */
--- a/lib/libc/include/plstr.h
+++ b/lib/libc/include/plstr.h
@@ -5,23 +5,23 @@
 
 #ifndef _plstr_h
 #define _plstr_h
 
 /*
  * plstr.h
  *
  * This header file exports the API to the NSPR portable library or string-
- * handling functions.  
- * 
- * This API was not designed as an "optimal" or "ideal" string library; it 
+ * handling functions.
+ *
+ * This API was not designed as an "optimal" or "ideal" string library; it
  * was based on the good ol' unix string.3 functions, and was written to
  *
- *  1) replace the libc functions, for cross-platform consistency, 
- *  2) complete the API on platforms lacking common functions (e.g., 
+ *  1) replace the libc functions, for cross-platform consistency,
+ *  2) complete the API on platforms lacking common functions (e.g.,
  *     strcase*), and
  *  3) to implement some obvious "closure" functions that I've seen
  *     people hacking around in our code.
  *
  * Point number three largely means that most functions have an "strn"
  * limited-length version, and all comparison routines have a non-case-
  * sensitive version available.
  */
@@ -71,23 +71,23 @@ PL_strcpy(char *dest, const char *src);
  */
 
 PR_EXTERN(char *)
 PL_strncpy(char *dest, const char *src, PRUint32 max);
 
 /*
  * PL_strncpyz
  *
- * Copies the source string into the destination buffer, up to and including 
- * the trailing '\0' or up but not including the max'th character, whichever 
+ * Copies the source string into the destination buffer, up to and including
+ * the trailing '\0' or up but not including the max'th character, whichever
  * comes first.  It does not (can not) verify that the destination buffer is
  * large enough.  The destination string is always terminated with a '\0',
  * unlike the traditional libc implementation.  It returns the "dest" argument.
  *
- * NOTE: If you call this with a source "abcdefg" and a max of 5, the 
+ * NOTE: If you call this with a source "abcdefg" and a max of 5, the
  * destination will end up with "abcd\0" (i.e., its strlen length will be 4)!
  *
  * This means you can do this:
  *
  *     char buffer[ SOME_SIZE ];
  *     PL_strncpyz(buffer, src, sizeof(buffer));
  *
  * and the result will be properly terminated.
@@ -147,17 +147,17 @@ PR_EXTERN(char *)
 PL_strcat(char *dst, const char *src);
 
 /*
  * PL_strncat
  *
  * Appends a copy of the string pointed to by the second argument, up to
  * the maximum size specified, to the end of the string pointed to by the
  * first.  The destination buffer is not (can not be) checked for sufficient
- * size.  A null destination argument returns null; otherwise, the first 
+ * size.  A null destination argument returns null; otherwise, the first
  * argument is returned.  If the maximum size limits the copy, then the
  * result will *not* be null-terminated (JLRU).  A null destination
  * returns null; otherwise, the destination argument is returned.
  */
 
 PR_EXTERN(char *)
 PL_strncat(char *dst, const char *src, PRUint32 max);
 
@@ -184,46 +184,46 @@ PL_strcatn(char *dst, PRUint32 max, cons
  * NSPR implementation is not i18n.
  */
 
 PR_EXTERN(PRIntn)
 PL_strcmp(const char *a, const char *b);
 
 /*
  * PL_strncmp
- * 
+ *
  * Returns an integer, the sign of which -- positive, zero, or negative --
  * reflects the lexical sorting order of the two strings indicated, up to
- * the maximum specified.  The result is positive if the first string comes 
+ * the maximum specified.  The result is positive if the first string comes
  * after the second.  The NSPR implementation is not i18n.  If the maximum
  * is zero, only the existance or non-existance (pointer is null) of the
  * strings is compared.
  */
 
 PR_EXTERN(PRIntn)
 PL_strncmp(const char *a, const char *b, PRUint32 max);
 
 /*
  * PL_strcasecmp
  *
  * Returns an integer, the sign of which -- positive, zero or negative --
  * reflects the case-insensitive lexical sorting order of the two strings
- * indicated.  The result is positive if the first string comes after the 
+ * indicated.  The result is positive if the first string comes after the
  * second.  The NSPR implementation is not i18n.
  */
 
 PR_EXTERN(PRIntn)
 PL_strcasecmp(const char *a, const char *b);
 
 /*
  * PL_strncasecmp
  *
  * Returns an integer, the sign of which -- positive, zero or negative --
  * reflects the case-insensitive lexical sorting order of the first n characters
- * of the two strings indicated.  The result is positive if the first string comes 
+ * of the two strings indicated.  The result is positive if the first string comes
  * after the second.  The NSPR implementation is not i18n.
  */
 
 PR_EXTERN(PRIntn)
 PL_strncasecmp(const char *a, const char *b, PRUint32 max);
 
 /*
  * PL_strchr
@@ -244,17 +244,17 @@ PL_strchr(const char *s, char c);
  * provided string is null.  The character may be the null character.
  */
 
 PR_EXTERN(char *)
 PL_strrchr(const char *s, char c);
 
 /*
  * PL_strnchr
- * 
+ *
  * Returns a pointer to the first instance of the specified character within the
  * first n characters of the provided string.  It returns null if the character
  * is not found, or if the provided string is null.  The character may be the
  * null character.
  */
 
 PR_EXTERN(char *)
 PL_strnchr(const char *s, char c, PRUint32 n);
@@ -381,17 +381,17 @@ PL_strcasestr(const char *big, const cha
 
 PR_EXTERN(char *)
 PL_strcaserstr(const char *big, const char *little);
 
 /*
  * PL_strncasestr
  *
  * Returns a pointer to the first instance of the little string within the first
- * n characters of the big one, ignoring case.  It returns null if either string is 
+ * n characters of the big one, ignoring case.  It returns null if either string is
  * null.  It returns null if the length of the little string is greater than n.
  */
 
 PR_EXTERN(char *)
 PL_strncasestr(const char *big, const char *little, PRUint32 max);
 
 /*
  * PL_strncaserstr
--- a/lib/libc/src/base64.c
+++ b/lib/libc/src/base64.c
@@ -95,18 +95,18 @@ encode
     }
 
     return;
 }
 
 /*
  * PL_Base64Encode
  *
- * If the destination argument is NULL, a return buffer is 
- * allocated, and the data therein will be null-terminated.  
+ * If the destination argument is NULL, a return buffer is
+ * allocated, and the data therein will be null-terminated.
  * If the destination argument is not NULL, it is assumed to
  * be of sufficient size, and the contents will not be null-
  * terminated by this routine.
  *
  * Returns null if the allocation fails.
  */
 
 PR_IMPLEMENT(char *)
@@ -336,18 +336,18 @@ decode
 /*
  * PL_Base64Decode
  *
  * If the destination argument is NULL, a return buffer is
  * allocated and the data therein will be null-terminated.
  * If the destination argument is not null, it is assumed
  * to be of sufficient size, and the data will not be null-
  * terminated by this routine.
- * 
- * Returns null if the allocation fails, or if the source string is 
+ *
+ * Returns null if the allocation fails, or if the source string is
  * not well-formed.
  */
 
 PR_IMPLEMENT(char *)
 PL_Base64Decode
 (
     const char *src,
     PRUint32    srclen,
--- a/lib/libc/src/plgetopt.c
+++ b/lib/libc/src/plgetopt.c
@@ -40,30 +40,30 @@ struct PLOptionInternal
 */
 PR_IMPLEMENT(PLOptState*) PL_CreateOptState(
     PRIntn argc, char **argv, const char *options)
 {
     return PL_CreateLongOptState( argc, argv, options, NULL);
 }  /* PL_CreateOptState */
 
 PR_IMPLEMENT(PLOptState*) PL_CreateLongOptState(
-    PRIntn argc, char **argv, const char *options, 
+    PRIntn argc, char **argv, const char *options,
     const PLLongOpt *longOpts)
 {
     PLOptState *opt = NULL;
     PLOptionInternal *internal;
 
-    if (NULL == options) 
+    if (NULL == options)
     {
         PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0);
         return opt;
     }
 
     opt = PR_NEWZAP(PLOptState);
-    if (NULL == opt) 
+    if (NULL == opt)
     {
         PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0);
         return opt;
     }
 
     internal = PR_NEW(PLOptionInternal);
     if (NULL == internal)
     {
@@ -119,61 +119,61 @@ PR_IMPLEMENT(PLOptStatus) PL_GetNextOpt(
         if (internal->xargc >= internal->argc)
         {
             opt->option = 0;
             opt->value = NULL;
             return PL_OPT_EOL;
         }
         internal->xargv = internal->argv[internal->xargc];
         internal->minus = 0;
-        if (!internal->endOfOpts && ('-' == *internal->xargv)) 
+        if (!internal->endOfOpts && ('-' == *internal->xargv))
         {
             internal->minus++;
             internal->xargv++;  /* and consume */
-            if ('-' == *internal->xargv && internal->longOpts) 
+            if ('-' == *internal->xargv && internal->longOpts)
             {
                 internal->minus++;
                 internal->xargv++;
-                if (0 == *internal->xargv) 
+                if (0 == *internal->xargv)
                 {
                     internal->endOfOpts = PR_TRUE;
                 }
             }
         }
     }
 
     /*
     ** If we already have a '-' or '--' in hand, xargv points to the next
     ** option. See if we can find a match in the list of possible
     ** options supplied.
     */
-    if (internal->minus == 2) 
+    if (internal->minus == 2)
     {
         char * foundEqual = strchr(internal->xargv,'=');
         PRIntn optNameLen = foundEqual ? (foundEqual - internal->xargv) :
                             strlen(internal->xargv);
         const PLLongOpt *longOpt = internal->longOpts;
         PLOptStatus result = PL_OPT_BAD;
 
         opt->option = 0;
         opt->value  = NULL;
 
-        for (; longOpt->longOptName; ++longOpt) 
+        for (; longOpt->longOptName; ++longOpt)
         {
             if (strncmp(longOpt->longOptName, internal->xargv, optNameLen))
                 continue;  /* not a possible match */
             if (strlen(longOpt->longOptName) != optNameLen)
                 continue;  /* not a match */
             /* option name match */
             opt->longOptIndex = longOpt - internal->longOpts;
             opt->longOption   = longOpt->longOption;
             /* value is part of the current argv[] element if = was found */
             /* note: this sets value even for long options that do not
              * require option if specified as --long=value */
-            if (foundEqual) 
+            if (foundEqual)
             {
                 opt->value = foundEqual + 1;
             }
             else if (longOpt->valueRequired)
             {
                 /* value is the next argv[] element, if any */
                 if (internal->xargc + 1 < internal->argc)
                 {
@@ -222,18 +222,18 @@ PR_IMPLEMENT(PLOptStatus) PL_GetNextOpt(
                     else
                     {
                         return PL_OPT_BAD;
                     }
 
                     internal->xargv = &static_Nul;
                     internal->minus = 0;
                 }
-                else 
-                    opt->value = NULL; 
+                else
+                    opt->value = NULL;
                 return PL_OPT_OK;
             }
         }
         internal->xargv += 1;  /* consume that option */
         return PL_OPT_BAD;
     }
 
     /*
--- a/lib/libc/src/plvrsion.c
+++ b/lib/libc/src/plvrsion.c
@@ -81,17 +81,17 @@ static char sccsid[] = "@(#)NSPR " PR_VE
 PR_IMPLEMENT(const PRVersionDescription*) libVersionPoint()
 {
 #ifdef XP_UNIX
     /*
      * Add dummy references to rcsid and sccsid to prevent them
      * from being optimized away as unused variables.
      */
     const char *dummy;
-    
+
     dummy = rcsid;
     dummy = sccsid;
 #endif
     return &VERSION_DESC_NAME;
 }  /* versionEntryPointType */
 #ifdef _PR_HAS_PRAGMA_DIAGNOSTIC
 #pragma GCC diagnostic pop
 #endif
--- a/lib/libc/src/strcpy.c
+++ b/lib/libc/src/strcpy.c
@@ -13,17 +13,17 @@ PL_strcpy(char *dest, const char *src)
 
     return strcpy(dest, src);
 }
 
 PR_IMPLEMENT(char *)
 PL_strncpy(char *dest, const char *src, PRUint32 max)
 {
     char *rv;
-    
+
     if( (char *)0 == dest ) return (char *)0;
     if( (const char *)0 == src ) return (char *)0;
 
     for( rv = dest; max && ((*dest = *src) != 0); dest++, src++, max-- )
         ;
 
 #ifdef JLRU
     /* XXX I (wtc) think the -- and ++ operators should be postfix. */
@@ -33,17 +33,17 @@ PL_strncpy(char *dest, const char *src, 
 
     return rv;
 }
 
 PR_IMPLEMENT(char *)
 PL_strncpyz(char *dest, const char *src, PRUint32 max)
 {
     char *rv;
-    
+
     if( (char *)0 == dest ) return (char *)0;
     if( (const char *)0 == src ) return (char *)0;
     if( 0 == max ) return (char *)0;
 
     for( rv = dest, max--; max && ((*dest = *src) != 0); dest++, src++, max-- )
         ;
 
     *dest = '\0';
--- a/lib/libc/src/strlen.c
+++ b/lib/libc/src/strlen.c
@@ -14,17 +14,17 @@ PL_strlen(const char *str)
     size_t l;
 
     if( (const char *)0 == str ) return 0;
 
     l = strlen(str);
 
     /* error checking in case we have a 64-bit platform -- make sure
      * we don't have ultra long strings that overflow an int32
-     */ 
+     */
     if( sizeof(PRUint32) < sizeof(size_t) )
     {
         if( l > PR_INT32_MAX )
             PR_Assert("l <= PR_INT32_MAX", __FILE__, __LINE__);
     }
 
     return (PRUint32)l;
 }
--- a/lib/libc/src/strtok.c
+++ b/lib/libc/src/strtok.c
@@ -14,34 +14,34 @@ PL_strtok_r(char *s1, const char *s2, ch
 
     if( s1 == NULL )
     {
         if( *lasts == NULL )
             return NULL;
 
         s1 = *lasts;
     }
-  
+
     for( ; (c = *s1) != 0; s1++ )
     {
         for( sepp = s2 ; (sc = *sepp) != 0 ; sepp++ )
         {
             if( c == sc )
                 break;
         }
         if( sc == 0 )
-            break; 
+            break;
     }
 
     if( c == 0 )
     {
         *lasts = NULL;
         return NULL;
     }
-  
+
     tok = s1++;
 
     for( ; (c = *s1) != 0; s1++ )
     {
         for( sepp = s2; (sc = *sepp) != 0; sepp++ )
         {
             if( c == sc )
             {
--- a/lib/prstreams/plvrsion.c
+++ b/lib/prstreams/plvrsion.c
@@ -81,17 +81,17 @@ static char sccsid[] = "@(#)NSPR " PR_VE
 PR_IMPLEMENT(const PRVersionDescription*) libVersionPoint()
 {
 #ifdef XP_UNIX
     /*
      * Add dummy references to rcsid and sccsid to prevent them
      * from being optimized away as unused variables.
      */
     const char *dummy;
-    
+
     dummy = rcsid;
     dummy = sccsid;
 #endif
     return &VERSION_DESC_NAME;
 }  /* versionEntryPointType */
 #ifdef _PR_HAS_PRAGMA_DIAGNOSTIC
 #pragma GCC diagnostic pop
 #endif
--- a/lib/prstreams/tests/testprstrm/testprstrm.cpp
+++ b/lib/prstreams/tests/testprstrm/testprstrm.cpp
@@ -23,17 +23,17 @@ using std::ios;
 const unsigned int MaxCnt = 1;
 
 typedef struct threadarg {
     const char *mytag;
 } threadarg;
 
 void threadwork(threadarg *arg);
 
-void 
+void
 threadmain(void *mytag)
 {
     threadarg arg;
 
     arg.mytag = static_cast<const char *>(mytag);
 
     threadwork(&arg);
 }
@@ -138,32 +138,32 @@ threadwork(threadarg *arg)
 }
 
 #define STACKSIZE 1024*1024
 int
 main()
 {
 	PR_Init(PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 256);
 	threadmain(const_cast<char *>("TestFile"));
-	PRThread *thr1 = PR_CreateThread(PR_SYSTEM_THREAD, 
-					 threadmain, 
+	PRThread *thr1 = PR_CreateThread(PR_SYSTEM_THREAD,
+					 threadmain,
 					 const_cast<char *>("TestFile1"),
 					 PR_PRIORITY_NORMAL,
 					 PR_GLOBAL_THREAD,
 					 PR_JOINABLE_THREAD,
 					 STACKSIZE);
-	PRThread *thr2 = PR_CreateThread(PR_SYSTEM_THREAD, 
-					 threadmain, 
+	PRThread *thr2 = PR_CreateThread(PR_SYSTEM_THREAD,
+					 threadmain,
 					 const_cast<char *>("TestFile2"),
 					 PR_PRIORITY_NORMAL,
 					 PR_GLOBAL_THREAD,
 					 PR_JOINABLE_THREAD,
 					 STACKSIZE);
-	PRThread *thr3 = PR_CreateThread(PR_SYSTEM_THREAD, 
-					 threadmain, 
+	PRThread *thr3 = PR_CreateThread(PR_SYSTEM_THREAD,
+					 threadmain,
 					 const_cast<char *>("TestFile3"),
 					 PR_PRIORITY_NORMAL,
 					 PR_GLOBAL_THREAD,
 					 PR_JOINABLE_THREAD,
 					 STACKSIZE);
 	PR_JoinThread(thr1);
 	PR_JoinThread(thr2);
 	PR_JoinThread(thr3);
--- a/lib/tests/arena.c
+++ b/lib/tests/arena.c
@@ -41,41 +41,41 @@ void DumpAll( void )
 */
 static void ArenaAllocate( void )
 {
     PLArenaPool ap;
     void    *ptr;
 	PRInt32	i;
 
     PL_InitArenaPool( &ap, "AllocArena", 2048, sizeof(double));
-    PR_LOG( tLM, PR_LOG_DEBUG, ("AA, InitPool -- Pool: %p. first: %p, current: %p, size: %d", 
+    PR_LOG( tLM, PR_LOG_DEBUG, ("AA, InitPool -- Pool: %p. first: %p, current: %p, size: %d",
         &ap, ap.first, ap.current, ap.arenasize  ));
 
 	for( i = 0; i < 150; i++ )
 	{
 		PL_ARENA_ALLOCATE( ptr, &ap, 512 );
-        PR_LOG( tLM, PR_LOG_DEBUG,("AA, after alloc -- Pool: %p. first: %p, current: %p, size: %d", 
+        PR_LOG( tLM, PR_LOG_DEBUG,("AA, after alloc -- Pool: %p. first: %p, current: %p, size: %d",
                &ap, ap.first, ap.current, ap.arenasize  ));
 		PR_LOG( tLM, PR_LOG_DEBUG,(
 		    "AA -- Pool: %p. alloc: %p ", &ap, ptr ));
 	}
 
     PL_FreeArenaPool( &ap );
 
 	for( i = 0; i < 221; i++ )
 	{
 		PL_ARENA_ALLOCATE( ptr, &ap, 512 );
-        PR_LOG( tLM, PR_LOG_DEBUG,("AA, after alloc -- Pool: %p. first: %p, current: %p, size: %d", 
+        PR_LOG( tLM, PR_LOG_DEBUG,("AA, after alloc -- Pool: %p. first: %p, current: %p, size: %d",
                &ap, ap.first, ap.current, ap.arenasize  ));
 		PR_LOG( tLM, PR_LOG_DEBUG,(
 		    "AA -- Pool: %p. alloc: %p ", &ap, ptr ));
 	}
 
     PL_FreeArenaPool( &ap );
-    
+
     return;
 } /* end ArenaGrow() */
 /*
 ** Test Arena grow.
 */
 static void ArenaGrow( void )
 {
     PLArenaPool ap;
@@ -106,79 +106,79 @@ static void MarkAndRelease( void )
     PLArenaPool ap;
     void    *ptr = NULL;
     void    *mark0, *mark1;
     PRIntn  i;
 
     PL_InitArenaPool( &ap, "TheArena", 4096, sizeof(double));
     mark0 = PL_ARENA_MARK( &ap );
     PR_LOG( tLM, PR_LOG_DEBUG,
-        ("mark0. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p, m0: %p", 
+        ("mark0. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p, m0: %p",
             &ap, ap.first.next, ap.current, ap.arenasize, ptr, mark0 ));
 
 	for( i = 0; i < 201; i++ )
 	{
 		PL_ARENA_ALLOCATE( ptr, &ap, 512 );
         PR_LOG( tLM, PR_LOG_DEBUG,
-            ("mr. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p", 
+            ("mr. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
                 &ap, ap.first.next, ap.current, ap.arenasize, ptr ));
 	}
 
     mark1 = PL_ARENA_MARK( &ap );
     PR_LOG( tLM, PR_LOG_DEBUG,
-        ("mark1. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p, m1: %p", 
+        ("mark1. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p, m1: %p",
             &ap, ap.first.next, ap.current, ap.arenasize, ptr, mark1 ));
 
 
 	for( i = 0; i < 225; i++ )
 	{
 		PL_ARENA_ALLOCATE( ptr, &ap, 512 );
         PR_LOG( tLM, PR_LOG_DEBUG,
-            ("mr. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p", 
+            ("mr. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
                 &ap, ap.first.next, ap.current, ap.arenasize, ptr ));
 	}
 
     PL_ARENA_RELEASE( &ap, mark1 );
     PR_LOG( tLM, PR_LOG_DEBUG,
-        ("Release-1: %p -- Pool: %p. first: %p, current: %p, size: %d", 
+        ("Release-1: %p -- Pool: %p. first: %p, current: %p, size: %d",
                mark1, &ap, ap.first, ap.current, ap.arenasize  ));
 
 	for( i = 0; i < 20; i++ )
 	{
 		PL_ARENA_ALLOCATE( ptr, &ap, 512 );
         PR_LOG( tLM, PR_LOG_DEBUG,
-            ("mr. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p", 
+            ("mr. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
                 &ap, ap.first.next, ap.current, ap.arenasize, ptr ));
 	}
 
     PL_ARENA_RELEASE( &ap, mark1 );
     PR_LOG( tLM, PR_LOG_DEBUG,
-        ("Release-1. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p", 
+        ("Release-1. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
             &ap, ap.first.next, ap.current, ap.arenasize, ptr ));
 
     PL_ARENA_RELEASE( &ap, mark0 );
     PR_LOG( tLM, PR_LOG_DEBUG,
-        ("Release-0. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p", 
+        ("Release-0. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
             &ap, ap.first.next, ap.current, ap.arenasize, ptr ));
 
     PL_FreeArenaPool( &ap );
     PR_LOG( tLM, PR_LOG_DEBUG,
-        ("Free. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p", 
+        ("Free. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
             &ap, ap.first.next, ap.current, ap.arenasize, ptr ));
-    
+
     PL_FinishArenaPool( &ap );
     PR_LOG( tLM, PR_LOG_DEBUG,
-        ("Finish. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p", 
+        ("Finish. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
             &ap, ap.first.next, ap.current, ap.arenasize, ptr ));
 
     return;
 } /* end MarkAndRelease() */
 
 /*
-** RandSize() returns a random number in the range 
+** RandSize() returns a random number in the range
 ** min..max, rounded to the next doubleword
 **
 */
 static PRIntn RandSize( PRIntn min, PRIntn max )
 {
     PRIntn  sz = (rand() % (max -min)) + min + sizeof(double);
 
     sz &= ~sizeof(double)-1;
@@ -225,25 +225,25 @@ static void PR_CALLBACK StressThread( vo
     PR_LOG( tLM, PR_LOG_DEBUG, ("Stress thread %p finished all iteration\n", tp));
     PL_FinishArenaPool( &ap );
     PR_LOG( tLM, PR_LOG_DEBUG, ("Stress thread %p after FinishArenaPool()\n", tp));
 
     /* That's all folks! let's quit */
     PR_EnterMonitor(tMon);
     threadCount--;
     PR_Notify(tMon);
-    PR_ExitMonitor(tMon);    
+    PR_ExitMonitor(tMon);
     return;
-}    
+}
 
 /*
 ** Stress()
 ** Flog the hell out of arenas multi-threaded.
 ** Do NOT pass an individual arena to another thread.
-** 
+**
 */
 static void Stress( void )
 {
     PRThread    *tt;
     PRIntn      i;
 
     tMon = PR_NewMonitor();
 
@@ -258,17 +258,17 @@ static void Stress( void )
                PR_UNJOINABLE_THREAD,
                0);
         threadCount++;
         PR_ExitMonitor(tMon);
     }
 
     /* Wait for all threads to exit */
     PR_EnterMonitor(tMon);
-    while ( threadCount != 0 ) 
+    while ( threadCount != 0 )
     {
         PR_Wait(tMon, PR_INTERVAL_NO_TIMEOUT);
     }
     PR_ExitMonitor(tMon);
 	PR_DestroyMonitor(tMon);
 
     return;
 } /* end Stress() */
@@ -281,17 +281,17 @@ static void Stress( void )
 static PRIntn  EvaluateResults(void)
 {
     PRIntn rc = 0;
 
     if ( failed_already == PR_TRUE )
     {
         PR_LOG( tLM, PR_LOG_DEBUG, ("FAIL\n"));
         rc =1;
-    } 
+    }
     else
     {
         PR_LOG( tLM, PR_LOG_DEBUG, ("PASS\n"));
     }
     return(rc);
 } /* EvaluateResults() */
 
 void Help( void )
@@ -303,17 +303,17 @@ void Help( void )
     printf("-a <n>   minimum size of an arena allocation. Default(%d)\n", arenaMin);
     printf("-A <n>   maximum size of an arena allocation. Default(%d)\n", arenaMax);
     printf("-i <n>   number of iterations in a stress thread. Default(%d)\n", stressIterations);
     printf("-s <n>   maximum allocation for a single stress thread. Default(%d)\n", maxAlloc);
     printf("-t <n>   number of stress threads. Default(%d)\n", stressThreads );
     printf("-d       enable debug mode\n");
     printf("\n");
     exit(1);
-}    
+}
 
 PRIntn main(PRIntn argc, char *argv[])
 {
     PLOptStatus os;
 	PLOptState *opt = PL_CreateOptState(argc, argv, "dhp:P:a:A:i:s:t:");
 	while (PL_OPT_EOL != (os = PL_GetNextOpt(opt)))
     {
 		if (PL_OPT_BAD == os) continue;
--- a/lib/tests/base64t.c
+++ b/lib/tests/base64t.c
@@ -1027,765 +1027,765 @@ PRBool test_003(void)
           { "zap", "emFw" },
           { "Zen", "WmVu" },
           { "zig", "emln" },
           { "zip", "emlw" },
           { "Zoe", "Wm9l" },
           { "zoo", "em9v" },
           { "z's", "eidz" },
           /* the false rumors file */
-          { "\"So when I die, the first thing I will see in heaven is a score list?\"", 
+          { "\"So when I die, the first thing I will see in heaven is a score list?\"",
             "IlNvIHdoZW4gSSBkaWUsIHRoZSBmaXJzdCB0aGluZyBJIHdpbGwgc2VlIGluIGhlYXZlbiBpcyBhIHNjb3JlIGxpc3Q/Ig==" },
-          { "1st Law of Hacking: leaving is much more difficult than entering.", 
+          { "1st Law of Hacking: leaving is much more difficult than entering.",
             "MXN0IExhdyBvZiBIYWNraW5nOiBsZWF2aW5nIGlzIG11Y2ggbW9yZSBkaWZmaWN1bHQgdGhhbiBlbnRlcmluZy4=" },
-          { "2nd Law of Hacking: first in, first out.", 
+          { "2nd Law of Hacking: first in, first out.",
             "Mm5kIExhdyBvZiBIYWNraW5nOiBmaXJzdCBpbiwgZmlyc3Qgb3V0Lg==" },
-          { "3rd Law of Hacking: the last blow counts most.", 
+          { "3rd Law of Hacking: the last blow counts most.",
             "M3JkIExhdyBvZiBIYWNraW5nOiB0aGUgbGFzdCBibG93IGNvdW50cyBtb3N0Lg==" },
-          { "4th Law of Hacking: you will find the exit at the entrance.", 
+          { "4th Law of Hacking: you will find the exit at the entrance.",
             "NHRoIExhdyBvZiBIYWNraW5nOiB5b3Ugd2lsbCBmaW5kIHRoZSBleGl0IGF0IHRoZSBlbnRyYW5jZS4=" },
-          { "A chameleon imitating a mail daemon often delivers scrolls of fire.", 
+          { "A chameleon imitating a mail daemon often delivers scrolls of fire.",
             "QSBjaGFtZWxlb24gaW1pdGF0aW5nIGEgbWFpbCBkYWVtb24gb2Z0ZW4gZGVsaXZlcnMgc2Nyb2xscyBvZiBmaXJlLg==" },
-          { "A cockatrice corpse is guaranteed to be untainted!", 
+          { "A cockatrice corpse is guaranteed to be untainted!",
             "QSBjb2NrYXRyaWNlIGNvcnBzZSBpcyBndWFyYW50ZWVkIHRvIGJlIHVudGFpbnRlZCE=" },
-          { "A dead cockatrice is just a dead lizard.", 
+          { "A dead cockatrice is just a dead lizard.",
             "QSBkZWFkIGNvY2thdHJpY2UgaXMganVzdCBhIGRlYWQgbGl6YXJkLg==" },
-          { "A dragon is just a snake that ate a scroll of fire.", 
+          { "A dragon is just a snake that ate a scroll of fire.",
             "QSBkcmFnb24gaXMganVzdCBhIHNuYWtlIHRoYXQgYXRlIGEgc2Nyb2xsIG9mIGZpcmUu" },
-          { "A fading corridor enlightens your insight.", 
+          { "A fading corridor enlightens your insight.",
             "QSBmYWRpbmcgY29ycmlkb3IgZW5saWdodGVucyB5b3VyIGluc2lnaHQu" },
-          { "A glowing potion is too hot to drink.", 
+          { "A glowing potion is too hot to drink.",
             "QSBnbG93aW5nIHBvdGlvbiBpcyB0b28gaG90IHRvIGRyaW5rLg==" },
-          { "A good amulet may protect you against guards.", 
+          { "A good amulet may protect you against guards.",
             "QSBnb29kIGFtdWxldCBtYXkgcHJvdGVjdCB5b3UgYWdhaW5zdCBndWFyZHMu" },
-          { "A lizard corpse is a good thing to turn undead.", 
+          { "A lizard corpse is a good thing to turn undead.",
             "QSBsaXphcmQgY29ycHNlIGlzIGEgZ29vZCB0aGluZyB0byB0dXJuIHVuZGVhZC4=" },
-          { "A long worm can be defined recursively. So how should you attack it?", 
+          { "A long worm can be defined recursively. So how should you attack it?",
             "QSBsb25nIHdvcm0gY2FuIGJlIGRlZmluZWQgcmVjdXJzaXZlbHkuIFNvIGhvdyBzaG91bGQgeW91IGF0dGFjayBpdD8=" },
-          { "A monstrous mind is a toy forever.", 
+          { "A monstrous mind is a toy forever.",
             "QSBtb25zdHJvdXMgbWluZCBpcyBhIHRveSBmb3JldmVyLg==" },
-          { "A nymph will be very pleased if you call her by her real name: Lorelei.", 
+          { "A nymph will be very pleased if you call her by her real name: Lorelei.",
             "QSBueW1waCB3aWxsIGJlIHZlcnkgcGxlYXNlZCBpZiB5b3UgY2FsbCBoZXIgYnkgaGVyIHJlYWwgbmFtZTogTG9yZWxlaS4=" },
-          { "A ring of dungeon master control is a great find.", 
+          { "A ring of dungeon master control is a great find.",
             "QSByaW5nIG9mIGR1bmdlb24gbWFzdGVyIGNvbnRyb2wgaXMgYSBncmVhdCBmaW5kLg==" },
-          { "A ring of extra ring finger is useless if not enchanted.", 
+          { "A ring of extra ring finger is useless if not enchanted.",
             "QSByaW5nIG9mIGV4dHJhIHJpbmcgZmluZ2VyIGlzIHVzZWxlc3MgaWYgbm90IGVuY2hhbnRlZC4=" },
-          { "A rope may form a trail in a maze.", 
+          { "A rope may form a trail in a maze.",
             "QSByb3BlIG1heSBmb3JtIGEgdHJhaWwgaW4gYSBtYXplLg==" },
-          { "A staff may recharge if you drop it for awhile.", 
+          { "A staff may recharge if you drop it for awhile.",
             "QSBzdGFmZiBtYXkgcmVjaGFyZ2UgaWYgeW91IGRyb3AgaXQgZm9yIGF3aGlsZS4=" },
-          { "A visit to the Zoo is very educational; you meet interesting animals.", 
+          { "A visit to the Zoo is very educational; you meet interesting animals.",
             "QSB2aXNpdCB0byB0aGUgWm9vIGlzIHZlcnkgZWR1Y2F0aW9uYWw7IHlvdSBtZWV0IGludGVyZXN0aW5nIGFuaW1hbHMu" },
-          { "A wand of deaf is a more dangerous weapon than a wand of sheep.", 
+          { "A wand of deaf is a more dangerous weapon than a wand of sheep.",
             "QSB3YW5kIG9mIGRlYWYgaXMgYSBtb3JlIGRhbmdlcm91cyB3ZWFwb24gdGhhbiBhIHdhbmQgb2Ygc2hlZXAu" },
-          { "A wand of vibration might bring the whole cave crashing about your ears.", 
+          { "A wand of vibration might bring the whole cave crashing about your ears.",
             "QSB3YW5kIG9mIHZpYnJhdGlvbiBtaWdodCBicmluZyB0aGUgd2hvbGUgY2F2ZSBjcmFzaGluZyBhYm91dCB5b3VyIGVhcnMu" },
-          { "A winner never quits. A quitter never wins.", 
+          { "A winner never quits. A quitter never wins.",
             "QSB3aW5uZXIgbmV2ZXIgcXVpdHMuIEEgcXVpdHRlciBuZXZlciB3aW5zLg==" },
-          { "A wish? Okay, make me a fortune cookie!", 
+          { "A wish? Okay, make me a fortune cookie!",
             "QSB3aXNoPyBPa2F5LCBtYWtlIG1lIGEgZm9ydHVuZSBjb29raWUh" },
-          { "Afraid of mimics? Try to wear a ring of true seeing.", 
+          { "Afraid of mimics? Try to wear a ring of true seeing.",
             "QWZyYWlkIG9mIG1pbWljcz8gVHJ5IHRvIHdlYXIgYSByaW5nIG9mIHRydWUgc2VlaW5nLg==" },
-          { "All monsters are created evil, but some are more evil than others.", 
+          { "All monsters are created evil, but some are more evil than others.",
             "QWxsIG1vbnN0ZXJzIGFyZSBjcmVhdGVkIGV2aWwsIGJ1dCBzb21lIGFyZSBtb3JlIGV2aWwgdGhhbiBvdGhlcnMu" },
-          { "Always attack a floating eye from behind!", 
+          { "Always attack a floating eye from behind!",
             "QWx3YXlzIGF0dGFjayBhIGZsb2F0aW5nIGV5ZSBmcm9tIGJlaGluZCE=" },
-          { "An elven cloak is always the height of fashion.", 
+          { "An elven cloak is always the height of fashion.",
             "QW4gZWx2ZW4gY2xvYWsgaXMgYWx3YXlzIHRoZSBoZWlnaHQgb2YgZmFzaGlvbi4=" },
-          { "Any small object that is accidentally dropped will hide under a larger object.", 
+          { "Any small object that is accidentally dropped will hide under a larger object.",
             "QW55IHNtYWxsIG9iamVjdCB0aGF0IGlzIGFjY2lkZW50YWxseSBkcm9wcGVkIHdpbGwgaGlkZSB1bmRlciBhIGxhcmdlciBvYmplY3Qu" },
-          { "Balrogs do not appear above level 20.", 
+          { "Balrogs do not appear above level 20.",
             "QmFscm9ncyBkbyBub3QgYXBwZWFyIGFib3ZlIGxldmVsIDIwLg==" },
-          { "Banana peels work especially well against Keystone Kops.", 
+          { "Banana peels work especially well against Keystone Kops.",
             "QmFuYW5hIHBlZWxzIHdvcmsgZXNwZWNpYWxseSB3ZWxsIGFnYWluc3QgS2V5c3RvbmUgS29wcy4=" },
-          { "Be careful when eating bananas. Monsters might slip on the peels.", 
+          { "Be careful when eating bananas. Monsters might slip on the peels.",
             "QmUgY2FyZWZ1bCB3aGVuIGVhdGluZyBiYW5hbmFzLiBNb25zdGVycyBtaWdodCBzbGlwIG9uIHRoZSBwZWVscy4=" },
-          { "Better leave the dungeon; otherwise you might get hurt badly.", 
+          { "Better leave the dungeon; otherwise you might get hurt badly.",
             "QmV0dGVyIGxlYXZlIHRoZSBkdW5nZW9uOyBvdGhlcndpc2UgeW91IG1pZ2h0IGdldCBodXJ0IGJhZGx5Lg==" },
-          { "Beware of the potion of nitroglycerin -- it's not for the weak of heart.", 
+          { "Beware of the potion of nitroglycerin -- it's not for the weak of heart.",
             "QmV3YXJlIG9mIHRoZSBwb3Rpb24gb2Ygbml0cm9nbHljZXJpbiAtLSBpdCdzIG5vdCBmb3IgdGhlIHdlYWsgb2YgaGVhcnQu" },
-          { "Beware: there's always a chance that your wand explodes as you try to zap it!", 
+          { "Beware: there's always a chance that your wand explodes as you try to zap it!",
             "QmV3YXJlOiB0aGVyZSdzIGFsd2F5cyBhIGNoYW5jZSB0aGF0IHlvdXIgd2FuZCBleHBsb2RlcyBhcyB5b3UgdHJ5IHRvIHphcCBpdCE=" },
-          { "Beyond the 23rd level lies a happy retirement in a room of your own.", 
+          { "Beyond the 23rd level lies a happy retirement in a room of your own.",
             "QmV5b25kIHRoZSAyM3JkIGxldmVsIGxpZXMgYSBoYXBweSByZXRpcmVtZW50IGluIGEgcm9vbSBvZiB5b3VyIG93bi4=" },
-          { "Changing your suit without dropping your sword? You must be kidding!", 
+          { "Changing your suit without dropping your sword? You must be kidding!",
             "Q2hhbmdpbmcgeW91ciBzdWl0IHdpdGhvdXQgZHJvcHBpbmcgeW91ciBzd29yZD8gWW91IG11c3QgYmUga2lkZGluZyE=" },
-          { "Cockatrices might turn themselves to stone faced with a mirror.", 
+          { "Cockatrices might turn themselves to stone faced with a mirror.",
             "Q29ja2F0cmljZXMgbWlnaHQgdHVybiB0aGVtc2VsdmVzIHRvIHN0b25lIGZhY2VkIHdpdGggYSBtaXJyb3Iu" },
-          { "Consumption of home-made food is strictly forbidden in this dungeon.", 
+          { "Consumption of home-made food is strictly forbidden in this dungeon.",
             "Q29uc3VtcHRpb24gb2YgaG9tZS1tYWRlIGZvb2QgaXMgc3RyaWN0bHkgZm9yYmlkZGVuIGluIHRoaXMgZHVuZ2Vvbi4=" },
-          { "Dark room? Your chance to develop your photographs!", 
+          { "Dark room? Your chance to develop your photographs!",
             "RGFyayByb29tPyBZb3VyIGNoYW5jZSB0byBkZXZlbG9wIHlvdXIgcGhvdG9ncmFwaHMh" },
-          { "Dark rooms are not *completely* dark: just wait and let your eyes adjust...", 
+          { "Dark rooms are not *completely* dark: just wait and let your eyes adjust...",
             "RGFyayByb29tcyBhcmUgbm90ICpjb21wbGV0ZWx5KiBkYXJrOiBqdXN0IHdhaXQgYW5kIGxldCB5b3VyIGV5ZXMgYWRqdXN0Li4u" },
-          { "David London sez, \"Hey guys, *WIELD* a lizard corpse against a cockatrice!\"", 
+          { "David London sez, \"Hey guys, *WIELD* a lizard corpse against a cockatrice!\"",
             "RGF2aWQgTG9uZG9uIHNleiwgIkhleSBndXlzLCAqV0lFTEQqIGEgbGl6YXJkIGNvcnBzZSBhZ2FpbnN0IGEgY29ja2F0cmljZSEi" },
-          { "Death is just life's way of telling you you've been fired.", 
+          { "Death is just life's way of telling you you've been fired.",
             "RGVhdGggaXMganVzdCBsaWZlJ3Mgd2F5IG9mIHRlbGxpbmcgeW91IHlvdSd2ZSBiZWVuIGZpcmVkLg==" },
-          { "Demi-gods don't need any help from the gods.", 
+          { "Demi-gods don't need any help from the gods.",
             "RGVtaS1nb2RzIGRvbid0IG5lZWQgYW55IGhlbHAgZnJvbSB0aGUgZ29kcy4=" },
-          { "Demons *HATE* Priests and Priestesses.", 
+          { "Demons *HATE* Priests and Priestesses.",
             "RGVtb25zICpIQVRFKiBQcmllc3RzIGFuZCBQcmllc3Rlc3Nlcy4=" },
-          { "Didn't you forget to pay?", 
+          { "Didn't you forget to pay?",
             "RGlkbid0IHlvdSBmb3JnZXQgdG8gcGF5Pw==" },
-          { "Didn't your mother tell you not to eat food off the floor?", 
+          { "Didn't your mother tell you not to eat food off the floor?",
             "RGlkbid0IHlvdXIgbW90aGVyIHRlbGwgeW91IG5vdCB0byBlYXQgZm9vZCBvZmYgdGhlIGZsb29yPw==" },
-          { "Direct a direct hit on your direct opponent, directing in the right direction.", 
+          { "Direct a direct hit on your direct opponent, directing in the right direction.",
             "RGlyZWN0IGEgZGlyZWN0IGhpdCBvbiB5b3VyIGRpcmVjdCBvcHBvbmVudCwgZGlyZWN0aW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24u" },
-          { "Do you want to make more money? Sure, we all do! Join the Fort Ludios guard!", 
+          { "Do you want to make more money? Sure, we all do! Join the Fort Ludios guard!",
             "RG8geW91IHdhbnQgdG8gbWFrZSBtb3JlIG1vbmV5PyBTdXJlLCB3ZSBhbGwgZG8hIEpvaW4gdGhlIEZvcnQgTHVkaW9zIGd1YXJkIQ==" },
-          { "Don't eat too much: you might start hiccoughing!", 
+          { "Don't eat too much: you might start hiccoughing!",
             "RG9uJ3QgZWF0IHRvbyBtdWNoOiB5b3UgbWlnaHQgc3RhcnQgaGljY291Z2hpbmch" },
-          { "Don't play hack at your work; your boss might hit you!", 
+          { "Don't play hack at your work; your boss might hit you!",
             "RG9uJ3QgcGxheSBoYWNrIGF0IHlvdXIgd29yazsgeW91ciBib3NzIG1pZ2h0IGhpdCB5b3Uh" },
-          { "Don't tell a soul you found a secret door, otherwise it isn't a secret anymore.", 
+          { "Don't tell a soul you found a secret door, otherwise it isn't a secret anymore.",
             "RG9uJ3QgdGVsbCBhIHNvdWwgeW91IGZvdW5kIGEgc2VjcmV0IGRvb3IsIG90aGVyd2lzZSBpdCBpc24ndCBhIHNlY3JldCBhbnltb3JlLg==" },
-          { "Drinking potions of booze may land you in jail if you are under 21.", 
+          { "Drinking potions of booze may land you in jail if you are under 21.",
             "RHJpbmtpbmcgcG90aW9ucyBvZiBib296ZSBtYXkgbGFuZCB5b3UgaW4gamFpbCBpZiB5b3UgYXJlIHVuZGVyIDIxLg==" },
-          { "Drop your vanity and get rid of your jewels! Pickpockets about!", 
+          { "Drop your vanity and get rid of your jewels! Pickpockets about!",
             "RHJvcCB5b3VyIHZhbml0eSBhbmQgZ2V0IHJpZCBvZiB5b3VyIGpld2VscyEgUGlja3BvY2tldHMgYWJvdXQh" },
-          { "Eat 10 cloves of garlic and keep all humans at a two-square distance.", 
+          { "Eat 10 cloves of garlic and keep all humans at a two-square distance.",
             "RWF0IDEwIGNsb3ZlcyBvZiBnYXJsaWMgYW5kIGtlZXAgYWxsIGh1bWFucyBhdCBhIHR3by1zcXVhcmUgZGlzdGFuY2Uu" },
-          { "Eels hide under mud. Use a unicorn to clear the water and make them visible.", 
+          { "Eels hide under mud. Use a unicorn to clear the water and make them visible.",
             "RWVscyBoaWRlIHVuZGVyIG11ZC4gVXNlIGEgdW5pY29ybiB0byBjbGVhciB0aGUgd2F0ZXIgYW5kIG1ha2UgdGhlbSB2aXNpYmxlLg==" },
-          { "Engrave your wishes with a wand of wishing.", 
+          { "Engrave your wishes with a wand of wishing.",
             "RW5ncmF2ZSB5b3VyIHdpc2hlcyB3aXRoIGEgd2FuZCBvZiB3aXNoaW5nLg==" },
-          { "Eventually you will come to admire the swift elegance of a retreating nymph.", 
+          { "Eventually you will come to admire the swift elegance of a retreating nymph.",
             "RXZlbnR1YWxseSB5b3Ugd2lsbCBjb21lIHRvIGFkbWlyZSB0aGUgc3dpZnQgZWxlZ2FuY2Ugb2YgYSByZXRyZWF0aW5nIG55bXBoLg==" },
-          { "Ever heard hissing outside? I *knew* you hadn't!", 
+          { "Ever heard hissing outside? I *knew* you hadn't!",
             "RXZlciBoZWFyZCBoaXNzaW5nIG91dHNpZGU/IEkgKmtuZXcqIHlvdSBoYWRuJ3Qh" },
-          { "Ever lifted a dragon corpse?", 
+          { "Ever lifted a dragon corpse?",
             "RXZlciBsaWZ0ZWQgYSBkcmFnb24gY29ycHNlPw==" },
-          { "Ever seen a leocrotta dancing the tengu?", 
+          { "Ever seen a leocrotta dancing the tengu?",
             "RXZlciBzZWVuIGEgbGVvY3JvdHRhIGRhbmNpbmcgdGhlIHRlbmd1Pw==" },
-          { "Ever seen your weapon glow plaid?", 
+          { "Ever seen your weapon glow plaid?",
             "RXZlciBzZWVuIHlvdXIgd2VhcG9uIGdsb3cgcGxhaWQ/" },
-          { "Ever tamed a shopkeeper?", 
+          { "Ever tamed a shopkeeper?",
             "RXZlciB0YW1lZCBhIHNob3BrZWVwZXI/" },
-          { "Ever tried digging through a Vault Guard?", 
+          { "Ever tried digging through a Vault Guard?",
             "RXZlciB0cmllZCBkaWdnaW5nIHRocm91Z2ggYSBWYXVsdCBHdWFyZD8=" },
-          { "Ever tried enchanting a rope?", 
+          { "Ever tried enchanting a rope?",
             "RXZlciB0cmllZCBlbmNoYW50aW5nIGEgcm9wZT8=" },
-          { "Floating eyes can't stand Hawaiian shirts.", 
+          { "Floating eyes can't stand Hawaiian shirts.",
             "RmxvYXRpbmcgZXllcyBjYW4ndCBzdGFuZCBIYXdhaWlhbiBzaGlydHMu" },
-          { "For any remedy there is a misery.", 
+          { "For any remedy there is a misery.",
             "Rm9yIGFueSByZW1lZHkgdGhlcmUgaXMgYSBtaXNlcnku" },
-          { "Giant bats turn into giant vampires.", 
+          { "Giant bats turn into giant vampires.",
             "R2lhbnQgYmF0cyB0dXJuIGludG8gZ2lhbnQgdmFtcGlyZXMu" },
-          { "Good day for overcoming obstacles. Try a steeplechase.", 
+          { "Good day for overcoming obstacles. Try a steeplechase.",
             "R29vZCBkYXkgZm9yIG92ZXJjb21pbmcgb2JzdGFjbGVzLiBUcnkgYSBzdGVlcGxlY2hhc2Uu" },
-          { "Half Moon tonight. (At least it's better than no Moon at all.)", 
+          { "Half Moon tonight. (At least it's better than no Moon at all.)",
             "SGFsZiBNb29uIHRvbmlnaHQuIChBdCBsZWFzdCBpdCdzIGJldHRlciB0aGFuIG5vIE1vb24gYXQgYWxsLik=" },
-          { "Help! I'm being held prisoner in a fortune cookie factory!", 
+          { "Help! I'm being held prisoner in a fortune cookie factory!",
             "SGVscCEgSSdtIGJlaW5nIGhlbGQgcHJpc29uZXIgaW4gYSBmb3J0dW5lIGNvb2tpZSBmYWN0b3J5IQ==" },
-          { "Housecats have nine lives, kittens only one.", 
+          { "Housecats have nine lives, kittens only one.",
             "SG91c2VjYXRzIGhhdmUgbmluZSBsaXZlcywga2l0dGVucyBvbmx5IG9uZS4=" },
-          { "How long can you tread water?", 
+          { "How long can you tread water?",
             "SG93IGxvbmcgY2FuIHlvdSB0cmVhZCB3YXRlcj8=" },
-          { "Hungry? There is an abundance of food on the next level.", 
+          { "Hungry? There is an abundance of food on the next level.",
             "SHVuZ3J5PyBUaGVyZSBpcyBhbiBhYnVuZGFuY2Ugb2YgZm9vZCBvbiB0aGUgbmV4dCBsZXZlbC4=" },
-          { "I guess you've never hit a mail daemon with the Amulet of Yendor...", 
+          { "I guess you've never hit a mail daemon with the Amulet of Yendor...",
             "SSBndWVzcyB5b3UndmUgbmV2ZXIgaGl0IGEgbWFpbCBkYWVtb24gd2l0aCB0aGUgQW11bGV0IG9mIFllbmRvci4uLg==" },
-          { "If you are the shopkeeper, you can take things for free.", 
+          { "If you are the shopkeeper, you can take things for free.",
             "SWYgeW91IGFyZSB0aGUgc2hvcGtlZXBlciwgeW91IGNhbiB0YWtlIHRoaW5ncyBmb3IgZnJlZS4=" },
-          { "If you can't learn to do it well, learn to enjoy doing it badly.", 
+          { "If you can't learn to do it well, learn to enjoy doing it badly.",
             "SWYgeW91IGNhbid0IGxlYXJuIHRvIGRvIGl0IHdlbGwsIGxlYXJuIHRvIGVuam95IGRvaW5nIGl0IGJhZGx5Lg==" },
-          { "If you thought the Wizard was bad, just wait till you meet the Warlord!", 
+          { "If you thought the Wizard was bad, just wait till you meet the Warlord!",
             "SWYgeW91IHRob3VnaHQgdGhlIFdpemFyZCB3YXMgYmFkLCBqdXN0IHdhaXQgdGlsbCB5b3UgbWVldCB0aGUgV2FybG9yZCE=" },
-          { "If you turn blind, don't expect your dog to be turned into a seeing-eye dog.", 
+          { "If you turn blind, don't expect your dog to be turned into a seeing-eye dog.",
             "SWYgeW91IHR1cm4gYmxpbmQsIGRvbid0IGV4cGVjdCB5b3VyIGRvZyB0byBiZSB0dXJuZWQgaW50byBhIHNlZWluZy1leWUgZG9nLg==" },
-          { "If you want to feel great, you must eat something real big.", 
+          { "If you want to feel great, you must eat something real big.",
             "SWYgeW91IHdhbnQgdG8gZmVlbCBncmVhdCwgeW91IG11c3QgZWF0IHNvbWV0aGluZyByZWFsIGJpZy4=" },
-          { "If you want to float, you'd better eat a floating eye.", 
+          { "If you want to float, you'd better eat a floating eye.",
             "SWYgeW91IHdhbnQgdG8gZmxvYXQsIHlvdSdkIGJldHRlciBlYXQgYSBmbG9hdGluZyBleWUu" },
-          { "If your ghost kills a player, it increases your score.", 
+          { "If your ghost kills a player, it increases your score.",
             "SWYgeW91ciBnaG9zdCBraWxscyBhIHBsYXllciwgaXQgaW5jcmVhc2VzIHlvdXIgc2NvcmUu" },
-          { "Increase mindpower: Tame your own ghost!", 
+          { "Increase mindpower: Tame your own ghost!",
             "SW5jcmVhc2UgbWluZHBvd2VyOiBUYW1lIHlvdXIgb3duIGdob3N0IQ==" },
-          { "It furthers one to see the great man.", 
+          { "It furthers one to see the great man.",
             "SXQgZnVydGhlcnMgb25lIHRvIHNlZSB0aGUgZ3JlYXQgbWFuLg==" },
-          { "It's easy to overlook a monster in a wood.", 
+          { "It's easy to overlook a monster in a wood.",
             "SXQncyBlYXN5IHRvIG92ZXJsb29rIGEgbW9uc3RlciBpbiBhIHdvb2Qu" },
-          { "Just below any trapdoor there may be another one. Just keep falling!", 
+          { "Just below any trapdoor there may be another one. Just keep falling!",
             "SnVzdCBiZWxvdyBhbnkgdHJhcGRvb3IgdGhlcmUgbWF5IGJlIGFub3RoZXIgb25lLiBKdXN0IGtlZXAgZmFsbGluZyE=" },
-          { "Katanas are very sharp; watch you don't cut yourself.", 
+          { "Katanas are very sharp; watch you don't cut yourself.",
             "S2F0YW5hcyBhcmUgdmVyeSBzaGFycDsgd2F0Y2ggeW91IGRvbid0IGN1dCB5b3Vyc2VsZi4=" },
-          { "Keep a clear mind: quaff clear potions.", 
+          { "Keep a clear mind: quaff clear potions.",
             "S2VlcCBhIGNsZWFyIG1pbmQ6IHF1YWZmIGNsZWFyIHBvdGlvbnMu" },
-          { "Kicking the terminal doesn't hurt the monsters.", 
+          { "Kicking the terminal doesn't hurt the monsters.",
             "S2lja2luZyB0aGUgdGVybWluYWwgZG9lc24ndCBodXJ0IHRoZSBtb25zdGVycy4=" },
-          { "Killer bees keep appearing till you kill their queen.", 
+          { "Killer bees keep appearing till you kill their queen.",
             "S2lsbGVyIGJlZXMga2VlcCBhcHBlYXJpbmcgdGlsbCB5b3Uga2lsbCB0aGVpciBxdWVlbi4=" },
-          { "Killer bunnies can be tamed with carrots only.", 
+          { "Killer bunnies can be tamed with carrots only.",
             "S2lsbGVyIGJ1bm5pZXMgY2FuIGJlIHRhbWVkIHdpdGggY2Fycm90cyBvbmx5Lg==" },
-          { "Latest news? Put `rec.games.roguelike.nethack' in your .newsrc!", 
+          { "Latest news? Put `rec.games.roguelike.nethack' in your .newsrc!",
             "TGF0ZXN0IG5ld3M/IFB1dCBgcmVjLmdhbWVzLnJvZ3VlbGlrZS5uZXRoYWNrJyBpbiB5b3VyIC5uZXdzcmMh" },
-          { "Learn how to spell. Play NetHack!", 
+          { "Learn how to spell. Play NetHack!",
             "TGVhcm4gaG93IHRvIHNwZWxsLiBQbGF5IE5ldEhhY2sh" },
-          { "Leprechauns hide their gold in a secret room.", 
+          { "Leprechauns hide their gold in a secret room.",
             "TGVwcmVjaGF1bnMgaGlkZSB0aGVpciBnb2xkIGluIGEgc2VjcmV0IHJvb20u" },
-          { "Let your fingers do the walking on the yulkjhnb keys.", 
+          { "Let your fingers do the walking on the yulkjhnb keys.",
             "TGV0IHlvdXIgZmluZ2VycyBkbyB0aGUgd2Fsa2luZyBvbiB0aGUgeXVsa2pobmIga2V5cy4=" },
-          { "Let's face it: this time you're not going to win.", 
+          { "Let's face it: this time you're not going to win.",
             "TGV0J3MgZmFjZSBpdDogdGhpcyB0aW1lIHlvdSdyZSBub3QgZ29pbmcgdG8gd2luLg==" },
-          { "Let's have a party, drink a lot of booze.", 
+          { "Let's have a party, drink a lot of booze.",
             "TGV0J3MgaGF2ZSBhIHBhcnR5LCBkcmluayBhIGxvdCBvZiBib296ZS4=" },
-          { "Liquor sellers do not drink; they hate to see you twice.", 
+          { "Liquor sellers do not drink; they hate to see you twice.",
             "TGlxdW9yIHNlbGxlcnMgZG8gbm90IGRyaW5rOyB0aGV5IGhhdGUgdG8gc2VlIHlvdSB0d2ljZS4=" },
-          { "Lunar eclipse tonight. May as well quit now!", 
+          { "Lunar eclipse tonight. May as well quit now!",
             "THVuYXIgZWNsaXBzZSB0b25pZ2h0LiBNYXkgYXMgd2VsbCBxdWl0IG5vdyE=" },
-          { "Meeting your own ghost decreases your luck considerably!", 
+          { "Meeting your own ghost decreases your luck considerably!",
             "TWVldGluZyB5b3VyIG93biBnaG9zdCBkZWNyZWFzZXMgeW91ciBsdWNrIGNvbnNpZGVyYWJseSE=" },
-          { "Money to invest? Take it to the local branch of the Magic Memory Vault!", 
+          { "Money to invest? Take it to the local branch of the Magic Memory Vault!",
             "TW9uZXkgdG8gaW52ZXN0PyBUYWtlIGl0IHRvIHRoZSBsb2NhbCBicmFuY2ggb2YgdGhlIE1hZ2ljIE1lbW9yeSBWYXVsdCE=" },
-          { "Monsters come from nowhere to hit you everywhere.", 
+          { "Monsters come from nowhere to hit you everywhere.",
             "TW9uc3RlcnMgY29tZSBmcm9tIG5vd2hlcmUgdG8gaGl0IHlvdSBldmVyeXdoZXJlLg==" },
-          { "Monsters sleep because you are boring, not because they ever get tired.", 
+          { "Monsters sleep because you are boring, not because they ever get tired.",
             "TW9uc3RlcnMgc2xlZXAgYmVjYXVzZSB5b3UgYXJlIGJvcmluZywgbm90IGJlY2F1c2UgdGhleSBldmVyIGdldCB0aXJlZC4=" },
-          { "Most monsters prefer minced meat. That's why they are hitting you!", 
+          { "Most monsters prefer minced meat. That's why they are hitting you!",
             "TW9zdCBtb25zdGVycyBwcmVmZXIgbWluY2VkIG1lYXQuIFRoYXQncyB3aHkgdGhleSBhcmUgaGl0dGluZyB5b3Uh" },
-          { "Most of the bugs in NetHack are on the floor.", 
+          { "Most of the bugs in NetHack are on the floor.",
             "TW9zdCBvZiB0aGUgYnVncyBpbiBOZXRIYWNrIGFyZSBvbiB0aGUgZmxvb3Iu" },
-          { "Much ado Nothing Happens.", 
+          { "Much ado Nothing Happens.",
             "TXVjaCBhZG8gTm90aGluZyBIYXBwZW5zLg==" },
-          { "Multi-player NetHack is a myth.", 
+          { "Multi-player NetHack is a myth.",
             "TXVsdGktcGxheWVyIE5ldEhhY2sgaXMgYSBteXRoLg==" },
-          { "NetHack is addictive. Too late, you're already hooked.", 
+          { "NetHack is addictive. Too late, you're already hooked.",
             "TmV0SGFjayBpcyBhZGRpY3RpdmUuIFRvbyBsYXRlLCB5b3UncmUgYWxyZWFkeSBob29rZWQu" },
-          { "Never ask a shopkeeper for a price list.", 
+          { "Never ask a shopkeeper for a price list.",
             "TmV2ZXIgYXNrIGEgc2hvcGtlZXBlciBmb3IgYSBwcmljZSBsaXN0Lg==" },
-          { "Never burn a tree, unless you like getting whacked with a +5 shovel.", 
+          { "Never burn a tree, unless you like getting whacked with a +5 shovel.",
             "TmV2ZXIgYnVybiBhIHRyZWUsIHVubGVzcyB5b3UgbGlrZSBnZXR0aW5nIHdoYWNrZWQgd2l0aCBhICs1IHNob3ZlbC4=" },
-          { "Never eat with glowing hands!", 
+          { "Never eat with glowing hands!",
             "TmV2ZXIgZWF0IHdpdGggZ2xvd2luZyBoYW5kcyE=" },
-          { "Never mind the monsters hitting you: they just replace the charwomen.", 
+          { "Never mind the monsters hitting you: they just replace the charwomen.",
             "TmV2ZXIgbWluZCB0aGUgbW9uc3RlcnMgaGl0dGluZyB5b3U6IHRoZXkganVzdCByZXBsYWNlIHRoZSBjaGFyd29tZW4u" },
-          { "Never play leapfrog with a unicorn.", 
+          { "Never play leapfrog with a unicorn.",
             "TmV2ZXIgcGxheSBsZWFwZnJvZyB3aXRoIGEgdW5pY29ybi4=" },
-          { "Never step on a cursed engraving.", 
+          { "Never step on a cursed engraving.",
             "TmV2ZXIgc3RlcCBvbiBhIGN1cnNlZCBlbmdyYXZpbmcu" },
-          { "Never swim with a camera: there's nothing to take pictures of.", 
+          { "Never swim with a camera: there's nothing to take pictures of.",
             "TmV2ZXIgc3dpbSB3aXRoIGEgY2FtZXJhOiB0aGVyZSdzIG5vdGhpbmcgdG8gdGFrZSBwaWN0dXJlcyBvZi4=" },
-          { "Never teach your pet rust monster to fetch.", 
+          { "Never teach your pet rust monster to fetch.",
             "TmV2ZXIgdGVhY2ggeW91ciBwZXQgcnVzdCBtb25zdGVyIHRvIGZldGNoLg==" },
-          { "Never trust a random generator in magic fields.", 
+          { "Never trust a random generator in magic fields.",
             "TmV2ZXIgdHJ1c3QgYSByYW5kb20gZ2VuZXJhdG9yIGluIG1hZ2ljIGZpZWxkcy4=" },
-          { "Never use a wand of death.", 
+          { "Never use a wand of death.",
             "TmV2ZXIgdXNlIGEgd2FuZCBvZiBkZWF0aC4=" },
-          { "No level contains two shops. The maze is no level. So...", 
+          { "No level contains two shops. The maze is no level. So...",
             "Tm8gbGV2ZWwgY29udGFpbnMgdHdvIHNob3BzLiBUaGUgbWF6ZSBpcyBubyBsZXZlbC4gU28uLi4=" },
-          { "No part of this fortune may be reproduced, stored in a retrieval system, ...", 
+          { "No part of this fortune may be reproduced, stored in a retrieval system, ...",
             "Tm8gcGFydCBvZiB0aGlzIGZvcnR1bmUgbWF5IGJlIHJlcHJvZHVjZWQsIHN0b3JlZCBpbiBhIHJldHJpZXZhbCBzeXN0ZW0sIC4uLg==" },
-          { "Not all rumors are as misleading as this one.", 
+          { "Not all rumors are as misleading as this one.",
             "Tm90IGFsbCBydW1vcnMgYXJlIGFzIG1pc2xlYWRpbmcgYXMgdGhpcyBvbmUu" },
-          { "Nymphs and nurses like beautiful rings.", 
+          { "Nymphs and nurses like beautiful rings.",
             "TnltcGhzIGFuZCBudXJzZXMgbGlrZSBiZWF1dGlmdWwgcmluZ3Mu" },
-          { "Nymphs are blondes. Are you a gentleman?", 
+          { "Nymphs are blondes. Are you a gentleman?",
             "TnltcGhzIGFyZSBibG9uZGVzLiBBcmUgeW91IGEgZ2VudGxlbWFuPw==" },
-          { "Offering a unicorn a worthless piece of glass might prove to be fatal!", 
+          { "Offering a unicorn a worthless piece of glass might prove to be fatal!",
             "T2ZmZXJpbmcgYSB1bmljb3JuIGEgd29ydGhsZXNzIHBpZWNlIG9mIGdsYXNzIG1pZ2h0IHByb3ZlIHRvIGJlIGZhdGFsIQ==" },
-          { "Old hackers never die: young ones do.", 
+          { "Old hackers never die: young ones do.",
             "T2xkIGhhY2tlcnMgbmV2ZXIgZGllOiB5b3VuZyBvbmVzIGRvLg==" },
-          { "One has to leave shops before closing time.", 
+          { "One has to leave shops before closing time.",
             "T25lIGhhcyB0byBsZWF2ZSBzaG9wcyBiZWZvcmUgY2xvc2luZyB0aW1lLg==" },
-          { "One homunculus a day keeps the doctor away.", 
+          { "One homunculus a day keeps the doctor away.",
             "T25lIGhvbXVuY3VsdXMgYSBkYXkga2VlcHMgdGhlIGRvY3RvciBhd2F5Lg==" },
-          { "One level further down somebody is getting killed, right now.", 
+          { "One level further down somebody is getting killed, right now.",
             "T25lIGxldmVsIGZ1cnRoZXIgZG93biBzb21lYm9keSBpcyBnZXR0aW5nIGtpbGxlZCwgcmlnaHQgbm93Lg==" },
-          { "Only a wizard can use a magic whistle.", 
+          { "Only a wizard can use a magic whistle.",
             "T25seSBhIHdpemFyZCBjYW4gdXNlIGEgbWFnaWMgd2hpc3RsZS4=" },
-          { "Only adventurers of evil alignment think of killing their dog.", 
+          { "Only adventurers of evil alignment think of killing their dog.",
             "T25seSBhZHZlbnR1cmVycyBvZiBldmlsIGFsaWdubWVudCB0aGluayBvZiBraWxsaW5nIHRoZWlyIGRvZy4=" },
-          { "Only chaotic evils kill sleeping monsters.", 
+          { "Only chaotic evils kill sleeping monsters.",
             "T25seSBjaGFvdGljIGV2aWxzIGtpbGwgc2xlZXBpbmcgbW9uc3RlcnMu" },
-          { "Only real trappers escape traps.", 
+          { "Only real trappers escape traps.",
             "T25seSByZWFsIHRyYXBwZXJzIGVzY2FwZSB0cmFwcy4=" },
-          { "Only real wizards can write scrolls.", 
+          { "Only real wizards can write scrolls.",
             "T25seSByZWFsIHdpemFyZHMgY2FuIHdyaXRlIHNjcm9sbHMu" },
-          { "Operation OVERKILL has started now.", 
+          { "Operation OVERKILL has started now.",
             "T3BlcmF0aW9uIE9WRVJLSUxMIGhhcyBzdGFydGVkIG5vdy4=" },
-          { "PLEASE ignore previous rumor.", 
+          { "PLEASE ignore previous rumor.",
             "UExFQVNFIGlnbm9yZSBwcmV2aW91cyBydW1vci4=" },
-          { "Polymorph into an ettin; meet your opponents face to face to face.", 
+          { "Polymorph into an ettin; meet your opponents face to face to face.",
             "UG9seW1vcnBoIGludG8gYW4gZXR0aW47IG1lZXQgeW91ciBvcHBvbmVudHMgZmFjZSB0byBmYWNlIHRvIGZhY2Uu" },
-          { "Praying will frighten demons.", 
+          { "Praying will frighten demons.",
             "UHJheWluZyB3aWxsIGZyaWdodGVuIGRlbW9ucy4=" },
-          { "Row (3x) that boat gently down the stream, Charon (4x), death is but a dream.", 
+          { "Row (3x) that boat gently down the stream, Charon (4x), death is but a dream.",
             "Um93ICgzeCkgdGhhdCBib2F0IGdlbnRseSBkb3duIHRoZSBzdHJlYW0sIENoYXJvbiAoNHgpLCBkZWF0aCBpcyBidXQgYSBkcmVhbS4=" },
-          { "Running is good for your legs.", 
+          { "Running is good for your legs.",
             "UnVubmluZyBpcyBnb29kIGZvciB5b3VyIGxlZ3Mu" },
-          { "Screw up your courage! You've screwed up everything else.", 
+          { "Screw up your courage! You've screwed up everything else.",
             "U2NyZXcgdXAgeW91ciBjb3VyYWdlISBZb3UndmUgc2NyZXdlZCB1cCBldmVyeXRoaW5nIGVsc2Uu" },
-          { "Seepage? Leaky pipes? Rising damp? Summon the plumber!", 
+          { "Seepage? Leaky pipes? Rising damp? Summon the plumber!",
             "U2VlcGFnZT8gTGVha3kgcGlwZXM/IFJpc2luZyBkYW1wPyBTdW1tb24gdGhlIHBsdW1iZXIh" },
-          { "Segmentation fault (core dumped).", 
+          { "Segmentation fault (core dumped).",
             "U2VnbWVudGF0aW9uIGZhdWx0IChjb3JlIGR1bXBlZCku" },
-          { "Shopkeepers sometimes die from old age.", 
+          { "Shopkeepers sometimes die from old age.",
             "U2hvcGtlZXBlcnMgc29tZXRpbWVzIGRpZSBmcm9tIG9sZCBhZ2Uu" },
-          { "Some mazes (especially small ones) have no solutions, says man 6 maze.", 
+          { "Some mazes (especially small ones) have no solutions, says man 6 maze.",
             "U29tZSBtYXplcyAoZXNwZWNpYWxseSBzbWFsbCBvbmVzKSBoYXZlIG5vIHNvbHV0aW9ucywgc2F5cyBtYW4gNiBtYXplLg==" },
-          { "Some questions the Sphynx asks just *don't* have any answers.", 
+          { "Some questions the Sphynx asks just *don't* have any answers.",
             "U29tZSBxdWVzdGlvbnMgdGhlIFNwaHlueCBhc2tzIGp1c3QgKmRvbid0KiBoYXZlIGFueSBhbnN3ZXJzLg==" },
-          { "Sometimes \"mu\" is the answer.", 
+          { "Sometimes \"mu\" is the answer.",
             "U29tZXRpbWVzICJtdSIgaXMgdGhlIGFuc3dlci4=" },
-          { "Sorry, no fortune this time. Better luck next cookie!", 
+          { "Sorry, no fortune this time. Better luck next cookie!",
             "U29ycnksIG5vIGZvcnR1bmUgdGhpcyB0aW1lLiBCZXR0ZXIgbHVjayBuZXh0IGNvb2tpZSE=" },
-          { "Spare your scrolls of make-edible until it's really necessary!", 
+          { "Spare your scrolls of make-edible until it's really necessary!",
             "U3BhcmUgeW91ciBzY3JvbGxzIG9mIG1ha2UtZWRpYmxlIHVudGlsIGl0J3MgcmVhbGx5IG5lY2Vzc2FyeSE=" },
-          { "Suddenly, the dungeon will collapse...", 
+          { "Suddenly, the dungeon will collapse...",
             "U3VkZGVubHksIHRoZSBkdW5nZW9uIHdpbGwgY29sbGFwc2UuLi4=" },
-          { "Taming a mail daemon may cause a system security violation.", 
+          { "Taming a mail daemon may cause a system security violation.",
             "VGFtaW5nIGEgbWFpbCBkYWVtb24gbWF5IGNhdXNlIGEgc3lzdGVtIHNlY3VyaXR5IHZpb2xhdGlvbi4=" },
-          { "The crowd was so tough, the Stooges won't play the Dungeon anymore, nyuk nyuk.", 
+          { "The crowd was so tough, the Stooges won't play the Dungeon anymore, nyuk nyuk.",
             "VGhlIGNyb3dkIHdhcyBzbyB0b3VnaCwgdGhlIFN0b29nZXMgd29uJ3QgcGxheSB0aGUgRHVuZ2VvbiBhbnltb3JlLCBueXVrIG55dWsu" },
-          { "The leprechauns hide their treasure in a small hidden room.", 
+          { "The leprechauns hide their treasure in a small hidden room.",
             "VGhlIGxlcHJlY2hhdW5zIGhpZGUgdGhlaXIgdHJlYXN1cmUgaW4gYSBzbWFsbCBoaWRkZW4gcm9vbS4=" },
-          { "The longer the wand the better.", 
+          { "The longer the wand the better.",
             "VGhlIGxvbmdlciB0aGUgd2FuZCB0aGUgYmV0dGVyLg==" },
-          { "The magic word is \"XYZZY\".", 
+          { "The magic word is \"XYZZY\".",
             "VGhlIG1hZ2ljIHdvcmQgaXMgIlhZWlpZIi4=" },
-          { "The meek shall inherit your bones files.", 
+          { "The meek shall inherit your bones files.",
             "VGhlIG1lZWsgc2hhbGwgaW5oZXJpdCB5b3VyIGJvbmVzIGZpbGVzLg==" },
-          { "The mines are dark and deep, and I have levels to go before I sleep.", 
+          { "The mines are dark and deep, and I have levels to go before I sleep.",
             "VGhlIG1pbmVzIGFyZSBkYXJrIGFuZCBkZWVwLCBhbmQgSSBoYXZlIGxldmVscyB0byBnbyBiZWZvcmUgSSBzbGVlcC4=" },
-          { "The use of dynamite is dangerous.", 
+          { "The use of dynamite is dangerous.",
             "VGhlIHVzZSBvZiBkeW5hbWl0ZSBpcyBkYW5nZXJvdXMu" },
-          { "There are no worms in the UNIX version.", 
+          { "There are no worms in the UNIX version.",
             "VGhlcmUgYXJlIG5vIHdvcm1zIGluIHRoZSBVTklYIHZlcnNpb24u" },
-          { "There is a trap on this level!", 
+          { "There is a trap on this level!",
             "VGhlcmUgaXMgYSB0cmFwIG9uIHRoaXMgbGV2ZWwh" },
-          { "They say that Demogorgon, Asmodeus, Orcus, Yeenoghu & Juiblex is no law firm.", 
+          { "They say that Demogorgon, Asmodeus, Orcus, Yeenoghu & Juiblex is no law firm.",
             "VGhleSBzYXkgdGhhdCBEZW1vZ29yZ29uLCBBc21vZGV1cywgT3JjdXMsIFllZW5vZ2h1ICYgSnVpYmxleCBpcyBubyBsYXcgZmlybS4=" },
-          { "They say that Geryon has an evil twin, beware!", 
+          { "They say that Geryon has an evil twin, beware!",
             "VGhleSBzYXkgdGhhdCBHZXJ5b24gaGFzIGFuIGV2aWwgdHdpbiwgYmV3YXJlIQ==" },
-          { "They say that Medusa would make a terrible pet.", 
+          { "They say that Medusa would make a terrible pet.",
             "VGhleSBzYXkgdGhhdCBNZWR1c2Egd291bGQgbWFrZSBhIHRlcnJpYmxlIHBldC4=" },
-          { "They say that NetHack bugs are Seldon planned.", 
+          { "They say that NetHack bugs are Seldon planned.",
             "VGhleSBzYXkgdGhhdCBOZXRIYWNrIGJ1Z3MgYXJlIFNlbGRvbiBwbGFubmVkLg==" },
-          { "They say that NetHack comes in 256 flavors.", 
+          { "They say that NetHack comes in 256 flavors.",
             "VGhleSBzYXkgdGhhdCBOZXRIYWNrIGNvbWVzIGluIDI1NiBmbGF2b3JzLg==" },
-          { "They say that NetHack is just a computer game.", 
+          { "They say that NetHack is just a computer game.",
             "VGhleSBzYXkgdGhhdCBOZXRIYWNrIGlzIGp1c3QgYSBjb21wdXRlciBnYW1lLg==" },
-          { "They say that NetHack is more than just a computer game.", 
+          { "They say that NetHack is more than just a computer game.",
             "VGhleSBzYXkgdGhhdCBOZXRIYWNrIGlzIG1vcmUgdGhhbiBqdXN0IGEgY29tcHV0ZXIgZ2FtZS4=" },
-          { "They say that NetHack is never what it used to be.", 
+          { "They say that NetHack is never what it used to be.",
             "VGhleSBzYXkgdGhhdCBOZXRIYWNrIGlzIG5ldmVyIHdoYXQgaXQgdXNlZCB0byBiZS4=" },
-          { "They say that a baby dragon is too small to hurt or help you.", 
+          { "They say that a baby dragon is too small to hurt or help you.",
             "VGhleSBzYXkgdGhhdCBhIGJhYnkgZHJhZ29uIGlzIHRvbyBzbWFsbCB0byBodXJ0IG9yIGhlbHAgeW91Lg==" },
-          { "They say that a black pudding is simply a brown pudding gone bad.", 
+          { "They say that a black pudding is simply a brown pudding gone bad.",
             "VGhleSBzYXkgdGhhdCBhIGJsYWNrIHB1ZGRpbmcgaXMgc2ltcGx5IGEgYnJvd24gcHVkZGluZyBnb25lIGJhZC4=" },
-          { "They say that a black sheep has 3 bags full of wool.", 
+          { "They say that a black sheep has 3 bags full of wool.",
             "VGhleSBzYXkgdGhhdCBhIGJsYWNrIHNoZWVwIGhhcyAzIGJhZ3MgZnVsbCBvZiB3b29sLg==" },
-          { "They say that a blank scroll is like a blank check.", 
+          { "They say that a blank scroll is like a blank check.",
             "VGhleSBzYXkgdGhhdCBhIGJsYW5rIHNjcm9sbCBpcyBsaWtlIGEgYmxhbmsgY2hlY2su" },
-          { "They say that a cat named Morris has nine lives.", 
+          { "They say that a cat named Morris has nine lives.",
             "VGhleSBzYXkgdGhhdCBhIGNhdCBuYW1lZCBNb3JyaXMgaGFzIG5pbmUgbGl2ZXMu" },
-          { "They say that a desperate shopper might pay any price in a shop.", 
+          { "They say that a desperate shopper might pay any price in a shop.",
             "VGhleSBzYXkgdGhhdCBhIGRlc3BlcmF0ZSBzaG9wcGVyIG1pZ2h0IHBheSBhbnkgcHJpY2UgaW4gYSBzaG9wLg==" },
-          { "They say that a diamond dog is everybody's best friend.", 
+          { "They say that a diamond dog is everybody's best friend.",
             "VGhleSBzYXkgdGhhdCBhIGRpYW1vbmQgZG9nIGlzIGV2ZXJ5Ym9keSdzIGJlc3QgZnJpZW5kLg==" },
-          { "They say that a dwarf lord can carry a pick-axe because his armor is light.", 
+          { "They say that a dwarf lord can carry a pick-axe because his armor is light.",
             "VGhleSBzYXkgdGhhdCBhIGR3YXJmIGxvcmQgY2FuIGNhcnJ5IGEgcGljay1heGUgYmVjYXVzZSBoaXMgYXJtb3IgaXMgbGlnaHQu" },
-          { "They say that a floating eye can defeat Medusa.", 
+          { "They say that a floating eye can defeat Medusa.",
             "VGhleSBzYXkgdGhhdCBhIGZsb2F0aW5nIGV5ZSBjYW4gZGVmZWF0IE1lZHVzYS4=" },
-          { "They say that a fortune only has 1 line and you can't read between it.", 
+          { "They say that a fortune only has 1 line and you can't read between it.",
             "VGhleSBzYXkgdGhhdCBhIGZvcnR1bmUgb25seSBoYXMgMSBsaW5lIGFuZCB5b3UgY2FuJ3QgcmVhZCBiZXR3ZWVuIGl0Lg==" },
-          { "They say that a fortune only has 1 line, but you can read between it.", 
+          { "They say that a fortune only has 1 line, but you can read between it.",
             "VGhleSBzYXkgdGhhdCBhIGZvcnR1bmUgb25seSBoYXMgMSBsaW5lLCBidXQgeW91IGNhbiByZWFkIGJldHdlZW4gaXQu" },
-          { "They say that a fountain looks nothing like a regularly erupting geyser.", 
+          { "They say that a fountain looks nothing like a regularly erupting geyser.",
             "VGhleSBzYXkgdGhhdCBhIGZvdW50YWluIGxvb2tzIG5vdGhpbmcgbGlrZSBhIHJlZ3VsYXJseSBlcnVwdGluZyBnZXlzZXIu" },
-          { "They say that a gold doubloon is worth more than its weight in gold.", 
+          { "They say that a gold doubloon is worth more than its weight in gold.",
             "VGhleSBzYXkgdGhhdCBhIGdvbGQgZG91Ymxvb24gaXMgd29ydGggbW9yZSB0aGFuIGl0cyB3ZWlnaHQgaW4gZ29sZC4=" },
-          { "They say that a grid bug won't pay a shopkeeper for zapping you in a shop.", 
+          { "They say that a grid bug won't pay a shopkeeper for zapping you in a shop.",
             "VGhleSBzYXkgdGhhdCBhIGdyaWQgYnVnIHdvbid0IHBheSBhIHNob3BrZWVwZXIgZm9yIHphcHBpbmcgeW91IGluIGEgc2hvcC4=" },
-          { "They say that a gypsy could tell your fortune for a price.", 
+          { "They say that a gypsy could tell your fortune for a price.",
             "VGhleSBzYXkgdGhhdCBhIGd5cHN5IGNvdWxkIHRlbGwgeW91ciBmb3J0dW5lIGZvciBhIHByaWNlLg==" },
-          { "They say that a hacker named Alice once level teleported by using a mirror.", 
+          { "They say that a hacker named Alice once level teleported by using a mirror.",
             "VGhleSBzYXkgdGhhdCBhIGhhY2tlciBuYW1lZCBBbGljZSBvbmNlIGxldmVsIHRlbGVwb3J0ZWQgYnkgdXNpbmcgYSBtaXJyb3Iu" },
-          { "They say that a hacker named David once slew a giant with a sling and a rock.", 
+          { "They say that a hacker named David once slew a giant with a sling and a rock.",
             "VGhleSBzYXkgdGhhdCBhIGhhY2tlciBuYW1lZCBEYXZpZCBvbmNlIHNsZXcgYSBnaWFudCB3aXRoIGEgc2xpbmcgYW5kIGEgcm9jay4=" },
-          { "They say that a hacker named Dorothy once rode a fog cloud to Oz.", 
+          { "They say that a hacker named Dorothy once rode a fog cloud to Oz.",
             "VGhleSBzYXkgdGhhdCBhIGhhY2tlciBuYW1lZCBEb3JvdGh5IG9uY2Ugcm9kZSBhIGZvZyBjbG91ZCB0byBPei4=" },
-          { "They say that a hacker named Mary once lost a white sheep in the mazes.", 
+          { "They say that a hacker named Mary once lost a white sheep in the mazes.",
             "VGhleSBzYXkgdGhhdCBhIGhhY2tlciBuYW1lZCBNYXJ5IG9uY2UgbG9zdCBhIHdoaXRlIHNoZWVwIGluIHRoZSBtYXplcy4=" },
-          { "They say that a helm of brilliance is not to be taken lightly.", 
+          { "They say that a helm of brilliance is not to be taken lightly.",
             "VGhleSBzYXkgdGhhdCBhIGhlbG0gb2YgYnJpbGxpYW5jZSBpcyBub3QgdG8gYmUgdGFrZW4gbGlnaHRseS4=" },
-          { "They say that a hot dog and a hell hound are the same thing.", 
+          { "They say that a hot dog and a hell hound are the same thing.",
             "VGhleSBzYXkgdGhhdCBhIGhvdCBkb2cgYW5kIGEgaGVsbCBob3VuZCBhcmUgdGhlIHNhbWUgdGhpbmcu" },
-          { "They say that a lamp named Aladdin's Lamp contains a djinni with 3 wishes.", 
+          { "They say that a lamp named Aladdin's Lamp contains a djinni with 3 wishes.",
             "VGhleSBzYXkgdGhhdCBhIGxhbXAgbmFtZWQgQWxhZGRpbidzIExhbXAgY29udGFpbnMgYSBkamlubmkgd2l0aCAzIHdpc2hlcy4=" },
-          { "They say that a large dog named Lassie will lead you to the amulet.", 
+          { "They say that a large dog named Lassie will lead you to the amulet.",
             "VGhleSBzYXkgdGhhdCBhIGxhcmdlIGRvZyBuYW1lZCBMYXNzaWUgd2lsbCBsZWFkIHlvdSB0byB0aGUgYW11bGV0Lg==" },
-          { "They say that a long sword is not a light sword.", 
+          { "They say that a long sword is not a light sword.",
             "VGhleSBzYXkgdGhhdCBhIGxvbmcgc3dvcmQgaXMgbm90IGEgbGlnaHQgc3dvcmQu" },
-          { "They say that a manes won't mince words with you.", 
+          { "They say that a manes won't mince words with you.",
             "VGhleSBzYXkgdGhhdCBhIG1hbmVzIHdvbid0IG1pbmNlIHdvcmRzIHdpdGggeW91Lg==" },
-          { "They say that a mind is a terrible thing to waste.", 
+          { "They say that a mind is a terrible thing to waste.",
             "VGhleSBzYXkgdGhhdCBhIG1pbmQgaXMgYSB0ZXJyaWJsZSB0aGluZyB0byB3YXN0ZS4=" },
-          { "They say that a plain nymph will only wear a wire ring in one ear.", 
+          { "They say that a plain nymph will only wear a wire ring in one ear.",
             "VGhleSBzYXkgdGhhdCBhIHBsYWluIG55bXBoIHdpbGwgb25seSB3ZWFyIGEgd2lyZSByaW5nIGluIG9uZSBlYXIu" },
-          { "They say that a plumed hat could be a previously used crested helmet.", 
+          { "They say that a plumed hat could be a previously used crested helmet.",
             "VGhleSBzYXkgdGhhdCBhIHBsdW1lZCBoYXQgY291bGQgYmUgYSBwcmV2aW91c2x5IHVzZWQgY3Jlc3RlZCBoZWxtZXQu" },
-          { "They say that a potion of oil is difficult to grasp.", 
+          { "They say that a potion of oil is difficult to grasp.",
             "VGhleSBzYXkgdGhhdCBhIHBvdGlvbiBvZiBvaWwgaXMgZGlmZmljdWx0IHRvIGdyYXNwLg==" },
-          { "They say that a potion of yogurt is a cancelled potion of sickness.", 
+          { "They say that a potion of yogurt is a cancelled potion of sickness.",
             "VGhleSBzYXkgdGhhdCBhIHBvdGlvbiBvZiB5b2d1cnQgaXMgYSBjYW5jZWxsZWQgcG90aW9uIG9mIHNpY2tuZXNzLg==" },
-          { "They say that a purple worm is not a baby purple dragon.", 
+          { "They say that a purple worm is not a baby purple dragon.",
             "VGhleSBzYXkgdGhhdCBhIHB1cnBsZSB3b3JtIGlzIG5vdCBhIGJhYnkgcHVycGxlIGRyYWdvbi4=" },
-          { "They say that a quivering blob tastes different than a gelatinous cube.", 
+          { "They say that a quivering blob tastes different than a gelatinous cube.",
             "VGhleSBzYXkgdGhhdCBhIHF1aXZlcmluZyBibG9iIHRhc3RlcyBkaWZmZXJlbnQgdGhhbiBhIGdlbGF0aW5vdXMgY3ViZS4=" },
-          { "They say that a runed broadsword named Stormbringer attracts vortices.", 
+          { "They say that a runed broadsword named Stormbringer attracts vortices.",
             "VGhleSBzYXkgdGhhdCBhIHJ1bmVkIGJyb2Fkc3dvcmQgbmFtZWQgU3Rvcm1icmluZ2VyIGF0dHJhY3RzIHZvcnRpY2VzLg==" },
-          { "They say that a scroll of summoning has other names.", 
+          { "They say that a scroll of summoning has other names.",
             "VGhleSBzYXkgdGhhdCBhIHNjcm9sbCBvZiBzdW1tb25pbmcgaGFzIG90aGVyIG5hbWVzLg==" },
-          { "They say that a shaman can bestow blessings but usually doesn't.", 
+          { "They say that a shaman can bestow blessings but usually doesn't.",
             "VGhleSBzYXkgdGhhdCBhIHNoYW1hbiBjYW4gYmVzdG93IGJsZXNzaW5ncyBidXQgdXN1YWxseSBkb2Vzbid0Lg==" },
-          { "They say that a shaman will bless you for an eye of newt and wing of bat.", 
+          { "They say that a shaman will bless you for an eye of newt and wing of bat.",
             "VGhleSBzYXkgdGhhdCBhIHNoYW1hbiB3aWxsIGJsZXNzIHlvdSBmb3IgYW4gZXllIG9mIG5ld3QgYW5kIHdpbmcgb2YgYmF0Lg==" },
-          { "They say that a shimmering gold shield is not a polished silver shield.", 
+          { "They say that a shimmering gold shield is not a polished silver shield.",
             "VGhleSBzYXkgdGhhdCBhIHNoaW1tZXJpbmcgZ29sZCBzaGllbGQgaXMgbm90IGEgcG9saXNoZWQgc2lsdmVyIHNoaWVsZC4=" },
-          { "They say that a spear will hit a neo-otyugh. (Do YOU know what that is?)", 
+          { "They say that a spear will hit a neo-otyugh. (Do YOU know what that is?)",
             "VGhleSBzYXkgdGhhdCBhIHNwZWFyIHdpbGwgaGl0IGEgbmVvLW90eXVnaC4gKERvIFlPVSBrbm93IHdoYXQgdGhhdCBpcz8p" },
-          { "They say that a spotted dragon is the ultimate shape changer.", 
+          { "They say that a spotted dragon is the ultimate shape changer.",
             "VGhleSBzYXkgdGhhdCBhIHNwb3R0ZWQgZHJhZ29uIGlzIHRoZSB1bHRpbWF0ZSBzaGFwZSBjaGFuZ2VyLg==" },
-          { "They say that a stethoscope is no good if you can only hear your heartbeat.", 
+          { "They say that a stethoscope is no good if you can only hear your heartbeat.",
             "VGhleSBzYXkgdGhhdCBhIHN0ZXRob3Njb3BlIGlzIG5vIGdvb2QgaWYgeW91IGNhbiBvbmx5IGhlYXIgeW91ciBoZWFydGJlYXQu" },
-          { "They say that a succubus named Suzy will sometimes warn you of danger.", 
+          { "They say that a succubus named Suzy will sometimes warn you of danger.",
             "VGhleSBzYXkgdGhhdCBhIHN1Y2N1YnVzIG5hbWVkIFN1enkgd2lsbCBzb21ldGltZXMgd2FybiB5b3Ugb2YgZGFuZ2VyLg==" },
-          { "They say that a wand of cancellation is not like a wand of polymorph.", 
+          { "They say that a wand of cancellation is not like a wand of polymorph.",
             "VGhleSBzYXkgdGhhdCBhIHdhbmQgb2YgY2FuY2VsbGF0aW9uIGlzIG5vdCBsaWtlIGEgd2FuZCBvZiBwb2x5bW9ycGgu" },
-          { "They say that a wood golem named Pinocchio would be easy to control.", 
+          { "They say that a wood golem named Pinocchio would be easy to control.",
             "VGhleSBzYXkgdGhhdCBhIHdvb2QgZ29sZW0gbmFtZWQgUGlub2NjaGlvIHdvdWxkIGJlIGVhc3kgdG8gY29udHJvbC4=" },
-          { "They say that after killing a dragon it's time for a change of scenery.", 
+          { "They say that after killing a dragon it's time for a change of scenery.",
             "VGhleSBzYXkgdGhhdCBhZnRlciBraWxsaW5nIGEgZHJhZ29uIGl0J3MgdGltZSBmb3IgYSBjaGFuZ2Ugb2Ygc2NlbmVyeS4=" },
-          { "They say that an amulet of strangulation is worse than ring around the collar.", 
+          { "They say that an amulet of strangulation is worse than ring around the collar.",
             "VGhleSBzYXkgdGhhdCBhbiBhbXVsZXQgb2Ygc3RyYW5ndWxhdGlvbiBpcyB3b3JzZSB0aGFuIHJpbmcgYXJvdW5kIHRoZSBjb2xsYXIu" },
-          { "They say that an attic is the best place to hide your toys.", 
+          { "They say that an attic is the best place to hide your toys.",
             "VGhleSBzYXkgdGhhdCBhbiBhdHRpYyBpcyB0aGUgYmVzdCBwbGFjZSB0byBoaWRlIHlvdXIgdG95cy4=" },
-          { "They say that an axe named Cleaver once belonged to a hacker named Beaver.", 
+          { "They say that an axe named Cleaver once belonged to a hacker named Beaver.",
             "VGhleSBzYXkgdGhhdCBhbiBheGUgbmFtZWQgQ2xlYXZlciBvbmNlIGJlbG9uZ2VkIHRvIGEgaGFja2VyIG5hbWVkIEJlYXZlci4=" },
-          { "They say that an eye of newt and a wing of bat are double the trouble.", 
+          { "They say that an eye of newt and a wing of bat are double the trouble.",
             "VGhleSBzYXkgdGhhdCBhbiBleWUgb2YgbmV3dCBhbmQgYSB3aW5nIG9mIGJhdCBhcmUgZG91YmxlIHRoZSB0cm91YmxlLg==" },
-          { "They say that an incubus named Izzy sometimes makes women feel sensitive.", 
+          { "They say that an incubus named Izzy sometimes makes women feel sensitive.",
             "VGhleSBzYXkgdGhhdCBhbiBpbmN1YnVzIG5hbWVkIEl6enkgc29tZXRpbWVzIG1ha2VzIHdvbWVuIGZlZWwgc2Vuc2l0aXZlLg==" },
-          { "They say that an opulent throne room is rarely a place to wish you'd be in.", 
+          { "They say that an opulent throne room is rarely a place to wish you'd be in.",
             "VGhleSBzYXkgdGhhdCBhbiBvcHVsZW50IHRocm9uZSByb29tIGlzIHJhcmVseSBhIHBsYWNlIHRvIHdpc2ggeW91J2QgYmUgaW4u" },
-          { "They say that an unlucky hacker once had a nose bleed at an altar and died.", 
+          { "They say that an unlucky hacker once had a nose bleed at an altar and died.",
             "VGhleSBzYXkgdGhhdCBhbiB1bmx1Y2t5IGhhY2tlciBvbmNlIGhhZCBhIG5vc2UgYmxlZWQgYXQgYW4gYWx0YXIgYW5kIGRpZWQu" },
-          { "They say that and they say this but they never say never, never!", 
+          { "They say that and they say this but they never say never, never!",
             "VGhleSBzYXkgdGhhdCBhbmQgdGhleSBzYXkgdGhpcyBidXQgdGhleSBuZXZlciBzYXkgbmV2ZXIsIG5ldmVyIQ==" },
-          { "They say that any quantum mechanic knows that speed kills.", 
+          { "They say that any quantum mechanic knows that speed kills.",
             "VGhleSBzYXkgdGhhdCBhbnkgcXVhbnR1bSBtZWNoYW5pYyBrbm93cyB0aGF0IHNwZWVkIGtpbGxzLg==" },
-          { "They say that applying a unicorn horn means you've missed the point.", 
+          { "They say that applying a unicorn horn means you've missed the point.",
             "VGhleSBzYXkgdGhhdCBhcHBseWluZyBhIHVuaWNvcm4gaG9ybiBtZWFucyB5b3UndmUgbWlzc2VkIHRoZSBwb2ludC4=" },
-          { "They say that blue stones are radioactive, beware.", 
+          { "They say that blue stones are radioactive, beware.",
             "VGhleSBzYXkgdGhhdCBibHVlIHN0b25lcyBhcmUgcmFkaW9hY3RpdmUsIGJld2FyZS4=" },
-          { "They say that building a dungeon is a team effort.", 
+          { "They say that building a dungeon is a team effort.",
             "VGhleSBzYXkgdGhhdCBidWlsZGluZyBhIGR1bmdlb24gaXMgYSB0ZWFtIGVmZm9ydC4=" },
-          { "They say that chaotic characters never get a kick out of altars.", 
+          { "They say that chaotic characters never get a kick out of altars.",
             "VGhleSBzYXkgdGhhdCBjaGFvdGljIGNoYXJhY3RlcnMgbmV2ZXIgZ2V0IGEga2ljayBvdXQgb2YgYWx0YXJzLg==" },
-          { "They say that collapsing a dungeon often creates a panic.", 
+          { "They say that collapsing a dungeon often creates a panic.",
             "VGhleSBzYXkgdGhhdCBjb2xsYXBzaW5nIGEgZHVuZ2VvbiBvZnRlbiBjcmVhdGVzIGEgcGFuaWMu" },
-          { "They say that counting your eggs before they hatch shows that you care.", 
+          { "They say that counting your eggs before they hatch shows that you care.",
             "VGhleSBzYXkgdGhhdCBjb3VudGluZyB5b3VyIGVnZ3MgYmVmb3JlIHRoZXkgaGF0Y2ggc2hvd3MgdGhhdCB5b3UgY2FyZS4=" },
-          { "They say that dipping a bag of tricks in a fountain won't make it an icebox.", 
+          { "They say that dipping a bag of tricks in a fountain won't make it an icebox.",
             "VGhleSBzYXkgdGhhdCBkaXBwaW5nIGEgYmFnIG9mIHRyaWNrcyBpbiBhIGZvdW50YWluIHdvbid0IG1ha2UgaXQgYW4gaWNlYm94Lg==" },
-          { "They say that dipping an eel and brown mold in hot water makes bouillabaisse.", 
+          { "They say that dipping an eel and brown mold in hot water makes bouillabaisse.",
             "VGhleSBzYXkgdGhhdCBkaXBwaW5nIGFuIGVlbCBhbmQgYnJvd24gbW9sZCBpbiBob3Qgd2F0ZXIgbWFrZXMgYm91aWxsYWJhaXNzZS4=" },
-          { "They say that donating a doubloon is extremely pious charity.", 
+          { "They say that donating a doubloon is extremely pious charity.",
             "VGhleSBzYXkgdGhhdCBkb25hdGluZyBhIGRvdWJsb29uIGlzIGV4dHJlbWVseSBwaW91cyBjaGFyaXR5Lg==" },
-          { "They say that eating royal jelly attracts grizzly owlbears.", 
+          { "They say that eating royal jelly attracts grizzly owlbears.",
             "VGhleSBzYXkgdGhhdCBlYXRpbmcgcm95YWwgamVsbHkgYXR0cmFjdHMgZ3JpenpseSBvd2xiZWFycy4=" },
-          { "They say that eggs, pancakes and juice are just a mundane breakfast.", 
+          { "They say that eggs, pancakes and juice are just a mundane breakfast.",
             "VGhleSBzYXkgdGhhdCBlZ2dzLCBwYW5jYWtlcyBhbmQganVpY2UgYXJlIGp1c3QgYSBtdW5kYW5lIGJyZWFrZmFzdC4=" },
-          { "They say that everyone knows why Medusa stands alone in the dark.", 
+          { "They say that everyone knows why Medusa stands alone in the dark.",
             "VGhleSBzYXkgdGhhdCBldmVyeW9uZSBrbm93cyB3aHkgTWVkdXNhIHN0YW5kcyBhbG9uZSBpbiB0aGUgZGFyay4=" },
-          { "They say that everyone wanted rec.games.hack to undergo a name change.", 
+          { "They say that everyone wanted rec.games.hack to undergo a name change.",
             "VGhleSBzYXkgdGhhdCBldmVyeW9uZSB3YW50ZWQgcmVjLmdhbWVzLmhhY2sgdG8gdW5kZXJnbyBhIG5hbWUgY2hhbmdlLg==" },
-          { "They say that finding a winning strategy is a deliberate move on your part.", 
+          { "They say that finding a winning strategy is a deliberate move on your part.",
             "VGhleSBzYXkgdGhhdCBmaW5kaW5nIGEgd2lubmluZyBzdHJhdGVneSBpcyBhIGRlbGliZXJhdGUgbW92ZSBvbiB5b3VyIHBhcnQu" },
-          { "They say that finding worthless glass is worth something.", 
+          { "They say that finding worthless glass is worth something.",
             "VGhleSBzYXkgdGhhdCBmaW5kaW5nIHdvcnRobGVzcyBnbGFzcyBpcyB3b3J0aCBzb21ldGhpbmcu" },
-          { "They say that fortune cookies are food for thought.", 
+          { "They say that fortune cookies are food for thought.",
             "VGhleSBzYXkgdGhhdCBmb3J0dW5lIGNvb2tpZXMgYXJlIGZvb2QgZm9yIHRob3VnaHQu" },
-          { "They say that gold is only wasted on a pet dragon.", 
+          { "They say that gold is only wasted on a pet dragon.",
             "VGhleSBzYXkgdGhhdCBnb2xkIGlzIG9ubHkgd2FzdGVkIG9uIGEgcGV0IGRyYWdvbi4=" },
-          { "They say that good things come to those that wait.", 
+          { "They say that good things come to those that wait.",
             "VGhleSBzYXkgdGhhdCBnb29kIHRoaW5ncyBjb21lIHRvIHRob3NlIHRoYXQgd2FpdC4=" },
-          { "They say that greased objects will slip out of monsters' hands.", 
+          { "They say that greased objects will slip out of monsters' hands.",
             "VGhleSBzYXkgdGhhdCBncmVhc2VkIG9iamVjdHMgd2lsbCBzbGlwIG91dCBvZiBtb25zdGVycycgaGFuZHMu" },
-          { "They say that if you can't spell then you'll wish you had a spell book.", 
+          { "They say that if you can't spell then you'll wish you had a spell book.",
             "VGhleSBzYXkgdGhhdCBpZiB5b3UgY2FuJ3Qgc3BlbGwgdGhlbiB5b3UnbGwgd2lzaCB5b3UgaGFkIGEgc3BlbGwgYm9vay4=" },
-          { "They say that if you live by the sword, you'll die by the sword.", 
+          { "They say that if you live by the sword, you'll die by the sword.",
             "VGhleSBzYXkgdGhhdCBpZiB5b3UgbGl2ZSBieSB0aGUgc3dvcmQsIHlvdSdsbCBkaWUgYnkgdGhlIHN3b3JkLg==" },
-          { "They say that if you play like a monster you'll have a better game.", 
+          { "They say that if you play like a monster you'll have a better game.",
             "VGhleSBzYXkgdGhhdCBpZiB5b3UgcGxheSBsaWtlIGEgbW9uc3RlciB5b3UnbGwgaGF2ZSBhIGJldHRlciBnYW1lLg==" },
-          { "They say that if you sleep with a demon you might awake with a headache.", 
+          { "They say that if you sleep with a demon you might awake with a headache.",
             "VGhleSBzYXkgdGhhdCBpZiB5b3Ugc2xlZXAgd2l0aCBhIGRlbW9uIHlvdSBtaWdodCBhd2FrZSB3aXRoIGEgaGVhZGFjaGUu" },
-          { "They say that if you step on a crack you could break your mother's back.", 
+          { "They say that if you step on a crack you could break your mother's back.",
             "VGhleSBzYXkgdGhhdCBpZiB5b3Ugc3RlcCBvbiBhIGNyYWNrIHlvdSBjb3VsZCBicmVhayB5b3VyIG1vdGhlcidzIGJhY2su" },
-          { "They say that if you're invisible you can still be heard!", 
+          { "They say that if you're invisible you can still be heard!",
             "VGhleSBzYXkgdGhhdCBpZiB5b3UncmUgaW52aXNpYmxlIHlvdSBjYW4gc3RpbGwgYmUgaGVhcmQh" },
-          { "They say that if you're lucky you can feel the runes on a scroll.", 
+          { "They say that if you're lucky you can feel the runes on a scroll.",
             "VGhleSBzYXkgdGhhdCBpZiB5b3UncmUgbHVja3kgeW91IGNhbiBmZWVsIHRoZSBydW5lcyBvbiBhIHNjcm9sbC4=" },
-          { "They say that in the big picture gold is only small change.", 
+          { "They say that in the big picture gold is only small change.",
             "VGhleSBzYXkgdGhhdCBpbiB0aGUgYmlnIHBpY3R1cmUgZ29sZCBpcyBvbmx5IHNtYWxsIGNoYW5nZS4=" },
-          { "They say that in the dungeon it's not what you know that really matters.", 
+          { "They say that in the dungeon it's not what you know that really matters.",
             "VGhleSBzYXkgdGhhdCBpbiB0aGUgZHVuZ2VvbiBpdCdzIG5vdCB3aGF0IHlvdSBrbm93IHRoYXQgcmVhbGx5IG1hdHRlcnMu" },
-          { "They say that in the dungeon moon rocks are really dilithium crystals.", 
+          { "They say that in the dungeon moon rocks are really dilithium crystals.",
             "VGhleSBzYXkgdGhhdCBpbiB0aGUgZHVuZ2VvbiBtb29uIHJvY2tzIGFyZSByZWFsbHkgZGlsaXRoaXVtIGNyeXN0YWxzLg==" },
-          { "They say that in the dungeon the boorish customer is never right.", 
+          { "They say that in the dungeon the boorish customer is never right.",
             "VGhleSBzYXkgdGhhdCBpbiB0aGUgZHVuZ2VvbiB0aGUgYm9vcmlzaCBjdXN0b21lciBpcyBuZXZlciByaWdodC4=" },
-          { "They say that in the dungeon you don't need a watch to tell time.", 
+          { "They say that in the dungeon you don't need a watch to tell time.",
             "VGhleSBzYXkgdGhhdCBpbiB0aGUgZHVuZ2VvbiB5b3UgZG9uJ3QgbmVlZCBhIHdhdGNoIHRvIHRlbGwgdGltZS4=" },
-          { "They say that in the dungeon you need something old, new, burrowed and blue.", 
+          { "They say that in the dungeon you need something old, new, burrowed and blue.",
             "VGhleSBzYXkgdGhhdCBpbiB0aGUgZHVuZ2VvbiB5b3UgbmVlZCBzb21ldGhpbmcgb2xkLCBuZXcsIGJ1cnJvd2VkIGFuZCBibHVlLg==" },
-          { "They say that in the dungeon you should always count your blessings.", 
+          { "They say that in the dungeon you should always count your blessings.",
             "VGhleSBzYXkgdGhhdCBpbiB0aGUgZHVuZ2VvbiB5b3Ugc2hvdWxkIGFsd2F5cyBjb3VudCB5b3VyIGJsZXNzaW5ncy4=" },
-          { "They say that iron golem plate mail isn't worth wishing for.", 
+          { "They say that iron golem plate mail isn't worth wishing for.",
             "VGhleSBzYXkgdGhhdCBpcm9uIGdvbGVtIHBsYXRlIG1haWwgaXNuJ3Qgd29ydGggd2lzaGluZyBmb3Iu" },
-          { "They say that it takes four quarterstaffs to make one staff.", 
+          { "They say that it takes four quarterstaffs to make one staff.",
             "VGhleSBzYXkgdGhhdCBpdCB0YWtlcyBmb3VyIHF1YXJ0ZXJzdGFmZnMgdG8gbWFrZSBvbmUgc3RhZmYu" },
-          { "They say that it's not over till the fat ladies sing.", 
+          { "They say that it's not over till the fat ladies sing.",
             "VGhleSBzYXkgdGhhdCBpdCdzIG5vdCBvdmVyIHRpbGwgdGhlIGZhdCBsYWRpZXMgc2luZy4=" },
-          { "They say that it's not over till the fat lady shouts `Off with its head'.", 
+          { "They say that it's not over till the fat lady shouts `Off with its head'.",
             "VGhleSBzYXkgdGhhdCBpdCdzIG5vdCBvdmVyIHRpbGwgdGhlIGZhdCBsYWR5IHNob3V0cyBgT2ZmIHdpdGggaXRzIGhlYWQnLg==" },
-          { "They say that kicking a heavy statue is really a dumb move.", 
+          { "They say that kicking a heavy statue is really a dumb move.",
             "VGhleSBzYXkgdGhhdCBraWNraW5nIGEgaGVhdnkgc3RhdHVlIGlzIHJlYWxseSBhIGR1bWIgbW92ZS4=" },
-          { "They say that kicking a valuable gem doesn't seem to make sense.", 
+          { "They say that kicking a valuable gem doesn't seem to make sense.",
             "VGhleSBzYXkgdGhhdCBraWNraW5nIGEgdmFsdWFibGUgZ2VtIGRvZXNuJ3Qgc2VlbSB0byBtYWtlIHNlbnNlLg==" },
-          { "They say that leprechauns know Latin and you should too.", 
+          { "They say that leprechauns know Latin and you should too.",
             "VGhleSBzYXkgdGhhdCBsZXByZWNoYXVucyBrbm93IExhdGluIGFuZCB5b3Ugc2hvdWxkIHRvby4=" },
-          { "They say that minotaurs get lost outside of the mazes.", 
+          { "They say that minotaurs get lost outside of the mazes.",
             "VGhleSBzYXkgdGhhdCBtaW5vdGF1cnMgZ2V0IGxvc3Qgb3V0c2lkZSBvZiB0aGUgbWF6ZXMu" },
-          { "They say that most trolls are born again.", 
+          { "They say that most trolls are born again.",
             "VGhleSBzYXkgdGhhdCBtb3N0IHRyb2xscyBhcmUgYm9ybiBhZ2Fpbi4=" },
-          { "They say that naming your cat Garfield will make you more attractive.", 
+          { "They say that naming your cat Garfield will make you more attractive.",
             "VGhleSBzYXkgdGhhdCBuYW1pbmcgeW91ciBjYXQgR2FyZmllbGQgd2lsbCBtYWtlIHlvdSBtb3JlIGF0dHJhY3RpdmUu" },
-          { "They say that no one knows everything about everything in the dungeon.", 
+          { "They say that no one knows everything about everything in the dungeon.",
             "VGhleSBzYXkgdGhhdCBubyBvbmUga25vd3MgZXZlcnl0aGluZyBhYm91dCBldmVyeXRoaW5nIGluIHRoZSBkdW5nZW9uLg==" },
-          { "They say that no one plays NetHack just for the fun of it.", 
+          { "They say that no one plays NetHack just for the fun of it.",
             "VGhleSBzYXkgdGhhdCBubyBvbmUgcGxheXMgTmV0SGFjayBqdXN0IGZvciB0aGUgZnVuIG9mIGl0Lg==" },
-          { "They say that no one really subscribes to rec.games.roguelike.nethack.", 
+          { "They say that no one really subscribes to rec.games.roguelike.nethack.",
             "VGhleSBzYXkgdGhhdCBubyBvbmUgcmVhbGx5IHN1YnNjcmliZXMgdG8gcmVjLmdhbWVzLnJvZ3VlbGlrZS5uZXRoYWNrLg==" },
-          { "They say that no one will admit to starting a rumor.", 
+          { "They say that no one will admit to starting a rumor.",
             "VGhleSBzYXkgdGhhdCBubyBvbmUgd2lsbCBhZG1pdCB0byBzdGFydGluZyBhIHJ1bW9yLg==" },
-          { "They say that nurses sometimes carry scalpels and never use them.", 
+          { "They say that nurses sometimes carry scalpels and never use them.",
             "VGhleSBzYXkgdGhhdCBudXJzZXMgc29tZXRpbWVzIGNhcnJ5IHNjYWxwZWxzIGFuZCBuZXZlciB1c2UgdGhlbS4=" },
-          { "They say that once you've met one wizard you've met them all.", 
+          { "They say that once you've met one wizard you've met them all.",
             "VGhleSBzYXkgdGhhdCBvbmNlIHlvdSd2ZSBtZXQgb25lIHdpemFyZCB5b3UndmUgbWV0IHRoZW0gYWxsLg==" },
-          { "They say that one troll is worth 10,000 newts.", 
+          { "They say that one troll is worth 10,000 newts.",
             "VGhleSBzYXkgdGhhdCBvbmUgdHJvbGwgaXMgd29ydGggMTAsMDAwIG5ld3RzLg==" },
-          { "They say that only David can find the zoo!", 
+          { "They say that only David can find the zoo!",
             "VGhleSBzYXkgdGhhdCBvbmx5IERhdmlkIGNhbiBmaW5kIHRoZSB6b28h" },
-          { "They say that only angels play their harps for their pets.", 
+          { "They say that only angels play their harps for their pets.",
             "VGhleSBzYXkgdGhhdCBvbmx5IGFuZ2VscyBwbGF5IHRoZWlyIGhhcnBzIGZvciB0aGVpciBwZXRzLg==" },
-          { "They say that only big spenders carry gold.", 
+          { "They say that only big spenders carry gold.",
             "VGhleSBzYXkgdGhhdCBvbmx5IGJpZyBzcGVuZGVycyBjYXJyeSBnb2xkLg==" },
-          { "They say that orc shamans are healthy, wealthy and wise.", 
+          { "They say that orc shamans are healthy, wealthy and wise.",
             "VGhleSBzYXkgdGhhdCBvcmMgc2hhbWFucyBhcmUgaGVhbHRoeSwgd2VhbHRoeSBhbmQgd2lzZS4=" },
-          { "They say that playing NetHack is like walking into a death trap.", 
+          { "They say that playing NetHack is like walking into a death trap.",
             "VGhleSBzYXkgdGhhdCBwbGF5aW5nIE5ldEhhY2sgaXMgbGlrZSB3YWxraW5nIGludG8gYSBkZWF0aCB0cmFwLg==" },
-          { "They say that problem breathing is best treated by a proper diet.", 
+          { "They say that problem breathing is best treated by a proper diet.",
             "VGhleSBzYXkgdGhhdCBwcm9ibGVtIGJyZWF0aGluZyBpcyBiZXN0IHRyZWF0ZWQgYnkgYSBwcm9wZXIgZGlldC4=" },
-          { "They say that quaffing many potions of levitation can give you a headache.", 
+          { "They say that quaffing many potions of levitation can give you a headache.",
             "VGhleSBzYXkgdGhhdCBxdWFmZmluZyBtYW55IHBvdGlvbnMgb2YgbGV2aXRhdGlvbiBjYW4gZ2l2ZSB5b3UgYSBoZWFkYWNoZS4=" },
-          { "They say that queen bees get that way by eating royal jelly.", 
+          { "They say that queen bees get that way by eating royal jelly.",
             "VGhleSBzYXkgdGhhdCBxdWVlbiBiZWVzIGdldCB0aGF0IHdheSBieSBlYXRpbmcgcm95YWwgamVsbHku" },
-          { "They say that reading a scare monster scroll is the same as saying Elbereth.", 
+          { "They say that reading a scare monster scroll is the same as saying Elbereth.",
             "VGhleSBzYXkgdGhhdCByZWFkaW5nIGEgc2NhcmUgbW9uc3RlciBzY3JvbGwgaXMgdGhlIHNhbWUgYXMgc2F5aW5nIEVsYmVyZXRoLg==" },
-          { "They say that real hackers always are controlled.", 
+          { "They say that real hackers always are controlled.",
             "VGhleSBzYXkgdGhhdCByZWFsIGhhY2tlcnMgYWx3YXlzIGFyZSBjb250cm9sbGVkLg==" },
-          { "They say that real hackers never sleep.", 
+          { "They say that real hackers never sleep.",
             "VGhleSBzYXkgdGhhdCByZWFsIGhhY2tlcnMgbmV2ZXIgc2xlZXAu" },
-          { "They say that shopkeepers are insured by Croesus himself!", 
+          { "They say that shopkeepers are insured by Croesus himself!",
             "VGhleSBzYXkgdGhhdCBzaG9wa2VlcGVycyBhcmUgaW5zdXJlZCBieSBDcm9lc3VzIGhpbXNlbGYh" },
-          { "They say that shopkeepers never carry more than 20 gold pieces, at night.", 
+          { "They say that shopkeepers never carry more than 20 gold pieces, at night.",
             "VGhleSBzYXkgdGhhdCBzaG9wa2VlcGVycyBuZXZlciBjYXJyeSBtb3JlIHRoYW4gMjAgZ29sZCBwaWVjZXMsIGF0IG5pZ2h0Lg==" },
-          { "They say that shopkeepers never sell blessed potions of invisibility.", 
+          { "They say that shopkeepers never sell blessed potions of invisibility.",
             "VGhleSBzYXkgdGhhdCBzaG9wa2VlcGVycyBuZXZlciBzZWxsIGJsZXNzZWQgcG90aW9ucyBvZiBpbnZpc2liaWxpdHku" },
-          { "They say that soldiers wear kid gloves and silly helmets.", 
+          { "They say that soldiers wear kid gloves and silly helmets.",
             "VGhleSBzYXkgdGhhdCBzb2xkaWVycyB3ZWFyIGtpZCBnbG92ZXMgYW5kIHNpbGx5IGhlbG1ldHMu" },
-          { "They say that some Kops are on the take.", 
+          { "They say that some Kops are on the take.",
             "VGhleSBzYXkgdGhhdCBzb21lIEtvcHMgYXJlIG9uIHRoZSB0YWtlLg==" },
-          { "They say that some guards' palms can be greased.", 
+          { "They say that some guards' palms can be greased.",
             "VGhleSBzYXkgdGhhdCBzb21lIGd1YXJkcycgcGFsbXMgY2FuIGJlIGdyZWFzZWQu" },
-          { "They say that some monsters may kiss your boots to stop your drum playing.", 
+          { "They say that some monsters may kiss your boots to stop your drum playing.",
             "VGhleSBzYXkgdGhhdCBzb21lIG1vbnN0ZXJzIG1heSBraXNzIHlvdXIgYm9vdHMgdG8gc3RvcCB5b3VyIGRydW0gcGxheWluZy4=" },
-          { "They say that sometimes you can be the hit of the party when playing a horn.", 
+          { "They say that sometimes you can be the hit of the party when playing a horn.",
             "VGhleSBzYXkgdGhhdCBzb21ldGltZXMgeW91IGNhbiBiZSB0aGUgaGl0IG9mIHRoZSBwYXJ0eSB3aGVuIHBsYXlpbmcgYSBob3JuLg==" },
-          { "They say that the NetHack gods generally welcome your sacrifices.", 
+          { "They say that the NetHack gods generally welcome your sacrifices.",
             "VGhleSBzYXkgdGhhdCB0aGUgTmV0SGFjayBnb2RzIGdlbmVyYWxseSB3ZWxjb21lIHlvdXIgc2FjcmlmaWNlcy4=" },
-          { "They say that the Three Rings are named Vilya, Nenya and Narya.", 
+          { "They say that the Three Rings are named Vilya, Nenya and Narya.",
             "VGhleSBzYXkgdGhhdCB0aGUgVGhyZWUgUmluZ3MgYXJlIG5hbWVkIFZpbHlhLCBOZW55YSBhbmQgTmFyeWEu" },
-          { "They say that the Wizard of Yendor has a death wish.", 
+          { "They say that the Wizard of Yendor has a death wish.",
             "VGhleSBzYXkgdGhhdCB0aGUgV2l6YXJkIG9mIFllbmRvciBoYXMgYSBkZWF0aCB3aXNoLg==" },
-          { "They say that the `hair of the dog' is sometimes an effective remedy.", 
+          { "They say that the `hair of the dog' is sometimes an effective remedy.",
             "VGhleSBzYXkgdGhhdCB0aGUgYGhhaXIgb2YgdGhlIGRvZycgaXMgc29tZXRpbWVzIGFuIGVmZmVjdGl2ZSByZW1lZHku" },
-          { "They say that the best time to save your game is now before its too late.", 
+          { "They say that the best time to save your game is now before its too late.",
             "VGhleSBzYXkgdGhhdCB0aGUgYmVzdCB0aW1lIHRvIHNhdmUgeW91ciBnYW1lIGlzIG5vdyBiZWZvcmUgaXRzIHRvbyBsYXRlLg==" },
-          { "They say that the biggest obstacle in NetHack is your mind.", 
+          { "They say that the biggest obstacle in NetHack is your mind.",
             "VGhleSBzYXkgdGhhdCB0aGUgYmlnZ2VzdCBvYnN0YWNsZSBpbiBOZXRIYWNrIGlzIHlvdXIgbWluZC4=" },
-          { "They say that the gods are angry when they hit you with objects.", 
+          { "They say that the gods are angry when they hit you with objects.",
             "VGhleSBzYXkgdGhhdCB0aGUgZ29kcyBhcmUgYW5ncnkgd2hlbiB0aGV5IGhpdCB5b3Ugd2l0aCBvYmplY3RzLg==" },
-          { "They say that the priesthood are specially favored by the gods.", 
+          { "They say that the priesthood are specially favored by the gods.",
             "VGhleSBzYXkgdGhhdCB0aGUgcHJpZXN0aG9vZCBhcmUgc3BlY2lhbGx5IGZhdm9yZWQgYnkgdGhlIGdvZHMu" },
-          { "They say that the way to make a unicorn happy is to give it what it wants.", 
+          { "They say that the way to make a unicorn happy is to give it what it wants.",
             "VGhleSBzYXkgdGhhdCB0aGUgd2F5IHRvIG1ha2UgYSB1bmljb3JuIGhhcHB5IGlzIHRvIGdpdmUgaXQgd2hhdCBpdCB3YW50cy4=" },
-          { "They say that there are no black or white stones, only gray.", 
+          { "They say that there are no black or white stones, only gray.",
             "VGhleSBzYXkgdGhhdCB0aGVyZSBhcmUgbm8gYmxhY2sgb3Igd2hpdGUgc3RvbmVzLCBvbmx5IGdyYXku" },
-          { "They say that there are no skeletons hence there are no skeleton keys.", 
+          { "They say that there are no skeletons hence there are no skeleton keys.",
             "VGhleSBzYXkgdGhhdCB0aGVyZSBhcmUgbm8gc2tlbGV0b25zIGhlbmNlIHRoZXJlIGFyZSBubyBza2VsZXRvbiBrZXlzLg==" },
-          { "They say that there is a clever rogue in every hacker just dying to escape.", 
+          { "They say that there is a clever rogue in every hacker just dying to escape.",
             "VGhleSBzYXkgdGhhdCB0aGVyZSBpcyBhIGNsZXZlciByb2d1ZSBpbiBldmVyeSBoYWNrZXIganVzdCBkeWluZyB0byBlc2NhcGUu" },
-          { "They say that there is no such thing as free advice.", 
+          { "They say that there is no such thing as free advice.",
             "VGhleSBzYXkgdGhhdCB0aGVyZSBpcyBubyBzdWNoIHRoaW5nIGFzIGZyZWUgYWR2aWNlLg==" },
-          { "They say that there is only one way to win at NetHack.", 
+          { "They say that there is only one way to win at NetHack.",
             "VGhleSBzYXkgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSB3YXkgdG8gd2luIGF0IE5ldEhhY2su" },
-          { "They say that there once was a fearsome chaotic samurai named Luk No.", 
+          { "They say that there once was a fearsome chaotic samurai named Luk No.",
             "VGhleSBzYXkgdGhhdCB0aGVyZSBvbmNlIHdhcyBhIGZlYXJzb21lIGNoYW90aWMgc2FtdXJhaSBuYW1lZCBMdWsgTm8u" },
-          { "They say that there was a time when cursed holy water wasn't water.", 
+          { "They say that there was a time when cursed holy water wasn't water.",
             "VGhleSBzYXkgdGhhdCB0aGVyZSB3YXMgYSB0aW1lIHdoZW4gY3Vyc2VkIGhvbHkgd2F0ZXIgd2Fzbid0IHdhdGVyLg==" },
-          { "They say that there's no point in crying over a gray ooze.", 
+          { "They say that there's no point in crying over a gray ooze.",
             "VGhleSBzYXkgdGhhdCB0aGVyZSdzIG5vIHBvaW50IGluIGNyeWluZyBvdmVyIGEgZ3JheSBvb3plLg==" },
-          { "They say that there's only hope left after you've opened Pandora's box.", 
+          { "They say that there's only hope left after you've opened Pandora's box.",
             "VGhleSBzYXkgdGhhdCB0aGVyZSdzIG9ubHkgaG9wZSBsZWZ0IGFmdGVyIHlvdSd2ZSBvcGVuZWQgUGFuZG9yYSdzIGJveC4=" },
-          { "They say that trapdoors should always be marked `Caution: Trap Door'.", 
+          { "They say that trapdoors should always be marked `Caution: Trap Door'.",
             "VGhleSBzYXkgdGhhdCB0cmFwZG9vcnMgc2hvdWxkIGFsd2F5cyBiZSBtYXJrZWQgYENhdXRpb246IFRyYXAgRG9vcicu" },
-          { "They say that using an amulet of change isn't a difficult operation.", 
+          { "They say that using an amulet of change isn't a difficult operation.",
             "VGhleSBzYXkgdGhhdCB1c2luZyBhbiBhbXVsZXQgb2YgY2hhbmdlIGlzbid0IGEgZGlmZmljdWx0IG9wZXJhdGlvbi4=" },
-          { "They say that water walking boots are better if you are fast like Hermes.", 
+          { "They say that water walking boots are better if you are fast like Hermes.",
             "VGhleSBzYXkgdGhhdCB3YXRlciB3YWxraW5nIGJvb3RzIGFyZSBiZXR0ZXIgaWYgeW91IGFyZSBmYXN0IGxpa2UgSGVybWVzLg==" },
-          { "They say that when you wear a circular amulet you might resemble a troll.", 
+          { "They say that when you wear a circular amulet you might resemble a troll.",
             "VGhleSBzYXkgdGhhdCB3aGVuIHlvdSB3ZWFyIGEgY2lyY3VsYXIgYW11bGV0IHlvdSBtaWdodCByZXNlbWJsZSBhIHRyb2xsLg==" },
-          { "They say that when you're hungry you can get a pizza in 30 moves or it's free.", 
+          { "They say that when you're hungry you can get a pizza in 30 moves or it's free.",
             "VGhleSBzYXkgdGhhdCB3aGVuIHlvdSdyZSBodW5ncnkgeW91IGNhbiBnZXQgYSBwaXp6YSBpbiAzMCBtb3ZlcyBvciBpdCdzIGZyZWUu" },
-          { "They say that when your god is angry you should try another one.", 
+          { "They say that when your god is angry you should try another one.",
             "VGhleSBzYXkgdGhhdCB3aGVuIHlvdXIgZ29kIGlzIGFuZ3J5IHlvdSBzaG91bGQgdHJ5IGFub3RoZXIgb25lLg==" },
-          { "They say that wielding a unicorn horn takes strength.", 
+          { "They say that wielding a unicorn horn takes strength.",
             "VGhleSBzYXkgdGhhdCB3aWVsZGluZyBhIHVuaWNvcm4gaG9ybiB0YWtlcyBzdHJlbmd0aC4=" },
-          { "They say that with speed boots you never worry about hit and run accidents.", 
+          { "They say that with speed boots you never worry about hit and run accidents.",
             "VGhleSBzYXkgdGhhdCB3aXRoIHNwZWVkIGJvb3RzIHlvdSBuZXZlciB3b3JyeSBhYm91dCBoaXQgYW5kIHJ1biBhY2NpZGVudHMu" },
-          { "They say that you can defeat a killer bee with a unicorn horn.", 
+          { "They say that you can defeat a killer bee with a unicorn horn.",
             "VGhleSBzYXkgdGhhdCB5b3UgY2FuIGRlZmVhdCBhIGtpbGxlciBiZWUgd2l0aCBhIHVuaWNvcm4gaG9ybi4=" },
-          { "They say that you can only cross the River Styx in Charon's boat.", 
+          { "They say that you can only cross the River Styx in Charon's boat.",
             "VGhleSBzYXkgdGhhdCB5b3UgY2FuIG9ubHkgY3Jvc3MgdGhlIFJpdmVyIFN0eXggaW4gQ2hhcm9uJ3MgYm9hdC4=" },
-          { "They say that you can only kill a lich once and then you'd better be careful.", 
+          { "They say that you can only kill a lich once and then you'd better be careful.",
             "VGhleSBzYXkgdGhhdCB5b3UgY2FuIG9ubHkga2lsbCBhIGxpY2ggb25jZSBhbmQgdGhlbiB5b3UnZCBiZXR0ZXIgYmUgY2FyZWZ1bC4=" },
-          { "They say that you can only wish for things you've already had.", 
+          { "They say that you can only wish for things you've already had.",
             "VGhleSBzYXkgdGhhdCB5b3UgY2FuIG9ubHkgd2lzaCBmb3IgdGhpbmdzIHlvdSd2ZSBhbHJlYWR5IGhhZC4=" },
-          { "They say that you can train a cat by talking gently to it.", 
+          { "They say that you can train a cat by talking gently to it.",
             "VGhleSBzYXkgdGhhdCB5b3UgY2FuIHRyYWluIGEgY2F0IGJ5IHRhbGtpbmcgZ2VudGx5IHRvIGl0Lg==" },
-          { "They say that you can train a dog by talking firmly to it.", 
+          { "They say that you can train a dog by talking firmly to it.",
             "VGhleSBzYXkgdGhhdCB5b3UgY2FuIHRyYWluIGEgZG9nIGJ5IHRhbGtpbmcgZmlybWx5IHRvIGl0Lg==" },
-          { "They say that you can trust your gold with the king.", 
+          { "They say that you can trust your gold with the king.",
             "VGhleSBzYXkgdGhhdCB5b3UgY2FuIHRydXN0IHlvdXIgZ29sZCB3aXRoIHRoZSBraW5nLg==" },
-          { "They say that you can't wipe your greasy bare hands on a blank scroll.", 
+          { "They say that you can't wipe your greasy bare hands on a blank scroll.",
             "VGhleSBzYXkgdGhhdCB5b3UgY2FuJ3Qgd2lwZSB5b3VyIGdyZWFzeSBiYXJlIGhhbmRzIG9uIGEgYmxhbmsgc2Nyb2xsLg==" },
-          { "They say that you cannot trust scrolls of rumor.", 
+          { "They say that you cannot trust scrolls of rumor.",
             "VGhleSBzYXkgdGhhdCB5b3UgY2Fubm90IHRydXN0IHNjcm9sbHMgb2YgcnVtb3Iu" },
-          { "They say that you could fall head over heels for an energy vortex.", 
+          { "They say that you could fall head over heels for an energy vortex.",
             "VGhleSBzYXkgdGhhdCB5b3UgY291bGQgZmFsbCBoZWFkIG92ZXIgaGVlbHMgZm9yIGFuIGVuZXJneSB2b3J0ZXgu" },
-          { "They say that you need a key in order to open locked doors.", 
+          { "They say that you need a key in order to open locked doors.",
             "VGhleSBzYXkgdGhhdCB5b3UgbmVlZCBhIGtleSBpbiBvcmRlciB0byBvcGVuIGxvY2tlZCBkb29ycy4=" },
-          { "They say that you need a mirror to notice a mimic in an antique shop.", 
+          { "They say that you need a mirror to notice a mimic in an antique shop.",
             "VGhleSBzYXkgdGhhdCB5b3UgbmVlZCBhIG1pcnJvciB0byBub3RpY2UgYSBtaW1pYyBpbiBhbiBhbnRpcXVlIHNob3Au" },
-          { "They say that you really can use a pick-axe unless you really can't.", 
+          { "They say that you really can use a pick-axe unless you really can't.",
             "VGhleSBzYXkgdGhhdCB5b3UgcmVhbGx5IGNhbiB1c2UgYSBwaWNrLWF4ZSB1bmxlc3MgeW91IHJlYWxseSBjYW4ndC4=" },
-          { "They say that you should always store your tools in the cellar.", 
+          { "They say that you should always store your tools in the cellar.",
             "VGhleSBzYXkgdGhhdCB5b3Ugc2hvdWxkIGFsd2F5cyBzdG9yZSB5b3VyIHRvb2xzIGluIHRoZSBjZWxsYXIu" },
-          { "They say that you should be careful while climbing the ladder to success.", 
+          { "They say that you should be careful while climbing the ladder to success.",
             "VGhleSBzYXkgdGhhdCB5b3Ugc2hvdWxkIGJlIGNhcmVmdWwgd2hpbGUgY2xpbWJpbmcgdGhlIGxhZGRlciB0byBzdWNjZXNzLg==" },
-          { "They say that you should call your armor `rustproof'.", 
+          { "They say that you should call your armor `rustproof'.",
             "VGhleSBzYXkgdGhhdCB5b3Ugc2hvdWxkIGNhbGwgeW91ciBhcm1vciBgcnVzdHByb29mJy4=" },
-          { "They say that you should name your dog Spuds to have a cool pet.", 
+          { "They say that you should name your dog Spuds to have a cool pet.",
             "VGhleSBzYXkgdGhhdCB5b3Ugc2hvdWxkIG5hbWUgeW91ciBkb2cgU3B1ZHMgdG8gaGF2ZSBhIGNvb2wgcGV0Lg==" },
-          { "They say that you should name your weapon after your first monster kill.", 
+          { "They say that you should name your weapon after your first monster kill.",
             "VGhleSBzYXkgdGhhdCB5b3Ugc2hvdWxkIG5hbWUgeW91ciB3ZWFwb24gYWZ0ZXIgeW91ciBmaXJzdCBtb25zdGVyIGtpbGwu" },
-          { "They say that you should never introduce a rope golem to a succubus.", 
+          { "They say that you should never introduce a rope golem to a succubus.",
             "VGhleSBzYXkgdGhhdCB5b3Ugc2hvdWxkIG5ldmVyIGludHJvZHVjZSBhIHJvcGUgZ29sZW0gdG8gYSBzdWNjdWJ1cy4=" },
-          { "They say that you should never sleep near invisible ring wraiths.", 
+          { "They say that you should never sleep near invisible ring wraiths.",
             "VGhleSBzYXkgdGhhdCB5b3Ugc2hvdWxkIG5ldmVyIHNsZWVwIG5lYXIgaW52aXNpYmxlIHJpbmcgd3JhaXRocy4=" },
-          { "They say that you should never try to leave the dungeon with a bag of gems.", 
+          { "They say that you should never try to leave the dungeon with a bag of gems.",
             "VGhleSBzYXkgdGhhdCB5b3Ugc2hvdWxkIG5ldmVyIHRyeSB0byBsZWF2ZSB0aGUgZHVuZ2VvbiB3aXRoIGEgYmFnIG9mIGdlbXMu" },
-          { "They say that you should remove your armor before sitting on a throne.", 
+          { "They say that you should remove your armor before sitting on a throne.",
             "VGhleSBzYXkgdGhhdCB5b3Ugc2hvdWxkIHJlbW92ZSB5b3VyIGFybW9yIGJlZm9yZSBzaXR0aW5nIG9uIGEgdGhyb25lLg==" },
-          { "This fortune cookie is copy protected.", 
+          { "This fortune cookie is copy protected.",
             "VGhpcyBmb3J0dW5lIGNvb2tpZSBpcyBjb3B5IHByb3RlY3RlZC4=" },
-          { "This fortune cookie is the property of Fortune Cookies, Inc.", 
+          { "This fortune cookie is the property of Fortune Cookies, Inc.",
             "VGhpcyBmb3J0dW5lIGNvb2tpZSBpcyB0aGUgcHJvcGVydHkgb2YgRm9ydHVuZSBDb29raWVzLCBJbmMu" },
-          { "Tired? Try a scroll of charging on yourself.", 
+          { "Tired? Try a scroll of charging on yourself.",
             "VGlyZWQ/IFRyeSBhIHNjcm9sbCBvZiBjaGFyZ2luZyBvbiB5b3Vyc2VsZi4=" },
-          { "To achieve the next higher rating, you need 3 more points.", 
+          { "To achieve the next higher rating, you need 3 more points.",
             "VG8gYWNoaWV2ZSB0aGUgbmV4dCBoaWdoZXIgcmF0aW5nLCB5b3UgbmVlZCAzIG1vcmUgcG9pbnRzLg==" },
-          { "To reach heaven, escape the dungeon while wearing a ring of levitation.", 
+          { "To reach heaven, escape the dungeon while wearing a ring of levitation.",
             "VG8gcmVhY2ggaGVhdmVuLCBlc2NhcGUgdGhlIGR1bmdlb24gd2hpbGUgd2VhcmluZyBhIHJpbmcgb2YgbGV2aXRhdGlvbi4=" },
-          { "Tourists wear shirts loud enough to wake the dead.", 
+          { "Tourists wear shirts loud enough to wake the dead.",
             "VG91cmlzdHMgd2VhciBzaGlydHMgbG91ZCBlbm91Z2ggdG8gd2FrZSB0aGUgZGVhZC4=" },
-          { "Try calling your katana Moulinette.", 
+          { "Try calling your katana Moulinette.",
             "VHJ5IGNhbGxpbmcgeW91ciBrYXRhbmEgTW91bGluZXR0ZS4=" },
-          { "Ulch! That meat was painted!", 
+          { "Ulch! That meat was painted!",
             "VWxjaCEgVGhhdCBtZWF0IHdhcyBwYWludGVkIQ==" },
-          { "Unfortunately, this message was left intentionally blank.", 
+          { "Unfortunately, this message was left intentionally blank.",
             "VW5mb3J0dW5hdGVseSwgdGhpcyBtZXNzYWdlIHdhcyBsZWZ0IGludGVudGlvbmFsbHkgYmxhbmsu" },
-          { "Using a morning star in the evening has no effect.", 
+          { "Using a morning star in the evening has no effect.",
             "VXNpbmcgYSBtb3JuaW5nIHN0YXIgaW4gdGhlIGV2ZW5pbmcgaGFzIG5vIGVmZmVjdC4=" },
-          { "Want a hint? Zap a wand of make invisible on your weapon!", 
+          { "Want a hint? Zap a wand of make invisible on your weapon!",
             "V2FudCBhIGhpbnQ/IFphcCBhIHdhbmQgb2YgbWFrZSBpbnZpc2libGUgb24geW91ciB3ZWFwb24h" },
-          { "Want to ascend in a hurry? Apply at Gizmonic Institute.", 
+          { "Want to ascend in a hurry? Apply at Gizmonic Institute.",
             "V2FudCB0byBhc2NlbmQgaW4gYSBodXJyeT8gQXBwbHkgYXQgR2l6bW9uaWMgSW5zdGl0dXRlLg==" },
-          { "Wanted: shopkeepers. Send a scroll of mail to Mage of Yendor/Level 35/Dungeon.", 
+          { "Wanted: shopkeepers. Send a scroll of mail to Mage of Yendor/Level 35/Dungeon.",
             "V2FudGVkOiBzaG9wa2VlcGVycy4gU2VuZCBhIHNjcm9sbCBvZiBtYWlsIHRvIE1hZ2Ugb2YgWWVuZG9yL0xldmVsIDM1L0R1bmdlb24u" },
-          { "Warning: fortune reading can be hazardous to your health.", 
+          { "Warning: fortune reading can be hazardous to your health.",
             "V2FybmluZzogZm9ydHVuZSByZWFkaW5nIGNhbiBiZSBoYXphcmRvdXMgdG8geW91ciBoZWFsdGgu" },
-          { "We have new ways of detecting treachery...", 
+          { "We have new ways of detecting treachery...",
             "V2UgaGF2ZSBuZXcgd2F5cyBvZiBkZXRlY3RpbmcgdHJlYWNoZXJ5Li4u" },
-          { "Wet towels make great weapons!", 
+          { "Wet towels make great weapons!",
             "V2V0IHRvd2VscyBtYWtlIGdyZWF0IHdlYXBvbnMh" },
-          { "What a pity, you cannot read it!", 
+          { "What a pity, you cannot read it!",
             "V2hhdCBhIHBpdHksIHlvdSBjYW5ub3QgcmVhZCBpdCE=" },
-          { "When a piercer drops in on you, you will be tempted to hit the ceiling!", 
+          { "When a piercer drops in on you, you will be tempted to hit the ceiling!",
             "V2hlbiBhIHBpZXJjZXIgZHJvcHMgaW4gb24geW91LCB5b3Ugd2lsbCBiZSB0ZW1wdGVkIHRvIGhpdCB0aGUgY2VpbGluZyE=" },
-          { "When in a maze follow the right wall and you will never get lost.", 
+          { "When in a maze follow the right wall and you will never get lost.",
             "V2hlbiBpbiBhIG1hemUgZm9sbG93IHRoZSByaWdodCB3YWxsIGFuZCB5b3Ugd2lsbCBuZXZlciBnZXQgbG9zdC4=" },
-          { "When you have a key, you don't have to wait for the guard.", 
+          { "When you have a key, you don't have to wait for the guard.",
             "V2hlbiB5b3UgaGF2ZSBhIGtleSwgeW91IGRvbid0IGhhdmUgdG8gd2FpdCBmb3IgdGhlIGd1YXJkLg==" },
-          { "Why are you wasting time reading fortunes?", 
+          { "Why are you wasting time reading fortunes?",
             "V2h5IGFyZSB5b3Ugd2FzdGluZyB0aW1lIHJlYWRpbmcgZm9ydHVuZXM/" },
-          { "Wish for a master key and open the Magic Memory Vault!", 
+          { "Wish for a master key and open the Magic Memory Vault!",
             "V2lzaCBmb3IgYSBtYXN0ZXIga2V5IGFuZCBvcGVuIHRoZSBNYWdpYyBNZW1vcnkgVmF1bHQh" },
-          { "Wizard expects every monster to do its duty.", 
+          { "Wizard expects every monster to do its duty.",
             "V2l6YXJkIGV4cGVjdHMgZXZlcnkgbW9uc3RlciB0byBkbyBpdHMgZHV0eS4=" },
-          { "Wow! You could've had a potion of fruit juice!", 
+          { "Wow! You could've had a potion of fruit juice!",
             "V293ISBZb3UgY291bGQndmUgaGFkIGEgcG90aW9uIG9mIGZydWl0IGp1aWNlIQ==" },
-          { "Yet Another Silly Message (YASM).", 
+          { "Yet Another Silly Message (YASM).",
             "WWV0IEFub3RoZXIgU2lsbHkgTWVzc2FnZSAoWUFTTSku" },
-          { "You are destined to be misled by a fortune.", 
+          { "You are destined to be misled by a fortune.",
             "WW91IGFyZSBkZXN0aW5lZCB0byBiZSBtaXNsZWQgYnkgYSBmb3J0dW5lLg==" },
-          { "You can get a genuine Amulet of Yendor by doing the following: --More--", 
+          { "You can get a genuine Amulet of Yendor by doing the following: --More--",
             "WW91IGNhbiBnZXQgYSBnZW51aW5lIEFtdWxldCBvZiBZZW5kb3IgYnkgZG9pbmcgdGhlIGZvbGxvd2luZzogLS1Nb3JlLS0=" },
-          { "You can protect yourself from black dragons by doing the following: --More--", 
+          { "You can protect yourself from black dragons by doing the following: --More--",
             "WW91IGNhbiBwcm90ZWN0IHlvdXJzZWxmIGZyb20gYmxhY2sgZHJhZ29ucyBieSBkb2luZyB0aGUgZm9sbG93aW5nOiAtLU1vcmUtLQ==" },
-          { "You can't get by the snake.", 
+          { "You can't get by the snake.",
             "WW91IGNhbid0IGdldCBieSB0aGUgc25ha2Uu" },
-          { "You feel like someone is pulling your leg.", 
+          { "You feel like someone is pulling your leg.",
             "WW91IGZlZWwgbGlrZSBzb21lb25lIGlzIHB1bGxpbmcgeW91ciBsZWcu" },
-          { "You have to outwit the Sphynx or pay her.", 
+          { "You have to outwit the Sphynx or pay her.",
             "WW91IGhhdmUgdG8gb3V0d2l0IHRoZSBTcGh5bnggb3IgcGF5IGhlci4=" },
-          { "You hear the fortune cookie's hissing!", 
+          { "You hear the fortune cookie's hissing!",
             "WW91IGhlYXIgdGhlIGZvcnR1bmUgY29va2llJ3MgaGlzc2luZyE=" },
-          { "You may get rich selling letters, but beware of being blackmailed!", 
+          { "You may get rich selling letters, but beware of being blackmailed!",
             "WW91IG1heSBnZXQgcmljaCBzZWxsaW5nIGxldHRlcnMsIGJ1dCBiZXdhcmUgb2YgYmVpbmcgYmxhY2ttYWlsZWQh" },
-          { "You offend Shai-Hulud by sheathing your crysknife without having drawn blood.", 
+          { "You offend Shai-Hulud by sheathing your crysknife without having drawn blood.",
             "WW91IG9mZmVuZCBTaGFpLUh1bHVkIGJ5IHNoZWF0aGluZyB5b3VyIGNyeXNrbmlmZSB3aXRob3V0IGhhdmluZyBkcmF3biBibG9vZC4=" },
-          { "You swallowed the fortune!", 
+          { "You swallowed the fortune!",
             "WW91IHN3YWxsb3dlZCB0aGUgZm9ydHVuZSE=" },
-          { "You want to regain strength? Two levels ahead is a guesthouse!", 
+          { "You want to regain strength? Two levels ahead is a guesthouse!",
             "WW91IHdhbnQgdG8gcmVnYWluIHN0cmVuZ3RoPyBUd28gbGV2ZWxzIGFoZWFkIGlzIGEgZ3Vlc3Rob3VzZSE=" },
-          { "You will encounter a tall, dark, and gruesome creature...", 
+          { "You will encounter a tall, dark, and gruesome creature...",
             "WW91IHdpbGwgZW5jb3VudGVyIGEgdGFsbCwgZGFyaywgYW5kIGdydWVzb21lIGNyZWF0dXJlLi4u" },
 
           { "The End", "VGhlIEVuZA==" }
       };
 
 /* PL_Base64Encode, random strings */
 PRBool test_004(void)
 {
@@ -1804,17 +1804,17 @@ PRBool test_004(void)
         if( rv != result )
         {
             printf("FAIL\n\t(%d): return value\n", i);
             return PR_FALSE;
         }
 
         if( 0 != PL_strncmp(result, array[i].cyphertext, clen) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n",
                    i, array[i].plaintext, array[i].cyphertext, clen, result);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
@@ -1994,17 +1994,17 @@ PRBool test_008(void)
         if( (char *)0 == rv )
         {
             printf("FAIL\n\t(%d): no return value\n", i);
             return PR_FALSE;
         }
 
         if( 0 != PL_strcmp(rv, array[i].cyphertext) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n",
                    i, array[i].plaintext, array[i].cyphertext, rv);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
@@ -2289,17 +2289,17 @@ PRBool test_014(void)
                 {
                     plen -= 1;
                 }
             }
         }
 
         if( 0 != PL_strncmp(result, array[i].plaintext, plen) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n",
                    i, array[i].cyphertext, array[i].plaintext, plen, result);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
@@ -2345,17 +2345,17 @@ PRBool test_015(void)
         if( rv != result )
         {
             printf("FAIL\n\t(%d): return value\n", i);
             return PR_FALSE;
         }
 
         if( 0 != PL_strncmp(result, array[i].plaintext, plen) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n",
                    i, array[i].cyphertext, array[i].plaintext, plen, result);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
@@ -2634,17 +2634,17 @@ PRBool test_021(void)
         if( (char *)0 == rv )
         {
             printf("FAIL\n\t(%d): no return value\n", i);
             return PR_FALSE;
         }
 
         if( 0 != PL_strcmp(rv, array[i].plaintext) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n",
                    i, array[i].cyphertext, array[i].plaintext, rv);
             PR_DELETE(rv);
             return PR_FALSE;
         }
 
         PR_DELETE(rv);
     }
 
@@ -2690,17 +2690,17 @@ PRBool test_022(void)
         if( (char *)0 == rv )
         {
             printf("FAIL\n\t(%d): no return value\n", i);
             return PR_FALSE;
         }
 
         if( 0 != PL_strcmp(rv, array[i].plaintext) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n",
                    i, array[i].cyphertext, array[i].plaintext, rv);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
@@ -2723,17 +2723,17 @@ PRBool test_023(void)
         if( rv != result )
         {
             printf("FAIL\n\t(%d): return value\n", i);
             return PR_FALSE;
         }
 
         if( 0 != PL_strncmp(result, array[i].cyphertext, clen) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n",
                    i, array[i].plaintext, array[i].cyphertext, clen, result);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
@@ -2755,17 +2755,17 @@ PRBool test_024(void)
         if( (char *)0 == rv )
         {
             printf("FAIL\n\t(%d): no return value\n", i);
             return PR_FALSE;
         }
 
         if( 0 != PL_strcmp(rv, array[i].cyphertext) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n",
                    i, array[i].plaintext, array[i].cyphertext, rv);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
@@ -2803,17 +2803,17 @@ PRBool test_025(void)
                 {
                     plen -= 1;
                 }
             }
         }
 
         if( 0 != PL_strncmp(result, array[i].plaintext, plen) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n",
                    i, array[i].cyphertext, array[i].plaintext, plen, result);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
@@ -2859,17 +2859,17 @@ PRBool test_026(void)
         if( rv != result )
         {
             printf("FAIL\n\t(%d): return value\n", i);
             return PR_FALSE;
         }
 
         if( 0 != PL_strncmp(result, array[i].plaintext, plen) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%.*s.\"\n",
                    i, array[i].cyphertext, array[i].plaintext, plen, result);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
@@ -2890,17 +2890,17 @@ PRBool test_027(void)
         if( (char *)0 == rv )
         {
             printf("FAIL\n\t(%d): no return value\n", i);
             return PR_FALSE;
         }
 
         if( 0 != PL_strcmp(rv, array[i].plaintext) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n",
                    i, array[i].cyphertext, array[i].plaintext, rv);
             PR_DELETE(rv);
             return PR_FALSE;
         }
 
         PR_DELETE(rv);
     }
 
@@ -2946,17 +2946,17 @@ PRBool test_028(void)
         if( (char *)0 == rv )
         {
             printf("FAIL\n\t(%d): no return value\n", i);
             return PR_FALSE;
         }
 
         if( 0 != PL_strcmp(rv, array[i].plaintext) )
         {
-            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n", 
+            printf("FAIL\n\t(%d, \"%s\"): expected \n\"%s,\" got \n\"%s.\"\n",
                    i, array[i].cyphertext, array[i].plaintext, rv);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
--- a/lib/tests/getopt.c
+++ b/lib/tests/getopt.c
@@ -16,25 +16,25 @@ static const PLLongOpt optArray[] = {
     { "longb", 'b'        , PR_TRUE  },
     { "longc", 'c'        , PR_FALSE },
     { "longd", 'd' | 0x100, PR_TRUE  },
     { "longe", 'e' | 0x100, PR_FALSE },
     {    NULL,                       }
 };
 
 int
-main(int argc, char **argv) 
+main(int argc, char **argv)
 {
     PLOptState *opt;
     PLOptStatus ostat;
 
     opt = PL_CreateLongOptState(argc, argv, "a:b:c", optArray);
 
     while (PL_OPT_OK == (ostat = PL_GetNextOpt(opt))) {
-	if (opt->option == 0 && opt->longOptIndex < 0) 
+	if (opt->option == 0 && opt->longOptIndex < 0)
 	    printf("Positional parameter: \"%s\"\n", opt->value);
 	else
 	    printf("%s option: %x (\'%c\', index %d), argument: \"%s\"\n",
 		   (ostat == PL_OPT_BAD) ? "BAD" : "GOOD",
 		   opt->longOption, opt->option ? opt->option : ' ',
 		   opt->longOptIndex, opt->value);
 
     }
--- a/lib/tests/string.c
+++ b/lib/tests/string.c
@@ -27,17 +27,17 @@ PRBool test_001(void)
     int i;
 
     printf("Test 001 (PL_strlen)      ..."); fflush(stdout);
 
     for( i = 0; i < sizeof(array)/sizeof(array[0]); i++ )
     {
         if( PL_strlen(array[i].str) != array[i].len )
         {
-            printf("FAIL (%d: %s->%d, %d)\n", i, 
+            printf("FAIL (%d: %s->%d, %d)\n", i,
                    array[i].str ? array[i].str : "(null)",
                    PL_strlen(array[i].str), array[i].len);
             return PR_FALSE;
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
@@ -133,18 +133,18 @@ PRBool test_003(void)
         }
 
         if( array[i].comp )
         {
             while( 1 )
             {
                 if( *a != *b )
                 {
-                    printf("FAIL %d: %s->%.32s\n", i, 
-                           array[i].str ? array[i].str : "(null)", 
+                    printf("FAIL %d: %s->%.32s\n", i,
+                           array[i].str ? array[i].str : "(null)",
                            array[i].dest ? array[i].dest : "(null)");
                     return PR_FALSE;
                 }
 
                 if( (char)0 == *a ) break;
 
                 a++;
                 b++;
@@ -246,17 +246,17 @@ PRBool test_004(void)
         {
             const char *a = array[i].result;
             const char *b = array[i].dest;
 
             while( *a )
             {
                 if( *a != *b )
                 {
-                    printf("FAIL %d: %s != %.32s\n", i, 
+                    printf("FAIL %d: %s != %.32s\n", i,
                            array[i].result, array[i].dest);
                     return PR_FALSE;
                 }
 
                 a++;
                 b++;
             }
 
@@ -273,17 +273,17 @@ PRBool test_004(void)
                 if( *b != '-' )
                 {
                     printf("FAIL %d: overstepped\n", i);
                     return PR_FALSE;
                 }
             }
         }
     }
-                
+
     printf("PASS\n");
     return PR_TRUE;
 }
 
 /* PL_strncpyz */
 PRBool test_005(void)
 {
     static char buffer[ 1024 ];
@@ -372,29 +372,29 @@ PRBool test_005(void)
         {
             const char *a = array[i].result;
             const char *b = array[i].dest;
 
             while( 1 )
             {
                 if( *a != *b )
                 {
-                    printf("FAIL %d: %s != %.32s\n", i, 
+                    printf("FAIL %d: %s != %.32s\n", i,
                            array[i].result, array[i].dest);
                     return PR_FALSE;
                 }
 
                 if( (char)0 == *a ) break;
 
                 a++;
                 b++;
             }
         }
     }
-                
+
     printf("PASS\n");
     return PR_TRUE;
 }
 
 /* PL_strdup */
 PRBool test_006(void)
 {
     static const char *array[] =
@@ -494,17 +494,17 @@ PRBool test_007(void)
     for( i = 0; i < sizeof(array)/sizeof(array[0]); i++ )
     {
         char *rv = PL_strndup(array[i].str, array[i].len);
         const char *a;
         const char *b;
 
         if( (char *)0 == rv )
         {
-            printf("FAIL %d: %s,%lu -> 0\n", i, 
+            printf("FAIL %d: %s,%lu -> 0\n", i,
                    array[i].str ? array[i].str : "(null)", array[i].len);
             return PR_FALSE;
         }
 
         a = array[i].result;
         b = (const char *)rv;
 
         while( 1 )
@@ -625,17 +625,17 @@ PRBool test_009(void)
 {
     static struct
     {
         const char *first;
         const char *second;
         PRUint32    length;
         PRBool      nulled;
         const char *result;
-    } array[] = 
+    } array[] =
       {
           { (const char *)0, (const char *)0, 0, PR_FALSE, (const char *)0 },
           { (const char *)0, (const char *)0, 1, PR_FALSE, (const char *)0 },
           { (const char *)0, (const char *)0, 7, PR_FALSE, (const char *)0 },
           { (const char *)0, "", 0, PR_FALSE, (const char *)0 },
           { (const char *)0, "", 1, PR_FALSE, (const char *)0 },
           { (const char *)0, "", 7, PR_FALSE, (const char *)0 },
           { (const char *)0, "stuff", 0, PR_FALSE, (const char *)0 },
@@ -755,17 +755,17 @@ PRBool test_009(void)
 PRBool test_010(void)
 {
     static struct
     {
         const char *first;
         const char *second;
         PRUint32    length;
         const char *result;
-    } array[] = 
+    } array[] =
       {
           { (const char *)0, (const char *)0, 0, (const char *)0 },
           { (const char *)0, (const char *)0, 1, (const char *)0 },
           { (const char *)0, (const char *)0, 7, (const char *)0 },
           { (const char *)0, "", 0, (const char *)0 },
           { (const char *)0, "", 1, (const char *)0 },
           { (const char *)0, "", 7, (const char *)0 },
           { (const char *)0, "stuff", 0, (const char *)0 },
@@ -1686,39 +1686,39 @@ PRBool test_019(void)
     for( i = 0; i < sizeof(array)/sizeof(array[0]); i++ )
     {
         char *rv = PL_strpbrk(array[i].str, array[i].chrs);
 
         if( PR_FALSE == array[i].ret )
         {
             if( (char *)0 != rv )
             {
-                printf("FAIL %d: %s,%s -> %.32s, not null\n", i, 
+                printf("FAIL %d: %s,%s -> %.32s, not null\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        rv);
                 return PR_FALSE;
             }
         }
         else
         {
             if( (char *)0 == rv )
             {
                 printf("FAIL %d: %s,%s -> null, not +%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
                 printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
@@ -1777,49 +1777,49 @@ PRBool test_020(void)
     for( i = 0; i < sizeof(array)/sizeof(array[0]); i++ )
     {
         char *rv = PL_strprbrk(array[i].str, array[i].chrs);
 
         if( PR_FALSE == array[i].ret )
         {
             if( (char *)0 != rv )
             {
-                printf("FAIL %d: %s,%s -> %.32s, not null\n", i, 
+                printf("FAIL %d: %s,%s -> %.32s, not null\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        rv);
                 return PR_FALSE;
             }
         }
         else
         {
             if( (char *)0 == rv )
             {
                 printf("FAIL %d: %s,%s -> null, not +%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
                 printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
 }
-                       
+
 /* PL_strnpbrk */
 PRBool test_021(void)
 {
     static struct
     {
         const char *str;
         const char *chrs;
         PRUint32    max;
@@ -1874,39 +1874,39 @@ PRBool test_021(void)
     for( i = 0; i < sizeof(array)/sizeof(array[0]); i++ )
     {
         char *rv = PL_strnpbrk(array[i].str, array[i].chrs, array[i].max);
 
         if( PR_FALSE == array[i].ret )
         {
             if( (char *)0 != rv )
             {
-                printf("FAIL %d: %s,%s/%lu -> %.32s, not null\n", i, 
+                printf("FAIL %d: %s,%s/%lu -> %.32s, not null\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        array[i].max, rv);
                 return PR_FALSE;
             }
         }
         else
         {
             if( (char *)0 == rv )
             {
                 printf("FAIL %d: %s,%s/%lu -> null, not +%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        array[i].max, array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
                 printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        array[i].max, rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
@@ -1980,39 +1980,39 @@ PRBool test_022(void)
     for( i = 0; i < sizeof(array)/sizeof(array[0]); i++ )
     {
         char *rv = PL_strnprbrk(array[i].str, array[i].chrs, array[i].max);
 
         if( PR_FALSE == array[i].ret )
         {
             if( (char *)0 != rv )
             {
-                printf("FAIL %d: %s,%s/%lu -> %.32s, not null\n", i, 
+                printf("FAIL %d: %s,%s/%lu -> %.32s, not null\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        array[i].max, rv);
                 return PR_FALSE;
             }
         }
         else
         {
             if( (char *)0 == rv )
             {
                 printf("FAIL %d: %s,%s/%lu -> null, not +%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        array[i].max, array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
                 printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
-                       array[i].chrs ? array[i].chrs : "(null)", 
+                       array[i].chrs ? array[i].chrs : "(null)",
                        array[i].max, rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
     printf("PASS\n");
     return PR_TRUE;
@@ -2108,17 +2108,17 @@ PRBool test_023(void)
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].str, array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
-                printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i, 
+                printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
@@ -2216,17 +2216,17 @@ PRBool test_024(void)
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].str, array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
-                printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i, 
+                printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
@@ -2346,17 +2346,17 @@ PRBool test_025(void)
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].max, array[i].str, array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
-                printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i, 
+                printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].max, rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
@@ -2478,17 +2478,17 @@ PRBool test_026(void)
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].max, array[i].str, array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
-                printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i, 
+                printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].max, rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
@@ -2586,17 +2586,17 @@ PRBool test_027(void)
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].str, array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
-                printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i, 
+                printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
@@ -2694,17 +2694,17 @@ PRBool test_028(void)
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].str, array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
-                printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i, 
+                printf("FAIL %d: %s,%s -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
@@ -2824,17 +2824,17 @@ PRBool test_029(void)
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].max, array[i].str, array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
-                printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i, 
+                printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].max, rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
@@ -2956,17 +2956,17 @@ PRBool test_030(void)
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].max, array[i].str, array[i].off);
                 return PR_FALSE;
             }
 
             if( &array[i].str[ array[i].off ] != rv )
             {
-                printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i, 
+                printf("FAIL %d: %s,%s/%lu -> 0x%x, not 0x%x+%lu\n", i,
                        array[i].str ? array[i].str : "(null)",
                        array[i].sub ? array[i].sub : "(null)",
                        array[i].max, rv, array[i].str, array[i].off);
                 return PR_FALSE;
             }
         }
     }
 
@@ -2998,17 +2998,17 @@ PRBool test_031(void)
 
     /* Build the string. */
     string[0] = '\0';
     for( i = 0; i < sizeof(tokens)/sizeof(tokens[0]); i++ )
     {
         PL_strcat(string, tokens[i]);
         PL_strcat(string, seps[i]);
     }
-    
+
     /* Scan the string for tokens. */
     i = 0;
     s1 = string;
     while( (token = PL_strtok_r(s1, s2, &lasts)) != NULL)
     {
         if( PL_strcmp(token, tokens[i]) != 0 )
         {
             printf("FAIL wrong token scanned\n");
--- a/pr/include/gencfg.c
+++ b/pr/include/gencfg.c
@@ -12,17 +12,17 @@
 #endif
 
 #if defined(__hpux)
 #ifndef HPUX
 	error - HPUX is not defined
 #endif
 #endif
 
-#if defined(__alpha) 
+#if defined(__alpha)
 #if !(defined(_WIN32)) && !(defined(__linux)) && !(defined(__FreeBSD__))
 	error - None of _WIN32, __linux, or __FreeBSD__ is defined
 #endif
 #endif
 
 #if defined(_IBMR2)
 #ifndef AIX
 	error - AIX is not defined
@@ -217,38 +217,38 @@ int main(int argc, char **argv)
     fprintf(stream, "#define PR_BYTES_PER_DOUBLE %d\n\n", sizeof(double));
 
     fprintf(stream, "#define PR_BITS_PER_BYTE    %d\n", bpb);
     fprintf(stream, "#define PR_BITS_PER_SHORT   %d\n", bpb * sizeof(short));
     fprintf(stream, "#define PR_BITS_PER_INT     %d\n", bpb * sizeof(int));
     fprintf(stream, "#define PR_BITS_PER_INT64   %d\n", bpb * 8);
     fprintf(stream, "#define PR_BITS_PER_LONG    %d\n", bpb * sizeof(long));
     fprintf(stream, "#define PR_BITS_PER_FLOAT   %d\n", bpb * sizeof(float));
-    fprintf(stream, "#define PR_BITS_PER_DOUBLE  %d\n\n", 
+    fprintf(stream, "#define PR_BITS_PER_DOUBLE  %d\n\n",
             bpb * sizeof(double));
 
     fprintf(stream, "#define PR_BITS_PER_BYTE_LOG2   %d\n", Log2(bpb));
-    fprintf(stream, "#define PR_BITS_PER_SHORT_LOG2  %d\n", 
+    fprintf(stream, "#define PR_BITS_PER_SHORT_LOG2  %d\n",
             Log2(bpb * sizeof(short)));
-    fprintf(stream, "#define PR_BITS_PER_INT_LOG2    %d\n", 
+    fprintf(stream, "#define PR_BITS_PER_INT_LOG2    %d\n",
             Log2(bpb * sizeof(int)));
     fprintf(stream, "#define PR_BITS_PER_INT64_LOG2  %d\n", 6);
-    fprintf(stream, "#define PR_BITS_PER_LONG_LOG2   %d\n", 
+    fprintf(stream, "#define PR_BITS_PER_LONG_LOG2   %d\n",
             Log2(bpb * sizeof(long)));
-    fprintf(stream, "#define PR_BITS_PER_FLOAT_LOG2  %d\n", 
+    fprintf(stream, "#define PR_BITS_PER_FLOAT_LOG2  %d\n",
             Log2(bpb * sizeof(float)));
-    fprintf(stream, "#define PR_BITS_PER_DOUBLE_LOG2 %d\n\n", 
+    fprintf(stream, "#define PR_BITS_PER_DOUBLE_LOG2 %d\n\n",
             Log2(bpb * sizeof(double)));
 
     fprintf(stream, "#define PR_ALIGN_OF_SHORT   %d\n", ALIGN_OF(short));
     fprintf(stream, "#define PR_ALIGN_OF_INT     %d\n", ALIGN_OF(int));
     fprintf(stream, "#define PR_ALIGN_OF_LONG    %d\n", ALIGN_OF(long));
     if (sizeof(INT64) < 8) {
 	/* this machine doesn't actually support PRInt64's */
-	fprintf(stream, "#define PR_ALIGN_OF_INT64   %d\n", 
+	fprintf(stream, "#define PR_ALIGN_OF_INT64   %d\n",
                 ALIGN_OF(fakelonglong));
     } else {
 	fprintf(stream, "#define PR_ALIGN_OF_INT64   %d\n", ALIGN_OF(PRInt64));
     }
     fprintf(stream, "#define PR_ALIGN_OF_FLOAT   %d\n", ALIGN_OF(float));
     fprintf(stream, "#define PR_ALIGN_OF_DOUBLE  %d\n", ALIGN_OF(double));
     fprintf(stream, "#define PR_ALIGN_OF_POINTER %d\n\n", ALIGN_OF(pointer));
 
--- a/pr/include/md/_bsdi.h
+++ b/pr/include/md/_bsdi.h
@@ -44,17 +44,17 @@
 #define _PR_INET6_PROBE
 #endif
 
 #ifndef _PR_PTHREADS
 
 #include <setjmp.h>
 
 #if defined(_PR_BSDI_JMPBUF_IS_ARRAY)
-#define _MD_GET_SP(_t)    (_t)->md.context[2] 
+#define _MD_GET_SP(_t)    (_t)->md.context[2]
 #elif defined(_PR_BSDI_JMPBUF_IS_STRUCT)
 #define _MD_GET_SP(_t)    (_t)->md.context[0].jb_esp
 #else
 #error "Unknown BSDI jmp_buf type"
 #endif
 
 #define PR_NUM_GCREGS	_JBLEN
 #define PR_CONTEXT_TYPE	jmp_buf
--- a/pr/include/md/_darwin.h
+++ b/pr/include/md/_darwin.h
@@ -40,17 +40,17 @@
 
 #undef  HAVE_STACK_GROWING_UP
 #define HAVE_DLL
 #if defined(__x86_64__) || TARGET_OS_IPHONE
 #define USE_DLFCN
 #else
 #define USE_MACH_DYLD
 #endif
-#define _PR_HAVE_SOCKADDR_LEN  
+#define _PR_HAVE_SOCKADDR_LEN
 #define _PR_STAT_HAS_ST_ATIMESPEC
 #define _PR_HAVE_LARGE_OFF_T
 #define _PR_HAVE_SYSV_SEMAPHORES
 #define PR_HAVE_SYSV_NAMED_SHARED_MEMORY
 
 #define _PR_INET6
 /*
  * I'd prefer to use getipnodebyname and getipnodebyaddr but the
--- a/pr/include/md/_hpux.h
+++ b/pr/include/md/_hpux.h
@@ -20,17 +20,17 @@
  * _PR_SI_ARCHITECTURE must be "hppa1.1" for backward compatibility.
  * It was changed to "hppa" in NSPR 4.6.2, but was changed back in
  * NSPR 4.6.4.
  */
 #define _PR_SI_ARCHITECTURE "hppa1.1"
 #define PR_DLL_SUFFIX        ".sl"
 #endif
 
-#define _PR_VMBASE        0x30000000 
+#define _PR_VMBASE        0x30000000
 #define _PR_STACK_VMBASE    0x50000000
 /*
  * _USE_BIG_FDS increases the size of fd_set from 256 bytes to
  * about 7500 bytes.  PR_Poll allocates three fd_sets on the
  * stack, so it is safer to also increase the default thread
  * stack size.
  */
 #define _MD_DEFAULT_STACK_SIZE    (2*65536L)
@@ -255,17 +255,17 @@ struct _MDCPU {
 
 #endif /* PTHREADS_USER	*/
 
 #endif  /* !defined(_PR_PTHREADS) */
 
 #if !defined(PTHREADS_USER)
 #define _MD_EARLY_INIT                 	_MD_EarlyInit
 #define _MD_FINAL_INIT					_PR_UnixInit
-#endif 
+#endif
 
 #if defined(HPUX_LW_TIMER)
 extern void _PR_HPUX_LW_IntervalInit(void);
 extern PRIntervalTime _PR_HPUX_LW_GetInterval(void);
 #define _MD_INTERVAL_INIT                 _PR_HPUX_LW_IntervalInit
 #define _MD_GET_INTERVAL                  _PR_HPUX_LW_GetInterval
 #define _MD_INTERVAL_PER_SEC()            1000
 #else
--- a/pr/include/md/_nspr_pthread.h
+++ b/pr/include/md/_nspr_pthread.h
@@ -6,42 +6,42 @@
 #ifndef nspr_pthread_defs_h___
 #define nspr_pthread_defs_h___
 
 #include <pthread.h>
 #include "prthread.h"
 
 #if defined(PTHREADS_USER)
 /*
-** Thread Local Storage 
+** Thread Local Storage
 */
 extern pthread_key_t current_thread_key;
 extern pthread_key_t current_cpu_key;
 extern pthread_key_t last_thread_key;
 extern pthread_key_t intsoff_key;
 
 #define _MD_CURRENT_THREAD() 			\
 			((struct PRThread *) pthread_getspecific(current_thread_key))
 #define _MD_CURRENT_CPU() 				\
 			((struct _PRCPU *) pthread_getspecific(current_cpu_key))
 #define _MD_LAST_THREAD()				\
 			((struct PRThread *) pthread_getspecific(last_thread_key))
-	
+
 #define _MD_SET_CURRENT_THREAD(newval) 			\
 	pthread_setspecific(current_thread_key, (void *)newval)
 
 #define _MD_SET_CURRENT_CPU(newval) 			\
 	pthread_setspecific(current_cpu_key, (void *)newval)
 
 #define _MD_SET_LAST_THREAD(newval)	 			\
 	pthread_setspecific(last_thread_key, (void *)newval)
 
 #define _MD_SET_INTSOFF(_val)
 #define _MD_GET_INTSOFF()	1
-	
+
 /*
 ** Initialize the thread context preparing it to execute _main.
 */
 #define _MD_INIT_CONTEXT(_thread, _sp, _main, status)			\
     PR_BEGIN_MACRO				      							\
         *status = PR_TRUE;              						\
 		if (SAVE_CONTEXT(_thread)) {							\
 	    	(*_main)();											\
--- a/pr/include/md/_os2.h
+++ b/pr/include/md/_os2.h
@@ -60,17 +60,17 @@ typedef int (*FARPROC)();
 #define _MD_MAGIC_CV        0x66666666
 
 struct _MDSemaphore {
    HEV sem;
 };
 
 struct _MDCPU {
     int              unused;
-}; 
+};
 
 struct _MDThread {
     HEV              blocked_sema;      /* Threads block on this when waiting
                                          * for IO or CondVar.
                                          */
     PRBool           inCVWaitQueue;     /* PR_TRUE if the thread is in the
                                          * wait queue of some cond var.
                                          * PR_FALSE otherwise.  */
@@ -207,17 +207,17 @@ extern PRInt32 _MD_CloseFile(PRInt32 osf
 #define _MD_ENOENT                ENOENT
 #define _MD_ENOTCONN              ENOTCONN
 #define _MD_ENOTSOCK              ENOTSOCK
 #define _MD_EOPNOTSUPP            EOPNOTSUPP
 #define _MD_EWOULDBLOCK           EWOULDBLOCK
 #define _MD_GET_SOCKET_ERROR()    sock_errno()
 #ifndef INADDR_LOOPBACK /* For some reason this is not defined in OS2 tcpip */
 /*  #define INADDR_LOOPBACK         INADDR_ANY */
-#endif  
+#endif
 
 #define _MD_INIT_FILEDESC(fd)
 extern void _MD_MakeNonblock(PRFileDesc *f);
 #define _MD_MAKE_NONBLOCK             _MD_MakeNonblock
 #define _MD_INIT_FD_INHERITABLE       (_PR_MD_INIT_FD_INHERITABLE)
 #define _MD_QUERY_FD_INHERITABLE      (_PR_MD_QUERY_FD_INHERITABLE)
 #define _MD_SHUTDOWN                  (_PR_MD_SHUTDOWN)
 #define _MD_LISTEN                    _PR_MD_LISTEN
@@ -319,18 +319,18 @@ extern PRInt32 _MD_Accept(PRFileDesc *fd
 #define _MD_WAIT_CV					  (_PR_MD_WAIT_CV)
 #define _MD_NEW_CV					  (_PR_MD_NEW_CV)
 #define _MD_FREE_CV					  (_PR_MD_FREE_CV)
 #define _MD_NOTIFY_CV				  (_PR_MD_NOTIFY_CV	)
 #define _MD_NOTIFYALL_CV			  (_PR_MD_NOTIFYALL_CV)
 
    /* XXXMB- the IOQ stuff is certainly not working correctly yet. */
 /* extern  struct _MDLock              _pr_ioq_lock; */
-#define _MD_IOQ_LOCK()                
-#define _MD_IOQ_UNLOCK()              
+#define _MD_IOQ_LOCK()
+#define _MD_IOQ_UNLOCK()
 
 
 /* --- Initialization stuff --- */
 #define _MD_START_INTERRUPTS()
 #define _MD_STOP_INTERRUPTS()
 #define _MD_DISABLE_CLOCK_INTERRUPTS()
 #define _MD_ENABLE_CLOCK_INTERRUPTS()
 #define _MD_BLOCK_CLOCK_INTERRUPTS()
@@ -352,17 +352,17 @@ extern struct PRProcess * _PR_CreateOS2P
     const struct PRProcessAttr *attr
 );
 
 #define _MD_DETACH_PROCESS _PR_DetachOS2Process
 extern PRStatus _PR_DetachOS2Process(struct PRProcess *process);
 
 /* --- Wait for a child process to terminate --- */
 #define _MD_WAIT_PROCESS _PR_WaitOS2Process
-extern PRStatus _PR_WaitOS2Process(struct PRProcess *process, 
+extern PRStatus _PR_WaitOS2Process(struct PRProcess *process,
     PRInt32 *exitCode);
 
 #define _MD_KILL_PROCESS _PR_KillOS2Process
 extern PRStatus _PR_KillOS2Process(struct PRProcess *process);
 
 #define _MD_CLEANUP_BEFORE_EXIT()
 #define _MD_EXIT                          (_PR_MD_EXIT)
 #define _MD_INIT_CONTEXT(_thread, _sp, _main, status) \
@@ -493,12 +493,12 @@ extern APIRET (* APIENTRY QueryThreadCon
 */
 
 /* Some simple mappings of Windows API's to OS/2 API's to make our lives a
  * little bit easier.  Only add one here if it is a DIRECT mapping.  We are
  * not emulating anything.  Just mapping.
  */
 #define FreeLibrary(x) DosFreeModule((HMODULE)x)
 #define OutputDebugStringA(x)
-                               
+
 extern int _MD_os2_get_nonblocking_connect_error(int osfd);
 
 #endif /* nspr_os2_defs_h___ */
--- a/pr/include/md/_os2_errors.h
+++ b/pr/include/md/_os2_errors.h
@@ -4,17 +4,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nspr_os2_errors_h___
 #define nspr_os2_errors_h___
 
 #include "md/_os2.h"
 #ifndef assert
   #include <assert.h>
-#endif  
+#endif
 
 NSPR_API(void) _MD_os2_map_default_error(PRInt32 err);
 #define	_PR_MD_MAP_DEFAULT_ERROR	_MD_os2_map_default_error
 
 NSPR_API(void) _MD_os2_map_opendir_error(PRInt32 err);
 #define	_PR_MD_MAP_OPENDIR_ERROR	_MD_os2_map_opendir_error
 
 NSPR_API(void) _MD_os2_map_closedir_error(PRInt32 err);
--- a/pr/include/md/_pth.h
+++ b/pr/include/md/_pth.h
@@ -88,24 +88,24 @@
 	|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
 	|| defined(HPUX) || defined(FREEBSD) \
 	|| defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \
 	|| defined(NTO) || defined(DARWIN) \
 	|| defined(UNIXWARE) || defined(RISCOS)
 #define _PT_PTHREAD_INVALIDATE_THR_HANDLE(t)  (t) = 0
 #define _PT_PTHREAD_THR_HANDLE_IS_INVALID(t)  (t) == 0
 #define _PT_PTHREAD_COPY_THR_HANDLE(st, dt)   (dt) = (st)
-#else 
+#else
 #error "pthreads is not supported for this architecture"
 #endif
 
 #if defined(_PR_PTHREADS)
 #define _PT_PTHREAD_ATTR_INIT            pthread_attr_init
 #define _PT_PTHREAD_ATTR_DESTROY         pthread_attr_destroy
-#define _PT_PTHREAD_CREATE(t, a, f, r)   pthread_create(t, &a, f, r) 
+#define _PT_PTHREAD_CREATE(t, a, f, r)   pthread_create(t, &a, f, r)
 #define _PT_PTHREAD_KEY_CREATE           pthread_key_create
 #define _PT_PTHREAD_ATTR_SETSCHEDPOLICY  pthread_attr_setschedpolicy
 #define _PT_PTHREAD_ATTR_GETSTACKSIZE(a, s) pthread_attr_getstacksize(a, s)
 #define _PT_PTHREAD_GETSPECIFIC(k, r)    (r) = pthread_getspecific(k)
 #else
 #error "Cannot determine pthread strategy"
 #endif
 
--- a/pr/include/md/_solaris.h
+++ b/pr/include/md/_solaris.h
@@ -77,17 +77,17 @@ struct addrinfo {
     int ai_socktype;
     int ai_protocol;
     size_t ai_addrlen;
     char *ai_canonname;
     struct sockaddr *ai_addr;
     struct addrinfo *ai_next;
 };
 #define AI_CANONNAME 0x0010
-#define AI_V4MAPPED 0x0001 
+#define AI_V4MAPPED 0x0001
 #define AI_ALL      0x0002
 #define AI_ADDRCONFIG   0x0004
 #define _PR_HAVE_MD_SOCKADDR_IN6
 /* isomorphic to struct in6_addr on Solaris 8 */
 struct _md_in6_addr {
     union {
         PRUint8  _S6_u8[16];
         PRUint32 _S6_u32[4];
@@ -198,17 +198,17 @@ NSPR_API(void)				_MD_SolarisInit();
 #define PR_NUM_GCREGS		_JBLEN
 #endif
 
 #define CONTEXT(_thread)	(&(_thread)->md.context)
 
 #endif /* ! USE_SETJMP */
 
 #include <time.h>
-/* 
+/*
  * Because clock_gettime() on Solaris/x86 always generates a
  * segmentation fault, we use an emulated version _pr_solx86_clock_gettime(),
  * which is implemented using gettimeofday().
  */
 #ifdef i386
 #define GETTIME(tt) _pr_solx86_clock_gettime(CLOCK_REALTIME, (tt))
 #else
 #define GETTIME(tt) clock_gettime(CLOCK_REALTIME, (tt))
@@ -315,20 +315,20 @@ NSPR_API(void)				_MD_SolarisInit();
     _MD_RESTORE_ERRNO(_newThread) \
     _MD_SET_CURRENT_THREAD(_newThread); \
     longjmp(CONTEXT(_newThread), 1); \
 }
 
 #else /* USE_SETJMP */
 
 #define WINDOWSIZE		0
- 
+
 int getedi(void);
 void setedi(int);
- 
+
 #define _MD_INIT_CONTEXT(_thread, _sp, _main, status)	      \
 	PR_BEGIN_MACRO					\
 	ucontext_t *uc = CONTEXT(_thread);		\
         *status = PR_TRUE;              \
 	getcontext(uc);					\
 	/* Force sp to be double aligned! */		\
     	uc->uc_mcontext.gregs[USP] = (int) ((unsigned long)(_sp - WINDOWSIZE - SA(MINFRAME)) & 0xfffffff8);	\
 	uc->uc_mcontext.gregs[PC] = (int) _main;	\
--- a/pr/include/md/_unixos.h
+++ b/pr/include/md/_unixos.h
@@ -141,17 +141,17 @@ extern void _MD_unix_init_running_cpu(st
 ** redzone.
 */
 #include <sys/mman.h>
 #ifndef PROT_NONE
 #define PROT_NONE 0x0
 #endif
 
 #if defined(DEBUG) && !defined(DARWIN)
-#if !defined(SOLARIS)	
+#if !defined(SOLARIS)
 #include <string.h>  /* for memset() */
 #define _MD_INIT_STACK(ts,REDZONE)					\
     PR_BEGIN_MACRO                 					\
 	(void) mprotect((void*)ts->seg->vaddr, REDZONE, PROT_NONE);	\
 	(void) mprotect((void*) ((char*)ts->seg->vaddr + REDZONE + ts->stackSize),\
 			REDZONE, PROT_NONE);				\
     /*									\
     ** Fill stack memory with something that turns into an illegal	\
@@ -186,17 +186,17 @@ extern void _MD_unix_init_running_cpu(st
 
 #else	/* DEBUG */
 
 #define _MD_INIT_STACK(ts,REDZONE)
 #define _MD_CLEAR_STACK(ts)
 
 #endif	/* DEBUG */
 
-#if !defined(SOLARIS) 
+#if !defined(SOLARIS)
 
 #define PR_SET_INTSOFF(newval)
 
 #endif
 
 /************************************************************************/
 
 extern void _PR_UnixInit(void);
@@ -266,17 +266,17 @@ extern void		_MD_Wakeup_CPUs(void);
 #define _MD_GET_ENV				getenv
 #define _MD_PUT_ENV				putenv
 
 /************************************************************************/
 
 #define _MD_INIT_FILEDESC(fd)
 
 extern void		_MD_MakeNonblock(PRFileDesc *fd);
-#define _MD_MAKE_NONBLOCK			_MD_MakeNonblock		
+#define _MD_MAKE_NONBLOCK			_MD_MakeNonblock
 
 /************************************************************************/
 
 #if !defined(_PR_PTHREADS)
 
 extern void		_MD_InitSegs(void);
 extern PRStatus	_MD_AllocSegment(PRSegment *seg, PRUint32 size,
 				void *vaddr);
@@ -383,17 +383,17 @@ extern PRInt32		_MD_accept(PRFileDesc *f
 #define _MD_ACCEPT	_MD_accept
 extern PRInt32		_MD_bind(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen);
 #define _MD_BIND	_MD_bind
 extern PRInt32		_MD_listen(PRFileDesc *fd, PRIntn backlog);
 #define _MD_LISTEN	_MD_listen
 extern PRInt32		_MD_shutdown(PRFileDesc *fd, PRIntn how);
 #define _MD_SHUTDOWN	_MD_shutdown
 
-extern PRInt32		_MD_recv(PRFileDesc *fd, void *buf, PRInt32 amount, 
+extern PRInt32		_MD_recv(PRFileDesc *fd, void *buf, PRInt32 amount,
                                PRIntn flags, PRIntervalTime timeout);
 #define _MD_RECV	_MD_recv
 extern PRInt32		_MD_send(PRFileDesc *fd, const void *buf, PRInt32 amount,
 									PRIntn flags, PRIntervalTime timeout);
 #define _MD_SEND	_MD_send
 extern PRInt32		_MD_recvfrom(PRFileDesc *fd, void *buf, PRInt32 amount,
 						PRIntn flags, PRNetAddr *addr, PRUint32 *addrlen,
 											PRIntervalTime timeout);
--- a/pr/include/md/_unixware.h
+++ b/pr/include/md/_unixware.h
@@ -70,17 +70,17 @@
 #define _MD_RESTORE_CONTEXT(_thread) \
 {				     \
     errno = (_thread)->md.errcode;	     \
     _MD_SET_CURRENT_THREAD(_thread); \
     _LONGJMP(CONTEXT(_thread), 1);    \
 }
 
 /* Machine-dependent (MD) data structures.
- * Don't use SVR4 native threads (yet). 
+ * Don't use SVR4 native threads (yet).
  */
 
 struct _MDThread {
     _PR_CONTEXT_TYPE context;
     int id;
     int errcode;
 };
 
--- a/pr/include/md/_win95.h
+++ b/pr/include/md/_win95.h
@@ -232,22 +232,22 @@ extern void _PR_NT_FreeSecurityDescripto
 #define _MD_LSEEK64                   _PR_MD_LSEEK64
 extern PRInt32 _MD_CloseFile(PROsfd osfd);
 #define _MD_CLOSE_FILE                _MD_CloseFile
 #define _MD_GETFILEINFO               _PR_MD_GETFILEINFO
 #define _MD_GETFILEINFO64             _PR_MD_GETFILEINFO64
 #define _MD_GETOPENFILEINFO           _PR_MD_GETOPENFILEINFO
 #define _MD_GETOPENFILEINFO64         _PR_MD_GETOPENFILEINFO64
 #define _MD_STAT                      _PR_MD_STAT
-#define _MD_RENAME                    _PR_MD_RENAME     
-#define _MD_ACCESS                    _PR_MD_ACCESS     
-#define _MD_DELETE                    _PR_MD_DELETE     
-#define _MD_MKDIR                     _PR_MD_MKDIR      
+#define _MD_RENAME                    _PR_MD_RENAME
+#define _MD_ACCESS                    _PR_MD_ACCESS
+#define _MD_DELETE                    _PR_MD_DELETE
+#define _MD_MKDIR                     _PR_MD_MKDIR
 #define _MD_MAKE_DIR                  _PR_MD_MAKE_DIR
-#define _MD_RMDIR                     _PR_MD_RMDIR      
+#define _MD_RMDIR                     _PR_MD_RMDIR
 #define _MD_LOCKFILE                  _PR_MD_LOCKFILE
 #define _MD_TLOCKFILE                 _PR_MD_TLOCKFILE
 #define _MD_UNLOCKFILE                _PR_MD_UNLOCKFILE
 
 /* --- UTF16 IO stuff --- */
 #ifdef MOZ_UNICODE
 #define _MD_OPEN_FILE_UTF16           _PR_MD_OPEN_FILE_UTF16
 #define _MD_OPEN_DIR_UTF16            _PR_MD_OPEN_DIR_UTF16
@@ -394,23 +394,23 @@ extern PROsfd _MD_Accept(PRFileDesc *fd,
 /* --- lock and cv waiting --- */
 #define _MD_WAIT                      _PR_MD_WAIT
 #define _MD_WAKEUP_WAITER             _PR_MD_WAKEUP_WAITER
 
 /* --- CVar ------------------- */
 #define _MD_WAIT_CV					  _PR_MD_WAIT_CV
 #define _MD_NEW_CV					  _PR_MD_NEW_CV
 #define _MD_FREE_CV					  _PR_MD_FREE_CV
-#define _MD_NOTIFY_CV				  _PR_MD_NOTIFY_CV	
+#define _MD_NOTIFY_CV				  _PR_MD_NOTIFY_CV
 #define _MD_NOTIFYALL_CV			  _PR_MD_NOTIFYALL_CV
 
    /* XXXMB- the IOQ stuff is certainly not working correctly yet. */
 // extern  struct _MDLock              _pr_ioq_lock;
-#define _MD_IOQ_LOCK()                
-#define _MD_IOQ_UNLOCK()              
+#define _MD_IOQ_LOCK()
+#define _MD_IOQ_UNLOCK()
 
 
 /* --- Initialization stuff --- */
 #define _MD_START_INTERRUPTS()
 #define _MD_STOP_INTERRUPTS()
 #define _MD_DISABLE_CLOCK_INTERRUPTS()
 #define _MD_ENABLE_CLOCK_INTERRUPTS()
 #define _MD_BLOCK_CLOCK_INTERRUPTS()
@@ -432,17 +432,17 @@ extern struct PRProcess * _PR_CreateWind
     const struct PRProcessAttr *attr
 );
 
 #define _MD_DETACH_PROCESS _PR_DetachWindowsProcess
 extern PRStatus _PR_DetachWindowsProcess(struct PRProcess *process);
 
 /* --- Wait for a child process to terminate --- */
 #define _MD_WAIT_PROCESS _PR_WaitWindowsProcess
-extern PRStatus _PR_WaitWindowsProcess(struct PRProcess *process, 
+extern PRStatus _PR_WaitWindowsProcess(struct PRProcess *process,
     PRInt32 *exitCode);
 
 #define _MD_KILL_PROCESS _PR_KillWindowsProcess
 extern PRStatus _PR_KillWindowsProcess(struct PRProcess *process);
 
 #define _MD_CLEANUP_BEFORE_EXIT           _PR_MD_CLEANUP_BEFORE_EXIT
 #define _MD_INIT_CONTEXT(_thread, _sp, _main, status) \
     PR_BEGIN_MACRO \
--- a/pr/include/md/_winnt.h
+++ b/pr/include/md/_winnt.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nspr_win32_defs_h___
 #define nspr_win32_defs_h___
 
 /* Need to force service-pack 3 extensions to be defined by
 ** setting _WIN32_WINNT to NT 4.0 for winsock.h, winbase.h, winnt.h.
-*/ 
+*/
 #ifndef  _WIN32_WINNT
     #define _WIN32_WINNT 0x0400
 #elif   (_WIN32_WINNT < 0x0400)
     #undef  _WIN32_WINNT
     #define _WIN32_WINNT 0x0400
 #endif /* _WIN32_WINNT */
 
 #include <windows.h>
@@ -272,22 +272,22 @@ extern PRInt32 _PR_MD_CLOSE(PROsfd osfd,
 #define _MD_LSEEK                     _PR_MD_LSEEK
 #define _MD_LSEEK64                   _PR_MD_LSEEK64
 #define _MD_CLOSE_FILE(f)             _PR_MD_CLOSE(f, PR_FALSE)
 #define _MD_GETFILEINFO               _PR_MD_GETFILEINFO
 #define _MD_GETFILEINFO64             _PR_MD_GETFILEINFO64
 #define _MD_GETOPENFILEINFO           _PR_MD_GETOPENFILEINFO
 #define _MD_GETOPENFILEINFO64         _PR_MD_GETOPENFILEINFO64
 #define _MD_STAT                      _PR_MD_STAT
-#define _MD_RENAME                    _PR_MD_RENAME     
-#define _MD_ACCESS                    _PR_MD_ACCESS     
-#define _MD_DELETE                    _PR_MD_DELETE     
-#define _MD_MKDIR                     _PR_MD_MKDIR      
+#define _MD_RENAME                    _PR_MD_RENAME
+#define _MD_ACCESS                    _PR_MD_ACCESS
+#define _MD_DELETE                    _PR_MD_DELETE
+#define _MD_MKDIR                     _PR_MD_MKDIR
 #define _MD_MAKE_DIR                  _PR_MD_MAKE_DIR
-#define _MD_RMDIR                     _PR_MD_RMDIR      
+#define _MD_RMDIR                     _PR_MD_RMDIR
 #define _MD_LOCKFILE                  _PR_MD_LOCKFILE
 #define _MD_TLOCKFILE                 _PR_MD_TLOCKFILE
 #define _MD_UNLOCKFILE                _PR_MD_UNLOCKFILE
 
 /* --- Socket IO stuff --- */
 #define _MD_GET_SOCKET_ERROR()    WSAGetLastError()
 #define _MD_SET_SOCKET_ERROR(_err) WSASetLastError(_err)
 
@@ -451,17 +451,17 @@ extern struct PRProcess * _PR_CreateWind
     const struct PRProcessAttr *attr
 );
 
 #define _MD_DETACH_PROCESS _PR_DetachWindowsProcess
 extern PRStatus _PR_DetachWindowsProcess(struct PRProcess *process);
 
 /* --- Wait for a child process to terminate --- */
 #define _MD_WAIT_PROCESS _PR_WaitWindowsProcess
-extern PRStatus _PR_WaitWindowsProcess(struct PRProcess *process, 
+extern PRStatus _PR_WaitWindowsProcess(struct PRProcess *process,
     PRInt32 *exitCode);
 
 #define _MD_KILL_PROCESS _PR_KillWindowsProcess
 extern PRStatus _PR_KillWindowsProcess(struct PRProcess *process);
 
 /* --- User Threading stuff --- */
 #define HAVE_FIBERS
 #define _MD_CREATE_USER_THREAD            _PR_MD_CREATE_USER_THREAD
--- a/pr/include/obsolete/pralarm.h
+++ b/pr/include/obsolete/pralarm.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
 ** File:		pralarm.h
 ** Description:	API to periodic alarms.
 **
 **
-** Alarms are defined to invoke some client specified function at 
+** Alarms are defined to invoke some client specified function at
 ** a time in the future. The notification may be a one time event
 ** or repeated at a fixed interval. The interval at which the next
 ** notification takes place may be modified by the client code only
 ** during the respective notification.
 **
 ** The notification is delivered on a thread that is part of the
 ** alarm context (PRAlarm). The thread will inherit the priority
 ** of the Alarm creator.
@@ -52,44 +52,44 @@ typedef PRBool (PR_CALLBACK *PRPeriodicA
 
 /***********************************************************************
 ** FUNCTION:    PR_CreateAlarm
 ** DESCRIPTION:
 **  Create an alarm context.
 ** INPUTS:      void
 ** OUTPUTS:     None
 ** RETURN:      PRAlarm*
-**  
+**
 ** SIDE EFFECTS:
 **  This creates an alarm context, which is an object used for subsequent
 **  notification creations. It also creates a thread that will be used to
 ** deliver the notifications that are expected to be defined. The client
 ** is resposible for destroying the context when appropriate.
 ** RESTRICTIONS:
-**  None. 
+**  None.
 ** MEMORY:      The object (PRAlarm) and a thread to support notifications.
 ** ALGORITHM:   N/A
 ***********************************************************************/
 NSPR_API(PRAlarm*) PR_CreateAlarm(void);
 
 /***********************************************************************
 ** FUNCTION:    PR_DestroyAlarm
 ** DESCRIPTION:
 **  Destroys the context created by PR_CreateAlarm().
 ** INPUTS:      PRAlarm*
 ** OUTPUTS:     None
 ** RETURN:      PRStatus
-**  
+**
 ** SIDE EFFECTS:
 **  This destroys the context that was created by PR_CreateAlarm().
 **  If there are any active alarms (PRAlarmID), they will be cancelled.
 **  Once that is done, the thread that was used to deliver the alarms
-**  will be joined. 
+**  will be joined.
 ** RESTRICTIONS:
-**  None. 
+**  None.
 ** MEMORY:      N/A
 ** ALGORITHM:   N/A
 ***********************************************************************/
 NSPR_API(PRStatus) PR_DestroyAlarm(PRAlarm *alarm);
 
 /***********************************************************************
 ** FUNCTION:    PR_SetAlarm
 ** DESCRIPTION:
@@ -100,62 +100,62 @@ NSPR_API(PRStatus) PR_DestroyAlarm(PRAla
 **                                          are delivered.
 **              PRUint32 rate               The rate within the interval that
 **                                          the notifies will be delivered.
 **              PRPeriodicAlarmFn function  Entry point where the notifies
 **                                          will be delivered.
 ** OUTPUTS:     None
 ** RETURN:      PRAlarmID*                  Handle to the notifier just created
 **                                          or NULL if the request failed.
-**  
+**
 ** SIDE EFFECTS:
 **  A periodic notifier is created. The notifications will be delivered
 **  by the alarm's internal thread at a fixed interval whose rate is the
 **  number of interrupts per interval specified. The first notification
 **  will be delivered as soon as possible, and they will continue until
 **  the notifier routine indicates that they should cease of the alarm
 **  context is destroyed (PR_DestroyAlarm).
 ** RESTRICTIONS:
-**  None. 
+**  None.
 ** MEMORY:      Memory for the notifier object.
 ** ALGORITHM:   The rate at which notifications are delivered are stated
 **              to be "'rate' notifies per 'interval'". The exact time of
 **              the notification is computed based on a epoch established
 **              when the notifier was set. Each notification is delivered
 **              not ealier than the epoch plus the fixed rate times the
 **              notification sequence number. Such notifications have the
 **              potential to be late by not more than 'interval'/'rate'.
 **              The amount of lateness of one notification is taken into
-**              account on the next in an attempt to avoid long term slew.  
+**              account on the next in an attempt to avoid long term slew.
 ***********************************************************************/
 NSPR_API(PRAlarmID*) PR_SetAlarm(
     PRAlarm *alarm, PRIntervalTime period, PRUint32 rate,
     PRPeriodicAlarmFn function, void *clientData);
 
 /***********************************************************************
 ** FUNCTION:    PR_ResetAlarm
 ** DESCRIPTION:
 **  Resets an existing alarm.
 ** INPUTS:      PRAlarmID *id               Identify of the notifier.
 **              PRIntervalTime period       Interval over which the notifies
 **                                          are delivered.
 **              PRUint32 rate               The rate within the interval that
 **                                          the notifies will be delivered.
 ** OUTPUTS:     None
 ** RETURN:      PRStatus                    Indication of completion.
-**  
+**
 ** SIDE EFFECTS:
 **  An existing alarm may have its period and rate redefined. The
 **  additional side effect is that the notifier's epoch is recomputed.
 **  The first notification delivered by the newly refreshed alarm is
 **  defined to be 'interval'/'rate' from the time of the reset.
 ** RESTRICTIONS:
 **  This function may only be called in the notifier for that alarm.
 ** MEMORY:      N/A.
-** ALGORITHM:   See PR_SetAlarm().  
+** ALGORITHM:   See PR_SetAlarm().
 ***********************************************************************/
 NSPR_API(PRStatus) PR_ResetAlarm(
 	PRAlarmID *id, PRIntervalTime period, PRUint32 rate);
 
 PR_END_EXTERN_C
 
 #endif /* !defined(pralarm_h) */
 
--- a/pr/include/obsolete/probslet.h
+++ b/pr/include/obsolete/probslet.h
@@ -43,84 +43,84 @@ typedef struct PR_fd_set {
 } PR_fd_set;
 
 /*
 *************************************************************************
 ** FUNCTION:    PR_Select
 ** DESCRIPTION:
 **
 ** The call returns as soon as I/O is ready on one or more of the underlying
-** file/socket descriptors or an exceptional condition is pending. A count of the 
-** number of ready descriptors is returned unless a timeout occurs in which case 
-** zero is returned.  On return, PR_Select replaces the given descriptor sets with 
+** file/socket descriptors or an exceptional condition is pending. A count of the
+** number of ready descriptors is returned unless a timeout occurs in which case
+** zero is returned.  On return, PR_Select replaces the given descriptor sets with
 ** subsets consisting of those descriptors that are ready for the requested condition.
 ** The total number of ready descriptors in all the sets is the return value.
 **
 ** INPUTS:
-**   PRInt32 num             
+**   PRInt32 num
 **       This argument is unused but is provided for select(unix) interface
 **       compatability.  All input PR_fd_set arguments are self-describing
 **       with its own maximum number of elements in the set.
-**                               
+**
 **   PR_fd_set *readfds
 **       A set describing the io descriptors for which ready for reading
-**       condition is of interest.  
-**                               
+**       condition is of interest.
+**
 **   PR_fd_set *writefds
 **       A set describing the io descriptors for which ready for writing
-**       condition is of interest.  
-**                               
+**       condition is of interest.
+**
 **   PR_fd_set *exceptfds
 **       A set describing the io descriptors for which exception pending
-**       condition is of interest.  
+**       condition is of interest.
 **
-**   Any of the above readfds, writefds or exceptfds may be given as NULL 
-**   pointers if no descriptors are of interest for that particular condition.                          
-**   
-**   PRIntervalTime timeout  
-**       Amount of time the call will block waiting for I/O to become ready. 
+**   Any of the above readfds, writefds or exceptfds may be given as NULL
+**   pointers if no descriptors are of interest for that particular condition.
+**
+**   PRIntervalTime timeout
+**       Amount of time the call will block waiting for I/O to become ready.
 **       If this time expires without any I/O becoming ready, the result will
 **       be zero.
 **
-** OUTPUTS:    
+** OUTPUTS:
 **   PR_fd_set *readfds
 **       A set describing the io descriptors which are ready for reading.
-**                               
+**
 **   PR_fd_set *writefds
 **       A set describing the io descriptors which are ready for writing.
-**                               
+**
 **   PR_fd_set *exceptfds
 **       A set describing the io descriptors which have pending exception.
 **
 ** RETURN:PRInt32
 **   Number of io descriptors with asked for conditions or zero if the function
-**   timed out or -1 on failure.  The reason for the failure is obtained by 
+**   timed out or -1 on failure.  The reason for the failure is obtained by
 **   calling PR_GetError().
 ** XXX can we implement this on windoze and mac?
 **************************************************************************
 */
 NSPR_API(PRInt32) PR_Select(
     PRInt32 num, PR_fd_set *readfds, PR_fd_set *writefds,
     PR_fd_set *exceptfds, PRIntervalTime timeout);
 
-/* 
+/*
 ** The following are not thread safe for two threads operating on them at the
 ** same time.
 **
 ** The following routines are provided for manipulating io descriptor sets.
 ** PR_FD_ZERO(&fdset) initializes a descriptor set fdset to the null set.
 ** PR_FD_SET(fd, &fdset) includes a particular file descriptor fd in fdset.
-** PR_FD_CLR(fd, &fdset) removes a file descriptor fd from fdset.  
-** PR_FD_ISSET(fd, &fdset) is nonzero if file descriptor fd is a member of 
+** PR_FD_CLR(fd, &fdset) removes a file descriptor fd from fdset.
+** PR_FD_ISSET(fd, &fdset) is nonzero if file descriptor fd is a member of
 ** fdset, zero otherwise.
 **
 ** PR_FD_NSET(osfd, &fdset) includes a particular native file descriptor osfd
 ** in fdset.
-** PR_FD_NCLR(osfd, &fdset) removes a native file descriptor osfd from fdset.  
-** PR_FD_NISSET(osfd, &fdset) is nonzero if native file descriptor osfd is a member of 
+** PR_FD_NCLR(osfd, &fdset) removes a native file descriptor osfd from fdset.
+** PR_FD_NISSET(osfd, &fdset) is nonzero if native file descriptor osfd is a member of
 ** fdset, zero otherwise.
 */
 
 NSPR_API(void)        PR_FD_ZERO(PR_fd_set *set);
 NSPR_API(void)        PR_FD_SET(PRFileDesc *fd, PR_fd_set *set);
 NSPR_API(void)        PR_FD_CLR(PRFileDesc *fd, PR_fd_set *set);
 NSPR_API(PRInt32)     PR_FD_ISSET(PRFileDesc *fd, PR_fd_set *set);
 NSPR_API(void)        PR_FD_NSET(PROsfd osfd, PR_fd_set *set);
--- a/pr/include/obsolete/prsem.h
+++ b/pr/include/obsolete/prsem.h
@@ -2,18 +2,18 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef prsem_h___
 #define prsem_h___
 
 /*
-** API for counting semaphores. Semaphores are counting synchronizing 
-** variables based on a lock and a condition variable.  They are lightweight 
+** API for counting semaphores. Semaphores are counting synchronizing
+** variables based on a lock and a condition variable.  They are lightweight
 ** contention control for a given count of resources.
 */
 #include "prtypes.h"
 
 PR_BEGIN_EXTERN_C
 
 typedef struct PRSemaphore PRSemaphore;
 
@@ -25,33 +25,33 @@ NSPR_API(PRSemaphore*) PR_NewSem(PRUintn
 /*
 ** Destroy the given semaphore object.
 **
 */
 NSPR_API(void) PR_DestroySem(PRSemaphore *sem);
 
 /*
 ** Wait on a Semaphore.
-** 
-** This routine allows a calling thread to wait or proceed depending upon the 
-** state of the semahore sem. The thread can proceed only if the counter value 
-** of the semaphore sem is currently greater than 0. If the value of semaphore 
-** sem is positive, it is decremented by one and the routine returns immediately 
-** allowing the calling thread to continue. If the value of semaphore sem is 0, 
-** the calling thread blocks awaiting the semaphore to be released by another 
+**
+** This routine allows a calling thread to wait or proceed depending upon the
+** state of the semahore sem. The thread can proceed only if the counter value
+** of the semaphore sem is currently greater than 0. If the value of semaphore
+** sem is positive, it is decremented by one and the routine returns immediately
+** allowing the calling thread to continue. If the value of semaphore sem is 0,
+** the calling thread blocks awaiting the semaphore to be released by another
 ** thread.
-** 
-** This routine can return PR_PENDING_INTERRUPT if the waiting thread 
+**
+** This routine can return PR_PENDING_INTERRUPT if the waiting thread
 ** has been interrupted.
 */
 NSPR_API(PRStatus) PR_WaitSem(PRSemaphore *sem);
 
 /*
-** This routine increments the counter value of the semaphore. If other threads 
-** are blocked for the semaphore, then the scheduler will determine which ONE 
+** This routine increments the counter value of the semaphore. If other threads
+** are blocked for the semaphore, then the scheduler will determine which ONE
 ** thread will be unblocked.
 */
 NSPR_API(void) PR_PostSem(PRSemaphore *sem);
 
 /*
 ** Returns the value of the semaphore referenced by sem without affecting
 ** the state of the semaphore.  The value represents the semaphore vaule
 F** at the time of the call, but may not be the actual value when the
--- a/pr/include/prbit.h
+++ b/pr/include/prbit.h
@@ -14,17 +14,17 @@ PR_BEGIN_EXTERN_C
 ** functions.
 */
 #if defined(_WIN32) && (_MSC_VER >= 1300) && \
     (defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM) || \
      defined(_M_ARM64))
 # include <intrin.h>
 # pragma  intrinsic(_BitScanForward,_BitScanReverse)
   __forceinline static int __prBitScanForward32(unsigned int val)
-  { 
+  {
     unsigned long idx;
     _BitScanForward(&idx, (unsigned long)val);
     return( (int)idx );
   }
   __forceinline static int __prBitScanReverse32(unsigned int val)
   {
     unsigned long idx;
     _BitScanReverse(&idx, (unsigned long)val);
@@ -51,28 +51,28 @@ typedef unsigned long prbitmap_t;
 #define PR_SET_BIT(_map,_bit) \
     ((_map)[(_bit)>>PR_BITS_PER_LONG_LOG2] |= (1L << ((_bit) & (PR_BITS_PER_LONG-1))))
 #define PR_CLEAR_BIT(_map,_bit) \
     ((_map)[(_bit)>>PR_BITS_PER_LONG_LOG2] &= ~(1L << ((_bit) & (PR_BITS_PER_LONG-1))))
 
 /*
 ** Compute the log of the least power of 2 greater than or equal to n
 */
-NSPR_API(PRIntn) PR_CeilingLog2(PRUint32 i); 
+NSPR_API(PRIntn) PR_CeilingLog2(PRUint32 i);
 
 /*
 ** Compute the log of the greatest power of 2 less than or equal to n
 */
-NSPR_API(PRIntn) PR_FloorLog2(PRUint32 i); 
+NSPR_API(PRIntn) PR_FloorLog2(PRUint32 i);
 
 /*
 ** Macro version of PR_CeilingLog2: Compute the log of the least power of
 ** 2 greater than or equal to _n. The result is returned in _log2.
 */
-#ifdef PR_HAVE_BUILTIN_BITSCAN32 
+#ifdef PR_HAVE_BUILTIN_BITSCAN32
 #define PR_CEILING_LOG2(_log2,_n)      \
   PR_BEGIN_MACRO                       \
     PRUint32 j_ = (PRUint32)(_n);      \
     (_log2) = (j_ <= 1 ? 0 : 32 - pr_bitscan_clz32(j_ - 1)); \
   PR_END_MACRO
 #else
 #define PR_CEILING_LOG2(_log2,_n)   \
   PR_BEGIN_MACRO                    \
--- a/pr/include/prcountr.h
+++ b/pr/include/prcountr.h
@@ -8,72 +8,72 @@
 
 /*----------------------------------------------------------------------------
 ** prcountr.h -- NSPR Instrumentation counters
 **
 ** The NSPR Counter Feature provides a means to "count
 ** something." Counters can be dynamically defined, incremented,
 ** decremented, set, and deleted under application program
 ** control.
-** 																                   
-** The Counter Feature is intended to be used as instrumentation,                  
-** not as operational data. If you need a counter for operational                  
-** data, use native integral types.                                                
-** 																                   
-** Counters are 32bit unsigned intergers. On overflow, a counter                   
-** will wrap. No exception is recognized or reported.                              
-**                                                                                 
+**
+** The Counter Feature is intended to be used as instrumentation,
+** not as operational data. If you need a counter for operational
+** data, use native integral types.
+**
+** Counters are 32bit unsigned intergers. On overflow, a counter
+** will wrap. No exception is recognized or reported.
+**
 ** A counter can be dynamically created using a two level naming
 ** convention. A "handle" is returned when the counter is
 ** created. The counter can subsequently be addressed by its
 ** handle. An API is provided to get an existing counter's handle
-** given the names with  which it was originally created. 
+** given the names with  which it was originally created.
 ** Similarly, a counter's name can be retrieved given its handle.
-** 
+**
 ** The counter naming convention is a two-level hierarchy. The
 ** QName is the higher level of the hierarchy; RName is the
 ** lower level. RNames can be thought of as existing within a
 ** QName. The same RName can exist within multiple QNames. QNames
 ** are unique. The NSPR Counter is not a near-zero overhead
-** feature. Application designers should be aware of 
+** feature. Application designers should be aware of
 ** serialization issues when using the Counter API. Creating a
 ** counter locks a large asset, potentially causing a stall. This
 ** suggest that applications should create counters at component
 ** initialization, for example, and not create and destroy them
 ** willy-nilly. ... You have been warned.
-** 
+**
 ** Incrementing and Adding to counters uses atomic operations.
 ** The performance of these operations will vary from platform
 ** to platform. On platforms where atomic operations are not
 ** supported the overhead may be substantial.
-** 
+**
 ** When traversing the counter database with FindNext functions,
 ** the instantaneous values of any given counter is that at the
 ** moment of extraction. The state of the entire counter database
 ** may not be viewed as atomic.
-** 
+**
 ** The counter interface may be disabled (No-Op'd) at compile
 ** time. When DEBUG is defined at compile time, the Counter
 ** Feature is compiled into NSPR and applications invoking it.
 ** When DEBUG is not defined, the counter macros compile to
 ** nothing. To force the Counter Feature to be compiled into an
 ** optimized build, define FORCE_NSPR_COUNTERS at compile time
 ** for both NSPR and the application intending to use it.
-** 
+**
 ** Application designers should use the macro form of the Counter
 ** Feature methods to minimize performance impact in optimized
 ** builds. The macros normally compile to nothing on optimized
 ** builds.
-** 
+**
 ** Application designers should be aware of the effects of
 ** debug and optimized build differences when using result of the
 ** Counter Feature macros in expressions.
-** 
+**
 ** The Counter Feature is thread-safe and SMP safe.
-** 
+**
 ** /lth. 09-Jun-1998.
 */
 
 #include "prtypes.h"
 
 PR_BEGIN_EXTERN_C
 
 /*
@@ -85,441 +85,441 @@ typedef void *  PRCounterHandle;
 
 #define PRCOUNTER_NAME_MAX 31
 #define PRCOUNTER_DESC_MAX 255
 
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_DEFINE_COUNTER() -- Define a PRCounterHandle
-** 
+**
 ** DESCRIPTION: PR_DEFINE_COUNTER() is used to define a counter
 ** handle.
-** 
+**
 */
 #define PR_DEFINE_COUNTER(name) PRCounterHandle name
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_INIT_COUNTER_HANDLE() -- Set the value of a PRCounterHandle
-** 
-** DESCRIPTION: 
+**
+** DESCRIPTION:
 ** PR_INIT_COUNTER_HANDLE() sets the value of a PRCounterHandle
 ** to value.
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_INIT_COUNTER_HANDLE(handle,value)\
     (handle) = (PRCounterHandle)(value)
 #else
 #define PR_INIT_COUNTER_HANDLE(handle,value)
 #endif
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_CreateCounter() -- Create a counter
-** 
+**
 ** DESCRIPTION: PR_CreateCounter() creates a counter object and
 ** initializes it to zero.
-** 
+**
 ** The macro form takes as its first argument the name of the
 ** PRCounterHandle to receive the handle returned from
 ** PR_CreateCounter().
-** 
+**
 ** INPUTS:
 **  qName: The QName for the counter object. The maximum length
 ** of qName is defined by PRCOUNTER_NAME_MAX
-** 
+**
 **  rName: The RName for the counter object. The maximum length
 ** of qName is defined by PRCOUNTER_NAME_MAX
-** 
+**
 **  descrioption: The description of the counter object. The
 ** maximum length of description is defined by
 ** PRCOUNTER_DESC_MAX.
-** 
+**
 ** OUTPUTS:
-** 
+**
 ** RETURNS:
 **  PRCounterHandle.
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_CREATE_COUNTER(handle,qName,rName,description)\
    (handle) = PR_CreateCounter((qName),(rName),(description))
 #else
 #define PR_CREATE_COUNTER(handle,qName,rName,description)
 #endif
 
-NSPR_API(PRCounterHandle) 
-	PR_CreateCounter( 
-		const char *qName, 
-    	const char *rName, 
-        const char *description 
+NSPR_API(PRCounterHandle)
+	PR_CreateCounter(
+		const char *qName,
+    	const char *rName,
+        const char *description
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_DestroyCounter() -- Destroy a counter object.
-** 
+**
 ** DESCRIPTION: PR_DestroyCounter() removes a counter and
 ** unregisters its handle from the counter database.
-** 
+**
 ** INPUTS:
 **  handle: the PRCounterHandle of the counter to be destroyed.
-** 
-** OUTPUTS: 
+**
+** OUTPUTS:
 **  The counter is destroyed.
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_DESTROY_COUNTER(handle) PR_DestroyCounter((handle))
 #else
 #define PR_DESTROY_COUNTER(handle)
 #endif
 
-NSPR_API(void) 
-	PR_DestroyCounter( 
-		PRCounterHandle handle 
+NSPR_API(void)
+	PR_DestroyCounter(
+		PRCounterHandle handle
 );
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_GetCounterHandleFromName() -- Retreive a
 ** counter's handle give its name.
-** 
+**
 ** DESCRIPTION: PR_GetCounterHandleFromName() retreives a
 ** counter's handle from the counter database, given the name
 ** the counter was originally created with.
-** 
+**
 ** INPUTS:
 **  qName: Counter's original QName.
 **  rName: Counter's original RName.
-** 
+**
 ** OUTPUTS:
-** 
-** RETURNS: 
+**
+** RETURNS:
 **  PRCounterHandle or PRCounterError.
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_GET_COUNTER_HANDLE_FROM_NAME(handle,qName,rName)\
     (handle) = PR_GetCounterHandleFromName((qName),(rName))
 #else
 #define PR_GET_COUNTER_HANDLE_FROM_NAME(handle,qName,rName)
 #endif
 
-NSPR_API(PRCounterHandle) 
-	PR_GetCounterHandleFromName( 
-    	const char *qName, 
-    	const char *rName 
+NSPR_API(PRCounterHandle)
+	PR_GetCounterHandleFromName(
+    	const char *qName,
+    	const char *rName
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_GetCounterNameFromHandle() -- Retreive a
 ** counter's name, given its handle.
-** 
+**
 ** DESCRIPTION: PR_GetCounterNameFromHandle() retreives a
 ** counter's name given its handle.
-** 
+**
 ** INPUTS:
 **  qName: Where to store a pointer to qName.
 **  rName: Where to store a pointer to rName.
 **  description: Where to store a pointer to description.
-** 
+**
 ** OUTPUTS: Pointers to the Counter Feature's copies of the names
 ** used when the counters were created.
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_GET_COUNTER_NAME_FROM_HANDLE(handle,qName,rName,description)\
     PR_GetCounterNameFromHandle((handle),(qName),(rName),(description))
 #else
 #define PR_GET_COUNTER_NAME_FROM_HANDLE(handle,qName,rName,description )
 #endif
 
-NSPR_API(void) 
-	PR_GetCounterNameFromHandle( 
-    	PRCounterHandle handle,  
-	    const char **qName, 
-	    const char **rName, 
-		const char **description 
+NSPR_API(void)
+	PR_GetCounterNameFromHandle(
+    	PRCounterHandle handle,
+	    const char **qName,
+	    const char **rName,
+		const char **description
 );
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_IncrementCounter() -- Add one to the referenced
 ** counter.
-** 
+**
 ** DESCRIPTION: Add one to the referenced counter.
-** 
+**
 ** INPUTS:
 **  handle: The PRCounterHandle of the counter to be incremented
-** 
+**
 ** OUTPUTS: The counter is incrementd.
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_INCREMENT_COUNTER(handle) PR_IncrementCounter(handle)
 #else
 #define PR_INCREMENT_COUNTER(handle)
 #endif
 
-NSPR_API(void) 
-	PR_IncrementCounter( 
+NSPR_API(void)
+	PR_IncrementCounter(
 		PRCounterHandle handle
 );
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_DecrementCounter() -- Subtract one from the
 ** referenced counter
-** 
+**
 ** DESCRIPTION: Subtract one from the referenced counter.
-** 
-** INPUTS: 
+**
+** INPUTS:
 **  handle: The PRCounterHandle of the coutner to be
 ** decremented.
-** 
+**
 ** OUTPUTS: the counter is decremented.
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_DECREMENT_COUNTER(handle) PR_DecrementCounter(handle)
 #else
 #define PR_DECREMENT_COUNTER(handle)
 #endif
 
-NSPR_API(void) 
-	PR_DecrementCounter( 
+NSPR_API(void)
+	PR_DecrementCounter(
 		PRCounterHandle handle
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_AddToCounter() -- Add a value to a counter.
-** 
+**
 ** DESCRIPTION: Add value to the counter referenced by handle.
-** 
+**
 ** INPUTS:
 **  handle: the PRCounterHandle of the counter to be added to.
-** 
+**
 **  value: the value to be added to the counter.
-** 
+**
 ** OUTPUTS: new value for counter.
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_ADD_TO_COUNTER(handle,value)\
     PR_AddToCounter((handle),(value))
 #else
 #define PR_ADD_TO_COUNTER(handle,value)
 #endif
 
-NSPR_API(void) 
-	PR_AddToCounter( 
-    	PRCounterHandle handle, 
-	    PRUint32 value 
+NSPR_API(void)
+	PR_AddToCounter(
+    	PRCounterHandle handle,
+	    PRUint32 value
 );
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_SubtractFromCounter() -- A value is subtracted
 ** from a counter.
-** 
+**
 ** DESCRIPTION:
 ** Subtract a value from a counter.
-** 
+**
 ** INPUTS:
 **  handle: the PRCounterHandle of the counter to be subtracted
 ** from.
-** 
+**
 **  value: the value to be subtracted from the counter.
-** 
+**
 ** OUTPUTS: new value for counter
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_SUBTRACT_FROM_COUNTER(handle,value)\
     PR_SubtractFromCounter((handle),(value))
 #else
 #define PR_SUBTRACT_FROM_COUNTER(handle,value)
 #endif
 
-NSPR_API(void) 
-	PR_SubtractFromCounter( 
-    	PRCounterHandle handle, 
-	    PRUint32 value 
+NSPR_API(void)
+	PR_SubtractFromCounter(
+    	PRCounterHandle handle,
+	    PRUint32 value
 );
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_GetCounter() -- Retreive the value of a counter
-** 
+**
 ** DESCRIPTION:
 ** Retreive the value of a counter.
-** 
+**
 ** INPUTS:
 **  handle: the PR_CounterHandle of the counter to be retreived
-** 
+**
 ** OUTPUTS:
-** 
+**
 ** RETURNS: The value of the referenced counter
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_GET_COUNTER(counter,handle)\
     (counter) = PR_GetCounter((handle))
 #else
 #define PR_GET_COUNTER(counter,handle) 0
 #endif
 
-NSPR_API(PRUint32) 
-	PR_GetCounter( 
-		PRCounterHandle handle 
+NSPR_API(PRUint32)
+	PR_GetCounter(
+		PRCounterHandle handle
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_SetCounter() -- Replace the content of counter
 ** with value.
-** 
+**
 ** DESCRIPTION: The contents of the referenced counter are
 ** replaced by value.
-** 
+**
 ** INPUTS:
 **  handle: the PRCounterHandle of the counter whose contents
 ** are to be replaced.
-** 
+**
 **  value: the new value of the counter.
-** 
+**
 ** OUTPUTS:
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_SET_COUNTER(handle,value) PR_SetCounter((handle),(value))
 #else
 #define PR_SET_COUNTER(handle,value)
 #endif
 
-NSPR_API(void) 
-	PR_SetCounter( 
-		PRCounterHandle handle, 
-		PRUint32 value 
+NSPR_API(void)
+	PR_SetCounter(
+		PRCounterHandle handle,
+		PRUint32 value
 );
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_FindNextCounterQname() -- Retreive the next QName counter
 ** handle iterator
-** 
+**
 ** DESCRIPTION:
 ** PR_FindNextCounterQname() retreives the first or next Qname
 ** the counter data base, depending on the value of handle. When
 ** handle is NULL, the function attempts to retreive the first
 ** QName handle in the database. When handle is a handle previosly
 ** retreived QName handle, then the function attempts to retreive
 ** the next QName handle.
-** 
-** INPUTS: 
+**
+** INPUTS:
 **  handle: PRCounterHandle or NULL.
-** 
+**
 ** OUTPUTS: returned
-** 
+**
 ** RETURNS: PRCounterHandle or NULL when no more QName counter
 ** handles are present.
-** 
+**
 ** RESTRICTIONS:
 **  A concurrent PR_CreateCounter() or PR_DestroyCounter() may
 ** cause unpredictable results.
-** 
+**
 ** A PRCounterHandle returned from this function may only be used
 ** in another PR_FindNextCounterQname() function call; other
 ** operations may cause unpredictable results.
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_FIND_NEXT_COUNTER_QNAME(next,handle)\
     (next) = PR_FindNextCounterQname((handle))
 #else
 #define PR_FIND_NEXT_COUNTER_QNAME(next,handle) NULL
 #endif
 
-NSPR_API(PRCounterHandle) 
-	PR_FindNextCounterQname( 
+NSPR_API(PRCounterHandle)
+	PR_FindNextCounterQname(
         PRCounterHandle handle
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_FindNextCounterRname() -- Retreive the next RName counter
 ** handle iterator
-** 
+**
 ** DESCRIPTION:
 ** PR_FindNextCounterRname() retreives the first or next RNname
 ** handle from the counter data base, depending on the
 ** value of handle. When handle is NULL, the function attempts to
 ** retreive the first RName handle in the database. When handle is
 ** a handle previosly retreived RName handle, then the function
 ** attempts to retreive the next RName handle.
-** 
+**
 ** INPUTS:
 **  handle: PRCounterHandle or NULL.
 **  qhandle: PRCounterHandle of a previously aquired via
 ** PR_FIND_NEXT_QNAME_HANDLE()
-** 
+**
 ** OUTPUTS: returned
-** 
+**
 ** RETURNS: PRCounterHandle or NULL when no more RName counter
 ** handles are present.
-** 
+**
 ** RESTRICTIONS:
 **  A concurrent PR_CreateCounter() or PR_DestroyCounter() may
 ** cause unpredictable results.
-** 
+**
 ** A PRCounterHandle returned from this function may only be used
 ** in another PR_FindNextCounterRname() function call; other
 ** operations may cause unpredictable results.
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_COUNTERS)
 #define PR_FIND_NEXT_COUNTER_RNAME(next,rhandle,qhandle)\
     (next) = PR_FindNextCounterRname((rhandle),(qhandle))
 #else
 #define PR_FIND_NEXT_COUNTER_RNAME(next,rhandle,qhandle)
 #endif
 
-NSPR_API(PRCounterHandle) 
-	PR_FindNextCounterRname( 
+NSPR_API(PRCounterHandle)
+	PR_FindNextCounterRname(
         PRCounterHandle rhandle,
         PRCounterHandle qhandle
 );
 
 PR_END_EXTERN_C
 
 #endif /* prcountr_h___ */
--- a/pr/include/prcvar.h
+++ b/pr/include/prcvar.h
@@ -63,17 +63,17 @@ NSPR_API(void) PR_DestroyCondVar(PRCondV
 ** The particular reason can be extracted with PR_GetError().
 */
 NSPR_API(PRStatus) PR_WaitCondVar(PRCondVar *cvar, PRIntervalTime timeout);
 
 /*
 ** Notify ONE thread that is currently waiting on 'cvar'. Which thread is
 ** dependent on the implementation of the runtime. Common sense would dictate
 ** that all threads waiting on a single condition have identical semantics,
-** therefore which one gets notified is not significant. 
+** therefore which one gets notified is not significant.
 **
 ** The calling thead must hold the lock that protects the condition, as
 ** well as the invariants that are tightly bound to the condition, when
 ** notify is called.
 **
 ** Returns PR_FAILURE if the caller has not locked the lock associated
 ** with the condition variable.
 */
--- a/pr/include/prenv.h
+++ b/pr/include/prenv.h
@@ -13,85 +13,85 @@
 /****************** THESE FUNCTIONS MAY NOT BE THREAD SAFE *********************/
 /*******************************************************************************/
 /*******************************************************************************/
 
 PR_BEGIN_EXTERN_C
 
 /*
 ** PR_GetEnv() -- Retrieve value of environment variable
-** 
+**
 ** Description:
 ** PR_GetEnv() is modeled on Unix getenv().
-** 
-** 
-** Inputs: 
+**
+**
+** Inputs:
 **   var -- The name of the environment variable
-** 
+**
 ** Returns:
 **   The value of the environment variable 'var' or NULL if
 ** the variable is undefined.
-** 
+**
 ** Restrictions:
 **   You'd think that a POSIX getenv(), putenv() would be
 **   consistently implemented everywhere. Surprise! It is not. On
 **   some platforms, a putenv() where the argument is of
 **   the form "name"  causes the named environment variable to
 **   be un-set; that is: a subsequent getenv() returns NULL. On
 **   other platforms, the putenv() fails, on others, it is a
 **   no-op. Similarly, a putenv() where the argument is of the
 **   form "name=" causes the named environment variable to be
 **   un-set; a subsequent call to getenv() returns NULL. On
 **   other platforms, a subsequent call to getenv() returns a
 **   pointer to a null-string (a byte of zero).
-** 
-**   PR_GetEnv(), PR_SetEnv() provide a consistent behavior 
+**
+**   PR_GetEnv(), PR_SetEnv() provide a consistent behavior
 **   across all supported platforms. There are, however, some
 **   restrictions and some practices you must use to achieve
 **   consistent results everywhere.
-** 
+**
 **   When manipulating the environment there is no way to un-set
 **   an environment variable across all platforms. We suggest
 **   you interpret the return of a pointer to null-string to
 **   mean the same as a return of NULL from PR_GetEnv().
-** 
+**
 **   A call to PR_SetEnv() where the parameter is of the form
 **   "name" will return PR_FAILURE; the environment remains
 **   unchanged. A call to PR_SetEnv() where the parameter is
 **   of the form "name=" may un-set the envrionment variable on
 **   some platforms; on others it may set the value of the
 **   environment variable to the null-string.
-** 
+**
 **   For example, to test for NULL return or return of the
 **   null-string from PR_GetEnv(), use the following code
 **   fragment:
-** 
+**
 **      char *val = PR_GetEnv("foo");
-**      if ((NULL == val) || ('\0' == *val)) { 
-**          ... interpret this as un-set ... 
+**      if ((NULL == val) || ('\0' == *val)) {
+**          ... interpret this as un-set ...
 **      }
-** 
+**
 **   The caller must ensure that the string passed
 **   to PR_SetEnv() is persistent. That is: The string should
 **   not be on the stack, where it can be overwritten
 **   on return from the function calling PR_SetEnv().
 **   Similarly, the string passed to PR_SetEnv() must not be
 **   overwritten by other actions of the process. ... Some
 **   platforms use the string by reference rather than copying
 **   it into the environment space. ... You have been warned!
-** 
+**
 **   Use of platform-native functions that manipulate the
-**   environment (getenv(), putenv(), 
+**   environment (getenv(), putenv(),
 **   SetEnvironmentVariable(), etc.) must not be used with
 **   NSPR's similar functions. The platform-native functions
 **   may not be thread safe and/or may operate on different
 **   conceptual environment space than that operated upon by
 **   NSPR's functions or other environment manipulating
 **   functions on the same platform. (!)
-** 
+**
 */
 NSPR_API(char*) PR_GetEnv(const char *var);
 
 /*
 ** PR_GetEnvSecure() -- get a security-sensitive environment variable
 **
 ** Description:
 **
@@ -101,34 +101,34 @@ NSPR_API(char*) PR_GetEnv(const char *va
 ** could otherwise be used for privilege escalation.  Note that some
 ** platforms may have platform-specific privilege elevation mechanisms
 ** not recognized by this function; see the implementation for details.
 */
 NSPR_API(char*) PR_GetEnvSecure(const char *var);
 
 /*
 ** PR_SetEnv() -- set, unset or change an environment variable
-** 
+**
 ** Description:
 ** PR_SetEnv() is modeled on the Unix putenv() function.
-** 
-** Inputs: 
+**
+** Inputs:
 **   string -- pointer to a caller supplied
 **   constant, persistent string of the form name=value. Where
 **   name is the name of the environment variable to be set or
 **   changed; value is the value assigned to the variable.
 **
-** Returns: 
+** Returns:
 **   PRStatus.
-** 
-** Restrictions: 
+**
+** Restrictions:
 **   See the Restrictions documented in the description of
 **   PR_GetEnv() in this header file.
-** 
-** 
+**
+**
 */
 NSPR_API(PRStatus) PR_SetEnv(const char *string);
 
 /*
 ** PR_DuplicateEnvironment() -- Obtain a copy of the environment.
 **
 ** Description:
 ** PR_DuplicateEnvironment() copies the environment so that it can be
--- a/pr/include/prerror.h
+++ b/pr/include/prerror.h
@@ -76,17 +76,17 @@ without specific, written prior permissi
 make no representations about the suitability of this software for any
 purpose.  It is provided "as is" without express or implied warranty.
 */
 
 
 /*
  * NOTE:
  *		The interfaces for error-code-translation described in the rest of
- *		this file are preliminary in the 3.1 release of nspr and are subject 
+ *		this file are preliminary in the 3.1 release of nspr and are subject
  *		to change in future releases.
  */
 
 /*
 ** Description:	Localizable error code to string function.
 **
 **
 ** NSPR provides a mechanism for converting an error code to a
@@ -166,17 +166,17 @@ struct PRErrorTable {
     const char *name; /* Name of error table source */
     PRErrorCode base; /* Error code for first error in table */
     int n_msgs; /* Number of codes in table */
 };
 
 /*
  * struct PRErrorCallbackPrivate --
  *
- *    A private structure for the localization plugin 
+ *    A private structure for the localization plugin
  */
 struct PRErrorCallbackPrivate;
 
 /*
  * struct PRErrorCallbackTablePrivate --
  *
  *    A data structure under which the localization plugin may store information,
  *    associated with an error table, that is private to itself.
@@ -189,17 +189,17 @@ struct PRErrorCallbackTablePrivate;
  *    A function of PRErrorCallbackLookupFn type is a localization
  *    plugin callback which converts an error code into a description
  *    in the requested language.  The callback is provided the
  *    appropriate error table, private data for the plugin and the table.
  *    The callback returns the appropriate UTF-8 encoded description, or NULL
  *    if no description can be found.
  */
 typedef const char *
-PRErrorCallbackLookupFn(PRErrorCode code, PRLanguageCode language, 
+PRErrorCallbackLookupFn(PRErrorCode code, PRLanguageCode language,
 		   const struct PRErrorTable *table,
 		   struct PRErrorCallbackPrivate *cb_private,
 		   struct PRErrorCallbackTablePrivate *table_private);
 
 /*
  * PRErrorCallbackNewTableFn --
  *
  *    A function PRErrorCallbackNewTableFn type is a localization plugin
@@ -261,17 +261,17 @@ NSPR_API(const char * const *) PR_ErrorL
 /***********************************************************************
 ** FUNCTION:    PR_ErrorInstallTable
 ** DESCRIPTION:
 **  Registers an error table with NSPR.  Must be done exactly once per
 **  table.  Memory pointed to by `table' must remain valid for the life
 **  of the process.
 **
 **  NOT THREAD SAFE!
-**  
+**
 ***********************************************************************/
 NSPR_API(PRErrorCode) PR_ErrorInstallTable(const struct PRErrorTable *table);
 
 
 /***********************************************************************
 ** FUNCTION:    PR_ErrorInstallCallback
 ** DESCRIPTION:
 **  Registers an error localization plugin with NSPR.  May be called
@@ -280,15 +280,15 @@ NSPR_API(PRErrorCode) PR_ErrorInstallTab
 **  respectively.  `lookup' and `newtable' contain pointers to
 **  the plugin callback functions.  `cb_private' contains any information
 **  private to the plugin functions.
 **
 **  NOT THREAD SAFE!
 **
 ***********************************************************************/
 NSPR_API(void) PR_ErrorInstallCallback(const char * const * languages,
-			      PRErrorCallbackLookupFn *lookup, 
+			      PRErrorCallbackLookupFn *lookup,
 			      PRErrorCallbackNewTableFn *newtable,
 			      struct PRErrorCallbackPrivate *cb_private);
 
 PR_END_EXTERN_C
 
 #endif /* prerror_h___ */
--- a/pr/include/prinrval.h
+++ b/pr/include/prinrval.h
@@ -29,31 +29,31 @@ PR_BEGIN_EXTERN_C
 typedef PRUint32 PRIntervalTime;
 
 /***********************************************************************
 ** DEFINES:     PR_INTERVAL_MIN
 **              PR_INTERVAL_MAX
 ** DESCRIPTION:
 **  These two constants define the range (in ticks / second) of the
 **  platform dependent type, PRIntervalTime. These constants bound both
-**  the period and the resolution of a PRIntervalTime. 
+**  the period and the resolution of a PRIntervalTime.
 ***********************************************************************/
 #define PR_INTERVAL_MIN 1000UL
 #define PR_INTERVAL_MAX 100000UL
 
 /***********************************************************************
 ** DEFINES:     PR_INTERVAL_NO_WAIT
 **              PR_INTERVAL_NO_TIMEOUT
 ** DESCRIPTION:
 **  Two reserved constants are defined in the PRIntervalTime namespace.
 **  They are used to indicate that the process should wait no time (return
 **  immediately) or wait forever (never time out), respectively.
-**  Note: PR_INTERVAL_NO_TIMEOUT passed as input to PR_Connect is 
+**  Note: PR_INTERVAL_NO_TIMEOUT passed as input to PR_Connect is
 **  interpreted as use the OS's connect timeout.
-**  
+**
 ***********************************************************************/
 #define PR_INTERVAL_NO_WAIT 0UL
 #define PR_INTERVAL_NO_TIMEOUT 0xffffffffUL
 
 /**********************************************************************/
 /****************************** FUNCTIONS *****************************/
 /**********************************************************************/
 
@@ -61,37 +61,37 @@ typedef PRUint32 PRIntervalTime;
 ** FUNCTION:    PR_IntervalNow
 ** DESCRIPTION:
 **  Return the value of NSPR's free running interval timer. That timer
 **  can be used to establish epochs and determine intervals (be computing
 **  the difference between two times).
 ** INPUTS:      void
 ** OUTPUTS:     void
 ** RETURN:      PRIntervalTime
-**  
+**
 ** SIDE EFFECTS:
 **  None
 ** RESTRICTIONS:
 **  The units of PRIntervalTime are platform dependent. They are chosen
 **  such that they are appropriate for the host OS, yet provide sufficient
-**  resolution and period to be useful to clients. 
+**  resolution and period to be useful to clients.
 ** MEMORY:      N/A
 ** ALGORITHM:   Platform dependent
 ***********************************************************************/
 NSPR_API(PRIntervalTime) PR_IntervalNow(void);
 
 /***********************************************************************
 ** FUNCTION:    PR_TicksPerSecond
 ** DESCRIPTION:
 **  Return the number of ticks per second for PR_IntervalNow's clock.
 **  The value will be in the range [PR_INTERVAL_MIN..PR_INTERVAL_MAX].
 ** INPUTS:      void
 ** OUTPUTS:     void
 ** RETURN:      PRUint32
-**  
+**
 ** SIDE EFFECTS:
 **  None
 ** RESTRICTIONS:
 **  None
 ** MEMORY:      N/A
 ** ALGORITHM:   N/A
 ***********************************************************************/
 NSPR_API(PRUint32) PR_TicksPerSecond(void);
@@ -100,17 +100,17 @@ NSPR_API(PRUint32) PR_TicksPerSecond(voi
 ** FUNCTION:    PR_SecondsToInterval
 **              PR_MillisecondsToInterval
 **              PR_MicrosecondsToInterval
 ** DESCRIPTION:
 **  Convert standard clock units to platform dependent intervals.
 ** INPUTS:      PRUint32
 ** OUTPUTS:     void
 ** RETURN:      PRIntervalTime
-**  
+**
 ** SIDE EFFECTS:
 **  None
 ** RESTRICTIONS:
 **  Conversion may cause overflow, which is not reported.
 ** MEMORY:      N/A
 ** ALGORITHM:   N/A
 ***********************************************************************/
 NSPR_API(PRIntervalTime) PR_SecondsToInterval(PRUint32 seconds);
@@ -121,17 +121,17 @@ NSPR_API(PRIntervalTime) PR_Microseconds
 ** FUNCTION:    PR_IntervalToSeconds
 **              PR_IntervalToMilliseconds
 **              PR_IntervalToMicroseconds
 ** DESCRIPTION:
 **  Convert platform dependent intervals to standard clock units.
 ** INPUTS:      PRIntervalTime
 ** OUTPUTS:     void
 ** RETURN:      PRUint32
-**  
+**
 ** SIDE EFFECTS:
 **  None
 ** RESTRICTIONS:
 **  Conversion may cause overflow, which is not reported.
 ** MEMORY:      N/A
 ** ALGORITHM:   N/A
 ***********************************************************************/
 NSPR_API(PRUint32) PR_IntervalToSeconds(PRIntervalTime ticks);
--- a/pr/include/prio.h
+++ b/pr/include/prio.h
@@ -485,17 +485,17 @@ NSPR_API(PRFileDesc*) PR_CreateIOLayerSt
 
 /*
  **************************************************************************
  * Creating a layer
  *
  * A new stack may be created by calling PR_CreateIOLayer(). The
  * file descriptor returned will point to the top of the stack, which has
  * the layer 'fd' as the topmost layer.
- * 
+ *
  * NOTE: This function creates a new style stack, which has a fixed, dummy
  * header. The old style stack, created by a call to PR_PushIOLayer,
  * results in modifying contents of the top layer of the stack, when
  * pushing and popping layers of the stack.
  **************************************************************************
  */
 NSPR_API(PRFileDesc*) PR_CreateIOLayer(PRFileDesc* fd);
 
@@ -549,17 +549,17 @@ NSPR_API(PRFileDesc*) PR_PopIOLayer(PRFi
  *		PR_CREATE_FILE   If the file does not exist, the file is created
  *                              If the file exists, this flag has no effect.
  *      PR_SYNC          If set, each write will wait for both the file data
  *                              and file status to be physically updated.
  *		PR_APPEND        The file pointer is set to the end of
  *                              the file prior to each write.
  *		PR_TRUNCATE      If the file exists, its length is truncated to 0.
  *      PR_EXCL          With PR_CREATE_FILE, if the file does not exist,
- *                              the file is created. If the file already 
+ *                              the file is created. If the file already
  *                              exists, no action and NULL is returned
  *
  *     PRIntn mode
  *         The access permission bits of the file mode, if the file is
  *         created when PR_CREATE_FILE is on.
  * OUTPUTS:    None
  * RETURNS:    PRFileDesc *
  *     If the file is successfully opened,
@@ -1412,18 +1412,18 @@ typedef enum PRShutdownHow
 
 NSPR_API(PRStatus)    PR_Shutdown(PRFileDesc *fd, PRShutdownHow how);
 
 /*
  *************************************************************************
  * FUNCTION: PR_Recv
  * DESCRIPTION:
  *    Receive a specified number of bytes from a connected socket.
- *     The operation will block until some positive number of bytes are 
- *     transferred, a time out has occurred, or there is an error. 
+ *     The operation will block until some positive number of bytes are
+ *     transferred, a time out has occurred, or there is an error.
  *     No more than 'amount' bytes will be transferred.
  * INPUTS:
  *     PRFileDesc *fd
  *       points to a PRFileDesc object representing a socket.
  *     void *buf
  *       pointer to a buffer to hold the data received.
  *     PRInt32 amount
  *       the size of 'buf' (in bytes)
@@ -1446,18 +1446,18 @@ NSPR_API(PRStatus)    PR_Shutdown(PRFile
 NSPR_API(PRInt32)    PR_Recv(PRFileDesc *fd, void *buf, PRInt32 amount,
                 PRIntn flags, PRIntervalTime timeout);
 
 /*
  *************************************************************************
  * FUNCTION: PR_Send
  * DESCRIPTION:
  *    Send a specified number of bytes from a connected socket.
- *     The operation will block until all bytes are 
- *     processed, a time out has occurred, or there is an error. 
+ *     The operation will block until all bytes are
+ *     processed, a time out has occurred, or there is an error.
  * INPUTS:
  *     PRFileDesc *fd
  *       points to a PRFileDesc object representing a socket.
  *     void *buf
  *       pointer to a buffer from where the data is sent.
  *     PRInt32 amount
  *       the size of 'buf' (in bytes)
  *     PRIntn flags
@@ -1478,18 +1478,18 @@ NSPR_API(PRInt32)    PR_Send(PRFileDesc 
                                 PRIntn flags, PRIntervalTime timeout);
 
 /*
  *************************************************************************
  * FUNCTION: PR_RecvFrom
  * DESCRIPTION:
  *     Receive up to a specified number of bytes from socket which may
  *     or may not be connected.
- *     The operation will block until one or more bytes are 
- *     transferred, a time out has occurred, or there is an error. 
+ *     The operation will block until one or more bytes are
+ *     transferred, a time out has occurred, or there is an error.
  *     No more than 'amount' bytes will be transferred.
  * INPUTS:
  *     PRFileDesc *fd
  *       points to a PRFileDesc object representing a socket.
  *     void *buf
  *       pointer to a buffer to hold the data received.
  *     PRInt32 amount
  *       the size of 'buf' (in bytes)
@@ -1513,18 +1513,18 @@ NSPR_API(PRInt32) PR_RecvFrom(
     PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags,
     PRNetAddr *addr, PRIntervalTime timeout);
 
 /*
  *************************************************************************
  * FUNCTION: PR_SendTo
  * DESCRIPTION:
  *    Send a specified number of bytes from an unconnected socket.
- *    The operation will block until all bytes are 
- *    sent, a time out has occurred, or there is an error. 
+ *    The operation will block until all bytes are
+ *    sent, a time out has occurred, or there is an error.
  * INPUTS:
  *     PRFileDesc *fd
  *       points to a PRFileDesc object representing an unconnected socket.
  *     void *buf
  *       pointer to a buffer from where the data is sent.
  *     PRInt32 amount
  *       the size of 'buf' (in bytes)
  *     PRIntn flags
@@ -1545,37 +1545,37 @@ NSPR_API(PRInt32) PR_RecvFrom(
 NSPR_API(PRInt32) PR_SendTo(
     PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags,
     const PRNetAddr *addr, PRIntervalTime timeout);
 
 /*
 *************************************************************************
 ** FUNCTION: PR_TransmitFile
 ** DESCRIPTION:
-**    Transmitfile sends a complete file (sourceFile) across a socket 
+**    Transmitfile sends a complete file (sourceFile) across a socket
 **    (networkSocket).  If headers is non-NULL, the headers will be sent across
 **    the socket prior to sending the file.
-** 
+**
 **    Optionally, the PR_TRANSMITFILE_CLOSE_SOCKET flag may be passed to
 **    transmitfile.  This flag specifies that transmitfile should close the
 **    socket after sending the data.
 **
 ** INPUTS:
 **    PRFileDesc *networkSocket
 **        The socket to send data over
 **    PRFileDesc *sourceFile
 **        The file to send
 **    const void *headers
 **        A pointer to headers to be sent before sending data
 **    PRInt32       hlen
 **        length of header buffers in bytes.
 **    PRTransmitFileFlags       flags
 **        If the flags indicate that the connection should be closed,
 **        it will be done immediately after transferring the file, unless
-**        the operation is unsuccessful. 
+**        the operation is unsuccessful.
 .*     PRIntervalTime timeout
  *        Time limit for completion of the transmit operation.
 **
 ** RETURNS:
 **    Returns the number of bytes written or -1 if the operation failed.
 **    If an error occurs while sending the file, the PR_TRANSMITFILE_CLOSE_
 **    SOCKET flag is ignored. The reason for the failure is obtained
 **    by calling PR_GetError().
@@ -1586,35 +1586,35 @@ NSPR_API(PRInt32) PR_TransmitFile(
     PRFileDesc *networkSocket, PRFileDesc *sourceFile,
     const void *headers, PRInt32 hlen, PRTransmitFileFlags flags,
     PRIntervalTime timeout);
 
 /*
 *************************************************************************
 ** FUNCTION: PR_SendFile
 ** DESCRIPTION:
-**    PR_SendFile sends data from a file (sendData->fd) across a socket 
+**    PR_SendFile sends data from a file (sendData->fd) across a socket
 **    (networkSocket).  If specified, a header and/or trailer buffer are sent
 **	  before and after the file, respectively. The file offset, number of bytes
 ** 	  of file data to send, the header and trailer buffers are specified in the
 **	  sendData argument.
-** 
+**
 **    Optionally, if the PR_TRANSMITFILE_CLOSE_SOCKET flag is passed, the
 **    socket is closed after successfully sending the data.
 **
 ** INPUTS:
 **    PRFileDesc *networkSocket
 **        The socket to send data over
 **    PRSendFileData *sendData
 **        Contains the FD, file offset and length, header and trailer
 **		  buffer specifications.
 **    PRTransmitFileFlags       flags
 **        If the flags indicate that the connection should be closed,
 **        it will be done immediately after transferring the file, unless
-**        the operation is unsuccessful. 
+**        the operation is unsuccessful.
 .*     PRIntervalTime timeout
  *        Time limit for completion of the send operation.
 **
 ** RETURNS:
 **    Returns the number of bytes written or -1 if the operation failed.
 **    If an error occurs while sending the file, the PR_TRANSMITFILE_CLOSE_
 **    SOCKET flag is ignored. The reason for the failure is obtained
 **    by calling PR_GetError().
@@ -1639,52 +1639,52 @@ NSPR_API(PRInt32) PR_SendFile(
 	PRTransmitFileFlags flags, PRIntervalTime timeout);
 
 /*
 *************************************************************************
 ** FUNCTION: PR_AcceptRead
 ** DESCRIPTION:
 **    AcceptRead accepts a new connection, returns the newly created
 **    socket's descriptor and also returns the connecting peer's address.
-**    AcceptRead, as its name suggests, also receives the first block of data 
+**    AcceptRead, as its name suggests, also receives the first block of data
 **    sent by the peer.
 **
 ** INPUTS:
 **    PRFileDesc *listenSock
-**        A socket descriptor that has been called with the PR_Listen() 
+**        A socket descriptor that has been called with the PR_Listen()
 **        function, also known as the rendezvous socket.
 **    void *buf
-**        A pointer to a buffer to receive data sent by the client.  This 
+**        A pointer to a buffer to receive data sent by the client.  This
 **        buffer must be large enough to receive <amount> bytes of data
 **        and two PRNetAddr structures, plus an extra 32 bytes. See:
 **        PR_ACCEPT_READ_BUF_OVERHEAD.
 **    PRInt32 amount
 **        The number of bytes of client data to receive.  Does not include
 **        the size of the PRNetAddr structures.  If 0, no data will be read
 **        from the client.
 **    PRIntervalTime timeout
-**        The timeout interval only applies to the read portion of the 
-**        operation.  PR_AcceptRead will block indefinitely until the 
-**        connection is accepted; the read will timeout after the timeout 
+**        The timeout interval only applies to the read portion of the
+**        operation.  PR_AcceptRead will block indefinitely until the
+**        connection is accepted; the read will timeout after the timeout
 **        interval elapses.
 ** OUTPUTS:
 **    PRFileDesc **acceptedSock
 **        The file descriptor for the newly connected socket.  This parameter
 **        will only be valid if the function return does not indicate failure.
 **    PRNetAddr  **peerAddr,
 **        The address of the remote socket.  This parameter will only be
 **        valid if the function return does not indicate failure.  The
 **        returned address is not guaranteed to be properly aligned.
-** 
+**
 ** RETURNS:
-**     The number of bytes read from the client or -1 on failure.  The reason 
+**     The number of bytes read from the client or -1 on failure.  The reason
 **     for the failure is obtained by calling PR_GetError().
 **************************************************************************
-**/       
-/* define buffer overhead constant. Add this value to the user's 
+**/
+/* define buffer overhead constant. Add this value to the user's
 ** data length when allocating a buffer to accept data.
 **    Example:
 **    #define USER_DATA_SIZE 10
 **    char buf[USER_DATA_SIZE + PR_ACCEPT_READ_BUF_OVERHEAD];
 **    bytesRead = PR_AcceptRead( s, fd, &a, &p, USER_DATA_SIZE, ...);
 */
 #define PR_ACCEPT_READ_BUF_OVERHEAD (32+(2*sizeof(PRNetAddr)))
 
@@ -1701,17 +1701,17 @@ NSPR_API(PRInt32) PR_AcceptRead(
 **    written to one can be read from the other and vice-versa.
 **
 ** INPUTS:
 **    None
 ** OUTPUTS:
 **    PRFileDesc *fds[2]
 **        The file descriptor pair for the newly created TCP sockets.
 ** RETURN: PRStatus
-**     Upon successful completion of TCP socket pair, PR_NewTCPSocketPair 
+**     Upon successful completion of TCP socket pair, PR_NewTCPSocketPair
 **     returns PR_SUCCESS.  Otherwise, it returns PR_FAILURE.  Further
 **     failure information can be obtained by calling PR_GetError().
 ** XXX can we implement this on windoze and mac?
 **************************************************************************
 **/
 NSPR_API(PRStatus) PR_NewTCPSocketPair(PRFileDesc *fds[2]);
 
 /*
@@ -1722,40 +1722,40 @@ NSPR_API(PRStatus) PR_NewTCPSocketPair(P
 **
 ** INPUTS:
 **     PRFileDesc *fd
 **       Points to a PRFileDesc object representing the socket.
 ** OUTPUTS:
 **     PRNetAddr *addr
 **       Returns the address of the socket in its own communication space.
 ** RETURN: PRStatus
-**     Upon successful completion, PR_GetSockName returns PR_SUCCESS.  
-**     Otherwise, it returns PR_FAILURE.  Further failure information can 
+**     Upon successful completion, PR_GetSockName returns PR_SUCCESS.
+**     Otherwise, it returns PR_FAILURE.  Further failure information can
 **     be obtained by calling PR_GetError().
 **************************************************************************
 **/
 NSPR_API(PRStatus)	PR_GetSockName(PRFileDesc *fd, PRNetAddr *addr);
 
 /*
 *************************************************************************
 ** FUNCTION: PR_GetPeerName
 ** DESCRIPTION:
-**    Get name of the connected peer.  Return the network address for the 
+**    Get name of the connected peer.  Return the network address for the
 **    connected peer socket.
 **
 ** INPUTS:
 **     PRFileDesc *fd
 **       Points to a PRFileDesc object representing the connected peer.
 ** OUTPUTS:
 **     PRNetAddr *addr
 **       Returns the address of the connected peer in its own communication
 **       space.
 ** RETURN: PRStatus
-**     Upon successful completion, PR_GetPeerName returns PR_SUCCESS.  
-**     Otherwise, it returns PR_FAILURE.  Further failure information can 
+**     Upon successful completion, PR_GetPeerName returns PR_SUCCESS.
+**     Otherwise, it returns PR_FAILURE.  Further failure information can
 **     be obtained by calling PR_GetError().
 **************************************************************************
 **/
 NSPR_API(PRStatus)	PR_GetPeerName(PRFileDesc *fd, PRNetAddr *addr);
 
 NSPR_API(PRStatus)	PR_GetSocketOption(
     PRFileDesc *fd, PRSocketOptionData *data);
 
@@ -1779,18 +1779,18 @@ NSPR_API(PRStatus)	PR_SetSocketOption(
  * INPUTS:
  *     PRFileDesc *fd
  *       Points to a PRFileDesc object.
  *     PRBool inheritable
  *       If PR_TRUE, the file descriptor fd is set to be inheritable
  *       by a child process.  If PR_FALSE, the file descriptor is set
  *       to be not inheritable by a child process.
  * RETURN: PRStatus
- *     Upon successful completion, PR_SetFDInheritable returns PR_SUCCESS.  
- *     Otherwise, it returns PR_FAILURE.  Further failure information can 
+ *     Upon successful completion, PR_SetFDInheritable returns PR_SUCCESS.
+ *     Otherwise, it returns PR_FAILURE.  Further failure information can
  *     be obtained by calling PR_GetError().
  *************************************************************************
  */
 NSPR_API(PRStatus) PR_SetFDInheritable(
     PRFileDesc *fd,
     PRBool inheritable);
 
 /*
@@ -1799,17 +1799,17 @@ NSPR_API(PRStatus) PR_SetFDInheritable(
  * DESCRIPTION:
  *    Get an inherited file descriptor with the specified name.
  *
  * INPUTS:
  *     const char *name
  *       The name of the inherited file descriptor.
  * RETURN: PRFileDesc *
  *     Upon successful completion, PR_GetInheritedFD returns the
- *     inherited file descriptor with the specified name.  Otherwise,  
+ *     inherited file descriptor with the specified name.  Otherwise,
  *     it returns NULL.  Further failure information can be obtained
  *     by calling PR_GetError().
  *************************************************************************
  */
 NSPR_API(PRFileDesc *) PR_GetInheritedFD(const char *name);
 
 /*
  *********************************************************************
--- a/pr/include/private/pprio.h
+++ b/pr/include/private/pprio.h
@@ -49,17 +49,17 @@ NSPR_API(const PRIOMethods*)    PR_GetPi
 ** blocking or closes it), NSPR will not work correctly.
 */
 NSPR_API(PROsfd)       PR_FileDesc2NativeHandle(PRFileDesc *);
 NSPR_API(void)         PR_ChangeFileDescNativeHandle(PRFileDesc *, PROsfd);
 NSPR_API(PRFileDesc*)  PR_AllocFileDesc(PROsfd osfd,
                                          const PRIOMethods *methods);
 NSPR_API(void)         PR_FreeFileDesc(PRFileDesc *fd);
 /*
-** Import an existing OS file to NSPR. 
+** Import an existing OS file to NSPR.
 */
 NSPR_API(PRFileDesc*)  PR_ImportFile(PROsfd osfd);
 NSPR_API(PRFileDesc*)  PR_ImportPipe(PROsfd osfd);
 NSPR_API(PRFileDesc*)  PR_ImportTCPSocket(PROsfd osfd);
 NSPR_API(PRFileDesc*)  PR_ImportUDPSocket(PROsfd osfd);
 
 
 /*
@@ -182,32 +182,32 @@ NSPR_API(PRInt32) PR_NTFast_AcceptRead(P
 typedef void (*_PR_AcceptTimeoutCallback)(void *);
 
 /* FUNCTION: PR_NTFast_AcceptRead_WithTimeoutCallback
 ** DESCRIPTION:
 **    The AcceptEx call combines the accept with the read function.  However,
 **    our daemon threads need to be able to wakeup and reliably flush their
 **    log buffers if the Accept times out.  However, with the current blocking
 **    interface to AcceptRead, there is no way for us to timeout the Accept;
-**    this is because when we timeout the Read, we can close the newly 
+**    this is because when we timeout the Read, we can close the newly
 **    socket and continue; but when we timeout the accept itself, there is no
 **    new socket to timeout.  So instead, this version of the function is
 **    provided.  After the initial timeout period elapses on the accept()
 **    portion of the function, it will call the callback routine and then
-**    continue the accept.   If the timeout occurs on the read, it will 
+**    continue the accept.   If the timeout occurs on the read, it will
 **    close the connection and return error.
 */
 NSPR_API(PRInt32) PR_NTFast_AcceptRead_WithTimeoutCallback(
-              PRFileDesc *sd, 
+              PRFileDesc *sd,
               PRFileDesc **nd,
-              PRNetAddr **raddr, 
-              void *buf, 
-              PRInt32 amount, 
+              PRNetAddr **raddr,
+              void *buf,
+              PRInt32 amount,
               PRIntervalTime t,
-              _PR_AcceptTimeoutCallback callback, 
+              _PR_AcceptTimeoutCallback callback,
               void *callback_arg);
 
 /* FUNCTION: PR_NTFast_Accept
 ** DESCRIPTION:
 **    NT has the notion of an "accept context", which is only needed in
 **    order to make certain calls.  By default, a socket connected via
 **    AcceptEx can only do a limited number of things without updating
 **    the acceptcontext.  The generic version of PR_Accept always
@@ -219,17 +219,17 @@ NSPR_API(PRFileDesc*)	PR_NTFast_Accept(P
 /* FUNCTION: PR_NTFast_Update
 ** DESCRIPTION:
 **    For sockets accepted with PR_NTFast_Accept or PR_NTFastAcceptRead,
 **    this function will update the accept context for those sockets,
 **    so that the socket can make general purpose socket calls.
 **    Without calling this, the only operations supported on the socket
 **    Are PR_Read, PR_Write, PR_Transmitfile, and PR_Close.
 */
-NSPR_API(void) PR_NTFast_UpdateAcceptContext(PRFileDesc *acceptSock, 
+NSPR_API(void) PR_NTFast_UpdateAcceptContext(PRFileDesc *acceptSock,
                                         PRFileDesc *listenSock);
 
 
 /* FUNCTION: PR_NT_CancelIo
 ** DESCRIPTION:
 **    Cancel IO operations on fd.
 */
 NSPR_API(PRStatus) PR_NT_CancelIo(PRFileDesc *fd);
--- a/pr/include/private/pprthred.h
+++ b/pr/include/private/pprthred.h
@@ -76,17 +76,17 @@ NSPR_API(void) PR_SetThreadDumpProc(
 ** The processor mask is returned in the mask argument.
 ** The least-significant-bit represents processor 0.
 **
 ** Returns 0 on success, -1 on failure.
 */
 NSPR_API(PRInt32) PR_GetThreadAffinityMask(PRThread *thread, PRUint32 *mask);
 
 /*
-** Set this thread's affinity mask.  
+** Set this thread's affinity mask.
 **
 ** Returns 0 on success, -1 on failure.
 */
 NSPR_API(PRInt32) PR_SetThreadAffinityMask(PRThread *thread, PRUint32 mask );
 
 /*
 ** Set the default CPU Affinity mask.
 **
@@ -100,21 +100,21 @@ NSPR_API(void) PR_ShowStatus(void);
 
 /*
 ** Set thread recycle mode to on (1) or off (0)
 */
 NSPR_API(void) PR_SetThreadRecycleMode(PRUint32 flag);
 
 
 /*---------------------------------------------------------------------------
-** THREAD PRIVATE FUNCTIONS FOR GARBAGE COLLECTIBLE THREADS           
+** THREAD PRIVATE FUNCTIONS FOR GARBAGE COLLECTIBLE THREADS
 ---------------------------------------------------------------------------*/
 
-/* 
-** Only Garbage collectible threads participate in resume all, suspend all and 
+/*
+** Only Garbage collectible threads participate in resume all, suspend all and
 ** enumeration operations.  They are also different during creation when
 ** platform specific action may be needed (For example, all Solaris GC able
 ** threads are bound threads).
 */
 
 /*
 ** Same as PR_CreateThread except that the thread is marked as garbage
 ** collectible.
@@ -123,17 +123,17 @@ NSPR_API(PRThread*) PR_CreateThreadGCAbl
 				     void (*start)(void *arg),
 				     void *arg,
 				     PRThreadPriority priority,
 				     PRThreadScope scope,
 				     PRThreadState state,
 				     PRUint32 stackSize);
 
 /*
-** Same as PR_AttachThread except that the thread being attached is marked as 
+** Same as PR_AttachThread except that the thread being attached is marked as
 ** garbage collectible.
 */
 NSPR_API(PRThread*) PR_AttachThreadGCAble(PRThreadType type,
 					PRThreadPriority priority,
 					PRThreadStack *stack);
 
 /*
 ** Mark the thread as garbage collectible.
@@ -141,29 +141,29 @@ NSPR_API(PRThread*) PR_AttachThreadGCAbl
 NSPR_API(void) PR_SetThreadGCAble(void);
 
 /*
 ** Unmark the thread as garbage collectible.
 */
 NSPR_API(void) PR_ClearThreadGCAble(void);
 
 /*
-** This routine prevents all other GC able threads from running. This call is needed by 
+** This routine prevents all other GC able threads from running. This call is needed by
 ** the garbage collector.
 */
 NSPR_API(void) PR_SuspendAll(void);
 
 /*
-** This routine unblocks all other GC able threads that were suspended from running by 
+** This routine unblocks all other GC able threads that were suspended from running by
 ** PR_SuspendAll(). This call is needed by the garbage collector.
 */
 NSPR_API(void) PR_ResumeAll(void);
 
 /*
-** Return the thread stack pointer of the given thread. 
+** Return the thread stack pointer of the given thread.
 ** Needed by the garbage collector.
 */
 NSPR_API(void *) PR_GetSP(PRThread *thread);
 
 /*
 ** Save the registers that the GC would find interesting into the thread
 ** "t". isCurrent will be non-zero if the thread state that is being
 ** saved is the currently executing thread. Return the address of the
@@ -194,51 +194,51 @@ NSPR_API(void) SetExecutionEnvironment(P
 ** thread in the process. The enumerator returns PR_SUCCESS if the enumeration
 ** should continue, any other value is considered failure, and enumeration
 ** stops, returning the failure value from PR_EnumerateThreads.
 ** Needed by the garbage collector.
 */
 typedef PRStatus (PR_CALLBACK *PREnumerator)(PRThread *t, int i, void *arg);
 NSPR_API(PRStatus) PR_EnumerateThreads(PREnumerator func, void *arg);
 
-/* 
+/*
 ** Signature of a thread stack scanning function. It is applied to every
 ** contiguous group of potential pointers within a thread. Count denotes the
-** number of pointers. 
+** number of pointers.
 */
-typedef PRStatus 
+typedef PRStatus
 (PR_CALLBACK *PRScanStackFun)(PRThread* t,
 			      void** baseAddr, PRUword count, void* closure);
 
 /*
-** Applies scanFun to all contiguous groups of potential pointers 
+** Applies scanFun to all contiguous groups of potential pointers
 ** within a thread. This includes the stack, registers, and thread-local
 ** data. If scanFun returns a status value other than PR_SUCCESS the scan
-** is aborted, and the status value is returned. 
+** is aborted, and the status value is returned.
 */
 NSPR_API(PRStatus)
 PR_ThreadScanStackPointers(PRThread* t,
                            PRScanStackFun scanFun, void* scanClosure);
 
-/* 
+/*
 ** Calls PR_ThreadScanStackPointers for every thread.
 */
 NSPR_API(PRStatus)
 PR_ScanStackPointers(PRScanStackFun scanFun, void* scanClosure);
 
 /*
 ** Returns a conservative estimate on the amount of stack space left
-** on a thread in bytes, sufficient for making decisions about whether 
+** on a thread in bytes, sufficient for making decisions about whether
 ** to continue recursing or not.
 */
 NSPR_API(PRUword)
 PR_GetStackSpaceLeft(PRThread* t);
 
 /*---------------------------------------------------------------------------
-** THREAD CPU PRIVATE FUNCTIONS             
+** THREAD CPU PRIVATE FUNCTIONS
 ---------------------------------------------------------------------------*/
 
 /*
 ** Get a pointer to the primordial CPU.
 */
 NSPR_API(struct _PRCPU *) _PR_GetPrimordialCPU(void);
 
 /*---------------------------------------------------------------------------
--- a/pr/include/private/primpl.h
+++ b/pr/include/private/primpl.h
@@ -42,58 +42,58 @@ typedef struct PRSegment PRSegment;
 #include <sys/syscall.h>
 #endif
 
 /*************************************************************************
 *****  A Word about Model Dependent Function Naming Convention ***********
 *************************************************************************/
 
 /*
-NSPR 2.0 must implement its function across a range of platforms 
+NSPR 2.0 must implement its function across a range of platforms
 including: MAC, Windows/16, Windows/95, Windows/NT, and several
-variants of Unix. Each implementation shares common code as well 
+variants of Unix. Each implementation shares common code as well
 as having platform dependent portions. This standard describes how
 the model dependent portions are to be implemented.
 
-In header file pr/include/primpl.h, each publicly declared 
+In header file pr/include/primpl.h, each publicly declared
 platform dependent function is declared as:
 
 NSPR_API void _PR_MD_FUNCTION( long arg1, long arg2 );
 #define _PR_MD_FUNCTION _MD_FUNCTION
 
-In header file pr/include/md/<platform>/_<platform>.h, 
+In header file pr/include/md/<platform>/_<platform>.h,
 each #define'd macro is redefined as one of:
 
 #define _MD_FUNCTION <blanks>
 #define _MD_FUNCTION <expanded macro>
 #define _MD_FUNCTION <osFunction>
 #define _MD_FUNCTION <_MD_Function>
 
 Where:
 
-<blanks> is no definition at all. In this case, the function is not implemented 
-and is never called for this platform. 
-For example: 
+<blanks> is no definition at all. In this case, the function is not implemented
+and is never called for this platform.
+For example:
 #define _MD_INIT_CPUS()
 
-<expanded macro> is a C language macro expansion. 
-For example: 
+<expanded macro> is a C language macro expansion.
+For example:
 #define        _MD_CLEAN_THREAD(_thread) \
     PR_BEGIN_MACRO \
         PR_DestroyCondVar(_thread->md.asyncIOCVar); \
         PR_DestroyLock(_thread->md.asyncIOLock); \
     PR_END_MACRO
 
-<osFunction> is some function implemented by the host operating system. 
-For example: 
+<osFunction> is some function implemented by the host operating system.
+For example:
 #define _MD_EXIT        exit
 
-<_MD_function> is the name of a function implemented for this platform in 
-pr/src/md/<platform>/<soruce>.c file. 
-For example: 
+<_MD_function> is the name of a function implemented for this platform in
+pr/src/md/<platform>/<soruce>.c file.
+For example:
 #define        _MD_GETFILEINFO         _MD_GetFileInfo
 
 In <source>.c, the implementation is:
 PR_IMPLEMENT(PRInt32) _MD_GetFileInfo(const char *fn, PRFileInfo *info);
 */
 
 PR_BEGIN_EXTERN_C
 
@@ -128,17 +128,17 @@ struct _PT_Notified
     {
         PRCondVar *cv;          /* the condition variable notified */
         PRIntn times;           /* and the number of times notified */
     } cv[PT_CV_NOTIFIED_LENGTH];
     _PT_Notified *link;         /* link to another of these | NULL */
 };
 
 /*
- * bits defined for pthreads 'state' field 
+ * bits defined for pthreads 'state' field
  */
 #define PT_THREAD_DETACHED  0x01    /* thread can't be joined */
 #define PT_THREAD_GLOBAL    0x02    /* a global thread (unlikely) */
 #define PT_THREAD_SYSTEM    0x04    /* system (not user) thread */
 #define PT_THREAD_PRIMORD   0x08    /* this is the primordial thread */
 #define PT_THREAD_ABORTED   0x10    /* thread has been interrupted */
 #define PT_THREAD_GCABLE    0x20    /* thread is garbage collectible */
 #define PT_THREAD_SUSPENDED 0x40    /* thread has been suspended */
@@ -149,17 +149,17 @@ struct _PT_Notified
 		(!(thr->interrupt_blocked) && (thr->state & PT_THREAD_ABORTED))
 #define _PT_THREAD_BLOCK_INTERRUPT(thr)				\
 		(thr->interrupt_blocked = 1)
 #define _PT_THREAD_UNBLOCK_INTERRUPT(thr)			\
 		(thr->interrupt_blocked = 0)
 
 #define _PT_IS_GCABLE_THREAD(thr) ((thr)->state & PT_THREAD_GCABLE)
 
-/* 
+/*
 ** Possible values for thread's suspend field
 ** Note that the first two can be the same as they are really mutually exclusive,
 ** i.e. both cannot be happening at the same time. We have two symbolic names
 ** just as a mnemonic.
 **/
 #define PT_THREAD_RESUMED   0x80    /* thread has been resumed */
 #define PT_THREAD_SETGCABLE 0x100   /* set the GCAble flag */
 
@@ -200,23 +200,23 @@ NSPR_API(void) PT_FPrintStats(PRFileDesc
 */
 
 /*
  * Local threads only.  No multiple CPU support and hence all the
  * following routines are no-op.
  */
 #ifdef _PR_LOCAL_THREADS_ONLY
 
-#define        _PR_MD_SUSPEND_THREAD(thread)        
-#define        _PR_MD_RESUME_THREAD(thread)        
-#define        _PR_MD_SUSPEND_CPU(cpu)        
-#define        _PR_MD_RESUME_CPU(cpu)        
-#define        _PR_MD_BEGIN_SUSPEND_ALL()        
-#define        _PR_MD_END_SUSPEND_ALL()        
-#define        _PR_MD_BEGIN_RESUME_ALL()        
+#define        _PR_MD_SUSPEND_THREAD(thread)
+#define        _PR_MD_RESUME_THREAD(thread)
+#define        _PR_MD_SUSPEND_CPU(cpu)
+#define        _PR_MD_RESUME_CPU(cpu)
+#define        _PR_MD_BEGIN_SUSPEND_ALL()
+#define        _PR_MD_END_SUSPEND_ALL()
+#define        _PR_MD_BEGIN_RESUME_ALL()
 #define        _PR_MD_END_RESUME_ALL()
 #define _PR_MD_INIT_ATTACHED_THREAD(thread) PR_FAILURE
 
 #endif
 
 typedef struct _PRCPUQueue _PRCPUQueue;
 typedef struct _PRCPU _PRCPU;
 typedef struct _MDCPU _MDCPU;
@@ -247,17 +247,17 @@ struct _PRCPU {
     } u;
     PRIntn where;               /* index into u.missed */
     PRPackedBool paused;        /* cpu is paused */
     PRPackedBool exit;          /* cpu should exit */
 
     PRThread *thread;           /* native thread for this CPUThread */
     PRThread *idle_thread;      /* user-level idle thread for this CPUThread */
 
-    PRIntervalTime last_clock;  /* the last time we went into 
+    PRIntervalTime last_clock;  /* the last time we went into
                                  * _PR_ClockInterrupt() on this CPU
                                  */
 
     _PRCPUQueue *queue;
 
     _MDCPU md;
 };
 
@@ -270,17 +270,17 @@ typedef struct _PRInterruptTable {
 #define _PR_CPU_PTR(_qp) \
     ((_PRCPU*) ((char*) (_qp) - offsetof(_PRCPU,links)))
 
 #if !defined(WIN32) && !defined(XP_OS2) \
         && !(defined(SOLARIS) && defined(_PR_GLOBAL_THREADS_ONLY))
 #define _MD_GET_ATTACHED_THREAD()        (_PR_MD_CURRENT_THREAD())
 #endif
 
-#ifdef _PR_LOCAL_THREADS_ONLY 
+#ifdef _PR_LOCAL_THREADS_ONLY
 
 NSPR_API(struct _PRCPU *)              _pr_currentCPU;
 NSPR_API(PRThread *)                   _pr_currentThread;
 NSPR_API(PRThread *)                   _pr_lastThread;
 NSPR_API(PRInt32)                      _pr_intsOff;
 
 #define _MD_CURRENT_CPU()               (_pr_currentCPU)
 #define _MD_SET_CURRENT_CPU(_cpu)       (_pr_currentCPU = (_cpu))
@@ -348,17 +348,17 @@ extern PRInt32                  _native_
 
 #define _PR_INTSON(_is) \
     PR_BEGIN_MACRO \
         if ((_is == 0) && (_PR_MD_CURRENT_CPU())->u.bits) \
                 _PR_IntsOn((_PR_MD_CURRENT_CPU())); \
         _PR_MD_SET_INTSOFF(_is); \
     PR_END_MACRO
 
-#ifdef _PR_LOCAL_THREADS_ONLY 
+#ifdef _PR_LOCAL_THREADS_ONLY
 
 #define _PR_IS_NATIVE_THREAD(thread) 0
 #define _PR_THREAD_LOCK(_thread)
 #define _PR_THREAD_UNLOCK(_thread)
 #define _PR_RUNQ_LOCK(cpu)
 #define _PR_RUNQ_UNLOCK(cpu)
 #define _PR_SLEEPQ_LOCK(thread)
 #define _PR_SLEEPQ_UNLOCK(thread)
@@ -378,20 +378,20 @@ extern PRInt32                  _native_
     _PRCPU *_cpu = _thread->cpu; \
     PRInt32 _pri = _thread->priority; \
     PR_REMOVE_LINK(&(_thread)->links); \
     if (PR_CLIST_IS_EMPTY(&_PR_RUNQ(_cpu)[_pri])) \
         _PR_RUNQREADYMASK(_cpu) &= ~(1L << _pri); \
     PR_END_MACRO
 
 #define _PR_ADD_SLEEPQ(_thread, _timeout) \
-    _PR_AddSleepQ(_thread, _timeout);   
+    _PR_AddSleepQ(_thread, _timeout);
 
 #define _PR_DEL_SLEEPQ(_thread, _propogate) \
-    _PR_DelSleepQ(_thread, _propogate);  
+    _PR_DelSleepQ(_thread, _propogate);
 
 #define _PR_ADD_JOINQ(_thread, _cpu) \
     PR_APPEND_LINK(&(_thread)->links, &_PR_WAITINGTOJOINQ(_cpu));
 
 #define _PR_DEL_JOINQ(_thread) \
     PR_REMOVE_LINK(&(_thread)->links);
 
 #define _PR_ADD_SUSPENDQ(_thread, _cpu) \
@@ -413,17 +413,17 @@ extern PRInt32                  _native_
 
 #define _PR_THREAD_UNLOCK(_thread) \
     _PR_MD_UNLOCK(&(_thread)->threadLock);
 
 #define _PR_RUNQ_LOCK(_cpu) \
     PR_BEGIN_MACRO \
     _PR_MD_LOCK(&(_cpu)->queue->runQLock );\
     PR_END_MACRO
-    
+
 #define _PR_RUNQ_UNLOCK(_cpu) \
     PR_BEGIN_MACRO \
     _PR_MD_UNLOCK(&(_cpu)->queue->runQLock );\
     PR_END_MACRO
 
 #define _PR_SLEEPQ_LOCK(_cpu) \
     _PR_MD_LOCK(&(_cpu)->queue->sleepQLock );
 
@@ -462,22 +462,22 @@ extern PRInt32                  _native_
         _PR_RUNQREADYMASK(_cpu) &= ~(1L << _pri); \
     PR_ASSERT((_thread)->queueCount == QUEUE_RUN);\
     (_thread)->queueCount = 0; \
     PR_END_MACRO
 
 #define _PR_ADD_SLEEPQ(_thread, _timeout) \
     PR_ASSERT((_thread)->queueCount == 0); \
     (_thread)->queueCount = QUEUE_SLEEP; \
-    _PR_AddSleepQ(_thread, _timeout);  
+    _PR_AddSleepQ(_thread, _timeout);
 
 #define _PR_DEL_SLEEPQ(_thread, _propogate) \
     PR_ASSERT((_thread)->queueCount == QUEUE_SLEEP);\
     (_thread)->queueCount = 0; \
-    _PR_DelSleepQ(_thread, _propogate);  
+    _PR_DelSleepQ(_thread, _propogate);
 
 #define _PR_ADD_JOINQ(_thread, _cpu) \
     PR_ASSERT((_thread)->queueCount == 0); \
     (_thread)->queueCount = QUEUE_JOIN; \
     PR_APPEND_LINK(&(_thread)->links, &_PR_WAITINGTOJOINQ(_cpu));
 
 #define _PR_DEL_JOINQ(_thread) \
     PR_ASSERT((_thread)->queueCount == QUEUE_JOIN);\
@@ -520,28 +520,28 @@ NSPR_API(void) _PR_WakeupCPU(void);
 NSPR_API(void) _PR_PauseCPU(void);
 
 /************************************************************************/
 
 #define _PR_LOCK_LOCK(_lock) \
     _PR_MD_LOCK(&(_lock)->ilock);
 #define _PR_LOCK_UNLOCK(_lock) \
     _PR_MD_UNLOCK(&(_lock)->ilock);
-    
+
 extern void _PR_UnblockLockWaiter(PRLock *lock);
 extern PRStatus _PR_InitLock(PRLock *lock);
 extern void _PR_FreeLock(PRLock *lock);
 
 #define _PR_LOCK_PTR(_qp) \
     ((PRLock*) ((char*) (_qp) - offsetof(PRLock,links)))
 
 /************************************************************************/
 
 #define _PR_CVAR_LOCK(_cvar) \
-    _PR_MD_LOCK(&(_cvar)->ilock); 
+    _PR_MD_LOCK(&(_cvar)->ilock);
 #define _PR_CVAR_UNLOCK(_cvar) \
     _PR_MD_UNLOCK(&(_cvar)->ilock);
 
 extern PRStatus _PR_InitCondVar(PRCondVar *cvar, PRLock *lock);
 extern void _PR_FreeCondVar(PRCondVar *cvar);
 extern PRStatus _PR_WaitCondVar(
     PRThread *thread, PRCondVar *cvar, PRLock *lock, PRIntervalTime timeout);
 extern void _PR_NotifyCondVar(PRCondVar *cvar, PRThread *me);
@@ -574,17 +574,17 @@ NSPR_API(void) _PR_Notify(PRMonitor *mon
 #define _PR_SUSPENDED    7
 #define _PR_DEAD_STATE   8  /* for debugging */
 
 /* PRThreadStack.flags */
 #define _PR_STACK_VM            0x1    /* using vm instead of malloc */
 #define _PR_STACK_MAPPED        0x2    /* vm is mapped */
 #define _PR_STACK_PRIMORDIAL    0x4    /* stack for primordial thread */
 
-/* 
+/*
 ** If the default stcksize from the client is zero, we need to pick a machine
 ** dependent value.  This is only for standard user threads.  For custom threads,
 ** 0 has a special meaning.
 ** Adjust stackSize. Round up to a page boundary.
 */
 
 #ifndef _MD_MINIMUM_STACK_SIZE
 #define _MD_MINIMUM_STACK_SIZE	0
@@ -956,19 +956,19 @@ extern void _PR_MD_CREATE_PRIMORDIAL_USE
 extern PRThread* _PR_MD_CREATE_USER_THREAD(
                         PRUint32 stacksize,
                         void (*start)(void *),
                         void *arg);
 #define    _PR_MD_CREATE_USER_THREAD _MD_CREATE_USER_THREAD
 #endif
 
 extern PRStatus _PR_MD_CREATE_THREAD(
-                        PRThread *thread, 
-                        void (*start) (void *), 
-                        PRThreadPriority priority,                      
+                        PRThread *thread,
+                        void (*start) (void *),
+                        PRThreadPriority priority,
                         PRThreadScope scope,
                         PRThreadState state,
                         PRUint32 stackSize);
 #define    _PR_MD_CREATE_THREAD _MD_CREATE_THREAD
 
 extern void _PR_MD_JOIN_THREAD(_MDThread *md);
 #define    _PR_MD_JOIN_THREAD _MD_JOIN_THREAD
 
@@ -1128,38 +1128,38 @@ extern PRInt32 _PR_MD_BIND(PRFileDesc *f
 #define    _PR_MD_BIND _MD_BIND
 
 extern PRInt32 _PR_MD_LISTEN(PRFileDesc *fd, PRIntn backlog);
 #define    _PR_MD_LISTEN _MD_LISTEN
 
 extern PRInt32 _PR_MD_SHUTDOWN(PRFileDesc *fd, PRIntn how);
 #define    _PR_MD_SHUTDOWN _MD_SHUTDOWN
 
-extern PRInt32 _PR_MD_RECV(PRFileDesc *fd, void *buf, PRInt32 amount, 
+extern PRInt32 _PR_MD_RECV(PRFileDesc *fd, void *buf, PRInt32 amount,
                                PRIntn flags, PRIntervalTime timeout);
 #define    _PR_MD_RECV _MD_RECV
 
 extern PRInt32 _PR_MD_SEND(
-    PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, 
+    PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags,
     PRIntervalTime timeout);
 #define    _PR_MD_SEND _MD_SEND
 
-extern PRInt32 _PR_MD_ACCEPT_READ(PRFileDesc *sd, PROsfd *newSock, 
+extern PRInt32 _PR_MD_ACCEPT_READ(PRFileDesc *sd, PROsfd *newSock,
                                 PRNetAddr **raddr, void *buf, PRInt32 amount,
                                 PRIntervalTime timeout);
 #define _PR_MD_ACCEPT_READ _MD_ACCEPT_READ
 
 #ifdef WIN32
-extern PROsfd _PR_MD_FAST_ACCEPT(PRFileDesc *fd, PRNetAddr *addr, 
+extern PROsfd _PR_MD_FAST_ACCEPT(PRFileDesc *fd, PRNetAddr *addr,
                                 PRUint32 *addrlen, PRIntervalTime timeout,
                                 PRBool fast,
                                 _PR_AcceptTimeoutCallback callback,
                                 void *callbackArg);
 
-extern PRInt32 _PR_MD_FAST_ACCEPT_READ(PRFileDesc *sd, PROsfd *newSock, 
+extern PRInt32 _PR_MD_FAST_ACCEPT_READ(PRFileDesc *sd, PROsfd *newSock,
                                 PRNetAddr **raddr, void *buf, PRInt32 amount,
                                 PRIntervalTime timeout, PRBool fast,
                                 _PR_AcceptTimeoutCallback callback,
                                 void *callbackArg);
 
 extern void _PR_MD_UPDATE_ACCEPT_CONTEXT(PROsfd s, PROsfd ls);
 #define _PR_MD_UPDATE_ACCEPT_CONTEXT _MD_UPDATE_ACCEPT_CONTEXT
 /*
@@ -1167,17 +1167,17 @@ extern void _PR_MD_UPDATE_ACCEPT_CONTEXT
  * We store the value in a PRTime variable for convenience.
  * This constant is used by _PR_FileTimeToPRTime().
  * This is defined in ntmisc.c
  */
 extern const PRTime _pr_filetime_offset;
 #endif /* WIN32 */
 
 extern PRInt32 _PR_MD_SENDFILE(
-    PRFileDesc *sock, PRSendFileData *sfd, 
+    PRFileDesc *sock, PRSendFileData *sfd,
 	PRInt32 flags, PRIntervalTime timeout);
 #define _PR_MD_SENDFILE _MD_SENDFILE
 
 extern PRStatus _PR_MD_GETSOCKNAME(
     PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen);
 #define    _PR_MD_GETSOCKNAME _MD_GETSOCKNAME
 
 extern PRStatus _PR_MD_GETPEERNAME(
@@ -1252,18 +1252,18 @@ extern PRStatus _PR_MD_SET_FD_INHERITABL
 
 
 #define _PR_PROCESS_TIMEOUT_INTERRUPT_ERRORS(me) \
         if (_PR_PENDING_INTERRUPT(me)) { \
                 me->flags &= ~_PR_INTERRUPT; \
                 PR_SetError( PR_PENDING_INTERRUPT_ERROR, 0); \
         } else { \
                 PR_SetError(PR_IO_TIMEOUT_ERROR, 0); \
-        }                                                        
-                
+        }
+
 extern void *_PR_MD_GET_SP(PRThread *thread);
 #define    _PR_MD_GET_SP _MD_GET_SP
 
 #endif /* defined(_PR_PTHREADS) */
 
 /************************************************************************/
 /*************************************************************************
 ** The remainder of the definitions are shared by pthreads and the classic
@@ -1405,17 +1405,17 @@ struct PRLock {
 #elif defined(_PR_BTHREADS)
     sem_id	semaphoreID;	    /* the underlying lock */
     int32	benaphoreCount;	    /* number of people in lock */
     thread_id	owner;		    /* current lock owner */
 #else /* not pthreads or Be threads */
     PRCList links;                  /* linkage for PRThread.lockList */
     struct PRThread *owner;         /* current lock owner */
     PRCList waitQ;                  /* list of threads waiting for lock */
-    PRThreadPriority priority;      /* priority of lock */ 
+    PRThreadPriority priority;      /* priority of lock */
     PRThreadPriority boostPriority; /* boosted priority of lock owner */
     _MDLock ilock;                  /* Internal Lock to protect user-level fields */
 #endif
 };
 
 struct PRCondVar {
     PRLock *lock;               /* associated lock that protects the condition */
 #if defined(_PR_PTHREADS)
@@ -1640,29 +1640,29 @@ struct PRThread {
                                      */
 
     /* thread termination condition variable for join */
     PRCondVar *term;
 
     _PRCPU *cpu;                    /* cpu to which this thread is bound    */
     PRUint32 threadAllocatedOnStack;/* boolean */
 
-    /* When an async IO is in progress and a second async IO cannot be 
+    /* When an async IO is in progress and a second async IO cannot be
      * initiated, the io_pending flag is set to true.  Some platforms will
      * not use the io_pending flag.  If the io_pending flag is true, then
      * io_fd is the OS-file descriptor on which IO is pending.
      */
     PRBool io_pending;
     PRInt32 io_fd;
- 
+
     /* If a timeout occurs or if an outstanding IO is interrupted and the
-     * OS doesn't support a real cancellation (NT or MAC), then the 
+     * OS doesn't support a real cancellation (NT or MAC), then the
      * io_suspended flag will be set to true.  The thread will be resumed
      * but may run into trouble issuing additional IOs until the io_pending
-     * flag can be cleared 
+     * flag can be cleared
      */
     PRBool io_suspended;
 
     _MDThread md;
 #endif
 };
 
 struct PRProcessAttr {
@@ -1730,17 +1730,17 @@ struct PRFilePrivate {
     PRBool  appendMode; /* Some platforms don't have O_APPEND or its
                          * equivalent, so they have to seek to end of
                          * file on write if the file was opened in
                          * append mode.  See Bugzilla 4090, 276330. */
 #endif
     _MDFileDesc md;
 #ifdef _PR_NEED_SECRET_AF
     PRUint16 af;        /* If the platform's implementation of accept()
-                         * requires knowing the address family of the 
+                         * requires knowing the address family of the
 			 * socket, we save the address family here. */
 #endif
 
 #if defined(_WIN64)
     /* This is necessary for TCP Fast Open. TCP Fast Open in windows must
      * use ConnectEx function which uses OVERLAPPED. TCPSendTo will call
      * ConnectEx to send fast open data. If ConnectEx returns
      * ERROR_IO_PENDING we need to save OVERLAPPED structure and we will
@@ -1765,20 +1765,20 @@ struct PRFilePrivate {
 #endif
 
 struct PRDir {
     PRDirEntry d;
     _MDDir md;
 };
 
 #ifdef MOZ_UNICODE
-struct PRDirUTF16 { 
-    PRDirEntry d; 
-    _MDDirUTF16 md; 
-}; 
+struct PRDirUTF16 {
+    PRDirEntry d;
+    _MDDirUTF16 md;
+};
 #endif /* MOZ_UNICODE */
 
 extern void _PR_InitLocks(void);
 extern void _PR_InitSegs(void);
 extern void _PR_InitStacks(void);
 extern void _PR_InitTPD(void);
 extern void _PR_InitMem(void);
 extern void _PR_InitEnv(void);
@@ -1908,17 +1908,17 @@ extern PRProcess * _PR_MD_CREATE_PROCESS
 
 extern PRStatus _PR_MD_DETACH_PROCESS(PRProcess *process);
 #define    _PR_MD_DETACH_PROCESS _MD_DETACH_PROCESS
 
 extern PRStatus _PR_MD_WAIT_PROCESS(PRProcess *process, PRInt32 *exitCode);
 #define    _PR_MD_WAIT_PROCESS _MD_WAIT_PROCESS
 
 extern PRStatus _PR_MD_KILL_PROCESS(PRProcess *process);
-#define    _PR_MD_KILL_PROCESS _MD_KILL_PROCESS        
+#define    _PR_MD_KILL_PROCESS _MD_KILL_PROCESS
 
 /* Current Time */
 NSPR_API(PRTime) _PR_MD_NOW(void);
 #define    _PR_MD_NOW _MD_NOW
 
 /* Environment related */
 extern char* _PR_MD_GET_ENV(const char *name);
 #define    _PR_MD_GET_ENV _MD_GET_ENV
@@ -2011,17 +2011,17 @@ extern PRStatus _PR_MD_SYNC_MEM_MAP(
     PRUint32 len);
 #define _PR_MD_SYNC_MEM_MAP _MD_SYNC_MEM_MAP
 
 /* Named Shared Memory */
 
 /*
 ** Declare PRSharedMemory.
 */
-struct PRSharedMemory 
+struct PRSharedMemory
 {
     char        *ipcname; /* after conversion to native */
     PRSize      size;  /* from open */
     PRIntn      mode;  /* from open */
     PRIntn      flags; /* from open */
 #if defined(PR_HAVE_POSIX_NAMED_SHARED_MEMORY)
     int         id;
 #elif defined(PR_HAVE_SYSV_NAMED_SHARED_MEMORY)
@@ -2029,18 +2029,18 @@ struct PRSharedMemory
 #elif defined(PR_HAVE_WIN32_NAMED_SHARED_MEMORY)
     HANDLE      handle;
 #else
     PRUint32    nothing; /* placeholder, nothing behind here */
 #endif
     PRUint32    ident; /* guard word at end of struct */
 #define _PR_SHM_IDENT 0xdeadbad
 };
-                                                      
-extern PRSharedMemory * _MD_OpenSharedMemory( 
+
+extern PRSharedMemory * _MD_OpenSharedMemory(
     const char *name,
     PRSize      size,
     PRIntn      flags,
     PRIntn      mode
 );
 #define _PR_MD_OPEN_SHARED_MEMORY _MD_OpenSharedMemory
 
 extern void * _MD_AttachSharedMemory( PRSharedMemory *shm, PRIntn flags );
@@ -2050,17 +2050,17 @@ extern PRStatus _MD_DetachSharedMemory( 
 #define _PR_MD_DETACH_SHARED_MEMORY _MD_DetachSharedMemory
 
 extern PRStatus _MD_CloseSharedMemory( PRSharedMemory *shm );
 #define _PR_MD_CLOSE_SHARED_MEMORY _MD_CloseSharedMemory
 
 extern PRStatus _MD_DeleteSharedMemory( const char *name );
 #define _PR_MD_DELETE_SHARED_MEMORY  _MD_DeleteSharedMemory
 
-extern PRFileMap* _md_OpenAnonFileMap( 
+extern PRFileMap* _md_OpenAnonFileMap(
     const char *dirName,
     PRSize      size,
     PRFileMapProtect prot
 );
 #define _PR_MD_OPEN_ANON_FILE_MAP _md_OpenAnonFileMap
 
 extern PRStatus _md_ExportFileMapAsString(
     PRFileMap *fm,
--- a/pr/include/prlink.h
+++ b/pr/include/prlink.h
@@ -90,17 +90,17 @@ NSPR_API(PRLibrary*) PR_LoadLibrary(cons
 ** a pathname in the native character encoding, a Mac code fragment
 ** by name, a Mac code fragment by index, and a UTF-16 pathname.
 */
 
 typedef enum PRLibSpecType {
     PR_LibSpec_Pathname,
     PR_LibSpec_MacNamedFragment,   /* obsolete (for Mac OS Classic) */
     PR_LibSpec_MacIndexedFragment, /* obsolete (for Mac OS Classic) */
-    PR_LibSpec_PathnameU           /* supported only on Win32 */ 
+    PR_LibSpec_PathnameU           /* supported only on Win32 */
 } PRLibSpecType;
 
 struct FSSpec; /* Mac OS Classic FSSpec */
 
 typedef struct PRLibSpec {
     PRLibSpecType type;
     union {
         /* if type is PR_LibSpec_Pathname */
@@ -129,17 +129,17 @@ typedef struct PRLibSpec {
 ** Flags not supported by the underlying OS are ignored.
 */
 
 #define PR_LD_LAZY   0x1  /* equivalent to RTLD_LAZY on Unix */
 #define PR_LD_NOW    0x2  /* equivalent to RTLD_NOW on Unix */
 #define PR_LD_GLOBAL 0x4  /* equivalent to RTLD_GLOBAL on Unix */
 #define PR_LD_LOCAL  0x8  /* equivalent to RTLD_LOCAL on Unix */
 /* The following is equivalent to LOAD_WITH_ALTERED_SEARCH_PATH on Windows */
-#define PR_LD_ALT_SEARCH_PATH  0x10  
+#define PR_LD_ALT_SEARCH_PATH  0x10
 /*                0x8000     reserved for NSPR internal use */
 
 /*
 ** Load the specified library, in the manner specified by 'flags'.
 */
 
 NSPR_API(PRLibrary *)
 PR_LoadLibraryWithFlags(
@@ -180,17 +180,17 @@ typedef void (*PRFuncPtr)(void);
 NSPR_API(PRFuncPtr) PR_FindFunctionSymbol(PRLibrary *lib, const char *name);
 
 /*
 ** Finds a symbol in one of the currently loaded libraries. Given the
 ** name of a procedure, return the address of the function that
 ** implements the procedure, and return the library that contains that
 ** symbol, or NULL if no such function can be found. This does not find
 ** symbols in the main program (the ".exe"); use PR_AddStaticLibrary to
-** register symbols in the main program.  
+** register symbols in the main program.
 **
 ** This increments the reference count of the library.
 */
 NSPR_API(void*) PR_FindSymbolAndLibrary(const char *name,
 						      PRLibrary* *lib);
 
 /*
 ** Similar to PR_FindSymbolAndLibrary, except that the return value is
--- a/pr/include/prlock.h
+++ b/pr/include/prlock.h
@@ -3,18 +3,18 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
 ** File:		prlock.h
 ** Description:	API to basic locking functions of NSPR.
 **
 **
-** NSPR provides basic locking mechanisms for thread synchronization.  Locks 
-** are lightweight resource contention controls that prevent multiple threads 
+** NSPR provides basic locking mechanisms for thread synchronization.  Locks
+** are lightweight resource contention controls that prevent multiple threads
 ** from accessing something (code/data) simultaneously.
 **/
 
 #ifndef prlock_h___
 #define prlock_h___
 
 #include "prtypes.h"
 
@@ -41,17 +41,17 @@ typedef struct PRLock PRLock;
 ** FUNCTION:    PR_NewLock
 ** DESCRIPTION:
 **  Returns a pointer to a newly created opaque lock object.
 ** INPUTS:      void
 ** OUTPUTS:     void
 ** RETURN:      PRLock*
 **   If the lock can not be created because of resource constraints, NULL
 **   is returned.
-**  
+**
 ***********************************************************************/
 NSPR_API(PRLock*) PR_NewLock(void);
 
 /***********************************************************************
 ** FUNCTION:    PR_DestroyLock
 ** DESCRIPTION:
 **  Destroys a given opaque lock object.
 ** INPUTS:      PRLock *lock
--- a/pr/include/prlog.h
+++ b/pr/include/prlog.h
@@ -31,81 +31,81 @@ PR_BEGIN_EXTERN_C
 **
 **     <moduleName>:<value>[, <moduleName>:<value>]*
 **
 ** Where:
 **  <moduleName> is the name passed to PR_NewLogModule().
 **  <value> is a numeric constant, e.g. 5. This value is the maximum
 ** value of a log event, enumerated by PRLogModuleLevel, that you want
 ** written to the log.
-** 
+**
 ** For example: to record all events of greater value than or equal to
 ** PR_LOG_ERROR for a LogModule names "gizmo", say:
-** 
+**
 ** set NSPR_LOG_MODULES=gizmo:2
-** 
+**
 ** Note that you must specify the numeric value of PR_LOG_ERROR.
-** 
+**
 ** Special LogModule names are provided for controlling NSPR's log
 ** service at execution time. These controls should be set in the
 ** NSPR_LOG_MODULES environment variable at execution time to affect
 ** NSPR's log service for your application.
-** 
+**
 ** The special LogModule "all" enables all LogModules. To enable all
 ** LogModule calls to PR_LOG(), say:
-** 
+**
 ** set NSPR_LOG_MODULES=all:5
-** 
+**
 ** The special LogModule name "sync" tells the NSPR log service to do
 ** unbuffered logging.
-** 
+**
 ** The special LogModule name "bufsize:<size>" tells NSPR to set the
 ** log buffer to <size>.
 **
 ** The environment variable NSPR_LOG_FILE specifies the log file to use
 ** unless the default of "stderr" is acceptable. For MS Windows
 ** systems, NSPR_LOG_FILE can be set to a special value: "WinDebug"
 ** (case sensitive). This value causes PR_LOG() output to be written
 ** using the Windows API OutputDebugString(). OutputDebugString()
 ** writes to the debugger window; some people find this helpful.
-** 
+**
 **
 ** To put log messages in your programs, use the PR_LOG macro:
 **
 **     PR_LOG(<module>, <level>, (<printfString>, <args>*));
 **
 ** Where <module> is the address of a PRLogModuleInfo structure, and
 ** <level> is one of the levels defined by the enumeration:
 ** PRLogModuleLevel. <args> is a printf() style of argument list. That
 ** is: (fmtstring, ...).
 **
 ** Example:
-** 
+**
 ** main() {
 **    PRIntn one = 1;
 **    PRLogModuleInfo * myLm = PR_NewLogModule("gizmo");
-**    PR_LOG( myLm, PR_LOG_ALWAYS, ("Log this! %d\n", one)); 
-**    return; 
+**    PR_LOG( myLm, PR_LOG_ALWAYS, ("Log this! %d\n", one));
+**    return;
 ** }
-** 
+**
 ** Note the use of printf() style arguments as the third agrument(s) to
 ** PR_LOG().
-** 
+**
 ** After compiling and linking you application, set the environment:
-** 
+**
 ** set NSPR_LOG_MODULES=gizmo:5
 ** set NSPR_LOG_FILE=logfile.txt
-** 
+**
 ** When you execute your application, the string "Log this! 1" will be
 ** written to the file "logfile.txt".
-** 
+**
 ** Note to NSPR engineers: a number of PRLogModuleInfo structures are
 ** defined and initialized in prinit.c. See this module for ideas on
 ** what to log where.
-** 
+**
 */
 
 typedef enum PRLogModuleLevel {
     PR_LOG_NONE = 0,                /* nothing */
     PR_LOG_ALWAYS = 1,              /* always printed */
     PR_LOG_ERROR = 2,               /* error messages */
     PR_LOG_WARNING = 3,             /* warning messages */
     PR_LOG_DEBUG = 4,               /* debug messages */
--- a/pr/include/prlong.h
+++ b/pr/include/prlong.h
@@ -149,17 +149,17 @@ NSPR_API(PRUint64) LL_MaxUint(void);
 #define LL_I2L(l, i)        ((l) = (PRInt64)(i))
 #define LL_UI2L(l, ui)        ((l) = (PRInt64)(ui))
 #define LL_F2L(l, f)        ((l) = (PRInt64)(f))
 #define LL_D2L(l, d)        ((l) = (PRInt64)(d))
 
 /***********************************************************************
 ** MACROS:      LL_UDIVMOD
 ** DESCRIPTION:
-**  Produce both a quotient and a remainder given an unsigned 
+**  Produce both a quotient and a remainder given an unsigned
 ** INPUTS:      PRUint64 a: The dividend of the operation
 **              PRUint64 b: The quotient of the operation
 ** OUTPUTS:     PRUint64 *qp: pointer to quotient
 **              PRUint64 *rp: pointer to remainder
 ***********************************************************************/
 #define LL_UDIVMOD(qp, rp, a, b) \
     (*(qp) = ((PRUint64)(a) / (b)), \
      *(rp) = ((PRUint64)(a) % (b)))
--- a/pr/include/prmwait.h
+++ b/pr/include/prmwait.h
@@ -100,17 +100,17 @@ typedef struct PRMWaitClientData PRMWait
 **      The success of the wait operation will be noted in the object's
 **      'outcome' field. The fields are not valid when the NSPR runtime
 **      is in possession of the object.
 **
 **      The memory descriptor describes an interval of writable memory
 **      in the caller's address space where data from an initial read
 **      can be placed. The description may indicate a null interval.
 */
-typedef struct PRRecvWait 
+typedef struct PRRecvWait
 {
     PRCList internal;           /* internal runtime linkages */
 
     PRFileDesc *fd;             /* file descriptor associated w/ object */
     PRMWStatus outcome;         /* outcome of the current/last operation */
     PRIntervalTime timeout;     /* time allowed for entire operation */
 
     PRInt32 bytesRecv;          /* number of bytes transferred into buffer */
@@ -367,14 +367,14 @@ NSPR_API(PRStatus) PR_DestroyMWaitEnumer
 **      "reset" and that may result in duplicates being returned from the
 **      enumeration.
 **
 **      An enumeration may be abandoned at any time. The runtime is not
 **      keeping any state, so there are no issues in that regard.
 */
 NSPR_API(PRRecvWait*) PR_EnumerateWaitGroup(
     PRMWaitEnumerator *enumerator, const PRRecvWait *previous);
-   
+
 PR_END_EXTERN_C
 
 #endif /* defined(_PRMWAIT_H) */
 
 /* prmwait.h */
--- a/pr/include/prnetdb.h
+++ b/pr/include/prnetdb.h
@@ -49,17 +49,17 @@ typedef struct PRHostEnt {
 /* A safe size to use that will mostly work... */
 #if (defined(AIX) && defined(_THREAD_SAFE))
 #define PR_NETDB_BUF_SIZE sizeof(struct protoent_data)
 #else
 #define PR_NETDB_BUF_SIZE 1024
 #endif
 
 /***********************************************************************
-** FUNCTION:	
+** FUNCTION:
 ** DESCRIPTION:	PR_GetHostByName()
 ** Lookup a host by name.
 **
 ** INPUTS:
 **  char *hostname      Character string defining the host name of interest
 **  char *buf           A scratch buffer for the runtime to return result.
 **                      This buffer is allocated by the caller.
 **  PRIntn bufsize      Number of bytes in 'buf'. A recommnded value to
@@ -73,17 +73,17 @@ typedef struct PRHostEnt {
 **  PRStatus            PR_SUCCESS if the lookup succeeds. If it fails
 **                      the result will be PR_FAILURE and the reason
 **                      for the failure can be retrieved by PR_GetError().
 ***********************************************************************/
 NSPR_API(PRStatus) PR_GetHostByName(
     const char *hostname, char *buf, PRIntn bufsize, PRHostEnt *hostentry);
 
 /***********************************************************************
-** FUNCTION:	
+** FUNCTION:
 ** DESCRIPTION:	PR_GetIPNodeByName()
 ** Lookup a host by name. Equivalent to getipnodebyname(AI_DEFAULT)
 ** of RFC 2553.
 **
 ** INPUTS:
 **  char *hostname      Character string defining the host name of interest
 **  PRUint16 af         Address family (either PR_AF_INET or PR_AF_INET6)
 **  PRIntn flags        Specifies the types of addresses that are searched
@@ -115,17 +115,17 @@ NSPR_API(PRStatus) PR_GetIPNodeByName(
     const char *hostname,
     PRUint16 af,
     PRIntn flags,
     char *buf,
     PRIntn bufsize,
     PRHostEnt *hostentry);
 
 /***********************************************************************
-** FUNCTION:	
+** FUNCTION:
 ** DESCRIPTION:	PR_GetHostByAddr()
 ** Lookup a host entry by its network address.
 **
 ** INPUTS:
 **  char *hostaddr      IP address of host in question
 **  char *buf           A scratch buffer for the runtime to return result.
 **                      This buffer is allocated by the caller.
 **  PRIntn bufsize      Number of bytes in 'buf'. A recommnded value to
@@ -139,17 +139,17 @@ NSPR_API(PRStatus) PR_GetIPNodeByName(
 **  PRStatus            PR_SUCCESS if the lookup succeeds. If it fails
 **                      the result will be PR_FAILURE and the reason
 **                      for the failure can be retrieved by PR_GetError().
 ***********************************************************************/
 NSPR_API(PRStatus) PR_GetHostByAddr(
     const PRNetAddr *hostaddr, char *buf, PRIntn bufsize, PRHostEnt *hostentry);
 
 /***********************************************************************
-** FUNCTION:	PR_EnumerateHostEnt()	
+** FUNCTION:	PR_EnumerateHostEnt()
 ** DESCRIPTION:
 **  A stateless enumerator over a PRHostEnt structure acquired from
 **  PR_GetHostByName() PR_GetHostByAddr() to evaluate the possible
 **  network addresses.
 **
 ** INPUTS:
 **  PRIntn  enumIndex   Index of the enumeration. The enumeration starts
 **                      and ends with a value of zero.
@@ -173,17 +173,17 @@ NSPR_API(PRStatus) PR_GetHostByAddr(
 **                      If a value of -1 is returned, the enumeration
 **                      has failed. The reason for the failure can be
 **                      retrieved by calling PR_GetError().
 ***********************************************************************/
 NSPR_API(PRIntn) PR_EnumerateHostEnt(
     PRIntn enumIndex, const PRHostEnt *hostEnt, PRUint16 port, PRNetAddr *address);
 
 /***********************************************************************
-** FUNCTION: PR_InitializeNetAddr(), 
+** FUNCTION: PR_InitializeNetAddr(),
 ** DESCRIPTION:
 **  Initialize the fields of a PRNetAddr, assigning well known values as
 **  appropriate.
 **
 ** INPUTS
 **  PRNetAddrValue val  The value to be assigned to the IP Address portion
 **                      of the network address. This can only specify the
 **                      special well known values that are equivalent to
@@ -206,17 +206,17 @@ typedef enum PRNetAddrValue
     PR_IpAddrLoopback,  /* assign logical INADDR_LOOPBACK  */
     PR_IpAddrV4Mapped   /* IPv4 mapped address */
 } PRNetAddrValue;
 
 NSPR_API(PRStatus) PR_InitializeNetAddr(
     PRNetAddrValue val, PRUint16 port, PRNetAddr *addr);
 
 /***********************************************************************
-** FUNCTION: PR_SetNetAddr(), 
+** FUNCTION: PR_SetNetAddr(),
 ** DESCRIPTION:
 **  Set the fields of a PRNetAddr, assigning well known values as
 **  appropriate. This function is similar to PR_InitializeNetAddr
 **  but differs in that the address family is specified.
 **
 ** INPUTS
 **  PRNetAddrValue val  The value to be assigned to the IP Address portion
 **                      of the network address. This can only specify the
@@ -234,76 +234,76 @@ NSPR_API(PRStatus) PR_InitializeNetAddr(
 **  PRStatus            To indicate success or failure. If the latter, the
 **                      reason for the failure can be retrieved by calling
 **                      PR_GetError();
 ***********************************************************************/
 NSPR_API(PRStatus) PR_SetNetAddr(
     PRNetAddrValue val, PRUint16 af, PRUint16 port, PRNetAddr *addr);
 
 /***********************************************************************
-** FUNCTION:	
+** FUNCTION:
 ** DESCRIPTION:	PR_IsNetAddrType()
 ** Determine if the network address is of the specified type.
 **
 ** INPUTS:
 **  const PRNetAddr *addr   A network address.
-**  PRNetAddrValue          The type of network address 
+**  PRNetAddrValue          The type of network address
 **
 ** RETURN:
 **  PRBool                  PR_TRUE if the network address is of the
 **                          specified type, else PR_FALSE.
 ***********************************************************************/
 NSPR_API(PRBool) PR_IsNetAddrType(const PRNetAddr *addr, PRNetAddrValue val);
 
 /***********************************************************************
-** FUNCTION:	
+** FUNCTION:
 ** DESCRIPTION:	PR_ConvertIPv4AddrToIPv6()
 ** Convert an IPv4 addr to an (IPv4-mapped) IPv6 addr
 **
 ** INPUTS:
 **  PRUint32 	v4addr		IPv4 address
 **
 ** OUTPUTS:
 **  PRIPv6Addr *v6addr      The converted IPv6 address
 **
 ** RETURN:
 **  void
-**                       
+**
 ***********************************************************************/
 NSPR_API(void) PR_ConvertIPv4AddrToIPv6(PRUint32 v4addr, PRIPv6Addr *v6addr);
 
 /***********************************************************************
-** MACRO:	
+** MACRO:
 ** DESCRIPTION:	PR_NetAddrFamily()
 ** Get the 'family' field of a PRNetAddr union.
 **
 ** INPUTS:
 **  const PRNetAddr *addr   A network address.
 **
 ** RETURN:
 **  PRUint16                The 'family' field of 'addr'.
 ***********************************************************************/
 #define PR_NetAddrFamily(addr) ((addr)->raw.family)
 
 /***********************************************************************
-** MACRO:	
+** MACRO:
 ** DESCRIPTION:	PR_NetAddrInetPort()
 ** Get the 'port' field of a PRNetAddr union.
 **
 ** INPUTS:
 **  const PRNetAddr *addr   A network address.
 **
 ** RETURN:
 **  PRUint16                The 'port' field of 'addr'.
 ***********************************************************************/
 #define PR_NetAddrInetPort(addr) \
     ((addr)->raw.family == PR_AF_INET6 ? (addr)->ipv6.port : (addr)->inet.port)
 
 /***********************************************************************
-** FUNCTION:	
+** FUNCTION:
 ** DESCRIPTION:	PR_GetProtoByName()
 ** Lookup a protocol entry based on protocol's name
 **
 ** INPUTS:
 **  char *protocolname  Character string of the protocol's name.
 **  char *buf           A scratch buffer for the runtime to return result.
 **                      This buffer is allocated by the caller.
 **  PRIntn bufsize      Number of bytes in 'buf'. A recommnded value to
@@ -328,17 +328,17 @@ typedef struct PRProtoEnt {
     PRInt32 p_num;      /* protocol # */
 #endif
 } PRProtoEnt;
 
 NSPR_API(PRStatus) PR_GetProtoByName(
     const char* protocolname, char* buffer, PRInt32 bufsize, PRProtoEnt* result);
 
 /***********************************************************************
-** FUNCTION:	
+** FUNCTION:
 ** DESCRIPTION:	PR_GetProtoByNumber()
 ** Lookup a protocol entry based on protocol's number
 **
 ** INPUTS:
 **  PRInt32 protocolnumber
 **                      Number assigned to the protocol.
 **  char *buf           A scratch buffer for the runtime to return result.
 **                      This buffer is allocated by the caller.
@@ -425,17 +425,17 @@ NSPR_API(void *) PR_EnumerateAddrInfo(
 
 /***********************************************************************
 ** FUNCTION:
 ** DESCRIPTION: PR_GetCanonNameFromAddrInfo()
 **  Extracts the canonical name of the hostname passed to
 **  PR_GetAddrInfoByName().
 **
 ** INPUTS:
-**  const PRAddrInfo *addrInfo 
+**  const PRAddrInfo *addrInfo
 **                      The PRAddrInfo handle returned by a successful
 **                      call to PR_GetAddrInfoByName().
 ** RETURN:
 **  const char *        A const pointer to the canonical hostname stored
 **                      in the given PRAddrInfo handle. This pointer is
 **                      invalidated once the PRAddrInfo handle is destroyed
 **                      by a call to PR_FreeAddrInfo().
 ***********************************************************************/
--- a/pr/include/prolock.h
+++ b/pr/include/prolock.h
@@ -11,34 +11,34 @@
 PR_BEGIN_EXTERN_C
 
 /*
 ** A locking mechanism, built on the existing PRLock definition,
 ** is provided that will permit applications to define a Lock
 ** Hierarchy (or Lock Ordering) schema. An application designed
 ** using the Ordered Lock functions will terminate with a
 ** diagnostic message when a lock inversion condition is
-** detected. 
-** 
+** detected.
+**
 ** The lock ordering detection is compile-time enabled only. In
 ** optimized builds of NSPR, the Ordered Lock functions map
 ** directly to PRLock functions, providing no lock order
 ** detection.
-** 
+**
 ** The Ordered Lock Facility is compiled in when DEBUG is defined at
 ** compile-time. Ordered Lock can be forced on in optimized builds by
 ** defining FORCE_NSPR_ORDERED_LOCK at compile-time. Both the
 ** application using Ordered Lock and NSPR must be compiled with the
 ** facility enabled to achieve the desired results.
-** 
+**
 ** Application designers should use the macro interfaces to the Ordered
 ** Lock facility to ensure that it is compiled out in optimized builds.
 **
 ** Application designers are responsible for defining their own
-** lock hierarchy. 
+** lock hierarchy.
 **
 ** Ordered Lock is thread-safe and SMP safe.
 **
 ** See Also: prlock.h
 **
 ** /lth. 10-Jun-1998.
 **
 */
@@ -50,129 +50,129 @@ PR_BEGIN_EXTERN_C
 */
 
 #if defined(DEBUG) || defined(FORCE_NSPR_ORDERED_LOCKS)
 typedef void * PROrderedLock;
 #else
 /*
 ** Map PROrderedLock and methods onto PRLock when ordered locking
 ** is not compiled in.
-**  
+**
 */
 #include "prlock.h"
 
 typedef PRLock PROrderedLock;
 #endif
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_CreateOrderedLock() -- Create an Ordered Lock
-** 
+**
 ** DESCRIPTION: PR_CreateOrderedLock() creates an ordered lock.
-** 
+**
 ** INPUTS:
 **  order: user defined order of this lock.
 **  name: name of the lock. For debugging purposes.
-** 
+**
 ** OUTPUTS: returned
-** 
+**
 ** RETURNS: PR_OrderedLock pointer
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_ORDERED_LOCKS)
 #define PR_CREATE_ORDERED_LOCK(order,name)\
     PR_CreateOrderedLock((order),(name))
 #else
 #define PR_CREATE_ORDERED_LOCK(order) PR_NewLock()
 #endif
 
-NSPR_API(PROrderedLock *) 
-    PR_CreateOrderedLock( 
+NSPR_API(PROrderedLock *)
+    PR_CreateOrderedLock(
         PRInt32 order,
         const char *name
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_DestroyOrderedLock() -- Destroy an Ordered Lock
-** 
+**
 ** DESCRIPTION: PR_DestroyOrderedLock() destroys the ordered lock
 ** referenced by lock.
-** 
+**
 ** INPUTS: lock: pointer to a PROrderedLock
-** 
+**
 ** OUTPUTS: the lock is destroyed
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_ORDERED_LOCKS)
 #define PR_DESTROY_ORDERED_LOCK(lock) PR_DestroyOrderedLock((lock))
 #else
 #define PR_DESTROY_ORDERED_LOCK(lock) PR_DestroyLock((lock))
 #endif
 
-NSPR_API(void) 
-    PR_DestroyOrderedLock( 
-        PROrderedLock *lock 
+NSPR_API(void)
+    PR_DestroyOrderedLock(
+        PROrderedLock *lock
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_LockOrderedLock() -- Lock an ordered lock
-** 
+**
 ** DESCRIPTION: PR_LockOrderedLock() locks the ordered lock
 ** referenced by lock. If the order of lock is less than or equal
 ** to the order of the highest lock held by the locking thread,
 ** the function asserts.
-** 
+**
 ** INPUTS: lock: a pointer to a PROrderedLock
-** 
+**
 ** OUTPUTS: The lock is held or the function asserts.
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_ORDERED_LOCKS)
 #define PR_LOCK_ORDERED_LOCK(lock) PR_LockOrderedLock((lock))
 #else
 #define PR_LOCK_ORDERED_LOCK(lock) PR_Lock((lock))
 #endif
 
-NSPR_API(void) 
-    PR_LockOrderedLock( 
-        PROrderedLock *lock 
+NSPR_API(void)
+    PR_LockOrderedLock(
+        PROrderedLock *lock
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_UnlockOrderedLock() -- unlock and Ordered Lock
-** 
+**
 ** DESCRIPTION: PR_UnlockOrderedLock() unlocks the lock referenced
 ** by lock.
-** 
+**
 ** INPUTS: lock: a pointer to a PROrderedLock
-** 
+**
 ** OUTPUTS: the lock is unlocked
-** 
+**
 ** RETURNS:
 **  PR_SUCCESS
 **  PR_FAILURE
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined(DEBUG) || defined(FORCE_NSPR_ORDERED_LOCKS)
 #define PR_UNLOCK_ORDERED_LOCK(lock) PR_UnlockOrderedLock((lock))
 #else
 #define PR_UNLOCK_ORDERED_LOCK(lock) PR_Unlock((lock))
 #endif
 
-NSPR_API(PRStatus) 
-    PR_UnlockOrderedLock( 
-        PROrderedLock *lock 
+NSPR_API(PRStatus)
+    PR_UnlockOrderedLock(
+        PROrderedLock *lock
 );
 
 PR_END_EXTERN_C
 
 #endif /* prolock_h___ */
--- a/pr/include/prproces.h
+++ b/pr/include/prproces.h
@@ -55,17 +55,17 @@ NSPR_API(PRStatus) PR_ProcessAttrSetInhe
 **
 ** Create a new process executing the file specified as 'path' and with
 ** the supplied arguments and environment.
 **
 ** This function may fail because of illegal access (permissions),
 ** invalid arguments or insufficient resources.
 **
 ** A process may be created such that the creator can later synchronize its
-** termination using PR_WaitProcess(). 
+** termination using PR_WaitProcess().
 */
 
 NSPR_API(PRProcess*) PR_CreateProcess(
     const char *path,
     char *const *argv,
     char *const *envp,
     const PRProcessAttr *attr);
 
--- a/pr/include/prrng.h
+++ b/pr/include/prrng.h
@@ -1,22 +1,22 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 
 /*
 ** prrng.h -- NSPR Random Number Generator
-** 
+**
 **
 ** lth. 29-Oct-1999.
 */
 
-#ifndef prrng_h___ 
+#ifndef prrng_h___
 #define prrng_h___
 
 #include "prtypes.h"
 
 PR_BEGIN_EXTERN_C
 
 /*
 ** PR_GetRandomNoise() -- Get random noise from the host platform
@@ -59,17 +59,17 @@ PR_BEGIN_EXTERN_C
 **   application.
 **
 ** History:
 **   Parts of the model dependent implementation for PR_GetRandomNoise()
 **   were taken in whole or part from code previously in Netscape's NSS
 **   component.
 **
 */
-NSPR_API(PRSize) PR_GetRandomNoise( 
+NSPR_API(PRSize) PR_GetRandomNoise(
     void    *buf,
     PRSize  size
 );
 
 PR_END_EXTERN_C
 
 #endif /* prrng_h___ */
 /* end prrng.h */
--- a/pr/include/prrwlock.h
+++ b/pr/include/prrwlock.h
@@ -34,17 +34,17 @@ typedef struct PRRWLock PRRWLock;
 ** DESCRIPTION:
 **  Returns a pointer to a newly created reader-writer lock object.
 ** INPUTS:      Lock rank
 **				Lock name
 ** OUTPUTS:     void
 ** RETURN:      PRRWLock*
 **   If the lock cannot be created because of resource constraints, NULL
 **   is returned.
-**  
+**
 ***********************************************************************/
 NSPR_API(PRRWLock*) PR_NewRWLock(PRUint32 lock_rank, const char *lock_name);
 
 /***********************************************************************
 ** FUNCTION:    PR_DestroyRWLock
 ** DESCRIPTION:
 **  Destroys a given RW lock object.
 ** INPUTS:      PRRWLock *lock - Lock to be freed.
--- a/pr/include/prshm.h
+++ b/pr/include/prshm.h
@@ -21,61 +21,61 @@
 **   for using NSPR Shared Memory API must be observed.
 **
 ** Protocol:
 **   Multiple shared memories can be created using NSPR's Shared Memory
 **   feature. For each named shared memory, as defined by the name
 **   given in the PR_OpenSharedMemory() call, a protocol for using the
 **   shared memory API is required to ensure desired behavior. Failing
 **   to follow the protocol may yield unpredictable results.
-**   
+**
 **   PR_OpenSharedMemory() will create the shared memory segment, if it
 **   does not already exist, or open a connection that the existing
 **   shared memory segment if it already exists.
-**   
+**
 **   PR_AttachSharedMemory() should be called following
 **   PR_OpenSharedMemory() to map the memory segment to an address in
 **   the application's address space.
-**   
+**
 **   PR_AttachSharedMemory() may be called to re-map a shared memory
 **   segment after detaching the same PRSharedMemory object. Be
 **   sure to detach it when done.
-**   
+**
 **   PR_DetachSharedMemory() should be called to un-map the shared
 **   memory segment from the application's address space.
-**   
+**
 **   PR_CloseSharedMemory() should be called when no further use of the
 **   PRSharedMemory object is required within a process. Following a
 **   call to  PR_CloseSharedMemory() the PRSharedMemory object is
 **   invalid and cannot be reused.
-**   
+**
 **   PR_DeleteSharedMemory() should be called before process
 **   termination. After calling PR_DeleteSharedMemory() any further use
 **   of the shared memory associated with the name may cause
 **   unpredictable results.
-**   
+**
 ** Files:
 **   The name passed to PR_OpenSharedMemory() should be a valid filename
 **   for a unix platform. PR_OpenSharedMemory() creates file using the
 **   name passed in. Some platforms may mangle the name before creating
 **   the file and the shared memory.
-**   
+**
 **   The unix implementation may use SysV IPC shared memory, Posix
 **   shared memory, or memory mapped files; the filename may used to
 **   define the namespace. On Windows, the name is significant, but
 **   there is no file associated with name.
-**   
+**
 **   No assumptions about the persistence of data in the named file
 **   should be made. Depending on platform, the shared memory may be
 **   mapped onto system paging space and be discarded at process
 **   termination.
-**   
+**
 **   All names provided to PR_OpenSharedMemory() should be valid
 **   filename syntax or name syntax for shared memory for the target
-**   platform. Referenced directories should have permissions 
+**   platform. Referenced directories should have permissions
 **   appropriate for writing.
 **
 ** Limits:
 **   Different platforms have limits on both the number and size of
 **   shared memory resources. The default system limits on some
 **   platforms may be smaller than your requirements. These limits may
 **   be adjusted on some platforms either via boot-time options or by
 **   setting the size of the system paging space to accomodate more
@@ -127,21 +127,21 @@ typedef struct PRSharedMemory PRSharedMe
 **
 **   When parameter create is 0, and the shared memory exists, a
 **   pointer to a PRSharedMemory is returned. If the shared memory does
 **   not exist, NULL is returned with the error set to
 **   PR_FILE_NOT_FOUND_ERROR.
 **
 ** INPUTS:
 **   name -- the name the shared-memory segment is known as.
-**   size -- the size of the shared memory segment. 
+**   size -- the size of the shared memory segment.
 **   flags -- Options for creating the shared memory
 **   mode -- Same as is passed to PR_Open()
 **
-** OUTPUTS: 
+** OUTPUTS:
 **   The shared memory is allocated.
 **
 ** RETURNS: Pointer to opaque structure PRSharedMemory or NULL.
 **   NULL is returned on error. The reason for the error can be
 **   retrieved via PR_GetError() and PR_GetOSError();
 **
 */
 NSPR_API( PRSharedMemory * )
@@ -155,22 +155,22 @@ NSPR_API( PRSharedMemory * )
 #define PR_SHM_CREATE 0x1  /* create if not exist */
 #define PR_SHM_EXCL   0x2  /* fail if already exists */
 
 /*
 ** FUNCTION: PR_AttachSharedMemory()
 **
 ** DESCRIPTION:
 ** PR_AttachSharedMemory() maps the shared-memory described by
-** shm to the current process. 
+** shm to the current process.
 **
-** INPUTS: 
+** INPUTS:
 **   shm -- The handle returned from PR_OpenSharedMemory().
 **   flags -- options for mapping the shared memory.
-**   PR_SHM_READONLY causes the memory to be attached 
+**   PR_SHM_READONLY causes the memory to be attached
 **   read-only.
 **
 ** OUTPUTS:
 **   On success, the shared memory segment represented by shm is mapped
 **   into the process' address space.
 **
 ** RETURNS: Address where shared memory is mapped, or NULL.
 **   NULL is returned on error. The reason for the error can be
@@ -178,27 +178,27 @@ NSPR_API( PRSharedMemory * )
 **
 **
 */
 NSPR_API( void * )
     PR_AttachSharedMemory(
         PRSharedMemory *shm,
         PRIntn  flags
 );
-/* Define values for PR_AttachSharedMemory(...,flags) */ 
+/* Define values for PR_AttachSharedMemory(...,flags) */
 #define PR_SHM_READONLY 0x01
 
 /*
 ** FUNCTION: PR_DetachSharedMemory()
 **
 ** DESCRIPTION:
 **   PR_DetachSharedMemory() detaches the shared-memory described
-**   by shm. 
+**   by shm.
 **
-** INPUTS: 
+** INPUTS:
 **   shm -- The handle returned from PR_OpenSharedMemory().
 **   addr -- The address at which the memory was attached.
 **
 ** OUTPUTS:
 **   The shared memory mapped to an address via a previous call to
 **   PR_AttachSharedMemory() is unmapped.
 **
 ** RETURNS: PRStatus
@@ -211,17 +211,17 @@ NSPR_API( PRStatus )
 );
 
 /*
 ** FUNCTION: PR_CloseSharedMemory()
 **
 ** DESCRIPTION:
 **   PR_CloseSharedMemory() closes the shared-memory described by
 **   shm.
-** 
+**
 ** INPUTS:
 **   shm -- The handle returned from PR_OpenSharedMemory().
 **
 ** OUTPUTS:
 **   the shared memory represented by shm is closed
 **
 ** RETURNS: PRStatus
 **
@@ -243,15 +243,15 @@ NSPR_API( PRStatus )
 ** OUTPUTS:
 **   depending on platform, resources may be returned to the underlying
 **   operating system.
 **
 ** RETURNS: PRStatus
 **
 */
 NSPR_API( PRStatus )
-    PR_DeleteSharedMemory( 
+    PR_DeleteSharedMemory(
         const char *name
 );
 
 PR_END_EXTERN_C
 
 #endif /* prshm_h___ */
--- a/pr/include/prshma.h
+++ b/pr/include/prshma.h
@@ -8,97 +8,97 @@
 **
 ** NSPR provides an anonymous shared memory based on NSPR's PRFileMap
 ** type. The anonymous file-mapped shared memory provides an inheritable
 ** shared memory, as in: the child process inherits the shared memory.
 ** Compare the file-mapped anonymous shared memory to to a named shared
 ** memory described in prshm.h. The intent is to provide a shared
 ** memory that is accessable only by parent and child processes. ...
 ** It's a security thing.
-** 
+**
 ** Depending on the underlying platform, the file-mapped shared memory
 ** may be backed by a file. ... surprise! ... On some platforms, no
 ** real file backs the shared memory. On platforms where the shared
 ** memory is backed by a file, the file's name in the filesystem is
 ** visible to other processes for only the duration of the creation of
 ** the file, hopefully a very short time. This restricts processess
 ** that do not inherit the shared memory from opening the file and
 ** reading or writing its contents. Further, when all processes
 ** using an anonymous shared memory terminate, the backing file is
 ** deleted. ... If you are not paranoid, you're not paying attention.
-** 
+**
 ** The file-mapped shared memory requires a protocol for the parent
 ** process and child process to share the memory. NSPR provides two
 ** protocols. Use one or the other; don't mix and match.
-** 
+**
 ** In the first protocol, the job of passing the inheritable shared
 ** memory is done via helper-functions with PR_CreateProcess(). In the
 ** second protocol, the parent process is responsible for creating the
 ** child process; the parent and child are mutually responsible for
 ** passing a FileMap string. NSPR provides helper functions for
 ** extracting data from the PRFileMap object. ... See the examples
 ** below.
-** 
+**
 ** Both sides should adhere strictly to the protocol for proper
 ** operation. The pseudo-code below shows the use of a file-mapped
 ** shared memory by a parent and child processes. In the examples, the
 ** server creates the file-mapped shared memory, the client attaches to
 ** it.
 **
 ** First protocol.
 ** Server:
 **
-**   fm = PR_OpenAnonFileMap(dirName, size, FilemapProt); 
-**   addr = PR_MemMap(fm); 
+**   fm = PR_OpenAnonFileMap(dirName, size, FilemapProt);
+**   addr = PR_MemMap(fm);
 **   attr = PR_NewProcessAttr();
 **   PR_ProcessAttrSetInheritableFileMap( attr, fm, shmname );
-**   PR_CreateProcess(Client); 
+**   PR_CreateProcess(Client);
 **   PR_DestroyProcessAttr(attr);
 **   ... yadda ...
 **   PR_MemUnmap( addr );
 **   PR_CloseFileMap(fm);
 **
 **
-** Client: 
+** Client:
 **   ... started by server via PR_CreateProcess()
 **   fm = PR_GetInheritedFileMap( shmname );
 **   addr = PR_MemMap(fm);
 **   ... yadda ...
 **   PR_MemUnmap(addr);
 **   PR_CloseFileMap(fm);
 **
 **
 ** Second Protocol:
 ** Server:
 **
-**   fm = PR_OpenAnonFileMap(dirName, size, FilemapProt); 
+**   fm = PR_OpenAnonFileMap(dirName, size, FilemapProt);
 **   fmstring = PR_ExportFileMapAsString( fm );
-**   addr = PR_MemMap(fm); 
+**   addr = PR_MemMap(fm);
 **    ... application specific technique to pass fmstring to child
 **    ... yadda ... Server uses his own magic to create child
 **   PR_MemUnmap( addr );
 **   PR_CloseFileMap(fm);
 **
 **
-** Client: 
+** Client:
 **   ... started by server via his own magic
 **   ... application specific technique to find fmstring from parent
 **   fm = PR_ImportFileMapFromString( fmstring )
 **   addr = PR_MemMap(fm);
 **   ... yadda ...
 **   PR_MemUnmap(addr);
 **   PR_CloseFileMap(fm);
 **
 **
 ** lth. 2-Jul-1999.
 **
 ** Note: The second protocol was requested by NelsonB (7/1999); this is
 ** to accomodate servers which already create their own child processes
 ** using platform native methods.
-** 
+**
 */
 
 #ifndef prshma_h___
 #define prshma_h___
 
 #include "prtypes.h"
 #include "prio.h"
 #include "prproces.h"
@@ -118,33 +118,33 @@ PR_BEGIN_EXTERN_C
 ** file. A filename is generated for the name.
 **
 ** On Windows platforms, dirName is ignored.
 **
 ** Inputs:
 **   dirName -- A directory name to contain the anonymous file.
 **   size -- The size of the shared memory
 **   prot -- How the shared memory is mapped. See prio.h
-**   
+**
 ** Outputs:
 **   PRFileMap *
 **
 ** Returns:
 **   Pointer to PRFileMap or NULL on error.
 **
 */
 NSPR_API( PRFileMap *)
 PR_OpenAnonFileMap(
     const char *dirName,
-    PRSize      size, 
+    PRSize      size,
     PRFileMapProtect prot
-);  
+);
 
 /*
-** PR_ProcessAttrSetInheritableFileMap() -- Prepare FileMap for export  
+** PR_ProcessAttrSetInheritableFileMap() -- Prepare FileMap for export
 **   to my children processes via PR_CreateProcess()
 **
 ** Description:
 ** PR_ProcessAttrSetInheritableFileMap() connects the PRFileMap to
 ** PRProcessAttr with shmname. A subsequent call to PR_CreateProcess()
 ** makes the PRFileMap importable by the child process.
 **
 ** Inputs:
@@ -154,44 +154,44 @@ PR_OpenAnonFileMap(
 **
 ** Outputs:
 **   PRFileMap *
 **
 ** Returns:
 **   PRStatus
 **
 */
-NSPR_API(PRStatus) 
-PR_ProcessAttrSetInheritableFileMap( 
+NSPR_API(PRStatus)
+PR_ProcessAttrSetInheritableFileMap(
     PRProcessAttr   *attr,
-    PRFileMap       *fm, 
+    PRFileMap       *fm,
     const char      *shmname
 );
 
 /*
 ** PR_GetInheritedFileMap() -- Import a PRFileMap previously exported
 **   by my parent process via PR_CreateProcess()
 **
 ** Description:
 ** PR_GetInheritedFileMap() retrieves a PRFileMap object exported from
 ** its parent process via PR_CreateProcess().
 **
 ** Inputs:
 **    shmname -- The name provided to PR_ProcessAttrSetInheritableFileMap()
-** 
+**
 ** Outputs:
 **   PRFileMap *
 **
 ** Returns:
 **   PRFileMap pointer or NULL.
 **
 */
 NSPR_API( PRFileMap *)
-PR_GetInheritedFileMap( 
-    const char *shmname 
+PR_GetInheritedFileMap(
+    const char *shmname
 );
 
 /*
 ** PR_ExportFileMapAsString() -- Creates a string identifying a PRFileMap
 **
 ** Description:
 ** Creates an identifier, as a string, from a PRFileMap object
 ** previously created with PR_OpenAnonFileMap().
@@ -204,17 +204,17 @@ PR_GetInheritedFileMap(
 ** Outputs:
 **   buf contains the stringized PRFileMap identifier
 **
 ** Returns:
 **   PRStatus
 **
 */
 NSPR_API( PRStatus )
-PR_ExportFileMapAsString( 
+PR_ExportFileMapAsString(
     PRFileMap *fm,
     PRSize    bufsize,
     char      *buf
 );
 #define PR_FILEMAP_STRING_BUFSIZE 128
 
 /*
 ** PR_ImportFileMapFromString() -- Creates a PRFileMap from the identifying string
@@ -226,14 +226,14 @@ PR_ExportFileMapAsString(
 ** Inputs:
 **   fmstring -- string created by PR_ExportFileMapAsString()
 **
 ** Returns:
 **   PRFileMap pointer or NULL.
 **
 */
 NSPR_API( PRFileMap * )
-PR_ImportFileMapFromString( 
+PR_ImportFileMapFromString(
     const char *fmstring
 );
 
 PR_END_EXTERN_C
 #endif /* prshma_h___ */
--- a/pr/include/prsystem.h
+++ b/pr/include/prsystem.h
@@ -72,23 +72,23 @@ NSPR_API(PRInt32) PR_GetPageSize(void);
 NSPR_API(PRInt32) PR_GetPageShift(void);
 
 /*
 ** PR_GetNumberOfProcessors() -- returns the number of CPUs
 **
 ** Description:
 ** PR_GetNumberOfProcessors() extracts the number of processors
 ** (CPUs available in an SMP system) and returns the number.
-** 
+**
 ** Parameters:
 **   none
 **
 ** Returns:
 **   The number of available processors or -1 on error
-** 
+**
 */
 NSPR_API(PRInt32) PR_GetNumberOfProcessors( void );
 
 /*
 ** PR_GetPhysicalMemorySize() -- returns the amount of system RAM
 **
 ** Description:
 ** PR_GetPhysicalMemorySize() determines the amount of physical RAM
--- a/pr/include/prthread.h
+++ b/pr/include/prthread.h
@@ -27,18 +27,18 @@
 ** that the host OS will apply some form of "fair" scheduling on the
 ** GLOBAL threads.
 **
 ** Threads have a "system flag" which when set indicates the thread
 ** doesn't count for determining when the process should exit (the
 ** process exits when the last user thread exits).
 **
 ** Threads also have a "scope flag" which controls whether the threads
-** are scheduled in the local scope or scheduled by the OS globally. This 
-** indicates whether a thread is permanently bound to a native OS thread. 
+** are scheduled in the local scope or scheduled by the OS globally. This
+** indicates whether a thread is permanently bound to a native OS thread.
 ** An unbound thread competes for scheduling resources in the same process.
 **
 ** Another flag is "state flag" which control whether the thread is joinable.
 ** It allows other threads to wait for the created thread to reach completion.
 **
 ** Threads can have "per-thread-data" attached to them. Each thread has a
 ** per-thread error number and error string which are updated when NSPR
 ** operations fail.
@@ -107,19 +107,19 @@ NSPR_API(PRThread*) PR_CreateThread(PRTh
                      void *arg,
                      PRThreadPriority priority,
                      PRThreadScope scope,
                      PRThreadState state,
                      PRUint32 stackSize);
 
 /*
 ** Wait for thread termination:
-**     "thread" is the target thread 
+**     "thread" is the target thread
 **
-** This can return PR_FAILURE if no joinable thread could be found 
+** This can return PR_FAILURE if no joinable thread could be found
 ** corresponding to the specified target thread.
 **
 ** The calling thread is blocked until the target thread completes.
 ** Several threads cannot wait for the same thread to complete; one thread
 ** will operate successfully and others will terminate with an error PR_FAILURE.
 ** The calling thread will not be blocked if the target thread has already
 ** terminated.
 */
@@ -158,62 +158,62 @@ NSPR_API(void) PR_SetThreadPriority(PRTh
 NSPR_API(PRStatus) PR_SetCurrentThreadName(const char *name);
 
 /*
 ** Return the name of "thread", if set.  Otherwise return NULL.
 */
 NSPR_API(const char *) PR_GetThreadName(const PRThread *thread);
 
 /*
-** This routine returns a new index for per-thread-private data table. 
-** The index is visible to all threads within a process. This index can 
-** be used with the PR_SetThreadPrivate() and PR_GetThreadPrivate() routines 
+** This routine returns a new index for per-thread-private data table.
+** The index is visible to all threads within a process. This index can
+** be used with the PR_SetThreadPrivate() and PR_GetThreadPrivate() routines
 ** to save and retrieve data associated with the index for a thread.
 **
 ** Each index is associationed with a destructor function ('dtor'). The function
 ** may be specified as NULL when the index is created. If it is not NULL, the
 ** function will be called when:
 **      - the thread exits and the private data for the associated index
 **        is not NULL,
 **      - new thread private data is set and the current private data is
 **        not NULL.
 **
-** The index independently maintains specific values for each binding thread. 
+** The index independently maintains specific values for each binding thread.
 ** A thread can only get access to its own thread-specific-data.
 **
 ** Upon a new index return the value associated with the index for all threads
-** is NULL, and upon thread creation the value associated with all indices for 
-** that thread is NULL. 
+** is NULL, and upon thread creation the value associated with all indices for
+** that thread is NULL.
 **
-** Returns PR_FAILURE if the total number of indices will exceed the maximun 
+** Returns PR_FAILURE if the total number of indices will exceed the maximun
 ** allowed.
 */
 typedef void (PR_CALLBACK *PRThreadPrivateDTOR)(void *priv);
 
 NSPR_API(PRStatus) PR_NewThreadPrivateIndex(
     PRUintn *newIndex, PRThreadPrivateDTOR destructor);
 
 /*
 ** Define some per-thread-private data.
 **     "tpdIndex" is an index into the per-thread private data table
-**     "priv" is the per-thread-private data 
+**     "priv" is the per-thread-private data
 **
 ** If the per-thread private data table has a previously registered
 ** destructor function and a non-NULL per-thread-private data value,
 ** the destructor function is invoked.
 **
 ** This can return PR_FAILURE if the index is invalid.
 */
 NSPR_API(PRStatus) PR_SetThreadPrivate(PRUintn tpdIndex, void *priv);
 
 /*
 ** Recover the per-thread-private data for the current thread. "tpdIndex" is
-** the index into the per-thread private data table. 
+** the index into the per-thread private data table.
 **
-** The returned value may be NULL which is indistinguishable from an error 
+** The returned value may be NULL which is indistinguishable from an error
 ** condition.
 **
 ** A thread can only get access to its own thread-specific-data.
 */
 NSPR_API(void*) PR_GetThreadPrivate(PRUintn tpdIndex);
 
 /*
 ** This routine sets the interrupt request for a target thread. The interrupt
--- a/pr/include/prtrace.h
+++ b/pr/include/prtrace.h
@@ -1,79 +1,79 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef prtrace_h___
 #define prtrace_h___
 /*
-** prtrace.h -- NSPR's Trace Facility.  		           
-**                                                               		           
-** The Trace Facility provides a means to trace application				           
-** program events within a process. When implementing an         		           
-** application program an engineer may insert a "Trace" function 		           
-** call, passing arguments to be traced. The "Trace" function     		           
-** combines the user trace data with identifying data and        		           
-** writes this data in time ordered sequence into a circular     		           
+** prtrace.h -- NSPR's Trace Facility.
+**
+** The Trace Facility provides a means to trace application
+** program events within a process. When implementing an
+** application program an engineer may insert a "Trace" function
+** call, passing arguments to be traced. The "Trace" function
+** combines the user trace data with identifying data and
+** writes this data in time ordered sequence into a circular
 ** in-memory buffer; when the buffer fills, it wraps.
-**                                                               		           
-** Functions are provided to set and/or re-configure the size of		           
-** the trace buffer, control what events are recorded in the			           
-** buffer, enable and disable tracing based on specific user			           
-** supplied data and other control functions. Methods are provided		           
+**
+** Functions are provided to set and/or re-configure the size of
+** the trace buffer, control what events are recorded in the
+** buffer, enable and disable tracing based on specific user
+** supplied data and other control functions. Methods are provided
 ** to record the trace entries in the in-memory trace buffer to
 ** a file.
-**                                                               		           
-** Tracing may cause a performance degredation to the application		           
-** depending on the number and placement of calls to the tracing		           
-** facility. When tracing is compiled in and all tracing is				           
-** disabled via the runtime controls, the overhead should be			           
-** minimal. ... Famous last words, eh?									           
-** 																                   
-** When DEBUG is defined at compile time, the Trace Facility is                    
-** compiled as part of NSPR and any application using NSPR's                       
-** header files will have tracing compiled in. When DEBUG is not                   
-** defined, the Trace Facility is not compiled into NSPR nor                       
-** exported in its header files.  If the Trace Facility is                         
-** desired in a non-debug build, then FORCE_NSPR_TRACE may be                      
-** defined at compile time for both the optimized build of NSPR                    
-** and the application. NSPR and any application using  NSPR's                     
-** Trace Facility must be compiled with the same level of trace                    
-** conditioning or unresolved references may be realized at link                   
-** time.                                                                           
-**                                                                                 
-** For any of the Trace Facility methods that requires a trace                     
-** handle as an input argument, the caller must ensure that the                    
-** trace handle argument is valid. An invalid trace handle                         
-** argument may cause unpredictable results.                                       
-**                                                                                 
-** Trace Facility methods are thread-safe and SMP safe.                            
-**                                                                                 
-** Users of the Trace Facility should use the defined macros to                     
-** invoke trace methods, not the function calls directly. e.g.                      
+**
+** Tracing may cause a performance degredation to the application
+** depending on the number and placement of calls to the tracing
+** facility. When tracing is compiled in and all tracing is
+** disabled via the runtime controls, the overhead should be
+** minimal. ... Famous last words, eh?
+**
+** When DEBUG is defined at compile time, the Trace Facility is
+** compiled as part of NSPR and any application using NSPR's
+** header files will have tracing compiled in. When DEBUG is not
+** defined, the Trace Facility is not compiled into NSPR nor
+** exported in its header files.  If the Trace Facility is
+** desired in a non-debug build, then FORCE_NSPR_TRACE may be
+** defined at compile time for both the optimized build of NSPR
+** and the application. NSPR and any application using  NSPR's
+** Trace Facility must be compiled with the same level of trace
+** conditioning or unresolved references may be realized at link
+** time.
+**
+** For any of the Trace Facility methods that requires a trace
+** handle as an input argument, the caller must ensure that the
+** trace handle argument is valid. An invalid trace handle
+** argument may cause unpredictable results.
+**
+** Trace Facility methods are thread-safe and SMP safe.
+**
+** Users of the Trace Facility should use the defined macros to
+** invoke trace methods, not the function calls directly. e.g.
 ** PR_TRACE( h1,0,1,2, ...); not PR_Trace(h1,0,1,2, ...);
-**                                                                                  
+**
 ** Application designers should be aware of the effects of
 ** debug and optimized build differences when using result of the
 ** Trace Facility macros in expressions.
-** 
-** See Also: prcountr.h                                                                                 
-**                                                                                  
-** /lth. 08-Jun-1998.                                                                                  
+**
+** See Also: prcountr.h
+**
+** /lth. 08-Jun-1998.
 */
 
 #include "prtypes.h"
 #include "prthread.h"
 #include "prtime.h"
 
 PR_BEGIN_EXTERN_C
 
 /*
-** Opaque type for the trace handle 
+** Opaque type for the trace handle
 ** ... Don't even think about looking in here.
 **
 */
 typedef void *  PRTraceHandle;
 
 /*
 ** PRTraceEntry -- A trace entry in the in-memory trace buffer
 ** looks like this.
@@ -90,546 +90,546 @@ typedef struct PRTraceEntry
 /*
 ** PRTraceOption -- command operands to
 ** PR_[Set|Get]TraceOption(). See descriptive meanings there.
 **
 */
 typedef enum PRTraceOption
 {
     PRTraceBufSize,
-    PRTraceEnable,              
+    PRTraceEnable,
     PRTraceDisable,
     PRTraceSuspend,
     PRTraceResume,
     PRTraceSuspendRecording,
     PRTraceResumeRecording,
     PRTraceLockHandles,
     PRTraceUnLockHandles,
     PRTraceStopRecording
 } PRTraceOption;
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_DEFINE_TRACE() -- Define a PRTraceHandle
-** 
+**
 ** DESCRIPTION: PR_DEFINE_TRACE() is used to define a trace
 ** handle.
-** 
+**
 */
 #define PR_DEFINE_TRACE(name) PRTraceHandle name
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_INIT_TRACE_HANDLE() -- Set the value of a PRTraceHandle
-** 
-** DESCRIPTION: 
+**
+** DESCRIPTION:
 ** PR_INIT_TRACE_HANDLE() sets the value of a PRTraceHandle
 ** to value. e.g. PR_INIT_TRACE_HANDLE( myHandle, NULL );
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_INIT_TRACE_HANDLE(handle,value)\
     (handle) = (PRCounterHandle)(value)
 #else
 #define PR_INIT_TRACE_HANDLE(handle,value)
 #endif
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_CreateTrace() -- Create a trace handle
-** 
+**
 ** DESCRIPTION:
 **  PR_CreateTrace() creates a new trace handle. Tracing is
 **  enabled for this handle when it is created. The trace handle
 **  is intended for use in other Trace Facility calls.
-**  
+**
 **  PR_CreateTrace() registers the QName, RName and description
 **  data so that this data can be retrieved later.
-** 
-** INPUTS: 
-**  qName: pointer to string. QName for this trace handle. 
-** 
-**  rName: pointer to string. RName for this trace handle. 
-** 
+**
+** INPUTS:
+**  qName: pointer to string. QName for this trace handle.
+**
+**  rName: pointer to string. RName for this trace handle.
+**
 **  description: pointer to string. Descriptive data about this
 **  trace handle.
 **
 ** OUTPUTS:
-**  Creates the trace handle. 
+**  Creates the trace handle.
 **  Registers the QName and RName with the trace facility.
-** 
-** RETURNS: 
+**
+** RETURNS:
 **  PRTraceHandle
-** 
+**
 ** RESTRICTIONS:
 **  qName is limited to 31 characters.
 **  rName is limited to 31 characters.
 **  description is limited to 255 characters.
-** 
+**
 */
 #define PRTRACE_NAME_MAX 31
 #define PRTRACE_DESC_MAX 255
 
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_CREATE_TRACE(handle,qName,rName,description)\
     (handle) = PR_CreateTrace((qName),(rName),(description))
 #else
 #define PR_CREATE_TRACE(handle,qName,rName,description)
 #endif
 
 NSPR_API(PRTraceHandle)
-	PR_CreateTrace( 
+	PR_CreateTrace(
     	const char *qName,          /* QName for this trace handle */
 	    const char *rName,          /* RName for this trace handle */
 	    const char *description     /* description for this trace handle */
 );
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_DestroyTrace() -- Destroy a trace handle
-** 
-** DESCRIPTION: 
+**
+** DESCRIPTION:
 **  PR_DestroyTrace() removes the referenced trace handle and
 ** associated QName, RName and description data from the Trace
 ** Facility.
-** 
+**
 ** INPUTS: handle. A PRTraceHandle
-** 
-** OUTPUTS: 
+**
+** OUTPUTS:
 **  The trace handle is unregistered.
 **  The QName, RName and description are removed.
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_DESTROY_TRACE(handle)\
     PR_DestroyTrace((handle))
 #else
 #define PR_DESTROY_TRACE(handle)
 #endif
 
-NSPR_API(void) 
-	PR_DestroyTrace( 
+NSPR_API(void)
+	PR_DestroyTrace(
 		PRTraceHandle handle    /* Handle to be destroyed */
 );
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_Trace() -- Make a trace entry in the in-memory trace
-** 
+**
 ** DESCRIPTION:
 ** PR_Trace() makes an entry in the in-memory trace buffer for
 ** the referenced trace handle. The next logically available
 ** PRTraceEntry is used; when the next trace entry would overflow
 ** the trace table, the table wraps.
 **
 ** PR_Trace() for a specific trace handle may be disabled by
 ** calling PR_SetTraceOption() specifying PRTraceDisable for the
 ** trace handle to be disabled.
-** 
+**
 ** INPUTS:
 ** handle: PRTraceHandle. The trace handle for this trace.
-** 
+**
 ** userData[0..7]: unsigned 32bit integers. user supplied data
 ** that is copied into the PRTraceEntry
-** 
+**
 ** OUTPUTS:
 **  A PRTraceEntry is (conditionally) formatted in the in-memory
 ** trace buffer.
-** 
+**
 ** RETURNS: void.
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_TRACE(handle,ud0,ud1,ud2,ud3,ud4,ud5,ud6,ud7)\
     PR_Trace((handle),(ud0),(ud1),(ud2),(ud3),(ud4),(ud5),(ud6),(ud7))
 #else
 #define PR_TRACE(handle,ud0,ud1,ud2,ud3,ud4,ud5,ud6,ud7)
 #endif
 
-NSPR_API(void) 
-	PR_Trace( 
+NSPR_API(void)
+	PR_Trace(
     	PRTraceHandle handle,       /* use this trace handle */
 	    PRUint32    userData0,      /* User supplied data word 0 */
 	    PRUint32    userData1,      /* User supplied data word 1 */
 	    PRUint32    userData2,      /* User supplied data word 2 */
 	    PRUint32    userData3,      /* User supplied data word 3 */
 	    PRUint32    userData4,      /* User supplied data word 4 */
 	    PRUint32    userData5,      /* User supplied data word 5 */
 	    PRUint32    userData6,      /* User supplied data word 6 */
 	    PRUint32    userData7       /* User supplied data word 7 */
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_SetTraceOption() -- Control the Trace Facility
-** 
+**
 ** DESCRIPTION:
 ** PR_SetTraceOption() controls the Trace Facility. Depending on
 ** command and value, attributes of the Trace Facility may be
 ** changed.
-** 
+**
 ** INPUTS:
 **  command: An enumerated value in the set of PRTraceOption.
 **  value: pointer to the data to be set. Type of the data is
 **  dependent on command; for each value of command, the type
 **  and meaning of dereferenced value is shown.
 **
 **  PRTraceBufSize: unsigned long: the size of the trace buffer,
 ** in bytes.
-** 
+**
 **  PRTraceEnable: PRTraceHandle. The trace handle to be
 ** enabled.
-** 
+**
 **  PRTraceDisable: PRTraceHandle. The trace handle to be
 ** disabled.
-** 
+**
 **  PRTraceSuspend: void. value must be NULL. All tracing is
 ** suspended.
-** 
+**
 **  PRTraceResume: void. value must be NULL. Tracing for all
 ** previously enabled, prior to a PRTraceSuspend, is resumed.
-** 
+**
 **  PRTraceStopRecording: void. value must be NULL. If recording
-** (see: ** PR_RecordTraceEntries()) is being done, 
+** (see: ** PR_RecordTraceEntries()) is being done,
 ** PRTraceStopRecording causes PR_RecordTraceEntries() to return
 ** to its caller. If recording is not being done, this function
 ** has no effect.
-** 
+**
 **  PRTraceSuspendRecording: void. Must be NULL. If recording is
 ** being done, PRTraceSuspendRecording causes further writes to
 ** the trace file to be suspended. Data in the in-memory
 ** trace buffer that would ordinarily be written to the
 ** trace file will not be written. Trace entries will continue
 ** to be entered in the in-memory buffer. If the Trace Facility
 ** recording is already in a suspended state, the call has no
 ** effect.
-** 
+**
 **  PRTraceResumeRecording: void. value must be NULL. If
 ** recording for the Trace Facility has been previously been
 ** suspended, this causes recording to resume. Recording resumes
 ** with the next in-memory buffer segment that would be written
 ** if trace recording had not been suspended. If recording is
 ** not currently suspended, the call has no effect.
-** 
+**
 **  PRTraceLockHandles: void. value must be NULL. Locks the
 ** trace handle lock. While the trace handle lock is held,
 ** calls to PR_CreateTrace() will block until the lock is
 ** released.
-** 
+**
 **  PRTraceUnlockHandles: void. value must be NULL. Unlocks the
 ** trace handle lock.
-** 
+**
 ** OUTPUTS:
 **  The operation of the Trace Facility may be changed.
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_SET_TRACE_OPTION(command,value)\
     PR_SetTraceOption((command),(value))
 #else
 #define PR_SET_TRACE_OPTION(command,value)
 #endif
 
-NSPR_API(void) 
-	PR_SetTraceOption( 
+NSPR_API(void)
+	PR_SetTraceOption(
 	    PRTraceOption command,  /* One of the enumerated values */
 	    void *value             /* command value or NULL */
 );
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_GetTraceOption() -- Retrieve settings from the Trace Facility
-** 
+**
 ** DESCRIPTION:
 ** PR_GetTraceOption() retrieves the current setting of the
 ** Trace Facility control depending on command.
-** 
-** 
+**
+**
 **  PRTraceBufSize: unsigned long: the size of the trace buffer,
 ** in bytes.
-** 
-** 
+**
+**
 ** INPUTS:
 **  command: one of the enumerated values in PRTraceOptions
 ** valid for PR_GetTraceOption().
-** 
+**
 ** OUTPUTS:
 **  dependent on command.
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_GET_TRACE_OPTION(command,value)\
     PR_GetTraceOption((command),(value))
 #else
 #define PR_GET_TRACE_OPTION(command,value)
 #endif
 
-NSPR_API(void) 
-	PR_GetTraceOption( 
+NSPR_API(void)
+	PR_GetTraceOption(
     	PRTraceOption command,  /* One of the enumerated values */
 	    void *value             /* command value or NULL */
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_GetTraceHandleFromName() -- Retrieve an existing
 ** handle by name.
-** 
+**
 ** DESCRIPTION:
 ** PR_GetTraceHandleFromName() retreives an existing tracehandle
 ** using the name specified by qName and rName.
-** 
+**
 ** INPUTS:
-**  qName: pointer to string. QName for this trace handle. 
-** 
-**  rName: pointer to string. RName for this trace handle. 
-** 
-** 
+**  qName: pointer to string. QName for this trace handle.
+**
+**  rName: pointer to string. RName for this trace handle.
+**
+**
 ** OUTPUTS: returned.
-** 
-** RETURNS: 
+**
+** RETURNS:
 **  PRTraceHandle associated with qName and rName or NULL when
 ** there is no match.
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_GET_TRACE_HANDLE_FROM_NAME(handle,qName,rName)\
     (handle) = PR_GetTraceHandleFromName((qName),(rName))
 #else
 #define PR_GET_TRACE_HANDLE_FROM_NAME(handle,qName,rName)
 #endif
 
-NSPR_API(PRTraceHandle) 
-	PR_GetTraceHandleFromName( 
+NSPR_API(PRTraceHandle)
+	PR_GetTraceHandleFromName(
     	const char *qName,      /* QName search argument */
         const char *rName       /* RName search argument */
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_GetTraceNameFromHandle() -- Retreive trace name
 ** by bandle.
-** 
+**
 ** DESCRIPTION:
 ** PR_GetTraceNameFromHandle() retreives the existing qName,
 ** rName, and description for the referenced trace handle.
-** 
+**
 ** INPUTS: handle: PRTraceHandle.
-** 
+**
 ** OUTPUTS: pointers to the Trace Facility's copy of qName,
 ** rName and description. ... Don't mess with these values.
 ** They're mine.
-** 
+**
 ** RETURNS: void
-** 
+**
 ** RESTRICTIONS:
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_GET_TRACE_NAME_FROM_HANDLE(handle,qName,rName,description)\
     PR_GetTraceNameFromHandle((handle),(qName),(rName),(description))
 #else
 #define PR_GET_TRACE_NAME_FROM_HANDLE(handle,qName,rName,description)
 #endif
 
-NSPR_API(void) 
-	PR_GetTraceNameFromHandle( 
+NSPR_API(void)
+	PR_GetTraceNameFromHandle(
     	PRTraceHandle handle,       /* handle as search argument */
 	    const char **qName,         /* pointer to associated QName */
 	    const char **rName,         /* pointer to associated RName */
     	const char **description    /* pointer to associated description */
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_FindNextTraceQname() -- Retrieive a QName handle
 ** iterator.
-** 
+**
 ** DESCRIPTION:
 ** PR_FindNextTraceQname() retreives the first or next trace
 ** QName handle, depending on the value of handle, from the trace
 ** database. The PRTraceHandle returned can be used as an
 ** iterator to traverse the QName handles in the Trace database.
-** 
+**
 ** INPUTS:
 **  handle: When NULL, PR_FindNextQname() returns the first QName
 ** handle. When a handle is a valid PRTraceHandle previously
 ** retreived using PR_FindNextQname() the next QName handle is
 ** retreived.
-** 
+**
 ** OUTPUTS: returned.
-** 
-** RETURNS: 
+**
+** RETURNS:
 **  PRTraceHandle or NULL when there are no trace handles.
-** 
+**
 ** RESTRICTIONS:
 **  Iterating thru the trace handles via FindFirst/FindNext
 ** should be done under protection of the trace handle lock.
 ** See: PR_SetTraceOption( PRLockTraceHandles ).
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_FIND_NEXT_TRACE_QNAME(next,handle)\
     (next) = PR_FindNextTraceQname((handle))
 #else
 #define PR_FIND_NEXT_TRACE_QNAME(next,handle)
 #endif
 
-NSPR_API(PRTraceHandle) 
-	PR_FindNextTraceQname( 
+NSPR_API(PRTraceHandle)
+	PR_FindNextTraceQname(
         PRTraceHandle handle
 );
 
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_FindNextTraceRname() -- Retrieive an RName handle
 ** iterator.
-** 
+**
 ** DESCRIPTION:
 ** PR_FindNextTraceRname() retreives the first or next trace
 ** RName handle, depending on the value of handle, from the trace
 ** database. The PRTraceHandle returned can be used as an
 ** iterator to traverse the RName handles in the Trace database.
-** 
+**
 ** INPUTS:
 **  rhandle: When NULL, PR_FindNextRname() returns the first
 ** RName handle. When a handle is a valid PRTraceHandle
 ** previously retreived using PR_FindNextRname() the next RName
 ** handle is retreived.
 **  qhandle: A valid PRTraceHandle retruned from a previous call
 ** to PR_FIND_NEXT_TRACE_QNAME().
-** 
+**
 ** OUTPUTS: returned.
-** 
-** RETURNS: 
+**
+** RETURNS:
 **  PRTraceHandle or NULL when there are no trace handles.
-** 
+**
 ** RESTRICTIONS:
 **  Iterating thru the trace handles via FindNext should be done
 ** under protection of the trace handle lock. See: (
 ** PR_SetTraceOption( PRLockTraceHandles ).
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_FIND_NEXT_TRACE_RNAME(next,rhandle,qhandle)\
     (next) = PR_FindNextTraceRname((rhandle),(qhandle))
 #else
 #define PR_FIND_NEXT_TRACE_RNAME(next,rhandle,qhandle)
 #endif
 
-NSPR_API(PRTraceHandle) 
-	PR_FindNextTraceRname( 
+NSPR_API(PRTraceHandle)
+	PR_FindNextTraceRname(
         PRTraceHandle rhandle,
         PRTraceHandle qhandle
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_RecordTraceEntries() -- Write trace entries to external media
-** 
+**
 ** DESCRIPTION:
 ** PR_RecordTraceEntries() causes entries in the in-memory trace
 ** buffer to be written to external media.
 **
 ** When PR_RecordTraceEntries() is called from an application
 ** thread, the function appears to block until another thread
 ** calls PR_SetTraceOption() with the PRTraceStopRecording
 ** option. This suggests that PR_RecordTraceEntries() should be
 ** called from a user supplied thread whose only job is to
-** record trace entries. 
-** 
+** record trace entries.
+**
 ** The environment variable NSPR_TRACE_LOG controls the operation
 ** of this function. When NSPR_TRACE_LOG is not defined in the
 ** environment, no recording of trace entries occurs. When
 ** NSPR_TRACE_LOG is defined, the value of its definition must be
 ** the filename of the file to receive the trace entry buffer.
 **
 ** PR_RecordTraceEntries() attempts to record the in-memory
 ** buffer to a file, subject to the setting of the environment
 ** variable NSPR_TRACE_LOG. It is possible because of system
 ** load, the thread priority of the recording thread, number of
 ** active trace records being written over time, and other
 ** variables that some trace records can be lost. ... In other
 ** words: don't bet the farm on getting everything.
-** 
+**
 ** INPUTS: none
-** 
+**
 ** OUTPUTS: none
-** 
+**
 ** RETURNS: PR_STATUS
 **    PR_SUCCESS no errors were found.
 **    PR_FAILURE errors were found.
-** 
+**
 ** RESTRICTIONS:
 ** Only one thread can call PR_RecordTraceEntries() within a
 ** process.
-** 
+**
 ** On error, PR_RecordTraceEntries() may return prematurely.
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_RECORD_TRACE_ENTRIES()\
 	PR_RecordTraceEntries()
 #else
 #define PR_RECORD_TRACE_ENTRIES()
 #endif
-    
+
 NSPR_API(void)
 	PR_RecordTraceEntries(
-        void 
+        void
 );
 
 /* -----------------------------------------------------------------------
 ** FUNCTION: PR_GetTraceEntries() -- Retreive trace entries from
 ** the Trace Facility
-** 
+**
 ** DESCRIPTION:
 ** PR_GetTraceEntries() retreives trace entries from the Trace
 ** Facility. Up to count trace entries are copied from the Trace
 ** Facility into buffer. Only those trace entries that have not
 ** been copied via a previous call to PR_GetTraceEntries() are
 ** copied. The actual number copied is placed in the PRInt32
 ** variable pointed to by found.
 **
 ** If more than count trace entries have entered the Trace
-** Facility since the last call to PR_GetTraceEntries() 
+** Facility since the last call to PR_GetTraceEntries()
 ** a lost data condition is returned. In this case, the most
 ** recent count trace entries are copied into buffer and found is
 ** set to count.
-** 
+**
 ** INPUTS:
 **  count. The number of trace entries to be copied into buffer.
-** 
-** 
+**
+**
 ** OUTPUTS:
 **  buffer. An array of PRTraceEntries. The buffer is supplied
 ** by the caller.
-** 
+**
 ** found: 32bit signed integer. The number of PRTraceEntries
 ** actually copied. found is always less than or equal to count.
-** 
-** RETURNS: 
+**
+** RETURNS:
 **  zero when there is no lost data.
 **  non-zero when some PRTraceEntries have been lost.
-** 
+**
 ** RESTRICTIONS:
 ** This is a real performance pig. The copy out operation is bad
 ** enough, but depending on then frequency of calls to the
 ** function, serious performance impact to the operating
 ** application may be realized. ... YMMV.
-** 
+**
 */
 #if defined (DEBUG) || defined (FORCE_NSPR_TRACE)
 #define PR_GET_TRACE_ENTRIES(buffer,count,found)\
         PR_GetTraceEntries((buffer),(count),(found))
 #else
 #define PR_GET_TRACE_ENTRIES(buffer,count,found)
 #endif
 
--- a/pr/include/prtypes.h
+++ b/pr/include/prtypes.h
@@ -214,17 +214,17 @@ typedef unsigned char PRUint8;
 ** issue the warning message:
 **     warning: "signed" not implemented (ignored)
 ** For these compilers, we have to define PRInt8 as plain 'char'.
 ** Make sure that plain 'char' is indeed signed under these compilers.
 ** (2)
 ** Mozilla C++ code expects the PRInt{N} and int{N}_t types to match (see bug
 ** 634793). If a platform defines int8_t as 'char', but NSPR defines it as
 ** 'signed char', it results in a type mismatch.
-** On such platforms we define PRInt8 as 'char' to avoid the mismatch. 
+** On such platforms we define PRInt8 as 'char' to avoid the mismatch.
 */
 #if (defined(HPUX) && defined(__cplusplus) /* reason 1*/ \
         && !defined(__GNUC__) && __cplusplus < 199707L) \
     || (defined(SCO) && defined(__cplusplus) /* reason 1 */ \
         && !defined(__GNUC__) && __cplusplus == 1L) \
     || (defined(__sun) && defined(__cplusplus)) /* reason 2 */
 typedef char PRInt8;
 #else
--- a/pr/include/prvrsion.h
+++ b/pr/include/prvrsion.h
@@ -23,33 +23,33 @@ PR_BEGIN_EXTERN_C
 /* on NT, always pack the structure the same. */
 #ifdef _WIN32
 #pragma pack(push, 8)
 #endif
 
 typedef struct {
     /*
      * The first field defines which version of this structure is in use.
-     * At this time, only version 2 is specified. If this value is not 
+     * At this time, only version 2 is specified. If this value is not
      * 2, you must read no further into the structure.
      */
-    PRInt32    version; 
-  
+    PRInt32    version;
+
     /* for Version 2, this is the body format. */
     PRInt64         buildTime;      /* 64 bits - usecs since midnight, 1/1/1970 */
     char *          buildTimeString;/* a human readable version of the time */
-