Whitespace normalization.
diff --git a/Demo/threads/bug.py b/Demo/threads/bug.py
index 5860536..6c5edac 100644
--- a/Demo/threads/bug.py
+++ b/Demo/threads/bug.py
@@ -1,12 +1,12 @@
 # The following self-contained little program usually freezes with most
 # threads reporting
-# 
+#
 # Unhandled exception in thread:
 # Traceback (innermost last):
 #   File "importbug.py", line 6
 #     x = whrandom.randint(1,3)
 # AttributeError: randint
-# 
+#
 # Here's the program; it doesn't use anything from the attached module:
 
 import thread
@@ -33,37 +33,37 @@
 
 # Sticking an acquire/release pair around the 'import' statement makes the
 # problem go away.
-# 
+#
 # I believe that what happens is:
-# 
+#
 # 1) The first thread to hit the import atomically reaches, and executes
 #    most of, get_module.  In particular, it finds Lib/whrandom.pyc,
 #    installs its name in sys.modules, and executes
-# 
+#
 #         v = eval_code(co, d, d, d, (object *)NULL);
-# 
+#
 #    to initialize the module.
-# 
+#
 # 2) eval_code "ticker"-slices the 1st thread out, and gives another thread
 #    a chance.  When this 2nd thread hits the same 'import', import_module
 #    finds 'whrandom' in sys.modules, so just proceeds.
-# 
+#
 # 3) But the 1st thread is still "in the middle" of executing whrandom.pyc.
 #    So the 2nd thread has a good chance of trying to look up 'randint'
 #    before the 1st thread has placed it in whrandom's dict.
-# 
+#
 # 4) The more threads there are, the more likely that at least one of them
 #    will do this before the 1st thread finishes the import work.
-# 
+#
 # If that's right, a perhaps not-too-bad workaround would be to introduce a
 # static "you can't interrupt this thread" flag in ceval.c, check it before
 # giving up interpreter_lock, and have IMPORT_NAME set it & restore (plain
 # clearing would not work) it around its call to import_module.  To its
 # credit, there's something wonderfully perverse about fixing a race via an
 # unprotected static <grin>.
-# 
+#
 # as-with-most-other-things-(pseudo-)parallel-programming's-more-fun-
 #    in-python-too!-ly y'rs  - tim
-# 
+#
 # Tim Peters   tim@ksr.com
 # not speaking for Kendall Square Research Corp
diff --git a/Demo/threads/find.py b/Demo/threads/find.py
index f858ccc..11fb65a 100644
--- a/Demo/threads/find.py
+++ b/Demo/threads/find.py
@@ -32,121 +32,121 @@
 
 class WorkQ:
 
-	# Invariants:
+    # Invariants:
 
-	# - busy and work are only modified when mutex is locked
-	# - len(work) is the number of jobs ready to be taken
-	# - busy is the number of jobs being done
-	# - todo is locked iff there is no work and somebody is busy
+    # - busy and work are only modified when mutex is locked
+    # - len(work) is the number of jobs ready to be taken
+    # - busy is the number of jobs being done
+    # - todo is locked iff there is no work and somebody is busy
 
-	def __init__(self):
-		self.mutex = thread.allocate()
-		self.todo = thread.allocate()
-		self.todo.acquire()
-		self.work = []
-		self.busy = 0
+    def __init__(self):
+        self.mutex = thread.allocate()
+        self.todo = thread.allocate()
+        self.todo.acquire()
+        self.work = []
+        self.busy = 0
 
-	def addwork(self, func, args):
-		job = (func, args)
-		self.mutex.acquire()
-		self.work.append(job)
-		self.mutex.release()
-		if len(self.work) == 1:
-			self.todo.release()
+    def addwork(self, func, args):
+        job = (func, args)
+        self.mutex.acquire()
+        self.work.append(job)
+        self.mutex.release()
+        if len(self.work) == 1:
+            self.todo.release()
 
-	def _getwork(self):
-		self.todo.acquire()
-		self.mutex.acquire()
-		if self.busy == 0 and len(self.work) == 0:
-			self.mutex.release()
-			self.todo.release()
-			return None
-		job = self.work[0]
-		del self.work[0]
-		self.busy = self.busy + 1
-		self.mutex.release()
-		if len(self.work) > 0:
-			self.todo.release()
-		return job
+    def _getwork(self):
+        self.todo.acquire()
+        self.mutex.acquire()
+        if self.busy == 0 and len(self.work) == 0:
+            self.mutex.release()
+            self.todo.release()
+            return None
+        job = self.work[0]
+        del self.work[0]
+        self.busy = self.busy + 1
+        self.mutex.release()
+        if len(self.work) > 0:
+            self.todo.release()
+        return job
 
-	def _donework(self):
-		self.mutex.acquire()
-		self.busy = self.busy - 1
-		if self.busy == 0 and len(self.work) == 0:
-			self.todo.release()
-		self.mutex.release()
+    def _donework(self):
+        self.mutex.acquire()
+        self.busy = self.busy - 1
+        if self.busy == 0 and len(self.work) == 0:
+            self.todo.release()
+        self.mutex.release()
 
-	def _worker(self):
-		time.sleep(0.00001)	# Let other threads run
-		while 1:
-			job = self._getwork()
-			if not job:
-				break
-			func, args = job
-			apply(func, args)
-			self._donework()
+    def _worker(self):
+        time.sleep(0.00001)     # Let other threads run
+        while 1:
+            job = self._getwork()
+            if not job:
+                break
+            func, args = job
+            apply(func, args)
+            self._donework()
 
-	def run(self, nworkers):
-		if not self.work:
-			return # Nothing to do
-		for i in range(nworkers-1):
-			thread.start_new(self._worker, ())
-		self._worker()
-		self.todo.acquire()
+    def run(self, nworkers):
+        if not self.work:
+            return # Nothing to do
+        for i in range(nworkers-1):
+            thread.start_new(self._worker, ())
+        self._worker()
+        self.todo.acquire()
 
 
 # Main program
 
 def main():
-	sys.argv.append("/tmp")
-	nworkers = 4
-	opts, args = getopt.getopt(sys.argv[1:], '-w:')
-	for opt, arg in opts:
-		if opt == '-w':
-			nworkers = string.atoi(arg)
-	if not args:
-		args = [os.curdir]
+    sys.argv.append("/tmp")
+    nworkers = 4
+    opts, args = getopt.getopt(sys.argv[1:], '-w:')
+    for opt, arg in opts:
+        if opt == '-w':
+            nworkers = string.atoi(arg)
+    if not args:
+        args = [os.curdir]
 
-	wq = WorkQ()
-	for dir in args:
-		wq.addwork(find, (dir, selector, wq))
+    wq = WorkQ()
+    for dir in args:
+        wq.addwork(find, (dir, selector, wq))
 
-	t1 = time.time()
-	wq.run(nworkers)
-	t2 = time.time()
+    t1 = time.time()
+    wq.run(nworkers)
+    t2 = time.time()
 
-	sys.stderr.write('Total time ' + `t2-t1` + ' sec.\n')
+    sys.stderr.write('Total time ' + `t2-t1` + ' sec.\n')
 
 
 # The predicate -- defines what files we look for.
 # Feel free to change this to suit your purpose
 
 def selector(dir, name, fullname, stat):
-	# Look for group or world writable files
-	return (stat[ST_MODE] & 0022) != 0
+    # Look for group or world writable files
+    return (stat[ST_MODE] & 0022) != 0
 
 
 # The find procedure -- calls wq.addwork() for subdirectories
 
 def find(dir, pred, wq):
-	try:
-		names = os.listdir(dir)
-	except os.error, msg:
-		print `dir`, ':', msg
-		return
-	for name in names:
-		if name not in (os.curdir, os.pardir):
-			fullname = os.path.join(dir, name)
-			try:
-				stat = os.lstat(fullname)
-			except os.error, msg:
-				print `fullname`, ':', msg
-				continue
-			if pred(dir, name, fullname, stat):
-				print fullname
-			if S_ISDIR(stat[ST_MODE]):
-				if not os.path.ismount(fullname):
-					wq.addwork(find, (fullname, pred, wq))
+    try:
+        names = os.listdir(dir)
+    except os.error, msg:
+        print `dir`, ':', msg
+        return
+    for name in names:
+        if name not in (os.curdir, os.pardir):
+            fullname = os.path.join(dir, name)
+            try:
+                stat = os.lstat(fullname)
+            except os.error, msg:
+                print `fullname`, ':', msg
+                continue
+            if pred(dir, name, fullname, stat):
+                print fullname
+            if S_ISDIR(stat[ST_MODE]):
+                if not os.path.ismount(fullname):
+                    wq.addwork(find, (fullname, pred, wq))
 
 
 # Call the main program
diff --git a/Demo/threads/telnet.py b/Demo/threads/telnet.py
index eacb06d..3c70cb0 100644
--- a/Demo/threads/telnet.py
+++ b/Demo/threads/telnet.py
@@ -21,94 +21,94 @@
 
 # Telnet protocol characters
 
-IAC  = chr(255)	# Interpret as command
+IAC  = chr(255) # Interpret as command
 DONT = chr(254)
 DO   = chr(253)
 WONT = chr(252)
 WILL = chr(251)
 
 def main():
-	if len(sys.argv) < 2:
-		sys.stderr.write('usage: telnet hostname [port]\n')
-		sys.exit(2)
-	host = sys.argv[1]
-	try:
-		hostaddr = gethostbyname(host)
-	except error:
-		sys.stderr.write(sys.argv[1] + ': bad host name\n')
-		sys.exit(2)
-	#
-	if len(sys.argv) > 2:
-		servname = sys.argv[2]
-	else:
-		servname = 'telnet'
-	#
-	if '0' <= servname[:1] <= '9':
-		port = eval(servname)
-	else:
-		try:
-			port = getservbyname(servname, 'tcp')
-		except error:
-			sys.stderr.write(servname + ': bad tcp service name\n')
-			sys.exit(2)
-	#
-	s = socket(AF_INET, SOCK_STREAM)
-	#
-	try:
-		s.connect((host, port))
-	except error, msg:
-		sys.stderr.write('connect failed: ' + `msg` + '\n')
-		sys.exit(1)
-	#
-	thread.start_new(child, (s,))
-	parent(s)
+    if len(sys.argv) < 2:
+        sys.stderr.write('usage: telnet hostname [port]\n')
+        sys.exit(2)
+    host = sys.argv[1]
+    try:
+        hostaddr = gethostbyname(host)
+    except error:
+        sys.stderr.write(sys.argv[1] + ': bad host name\n')
+        sys.exit(2)
+    #
+    if len(sys.argv) > 2:
+        servname = sys.argv[2]
+    else:
+        servname = 'telnet'
+    #
+    if '0' <= servname[:1] <= '9':
+        port = eval(servname)
+    else:
+        try:
+            port = getservbyname(servname, 'tcp')
+        except error:
+            sys.stderr.write(servname + ': bad tcp service name\n')
+            sys.exit(2)
+    #
+    s = socket(AF_INET, SOCK_STREAM)
+    #
+    try:
+        s.connect((host, port))
+    except error, msg:
+        sys.stderr.write('connect failed: ' + `msg` + '\n')
+        sys.exit(1)
+    #
+    thread.start_new(child, (s,))
+    parent(s)
 
 def parent(s):
-	# read socket, write stdout
-	iac = 0		# Interpret next char as command
-	opt = ''	# Interpret next char as option
-	while 1:
-		data, dummy = s.recvfrom(BUFSIZE)
-		if not data:
-			# EOF -- exit
-			sys.stderr.write( '(Closed by remote host)\n')
-			sys.exit(1)
-		cleandata = ''
-		for c in data:
-			if opt:
-				print ord(c)
-##				print '(replying: ' + `opt+c` + ')'
-				s.send(opt + c)
-				opt = ''
-			elif iac:
-				iac = 0
-				if c == IAC:
-					cleandata = cleandata + c
-				elif c in (DO, DONT):
-					if c == DO: print '(DO)',
-					else: print '(DONT)',
-					opt = IAC + WONT
-				elif c in (WILL, WONT):
-					if c == WILL: print '(WILL)',
-					else: print '(WONT)',
-					opt = IAC + DONT
-				else:
-					print '(command)', ord(c)
-			elif c == IAC:
-				iac = 1
-				print '(IAC)',
-			else:
-				cleandata = cleandata + c
-		sys.stdout.write(cleandata)
-		sys.stdout.flush()
-##		print 'Out:', `cleandata`
+    # read socket, write stdout
+    iac = 0         # Interpret next char as command
+    opt = ''        # Interpret next char as option
+    while 1:
+        data, dummy = s.recvfrom(BUFSIZE)
+        if not data:
+            # EOF -- exit
+            sys.stderr.write( '(Closed by remote host)\n')
+            sys.exit(1)
+        cleandata = ''
+        for c in data:
+            if opt:
+                print ord(c)
+##                              print '(replying: ' + `opt+c` + ')'
+                s.send(opt + c)
+                opt = ''
+            elif iac:
+                iac = 0
+                if c == IAC:
+                    cleandata = cleandata + c
+                elif c in (DO, DONT):
+                    if c == DO: print '(DO)',
+                    else: print '(DONT)',
+                    opt = IAC + WONT
+                elif c in (WILL, WONT):
+                    if c == WILL: print '(WILL)',
+                    else: print '(WONT)',
+                    opt = IAC + DONT
+                else:
+                    print '(command)', ord(c)
+            elif c == IAC:
+                iac = 1
+                print '(IAC)',
+            else:
+                cleandata = cleandata + c
+        sys.stdout.write(cleandata)
+        sys.stdout.flush()
+##              print 'Out:', `cleandata`
 
 def child(s):
-	# read stdin, write socket
-	while 1:
-		line = sys.stdin.readline()
-##		print 'Got:', `line`
-		if not line: break
-		s.send(line)
+    # read stdin, write socket
+    while 1:
+        line = sys.stdin.readline()
+##              print 'Got:', `line`
+        if not line: break
+        s.send(line)
 
 main()