diff -urN storm_0.3/CONTROL/conffiles storm_0.5.2/CONTROL/conffiles
--- storm_0.3/CONTROL/conffiles	Wed Jan  2 19:29:46 2002
+++ storm_0.5.2/CONTROL/conffiles	Mon Feb 25 18:01:50 2002
@@ -1,9 +0,0 @@
-/usr/local/share/storm/config/sync
-/usr/local/share/storm/config/pop3
-/usr/local/share/storm/config/smtp
-/usr/local/share/storm/config/sig
-/usr/local/share/storm/mail/Inbox
-/usr/local/share/storm/mail/Outbox
-/usr/local/share/storm/data/notes.xml
-/usr/local/share/storm/data/contacts.xml
-/usr/local/share/storm/data/appointments.xml
diff -urN storm_0.3/CONTROL/control storm_0.5.2/CONTROL/control
--- storm_0.3/CONTROL/control	Wed Jan  2 19:08:18 2002
+++ storm_0.5.2/CONTROL/control	Wed Feb 27 10:01:34 2002
@@ -1,8 +1,15 @@
-Package: storm 
-Section: comm 
+Package: storm
+Provides: storm
+Section: comm
 Priority: optional
-Version: 0.3
+Version: 0.5.2
 Architecture: arm
-Maintainer: DamienTanner (dctanner@xoasis.com)
-Depends: python
-Description: Storm is the all-in-one PIM. Its current features are Today, Inbox, Calendar, Contacts and Notes. The Inbox module can either sync with your hosts mbox or collect mail via POP3. Other data like contacts is stored as in the xml format.
+Maintainer: Damien Tanner (dctanner@xoasis.com)
+Depends: python, rsync, libgtk1.2, ipaqalarm, dtmfdial, mixmodule, madplay, h3600-utils
+Suggests: ipaq-sleep
+Description: Storm is the all-in-one PIM. 
+ Its current features are Today, Inbox, Calendar, Contacts and Notes.
+ .
+ The Inbox module can either sync with your hosts mbox or collect mail 
+ via POP3.  Other data like contacts is stored as in the xml format. 
+ Version 0.5.x now includes a reworked Calendar and new Tasks module.
diff -urN storm_0.3/CONTROL/postinst storm_0.5.2/CONTROL/postinst
--- storm_0.3/CONTROL/postinst	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/CONTROL/postinst	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,120 @@
+#! /bin/sh
+
+# migrate away from /usr/local/share/storm/ and /usr/share/storm/:
+if [ -d /usr/local/share/storm/data ]; then
+  cp -f /usr/local/share/storm/data/* /usr/share/storm/data/ 2> /dev/null
+  rm -rf /usr/local/share/storm/data/
+fi
+
+if [ -d /usr/local/share/storm/config ]; then
+  cp -f /usr/local/share/storm/config/* /usr/share/storm/config/ 2> /dev/null
+  rm -rf /usr/local/share/storm/config/
+fi
+
+if [ -d /usr/local/share/storm/maildir ]; then
+  cp -f /usr/local/share/storm/maildir/* /usr/share/storm/maildir/ 2> /dev/null
+  rm -rf /usr/local/share/storm/maildir/
+fi
+
+# safety net:
+if [ ! -d /usr/share/storm.backup         ]; then mkdir /usr/share/storm.backup/         ; fi
+if [ ! -d /usr/share/storm.backup/data    ]; then mkdir /usr/share/storm.backup/data/    ; fi
+if [ ! -d /usr/share/storm.backup/config  ]; then mkdir /usr/share/storm.backup/config/  ; fi
+if [ ! -d /usr/share/storm.backup/maildir ]; then mkdir /usr/share/storm.backup/maildir/ ; fi
+
+if [ -d /usr/share/storm/data ]; then
+  cp -r /usr/share/storm/data/* /usr/share/storm.backup/data/ 2> /dev/null
+fi
+
+if [ -d /usr/share/storm/config ]; then
+  cp -r /usr/share/storm/config/* /usr/share/storm.backup/config/ 2> /dev/null
+fi
+
+if [ -d /usr/share/storm/config ]; then
+  cp -r /usr/share/storm/maildir/* /usr/share/storm.backup/maildir/ 2> /dev/null
+fi
+
+# move old config to new location and change /usr/local/share to
+# /usr/share if needed in that file:
+if [ ! -d /root/.storm ]; then
+    if [ -e /root/.storm ]; then
+	sed -e 's/\/usr\/local\/share/\/usr\/share/' /root/.storm > /root/.stormrc
+	rm -f /root/.storm
+    fi
+fi
+# (if the file /root/.storm doesn't exist, then let it create by storm.py)
+
+    
+# create dirs in root's home if needed:
+if [ ! -d /root/.storm             ]; then mkdir /root/.storm/             ; fi
+if [ ! -d /root/.storm/data        ]; then mkdir /root/.storm/data/        ; fi
+if [ ! -d /root/.storm/config      ]; then mkdir /root/.storm/config/      ; fi
+if [ ! -d /root/Maildir            ]; then mkdir /root/Maildir/            ; fi
+if [ ! -d /root/Maildir/Inbox      ]; then mkdir /root/Maildir/Inbox/      ; fi
+if [ ! -d /root/Maildir/Inbox/new  ]; then mkdir /root/Maildir/Inbox/new/  ; fi
+if [ ! -d /root/Maildir/Inbox/cur  ]; then mkdir /root/Maildir/Inbox/cur/  ; fi
+if [ ! -d /root/Maildir/Inbox/tmp  ]; then mkdir /root/Maildir/Inbox/tmp/  ; fi
+if [ ! -d /root/Maildir/Outbox     ]; then mkdir /root/Maildir/Outbox/     ; fi
+if [ ! -d /root/Maildir/Outbox/new ]; then mkdir /root/Maildir/Outbox/new/ ; fi
+if [ ! -d /root/Maildir/Outbox/cur ]; then mkdir /root/Maildir/Outbox/cur/ ; fi
+if [ ! -d /root/Maildir/Outbox/tmp ]; then mkdir /root/Maildir/Outbox/tmp/ ; fi
+
+# move to root's home dir (since only root was able to write to
+# /usr/share/storm/* anyway)...
+
+# !!! [ -d /usr/share/storm/data ] will always be true !!!
+if [ -d /usr/share/storm/data ]; then
+  cp -f /usr/share/storm/data/* /root/.storm/data/ 2> /dev/null
+  rm -f /usr/share/storm/data/*                    2> /dev/null
+  # copy back the alarm again... *sigh*:
+  cp -f /usr/share/storm/data/templates/alarm.mp3 /usr/share/storm/data/alarm.mp3
+  # ...and remove it in the user's home:
+  rm -f /root/.storm/data/alarm.mp3
+fi
+
+# !!! same here
+if [ -d /usr/share/storm/config ]; then
+  cp -f /usr/share/storm/config/* /root/.storm/config/ 2> /dev/null
+  rm -f /usr/share/storm/config/*                      2> /dev/null
+fi
+
+# !!! same here
+if [ -d /usr/share/storm/maildir ]; then
+  cp -f /usr/share/storm/maildir/templates/testmessage /root/Maildir/Inbox/new/
+  cp -f /usr/share/storm/maildir/Inbox/new/*  /root/Maildir/Inbox/new/  2> /dev/null
+  cp -f /usr/share/storm/maildir/Inbox/cur/*  /root/Maildir/Inbox/cur/  2> /dev/null
+  cp -f /usr/share/storm/maildir/Outbox/new/* /root/Maildir/Outbox/new/ 2> /dev/null
+  cp -f /usr/share/storm/maildir/Outbox/cur/* /root/Maildir/Outbox/cur/ 2> /dev/null
+  rm -f /usr/share/storm/maildir/* 2> /dev/null
+fi
+
+
+# Don't delete the whole /usr/local/share/storm, the user might
+# have own stuff there...
+rm -rf /usr/local/share/storm/modules/
+
+# just remove it, be it a symlink or a regular file
+# (test is just too clumsy)...
+rm -f /usr/bin/storm
+ln -s /usr/share/storm/storm.py /usr/bin/storm
+
+rm -f /usr/bin/storm-alarm
+ln -s /usr/share/storm/storm-alarm.py /usr/bin/storm-alarm
+
+# create the menu item:
+echo "?package(storm):needs=\"x11\" section=\"PIM\" title=\"Storm\" command=\"/usr/bin/storm\"" > /usr/lib/menu/storm
+
+if [ -x /usr/bin/update-menus ]; then
+  update-menus
+fi
+
+echo ""
+echo "Thanks for installing Storm!"
+echo ""
+echo "# Note: Your data and config now reside in ~/.storm/"
+echo "# while your mails are in ~/Maildir/ (they have been migrated for you)."
+echo "# User config is in ~/.stormrc."
+echo "# Backups can be found in /usr/share/storm.backup/ in case you need them."
+echo "# *If* you need them (or if they are not there),"
+echo "# be sure to file a bug on"
+echo "# http://sourceforge.net/tracker/?group_id=44543&atid=440083"
diff -urN storm_0.3/root/.storm storm_0.5.2/root/.storm
--- storm_0.3/root/.storm	Wed Jan  2 19:09:17 2002
+++ storm_0.5.2/root/.storm	Wed Dec 31 19:00:00 1969
@@ -1,3 +0,0 @@
-Your Name
-youemail@mydomain.com
-/usr/local/share/storm
diff -urN storm_0.3/root/.storm~ storm_0.5.2/root/.storm~
--- storm_0.3/root/.storm~	Mon Dec 31 22:11:54 2001
+++ storm_0.5.2/root/.storm~	Wed Dec 31 19:00:00 1969
@@ -1,3 +0,0 @@
-Your Name
-youemail@mydomain.com
-/root/Storm
diff -urN storm_0.3/usr/bin/storm storm_0.5.2/usr/bin/storm
--- storm_0.3/usr/bin/storm	Wed Jan  2 19:14:12 2002
+++ storm_0.5.2/usr/bin/storm	Wed Dec 31 19:00:00 1969
@@ -1,2361 +0,0 @@
-#!/usr/bin/env python
-# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)
-
-from gtk import *
-import string, rfc822, re, os, time, poplib, smtplib
-
-# main class for the gui, other classes handle diffrent sub functions such as Mail and Contacts
-class Storm:
-	def __init__(self):
-		# our main gtk window
-		self.window = GtkWindow(WINDOW_TOPLEVEL)
-		self.window.connect("delete_event", self.quit)
-		self.window.set_title("Storm v0.3")
-		self.window.set_usize(240, 280)
-
-		# read storm config file
-		self.get_config()
-		# start by importing the other classes
-		self.contacts = Contacts(self)
-		self.mail = Mail(self)
-		self.calendar = Calendar(self)
-		self.notes = Notes(self)
-		self.sync = Sync(self)
-		self.prefs = Prefs(self)
-		self.today = Today(self)
-		
-		# Main vBox
-		self.vbox = GtkVBox()
-		self.window.add(self.vbox)
-		self.vbox.show()
-
-		# Menus
-
-		self.menubar = GtkMenuBar()		# Main menu bar
-		self.vbox.pack_start(self.menubar, expand=FALSE)
-		self.menubar.show()
-
-		# File menu
-
-		file_menuitem = GtkMenuItem("File")
-		self.menubar.append(file_menuitem)
-		file_menuitem.show()
-		
-		file_menu = GtkMenu()
-		# add some sub menus
-		new_menuitem = GtkMenuItem("New")
-		file_menu.append(new_menuitem)
-		new_menuitem.show()
-
-		prefs_menuitem = GtkMenuItem("Prefs")
-		prefs_menuitem.connect("activate", self.prefs.show_config)
-		file_menu.append(prefs_menuitem)
-		prefs_menuitem.show()
-
-		exit_menuitem = GtkMenuItem("Exit")
-		exit_menuitem.connect("activate", self.quit)
-		file_menu.append(exit_menuitem)
-		exit_menuitem.show()
-
-		new_menu = GtkMenu()
-		# add some sub menus
-		new_message_menuitem = GtkMenuItem("Message")
-		new_message_menuitem.connect("activate", self.mail.new_message)
-		new_menu.append(new_message_menuitem)
-		new_message_menuitem.show()
-
-		# Sync menu
-
-		sync_menuitem = GtkMenuItem("Sync")
-		self.menubar.append(sync_menuitem)
-		sync_menuitem.show()
-
-		sync_menu = GtkMenu()
-		# add some sub menus
-		sync_mail_menuitem = GtkMenuItem("Mail")
-		sync_menu.append(sync_mail_menuitem)
-		sync_mail_menuitem.show()
-
-		mail_menu = GtkMenu()
-		# add some sub menus
-		mail_host_menuitem = GtkMenuItem("Host")
-		mail_host_menuitem.connect("activate", self.sync.host)
-		mail_menu.append(mail_host_menuitem)
-		mail_host_menuitem.show()
-		mail_pop_menuitem = GtkMenuItem("POP3")
-		mail_pop_menuitem.connect("activate", self.sync.pop3)
-		mail_menu.append(mail_pop_menuitem)
-		mail_pop_menuitem.show()
-		mail_smtp_menuitem = GtkMenuItem("SMTP")
-		mail_smtp_menuitem.connect("activate", self.sync.smtp)
-		mail_menu.append(mail_smtp_menuitem)
-		mail_smtp_menuitem.show()
-
-		# arrange menus
-		file_menu.show()
-		new_menu.show()
-		sync_menu.show()
-		file_menuitem.set_submenu(file_menu)
-		new_menuitem.set_submenu(new_menu)
-		sync_mail_menuitem.set_submenu(mail_menu)
-		sync_menuitem.set_submenu(sync_menu)
-
-		# make the toobar
-		self.toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
-		self.toolbar.set_button_relief(RELIEF_NONE)
-		self.toolbar.set_space_size(10)
-		self.vbox.pack_start(self.toolbar, expand=FALSE)
-		self.toolbar.show()
-
-		# make our notbook
-		self.notebook = GtkNotebook()
-		self.notebook.show()
-		self.notebook.set_show_tabs(FALSE)
-		self.notebook.set_show_border(FALSE)
-		# add it to the vbox
-		self.vbox.pack_start(self.notebook)
-		# add a load of pages to it
-		self.notebook.add(self.today.frame)
-		self.notebook.add(self.mail.frame)
-		self.notebook.add(self.calendar.frame)
-		self.notebook.add(self.contacts.frame)
-		self.notebook.add(self.notes.frame)
-
-		# add the evolution pixmaps to the toolbar
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/evolution-today.xpm")
-		self.toolbar.append_item(None, 'Today', None, GtkPixmap(pix, mask), self.show_today)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/evolution-inbox.xpm")
-		self.toolbar.append_item(None, 'Inbox', None, GtkPixmap(pix, mask), self.show_mail)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/evolution-calender.xpm")
-		self.toolbar.append_item(None, 'Calendar', None, GtkPixmap(pix, mask), self.show_calendar)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/evolution-contacts.xpm")
-		self.toolbar.append_item(None, 'Contacts', None, GtkPixmap(pix, mask), self.show_contacts)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/evolution-notes.xpm")
-		self.toolbar.append_item(None, 'Notes', None, GtkPixmap(pix, mask), self.show_notes)
-
-	def show_today(self, *args):
-		self.notebook.set_page(0)
-
-	def show_mail(self, *args):
-		self.notebook.set_page(1)
-
-	def show_calendar(self, *args):
-		self.notebook.set_page(2)
-
-	def show_contacts(self, *args):
-		self.notebook.set_page(3)
-
-	def show_notes(self, *args):
-		self.notebook.set_page(4)
-
-	def get_config(self):
-		# open up the storm config file
-		file = open(os.environ['HOME'] + '/.storm', 'r')
-		# read it
-		lines = file.readlines()
-		# assign varivles to the different lines
-		self.config = []
-		for line in lines:
-			line = string.strip(line)
-			self.config.append(line)
-
-	def mainloop(self):
-		# start up storm
-		self.window.show()
-		mainloop()
-
-	def quit(self, *args):
-		self.calendar.exit()
-		self.notes.exit()
-		# quit storm
-		mainquit()
-
-class Mail:
-	def __init__(self, parent):
-		self.parent = parent
-		self.config = self.parent.config
-		self.window = self.parent.window
-		self.cmap = self.window.get_colormap()
-		self.parent = parent
-
-		# start the gui
-
-		frame = GtkVBox()
-		frame.show()
-
-		hbox1 = GtkHBox()
-		frame.pack_start(hbox1, expand=FALSE)
-		hbox1.show()
-
-		self.menubar = GtkMenuBar()
-		self.menubar.set_shadow_type(SHADOW_NONE)
-		hbox1.pack_start(self.menubar, FALSE, FALSE, 2)
-		self.menubar.show()
-
-		self.current_folder_menuitem = GtkMenuItem("Inbox")
-		self.menubar.append(self.current_folder_menuitem)
-		self.current_folder_menuitem.show()
-
-		self.current_folder = "Inbox"
-
-		self.folders_menu = GtkMenu()
-		self.current_folder_menuitem.set_submenu(self.folders_menu)
-		self.folders_menu.show()
-		for self.folder in os.listdir(self.config[2] + '/mail'):
-			folder_menuitem = GtkMenuItem(self.folder)
-			folder_menuitem.connect("activate", self.select_folder, self.folder)
-			self.folders_menu.append(folder_menuitem)
-			folder_menuitem.show()
-
-		hsep = GtkHSeparator()
-		hbox1.pack_start(hsep)
-		hsep.show()
-
-		headers = []
-		vbox = GtkVBox()
-		frame.pack_start(vbox)
-		vbox.show()
-		# make the toobar
-		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
-		toolbar.set_button_relief(RELIEF_NONE)
-		toolbar.set_space_size(10)
-		vbox.pack_start(toolbar, expand=FALSE)
-		toolbar.show()
-		# add the evolution pixmaps to the toolbar
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/read.xpm")
-		toolbar.append_item(None, 'Read selected message', None, GtkPixmap(pix, mask), self.read_message)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/new.xpm")
-		toolbar.append_item(None, 'Compose a new message', None, GtkPixmap(pix, mask), self.new_message)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/edit.xpm")
-		toolbar.append_item(None, 'Edit the selected message', None, GtkPixmap(pix, mask), self.edit_message)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/reply.xpm")
-		toolbar.append_item(None, 'Reply to the select message', None, GtkPixmap(pix, mask), self.reply_message)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/trash.xpm")
-		toolbar.append_item(None, 'Delete the selected message', None, GtkPixmap(pix, mask), self.delete_message)
-
-		cscroll = GtkScrolledWindow()
-		cscroll.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
-		vbox.pack_start(cscroll)
-		cscroll.show()
-
-		clist=GtkCList(3)
-		cscroll.add(clist)
-		clist.connect("select_row" , self.select_message)
-		clist.set_flags(CAN_FOCUS)
-		clist.set_usize(-1, -1)
-		clist.set_column_title(0, "From")
-		clist.set_column_title(1, "Subject")
-		clist.set_column_title(2, "Date")
-		clist.set_column_width(0, 80)
-		clist.set_column_width(1, 80)
-		clist.set_column_width(2, 35)
-		clist.set_selection_mode(SELECTION_SINGLE)
-		clist.column_titles_hide()
-		clist.show()
-		self.clist=clist
-		frame.show()
-		self.frame=frame
-
-		self.read_mbox()
-		self.selected_message = ''
-
-	def select_folder(self, *args):
-		self.current_folder = args[1]
-		self.current_folder_menuitem.remove_submenu()
-		self.current_folder_menuitem.hide()
-		self.current_folder_menuitem = GtkMenuItem(self.current_folder)
-		self.menubar.append(self.current_folder_menuitem)
-		self.current_folder_menuitem.show()
-		self.current_folder_menuitem.set_submenu(self.folders_menu)
-		self.read_mbox()
-
-	def read_mbox(self):
-		# regexp for parsing mbox mail files
-		# open the mbox mail file
-		file = open(self.config[2] + '/mail/' + self.current_folder, 'r')
-		# read it
-		mbox_data = file.read()
-		# then split it up into the seperate messages
-		mbox_data = string.strip(mbox_data)
-		if mbox_data != '':
-			raw_messages = string.split(mbox_data, "\nFrom ")
-		else:
-			raw_messages = []
-
-		# then add the headers to the clist
-		self.messages = []
-		self.mbox_headers = []
-		clist_color = self.cmap.alloc("grey87");
-		x = 0
-		v = 0
-		self.clist.clear()
-		for message in raw_messages:
-			# take off the mbox header
-			mbox_header = string.split(message, "\n", 1)
-			self.mbox_headers.append(mbox_header[0])
-			# add it to the messages array
-			self.messages.append(mbox_header[1])
-			# split the header from the main message
-			message_header = string.split(mbox_header[1], "\n\n", 1)
-			# write the headers to a temp file
-			tmp_file = open("/tmp/storm.tmp", 'w')
-			tmp_file.write(message_header[0])
-			tmp_file.close()
-			tmp_file = open("/tmp/storm.tmp", 'r')
-			# then read the headers
-			header = rfc822.Message(tmp_file)
-			mfrom = header.getheader("From")
-			mdate = header.getheader("Date")
-			msubject = header.getheader("Subject")
-			tmp_file.close()
-			# and finnaly add it to the clist
-			if msubject == None:
-				theheaders = [mfrom, '', mdate]
-			else:
-				theheaders = [mfrom, msubject, mdate]
-			self.clist.append(theheaders)
-			if v == 0:
-				self.clist.set_background(x, clist_color)
-				v = 1
-			else:
-				v = 0
-			x = x + 1
-
-	def select_message(self, *args):
-		self.selected_message = args[1]
-
-	def new_message(self, *args):
-		self.do_message("new")
-
-	def reply_message(self, *args):
-		self.do_message("reply")
-
-	def edit_message(self, *args):
-		self.do_message("edit")
-
-	def read_message(self, *args):
-		if self.selected_message != '':
-			self.do_message("read")
-
-	def delete_message(self, *args):
-		self.clist.remove(self.selected_message)
-		del self.messages[self.selected_message]
-		self.update_mbox()
-		self.parent.today.update_today()
-
-	def delete_read_message(self, *args):
-		self.read_window.hide()
-		self.clist.remove(self.selected_message)
-		del self.messages[self.selected_message]
-		self.update_mbox()
-		self.parent.today.update_today()
-
-	def send_message(self, *args):
-		thedate = time.strftime("%a, %m %b %Y %X", time.gmtime(time.time()))
-		thedate = string.strip(thedate)
-		to_text = self.to_entry.get_text()
-		from_text = self.from_entry.get_text()
-		subject_text = self.subject_entry.get_text()
-		message_text = self.message_text.get_chars(0, -1)
-		file = open(self.config[2] + '/mail/Outbox', 'a')
-		file.write("\nFrom " + self.config[1] + " " + thedate + "\n" + "To: " + to_text + "\n" + "Subject: " + subject_text + "\n" + "From: " + from_text + "\n" + "Reply-To: " + self.config[1] + "\n" + "Date: " + thedate + "\n\n" + message_text + "\n")
-		self.read_window.hide()
-
-	def update_mbox(self, *args):
-		mbox_file = open(self.config[2] + '/mail/' + self.current_folder, 'w')
-		x = 0
-		while x < len(self.messages):
-			if x > 0:
-				mbox_file.write("From " + self.mbox_headers[x] + "\n" + self.messages[x] + "\n\n")
-			else:
-				mbox_file.write(self.mbox_headers[x] + "\n" + self.messages[x] + "\n\n")
-			x = x + 1
-		mbox_file.close()
-
-	def save_edited_message(self, *args):
-		thedate = self.clist.get_text(self.selected_message, 2)
-		to_text = self.to_entry.get_text()
-		from_text = self.from_entry.get_text()
-		subject_text = self.subject_entry.get_text()
-		message_text = self.message_text.get_chars(0, -1)
-		self.messages[self.selected_message] =  "To: " + to_text + "\n" + "Subject: " + subject_text + "\n" + "From: " + from_text + "\n" + "Reply-To: " + from_text + "\n" + "Date: " + thedate + "\n\n" + message_text
-		self.read_window.hide()
-		self.update_mbox()
-
-	def new_contact(self, *args):
-		to = self.to_entry.get_text()
-		to = string.strip(to)
-		to_re = re.compile('^["]?(.*)["]?[ ]?<(.*)>$')
-		data = re.findall(to_re, to)
-		self.parent.contacts.do_contact("new", data[0][0], data[0][1])
-
-	def select_to(self, *args):
-		# our main gtk window
-		window = GtkWindow(WINDOW_TOPLEVEL)
-		self.select_name_window = window
-		window.connect("delete_event", window.hide)
-		window.set_title("Storm - Contacts")
-		window.set_usize(200, 200)
-		window.show()
-
-		scroll = GtkScrolledWindow()
-		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
-		window.add(scroll)
-		scroll.show()
-
-		clist = GtkCList(2)
-		self.select_name_clist = clist
-		scroll.add(clist)
-		clist.connect("select_row" , self.select_name_return)
-		clist.set_flags(CAN_FOCUS)
-		clist.set_sort_column(0)
-		clist.set_usize(-1, -1)
-		clist.set_column_title(0, "Name")
-		clist.set_column_width(0, 80)
-		clist.set_column_title(1, "Email")
-		clist.set_column_width(1, 80)
-		clist.set_selection_mode(SELECTION_SINGLE)
-		clist.column_titles_show()
-		clist.show()
-		self.parent.contacts.update_list(clist)
-
-	def select_name_return(self, *args):
-		x = args[1]
-		self.to_entry.set_text('"' + self.parent.contacts.contact[x][0] + '" <' + self.parent.contacts.contact[x][1] + '>')
-		self.select_name_window.hide()
-
-	def do_message(self, mtype):
-		if mtype != "new":
-			# get the message and its headers etc.
-			message_header = string.split(self.messages[self.selected_message], "\n\n", 1)
-			# write the headers to a temp file
-			tmp_file = open("/tmp/storm.tmp", 'w')
-			tmp_file.write(message_header[0])
-			tmp_file.close()
-			tmp_file = open("/tmp/storm.tmp", 'r')
-			# then read the headers
-			header = rfc822.Message(tmp_file)
-			mfrom = header.getheader("From")
-			mto = header.getheader("To")
-			mdate = header.getheader("Date")
-			msubject = header.getheader("Subject")
-			tmp_file.close()
-
-		# our main gtk window
-		window = GtkWindow(WINDOW_TOPLEVEL)
-		self.read_window = window
-		window.connect("delete_event", window.hide)
-		if mtype != "new":
-			window.set_title("Storm - " + msubject)
-		else:
-			window.set_title("Storm - Message")
-		window.set_usize(240, 300)
-		window.show()
-
-		vbox = GtkVBox()
-		window.add(vbox)
-		vbox.show()
-
-		# make the toobar
-		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
-		toolbar.set_button_relief(RELIEF_NONE)
-		toolbar.set_space_size(10)
-		vbox.pack_start(toolbar, expand=FALSE)
-		toolbar.show()
-		# add the evolution pixmaps to the toolbar
-		if mtype == "read":
-			pix, mask = create_pixmap_from_xpm(window, None, self.config[2] + "/pixmaps/reply.xpm")
-			toolbar.append_item(None, 'Reply to the current message', None, GtkPixmap(pix, mask), self.reply_message)
-
-			pix, mask = create_pixmap_from_xpm(window, None, self.config[2] + "/pixmaps/trash.xpm")
-			toolbar.append_item(None, 'Delete the current message', None, GtkPixmap(pix, mask), self.delete_read_message)
-		elif mtype == "edit":
-			pix, mask = create_pixmap_from_xpm(window, None, self.config[2] + "/pixmaps/save.xpm")
-			toolbar.append_item(None, 'Delete the current message', None, GtkPixmap(pix, mask), self.save_edited_message)
-		else:
-			pix, mask = create_pixmap_from_xpm(window, None, self.config[2] + "/pixmaps/send.xpm")
-			toolbar.append_item(None, 'Send the current message', None, GtkPixmap(pix, mask), self.send_message)
-
-		pix, mask = create_pixmap_from_xpm(window, None, self.config[2] + "/pixmaps/cancel.xpm")
-		toolbar.append_item(None, 'Close this window', None, GtkPixmap(pix, mask), window.hide)
-
-		to_hbox = GtkHBox()
-		vbox.pack_start(to_hbox, expand=FALSE)
-		to_hbox.show()
-		to_button = GtkButton()
-		to_hbox.pack_start(to_button, expand=FALSE)
-		to_button.show()
-		message_tips = GtkTooltips()
-		if mtype == "read" or mtype == "edit":
-			message_tips.set_tip(to_button, 'Add contact to address book')
-			to_button.connect("clicked", self.new_contact)
-			pix, mask = create_pixmap_from_xpm(window, None, self.config[2] + "/pixmaps/contacts-add.xpm")
-			to_pixmap = GtkPixmap(pix, mask)
-		else:
-			message_tips.set_tip(to_button, 'Select a recipient from the address book')
-			to_button.connect("clicked", self.select_to)
-			pix, mask = create_pixmap_from_xpm(window, None, self.config[2] + "/pixmaps/contacts.xpm")
-			to_pixmap = GtkPixmap(pix, mask)
-		to_button.add(to_pixmap)
-		to_pixmap.show()
-		to_entry = GtkEntry()
-		if mtype == "read":
-			to_entry.set_editable(FALSE)
-			to_entry.set_text(mfrom)
-		elif mtype == "reply":
-			to_entry.set_editable(TRUE)
-			to_entry.set_text(mfrom)
-		if mtype == "edit":
-			to_entry.set_editable(TRUE)
-			to_entry.set_text(mto)
-		else:
-			to_entry.set_editable(TRUE)
-		to_hbox.pack_start(to_entry)
-		to_entry.show()
-		self.to_entry = to_entry
-		from_entry = GtkEntry()
-		if mtype == "read":
-			from_entry.set_editable(FALSE)
-			from_entry.set_text(mdate)
-		elif mtype == "reply" or mtype == "new":
-			from_entry.set_editable(TRUE)
-			from_entry.set_text('"' + self.config[0] + '" <' + self.config[1] + '>')
-		if mtype == "edit":
-			from_entry.set_editable(TRUE)
-			from_entry.set_text(mfrom)
-		else:
-			from_entry.set_editable(TRUE)
-		vbox.pack_start(from_entry, expand=FALSE)
-		from_entry.show()
-		self.from_entry = from_entry
-
-		subject_entry = GtkEntry()
-		if mtype == "read":
-			subject_entry.set_editable(FALSE)
-			subject_entry.set_text(msubject)
-		if mtype == "edit":
-			subject_entry.set_editable(TRUE)
-			subject_entry.set_text(msubject)
-		elif mtype == "reply":
-			subject_entry.set_editable(TRUE)
-			subject_entry.set_text('Re: ' + msubject)
-		else:
-			subject_entry.set_editable(TRUE)
-		vbox.pack_start(subject_entry, expand=FALSE)
-		subject_entry.show()
-		self.subject_entry = subject_entry
-		scroll = GtkScrolledWindow()
-		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
-		vbox.pack_start(scroll)
-		scroll.show()
-
-		text = GtkText()
-		self.message_text = text
-		if mtype == "read":
-			text.set_editable(FALSE)
-		else:
-			text.set_editable(TRUE)
-		scroll.add(text)
-		text.show()
-		text.freeze()
-		if mtype == "read" or mtype == "edit":
-			text.insert(None, None, None, message_header[1])
-		elif mtype == "reply":
-			sig_file = open(self.config[2] + '/config/sig', 'r')
-			sig = sig_file.read()
-			sig_file.close()
-
-			o_lines = string.split(message_header[1], '\n')
-			m_text = ''
-			for o_line in o_lines:
-				m_text = m_text + '> ' + o_line + '\n'
-			m_text_head = '\n> -----Original Message-----\n> From: ' + mfrom + '\n> Subject: ' + msubject + '\n> Date: ' + mdate + '\n> \n'
-			text.insert(None, None, None, '\n\n' + sig + '\n' + m_text_head + m_text)
-		elif mtype == "new":
-			sig_file = open(self.config[2] + '/config/sig', 'r')
-			sig = sig_file.read()
-			sig_file.close()
-			text.insert(None, None, None, '\n\n' + sig)
-		vadjust = scroll.get_vadjustment()
-		vadjust.set_value(0)
-		text.thaw()
-
-class Today:
-	def __init__(self, parent):
-		self.parent = parent
-		self.config = self.parent.config
-		self.window = self.parent.window
-
-		date = time.strftime("%d %m %y", time.gmtime(time.time()))
-		self.day, self.month, self.year = string.split(date)
-
-		frame = GtkFrame()
-		frame.set_usize(-1, -1)
-		frame.set_shadow_type("GTK_SHADOW_ETCHED_IN")
-		frame.set_label("Today")
-		frame.set_label_align(0, -1)
-
-		vbox1=GtkVBox()
-		frame.add(vbox1)
-		vbox1.set_usize(-1, -1)
-		vbox1.set_homogeneous(FALSE)
-		vbox1.set_spacing(0)
-		hbox1=GtkHBox()
-		vbox1.pack_start(hbox1, TRUE, TRUE, 0)
-		hbox1.set_usize(-1, -1)
-		hbox1.set_homogeneous(FALSE)
-		hbox1.set_spacing(0)
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/evolution-today.xpm")
-		today_pixmap=GtkPixmap(pix, mask)
-		hbox1.pack_start(today_pixmap, FALSE, FALSE, 0)
-		today_pixmap.set_usize(-1, -1)
-		today_pixmap.set_alignment(0.5, 0.5)
-		today_pixmap.set_padding(5, 0)
-		today_pixmap.show()
-		self.today_pixmap=today_pixmap
-		today_label=GtkLabel()
-		hbox1.pack_start(today_label, FALSE, FALSE, 0)
-		today_label.set_usize(-1, -1)
-		date_file = open(self.config[2] + "/config/lastsync", 'r')
-		thedate = date_file.read()
-		date_file.close()
-		today_label.set_text("Last syncronized:\n" + thedate)
-		today_label.set_justify(JUSTIFY_LEFT)
-		today_label.set_alignment(0.5, 0.5)
-		today_label.set_padding(0, 0)
-		today_label.show()
-		self.today_label=today_label
-		hbox1.show()
-		self.hbox1=hbox1
-		hbox2=GtkHBox()
-		vbox1.pack_start(hbox2, TRUE, TRUE, 0)
-		hbox2.set_usize(-1, -1)
-		hbox2.set_homogeneous(FALSE)
-		hbox2.set_spacing(0)
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/evolution-inbox.xpm")
-		inbox_pixmap=GtkPixmap(pix, mask)
-		hbox2.pack_start(inbox_pixmap, FALSE, FALSE, 0)
-		inbox_pixmap.set_usize(-1, -1)
-		inbox_pixmap.set_alignment(0.5, 0.5)
-		inbox_pixmap.set_padding(5, 0)
-		inbox_pixmap.show()
-		self.inbox_pixmap=inbox_pixmap
-		inbox_label=GtkLabel()
-		hbox2.pack_start(inbox_label, FALSE, FALSE, 0)
-		inbox_label.set_usize(-1, -1)
-		inbox_label.set_justify(JUSTIFY_LEFT)
-		inbox_label.set_alignment(0.5, 0.5)
-		inbox_label.set_padding(0, 0)
-		inbox_label.show()
-		self.inbox_label=inbox_label
-		hbox2.show()
-		self.hbox2=hbox2
-		hbox3=GtkHBox()
-		vbox1.pack_start(hbox3, TRUE, TRUE, 0)
-		hbox3.set_usize(-1, -1)
-		hbox3.set_homogeneous(FALSE)
-		hbox3.set_spacing(0)
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/evolution-calender.xpm")
-		calendar_pixmap=GtkPixmap(pix, mask)
-		hbox3.pack_start(calendar_pixmap, FALSE, FALSE, 0)
-		calendar_pixmap.set_usize(-1, -1)
-		calendar_pixmap.set_alignment(0.5, 0.5)
-		calendar_pixmap.set_padding(5, 0)
-		calendar_pixmap.show()
-		self.calendar_pixmap=calendar_pixmap
-
-		hbox3.show()
-		self.hbox3=hbox3
-		vbox1.show()
-		self.vbox1=vbox1
-
-		self.update_today(1)
-
-		frame.show()
-		self.frame = frame
-
-	def update_today(self, arg=0):
-		num_messages = len(self.parent.mail.messages)
-		file = open(self.config[2] + '/mail/Outbox', 'r')
-		outbox_data = file.read()
-		outbox_data = string.strip(outbox_data)
-		if outbox_data != '':
-			outbox_messages = string.split(outbox_data, "\nFrom ")
-			outbox_len = str(len(outbox_messages))
-		else:
-			outbox_len = '0'
-		self.inbox_label.set_text("Inbox: " + str(num_messages) + "\nOutbox: " + outbox_len)
-
-		if arg == 0:
-			self.calendar_vbox.hide()
-		calendar_vbox = GtkVBox()
-		calendar_vbox.set_homogeneous(TRUE)
-		self.hbox3.pack_start(calendar_vbox, FALSE, FALSE, 0)
-		calendar_vbox.show()
-		self.calendar_vbox = calendar_vbox
-		x = 0
-		while x < len(self.parent.calendar.appoint_summary):
-			if self.parent.calendar.appoint_date_day[x] == self.day and self.parent.calendar.appoint_date_month[x] == self.month and self.parent.calendar.appoint_date_year[x] == self.year and self.parent.calendar.appoint_done[x] == "no":
-				calendar_text = self.parent.calendar.appoint_time_hour[x] + ':' + self.parent.calendar.appoint_time_minute[x] + '\t' + self.parent.calendar.appoint_summary[x]
-				calendar_button = GtkButton(calendar_text)
-				calendar_button.connect("clicked", self.show_appointment, x)
-				calendar_vbox.pack_start(calendar_button, FALSE, FALSE, 0)
-				calendar_button.set_relief(RELIEF_NONE)
-				calendar_button.show()
-			x = x +1
-
-	def show_appointment(self, *args):
-		self.parent.calendar.selected_appointment = args[1]
-		self.parent.calendar.select_appointment(None, args[1])
-		self.parent.show_calendar()
-
-class Notes:
-	def __init__(self, parent):
-		self.parent = parent
-		self.config = self.parent.config
-		self.window = self.parent.window
-
-		frame=GtkFrame()
-		self.frame = frame
-		frame.set_usize(-1, -1)
-		frame.set_shadow_type("GTK_SHADOW_ETCHED_IN")
-		frame.set_label("Notes")
-		frame.set_label_align(0, -1)
-		frame.show()
-
-		vpaned = GtkVPaned()
-		frame.add(vpaned)
-		vpaned.show()
-
-		vbox = GtkVBox()
-		vpaned.pack1(vbox)
-		vbox.show()
-
-		# make the toobar
-		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
-		toolbar.set_button_relief(RELIEF_NONE)
-		toolbar.set_space_size(10)
-		vbox.pack_start(toolbar, expand=FALSE)
-		toolbar.show()
-		# add the evolution pixmaps to the toolbar
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/new.xpm")
-		toolbar.append_item(None, 'Make a new note', None, GtkPixmap(pix, mask), self.new_note)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/trash.xpm")
-		toolbar.append_item(None, 'Delete the selected note', None, GtkPixmap(pix, mask), self.delete_note)
-
-		cscroll = GtkScrolledWindow()
-		cscroll.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
-		vbox.pack_start(cscroll)
-		cscroll.show()
-
-		clist=GtkCList(2)
-		cscroll.add(clist)
-		clist.connect("select_row" , self.select_note)
-		clist.set_flags(CAN_FOCUS)
-		clist.set_usize(-1, 87)
-		clist.set_column_title(0, "Title")
-		clist.set_column_width(0, 180)
-		clist.set_column_title(1, "Blank")
-		clist.set_column_width(1, 1)
-		clist.set_selection_mode(SELECTION_SINGLE)
-		clist.column_titles_hide()
-		clist.show()
-		self.clist=clist
-
-		scroll = GtkScrolledWindow()
-		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
-		self.scroll = scroll
-		vpaned.pack2(scroll)
-		scroll.show()
-
-		text = GtkText()
-		text.connect("changed", self.text_changed)
-		self.text = text
-		text.set_editable(TRUE)
-		scroll.add(text)
-		text.show()
-
-		self.update_list()
-
-	def update_list(self):
-		xml = XmlParse()
-		notes_text = xml.parse_xml_file(self.config[2] + '/data/notes.xml', 'note')
-		self.note = []
-		self.clist.freeze()
-		for note_text in notes_text:
-			tmp = string.split(note_text, '\n', 1)
-			if tmp[0] == '':
-				note_title = '<no title>'
-			else:
-				note_title = tmp[0]
-
-			self.clist.append([note_title, ''])
-			self.note.append(note_text)
-		self.clist.thaw()
-
-	def select_note(self, *args):
-		self.selected_note = args[1]
-		self.freeze_text = 1
-		self.text.freeze()
-		self.text.delete_text(0, -1)
-		self.text.insert(None,None,None,self.note[self.selected_note])
-		self.text.thaw()
-		self.freeze_text = 0
-		self.text.set_position(len(self.note[self.selected_note]))
-		self.text.grab_focus()
-
-	def new_note(self, *args):
-		self.clist.append(['<no title>', ''])
-		self.note.append('')
-		self.selected_note = len(self.note) - 1
-		self.clist.select_row(self.selected_note, 0)
-		self.text.grab_focus()
-
-	def delete_note(self, *args):
-		del self.note[self.selected_note]
-		self.clist.remove(self.selected_note)
-		self.freeze_text = 1
-		self.text.delete_text(0, -1)
-		self.freeze_text = 0
-
-	def text_changed(self, *args):
-		if self.freeze_text == 0:
-			txt = self.text.get_chars(0, -1)
-			tmp = string.split(txt, '\n', 1)
-			self.clist.set_text(self.selected_note, 0, tmp[0])
-			self.note[self.selected_note] = txt
-
-	def exit(self):
-		file = open(self.config[2] + '/data/notes.xml', 'w')
-		for note in self.note:
-			file.write('<note>' + note + '</note>\n\n')
-		file.close()
-
-class Contacts:
-	def __init__(self, parent):
-		self.parent = parent
-		self.config = self.parent.config
-		self.window = self.parent.window
-		self.cmap = self.window.get_colormap()
-
-		frame=GtkFrame()
-		frame.set_usize(-1, -1)
-		frame.set_shadow_type("GTK_SHADOW_ETCHED_IN")
-		frame.set_label("Contacts")
-		frame.set_label_align(0, -1)
-
-		vpaned = GtkVPaned()
-		frame.add(vpaned)
-		vpaned.show()
-
-		vbox = GtkVBox()
-		vpaned.pack1(vbox)
-		vbox.show()
-
-		# make the toobar
-		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
-		toolbar.set_button_relief(RELIEF_NONE)
-		toolbar.set_space_size(10)
-		vbox.pack_start(toolbar, expand=FALSE)
-		toolbar.show()
-		# add the evolution pixmaps to the toolbar
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/new.xpm")
-		toolbar.append_item(None, 'Create a new contact', None, GtkPixmap(pix, mask), self.new_contact)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/edit.xpm")
-		toolbar.append_item(None, 'Edit the selected contact', None, GtkPixmap(pix, mask), self.edit_contact)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/trash.xpm")
-		toolbar.append_item(None, 'Delete the selected contact', None, GtkPixmap(pix, mask), self.delete_contact)
-
-		cscroll = GtkScrolledWindow()
-		cscroll.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
-		vbox.pack_start(cscroll)
-		cscroll.show()
-
-		clist=GtkCList(2)
-		cscroll.add(clist)
-		clist.connect("select_row" , self.select_contact)
-		clist.set_flags(CAN_FOCUS)
-		clist.set_usize(-1, 87)
-		clist.set_column_title(0, "Name")
-		clist.set_column_title(1, "Email")
-		clist.set_column_width(0, 100)
-		clist.set_column_width(1, 80)
-		clist.set_selection_mode(SELECTION_SINGLE)
-		clist.column_titles_hide()
-		clist.show()
-		self.clist=clist
-		frame.show()
-		self.frame=frame
-
-		scroll = GtkScrolledWindow()
-		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
-		self.scroll = scroll
-		vpaned.pack2(scroll)
-		scroll.show()
-
-		text = GtkText()
-		self.text = text
-		text.set_editable(FALSE)
-		scroll.add(text)
-		text.show()
-
-		xml = XmlParse()
-		self.xml_contacts = xml.parse_xml_file(self.config[2] + '/data/contacts.xml', 'contact')
-
-		self.contact = []
-		for xml_contact in self.xml_contacts:
-			self.contact.append([xml.xml_get_text(xml_contact, "name"), xml.xml_get_text(xml_contact, "nickname"), xml.xml_get_text(xml_contact, "dob"), xml.xml_get_text(xml_contact, "address"), xml.xml_get_text(xml_contact, "email"), xml.xml_get_text(xml_contact, "website"), xml.xml_get_text(xml_contact, "phone"), xml.xml_get_text(xml_contact, "notes")])
-		self.update_list(self.clist)
-
-	def update_list(self, clist):
-		x = 0
-		v = 0
-		clist_color = self.cmap.alloc("grey87");
-		self.contact.sort(lambda x, y: cmp(x[0], y[0]))
-		clist.clear()
-		while x < len(self.contact):
-			headers = [self.contact[x][0], self.contact[x][4]]
-			clist.append(headers)
-			if v == 0:
-				clist.set_background(x, clist_color)
-				v = 1
-			else:
-				v = 0
-			x = x + 1
-
-	def select_contact(self, *args):
-		self.text.freeze()
-		self.text.delete_text(0, -1)
-		self.selected_contact = args[1]
-		if self.contact[self.selected_contact][0] != "":
-			self.text.insert(None,None,None,"Name: " + self.contact[self.selected_contact][0] + "\n")
-		if self.contact[self.selected_contact][4] != "":
-			self.text.insert(None,None,None,"Email: " + self.contact[self.selected_contact][4] + "\n")
-		if self.contact[self.selected_contact][1] != "":
-			self.text.insert(None,None,None,"Nickname: " + self.contact[self.selected_contact][1] + "\n")
-		if self.contact[self.selected_contact][6] != "":
-			self.text.insert(None,None,None,"Phone: " + self.contact[self.selected_contact][6] + "\n")
-		if self.contact[self.selected_contact][5] != "":
-			self.text.insert(None,None,None,"Website: " + self.contact[self.selected_contact][5] + "\n")
-		if self.contact[self.selected_contact][2] != "":
-			self.text.insert(None,None,None,"Birtday: " + self.contact[self.selected_contact][2] + "\n")
-		if self.contact[self.selected_contact][3] != "":
-			self.text.insert(None,None,None,"Address: " + self.contact[self.selected_contact][3] + "\n")
-		if self.contact[self.selected_contact][7] != "":
-			self.text.insert(None,None,None,"Notes: " + self.contact[self.selected_contact][7] + "\n")
-		vadjust = self.scroll.get_vadjustment()
-		vadjust.set_value(0)
-		self.text.thaw()
-
-	def new_contact(self, *args):
-		self.do_contact("new")
-
-	def edit_contact(self, *args):
-		self.do_contact("edit")
-
-	def delete_contact(self, *args):
-		del self.contact[self.selected_contact]
-		self.text.delete_text(0, -1)
-		self.update_list(self.clist)
-		self.update_xml()
-
-	def save_contact(self, *args):
-		self.contact.append([self.name_entry.get_text(), self.nickname_entry.get_text(), self.birthday_entry.get_text(), self.address_text.get_chars(0, -1), self.email_entry.get_text(), self.website_entry.get_text(), self.phone_entry.get_text(), self.notes_text.get_chars(0, -1)])
-		self.update_list(self.clist)
-		self.contact_window.hide()
-		self.update_xml()
-
-	def save_edited_contact(self, *args):
-		self.contact[self.selected_contact][0] = self.name_entry.get_text()
-		self.contact[self.selected_contact][1] = self.nickname_entry.get_text()
-		self.contact[self.selected_contact][2] = self.birthday_entry.get_text()
-		self.contact[self.selected_contact][3] = self.address_text.get_chars(0, -1)
-		self.contact[self.selected_contact][4] = self.email_entry.get_text()
-		self.contact[self.selected_contact][5] = self.website_entry.get_text()
-		self.contact[self.selected_contact][6] = self.phone_entry.get_text()
-		self.contact[self.selected_contact][7] = self.notes_text.get_chars(0, -1)
-		self.update_list(self.clist)
-		self.select_contact(None, self.selected_contact)
-		self.contact_window.hide()
-		self.update_xml()
-
-	def do_contact(self, type, cname='', cemail=''):
-		# our main gtk window
-		window = GtkWindow(WINDOW_TOPLEVEL)
-		self.contact_window = window
-		window.connect("delete_event", window.hide)
-		window.set_title("Storm - Contact")
-		window.set_usize(240, 300)
-		window.show()
-
-		vbox = GtkVBox()
-		window.add(vbox)
-		vbox.show()
-
-		# make the toobar
-		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
-		toolbar.set_button_relief(RELIEF_NONE)
-		toolbar.set_space_size(10)
-		vbox.pack_start(toolbar, expand=FALSE)
-		toolbar.show()
-		# add the evolution pixmaps to the toolbar
-		if type == "edit":
-			pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/save.xpm")
-			toolbar.append_item(None, 'Save the current contact', None, GtkPixmap(pix, mask), self.save_edited_contact)
-		else:
-			pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/save.xpm")
-			toolbar.append_item(None, 'Save the current contact', None, GtkPixmap(pix, mask), self.save_contact)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/cancel.xpm")
-		toolbar.append_item(None, 'Close this window', None, GtkPixmap(pix, mask), window.hide)
-
-		table1=GtkTable(8, 2)
-		vbox.pack_start(table1)
-		table1.set_usize(-1, -1)
-		table1.set_row_spacings(0)
-		table1.set_col_spacings(0)
-		label2=GtkLabel()
-		table1.attach(label2, 0, 1, 1, 2, FILL, 0, 0, 0)
-		label2.set_usize(-1, -1)
-		label2.set_text("Email")
-		label2.set_justify(JUSTIFY_CENTER)
-		label2.set_alignment(0, 0.5)
-		label2.set_padding(0, 0)
-		label2.show()
-		self.label2=label2
-		label3=GtkLabel()
-		table1.attach(label3, 0, 1, 2, 3, FILL, 0, 0, 0)
-		label3.set_usize(-1, -1)
-		label3.set_text("Nickname")
-		label3.set_justify(JUSTIFY_CENTER)
-		label3.set_alignment(0, 0.5)
-		label3.set_padding(0, 0)
-		label3.show()
-		self.label3=label3
-		label4=GtkLabel()
-		table1.attach(label4, 0, 1, 3, 4, FILL, 0, 0, 0)
-		label4.set_usize(-1, -1)
-		label4.set_text("Birthday")
-		label4.set_justify(JUSTIFY_CENTER)
-		label4.set_alignment(0, 0.5)
-		label4.set_padding(0, 0)
-		label4.show()
-		self.label4=label4
-		label5=GtkLabel()
-		table1.attach(label5, 0, 1, 4, 5, FILL, 0, 0, 0)
-		label5.set_usize(-1, -1)
-		label5.set_text("Website")
-		label5.set_justify(JUSTIFY_CENTER)
-		label5.set_alignment(0, 0.5)
-		label5.set_padding(0, 0)
-		label5.show()
-		self.label5=label5
-		label6=GtkLabel()
-		table1.attach(label6, 0, 1, 5, 6, FILL, 0, 0, 0)
-		label6.set_usize(-1, -1)
-		label6.set_text("Phone")
-		label6.set_justify(JUSTIFY_CENTER)
-		label6.set_alignment(0, 0.5)
-		label6.set_padding(0, 0)
-		label6.show()
-		self.label6=label6
-		label7=GtkLabel()
-		table1.attach(label7, 0, 1, 6, 7, FILL, 0, 0, 0)
-		label7.set_usize(-1, -1)
-		label7.set_text("Address")
-		label7.set_justify(JUSTIFY_CENTER)
-		label7.set_alignment(0, 0.5)
-		label7.set_padding(0, 0)
-		label7.show()
-		self.label7=label7
-		label8=GtkLabel()
-		table1.attach(label8, 0, 1, 7, 8, FILL, 0, 0, 0)
-		label8.set_usize(-1, -1)
-		label8.set_text("Notes")
-		label8.set_justify(JUSTIFY_CENTER)
-		label8.set_alignment(0, 0.5)
-		label8.set_padding(0, 0)
-		label8.show()
-		self.label8=label8
-		name_entry=GtkEntry()
-		table1.attach(name_entry, 1, 2, 0, 1, EXPAND, 0, 0, 0)
-		name_entry.set_flags(CAN_FOCUS)
-		name_entry.set_usize(170, -1)
-		name_entry.set_editable(TRUE)
-		name_entry.set_visibility(TRUE)
-		name_entry.set_max_length(0)
-		if type == "edit":
-			name_entry.set_text(self.contact[self.selected_contact][0])
-		else:
-			name_entry.set_text(cname)
-		name_entry.show()
-		self.name_entry=name_entry
-		email_entry=GtkEntry()
-		table1.attach(email_entry, 1, 2, 1, 2, EXPAND, 0, 0, 0)
-		email_entry.set_flags(CAN_FOCUS)
-		email_entry.set_usize(170, -1)
-		email_entry.set_editable(TRUE)
-		email_entry.set_visibility(TRUE)
-		email_entry.set_max_length(0)
-		if type == "edit":
-			email_entry.set_text(self.contact[self.selected_contact][4])
-		else:
-			email_entry.set_text(cemail)
-		email_entry.show()
-		self.email_entry=email_entry
-		nickname_entry=GtkEntry()
-		table1.attach(nickname_entry, 1, 2, 2, 3, EXPAND, 0, 0, 0)
-		nickname_entry.set_flags(CAN_FOCUS)
-		nickname_entry.set_usize(170, -1)
-		nickname_entry.set_editable(TRUE)
-		nickname_entry.set_visibility(TRUE)
-		nickname_entry.set_max_length(0)
-		if type == "edit":
-			nickname_entry.set_text(self.contact[self.selected_contact][1])
-		nickname_entry.show()
-		self.nickname_entry=nickname_entry
-		birthday_entry=GtkEntry()
-		table1.attach(birthday_entry, 1, 2, 3, 4, EXPAND, 0, 0, 0)
-		birthday_entry.set_flags(CAN_FOCUS)
-		birthday_entry.set_usize(170, -1)
-		birthday_entry.set_editable(TRUE)
-		birthday_entry.set_visibility(TRUE)
-		birthday_entry.set_max_length(0)
-		if type == "edit":
-			birthday_entry.set_text(self.contact[self.selected_contact][2])
-		birthday_entry.show()
-		self.birthday_entry=birthday_entry
-		website_entry=GtkEntry()
-		table1.attach(website_entry, 1, 2, 4, 5, EXPAND, 0, 0, 0)
-		website_entry.set_flags(CAN_FOCUS)
-		website_entry.set_usize(170, -1)
-		website_entry.set_editable(TRUE)
-		website_entry.set_visibility(TRUE)
-		website_entry.set_max_length(0)
-		if type == "edit":
-			website_entry.set_text(self.contact[self.selected_contact][5])
-		website_entry.show()
-		self.website_entry=website_entry
-		phone_entry=GtkEntry()
-		table1.attach(phone_entry, 1, 2, 5, 6, EXPAND, 0, 0, 0)
-		phone_entry.set_flags(CAN_FOCUS)
-		phone_entry.set_usize(170, -1)
-		phone_entry.set_editable(TRUE)
-		phone_entry.set_visibility(TRUE)
-		phone_entry.set_max_length(0)
-		if type == "edit":
-			phone_entry.set_text(self.contact[self.selected_contact][6])
-		phone_entry.show()
-		self.phone_entry=phone_entry
-		scrolledwindow1=GtkScrolledWindow()
-		table1.attach(scrolledwindow1, 1, 2, 6, 7, FILL, FILL, 0, 0)
-		scrolledwindow1.set_usize(170, 60)
-		scrolledwindow1.set_policy(POLICY_NEVER, POLICY_AUTOMATIC)
-		address_text=GtkText()
-		scrolledwindow1.add(address_text)
-		address_text.set_flags(CAN_FOCUS)
-		address_text.set_usize(170, 60)
-		address_text.set_editable(TRUE)
-		if type == "edit":
-			address_text.insert(None,None,None,self.contact[self.selected_contact][3])
-		address_text.show()
-		self.address_text=address_text
-		scrolledwindow1.show()
-		self.scrolledwindow1=scrolledwindow1
-		scrolledwindow2=GtkScrolledWindow()
-		table1.attach(scrolledwindow2, 1, 2, 7, 8, FILL, FILL, 0, 0)
-		scrolledwindow2.set_usize(170, 60)
-		scrolledwindow2.set_policy(POLICY_NEVER, POLICY_AUTOMATIC)
-		notes_text=GtkText()
-		scrolledwindow2.add(notes_text)
-		notes_text.set_flags(CAN_FOCUS)
-		notes_text.set_usize(170, 60)
-		notes_text.set_editable(TRUE)
-		if type == "edit":
-			notes_text.insert(None,None,None,self.contact[self.selected_contact][7])
-		notes_text.show()
-		self.notes_text=notes_text
-		scrolledwindow2.show()
-		self.scrolledwindow2=scrolledwindow2
-		label1=GtkLabel()
-		table1.attach(label1, 0, 1, 0, 1, FILL, 0, 0, 0)
-		label1.set_usize(-1, -1)
-		label1.set_text("Name")
-		label1.set_justify(JUSTIFY_CENTER)
-		label1.set_alignment(0, 0.5)
-		label1.set_padding(0, 0)
-		label1.show()
-		self.label1=label1
-		table1.show()
-		self.table1=table1
-
-	def update_xml(self):
-		file = open(self.config[2] + '/data/contacts.xml', 'w')
-		x = 0
-		while x < len(self.contact):
-			file.write('<contact>\n<name>' + self.contact[x][0] + '</name>\n<nickname>' + self.contact[x][1] + '</nickname>\n<dob>' + self.contact[x][2] + '</dob>\n<address>' + self.contact[x][3] + '</address>\n<email>' + self.contact[x][4] + '</email>\n<website>' + self.contact[x][5] + '</website>\n<phone>' + self.contact[x][6] + '</phone>\n<notes>' + self.contact[x][7] + '</notes>\n</contact>\n\n')
-			x = x + 1
-		file.close
-
-class Calendar:
-	def __init__(self, parent):
-		self.parent = parent
-		self.config = self.parent.config
-		self.window = self.parent.window
-		self.cmap = self.window.get_colormap()
-		date = time.strftime("%d %m %y %l %M", time.gmtime(time.time()))
-		self.day, self.month, self.year, self.hour, self.minute = string.split(date)
-
-		frame=GtkFrame()
-		frame.set_usize(-1, -1)
-		frame.set_shadow_type("GTK_SHADOW_ETCHED_IN")
-		frame.set_label("Calendar")
-		frame.set_label_align(0, -1)
-		frame.show()
-		self.frame=frame
-		frame.show()
-
-		vpaned = GtkVPaned()
-		frame.add(vpaned)
-		vpaned.show()
-		self.vpaned = vpaned
-
-		vbox = GtkVBox()
-		vpaned.pack1(vbox)
-		vbox.show()
-
-		hbox = GtkHBox()
-		vbox.pack_start(hbox, expand=FALSE)
-		hbox.show()
-
-		# make the toobar
-		toolbar2 = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
-		toolbar2.set_button_relief(RELIEF_NONE)
-		toolbar2.set_space_size(10)
-		hbox.pack_start(toolbar2, fill=TRUE)
-		# add the evolution pixmaps to the toolbar
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/new.xpm")
-		toolbar2.append_item(None, 'Create a new appointment', None, GtkPixmap(pix, mask), self.new_appointment)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/edit.xpm")
-		toolbar2.append_item(None, 'Edit the selected appointment', None, GtkPixmap(pix, mask), self.edit_appointment)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/trash.xpm")
-		toolbar2.append_item(None, 'Delete the selected appointment', None, GtkPixmap(pix, mask), self.delete_appointment)
-
-		toolbar2.show()
-
-		# make the toobar
-		toolbar3 = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
-		toolbar3.set_button_relief(RELIEF_NONE)
-		toolbar3.set_space_size(10)
-		hbox.pack_start(toolbar3, fill=TRUE)
-		# add the evolution pixmaps to the toolbar
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/tick.xpm")
-		toolbar3.append_item(None, 'Set the selected appointment as Completed', None, GtkPixmap(pix, mask), self.done_appointment)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/cancel.xpm")
-		toolbar3.append_item(None, 'Set the selected appointment as Not yet Completed', None, GtkPixmap(pix, mask), self.cancel_appointment)
-		toolbar3.show()
-
-		cscroll = GtkScrolledWindow()
-		cscroll.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
-		vbox.pack_start(cscroll)
-		cscroll.show()
-
-		clist=GtkCList(3)
-		cscroll.add(clist)
-		clist.connect("select_row" , self.select_appointment)
-		clist.set_flags(CAN_FOCUS)
-		clist.set_usize(-1, 87)
-		clist.set_column_title(0, "Status")
-		clist.set_column_title(1, "summary")
-		clist.set_column_title(2, "Date")
-		clist.set_column_width(0, 16)
-		clist.set_column_width(1, 90)
-		clist.set_column_width(2, 80)
-		clist.set_selection_mode(SELECTION_SINGLE)
-		clist.column_titles_hide()
-		clist.show()
-		self.clist = clist
-
-		scroll = GtkScrolledWindow()
-		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
-		self.scroll = scroll
-		vpaned.pack2(scroll)
-		scroll.show()
-
-		text = GtkText()
-		text.set_editable(FALSE)
-		scroll.add(text)
-		text.show()
-		self.text = text
-
-		self.update_list()
-
-	def select_appointment(self, *args):
-		self.text.freeze()
-		self.text.delete_text(0, -1)
-		self.selected_appointment = args[1]
-		self.text.insert(None,None,None,'Summary: ' + self.appoint_summary[self.selected_appointment] + '\nDate\Time: ' + self.appoint_time_hour[self.selected_appointment] + ':' + self.appoint_time_minute[self.selected_appointment] + ' ' + self.appoint_date_day[self.selected_appointment] + '/' + self.appoint_date_month[self.selected_appointment] + '/' + self.appoint_date_year[self.selected_appointment] + '\n')
-		if self.appoint_name[self.selected_appointment] != "":
-			self.text.insert(None,None,None,'Person: ' + self.appoint_name[self.selected_appointment] + '\n')
-		if self.appoint_place[self.selected_appointment] != "":
-			self.text.insert(None,None,None,'Place: ' + self.appoint_place[self.selected_appointment] + '\n')
-		if self.appoint_descrip[self.selected_appointment] != "":
-			self.text.insert(None,None,None,'Description: ' + self.appoint_descrip[self.selected_appointment] + '\n')
-		vadjust = self.scroll.get_vadjustment()
-		vadjust.set_value(0)
-		self.text.thaw()
-
-	def update_list(self):
-		xml = XmlParse()
-		self.xml_appointments = xml.parse_xml_file(self.config[2] + '/data/appointments.xml', 'appointment')
-		self.appoint_summary = []
-		self.appoint_time_hour = []
-		self.appoint_time_minute = []
-		self.appoint_date_day = []
-		self.appoint_date_month = []
-		self.appoint_date_year = []
-		self.appoint_name = []
-		self.appoint_place = []
-		self.appoint_descrip = []
-		self.appoint_done = []
-
-		x = 0
-		v = 0
-		self.clist.clear()
-		clist_color = self.cmap.alloc("grey87");
-		for xml_appointment in self.xml_appointments:
-			self.appoint_summary.append(xml.xml_get_text(xml_appointment, "summary"))
-			self.appoint_time_hour.append(xml.xml_get_text(xml_appointment, "time-hour"))
-			self.appoint_time_minute.append(xml.xml_get_text(xml_appointment, "time-minute"))
-			self.appoint_date_day.append(xml.xml_get_text(xml_appointment, "date-day"))
-			self.appoint_date_month.append(xml.xml_get_text(xml_appointment, "date-month"))
-			self.appoint_date_year.append(xml.xml_get_text(xml_appointment, "date-year"))
-			self.appoint_name.append(xml.xml_get_text(xml_appointment, "name"))
-			self.appoint_place.append(xml.xml_get_text(xml_appointment, "place"))
-			self.appoint_descrip.append(xml.xml_get_text(xml_appointment, "description"))
-			self.appoint_done.append(xml.xml_get_text(xml_appointment, "done"))
-
-			thedate = self.appoint_time_hour[x] + ':' + self.appoint_time_minute[x] + ' ' + self.appoint_date_day[x] + '/' + self.appoint_date_month[x] + '/' + self.appoint_date_year[x]
-			headers = ['', self.appoint_summary[x], thedate]
-			self.clist.append(headers)
-			if v == 0:
-				self.clist.set_background(x, clist_color)
-				v = 1
-			else:
-				v = 0
-			x = x + 1
-
-		row_count = 0
-		while row_count < len(self.appoint_summary):
-			if self.appoint_done[row_count] == "yes":
-				pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/tick.xpm")
-			else:
-				pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/blank.xpm")
-   			self.clist.set_pixmap(row_count, 0, pix, mask)
-			row_count = row_count + 1
-
-	def new_appointment(self, *args):
-		self.do_appointment("new")
-
-	def edit_appointment(self, *args):
-		self.do_appointment("edit")
-
-	def delete_appointment(self, *args):
-		del self.appoint_summary[self.selected_appointment]
-		del self.appoint_time_hour[self.selected_appointment]
-		del self.appoint_time_minute[self.selected_appointment]
-		del self.appoint_date_day[self.selected_appointment]
-		del self.appoint_date_month[self.selected_appointment]
-		del self.appoint_date_year[self.selected_appointment]
-		del self.appoint_name[self.selected_appointment]
-		del self.appoint_place[self.selected_appointment]
-		del self.appoint_descrip[self.selected_appointment]
-		del self.appoint_done[self.selected_appointment]
-		self.text.delete_text(0, -1)
-		self.clist.remove(self.selected_appointment)
-		self.update_xml()
-		self.parent.today.update_today()
-
-	def done_appointment(self, *args):
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/tick.xpm")
-		self.clist.set_pixmap(self.selected_appointment, 0, pix, mask)
-		self.appoint_done[self.selected_appointment] = "yes"
-		self.parent.today.update_today()
-
-	def cancel_appointment(self, *args):
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/blank.xpm")
-		self.clist.set_pixmap(self.selected_appointment, 0, pix, mask)
-		self.appoint_done[self.selected_appointment] = "no"
-		self.parent.today.update_today()
-
-	def save_appointment(self, *args):
-		self.appoint_summary.append(self.summary_entry.get_text())
-		self.appoint_time_hour.append(self.time_combo_hour.entry.get_text())
-		self.appoint_time_minute.append(self.time_combo_minute.entry.get_text())
-		self.appoint_date_day.append(self.date_combo_day.entry.get_text())
-		self.appoint_date_month.append(self.date_combo_month.entry.get_text())
-		self.appoint_date_year.append(self.date_entry_year.get_text())
-		self.appoint_name.append(self.name_entry.get_text())
-		self.appoint_place.append(self.place_entry.get_text())
-		self.appoint_descrip.append(self.description_text.get_chars(0, -1))
-		self.appoint_done.append("no")
-		self.update_xml()
-		self.update_list()
-		self.appointment_window.hide()
-		self.parent.today.update_today()
-
-	def save_edited_appointment(self, *args):
-		self.appoint_summary[self.selected_appointment] = self.summary_entry.get_text()
-		self.appoint_time_hour[self.selected_appointment] = self.time_combo_hour.entry.get_text()
-		self.appoint_time_minute[self.selected_appointment] = self.time_combo_minute.entry.get_text()
-		self.appoint_date_day[self.selected_appointment] = self.date_combo_day.entry.get_text()
-		self.appoint_date_month[self.selected_appointment] = self.date_combo_month.entry.get_text()
-		self.appoint_date_year[self.selected_appointment] = self.date_entry_year.get_text()
-		self.appoint_name[self.selected_appointment] = self.name_entry.get_text()
-		self.appoint_place[self.selected_appointment] = self.place_entry.get_text()
-		self.appoint_descrip[self.selected_appointment] = self.description_text.get_chars(0, -1)
-		self.update_xml()
-		self.update_list()
-		self.select_appointment(None, self.selected_appointment)
-		self.appointment_window.hide()
-		self.parent.today.update_today()
-
-	def do_appointment(self, type):
-		# our main gtk window
-		window = GtkWindow(WINDOW_TOPLEVEL)
-		self.appointment_window = window
-		window.connect("delete_event", window.hide)
-		window.set_title("Storm - Appointment")
-		window.set_usize(240, 300)
-		window.show()
-
-		vbox = GtkVBox()
-		window.add(vbox)
-		vbox.show()
-
-		# make the toobar
-		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
-		toolbar.set_button_relief(RELIEF_NONE)
-		toolbar.set_space_size(10)
-		vbox.pack_start(toolbar, expand=FALSE)
-		toolbar.show()
-		# add the evolution pixmaps to the toolbar
-		if type == "edit":
-			pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/save.xpm")
-			toolbar.append_item(None, 'Save the current appointment', None, GtkPixmap(pix, mask), self.save_edited_appointment)
-		else:
-			pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/save.xpm")
-			toolbar.append_item(None, 'Save the current appointment', None, GtkPixmap(pix, mask), self.save_appointment)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/cancel.xpm")
-		toolbar.append_item(None, 'Close this window', None, GtkPixmap(pix, mask), window.hide)
-
-		table1=GtkTable(6, 2)
-		vbox.pack_start(table1)
-		table1.show()
-		table1.set_usize(-1, -1)
-		table1.set_row_spacings(0)
-		table1.set_col_spacings(0)
-		label1=GtkLabel()
-		table1.attach(label1, 0, 1, 0, 1, FILL, 0, 0, 0)
-		label1.set_usize(-1, -1)
-		label1.set_text("Summary")
-		label1.set_justify(JUSTIFY_CENTER)
-		label1.set_alignment(0, 0.5)
-		label1.set_padding(0, 0)
-		label1.show()
-		self.label1=label1
-		label2=GtkLabel()
-		table1.attach(label2, 0, 1, 1, 2, FILL, 0, 0, 0)
-		label2.set_usize(-1, -1)
-		label2.set_text("Time")
-		label2.set_justify(JUSTIFY_CENTER)
-		label2.set_alignment(0, 0.5)
-		label2.set_padding(0, 0)
-		label2.show()
-		self.label2=label2
-
-		appointment_tips = GtkTooltips()
-
-		label3=GtkButton("Date")
-		appointment_tips.set_tip(label3, 'Select date from calendar')
-		label3.connect("clicked", self.select_date_from_calendar)
-		table1.attach(label3, 0, 1, 2, 3, FILL, 0, 0, 0)
-		label3.show()
-		self.label3=label3
-		label4=GtkLabel()
-		table1.attach(label4, 0, 1, 3, 4, FILL, 0, 0, 0)
-		label4.set_usize(-1, -1)
-		label4.set_text("Name")
-		label4.set_justify(JUSTIFY_CENTER)
-		label4.set_alignment(0, 0.5)
-		label4.set_padding(0, 0)
-		label4.show()
-		self.label4=label4
-		label5=GtkLabel()
-		table1.attach(label5, 0, 1, 4, 5, FILL, 0, 0, 0)
-		label5.set_usize(-1, -1)
-		label5.set_text("Place")
-		label5.set_justify(JUSTIFY_CENTER)
-		label5.set_alignment(0, 0.5)
-		label5.set_padding(0, 0)
-		label5.show()
-		self.label5=label5
-		label6=GtkLabel()
-		table1.attach(label6, 0, 1, 5, 6, FILL, 0, 0, 0)
-		label6.set_usize(-1, -1)
-		label6.set_text("Description")
-		label6.set_justify(JUSTIFY_CENTER)
-		label6.set_alignment(0, 0.5)
-		label6.set_padding(0, 0)
-		label6.show()
-		self.label6=label6
-
-		summary_entry=GtkEntry()
-		table1.attach(summary_entry, 1, 2, 0, 1, EXPAND, 0, 0, 0)
-		summary_entry.set_flags(CAN_FOCUS)
-		summary_entry.set_usize(169, -1)
-		summary_entry.set_editable(TRUE)
-		summary_entry.set_visibility(TRUE)
-		summary_entry.set_max_length(0)
-		if type == "edit":
-			summary_entry.set_text(self.appoint_summary[self.selected_appointment])
-		summary_entry.show()
-		self.summary_entry=summary_entry
-
-		time_hbox = GtkHBox()
-		table1.attach(time_hbox, 1, 2, 1, 2, EXPAND|FILL, 0, 0, 0)
-		time_hbox.show()
-
-		time_combo_hour = GtkCombo()
-		time_combo_hour.set_usize(45, -1)
-		time_hbox.pack_start(time_combo_hour, expand=FALSE)
-		time_hours = []
-		t = 0
-		for t in range (1,25):
-			time_hours.append(string.rjust(str(t), 2).replace(' ', '0'))
-		time_combo_hour.set_popdown_strings(time_hours)
-		if type == "edit":
-			time_combo_hour.entry.set_text(self.appoint_time_hour[self.selected_appointment])
-		else:
-			time_combo_hour.entry.set_text(string.rjust(self.hour, 2).replace(' ', '0'))
-		time_combo_hour.show()
-		self.time_combo_hour = time_combo_hour
-
-		time_combo_minute = GtkCombo()
-		time_combo_minute.set_usize(45, -1)
-		time_hbox.pack_start(time_combo_minute, expand=FALSE)
-		time_minutes = []
-		t = 0
-		for t in range (0,60):
-			time_minutes.append(string.rjust(str(t), 2).replace(' ', '0'))
-		time_combo_minute.set_popdown_strings(time_minutes)
-		if type == "edit":
-			time_combo_minute.entry.set_text(self.appoint_time_minute[self.selected_appointment])
-		else:
-			time_combo_minute.entry.set_text(string.rjust(self.minute, 2).replace(' ', '0'))
-		time_combo_minute.show()
-		self.time_combo_minute = time_combo_minute
-
-		date_hbox = GtkHBox()
-		table1.attach(date_hbox, 1, 2, 2, 3, EXPAND|FILL, 0, 0, 0)
-		date_hbox.show()
-
-		date_combo_day = GtkCombo()
-		date_combo_day.set_usize(45, -1)
-		date_hbox.pack_start(date_combo_day, expand=FALSE)
-		date_days = []
-		t = 0
-		for t in range (1,31):
-			date_days.append(string.rjust(str(t), 2).replace(' ', '0'))
-		date_combo_day.set_popdown_strings(date_days)
-		if type == "edit":
-			date_combo_day.entry.set_text(self.appoint_date_day[self.selected_appointment])
-		else:
-			date_combo_day.entry.set_text(str(self.day))
-		date_combo_day.show()
-		self.date_combo_day = date_combo_day
-
-		date_combo_month = GtkCombo()
-		date_combo_month.set_usize(45, -1)
-		date_hbox.pack_start(date_combo_month, expand=FALSE)
-		date_months = []
-		t = 0
-		for t in range (1,12):
-			date_months.append(string.rjust(str(t), 2).replace(' ', '0'))
-		date_combo_month.set_popdown_strings(date_months)
-		if type == "edit":
-			date_combo_month.entry.set_text(self.appoint_date_month[self.selected_appointment])
-		else:
-			date_combo_month.entry.set_text(str(self.month))
-		date_combo_month.show()
-		self.date_combo_month = date_combo_month
-
-		date_entry_year = GtkEntry()
-		date_entry_year.set_usize(25, -1)
-		date_hbox.pack_start(date_entry_year, expand=FALSE)
-		if type == "edit":
-			date_entry_year.set_text(self.appoint_date_year[self.selected_appointment])
-		else:
-			date_entry_year.set_text(str(self.year))
-		date_entry_year.show()
-		self.date_entry_year = date_entry_year
-
-		name_hbox = GtkHBox()
-		table1.attach(name_hbox, 1, 2, 3, 4, EXPAND|FILL, 0, 0, 0)
-		name_hbox.show()
-
-		name_button = GtkButton()
-		appointment_tips.set_tip(name_button, 'Select a name from contacts')
-		name_hbox.pack_start(name_button, expand=FALSE)
-		name_button.connect("clicked", self.select_name)
-		pix, mask = create_pixmap_from_xpm(window, None, self.config[2] + "/pixmaps/contacts.xpm")
-		name_pixmap = GtkPixmap(pix, mask)
-		name_button.add(name_pixmap)
-		name_button.show()
-		name_pixmap.show()
-
-		name_entry=GtkEntry()
-		name_hbox.pack_start(name_entry, expand=FALSE)
-		name_entry.set_flags(CAN_FOCUS)
-		name_entry.set_usize(150, -1)
-		name_entry.set_editable(TRUE)
-		name_entry.set_visibility(TRUE)
-		name_entry.set_max_length(0)
-		if type == "edit":
-			name_entry.set_text(self.appoint_name[self.selected_appointment])
-		name_entry.show()
-		self.name_entry=name_entry
-
-		place_entry=GtkEntry()
-		table1.attach(place_entry, 1, 2, 4, 5, EXPAND, 0, 0, 0)
-		place_entry.set_flags(CAN_FOCUS)
-		place_entry.set_usize(169, -1)
-		place_entry.set_editable(TRUE)
-		place_entry.set_visibility(TRUE)
-		place_entry.set_max_length(0)
-		if type == "edit":
-			place_entry.set_text(self.appoint_place[self.selected_appointment])
-		place_entry.show()
-		self.place_entry=place_entry
-
-		scrolledwindow1=GtkScrolledWindow()
-		table1.attach(scrolledwindow1, 1, 2, 5, 6, FILL, FILL, 0, 0)
-		scrolledwindow1.set_usize(165, 70)
-		scrolledwindow1.set_policy(POLICY_NEVER, POLICY_AUTOMATIC)
-		description_text=GtkText()
-		scrolledwindow1.add(description_text)
-		description_text.set_flags(CAN_FOCUS)
-		description_text.set_usize(165, 70)
-		description_text.set_editable(TRUE)
-		if type == "edit":
-			description_text.insert(None,None,None,self.appoint_descrip[self.selected_appointment])
-		description_text.show()
-		self.description_text=description_text
-		scrolledwindow1.show()
-		self.scrolledwindow1=scrolledwindow1
-
-	def select_date_from_calendar(self, *args):
-		# our main gtk window
-		window = GtkWindow(WINDOW_TOPLEVEL)
-		self.calendar_select_window = window
-		window.connect("delete_event", window.hide)
-		window.set_title("Storm - Calendar")
-		window.set_usize(200, 140)
-		window.show()
-
-		calendar = GtkCalendar()
-		calendar.connect("day-selected-double-click", self.change_date)
-		window.add(calendar)
-		calendar.show()
-		self.select_calendar = calendar
-
-	def change_date(self, *args):
-		year, month, day = self.select_calendar.get_date()
-		month = month + 1
-		year = str(year)
-		year = year[-2:]
-		self.date_combo_day.entry.set_text(string.rjust(str(day), 2).replace(' ', '0'))
-		self.date_combo_month.entry.set_text(string.rjust(str(month), 2).replace(' ', '0'))
-		self.date_entry_year.set_text(string.rjust(year, 2).replace(' ', '0'))
-		self.calendar_select_window.hide()
-
-	def update_xml(self):
-		file = open(self.config[2] + '/data/appointments.xml', 'w')
-		x = 0
-		while x < len(self.appoint_summary):
-			file.write('<appointment>\n<summary>' + self.appoint_summary[x] + '</summary>\n<time-hour>' + self.appoint_time_hour[x] + '</time-hour>\n<time-minute>' + self.appoint_time_minute[x] + '</time-minute>\n<date-day>' + self.appoint_date_day[x] + '</date-day>\n<date-month>' + self.appoint_date_month[x] + '</date-month>\n<date-year>' + self.appoint_date_year[x] + '</date-year>\n<name>' + self.appoint_name[x] + '</name>\n<place>' + self.appoint_place[x] + '</place>\n<description>' + self.appoint_descrip[x] + '</description>\n<done>no</done>\n</appointment>\n\n')
-			x = x + 1
-		file.close
-
-	def select_name(self, *args):
-		# our main gtk window
-		window = GtkWindow(WINDOW_TOPLEVEL)
-		self.select_name_window = window
-		window.connect("delete_event", window.hide)
-		window.set_title("Storm - Contacts")
-		window.set_usize(200, 200)
-		window.show()
-
-		scroll = GtkScrolledWindow()
-		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
-		window.add(scroll)
-		scroll.show()
-
-		clist = GtkCList(2)
-		self.select_name_clist = clist
-		scroll.add(clist)
-		clist.connect("select_row" , self.select_name_return)
-		clist.set_flags(CAN_FOCUS)
-		clist.set_sort_column(0)
-		clist.set_usize(-1, -1)
-		clist.set_column_title(0, "Name")
-		clist.set_column_width(0, 80)
-		clist.set_column_title(1, "Email")
-		clist.set_column_width(1, 80)
-		clist.set_selection_mode(SELECTION_SINGLE)
-		clist.column_titles_show()
-		clist.show()
-		self.parent.contacts.update_list(clist)
-
-	def select_name_return(self, *args):
-		x = args[1]
-		self.name_entry.set_text(self.parent.contacts.contact[x][0])
-		self.select_name_window.hide()
-
-	def exit(self):
-		x = 0
-		while x < len(self.appoint_done):
-			if self.appoint_done[x] == "yes":
-				self.selected_appointment = x
-				self.delete_appointment()
-			x = x + 1
-
-class Sync:
-	def __init__(self, parent):
-		self.parent = parent
-		self.config = self.parent.config
-		self.window = self.parent.window
-
-	def host(self, *args):
-		# our main gtk window
-		window = GtkWindow(WINDOW_TOPLEVEL)
-		window.connect("delete_event", window.hide)
-		window.set_title("Storm - Sync")
-		window.set_usize(200, -1)
-		window.show()
-
-		hbox = GtkHBox()
-		window.add(hbox)
-		hbox.show()
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/send-receive.xpm")
-		pixmap = GtkPixmap(pix, mask)
-		hbox.pack_start(pixmap)
-		pixmap.show()
-
-		label = GtkLabel()
-		hbox.pack_start(label)
-		label.set_text("Syncronizing with Host...")
-		label.show()
-
-		config_file = open(self.config[2] + '/config/sync')
-		lines = config_file.readlines()
-		sync_config = []
-		for cline in lines:
-			sync_config.append(string.strip(cline))
-		config_file.close()
-
-		while events_pending(): mainiteration()
-		self.parent.mail.clist.freeze()
-		self.parent.mail.clist.clear()
-		os.system("rsync -e ssh " + sync_config[0] + "@" + sync_config[1] + ":" + sync_config[2] + " " + self.config[2] + "/mail/Inbox")
-		self.parent.mail.read_mbox()
-		os.system("rsync -e ssh " + self.config[2] + "/mail/Outbox " + sync_config[0] + "@" + sync_config[1] + ":" + sync_config[3])
-		os.system("rm " + self.config[2] + "/mail/Outbox")
-		os.system("touch " + self.config[2] + "/mail/Outbox")
-		self.parent.mail.clist.thaw()
-		thedate = os.popen("date").read()
-		thedate = string.strip(thedate)
-		date_file = open(self.config[2] + "/config/lastsync", 'w')
-		date_file.write(thedate)
-		date_file.close()
-		self.parent.today.update_today()
-		window.hide()
-
-	def pop3(self, *args):
-		# our main gtk window
-		window = GtkWindow(WINDOW_TOPLEVEL)
-		window.connect("delete_event", window.hide)
-		window.set_title("Storm - POP3")
-		window.set_usize(200, -1)
-		window.show()
-
-		hbox = GtkHBox()
-		window.add(hbox)
-		hbox.show()
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/send-receive.xpm")
-		pixmap = GtkPixmap(pix, mask)
-		hbox.pack_start(pixmap)
-		pixmap.show()
-
-		label = GtkLabel()
-		hbox.pack_start(label)
-		label.set_text("Retrieving POP3 Messages...")
-		label.show()
-
-		while events_pending(): mainiteration()
-
-		config_file = open(self.config[2] + '/config/pop3', 'r')
-		lines = config_file.readlines()
-		pop3_config = []
-		for cline in lines:
-			pop3_config.append(string.strip(cline))
-		config_file.close()
-
-		pop3 = poplib.POP3(pop3_config[2])
-		pop3.user(pop3_config[0])
-		pop3.pass_(pop3_config[1])
-		messages = pop3.list()
-		if len(messages[1]) != 0:
-			mbox = open(self.config[2] + '/mail/Inbox', 'a')
-			for message in messages[1]:
-				if len(messages[1]) == 0:
-					break
-				tmp_file = open("/tmp/storm.tmp", 'w')
-				message_num = string.split(message)
-				data = pop3.retr(message_num[0])
-				raw_message = ''
-				for line in data[1]:
-					raw_message = raw_message + line + '\n'
-				m_headers = string.split(raw_message, '\n\n', 1)
-				tmp_file.write(m_headers[0])
-				tmp_file.close()
-				tmp_file = open("/tmp/storm.tmp", 'r')
-				# then read the headers
-				header = rfc822.Message(tmp_file)
-				mfrom = header.getheader("From")
-				mdate = header.getheader("Date")
-				tmp_file.close()
-				if string.find(mfrom, '<') != -1:
-					from_re = re.compile('^["]?(.*)["]?[ ]?<(.*)>$')
-					from_parts = re.findall(from_re, mfrom)
-					mfrom = from_parts[0][0]
-				# write the mbox header and the rest of the message to our inbox
-				mbox.write("From " + mfrom + " " + mdate + "\n" + raw_message + "\n")
-				tmp_file.close()
-			mbox.close()
-		pop3.quit()
-
-		self.parent.mail.read_mbox()
-		self.parent.today.update_today()
-		window.hide()
-
-	def smtp(self, *args):
-		# our main gtk window
-		window = GtkWindow(WINDOW_TOPLEVEL)
-		window.connect("delete_event", window.hide)
-		window.set_title("Storm - SMTP")
-		window.set_usize(200, -1)
-		window.show()
-
-		hbox = GtkHBox()
-		window.add(hbox)
-		hbox.show()
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/send-receive.xpm")
-		pixmap = GtkPixmap(pix, mask)
-		hbox.pack_start(pixmap)
-		pixmap.show()
-
-		label = GtkLabel()
-		hbox.pack_start(label)
-		label.set_text("Sending Messages...")
-		label.show()
-
-		while events_pending(): mainiteration()
-
-		config_file = open(self.config[2] + '/config/smtp', 'r')
-		lines = config_file.readlines()
-		smtp_config = []
-		for cline in lines:
-			smtp_config.append(string.strip(cline))
-		config_file.close()
-		while events_pending(): mainiteration()
-
-		file = open(self.config[2] + "/mail/Outbox", 'r')
-		outbox_data = file.read()
-		outbox_data = string.strip(outbox_data)
-		file.close()
-		while events_pending(): mainiteration()
-
-		if outbox_data != '':
-			raw_messages = string.split(outbox_data, "\nFrom ")
-		else:
-			raw_messages = []
-
-		try:
-			smtp = smtplib.SMTP(smtp_config[0])
-			smtp.helo()
-			while events_pending(): mainiteration()
-		except smtplib.SMTPConnectError:
-			label.set_text("Error connecting to SMTP server")
-			time.sleep(1)
-			while events_pending(): mainiteration()
-			window.hide()
-		except:
-			label.set_text("Error connecting to SMTP server")
-			time.sleep(1)
-			while events_pending(): mainiteration()
-			window.hide()
-
-		x = 0
-		for message in raw_messages:
-			message = string.split(message, '\n', 1)
-			message_header = string.split(message[1], "\n\n", 1)
-			# write the headers to a temp file
-			tmp_file = open("/tmp/storm.tmp", 'w')
-			tmp_file.write(message_header[0])
-			tmp_file.close()
-			tmp_file = open("/tmp/storm.tmp", 'r')
-			# then read the headers
-			header = rfc822.Message(tmp_file)
-			mfrom = header.getheader("From")
-			mto = header.getheader("To")
-			tmp_file.close()
-			try:
-				smtp.sendmail(mfrom, mto, message[1])
-				del raw_messages[x]
-				while events_pending(): mainiteration()
-			except smtplib.SMTPRecipientsRefused:
-				label.set_text("Error sending message to " + mto)
-				time.sleep(1)
-				while events_pending(): mainiteration()
-			label.set_text("Sending Messages...")
-			while events_pending(): mainiteration()
-			x = x + 1
-		try:
-			smtp.quit()
-			while events_pending(): mainiteration()
-		except:
-			pass
-
-		file = open(self.config[2] + "/mail/Outbox", 'w')
-		for message in raw_messages:
-			file.write("\nFrom " + message)
-		file.close()
-		self.parent.today.update_today()
-		window.hide()
-
-class Prefs:
-	def __init__(self, parent):
-		self.parent = parent
-		self.config = self.parent.config
-		self.window = self.parent.window
-
-	def show_config(self, *args):
-		# our main gtk window
-		window = GtkWindow(WINDOW_TOPLEVEL)
-		self.config_window = window
-		window.connect("delete_event", window.hide)
-		window.set_title("Storm - Prefs")
-		window.set_usize(200, 300)
-		window.show()
-
-		vbox = GtkVBox()
-		window.add(vbox)
-		vbox.show()
-
-		storm_file = open(os.environ['HOME'] + '/.storm', 'r')
-		raw = storm_file.read()
-		storm_config = string.split(raw, '\n')
-		storm_file.close()
-		self.storm_config = storm_config
-		sync_file = open(self.config[2] + '/config/sync', 'r')
-		raw = sync_file.read()
-		sync_config = string.split(raw, '\n')
-		sync_file.close()
-		pop3_file = open(self.config[2] + '/config/pop3', 'r')
-		raw = pop3_file.read()
-		pop3_config = string.split(raw, '\n')
-		pop3_file.close()
-		smtp_file = open(self.config[2] + '/config/smtp', 'r')
-		raw = smtp_file.read()
-		smtp_config = string.split(raw, '\n')
-		smtp_file.close()
-		sig_file = open(self.config[2] + '/config/sig', 'r')
-		sig = sig_file.read()
-		sig_file.close()
-
-		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
-		toolbar.set_button_relief(RELIEF_NONE)
-		toolbar.set_space_size(10)
-		vbox.pack_start(toolbar, expand=FALSE)
-		toolbar.show()
-		# add the evolution pixmaps to the toolbar
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/save.xpm")
-		toolbar.append_item(None, 'Save preferences', None, GtkPixmap(pix, mask), self.save_config)
-
-		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/cancel.xpm")
-		toolbar.append_item(None, 'Close this window', None, GtkPixmap(pix, mask), window.hide)
-
-		scrolledwindow1=GtkScrolledWindow()
-		vbox.pack_start(scrolledwindow1)
-		scrolledwindow1.set_usize(-1, -1)
-		scrolledwindow1.set_policy(POLICY_NEVER, POLICY_ALWAYS)
-		viewport1=GtkViewport()
-		scrolledwindow1.add_with_viewport(viewport1)
-		viewport1.set_usize(-1, -1)
-		vbox1=GtkVBox()
-		viewport1.add(vbox1)
-		vbox1.set_usize(-1, -1)
-		vbox1.set_homogeneous(FALSE)
-		vbox1.set_spacing(0)
-		frame1=GtkFrame()
-		vbox1.pack_start(frame1, TRUE, TRUE, 0)
-		frame1.set_usize(-1, -1)
-		frame1.set_shadow_type("GTK_SHADOW_ETCHED_IN")
-		frame1.set_label("Mail")
-		frame1.set_label_align(0, -1)
-		table1=GtkTable(2, 3)
-		frame1.add(table1)
-		table1.set_usize(-1, -1)
-		table1.set_row_spacings(0)
-		table1.set_col_spacings(0)
-		label1=GtkLabel()
-		table1.attach(label1, 0, 1, 0, 1, FILL, 0, 0, 0)
-		label1.set_usize(-1, -1)
-		label1.set_text("Name")
-		label1.set_justify(JUSTIFY_CENTER)
-		label1.set_alignment(0, 0.5)
-		label1.set_padding(0, 0)
-		label1.show()
-		self.label1=label1
-		label2=GtkLabel()
-		table1.attach(label2, 0, 1, 1, 2, FILL, 0, 0, 0)
-		label2.set_usize(-1, -1)
-		label2.set_text("Email")
-		label2.set_justify(JUSTIFY_CENTER)
-		label2.set_alignment(0, 0.5)
-		label2.set_padding(0, 0)
-		label2.show()
-		self.label2=label2
-		label11=GtkLabel()
-		table1.attach(label11, 0, 1, 2, 3, FILL, 0, 0, 0)
-		label11.set_usize(-1, -1)
-		label11.set_text("Signature ")
-		label11.set_justify(JUSTIFY_CENTER)
-		label11.set_alignment(0, 0.5)
-		label11.set_padding(0, 0)
-		label11.show()
-		self.label11=label11
-		entry1=GtkEntry()
-		table1.attach(entry1, 1, 2, 0, 1, EXPAND, 0, 0, 0)
-		entry1.set_flags(CAN_FOCUS)
-		entry1.set_usize(110, -1)
-		entry1.set_editable(TRUE)
-		entry1.set_visibility(TRUE)
-		entry1.set_max_length(0)
-		entry1.set_text(storm_config[0])
-		entry1.show()
-		self.entry1=entry1
-		entry2=GtkEntry()
-		table1.attach(entry2, 1, 2, 1, 2, EXPAND, 0, 0, 0)
-		entry2.set_flags(CAN_FOCUS)
-		entry2.set_usize(110, -1)
-		entry2.set_editable(TRUE)
-		entry2.set_visibility(TRUE)
-		entry2.set_max_length(0)
-		entry2.set_text(storm_config[1])
-		entry2.show()
-		self.entry2=entry2
-		scroll1 = GtkScrolledWindow()
-		table1.attach(scroll1, 1, 2, 2, 3)
-		scroll1.set_usize(110, -1)
-		scroll1.set_policy(POLICY_NEVER, POLICY_AUTOMATIC)
-		scroll1.show()
-		self.scroll1 = scroll1
-		text1 = GtkText()
-		scroll1.add(text1)
-		text1.set_usize(-1, -1)
-		text1.set_editable(TRUE)
-		text1.insert(None, None, None,sig)
-		text1.show()
-		self.text1 = text1
-		table1.show()
-		self.table1=table1
-		frame1.show()
-		self.frame1=frame1
-		frame2=GtkFrame()
-		vbox1.pack_start(frame2, TRUE, TRUE, 0)
-		frame2.set_usize(-1, -1)
-		frame2.set_shadow_type("GTK_SHADOW_ETCHED_IN")
-		frame2.set_label("Sync")
-		frame2.set_label_align(0, -1)
-		table2=GtkTable(4, 2)
-		frame2.add(table2)
-		table2.set_usize(-1, -1)
-		table2.set_row_spacings(0)
-		table2.set_col_spacings(0)
-		label3=GtkLabel()
-		table2.attach(label3, 0, 1, 0, 1, FILL, 0, 0, 0)
-		label3.set_usize(-1, -1)
-		label3.set_text("Username")
-		label3.set_justify(JUSTIFY_CENTER)
-		label3.set_alignment(0, 0.5)
-		label3.set_padding(0, 0)
-		label3.show()
-		self.label3=label3
-		label4=GtkLabel()
-		table2.attach(label4, 0, 1, 1, 2, FILL, 0, 0, 0)
-		label4.set_usize(-1, -1)
-		label4.set_text("Host IP")
-		label4.set_justify(JUSTIFY_CENTER)
-		label4.set_alignment(0, 0.5)
-		label4.set_padding(0, 0)
-		label4.show()
-		self.label4=label4
-		label5=GtkLabel()
-		table2.attach(label5, 0, 1, 2, 3, FILL, 0, 0, 0)
-		label5.set_usize(-1, -1)
-		label5.set_text("Incoming")
-		label5.set_justify(JUSTIFY_CENTER)
-		label5.set_alignment(0, 0.5)
-		label5.set_padding(0, 0)
-		label5.show()
-		self.label5=label5
-		label6=GtkLabel()
-		table2.attach(label6, 0, 1, 3, 4, FILL, 0, 0, 0)
-		label6.set_usize(-1, -1)
-		label6.set_text("Outgoing")
-		label6.set_justify(JUSTIFY_CENTER)
-		label6.set_alignment(0, 0.5)
-		label6.set_padding(0, 0)
-		label6.show()
-		self.label6=label6
-		entry4=GtkEntry()
-		table2.attach(entry4, 1, 2, 1, 2, EXPAND, 0, 0, 0)
-		entry4.set_flags(CAN_FOCUS)
-		entry4.set_usize(100, -1)
-		entry4.set_editable(TRUE)
-		entry4.set_visibility(TRUE)
-		entry4.set_max_length(0)
-		entry4.set_text(sync_config[1])
-		entry4.show()
-		self.entry4=entry4
-		entry5=GtkEntry()
-		table2.attach(entry5, 1, 2, 2, 3, EXPAND, 0, 0, 0)
-		entry5.set_flags(CAN_FOCUS)
-		entry5.set_usize(100, -1)
-		entry5.set_editable(TRUE)
-		entry5.set_visibility(TRUE)
-		entry5.set_max_length(0)
-		entry5.set_text(sync_config[2])
-		entry5.show()
-		self.entry5=entry5
-		entry6=GtkEntry()
-		table2.attach(entry6, 1, 2, 3, 4, EXPAND, 0, 0, 0)
-		entry6.set_flags(CAN_FOCUS)
-		entry6.set_usize(100, -1)
-		entry6.set_editable(TRUE)
-		entry6.set_visibility(TRUE)
-		entry6.set_max_length(0)
-		entry6.set_text(sync_config[3])
-		entry6.show()
-		self.entry6=entry6
-		entry3=GtkEntry()
-		table2.attach(entry3, 1, 2, 0, 1, EXPAND, 0, 0, 0)
-		entry3.set_flags(CAN_FOCUS)
-		entry3.set_usize(100, -1)
-		entry3.set_editable(TRUE)
-		entry3.set_visibility(TRUE)
-		entry3.set_max_length(0)
-		entry3.set_text(sync_config[0])
-		entry3.show()
-		self.entry3=entry3
-		table2.show()
-		self.table2=table2
-		frame2.show()
-		self.frame2=frame2
-		frame3=GtkFrame()
-		vbox1.pack_start(frame3, TRUE, TRUE, 0)
-		frame3.set_usize(-1, -1)
-		frame3.set_shadow_type("GTK_SHADOW_ETCHED_IN")
-		frame3.set_label("POP3")
-		frame3.set_label_align(0, -1)
-		table3=GtkTable(3, 2)
-		frame3.add(table3)
-		table3.set_usize(-1, -1)
-		table3.set_row_spacings(0)
-		table3.set_col_spacings(0)
-		label7=GtkLabel()
-		table3.attach(label7, 0, 1, 0, 1, FILL, 0, 0, 0)
-		label7.set_usize(-1, -1)
-		label7.set_text("Username")
-		label7.set_justify(JUSTIFY_CENTER)
-		label7.set_alignment(0, 0.5)
-		label7.set_padding(0, 0)
-		label7.show()
-		self.label7=label7
-		label8=GtkLabel()
-		table3.attach(label8, 0, 1, 1, 2, FILL, 0, 0, 0)
-		label8.set_usize(-1, -1)
-		label8.set_text("Password")
-		label8.set_justify(JUSTIFY_CENTER)
-		label8.set_alignment(0, 0.5)
-		label8.set_padding(0, 0)
-		label8.show()
-		self.label8=label8
-		label9=GtkLabel()
-		table3.attach(label9, 0, 1, 2, 3, FILL, 0, 0, 0)
-		label9.set_usize(-1, -1)
-		label9.set_text("Server")
-		label9.set_justify(JUSTIFY_CENTER)
-		label9.set_alignment(0, 0.5)
-		label9.set_padding(0, 0)
-		label9.show()
-		self.label9=label9
-		entry7=GtkEntry()
-		table3.attach(entry7, 1, 2, 0, 1, EXPAND, 0, 0, 0)
-		entry7.set_flags(CAN_FOCUS)
-		entry7.set_usize(100, -1)
-		entry7.set_editable(TRUE)
-		entry7.set_visibility(TRUE)
-		entry7.set_max_length(0)
-		entry7.set_text(pop3_config[0])
-		entry7.show()
-		self.entry7=entry7
-		entry8=GtkEntry()
-		table3.attach(entry8, 1, 2, 1, 2, EXPAND, 0, 0, 0)
-		entry8.set_flags(CAN_FOCUS)
-		entry8.set_usize(100, -1)
-		entry8.set_editable(TRUE)
-		entry8.set_visibility(TRUE)
-		entry8.set_max_length(0)
-		entry8.set_text(pop3_config[1])
-		entry8.show()
-		self.entry8=entry8
-		entry9=GtkEntry()
-		table3.attach(entry9, 1, 2, 2, 3, EXPAND, 0, 0, 0)
-		entry9.set_flags(CAN_FOCUS)
-		entry9.set_usize(100, -1)
-		entry9.set_editable(TRUE)
-		entry9.set_visibility(TRUE)
-		entry9.set_max_length(0)
-		entry9.set_text(pop3_config[2])
-		entry9.show()
-		self.entry9=entry9
-		table3.show()
-		self.table3=table3
-		frame3.show()
-		self.frame3=frame3
-		frame4=GtkFrame()
-		vbox1.pack_start(frame4, TRUE, TRUE, 0)
-		frame4.set_usize(-1, -1)
-		frame4.set_shadow_type("GTK_SHADOW_ETCHED_IN")
-		frame4.set_label("SMTP")
-		frame4.set_label_align(0, -1)
-		table4=GtkTable(1, 2)
-		frame4.add(table4)
-		table4.set_usize(-1, -1)
-		table4.set_row_spacings(0)
-		table4.set_col_spacings(0)
-		label12=GtkLabel()
-		table4.attach(label12, 0, 1, 0, 1, FILL, 0, 0, 0)
-		label12.set_usize(-1, -1)
-		label12.set_text("Server")
-		label12.set_justify(JUSTIFY_CENTER)
-		label12.set_alignment(0, 0.5)
-		label12.set_padding(0, 0)
-		label12.show()
-		self.label12=label12
-		entry12=GtkEntry()
-		table4.attach(entry12, 1, 2, 0, 1, EXPAND, 0, 0, 0)
-		entry12.set_flags(CAN_FOCUS)
-		entry12.set_usize(100, -1)
-		entry12.set_editable(TRUE)
-		entry12.set_visibility(TRUE)
-		entry12.set_max_length(0)
-		entry12.set_text(smtp_config[0])
-		entry12.show()
-		self.entry12=entry12
-		table4.show()
-		self.table4=table4
-		frame4.show()
-		self.frame4=frame4
-		vbox1.show()
-		self.vbox1=vbox1
-		viewport1.show()
-		self.viewport1=viewport1
-		scrolledwindow1.show()
-		self.scrolledwindow1=scrolledwindow1
-
-	def save_config(self, *args):
-		text1 = self.entry1.get_text()
-		text2 = self.entry2.get_text()
-		text3 = self.entry3.get_text()
-		text4 = self.entry4.get_text()
-		text5 = self.entry5.get_text()
-		text6 = self.entry6.get_text()
-		text7 = self.entry7.get_text()
-		text8 = self.entry8.get_text()
-		text9 = self.entry9.get_text()
-		text12 = self.entry12.get_text()
-		storm_file = open(os.environ['HOME'] + '/.storm', 'w')
-		storm_file.write(text1 + '\n' + text2 + '\n' + self.storm_config[2])
-		storm_file.close()
-		sync_file = open(self.config[2] + '/config/sync', 'w')
-		sync_file.write(text3 + '\n' + text4 + '\n' + text5 + '\n' + text6)
-		sync_file.close()
-		pop3_file = open(self.config[2] + '/config/pop3', 'w')
-		pop3_file.write(text7 + '\n' + text8 + '\n' + text9)
-		pop3_file.close()
-		smtp_file = open(self.config[2] + '/config/smtp', 'w')
-		smtp_file.write(text12)
-		smtp_file.close()
-		sig_file = open(self.config[2] + '/config/sig', 'w')
-		sig = sig_file.write(self.text1.get_chars(0, -1))
-		sig_file.close()
-		self.config_window.hide()
-
-class XmlParse:
-	def __init__(self):
-		pass
-
-	def xml_get_text(self, xml_source, tag):
-		second_level = re.compile('<'+tag+'>([0-9A-Za-z \t\n\r<>\.@\-:/\\\]*?)</'+tag+'>')
-		xml_output = re.findall(second_level, xml_source)
-		return xml_output[0]
-
-	def parse_xml_file(self, xml_file, first_tag):
-		# regexp for xml
-		self.first_level = re.compile('<'+first_tag+'>([0-9A-Za-z \t\n\r<>\.@\-:/\\\-_]*?)</'+first_tag+'>')
-		# contacts xml file
-		self.xml_file = xml_file
-
-		# open and read the xml file
-		file = open(self.xml_file, 'r')
-		xml_source = file.read()
-		file.close()
-
-		# get the data for each contact
-		xml_output = re.findall(self.first_level, xml_source)
-		return xml_output
-
-storm = Storm()
-storm.mainloop()
diff -urN storm_0.3/usr/lib/menu/storm storm_0.5.2/usr/lib/menu/storm
--- storm_0.3/usr/lib/menu/storm	Mon Dec 31 22:27:10 2001
+++ storm_0.5.2/usr/lib/menu/storm	Wed Dec 31 19:00:00 1969
@@ -1 +0,0 @@
-?package(storm):needs="x11" section="PIM" title="Storm" command="/usr/bin/storm"
diff -urN storm_0.3/usr/lib/python2.0/poplib.py storm_0.5.2/usr/lib/python2.0/poplib.py
--- storm_0.3/usr/lib/python2.0/poplib.py	Mon Dec 31 22:14:31 2001
+++ storm_0.5.2/usr/lib/python2.0/poplib.py	Wed Dec 31 19:00:00 1969
@@ -1,322 +0,0 @@
-"""A POP3 client class.
-
-Based on the J. Myers POP3 draft, Jan. 96
-"""
-
-# Author: David Ascher <david_ascher@brown.edu>
-#         [heavily stealing from nntplib.py]
-# Updated: Piers Lauder <piers@cs.su.oz.au> [Jul '97]
-# String method conversion and test jig improvements by ESR, February 2001.
-
-# Example (see the test function at the end of this file)
-
-# Imports
-
-import re, socket
-
-__all__ = ["POP3","error_proto"]
-
-# Exception raised when an error or invalid response is received:
-
-class error_proto(Exception): pass
-
-# Standard Port
-POP3_PORT = 110
-
-# Line terminators (we always output CRLF, but accept any of CRLF, LFCR, LF)
-CR = '\r'
-LF = '\n'
-CRLF = CR+LF
-
-
-class POP3:
-
-    """This class supports both the minimal and optional command sets.
-    Arguments can be strings or integers (where appropriate)
-    (e.g.: retr(1) and retr('1') both work equally well.
-
-    Minimal Command Set:
-            USER name               user(name)
-            PASS string             pass_(string)
-            STAT                    stat()
-            LIST [msg]              list(msg = None)
-            RETR msg                retr(msg)
-            DELE msg                dele(msg)
-            NOOP                    noop()
-            RSET                    rset()
-            QUIT                    quit()
-
-    Optional Commands (some servers support these):
-            RPOP name               rpop(name)
-            APOP name digest        apop(name, digest)
-            TOP msg n               top(msg, n)
-            UIDL [msg]              uidl(msg = None)
-
-    Raises one exception: 'error_proto'.
-
-    Instantiate with:
-            POP3(hostname, port=110)
-
-    NB:     the POP protocol locks the mailbox from user
-            authorization until QUIT, so be sure to get in, suck
-            the messages, and quit, each time you access the
-            mailbox.
-
-            POP is a line-based protocol, which means large mail
-            messages consume lots of python cycles reading them
-            line-by-line.
-
-            If it's available on your mail server, use IMAP4
-            instead, it doesn't suffer from the two problems
-            above.
-    """
-
-
-    def __init__(self, host, port = POP3_PORT):
-        self.host = host
-        self.port = port
-        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        self.sock.connect((self.host, self.port))
-        self.file = self.sock.makefile('rb')
-        self._debugging = 0
-        self.welcome = self._getresp()
-
-
-    def _putline(self, line):
-        #if self._debugging > 1: print '*put*', `line`
-        self.sock.send('%s%s' % (line, CRLF))
-
-
-    # Internal: send one command to the server (through _putline())
-
-    def _putcmd(self, line):
-        #if self._debugging: print '*cmd*', `line`
-        self._putline(line)
-
-
-    # Internal: return one line from the server, stripping CRLF.
-    # This is where all the CPU time of this module is consumed.
-    # Raise error_proto('-ERR EOF') if the connection is closed.
-
-    def _getline(self):
-        line = self.file.readline()
-        #if self._debugging > 1: print '*get*', `line`
-        if not line: raise error_proto('-ERR EOF')
-        octets = len(line)
-        # server can send any combination of CR & LF
-        # however, 'readline()' returns lines ending in LF
-        # so only possibilities are ...LF, ...CRLF, CR...LF
-        if line[-2:] == CRLF:
-            return line[:-2], octets
-        if line[0] == CR:
-            return line[1:-1], octets
-        return line[:-1], octets
-
-
-    # Internal: get a response from the server.
-    # Raise 'error_proto' if the response doesn't start with '+'.
-
-    def _getresp(self):
-        resp, o = self._getline()
-        #if self._debugging > 1: print '*resp*', `resp`
-        c = resp[:1]
-        if c != '+':
-            raise error_proto(resp)
-        return resp
-
-
-    # Internal: get a response plus following text from the server.
-
-    def _getlongresp(self):
-        resp = self._getresp()
-        list = []; octets = 0
-        line, o = self._getline()
-        while line != '.':
-            if line[:2] == '..':
-                o = o-1
-                line = line[1:]
-            octets = octets + o
-            list.append(line)
-            line, o = self._getline()
-        return resp, list, octets
-
-
-    # Internal: send a command and get the response
-
-    def _shortcmd(self, line):
-        self._putcmd(line)
-        return self._getresp()
-
-
-    # Internal: send a command and get the response plus following text
-
-    def _longcmd(self, line):
-        self._putcmd(line)
-        return self._getlongresp()
-
-
-    # These can be useful:
-
-    def getwelcome(self):
-        return self.welcome
-
-
-    def set_debuglevel(self, level):
-        self._debugging = level
-
-
-    # Here are all the POP commands:
-
-    def user(self, user):
-        """Send user name, return response
-
-        (should indicate password required).
-        """
-        return self._shortcmd('USER %s' % user)
-
-
-    def pass_(self, pswd):
-        """Send password, return response
-
-        (response includes message count, mailbox size).
-
-        NB: mailbox is locked by server from here to 'quit()'
-        """
-        return self._shortcmd('PASS %s' % pswd)
-
-
-    def stat(self):
-        """Get mailbox status.
-
-        Result is tuple of 2 ints (message count, mailbox size)
-        """
-        retval = self._shortcmd('STAT')
-        rets = retval.split()
-        #if self._debugging: print '*stat*', `rets`
-        numMessages = int(rets[1])
-        sizeMessages = int(rets[2])
-        return (numMessages, sizeMessages)
-
-
-    def list(self, which=None):
-        """Request listing, return result.
-
-        Result without a message number argument is in form
-        ['response', ['mesg_num octets', ...]].
-
-        Result when a message number argument is given is a
-        single response: the "scan listing" for that message.
-        """
-        if which:
-            return self._shortcmd('LIST %s' % which)
-        return self._longcmd('LIST')
-
-
-    def retr(self, which):
-        """Retrieve whole message number 'which'.
-
-        Result is in form ['response', ['line', ...], octets].
-        """
-        return self._longcmd('RETR %s' % which)
-
-
-    def dele(self, which):
-        """Delete message number 'which'.
-
-        Result is 'response'.
-        """
-        return self._shortcmd('DELE %s' % which)
-
-
-    def noop(self):
-        """Does nothing.
-
-        One supposes the response indicates the server is alive.
-        """
-        return self._shortcmd('NOOP')
-
-
-    def rset(self):
-        """Not sure what this does."""
-        return self._shortcmd('RSET')
-
-
-    def quit(self):
-        """Signoff: commit changes on server, unlock mailbox, close connection."""
-        try:
-            resp = self._shortcmd('QUIT')
-        except error_proto, val:
-            resp = val
-        self.file.close()
-        self.sock.close()
-        del self.file, self.sock
-        return resp
-
-    #__del__ = quit
-
-
-    # optional commands:
-
-    def rpop(self, user):
-        """Not sure what this does."""
-        return self._shortcmd('RPOP %s' % user)
-
-
-    timestamp = re.compile(r'\+OK.*(<[^>]+>)')
-
-    def apop(self, user, secret):
-        """Authorisation
-
-        - only possible if server has supplied a timestamp in initial greeting.
-
-        Args:
-                user    - mailbox user;
-                secret  - secret shared between client and server.
-
-        NB: mailbox is locked by server from here to 'quit()'
-        """
-        m = self.timestamp.match(self.welcome)
-        if not m:
-            raise error_proto('-ERR APOP not supported by server')
-        import md5
-        digest = md5.new(m.group(1)+secret).digest()
-        digest = ''.join(map(lambda x:'%02x'%ord(x), digest))
-        return self._shortcmd('APOP %s %s' % (user, digest))
-
-
-    def top(self, which, howmuch):
-        """Retrieve message header of message number 'which'
-        and first 'howmuch' lines of message body.
-
-        Result is in form ['response', ['line', ...], octets].
-        """
-        return self._longcmd('TOP %s %s' % (which, howmuch))
-
-
-    def uidl(self, which=None):
-        """Return message digest (unique id) list.
-
-        If 'which', result contains unique id for that message
-        in the form 'response mesgnum uid', otherwise result is
-        the list ['response', ['mesgnum uid', ...], octets]
-        """
-        if which:
-            return self._shortcmd('UIDL %s' % which)
-        return self._longcmd('UIDL')
-
-
-if __name__ == "__main__":
-    import sys
-    a = POP3(sys.argv[1])
-    print a.getwelcome()
-    a.user(sys.argv[2])
-    a.pass_(sys.argv[3])
-    a.list()
-    (numMsgs, totalSize) = a.stat()
-    for i in range(1, numMsgs + 1):
-        (header, msg, octets) = a.retr(i)
-        print "Message ", `i`, ':'
-        for line in msg:
-            print '   ' + line
-        print '-----------------------'
-    a.quit()
diff -urN storm_0.3/usr/lib/python2.0/smtplib.py storm_0.5.2/usr/lib/python2.0/smtplib.py
--- storm_0.3/usr/lib/python2.0/smtplib.py	Mon Dec 31 22:14:40 2001
+++ storm_0.5.2/usr/lib/python2.0/smtplib.py	Mon Feb 25 18:01:50 2002
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/python
 
 '''SMTP/ESMTP client class.
 
@@ -232,9 +232,7 @@
         if self.debuglevel > 0: print 'send:', `str`
         if self.sock:
             try:
-                sendptr = 0
-                while sendptr < len(str):
-                    sendptr = sendptr + self.sock.send(str[sendptr:])
+                self.sock.sendall(str)
             except socket.error:
                 raise SMTPServerDisconnected('Server not connected')
         else:
diff -urN storm_0.3/usr/local/share/storm/config/lastsync storm_0.5.2/usr/local/share/storm/config/lastsync
--- storm_0.3/usr/local/share/storm/config/lastsync	Wed Jan  2 19:30:54 2002
+++ storm_0.5.2/usr/local/share/storm/config/lastsync	Wed Dec 31 19:00:00 1969
@@ -1 +0,0 @@
- 
diff -urN storm_0.3/usr/local/share/storm/config/lastsync~ storm_0.5.2/usr/local/share/storm/config/lastsync~
--- storm_0.3/usr/local/share/storm/config/lastsync~	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/config/lastsync~	Wed Dec 31 19:00:00 1969
@@ -1 +0,0 @@
-Mon Dec 31 15:08:09 GMT 2001
diff -urN storm_0.3/usr/local/share/storm/config/pop3 storm_0.5.2/usr/local/share/storm/config/pop3
--- storm_0.3/usr/local/share/storm/config/pop3	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/config/pop3	Wed Dec 31 19:00:00 1969
@@ -1,3 +0,0 @@
-userane
-dctanner
-server
\ No newline at end of file
diff -urN storm_0.3/usr/local/share/storm/config/sig storm_0.5.2/usr/local/share/storm/config/sig
--- storm_0.3/usr/local/share/storm/config/sig	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/config/sig	Wed Dec 31 19:00:00 1969
@@ -1 +0,0 @@
-dctanner.
\ No newline at end of file
diff -urN storm_0.3/usr/local/share/storm/config/smtp storm_0.5.2/usr/local/share/storm/config/smtp
--- storm_0.3/usr/local/share/storm/config/smtp	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/config/smtp	Wed Dec 31 19:00:00 1969
@@ -1 +0,0 @@
-localhost
\ No newline at end of file
diff -urN storm_0.3/usr/local/share/storm/config/sync storm_0.5.2/usr/local/share/storm/config/sync
--- storm_0.3/usr/local/share/storm/config/sync	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/config/sync	Wed Dec 31 19:00:00 1969
@@ -1,4 +0,0 @@
-username
-ip
-incomming
-outgoing
\ No newline at end of file
diff -urN storm_0.3/usr/local/share/storm/mail/Inbox storm_0.5.2/usr/local/share/storm/mail/Inbox
--- storm_0.3/usr/local/share/storm/mail/Inbox	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/mail/Inbox	Wed Dec 31 19:00:00 1969
@@ -1 +0,0 @@
-
diff -urN storm_0.3/usr/local/share/storm/pixmaps/back.xpm storm_0.5.2/usr/local/share/storm/pixmaps/back.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/back.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/back.xpm	Wed Dec 31 19:00:00 1969
@@ -1,89 +0,0 @@
-/* XPM */
-static char * back_xpm[] = {
-"16 16 70 1",
-" 	c None",
-".	c #234E33",
-"+	c #1E472E",
-"@	c #224B31",
-"#	c #214A30",
-"$	c #C1CECC",
-"%	c #DBEADF",
-"&	c #AFBEBA",
-"*	c #1B422A",
-"=	c #1B4029",
-"-	c #245135",
-";	c #C0D1C9",
-">	c #227D37",
-",	c #90BD9F",
-"'	c #BFD0C8",
-")	c #163321",
-"!	c #173A23",
-"~	c #224B30",
-"{	c #43BA5C",
-"]	c #3BB057",
-"^	c #2F9645",
-"/	c #BDCEC7",
-"(	c #153220",
-"_	c #7BA08A",
-":	c #42B75B",
-"<	c #3FAF57",
-"[	c #143D29",
-"}	c #0B281E",
-"|	c #1E4335",
-"1	c #38774E",
-"2	c #143120",
-"3	c #C2DBCA",
-"4	c #88AB9C",
-"5	c #9DC6AA",
-"6	c #36A34D",
-"7	c #123926",
-"8	c #050E0D",
-"9	c #081914",
-"0	c #0F2417",
-"a	c #CFE0D4",
-"b	c #2A8F3D",
-"c	c #0D3525",
-"d	c #0A1F18",
-"e	c #040B06",
-"f	c #B2D1BC",
-"g	c #3E9951",
-"h	c #259039",
-"i	c #041714",
-"j	c #030C0B",
-"k	c #0D2419",
-"l	c #0A1910",
-"m	c #468166",
-"n	c #5AA77B",
-"o	c #5AB975",
-"p	c #55AE72",
-"q	c #071112",
-"r	c #03090A",
-"s	c #14311F",
-"t	c #000000",
-"u	c #010003",
-"v	c #020005",
-"w	c #03080A",
-"x	c #10211F",
-"y	c #000001",
-"z	c #162D26",
-"A	c #050B0C",
-"B	c #090F10",
-"C	c #142724",
-"D	c #050D0E",
-"E	c #050A0C",
-"                ",
-"                ",
-"        .++     ",
-"      @#$%&*=   ",
-"-    #;%>>>,')  ",
-"!-  ~%>>{]^>>/( ",
-"!_-#%>:<[}}|1>2 ",
-"!345>678    9->0",
-"!ab>6c       d>e",
-"!fgh>i       jkl",
-"!mnop>9      qr ",
-"stuuvuuu    wxy ",
-"           8zA  ",
-"          BCD   ",
-"        yEy     ",
-"                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/blank.xpm storm_0.5.2/usr/local/share/storm/pixmaps/blank.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/blank.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/blank.xpm	Wed Dec 31 19:00:00 1969
@@ -1,5 +0,0 @@
-/* XPM */
-static char * back_xpm[] = {
-"16 16 70 1",
-" 	c None",
-"c"};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/cancel.xpm storm_0.5.2/usr/local/share/storm/pixmaps/cancel.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/cancel.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/cancel.xpm	Wed Dec 31 19:00:00 1969
@@ -1,27 +0,0 @@
-/* XPM */
-static char * cancel_xpm[] = {
-"16 16 8 1",
-" 	c None",
-".	c #000000",
-"+	c #C46D74",
-"@	c #9F3C44",
-"#	c #B5444E",
-"$	c #BD5A62",
-"%	c #7B2D34",
-"&	c #8C343C",
-"                ",
-"     ..      .  ",
-"    .+@.    .#. ",
-"    .##.   .$#. ",
-"     .#@. .$#%. ",
-"     .##..$#&.  ",
-"      .####@.   ",
-"      .####.    ",
-"     .$###.     ",
-"    .$####.     ",
-"   .$#&..#&.    ",
-"  .+#&. .@#.    ",
-"  .#&.   .#@.   ",
-"   ..    .@#.   ",
-"          ..    ",
-"                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/contacts-add.xpm storm_0.5.2/usr/local/share/storm/pixmaps/contacts-add.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/contacts-add.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/contacts-add.xpm	Wed Dec 31 19:00:00 1969
@@ -1,66 +0,0 @@
-/* XPM */
-static char * contacts_add_xpm[] = {
-"16 16 47 1",
-" 	c None",
-".	c #000000",
-"+	c #FF3838",
-"@	c #EA3333",
-"#	c #BDBDBD",
-"$	c #FFFFFF",
-"%	c #C92C2C",
-"&	c #F8F8F8",
-"*	c #C9B49B",
-"=	c #8E7151",
-"-	c #876E51",
-";	c #BAB1A5",
-">	c #F3F3F3",
-",	c #A88D6E",
-"'	c #DFD0BF",
-")	c #5E432B",
-"!	c #7E6C5B",
-"~	c #EEDFCC",
-"{	c #F4EEE6",
-"]	c #765E45",
-"^	c #736251",
-"/	c #EAE8E3",
-"(	c #FAFAFA",
-"_	c #7590AE",
-":	c #C1665A",
-"<	c #445B71",
-"[	c #D7D6D3",
-"}	c #ADADAD",
-"|	c #4B6983",
-"1	c #9DB8D2",
-"2	c #486481",
-"3	c #314E6C",
-"4	c #667A8D",
-"5	c #5F7C96",
-"6	c #5D7A95",
-"7	c #4D6B87",
-"8	c #3B556D",
-"9	c #344A60",
-"0	c #999999",
-"a	c #9B9B9B",
-"b	c #EDEDED",
-"c	c #C7C7C7",
-"d	c #5D5D5D",
-"e	c #787878",
-"f	c #E0DDD6",
-"g	c #A3A3A3",
-"h	c #918E85",
-"          ....  ",
-"          .++.  ",
-" ..........@+...",
-".#$$$$$$.%@@@++.",
-".$&*=-;$.%%@@@+.",
-".$>,')!$...%@...",
-".$>~{]^$$$.%%./.",
-".$(_:<[$}$..../.",
-".$|1234$$$$$$$/.",
-".$56789$0abc$$/.",
-".$$$$$$$$$$$$$/.",
-".$$d$d$e$a$c$$f.",
-".g///////////fh.",
-" .............. ",
-"                ",
-"                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/contacts.xpm storm_0.5.2/usr/local/share/storm/pixmaps/contacts.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/contacts.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/contacts.xpm	Wed Dec 31 19:00:00 1969
@@ -1,69 +0,0 @@
-/* XPM */
-static char * contacts_xpm[] = {
-"16 16 50 1",
-" 	c None",
-".	c #000000",
-"+	c #BDBDBD",
-"@	c #FFFFFF",
-"#	c #A3A3A3",
-"$	c #F8F8F8",
-"%	c #C9B49B",
-"&	c #8E7151",
-"*	c #876E51",
-"=	c #BAB1A5",
-"-	c #FDFDFD",
-";	c #FBFBFB",
-">	c #EAE8E3",
-",	c #F3F3F3",
-"'	c #A88D6E",
-")	c #DFD0BF",
-"!	c #5E432B",
-"~	c #7E6C5B",
-"{	c #313131",
-"]	c #575757",
-"^	c #FCFCFC",
-"/	c #555555",
-"(	c #EEDFCC",
-"_	c #F4EEE6",
-":	c #765E45",
-"<	c #736251",
-"[	c #FAFAFA",
-"}	c #7590AE",
-"|	c #C1665A",
-"1	c #445B71",
-"2	c #D7D6D3",
-"3	c #ADADAD",
-"4	c #9B9B9B",
-"5	c #4B6983",
-"6	c #9DB8D2",
-"7	c #486481",
-"8	c #314E6C",
-"9	c #667A8D",
-"0	c #5F7C96",
-"a	c #5D7A95",
-"b	c #4D6B87",
-"c	c #3B556D",
-"d	c #344A60",
-"e	c #999999",
-"f	c #EDEDED",
-"g	c #C7C7C7",
-"h	c #5D5D5D",
-"i	c #787878",
-"j	c #E0DDD6",
-"k	c #918E85",
-"                ",
-"                ",
-" .............. ",
-".+@@@@@@@@@@@@#.",
-".@$%&*=@-@;@@@>.",
-".@,')!~@{]^/-@>.",
-".@,(_:<@@@@@@@>.",
-".@[}|12@3@43@@>.",
-".@56789@@@@@@@>.",
-".@0abcd@e4fg@@>.",
-".@@@@@@@@@@@@@>.",
-".@@h@h@i@4@g@@j.",
-".#>>>>>>>>>>>jk.",
-" .............. ",
-"                ",
-"                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/edit.xpm storm_0.5.2/usr/local/share/storm/pixmaps/edit.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/edit.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/edit.xpm	Wed Dec 31 19:00:00 1969
@@ -1,84 +0,0 @@
-/* XPM */
-static char * 16_edit_xpm[] = {
-"16 16 65 1",
-" 	c None",
-".	c #000000",
-"+	c #FDFDFD",
-"@	c #E2E2E2",
-"#	c #BAA88F",
-"$	c #836B4E",
-"%	c #FEFEFE",
-"&	c #FCFCFC",
-"*	c #FBFBFB",
-"=	c #E5E5E5",
-"-	c #C5A985",
-";	c #DC9E55",
-">	c #9E6233",
-",	c #FFFFFF",
-"'	c #F2F2F2",
-")	c #D9D9D9",
-"!	c #E4E4E4",
-"~	c #C3A783",
-"{	c #DD9D53",
-"]	c #A76631",
-"^	c #EEEEEE",
-"/	c #D4D4D4",
-"(	c #FAFAFA",
-"_	c #7B7B7B",
-":	c #C5AA88",
-"<	c #A86631",
-"[	c #DCDCDC",
-"}	c #F0F0F0",
-"|	c #5E5E5E",
-"1	c #C3A47A",
-"2	c #DD9D52",
-"3	c #A66430",
-"4	c #D5D5D5",
-"5	c #6A6A6A",
-"6	c #C2A174",
-"7	c #DC9B4E",
-"8	c #A96630",
-"9	c #6E6E6E",
-"0	c #D8D8D8",
-"a	c #D6D6D6",
-"b	c #9F9F9F",
-"c	c #BEA686",
-"d	c #DD9D51",
-"e	c #AA682F",
-"f	c #F5F5F5",
-"g	c #DDDDDD",
-"h	c #F9F9F9",
-"i	c #7A7A7A",
-"j	c #BCAC9B",
-"k	c #A86E3F",
-"l	c #797979",
-"m	c #F4F4F4",
-"n	c #F3F3F3",
-"o	c #DFDFDF",
-"p	c #7C7C7C",
-"q	c #4F4F4F",
-"r	c #6C6C6C",
-"s	c #EAEAEA",
-"t	c #F8F8F8",
-"u	c #F6F6F6",
-"v	c #F7F7F7",
-"w	c #EBEBEB",
-"x	c #ECECEC",
-"y	c #E0E0E0",
-"z	c #E8E8E8",
-"       ..    .. ",
-"     ..+@.  .#$.",
-"   ..%+&*=..-;>.",
-" ..,%+')*!.~{]. ",
-".,%%^/)*(_:{<.  ",
-".%%)[**}|123.   ",
-" .+'*}456789.   ",
-" .&*0abcde.fg.  ",
-"  .((hijklfmno. ",
-"  .(hpq.rfmnsg. ",
-"   .tilufm^oo.  ",
-"   .vuufwoo..   ",
-"    .uxyo..     ",
-"    .zg..       ",
-"     ..         ",
-"                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/evolution-calender.xpm storm_0.5.2/usr/local/share/storm/pixmaps/evolution-calender.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/evolution-calender.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/evolution-calender.xpm	Wed Dec 31 19:00:00 1969
@@ -1,288 +0,0 @@
-/* XPM */
-static char * evolution_calender_xpm[] = {
-"32 32 253 2",
-"  	c None",
-". 	c #FFFFFF",
-"+ 	c #FEFEFE",
-"@ 	c #FBFBFB",
-"# 	c #CFCFCF",
-"$ 	c #DCDCDC",
-"% 	c #F7F7F7",
-"& 	c #E3E3E3",
-"* 	c #524C56",
-"= 	c #403843",
-"- 	c #D2D2D2",
-"; 	c #F2E3E7",
-"> 	c #DCBEC5",
-", 	c #D0D0D0",
-"' 	c #C4C4C4",
-") 	c #F3F3F3",
-"! 	c #716972",
-"~ 	c #847B8C",
-"{ 	c #B1B2B0",
-"] 	c #8E8E8E",
-"^ 	c #5A565B",
-"/ 	c #464048",
-"( 	c #5D5C5B",
-"_ 	c #888886",
-": 	c #FEFBFC",
-"< 	c #CB8099",
-"[ 	c #DAA2B6",
-"} 	c #A8888D",
-"| 	c #EBE3E3",
-"1 	c #8A848B",
-"2 	c #A29BA7",
-"3 	c #FAFAFB",
-"4 	c #F7F7F8",
-"5 	c #F3F2F4",
-"6 	c #FCFCFC",
-"7 	c #E8E8E8",
-"8 	c #484847",
-"9 	c #AAA9AB",
-"0 	c #2C2530",
-"a 	c #403644",
-"b 	c #B8B6B9",
-"c 	c #595A57",
-"d 	c #D4D4D4",
-"e 	c #F9F9F9",
-"f 	c #F7EEF0",
-"g 	c #D7A8B6",
-"h 	c #C77C95",
-"i 	c #BF6B86",
-"j 	c #DFBFC6",
-"k 	c #FBF9F9",
-"l 	c #AAA6AB",
-"m 	c #372E38",
-"n 	c #BBB5BF",
-"o 	c #ECEBED",
-"p 	c #EFEDEF",
-"q 	c #E0DEE2",
-"r 	c #F5F5F5",
-"s 	c #959595",
-"t 	c #353535",
-"u 	c #8A898B",
-"v 	c #2A232D",
-"w 	c #3E3543",
-"x 	c #A8A6A9",
-"y 	c #3F3F3D",
-"z 	c #696969",
-"A 	c #E6E6E6",
-"B 	c #F7F0F2",
-"C 	c #ECD4DB",
-"D 	c #FDFBFC",
-"E 	c #F4E7EB",
-"F 	c #DDBCC4",
-"G 	c #F6F1F1",
-"H 	c #C7C4C7",
-"I 	c #443A44",
-"J 	c #594C62",
-"K 	c #C9C5CC",
-"L 	c #EEEDF0",
-"M 	c #D8D8D8",
-"N 	c #A7A7A7",
-"O 	c #A4A2A4",
-"P 	c #29222B",
-"Q 	c #3F3441",
-"R 	c #ADAAAE",
-"S 	c #A6A6A6",
-"T 	c #CCCCCC",
-"U 	c #D8D6D8",
-"V 	c #554C55",
-"W 	c #65596E",
-"X 	c #D5D2D8",
-"Y 	c #F8F8F8",
-"Z 	c #F4F4F4",
-"` 	c #EBEBEB",
-" .	c #EAEAEA",
-"..	c #C2C0C2",
-"+.	c #3D3340",
-"@.	c #B9B6BA",
-"#.	c #C2C2C2",
-"$.	c #CECECE",
-"%.	c #E1E1E1",
-"&.	c #F2F2F2",
-"*.	c #F6F6F6",
-"=.	c #E7E6E7",
-"-.	c #645C64",
-";.	c #706577",
-">.	c #DCDADE",
-",.	c #E5E5E5",
-"'.	c #E7E7E7",
-").	c #F1F1F1",
-"!.	c #D6D6D6",
-"~.	c #BCBDBC",
-"{.	c #9B9B9B",
-"].	c #4B4A4A",
-"^.	c #51504F",
-"/.	c #A09F9F",
-"(.	c #FAFAFA",
-"_.	c #EDEDED",
-":.	c #EEEEEE",
-"<.	c #7C767C",
-"[.	c #7C7283",
-"}.	c #BBBBBB",
-"|.	c #E9E9E9",
-"1.	c #CECECD",
-"2.	c #D0D1D0",
-"3.	c #B8B8B7",
-"4.	c #5D595E",
-"5.	c #49444A",
-"6.	c #424142",
-"7.	c #282728",
-"8.	c #C3C3C3",
-"9.	c #FFFEFF",
-"0.	c #ECECEC",
-"a.	c #E0E0E0",
-"b.	c #9A949A",
-"c.	c #2F262E",
-"d.	c #8B8290",
-"e.	c #FBFAFB",
-"f.	c #C5C5C5",
-"g.	c #A5A5A4",
-"h.	c #C4C4C3",
-"i.	c #9C999D",
-"j.	c #2A232B",
-"k.	c #3E3440",
-"l.	c #A29CA3",
-"m.	c #777576",
-"n.	c #696869",
-"o.	c #EFEFEF",
-"p.	c #D1D1D1",
-"q.	c #E2E2E2",
-"r.	c #C1BDC0",
-"s.	c #332932",
-"t.	c #8F8694",
-"u.	c #DFDFDF",
-"v.	c #BFBFBF",
-"w.	c #3C3D3C",
-"x.	c #888888",
-"y.	c #928F93",
-"z.	c #2A232C",
-"A.	c #3E3441",
-"B.	c #979198",
-"C.	c #676666",
-"D.	c #242424",
-"E.	c #F8F8F9",
-"F.	c #F9F9FA",
-"G.	c #DEDBDD",
-"H.	c #362C35",
-"I.	c #B4AEB7",
-"J.	c #E2E0E4",
-"K.	c #F2F1F3",
-"L.	c #EBEAED",
-"M.	c #F1F0F2",
-"N.	c #F6F6F7",
-"O.	c #B0AFAF",
-"P.	c #868387",
-"Q.	c #3F3340",
-"R.	c #8A838B",
-"S.	c #A0A0A0",
-"T.	c #848484",
-"U.	c #DDDDDD",
-"V.	c #F2F2F3",
-"W.	c #F4F4F5",
-"X.	c #433942",
-"Y.	c #C4C0C7",
-"Z.	c #F0EFF1",
-"`.	c #E0DDE2",
-" +	c #EAE9EC",
-".+	c #CFCBD2",
-"++	c #F3F2F3",
-"@+	c #E5E3E7",
-"#+	c #FDFDFD",
-"$+	c #706B70",
-"%+	c #2D262F",
-"&+	c #423643",
-"*+	c #766D77",
-"=+	c #ADADAD",
-"-+	c #C9C9C9",
-";+	c #F5F5F6",
-">+	c #F7F6F7",
-",+	c #625A61",
-"'+	c #56495D",
-")+	c #DEDBDF",
-"!+	c #E9E7EB",
-"~+	c #F8F7F9",
-"{+	c #716C71",
-"]+	c #2E2630",
-"^+	c #817883",
-"/+	c #888187",
-"(+	c #55485C",
-"_+	c #D7D5D8",
-":+	c #D7D4D8",
-"<+	c #D6D4D8",
-"[+	c #C4C0C5",
-"}+	c #ADA8AF",
-"|+	c #9B949C",
-"1+	c #817982",
-"2+	c #4A414A",
-"3+	c #342B35",
-"4+	c #453946",
-"5+	c #645866",
-"6+	c #887F89",
-"7+	c #948C95",
-"8+	c #ADA8AE",
-"9+	c #A9A4A9",
-"0+	c #A8A3A8",
-"a+	c #B6B2B6",
-"b+	c #D3D1D3",
-"c+	c #D4D1D4",
-"d+	c #E3E1E2",
-"e+	c #AEAAAD",
-"f+	c #32292F",
-"g+	c #4F4356",
-"h+	c #493D4F",
-"i+	c #433948",
-"j+	c #3E3542",
-"k+	c #3B323F",
-"l+	c #39303D",
-"m+	c #39303C",
-"n+	c #39303B",
-"o+	c #362D37",
-"p+	c #342C36",
-"q+	c #352D37",
-"r+	c #372E39",
-"s+	c #3B303C",
-"t+	c #453947",
-"u+	c #4D404E",
-"v+	c #463A47",
-"w+	c #413542",
-"x+	c #3F3440",
-"y+	c #382F38",
-"z+	c #362D36",
-"A+	c #352B35",
-"B+	c #372D36",
-"C+	c #382E36",
-"D+	c #372D35",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                . . . . . .     . . + + . .                     ",
-"        @ # $ . . . . . % & * = - % . . . ; > , ' ) !           ",
-"      ~ @ # # . . . . . { ] ^ / ( _ . . . : < [ } | 1           ",
-"      2 . 3 4 5 . . 6 7 8 9 0 a b c d e f g h i j k l m         ",
-"      n 6 o p q . . r s t u v w x y z A B C D E F G H I         ",
-"    J K 4 L . . . . 6 M N O P Q R S T ) . . . . . . U V         ",
-"    W X . @ Y Z ` A A 7  ...P +.@.#.$.%.A  .&.Z *.Y =.-.        ",
-"    ;.>.,.'.7 ` ).Y . + !.~.{.].^./.6 . + (.) _.:.:.Z <.        ",
-"    [.o }.|.. . . . . 1.2.3.4.5.6.7.8.. 9.9.. . 0.a._.b.c.      ",
-"    d.e.f.M . . . . 6 g.h.i.j.k.l.m.n.o.@ @ . . Z p.q.r.s.      ",
-"    t.. u.|.. . . . v.w.x.y.z.A.B.C.D.v.E.F.. . .  .. G.H.      ",
-"    I.+ J.K.L.M.N.+ o.O.#.P.z.Q.R.S.T.U.V.W.. . . . . . X.      ",
-"    Y.Z.`. +.+++@++ #+r 0.$+%+&+*+=+-+0.;+>+. . . . . . ,+      ",
-"  '+)+!+~+. . . . . . + #+{+]+&+^+U.0.@ . . . . . . . . /+      ",
-"  (+>+. _+:+<+[+}+}+}+|+1+2+3+4+5+6+7+8+9+0+a+b+b+c+d+. e+f+    ",
-"  g+h+i+w j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+B+B+B+C+D+D+    ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/evolution-contacts.xpm storm_0.5.2/usr/local/share/storm/pixmaps/evolution-contacts.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/evolution-contacts.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/evolution-contacts.xpm	Wed Dec 31 19:00:00 1969
@@ -1,197 +0,0 @@
-/* XPM */
-static char * evolution_contacts_xpm[] = {
-"32 32 162 2",
-"  	c None",
-". 	c #FFFFFF",
-"+ 	c #FDFDFD",
-"@ 	c #D8D8D8",
-"# 	c #AFAFAF",
-"$ 	c #B5B5B5",
-"% 	c #EDEDED",
-"& 	c #CECECE",
-"* 	c #C2C2C2",
-"= 	c #D7D7D7",
-"- 	c #D6D6D6",
-"; 	c #FEFEFE",
-"> 	c #F4F4F4",
-", 	c #E1E1E1",
-"' 	c #D9D9D9",
-") 	c #EFEFEF",
-"! 	c #F8F8F8",
-"~ 	c #D2D2D2",
-"{ 	c #D3D3D3",
-"] 	c #C0C0C0",
-"^ 	c #DEDEDE",
-"/ 	c #CBCBCB",
-"( 	c #E8E8E8",
-"_ 	c #5A5A5A",
-": 	c #595959",
-"< 	c #747474",
-"[ 	c #CFCFCF",
-"} 	c #C7C7C7",
-"| 	c #A8A8A8",
-"1 	c #E4E4E4",
-"2 	c #5C5C5C",
-"3 	c #878787",
-"4 	c #FBFBFB",
-"5 	c #FCFCFC",
-"6 	c #C4C4C4",
-"7 	c #7A7A7A",
-"8 	c #757575",
-"9 	c #4E4E4E",
-"0 	c #4A4A4A",
-"a 	c #505050",
-"b 	c #767676",
-"c 	c #8C9296",
-"d 	c #A8B2B7",
-"e 	c #9FA9AE",
-"f 	c #555859",
-"g 	c #0A0A0A",
-"h 	c #121212",
-"i 	c #141414",
-"j 	c #1E1E1E",
-"k 	c #323232",
-"l 	c #363636",
-"m 	c #464646",
-"n 	c #4A4C4C",
-"o 	c #A9B4B9",
-"p 	c #BFC5C7",
-"q 	c #494C4D",
-"r 	c #1B1C1C",
-"s 	c #393939",
-"t 	c #232323",
-"u 	c #161616",
-"v 	c #000000",
-"w 	c #383C3E",
-"x 	c #CAD0D4",
-"y 	c #565758",
-"z 	c #1B0F12",
-"A 	c #34161C",
-"B 	c #F7F7F7",
-"C 	c #CDCDCD",
-"D 	c #AAAAAA",
-"E 	c #848484",
-"F 	c #656565",
-"G 	c #3F3F3F",
-"H 	c #191919",
-"I 	c #323435",
-"J 	c #C6CACD",
-"K 	c #373A3B",
-"L 	c #311E22",
-"M 	c #4D262E",
-"N 	c #CCCCCC",
-"O 	c #4B4B4B",
-"P 	c #A6A7A7",
-"Q 	c #282929",
-"R 	c #372125",
-"S 	c #502B33",
-"T 	c #290F14",
-"U 	c #0E0E0E",
-"V 	c #7E7E7E",
-"W 	c #4F4F4F",
-"X 	c #392227",
-"Y 	c #4E2A32",
-"Z 	c #34141B",
-"` 	c #4D3036",
-" .	c #45252C",
-"..	c #39161E",
-"+.	c #260E12",
-"@.	c #A4979B",
-"#.	c #CBC3C6",
-"$.	c #F5F3F3",
-"%.	c #F2F2F2",
-"&.	c #5C4046",
-"*.	c #47222B",
-"=.	c #33141B",
-"-.	c #2C1117",
-";.	c #2F1019",
-">.	c #6F585E",
-",.	c #B29CA0",
-"'.	c #6F5056",
-").	c #33141A",
-"!.	c #38161E",
-"~.	c #36161C",
-"{.	c #220C11",
-"].	c #34111A",
-"^.	c #4E151F",
-"/.	c #631824",
-"(.	c #6F1A27",
-"_.	c #781C29",
-":.	c #771B28",
-"<.	c #741B27",
-"[.	c #6F1A26",
-"}.	c #6A1924",
-"|.	c #5E1823",
-"1.	c #684E53",
-"2.	c #421A23",
-"3.	c #31141A",
-"4.	c #2A1016",
-"5.	c #321319",
-"6.	c #1B0A0D",
-"7.	c #B17B86",
-"8.	c #99515D",
-"9.	c #893844",
-"0.	c #7A1E2B",
-"a.	c #791C29",
-"b.	c #711E2B",
-"c.	c #7C5E65",
-"d.	c #38161D",
-"e.	c #34151B",
-"f.	c #32141A",
-"g.	c #250E13",
-"h.	c #230C11",
-"i.	c #C398A2",
-"j.	c #BF8F9A",
-"k.	c #B17983",
-"l.	c #8B3B47",
-"m.	c #742A36",
-"n.	c #66444C",
-"o.	c #35151C",
-"p.	c #2D1217",
-"q.	c #210C11",
-"r.	c #1E0A0E",
-"s.	c #18080B",
-"t.	c #C199A3",
-"u.	c #A2636E",
-"v.	c #832E3B",
-"w.	c #712B37",
-"x.	c #673C45",
-"y.	c #3F1921",
-"z.	c #230D11",
-"A.	c #1C090D",
-"B.	c #86404C",
-"C.	c #66232E",
-"D.	c #472229",
-"E.	c #2F1117",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                        .                       ",
-"                      + . . . . @ # $ % .                       ",
-"                  & * * = - ; > , = ' ) .                       ",
-"                ! ~ { ] ~ ' . > ^ - / (                         ",
-"          _ _ _ : : : : _ _ < [ } | | 1                         ",
-"          _ _ _ _ _ _ _ _ _ 2 3 % 4 5 5                         ",
-"            _ _ _ _ _ _ _ _ _ _ 6 + . .                         ",
-"              _ _ _ _ _ _ _ _ _ 7 1 . . 8 9 9 9 9               ",
-"                  0 9 a _ _ _ _ _ b c d e f 9                   ",
-"                  g h i j j k l m n o p q r                     ",
-"                  s t u v v v v v w x y z A                     ",
-"                B 1 C ] D E F G H I J K L M                     ",
-"            . . . . . . . . . . N O P Q R S T                   ",
-"          . . . . . . . . . . . 9 U V W X Y Z                   ",
-"              . . . . . . . ;           `  ...+.                ",
-"                  @.#.$.. . %.          &.*.=.-.                ",
-"                  ;.;.;.>.,.            '.).!.~.{.              ",
-"                  ;.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.            ",
-"                    7.8.9.0.a.a.a.a.a.b.c.d.e.f.g.h.            ",
-"                        i.j.k.l.a.a.a.m.n.o.p.q.r.s.            ",
-"                              t.u.v.a.w.x.y.z.A.                ",
-"                                  B.a.C.D.E.                    ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/evolution-inbox.xpm storm_0.5.2/usr/local/share/storm/pixmaps/evolution-inbox.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/evolution-inbox.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/evolution-inbox.xpm	Wed Dec 31 19:00:00 1969
@@ -1,181 +0,0 @@
-/* XPM */
-static char * evolution_inbox_xpm[] = {
-"32 32 146 2",
-"  	c None",
-". 	c #CDCDCD",
-"+ 	c #CACACA",
-"@ 	c #E3E3E3",
-"# 	c #E7E7E7",
-"$ 	c #EAEAEA",
-"% 	c #F0F0F0",
-"& 	c #F7F7F7",
-"* 	c #FAFAFA",
-"= 	c #FBFBFB",
-"- 	c #FDFDFD",
-"; 	c #FFFFFF",
-"> 	c #FEFEFE",
-", 	c #F9F9F9",
-"' 	c #F8F8F8",
-") 	c #F3F3F3",
-"! 	c #979797",
-"~ 	c #FCFCFC",
-"{ 	c #F6F6F6",
-"] 	c #F1F1F1",
-"^ 	c #EFEFEF",
-"/ 	c #EEEEEE",
-"( 	c #ECECEC",
-"_ 	c #E5E5E5",
-": 	c #A7A7A7",
-"< 	c #5D5D5D",
-"[ 	c #F2F2F2",
-"} 	c #EBEBEB",
-"| 	c #E9E9E9",
-"1 	c #D8D8D8",
-"2 	c #848484",
-"3 	c #444444",
-"4 	c #404040",
-"5 	c #A9A9A9",
-"6 	c #BDBDBD",
-"7 	c #F5F5F5",
-"8 	c #EDEDED",
-"9 	c #DEDEDE",
-"0 	c #CCCCCC",
-"a 	c #797979",
-"b 	c #414141",
-"c 	c #5A5A5A",
-"d 	c #3D3D3D",
-"e 	c #BEBEBE",
-"f 	c #999999",
-"g 	c #9D9D9D",
-"h 	c #C1C1C1",
-"i 	c #E0E0E0",
-"j 	c #E4E4E4",
-"k 	c #E2E2E2",
-"l 	c #C5C5C5",
-"m 	c #4F4F4F",
-"n 	c #1F1F1F",
-"o 	c #7E7E7E",
-"p 	c #8C8C8C",
-"q 	c #BABABA",
-"r 	c #DFDFDF",
-"s 	c #898989",
-"t 	c #9F9F9F",
-"u 	c #C9C9C9",
-"v 	c #E1E1E1",
-"w 	c #DCDCDC",
-"x 	c #DADADA",
-"y 	c #D3D3D3",
-"z 	c #BBBBBB",
-"A 	c #626262",
-"B 	c #363636",
-"C 	c #676767",
-"D 	c #6B6B6B",
-"E 	c #E8E8E8",
-"F 	c #909090",
-"G 	c #686868",
-"H 	c #777777",
-"I 	c #D4D4D4",
-"J 	c #DBDBDB",
-"K 	c #D6D6D6",
-"L 	c #A8A8A8",
-"M 	c #666666",
-"N 	c #8D8D8D",
-"O 	c #B1B1B1",
-"P 	c #808080",
-"Q 	c #AFAFAF",
-"R 	c #878787",
-"S 	c #646464",
-"T 	c #6F6F6F",
-"U 	c #929292",
-"V 	c #D1D1D1",
-"W 	c #5B5B5B",
-"X 	c #494949",
-"Y 	c #9C9C9C",
-"Z 	c #B2B2B2",
-"` 	c #B7B7B7",
-" .	c #2A2A2A",
-"..	c #E6E6E6",
-"+.	c #B8B8B8",
-"@.	c #A0A0A0",
-"#.	c #B6B6B6",
-"$.	c #9B9B9B",
-"%.	c #838383",
-"&.	c #7C7C7C",
-"*.	c #939393",
-"=.	c #787878",
-"-.	c #949494",
-";.	c #A3A3A3",
-">.	c #C0C0C0",
-",.	c #AAAAAA",
-"'.	c #3B3B3B",
-").	c #CECECE",
-"!.	c #BCBCBC",
-"~.	c #C6C6C6",
-"{.	c #B4B4B4",
-"].	c #B9B9B9",
-"^.	c #C2C2C2",
-"/.	c #585858",
-"(.	c #D7D7D7",
-"_.	c #CBCBCB",
-":.	c #CFCFCF",
-"<.	c #9E9E9E",
-"[.	c #AEAEAE",
-"}.	c #B0B0B0",
-"|.	c #F4F4F4",
-"1.	c #D9D9D9",
-"2.	c #D2D2D2",
-"3.	c #C8C8C8",
-"4.	c #959595",
-"5.	c #8F8F8F",
-"6.	c #6A6A6A",
-"7.	c #DDDDDD",
-"8.	c #C7C7C7",
-"9.	c #C4C4C4",
-"0.	c #6E6E6E",
-"a.	c #D0D0D0",
-"b.	c #C3C3C3",
-"c.	c #ADADAD",
-"d.	c #8E8E8E",
-"e.	c #707070",
-"f.	c #2C2C2C",
-"g.	c #A2A2A2",
-"h.	c #616161",
-"i.	c #D5D5D5",
-"j.	c #BFBFBF",
-"k.	c #4B4B4B",
-"l.	c #383838",
-"m.	c #B3B3B3",
-"n.	c #767676",
-"o.	c #A1A1A1",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                . +             ",
-"        @ # $ % & * = - ; ; ; > - - = * * * , , ' ) !           ",
-"    ; ; ; ; ; ; ; ; > - ~ = * , { { ) ] ^ / ( $ _ : <           ",
-"    ^ ~ ; ; > > ~ = , ' { { ) [ % ^ ( } | # @ 1 2 3 4           ",
-"    5 6 } - = * ' { 7 ) ] ] / 8 } $ # _ @ 9 0 a b c d           ",
-"    6 e f g h i 7 ) % 8 ( } | # j k i 9 1 l m n o p c           ",
-"    q , r 6 s p t u [ % # _ @ v r w x y z A B C ! t D           ",
-"      = & ] E + F G H g I @ v J K I + L B b M N : O P           ",
-"      ^ , ) ^ _ I Q R S T U e x 9 V t W X D o Y Z ` N  .        ",
-"      w ' [ / ( ..w +.@.#.$.%.&.N *.m =.f -.U ;.z >.,.'.        ",
-"      ).& % 8 } | j V !.# x + Z U &.2 @.q ~.{.@.].^.Z /.        ",
-"        7 ) } | # j u v # 9 (.y u e q h _._.:.>.<.[.}.S         ",
-"        |.) | # _ 1.K $ r J 1 K 2.).u _._.3.l 3.z 4.5.6.        ",
-"        = [ .._ 7.. $ v J 1 K I V :.)._.8.9.h 6 z !.&.0.        ",
-"        $ [ | @ a.7...x (.K I 2.:.0 u 3.b.q O c.Y d.e.f.        ",
-"        8.) $ I I | x (.I y V :.8.b.!.c.g.N M h.                ",
-"        @.7 ..+ # i (.i.2.. b.j.}.Y p k.l.                      ",
-"          ( i.x r a.0 e m.g.n.0.                                ",
-"          ).u (.~.z {.a b                                       ",
-"          o.g.=.C                                               ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/evolution-notes.xpm storm_0.5.2/usr/local/share/storm/pixmaps/evolution-notes.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/evolution-notes.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/evolution-notes.xpm	Wed Dec 31 19:00:00 1969
@@ -1,357 +0,0 @@
-/* XPM */
-static char * evolution_notes_xpm[] = {
-"32 32 322 2",
-"  	c None",
-". 	c #F8D932",
-"+ 	c #FADD3C",
-"@ 	c #FADE44",
-"# 	c #FBE14D",
-"$ 	c #FBE255",
-"% 	c #F8E15A",
-"& 	c #F9DA2F",
-"* 	c #FADC36",
-"= 	c #FADD3E",
-"- 	c #E9CF41",
-"; 	c #FADF4D",
-"> 	c #EDD652",
-", 	c #FBE45E",
-"' 	c #FBE667",
-") 	c #FCE76F",
-"! 	c #FCE878",
-"~ 	c #FAE880",
-"{ 	c #FAE986",
-"] 	c #FAEA8D",
-"^ 	c #F5D62E",
-"/ 	c #F5D732",
-"( 	c #FADB34",
-"_ 	c #FADC3A",
-": 	c #FADE42",
-"< 	c #DEC540",
-"[ 	c #C6B240",
-"} 	c #E4CD50",
-"| 	c #C7B44D",
-"1 	c #E1CE5E",
-"2 	c #E6D369",
-"3 	c #F9E77D",
-"4 	c #FBEB8C",
-"5 	c #FCED93",
-"6 	c #FCED9B",
-"7 	c #FAEB9A",
-"8 	c #DECC82",
-"9 	c #F8D92F",
-"0 	c #F7D930",
-"a 	c #F8D933",
-"b 	c #DEC32F",
-"c 	c #DDC231",
-"d 	c #FBDD3C",
-"e 	c #FBDE43",
-"f 	c #CCB63D",
-"g 	c #9D8C32",
-"h 	c #ECD34E",
-"i 	c #9F8F38",
-"j 	c #B8A849",
-"k 	c #C5B557",
-"l 	c #CBBC66",
-"m 	c #D4C674",
-"n 	c #FBEC96",
-"o 	c #FCEE9F",
-"p 	c #E2CF81",
-"q 	c #AB8B43",
-"r 	c #7F5915",
-"s 	c #F9DA2E",
-"t 	c #FADB32",
-"u 	c #FADB37",
-"v 	c #DEC432",
-"w 	c #D5BB32",
-"x 	c #AB9629",
-"y 	c #A6922B",
-"z 	c #BBA635",
-"A 	c #C9B33F",
-"B 	c #AA983A",
-"C 	c #A7963B",
-"D 	c #DAC554",
-"E 	c #D1BF56",
-"F 	c #FAE772",
-"G 	c #FAE97E",
-"H 	c #F6E686",
-"I 	c #E9D781",
-"J 	c #BFA962",
-"K 	c #917633",
-"L 	c #583908",
-"M 	c #593A08",
-"N 	c #603E09",
-"O 	c #6C460A",
-"P 	c #85550C",
-"Q 	c #84560C",
-"R 	c #F7E160",
-"S 	c #FBDD3A",
-"T 	c #FBDD3D",
-"U 	c #C1AB30",
-"V 	c #968526",
-"W 	c #9B892A",
-"X 	c #BEA937",
-"Y 	c #F8DD50",
-"Z 	c #FAE057",
-"` 	c #EAD35B",
-" .	c #E4D15E",
-"..	c #F6E26C",
-"+.	c #F1DB66",
-"@.	c #B19232",
-"#.	c #A88D35",
-"$.	c #987E32",
-"%.	c #806523",
-"&.	c #4F3607",
-"*.	c #4B3206",
-"=.	c #4A3006",
-"-.	c #4F3407",
-";.	c #65410A",
-">.	c #7E520C",
-",.	c #A87D0E",
-"'.	c #F2E083",
-").	c #EBDA80",
-"!.	c #F2D94C",
-"~.	c #F6D83C",
-"{.	c #EDD03C",
-"].	c #EED344",
-"^.	c #FAE050",
-"/.	c #FAE25A",
-"(.	c #FAE365",
-"_.	c #FAE46C",
-":.	c #FAE675",
-"<.	c #F8E578",
-"[.	c #DAC45E",
-"}.	c #91751F",
-"|.	c #75580D",
-"1.	c #644A0B",
-"2.	c #4E3607",
-"3.	c #432C06",
-"4.	c #412B06",
-"5.	c #4B3106",
-"6.	c #523507",
-"7.	c #624009",
-"8.	c #7B570A",
-"9.	c #A7800D",
-"0.	c #B7900F",
-"a.	c #EEDE85",
-"b.	c #F1E082",
-"c.	c #E9D77A",
-"d.	c #E7D266",
-"e.	c #E5C027",
-"f.	c #E8C02B",
-"g.	c #E8C843",
-"h.	c #EBD158",
-"i.	c #E9D164",
-"j.	c #E7D168",
-"k.	c #DDC766",
-"l.	c #AA903C",
-"m.	c #7E6319",
-"n.	c #644A0A",
-"o.	c #573D08",
-"p.	c #493106",
-"q.	c #412A05",
-"r.	c #402A05",
-"s.	c #452D06",
-"t.	c #4C3107",
-"u.	c #5B3B08",
-"v.	c #624108",
-"w.	c #8E6A0B",
-"x.	c #A57D0C",
-"y.	c #A27C0C",
-"z.	c #9E780C",
-"A.	c #E4D482",
-"B.	c #F0DF82",
-"C.	c #F4E387",
-"D.	c #EEDC7D",
-"E.	c #E8D679",
-"F.	c #D8BA47",
-"G.	c #C39718",
-"H.	c #B08010",
-"I.	c #93660C",
-"J.	c #80590B",
-"K.	c #6E4B09",
-"L.	c #644408",
-"M.	c #583A08",
-"N.	c #513607",
-"O.	c #523607",
-"P.	c #503507",
-"Q.	c #4C3207",
-"R.	c #5E3D09",
-"S.	c #664409",
-"T.	c #8D660B",
-"U.	c #A07B0C",
-"V.	c #9E770B",
-"W.	c #98720B",
-"X.	c #936F0A",
-"Y.	c #AA840D",
-"Z.	c #F0DD80",
-"`.	c #F1DF81",
-" +	c #EEDC7F",
-".+	c #E7D67C",
-"++	c #D9C261",
-"@+	c #BF9322",
-"#+	c #AA7810",
-"$+	c #97680D",
-"%+	c #865B0B",
-"&+	c #7B520B",
-"*+	c #724B0A",
-"=+	c #6B460A",
-"-+	c #68440A",
-";+	c #71490A",
-">+	c #7D570B",
-",+	c #9D780D",
-"'+	c #A27B0C",
-")+	c #9B750B",
-"!+	c #8E6C09",
-"~+	c #A17D0C",
-"{+	c #97790C",
-"]+	c #E8D77E",
-"^+	c #EDDB7E",
-"/+	c #EFDC7F",
-"(+	c #F1E083",
-"_+	c #ECD97D",
-":+	c #ECDC82",
-"<+	c #C5A540",
-"[+	c #BE8D1A",
-"}+	c #B27D10",
-"|+	c #A8740F",
-"1+	c #9E6B0F",
-"2+	c #9B680F",
-"3+	c #98660E",
-"4+	c #9E790D",
-"5+	c #B48C0E",
-"6+	c #A1790C",
-"7+	c #9E780B",
-"8+	c #99740A",
-"9+	c #946F0A",
-"0+	c #9E790B",
-"a+	c #6B5608",
-"b+	c #0F0C01",
-"c+	c #E7D67F",
-"d+	c #EDD97C",
-"e+	c #EFDC80",
-"f+	c #F2E184",
-"g+	c #E8D579",
-"h+	c #E1CA68",
-"i+	c #C89B20",
-"j+	c #CF9815",
-"k+	c #C99214",
-"l+	c #C78F14",
-"m+	c #BD8613",
-"n+	c #AE800F",
-"o+	c #B48D0F",
-"p+	c #B0890D",
-"q+	c #A27B0B",
-"r+	c #9A750B",
-"s+	c #97720B",
-"t+	c #5F4C08",
-"u+	c #080600",
-"v+	c #D4C575",
-"w+	c #EBD97C",
-"x+	c #F0DE81",
-"y+	c #F3E185",
-"z+	c #EFDD80",
-"A+	c #EDDE85",
-"B+	c #D8BE56",
-"C+	c #D9AA23",
-"D+	c #D6A416",
-"E+	c #B7910F",
-"F+	c #B9920F",
-"G+	c #A47C0C",
-"H+	c #A17A0C",
-"I+	c #9E770C",
-"J+	c #96760C",
-"K+	c #2B2304",
-"L+	c #000000",
-"M+	c #CCBE74",
-"N+	c #E8D577",
-"O+	c #ECDA7D",
-"P+	c #F3E285",
-"Q+	c #F6E78B",
-"R+	c #F1E287",
-"S+	c #DDC557",
-"T+	c #C09910",
-"U+	c #AE880E",
-"V+	c #A57F0C",
-"W+	c #A8800D",
-"X+	c #A7820D",
-"Y+	c #A37C0C",
-"Z+	c #886B0B",
-"`+	c #2C2304",
-" @	c #B3A96B",
-".@	c #E5D47A",
-"+@	c #EBD97B",
-"@@	c #FAEB91",
-"#@	c #F6E68A",
-"$@	c #DEC45D",
-"%@	c #B1880E",
-"&@	c #B48D0E",
-"*@	c #AD850D",
-"=@	c #AD870D",
-"-@	c #A07B0D",
-";@	c #785E0A",
-">@	c #938B5A",
-",@	c #E7D67D",
-"'@	c #ECD87B",
-")@	c #F7E68A",
-"!@	c #DFC65C",
-"~@	c #B18A0E",
-"{@	c #B38B0E",
-"]@	c #BB940F",
-"^@	c #AA830D",
-"/@	c #A9840D",
-"(@	c #524107",
-"_@	c #0B0901",
-":@	c #D6C777",
-"<@	c #EDDA7E",
-"[@	c #EFDD81",
-"}@	c #E1C85E",
-"|@	c #BB920F",
-"1@	c #A67F0D",
-"2@	c #96750C",
-"3@	c #362B04",
-"4@	c #DBCD7F",
-"5@	c #DCC35A",
-"6@	c #B0880D",
-"7@	c #AF870D",
-"8@	c #8E6F0B",
-"9@	c #251D03",
-"0@	c #B1A669",
-"a@	c #D5BB56",
-"b@	c #B28B0E",
-"c@	c #695308",
-"d@	c #100D01",
-"e@	c #948236",
-"f@	c #6B5609",
-"g@	c #090701",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                          . + @ # $ %                           ",
-"                      & * = - ; > , ' ) ! ~ { ]                 ",
-"                ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8               ",
-"          9 0 a b c d e f g h i j k l m n o p q r               ",
-"    s t ( u v w x y z A B C D E F G H I J K L M N O P Q         ",
-"    R _ S T U V W X Y Z `  ...+.@.#.$.%.&.*.=.-.L ;.>.,.        ",
-"    '.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.3.5.6.7.8.9.0.        ",
-"    a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.        ",
-"    A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.6.R.S.T.U.V.W.X.Y.        ",
-"      Z.`.`. +.+++@+#+$+%+&+*+=+-+=+-+;+>+,+'+)+)+!+~+{+        ",
-"        ]+^+/+(+_+:+<+[+}+|+1+2+2+3+I.4+5+6+7+8+9+0+a+b+        ",
-"          c+d+e+f+ +g+h+i+j+k+l+m+n+o+p+7+q+r+s+9.t+u+          ",
-"            v+w+x+y+C.z+A+B+C+D+E+F+G+H+'+I+H+J+K+L+            ",
-"              M+N+O+P+Q+(+R+S+T+U+V+W+H+X+Y+Z+`+L+              ",
-"                 @.@+@x+@@#@$@%@&@*@Y.=@-@;@L+L+                ",
-"                  >@,@'@y+)@!@~@{@]@^@/@(@_@                    ",
-"                      :@<@[@}@|@o+1@2@3@L+                      ",
-"                        4@f+5@6@7@8@9@L+                        ",
-"                          0@a@b@c@d@                            ",
-"                            e@f@g@                              ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/evolution-tasks.xpm storm_0.5.2/usr/local/share/storm/pixmaps/evolution-tasks.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/evolution-tasks.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/evolution-tasks.xpm	Wed Dec 31 19:00:00 1969
@@ -1,382 +0,0 @@
-/* XPM */
-static char * evolution_tasks_xpm[] = {
-"32 32 347 2",
-"  	c None",
-". 	c #909090",
-"+ 	c #D0D0D0",
-"@ 	c #878787",
-"# 	c #3F3F3F",
-"$ 	c #494949",
-"% 	c #474645",
-"& 	c #D3D3D3",
-"* 	c #B0B0B0",
-"= 	c #595959",
-"- 	c #393939",
-"; 	c #726C68",
-"> 	c #766961",
-", 	c #78685F",
-"' 	c #6D5D52",
-") 	c #615850",
-"! 	c #AB9F95",
-"~ 	c #B6ADA6",
-"{ 	c #BDB4AE",
-"] 	c #BFB5AD",
-"^ 	c #B5A99E",
-"/ 	c #B4A79C",
-"( 	c #746E69",
-"_ 	c #ADADAD",
-": 	c #555555",
-"< 	c #363636",
-"[ 	c #A19085",
-"} 	c #AC9688",
-"| 	c #A89182",
-"1 	c #A78E7F",
-"2 	c #9A7F6E",
-"3 	c #D2C8BF",
-"4 	c #AD8F77",
-"5 	c #A88A71",
-"6 	c #A6886F",
-"7 	c #A1846B",
-"8 	c #665448",
-"9 	c #635C56",
-"0 	c #A9A9A9",
-"a 	c #808080",
-"b 	c #5C5C5C",
-"c 	c #3E3E3E",
-"d 	c #5B4A40",
-"e 	c #917B6D",
-"f 	c #BBA699",
-"g 	c #9C887B",
-"h 	c #866A59",
-"i 	c #57443A",
-"j 	c #CEC3BB",
-"k 	c #B59C87",
-"l 	c #A78970",
-"m 	c #E1D7CF",
-"n 	c #817870",
-"o 	c #7B7A79",
-"p 	c #D5D5D5",
-"q 	c #E3E3E3",
-"r 	c #9A9A9A",
-"s 	c #525252",
-"t 	c #242424",
-"u 	c #EEEEEE",
-"v 	c #A8A8A8",
-"w 	c #675145",
-"x 	c #675144",
-"y 	c #B9AEA4",
-"z 	c #B69D89",
-"A 	c #A5876E",
-"B 	c #F3F0ED",
-"C 	c #A0A0A0",
-"D 	c #606060",
-"E 	c #6D6D6D",
-"F 	c #6E6E6E",
-"G 	c #474747",
-"H 	c #3B3B3B",
-"I 	c #353535",
-"J 	c #444444",
-"K 	c #DBDBDB",
-"L 	c #CCCCCC",
-"M 	c #524238",
-"N 	c #765D4F",
-"O 	c #AEA197",
-"P 	c #BBA492",
-"Q 	c #A4856E",
-"R 	c #EBE4DE",
-"S 	c #F6F6F6",
-"T 	c #868686",
-"U 	c #777777",
-"V 	c #727272",
-"W 	c #696969",
-"X 	c #707070",
-"Y 	c #7C7C7C",
-"Z 	c #848484",
-"` 	c #B8B8B8",
-" .	c #F9F9F9",
-"..	c #F1F1F1",
-"+.	c #473C35",
-"@.	c #29201B",
-"#.	c #9F9289",
-"$.	c #BDA696",
-"%.	c #A3836C",
-"&.	c #E5DDD7",
-"*.	c #D2D2D2",
-"=.	c #A4A4A4",
-"-.	c #8D8D8D",
-";.	c #FFFFFF",
-">.	c #58514D",
-",.	c #6B5547",
-"'.	c #4C3B32",
-").	c #9E9187",
-"!.	c #C4AFA1",
-"~.	c #A1826C",
-"{.	c #D7CAC1",
-"].	c #F2F2F2",
-"^.	c #C6C6C6",
-"/.	c #D9D9D9",
-"(.	c #C2C2C2",
-"_.	c #B4ABAB",
-":.	c #C99B9B",
-"<.	c #CDCCCC",
-"[.	c #9B9B9B",
-"}.	c #75706E",
-"|.	c #5F4B3F",
-"1.	c #5B473C",
-"2.	c #887E76",
-"3.	c #C7B5A8",
-"4.	c #A1836D",
-"5.	c #D2C3B9",
-"6.	c #BBBBBB",
-"7.	c #D6D6D6",
-"8.	c #CBCBCB",
-"9.	c #B2A3A3",
-"0.	c #B75151",
-"a.	c #D59999",
-"b.	c #AAA8A7",
-"c.	c #5B483E",
-"d.	c #6C5447",
-"e.	c #857C74",
-"f.	c #CBBAAE",
-"g.	c #A58873",
-"h.	c #C3AFA2",
-"i.	c #B7B7B7",
-"j.	c #C9C9C9",
-"k.	c #979797",
-"l.	c #F7F5F5",
-"m.	c #C57070",
-"n.	c #AD3F3F",
-"o.	c #BFACAC",
-"p.	c #969696",
-"q.	c #C3C2C2",
-"r.	c #5A4C44",
-"s.	c #755C4E",
-"t.	c #2E241E",
-"u.	c #CDBCB1",
-"v.	c #A78A77",
-"w.	c #B89E90",
-"x.	c #C29291",
-"y.	c #CCB7B7",
-"z.	c #B9B9B9",
-"A.	c #C38080",
-"B.	c #AC3131",
-"C.	c #F2DEDE",
-"D.	c #E8E8E8",
-"E.	c #68605C",
-"F.	c #725A4C",
-"G.	c #40322A",
-"H.	c #CEBFB5",
-"I.	c #AA8F7E",
-"J.	c #AE9081",
-"K.	c #B55250",
-"L.	c #9F4343",
-"M.	c #7F7D7D",
-"N.	c #A62828",
-"O.	c #D8A0A0",
-"P.	c #FEFEFE",
-"Q.	c #7D7B7A",
-"R.	c #6F574A",
-"S.	c #5D493D",
-"T.	c #CDBEB4",
-"U.	c #AA9080",
-"V.	c #AF9686",
-"W.	c #E5CDCB",
-"X.	c #9E1C1C",
-"Y.	c #A83434",
-"Z.	c #AF4B4B",
-"`.	c #D4CCCC",
-" +	c #C7C7C7",
-".+	c #C8C8C8",
-"++	c #FBFBFB",
-"@+	c #BDBDBD",
-"#+	c #56433A",
-"$+	c #745A4D",
-"%+	c #090706",
-"&+	c #CEBFB6",
-"*+	c #AD9484",
-"=+	c #A68B7A",
-"-+	c #EAE4E0",
-";+	c #A76767",
-">+	c #9E1010",
-",+	c #A98B8B",
-"'+	c #D3D2D2",
-")+	c #C0C0C0",
-"!+	c #524641",
-"~+	c #755B4E",
-"{+	c #201815",
-"]+	c #A89D94",
-"^+	c #B09989",
-"/+	c #A08371",
-"(+	c #E5DDD8",
-"_+	c #B6B5B5",
-":+	c #AB9696",
-"<+	c #9C9C9C",
-"[+	c #F7F7F7",
-"}+	c #D4D4D4",
-"|+	c #E1E1E1",
-"1+	c #ABABAB",
-"2+	c #D8D8D8",
-"3+	c #9F9A98",
-"4+	c #634D43",
-"5+	c #43342D",
-"6+	c #A2958C",
-"7+	c #B8A396",
-"8+	c #967765",
-"9+	c #DDD3CD",
-"0+	c #E7E7E7",
-"a+	c #CFCFCF",
-"b+	c #F3F3F3",
-"c+	c #FCFCFC",
-"d+	c #FDFDFD",
-"e+	c #D8D7D7",
-"f+	c #685A54",
-"g+	c #4F3C34",
-"h+	c #7E736C",
-"i+	c #B7A296",
-"j+	c #937462",
-"k+	c #CDBFB7",
-"l+	c #DFDFDF",
-"m+	c #C5C5C5",
-"n+	c #DEDEDE",
-"o+	c #E6E6E6",
-"p+	c #6C6968",
-"q+	c #4B3A32",
-"r+	c #17120F",
-"s+	c #70655E",
-"t+	c #BAA79B",
-"u+	c #917260",
-"v+	c #C2B0A7",
-"w+	c #EBEBEB",
-"x+	c #D7D7D7",
-"y+	c #DADADA",
-"z+	c #898989",
-"A+	c #757575",
-"B+	c #5F5F5F",
-"C+	c #3B3735",
-"D+	c #2F2825",
-"E+	c #4D3B33",
-"F+	c #241B18",
-"G+	c #594F49",
-"H+	c #BAA69B",
-"I+	c #8D6E5D",
-"J+	c #967E71",
-"K+	c #C1C1C1",
-"L+	c #9A9998",
-"M+	c #595654",
-"N+	c #464240",
-"O+	c #282421",
-"P+	c #241E1C",
-"Q+	c #261F1B",
-"R+	c #271E1B",
-"S+	c #2D231E",
-"T+	c #392C26",
-"U+	c #46352E",
-"V+	c #503D35",
-"W+	c #58433A",
-"X+	c #664D43",
-"Y+	c #392B26",
-"Z+	c #554B45",
-"`+	c #B5A398",
-" @	c #8B6D5C",
-".@	c #7F6456",
-"+@	c #6C5C53",
-"@@	c #5D4D44",
-"#@	c #56453C",
-"$@	c #58463C",
-"%@	c #58453B",
-"&@	c #554339",
-"*@	c #58443A",
-"=@	c #574439",
-"-@	c #554239",
-";@	c #564239",
-">@	c #59443A",
-",@	c #5E483E",
-"'@	c #654D42",
-")@	c #695046",
-"!@	c #70554A",
-"~@	c #A49288",
-"{@	c #907464",
-"]@	c #886B5B",
-"^@	c #7F6454",
-"/@	c #795E50",
-"(@	c #775C4E",
-"_@	c #74594D",
-":@	c #72584B",
-"<@	c #70564A",
-"[@	c #6F5549",
-"}@	c #6E5448",
-"|@	c #6B5145",
-"1@	c #664D42",
-"2@	c #604940",
-"3@	c #5B443C",
-"4@	c #513C35",
-"5@	c #98867C",
-"6@	c #95786A",
-"7@	c #8B6C5C",
-"8@	c #896B5B",
-"9@	c #866858",
-"0@	c #826556",
-"a@	c #7D6254",
-"b@	c #7A5E51",
-"c@	c #785C50",
-"d@	c #604A3F",
-"e@	c #513E35",
-"f@	c #49382F",
-"g@	c #362923",
-"h@	c #31241F",
-"i@	c #261D18",
-"j@	c #1F1714",
-"k@	c #130D0B",
-"l@	c #090606",
-"m@	c #7D695E",
-"n@	c #856B5E",
-"o@	c #775D4F",
-"p@	c #6C5448",
-"q@	c #624D42",
-"r@	c #4E3C34",
-"s@	c #41322B",
-"t@	c #2D221E",
-"u@	c #1B1511",
-"v@	c #130E0C",
-"w@	c #0B0807",
-"x@	c #050302",
-"y@	c #020100",
-"z@	c #000000",
-"A@	c #4A3C35",
-"B@	c #41342E",
-"C@	c #191410",
-"D@	c #0A0706",
-"E@	c #060504",
-"F@	c #020201",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                      . + @ # $                                 ",
-"                      % & * = - ;   > , '                       ",
-"        ) ! ~ { ] ^ / ( & _ : < [ } | 1 2                       ",
-"          3 4 5 6 7 8 9 0 a b c d e f g h i                     ",
-"          j k l m n o p q p r s t % u v w x                     ",
-"          y z A B C c D E F G H I J K L M N                     ",
-"          O P Q R S T U V W X Y Z `  ...+.N @.                  ",
-"          #.$.%.&.*.=.-.;.;.;.;.;.;.;.;.>.,.'.                  ",
-"          ).!.~.{.L ].^./.(._.:.<.[.;.;.}.|.1.                  ",
-"          2.3.4.5.6.7.C 8.9.0.a.]. .;.;.b.c.d.                  ",
-"          e.f.g.h.i.j.k.l.m.n.o.p.` ;.;.q.r.s.t.                ",
-"            u.v.w.x.y.z.A.B.C.;.;.;.;.;.D.E.F.G.                ",
-"            H.I.J.K.L.M.N.O.;.;.;.P.;.;.;.Q.R.S.                ",
-"            T.U.V.W.X.Y.Z.`.& q  +` .+++;.@+#+$+%+              ",
-"            &+*+=+-+;+>+,+'+)+/. .;.;.;.;.S !+~+{+              ",
-"            ]+^+/+(+_+:+<+[+}+6.].|+1+2+;.;.3+4+5+              ",
-"            6+7+8+9+K 0+` 0+q a+b+P.c+d+;.;.e+f+g+              ",
-"            h+i+j+k+l+8.m+n+;.;.;.;.;.;.;.o++ p+q+r+            ",
-"            s+t+u+v+w+x+y+b+;.;.D.` z+A+B+G C+D+E+F+            ",
-"            G+H+I+J+K+L+Q.M+N+O+P+Q+R+S+T+U+V+W+X+Y+            ",
-"            Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@;@            ",
-"              ~@{@]@^@/@/@/@(@$+_@:@<@[@}@|@1@2@3@4@            ",
-"              5@6@7@8@9@0@a@b@c@[@d@e@f@g@h@i@j@k@l@            ",
-"              m@n@o@p@q@r@s@t@u@v@w@x@y@z@z@z@                  ",
-"              A@B@S+C@  D@E@F@                                  ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/evolution-today.xpm storm_0.5.2/usr/local/share/storm/pixmaps/evolution-today.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/evolution-today.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/evolution-today.xpm	Wed Dec 31 19:00:00 1969
@@ -1,335 +0,0 @@
-/* XPM */
-static char * evolution_today_xpm[] = {
-"32 32 300 2",
-"  	c None",
-". 	c #7A7A7A",
-"+ 	c #626262",
-"@ 	c #E8E4DE",
-"# 	c #D2CEC7",
-"$ 	c #BCB8B1",
-"% 	c #B6B2AB",
-"& 	c #BEBAB2",
-"* 	c #DAD4CB",
-"= 	c #E8E2D5",
-"- 	c #5D5D5D",
-"; 	c #DFDBD6",
-"> 	c #B0ADA8",
-", 	c #C7C3BE",
-"' 	c #E5E2DB",
-") 	c #EDE9E1",
-"! 	c #84817C",
-"~ 	c #E3DED5",
-"{ 	c #EBE5D9",
-"] 	c #E1DBCE",
-"^ 	c #B2ACA2",
-"/ 	c #585858",
-"( 	c #D6D4CE",
-"_ 	c #B7B4AE",
-": 	c #E6E3DD",
-"< 	c #FBF9F4",
-"[ 	c #FFFCF7",
-"} 	c #D6D3CE",
-"| 	c #393735",
-"1 	c #E2DDD5",
-"2 	c #FFF9EE",
-"3 	c #FAF4E7",
-"4 	c #D8D1C4",
-"5 	c #989389",
-"6 	c #E6CC80",
-"7 	c #5C5B59",
-"8 	c #E8E6E0",
-"9 	c #DDDAD5",
-"0 	c #FDFBF7",
-"a 	c #FFFDFA",
-"b 	c #FFFDF9",
-"c 	c #C2C0BC",
-"d 	c #3E3C3B",
-"e 	c #E7E3DC",
-"f 	c #FFFAEF",
-"g 	c #FFF9ED",
-"h 	c #F8F1E4",
-"i 	c #C0B9AD",
-"j 	c #EEDEA9",
-"k 	c #E8C963",
-"l 	c #B39C62",
-"m 	c #616161",
-"n 	c #E7C65C",
-"o 	c #CCB05F",
-"p 	c #D6BA6F",
-"q 	c #ECCE7A",
-"r 	c #BEBBB7",
-"s 	c #D4D1CD",
-"t 	c #FFFDFB",
-"u 	c #FFFEFD",
-"v 	c #FFFEFC",
-"w 	c #C5C3C0",
-"x 	c #494846",
-"y 	c #F3EFE8",
-"z 	c #FFFAF0",
-"A 	c #FFF9EA",
-"B 	c #F2E9D6",
-"C 	c #AEA693",
-"D 	c #E4D5A7",
-"E 	c #DDBC51",
-"F 	c #907327",
-"G 	c #AF965A",
-"H 	c #6A6558",
-"I 	c #9E8841",
-"J 	c #766739",
-"K 	c #E3CC84",
-"L 	c #BEA462",
-"M 	c #DBD8D3",
-"N 	c #B2AEA8",
-"O 	c #EFECE6",
-"P 	c #FFFDF8",
-"Q 	c #C9C7C4",
-"R 	c #4B4948",
-"S 	c #F5F1EA",
-"T 	c #F4EBD9",
-"U 	c #AAA082",
-"V 	c #E2D2A1",
-"W 	c #D8BD71",
-"X 	c #BA9839",
-"Y 	c #D1AB48",
-"Z 	c #8E7738",
-"` 	c #705F31",
-" .	c #D1BB72",
-"..	c #B5A262",
-"+.	c #D5D2CC",
-"@.	c #ADAAA4",
-"#.	c #F4F0EA",
-"$.	c #CBC9C4",
-"%.	c #989694",
-"&.	c #989695",
-"*.	c #ADACA9",
-"=.	c #868481",
-"-.	c #565452",
-";.	c #FFFBF2",
-">.	c #FFF8EA",
-",.	c #FFF8EC",
-"'.	c #B8B3A8",
-").	c #474235",
-"!.	c #B6AB87",
-"~.	c #DACDAA",
-"{.	c #D5B55E",
-"].	c #C09E41",
-"^.	c #D4B55A",
-"/.	c #BFA75E",
-"(.	c #D4D1CA",
-"_.	c #ACA9A2",
-":.	c #F1EDE5",
-"<.	c #908E89",
-"[.	c #1E1E1D",
-"}.	c #121111",
-"|.	c #262524",
-"1.	c #434140",
-"2.	c #9F9C97",
-"3.	c #FFFAF1",
-"4.	c #FFF9EC",
-"5.	c #FFF8EE",
-"6.	c #B7B2A9",
-"7.	c #A9975E",
-"8.	c #D3B45A",
-"9.	c #BA9C42",
-"0.	c #CDC9C2",
-"a.	c #AFAAA3",
-"b.	c #F4F0E6",
-"c.	c #FFFBF4",
-"d.	c #FFFBF3",
-"e.	c #FFF9F0",
-"f.	c #817D75",
-"g.	c #F1E5BA",
-"h.	c #F4E8C1",
-"i.	c #D3CAA9",
-"j.	c #585142",
-"k.	c #B7A05D",
-"l.	c #EED885",
-"m.	c #B8B4AB",
-"n.	c #EAE5DB",
-"o.	c #FFFAF2",
-"p.	c #FFF9EB",
-"q.	c #FFF8E9",
-"r.	c #F2EDE4",
-"s.	c #5A5649",
-"t.	c #B2AA89",
-"u.	c #E3DBBC",
-"v.	c #DFD4A8",
-"w.	c #D8CEAB",
-"x.	c #484848",
-"y.	c #EDDA90",
-"z.	c #D4C078",
-"A.	c #E1CB79",
-"B.	c #D9C16E",
-"C.	c #BDB8AE",
-"D.	c #C8C3B8",
-"E.	c #F7F1E5",
-"F.	c #FFFAEE",
-"G.	c #FFF7EA",
-"H.	c #F7F2E9",
-"I.	c #9C9790",
-"J.	c #7B745B",
-"K.	c #EBE2C1",
-"L.	c #908564",
-"M.	c #C8B988",
-"N.	c #D7CA9A",
-"O.	c #67614D",
-"P.	c #D8C173",
-"Q.	c #8B7A45",
-"R.	c #D5BC63",
-"S.	c #97833F",
-"T.	c #B9B4A8",
-"U.	c #D8D1C5",
-"V.	c #FDF7EA",
-"W.	c #FFF8EB",
-"X.	c #BBB6AE",
-"Y.	c #46433E",
-"Z.	c #CFC499",
-"`.	c #E4D9AC",
-" +	c #817757",
-".+	c #D9C88B",
-"++	c #B6A56B",
-"@+	c #D5BD6D",
-"#+	c #766839",
-"$+	c #756534",
-"%+	c #C2AA56",
-"&+	c #836C29",
-"*+	c #727068",
-"=+	c #9A968B",
-"-+	c #D4CEC1",
-";+	c #F7F0E1",
-">+	c #FFF8ED",
-",+	c #EBE5DC",
-"'+	c #AEAAA2",
-")+	c #33322D",
-"!+	c #625A3A",
-"~+	c #E6DBBB",
-"{+	c #D8CD9F",
-"]+	c #C5B381",
-"^+	c #E7D595",
-"/+	c #AA9965",
-"(+	c #D9C375",
-"_+	c #726434",
-":+	c #9B8843",
-"<+	c #A48D42",
-"[+	c #78746C",
-"}+	c #A09B90",
-"|+	c #D2CDBF",
-"1+	c #F3EDE1",
-"2+	c #E2DDD3",
-"3+	c #737069",
-"4+	c #32302C",
-"5+	c #998956",
-"6+	c #B1A063",
-"7+	c #BAA457",
-"8+	c #AF9647",
-"9+	c #8D7735",
-"0+	c #141312",
-"a+	c #32312D",
-"b+	c #3C3A36",
-"c+	c #1A1917",
-"d+	c #010101",
-"e+	c #444444",
-"f+	c #62511C",
-"g+	c #918D88",
-"h+	c #4B4B4B",
-"i+	c #5E5239",
-"j+	c #968B80",
-"k+	c #C2BBB3",
-"l+	c #C1BBB4",
-"m+	c #B4ADA6",
-"n+	c #9B9590",
-"o+	c #3D3D3D",
-"p+	c #524D48",
-"q+	c #4D4844",
-"r+	c #5A534D",
-"s+	c #6F655C",
-"t+	c #6F5F50",
-"u+	c #B29B88",
-"v+	c #E2DEDA",
-"w+	c #D4CFCA",
-"x+	c #C5BFB9",
-"y+	c #C3BBB5",
-"z+	c #AFAAA4",
-"A+	c #585655",
-"B+	c #67605B",
-"C+	c #6B635D",
-"D+	c #786D63",
-"E+	c #7E7266",
-"F+	c #807163",
-"G+	c #4C3E31",
-"H+	c #6D4F3A",
-"I+	c #81604B",
-"J+	c #D4C9BC",
-"K+	c #D2C4B8",
-"L+	c #C6B8AE",
-"M+	c #CFC4BA",
-"N+	c #C7BEB6",
-"O+	c #BBB2A9",
-"P+	c #AB9F93",
-"Q+	c #978677",
-"R+	c #766759",
-"S+	c #625447",
-"T+	c #31271F",
-"U+	c #0C0806",
-"V+	c #0D0906",
-"W+	c #442F20",
-"X+	c #927864",
-"Y+	c #A18973",
-"Z+	c #9B8169",
-"`+	c #594131",
-" @	c #6F5C4C",
-".@	c #6C5B50",
-"+@	c #5F5045",
-"@@	c #524339",
-"#@	c #433429",
-"$@	c #291E16",
-"%@	c #150E0B",
-"&@	c #100B08",
-"*@	c #34251A",
-"=@	c #614C3B",
-"-@	c #201610",
-";@	c #1C130D",
-">@	c #1A120D",
-",@	c #18110C",
-"'@	c #140D0A",
-")@	c #0F0A07",
-"!@	c #0B0805",
-"~@	c #0E0A07",
-"{@	c #221A15",
-"]@	c #0A0705",
-"^@	c #0C0906",
-"/@	c #070503",
-"(@	c #050403",
-"_@	c #050302",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                          .                     ",
-"                                          +                     ",
-"            @ # $ % & * =                 -                     ",
-"          ; > , ' ) ! ~ { ] ^             /                     ",
-"        ( _ : < [ } | 1 2 3 4 5         6 7                     ",
-"      8 > 9 0 a b c d e f g h i     j k l m n o p q             ",
-"      r s < t u v w x y z 2 A B C D E F G H I J K L             ",
-"    M N O P t u v Q R S z 2 A T U V W X Y Z `  ...              ",
-"    +.@.#.$.%.&.*.=.-.;.f g >.,.'.).!.~.{.].^./.                ",
-"    (._.:.<.[.}.|.1.2.3.f 4.>.5.6.      7.8.9.                  ",
-"    0.a.b.;.c.c.c.d.3.f g >.>.e.f.  g.h.i.j.k.l.                ",
-"      m.n.z 3.o.3.z f 2 p.q.,.r.s.t.u.v.w.x.y.z.A.B.            ",
-"      C.D.E.F.F.F.g 4.p.q.G.H.I.J.K.L.M.N.O.P.Q.R.S.            ",
-"        T.U.V.4.4.W.>.q.>.2 X.Y.Z.`. +.+++@+#+$+%+&+            ",
-"        *+=+-+;+q.>.W.>+,+'+)+!+~+{+]+^+/+(+_+:+<+              ",
-"            [+}+|+1+2+m.3+4+            5+6+7+8+9+              ",
-"              0+a+b+4+c+d+                e+    f+              ",
-"                                        g+h+    i+              ",
-"                                j+k+l+m+n+o+p+q+r+s+t+          ",
-"                              u+v+w+x+y+z+A+B+C+D+E+F+G+        ",
-"                            H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+      ",
-"                            W+X+Y+Z+`+ @.@+@@@#@$@%@U+V+&@      ",
-"                                *@=@-@;@>@,@'@)@!@V+~@V+        ",
-"                                  {@]@^@V+V+!@]@/@(@_@          ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/inews.xpm storm_0.5.2/usr/local/share/storm/pixmaps/inews.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/inews.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/inews.xpm	Wed Dec 31 19:00:00 1969
@@ -1,218 +0,0 @@
-/* XPM */
-static char * inews_xpm[] = {
-"32 32 183 2",
-"  	c None",
-". 	c #D8D8D8",
-"+ 	c #E5E5E5",
-"@ 	c #EDEDED",
-"# 	c #E7E7E7",
-"$ 	c #DEDEDE",
-"% 	c #AFAFAF",
-"& 	c #BDBDBD",
-"* 	c #CACACA",
-"= 	c #D4D4D4",
-"- 	c #E0E0E0",
-"; 	c #E8E8E8",
-"> 	c #E6E6E6",
-", 	c #E4E4E4",
-"' 	c #EBEBEB",
-") 	c #919191",
-"! 	c #969696",
-"~ 	c #A2A2A2",
-"{ 	c #ACACAC",
-"] 	c #B6B6B6",
-"^ 	c #C2C2C2",
-"/ 	c #ADADAD",
-"( 	c #727272",
-"_ 	c #C6C6C6",
-": 	c #D2D2D2",
-"< 	c #DDDDDD",
-"[ 	c #EEEEEE",
-"} 	c #F3F3F3",
-"| 	c #F5F5F5",
-"1 	c #F7F7F7",
-"2 	c #828282",
-"3 	c #898989",
-"4 	c #787878",
-"5 	c #777777",
-"6 	c #999999",
-"7 	c #AEAEAE",
-"8 	c #585858",
-"9 	c #545454",
-"0 	c #B4B4B4",
-"a 	c #E1E1E1",
-"b 	c #C3C3C3",
-"c 	c #979797",
-"d 	c #A6A6A6",
-"e 	c #FBFBFB",
-"f 	c #FCFCFC",
-"g 	c #797979",
-"h 	c #7C7C7C",
-"i 	c #474747",
-"j 	c #2C2C2C",
-"k 	c #303030",
-"l 	c #858585",
-"m 	c #939393",
-"n 	c #A9A9A9",
-"o 	c #505050",
-"p 	c #9F9F9F",
-"q 	c #494949",
-"r 	c #B7B7B7",
-"s 	c #9A9A9A",
-"t 	c #8A8A8A",
-"u 	c #B3B3B3",
-"v 	c #BCBCBC",
-"w 	c #757575",
-"x 	c #595959",
-"y 	c #5B5B5B",
-"z 	c #202020",
-"A 	c #5D5D5D",
-"B 	c #4C4C4C",
-"C 	c #606060",
-"D 	c #282828",
-"E 	c #747474",
-"F 	c #4F4F4F",
-"G 	c #696969",
-"H 	c #535353",
-"I 	c #9D9D9D",
-"J 	c #B0B0B0",
-"K 	c #D3D3D3",
-"L 	c #A4A4A4",
-"M 	c #CCCCCC",
-"N 	c #C1C1C1",
-"O 	c #3E3E3E",
-"P 	c #646464",
-"Q 	c #4D4D4D",
-"R 	c #191919",
-"S 	c #6D6D6D",
-"T 	c #363636",
-"U 	c #565656",
-"V 	c #3C3C3C",
-"W 	c #6C6C6C",
-"X 	c #A0A0A0",
-"Y 	c #BEBEBE",
-"Z 	c #CFCFCF",
-"` 	c #F1F1F1",
-" .	c #959595",
-"..	c #E2E2E2",
-"+.	c #ABABAB",
-"@.	c #D9D9D9",
-"#.	c #DCDCDC",
-"$.	c #171717",
-"%.	c #343434",
-"&.	c #292929",
-"*.	c #3A3A3A",
-"=.	c #5C5C5C",
-"-.	c #949494",
-";.	c #8B8B8B",
-">.	c #636363",
-",.	c #838383",
-"'.	c #F0F0F0",
-").	c #CBCBCB",
-"!.	c #C9C9C9",
-"~.	c #A5A5A5",
-"{.	c #414141",
-"].	c #393939",
-"^.	c #242424",
-"/.	c #424242",
-"(.	c #1A1A1A",
-"_.	c #444444",
-":.	c #767676",
-"<.	c #808080",
-"[.	c #717171",
-"}.	c #818181",
-"|.	c #F4F4F4",
-"1.	c #F6F6F6",
-"2.	c #DADADA",
-"3.	c #FAFAFA",
-"4.	c #C4C4C4",
-"5.	c #E3E3E3",
-"6.	c #515151",
-"7.	c #555555",
-"8.	c #5A5A5A",
-"9.	c #616161",
-"0.	c #6B6B6B",
-"a.	c #6E6E6E",
-"b.	c #F8F8F8",
-"c.	c #404040",
-"d.	c #575757",
-"e.	c #686868",
-"f.	c #7A7A7A",
-"g.	c #CECECE",
-"h.	c #FFFFFF",
-"i.	c #676767",
-"j.	c #4B4B4B",
-"k.	c #434343",
-"l.	c #848484",
-"m.	c #A3A3A3",
-"n.	c #ECECEC",
-"o.	c #D7D7D7",
-"p.	c #6A6A6A",
-"q.	c #3B3B3B",
-"r.	c #464646",
-"s.	c #737373",
-"t.	c #989898",
-"u.	c #9C9C9C",
-"v.	c #B2B2B2",
-"w.	c #C5C5C5",
-"x.	c #5E5E5E",
-"y.	c #5F5F5F",
-"z.	c #9E9E9E",
-"A.	c #E9E9E9",
-"B.	c #6F6F6F",
-"C.	c #4A4A4A",
-"D.	c #666666",
-"E.	c #A1A1A1",
-"F.	c #B9B9B9",
-"G.	c #BFBFBF",
-"H.	c #A8A8A8",
-"I.	c #D0D0D0",
-"J.	c #C7C7C7",
-"K.	c #454545",
-"L.	c #484848",
-"M.	c #525252",
-"N.	c #7B7B7B",
-"O.	c #8C8C8C",
-"P.	c #DFDFDF",
-"Q.	c #909090",
-"R.	c #8E8E8E",
-"S.	c #000000",
-"T.	c #131313",
-"U.	c #4E4E4E",
-"V.	c #181818",
-"W.	c #040404",
-"X.	c #333333",
-"Y.	c #0C0C0C",
-"Z.	c #010101",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                  . + @         ",
-"      # $                                   % & * = - ;         ",
-"      > , > # '                       ) ! ~ { ] ^ / ( _         ",
-"      + > : < [ } | 1             2 3 4 5 6 ~ 7 8 9 0 a         ",
-"        , b c d } ; } e f     g h h i j k l m n o p q r         ",
-"        . s t u } u ~ n # v w ( x y z A B C D E F G H I         ",
-"        ; 0 J 7 K L @ ~ M N O P B Q R F S T U V W X Y Z         ",
-"        ` $  .% ..+.~ y @.#.R $.%.i &.*.=.y -.;.d s >.,.        ",
-"        '.).L !.a ' 7 ~.Z #.{.].^./.(._.:.<.) [.}.5 4           ",
-"        |.1.2.@.3.e a 4.'.5.6.i 7.9 8.9.C 7.0.a.h g w           ",
-"        1.b.% : e f a : > e >.x Q c.F 7.d.e.f.W :.Q s           ",
-"          # N ~.+.: g...- h.i.j.k.6.q 6.x C l.( m.L J           ",
-"          n.Y @.+ o.& #.` h.p.U q.q.r.F i.s.,.S t.u.v.          ",
-"          ; - w., a b N , h.p.7.9 o q F x.y C y.z.X ~           ",
-"          A.K . | g.d : ; h.B.o ].O C.F =.>.E D.z.E.F.          ",
-"          h.h.f f 5.G.z.; , B.C =.6.B o j.Q f.p.H.] b           ",
-"          h.h.h.f I.J.#.@ $ E 9 K.L.F M.S N.O.l z.m b           ",
-"              I.@ h., N h.P.4 0.e.P y d.9.G 0.[.Q.J * R.        ",
-"                U ;.'.3.h.a }.:.9.o F x p.4 w B.8 >.D.          ",
-"                  S.T.l.$ 5.2 W Q U.{.V.W.S.S.S.S.S.            ",
-"                    S.S.X.) d.%.Y.Z.S.S.S.S.S.S.S.              ",
-"                        S.S.S.S.S.S.S.S.S.S.                    ",
-"                        S.S.S.S.S.S.                            ",
-"                                                                ",
-"                                                                ",
-"                                                                ",
-"                                                                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/new.xpm storm_0.5.2/usr/local/share/storm/pixmaps/new.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/new.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/new.xpm	Wed Dec 31 19:00:00 1969
@@ -1,38 +0,0 @@
-/* XPM */
-static char * new_message_xpm[] = {
-"16 16 19 1",
-" 	c None",
-".	c #000000",
-"+	c #FDFDFD",
-"@	c #E2E2E2",
-"#	c #FEFEFE",
-"$	c #FCFCFC",
-"%	c #FBFBFB",
-"&	c #FFFFFF",
-"*	c #E4E4E4",
-"=	c #E0E0E0",
-"-	c #FAFAFA",
-";	c #F9F9F9",
-">	c #F8F8F8",
-",	c #F7F7F7",
-"'	c #F5F5F5",
-")	c #F4F4F4",
-"!	c #DFDFDF",
-"~	c #E8E8E8",
-"{	c #DDDDDD",
-"                ",
-"        ..      ",
-"      ..+@.     ",
-"    ..#+$%.     ",
-"  ..&####%*.    ",
-" .&####==-;.    ",
-" .###==###>*.   ",
-"  .+####==,'.   ",
-"  .$%#==###'*.  ",
-"   .--###==').  ",
-"   .-;#==####*. ",
-"    .>######!!. ",
-"    .,####!!..  ",
-"     .##=!..    ",
-"     .~{..      ",
-"      ..        "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/read.xpm storm_0.5.2/usr/local/share/storm/pixmaps/read.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/read.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/read.xpm	Wed Dec 31 19:00:00 1969
@@ -1,67 +0,0 @@
-/* XPM */
-static char * read_xpm[] = {
-"13 13 51 1",
-" 	c None",
-".	c #010101",
-"+	c #D9D6D0",
-"@	c #C3C0B9",
-"#	c #EFEDE8",
-"$	c #F7F7F6",
-"%	c #FAFAFA",
-"&	c #B6B4AE",
-"*	c #737373",
-"=	c #C2BFB8",
-"-	c #F5F4F2",
-";	c #FAFAF9",
-">	c #FFFFFF",
-",	c #D2CFC9",
-"'	c #707070",
-")	c #5D5B57",
-"!	c #868580",
-"~	c #E5E2DB",
-"{	c #FBFBF8",
-"]	c #716E6B",
-"^	c #62605C",
-"/	c #F8F7F2",
-"(	c #DDDAD4",
-"_	c #929191",
-":	c #969390",
-"<	c #92908A",
-"[	c #A1A0A0",
-"}	c #F7F5F1",
-"|	c #FBFAF7",
-"1	c #A5A29D",
-"2	c #908D87",
-"3	c #F9F7F3",
-"4	c #F0EEE8",
-"5	c #DDD9D2",
-"6	c #797873",
-"7	c #F9F8F4",
-"8	c #74726E",
-"9	c #E3E0D9",
-"0	c #7D7A77",
-"a	c #FAF9F6",
-"b	c #F8F6F2",
-"c	c #FAF8F5",
-"d	c #F7F5F2",
-"e	c #E2DFD8",
-"f	c #090808",
-"g	c #D7D4CE",
-"h	c #D8D5CF",
-"i	c #D6D3CD",
-"j	c #DAD7D1",
-"k	c #E0DCD5",
-"l	c #222221",
-"    .....    ",
-"   .+++++.   ",
-"  .++++++@.  ",
-" .+++++#$%&. ",
-".*==-;>>>>,'.",
-".>)>>>>>>>!~.",
-".>{]>>>>>^/(.",
-".>{{_::<[{}(.",
-".>{|1{{{2345.",
-".>|6{{{77895.",
-".>0{}abcd~8e.",
-".fghhhi++jkl.",
-" ........... "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/reply.xpm storm_0.5.2/usr/local/share/storm/pixmaps/reply.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/reply.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/reply.xpm	Wed Dec 31 19:00:00 1969
@@ -1,46 +0,0 @@
-/* XPM */
-static char * 16_reply_xpm[] = {
-"16 16 27 1",
-" 	c None",
-".	c #010101",
-"+	c #2F2F2F",
-"@	c #A7A4A0",
-"#	c #FCFCFC",
-"$	c #64625F",
-"%	c #FFFFFF",
-"&	c #5D5B57",
-"*	c #868580",
-"=	c #E5E2DB",
-"-	c #FBFBF8",
-";	c #716E6B",
-">	c #000000",
-",	c #FBFAF7",
-"'	c #A5A29D",
-")	c #990000",
-"!	c #EFEFEF",
-"~	c #CCCCCC",
-"{	c #797873",
-"]	c #7D7A77",
-"^	c #F7F5F1",
-"/	c #090808",
-"(	c #D7D4CE",
-"_	c #D8D5CF",
-":	c #7F0000",
-"<	c #181818",
-"[	c #090909",
-"                ",
-"                ",
-"                ",
-"  .+.........   ",
-" .@#########$.  ",
-" .%&%%%%%%%*=.  ",
-" .%-;%>>>>>>>>> ",
-" .%--;>%%%%%%%> ",
-" .%-,'>%))))!~> ",
-" .%,{->%)))!!~> ",
-" .%]-^>%))))!~> ",
-" ./(__>%)!)):~> ",
-"  ....>%!!!::~> ",
-"      >%~~~~~~< ",
-"      >>[>>>>>> ",
-"                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/save.xpm storm_0.5.2/usr/local/share/storm/pixmaps/save.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/save.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/save.xpm	Wed Dec 31 19:00:00 1969
@@ -1,99 +0,0 @@
-/* XPM */
-static char * save_xpm[] = {
-"16 16 80 1",
-" 	c None",
-".	c #000000",
-"+	c #F7F9FE",
-"@	c #BADEFF",
-"#	c #C7C7C7",
-"$	c #E9E9E9",
-"%	c #EAEAEA",
-"&	c #F2F2F2",
-"*	c #AAD8FF",
-"=	c #D0E8FF",
-"-	c #72ABDB",
-";	c #A3A3A3",
-">	c #BABABA",
-",	c #C0C0C0",
-"'	c #E0E0E0",
-")	c #3F6B94",
-"!	c #C0E1FF",
-"~	c #D7D7D7",
-"{	c #FFFFFF",
-"]	c #FAFAFA",
-"^	c #69A2D2",
-"/	c #39698E",
-"(	c #D6D6D6",
-"_	c #679DCA",
-":	c #34658B",
-"<	c #FDFDFD",
-"[	c #F5F5F5",
-"}	c #ECECEC",
-"|	c #D4D4D4",
-"1	c #C5C5C5",
-"2	c #EFEFEF",
-"3	c #F3F3F3",
-"4	c #9DC1E0",
-"5	c #C0D8EB",
-"6	c #BDCFE6",
-"7	c #B4CCE3",
-"8	c #8DB9DA",
-"9	c #6DA8DA",
-"0	c #649CCB",
-"a	c #649DC9",
-"b	c #649AC7",
-"c	c #71ACDA",
-"d	c #9DB1CA",
-"e	c #CECECE",
-"f	c #9C9E9F",
-"g	c #1C4B6F",
-"h	c #97A9BA",
-"i	c #06375D",
-"j	c #214D72",
-"k	c #B9B9B9",
-"l	c #043455",
-"m	c #426F99",
-"n	c #8AA7BF",
-"o	c #6AA8D7",
-"p	c #CDCDCD",
-"q	c #1D476A",
-"r	c #44739B",
-"s	c #BFBFBF",
-"t	c #03314E",
-"u	c #92ACBD",
-"v	c #5E7A91",
-"w	c #68A0CF",
-"x	c #E6E6E6",
-"y	c #103A61",
-"z	c #487EA3",
-"A	c #C2C2C2",
-"B	c #B2B2B2",
-"C	c #013454",
-"D	c #96ACBB",
-"E	c #4F657A",
-"F	c #3A678D",
-"G	c #A1A1A1",
-"H	c #909090",
-"I	c #868686",
-"J	c #6E6E6E",
-"K	c #7A7A7A",
-"L	c #21395B",
-"M	c #2F5370",
-"N	c #788899",
-"O	c #0B3A58",
-" .............. ",
-".+@#$$$$$$%$&**.",
-".=-;>>>>>>>,'-).",
-".!-~{{{{{{{{]^/.",
-".!-~~~~~~~~(&_:.",
-".!-~{{{{<[}}&_:.",
-".!-~~~~|1111&_:.",
-".!-2{{3}}}}}2_:.",
-".!-4567777778_:.",
-".!--90____ab__:.",
-".!-cd11e}~fgh_:.",
-".!-^11ij(1klmn:.",
-".!o_1pqr11stru:.",
-".vw_pxyz1ABCrD:.",
-" .EFG,HHIJKLMNO.",
-"  ............. "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/send-receive.xpm storm_0.5.2/usr/local/share/storm/pixmaps/send-receive.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/send-receive.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/send-receive.xpm	Wed Dec 31 19:00:00 1969
@@ -1,58 +0,0 @@
-/* XPM */
-static char * send_receive_xpm[] = {
-"16 16 39 1",
-" 	c None",
-".	c #000000",
-"+	c #F7EFD0",
-"@	c #F7EFD1",
-"#	c #EED680",
-"$	c #C38909",
-"%	c #F6ECC9",
-"&	c #D1940C",
-"*	c #B98208",
-"=	c #A59458",
-"-	c #D1BC70",
-";	c #E9D17B",
-">	c #B07C08",
-",	c #916608",
-"'	c #F3E3A8",
-")	c #AE7B0A",
-"!	c #F4E4AD",
-"~	c #F5E9BC",
-"{	c #D8E6D2",
-"]	c #B9C9B1",
-"^	c #6F9059",
-"/	c #C6B26A",
-"(	c #D7E5D0",
-"_	c #AECCA1",
-":	c #557C3B",
-"<	c #D3E3CB",
-"[	c #D0E1C9",
-"}	c #DBE7D6",
-"|	c #B9C3B5",
-"1	c #BDCEB6",
-"2	c #A9C79C",
-"3	c #65894C",
-"4	c #748C64",
-"5	c #668154",
-"6	c #669447",
-"7	c #58833C",
-"8	c #E1EBDC",
-"9	c #5E8A41",
-"0	c #E0EADB",
-"    .           ",
-"   .+.          ",
-"  .@#$.         ",
-" .%##&*.        ",
-".%=-;>,,.       ",
-"...'#)...       ",
-"  .!#).  .....  ",
-"  .~#).  .{]^.  ",
-"  .#/).  .(_:.  ",
-"  .....  .<_:.  ",
-"       ...[_:...",
-"       .}|12345.",
-"        .}__67. ",
-"         .8_9.  ",
-"          .0.   ",
-"           .    "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/send.xpm storm_0.5.2/usr/local/share/storm/pixmaps/send.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/send.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/send.xpm	Wed Dec 31 19:00:00 1969
@@ -1,78 +0,0 @@
-/* XPM */
-static char * send_xpm[] = {
-"16 16 59 1",
-" 	c None",
-".	c #000000",
-"+	c #D1940C",
-"@	c #8E6407",
-"#	c #EED680",
-"$	c #AC7A09",
-"%	c #010101",
-"&	c #2F2F2F",
-"*	c #A7A4A0",
-"=	c #FCFCFC",
-"-	c #63615D",
-";	c #FFFFFF",
-">	c #5D5B57",
-",	c #E6E6E6",
-"'	c #706E6A",
-")	c #989590",
-"!	c #E7E6E3",
-"~	c #BEBDBA",
-"{	c #716E6B",
-"]	c #EAEAE9",
-"^	c #DFDEDE",
-"/	c #6E6B68",
-"(	c #817F7C",
-"_	c #A19F9B",
-":	c #BBB9B3",
-"<	c #DCDBD8",
-"[	c #E4E3DF",
-"}	c #A5A29D",
-"|	c #E4E3E0",
-"1	c #6F6C69",
-"2	c #6E6C68",
-"3	c #A2A09C",
-"4	c #DDDBD5",
-"5	c #C3C0B9",
-"6	c #DCDAD7",
-"7	c #797873",
-"8	c #EFEFEC",
-"9	c #C7C6C3",
-"0	c #6A6764",
-"a	c #969490",
-"b	c #B0AFAB",
-"c	c #B6B4AD",
-"d	c #BBB8B1",
-"e	c #7D7A77",
-"f	c #EBE9E5",
-"g	c #E6E5E2",
-"h	c #BEBCB8",
-"i	c #D2D0CD",
-"j	c #EBE9E6",
-"k	c #E5E2DB",
-"l	c #B6B3AD",
-"m	c #090808",
-"n	c #C7C4BF",
-"o	c #BFBDB7",
-"p	c #BEBBB5",
-"q	c #C0BDB8",
-"r	c #C1BEB9",
-"s	c #C6C2BC",
-"t	c #222221",
-"        ..      ",
-"       .+@.     ",
-"      .+#+@.    ",
-"     .+##$+@.   ",
-"    .+###+$+@.  ",
-"   ....##$+.... ",
-"      .##+$.    ",
-"   %&%.##$+.%%  ",
-"  %*==.##+$.=-% ",
-"  %;>,......')% ",
-"  %;!~{]^]/(_:% ",
-"  %;<[}{|12345% ",
-"  %;67890ab'cd% ",
-"  %;e8fghijk'l% ",
-"  %mnooopqqrst% ",
-"   %%%%%%%%%%%  "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/tick.xpm storm_0.5.2/usr/local/share/storm/pixmaps/tick.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/tick.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/tick.xpm	Wed Dec 31 19:00:00 1969
@@ -1,24 +0,0 @@
-/* XPM */
-static char * tick_xpm[] = {
-"16 16 5 1",
-" 	c None",
-".	c #000000",
-"+	c #3FAF23",
-"@	c #48C928",
-"#	c #379B1F",
-"                ",
-"                ",
-"              . ",
-"             .+.",
-"            .@+.",
-"           .@+#.",
-" .        .@+#. ",
-".+.      .++#.  ",
-".+@.    .+++.   ",
-".#+@.  .@++.    ",
-" .#+@..@++.     ",
-"  .#++@+#.      ",
-"   .+++#.       ",
-"    .+#.        ",
-"     ..         ",
-"                "};
diff -urN storm_0.3/usr/local/share/storm/pixmaps/trash.xpm storm_0.5.2/usr/local/share/storm/pixmaps/trash.xpm
--- storm_0.3/usr/local/share/storm/pixmaps/trash.xpm	Wed Jan  2 19:16:08 2002
+++ storm_0.5.2/usr/local/share/storm/pixmaps/trash.xpm	Wed Dec 31 19:00:00 1969
@@ -1,163 +0,0 @@
-/* XPM */
-static char * trash_xpm[] = {
-"16 16 144 2",
-"  	c None",
-". 	c #0E0E0E",
-"+ 	c #424242",
-"@ 	c #4A4A4A",
-"# 	c #3E3E3E",
-"$ 	c #2C2C2C",
-"% 	c #000000",
-"& 	c #858371",
-"* 	c #F0EDD8",
-"= 	c #F2F1E9",
-"- 	c #EEEDE4",
-"; 	c #C7C6BA",
-"> 	c #535246",
-", 	c #101010",
-"' 	c #C2C0A5",
-") 	c #C1BFA5",
-"! 	c #7A7967",
-"~ 	c #484740",
-"{ 	c #272725",
-"] 	c #36352E",
-"^ 	c #878572",
-"/ 	c #A09E88",
-"( 	c #A3A18A",
-"_ 	c #A5A38C",
-": 	c #2B2B2B",
-"< 	c #D3D1BC",
-"[ 	c #DCDAC4",
-"} 	c #E2E0CF",
-"| 	c #B9B7A2",
-"1 	c #64625B",
-"2 	c #393836",
-"3 	c #3C3C33",
-"4 	c #616053",
-"5 	c #9A9883",
-"6 	c #B7B59B",
-"7 	c #B3B298",
-"8 	c #A4A28B",
-"9 	c #E7E3D0",
-"0 	c #F1EDE2",
-"a 	c #F2F1E4",
-"b 	c #EAE9DA",
-"c 	c #E5E2D2",
-"d 	c #D5D2BE",
-"e 	c #C3C1A7",
-"f 	c #AFAD94",
-"g 	c #C0BEA4",
-"h 	c #C6C4AC",
-"i 	c #B8B69C",
-"j 	c #797766",
-"k 	c #8A8975",
-"l 	c #EFEBCB",
-"m 	c #FAF6E3",
-"n 	c #F9F5ED",
-"o 	c #F8F7EE",
-"p 	c #F8F7EC",
-"q 	c #F5F3E6",
-"r 	c #ECEAD9",
-"s 	c #DEDDCB",
-"t 	c #9D9B89",
-"u 	c #636254",
-"v 	c #58574A",
-"w 	c #525146",
-"x 	c #737165",
-"y 	c #9F9D91",
-"z 	c #E4E1C8",
-"A 	c #E9E5CF",
-"B 	c #E9E6C9",
-"C 	c #ACAA92",
-"D 	c #777665",
-"E 	c #7F7D6B",
-"F 	c #434238",
-"G 	c #292822",
-"H 	c #1F1F1B",
-"I 	c #343430",
-"J 	c #4B4944",
-"K 	c #686762",
-"L 	c #706F66",
-"M 	c #6B6B64",
-"N 	c #848270",
-"O 	c #656456",
-"P 	c #393931",
-"Q 	c #171615",
-"R 	c #1A1A16",
-"S 	c #1F1E19",
-"T 	c #2A2A23",
-"U 	c #666654",
-"V 	c #4D4D40",
-"W 	c #363630",
-"X 	c #2A2A26",
-"Y 	c #2F2F2A",
-"Z 	c #0F0F0D",
-"` 	c #0B0B09",
-" .	c #10100D",
-"..	c #26261F",
-"+.	c #34342B",
-"@.	c #24241F",
-"#.	c #2B2B24",
-"$.	c #696856",
-"%.	c #7E7D6E",
-"&.	c #717067",
-"*.	c #7E7E68",
-"=.	c #747363",
-"-.	c #404035",
-";.	c #565647",
-">.	c #39392F",
-",.	c #4A4A3D",
-"'.	c #3F3F34",
-").	c #262620",
-"!.	c #2C2C25",
-"~.	c #6C6C5A",
-"{.	c #9C9B8A",
-"].	c #8B8B7F",
-"^.	c #9E9D8B",
-"/.	c #88887B",
-"(.	c #58574F",
-"_.	c #60604F",
-":.	c #5C5C4C",
-"<.	c #505042",
-"[.	c #292922",
-"}.	c #6D6C5A",
-"|.	c #9E9E8B",
-"1.	c #8F8E81",
-"2.	c #B5B5A0",
-"3.	c #ACAB99",
-"4.	c #5D5D52",
-"5.	c #747460",
-"6.	c #5D5D4D",
-"7.	c #6C6C59",
-"8.	c #999986",
-"9.	c #8D8D80",
-"0.	c #4F4F41",
-"a.	c #282822",
-"b.	c #272721",
-"c.	c #656553",
-"d.	c #3F3F39",
-"e.	c #4C4C42",
-"f.	c #7C7B6D",
-"g.	c #8C8C74",
-"h.	c #949482",
-"i.	c #4D4C43",
-"j.	c #393932",
-"k.	c #060606",
-"l.	c #0F0F0F",
-"m.	c #050505",
-"          . + @ # $ %           ",
-"      % % & * = - ; > % %       ",
-"    , ' ) ! ~ { ] ^ / ( _ %     ",
-"  : < [ } | 1 2 3 4 5 6 7 8 %   ",
-"  % 9 0 a b c d e f g h i j %   ",
-"  % k l m n o p q r s t u v %   ",
-"  % w x y z A B C D E D F G %   ",
-"    H I J K L M N O P Q R S     ",
-"    T U V W X Y Z `  ...+.@.    ",
-"    #.$.%.&.*.=.-.;.>.,.'.).    ",
-"    !.~.{.].^./.(._.,.:.<.[.    ",
-"    !.}.|.1.2.3.4.5.V 6.<.[.    ",
-"    #.7.8.9.2.3.4.5.V 6.0.a.    ",
-"    b.c.|.9.2.3.4.5.V 6.V b.    ",
-"      d.e.f.g.h.i.U -.j.%       ",
-"          k.% l.m.% %           "};
diff -urN storm_0.3/usr/share/doc/storm/README storm_0.5.2/usr/share/doc/storm/README
--- storm_0.3/usr/share/doc/storm/README	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/doc/storm/README	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,10 @@
+There is not much here yet.
+
+Note: Your data and config now reside in ~/.storm/
+while your mails are in ~/Maildir/.
+User config is in ~/.stormrc.
+Backups can be found in /usr/share/storm.backup/ in case you need them.
+*If* you need them (or if they are not there),
+be sure to file a bug on
+http://sourceforge.net/tracker/?group_id=44543&atid=440083
+
diff -urN storm_0.3/usr/share/storm/config/templates/contacts storm_0.5.2/usr/share/storm/config/templates/contacts
--- storm_0.3/usr/share/storm/config/templates/contacts	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/config/templates/contacts	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,91 @@
+<field>
+<type>entry</type>
+<display-name>Name</display-name>
+<xml-name>name</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>Email</display-name>
+<xml-name>email</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>Nickname</display-name>
+<xml-name>nickname</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>Company</display-name>
+<xml-name>company</xml-name>
+</field>
+
+<field>
+<type>date</type>
+<display-name>Birthday</display-name>
+<xml-name>birthday</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>Website</display-name>
+<xml-name>website</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>Mobile Phone</display-name>
+<xml-name>mobilephone</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>Home Phone</display-name>
+<xml-name>homephone</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>Business Phone</display-name>
+<xml-name>businessphone</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>Jabber ID</display-name>
+<xml-name>jabberid</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>ICQ</display-name>
+<xml-name>icq</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>MSN</display-name>
+<xml-name>msn</xml-name>
+</field>
+
+<field>
+<type>entry</type>
+<display-name>AIM</display-name>
+<xml-name>aim</xml-name>
+</field>
+
+<field>
+<type>text</type>
+<display-name>Address</display-name>
+<xml-name>address</xml-name>
+</field>
+
+<field>
+<type>text</type>
+<display-name>Notes</display-name>
+<xml-name>notes</xml-name>
+</field>
+
+
diff -urN storm_0.3/usr/share/storm/config/templates/pop3 storm_0.5.2/usr/share/storm/config/templates/pop3
--- storm_0.3/usr/share/storm/config/templates/pop3	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/config/templates/pop3	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,3 @@
+<username>
+<password>
+<server>
\ No newline at end of file
diff -urN storm_0.3/usr/share/storm/config/templates/sig storm_0.5.2/usr/share/storm/config/templates/sig
--- storm_0.3/usr/share/storm/config/templates/sig	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/config/templates/sig	Mon Feb 25 18:01:50 2002
@@ -0,0 +1 @@
+Sent with Storm (http://storm-pim.sf.net).
\ No newline at end of file
diff -urN storm_0.3/usr/share/storm/config/templates/smtp storm_0.5.2/usr/share/storm/config/templates/smtp
--- storm_0.3/usr/share/storm/config/templates/smtp	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/config/templates/smtp	Mon Feb 25 18:01:50 2002
@@ -0,0 +1 @@
+<server>
\ No newline at end of file
diff -urN storm_0.3/usr/share/storm/config/templates/sync storm_0.5.2/usr/share/storm/config/templates/sync
--- storm_0.3/usr/share/storm/config/templates/sync	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/config/templates/sync	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,4 @@
+<username>
+<host ip>
+<incoming>
+<outgoing>
\ No newline at end of file
Binary files storm_0.3/usr/share/storm/data/templates/alarm.mp3 and storm_0.5.2/usr/share/storm/data/templates/alarm.mp3 differ
diff -urN storm_0.3/usr/share/storm/evo2storm.py storm_0.5.2/usr/share/storm/evo2storm.py
--- storm_0.3/usr/share/storm/evo2storm.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/evo2storm.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Foobar is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+import re, sys, os, dbhash
+
+if len(sys.argv) < 2:
+	print "evo2storm\nUsage: python evo2storm.py [ipaqusername]@[ipaqip]"
+	sys.exit(1)
+
+def open_vcard(vcard_source):
+	first_level = re.compile('BEGIN:VCARD([0-9A-Za-z \t\n\r<>\(\)=\.@\-:;,/\\\-_]*?)END:VCARD')
+	vcard_output = re.findall(first_level, vcard_source)
+	if len(vcard_output) > 0:
+		return vcard_output[0]
+	else:
+		return ''
+
+def get_vcard_data(vcard_source, tag):
+	second_level = re.compile(tag + '([0-9A-Za-z \t\n\r<>\(\)=\.@\-:;,/\\\-_]*?)\r\n')
+	vcard_output = re.findall(second_level, vcard_source)
+	if len(vcard_output) > 0:
+		return vcard_output[0]
+	else:
+		return ''
+
+file = open("/tmp/contacts.xml", "w")
+file.write('')
+file.close()
+
+db = dbhash.open(os.environ['HOME'] + "/evolution/local/Contacts/addressbook.db", "r")
+
+x = 0
+z = len(db.keys())
+db.first()
+while x < z - 1:
+	vcard_key = db.next()
+	vcard_data = open_vcard(vcard_key[1])
+	if vcard_data != '':
+		file = open("/tmp/contacts.xml", "a")
+		file.write("<contact>\n")
+		file.write("<name>" + get_vcard_data(vcard_data, "FN:") + "</name>\n")
+		file.write("<email>" + get_vcard_data(vcard_data, "EMAIL;INTERNET:") + "</email>\n")
+		file.write("<nickname>" + get_vcard_data(vcard_data, "NICKNAME:") + "</nickname>\n")
+		file.write("<company>" + get_vcard_data(vcard_data, "ORG:") + "</company>\n")
+		file.write("<birthday>" + get_vcard_data(vcard_data, "BDAY:") + "</birthday>\n")
+		file.write("<website>" + get_vcard_data(vcard_data, "URL:") + "</website>\n")
+		file.write("<mobilephone>" + get_vcard_data(vcard_data, "TEL;CELL;VOICE:") + "</mobilephone>\n")
+		file.write("<homephone>" + get_vcard_data(vcard_data, "TEL;HOME;VOICE:") + "</homephone>\n")
+		file.write("<businessphone>" + get_vcard_data(vcard_data, "TEL;WORK;VOICE:") + "</businessphone>\n")
+		file.write("<notes>" + get_vcard_data(vcard_data, "NOTE:") + "</notes>\n")
+		file.write("</contact>\n\n")
+		file.close()
+	x = x + 1
+
+os.system("rsync -e ssh /tmp/contacts.xml " + sys.argv[1] + ":/usr/local/share/storm/data/contacts.xml")
+os.system("rm /tmp/contacts.xml")
+print "Sync complete!"
\ No newline at end of file
diff -urN storm_0.3/usr/share/storm/maildir/templates/testmessage storm_0.5.2/usr/share/storm/maildir/templates/testmessage
--- storm_0.3/usr/share/storm/maildir/templates/testmessage	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/maildir/templates/testmessage	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,20 @@
+To: "New Storm User" <root@localhost>
+Subject: Welcome to Storm!
+From: "Storm Dev Team" <dctanner@xoasis.com>
+Date: Sun, 10 Feb 2002 01:20:20
+
+Hi there!
+
+Thanks for installing Storm. We hope you like it.
+Please report any bugs you find at
+  http://sourceforge.net/tracker/?atid=440083&group_id=44543&func=browse
+
+This is just a test message, you can safely delete it.
+
+Have fun,
+  The Storm Dev Team
+
+-- 
+http://sourceforge.net/projects/storm-pim/
+http://storm-pim.sf.net
+http://www.handhelds.org/z/wiki/Storm
diff -urN storm_0.3/usr/share/storm/modules/.cvsignore storm_0.5.2/usr/share/storm/modules/.cvsignore
--- storm_0.3/usr/share/storm/modules/.cvsignore	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/.cvsignore	Mon Feb 25 18:01:50 2002
@@ -0,0 +1 @@
+*.pyc
diff -urN storm_0.3/usr/share/storm/modules/calendar.py storm_0.5.2/usr/share/storm/modules/calendar.py
--- storm_0.3/usr/share/storm/modules/calendar.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/calendar.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,711 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+from modules.xmlparse import *
+from modules.storm_constants import *
+import string, os, time
+
+class Calendar:
+	def __init__(self, parent):
+		self.parent = parent
+		self.cmap = self.parent.window.get_colormap()
+		date = time.strftime("%d %m %Y", time.localtime(time.time()))
+		self.cal_date = string.split(date)
+		self.cal_time = ['00','00']
+
+		frame=GtkFrame()
+		frame.set_usize(-1, -1)
+		frame.set_shadow_type("GTK_SHADOW_ETCHED_IN")
+		frame.set_label("Calendar")
+		frame.set_label_align(0, -1)
+		frame.set_name("frame")
+		rc_parse_string('widget "*frame*" style "storm_normal"') 
+		self.frame=frame
+		frame.show()
+
+		vbox = GtkVBox()
+		frame.add(vbox)
+		vbox.show()
+
+		hbox = GtkHBox()
+		vbox.pack_start(hbox, expand=FALSE)
+		hbox.show()
+
+		# make the toobar
+		toolbar2 = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar2.set_button_relief(RELIEF_NONE)
+		toolbar2.set_space_size(10)
+		hbox.pack_start(toolbar2, fill=TRUE)
+		# add the evolution pixmaps to the toolbar
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/new.xpm")
+		toolbar2.append_item(None, 'Create a new appointment', None, GtkPixmap(pix, mask), self.new_appointment)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/edit.xpm")
+		toolbar2.append_item(None, 'Edit the selected appointment', None, GtkPixmap(pix, mask), self.edit_appointment)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/trash.xpm")
+		toolbar2.append_item(None, 'Delete the selected appointment', None, GtkPixmap(pix, mask), self.delete_appointment)
+
+		toolbar2.show()
+
+		# make the toobar
+		toolbar3 = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar3.set_button_relief(RELIEF_NONE)
+		toolbar3.set_space_size(10)
+		hbox.pack_start(toolbar3, fill=TRUE)
+		# add the evolution pixmaps to the toolbar
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/left.xpm")
+		toolbar3.append_item(None, 'Back 24 hours', None, GtkPixmap(pix, mask), self.back_one_day)
+
+		self.date_label = GtkLabel(time.strftime("%a, %b %d %Y", time.strptime(time.strftime("%b %d %Y", (int(self.cal_date[c_DateYear]), int(self.cal_date[c_DateMonth]), int(self.cal_date[c_DateDay]), 0, 0, 0, 0, 0, 0)), "%b %d %Y")))
+		date_button = GtkButton()
+		date_button.set_relief(RELIEF_NONE)
+		date_button.add(self.date_label)
+		date_button.connect("clicked", self.select_date_from_calendar)
+		toolbar3.append_widget(date_button, 'Select Date from Calendar', '')
+		self.date_label.show()
+		date_button.show()
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/right.xpm")
+		toolbar3.append_item(None, 'Forward 24 hours', None, GtkPixmap(pix, mask), self.forward_one_day)
+
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/home.xpm")
+		toolbar3.append_item(None, 'Today', None, GtkPixmap(pix, mask), self.today_date)
+
+		toolbar3.show()
+
+		cscroll = GtkScrolledWindow()
+		cscroll.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
+		vbox.pack_start(cscroll)
+		cscroll.show()
+
+		clist=GtkCList(3)
+		cscroll.add(clist)
+		clist.connect("select-row" , self.select_appointment)
+		clist.set_flags(CAN_FOCUS)
+		clist.set_usize(-1, 87)
+		clist.set_column_title(0, "Time")
+		clist.set_column_title(1, "Alarm")
+		clist.set_column_title(2, "Summary")
+		clist.set_column_width(0, 30)
+		clist.set_column_width(1, 10)
+		clist.set_column_width(2, 90)
+		clist.set_selection_mode(SELECTION_SINGLE)
+		clist.column_titles_hide()
+		clist.show()
+		self.clist = clist
+
+		scroll = GtkScrolledWindow()
+		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
+		self.scroll = scroll
+		vbox.pack_start(scroll)
+		self.text_scroll = scroll
+
+		text = GtkText()
+		self.text = text
+		text.set_editable(FALSE)
+		scroll.add(text)
+		text.show()
+		self.text = text
+
+		self.selected_appointment = -1
+		self.selected_cal_row = 0
+
+		v = '00'
+		j = 0
+
+		# Add a list times for every 30 minutes of the day
+		while j < 24:
+			# y = string.rjust(str(j), 2).replace(' ', '0') + ':' + v
+			# make the above work for python 1.5:
+			y = string.rjust(str(j), 2)
+			y = string.replace(y, ' ', '0') + ':' + v
+
+			self.clist.append([y, '', ''])
+
+			if v == '00':
+				v = '30'
+			elif v == '30':
+				v = '00'
+				j = j + 1
+
+		# Read the appointments xml file
+		xml = XmlParse()
+		self.xml_appointments = xml.parse_xml_file(self.parent.storm_userdatadir + 'appointments.xml', 'appointment')
+		self.appt = []
+
+#		["summary",
+#		 ["start-time-hour",
+#		  "start-time-minute"],
+#		 ["end-time-hour",
+#		  "end-time-minute"],
+#		 ["date-day",
+#		  "date-month",
+#		  "date-year"],
+#		 ["alarm-status",
+#		  "alarm-id"],
+#		 "description"]
+
+		for xml_appointment in self.xml_appointments:
+			self.appt.append([xml.xml_get_text(xml_appointment, "summary"),[xml.xml_get_text(xml_appointment, "start-time-hour"), xml.xml_get_text(xml_appointment, "start-time-minute")],[xml.xml_get_text(xml_appointment, "end-time-hour"), xml.xml_get_text(xml_appointment, "end-time-minute")],[xml.xml_get_text(xml_appointment, "date-day"), xml.xml_get_text(xml_appointment, "date-month"), xml.xml_get_text(xml_appointment, "date-year")],[xml.xml_get_text(xml_appointment, "alarm-status"), xml.xml_get_text(xml_appointment, "alarm-id")], xml.xml_get_text(xml_appointment, "description")])
+
+	def select_appointment(self, *args):
+		'''This is called when the user clicks on an appointment from the list. It then adds the info to a GtkText.'''
+
+		self.selected_cal_row = args[1]
+		self.selected_appointment = self.clist_ref[args[1]]
+		cal_time_text = string.split(self.clist.get_text(args[1],0), ":")
+		self.cal_time = string.split(self.clist.get_text(args[1],0), ":")
+
+		if self.selected_appointment != -1:
+			self.text.delete_text(0,-1)
+			# Add a check here to see if the two
+			# displayed times are not the same (don't
+			# display the 2nd if this is the case) [CM]:
+			#
+			# And it would look so cool if we had bold/italic/colored text here...
+			self.text.insert(None,None,None, '[' + self.appt[self.selected_appointment][1][0] + ':' + self.appt[self.selected_appointment][1][1] + ' - ' + self.appt[self.selected_appointment][2][0] + ':' + self.appt[self.selected_appointment][2][1] + ']\n' + self.appt[self.selected_appointment][0] + "\n" + self.appt[self.selected_appointment][5])
+			self.text_scroll.show()
+		else:
+			self.text_scroll.hide()
+
+	def update_list(self):
+		'''Update the CList with appointments.'''
+
+		# Set some gdk colors and varibles for looping
+		clist_color = self.cmap.alloc("grey87");
+		clist_color_dark = self.cmap.alloc("grey80");
+		clist_color_white = self.cmap.alloc("white");
+		self.clist_ref = []
+
+		HalfHours = 0
+		b = 0
+		q = 0
+		title = 1
+		blank = 0
+
+		# For every 30 minutes of a 24 hour day:
+		# check if there's an appointment scheduled then
+		while HalfHours < 48:
+			# More looping variables
+			ApptIdx = 0
+			stop = 0
+			blank = 1
+
+			# Loop through every appointment and see
+			# if it's scheduled for the current time
+			# in the loop
+			while ApptIdx < len(self.appt):
+
+				if self.appt[ApptIdx][c_Date][c_DateDay]   == self.cal_date[c_DateDay]   and \
+				   self.appt[ApptIdx][c_Date][c_DateMonth] == self.cal_date[c_DateMonth] and \
+				   self.appt[ApptIdx][c_Date][c_DateYear]  ==  self.cal_date[c_DateYear] and \
+				   stop == 0:
+
+					# Work out exactly how many
+					# minutes since 00:00 it is
+					# supposed to start and end
+					start_min = int(self.appt[ApptIdx][c_StartTime][c_StartTimeHour]) * 60
+					end_min   = int(self.appt[ApptIdx][c_EndTime][c_EndTimeHour]) * 60
+					start_min = start_min + int(self.appt[ApptIdx][c_StartTime][c_StartTimeMin])
+					end_min   = end_min   + int(self.appt[ApptIdx][c_EndTime][c_EndTimeMin])
+
+					# Make sure it falls between the current loop time
+					if start_min - 29 <= q and end_min >= q:
+
+						# Check if this is the first row of the appointment: if so make it colored darker and add a title
+						if title == 1:
+							self.clist.set_text(HalfHours,2,self.appt[ApptIdx][c_Summary])
+							self.clist.set_background(HalfHours, clist_color_dark)
+							self.clist_ref.append(ApptIdx)
+
+							# If the appointment has an alarm set show a little xpm
+							if self.appt[ApptIdx][c_Alarm][c_AlarmStatus] == 'yes':
+								pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/alarm.xpm")
+								alarm_pixmap = GtkPixmap(pix, mask)
+								self.clist.set_pixmap(HalfHours, 1, alarm_pixmap)
+							else:
+								pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/alarm-shaded.xpm")
+								alarm_pixmap = GtkPixmap(pix, mask)
+								self.clist.set_pixmap(HalfHours, 1, alarm_pixmap)
+
+							title = 0
+							blank = 0
+							#stop = 1
+						# If not just color it a light grey
+						else:
+							self.clist.set_background(HalfHours, clist_color)
+							self.clist_ref.append(ApptIdx)
+							blank = 0
+							#stop = 1
+
+					# If the next loop round
+					# will be the end of this
+					# current appointment make
+					# sure the next one has a
+					# title etc...
+				        elif end_min + 30 >= q and end_min - 30 <= q:
+						title = 1
+				ApptIdx = ApptIdx + 1
+
+			# If there's no text for the current loop
+			# time: just leave it alone (not that I'm
+			# actualy going to leave it alone)
+			if blank == 1:
+
+				# Remove any previous xpms or summary text
+				self.clist.set_text(HalfHours,1,'')
+				self.clist.set_text(HalfHours,2,'')
+				self.clist.set_background(HalfHours, clist_color_white)
+				self.clist_ref.append(-1)
+				title = 1
+
+			HalfHours = HalfHours + 1
+			q = q + 30
+
+		# Select the last row we selected
+		self.clist.select_row(self.selected_cal_row,0)
+
+	def new_appointment(self, *args):
+		'''Open up a new appointment window.'''
+		self.do_appointment("new")
+
+	def edit_appointment(self, *args):
+		'''Edit the currently selected appointment.'''
+		self.do_appointment("edit")
+
+	def delete_appointment(self, *args):
+		'''Delete the currently selected appointment.'''
+
+		# If an alarm was scheduled: make sure we delete it
+		if self.appt[self.selected_appointment][c_Alarm][c_AlarmStatus] == 'yes':
+			os.system("uschedulerm " + self.appt[self.selected_appointment][c_Alarm][c_AlarmId])
+
+		# Delete the actualy appointment infomation
+		del self.appt[self.selected_appointment]
+
+		# Update the xml, list and today
+		self.update_xml()
+		self.update_list()
+		self.parent.today.update_today()
+
+	def save_appointment(self, *args):
+		'''Saves the just created appointment.'''
+
+		# should do full sanity check of the appointment here (like "time values are just integers" etc.) [CM]
+		if len(self.summary_entry.get_text()) == 0:
+			self.summary_entry.set_text("<no summary>")
+			# check for minutes not == ":00" or ":30" [CM]:
+#			self.summary_entry.set_text(string.rjust("[" + self.start_time_combo_hour.entry.get_text(), 2).replace(' ', '0') + ":" + string.rjust(self.start_time_combo_minute.entry.get_text(), 2).replace(' ', '0') + "] <no summary>")
+
+		# If the alarm box is ticked: schedule it with uschedule and get the alarm id
+		if self.alarm_check.get_active() == TRUE:
+			alarm_status = 'yes'
+			usched_id = string.split(os.popen("uschedulecmd /usr/bin/storm-alarm").read())
+			alarm_id  = usched_id[7]
+
+			# uschedule wants everything in UTC (time.gmtime)...
+			# ... so get the local time for the appointment
+			appt_localtime = self.cal_date[c_DateYear] + "-" + self.cal_date[c_DateMonth] + "-" + self.cal_date[c_DateDay] + " " \
+			+ string.rjust(self.start_time_combo_hour.entry.get_text(), 2).replace(' ', '0') + ":" \
+			+ string.rjust(self.start_time_combo_minute.entry.get_text(), 2).replace(' ', '0') + ":00"
+
+			#os.system("uschedule " + alarm_id + " '" + self.cal_date[c_DateYear] + "-" + self.cal_date[c_DateMonth] + "-" + self.cal_date[c_DateDay] + " " + string.rjust(self.start_time_combo_hour.entry.get_text(), 2).replace(' ', '0') + ":" + string.rjust(self.start_time_combo_minute.entry.get_text(), 2).replace(' ', '0') + ":00'")
+			
+			print "Appointment is at " + appt_localtime
+
+			# parse the local time string to the seconds since the Epoch:
+                        appt_gmtime_tmp = time.mktime(time.strptime(appt_localtime, "%Y-%m-%d %T"))
+                        print "appt_gmtime_tmp is " + time.strftime("%Y-%m-%d %T", time.gmtime(appt_gmtime_tmp))
+
+			# create the string again, just in UTC this time:
+                        appt_gmtime = time.strftime("%Y-%m-%d %T", time.gmtime(appt_gmtime_tmp))
+
+			# build the uschedule command line:
+                        usched_cmd = "uschedule " + alarm_id + " '" + appt_gmtime + "'"
+                        print "usched_cmd is " + usched_cmd
+
+			# run uschedule finally:
+                        os.system(usched_cmd)
+			
+		else:
+			alarm_status = 'no'
+			alarm_id = ''
+
+		# Add the info for the new alarm
+		self.appt.append([self.summary_entry.get_text(), [self.start_time_combo_hour.entry.get_text(), self.start_time_combo_minute.entry.get_text()], [self.end_time_combo_hour.entry.get_text(), self.end_time_combo_minute.entry.get_text()], [self.cal_date[c_DateDay], self.cal_date[c_DateMonth], self.cal_date[c_DateYear]], [alarm_status, alarm_id], self.description_text.get_chars(0, -1)])
+
+		# Update the xml, list and today
+		self.update_xml()
+		self.update_list()
+		self.appt_window.hide()
+		self.parent.today.update_today()
+
+	def save_edited_appointment(self, *args):
+		'''Saves and edited appointment.'''
+
+		# should do full sanity check of the appointment here (like "time values are just integers" etc.) [CM]
+		if len(self.summary_entry.get_text()) == 0:
+			self.summary_entry.set_text("<no summary>")
+
+		# Replace the old values with the new ones
+		self.appt[self.selected_appointment][c_Summary]                    = self.summary_entry.get_text()
+		self.appt[self.selected_appointment][c_StartTime][c_StartTimeHour] = self.start_time_combo_hour.entry.get_text()
+		self.appt[self.selected_appointment][c_StartTime][c_StartTimeMin]  = self.start_time_combo_minute.entry.get_text()
+		self.appt[self.selected_appointment][c_EndTime][c_EndTimeHour]     = self.end_time_combo_hour.entry.get_text()
+		self.appt[self.selected_appointment][c_EndTime][c_EndTimeMin]      = self.end_time_combo_minute.entry.get_text()
+		self.appt[self.selected_appointment][c_Description]                = self.description_text.get_chars(0, -1)
+
+		# If there was a previously scheduled alarm, delete it first
+		if self.appt[self.selected_appointment][c_Alarm][c_AlarmStatus] == 'yes':
+			os.system("uschedulerm " + self.appt[self.selected_appointment][c_Alarm][c_AlarmId])
+
+		# Schedule the alarm if needed
+		if self.alarm_check.get_active() == TRUE:
+			# Get the uschedule command id
+			usched_id = string.split(os.popen("uschedulecmd /usr/bin/storm-alarm").read())
+			self.appt[self.selected_appointment][c_Alarm][c_AlarmId] = usched_id[7]
+
+			# uschedule wants everything in UTC (time.gmtime)...
+			# ... so get the local time for the appointment
+			appt_localtime = \
+			self.cal_date[c_DateYear] + "-" + self.cal_date[c_DateMonth] + "-" + self.cal_date[c_DateDay] + " " \
+			+ string.rjust(self.start_time_combo_hour.entry.get_text(), 2).replace(' ', '0') + ":" \
+			+ string.rjust(self.start_time_combo_minute.entry.get_text(), 2).replace(' ', '0') + ":00"
+			
+			print "Appointment is at " + appt_localtime
+
+			# parse the local time string to the seconds since the Epoch:
+                        appt_gmtime_tmp = time.mktime(time.strptime(appt_localtime, "%Y-%m-%d %T"))
+                        print "appt_gmtime_tmp is " + time.strftime("%Y-%m-%d %T", time.gmtime(appt_gmtime_tmp))
+
+			# create the string again, just in UTC this time:
+                        appt_gmtime = time.strftime("%Y-%m-%d %T", time.gmtime(appt_gmtime_tmp))
+
+			# build the uschedule command line:
+                        usched_cmd = "uschedule " + self.appt[self.selected_appointment][c_Alarm][c_AlarmId] + " '" + appt_gmtime + "'"
+			print "usched_cmd is " + usched_cmd
+
+			# run uschedule finally:
+                        os.system(usched_cmd)
+			
+			self.appt[self.selected_appointment][c_Alarm][c_AlarmStatus] = 'yes'
+		else:
+			self.appt[self.selected_appointment][c_Alarm][c_AlarmStatus] = 'no'
+			self.appt[self.selected_appointment][c_Alarm][c_AlarmId] = ''
+
+		# Update the xml, list and today
+		self.update_xml()
+		self.update_list()
+		self.select_appointment(None, self.selected_appointment)
+		self.appt_window.hide()
+		self.parent.today.update_today() 
+
+	def do_appointment(self, type):
+		'''Open up the appointment new/edit window.'''
+
+		# If the currently selected time is blank make a new appointment
+		if self.selected_appointment == -1:
+			type = "new"
+
+		# our main gtk window
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		self.appt_window = window
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - Appointment")
+		if screen_width() > 300:
+			window.set_usize(280, 240)
+		else:
+			window.set_usize(240, 280)
+		window.set_name("window")
+		rc_parse_string('widget "*window*" style "storm_normal"') 
+		window.show()
+
+		vbox = GtkVBox()
+		window.add(vbox)
+		vbox.show()
+
+		# make the toobar
+		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar.set_button_relief(RELIEF_NONE)
+		toolbar.set_space_size(10)
+		vbox.pack_start(toolbar, expand=FALSE)
+		toolbar.show()
+		# add the evolution pixmaps to the toolbar
+		if type == "edit":
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save.xpm")
+			toolbar.append_item(None, 'Save the current appointment', None, GtkPixmap(pix, mask), self.save_edited_appointment)
+		else:
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save.xpm")
+			toolbar.append_item(None, 'Save the current appointment', None, GtkPixmap(pix, mask), self.save_appointment)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/cancel.xpm")
+		toolbar.append_item(None, 'Close this window', None, GtkPixmap(pix, mask), window.hide)
+
+
+		# Make a list of hours and minutes for time selection
+		time_hours = []
+		time_minutes = []
+		t = 0
+		for t in range (1,24):
+			time_hours.append(string.rjust(str(t), 2).replace(' ', '0'))
+		t = 0
+		while t < 60:
+			time_minutes.append(string.rjust(str(t), 2).replace(' ', '0'))
+			t = t + 5
+
+		table1=GtkTable(5, 2)
+		vbox.pack_start(table1)
+		table1.show()
+		table1.set_usize(-1, -1)
+		table1.set_row_spacings(0)
+		table1.set_col_spacings(0)
+		label1=GtkLabel()
+		table1.attach(label1, 0, 1, 0, 1, FILL, 0, 0, 0)
+		label1.set_usize(-1, -1)
+		label1.set_text("Summary")
+		label1.set_justify(JUSTIFY_CENTER)
+		label1.set_alignment(0, 0.5)
+		label1.set_padding(0, 0)
+		label1.show()
+		self.label1=label1
+		label2=GtkLabel()
+		table1.attach(label2, 0, 1, 1, 2, FILL, 0, 0, 0)
+		label2.set_usize(-1, -1)
+		label2.set_text("Start")
+		label2.set_justify(JUSTIFY_CENTER)
+		label2.set_alignment(0, 0.5)
+		label2.set_padding(0, 0)
+		label2.show()
+		self.label2=label2
+		label3=GtkLabel()
+		table1.attach(label3, 0, 1, 2, 3, FILL, 0, 0, 0)
+		label3.set_usize(-1, -1)
+		label3.set_text("End")
+		label3.set_justify(JUSTIFY_CENTER)
+		label3.set_alignment(0, 0.5)
+		label3.set_padding(0, 0)
+		label3.show()
+		self.label3=label3
+		label4=GtkLabel()
+		table1.attach(label4, 0, 1, 3, 4, FILL, 0, 0, 0)
+		label4.set_usize(-1, -1)
+		label4.set_text("Alarm")
+		label4.set_justify(JUSTIFY_CENTER)
+		label4.set_alignment(0, 0.5)
+		label4.set_padding(0, 0)
+		label4.show()
+		self.label4=label4
+		label5=GtkLabel()
+		table1.attach(label5, 0, 1, 4, 5, FILL, 0, 0, 0)
+		label5.set_usize(-1, -1)
+		label5.set_text("Description")
+		label5.set_justify(JUSTIFY_CENTER)
+		label5.set_alignment(0, 0.5)
+		label5.set_padding(0, 0)
+		label5.show()
+		self.label5=label5
+
+		summary_entry=GtkEntry()
+		table1.attach(summary_entry, 1, 2, 0, 1, EXPAND, 0, 0, 0)
+		summary_entry.set_flags(CAN_FOCUS)
+		summary_entry.set_usize(160, -1)
+		summary_entry.set_editable(TRUE)
+		summary_entry.set_visibility(TRUE)
+		summary_entry.set_max_length(0)
+		if type == "edit":
+			summary_entry.set_text(self.appt[self.selected_appointment][c_Summary])
+		summary_entry.show()
+		self.summary_entry=summary_entry
+
+		start_time_hbox = GtkHBox()
+		table1.attach(start_time_hbox, 1, 2, 1, 2, EXPAND|FILL, 0, 0, 0)
+		start_time_hbox.show()
+
+		start_time_combo_hour = GtkCombo()
+		start_time_combo_hour.set_usize(45, -1)
+		start_time_hbox.pack_start(start_time_combo_hour, expand=FALSE)
+		t = 0
+		start_time_combo_hour.set_popdown_strings(time_hours)
+		if type == "edit":
+			start_time_combo_hour.entry.set_text(self.appt[self.selected_appointment][c_StartTime][c_StartTimeHour])
+		else:
+			start_time_combo_hour.entry.set_text(self.cal_time[0])
+		start_time_combo_hour.show()
+		self.start_time_combo_hour = start_time_combo_hour
+
+		start_time_combo_minute = GtkCombo()
+		start_time_combo_minute.set_usize(45, -1)
+		start_time_hbox.pack_start(start_time_combo_minute, expand=FALSE)
+		start_time_combo_minute.set_popdown_strings(time_minutes)
+		if type == "edit":
+			start_time_combo_minute.entry.set_text(self.appt[self.selected_appointment][c_StartTime][c_StartTimeMin])
+		else:
+			start_time_combo_minute.entry.set_text(self.cal_time[1])
+		start_time_combo_minute.show()
+		self.start_time_combo_minute = start_time_combo_minute
+
+		end_time_hbox = GtkHBox()
+		table1.attach(end_time_hbox, 1, 2, 2, 3, EXPAND|FILL, 0, 0, 0)
+		end_time_hbox.show()
+
+		end_time_combo_hour = GtkCombo()
+		end_time_combo_hour.set_usize(45, -1)
+		end_time_hbox.pack_start(end_time_combo_hour, expand=FALSE)
+		t = 0
+		end_time_combo_hour.set_popdown_strings(time_hours)
+		if type == "edit":
+			end_time_combo_hour.entry.set_text(self.appt[self.selected_appointment][c_EndTime][c_EndTimeHour])
+		else:
+			end_time_combo_hour.entry.set_text(self.cal_time[0])
+		end_time_combo_hour.show()
+		self.end_time_combo_hour = end_time_combo_hour
+
+		end_time_combo_minute = GtkCombo()
+		end_time_combo_minute.set_usize(45, -1)
+		end_time_hbox.pack_start(end_time_combo_minute, expand=FALSE)
+		end_time_combo_minute.set_popdown_strings(time_minutes)
+		if type == "edit":
+			end_time_combo_minute.entry.set_text(self.appt[self.selected_appointment][c_EndTime][c_EndTimeMin])
+		else:
+			end_time_combo_minute.entry.set_text(self.cal_time[1])
+		end_time_combo_minute.show()
+		self.end_time_combo_minute = end_time_combo_minute
+
+		alarm_check = GtkCheckButton()
+		table1.attach(alarm_check, 1, 2, 3, 4, EXPAND|FILL, 0, 0, 0)
+		if type == "edit":
+			if self.appt[self.selected_appointment][c_Alarm][c_AlarmStatus] == 'yes':
+				alarm_check.set_active(TRUE)
+		if os.path.exists("/usr/bin/uschedule") == -1:
+				alarm_check.set_sensitive(FALSE)
+		alarm_check.show()
+		self.alarm_check = alarm_check
+
+		scrolledwindow1=GtkScrolledWindow()
+		table1.attach(scrolledwindow1, 1, 2, 4, 5, EXPAND, 0, 0, 0)
+		scrolledwindow1.set_usize(160, 70)
+		scrolledwindow1.set_policy(POLICY_NEVER, POLICY_AUTOMATIC)
+		description_text=GtkText()
+		scrolledwindow1.add(description_text)
+		description_text.set_flags(CAN_FOCUS)
+		description_text.set_usize(160, 70)
+		description_text.set_editable(TRUE)
+		if type == "edit":
+			description_text.insert(None,None,None,self.appt[self.selected_appointment][c_Description])
+		description_text.show()
+		self.description_text=description_text
+		scrolledwindow1.show()
+		self.scrolledwindow1=scrolledwindow1
+
+	def select_date_from_calendar(self, *args):
+		'''Select date from graphical calendar.'''
+
+		# our main gtk window
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		self.calendar_select_window = window
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - Calendar")
+		window.set_usize(200, 140)
+		window.set_name("window")
+		rc_parse_string('widget "*window*" style "storm_normal"') 
+		window.show()
+
+		calendar = GtkCalendar()
+		calendar.select_month(int(self.cal_date[c_DateMonth]) - 1, int(self.cal_date[c_DateYear]))
+		calendar.select_day(int(self.cal_date[c_DateDay]))
+		calendar.connect("day-selected-double-click", self.change_date)
+		window.add(calendar)
+		calendar.show()
+		self.select_calendar = calendar
+
+	def change_date(self, *args):
+		'''Change date entries to the selected date.'''
+
+		# Get the date from the graphical calendar
+		year, month, day = self.select_calendar.get_date()
+		# It gives us the months starting at 0, but we want them to start at 1
+		month = month + 1
+
+		# Make sure the numbers have a 0 on the front if needed
+		self.cal_date[c_DateDay]   = string.rjust(str(day), 2).replace(' ', '0')
+		self.cal_date[c_DateMonth] = string.rjust(str(month), 2).replace(' ', '0')
+		self.cal_date[c_DateYear]  = str(year)
+
+		# Set the text of our entry box
+		self.date_label.set_text(time.strftime("%a, %b %d %Y", time.strptime(time.strftime("%b %d %Y", (int(year), int(month), int(day), 0, 0, 0, 0, 0, 0)), "%b %d %Y")))
+		self.update_list()
+		self.calendar_select_window.hide()
+
+	def back_one_day(self, *args):
+		'''Sets the selected date back by one day.'''
+
+		secs = time.mktime((int(self.cal_date[c_DateYear]), int(self.cal_date[c_DateMonth]), int(self.cal_date[c_DateDay]), 0, 0, 0, 0, 0, 0))
+		secs = secs - 86400
+		date = time.strftime("%d %m %Y", time.localtime(secs))
+
+		self.cal_date = string.split(date)
+		self.date_label.set_text(time.strftime("%a, %b %d %Y", time.strptime(time.strftime("%b %d %Y", (int(self.cal_date[c_DateYear]), int(self.cal_date[c_DateMonth]), int(self.cal_date[c_DateDay]), 0, 0, 0, 0, 0, 0)), "%b %d %Y")))
+		self.update_list()
+
+	def forward_one_day(self, *args):
+		'''Sets the selected date forward by one day.'''
+
+		secs = time.mktime((int(self.cal_date[c_DateYear]), int(self.cal_date[c_DateMonth]), int(self.cal_date[c_DateDay]), 0, 0, 0, 0, 0, 0))
+		secs = secs + 86400
+		date = time.strftime("%d %m %Y", time.localtime(secs))
+
+		self.cal_date = string.split(date)
+		self.date_label.set_text(time.strftime("%a, %b %d %Y", time.strptime(time.strftime("%b %d %Y", (int(self.cal_date[c_DateYear]), int(self.cal_date[c_DateMonth]), int(self.cal_date[c_DateDay]), 0, 0, 0, 0, 0, 0)), "%b %d %Y")))
+		self.update_list()
+		
+	def today_date(self, *args):
+		'''Sets the selected date to today.'''
+
+		date = time.strftime("%d %m %Y", time.localtime(time.time()))
+		self.cal_date = string.split(date)
+
+		self.date_label.set_text(time.strftime("%a, %b %d %Y", time.strptime(time.strftime("%b %d %Y", (int(self.cal_date[c_DateYear]), int(self.cal_date[c_DateMonth]), int(self.cal_date[c_DateDay]), 0, 0, 0, 0, 0, 0)), "%b %d %Y")))
+		self.update_list()
+
+		date_time = time.strftime("%H %M", time.localtime(time.time()))
+		self.cal_time = string.split(date_time)
+
+		time_row = int(self.cal_time[0]) * 2
+		if int(self.cal_time[1]) >= 30:
+			time_row = time_row + 1
+
+		self.clist.select_row(time_row,0)
+
+		vadjust = self.clist.get_vadjustment()
+		vadjust.set_value((time_row * 16) - (16 * 3))
+
+	def update_xml(self):
+		'''Update the calendar xml storage file.'''
+
+		file = open(self.parent.storm_userdatadir + 'appointments.xml', 'w')
+
+		ApptIdx = 0
+		while ApptIdx < len(self.appt):
+			file.write('<appointment>\n<summary>' + self.appt[ApptIdx][c_Summary] + '</summary>\n<start-time-hour>' + self.appt[ApptIdx][c_StartTime][c_StartTimeHour] + '</start-time-hour>\n<start-time-minute>' + self.appt[ApptIdx][c_StartTime][c_StartTimeMin] + '</start-time-minute>\n<end-time-hour>' + self.appt[ApptIdx][c_EndTime][c_EndTimeHour] + '</end-time-hour>\n<end-time-minute>' + self.appt[ApptIdx][c_EndTime][c_StartTimeMin] + '</end-time-minute>\n<date-day>' + self.appt[ApptIdx][c_Date][c_DateDay] + '</date-day>\n<date-month>' + self.appt[ApptIdx][c_Date][c_DateMonth] + '</date-month>\n<date-year>' + self.appt[ApptIdx][c_Date][c_DateYear] + '</date-year>\n<alarm-status>' + self.appt[ApptIdx][c_Alarm][c_AlarmStatus] + '</alarm-status>\n<alarm-id>' + str(self.appt[ApptIdx][c_Alarm][c_AlarmId]) + '</alarm-id>\n<description>' + self.appt[ApptIdx][c_Description] + '</description>\n</appointment>\n\n')
+			ApptIdx = ApptIdx + 1
+
+		file.close
diff -urN storm_0.3/usr/share/storm/modules/contacts.py storm_0.5.2/usr/share/storm/modules/contacts.py
--- storm_0.3/usr/share/storm/modules/contacts.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/contacts.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,586 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+from modules.xmlparse import *
+import string, time, os, mix
+
+class Contacts:
+	def __init__(self, parent):
+		self.parent = parent
+		self.cmap = self.parent.window.get_colormap()
+
+		frame=GtkFrame()
+		frame.set_usize(-1, -1)
+		frame.set_shadow_type("GTK_SHADOW_ETCHED_IN")
+		frame.set_label("Contacts")
+		frame.set_label_align(0, -1)
+		frame.set_name("frame")
+		rc_parse_string('widget "*frame*" style "storm_normal"') 
+
+		vpaned = GtkVPaned()
+		frame.add(vpaned)
+		vpaned.show()
+
+		vbox = GtkVBox()
+		vpaned.pack1(vbox)
+		vbox.show()
+
+		hbox2 = GtkHBox()
+		vbox.pack_start(hbox2, expand=FALSE)
+		hbox2.show()
+
+		self.find_button = GtkButton("Find")
+		self.find_button.connect("clicked", self.do_find)
+		hbox2.pack_start(self.find_button, expand=FALSE)
+
+		self.find_entry = GtkEntry()
+		hbox2.pack_start(self.find_entry, expand=FALSE)
+
+		# make the toobar
+		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		self.toolbar = toolbar
+		toolbar.set_button_relief(RELIEF_NONE)
+		toolbar.set_space_size(10)
+		hbox2.pack_start(toolbar, expand=FALSE)
+		toolbar.show()
+		# add the evolution pixmaps to the toolbar
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/new.xpm")
+		toolbar.append_item(None, 'Create a new contact', None, GtkPixmap(pix, mask), self.new_contact)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/edit.xpm")
+		toolbar.append_item(None, 'Edit the selected contact', None, GtkPixmap(pix, mask), self.edit_contact)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/trash.xpm")
+		toolbar.append_item(None, 'Delete the selected contact', None, GtkPixmap(pix, mask), self.delete_contact)
+
+		toolbar2 = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar2.set_button_relief(RELIEF_NONE)
+		toolbar2.set_space_size(10)
+		hbox2.pack_end(toolbar2, expand=FALSE)
+		toolbar2.show()
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/go-email.xpm")
+		toolbar2.append_item(None, 'Email the selected contact', None, GtkPixmap(pix, mask), self.email_contact)
+
+		# add the evolution pixmaps to the toolbar
+		self.phone_menubar = GtkMenuBar()
+		self.phone_menubar.set_shadow_type(SHADOW_NONE)
+		self.phone_menubar.set_sensitive(FALSE)
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/phone.xpm")
+		phone_menuitem = GtkMenuItem()
+		phone_pixmap = GtkPixmap(pix,mask)
+		phone_menuitem.add(phone_pixmap)
+		phone_pixmap.show()
+		phone_menuitem.show()
+		self.phone_menuitem = phone_menuitem
+		self.phone_menubar.append(phone_menuitem)
+		toolbar2.append_widget(self.phone_menubar, 'Dial Number', '')
+		self.phone_menubar.show()
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/find.xpm")
+		toolbar2.append_item(None, 'Find Contacts', None, GtkPixmap(pix, mask), self.show_find)
+		self.find_state = FALSE
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/list.xpm")
+		toolbar2.append_item(None, 'Show Column Names', None, GtkPixmap(pix, mask), self.clist_titles_change)
+
+		cscroll = GtkScrolledWindow()
+		cscroll.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
+		vbox.pack_start(cscroll)
+		cscroll.show()
+
+		clist=GtkCList(2)
+		cscroll.add(clist)
+		clist.connect("select-row" , self.select_contact)
+		clist.connect("click-column" , self.select_clist_column)
+		clist.set_flags(CAN_FOCUS)
+		clist.set_usize(-1, 87)
+		clist.set_column_title(0, "Name")
+		clist.set_column_title(1, "Email")
+		clist.set_column_width(0, 100)
+		clist.set_column_width(1, 80)
+		clist.set_selection_mode(SELECTION_SINGLE)
+		clist.column_titles_hide()
+		self.clist_titles_state = FALSE
+		clist.show()
+		self.clist=clist
+		frame.show()
+		self.frame=frame
+
+		self.clist_color = self.cmap.alloc("grey87");
+
+		scroll = GtkScrolledWindow()
+		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
+		self.scroll = scroll
+		vpaned.pack2(scroll)
+		scroll.show()
+
+		text = GtkText()
+		self.text = text
+		text.set_editable(FALSE)
+		scroll.add(text)
+		text.show()
+
+		# - Parse the contacts xml file
+		xml = XmlParse()
+
+		# - Get the config for contacts info fields
+		self.xml_contacts_config = xml.parse_xml_file(self.parent.storm_usercfgdir + 'contacts', 'field')
+		self.contacts_config = []
+
+		# - Put the config into a varible
+		for xml_contact_field in self.xml_contacts_config:
+			self.contacts_config.append([xml.xml_get_text(xml_contact_field, "type"), xml.xml_get_text(xml_contact_field, "display-name"), xml.xml_get_text(xml_contact_field, "xml-name")])
+
+		# - Now actually start to parse the contacts
+		xml = XmlParse()
+		self.xml_contacts = xml.parse_xml_file(self.parent.storm_userdatadir + 'contacts.xml', 'contact')
+		self.contact = []
+
+		# - For each contact get the data for the corresponding contacts config field name
+		for xml_contact in self.xml_contacts:
+
+			xml_contact_parts = []
+
+			for xml_field_name in self.contacts_config:
+				xml_field = xml.xml_get_text(xml_contact, xml_field_name[2])
+				xml_contact_parts.append(xml_field)
+
+			self.contact.append(xml_contact_parts)
+
+		self.update_list(self.clist)
+
+	def update_list(self, clist, column=0):
+		'''Updates the contacts list with the latest info.'''
+
+		x = 0
+		v = 0
+
+		# - Sort the contacts if needed
+		self.contact.sort(lambda x, y, column=column: cmp(x[column], y[column]))
+
+		# - Freeze the clist just for good looks
+		clist.freeze()
+		clist.clear()
+
+		# - For each contact see if the current data is a name or email, if so insert it into the clist
+		while x < len(self.contact):
+			z = 0
+
+			while z < len(self.contacts_config):
+
+				if self.contacts_config[z][2] == "name":
+					cname = self.contact[x][z]
+
+				elif self.contacts_config[z][2] == "email":
+					cemail = self.contact[x][z]
+
+				z = z + 1
+
+			headers = [cname, cemail]
+			clist.append(headers)
+
+			if v == 0:
+				clist.set_background(x, self.clist_color)
+				v = 1
+			else:
+				v = 0
+			x = x + 1
+
+		clist.thaw()
+
+	def clist_titles_change(self, *args):
+		'''Called when the column titles button is pressed.'''
+
+		# - If the column titles are hidden, show them, and vice versa
+		if self.clist_titles_state == FALSE:
+			self.clist.column_titles_show()
+			self.clist_titles_state = TRUE
+		else:
+			self.clist.column_titles_hide()
+			self.clist_titles_state = FALSE
+
+	def select_clist_column(self, *args):
+		'''Called when a comumn title is clicked, then sorts the list by it.'''
+
+		self.update_list(self.clist, args[1])
+
+	def show_find(self, *args):
+		'''Shows to find contacts box.'''
+
+		# - If it's hidden, show it, vice versa
+		if self.find_state == FALSE:
+			self.toolbar.hide()
+			self.find_button.show()
+			self.find_entry.show()
+
+			# - Restores the backed up contacts info
+			self.tmp_contact = self.contact
+			self.find_state = TRUE
+		else:
+			self.find_button.hide()
+			self.find_entry.hide()
+			self.toolbar.show()
+
+			# - Backs up the current contacts info
+			self.contact = self.tmp_contact
+			self.update_list(self.clist)
+			self.find_state = FALSE
+
+	def do_find(self, *args):
+		'''Finds a contact.'''
+
+		# - Get the search entyr box text
+		find_str = self.find_entry.get_text()
+		# - Make the entry box blank now, ready for another search
+		self.find_entry.set_text("")
+
+		x = 0
+		# - Clear the clist ready for the found contacts
+		self.clist.clear()
+		self.new_contact = []
+
+		# - Check every contact to see if it matches the searhc string
+		while x < len(self.tmp_contact):
+			z = 0
+			found = 0
+
+			# - Loop through every field of the contact seaching for the string
+			while z < len(self.contacts_config):
+				if string.find(self.tmp_contact[x][z], find_str) != -1:
+					found = 1
+				z = z + 1
+
+			# - If it found a match insert it into the list
+			if found == 1:
+				self.new_contact.append(self.tmp_contact[x])
+			x = x + 1
+
+		# - Set the contact info of the matches as the current
+		self.contact = self.new_contact
+		# - Update the list with the found contacts
+		self.update_list(self.clist)
+
+	def select_contact(self, *args):
+		'''Called when a contact is selected from the list.'''
+
+		# - Set the dtmf dialer menu off by default
+		self.phone_menubar.set_sensitive(FALSE)
+		# - Overide any existing menu entrys
+		self.phone_menu = GtkMenu()
+
+		# - Freeze the text box and delete the existing text
+		self.text.freeze()
+		self.text.delete_text(0, -1)
+		self.selected_contact = args[1]
+		x = 0
+
+		# - For each contacts config field
+		while x < len(self.contacts_config):
+
+			# - Insert the contact info for the current contacts config field into the text box
+			if self.contact[self.selected_contact][x] != '':
+				self.text.insert(None,None,None,self.contacts_config[x][1] + ": " + self.contact[self.selected_contact][x] + "\n")
+
+				# - If there's a phone number add it to the dtmf dial menu
+				if string.find(self.contacts_config[x][2], "phone") != -1:
+					number_menuitem = GtkMenuItem(self.contacts_config[x][1])
+					number_menuitem.connect("activate", self.dial_number, self.contact[self.selected_contact][x])
+					self.phone_menu.append(number_menuitem)
+					number_menuitem.show()
+					self.phone_menubar.set_sensitive(TRUE)
+
+			x = x + 1
+
+		# - Set the text boxs scroll to the top
+		vadjust = self.scroll.get_vadjustment()
+		vadjust.set_value(0)
+		self.text.thaw()
+
+		# - Show the dtmf dial menu and add the new menu items
+		self.phone_menu.show()
+		self.phone_menuitem.set_submenu(self.phone_menu)
+
+	def new_contact(self, *args):
+		'''Open the new contact window.'''
+
+		self.do_contact("new")
+
+	def edit_contact(self, *args):
+		'''Edit the selected contact.'''
+
+		self.do_contact("edit")
+
+	def delete_contact(self, *args):
+		'''Delete the selected contact.'''
+
+		del self.contact[self.selected_contact]
+		self.text.delete_text(0, -1)
+		self.update_xml()
+		self.update_list(self.clist)
+
+	def save_contact(self, *args):
+		'''Save a new contact.'''
+
+		x = 0
+		contact_parts = []
+
+		# - For each contacts config field, add it to the list of contacts
+		while x < len(self.contacts_config):
+			if self.contacts_config[x][0] == "entry" or self.contacts_config[x][0] == "date":
+				contact_parts.append(self.contact_entry[x].get_text())
+
+			elif self.contacts_config[x][0] == "text":
+				contact_parts.append(self.contact_entry[x].get_chars(0, -1))
+			x = x + 1
+
+		self.contact.append(contact_parts)
+		self.update_xml()
+		self.update_list(self.clist)
+		self.contact_window.hide()
+
+	def save_edited_contact(self, *args):
+		'''Save an edited contact.'''
+
+		x = 0
+
+		# - For each contacts config field, add it to the list of contacts
+		while x < len(self.contacts_config):
+
+			if self.contacts_config[x][0] == "entry" or self.contacts_config[x][0] == "date":
+				self.contact[self.selected_contact][x] = self.contact_entry[x].get_text()
+
+			elif self.contacts_config[x][0] == "text":
+				self.contact[self.selected_contact][x] = self.contact_entry[x].get_chars(0, -1)
+
+			x = x + 1
+
+		self.update_xml()
+		self.update_list(self.clist)
+		self.select_contact(None, self.selected_contact)
+		self.contact_window.hide()
+
+	def do_contact(self, type, cname='', cemail=''):
+		'''Main gui contact window. Used for making and editing contacts.'''
+
+		# our main gtk window
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		self.contact_window = window
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - Contact")
+		if screen_width() > 300:
+			window.set_usize(280, 240)
+		else:
+			window.set_usize(240, 280)
+		window.show()
+
+		vbox = GtkVBox()
+		window.add(vbox)
+		vbox.show()
+
+		# make the toobar
+		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar.set_button_relief(RELIEF_NONE)
+		toolbar.set_space_size(10)
+		vbox.pack_start(toolbar, expand=FALSE)
+		toolbar.show()
+		# add the evolution pixmaps to the toolbar
+		if type == "edit":
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save.xpm")
+			toolbar.append_item(None, 'Save the current contact', None, GtkPixmap(pix, mask), self.save_edited_contact)
+		else:
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save.xpm")
+			toolbar.append_item(None, 'Save the current contact', None, GtkPixmap(pix, mask), self.save_contact)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/cancel.xpm")
+		toolbar.append_item(None, 'Close this window', None, GtkPixmap(pix, mask), window.hide)
+
+		scroll = GtkScrolledWindow()
+		scroll.set_policy(POLICY_NEVER, POLICY_AUTOMATIC)
+		vbox.pack_start(scroll)
+		scroll.show()
+
+		self.contact_entry = []
+		x = 0
+		y = 1
+		z = 0
+
+		# - Main table set to the size of the number contacts config fields
+		table1=GtkTable(len(self.contacts_config), 2)
+		scroll.add_with_viewport(table1)
+		table1.set_usize(-1, -1)
+		table1.set_row_spacings(0)
+		table1.set_col_spacings(0)
+
+		# - Loop through all the contact config fields adding labels
+		while z < len(self.contacts_config):
+
+			# - If the contacts config field is a date type, add a nice select date from calendar button
+			if self.contacts_config[z][0] == "date":
+				appointment_tips = GtkTooltips()
+				label=GtkButton(self.contacts_config[z][1])
+				appointment_tips.set_tip(label, 'Select date from calendar')
+				label.connect("clicked", self.select_date_from_calendar, z)
+				table1.attach(label, 0, 1, x, y, FILL, 0, 0, 0)
+				label.show()
+
+			# - If not, just add a normal label
+			else:
+				label=GtkLabel()
+				table1.attach(label, 0, 1, x, y, FILL, 0, 0, 0)
+				label.set_usize(-1, -1)
+				label.set_text(self.contacts_config[z][1])
+				label.set_justify(JUSTIFY_CENTER)
+				label.set_alignment(0, 0.5)
+				label.set_padding(0, 0)
+				label.show()
+
+			x = x + 1
+			y = y + 1
+			z = z + 1
+
+		x = 0
+		y = 1
+		z = 0
+
+		# - Loop through all the contact config fields adding entry and text boxes
+		while z < len(self.contacts_config):
+
+			# - If the contacts config field is a date or entry type, just add an entry box
+			if self.contacts_config[z][0] == "entry" or self.contacts_config[z][0] == "date":
+				entry=GtkEntry()
+				table1.attach(entry, 1, 2, x, y, EXPAND, 0, 0, 0)
+				entry.set_flags(CAN_FOCUS)
+				entry.set_usize(120, -1)
+				entry.set_editable(TRUE)
+				entry.set_visibility(TRUE)
+				entry.set_max_length(0)
+
+				# - If we're editing a contact, insert the currnet data into the entry boxes
+				if type == "edit":
+					entry.set_text(self.contact[self.selected_contact][z])
+
+				# - If  we're adding a contact from an email add the values passed
+				if self.contacts_config[z][2] == "name" and type != "edit":
+					entry.set_text(cname)
+				elif self.contacts_config[z][2] == "email" and type != "edit":
+					entry.set_text(cemail)
+
+				entry.show()
+				self.contact_entry.append(entry)
+
+			# - If not, add a text box
+			elif self.contacts_config[z][0] == "text":
+				scrolledwindow1=GtkScrolledWindow()
+				table1.attach(scrolledwindow1, 1, 2, x, y, EXPAND, 0, 0, 0)
+				scrolledwindow1.set_usize(120, 60)
+				scrolledwindow1.set_policy(POLICY_NEVER, POLICY_AUTOMATIC)
+				scrolledwindow1.show()
+				text=GtkText()
+				scrolledwindow1.add(text)
+				text.set_flags(CAN_FOCUS)
+				text.set_usize(120, 60)
+				text.set_editable(TRUE)
+
+				# - If we're editing a contact, insert the currnet data into the text boxes
+				if type == "edit":
+					text.insert(None,None,None,self.contact[self.selected_contact][z])
+				text.show()
+				self.contact_entry.append(text)
+
+			x = x + 1
+			y = y + 1
+			z = z + 1
+
+		table1.show()
+
+	def select_date_from_calendar(self, *args):
+		'''Opens up a select date from calendar window.'''
+
+		# our main gtk window
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		self.calendar_select_window = window
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - Calendar")
+		window.set_usize(200, 140)
+		window.show()
+
+		calendar = GtkCalendar()
+		calendar.connect("day-selected-double-click", self.change_date)
+		window.add(calendar)
+		calendar.show()
+		self.select_calendar = calendar
+		self.calendar_entry = args[1]
+
+	def change_date(self, *args):
+		'''Called when a date is selected form the calendar. Then adds the date to the specified entry box.'''
+
+		year, month, day = self.select_calendar.get_date()
+
+		# - The calendar gives us the month starting at 0, but we want it to start at 1
+		month = month + 1
+		self.contact_entry[self.calendar_entry].set_text(time.strftime("%a, %b %d %Y", time.strptime(time.strftime("%b %d %Y", (int(year), int(month), int(day), 0, 0, 0, 0, 0, 0)), "%b %d %Y")))
+		self.calendar_select_window.hide()
+
+	def dial_number(self, args, number=''):
+		'''Used a seperate dtmfdial program to dial dtmf tones to a nearby phone.'''
+
+		# - If the dtmfdial program is installed, dial the specified number
+		if os.path.exists("/usr/bin/dtmfdial") > 0:
+			old_vol = mix.getvolume()
+			mix.setvolume(100)
+			os.system("dtmfdial " + str(number))
+			mix.setvolume(old_vol)
+			
+	def email_contact(self, *args):
+		self.parent.mail.do_message("new")
+		z = 0
+		while z < len(self.contacts_config):
+			if self.contacts_config[z][2] == "name":
+				cname = self.contact[self.selected_contact][z]
+			elif self.contacts_config[z][2] == "email":
+				cemail = self.contact[self.selected_contact][z]
+			z = z + 1
+		self.parent.mail.to_entry.set_text('"' + cname + '" <' + cemail + '>')
+	
+	def update_xml(self):
+		'''Updates the contact xml file.'''
+
+		file = open(self.parent.storm_userdatadir + 'contacts.xml', 'w')
+		x = 0
+
+		# - Loops through all the contacts and add them to the xml file
+		while x < len(self.contact):
+			z = 0
+			file.write('<contact>\n')
+
+			while z < len(self.contacts_config):
+				file.write('<' + self.contacts_config[z][2] + '>' + self.contact[x][z] + '</' + self.contacts_config[z][2] + '>\n')
+				z = z + 1
+
+			file.write('</contact>\n\n')
+			x = x + 1
+
+		file.close
+
+	def exit(self, *args):
+		'''Saves xml changes before we exit.'''
+
+		self.update_xml()
diff -urN storm_0.3/usr/share/storm/modules/help.py storm_0.5.2/usr/share/storm/modules/help.py
--- storm_0.3/usr/share/storm/modules/help.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/help.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+
+class Help:
+	def __init__(self, parent):
+		self.parent = parent
+
+	def about(self, *args):
+		'''Opens up an About window.'''
+
+		# our main gtk window
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - Help")
+		window.set_usize(200, 200)
+        	window.set_position(WIN_POS_CENTER)
+		window.set_name("window")
+		rc_parse_string('widget "*window*" style "storm_normal"') 
+		window.show()
+
+		vbox = GtkVBox()
+		window.add(vbox)
+		vbox.show()
+
+		scroll = GtkScrolledWindow()
+		scroll.set_policy(POLICY_NEVER, POLICY_AUTOMATIC)
+		vbox.pack_start(scroll)
+		scroll.show()
+
+		text = GtkText()
+		scroll.add(text)
+		text.insert(None,None,None,"Storm v" + self.parent.VERSION + " - Make your life look organized\n\nProgramming by:\nDamien Tanner (dctanner@xoasis.com)\nColin Marquardt (colin@marquardt-home.de)\n\nThanks to:\nTed Poe\nTom Vogt\nRobert W Vawter\nRichard Lowgren\n\nManual writers welcome.\n")
+		vadjust = scroll.get_vadjustment()
+		vadjust.set_value(0)
+		text.show()
+
+		button = GtkButton("Close")
+		button.connect("clicked", window.hide)
+		vbox.pack_start(button, expand=FALSE)
+		button.show()
diff -urN storm_0.3/usr/share/storm/modules/mail.py storm_0.5.2/usr/share/storm/modules/mail.py
--- storm_0.3/usr/share/storm/modules/mail.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/mail.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,727 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+import time, rfc822, string, os, socket, re
+
+class Mail:
+	def __init__(self, parent):
+		self.parent = parent		
+		self.cmap = self.parent.window.get_colormap()
+
+		# start the gui
+		frame = GtkVBox()
+		frame.show()
+		frame.set_name("frame")
+		rc_parse_string('widget "*frame*" style "storm_normal"') 
+
+		hbox1 = GtkHBox()
+		frame.pack_start(hbox1, expand=FALSE)
+		hbox1.show()
+
+		self.folders_menu = GtkMenu()
+		self.folders_menu.show()
+		for self.folder in os.listdir(self.parent.storm_usermaildirdir):
+			if self.folder != "CVS":
+				folder_menuitem = GtkMenuItem(self.folder)
+				folder_menuitem.connect("activate", self.select_folder, self.folder)
+				self.folders_menu.append(folder_menuitem)
+				folder_menuitem.show()
+
+		self.folders_optionmenu = GtkOptionMenu()
+		self.folders_optionmenu.set_menu(self.folders_menu)
+		hbox1.pack_start(self.folders_optionmenu, expand=FALSE)
+		self.folders_optionmenu.show()
+
+		self.current_folder = "Inbox"
+
+		hsep = GtkHSeparator()
+		hbox1.pack_start(hsep)
+		hsep.show()
+
+		headers = []
+		vbox = GtkVBox()
+		frame.pack_start(vbox)
+		vbox.show()
+
+		hbox2 = GtkHBox()
+		self.toolbar_hbox = hbox2
+		vbox.pack_start(hbox2, expand=FALSE)
+		hbox2.show()
+
+		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		self.main_toolbar = toolbar
+		toolbar.set_button_relief(RELIEF_NONE)
+		toolbar.set_space_size(10)
+		hbox2.pack_start(toolbar, expand=FALSE)
+		toolbar.show()
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/read.xpm")
+		toolbar.append_item(None, 'Read the selected message', None, GtkPixmap(pix, mask), self.read_message)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/new.xpm")
+		toolbar.append_item(None, 'Compose a new message', None, GtkPixmap(pix, mask), self.new_message)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/reply.xpm")
+		toolbar.append_item(None, 'Reply to the select message', None, GtkPixmap(pix, mask), self.reply_message)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/trash.xpm")
+		toolbar.append_item(None, 'Delete the selected message', None, GtkPixmap(pix, mask), self.delete_message)
+
+		toolbar2 = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar2.set_button_relief(RELIEF_NONE)
+		toolbar2.set_space_size(10)
+		hbox2.pack_end(toolbar2, expand=FALSE)
+		toolbar2.show()
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/list.xpm")
+		toolbar2.append_item(None, 'Show Column Names', None, GtkPixmap(pix, mask), self.clist_titles_change)
+
+		cscroll = GtkScrolledWindow()
+		cscroll.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
+		vbox.pack_start(cscroll)
+		cscroll.show()
+
+		clist=GtkCList(3)
+		cscroll.add(clist)
+		clist.connect("select-row" , self.select_message)
+		clist.connect("click-column" , self.select_clist_column)
+		clist.set_flags(CAN_FOCUS)
+		clist.set_usize(-1, -1)
+		clist.set_column_title(0, "From")
+		clist.set_column_title(1, "Subject")
+		clist.set_column_title(2, "Date")
+		clist.set_column_width(0, 80)
+		clist.set_column_width(1, 80)
+		clist.set_column_width(2, 35)
+		clist.set_selection_mode(SELECTION_SINGLE)
+		clist.column_titles_hide()
+		self.clist_titles_state = FALSE
+		clist.show()
+		self.clist=clist
+		frame.show()
+		self.frame=frame
+
+		self.deliverycount = 0
+		self.read_maildir()
+		self.selected_message = ''
+		self.flite_status = 0
+
+	def clist_titles_change(self, *args):
+		'''Called when the column titles button is pressed.'''
+
+		# - If the column titles are hidden, show them, and vice versa
+		if self.clist_titles_state == FALSE:
+			self.clist.column_titles_show()
+			self.clist_titles_state = TRUE
+		else:
+			self.clist.column_titles_hide()
+			self.clist_titles_state = FALSE
+
+	def select_clist_column(self, *args):
+		'''Called when a comumn title is clicked, then sorts the list by it.'''
+
+		self.update_list(args[1])
+
+	def select_folder(self, *args):
+		'''Called when a folder is selected.'''
+
+		self.current_folder = args[1]
+		self.read_maildir()
+
+	def read_maildir(self):
+		'''Reads the current maildir folder.'''
+
+		self.message = []
+
+		# - Read the 2 maildir subdirectorys
+		for maildir_folder in ['new','cur']:
+
+			# - List the messages/files in the directorys
+			messages = os.listdir(self.parent.storm_usermaildirdir + self.current_folder + '/' + maildir_folder)
+
+			# - Loop through them all
+			for message_file in messages:
+				
+				if message_file != "CVS":
+
+					# - Open and read each one
+					file = open(self.parent.storm_usermaildirdir + self.current_folder + '/' + maildir_folder + '/' + message_file)
+					full_message = file.read()
+					file.close()
+					
+					# - Split the headers from the main message, and save them in a temp file
+					message_parts = string.split(full_message, '\n\n', 1)
+					# - Make sure the message actualy has some headers
+					if len(message_parts) > 1:
+						tmp_file = open("/tmp/storm.tmp", 'w')
+						tmp_file.write(message_parts[0])
+						tmp_file.close()
+						tmp_file = open("/tmp/storm.tmp", 'r')
+
+						# - Use the rfc822 module to get some headers
+						header = rfc822.Message(tmp_file)
+						headers = []
+
+						for header_name in ['From', 'To', 'Date', 'Subject']:
+							mail_header = header.getheader(header_name)
+
+							# - If there's no such header just put a blank string instead
+							if mail_header == None:
+								headers.append('')
+
+							else:
+								headers.append(mail_header)
+
+						tmp_file.close()
+
+						# - Append the other message parts to our temp list
+						headers.append(message_parts[0])
+						headers.append(message_parts[1])
+						headers.append(message_file)
+						headers.append(maildir_folder)
+
+						# - Add the temp list to the main messages list
+						self.message.append(headers)
+
+		self.update_list()
+
+	def update_list(self, column=''):
+		'''Updates the messages list.'''
+
+		# - If there's a column varible passed sort the messages by it
+		if column != '':
+			self.message.sort(lambda x, y, column=column: cmp(x[column], y[column]))
+
+		clist_color = self.cmap.alloc("grey87");
+		v = 0
+
+		# - Clear and freeze the list for good looks
+		self.clist.clear()
+		self.clist.freeze()
+
+		x = 0
+
+		while x < len(self.message):
+
+			# - Append the message headers to the list. If the current folder is Outbox insert To instead of From
+			if self.current_folder == 'Outbox':
+				self.clist.append([self.message[x][1], self.message[x][3], self.message[x][2]])
+			else:
+				self.clist.append([self.message[x][0], self.message[x][3], self.message[x][2]])
+
+			if v == 0:
+				self.clist.set_background(x, clist_color)
+				v = 1
+			else:
+				v = 0
+			x = x + 1
+
+		# - Change the clist column title to TO if the current folder is Outbox. Also enable the edit button if the folder is Outbox.
+		if self.current_folder == 'Outbox':
+			self.clist.set_column_title(0, "To")
+			self.main_toolbar.hide()
+
+			toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+			self.main_toolbar = toolbar
+			toolbar.set_button_relief(RELIEF_NONE)
+			toolbar.set_space_size(10)
+			self.toolbar_hbox.pack_start(toolbar, expand=FALSE)
+			toolbar.show()
+
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/read.xpm")
+			toolbar.append_item(None, 'Read the selected message', None, GtkPixmap(pix, mask), self.read_message)
+
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/new.xpm")
+			toolbar.append_item(None, 'Compose a new message', None, GtkPixmap(pix, mask), self.new_message)
+
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/edit.xpm")
+			toolbar.append_item(None, 'Edit the selected message', None, GtkPixmap(pix, mask), self.edit_message)
+
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/trash.xpm")
+			toolbar.append_item(None, 'Delete the selected message', None, GtkPixmap(pix, mask), self.delete_message)
+		else:
+			self.clist.set_column_title(0, "From")
+			self.main_toolbar.hide()
+
+			toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+			self.main_toolbar = toolbar
+			toolbar.set_button_relief(RELIEF_NONE)
+			toolbar.set_space_size(10)
+			self.toolbar_hbox.pack_start(toolbar, expand=FALSE)
+			toolbar.show()
+
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/read.xpm")
+			toolbar.append_item(None, 'Read the selected message', None, GtkPixmap(pix, mask), self.read_message)
+
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/new.xpm")
+			toolbar.append_item(None, 'Compose a new message', None, GtkPixmap(pix, mask), self.new_message)
+
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/reply.xpm")
+			toolbar.append_item(None, 'Reply to the select message', None, GtkPixmap(pix, mask), self.reply_message)
+
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/trash.xpm")
+			toolbar.append_item(None, 'Delete the selected message', None, GtkPixmap(pix, mask), self.delete_message)
+
+		self.clist.thaw()
+
+	def select_message(self, *args):
+		'''Called when a message is selected form the list.'''
+
+		self.selected_message = args[1]
+
+	def new_message(self, *args):
+		'''Opens up a new message window.'''
+
+		self.do_message("new")
+
+	def reply_message(self, *args):
+		'''Opens up a reply message window.'''
+
+		self.do_message("reply")
+
+	def reply_read_message(self, *args):
+		'''Opens up a reply message window. From a read window'''
+
+		self.read_window.hide()
+		self.do_message("reply")
+
+	def edit_message(self, *args):
+		'''Edits the selected message.'''
+
+		self.do_message("edit")
+
+	def read_message(self, *args):
+		'''Reads the selected message.'''
+
+		if self.selected_message != '':
+
+			if self.message[self.selected_message][7] == "new":
+				os.rename(self.parent.storm_usermaildirdir + self.current_folder + '/new/' + self.message[self.selected_message][6], self.parent.storm_usermaildirdir + self.current_folder + '/cur/' + self.message[self.selected_message][6])
+				self.message[self.selected_message][7] = "cur"
+
+			self.do_message("read")
+
+	def delete_message(self, *args):
+		'''Deletes the selected message.'''
+
+		# - Delete the actual maildir folder
+		os.unlink(self.parent.storm_usermaildirdir + self.current_folder + '/' + self.message[self.selected_message][7] + '/' + self.message[self.selected_message][6])
+
+		# - Delete the current data of it
+		del self.message[self.selected_message]
+
+		# - Remove it from the messages list
+		self.clist.remove(self.selected_message)
+
+		# - Update the number of messages on the today page
+		self.parent.today.update_today()
+
+	def delete_read_message(self, *args):
+		'''Deletes the selected message.'''
+
+		# - Close the current read window
+		self.read_window.hide()
+
+		# - Delete the actual maildir folder
+		os.unlink(self.parent.storm_usermaildirdir + self.current_folder + '/' + self.message[self.selected_message][7] + '/' + self.message[self.selected_message][6])
+
+		# - Delete the current data of it
+		del self.message[self.selected_message]
+
+		# - Remove it from the messages list
+		self.clist.remove(self.selected_message)
+
+		# - Update the number of messages on the today page
+		self.parent.today.update_today()
+
+	def send_message_now(self, *args):
+		'''Sends the current message and syncs stright away.'''
+
+		self.send_message()
+		self.parent.sync.smtp()
+
+	def send_message(self, *args):
+		'''Sends the current message.'''
+
+		# - Get the current date
+		thedate = time.strftime("%a, %d %b %Y %X", time.localtime(time.time()))
+		thedate = string.strip(thedate)
+
+		# - Get the values of the entry boxes
+		to_text = self.to_entry.get_text()
+		from_text = self.from_entry.get_text()
+		subject_text = self.subject_entry.get_text()
+		message_text = self.message_text.get_chars(0, -1)
+
+		# - Open up a new maildir message
+		message_filename = str(time.time()) + '.' + str(os.getpid()) + '_' + str(self.deliverycount) + '.' + str(socket.gethostname())
+		filename = self.parent.storm_usermaildirdir + 'Outbox/new/' + message_filename
+		file = open(filename, 'w')
+
+		# - Write the message to it
+		file.write("To: " + to_text + "\n" + "Subject: " + subject_text + "\n" + "From: " + from_text + "\n" + "Reply-To: " + self.parent.config[1] + "\n" + "Date: " + thedate + "\n\n" + message_text)
+
+		file.close()
+
+		# - If we're in the Outbox folder, update the message list
+		if self.current_folder == "Outbox":
+
+			# - Add the message to the message list
+			self.message.append([from_text,to_text,thedate,subject_text,"To: " + to_text + "\n" + "Subject: " + subject_text + "\n" + "From: " + from_text + "\n" + "Reply-To: " + self.parent.config[1] + "\n" + "Date: " + thedate,message_text,message_filename,"new"])
+
+			# - Update the list
+			self.clist.append([to_text,subject_text,thedate])
+
+		# - Update the number of messages on the today page
+		self.parent.today.update_today()
+
+		# - Close the current read window
+		self.read_window.hide()
+
+		# - Increment the delivery count for maildir
+		self.deliverycount = self.deliverycount + 1
+
+	def save_edited_message(self, *args):
+		'''Saves and edited message.'''
+
+		# - Overwite the old varibles
+		self.message[self.selected_message][0] = self.from_entry.get_text()
+		self.message[self.selected_message][1] = self.to_entry.get_text()
+		self.message[self.selected_message][3] = self.subject_entry.get_text()
+		self.message[self.selected_message][5] = self.message_text.get_chars(0, -1)
+
+		# - Get the current date
+		thedate = time.strftime("%a, %d %b %Y %X", time.localtime(time.time()))
+		thedate = string.strip(thedate)
+
+		# - Open the maildir message file and write in the new data
+		file = open(self.parent.storm_usermaildirdir + self.current_folder + '/' + self.message[self.selected_message][7] + '/' + self.message[self.selected_message][6], 'w')
+		file.write("To: " + self.message[self.selected_message][1] + "\n" + "Subject: " + self.message[self.selected_message][3] + "\n" + "From: " + self.message[self.selected_message][0] + "\n" + "Reply-To: " + self.parent.config[1] + "\n" + "Date: " + thedate + "\n\n" + self.message[self.selected_message][5])
+		file.close()
+
+		# - Update the message list
+		if self.current_folder == "Outbox":
+			self.clist.set_text(self.selected_message,0,self.message[self.selected_message][1])
+			self.clist.set_text(self.selected_message,1,self.message[self.selected_message][3])
+			self.clist.set_text(self.selected_message,2,thedate)
+		else:
+			self.clist.set_text(self.selected_message,0,self.message[self.selected_message][0])
+			self.clist.set_text(self.selected_message,1,self.message[self.selected_message][3])
+			self.clist.set_text(self.selected_message,2,thedate)
+
+		self.read_window.hide()
+
+	def new_contact(self, *args):
+		'''Makes a new contact from a message.'''
+
+		# - Get the from email address
+		to = self.to_entry.get_text()
+		to = string.strip(to)
+
+		# - Extract the name and email
+		to_re = re.compile('^["]?(.*)["]?[ ]?<(.*)>$')
+		data = re.findall(to_re, to)
+
+		# - Make the new contact
+		self.parent.contacts.do_contact("new", data[0][0], data[0][1])
+
+	def select_to(self, *args):
+		'''Select a contact from the list.'''
+
+		# our main gtk window
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		self.select_name_window = window
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - Contacts")
+		window.set_usize(200, 200)
+		window.show()
+
+		scroll = GtkScrolledWindow()
+		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
+		window.add(scroll)
+		scroll.show()
+
+		clist = GtkCList(2)
+		self.select_name_clist = clist
+		scroll.add(clist)
+		clist.connect("select_row" , self.select_name_return)
+		clist.set_flags(CAN_FOCUS)
+		clist.set_sort_column(0)
+		clist.set_usize(-1, -1)
+		clist.set_column_title(0, "Name")
+		clist.set_column_width(0, 80)
+		clist.set_column_title(1, "Email")
+		clist.set_column_width(1, 80)
+		clist.set_selection_mode(SELECTION_SINGLE)
+		clist.column_titles_show()
+		clist.show()
+
+		# - Update the list with contacts
+		self.parent.contacts.update_list(clist)
+
+	def select_name_return(self, *args):
+		'''Called when a contact is selected.'''
+
+		# - Get the selected contact
+		x = args[1]
+
+		# - Backup any previous contacts added
+		to_text = self.to_entry.get_text()
+		z = 0
+
+		# - Extract the name and email
+		while z < len(self.parent.contacts.contacts_config):
+
+			if self.parent.contacts.contacts_config[z][2] == "name":
+				mname = self.parent.contacts.contact[x][z]
+
+			elif self.parent.contacts.contacts_config[z][2] == "email":
+				memail = self.parent.contacts.contact[x][z]
+
+			z = z + 1
+
+		# - If there was no previously added contacts, just add it
+		if to_text == '':
+			self.to_entry.set_text('"' + mname + '" <' + memail + '>')
+
+		# - Otherwise put a , inbetween fro multiple contacts
+		else:
+			self.to_entry.set_text(to_text + ', "' + mname + '" <' + memail + '>')
+
+		# - Hide the contacts select window
+		self.select_name_window.hide()
+
+	def next_message(self, *args):
+		self.read_window.hide()
+		next_message = self.selected_message + 1
+		if next_message < len(self.message):
+			self.clist.select_row(next_message, 0)
+			self.read_message()
+
+	def previous_message(self, *args):
+		self.read_window.hide()
+		next_message = self.selected_message - 1
+		if next_message > -1:
+			self.clist.select_row(next_message, 0)
+			self.read_message()
+
+	def next_message_delete(self, *args):
+		'''Deletes the currently open message. Then opens the next.'''
+
+		# - Delete the actual maildir folder
+		os.unlink(self.parent.storm_usermaildirdir + self.current_folder + '/' + self.message[self.selected_message][7] + '/' + self.message[self.selected_message][6])
+
+		# - Delete the current data of it
+		del self.message[self.selected_message]
+
+		# - Remove it from the messages list
+		self.clist.remove(self.selected_message)
+
+		# - Update the number of messages on the today page
+		self.parent.today.update_today()
+
+		self.selected_message = self.selected_message - 1
+
+		# - Open the next message in line
+		self.next_message()
+
+	def do_message(self, mtype):
+		'''Main gui message window. Used for making and editing email messages.'''
+
+		# our main gtk window
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		self.read_window = window
+		window.connect("delete_event", window.hide)
+		if mtype != "new":
+			window.set_title("Storm - " + self.message[self.selected_message][3])
+		else:
+			window.set_title("Storm - Message")
+		if screen_width() > 300:
+			window.set_usize(280, 240)
+		else:
+			window.set_usize(240, 280)
+		window.show()
+
+		vbox = GtkVBox()
+		window.add(vbox)
+		vbox.show()
+
+		hbox = GtkHBox()
+		vbox.pack_start(hbox, expand=FALSE)
+		hbox.show()
+
+		# make the toobar
+		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar.set_button_relief(RELIEF_NONE)
+		toolbar.set_space_size(10)
+		hbox.pack_start(toolbar, expand=FALSE)
+		toolbar.show()
+		# add the evolution pixmaps to the toolbar
+		if mtype == "read":
+			pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/reply.xpm")
+			toolbar.append_item(None, 'Reply', None, GtkPixmap(pix, mask), self.reply_message)
+
+			pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/trash.xpm")
+			toolbar.append_item(None, 'Delete message', None, GtkPixmap(pix, mask), self.delete_read_message)
+		elif mtype == "edit":
+			pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/save.xpm")
+			toolbar.append_item(None, 'Save message', None, GtkPixmap(pix, mask), self.save_edited_message)
+		else:
+			pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/send-later.xpm")
+			toolbar.append_item(None, 'Send later', None, GtkPixmap(pix, mask), self.send_message)
+
+			pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/send.xpm")
+			toolbar.append_item(None, 'Send now', None, GtkPixmap(pix, mask), self.send_message_now)
+
+		pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/cancel.xpm")
+		toolbar.append_item(None, 'Close this window', None, GtkPixmap(pix, mask), window.hide)
+
+		# make the toobar
+		toolbar2 = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar2.set_button_relief(RELIEF_NONE)
+		toolbar2.set_space_size(10)
+		hbox.pack_end(toolbar2, expand=FALSE)
+		toolbar2.show()
+
+		pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/left.xpm")
+		toolbar2.append_item(None, 'Text-to-Speech for the current message', None, GtkPixmap(pix, mask), self.previous_message)
+
+		pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/trash-next.xpm")
+		toolbar2.append_item(None, 'Text-to-Speech for the current message', None, GtkPixmap(pix, mask), self.next_message_delete)
+
+		pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/right.xpm")
+		toolbar2.append_item(None, 'Text-to-Speech for the current message', None, GtkPixmap(pix, mask), self.next_message)
+
+		pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/talk.xpm")
+		toolbar2.append_item(None, 'Text-to-Speech for the current message', None, GtkPixmap(pix, mask), self.flite_read_email)
+
+		to_hbox = GtkHBox()
+		vbox.pack_start(to_hbox, expand=FALSE)
+		to_hbox.show()
+		to_button = GtkButton()
+		to_hbox.pack_start(to_button, expand=FALSE)
+		to_button.show()
+		message_tips = GtkTooltips()
+		if mtype == "read" or mtype == "edit":
+			message_tips.set_tip(to_button, 'Add contact to address book')
+			to_button.connect("clicked", self.new_contact)
+			pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/contacts-add.xpm")
+			to_pixmap = GtkPixmap(pix, mask)
+		else:
+			message_tips.set_tip(to_button, 'Select a recipient from the address book')
+			to_button.connect("clicked", self.select_to)
+			pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/contacts.xpm")
+			to_pixmap = GtkPixmap(pix, mask)
+		to_button.add(to_pixmap)
+		to_pixmap.show()
+		to_entry = GtkEntry()
+		if mtype == "read":
+			to_entry.set_editable(FALSE)
+			to_entry.set_text(self.message[self.selected_message][0])
+		elif mtype == "reply":
+			to_entry.set_editable(TRUE)
+			to_entry.set_text(self.message[self.selected_message][0])
+		if mtype == "edit":
+			to_entry.set_editable(TRUE)
+			to_entry.set_text(self.message[self.selected_message][1])
+		else:
+			to_entry.set_editable(TRUE)
+		to_hbox.pack_start(to_entry)
+		to_entry.show()
+		self.to_entry = to_entry
+		from_entry = GtkEntry()
+		if mtype == "read":
+			from_entry.set_editable(FALSE)
+			from_entry.set_text(self.message[self.selected_message][2])
+		elif mtype == "reply" or mtype == "new":
+			from_entry.set_editable(TRUE)
+			from_entry.set_text('"' + self.parent.config[0] + '" <' + self.parent.config[1] + '>')
+		if mtype == "edit":
+			from_entry.set_editable(TRUE)
+			from_entry.set_text(self.message[self.selected_message][0])
+		else:
+			from_entry.set_editable(TRUE)
+		vbox.pack_start(from_entry, expand=FALSE)
+		from_entry.show()
+		self.from_entry = from_entry
+
+		subject_entry = GtkEntry()
+		if mtype == "read":
+			subject_entry.set_editable(FALSE)
+			subject_entry.set_text(self.message[self.selected_message][3])
+		if mtype == "edit":
+			subject_entry.set_editable(TRUE)
+			subject_entry.set_text(self.message[self.selected_message][3])
+		elif mtype == "reply":
+			subject_entry.set_editable(TRUE)
+			subject_entry.set_text('Re: ' + self.message[self.selected_message][3])
+		else:
+			subject_entry.set_editable(TRUE)
+		vbox.pack_start(subject_entry, expand=FALSE)
+		subject_entry.show()
+		self.subject_entry = subject_entry
+		scroll = GtkScrolledWindow()
+		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
+		vbox.pack_start(scroll)
+		scroll.show()
+
+		text = GtkText()
+		self.message_text = text
+		if mtype == "read":
+			text.set_editable(FALSE)
+		else:
+			text.set_editable(TRUE)
+		scroll.add(text)
+		text.show()
+		text.freeze()
+		if mtype == "read" or mtype == "edit":
+			text.insert(None, None, None, self.message[self.selected_message][5])
+		elif mtype == "reply":
+			sig_file = open(self.parent.storm_usercfgdir + 'sig', 'r')
+			sig = sig_file.read()
+			sig_file.close()
+
+			o_lines = string.split(self.message[self.selected_message][5], '\n')
+			m_text = ''
+			for o_line in o_lines:
+				m_text = m_text + '> ' + o_line + '\n'
+			m_text_head = '\n> -----Original Message-----\n> From: ' + self.message[self.selected_message][0] + '\n> Subject: ' + self.message[self.selected_message][3] + '\n> Date: ' + self.message[self.selected_message][2] + '\n> \n'
+			text.insert(None, None, None, '\n\n' + '-- \n' + sig + '\n' + m_text_head + m_text)
+		elif mtype == "new":
+			sig_file = open(self.parent.storm_usercfgdir + 'sig', 'r')
+			sig = sig_file.read()
+			sig_file.close()
+			text.insert(None, None, None, '\n\n' + '-- \n' + sig)
+		vadjust = scroll.get_vadjustment()
+		vadjust.set_value(0)
+		text.thaw()
+
+	def flite_read_email(self, *args):
+		if self.flite_status == 0:
+			if os.path.exists('/usr/bin/flite16k') > 0:
+				from_re = re.compile('^["]?(.*)["]?[ ]?<(.*)>$')
+				m_from = re.findall(from_re, self.message[self.selected_message][0])
+				os.system('/usr/bin/flite16k -t "Email from ' + m_from[0][0] + ' received on ' + self.message[self.selected_message][2] + '. ' + self.message[self.selected_message][5] + '"')
+				self.flite_status = 1
+		elif self.flite_status == 1:
+			ps = os.popen('ps -ef |grep flite').readlines()
+			pid = string.split(ps[0])
+			os.system('kill ' + pid[1])
+			self.flite_status = 0
diff -urN storm_0.3/usr/share/storm/modules/notes.py storm_0.5.2/usr/share/storm/modules/notes.py
--- storm_0.3/usr/share/storm/modules/notes.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/notes.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,226 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+from modules.xmlparse import *
+import string
+
+class Notes:
+	def __init__(self, parent):
+		self.parent = parent
+
+		frame=GtkFrame()
+		self.frame = frame
+		frame.set_usize(-1, -1)
+		frame.set_shadow_type("GTK_SHADOW_ETCHED_IN")
+		frame.set_label("Notes")
+		frame.set_label_align(0, -1)
+		frame.set_name("frame")
+		rc_parse_string('widget "*frame*" style "storm_normal"') 
+		frame.show()
+
+		vpaned = GtkVPaned()
+		frame.add(vpaned)
+		vpaned.show()
+
+		vbox = GtkVBox()
+		vpaned.pack1(vbox)
+		vbox.show()
+
+		# make the toobar
+		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar.set_button_relief(RELIEF_NONE)
+		toolbar.set_space_size(10)
+		vbox.pack_start(toolbar, expand=FALSE)
+		toolbar.show()
+		# add the evolution pixmaps to the toolbar
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/new.xpm")
+		toolbar.append_item(None, 'Make a new note', None, GtkPixmap(pix, mask), self.new_note)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save.xpm")
+		toolbar.append_item(None, 'Save notes', None, GtkPixmap(pix, mask), self.save_notes)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/draw.xpm")
+		toolbar.append_item(None, 'Add a drawing for the note', None, GtkPixmap(pix, mask), self.parent.scribble.new_scribble)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/trash.xpm")
+		toolbar.append_item(None, 'Delete the selected note', None, GtkPixmap(pix, mask), self.delete_note)
+
+		cscroll = GtkScrolledWindow()
+		cscroll.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
+		vbox.pack_start(cscroll)
+		cscroll.show()
+
+		clist=GtkCList(2)
+		cscroll.add(clist)
+		clist.connect("select_row" , self.select_note)
+		clist.set_flags(CAN_FOCUS)
+		clist.set_usize(-1, 87)
+		clist.set_column_title(0, "Saved")
+		clist.set_column_width(0, 16)
+		clist.set_column_title(1, "Title")
+		clist.set_column_width(1, 180)
+		clist.set_selection_mode(SELECTION_SINGLE)
+		clist.column_titles_hide()
+		clist.show()
+		self.clist=clist
+
+		scroll = GtkScrolledWindow()
+		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
+		self.scroll = scroll
+		vpaned.pack2(scroll)
+		scroll.show()
+
+		text = GtkText()
+		text.connect("changed", self.text_changed)
+		self.text = text
+		text.set_editable(TRUE)
+		scroll.add(text)
+		text.show()
+
+		self.update_list()
+
+	def update_list(self):
+		'''Updates th elsit of notes.'''
+
+		# - Parse the xml file
+		xml = XmlParse()
+		notes_text = xml.parse_xml_file(self.parent.storm_userdatadir + 'notes.xml', 'note')
+
+		self.note = []
+
+		self.clist.freeze()
+
+		for note_text in notes_text:
+
+			# - Extract the first line as the title
+			tmp = string.split(note_text, '\n', 1)
+
+			if tmp[0] == '':
+				note_title = '<no title>'
+			else:
+				note_title = tmp[0]
+
+			# - Append the note to the list
+			self.clist.append(['', note_title])
+			self.note.append([0, note_text])
+
+		self.clist.thaw()
+
+	def select_note(self, *args):
+		'''Called when a note is selected from the list.'''
+
+		self.selected_note = args[1]
+
+		# - Insert the notes text into the text box
+		self.freeze_text = 1
+		self.text.freeze()
+		self.text.delete_text(0, -1)
+		self.text.insert(None,None,None,self.note[self.selected_note][1])
+		self.text.thaw()
+		self.freeze_text = 0
+
+		self.text.set_position(len(self.note[self.selected_note][1]))
+		self.text.grab_focus()
+
+	def new_note(self, *args):
+		'''Makes a new note.'''
+
+		# - Append the blank note title to the list
+		self.clist.append(['', '<no title>'])
+
+		# - Add the real new blank note data
+		self.note.append([0, ''])
+		self.selected_note = len(self.note) - 1
+		
+		# - Add a not saved icon since the note is new
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save-tiny-red.xpm")
+		pixmap = GtkPixmap(pix, mask)
+		self.clist.set_pixmap(self.selected_note, 0, pixmap)
+
+		# - Selected the note
+		self.clist.select_row(self.selected_note, 1)
+
+		# - Grab the text boxes focus so we can start entrting data
+		self.text.grab_focus()
+
+	def delete_note(self, *args):
+		'''Delete the currently selected note.'''
+
+		# - Delete the note data
+		del self.note[self.selected_note]
+
+		# - Remove it from the list
+		self.clist.remove(self.selected_note)
+
+		# - Delete any existing text box text
+		self.freeze_text = 1
+		self.text.delete_text(0, -1)
+		self.freeze_text = 0
+
+		# - Save the rest of the notes
+		self.save_notes()
+
+	def text_changed(self, *args):
+		'''Updates the notes title when the text is edited.'''
+
+		# - If we're not just inserting text from a note being selected
+		if self.freeze_text == 0:
+
+			# - Get the notes text
+			txt = self.text.get_chars(0, -1)
+
+			# - Extract the first line as the title
+			tmp = string.split(txt, '\n', 1)
+
+			# - Refresh the next for the notes list
+			self.clist.set_text(self.selected_note, 1, tmp[0])
+
+			# - Update the note with the new data
+			self.note[self.selected_note][1] = txt
+
+			# - See if the note has been saved or not
+			if self.note[self.selected_note][0] == 0:
+				self.note[self.selected_note][0] = 1
+
+				# - Change the pixmap
+				pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save-tiny-red.xpm")
+				pixmap = GtkPixmap(pix, mask)
+				self.clist.set_pixmap(self.selected_note, 0, pixmap)
+				
+	def save_notes(self, *args):
+		'''Saves edited notes.'''
+
+		# - Open up the xml file
+		file = open(self.parent.storm_userdatadir + 'notes.xml', 'w')
+
+		# - Write each note to it
+		x = 0
+		while x < len(self.note):
+			file.write('<note>' + self.note[x][1] + '</note>\n\n')
+			
+			if self.note[x][0] == 1:
+				self.note[x][0] = 0
+
+				# - Change the pixmap
+				pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/blank-16.xpm")
+				pixmap = GtkPixmap(pix, mask)
+				self.clist.set_pixmap(x, 0, pixmap)
+			x = x + 1
+		file.close()
diff -urN storm_0.3/usr/share/storm/modules/prefs.py storm_0.5.2/usr/share/storm/modules/prefs.py
--- storm_0.3/usr/share/storm/modules/prefs.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/prefs.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,659 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+import string, os, sys, re
+
+class Prefs:
+	def __init__(self, parent):
+		self.parent = parent
+
+	def show_config(self, *args):
+		# our main gtk window
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		self.parent.config_window = window
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - Prefs")
+		if screen_width() > 300:
+			window.set_usize(280, 240)
+		else:
+			window.set_usize(240, 280)
+		window.set_name("window")
+		rc_parse_string('widget "*window*" style "storm_normal"') 
+		window.show()
+
+		vbox = GtkVBox()
+		window.add(vbox)
+		vbox.show()
+		userdatafile = open(self.parent.storm_userdatafile, 'r')
+		raw = userdatafile.read()
+		userdatafile.close()
+		storm_config = string.split(raw, '\n')
+		self.storm_config = storm_config
+		sync_file = open(self.parent.storm_usercfgdir + 'sync', 'r')
+		raw = sync_file.read()
+		sync_config = string.split(raw, '\n')
+		sync_file.close()
+		smtp_file = open(self.parent.storm_usercfgdir + 'smtp', 'r')
+		raw = smtp_file.read()
+		smtp_config = string.split(raw, '\n')
+		smtp_file.close()
+		sig_file = open(self.parent.storm_usercfgdir + 'sig', 'r')
+		sig = sig_file.read()
+		sig_file.close()
+
+		# - Get Animail config
+		if os.path.exists('/usr/share/animail') > 0:
+			ani_file = open(os.environ['HOME'] + '/.animail/animailrc', 'r')
+			ani_raw_config = ani_file.read()
+			ani_file.close()
+
+			ani_config_re = re.compile('<server>([0-9A-Za-z \$\t\n\r<>\.@\-:,/\\\-_]*?)</server>')
+			ani_server_conf_lines = re.findall(ani_config_re, ani_raw_config)
+
+			ani_config_re = re.compile('<global>([0-9A-Za-z \$\t\n\r<>\.@\-:,/\\\-_]*?)</global>')
+			ani_global_conf_lines = re.findall(ani_config_re, ani_raw_config)
+
+			ani_conf_all = ani_server_conf_lines[0] + '\n' + ani_global_conf_lines[0]
+
+			ani_config_username = ''
+			ani_config_password = ''
+			ani_config_host = ''
+			self.ani_config_protocol = 'POP3'
+			ani_config_protocol = 'POP3'
+			ani_config_ssl = 'no'
+			ani_config_port = '110'
+			ani_config_keepmessages = 'yes'
+			ani_config_maxsize = '0'
+			ani_config_maxmessages = '0'
+
+			ani_conf_lines = string.split(ani_conf_all, '\n')
+
+			for ani_conf_line in ani_conf_lines:
+				print ani_conf_line
+				ani_conf_line_parts = string.split(ani_conf_line, ':')
+				print ani_conf_line_parts
+
+				if ani_conf_line_parts[0] == "UserName":
+					if len(ani_conf_line_parts) > 0:
+						ani_config_username = ani_conf_line_parts[1]
+
+				elif ani_conf_line_parts[0] == "Password":
+					if len(ani_conf_line_parts) > 0:
+						ani_config_password = ani_conf_line_parts[1]
+
+				elif ani_conf_line_parts[0] == "Address":
+					if len(ani_conf_line_parts) > 0:
+						ani_config_host = ani_conf_line_parts[1]
+
+				elif ani_conf_line_parts[0] == "Protocol":
+					if len(ani_conf_line_parts) > 0:
+						ani_config_protocol = ani_conf_line_parts[1]
+
+				elif ani_conf_line_parts[0] == "SSL":
+					if len(ani_conf_line_parts) > 0:
+						ani_config_ssl = ani_conf_line_parts[1]
+
+				elif ani_conf_line_parts[0] == "Port":
+					if len(ani_conf_line_parts) > 0:
+						ani_config_port = ani_conf_line_parts[1]
+
+				elif ani_conf_line_parts[0] == "KeepOnServer":
+					if len(ani_conf_line_parts) > 0:
+						ani_config_keepmessages = ani_conf_line_parts[1]
+
+				elif ani_conf_line_parts[0] == "MaxSize":
+					if len(ani_conf_line_parts) > 0:
+						ani_config_maxsize = ani_conf_line_parts[1]
+
+				elif ani_conf_line_parts[0] == "MaxNumber":
+					if len(ani_conf_line_parts) > 0:
+						ani_config_maxmessages = ani_conf_line_parts[1]
+
+		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar.set_button_relief(RELIEF_NONE)
+		toolbar.set_space_size(10)
+		vbox.pack_start(toolbar, expand=FALSE)
+		toolbar.show()
+		# add the evolution pixmaps to the toolbar
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save.xpm")
+		toolbar.append_item(None, 'Save preferences', None, GtkPixmap(pix, mask), self.save_config)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/cancel.xpm")
+		toolbar.append_item(None, 'Close this window', None, GtkPixmap(pix, mask), window.hide)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/help.xpm")
+		toolbar.append_item(None, 'About', None, GtkPixmap(pix, mask), self.parent.help.about)
+
+		self.notebook = GtkNotebook()
+		vbox.pack_start(self.notebook)
+		self.notebook.show()
+
+		mail_label = GtkLabel("User")
+		mail_label.show()
+
+		table1=GtkTable(2, 3)
+		self.notebook.append_page(table1, mail_label)
+		table1.set_usize(-1, -1)
+		table1.set_row_spacings(0)
+		table1.set_col_spacings(0)
+		label1=GtkLabel()
+		table1.attach(label1, 0, 1, 0, 1, FILL, 0, 0, 0)
+		label1.set_usize(-1, -1)
+		label1.set_text("Name")
+		label1.set_justify(JUSTIFY_CENTER)
+		label1.set_alignment(0, 0.5)
+		label1.set_padding(0, 0)
+		label1.show()
+		self.label1=label1
+		label2=GtkLabel()
+		table1.attach(label2, 0, 1, 1, 2, FILL, 0, 0, 0)
+		label2.set_usize(-1, -1)
+		label2.set_text("E-Mail")
+		label2.set_justify(JUSTIFY_CENTER)
+		label2.set_alignment(0, 0.5)
+		label2.set_padding(0, 0)
+		label2.show()
+		self.label2=label2
+		label11=GtkLabel()
+		table1.attach(label11, 0, 1, 2, 3, FILL, 0, 0, 0)
+		label11.set_usize(-1, -1)
+		label11.set_text("Signature")
+		label11.set_justify(JUSTIFY_CENTER)
+		label11.set_alignment(0, 0.5)
+		label11.set_padding(0, 0)
+		label11.show()
+		self.label11=label11
+		entry_username=GtkEntry()
+		table1.attach(entry_username, 1, 2, 0, 1, EXPAND, 0, 0, 0)
+		entry_username.set_flags(CAN_FOCUS)
+		entry_username.set_usize(120, -1)
+		entry_username.set_editable(TRUE)
+		entry_username.set_visibility(TRUE)
+		entry_username.set_max_length(0)
+		entry_username.set_text(storm_config[0])
+		entry_username.show()
+		self.entry_username=entry_username
+		entry_useremail=GtkEntry()
+		table1.attach(entry_useremail, 1, 2, 1, 2, EXPAND, 0, 0, 0)
+		entry_useremail.set_flags(CAN_FOCUS)
+		entry_useremail.set_usize(120, -1)
+		entry_useremail.set_editable(TRUE)
+		entry_useremail.set_visibility(TRUE)
+		entry_useremail.set_max_length(0)
+		entry_useremail.set_text(storm_config[1])
+		entry_useremail.show()
+		self.entry_useremail=entry_useremail
+		scroll1 = GtkScrolledWindow()
+		table1.attach(scroll1, 1, 2, 2, 3, EXPAND, 0, 0, 0)
+		scroll1.set_usize(120, -1)
+		scroll1.set_policy(POLICY_NEVER, POLICY_AUTOMATIC)
+		scroll1.show()
+		self.scroll1 = scroll1
+		text_sig = GtkText()
+		scroll1.add(text_sig)
+		text_sig.set_usize(120, -1)
+		text_sig.set_editable(TRUE)
+		text_sig.insert(None, None, None, sig)
+		text_sig.show()
+		self.text_sig = text_sig
+		table1.show()
+		self.table1=table1
+
+		sync_label = GtkLabel("Sync")
+		sync_label.show()
+
+		table2=GtkTable(4, 2)
+		self.notebook.append_page(table2, sync_label)
+		table2.set_usize(-1, -1)
+		table2.set_row_spacings(0)
+		table2.set_col_spacings(0)
+		label3=GtkLabel()
+		table2.attach(label3, 0, 1, 0, 1, FILL, 0, 0, 0)
+		label3.set_usize(-1, -1)
+		label3.set_text("Username")
+		label3.set_justify(JUSTIFY_CENTER)
+		label3.set_alignment(0, 0.5)
+		label3.set_padding(0, 0)
+		label3.show()
+		self.label3=label3
+		label4=GtkLabel()
+		table2.attach(label4, 0, 1, 1, 2, FILL, 0, 0, 0)
+		label4.set_usize(-1, -1)
+		label4.set_text("Host IP")
+		label4.set_justify(JUSTIFY_CENTER)
+		label4.set_alignment(0, 0.5)
+		label4.set_padding(0, 0)
+		label4.show()
+		self.label4=label4
+		label5=GtkLabel()
+		table2.attach(label5, 0, 1, 2, 3, FILL, 0, 0, 0)
+		label5.set_usize(-1, -1)
+		label5.set_text("Incoming")
+		label5.set_justify(JUSTIFY_CENTER)
+		label5.set_alignment(0, 0.5)
+		label5.set_padding(0, 0)
+		label5.show()
+		self.label5=label5
+		label6=GtkLabel()
+		table2.attach(label6, 0, 1, 3, 4, FILL, 0, 0, 0)
+		label6.set_usize(-1, -1)
+		label6.set_text("Outgoing")
+		label6.set_justify(JUSTIFY_CENTER)
+		label6.set_alignment(0, 0.5)
+		label6.set_padding(0, 0)
+		label6.show()
+		self.label6=label6
+		entry4=GtkEntry()
+		table2.attach(entry4, 1, 2, 1, 2, EXPAND, 0, 0, 0)
+		entry4.set_flags(CAN_FOCUS)
+		entry4.set_usize(120, -1)
+		entry4.set_editable(TRUE)
+		entry4.set_visibility(TRUE)
+		entry4.set_max_length(0)
+		entry4.set_text(sync_config[1])
+		entry4.show()
+		self.entry4=entry4
+		entry5=GtkEntry()
+		table2.attach(entry5, 1, 2, 2, 3, EXPAND, 0, 0, 0)
+		entry5.set_flags(CAN_FOCUS)
+		entry5.set_usize(120, -1)
+		entry5.set_editable(TRUE)
+		entry5.set_visibility(TRUE)
+		entry5.set_max_length(0)
+		entry5.set_text(sync_config[2])
+		entry5.show()
+		self.entry5=entry5
+		entry6=GtkEntry()
+		table2.attach(entry6, 1, 2, 3, 4, EXPAND, 0, 0, 0)
+		entry6.set_flags(CAN_FOCUS)
+		entry6.set_usize(120, -1)
+		entry6.set_editable(TRUE)
+		entry6.set_visibility(TRUE)
+		entry6.set_max_length(0)
+		entry6.set_text(sync_config[3])
+		entry6.show()
+		self.entry6=entry6
+		entry3=GtkEntry()
+		table2.attach(entry3, 1, 2, 0, 1, EXPAND, 0, 0, 0)
+		entry3.set_flags(CAN_FOCUS)
+		entry3.set_usize(120, -1)
+		entry3.set_editable(TRUE)
+		entry3.set_visibility(TRUE)
+		entry3.set_max_length(0)
+		entry3.set_text(sync_config[0])
+		entry3.show()
+		self.entry3=entry3
+		table2.show()
+		self.table2=table2
+
+		smtp_label = GtkLabel("SMTP")
+		smtp_label.show()
+
+		table4=GtkTable(1, 2)
+		self.notebook.append_page(table4, smtp_label)
+		table4.set_usize(-1, -1)
+		table4.set_row_spacings(0)
+		table4.set_col_spacings(0)
+		label_smtpserver=GtkLabel()
+		table4.attach(label_smtpserver, 0, 1, 0, 1, FILL, 0, 0, 0)
+		label_smtpserver.set_usize(-1, -1)
+		label_smtpserver.set_text("Server")
+		label_smtpserver.set_justify(JUSTIFY_CENTER)
+		label_smtpserver.set_alignment(0, 0.5)
+		label_smtpserver.set_padding(0, 0)
+		label_smtpserver.show()
+		self.label_smtpserver=label_smtpserver
+		entry_smtpserver=GtkEntry()
+		table4.attach(entry_smtpserver, 1, 2, 0, 1, EXPAND, 0, 0, 0)
+		entry_smtpserver.set_flags(CAN_FOCUS)
+		entry_smtpserver.set_usize(120, -1)
+		entry_smtpserver.set_editable(TRUE)
+		entry_smtpserver.set_visibility(TRUE)
+		entry_smtpserver.set_max_length(0)
+		entry_smtpserver.set_text(smtp_config[0])
+		entry_smtpserver.show()
+		self.entry_smtpserver=entry_smtpserver
+		table4.show()
+		self.table4=table4
+
+		animail_label = GtkLabel("Animail (POP3/IMAP4)")
+		animail_label.show()
+
+		if os.path.exists('/usr/share/animail') <= 0:
+			animail_vbox = GtkVBox()
+			self.notebook.append_page(animail_vbox, animail_label)
+			animail_vbox.show()
+
+			animail_label2 = GtkLabel("It seems you don't have Animail installed.\nAnimail is a python program\nthat Storm can use for fetching email messages.\n\nClick the button below to install Animail now.\nPlease make sure your iPAQ\ncurrently has access to the Internet.")
+			animail_vbox.pack_start(animail_label2, expand=FALSE)
+			animail_label2.show()
+
+			animail_button = GtkButton("Install Animail")
+			animail_button.connect("clicked", self.install_animail)
+			animail_vbox.pack_end(animail_button, expand=FALSE)
+			animail_button.show()
+
+		else:
+			ani_vbox1=GtkVBox()
+			ani_scroll = GtkScrolledWindow()
+			ani_scroll.add_with_viewport(ani_vbox1)
+			self.notebook.append_page(ani_scroll, animail_label)
+			ani_scroll.show()
+			ani_vbox1.set_usize(-1, -1)
+			ani_vbox1.set_homogeneous(FALSE)
+			ani_vbox1.set_spacing(0)
+			ani_table1=GtkTable(6, 2)
+			ani_vbox1.pack_start(ani_table1, FALSE, TRUE, 0)
+			ani_table1.set_usize(-1, -1)
+			ani_table1.set_row_spacings(0)
+			ani_table1.set_col_spacings(0)
+			ani_label_username=GtkLabel()
+			ani_table1.attach(ani_label_username, 0, 1, 0, 1, FILL, 0, 0, 0)
+			ani_label_username.set_usize(-1, -1)
+			ani_label_username.set_text("Username")
+			ani_label_username.set_justify(JUSTIFY_CENTER)
+			ani_label_username.set_alignment(0, 0.5)
+			ani_label_username.set_padding(0, 0)
+			ani_label_username.show()
+			self.ani_label_username=ani_label_username
+			ani_label_password=GtkLabel()
+			ani_table1.attach(ani_label_password, 0, 1, 1, 2, FILL, 0, 0, 0)
+			ani_label_password.set_usize(-1, -1)
+			ani_label_password.set_text("Password")
+			ani_label_password.set_justify(JUSTIFY_CENTER)
+			ani_label_password.set_alignment(0, 0.5)
+			ani_label_password.set_padding(0, 0)
+			ani_label_password.show()
+			self.ani_label_password=ani_label_password
+			ani_label_host=GtkLabel()
+			ani_table1.attach(ani_label_host, 0, 1, 2, 3, FILL, 0, 0, 0)
+			ani_label_host.set_usize(-1, -1)
+			ani_label_host.set_text("Host")
+			ani_label_host.set_justify(JUSTIFY_CENTER)
+			ani_label_host.set_alignment(0, 0.5)
+			ani_label_host.set_padding(0, 0)
+			ani_label_host.show()
+			self.ani_label_host=ani_label_host
+			ani_label_port=GtkLabel()
+			ani_table1.attach(ani_label_port, 0, 1, 3, 4, FILL, 0, 0, 0)
+			ani_label_port.set_usize(-1, -1)
+			ani_label_port.set_text("Port")
+			ani_label_port.set_justify(JUSTIFY_CENTER)
+			ani_label_port.set_alignment(0, 0.5)
+			ani_label_port.set_padding(0, 0)
+			ani_label_port.show()
+			self.ani_label_port=ani_label_port
+			ani_label_protocol=GtkLabel()
+			ani_table1.attach(ani_label_protocol, 0, 1, 4, 5, FILL, 0, 0, 0)
+			ani_label_protocol.set_usize(-1, -1)
+			ani_label_protocol.set_text("Protocol")
+			ani_label_protocol.set_justify(JUSTIFY_CENTER)
+			ani_label_protocol.set_alignment(0, 0.5)
+			ani_label_protocol.set_padding(0, 0)
+			ani_label_protocol.show()
+			self.ani_label_protocol=ani_label_protocol
+			ani_label_ssl=GtkLabel()
+			ani_table1.attach(ani_label_ssl, 0, 1, 5, 6, FILL, 0, 0, 0)
+			ani_label_ssl.set_usize(-1, -1)
+			ani_label_ssl.set_text("SSL")
+			ani_label_ssl.set_justify(JUSTIFY_CENTER)
+			ani_label_ssl.set_alignment(0, 0.5)
+			ani_label_ssl.set_padding(0, 0)
+			ani_label_ssl.show()
+			self.ani_label_ssl=ani_label_ssl
+			ani_entry_username=GtkEntry()
+			ani_table1.attach(ani_entry_username, 1, 2, 0, 1, EXPAND, 0, 0, 0)
+			ani_entry_username.set_flags(CAN_FOCUS)
+			ani_entry_username.set_usize(120, -1)
+			ani_entry_username.set_editable(TRUE)
+			ani_entry_username.set_visibility(TRUE)
+			ani_entry_username.set_max_length(0)
+			ani_entry_username.set_text(ani_config_username)
+			ani_entry_username.show()
+			self.ani_entry_username=ani_entry_username
+			ani_entry_password=GtkEntry()
+			ani_table1.attach(ani_entry_password, 1, 2, 1, 2, EXPAND, 0, 0, 0)
+			ani_entry_password.set_flags(CAN_FOCUS)
+			ani_entry_password.set_usize(120, -1)
+			ani_entry_password.set_editable(TRUE)
+			ani_entry_password.set_visibility(TRUE)
+			ani_entry_password.set_max_length(0)
+			ani_entry_password.set_text(ani_config_password)
+			ani_entry_password.show()
+			self.ani_entry_password=ani_entry_password
+			ani_entry_host=GtkEntry()
+			ani_table1.attach(ani_entry_host, 1, 2, 2, 3, EXPAND, 0, 0, 0)
+			ani_entry_host.set_flags(CAN_FOCUS)
+			ani_entry_host.set_usize(120, -1)
+			ani_entry_host.set_editable(TRUE)
+			ani_entry_host.set_visibility(TRUE)
+			ani_entry_host.set_max_length(0)
+			ani_entry_host.set_text(ani_config_host)
+			ani_entry_host.show()
+			self.ani_entry_host=ani_entry_host
+			ani_optionmenu_protocol=GtkOptionMenu()
+			ani_table1.attach(ani_optionmenu_protocol, 1, 2, 4, 5, EXPAND, 0, 0, 0)
+			ani_optionmenu_protocol.set_flags(CAN_FOCUS)
+			ani_optionmenu_protocol.set_usize(120, -1)
+			menu = GtkMenu()
+			menulist = []
+			menuitem = GtkMenuItem("POP3")
+			menuitem.connect("activate", self.animail_select_protocol, "POP3")
+			menuitemdata = [self, 0]
+			menulist.append("POP3")
+			menu.append(menuitem)
+			menuitem.show()
+			menuitem = GtkMenuItem("IMAP4")
+			menuitem.connect("activate", self.animail_select_protocol, "IMAP4")
+			menuitemdata = [self, 1]
+			menulist.append("IMAP4")
+			menu.append(menuitem)
+			menuitem.show()
+			menuitem = GtkMenuItem("APOP")
+			menuitem.connect("activate", self.animail_select_protocol, "APOP")
+			menuitemdata = [self, 2]
+			menulist.append("APOP")
+			menu.append(menuitem)
+			menuitem.show()
+			ani_optionmenu_protocol.menulist = menulist
+			ani_optionmenu_protocol.set_menu(menu)
+
+			# - Select the correct menu entry from the config
+			if ani_config_protocol == "POP3":
+				ani_config_protocol_num = 0
+			elif ani_config_protocol == "IMAP4":
+				ani_config_protocol_num = 1
+			elif ani_config_protocol == "APOP":
+				ani_config_protocol_num = 2
+
+			ani_optionmenu_protocol.set_history(ani_config_protocol_num)
+			ani_optionmenu_protocol.show()
+			self.ani_optionmenu_protocol=ani_optionmenu_protocol
+			ani_combo_port=GtkCombo()
+			ani_table1.attach(ani_combo_port, 1, 2, 3, 4, EXPAND, 0, 0, 0)
+			ani_combo_port.set_usize(120, -1)
+			ani_combo_port.set_homogeneous(FALSE)
+			ani_combo_port.set_spacing(0)
+			ani_combo_port.set_case_sensitive(FALSE)
+			ani_combo_port.set_use_arrows(TRUE)
+			ani_combo_port.set_use_arrows_always(FALSE)
+			ani_combo_port.set_popdown_strings(['110', '995', '143'])
+			ani_combo_port.entry.set_text(ani_config_port)
+			ani_combo_port.show()
+			self.ani_combo_port=ani_combo_port
+			ani_checkbutton_ssl=GtkCheckButton("")
+			ani_table1.attach(ani_checkbutton_ssl, 1, 2, 5, 6, EXPAND, 0, 0, 0)
+			ani_checkbutton_ssl.set_flags(CAN_FOCUS)
+			ani_checkbutton_ssl.set_usize(120, -1)
+			
+			# - If the config SSL is yes, enable the checkbutton
+			if ani_config_ssl == "yes":
+				ani_checkbutton_ssl.set_active(TRUE)
+
+			ani_checkbutton_ssl.show()
+			self.ani_checkbutton_ssl=ani_checkbutton_ssl
+			ani_table1.show()
+			self.ani_table1=ani_table1
+			hseparator1=GtkHSeparator()
+			ani_vbox1.pack_start(hseparator1, FALSE, TRUE, 0)
+			hseparator1.set_usize(-1, -1)
+			hseparator1.show()
+			self.hseparator1=hseparator1
+			ani_table2=GtkTable(4, 2)
+			ani_vbox1.pack_start(ani_table2, TRUE, TRUE, 0)
+			ani_table2.set_usize(-1, -1)
+			ani_table2.set_row_spacings(0)
+			ani_table2.set_col_spacings(0)
+			ani_label_maxnum=GtkLabel()
+			ani_table2.attach(ani_label_maxnum, 0, 1, 1, 2, FILL, 0, 0, 0)
+			ani_label_maxnum.set_usize(-1, -1)
+			ani_label_maxnum.set_text("Max num messages")
+			ani_label_maxnum.set_justify(JUSTIFY_CENTER)
+			ani_label_maxnum.set_alignment(0, 0.5)
+			ani_label_maxnum.set_padding(0, 0)
+			ani_label_maxnum.show()
+			self.ani_label_maxnum=ani_label_maxnum
+			label8=GtkLabel()
+			ani_table2.attach(label8, 0, 1, 2, 3, FILL, 0, 0, 0)
+			label8.set_usize(-1, -1)
+			label8.set_text("Max message size")
+			label8.set_justify(JUSTIFY_CENTER)
+			label8.set_alignment(0, 0.5)
+			label8.set_padding(0, 0)
+			label8.show()
+			self.label8=label8
+			label9=GtkLabel()
+			ani_table2.attach(label9, 0, 1, 3, 4, FILL, 0, 0, 0)
+			label9.set_usize(-1, -1)
+			label9.set_text("Delivery folder")
+			label9.set_justify(JUSTIFY_CENTER)
+			label9.set_alignment(0, 0.5)
+			label9.set_padding(0, 0)
+			label9.show()
+			self.label9=label9
+			ani_entry_maxmessages=GtkEntry()
+			ani_table2.attach(ani_entry_maxmessages, 1, 2, 1, 2, EXPAND, 0, 0, 0)
+			ani_entry_maxmessages.set_flags(CAN_FOCUS)
+			ani_entry_maxmessages.set_usize(120, -1)
+			ani_entry_maxmessages.set_editable(TRUE)
+			ani_entry_maxmessages.set_visibility(TRUE)
+			ani_entry_maxmessages.set_max_length(0)
+			ani_entry_maxmessages.set_text(ani_config_maxmessages)
+			ani_entry_maxmessages.show()
+			self.ani_entry_maxmessages=ani_entry_maxmessages
+			ani_entry_maxmessagesize=GtkEntry()
+			ani_table2.attach(ani_entry_maxmessagesize, 1, 2, 2, 3, EXPAND, 0, 0, 0)
+			ani_entry_maxmessagesize.set_flags(CAN_FOCUS)
+			ani_entry_maxmessagesize.set_usize(120, -1)
+			ani_entry_maxmessagesize.set_editable(TRUE)
+			ani_entry_maxmessagesize.set_visibility(TRUE)
+			ani_entry_maxmessagesize.set_max_length(0)
+			ani_entry_maxmessagesize.set_text(ani_config_maxsize)
+			ani_entry_maxmessagesize.show()
+			self.ani_entry_maxmessagesize=ani_entry_maxmessagesize
+			ani_optionmenu_deliverfolder=GtkOptionMenu()
+			ani_table2.attach(ani_optionmenu_deliverfolder, 1, 2, 3, 4, EXPAND, 0, 0, 0)
+			ani_optionmenu_deliverfolder.set_flags(CAN_FOCUS)
+			ani_optionmenu_deliverfolder.set_usize(120, -1)
+
+			#TODO: Add real multiple folder support
+			menu = GtkMenu()
+			menulist = []
+			menuitem = GtkMenuItem("Inbox")
+			menuitemdata = [self, 0]
+			menulist.append("Inbox")
+			menu.append(menuitem)
+			menuitem.show()
+			ani_optionmenu_deliverfolder.menulist = menulist
+			ani_optionmenu_deliverfolder.set_menu(menu)
+			ani_optionmenu_deliverfolder.set_history(0)
+			ani_optionmenu_deliverfolder.show()
+			self.ani_optionmenu_deliverfolder=ani_optionmenu_deliverfolder
+			ani_label_keepmessages=GtkLabel()
+			ani_table2.attach(ani_label_keepmessages, 0, 1, 0, 1, FILL, 0, 0, 0)
+			ani_label_keepmessages.set_usize(-1, -1)
+			ani_label_keepmessages.set_text("Leave messages on server")
+			ani_label_keepmessages.set_justify(JUSTIFY_CENTER)
+			ani_label_keepmessages.set_alignment(0, 0.5)
+			ani_label_keepmessages.set_padding(0, 0)
+			ani_label_keepmessages.show()
+			self.ani_label_keepmessages=ani_label_keepmessages
+			ani_checkbutton_keepmessages=GtkCheckButton("")
+			ani_table2.attach(ani_checkbutton_keepmessages, 1, 2, 0, 1, EXPAND, 0, 0, 0)
+			ani_checkbutton_keepmessages.set_flags(CAN_FOCUS)
+			ani_checkbutton_keepmessages.set_usize(120, -1)
+			
+			# - If the config KeepMessages is yes, enable the checkbutton
+			if ani_config_keepmessages == "yes":
+				ani_checkbutton_keepmessages.set_active(TRUE)
+
+			ani_checkbutton_keepmessages.show()
+			self.ani_checkbutton_keepmessages=ani_checkbutton_keepmessages
+			ani_table2.show()
+			self.ani_table2=ani_table2
+			ani_vbox1.show()
+			self.ani_vbox1=ani_vbox1
+
+	def install_animail(self, *args):
+		'''Use ipkg to install the Animail program.'''
+
+		os.system("rxvt -e ipkg install animail")
+
+	def animail_select_protocol(self, *args):
+		self.ani_config_protocol = args[1]
+
+	def save_config(self, *args):
+		text_username = self.entry_username.get_text()
+		text_useremail = self.entry_useremail.get_text()
+		text3 = self.entry3.get_text()
+		text4 = self.entry4.get_text()
+		text5 = self.entry5.get_text()
+		text6 = self.entry6.get_text()
+		text_smtpserver = self.entry_smtpserver.get_text()
+		userdatafile = open(self.parent.storm_userdatafile, 'w')
+		userdatafile.write(text_username + '\n' + text_useremail + '\n' + self.storm_config[2])
+		userdatafile.close()
+		sync_file = open(self.parent.storm_usercfgdir + 'sync', 'w')
+		sync_file.write(text3 + '\n' + text4 + '\n' + text5 + '\n' + text6)
+		sync_file.close()
+		smtp_file = open(self.parent.storm_usercfgdir + 'smtp', 'w')
+		smtp_file.write(text_smtpserver)
+		smtp_file.close()
+		sig_file = open(self.parent.storm_usercfgdir + 'sig', 'w')
+		sig_file.write(self.text_sig.get_chars(0, -1))
+		sig_file.close()
+
+		if os.path.exists('/usr/share/animail') > 0:
+			if self.ani_checkbutton_ssl.get_active() == TRUE:
+				ani_config_ssl = 'yes'
+			else:
+				ani_config_ssl = 'no'
+
+			if self.ani_checkbutton_keepmessages.get_active() == TRUE:
+				ani_config_keepmessages = 'yes'
+			else:
+				ani_config_keepmessages = 'no'
+
+			ani_file = open(os.environ['HOME'] + '/.animail/animailrc', 'w')
+			ani_file.write('<server>\nAddress:' + self.ani_entry_host.get_text() + '\nProtocol:' + self.ani_config_protocol + '\nSSL:' + ani_config_ssl + '\nPort:' + self.ani_combo_port.entry.get_text() + '\nUserName:' + self.ani_entry_username.get_text() + '\nPassword:' + self.ani_entry_password.get_text() + '\nKeepOnServer:' + ani_config_keepmessages + '\nMaildir:$HOME/Maildir/Inbox\n</server>\n<global>\nMaxSize:' + self.ani_entry_maxmessagesize.get_text() + '\nMaxNumber:' + self.ani_entry_maxmessages.get_text() + '\n</global>')
+			ani_file.close()
+
+		self.parent.get_config()
+		self.parent.config_window.hide()
diff -urN storm_0.3/usr/share/storm/modules/scribble.py storm_0.5.2/usr/share/storm/modules/scribble.py
--- storm_0.3/usr/share/storm/modules/scribble.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/scribble.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,145 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+import gtk, GDK
+
+class Scribble:
+	def __init__(self, parent):
+		self.parent = parent
+		
+	def new_scribble(self, *args):
+		'''Open a new window for drawing.'''
+
+		window = gtk.GtkWindow(gtk.WINDOW_TOPLEVEL)
+		self.scribble_window = window
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - Scribble")
+		window.set_usize(240, 240)
+		window.set_name("window")
+		gtk.rc_parse_string('widget "*window*" style "storm_normal"') 
+		window.show()
+
+		vbox = gtk.GtkVBox()
+		window.add(vbox)
+		vbox.show()
+
+		hbox = gtk.GtkHBox()
+		vbox.pack_start(hbox, expand=gtk.FALSE)
+		hbox.show()
+
+		toolbar = gtk.GtkToolbar(gtk.ORIENTATION_HORIZONTAL, gtk.TOOLBAR_ICONS)
+		toolbar.set_button_relief(gtk.RELIEF_NONE)
+		toolbar.set_space_size(10)
+		hbox.pack_start(toolbar, expand=gtk.FALSE)
+		toolbar.show()
+
+		pix, mask = gtk.create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save.xpm")
+		toolbar.append_item(None, 'Save Drawing', None, gtk.GtkPixmap(pix, mask), self.save_drawing)
+
+		pix, mask = gtk.create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/cancel.xpm")
+		toolbar.append_item(None, 'Close this window', None, gtk.GtkPixmap(pix, mask), window.hide)
+
+		toolbar2 = gtk.GtkToolbar(gtk.ORIENTATION_HORIZONTAL, gtk.TOOLBAR_ICONS)
+		toolbar2.set_button_relief(gtk.RELIEF_NONE)
+		toolbar2.set_space_size(10)
+		hbox.pack_end(toolbar2, expand=gtk.FALSE)
+		toolbar2.show()
+
+		pix, mask = gtk.create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/pencil.xpm")
+		toolbar2.append_item(None, 'Pencil', None, gtk.GtkPixmap(pix, mask), self.use_pencil)
+
+		pix, mask = gtk.create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/eraser.xpm")
+		toolbar2.append_item(None, 'Eraser', None, gtk.GtkPixmap(pix, mask), self.use_eraser)
+
+		drawing_area = gtk.GtkDrawingArea()
+
+		# - Signals used to handle backing pixmap
+		drawing_area.connect("expose_event", self.expose_event)
+		drawing_area.connect("configure_event", self.configure_event)
+
+		# - Event signals
+		drawing_area.connect("motion_notify_event", self.motion_notify_event)
+		drawing_area.connect("button_press_event", self.button_press_event)
+
+		drawing_area.set_events(GDK.EXPOSURE_MASK | GDK.LEAVE_NOTIFY_MASK | GDK.BUTTON_PRESS_MASK | GDK.POINTER_MOTION_MASK | GDK.POINTER_MOTION_HINT_MASK)
+
+		drawing_area.size(200, 200)
+		vbox.pack_start(drawing_area)
+		drawing_area.show()
+
+		# - Backing pixmap for drawing area
+		self.pixmap = None
+		self.color = "black"
+
+	def use_pencil(self, *args):
+		self.color = "black"
+
+	def use_eraser(self, *args):
+		self.color = "white"
+
+	def configure_event(self, widget, event):
+		'''Create a new backing pixmap of the appropriate size.'''
+
+		x, y, width, height = widget.get_allocation()
+		self.pixmap = gtk.create_pixmap(widget.get_window(), width, height, -1)
+		gtk.draw_rectangle(self.pixmap, widget.get_style().white_gc, gtk.TRUE, 0, 0, width, height)
+
+		return gtk.TRUE
+
+	def expose_event(self, widget, event):
+		'''Redraw the screen from the backing pixmap.'''
+
+		x , y, width, height = event.area
+		widget.draw_pixmap(widget.get_style().fg_gc[gtk.STATE_NORMAL], self.pixmap, x, y, x, y, width, height)
+
+		return gtk.FALSE
+
+	def draw_brush(self, widget, x, y):
+		'''Draw a rectangle on the screen.'''
+
+		if self.color == "black":
+			rect = (x - 1, y - 1, 2, 2)
+			gtk.draw_rectangle(self.pixmap, widget.get_style().black_gc, gtk.TRUE, rect[0], rect[1], rect[2], rect[3])
+		elif self.color == "white":
+			rect = (x - 5, y - 5, 10, 10)
+			gtk.draw_rectangle(self.pixmap, widget.get_style().white_gc, gtk.TRUE, rect[0], rect[1], rect[2], rect[3])
+		widget.draw(rect)
+
+	def button_press_event(self, widget, event):
+		if event.button == 1 and self.pixmap != None:
+			self.draw_brush(widget, event.x, event.y)
+
+		return gtk.TRUE
+
+	def motion_notify_event(self, widget, event):
+		if event.is_hint:
+			x, y, = event.window.pointer
+			state = event.window.pointer_state
+		else:
+			x = event.x
+			y = event.y
+			state = event.state
+
+		if state & GDK.BUTTON1_MASK and self.pixmap != None:
+			self.draw_brush(widget, x, y)
+
+		return gtk.TRUE
+
+	def save_drawing(self, *args):
+		pass
diff -urN storm_0.3/usr/share/storm/modules/storm_constants.py storm_0.5.2/usr/share/storm/modules/storm_constants.py
--- storm_0.3/usr/share/storm/modules/storm_constants.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/storm_constants.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,29 @@
+# appointment constants:
+
+c_Summary = 0
+
+c_StartTime = 1
+c_StartTimeHour = 0
+c_StartTimeMin  = 1
+
+c_EndTime = 2
+c_EndTimeHour = 0
+c_EndTimeMin  = 1
+
+c_Date = 3
+c_DateDay   = 0
+c_DateMonth = 1
+c_DateYear  = 2
+
+c_Alarm = 4
+c_AlarmStatus = 0
+c_AlarmId     = 1
+
+c_Description = 5
+
+
+# Today page:
+
+# check every <foo> ms if we need to update the Today page for the
+# time display:
+c_TimeoutCheckTime = 1000
diff -urN storm_0.3/usr/share/storm/modules/stormload.py storm_0.5.2/usr/share/storm/modules/stormload.py
--- storm_0.3/usr/share/storm/modules/stormload.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/stormload.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+
+class StormLoad:
+	def __init__(self, parent):
+		self.parent = parent
+
+		# our main gtk window
+		window = GtkWindow(WINDOW_POPUP)
+		window.connect("delete_event", window.hide)
+		window.set_position(WIN_POS_CENTER)
+		window.set_title("Storm - Sync")
+		window.set_usize(200, 158)
+		window.show()
+		window.set_name("window")
+		# could maybe make this bold...or colorful. [CM]
+		rc_parse_string('widget "*window*" style "storm_normal"') 
+		self.window = window
+
+		vbox = GtkVBox()
+		window.add(vbox)
+		vbox.show()
+
+# Set cursor. From /usr/share/doc/python-gtk/examples/testgtk/
+#		cursor = cursor_new(c)
+#		widget.get_window().set_cursor(cursor)
+#		cur_name.set_text(cursor.name)
+
+		pix, mask = create_pixmap_from_xpm(window, None, self.parent.config[2] + "/pixmaps/welcome.xpm")
+		pixmap = GtkPixmap(pix,mask)
+		vbox.pack_start(pixmap, expand=FALSE)
+		pixmap.show()
+
+		hbox = GtkHBox()
+		vbox.pack_start(hbox, expand=TRUE)
+		hbox.show()
+
+		label = GtkLabel()
+		hbox.pack_start(label, expand=FALSE)
+		label.set_text("Loading Storm... ")
+		label.show()
+
+		table1=GtkTable(5, 1)
+		hbox.pack_start(table1)
+		table1.set_usize(-1, -1)
+		table1.set_row_spacings(0)
+		table1.set_col_spacings(3)
+		table1.show()
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/storm-today-mini.xpm")
+		self.today_pixmap = GtkPixmap(pix, mask)
+		table1.attach(self.today_pixmap, 0, 1, 0, 1, FILL, 0, 0, 0)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/storm-inbox-mini.xpm")
+		self.inbox_pixmap = GtkPixmap(pix, mask)
+		table1.attach(self.inbox_pixmap, 1, 2, 0, 1, FILL, 0, 0, 0)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/storm-calendar-mini.xpm")
+		self.calendar_pixmap = GtkPixmap(pix, mask)
+		table1.attach(self.calendar_pixmap, 2, 3, 0, 1, FILL, 0, 0, 0)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/storm-contacts-mini.xpm")
+		self.contacts_pixmap = GtkPixmap(pix, mask)
+		table1.attach(self.contacts_pixmap, 3, 4, 0, 1, FILL, 0, 0, 0)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/storm-notes-mini.xpm")
+		self.notes_pixmap = GtkPixmap(pix, mask)
+		table1.attach(self.notes_pixmap, 4, 5, 0, 1, FILL, 0, 0, 0)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/storm-tasks-mini.xpm")
+		self.tasks_pixmap = GtkPixmap(pix, mask)
+		table1.attach(self.notes_pixmap, 4, 5, 0, 1, FILL, 0, 0, 0)
diff -urN storm_0.3/usr/share/storm/modules/sync.py storm_0.5.2/usr/share/storm/modules/sync.py
--- storm_0.3/usr/share/storm/modules/sync.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/sync.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,184 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+import rfc822, time, os, smtplib, string, re
+
+class Sync:
+	def __init__(self, parent):
+		self.parent = parent
+
+	def host(self, *args):
+		'''Syncs with the host (comming soon).'''
+
+		# our main gtk window
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - Sync")
+		window.set_usize(200, -1)
+        	window.set_position(WIN_POS_CENTER)
+		window.show()
+
+		hbox = GtkHBox()
+		window.add(hbox)
+		hbox.show()
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/send-receive.xpm")
+		pixmap = GtkPixmap(pix, mask)
+		hbox.pack_start(pixmap)
+		pixmap.show()
+
+		label = GtkLabel()
+		hbox.pack_start(label)
+		label.set_text("Feature Coming Soon...")
+		label.show()
+
+		config_file = open(self.parent.storm_usercfgdir + 'sync')
+		lines = config_file.readlines()
+		sync_config = []
+		for cline in lines:
+			sync_config.append(string.strip(cline))
+		config_file.close()
+
+		while events_pending(): mainiteration()
+		time.sleep(3)
+
+		window.hide()
+
+	def get_mail(self, *args):
+		'''Calls Animail in an rxvt window to recieve messages.'''
+
+		os.system("rxvt -e /usr/share/animail")
+
+	def send_mail(self, *args):
+		'''Sends any messages in the outbox via SMTP.'''
+
+		# our main gtk window
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - SMTP")
+		window.set_usize(200, -1)
+		window.show()
+
+		hbox = GtkHBox()
+		window.add(hbox)
+		hbox.show()
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/send-receive.xpm")
+		pixmap = GtkPixmap(pix, mask)
+		hbox.pack_start(pixmap)
+		pixmap.show()
+
+		label = GtkLabel()
+		hbox.pack_start(label)
+		label.set_text("Sending Messages...")
+		label.show()
+
+		while events_pending(): mainiteration()
+
+		# - Get smtp config for username, password and server
+		config_file = open(self.parent.storm_usercfgdir + 'smtp', 'r')
+		lines = config_file.readlines()
+		smtp_config = []
+		for cline in lines:
+			smtp_config.append(string.strip(cline))
+		config_file.close()
+
+		while events_pending(): mainiteration()
+
+		try:
+
+			# - Try and connect to the SMTP server
+			smtp = smtplib.SMTP(smtp_config[0])
+			smtp.helo()
+			while events_pending(): mainiteration()
+
+		except smtplib.SMTPConnectError:
+
+			label.set_text("Error connecting to SMTP server")
+			while events_pending(): mainiteration()
+			time.sleep(2)
+			window.hide()
+
+		except:
+
+			label.set_text("Error connecting to SMTP server")
+			while events_pending(): mainiteration()
+			time.sleep(2)
+			window.hide()
+
+		x = 0
+
+		# - Check both maildir subdirectorys
+		for maildir_folder in ['new','cur']:
+
+			# - List the messsages in each directory
+			messages = os.listdir(self.parent.storm_usermaildirdir + 'Outbox/' + maildir_folder)
+
+			for message_file in messages:
+
+				# - Open and read each message
+				file = open(self.parent.storm_usermaildirdir + 'Outbox/' + maildir_folder + '/' + message_file)
+				full_message = file.read()
+				file.close()
+
+				# - Extract the headers and write them to a temp file
+				message_parts = string.split(full_message, '\n\n', 1)
+				tmp_file = open("/tmp/storm.tmp", 'w')
+				tmp_file.write(message_parts[0])
+				tmp_file.close()
+				tmp_file = open("/tmp/storm.tmp", 'r')
+
+				# - Use the rfc822 module to extract the from and to headers
+				header = rfc822.Message(tmp_file)
+				mfrom = header.getheader("From")
+				mto = header.getheader("To")
+
+				tmp_file.close()
+
+				try:
+
+					while events_pending(): mainiteration()
+
+					# - Try and send the message
+					smtp.sendmail(mfrom, mto, message_parts[1])
+
+					# - Delete the maildir message file
+					os.unlink(self.parent.storm_usermaildirdir + 'Outbox/' + maildir_folder + '/' + message_file)
+
+				except smtplib.SMTPRecipientsRefused:
+
+					while events_pending(): mainiteration()
+					label.set_text("Error sending message to " + mto)
+					time.sleep(1)
+
+				while events_pending(): mainiteration()
+
+				# - Say that we've sent the message
+				label.set_text("Sending Message " + str(x) + "...")
+
+				x = x + 1
+		try:
+			smtp.quit()
+			while events_pending(): mainiteration()
+		except:
+			pass
+
+		self.parent.today.update_today()
+		window.hide()
diff -urN storm_0.3/usr/share/storm/modules/tasks.py storm_0.5.2/usr/share/storm/modules/tasks.py
--- storm_0.3/usr/share/storm/modules/tasks.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/tasks.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,375 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+from modules.xmlparse import *
+import string
+
+class Tasks:
+	def __init__(self, parent):
+		self.parent = parent
+		self.cmap = self.parent.window.get_colormap()
+
+		frame=GtkFrame()
+		frame.set_usize(-1, -1)
+		frame.set_shadow_type("GTK_SHADOW_ETCHED_IN")
+		frame.set_label("Tasks")
+		frame.set_label_align(0, -1)
+		frame.show()
+		self.frame=frame
+		frame.show()
+		frame.set_name("frame")
+		rc_parse_string('widget "*frame*" style "storm_normal"') 
+
+		vpane = GtkVPaned()
+		frame.add(vpane)
+		vpane.show()
+
+		vbox = GtkVBox()
+		vpane.pack1(vbox)
+		vbox.show()
+
+		hbox = GtkHBox()
+		vbox.pack_start(hbox, expand=FALSE)
+		hbox.show()
+
+		toolbar1 = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar1.set_button_relief(RELIEF_NONE)
+		toolbar1.set_space_size(10)
+		hbox.pack_start(toolbar1, expand=FALSE)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/new.xpm")
+		toolbar1.append_item(None, 'Create a new task', None, GtkPixmap(pix, mask), self.new_task)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/edit.xpm")
+		toolbar1.append_item(None, 'Edit the selected task', None, GtkPixmap(pix, mask), self.edit_task)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/trash.xpm")
+		toolbar1.append_item(None, 'Delete the selected task', None, GtkPixmap(pix, mask), self.delete_task)
+
+		toolbar1.show()
+
+		toolbar2 = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar2.set_button_relief(RELIEF_NONE)
+		toolbar2.set_space_size(10)
+		hbox.pack_end(toolbar2, expand=FALSE)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/tick.xpm")
+		toolbar2.append_item(None, 'Set the task as done', None, GtkPixmap(pix, mask), self.done_task)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/cancel.xpm")
+		toolbar2.append_item(None, 'Set the task as not yet done', None, GtkPixmap(pix, mask), self.cancel_task)
+
+		toolbar2.show()
+
+		cscroll = GtkScrolledWindow()
+		cscroll.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
+		vbox.pack_start(cscroll)
+		cscroll.show()
+
+		clist=GtkCList(3)
+		cscroll.add(clist)
+		clist.connect("select-row" , self.select_task)
+		clist.set_flags(CAN_FOCUS)
+		clist.set_usize(-1, 87)
+		clist.set_column_title(0, "Status")
+		clist.set_column_title(1, "Summary")
+		clist.set_column_title(2, "Priority")
+		clist.set_column_width(0, 18)
+		clist.set_column_width(1, 90)
+		clist.set_column_width(2, 20)
+		clist.set_selection_mode(SELECTION_SINGLE)
+		clist.column_titles_hide()
+		clist.show()
+		self.clist = clist
+
+		scroll = GtkScrolledWindow()
+		scroll.set_policy(POLICY_NEVER, POLICY_ALWAYS)
+		self.scroll = scroll
+		vpane.pack2(scroll)
+
+		text = GtkText()
+		self.text = text
+		text.set_editable(FALSE)
+		scroll.add(text)
+		text.show()
+		scroll.show()
+		self.text = text
+		
+		# - Read the tasks xml file
+		xml = XmlParse()
+		self.xml_tasks = xml.parse_xml_file(self.parent.storm_userdatadir + 'tasks.xml', 'task')
+		self.task = []
+
+		for xml_task in self.xml_tasks:
+			self.task.append([xml.xml_get_text(xml_task, "summary"), xml.xml_get_text(xml_task, "description"), xml.xml_get_text(xml_task, "priority"), xml.xml_get_text(xml_task, "status")])
+
+ 		self.update_list()
+
+	def update_list(self):
+		'''Update the CList with tasks.'''
+		
+		self.clist.clear()
+		
+		# - Sort the tasks by priority
+		self.task.sort(lambda x, y: cmp(x[2], y[2]))
+
+		x = 0
+		
+		# - Loop through all the tasks
+		while x < len(self.task):
+			
+			# - Make the correct status pixmap
+			if int(self.task[x][3]) == 1:
+				pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/tick-tiny.xpm")
+			else:
+				pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/cancel-tiny.xpm")
+			pixmap = GtkPixmap(pix, mask)
+			
+			# - Insert the status pixmap, summary and priority into the clist
+			self.clist.append(['', self.task[x][0], self.task[x][2]])
+			self.clist.set_pixmap(x,0,pixmap)
+			
+			# - Work out the correct gdk color for the priority
+			color_num = int(self.task[x][2])*3 + 60
+			
+			# - Color the current clist row that color
+			clist_color = self.cmap.alloc("grey" + str(color_num));
+			self.clist.set_background(x, clist_color)
+			
+			x = x + 1
+			
+	def select_task(self, *args):
+		'''Called when the user selects a task.'''
+		
+		# - Let the rest of the program know what task has been selected
+		self.selected_task = args[1]
+		
+		# - Insert the tasks description into the text box
+		self.text.freeze()
+		self.text.delete_text(0,-1)
+		self.text.insert(None,None,None,self.task[self.selected_task][0] + '\n' + self.task[self.selected_task][1])	
+		self.text.thaw()
+		
+	def done_task(self, *args):
+		'''Sets the task as done and changes the clist status pixmap.'''
+		
+		# - Change the task status to done (1)
+		self.task[self.selected_task][3] = '1'
+		
+		# - Change the clist status pixmap to a tick
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/tick-tiny.xpm")
+		pixmap = GtkPixmap(pix, mask)
+		self.clist.set_pixmap(self.selected_task,0,pixmap)
+		
+		# - Update xml
+		self.update_xml()
+		
+	def cancel_task(self, *args):
+		'''Sets the task as not done and changes the clist status pixmap.'''
+		
+		# - Change the task status to not done (0)
+		self.task[self.selected_task][3] = '0'
+		
+		# - Change the clist status pixmap to cancel
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/cancel-tiny.xpm")
+		pixmap = GtkPixmap(pix, mask)
+		self.clist.set_pixmap(self.selected_task,0,pixmap)
+		
+		# - Update xml
+		self.update_xml()
+		
+	def new_task(self, *args):
+		'''Makes a new task.'''
+		
+		self.do_task("new")
+		
+	def edit_task(self, *args):
+		'''Edits the currently selecet task.'''
+		
+		self.do_task("edit")
+		
+	def delete_task(self, *args):
+		'''Deletes the currently selected task.'''
+		
+		# - Delete the tasks text from the text box
+		self.text.delete_text(0,-1)
+		
+		# - Delete the tasks data
+		del self.task[self.selected_task]
+		
+		# - Remove it from the clist
+		self.clist.remove(self.selected_task)
+		
+		# - Update xml
+		self.update_xml()
+		
+	def save_task(self, *args):
+		'''Saves the just created task.'''
+		
+		# - Get the data for the new task
+		self.task.append([self.summary_entry.get_text(), self.description_text.get_chars(0,-1), self.priority_combo.entry.get_text(), '0'])
+
+		# - Update the xml, list and today
+		self.update_xml()
+		self.update_list()
+		self.task_window.hide()
+		self.parent.today.update_today()
+		
+	def save_edited_task(self, *args):
+		'''Saves an edited task.'''
+		
+		self.task[self.selected_task][0] = self.summary_entry.get_text()
+		self.task[self.selected_task][1] = self.description_text.get_chars(0,-1)
+		self.task[self.selected_task][2] = self.priority_combo.entry.get_text()
+		
+		# - Update the xml, list and today
+		self.update_xml()
+		self.update_list()
+		self.task_window.hide()
+		self.parent.today.update_today()
+
+	def do_task(self, type):
+		'''Open up the task new/edit window.'''
+
+		window = GtkWindow(WINDOW_TOPLEVEL)
+		self.task_window = window
+		window.connect("delete_event", window.hide)
+		window.set_title("Storm - Task")
+		if screen_width() > 300:
+			window.set_usize(280, 240)
+		else:
+			window.set_usize(240, 280)
+		window.show()
+
+		vbox = GtkVBox()
+		window.add(vbox)
+		vbox.show()
+
+		toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		toolbar.set_button_relief(RELIEF_NONE)
+		toolbar.set_space_size(10)
+		vbox.pack_start(toolbar, expand=FALSE)
+		toolbar.show()
+		
+		if type == "edit":
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save.xpm")
+			toolbar.append_item(None, 'Save the current appointment', None, GtkPixmap(pix, mask), self.save_edited_task)
+		else:
+			pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/save.xpm")
+			toolbar.append_item(None, 'Save the current appointment', None, GtkPixmap(pix, mask), self.save_task)
+
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/cancel.xpm")
+		toolbar.append_item(None, 'Close this window', None, GtkPixmap(pix, mask), window.hide)
+
+		table1=GtkTable(3, 2)
+		vbox.pack_start(table1)
+		table1.show()
+		table1.set_usize(-1, -1)
+		table1.set_row_spacings(0)
+		table1.set_col_spacings(0)
+		label1=GtkLabel()
+		table1.attach(label1, 0, 1, 0, 1, FILL, 0, 0, 0)
+		label1.set_usize(-1, -1)
+		label1.set_text("Summary")
+		label1.set_justify(JUSTIFY_CENTER)
+		label1.set_alignment(0, 0.5)
+		label1.set_padding(0, 0)
+		label1.show()
+		self.label1=label1
+		label2=GtkLabel()
+		table1.attach(label2, 0, 1, 1, 2, FILL, 0, 0, 0)
+		label2.set_usize(-1, -1)
+		label2.set_text("Priority")
+		label2.set_justify(JUSTIFY_CENTER)
+		label2.set_alignment(0, 0.5)
+		label2.set_padding(0, 0)
+		label2.show()
+		self.label2=label2
+		label3=GtkLabel()
+		table1.attach(label3, 0, 1, 2, 3, FILL, 0, 0, 0)
+		label3.set_usize(-1, -1)
+		label3.set_text("Description")
+		label3.set_justify(JUSTIFY_CENTER)
+		label3.set_alignment(0, 0.5)
+		label3.set_padding(0, 0)
+		label3.show()
+		self.label3=label3
+		
+		summary_entry=GtkEntry()
+		table1.attach(summary_entry, 1, 2, 0, 1, EXPAND, 0, 0, 0)
+		summary_entry.set_flags(CAN_FOCUS)
+		summary_entry.set_usize(160, -1)
+		summary_entry.set_editable(TRUE)
+		summary_entry.set_visibility(TRUE)
+		summary_entry.set_max_length(0)
+		if type == "edit":
+			summary_entry.set_text(self.task[self.selected_task][0])
+		summary_entry.show()
+		self.summary_entry=summary_entry
+
+		priority_hbox = GtkHBox()
+		table1.attach(priority_hbox, 1, 2, 1, 2, 0, 0, 0, 0)
+		priority_hbox.show()
+
+		priority_combo = GtkCombo()
+		priority_combo.set_usize(45, -1)
+		priority_hbox.pack_start(priority_combo, expand=FALSE)
+		prioritys = []
+		for priority in range(1,10):
+			prioritys.append(str(priority))
+		priority_combo.set_popdown_strings(prioritys)
+		if type == "edit":
+			priority_combo.entry.set_text(self.task[self.selected_task][2])
+		priority_combo.show()
+		self.priority_combo = priority_combo
+
+		priority_label = GtkLabel()
+		priority_label.set_text("  1 - Highest")
+		priority_hbox.pack_end(priority_label, expand=FALSE)
+		priority_label.show()
+
+		scrolledwindow1=GtkScrolledWindow()
+		table1.attach(scrolledwindow1, 1, 2, 2, 3, EXPAND, 0, 0, 0)
+		scrolledwindow1.set_usize(160, 70)
+		scrolledwindow1.set_policy(POLICY_NEVER, POLICY_AUTOMATIC)
+		description_text=GtkText()
+		scrolledwindow1.add(description_text)
+		description_text.set_flags(CAN_FOCUS)
+		description_text.set_usize(160, 70)
+		description_text.set_editable(TRUE)
+		if type == "edit":
+			description_text.insert(None,None,None,self.task[self.selected_task][1])
+		description_text.show()
+		self.description_text=description_text
+		scrolledwindow1.show()
+		self.scrolledwindow1=scrolledwindow1
+
+	def update_xml(self):
+		'''Update the tasks xml storage file.'''
+
+		file = open(self.parent.storm_userdatadir + 'tasks.xml', 'w')
+
+		x = 0
+		while x < len(self.task):
+			file.write('<task>\n<summary>' + self.task[x][0] + '</summary>\n<description>' + self.task[x][1] + '</description>\n<priority>' + self.task[x][2] + '</priority>\n<status>' + self.task[x][3] + '</status>\n</task>\n\n')
+			x = x + 1
+
+		file.close
+
diff -urN storm_0.3/usr/share/storm/modules/today.py storm_0.5.2/usr/share/storm/modules/today.py
--- storm_0.3/usr/share/storm/modules/today.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/today.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,352 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by 
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+from modules.storm_constants import *
+import time, string, os
+
+class Today:
+	def __init__(self, parent):
+		self.parent = parent
+
+		date = time.strftime("%d %b %Y", time.localtime(time.time()))
+		self.day, self.month, self.year = string.split(date)
+
+		frame = GtkFrame()
+		frame.set_usize(-1, -1)
+		frame.set_shadow_type("GTK_SHADOW_ETCHED_IN")		
+		frame.set_name("today_frame")
+		# make the label of the whole frame bold
+		rc_parse_string('widget "*today_frame*" style "storm_today_title"') 
+
+		# need to explicitly set the name of the other
+		# labels with *.set_name("..._label") for this to
+		# work, otherwise they will appear in bold! (or
+		# maybe, just "*" instead of "*label*" would help
+		# too...)		
+		rc_parse_string('widget "*label*" style "storm_normal"') 
+
+# Some stuff I tried to get the current font. raster tells me I cannot get it.
+# Damn.
+
+#                colin = GtkFontSelection()
+#                myfont = colin.get_font_name()
+#                print "myfont"
+#                print myfont
+#                print "myfont"
+#
+#		font = load_font("-*-*-bold-*-*-*-*-*-*-*-*-*-*-*")
+#		style = frame.get_style().copy()
+#		style.font = font
+#		frame.set_style(style)
+
+##         l = gtk.GtkLabel("MyLabel")
+##         style = l.get_style().copy()
+##         # Now change:
+##         #    style.font.
+##         #    style.font.ascent
+##         #    style.font.descent
+##         #    style.font.extents
+##         #    style.font.height
+##         #    style.font.measure
+##         #    style.font.type
+##         #    style.font.width
+##         l.set_style(style)
+
+# raster tells me I could parse the gtkrc though. Not a bad idea,
+# but I don't know how to do that. The C function is gtk_rc_parse().
+
+# struct GtkRcStyle
+# {
+#   gchar *name;
+#   gchar *font_name;
+#   gchar *fontset_name;
+#   gchar *bg_pixmap_name[5];
+# 
+#   GtkRcFlags color_flags[5];
+#   GdkColor   fg[5];
+#   GdkColor   bg[5];
+#   GdkColor   text[5];
+#   GdkColor   base[5];
+# 
+#   GtkThemeEngine *engine;
+#   gpointer        engine_data;
+# 
+#   /* Private */
+#   guint ref_count;
+# };
+
+
+		storm_file = open(self.parent.storm_userdatafile, 'r')
+		raw = storm_file.read()
+		storm_config = string.split(raw, '\n')
+		storm_file.close()
+		self.storm_config = storm_config
+		user_name = storm_config[0]
+		user_email = storm_config[1]
+		
+		vbox1=GtkVBox()
+		frame.add(vbox1)
+		vbox1.set_usize(-1, -1)
+		vbox1.set_homogeneous(FALSE)
+		vbox1.set_spacing(0)
+
+
+		hbox_username=GtkHBox()
+		vbox1.pack_start(hbox_username, TRUE, TRUE, 0)
+		hbox_username.set_usize(-1, -1)
+		hbox_username.set_homogeneous(FALSE)
+		hbox_username.set_spacing(0)
+		username_label=GtkLabel()
+		username_label.set_name("username_label")
+		rc_parse_string('widget "*username_label*" style "storm_username"') 
+		hbox_username.pack_start(username_label, FALSE, FALSE, 0)
+		username_label.set_usize(-1, -1)
+		username_label.set_text("Info for " + user_name)
+#		username_label.set_text("Info for " + user_name + "<" + user_email + ">")
+		username_label.set_justify(JUSTIFY_LEFT)
+		username_label.set_alignment(0.5, 0.5)
+		username_label.set_padding(5, -5)
+		username_label.show()
+		self.username_label=username_label
+		hbox_username.show()
+		self.hbox_username=hbox_username
+
+		hbox1=GtkHBox()
+		vbox1.pack_start(hbox1, TRUE, TRUE, 0)
+		hbox1.set_usize(-1, -1)
+		hbox1.set_homogeneous(FALSE)
+		hbox1.set_spacing(0)
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/storm-today.xpm")
+		today_pixmap=GtkPixmap(pix, mask)
+		hbox1.pack_start(today_pixmap, FALSE, FALSE, 0)
+		today_pixmap.set_usize(-1, -1)
+		today_pixmap.set_alignment(0.5, 0.5)
+		today_pixmap.set_padding(5, 0)
+		today_pixmap.show()
+		self.today_pixmap=today_pixmap
+		today_label=GtkLabel()
+		today_label.set_name("today_label")
+#		rc_parse_string('widget "*today_label*" style "storm_normal"') 
+		hbox1.pack_start(today_label, FALSE, FALSE, 0)
+		today_label.set_usize(-1, -1)
+		date_file = open(self.parent.storm_usercfgdir + "lastsync", 'r')
+		# strip trailing white space after reading:
+		thedate = string.rstrip(date_file.read())
+		date_file.close()
+		today_label.set_text("Last synchronized:\n" + thedate)
+		today_label.set_justify(JUSTIFY_LEFT)
+		today_label.set_alignment(0.5, 0.5)
+		today_label.set_padding(0, 0)
+		today_label.show()
+		self.today_label=today_label
+		hbox1.show()
+		self.hbox1=hbox1
+
+		hbox2=GtkHBox()
+		vbox1.pack_start(hbox2, TRUE, TRUE, 0)
+		hbox2.set_usize(-1, -1)
+		hbox2.set_homogeneous(FALSE)
+		hbox2.set_spacing(0)
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/storm-inbox.xpm")
+		inbox_pixmap=GtkPixmap(pix, mask)
+		hbox2.pack_start(inbox_pixmap, FALSE, FALSE, 0)
+		inbox_pixmap.set_usize(-1, -1)
+		inbox_pixmap.set_alignment(0.5, 0.5)
+		inbox_pixmap.set_padding(5, 0)
+		inbox_pixmap.show()
+		self.inbox_pixmap=inbox_pixmap
+		inbox_label=GtkLabel()
+		inbox_label.set_name("inbox_label")
+#		rc_parse_string('widget "*inbox_label*" style "storm_normal"') 
+		hbox2.pack_start(inbox_label, FALSE, FALSE, 0)
+		inbox_label.set_usize(-1, -1)
+		inbox_label.set_justify(JUSTIFY_LEFT)
+		inbox_label.set_alignment(0.5, 0.5)
+		inbox_label.set_padding(0, 0)
+		inbox_label.show()
+		self.inbox_label=inbox_label
+		hbox2.show()
+		self.hbox2=hbox2
+
+		hbox3=GtkHBox()
+		vbox1.pack_start(hbox3, TRUE, TRUE, 0)
+		hbox3.set_usize(-1, -1)
+		hbox3.set_homogeneous(FALSE)
+		hbox3.set_spacing(0)
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/storm-calendar.xpm")
+		calendar_pixmap=GtkPixmap(pix, mask)
+		hbox3.pack_start(calendar_pixmap, FALSE, FALSE, 0)
+		calendar_pixmap.set_usize(-1, -1)
+		calendar_pixmap.set_alignment(0.5, 0.5)
+		calendar_pixmap.set_padding(5, 0)
+		calendar_pixmap.show()
+		self.calendar_pixmap=calendar_pixmap
+		calendar_label=GtkLabel()
+		calendar_label.set_name("calendar_label")
+#		rc_parse_string('widget "*calendar_label*" style "storm_normal"') 
+		hbox3.pack_start(calendar_label, FALSE, FALSE, 0)
+		calendar_label.set_usize(-1, -1)
+		calendar_label.set_justify(JUSTIFY_LEFT)
+		calendar_label.set_alignment(0.5, 0.5)
+		calendar_label.set_padding(0, 0)
+		calendar_label.show()
+		self.calendar_label=calendar_label
+		hbox3.show()
+		self.hbox3=hbox3
+
+		hbox4=GtkHBox()
+		vbox1.pack_start(hbox4, TRUE, TRUE, 0)
+		hbox4.set_usize(-1, -1)
+		hbox4.set_homogeneous(FALSE)
+		hbox4.set_spacing(0)
+		pix, mask = create_pixmap_from_xpm(self.parent.window, None, self.parent.config[2] + "/pixmaps/storm-tasks.xpm")
+		tasks_pixmap=GtkPixmap(pix, mask)
+		hbox4.pack_start(tasks_pixmap, FALSE, FALSE, 0)
+		tasks_pixmap.set_usize(-1, -1)
+		tasks_pixmap.set_alignment(0.5, 0.5)
+		tasks_pixmap.set_padding(5, 0)
+		tasks_pixmap.show()
+		self.tasks_pixmap=tasks_pixmap
+		tasks_label=GtkLabel()
+		tasks_label.set_name("tasks_label")
+#		rc_parse_string('widget "*tasks_label*" style "storm_normal"') 
+		hbox4.pack_start(tasks_label, FALSE, FALSE, 0)
+		tasks_label.set_usize(-1, -1)
+		tasks_label.set_justify(JUSTIFY_LEFT)
+		tasks_label.set_alignment(0.5, 0.5)
+		tasks_label.set_padding(0, 0)
+		tasks_label.show()
+		self.tasks_label=tasks_label
+		hbox4.show()
+		self.hbox4=hbox4
+
+		vbox1.show()
+		self.vbox1=vbox1
+
+		frame.show()
+		self.frame = frame
+
+		self.update_today()
+
+
+	def update_today_datetime(self, *args):
+		'''Update date and time of the Today page.'''
+		
+		# Update the date/time
+		datetime = time.strftime("%a, %d %b %Y, %H:%M %p", time.localtime(time.time()))
+		self.frame.set_label("Today (" + datetime + ")")
+
+	def update_today(self, *args):
+		'''Update the Today page with the latest things.'''
+
+		self.update_today_datetime()
+
+		# Update the email message count
+		maildir_folders = os.listdir(self.parent.storm_usermaildirdir)
+		label_str = ''
+		for folder in maildir_folders:
+			if folder != "CVS":
+				num = 0
+				num = num + len(os.listdir(self.parent.storm_usermaildirdir + folder + '/new'))
+				label_str = label_str + folder + ': ' + str(num)
+				num = num + len(os.listdir(self.parent.storm_usermaildirdir + folder + '/cur'))
+				label_str = label_str + ' new, ' + str(num) + ' total\n'
+		# Add the text to the gtk label
+		self.inbox_label.set_text(label_str[:-1])
+
+		# Update the number of appointments for today
+		x = 0
+		appointments_num = 0
+# TODO: (Work in progress.) Don't show "Next appt is today" if the
+# appt has already occured. Also print how many appts are left
+# today. [CM]
+#		appts_left_today = 0
+		curday = time.strftime("%d", time.localtime(time.time()))
+#		curtime_epoch = time.time()
+#		print "DEBUG: current time is " + str(curtime_epoch)
+		while x < len(self.parent.calendar.appt):
+			if self.parent.calendar.appt[x][c_Date][c_DateDay] == curday:
+				appointments_num = appointments_num + 1
+				#today_appt_time = self.parent.calendar.appt[x][c_StartTime][c_StartTimeHour] + ':' + self.parent.calendar.appt[x][c_StartTime][c_StartTimeMin]
+				#today_appt_time_str = str(today_appt_time)
+				#print "DEBUG: todays appts " + today_appt_time_str
+				#print "DEBUG: tuple " + str(time.strptime(today_appt_time_str, "%H:%M"))
+				##today_appt_time_epoch = time.strptime(today_appt_time, "%H:%M")
+				##today_appt_time_epoch = time.mktime(time.strptime(today_appt_time, "%H:%M"))
+				#today_appt_time_epoch = time.mktime(time.strptime("2002 " + today_appt_time_str, "%Y %H:%M"))
+				#print "DEBUG: todays appts in epoch " + str(today_appt_time_epoch)
+				#if curtime_epoch < today_appt_time_epoch:
+				#	print "DEBUG: MEEEEEP"
+				#	appts_left_today = appts_left_today + 1
+			x = x + 1
+		label = 'Appointments: ' + str(appointments_num) + ' today, ' + str(len(self.parent.calendar.appt)) + ' total'
+#		label = 'Appointments: ' + str(appointments_num) + ' today (' + str(appts_left_today) + ' left), ' + str(len(self.parent.calendar.appt)) + ' total'
+		rc_parse_string('widget "*calendar_label*" style "storm_normal"') 
+		self.calendar_label.set_name("calendar_label")
+
+		# find the next appointment:
+		if len(self.parent.calendar.appt) > 0:
+			# !!! TODO: appts need to be sorted. now it depends on the order in which they are created [CM]
+#			print "DEBUG: Checking appt on day " + self.parent.calendar.appt[x-1][c_Date][c_DateDay]
+#			print "DEBUG: Today is day " + str(int(curday))
+
+			# ugly:
+			curhour = int(time.strftime("%H", time.localtime(time.time())))
+			curmin  = int(time.strftime("%M", time.localtime(time.time())))
+			
+			if self.parent.calendar.appt[x-1][c_Date][c_DateDay] == curday and \
+			   curhour <= self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeHour] and \
+			   curmin  <= self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeMin]:
+				appoint_date = 'today at ' + self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeHour] + ':' + self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeMin]
+				print "DEBUG: appt left today is at " + self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeHour] + ':' + self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeMin]
+
+				# make text bold:
+				rc_parse_string('widget "*calendar_label*" style "storm_appt_today"') 
+
+				if self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeHour] <= str(curhour + 1):
+					print "DEBUG: appt left today is CLOSE!"
+					rc_parse_string('widget "*calendar_label*" style "storm_appt_upcoming"')
+ 				self.calendar_label.set_name("calendar_label")
+
+			elif self.parent.calendar.appt[x-1][c_Date][c_DateDay] == str(int(curday) + 1):
+				appoint_date = 'tomorrow at ' + self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeHour] + ':' + self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeMin]
+				print "DEBUG: appt tomorrow is at " + self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeHour] + ':' + self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeMin]
+			else:
+				appoint_date = 'on ' + time.strftime("%a, %b %d %Y", time.strptime(time.strftime("%b %d %Y", (int(self.parent.calendar.appt[x-1][c_Date][c_DateYear]), int(self.parent.calendar.appt[x-1][c_Date][c_DateMonth]), int(self.parent.calendar.appt[x-1][c_Date][c_DateDay]), 0, 0, 0, 0, 0, 0)), "%b %d %Y")) + ' at ' + self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeHour] + ':' + self.parent.calendar.appt[x-1][c_StartTime][c_StartTimeMin]
+				print "DEBUG: appt is neither today nor tomorrow."
+
+			label = label + '\nNext is ' + appoint_date
+		self.calendar_label.set_text(label)
+		# TODO: if the next appt is really close, print it in bold font [CM]
+
+		
+		# Update the number of tasks
+		x = 0
+		tasks_done = 0
+		tasks_not_done = 0
+		print 'Tasks ' + str(len(self.parent.tasks.task))
+		while x < len(self.parent.tasks.task):
+			if self.parent.tasks.task[x][3] == '1':
+				tasks_done = tasks_done + 1
+			elif self.parent.tasks.task[x][3] == '0':
+				tasks_not_done = tasks_not_done + 1
+			x = x + 1
+		self.tasks_label.set_text('Tasks: ' + str(tasks_done) + ' completed, ' + str(tasks_not_done) + ' remaining')
+
diff -urN storm_0.3/usr/share/storm/modules/xmlparse.py storm_0.5.2/usr/share/storm/modules/xmlparse.py
--- storm_0.3/usr/share/storm/modules/xmlparse.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/modules/xmlparse.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+import re
+
+# maybe need to add stuff like "öäüßáçéíóöõúüûðýøåæÖÄÜÁÇÉÍÓÖÕÚÜÛÐÝØÅÆ to the regexp
+# but... maybe it should not be a positive list, but a negative list [CM]
+
+class XmlParse:
+	def __init__(self):
+		pass
+
+	def xml_get_text(self, xml_source, tag):
+		second_level = re.compile('<'+tag+'>([0-9A-Za-z \t\n\r<>\.@\-:,/\\\-_\(\)]*?)</'+tag+'>')
+		xml_output = re.findall(second_level, xml_source)
+		if len(xml_output) > 0:
+			return xml_output[0]
+		else:
+			return ''
+
+	def parse_xml_file(self, xml_file, first_tag):
+		# regexp for xml
+		self.first_level = re.compile('<'+first_tag+'>([0-9A-Za-z \t\n\r<>\.@\-:,/\\\-_\(\)]*?)</'+first_tag+'>')
+		# contacts xml file
+		self.xml_file = xml_file
+
+		# open and read the xml file
+		file = open(self.xml_file, 'r')
+		xml_source = file.read()
+		file.close()
+
+		# get the data for each contact
+		xml_output = re.findall(self.first_level, xml_source)
+		return xml_output
diff -urN storm_0.3/usr/share/storm/pixmaps/about.xpm storm_0.5.2/usr/share/storm/pixmaps/about.xpm
--- storm_0.3/usr/share/storm/pixmaps/about.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/about.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,54 @@
+/* XPM */
+static char * about_xpm[] = {
+"18 17 34 1",
+" 	c None",
+".	c #181810",
+"+	c #080C08",
+"@	c #302C28",
+"#	c #F7EFEF",
+"$	c #383830",
+"%	c #494941",
+"&	c #FFFBF7",
+"*	c #D7D3CF",
+"=	c #EFEBE7",
+"-	c #FFFFFF",
+";	c #DFAE41",
+">	c #C77D38",
+",	c #BE9271",
+"'	c #E7DBCF",
+")	c #E7CBA6",
+"!	c #E7B651",
+"~	c #C79249",
+"{	c #000000",
+"]	c #E7BA49",
+"^	c #D7A641",
+"/	c #E7CB96",
+"(	c #A66551",
+"_	c #C78638",
+":	c #AE5D30",
+"<	c #9E5D49",
+"[	c #DFCFCF",
+"}	c #B67130",
+"|	c #A64D28",
+"1	c #963828",
+"2	c #A68679",
+"3	c #595951",
+"4	c #9E5541",
+"5	c #AE8E8E",
+"                  ",
+"    .++           ",
+"   @###$  ..$%    ",
+"   $##&#$.####%   ",
+"   $#&##***=-&%   ",
+"   .#**;>>,'*#%   ",
+"  @#*);>;;!~*#{%  ",
+" +#=*);;!];^)*##$ ",
+" %=&*/]]]!;>(*-#+ ",
+"  %#*)^;];_:<[##+ ",
+"   {#*~>>}|12#3@  ",
+"   $#&*,44<5*#.   ",
+"   %&-=#####&#$   ",
+"   %####.$#&##$   ",
+"    $$..  $###@   ",
+"           ++.    ",
+"                  "};
diff -urN storm_0.3/usr/share/storm/pixmaps/alarm-shaded.xpm storm_0.5.2/usr/share/storm/pixmaps/alarm-shaded.xpm
--- storm_0.3/usr/share/storm/pixmaps/alarm-shaded.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/alarm-shaded.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,15 @@
+/* XPM */
+static char * alarm_shaded_xpm[] = {
+"10 10 2 1",
+" 	c None",
+".	c #5E5E5E",
+"    ..    ",
+"   .  .   ",
+"  .    .  ",
+" .      . ",
+" .      . ",
+" .      . ",
+".        .",
+"..........",
+"   .  .   ",
+"    ..    "};
diff -urN storm_0.3/usr/share/storm/pixmaps/alarm.xpm storm_0.5.2/usr/share/storm/pixmaps/alarm.xpm
--- storm_0.3/usr/share/storm/pixmaps/alarm.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/alarm.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,49 @@
+/* XPM */
+static char * alarm_xpm[] = {
+"10 10 36 1",
+" 	c None",
+".	c #000000",
+"+	c #D3BB68",
+"@	c #D4BA62",
+"#	c #EAD995",
+"$	c #FCF4D0",
+"%	c #FBEFB7",
+"&	c #E2C665",
+"*	c #8E7D45",
+"=	c #FBEEB1",
+"-	c #FFFBE4",
+";	c #FEF6C7",
+">	c #F3DC7E",
+",	c #846B25",
+"'	c #D1B955",
+")	c #FDEF9C",
+"!	c #FFF5B3",
+"~	c #FFF2A6",
+"{	c #F7E075",
+"]	c #BB921D",
+"^	c #E5CB49",
+"/	c #FDE970",
+"(	c #FCE97B",
+"_	c #FAE570",
+":	c #F2D44D",
+"<	c #C69915",
+"[	c #B18305",
+"}	c #D3AB1A",
+"|	c #D8B42A",
+"1	c #D5B02C",
+"2	c #D0A721",
+"3	c #C79811",
+"4	c #B37F03",
+"5	c #8C5F00",
+"6	c #FFDD00",
+"7	c #F4D750",
+"    ..    ",
+"   .+@.   ",
+"  .#$%&.  ",
+" .*=-;>,. ",
+" .')!~{]. ",
+" .^/(_:<. ",
+".[}|12345.",
+"..........",
+"   .67.   ",
+"    ..    "};
diff -urN storm_0.3/usr/share/storm/pixmaps/back.xpm storm_0.5.2/usr/share/storm/pixmaps/back.xpm
--- storm_0.3/usr/share/storm/pixmaps/back.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/back.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,89 @@
+/* XPM */
+static char * back_xpm[] = {
+"16 16 70 1",
+" 	c None",
+".	c #234E33",
+"+	c #1E472E",
+"@	c #224B31",
+"#	c #214A30",
+"$	c #C1CECC",
+"%	c #DBEADF",
+"&	c #AFBEBA",
+"*	c #1B422A",
+"=	c #1B4029",
+"-	c #245135",
+";	c #C0D1C9",
+">	c #227D37",
+",	c #90BD9F",
+"'	c #BFD0C8",
+")	c #163321",
+"!	c #173A23",
+"~	c #224B30",
+"{	c #43BA5C",
+"]	c #3BB057",
+"^	c #2F9645",
+"/	c #BDCEC7",
+"(	c #153220",
+"_	c #7BA08A",
+":	c #42B75B",
+"<	c #3FAF57",
+"[	c #143D29",
+"}	c #0B281E",
+"|	c #1E4335",
+"1	c #38774E",
+"2	c #143120",
+"3	c #C2DBCA",
+"4	c #88AB9C",
+"5	c #9DC6AA",
+"6	c #36A34D",
+"7	c #123926",
+"8	c #050E0D",
+"9	c #081914",
+"0	c #0F2417",
+"a	c #CFE0D4",
+"b	c #2A8F3D",
+"c	c #0D3525",
+"d	c #0A1F18",
+"e	c #040B06",
+"f	c #B2D1BC",
+"g	c #3E9951",
+"h	c #259039",
+"i	c #041714",
+"j	c #030C0B",
+"k	c #0D2419",
+"l	c #0A1910",
+"m	c #468166",
+"n	c #5AA77B",
+"o	c #5AB975",
+"p	c #55AE72",
+"q	c #071112",
+"r	c #03090A",
+"s	c #14311F",
+"t	c #000000",
+"u	c #010003",
+"v	c #020005",
+"w	c #03080A",
+"x	c #10211F",
+"y	c #000001",
+"z	c #162D26",
+"A	c #050B0C",
+"B	c #090F10",
+"C	c #142724",
+"D	c #050D0E",
+"E	c #050A0C",
+"                ",
+"                ",
+"        .++     ",
+"      @#$%&*=   ",
+"-    #;%>>>,')  ",
+"!-  ~%>>{]^>>/( ",
+"!_-#%>:<[}}|1>2 ",
+"!345>678    9->0",
+"!ab>6c       d>e",
+"!fgh>i       jkl",
+"!mnop>9      qr ",
+"stuuvuuu    wxy ",
+"           8zA  ",
+"          BCD   ",
+"        yEy     ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/blank-16.xpm storm_0.5.2/usr/share/storm/pixmaps/blank-16.xpm
--- storm_0.3/usr/share/storm/pixmaps/blank-16.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/blank-16.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,20 @@
+/* XPM */
+static char * blank_16_xpm[] = {
+"16 16 1 1",
+" 	c None",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/blank.xpm storm_0.5.2/usr/share/storm/pixmaps/blank.xpm
--- storm_0.3/usr/share/storm/pixmaps/blank.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/blank.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,5 @@
+/* XPM */
+static char * back_xpm[] = {
+"16 16 70 1",
+" 	c None",
+"c"};
diff -urN storm_0.3/usr/share/storm/pixmaps/cancel-tiny.xpm storm_0.5.2/usr/share/storm/pixmaps/cancel-tiny.xpm
--- storm_0.3/usr/share/storm/pixmaps/cancel-tiny.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/cancel-tiny.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,44 @@
+/* XPM */
+static char * cancel_tiny_xpm[] = {
+"10 10 31 1",
+" 	c None",
+".	c #000000",
+"+	c #814348",
+"@	c #56393B",
+"#	c #70393E",
+"$	c #76363C",
+"%	c #762C33",
+"&	c #8C3E45",
+"*	c #762D34",
+"=	c #A23D46",
+"-	c #391D1F",
+";	c #8F4349",
+">	c #8F373F",
+",	c #712B31",
+"'	c #B5444E",
+")	c #A63E47",
+"!	c #6F3D42",
+"~	c #B74953",
+"{	c #4D3133",
+"]	c #73474B",
+"^	c #A2414A",
+"/	c #623135",
+"(	c #5F2429",
+"_	c #793239",
+":	c #574B4C",
+"<	c #AE4A53",
+"[	c #60383B",
+"}	c #8F363E",
+"|	c #674F51",
+"1	c #6D3338",
+"2	c #62393D",
+"   ..   . ",
+"  .+@. .#.",
+"  .$%..&*.",
+"   .=-;>. ",
+"   .,').  ",
+"  .!~'{.  ",
+" .]^/(_.  ",
+".:<[..}|. ",
+" ... .12. ",
+"      ..  "};
diff -urN storm_0.3/usr/share/storm/pixmaps/cancel.xpm storm_0.5.2/usr/share/storm/pixmaps/cancel.xpm
--- storm_0.3/usr/share/storm/pixmaps/cancel.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/cancel.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,27 @@
+/* XPM */
+static char * cancel_xpm[] = {
+"16 16 8 1",
+" 	c None",
+".	c #000000",
+"+	c #C46D74",
+"@	c #9F3C44",
+"#	c #B5444E",
+"$	c #BD5A62",
+"%	c #7B2D34",
+"&	c #8C343C",
+"                ",
+"     ..      .  ",
+"    .+@.    .#. ",
+"    .##.   .$#. ",
+"     .#@. .$#%. ",
+"     .##..$#&.  ",
+"      .####@.   ",
+"      .####.    ",
+"     .$###.     ",
+"    .$####.     ",
+"   .$#&..#&.    ",
+"  .+#&. .@#.    ",
+"  .#&.   .#@.   ",
+"   ..    .@#.   ",
+"          ..    ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/contacts-add.xpm storm_0.5.2/usr/share/storm/pixmaps/contacts-add.xpm
--- storm_0.3/usr/share/storm/pixmaps/contacts-add.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/contacts-add.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,66 @@
+/* XPM */
+static char * contacts_add_xpm[] = {
+"16 16 47 1",
+" 	c None",
+".	c #000000",
+"+	c #FF3838",
+"@	c #EA3333",
+"#	c #BDBDBD",
+"$	c #FFFFFF",
+"%	c #C92C2C",
+"&	c #F8F8F8",
+"*	c #C9B49B",
+"=	c #8E7151",
+"-	c #876E51",
+";	c #BAB1A5",
+">	c #F3F3F3",
+",	c #A88D6E",
+"'	c #DFD0BF",
+")	c #5E432B",
+"!	c #7E6C5B",
+"~	c #EEDFCC",
+"{	c #F4EEE6",
+"]	c #765E45",
+"^	c #736251",
+"/	c #EAE8E3",
+"(	c #FAFAFA",
+"_	c #7590AE",
+":	c #C1665A",
+"<	c #445B71",
+"[	c #D7D6D3",
+"}	c #ADADAD",
+"|	c #4B6983",
+"1	c #9DB8D2",
+"2	c #486481",
+"3	c #314E6C",
+"4	c #667A8D",
+"5	c #5F7C96",
+"6	c #5D7A95",
+"7	c #4D6B87",
+"8	c #3B556D",
+"9	c #344A60",
+"0	c #999999",
+"a	c #9B9B9B",
+"b	c #EDEDED",
+"c	c #C7C7C7",
+"d	c #5D5D5D",
+"e	c #787878",
+"f	c #E0DDD6",
+"g	c #A3A3A3",
+"h	c #918E85",
+"          ....  ",
+"          .++.  ",
+" ..........@+...",
+".#$$$$$$.%@@@++.",
+".$&*=-;$.%%@@@+.",
+".$>,')!$...%@...",
+".$>~{]^$$$.%%./.",
+".$(_:<[$}$..../.",
+".$|1234$$$$$$$/.",
+".$56789$0abc$$/.",
+".$$$$$$$$$$$$$/.",
+".$$d$d$e$a$c$$f.",
+".g///////////fh.",
+" .............. ",
+"                ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/contacts.xpm storm_0.5.2/usr/share/storm/pixmaps/contacts.xpm
--- storm_0.3/usr/share/storm/pixmaps/contacts.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/contacts.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,69 @@
+/* XPM */
+static char * contacts_xpm[] = {
+"16 16 50 1",
+" 	c None",
+".	c #000000",
+"+	c #BDBDBD",
+"@	c #FFFFFF",
+"#	c #A3A3A3",
+"$	c #F8F8F8",
+"%	c #C9B49B",
+"&	c #8E7151",
+"*	c #876E51",
+"=	c #BAB1A5",
+"-	c #FDFDFD",
+";	c #FBFBFB",
+">	c #EAE8E3",
+",	c #F3F3F3",
+"'	c #A88D6E",
+")	c #DFD0BF",
+"!	c #5E432B",
+"~	c #7E6C5B",
+"{	c #313131",
+"]	c #575757",
+"^	c #FCFCFC",
+"/	c #555555",
+"(	c #EEDFCC",
+"_	c #F4EEE6",
+":	c #765E45",
+"<	c #736251",
+"[	c #FAFAFA",
+"}	c #7590AE",
+"|	c #C1665A",
+"1	c #445B71",
+"2	c #D7D6D3",
+"3	c #ADADAD",
+"4	c #9B9B9B",
+"5	c #4B6983",
+"6	c #9DB8D2",
+"7	c #486481",
+"8	c #314E6C",
+"9	c #667A8D",
+"0	c #5F7C96",
+"a	c #5D7A95",
+"b	c #4D6B87",
+"c	c #3B556D",
+"d	c #344A60",
+"e	c #999999",
+"f	c #EDEDED",
+"g	c #C7C7C7",
+"h	c #5D5D5D",
+"i	c #787878",
+"j	c #E0DDD6",
+"k	c #918E85",
+"                ",
+"                ",
+" .............. ",
+".+@@@@@@@@@@@@#.",
+".@$%&*=@-@;@@@>.",
+".@,')!~@{]^/-@>.",
+".@,(_:<@@@@@@@>.",
+".@[}|12@3@43@@>.",
+".@56789@@@@@@@>.",
+".@0abcd@e4fg@@>.",
+".@@@@@@@@@@@@@>.",
+".@@h@h@i@4@g@@j.",
+".#>>>>>>>>>>>jk.",
+" .............. ",
+"                ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/draw.xpm storm_0.5.2/usr/share/storm/pixmaps/draw.xpm
--- storm_0.3/usr/share/storm/pixmaps/draw.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/draw.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,58 @@
+/* XPM */
+static char * draw_xpm[] = {
+"16 16 39 1",
+" 	c None",
+".	c #000000",
+"+	c #0068D8",
+"@	c #BAA88F",
+"#	c #836B4E",
+"$	c #0072FF",
+"%	c #FFFFFF",
+"&	c #C5A985",
+"*	c #DC9E55",
+"=	c #9E6233",
+"-	c #C3A783",
+";	c #DD9D53",
+">	c #A76631",
+",	c #FFDD00",
+"'	c #7B7B7B",
+")	c #C5AA88",
+"!	c #A86631",
+"~	c #F4CB00",
+"{	c #5E5E5E",
+"]	c #C3A47A",
+"^	c #DD9D52",
+"/	c #A66430",
+"(	c #6A6A6A",
+"_	c #C2A174",
+":	c #DC9B4E",
+"<	c #A96630",
+"[	c #6E6E6E",
+"}	c #9F9F9F",
+"|	c #BEA686",
+"1	c #DD9D51",
+"2	c #AA682F",
+"3	c #28BC00",
+"4	c #29A500",
+"5	c #7A7A7A",
+"6	c #BCAC9B",
+"7	c #A86E3F",
+"8	c #797979",
+"9	c #4F4F4F",
+"0	c #6C6C6C",
+"       ..    .. ",
+"     ..++.  .@#.",
+"   ..$$$%+..&*=.",
+" ..$$$$%$+.-;>. ",
+".$,$,$$$$');!.  ",
+".$$~$$$${]^/.   ",
+" .,$,$$(_:<[.   ",
+" .$$$$}|12.34.  ",
+"  .$%$56783334. ",
+"  .%$$9.033344. ",
+"   .$33333444.  ",
+"   .3333344..   ",
+"    .3344..     ",
+"    .44..       ",
+"     ..         ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/edit.xpm storm_0.5.2/usr/share/storm/pixmaps/edit.xpm
--- storm_0.3/usr/share/storm/pixmaps/edit.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/edit.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,84 @@
+/* XPM */
+static char * 16_edit_xpm[] = {
+"16 16 65 1",
+" 	c None",
+".	c #000000",
+"+	c #FDFDFD",
+"@	c #E2E2E2",
+"#	c #BAA88F",
+"$	c #836B4E",
+"%	c #FEFEFE",
+"&	c #FCFCFC",
+"*	c #FBFBFB",
+"=	c #E5E5E5",
+"-	c #C5A985",
+";	c #DC9E55",
+">	c #9E6233",
+",	c #FFFFFF",
+"'	c #F2F2F2",
+")	c #D9D9D9",
+"!	c #E4E4E4",
+"~	c #C3A783",
+"{	c #DD9D53",
+"]	c #A76631",
+"^	c #EEEEEE",
+"/	c #D4D4D4",
+"(	c #FAFAFA",
+"_	c #7B7B7B",
+":	c #C5AA88",
+"<	c #A86631",
+"[	c #DCDCDC",
+"}	c #F0F0F0",
+"|	c #5E5E5E",
+"1	c #C3A47A",
+"2	c #DD9D52",
+"3	c #A66430",
+"4	c #D5D5D5",
+"5	c #6A6A6A",
+"6	c #C2A174",
+"7	c #DC9B4E",
+"8	c #A96630",
+"9	c #6E6E6E",
+"0	c #D8D8D8",
+"a	c #D6D6D6",
+"b	c #9F9F9F",
+"c	c #BEA686",
+"d	c #DD9D51",
+"e	c #AA682F",
+"f	c #F5F5F5",
+"g	c #DDDDDD",
+"h	c #F9F9F9",
+"i	c #7A7A7A",
+"j	c #BCAC9B",
+"k	c #A86E3F",
+"l	c #797979",
+"m	c #F4F4F4",
+"n	c #F3F3F3",
+"o	c #DFDFDF",
+"p	c #7C7C7C",
+"q	c #4F4F4F",
+"r	c #6C6C6C",
+"s	c #EAEAEA",
+"t	c #F8F8F8",
+"u	c #F6F6F6",
+"v	c #F7F7F7",
+"w	c #EBEBEB",
+"x	c #ECECEC",
+"y	c #E0E0E0",
+"z	c #E8E8E8",
+"       ..    .. ",
+"     ..+@.  .#$.",
+"   ..%+&*=..-;>.",
+" ..,%+')*!.~{]. ",
+".,%%^/)*(_:{<.  ",
+".%%)[**}|123.   ",
+" .+'*}456789.   ",
+" .&*0abcde.fg.  ",
+"  .((hijklfmno. ",
+"  .(hpq.rfmnsg. ",
+"   .tilufm^oo.  ",
+"   .vuufwoo..   ",
+"    .uxyo..     ",
+"    .zg..       ",
+"     ..         ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/eraser.xpm storm_0.5.2/usr/share/storm/pixmaps/eraser.xpm
--- storm_0.3/usr/share/storm/pixmaps/eraser.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/eraser.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,24 @@
+/* XPM */
+static char * eraser_xpm[] = {
+"16 16 5 1",
+" 	c None",
+".	c #000000",
+"+	c #FFFFFF",
+"@	c #929292",
+"#	c #DBDBDB",
+"                ",
+"                ",
+"       ........ ",
+"      .++++++..@",
+"     .++++++.#.@",
+"    .++++++.##.@",
+"   .++++++.##.@@",
+"  .++++++.##.@@ ",
+" .++++++.##.@@  ",
+"........##.@@   ",
+".######.#.@@    ",
+".######..@@     ",
+"........@@      ",
+" @@@@@@@@       ",
+"                ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/exit.xpm storm_0.5.2/usr/share/storm/pixmaps/exit.xpm
--- storm_0.3/usr/share/storm/pixmaps/exit.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/exit.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,33 @@
+/* XPM */
+static char * exit_xpm[] = {
+"16 16 14 1",
+" 	c None",
+".	c #000000",
+"+	c #7B7B77",
+"@	c #A7A7A1",
+"#	c #E4E4DC",
+"$	c #C0C0B9",
+"%	c #737370",
+"&	c #BD5A62",
+"*	c #979792",
+"=	c #292929",
+"-	c #A2A29D",
+";	c #B5444E",
+">	c #CACAC3",
+",	c #9F3C44",
+"      .......   ",
+"     .+@@@@@+.  ",
+"     .@#####@.  ",
+"     .@#####@.  ",
+"     .@..#$%@.  ",
+" ......&&.*=-.  ",
+" .&&&&&;;&.>@.  ",
+" .;;;;;;;;&.@.  ",
+" .,,,,,;;,.#@.  ",
+" ......,,.##@.  ",
+"     .@..###@.  ",
+"     .@#####@.  ",
+"     .+@@@@@+.  ",
+"      .......   ",
+"                ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/find.xpm storm_0.5.2/usr/share/storm/pixmaps/find.xpm
--- storm_0.3/usr/share/storm/pixmaps/find.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/find.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,24 @@
+/* XPM */
+static char * find_xpm[] = {
+"16 16 5 1",
+" 	c None",
+".	c #000000",
+"+	c #A0A0A4",
+"@	c #DCDCDC",
+"#	c #FFFFFF",
+"   ....         ",
+" +.@##@.+       ",
+" .##++##.+      ",
+".@#+####@.      ",
+".########.      ",
+".########.      ",
+".@######@.      ",
+"+.######.+      ",
+" +.@##@...      ",
+"  +....+...     ",
+"   ++++++...    ",
+"        ++...   ",
+"         ++...  ",
+"          ++... ",
+"           ++.+ ",
+"            ++  "};
diff -urN storm_0.3/usr/share/storm/pixmaps/go-email.xpm storm_0.5.2/usr/share/storm/pixmaps/go-email.xpm
--- storm_0.3/usr/share/storm/pixmaps/go-email.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/go-email.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,72 @@
+/* XPM */
+static char * go_email_xpm[] = {
+"13 13 56 1",
+" 	c None",
+".	c #000000",
+"+	c #010101",
+"@	c #BAB7B2",
+"#	c #D9D6D0",
+"$	c #C3C0B9",
+"%	c #ECD6A4",
+"&	c #CDCBC7",
+"*	c #F7F7F6",
+"=	c #FAFAFA",
+"-	c #B6B4AE",
+";	c #FAF7E9",
+">	c #D1940C",
+",	c #DBDBDB",
+"'	c #FFFFFF",
+")	c #D2CFC9",
+"!	c #707070",
+"~	c #F9F5E5",
+"{	c #FAF5E5",
+"]	c #FAF5E3",
+"^	c #F5EBC4",
+"/	c #EED680",
+"(	c #868580",
+"_	c #E5E2DB",
+":	c #F7EECD",
+"<	c #D8D8D3",
+"[	c #DDDAD4",
+"}	c #E4C379",
+"|	c #AC7A09",
+"1	c #765305",
+"2	c #D8D6D2",
+"3	c #B69B5C",
+"4	c #9E7009",
+"5	c #825C06",
+"6	c #8E6407",
+"7	c #684905",
+"8	c #D5D4D0",
+"9	c #F0EEE8",
+"0	c #DDD9D2",
+"a	c #BC850A",
+"b	c #D5D4D1",
+"c	c #74726E",
+"d	c #E3E0D9",
+"e	c #7D7A77",
+"f	c #FBFBF8",
+"g	c #624504",
+"h	c #D6D4D2",
+"i	c #F7F5F2",
+"j	c #E2DFD8",
+"k	c #090808",
+"l	c #D7D4CE",
+"m	c #D8D5CF",
+"n	c #B2B0AB",
+"o	c #DAD7D1",
+"p	c #E0DCD5",
+"q	c #222221",
+"    .++++    ",
+"   +.@###+   ",
+"  +#..@##$+  ",
+" +##.%.&*=-+ ",
+".....;>.,')!+",
+".~{{]^/>.,(_+",
+".://////>.<[+",
+".}|>|>|>1.2[+",
+".3456|>7.890+",
+".....a7.bcd0+",
+"+'ef.g.hi_cj+",
+"+klm..n##opq+",
+" +++..++++++ "};
diff -urN storm_0.3/usr/share/storm/pixmaps/help.xpm storm_0.5.2/usr/share/storm/pixmaps/help.xpm
--- storm_0.3/usr/share/storm/pixmaps/help.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/help.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,111 @@
+/* XPM */
+static char * help_xpm[] = {
+"18 17 91 1",
+" 	c None",
+".	c #000000",
+"+	c #D9D9D9",
+"@	c #A5A5A5",
+"#	c #9B9B9B",
+"$	c #A3A3A3",
+"%	c #A9A9A9",
+"&	c #A8A8A8",
+"*	c #A0A0A0",
+"=	c #929292",
+"-	c #898989",
+";	c #C0C0C0",
+">	c #B7B7B7",
+",	c #AEAEAE",
+"'	c #D5D5D5",
+")	c #F2F2F2",
+"!	c #F5F5F5",
+"~	c #CECECE",
+"{	c #CACACA",
+"]	c #F0F0F0",
+"^	c #F4F4F4",
+"/	c #979797",
+"(	c #757575",
+"_	c #B6B6B6",
+":	c #AAAAAA",
+"<	c #ECECEC",
+"[	c #FEFEFE",
+"}	c #FFFFFF",
+"|	c #A7A7A7",
+"1	c #686868",
+"2	c #6B6B6B",
+"3	c #9F9F9F",
+"4	c #E8E8E8",
+"5	c #919191",
+"6	c #949494",
+"7	c #D8D8D8",
+"8	c #C4C4C4",
+"9	c #BBBBBB",
+"0	c #646464",
+"a	c #E2E2E2",
+"b	c #CDCDCD",
+"c	c #5F5F5F",
+"d	c #6F6F6F",
+"e	c #D6D6D6",
+"f	c #FAFAFA",
+"g	c #FDFDFD",
+"h	c #E4E4E4",
+"i	c #8C8C8C",
+"j	c #E7E7E7",
+"k	c #EBEBEB",
+"l	c #626262",
+"m	c #5C5C5C",
+"n	c #C8C8C8",
+"o	c #7E7E7E",
+"p	c #E9E9E9",
+"q	c #F6F6F6",
+"r	c #9E9E9E",
+"s	c #6C6C6C",
+"t	c #FBFBFB",
+"u	c #DBDBDB",
+"v	c #5B5B5B",
+"w	c #C5C5C5",
+"x	c #989898",
+"y	c #B4B4B4",
+"z	c #A2A2A2",
+"A	c #C2C2C2",
+"B	c #4E4E4E",
+"C	c #9C9C9C",
+"D	c #8B8B8B",
+"E	c #D1D1D1",
+"F	c #EDEDED",
+"G	c #CCCCCC",
+"H	c #B2B2B2",
+"I	c #535353",
+"J	c #7C7C7C",
+"K	c #808080",
+"L	c #FCFCFC",
+"M	c #F1F1F1",
+"N	c #F7F7F7",
+"O	c #DDDDDD",
+"P	c #676767",
+"Q	c #7F7F7F",
+"R	c #B3B3B3",
+"S	c #C7C7C7",
+"T	c #E0E0E0",
+"U	c #717171",
+"V	c #878787",
+"W	c #555555",
+"X	c #787878",
+"Y	c #999999",
+"Z	c #888888",
+"                  ",
+"    .........+    ",
+"  ..@#$%&*=-=.;   ",
+" .>,')!~{]^~/(._  ",
+" .:<[}|123^[451.; ",
+".67}}}8~90a}[bcd.e",
+".(f}}}ghi1j}}klm.n",
+".op}}}qrs{t}}uvm.w",
+".xyt}}]zA}}}q@B.C ",
+"a.DEg}F*G}})HI.J  ",
+" w.KbLLMN})Ol.P   ",
+"  >.2CON[gO2l.Q   ",
+"   R...3STOl.m    ",
+"    >rJ..UVo.W    ",
+"       =X....B    ",
+"         YZX(     ",
+"                  "};
diff -urN storm_0.3/usr/share/storm/pixmaps/home.xpm storm_0.5.2/usr/share/storm/pixmaps/home.xpm
--- storm_0.3/usr/share/storm/pixmaps/home.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/home.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,47 @@
+/* XPM */
+static char * home_xpm[] = {
+"18 17 27 1",
+" 	c None",
+".	c #000000",
+"+	c #FFFFFF",
+"@	c #CFD7CF",
+"#	c #E0E4DD",
+"$	c #839279",
+"%	c #C9D0C5",
+"&	c #D4D9D0",
+"*	c #B9C2B3",
+"=	c #7F8F74",
+"-	c #000100",
+";	c #C7CEC3",
+">	c #D2D7CE",
+",	c #CCD3C8",
+"'	c #C8CFC4",
+")	c #B7C0B1",
+"!	c #EFF1EE",
+"~	c #B8C1B2",
+"{	c #7A8A6F",
+"]	c #D3D8CF",
+"^	c #6C7A63",
+"/	c #A6B19E",
+"(	c #626F5A",
+"_	c #6D7B64",
+":	c #6A7861",
+"<	c #D8DDD4",
+"[	c #6B7962",
+"         .  ...   ",
+"        .+. .@.   ",
+"       .+#$..%.   ",
+"      .++&*=-;.   ",
+"     .++>,')='.   ",
+"    .!+>'''%~{.   ",
+"   .++]''%'''~^.  ",
+"  .+++%''%';;;/(. ",
+" ...++'''';;;;_...",
+"   .++%';;;;;;^.  ",
+"   .++....;;;;^.  ",
+"   .++.;;.;;;'^.  ",
+"   .++.''.''';:.  ",
+"   .+<.,,.'';;[.  ",
+"   .%_.^^.^^:[^.  ",
+"   .............  ",
+"                  "};
diff -urN storm_0.3/usr/share/storm/pixmaps/inews.xpm storm_0.5.2/usr/share/storm/pixmaps/inews.xpm
--- storm_0.3/usr/share/storm/pixmaps/inews.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/inews.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,218 @@
+/* XPM */
+static char * inews_xpm[] = {
+"32 32 183 2",
+"  	c None",
+". 	c #D8D8D8",
+"+ 	c #E5E5E5",
+"@ 	c #EDEDED",
+"# 	c #E7E7E7",
+"$ 	c #DEDEDE",
+"% 	c #AFAFAF",
+"& 	c #BDBDBD",
+"* 	c #CACACA",
+"= 	c #D4D4D4",
+"- 	c #E0E0E0",
+"; 	c #E8E8E8",
+"> 	c #E6E6E6",
+", 	c #E4E4E4",
+"' 	c #EBEBEB",
+") 	c #919191",
+"! 	c #969696",
+"~ 	c #A2A2A2",
+"{ 	c #ACACAC",
+"] 	c #B6B6B6",
+"^ 	c #C2C2C2",
+"/ 	c #ADADAD",
+"( 	c #727272",
+"_ 	c #C6C6C6",
+": 	c #D2D2D2",
+"< 	c #DDDDDD",
+"[ 	c #EEEEEE",
+"} 	c #F3F3F3",
+"| 	c #F5F5F5",
+"1 	c #F7F7F7",
+"2 	c #828282",
+"3 	c #898989",
+"4 	c #787878",
+"5 	c #777777",
+"6 	c #999999",
+"7 	c #AEAEAE",
+"8 	c #585858",
+"9 	c #545454",
+"0 	c #B4B4B4",
+"a 	c #E1E1E1",
+"b 	c #C3C3C3",
+"c 	c #979797",
+"d 	c #A6A6A6",
+"e 	c #FBFBFB",
+"f 	c #FCFCFC",
+"g 	c #797979",
+"h 	c #7C7C7C",
+"i 	c #474747",
+"j 	c #2C2C2C",
+"k 	c #303030",
+"l 	c #858585",
+"m 	c #939393",
+"n 	c #A9A9A9",
+"o 	c #505050",
+"p 	c #9F9F9F",
+"q 	c #494949",
+"r 	c #B7B7B7",
+"s 	c #9A9A9A",
+"t 	c #8A8A8A",
+"u 	c #B3B3B3",
+"v 	c #BCBCBC",
+"w 	c #757575",
+"x 	c #595959",
+"y 	c #5B5B5B",
+"z 	c #202020",
+"A 	c #5D5D5D",
+"B 	c #4C4C4C",
+"C 	c #606060",
+"D 	c #282828",
+"E 	c #747474",
+"F 	c #4F4F4F",
+"G 	c #696969",
+"H 	c #535353",
+"I 	c #9D9D9D",
+"J 	c #B0B0B0",
+"K 	c #D3D3D3",
+"L 	c #A4A4A4",
+"M 	c #CCCCCC",
+"N 	c #C1C1C1",
+"O 	c #3E3E3E",
+"P 	c #646464",
+"Q 	c #4D4D4D",
+"R 	c #191919",
+"S 	c #6D6D6D",
+"T 	c #363636",
+"U 	c #565656",
+"V 	c #3C3C3C",
+"W 	c #6C6C6C",
+"X 	c #A0A0A0",
+"Y 	c #BEBEBE",
+"Z 	c #CFCFCF",
+"` 	c #F1F1F1",
+" .	c #959595",
+"..	c #E2E2E2",
+"+.	c #ABABAB",
+"@.	c #D9D9D9",
+"#.	c #DCDCDC",
+"$.	c #171717",
+"%.	c #343434",
+"&.	c #292929",
+"*.	c #3A3A3A",
+"=.	c #5C5C5C",
+"-.	c #949494",
+";.	c #8B8B8B",
+">.	c #636363",
+",.	c #838383",
+"'.	c #F0F0F0",
+").	c #CBCBCB",
+"!.	c #C9C9C9",
+"~.	c #A5A5A5",
+"{.	c #414141",
+"].	c #393939",
+"^.	c #242424",
+"/.	c #424242",
+"(.	c #1A1A1A",
+"_.	c #444444",
+":.	c #767676",
+"<.	c #808080",
+"[.	c #717171",
+"}.	c #818181",
+"|.	c #F4F4F4",
+"1.	c #F6F6F6",
+"2.	c #DADADA",
+"3.	c #FAFAFA",
+"4.	c #C4C4C4",
+"5.	c #E3E3E3",
+"6.	c #515151",
+"7.	c #555555",
+"8.	c #5A5A5A",
+"9.	c #616161",
+"0.	c #6B6B6B",
+"a.	c #6E6E6E",
+"b.	c #F8F8F8",
+"c.	c #404040",
+"d.	c #575757",
+"e.	c #686868",
+"f.	c #7A7A7A",
+"g.	c #CECECE",
+"h.	c #FFFFFF",
+"i.	c #676767",
+"j.	c #4B4B4B",
+"k.	c #434343",
+"l.	c #848484",
+"m.	c #A3A3A3",
+"n.	c #ECECEC",
+"o.	c #D7D7D7",
+"p.	c #6A6A6A",
+"q.	c #3B3B3B",
+"r.	c #464646",
+"s.	c #737373",
+"t.	c #989898",
+"u.	c #9C9C9C",
+"v.	c #B2B2B2",
+"w.	c #C5C5C5",
+"x.	c #5E5E5E",
+"y.	c #5F5F5F",
+"z.	c #9E9E9E",
+"A.	c #E9E9E9",
+"B.	c #6F6F6F",
+"C.	c #4A4A4A",
+"D.	c #666666",
+"E.	c #A1A1A1",
+"F.	c #B9B9B9",
+"G.	c #BFBFBF",
+"H.	c #A8A8A8",
+"I.	c #D0D0D0",
+"J.	c #C7C7C7",
+"K.	c #454545",
+"L.	c #484848",
+"M.	c #525252",
+"N.	c #7B7B7B",
+"O.	c #8C8C8C",
+"P.	c #DFDFDF",
+"Q.	c #909090",
+"R.	c #8E8E8E",
+"S.	c #000000",
+"T.	c #131313",
+"U.	c #4E4E4E",
+"V.	c #181818",
+"W.	c #040404",
+"X.	c #333333",
+"Y.	c #0C0C0C",
+"Z.	c #010101",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                  . + @         ",
+"      # $                                   % & * = - ;         ",
+"      > , > # '                       ) ! ~ { ] ^ / ( _         ",
+"      + > : < [ } | 1             2 3 4 5 6 ~ 7 8 9 0 a         ",
+"        , b c d } ; } e f     g h h i j k l m n o p q r         ",
+"        . s t u } u ~ n # v w ( x y z A B C D E F G H I         ",
+"        ; 0 J 7 K L @ ~ M N O P B Q R F S T U V W X Y Z         ",
+"        ` $  .% ..+.~ y @.#.R $.%.i &.*.=.y -.;.d s >.,.        ",
+"        '.).L !.a ' 7 ~.Z #.{.].^./.(._.:.<.) [.}.5 4           ",
+"        |.1.2.@.3.e a 4.'.5.6.i 7.9 8.9.C 7.0.a.h g w           ",
+"        1.b.% : e f a : > e >.x Q c.F 7.d.e.f.W :.Q s           ",
+"          # N ~.+.: g...- h.i.j.k.6.q 6.x C l.( m.L J           ",
+"          n.Y @.+ o.& #.` h.p.U q.q.r.F i.s.,.S t.u.v.          ",
+"          ; - w., a b N , h.p.7.9 o q F x.y C y.z.X ~           ",
+"          A.K . | g.d : ; h.B.o ].O C.F =.>.E D.z.E.F.          ",
+"          h.h.f f 5.G.z.; , B.C =.6.B o j.Q f.p.H.] b           ",
+"          h.h.h.f I.J.#.@ $ E 9 K.L.F M.S N.O.l z.m b           ",
+"              I.@ h., N h.P.4 0.e.P y d.9.G 0.[.Q.J * R.        ",
+"                U ;.'.3.h.a }.:.9.o F x p.4 w B.8 >.D.          ",
+"                  S.T.l.$ 5.2 W Q U.{.V.W.S.S.S.S.S.            ",
+"                    S.S.X.) d.%.Y.Z.S.S.S.S.S.S.S.              ",
+"                        S.S.S.S.S.S.S.S.S.S.                    ",
+"                        S.S.S.S.S.S.                            ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/left.xpm storm_0.5.2/usr/share/storm/pixmaps/left.xpm
--- storm_0.3/usr/share/storm/pixmaps/left.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/left.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,24 @@
+/* XPM */
+static char * left_xpm[] = {
+"16 16 5 1",
+" 	c None",
+".	c #000000",
+"+	c #48C928",
+"@	c #3FAF23",
+"#	c #379B1F",
+"                ",
+"        ...     ",
+"       .+@@.    ",
+"      .+@@@.    ",
+"     .+@@@@.    ",
+"    .+@@@@@.    ",
+"   .+@@@@@@.    ",
+"  .+@@@@@@@.    ",
+"  .#@@@@@@@.    ",
+"   .#@@@@@@.    ",
+"    .#@@@@@.    ",
+"     .#@@@@.    ",
+"      .#@@@.    ",
+"       .#@@.    ",
+"        ...     ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/list.xpm storm_0.5.2/usr/share/storm/pixmaps/list.xpm
--- storm_0.3/usr/share/storm/pixmaps/list.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/list.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,35 @@
+/* XPM */
+static char * list_xpm[] = {
+"16 16 16 1",
+" 	c None",
+".	c #181818",
+"+	c #B8B8B6",
+"@	c #A9A9A7",
+"#	c #919191",
+"$	c #E5E5E2",
+"%	c #C0C0BE",
+"&	c #D2D1CE",
+"*	c #F2F1ED",
+"=	c #ADADAC",
+"-	c #A1A1A0",
+";	c #A7A6A5",
+">	c #B1B1B0",
+",	c #C9C9C7",
+"'	c #B1B1AF",
+")	c #BCBCBA",
+"............... ",
+".+@@@@@@@@@@@@. ",
+".@############. ",
+"............... ",
+".$%&**********. ",
+".$%&**********. ",
+".=-;>>>>>>>>>>. ",
+".$%&**********. ",
+".,')&&&&&&&&&&. ",
+".,')&&&&&&&&&&. ",
+".$%&**********. ",
+".=-;>>>>>>>>>>. ",
+".$%&**********. ",
+".$%&**********. ",
+"............... ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/new.xpm storm_0.5.2/usr/share/storm/pixmaps/new.xpm
--- storm_0.3/usr/share/storm/pixmaps/new.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/new.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,38 @@
+/* XPM */
+static char * new_message_xpm[] = {
+"16 16 19 1",
+" 	c None",
+".	c #000000",
+"+	c #FDFDFD",
+"@	c #E2E2E2",
+"#	c #FEFEFE",
+"$	c #FCFCFC",
+"%	c #FBFBFB",
+"&	c #FFFFFF",
+"*	c #E4E4E4",
+"=	c #E0E0E0",
+"-	c #FAFAFA",
+";	c #F9F9F9",
+">	c #F8F8F8",
+",	c #F7F7F7",
+"'	c #F5F5F5",
+")	c #F4F4F4",
+"!	c #DFDFDF",
+"~	c #E8E8E8",
+"{	c #DDDDDD",
+"                ",
+"        ..      ",
+"      ..+@.     ",
+"    ..#+$%.     ",
+"  ..&####%*.    ",
+" .&####==-;.    ",
+" .###==###>*.   ",
+"  .+####==,'.   ",
+"  .$%#==###'*.  ",
+"   .--###==').  ",
+"   .-;#==####*. ",
+"    .>######!!. ",
+"    .,####!!..  ",
+"     .##=!..    ",
+"     .~{..      ",
+"      ..        "};
diff -urN storm_0.3/usr/share/storm/pixmaps/pencil.xpm storm_0.5.2/usr/share/storm/pixmaps/pencil.xpm
--- storm_0.3/usr/share/storm/pixmaps/pencil.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/pencil.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,25 @@
+/* XPM */
+static char * pencil_xpm[] = {
+"16 16 6 1",
+" 	c None",
+".	c #000000",
+"+	c #836B4E",
+"@	c #929292",
+"#	c #DD9D52",
+"$	c #A86E3F",
+"       ....     ",
+"       .+++.    ",
+"      .++++.@   ",
+"      ..++.@@   ",
+"     .##...@    ",
+"     .#$$.@@    ",
+"    .##$$.@     ",
+"    .#$$.@@     ",
+"   .##$$.@      ",
+"   .#$$.@@      ",
+"   ..$$.@       ",
+"   ....@@       ",
+"   ...@@        ",
+"   ..@@         ",
+"   .@@          ",
+"    @           "};
diff -urN storm_0.3/usr/share/storm/pixmaps/phone.xpm storm_0.5.2/usr/share/storm/pixmaps/phone.xpm
--- storm_0.3/usr/share/storm/pixmaps/phone.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/phone.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,104 @@
+/* XPM */
+static char * phone_xpm[] = {
+"16 16 85 1",
+" 	c None",
+".	c #000000",
+"+	c #D29087",
+"@	c #E18C80",
+"#	c #DF837A",
+"$	c #E18B82",
+"%	c #E28E85",
+"&	c #DF8278",
+"*	c #DC7669",
+"=	c #AB4D44",
+"-	c #C9857E",
+";	c #E9A79E",
+">	c #E0877B",
+",	c #3D3D3D",
+"'	c #444444",
+")	c #101010",
+"!	c #D27C71",
+"~	c #D1786C",
+"{	c #A13D32",
+"]	c #E49D93",
+"^	c #98392F",
+"/	c #C45647",
+"(	c #D85C4F",
+"_	c #BC746D",
+":	c #BA7871",
+"<	c #BD483C",
+"[	c #A74134",
+"}	c #D76050",
+"|	c #D76252",
+"1	c #D75F52",
+"2	c #D76054",
+"3	c #C85549",
+"4	c #B64839",
+"5	c #E4C0BB",
+"6	c #BC8D89",
+"7	c #F5E0DE",
+"8	c #BD8D86",
+"9	c #EAC7C3",
+"0	c #B57E76",
+"a	c #8E3327",
+"b	c #B33E32",
+"c	c #C24437",
+"d	c #B87D77",
+"e	c #884F49",
+"f	c #BC837D",
+"g	c #B67D79",
+"h	c #786463",
+"i	c #87332A",
+"j	c #B84839",
+"k	c #D65A4D",
+"l	c #BC4033",
+"m	c #F5D7D4",
+"n	c #BC8179",
+"o	c #BD817B",
+"p	c #F5D8D6",
+"q	c #BE807B",
+"r	c #76271F",
+"s	c #C5473A",
+"t	c #B23D31",
+"u	c #B73E32",
+"v	c #B26E69",
+"w	c #965651",
+"x	c #8F4F48",
+"y	c #BC817B",
+"z	c #8D4E4A",
+"A	c #91332A",
+"B	c #B94236",
+"C	c #BC4437",
+"D	c #C59996",
+"E	c #B57A74",
+"F	c #D1ABA6",
+"G	c #B27975",
+"H	c #D19C98",
+"I	c #986965",
+"J	c #66221D",
+"K	c #C24C3F",
+"L	c #A93F34",
+"M	c #B8473B",
+"N	c #A1544C",
+"O	c #802D25",
+"P	c #762B23",
+"Q	c #7A2D25",
+"R	c #712620",
+"S	c #64332B",
+"T	c #7F3126",
+"                ",
+"                ",
+"   ..........   ",
+" ..+@#$$%%&*=.. ",
+".-;>,'',))),!~{.",
+".]>^)/))))()_:<.",
+" ...[}|12|}3... ",
+"   .4567890a.   ",
+"  .bcdefeghij.  ",
+"  .klmnmopqrs.  ",
+"  .tuvwnxyzAB.  ",
+"  .(CDEFGHIJK.  ",
+"  .LMNOPQRST[.  ",
+"   ..........   ",
+"                ",
+"                "};
Binary files storm_0.3/usr/share/storm/pixmaps/prefs.png and storm_0.5.2/usr/share/storm/pixmaps/prefs.png differ
diff -urN storm_0.3/usr/share/storm/pixmaps/prefs.xpm storm_0.5.2/usr/share/storm/pixmaps/prefs.xpm
--- storm_0.3/usr/share/storm/pixmaps/prefs.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/prefs.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,27 @@
+/* XPM */
+static char * prefs_xpm[] = {
+"16 16 8 1",
+" 	c None",
+".	c #000000",
+"+	c #FFFFFF",
+"@	c #EFEFEF",
+"#	c #C3C3C3",
+"$	c #1B1B1B",
+"%	c #BEBEBE",
+"&	c #DFDFDF",
+"                ",
+"     ..  ..     ",
+"    .+.  .@.    ",
+"    .+....@.    ",
+"    .+@@@@#.    ",
+"     .+@@#.     ",
+"      .+#.      ",
+"      .+@.      ",
+"      .+#.      ",
+"      $+@.      ",
+"     .%@##.     ",
+"    .&@@@@#.    ",
+"    .+....@.    ",
+"    .+.  .@.    ",
+"     ..  ..     ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/read.xpm storm_0.5.2/usr/share/storm/pixmaps/read.xpm
--- storm_0.3/usr/share/storm/pixmaps/read.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/read.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,67 @@
+/* XPM */
+static char * read_xpm[] = {
+"13 13 51 1",
+" 	c None",
+".	c #010101",
+"+	c #D9D6D0",
+"@	c #C3C0B9",
+"#	c #EFEDE8",
+"$	c #F7F7F6",
+"%	c #FAFAFA",
+"&	c #B6B4AE",
+"*	c #737373",
+"=	c #C2BFB8",
+"-	c #F5F4F2",
+";	c #FAFAF9",
+">	c #FFFFFF",
+",	c #D2CFC9",
+"'	c #707070",
+")	c #5D5B57",
+"!	c #868580",
+"~	c #E5E2DB",
+"{	c #FBFBF8",
+"]	c #716E6B",
+"^	c #62605C",
+"/	c #F8F7F2",
+"(	c #DDDAD4",
+"_	c #929191",
+":	c #969390",
+"<	c #92908A",
+"[	c #A1A0A0",
+"}	c #F7F5F1",
+"|	c #FBFAF7",
+"1	c #A5A29D",
+"2	c #908D87",
+"3	c #F9F7F3",
+"4	c #F0EEE8",
+"5	c #DDD9D2",
+"6	c #797873",
+"7	c #F9F8F4",
+"8	c #74726E",
+"9	c #E3E0D9",
+"0	c #7D7A77",
+"a	c #FAF9F6",
+"b	c #F8F6F2",
+"c	c #FAF8F5",
+"d	c #F7F5F2",
+"e	c #E2DFD8",
+"f	c #090808",
+"g	c #D7D4CE",
+"h	c #D8D5CF",
+"i	c #D6D3CD",
+"j	c #DAD7D1",
+"k	c #E0DCD5",
+"l	c #222221",
+"    .....    ",
+"   .+++++.   ",
+"  .++++++@.  ",
+" .+++++#$%&. ",
+".*==-;>>>>,'.",
+".>)>>>>>>>!~.",
+".>{]>>>>>^/(.",
+".>{{_::<[{}(.",
+".>{|1{{{2345.",
+".>|6{{{77895.",
+".>0{}abcd~8e.",
+".fghhhi++jkl.",
+" ........... "};
diff -urN storm_0.3/usr/share/storm/pixmaps/reply.xpm storm_0.5.2/usr/share/storm/pixmaps/reply.xpm
--- storm_0.3/usr/share/storm/pixmaps/reply.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/reply.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,46 @@
+/* XPM */
+static char * 16_reply_xpm[] = {
+"16 16 27 1",
+" 	c None",
+".	c #010101",
+"+	c #2F2F2F",
+"@	c #A7A4A0",
+"#	c #FCFCFC",
+"$	c #64625F",
+"%	c #FFFFFF",
+"&	c #5D5B57",
+"*	c #868580",
+"=	c #E5E2DB",
+"-	c #FBFBF8",
+";	c #716E6B",
+">	c #000000",
+",	c #FBFAF7",
+"'	c #A5A29D",
+")	c #990000",
+"!	c #EFEFEF",
+"~	c #CCCCCC",
+"{	c #797873",
+"]	c #7D7A77",
+"^	c #F7F5F1",
+"/	c #090808",
+"(	c #D7D4CE",
+"_	c #D8D5CF",
+":	c #7F0000",
+"<	c #181818",
+"[	c #090909",
+"                ",
+"                ",
+"                ",
+"  .+.........   ",
+" .@#########$.  ",
+" .%&%%%%%%%*=.  ",
+" .%-;%>>>>>>>>> ",
+" .%--;>%%%%%%%> ",
+" .%-,'>%))))!~> ",
+" .%,{->%)))!!~> ",
+" .%]-^>%))))!~> ",
+" ./(__>%)!)):~> ",
+"  ....>%!!!::~> ",
+"      >%~~~~~~< ",
+"      >>[>>>>>> ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/right.xpm storm_0.5.2/usr/share/storm/pixmaps/right.xpm
--- storm_0.3/usr/share/storm/pixmaps/right.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/right.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,24 @@
+/* XPM */
+static char * right_xpm[] = {
+"16 16 5 1",
+" 	c None",
+".	c #000000",
+"+	c #3FAF23",
+"@	c #48C928",
+"#	c #379B1F",
+"                ",
+"     ...        ",
+"    .++@.       ",
+"    .+++@.      ",
+"    .++++@.     ",
+"    .+++++@.    ",
+"    .++++++@.   ",
+"    .+++++++@.  ",
+"    .+++++++#.  ",
+"    .++++++#.   ",
+"    .+++++#.    ",
+"    .++++#.     ",
+"    .+++#.      ",
+"    .++#.       ",
+"     ...        ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/save-tiny-red.xpm storm_0.5.2/usr/share/storm/pixmaps/save-tiny-red.xpm
--- storm_0.3/usr/share/storm/pixmaps/save-tiny-red.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/save-tiny-red.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,82 @@
+/* XPM */
+static char * save_tiny_red_xpm[] = {
+"10 10 69 1",
+" 	c None",
+".	c #5E474B",
+"+	c #505050",
+"@	c #575757",
+"#	c #585858",
+"$	c #653C41",
+"%	c #614C50",
+"&	c #F38E9A",
+"*	c #BFBFBF",
+"=	c #CECECE",
+"-	c #CFCFCF",
+";	c #DDDDDD",
+">	c #E86F7D",
+",	c #47181F",
+"'	c #634247",
+")	c #F67F8D",
+"!	c #E0E0E0",
+"~	c #EAEAEA",
+"{	c #EFEFEF",
+"]	c #D4596A",
+"^	c #3B0C11",
+"/	c #E2E2E2",
+"(	c #E7E7E7",
+"_	c #E8E8E8",
+":	c #D15869",
+"<	c #3A0B12",
+"[	c #F78091",
+"}	c #EEEEEE",
+"|	c #E5E5E5",
+"1	c #D25567",
+"2	c #F87386",
+"3	c #F08594",
+"4	c #EA8B99",
+"5	c #E78693",
+"6	c #E68592",
+"7	c #E67986",
+"8	c #D1465A",
+"9	c #F96E7E",
+"0	c #E46F80",
+"a	c #CB9CA1",
+"b	c #C59298",
+"c	c #DFBAC0",
+"d	c #B7868D",
+"e	c #AE4551",
+"f	c #CA4B5D",
+"g	c #F56A7E",
+"h	c #D48993",
+"i	c #B39699",
+"j	c #891222",
+"k	c #C9C9C9",
+"l	c #B2A3A6",
+"m	c #880F1D",
+"n	c #BA5F6A",
+"o	c #BA4B5A",
+"p	c #C8838B",
+"q	c #BCA7AA",
+"r	c #983B48",
+"s	c #B1B1B1",
+"t	c #9E9192",
+"u	c #851020",
+"v	c #AC5D68",
+"w	c #35080D",
+"x	c #3C2527",
+"y	c #424242",
+"z	c #353535",
+"A	c #2F2F2F",
+"B	c #2B2726",
+"C	c #290A0E",
+"D	c #351A1D",
+" .+@@@@#$ ",
+"%&*===-;>,",
+"')!~~~~{]^",
+"')/{{(!_:<",
+"'[~}|;;(1<",
+"'23455678<",
+"'90abcdef<",
+"'ghijklmn<",
+" opqrstuvw",
+"  xyzABCD "};
diff -urN storm_0.3/usr/share/storm/pixmaps/save-tiny.xpm storm_0.5.2/usr/share/storm/pixmaps/save-tiny.xpm
--- storm_0.3/usr/share/storm/pixmaps/save-tiny.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/save-tiny.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,85 @@
+/* XPM */
+static char * save_tiny_xpm[] = {
+"10 10 72 1",
+" 	c None",
+".	c #4C555D",
+"+	c #515151",
+"@	c #575757",
+"#	c #585858",
+"$	c #595959",
+"%	c #43525F",
+"&	c #515860",
+"*	c #9FC4E4",
+"=	c #C0C0C0",
+"-	c #CECECE",
+";	c #CFCFCF",
+">	c #DDDDDD",
+",	c #83B0D6",
+"'	c #213241",
+")	c #485460",
+"!	c #92BEE4",
+"~	c #E1E1E1",
+"{	c #EBEBEB",
+"]	c #F0F0F0",
+"^	c #6D9CC3",
+"/	c #142735",
+"(	c #E3E3E3",
+"_	c #E8E8E8",
+":	c #E9E9E9",
+"<	c #6C9ABF",
+"[	c #132634",
+"}	c #94C0E5",
+"|	c #EEEEEE",
+"1	c #E5E5E5",
+"2	c #E7E7E7",
+"3	c #6B99BF",
+"4	c #142634",
+"5	c #89BAE4",
+"6	c #97BFE1",
+"7	c #9BBDDC",
+"8	c #97BADA",
+"9	c #96BAD9",
+"0	c #8AB4D6",
+"a	c #5D91BC",
+"b	c #85B8E4",
+"c	c #83AED3",
+"d	c #A4B5C4",
+"e	c #9BAEBE",
+"f	c #C2D0DB",
+"g	c #8FA2B1",
+"h	c #567D9E",
+"i	c #6090B7",
+"j	c #82B6E1",
+"k	c #96B2CA",
+"l	c #9BA6AF",
+"m	c #265479",
+"n	c #CACACA",
+"o	c #A7ADB1",
+"p	c #235276",
+"q	c #6E91AD",
+"r	c #5D87AB",
+"s	c #8EA8BE",
+"t	c #ACB4BB",
+"u	c #4B6F8B",
+"v	c #B2B2B2",
+"w	c #94999D",
+"x	c #245073",
+"y	c #6B8AA1",
+"z	c #10222F",
+"A	c #293139",
+"B	c #424242",
+"C	c #363636",
+"D	c #2F2F2F",
+"E	c #282A2B",
+"F	c #0F1A26",
+"G	c #1F2931",
+" .+@@@#$% ",
+"&*=---;>,'",
+")!~{{{{]^/",
+")!(]]_~:<[",
+")}{|1>>234",
+")5678890a4",
+")bcdefghi[",
+")jklmnopq4",
+" rstuvwxyz",
+"  ABCDEFG "};
diff -urN storm_0.3/usr/share/storm/pixmaps/save.xpm storm_0.5.2/usr/share/storm/pixmaps/save.xpm
--- storm_0.3/usr/share/storm/pixmaps/save.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/save.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,99 @@
+/* XPM */
+static char * save_xpm[] = {
+"16 16 80 1",
+" 	c None",
+".	c #000000",
+"+	c #F7F9FE",
+"@	c #BADEFF",
+"#	c #C7C7C7",
+"$	c #E9E9E9",
+"%	c #EAEAEA",
+"&	c #F2F2F2",
+"*	c #AAD8FF",
+"=	c #D0E8FF",
+"-	c #72ABDB",
+";	c #A3A3A3",
+">	c #BABABA",
+",	c #C0C0C0",
+"'	c #E0E0E0",
+")	c #3F6B94",
+"!	c #C0E1FF",
+"~	c #D7D7D7",
+"{	c #FFFFFF",
+"]	c #FAFAFA",
+"^	c #69A2D2",
+"/	c #39698E",
+"(	c #D6D6D6",
+"_	c #679DCA",
+":	c #34658B",
+"<	c #FDFDFD",
+"[	c #F5F5F5",
+"}	c #ECECEC",
+"|	c #D4D4D4",
+"1	c #C5C5C5",
+"2	c #EFEFEF",
+"3	c #F3F3F3",
+"4	c #9DC1E0",
+"5	c #C0D8EB",
+"6	c #BDCFE6",
+"7	c #B4CCE3",
+"8	c #8DB9DA",
+"9	c #6DA8DA",
+"0	c #649CCB",
+"a	c #649DC9",
+"b	c #649AC7",
+"c	c #71ACDA",
+"d	c #9DB1CA",
+"e	c #CECECE",
+"f	c #9C9E9F",
+"g	c #1C4B6F",
+"h	c #97A9BA",
+"i	c #06375D",
+"j	c #214D72",
+"k	c #B9B9B9",
+"l	c #043455",
+"m	c #426F99",
+"n	c #8AA7BF",
+"o	c #6AA8D7",
+"p	c #CDCDCD",
+"q	c #1D476A",
+"r	c #44739B",
+"s	c #BFBFBF",
+"t	c #03314E",
+"u	c #92ACBD",
+"v	c #5E7A91",
+"w	c #68A0CF",
+"x	c #E6E6E6",
+"y	c #103A61",
+"z	c #487EA3",
+"A	c #C2C2C2",
+"B	c #B2B2B2",
+"C	c #013454",
+"D	c #96ACBB",
+"E	c #4F657A",
+"F	c #3A678D",
+"G	c #A1A1A1",
+"H	c #909090",
+"I	c #868686",
+"J	c #6E6E6E",
+"K	c #7A7A7A",
+"L	c #21395B",
+"M	c #2F5370",
+"N	c #788899",
+"O	c #0B3A58",
+" .............. ",
+".+@#$$$$$$%$&**.",
+".=-;>>>>>>>,'-).",
+".!-~{{{{{{{{]^/.",
+".!-~~~~~~~~(&_:.",
+".!-~{{{{<[}}&_:.",
+".!-~~~~|1111&_:.",
+".!-2{{3}}}}}2_:.",
+".!-4567777778_:.",
+".!--90____ab__:.",
+".!-cd11e}~fgh_:.",
+".!-^11ij(1klmn:.",
+".!o_1pqr11stru:.",
+".vw_pxyz1ABCrD:.",
+" .EFG,HHIJKLMNO.",
+"  ............. "};
diff -urN storm_0.3/usr/share/storm/pixmaps/send-later.xpm storm_0.5.2/usr/share/storm/pixmaps/send-later.xpm
--- storm_0.3/usr/share/storm/pixmaps/send-later.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/send-later.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,73 @@
+/* XPM */
+static char * send_later_xpm[] = {
+"16 16 54 1",
+" 	c None",
+".	c #1B1B1B",
+"+	c #596FA0",
+"@	c #425277",
+"#	c #AEB4CD",
+"$	c #4C5F89",
+"%	c #000000",
+"&	c #BAB5AB",
+"*	c #807D74",
+"=	c #010101",
+"-	c #CBC8C0",
+";	c #EAE8E3",
+">	c #EDEBE7",
+",	c #C2BEB5",
+"'	c #A7A4A0",
+")	c #DCDBD5",
+"!	c #A7A299",
+"~	c #FFFFFF",
+"{	c #ECEAE6",
+"]	c #9E9B91",
+"^	c #E7E6E3",
+"/	c #BEBDBA",
+"(	c #716E6B",
+"_	c #DAD7D2",
+":	c #C8C6BE",
+"<	c #9C988F",
+"[	c #DCDBD8",
+"}	c #E4E3DF",
+"|	c #A5A29D",
+"1	c #D1CFC9",
+"2	c #D4D1CD",
+"3	c #CCCAC4",
+"4	c #B1ACA2",
+"5	c #DCDAD7",
+"6	c #797873",
+"7	c #EFEFEC",
+"8	c #C7C6C3",
+"9	c #A8A49A",
+"0	c #9C998F",
+"a	c #9B988E",
+"b	c #131211",
+"c	c #7D7A77",
+"d	c #EBE9E5",
+"e	c #E6E5E2",
+"f	c #BEBCB8",
+"g	c #0C0B0A",
+"h	c #090808",
+"i	c #C7C4BF",
+"j	c #BFBDB7",
+"k	c #BEBBB5",
+"l	c #C0BDB8",
+"m	c #C1BEB9",
+"n	c #C6C2BC",
+"o	c #222221",
+"      ..        ",
+"     .+@.       ",
+"    .+#+@.      ",
+"   .+##$+@.     ",
+"  .+###+$+@.    ",
+" ....##$+%%%%%  ",
+"    .##+%&&%&*% ",
+"   =.##%&-;%>,*%",
+"  ='.##%&>;%;)!%",
+"  =~...%&{>%%%]%",
+"  =~^/(%&;;;_:<%",
+"  =~[}|%*,1234*%",
+"  =~5678%*90a*b ",
+"  =~c7def%%%g%= ",
+"  =hijjjkllmno= ",
+"   ===========  "};
diff -urN storm_0.3/usr/share/storm/pixmaps/send-receive.xpm storm_0.5.2/usr/share/storm/pixmaps/send-receive.xpm
--- storm_0.3/usr/share/storm/pixmaps/send-receive.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/send-receive.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,58 @@
+/* XPM */
+static char * send_receive_xpm[] = {
+"16 16 39 1",
+" 	c None",
+".	c #000000",
+"+	c #F7EFD0",
+"@	c #F7EFD1",
+"#	c #EED680",
+"$	c #C38909",
+"%	c #F6ECC9",
+"&	c #D1940C",
+"*	c #B98208",
+"=	c #A59458",
+"-	c #D1BC70",
+";	c #E9D17B",
+">	c #B07C08",
+",	c #916608",
+"'	c #F3E3A8",
+")	c #AE7B0A",
+"!	c #F4E4AD",
+"~	c #F5E9BC",
+"{	c #D8E6D2",
+"]	c #B9C9B1",
+"^	c #6F9059",
+"/	c #C6B26A",
+"(	c #D7E5D0",
+"_	c #AECCA1",
+":	c #557C3B",
+"<	c #D3E3CB",
+"[	c #D0E1C9",
+"}	c #DBE7D6",
+"|	c #B9C3B5",
+"1	c #BDCEB6",
+"2	c #A9C79C",
+"3	c #65894C",
+"4	c #748C64",
+"5	c #668154",
+"6	c #669447",
+"7	c #58833C",
+"8	c #E1EBDC",
+"9	c #5E8A41",
+"0	c #E0EADB",
+"    .           ",
+"   .+.          ",
+"  .@#$.         ",
+" .%##&*.        ",
+".%=-;>,,.       ",
+"...'#)...       ",
+"  .!#).  .....  ",
+"  .~#).  .{]^.  ",
+"  .#/).  .(_:.  ",
+"  .....  .<_:.  ",
+"       ...[_:...",
+"       .}|12345.",
+"        .}__67. ",
+"         .8_9.  ",
+"          .0.   ",
+"           .    "};
diff -urN storm_0.3/usr/share/storm/pixmaps/send.xpm storm_0.5.2/usr/share/storm/pixmaps/send.xpm
--- storm_0.3/usr/share/storm/pixmaps/send.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/send.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,78 @@
+/* XPM */
+static char * send_xpm[] = {
+"16 16 59 1",
+" 	c None",
+".	c #000000",
+"+	c #D1940C",
+"@	c #8E6407",
+"#	c #EED680",
+"$	c #AC7A09",
+"%	c #010101",
+"&	c #2F2F2F",
+"*	c #A7A4A0",
+"=	c #FCFCFC",
+"-	c #63615D",
+";	c #FFFFFF",
+">	c #5D5B57",
+",	c #E6E6E6",
+"'	c #706E6A",
+")	c #989590",
+"!	c #E7E6E3",
+"~	c #BEBDBA",
+"{	c #716E6B",
+"]	c #EAEAE9",
+"^	c #DFDEDE",
+"/	c #6E6B68",
+"(	c #817F7C",
+"_	c #A19F9B",
+":	c #BBB9B3",
+"<	c #DCDBD8",
+"[	c #E4E3DF",
+"}	c #A5A29D",
+"|	c #E4E3E0",
+"1	c #6F6C69",
+"2	c #6E6C68",
+"3	c #A2A09C",
+"4	c #DDDBD5",
+"5	c #C3C0B9",
+"6	c #DCDAD7",
+"7	c #797873",
+"8	c #EFEFEC",
+"9	c #C7C6C3",
+"0	c #6A6764",
+"a	c #969490",
+"b	c #B0AFAB",
+"c	c #B6B4AD",
+"d	c #BBB8B1",
+"e	c #7D7A77",
+"f	c #EBE9E5",
+"g	c #E6E5E2",
+"h	c #BEBCB8",
+"i	c #D2D0CD",
+"j	c #EBE9E6",
+"k	c #E5E2DB",
+"l	c #B6B3AD",
+"m	c #090808",
+"n	c #C7C4BF",
+"o	c #BFBDB7",
+"p	c #BEBBB5",
+"q	c #C0BDB8",
+"r	c #C1BEB9",
+"s	c #C6C2BC",
+"t	c #222221",
+"        ..      ",
+"       .+@.     ",
+"      .+#+@.    ",
+"     .+##$+@.   ",
+"    .+###+$+@.  ",
+"   ....##$+.... ",
+"      .##+$.    ",
+"   %&%.##$+.%%  ",
+"  %*==.##+$.=-% ",
+"  %;>,......')% ",
+"  %;!~{]^]/(_:% ",
+"  %;<[}{|12345% ",
+"  %;67890ab'cd% ",
+"  %;e8fghijk'l% ",
+"  %mnooopqqrst% ",
+"   %%%%%%%%%%%  "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-calendar-mini.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-calendar-mini.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-calendar-mini.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-calendar-mini.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,61 @@
+/* XPM */
+static char * storm_calendar_mini_xpm[] = {
+"16 16 42 1",
+" 	c None",
+".	c #000000",
+"+	c #191919",
+"@	c #C3C3C3",
+"#	c #A1A1A1",
+"$	c #888888",
+"%	c #797979",
+"&	c #636363",
+"*	c #4E4E4E",
+"=	c #373737",
+"-	c #323232",
+";	c #FFFFFF",
+">	c #ECECEC",
+",	c #E0E0E0",
+"'	c #D4D4D4",
+")	c #FCF8EF",
+"!	c #F1F1F1",
+"~	c #CBCAC0",
+"{	c #94928C",
+"]	c #9B9A94",
+"^	c #AAA8A1",
+"/	c #FFFFFB",
+"(	c #BBB8B1",
+"_	c #C0BFB7",
+":	c #B7B5AE",
+"<	c #F8F8F8",
+"[	c #D2CEC7",
+"}	c #999691",
+"|	c #F75A4C",
+"1	c #C35048",
+"2	c #A9A8A0",
+"3	c #B6B4AD",
+"4	c #FFFFF8",
+"5	c #FDFAF0",
+"6	c #FFB846",
+"7	c #AB4D41",
+"8	c #D2CEC6",
+"9	c #95948D",
+"0	c #989691",
+"a	c #93928C",
+"b	c #C9C5BE",
+"c	c #BEBBB4",
+"                ",
+"                ",
+"                ",
+" .............. ",
+" +@##$%&&***=-. ",
+" .;;;>;;,;;';). ",
+" .!~~{~~]~~{~^. ",
+" .;//(;;_)):)~. ",
+" .<[[}[[|111[2. ",
+" .;;;3451667)~. ",
+" .<[[}[[1777[2. ",
+" .;//(;;_)):)~. ",
+" .)889~~0~~abc. ",
+" .............. ",
+"                ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-calendar.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-calendar.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-calendar.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-calendar.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,317 @@
+/* XPM */
+static char * storm_calendar_xpm[] = {
+"32 32 282 2",
+"  	c None",
+". 	c #BFBFBF",
+"+ 	c #AAAAAA",
+"@ 	c #B4B4B3",
+"# 	c #BBBBBB",
+"$ 	c #83817E",
+"% 	c #97917C",
+"& 	c #948D73",
+"* 	c #938C72",
+"= 	c #938B70",
+"- 	c #928A6F",
+"; 	c #928A6E",
+"> 	c #91896D",
+", 	c #90886B",
+"' 	c #90876A",
+") 	c #908668",
+"! 	c #8F8667",
+"~ 	c #8F8666",
+"{ 	c #8E8564",
+"] 	c #8D8462",
+"^ 	c #8C825F",
+"/ 	c #706233",
+"( 	c #6D6858",
+"_ 	c #A5A5A5",
+": 	c #C8B676",
+"< 	c #C7B473",
+"[ 	c #C6B371",
+"} 	c #C5B16E",
+"| 	c #C3B06B",
+"1 	c #C2AE68",
+"2 	c #C1AD65",
+"3 	c #C0AB62",
+"4 	c #BFAA5F",
+"5 	c #BEA85D",
+"6 	c #BDA759",
+"7 	c #BCA557",
+"8 	c #BBA354",
+"9 	c #BAA352",
+"0 	c #B8A14E",
+"a 	c #B7A04C",
+"b 	c #B79E4A",
+"c 	c #7E6D34",
+"d 	c #40381D",
+"e 	c #A4A4A4",
+"f 	c #71663E",
+"c 	c #8A7A43",
+"h 	c #897941",
+"i 	c #877840",
+"j 	c #87773F",
+"k 	c #84753E",
+"l 	c #84743D",
+"m 	c #82723B",
+"n 	c #81723A",
+"o 	c #7F7039",
+"p 	c #7F6F37",
+"q 	c #7E6D36",
+"r 	c #7C6C35",
+"s 	c #7A6A33",
+"t 	c #7A6932",
+"u 	c #786831",
+"v 	c #786730",
+"w 	c #6D5E2C",
+"x 	c #41391E",
+"y 	c #4B4B4B",
+"z 	c #C5C5C5",
+"A 	c #ABABAB",
+"B 	c #A7A7A7",
+"C 	c #9C9C9C",
+"D 	c #989898",
+"E 	c #858585",
+"F 	c #979797",
+"c 	c #8E8E8E",
+"H 	c #878787",
+"I 	c #767676",
+"J 	c #7D7D7D",
+"K 	c #6B6B6A",
+"L 	c #0E0E0E",
+"M 	c #7C7C7C",
+"N 	c #F6F6F6",
+"O 	c #E4E4E4",
+"P 	c #E1E1E1",
+"Q 	c #D6D6D6",
+"R 	c #CACACA",
+"S 	c #B3B3B3",
+"T 	c #CFCFCF",
+"U 	c #D0D0D0",
+"V 	c #D2D2D2",
+"W 	c #D3D3D3",
+"X 	c #C4C4C4",
+"Y 	c #D5D5D5",
+"Z 	c #E0E0E0",
+"` 	c #939393",
+" .	c #E7E7E7",
+"..	c #E5E5E5",
+"+.	c #C7C7C7",
+"@.	c #838383",
+"#.	c #C2C2C2",
+"$.	c #DFDFDF",
+"%.	c #C1C1C1",
+"&.	c #787878",
+"*.	c #C8C8C8",
+"=.	c #A8A8A8",
+"-.	c #848484",
+";.	c #B2B2B2",
+">.	c #DADADA",
+",.	c #C6C6C6",
+"'.	c #BCBCBC",
+").	c #A3A3A3",
+"!.	c #A9A9A9",
+"~.	c #C3C3C3",
+"{.	c #B7B7B7",
+"].	c #949494",
+"^.	c #BDBDBD",
+"/.	c #C0C0C0",
+"(.	c #AEAEAE",
+"_.	c #7A7A7A",
+":.	c #181818",
+"<.	c #CCCCCC",
+"[.	c #F3F4F5",
+"}.	c #C8CED3",
+"|.	c #7A8B9D",
+"1.	c #76889A",
+"2.	c #B2BAC2",
+"3.	c #ABAEB2",
+"4.	c #E3E3E3",
+"5.	c #E2E2E2",
+"6.	c #CCCFD2",
+"7.	c #A1ABB6",
+"8.	c #A5AEB8",
+"9.	c #C4C9CD",
+"0.	c #E2E2E3",
+"a.	c #DBDBDB",
+"b.	c #797979",
+"c.	c #161616",
+"d.	c #CFD5DB",
+"e.	c #ACB6C0",
+"f.	c #E0E2E4",
+"g.	c #CBCDCF",
+"h.	c #B5BCC3",
+"i.	c #748392",
+"j.	c #E6E6E6",
+"k.	c #C0C0C1",
+"l.	c #CDD0D3",
+"m.	c #BCC2C8",
+"n.	c #C8CCD0",
+"o.	c #565656",
+"p.	c #141414",
+"q.	c #DEDEDE",
+"r.	c #BBC4CD",
+"s.	c #BAC2CA",
+"t.	c #DDDDDD",
+"u.	c #A0A0A0",
+"v.	c #9A9C9E",
+"w.	c #6F8092",
+"x.	c #E7E8E8",
+"y.	c #E8E8E8",
+"z.	c #888888",
+"A.	c #9E9E9E",
+"B.	c #C1C7CC",
+"C.	c #B0B8C0",
+"D.	c #D3D5D7",
+"E.	c #AFAFAF",
+"F.	c #B8B8B8",
+"G.	c #404040",
+"H.	c #131313",
+"I.	c #D8D8D8",
+"J.	c #B6BBC0",
+"K.	c #8C99A6",
+"L.	c #BFC1C3",
+"M.	c #B3B5B7",
+"N.	c #858E97",
+"O.	c #7A8897",
+"P.	c #C9C9C9",
+"Q.	c #ACACAC",
+"R.	c #929292",
+"S.	c #242424",
+"T.	c #0F0F0F",
+"U.	c #F0F0F0",
+"V.	c #F4F4F4",
+"W.	c #DFE2E4",
+"X.	c #A1ADB9",
+"Y.	c #8595A6",
+"Z.	c #A9B0B7",
+"`.	c #E4E5E6",
+" +	c #EDEDED",
+".+	c #ECECEC",
+"++	c #EAEAEA",
+"@+	c #E9E9E9",
+"#+	c #333231",
+"$+	c #151412",
+"%+	c #FAFAFA",
+"&+	c #F5F5F5",
+"*+	c #EFEFEF",
+"=+	c #EEEEEE",
+"-+	c #D7D7D7",
+";+	c #403F3C",
+">+	c #1D1B17",
+",+	c #D4D4D4",
+"'+	c #ADADAD",
+")+	c #B5B5B5",
+"!+	c #43423E",
+"~+	c #1C1A16",
+"{+	c #BABABA",
+"]+	c #CBCBCB",
+"^+	c #C4C5C7",
+"/+	c #C5C6C8",
+"(+	c #525252",
+"_+	c #41403C",
+":+	c #1B1914",
+"<+	c #FEFEFE",
+"[+	c #FDFDFD",
+"}+	c #F3F3F3",
+"|+	c #F7F7F7",
+"1+	c #CFD1D3",
+"2+	c #BEC5CD",
+"3+	c #B6BFC7",
+"4+	c #CBD1D6",
+"5+	c #E7E8E9",
+"6+	c #F2F2F3",
+"7+	c #6E6E6E",
+"8+	c #555555",
+"9+	c #535149",
+"0+	c #2E2B1E",
+"a+	c #D1D1D1",
+"b+	c #F9F9F9",
+"c+	c #F8F8F8",
+"d+	c #A1A1A1",
+"e+	c #C7CCD2",
+"f+	c #9EABB7",
+"g+	c #A0ABB8",
+"h+	c #C5CBD2",
+"i+	c #C1C3C6",
+"j+	c #BCBDBD",
+"k+	c #505050",
+"l+	c #575757",
+"m+	c #59564D",
+"n+	c #373322",
+"o+	c #FBFBFB",
+"p+	c #D9D9D9",
+"q+	c #CECECE",
+"r+	c #B6B6B6",
+"s+	c #393939",
+"t+	c #6C6C6C",
+"u+	c #55534A",
+"v+	c #342F21",
+"w+	c #F1F1F1",
+"x+	c #FCFCFC",
+"y+	c #4F4F4F",
+"z+	c #5E5E5E",
+"A+	c #7B7B7B",
+"B+	c #57554E",
+"C+	c #2D2A1E",
+"D+	c #8C8C8C",
+"E+	c #808080",
+"F+	c #7E7E7E",
+"G+	c #696969",
+"H+	c #5D5D5D",
+"I+	c #4D4D4D",
+"J+	c #818181",
+"K+	c #5E5C55",
+"L+	c #2E2C21",
+"M+	c #B4B4B4",
+"N+	c #474747",
+"O+	c #909090",
+"P+	c #6D6D6D",
+"Q+	c #5F5F5F",
+"R+	c #595959",
+"S+	c #626262",
+"T+	c #5C5C5C",
+"U+	c #4A4A4A",
+"V+	c #5B5B5B",
+"W+	c #828282",
+"X+	c #64635E",
+"Y+	c #302E26",
+"Z+	c #737373",
+"`+	c #6F6F6F",
+" @	c #4E4E4E",
+".@	c #4C4C4C",
+"+@	c #464646",
+"@@	c #454545",
+"#@	c #3F3F3F",
+"$@	c #2B2B2B",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"          . + + + + + + + + + + + + + + + + + + @               ",
+"        # $ % & * = = - ; > , , ' ) ! ~ { { ] ^ / (             ",
+"        _ - : < [ } | 1 2 3 4 5 6 7 8 9 0 a b b c d             ",
+"        e f c h i j k l m n o p q r s t u v v v w x             ",
+"          y z A B C D E F F c H H E I H H H J c K L             ",
+"          M N O P Q R S T T U V W # X W W W Y Z H L             ",
+"          ` N  ...+.@.#.Z $.$.%.&.B *.$.$.$.=.S -.L             ",
+"          ;.>.*.,.'.).!.~.#.%.{.D ].^./././.(.X _.:.            ",
+"        N <.[.}.|.1.2.3.O 4.5.P Z . 6.7.8.9.0.a.b.c.            ",
+"        P Q d.e.f.g.h.i.j...O 4.P k.l.h.m.n...a.o.p.            ",
+"        $.q.r.s.t.u.v.w.x.y.$.z.A.X B.C.D.$.E.F.G.H.            ",
+"        t.I.J.K.L.M.N.O.P.*.X =.Q.;.~.#.%.X {.R.S.T.            ",
+"        ~.U.V.W.X.Y.Z.`. +.+++@+I.Q ..O 4...y.A.#+$+            ",
+"        . %+&+V.z W V *+=+ +Z ~.I.-+ .j.j.5.I.z.;+>+            ",
+"        /.=+ ...,+'+Q P  +U.+.)+,. .++@+t.B # y !+~+            ",
+"      t.O U.y. ...)+O 4.U T {+. (.]+^+/+~.%.` (+_+:+            ",
+"      z <+[+}+z ~.Q |+N &+V.4.U 1+2+3+4+5+6+7+8+9+0+            ",
+"    .+I.=+a.a+;.S 5.b+c+N &+d+%.e+f+g+h+i+j+k+l+m+n+            ",
+"    W ..      o+F.p+I.-+Q Y q+r+V a+,+O q+c s+t+u+v+            ",
+"    # o+%+}+w+++y.<+[+x+o+%+..P N &+w+++S y+z+A+B+C+            ",
+"    D+E+F+G+z.].=.r+'.~.# z q+5.y.Z T {.H+I+J+].K+L+            ",
+"      M+# N+O+E E+P+Q+I+k+R+z+S+T+k+U+8+V+W+u.Q.X+Y+            ",
+"          Z+`+ @.@.@.@.@I+I+I+I+y +@+@@@@@@@@@+@#@$@            ",
+"            + + + + + + + + + + + + + + + + + + + #.            ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-contacts-mini.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-contacts-mini.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-contacts-mini.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-contacts-mini.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,69 @@
+/* XPM */
+static char * storm_contacts_mini_xpm[] = {
+"16 16 50 1",
+" 	c None",
+".	c #000000",
+"+	c #BDBDBD",
+"@	c #FFFFFF",
+"#	c #A3A3A3",
+"$	c #F8F8F8",
+"%	c #C9B49B",
+"&	c #8E7151",
+"*	c #876E51",
+"=	c #BAB1A5",
+"-	c #FDFDFD",
+";	c #FBFBFB",
+">	c #EAE8E3",
+",	c #F3F3F3",
+"'	c #A88D6E",
+")	c #DFD0BF",
+"!	c #5E432B",
+"~	c #7E6C5B",
+"{	c #313131",
+"]	c #575757",
+"^	c #FCFCFC",
+"/	c #555555",
+"(	c #EEDFCC",
+"_	c #F4EEE6",
+":	c #765E45",
+"<	c #736251",
+"[	c #FAFAFA",
+"}	c #7590AE",
+"|	c #C1665A",
+"1	c #445B71",
+"2	c #D7D6D3",
+"3	c #ADADAD",
+"4	c #9B9B9B",
+"5	c #4B6983",
+"6	c #9DB8D2",
+"7	c #486481",
+"8	c #314E6C",
+"9	c #667A8D",
+"0	c #5F7C96",
+"a	c #5D7A95",
+"b	c #4D6B87",
+"c	c #3B556D",
+"d	c #344A60",
+"e	c #999999",
+"f	c #EDEDED",
+"g	c #C7C7C7",
+"h	c #5D5D5D",
+"i	c #787878",
+"j	c #E0DDD6",
+"k	c #918E85",
+"                ",
+"                ",
+" .............. ",
+".+@@@@@@@@@@@@#.",
+".@$%&*=@-@;@@@>.",
+".@,')!~@{]^/-@>.",
+".@,(_:<@@@@@@@>.",
+".@[}|12@3@43@@>.",
+".@56789@@@@@@@>.",
+".@0abcd@e4fg@@>.",
+".@@@@@@@@@@@@@>.",
+".@@h@h@i@4@g@@j.",
+".#>>>>>>>>>>>jk.",
+" .............. ",
+"                ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-contacts.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-contacts.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-contacts.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-contacts.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,190 @@
+/* XPM */
+static char * storm_contacts2_xpm[] = {
+"32 32 155 2",
+"  	c None",
+". 	c #848484",
+"+ 	c #FFFFFF",
+"@ 	c #FDFDFD",
+"# 	c #D8D8D8",
+"$ 	c #AFAFAF",
+"% 	c #B5B5B5",
+"& 	c #EDEDED",
+"* 	c #CECECE",
+"= 	c #C2C2C2",
+"- 	c #D7D7D7",
+"; 	c #D6D6D6",
+"> 	c #FEFEFE",
+", 	c #F4F4F4",
+"' 	c #E1E1E1",
+") 	c #D9D9D9",
+"! 	c #EFEFEF",
+"~ 	c #F8F8F8",
+"{ 	c #D2D2D2",
+"] 	c #D3D3D3",
+"^ 	c #C0C0C0",
+"/ 	c #DEDEDE",
+"( 	c #CBCBCB",
+"_ 	c #E8E8E8",
+": 	c #5A5A5A",
+"< 	c #595959",
+"[ 	c #747474",
+"} 	c #CFCFCF",
+"| 	c #C7C7C7",
+"1 	c #A8A8A8",
+"2 	c #E4E4E4",
+"3 	c #5C5C5C",
+"4 	c #878787",
+"5 	c #FBFBFB",
+"6 	c #FCFCFC",
+"7 	c #C4C4C4",
+"8 	c #7A7A7A",
+"9 	c #757575",
+"0 	c #4E4E4E",
+"a 	c #4A4A4A",
+"b 	c #505050",
+"c 	c #767676",
+"d 	c #8C9296",
+"e 	c #A8B2B7",
+"f 	c #9FA9AE",
+"g 	c #555859",
+"h 	c #0A0A0A",
+"i 	c #121212",
+"j 	c #141414",
+"k 	c #1E1E1E",
+"l 	c #323232",
+"m 	c #363636",
+"n 	c #464646",
+"o 	c #4A4C4C",
+"p 	c #A9B4B9",
+"q 	c #BFC5C7",
+"r 	c #494C4D",
+"s 	c #1B1C1C",
+"t 	c #393939",
+"u 	c #232323",
+"v 	c #161616",
+"w 	c #000000",
+"x 	c #383C3E",
+"y 	c #CAD0D4",
+"z 	c #565758",
+"A 	c #1B0F12",
+"B 	c #34161C",
+"C 	c #F7F7F7",
+"D 	c #CDCDCD",
+"E 	c #AAAAAA",
+"F 	c #656565",
+"G 	c #3F3F3F",
+"H 	c #191919",
+"I 	c #323435",
+"J 	c #C6CACD",
+"K 	c #373A3B",
+"L 	c #311E22",
+"M 	c #4D262E",
+"N 	c #CCCCCC",
+"O 	c #4B4B4B",
+"P 	c #A6A7A7",
+"Q 	c #282929",
+"R 	c #372125",
+"S 	c #502B33",
+"T 	c #290F14",
+"U 	c #0E0E0E",
+"V 	c #7E7E7E",
+"W 	c #4F4F4F",
+"X 	c #392227",
+"Y 	c #4E2A32",
+"Z 	c #34141B",
+"` 	c #4D3036",
+" .	c #45252C",
+"..	c #39161E",
+"+.	c #260E12",
+"@.	c #A4979B",
+"#.	c #CBC3C6",
+"$.	c #F5F3F3",
+"%.	c #F2F2F2",
+"&.	c #5C4046",
+"*.	c #47222B",
+"=.	c #33141B",
+"-.	c #2C1117",
+";.	c #2F1019",
+">.	c #6F585E",
+",.	c #B29CA0",
+"'.	c #6F5056",
+").	c #33141A",
+"!.	c #38161E",
+"~.	c #36161C",
+"{.	c #220C11",
+"].	c #34111A",
+"^.	c #4E151F",
+"/.	c #631824",
+"(.	c #6F1A27",
+"_.	c #781C29",
+":.	c #771B28",
+"<.	c #741B27",
+"[.	c #6F1A26",
+"}.	c #6A1924",
+"|.	c #5E1823",
+"1.	c #684E53",
+"2.	c #421A23",
+"3.	c #31141A",
+"4.	c #2A1016",
+"5.	c #321319",
+"6.	c #1B0A0D",
+"7.	c #8B3B47",
+"8.	c #893844",
+"9.	c #7A1E2B",
+"0.	c #791C29",
+"a.	c #711E2B",
+"b.	c #7C5E65",
+"c.	c #38161D",
+"d.	c #34151B",
+"e.	c #32141A",
+"f.	c #250E13",
+"g.	c #230C11",
+"h.	c #742A36",
+"i.	c #66444C",
+"j.	c #35151C",
+"k.	c #2D1217",
+"l.	c #210C11",
+"m.	c #1E0A0E",
+"n.	c #18080B",
+"o.	c #832E3B",
+"p.	c #712B37",
+"q.	c #673C45",
+"r.	c #3F1921",
+"s.	c #230D11",
+"t.	c #1C090D",
+"u.	c #86404C",
+"v.	c #66232E",
+"w.	c #472229",
+"x.	c #2F1117",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                        .                       ",
+"                      . . . . . . . . . + .                     ",
+"                  . . @ + + + + # $ % & + .                     ",
+"                . * = = - ; > , ' - ) ! + .                     ",
+"          . . . ~ { ] ^ { ) + , / ; ( _ .                       ",
+"        . : : : < < < < : : [ } | 1 1 2 .                       ",
+"        . : : : : : : : : : 3 4 & 5 6 6 .                       ",
+"          . : : : : : : : : : : 7 @ + + . . . . .               ",
+"            . : : : : : : : : : 8 2 + + 9 0 0 0 0 .             ",
+"              . . a 0 b : : : : : c d e f g 0 . .               ",
+"                . h i j k k l m n o p q r s .                   ",
+"                . t u v w w w w w x y z A B .                   ",
+"            . . C 2 D ^ E . F G H I J K L M .                   ",
+"          . + + + + + + + + + + N O P Q R S T .                 ",
+"        . + + + + + + + + + + + 0 U V W X Y Z .                 ",
+"          . . + + + + + + + >           `  ...+..               ",
+"              . . @.#.$.+ + %.          &.*.=.-..               ",
+"                . ;.;.;.>.,.            '.).!.~.{..             ",
+"                . ;.].^./.(._.:.<.[.}.|.1.2.3.4.5.6..           ",
+"                  . 7.7.8.9.0.0.0.0.0.a.b.c.d.e.f.g..           ",
+"                    . . 7.7.7.7.0.0.0.h.i.j.k.l.m.n..           ",
+"                        . . . 7.7.o.0.p.q.r.s.t.. .             ",
+"                              . . u.0.v.w.x.. .                 ",
+"                                  . . . . .                     ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-inbox-mini.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-inbox-mini.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-inbox-mini.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-inbox-mini.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,67 @@
+/* XPM */
+static char * storm_inbox_mini_xpm[] = {
+"16 16 48 1",
+" 	c None",
+".	c #010101",
+"+	c #2F2F2F",
+"@	c #A7A4A0",
+"#	c #FCFCFC",
+"$	c #64625F",
+"%	c #95938E",
+"&	c #FBFBFB",
+"*	c #F9F8F6",
+"=	c #FBFAFA",
+"-	c #F6F5F1",
+";	c #7D7B78",
+">	c #EAE8E3",
+",	c #969491",
+"'	c #F6F4F1",
+")	c #81807C",
+"!	c #000000",
+"~	c #928F8B",
+"{	c #FBFBFA",
+"]	c #F7F5F2",
+"^	c #F9ECD9",
+"/	c #957D59",
+"(	c #F7F6F4",
+"_	c #B5B2AC",
+":	c #A09C97",
+"<	c #F7E2C6",
+"[	c #E79E3C",
+"}	c #C9733A",
+"|	c #AEABA6",
+"1	c #F7E1C5",
+"2	c #CA743B",
+"3	c #B0ADA7",
+"4	c #F5F3F0",
+"5	c #F7F6F2",
+"6	c #F5F4F0",
+"7	c #F8E5CB",
+"8	c #C97239",
+"9	c #83817E",
+"0	c #E1DFDA",
+"a	c #E2DFD9",
+"b	c #F5DAB4",
+"c	c #F4D4A9",
+"d	c #CA7338",
+"e	c #F6DCB9",
+"f	c #CB7637",
+"g	c #FBF3E8",
+"h	c #CA7537",
+"i	c #828282",
+"                ",
+"  .+.........   ",
+" .@#########$.  ",
+" .#%&*#*=*-;>.  ",
+" .#*,=*=*')'!!  ",
+" .#**~{*])*!^/! ",
+" .#*(_)#):!<[}! ",
+" .#(|**)]!1[2!  ",
+" .#3*456!7[8!.  ",
+" .90aaa!b[8!$.  ",
+"  ....!c[d!..   ",
+"     !e[f!      ",
+"     !gh!       ",
+"    !i!!        ",
+"    !!          ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-inbox.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-inbox.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-inbox.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-inbox.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,169 @@
+/* XPM */
+static char * storm_inbox2_xpm[] = {
+"32 32 134 2",
+"  	c None",
+". 	c #848484",
+"+ 	c #E9E9E9",
+"@ 	c #EBEBEB",
+"# 	c #EDEDED",
+"$ 	c #F2F2F2",
+"% 	c #F7F7F7",
+"& 	c #FAFAFA",
+"* 	c #FBFBFB",
+"= 	c #FDFDFD",
+"- 	c #FEFEFE",
+"; 	c #F9F9F9",
+"> 	c #F8F8F8",
+", 	c #F3F3F3",
+"' 	c #A2A2A2",
+") 	c #FCFCFC",
+"! 	c #F6F6F6",
+"~ 	c #F1F1F1",
+"{ 	c #EFEFEF",
+"] 	c #EEEEEE",
+"^ 	c #ECECEC",
+"/ 	c #EAEAEA",
+"( 	c #E5E5E5",
+"_ 	c #A7A7A7",
+": 	c #747474",
+"< 	c #F0F0F0",
+"[ 	c #E7E7E7",
+"} 	c #E3E3E3",
+"| 	c #D8D8D8",
+"1 	c #444444",
+"2 	c #585858",
+"3 	c #A9A9A9",
+"4 	c #BDBDBD",
+"5 	c #F5F5F5",
+"6 	c #DEDEDE",
+"7 	c #CCCCCC",
+"8 	c #797979",
+"9 	c #414141",
+"0 	c #5A5A5A",
+"a 	c #4E4E4E",
+"b 	c #C1C1C1",
+"c 	c #BEBEBE",
+"d 	c #999999",
+"e 	c #9D9D9D",
+"f 	c #E0E0E0",
+"g 	c #E4E4E4",
+"h 	c #E2E2E2",
+"i 	c #C5C5C5",
+"j 	c #4F4F4F",
+"k 	c #1F1F1F",
+"l 	c #7E7E7E",
+"m 	c #8C8C8C",
+"n 	c #6A6A6A",
+"o 	c #C4C4C4",
+"p 	c #DFDFDF",
+"q 	c #898989",
+"r 	c #9F9F9F",
+"s 	c #C9C9C9",
+"t 	c #E1E1E1",
+"u 	c #DCDCDC",
+"v 	c #DADADA",
+"w 	c #D3D3D3",
+"x 	c #BBBBBB",
+"y 	c #626262",
+"z 	c #363636",
+"A 	c #676767",
+"B 	c #979797",
+"C 	c #E8E8E8",
+"D 	c #CACACA",
+"E 	c #909090",
+"F 	c #686868",
+"G 	c #777777",
+"H 	c #D4D4D4",
+"I 	c #DBDBDB",
+"J 	c #D6D6D6",
+"K 	c #A8A8A8",
+"L 	c #666666",
+"M 	c #8D8D8D",
+"N 	c #B1B1B1",
+"O 	c #818181",
+"P 	c #AFAFAF",
+"Q 	c #878787",
+"R 	c #646464",
+"S 	c #6F6F6F",
+"T 	c #929292",
+"U 	c #D1D1D1",
+"V 	c #5B5B5B",
+"W 	c #494949",
+"X 	c #6B6B6B",
+"Y 	c #9C9C9C",
+"Z 	c #B2B2B2",
+"` 	c #B7B7B7",
+" .	c #E6E6E6",
+"..	c #B8B8B8",
+"+.	c #A0A0A0",
+"@.	c #B6B6B6",
+"#.	c #9B9B9B",
+"$.	c #838383",
+"%.	c #7C7C7C",
+"&.	c #939393",
+"*.	c #787878",
+"=.	c #949494",
+"-.	c #A3A3A3",
+";.	c #C0C0C0",
+">.	c #AAAAAA",
+",.	c #BCBCBC",
+"'.	c #BABABA",
+").	c #C6C6C6",
+"!.	c #B4B4B4",
+"~.	c #B9B9B9",
+"{.	c #C2C2C2",
+"].	c #D7D7D7",
+"^.	c #CBCBCB",
+"/.	c #CFCFCF",
+"(.	c #9E9E9E",
+"_.	c #AEAEAE",
+":.	c #B0B0B0",
+"<.	c #F4F4F4",
+"[.	c #D9D9D9",
+"}.	c #D2D2D2",
+"|.	c #CECECE",
+"1.	c #C8C8C8",
+"2.	c #959595",
+"3.	c #8F8F8F",
+"4.	c #DDDDDD",
+"5.	c #CDCDCD",
+"6.	c #C7C7C7",
+"7.	c #D0D0D0",
+"8.	c #C3C3C3",
+"9.	c #ADADAD",
+"0.	c #D5D5D5",
+"a.	c #BFBFBF",
+"b.	c #B3B3B3",
+"c.	c #ABABAB",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"        . . . . . . . . . . . . . . . . . . . . . . .           ",
+"  . . . + @ # $ % & * = * * * - = = * & & & ; ; > , ' .         ",
+"  . * * * * * * * * * * ) * & ; ! ! , ~ { ] ^ / ( _ : .         ",
+"  . { * * * - - ) * ; > ! ! , $ < { ^ @ + [ } | . 1 2 .         ",
+"  . 3 4 @ = * & > ! 5 , ~ ~ ] # @ / [ ( } 6 7 8 9 0 a .         ",
+"  . b c d e b f 5 , < # ^ @ + [ g h f 6 | i j k l m n .         ",
+"  . o ; p 4 q m r s $ < [ ( } t p u v w x y z A B r : .         ",
+"    . * % ~ C D E F G e H } t I J H D K z 9 L M _ N O .         ",
+"    . { ; , { ( H P Q R S T c v 6 U r V W X l Y Z ` M .         ",
+"    . 6 > $ ] ^  .u ..+.@.#.$.%.M &.j *.d =.T -.x ;.>..         ",
+"    . w % < # @ + g U ,.[ v D Z T %.. +.'.).!.+.~.{.Z .         ",
+"    . {.5 , @ + [ g s t [ 6 ].w s c '.b ^.^./.;.(._.:..         ",
+"      . <., + [ ( [.J / p I | J }.|.s ^.^.1.i 1.x 2.3..         ",
+"      . * $  .( 4.5./ t I | J H U /.|.^.6.o b 4 x ,.%..         ",
+"      . @ $ + } 7.4. .v ].J H }./.7 s 1.8.'.N 9.e . . .         ",
+"      . |., / H H + v ].H w U /.6.8.,.9.' 3.. . .               ",
+"        . 5  .D [ f ].0.}.5.8.a.:.e . . . .                     ",
+"        . ^ 0.v p 7.7 c b.-.. . . .                             ",
+"        . U s ].).x . . . .                                     ",
+"        . c._ . . .                                             ",
+"          . .                                                   ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-notes-mini.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-notes-mini.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-notes-mini.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-notes-mini.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,74 @@
+/* XPM */
+static char * storm_notes_mini_xpm[] = {
+"16 16 55 1",
+" 	c None",
+".	c #030303",
+"+	c #F5C842",
+"@	c #9D631D",
+"#	c #CD902C",
+"$	c #F6CE42",
+"%	c #F6D142",
+"&	c #BF7929",
+"*	c #F5C444",
+"=	c #F6D141",
+"-	c #875B1B",
+";	c #8B501D",
+">	c #F4C045",
+",	c #F5C844",
+"'	c #F5CD42",
+")	c #F5D041",
+"!	c #F7D640",
+"~	c #F8E056",
+"{	c #E1A237",
+"]	c #F6D040",
+"^	c #F7DC4A",
+"/	c #F9E360",
+"(	c #DBBF50",
+"_	c #EEC14B",
+":	c #F6D541",
+"<	c #F7D940",
+"[	c #FAE870",
+"}	c #FBEF8B",
+"|	c #E0CE70",
+"1	c #BC8939",
+"2	c #F5CD41",
+"3	c #F8DC48",
+"4	c #F9E560",
+"5	c #FAEC79",
+"6	c #FCF196",
+"7	c #FDF5B2",
+"8	c #BDAC5E",
+"9	c #F7D750",
+"0	c #F7D93E",
+"a	c #F9E354",
+"b	c #F3E28F",
+"c	c #968350",
+"d	c #C09433",
+"e	c #F8E048",
+"f	c #F9E55E",
+"g	c #FBED7B",
+"h	c #E2B167",
+"i	c #634B13",
+"j	c #F7DD3E",
+"k	c #F9E350",
+"l	c #FAEB6E",
+"m	c #503D10",
+"n	c #A5751E",
+"o	c #F8E047",
+"p	c #755616",
+"                ",
+"         ..     ",
+"       ..+@.    ",
+"     ..#+$%.    ",
+"   ..&*+$%=-.   ",
+"  .;>*,')=!~.   ",
+"  .{*,')]!^/(.  ",
+"  .._')%:<~[}|. ",
+"   .12%:<345678.",
+"   ..9:!0a[}bc. ",
+"    .d!0efghi.. ",
+"    ..0jklm.... ",
+"     .nop....   ",
+"     ......     ",
+"      ...       ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-notes.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-notes.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-notes.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-notes.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,347 @@
+/* XPM */
+static char * storm_notes2_xpm[] = {
+"32 32 312 2",
+"  	c None",
+". 	c #848484",
+"+ 	c #F8D932",
+"@ 	c #FADD3C",
+"# 	c #FADE44",
+"$ 	c #FBE14D",
+"% 	c #FBE255",
+"& 	c #F8E15A",
+"* 	c #F9DA2F",
+"= 	c #FADC36",
+"- 	c #FADD3E",
+"; 	c #E9CF41",
+"> 	c #FADF4D",
+", 	c #EDD652",
+"' 	c #FBE45E",
+") 	c #FBE667",
+"! 	c #FCE76F",
+"~ 	c #FCE878",
+"{ 	c #FAE880",
+"] 	c #FAE986",
+"^ 	c #FAEA8D",
+"/ 	c #F5D62E",
+"( 	c #F5D732",
+"_ 	c #FADB34",
+": 	c #FADC3A",
+"< 	c #FADE42",
+"[ 	c #DEC540",
+"} 	c #C6B240",
+"| 	c #E4CD50",
+"1 	c #C7B44D",
+"2 	c #E1CE5E",
+"3 	c #E6D369",
+"4 	c #F9E77D",
+"5 	c #FBEB8C",
+"6 	c #FCED93",
+"7 	c #FCED9B",
+"8 	c #FAEB9A",
+"9 	c #DECC82",
+"0 	c #F8D92F",
+"a 	c #F7D930",
+"b 	c #F8D933",
+"c 	c #DEC32F",
+"d 	c #DDC231",
+"e 	c #FBDD3C",
+"f 	c #FBDE43",
+"g 	c #CCB63D",
+"h 	c #9D8C32",
+"i 	c #ECD34E",
+"j 	c #9F8F38",
+"k 	c #B8A849",
+"l 	c #C5B557",
+"m 	c #CBBC66",
+"n 	c #D4C674",
+"o 	c #FBEC96",
+"p 	c #FCEE9F",
+"q 	c #E2CF81",
+"r 	c #AB8B43",
+"s 	c #7F5915",
+"t 	c #F9DA2E",
+"u 	c #FADB32",
+"v 	c #FADB37",
+"w 	c #DEC432",
+"x 	c #D5BB32",
+"y 	c #AB9629",
+"z 	c #A6922B",
+"A 	c #BBA635",
+"B 	c #C9B33F",
+"C 	c #AA983A",
+"D 	c #A7963B",
+"E 	c #DAC554",
+"F 	c #D1BF56",
+"G 	c #FAE772",
+"H 	c #FAE97E",
+"I 	c #F6E686",
+"J 	c #E9D781",
+"K 	c #BFA962",
+"L 	c #917633",
+"M 	c #583908",
+"N 	c #593A08",
+"O 	c #603E09",
+"P 	c #6C460A",
+"Q 	c #85550C",
+"R 	c #84560C",
+"S 	c #F7E160",
+"T 	c #FBDD3A",
+"U 	c #FBDD3D",
+"V 	c #C1AB30",
+"W 	c #968526",
+"X 	c #9B892A",
+"Y 	c #BEA937",
+"Z 	c #F8DD50",
+"` 	c #FAE057",
+" .	c #EAD35B",
+"..	c #E4D15E",
+"+.	c #F6E26C",
+"@.	c #F1DB66",
+"#.	c #B19232",
+"$.	c #A88D35",
+"%.	c #987E32",
+"&.	c #806523",
+"*.	c #4F3607",
+"=.	c #4B3206",
+"-.	c #4A3006",
+";.	c #4F3407",
+">.	c #65410A",
+",.	c #7E520C",
+"'.	c #A87D0E",
+").	c #F2E083",
+"!.	c #EBDA80",
+"~.	c #F2D94C",
+"{.	c #F6D83C",
+"].	c #EDD03C",
+"^.	c #EED344",
+"/.	c #FAE050",
+"(.	c #FAE25A",
+"_.	c #FAE365",
+":.	c #FAE46C",
+"<.	c #FAE675",
+"[.	c #F8E578",
+"}.	c #DAC45E",
+"|.	c #91751F",
+"1.	c #75580D",
+"2.	c #644A0B",
+"3.	c #4E3607",
+"4.	c #432C06",
+"5.	c #412B06",
+"6.	c #4B3106",
+"7.	c #523507",
+"8.	c #624009",
+"9.	c #7B570A",
+"0.	c #A7800D",
+"a.	c #B7900F",
+"b.	c #EEDE85",
+"c.	c #F1E082",
+"d.	c #E9D77A",
+"e.	c #E7D266",
+"f.	c #E5C027",
+"g.	c #E8C02B",
+"h.	c #E8C843",
+"i.	c #EBD158",
+"j.	c #E9D164",
+"k.	c #E7D168",
+"l.	c #DDC766",
+"m.	c #AA903C",
+"n.	c #7E6319",
+"o.	c #644A0A",
+"p.	c #573D08",
+"q.	c #493106",
+"r.	c #412A05",
+"s.	c #402A05",
+"t.	c #452D06",
+"u.	c #4C3107",
+"v.	c #5B3B08",
+"w.	c #624108",
+"x.	c #8E6A0B",
+"y.	c #A57D0C",
+"z.	c #A27C0C",
+"A.	c #9E780C",
+"B.	c #E4D482",
+"C.	c #F0DF82",
+"D.	c #F4E387",
+"E.	c #EEDC7D",
+"F.	c #E8D679",
+"G.	c #D8BA47",
+"H.	c #C39718",
+"I.	c #B08010",
+"J.	c #93660C",
+"K.	c #80590B",
+"L.	c #6E4B09",
+"M.	c #644408",
+"N.	c #583A08",
+"O.	c #513607",
+"P.	c #523607",
+"Q.	c #503507",
+"R.	c #4C3207",
+"S.	c #5E3D09",
+"T.	c #664409",
+"U.	c #8D660B",
+"V.	c #A07B0C",
+"W.	c #9E770B",
+"X.	c #98720B",
+"Y.	c #936F0A",
+"Z.	c #AA840D",
+"`.	c #F0DD80",
+" +	c #F1DF81",
+".+	c #EEDC7F",
+"++	c #E7D67C",
+"@+	c #D9C261",
+"#+	c #BF9322",
+"$+	c #AA7810",
+"%+	c #97680D",
+"&+	c #865B0B",
+"*+	c #7B520B",
+"=+	c #724B0A",
+"-+	c #6B460A",
+";+	c #68440A",
+">+	c #71490A",
+",+	c #7D570B",
+"'+	c #9D780D",
+")+	c #A27B0C",
+"!+	c #9B750B",
+"~+	c #8E6C09",
+"{+	c #A17D0C",
+"]+	c #97790C",
+"^+	c #E8D77E",
+"/+	c #EDDB7E",
+"(+	c #EFDC7F",
+"_+	c #F1E083",
+":+	c #ECD97D",
+"<+	c #ECDC82",
+"[+	c #C5A540",
+"}+	c #BE8D1A",
+"|+	c #B27D10",
+"1+	c #A8740F",
+"2+	c #9E6B0F",
+"3+	c #9B680F",
+"4+	c #98660E",
+"5+	c #9E790D",
+"6+	c #B48C0E",
+"7+	c #A1790C",
+"8+	c #9E780B",
+"9+	c #99740A",
+"0+	c #946F0A",
+"a+	c #9E790B",
+"b+	c #6B5608",
+"c+	c #E7D67F",
+"d+	c #EDD97C",
+"e+	c #EFDC80",
+"f+	c #F2E184",
+"g+	c #E8D579",
+"h+	c #E1CA68",
+"i+	c #C89B20",
+"j+	c #CF9815",
+"k+	c #C99214",
+"l+	c #C78F14",
+"m+	c #BD8613",
+"n+	c #AE800F",
+"o+	c #B48D0F",
+"p+	c #B0890D",
+"q+	c #A27B0B",
+"r+	c #9A750B",
+"s+	c #97720B",
+"t+	c #5F4C08",
+"u+	c #D4C575",
+"v+	c #EBD97C",
+"w+	c #F0DE81",
+"x+	c #F3E185",
+"y+	c #EFDD80",
+"z+	c #EDDE85",
+"A+	c #D8BE56",
+"B+	c #D9AA23",
+"C+	c #D6A416",
+"D+	c #B7910F",
+"E+	c #B9920F",
+"F+	c #A47C0C",
+"G+	c #A17A0C",
+"H+	c #9E770C",
+"I+	c #96760C",
+"J+	c #CCBE74",
+"K+	c #E8D577",
+"L+	c #ECDA7D",
+"M+	c #F3E285",
+"N+	c #F6E78B",
+"O+	c #F1E287",
+"P+	c #DDC557",
+"Q+	c #C09910",
+"R+	c #AE880E",
+"S+	c #A57F0C",
+"T+	c #A8800D",
+"U+	c #A7820D",
+"V+	c #A37C0C",
+"W+	c #886B0B",
+"X+	c #B3A96B",
+"Y+	c #E5D47A",
+"Z+	c #EBD97B",
+"`+	c #FAEB91",
+" @	c #F6E68A",
+".@	c #DEC45D",
+"+@	c #B1880E",
+"@@	c #B48D0E",
+"#@	c #AD850D",
+"$@	c #AD870D",
+"%@	c #A07B0D",
+"&@	c #785E0A",
+"*@	c #938B5A",
+"=@	c #E7D67D",
+"-@	c #ECD87B",
+";@	c #F7E68A",
+">@	c #DFC65C",
+",@	c #B18A0E",
+"'@	c #B38B0E",
+")@	c #BB940F",
+"!@	c #AA830D",
+"~@	c #A9840D",
+"{@	c #D6C777",
+"]@	c #EDDA7E",
+"^@	c #EFDD81",
+"/@	c #E1C85E",
+"(@	c #BB920F",
+"_@	c #A67F0D",
+":@	c #96750C",
+"<@	c #DBCD7F",
+"[@	c #DCC35A",
+"}@	c #B0880D",
+"|@	c #AF870D",
+"1@	c #8E6F0B",
+"2@	c #B1A669",
+"3@	c #D5BB56",
+"4@	c #B28B0E",
+"5@	c #695308",
+"6@	c #948236",
+"7@	c #6B5609",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                          . . . . . .                           ",
+"                      . . + @ # $ % & . . . . .                 ",
+"                . . . * = - ; > , ' ) ! ~ { ] ^ .               ",
+"          . . . / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 .             ",
+"    . . . 0 a b c d e f g h i j k l m n o p q r s . . .         ",
+"  . t u _ v w x y z A B C D E F G H I J K L M N O P Q R .       ",
+"  . S : T U V W X Y Z `  ...+.@.#.$.%.&.*.=.-.;.M >.,.'..       ",
+"  . ).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.4.6.7.8.9.0.a..       ",
+"  . b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A..       ",
+"  . B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.7.S.T.U.V.W.X.Y.Z..       ",
+"    . `. + +.+++@+#+$+%+&+*+=+-+;+-+;+>+,+'+)+!+!+~+{+]+.       ",
+"      . ^+/+(+_+:+<+[+}+|+1+2+3+3+4+J.5+6+7+8+9+0+a+b+.         ",
+"        . c+d+e+f+.+g+h+i+j+k+l+m+n+o+p+8+q+r+s+0.t+.           ",
+"          . u+v+w+x+D.y+z+A+B+C+D+E+F+G+)+H+G+I+. .             ",
+"            . J+K+L+M+N+_+O+P+Q+R+S+T+G+U+V+W+.                 ",
+"              . X+Y+Z+w+`+ @.@+@@@#@Z.$@%@&@.                   ",
+"                . *@=@-@x+;@>@,@'@)@!@~@. .                     ",
+"                  . . {@]@^@/@(@o+_@:@.                         ",
+"                      . <@f+[@}@|@1@.                           ",
+"                        . 2@3@4@5@.                             ",
+"                          . 6@7@.                               ",
+"                            . .                                 ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-tasks-mini.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-tasks-mini.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-tasks-mini.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-tasks-mini.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,120 @@
+/* XPM */
+static char * storm_tasks_mini_xpm[] = {
+"16 16 101 2",
+"  	c None",
+". 	c #0F0E0D",
+"+ 	c #3B2F22",
+"@ 	c #080808",
+"# 	c #292623",
+"$ 	c #CBBFAD",
+"% 	c #BEA47E",
+"& 	c #AD9A7E",
+"* 	c #000000",
+"= 	c #232221",
+"- 	c #CDC8C1",
+"; 	c #CBC5BF",
+"> 	c #766D62",
+", 	c #887053",
+"' 	c #A38664",
+") 	c #A49887",
+"! 	c #F6DEBC",
+"~ 	c #957D59",
+"{ 	c #151211",
+"] 	c #F3EFEA",
+"^ 	c #BBB7B0",
+"/ 	c #A69E97",
+"( 	c #FEFEFE",
+"_ 	c #F8F7F5",
+": 	c #524C45",
+"< 	c #BBA382",
+"[ 	c #A59176",
+"} 	c #F6DBB8",
+"| 	c #E79E3C",
+"1 	c #CB783E",
+"2 	c #171716",
+"3 	c #EFE8DF",
+"4 	c #716A61",
+"5 	c #FDFCFC",
+"6 	c #605D57",
+"7 	c #26221F",
+"8 	c #86735E",
+"9 	c #D5C0A0",
+"0 	c #C4AD8B",
+"a 	c #F9E9D5",
+"b 	c #C97138",
+"c 	c #121110",
+"d 	c #E9E8E7",
+"e 	c #73604D",
+"f 	c #332F29",
+"g 	c #534C40",
+"h 	c #D3BFA0",
+"i 	c #D0BB98",
+"j 	c #D0BA96",
+"k 	c #F9E7D1",
+"l 	c #CA773D",
+"m 	c #090807",
+"n 	c #B1B1AF",
+"o 	c #FBFBF9",
+"p 	c #CAB290",
+"q 	c #D5C0A1",
+"r 	c #D0BA97",
+"s 	c #FBEFDF",
+"t 	c #CB793E",
+"u 	c #272625",
+"v 	c #F4F4F4",
+"w 	c #F4EFE7",
+"x 	c #D0BA98",
+"y 	c #CFB896",
+"z 	c #F9EAD5",
+"A 	c #CC793A",
+"B 	c #0F0F0D",
+"C 	c #100F0E",
+"D 	c #494949",
+"E 	c #FDFCFB",
+"F 	c #DACBB0",
+"G 	c #F5D9B4",
+"H 	c #CA7537",
+"I 	c #B79F80",
+"J 	c #B0A693",
+"K 	c #262525",
+"L 	c #939292",
+"M 	c #ECE3D5",
+"N 	c #FBF3E8",
+"O 	c #CA7337",
+"P 	c #C7B08E",
+"Q 	c #D3C2A5",
+"R 	c #918776",
+"S 	c #0B0A0A",
+"T 	c #555453",
+"U 	c #828282",
+"V 	c #A09179",
+"W 	c #897C67",
+"X 	c #5B5245",
+"Y 	c #191716",
+"Z 	c #413E3C",
+"` 	c #978368",
+" .	c #867C6A",
+"..	c #70685D",
+"+.	c #1C1B18",
+"@.	c #1D1C1A",
+"#.	c #575654",
+"$.	c #887B68",
+"%.	c #676055",
+"&.	c #141211",
+"*.	c #0F0F0E",
+"                                ",
+"            . + @ @             ",
+"        @ # $ % & @       * *   ",
+"    @ = - ; > , ' ) @   * ! ~ * ",
+"  { ] ^ / ( _ : < [ @ * } | 1 * ",
+"  2 3 4 5 6 7 8 9 0 * a | b *   ",
+"  c d e f g h i j * k | l *     ",
+"  m n o p q r j * s | t *       ",
+"    u v w x y * z | A * B       ",
+"    C D E F * G | H * I J @     ",
+"      K L M * N O * P Q R S     ",
+"      @ T * U * * V W X Y @     ",
+"        Z * * `  ...+.@ @       ",
+"        @.#.$.%.&.@ @           ",
+"          * *.@ @               ",
+"          @ @                   "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-tasks.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-tasks.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-tasks.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-tasks.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,357 @@
+/* XPM */
+static char * storm_tasks_xpm[] = {
+"32 32 322 2",
+"  	c None",
+". 	c #848484",
+"+ 	c #949494",
+"@ 	c #8F8F8F",
+"# 	c #7C7C7C",
+"$ 	c #5F5F5F",
+"% 	c #797979",
+"& 	c #969696",
+"* 	c #D0D0D0",
+"= 	c #878787",
+"- 	c #3F3F3F",
+"; 	c #494949",
+"> 	c #C1BFBC",
+", 	c #545352",
+"' 	c #D3D3D3",
+") 	c #B0B0B0",
+"! 	c #595959",
+"~ 	c #393939",
+"{ 	c #827D79",
+"] 	c #98908B",
+"^ 	c #837870",
+"/ 	c #78685F",
+"( 	c #6D5D52",
+"_ 	c #AB9F95",
+": 	c #B6ADA6",
+"< 	c #BDB4AE",
+"[ 	c #BFB5AD",
+"} 	c #B5A99E",
+"| 	c #B4A79C",
+"1 	c #746E69",
+"2 	c #ADADAD",
+"3 	c #555555",
+"4 	c #363636",
+"5 	c #A19085",
+"6 	c #AC9688",
+"7 	c #A89182",
+"8 	c #A78E7F",
+"9 	c #9A7F6E",
+"0 	c #D2C8BF",
+"a 	c #AD8F77",
+"b 	c #A88A71",
+"c 	c #A6886F",
+"d 	c #A1846B",
+"e 	c #665448",
+"f 	c #635C56",
+"g 	c #A9A9A9",
+"h 	c #808080",
+"i 	c #5C5C5C",
+"j 	c #3E3E3E",
+"k 	c #5B4A40",
+"l 	c #917B6D",
+"m 	c #BBA699",
+"n 	c #9C887B",
+"o 	c #866A59",
+"p 	c #CEC3BB",
+"q 	c #B59C87",
+"r 	c #A78970",
+"s 	c #E1D7CF",
+"t 	c #817870",
+"u 	c #7B7A79",
+"v 	c #D5D5D5",
+"w 	c #E3E3E3",
+"x 	c #9A9A9A",
+"y 	c #525252",
+"z 	c #242424",
+"A 	c #474645",
+"B 	c #EEEEEE",
+"C 	c #A8A8A8",
+"D 	c #675145",
+"E 	c #675144",
+"F 	c #B9AEA4",
+"G 	c #B69D89",
+"H 	c #A5876E",
+"I 	c #F3F0ED",
+"J 	c #A0A0A0",
+"K 	c #606060",
+"L 	c #6D6D6D",
+"M 	c #6E6E6E",
+"N 	c #474747",
+"O 	c #3B3B3B",
+"P 	c #353535",
+"Q 	c #444444",
+"R 	c #DBDBDB",
+"S 	c #CCCCCC",
+"T 	c #524238",
+"U 	c #765D4F",
+"V 	c #AEA197",
+"W 	c #BBA492",
+"X 	c #A4856E",
+"Y 	c #EBE4DE",
+"Z 	c #F6F6F6",
+"` 	c #868686",
+" .	c #777777",
+"..	c #727272",
+"+.	c #696969",
+"@.	c #707070",
+"#.	c #B8B8B8",
+"$.	c #F9F9F9",
+"%.	c #F1F1F1",
+"&.	c #473C35",
+"*.	c #9F9289",
+"=.	c #BDA696",
+"-.	c #A3836C",
+";.	c #E5DDD7",
+">.	c #D2D2D2",
+",.	c #A4A4A4",
+"'.	c #8D8D8D",
+").	c #FFFFFF",
+"!.	c #58514D",
+"~.	c #6B5547",
+"{.	c #594A41",
+"].	c #A3978D",
+"^.	c #C4AFA1",
+"/.	c #A1826C",
+"(.	c #D7CAC1",
+"_.	c #F2F2F2",
+":.	c #C6C6C6",
+"<.	c #D9D9D9",
+"[.	c #C2C2C2",
+"}.	c #B4ABAB",
+"|.	c #C99B9B",
+"1.	c #CDCCCC",
+"2.	c #9B9B9B",
+"3.	c #75706E",
+"4.	c #5F4B3F",
+"5.	c #5F4B41",
+"6.	c #958C85",
+"7.	c #C7B5A8",
+"8.	c #A1836D",
+"9.	c #D2C3B9",
+"0.	c #BBBBBB",
+"a.	c #D6D6D6",
+"b.	c #CBCBCB",
+"c.	c #B2A3A3",
+"d.	c #B75151",
+"e.	c #D59999",
+"f.	c #AAA8A7",
+"g.	c #5B483E",
+"h.	c #6C5447",
+"i.	c #9B948E",
+"j.	c #CBBAAE",
+"k.	c #A58873",
+"l.	c #C3AFA2",
+"m.	c #B7B7B7",
+"n.	c #C9C9C9",
+"o.	c #979797",
+"p.	c #F7F5F5",
+"q.	c #C57070",
+"r.	c #AD3F3F",
+"s.	c #BFACAC",
+"t.	c #C3C2C2",
+"u.	c #5A4C44",
+"v.	c #755C4E",
+"w.	c #847E7B",
+"x.	c #CDBCB1",
+"y.	c #A78A77",
+"z.	c #B89E90",
+"A.	c #C29291",
+"B.	c #CCB7B7",
+"C.	c #B9B9B9",
+"D.	c #C38080",
+"E.	c #AC3131",
+"F.	c #F2DEDE",
+"G.	c #E8E8E8",
+"H.	c #68605C",
+"I.	c #725A4C",
+"J.	c #CEBFB5",
+"K.	c #AA8F7E",
+"L.	c #AE9081",
+"M.	c #B55250",
+"N.	c #9F4343",
+"O.	c #7F7D7D",
+"P.	c #A62828",
+"Q.	c #D8A0A0",
+"R.	c #FEFEFE",
+"S.	c #7D7B7A",
+"T.	c #6F574A",
+"U.	c #5D493D",
+"V.	c #CDBEB4",
+"W.	c #AA9080",
+"X.	c #AF9686",
+"Y.	c #E5CDCB",
+"Z.	c #9E1C1C",
+"`.	c #A83434",
+" +	c #AF4B4B",
+".+	c #D4CCCC",
+"++	c #C7C7C7",
+"@+	c #C8C8C8",
+"#+	c #FBFBFB",
+"$+	c #BDBDBD",
+"%+	c #56433A",
+"&+	c #745A4D",
+"*+	c #CEBFB6",
+"=+	c #AD9484",
+"-+	c #A68B7A",
+";+	c #EAE4E0",
+">+	c #A76767",
+",+	c #9E1010",
+"'+	c #A98B8B",
+")+	c #D3D2D2",
+"!+	c #C0C0C0",
+"~+	c #524641",
+"{+	c #755B4E",
+"]+	c #A89D94",
+"^+	c #B09989",
+"/+	c #A08371",
+"(+	c #E5DDD8",
+"_+	c #B6B5B5",
+":+	c #AB9696",
+"<+	c #9C9C9C",
+"[+	c #F7F7F7",
+"}+	c #D4D4D4",
+"|+	c #E1E1E1",
+"1+	c #ABABAB",
+"2+	c #D8D8D8",
+"3+	c #9F9A98",
+"4+	c #634D43",
+"5+	c #4D3E38",
+"6+	c #A2958C",
+"7+	c #B8A396",
+"8+	c #967765",
+"9+	c #DDD3CD",
+"0+	c #E7E7E7",
+"a+	c #CFCFCF",
+"b+	c #F3F3F3",
+"c+	c #FCFCFC",
+"d+	c #FDFDFD",
+"e+	c #D8D7D7",
+"f+	c #685A54",
+"g+	c #523F37",
+"h+	c #B7A296",
+"i+	c #937462",
+"j+	c #CDBFB7",
+"k+	c #DFDFDF",
+"l+	c #C5C5C5",
+"m+	c #DEDEDE",
+"n+	c #E6E6E6",
+"o+	c #6C6968",
+"p+	c #4B3A32",
+"q+	c #BAA79B",
+"r+	c #917260",
+"s+	c #C2B0A7",
+"t+	c #EBEBEB",
+"u+	c #D7D7D7",
+"v+	c #DADADA",
+"w+	c #898989",
+"x+	c #757575",
+"y+	c #3B3735",
+"z+	c #2F2825",
+"A+	c #4D3B33",
+"B+	c #BAA69B",
+"C+	c #8D6E5D",
+"D+	c #967E71",
+"E+	c #C1C1C1",
+"F+	c #9A9998",
+"G+	c #595654",
+"H+	c #464240",
+"I+	c #282421",
+"J+	c #241E1C",
+"K+	c #261F1B",
+"L+	c #271E1B",
+"M+	c #2D231E",
+"N+	c #392C26",
+"O+	c #46352E",
+"P+	c #503D35",
+"Q+	c #58433A",
+"R+	c #664D43",
+"S+	c #B5A398",
+"T+	c #8B6D5C",
+"U+	c #7F6456",
+"V+	c #6C5C53",
+"W+	c #5D4D44",
+"X+	c #56453C",
+"Y+	c #58463C",
+"Z+	c #58453B",
+"`+	c #554339",
+" @	c #58443A",
+".@	c #574439",
+"+@	c #554239",
+"@@	c #564239",
+"#@	c #59443A",
+"$@	c #5E483E",
+"%@	c #654D42",
+"&@	c #695046",
+"*@	c #70554A",
+"=@	c #A49288",
+"-@	c #907464",
+";@	c #886B5B",
+">@	c #7F6454",
+",@	c #795E50",
+"'@	c #775C4E",
+")@	c #74594D",
+"!@	c #72584B",
+"~@	c #70564A",
+"{@	c #6F5549",
+"]@	c #6E5448",
+"^@	c #6B5145",
+"/@	c #664D42",
+"(@	c #604940",
+"_@	c #5B443C",
+":@	c #513C35",
+"<@	c #98867C",
+"[@	c #95786A",
+"}@	c #8B6C5C",
+"|@	c #896B5B",
+"1@	c #866858",
+"2@	c #826556",
+"3@	c #7D6254",
+"4@	c #7A5E51",
+"5@	c #785C50",
+"6@	c #604A3F",
+"7@	c #513E35",
+"8@	c #49382F",
+"9@	c #362923",
+"0@	c #7D695E",
+"a@	c #856B5E",
+"b@	c #775D4F",
+"c@	c #6C5448",
+"d@	c #624D42",
+"e@	c #514038",
+"f@	c #463831",
+"g@	c #ABA7A5",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                        . . . . .                               ",
+"                      . + @ # $ % .                             ",
+"                      . & * = - ; . . . . .                     ",
+"          > . . . . . . , ' ) ! ~ { ] ^ / ( .                   ",
+"          . _ : < [ } | 1 ' 2 3 4 5 6 7 8 9 .                   ",
+"          . 0 a b c d e f g h i j k l m n o .                   ",
+"          . p q r s t u v w v x y z A B C D E .                 ",
+"          . F G H I J j K L M N O P Q R S T U .                 ",
+"          . V W X Y Z `  ...+.@.# . #.$.%.&.U .                 ",
+"          . *.=.-.;.>.,.'.).).).).).).).).!.~.{..               ",
+"          . ].^./.(.S _.:.<.[.}.|.1.2.).).3.4.5..               ",
+"          . 6.7.8.9.0.a.J b.c.d.e._.$.).).f.g.h..               ",
+"          . i.j.k.l.m.n.o.p.q.r.s.& #.).).t.u.v..               ",
+"          . w.x.y.z.A.B.C.D.E.F.).).).).).G.H.I..               ",
+"            . J.K.L.M.N.O.P.Q.).).).R.).).).S.T.U..             ",
+"            . V.W.X.Y.Z.`. +.+' w ++#.@+#+).$+%+&+.             ",
+"            . *+=+-+;+>+,+'+)+!+<.$.).).).).Z ~+{+.             ",
+"            . ]+^+/+(+_+:+<+[+}+0._.|+1+2+).).3+4+5+.           ",
+"            . 6+7+8+9+R 0+#.0+w a+b+R.c+d+).).e+f+g+.           ",
+"            * . h+i+j+k+b.l+m+).).).).).).).n+* o+p+.           ",
+"              . q+r+s+t+u+v+b+).).G.#.w+x+$ N y+z+A+.           ",
+"              . B+C+D+E+F+S.G+H+I+J+K+L+M+N+O+P+Q+R+.           ",
+"              . S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@@@.         ",
+"              . =@-@;@>@,@,@,@'@&+)@!@~@{@]@^@/@(@_@:@.         ",
+"              . <@[@}@|@1@2@3@4@5@{@6@7@8@9@. . . . .           ",
+"              . 0@a@b@c@d@e@f@. . . . . . .                     ",
+"              g@. . . . . . .                                   ",
+"                                                                ",
+"                                                                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-time-mini.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-time-mini.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-time-mini.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-time-mini.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,162 @@
+/* XPM */
+static char * storm_time_mini_xpm[] = {
+"16 16 143 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #2A2B2B",
+"@ 	c #020203",
+"# 	c #050709",
+"$ 	c #020202",
+"% 	c #7490B2",
+"& 	c #A6BDD4",
+"* 	c #C0D3E5",
+"= 	c #E6E7E6",
+"- 	c #C7CCC5",
+"; 	c #9BAC9F",
+"> 	c #030304",
+", 	c #010101",
+"' 	c #82848E",
+") 	c #80846B",
+"! 	c #7FA59B",
+"~ 	c #AECFE0",
+"{ 	c #C0D8EF",
+"] 	c #B4C4C2",
+"^ 	c #6A8B6C",
+"/ 	c #699678",
+"( 	c #51826F",
+"_ 	c #2D535E",
+": 	c #1C492A",
+"< 	c #5EA66A",
+"[ 	c #7BC280",
+"} 	c #67BA7A",
+"| 	c #7AC7A7",
+"1 	c #B1D1EC",
+"2 	c #94ADAF",
+"3 	c #719177",
+"4 	c #609996",
+"5 	c #5B9583",
+"6 	c #537762",
+"7 	c #6E9874",
+"8 	c #64A970",
+"9 	c #6DBD77",
+"0 	c #5FB565",
+"a 	c #5DAD6B",
+"b 	c #89BFF1",
+"c 	c #89BFF5",
+"d 	c #4C9DAB",
+"e 	c #459D82",
+"f 	c #55A395",
+"g 	c #557A5C",
+"h 	c #1A304E",
+"i 	c #74B678",
+"j 	c #5EB666",
+"k 	c #49A54F",
+"l 	c #4CA34F",
+"m 	c #90C4E4",
+"n 	c #7BB8F8",
+"o 	c #7FBCF8",
+"p 	c #49A09A",
+"q 	c #389B6F",
+"r 	c #81ACBF",
+"s 	c #617B65",
+"t 	c #5B735E",
+"u 	c #010202",
+"v 	c #7AAD6E",
+"w 	c #438C3D",
+"x 	c #6AA8A1",
+"y 	c #92C5F1",
+"z 	c #77B8F6",
+"A 	c #77B7F7",
+"B 	c #7BB7F2",
+"C 	c #5DA9BA",
+"D 	c #56A4A1",
+"E 	c #85B1D9",
+"F 	c #637679",
+"G 	c #586D86",
+"H 	c #040506",
+"I 	c #6B975F",
+"J 	c #749486",
+"K 	c #85BDD9",
+"L 	c #8FBFEF",
+"M 	c #82BBF4",
+"N 	c #82BAF2",
+"O 	c #84B9EE",
+"P 	c #71AFEE",
+"Q 	c #96ABBF",
+"R 	c #8AB7D4",
+"S 	c #668B77",
+"T 	c #557E74",
+"U 	c #040406",
+"V 	c #649D69",
+"W 	c #508B52",
+"X 	c #508074",
+"Y 	c #7EAEDD",
+"Z 	c #81BBF4",
+"` 	c #81B9F2",
+" .	c #83B8EE",
+"..	c #80ACD5",
+"+.	c #908466",
+"@.	c #64825C",
+"#.	c #5C7F5A",
+"$.	c #627F5C",
+"%.	c #5C7677",
+"&.	c #5C9D67",
+"*.	c #5D9071",
+"=.	c #617576",
+"-.	c #7DB2E8",
+";.	c #7EB4EA",
+">.	c #7BB0E6",
+",.	c #7698B8",
+"'.	c #66855E",
+").	c #53885E",
+"!.	c #51845C",
+"~.	c #61825D",
+"{.	c #3D362D",
+"].	c #0A1C14",
+"^.	c #609D73",
+"/.	c #68A879",
+"(.	c #628E77",
+"_.	c #7AAEE4",
+":.	c #70A4DB",
+"<.	c #72A7DD",
+"[.	c #6997C6",
+"}.	c #598860",
+"|.	c #51835C",
+"1.	c #638860",
+"2.	c #07090A",
+"3.	c #50716C",
+"4.	c #6FA779",
+"5.	c #5D8976",
+"6.	c #7AA7D4",
+"7.	c #73A5D7",
+"8.	c #6495C7",
+"9.	c #557FAB",
+"0.	c #65855F",
+"a.	c #5A875F",
+"b.	c #558462",
+"c.	c #778383",
+"d.	c #7B98B4",
+"e.	c #7CA0C3",
+"f.	c #7397BD",
+"g.	c #7D8FA0",
+"h.	c #809980",
+"i.	c #143325",
+"j.	c #597658",
+"k.	c #030505",
+"l.	c #030404",
+"                                ",
+"          . . + @ @ #           ",
+"      . $ % & * = - ; > ,       ",
+"    . ' ) ! ~ { ] ^ / ( _ ,     ",
+"    : < [ } | 1 2 3 4 5 6 $     ",
+"  , 7 8 9 0 a b c d e f g h ,   ",
+"  , i j k l m n o p q r s t u   ",
+"  , v w x y z A B C D E F G H   ",
+"  , I J K L M N O P Q R S T U   ",
+"  , V W X Y Z `  ...+.@.#.$.H   ",
+"  u %.&.*.=.-.;.>.,.'.).!.~.{.  ",
+"    ].^./.(._.:.<.[.}.|.1.2.    ",
+"    @ 3.4.5.6.7.8.9.0.a.b.>     ",
+"      @ H c.d.e.f.g.h.i.j.      ",
+"          u u k.> l.>           ",
+"                                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-time.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-time.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-time.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-time.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,276 @@
+/* XPM */
+static char * storm_time_xpm[] = {
+"32 32 241 2",
+"  	c None",
+". 	c #848484",
+"+ 	c #DEDBDF",
+"@ 	c #A8B3C4",
+"# 	c #A9A4B5",
+"$ 	c #C8B8BF",
+"% 	c #B3B7C2",
+"& 	c #F6E8E6",
+"* 	c #F6E2DA",
+"= 	c #E5D0D1",
+"- 	c #95A2C0",
+"; 	c #87A5C6",
+"> 	c #C1C1D0",
+", 	c #A29FB7",
+"' 	c #5172A3",
+") 	c #DAD4DC",
+"! 	c #BAC4D7",
+"~ 	c #809CC2",
+"{ 	c #5581B5",
+"] 	c #497BB3",
+"^ 	c #6393BF",
+"/ 	c #9BB4CC",
+"( 	c #93A6C2",
+"_ 	c #627DAC",
+": 	c #235CA0",
+"< 	c #2E629E",
+"[ 	c #154284",
+"} 	c #7FA5C8",
+"| 	c #86ACCE",
+"1 	c #649AC4",
+"2 	c #6F9DC5",
+"3 	c #85ABCC",
+"4 	c #BBCEDC",
+"5 	c #A3BACE",
+"6 	c #6D8EB5",
+"7 	c #315B95",
+"8 	c #2E5E9B",
+"9 	c #1A5094",
+"0 	c #29538E",
+"a 	c #3A5F8E",
+"b 	c #7DAACA",
+"c 	c #B7D1E1",
+"d 	c #B0CBDE",
+"e 	c #DAE4EB",
+"f 	c #839EC1",
+"g 	c #D8E0E7",
+"h 	c #AAB3BB",
+"i 	c #88929E",
+"j 	c #547495",
+"k 	c #8CA5BF",
+"l 	c #93ABC4",
+"m 	c #91A8C5",
+"n 	c #BCCBDA",
+"o 	c #718DAD",
+"p 	c #1E4073",
+"q 	c #4D6375",
+"r 	c #4C7A9F",
+"s 	c #B0C8DA",
+"t 	c #D6E1E9",
+"u 	c #C8D7E2",
+"v 	c #C8D5DD",
+"w 	c #7F8283",
+"x 	c #9A9B9B",
+"y 	c #686A6B",
+"z 	c #94979A",
+"A 	c #606A75",
+"B 	c #4E6482",
+"C 	c #284D86",
+"D 	c #456797",
+"E 	c #4C6E96",
+"F 	c #5D7999",
+"G 	c #E1E1E1",
+"H 	c #F3F3F3",
+"I 	c #F5F5F5",
+"J 	c #E8E8E8",
+"K 	c #B4B4B4",
+"L 	c #5B636B",
+"M 	c #557C9F",
+"N 	c #93ADC8",
+"O 	c #AABCC9",
+"P 	c #75797C",
+"Q 	c #555961",
+"R 	c #1D3E6D",
+"S 	c #163E7A",
+"T 	c #456389",
+"U 	c #5C626A",
+"V 	c #F7F7F7",
+"W 	c #FAFAFA",
+"X 	c #EFEFEF",
+"Y 	c #939393",
+"Z 	c #B7B7B7",
+"` 	c #CFCFCF",
+" .	c #384A5D",
+"..	c #7B90AD",
+"+.	c #8B95A1",
+"@.	c #B8B9B9",
+"#.	c #1D2C42",
+"$.	c #142E61",
+"%.	c #54637D",
+"&.	c #B6B7B7",
+"*.	c #BEBEBE",
+"=.	c #D8D8D8",
+"-.	c #D5D5D5",
+";.	c #F8F8F8",
+">.	c #FBFBFB",
+",.	c #757575",
+"'.	c #AEAEAE",
+").	c #F2F2F2",
+"!.	c #D3D3D3",
+"~.	c #646C73",
+"{.	c #7F90A4",
+"].	c #51555B",
+"^.	c #808080",
+"/.	c #B9B9B9",
+"(.	c #4E5662",
+"_.	c #142A51",
+":.	c #383E49",
+"<.	c #D0D0D0",
+"[.	c #5A5A5A",
+"}.	c #7C7C7C",
+"|.	c #D9D9D9",
+"1.	c #F6F6F6",
+"2.	c #9C9C9C",
+"3.	c #828282",
+"4.	c #D7D7D7",
+"5.	c #5D646D",
+"6.	c #445B7C",
+"7.	c #535659",
+"8.	c #F0F0F0",
+"9.	c #565C64",
+"0.	c #364A66",
+"a.	c #3E434A",
+"b.	c #D4D4D4",
+"c.	c #BFBFBF",
+"d.	c #CACACA",
+"e.	c #F1F1F1",
+"f.	c #DBDBDB",
+"g.	c #D6D6D6",
+"h.	c #E5E5E5",
+"i.	c #4B5258",
+"j.	c #4B698A",
+"k.	c #4C5C70",
+"l.	c #8C8C8C",
+"m.	c #EDEDED",
+"n.	c #242A35",
+"o.	c #1B2A45",
+"p.	c #4E515A",
+"q.	c #ECECEC",
+"r.	c #E9E9E9",
+"s.	c #929292",
+"t.	c #5D6973",
+"u.	c #4C7093",
+"v.	c #2E4E77",
+"w.	c #80868B",
+"x.	c #CECECE",
+"y.	c #8F9090",
+"z.	c #283B50",
+"A.	c #22324B",
+"B.	c #20273A",
+"C.	c #828384",
+"D.	c #B8B8B8",
+"E.	c #808284",
+"F.	c #455360",
+"G.	c #8D9AA5",
+"H.	c #8997AC",
+"I.	c #54759E",
+"J.	c #6D7A85",
+"K.	c #8A8A8A",
+"L.	c #8F8F8F",
+"M.	c #72767C",
+"N.	c #334352",
+"O.	c #788A96",
+"P.	c #5A6D83",
+"Q.	c #43566E",
+"R.	c #344659",
+"S.	c #686A70",
+"T.	c #B0B1B1",
+"U.	c #8E8E8E",
+"V.	c #7A8186",
+"W.	c #728B9C",
+"X.	c #9FB4C2",
+"Y.	c #C1CFDB",
+"Z.	c #A7B9CC",
+"`.	c #CCD2D8",
+" +	c #AEAFAF",
+".+	c #8F9091",
+"++	c #6B757D",
+"@+	c #475564",
+"#+	c #243954",
+"$+	c #405B75",
+"%+	c #8797AA",
+"&+	c #A6B3BF",
+"*+	c #9FB3C0",
+"=+	c #628399",
+"-+	c #98AFC5",
+";+	c #C8D8E2",
+">+	c #CFDDE6",
+",+	c #EDF1F3",
+"'+	c #CED7E0",
+")+	c #DCE1E3",
+"!+	c #C5CDD2",
+"~+	c #A1ACB7",
+"{+	c #7993A6",
+"]+	c #55718E",
+"^+	c #465F7F",
+"/+	c #28466E",
+"(+	c #142446",
+"_+	c #597793",
+":+	c #2C4665",
+"<+	c #CBD8E1",
+"[+	c #9CB1C6",
+"}+	c #D8E2E8",
+"|+	c #E3E8EB",
+"1+	c #C1CED7",
+"2+	c #C3CED7",
+"3+	c #AEBCCA",
+"4+	c #93A9BA",
+"5+	c #5A7896",
+"6+	c #1F3E66",
+"7+	c #44647F",
+"8+	c #15345E",
+"9+	c #DCE6EC",
+"0+	c #F0F4F5",
+"a+	c #F9FAF9",
+"b+	c #F9F9FA",
+"c+	c #FAFBFB",
+"d+	c #FCFDFC",
+"e+	c #F1F5F5",
+"f+	c #C8D5DC",
+"g+	c #A8BDC9",
+"h+	c #92B7C8",
+"i+	c #3A6483",
+"j+	c #F9FCFC",
+"k+	c #F8F9F9",
+"l+	c #FCFCFC",
+"m+	c #FFFFFF",
+"n+	c #FDFEFD",
+"o+	c #F9FAFB",
+"p+	c #DAEBEF",
+"q+	c #97C3D3",
+"r+	c #DAECF2",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                          . . . . . . .                         ",
+"                      . .   + @ # $ %   . .                     ",
+"                    .   & * = - ; > , '     .                   ",
+"                  . ) ! ~ { ] ^ / ( _ : < [   .                 ",
+"                .   } | 1 2 3 4 5 6 7 8 9 0 a   .               ",
+"              .   b c d e f g h i j k l m n o p   .             ",
+"        . . .   q r s t u v w x y z A B C D E F   . . . .       ",
+"      . G H I J K L M N O P G H I J K Q R S T U G H I J K .     ",
+"    .   V W X Y Z `  ...+.@.V W X Y Z ` #.$.%.&.*.=.X Y Z ` .   ",
+"    . -.;.>.,.'.).!.~.{.].-.;.>.^./.).!.(._.:.-.<.[.}./.).!..   ",
+"    . |.1.;.2.3.4.!.5.6.7.|.1.;.}.X 8.!.9.0.a.|.1.b.c.X 8.!..   ",
+"    . d.e.H H f.g.h.i.j.k.d.e.H l.e.m.h.n.o.p.d.e.H H e.m.h..   ",
+"      . q.X X m.r.s.t.u.v.w.q.X x.m.r.y.z.A.B.C.q.X X m.J   .   ",
+"        . . . D.E.F.G.H.I.J.K.K L.D.M.N.O.P.Q.R.S.T.U.    .     ",
+"              . V.W.X.Y.Z.`. +.+++@+#+$+%+&+*+=+. . . . .       ",
+"              .   -+;+>+,+'+)+!+~+{+]+^+/+(+_+:+.               ",
+"                .   <+[+<+}+|+1+2+3+4+5+6+7+8+.                 ",
+"                  .   9+0+a+b+c+d+e+f+g+h+i+  .                 ",
+"                    .   j+k+l+m+n+m+o+p+q+  .                   ",
+"                      .         r+      . .                     ",
+"                        . . . . . . . .                         ",
+"                                                                ",
+"                                                                ",
+"                                                                ",
+"                                                                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-today-mini.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-today-mini.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-today-mini.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-today-mini.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,119 @@
+/* XPM */
+static char * storm_today_mini_xpm[] = {
+"16 16 100 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #F1F1F1",
+"@ 	c #C0C0C0",
+"# 	c #FCFCFC",
+"$ 	c #FEFEFE",
+"% 	c #F7F7F7",
+"& 	c #DCDCDC",
+"* 	c #A8A8A8",
+"= 	c #0E0E0E",
+"- 	c #171717",
+"; 	c #C6C6C6",
+"> 	c #F2F2F2",
+", 	c #FDFDFD",
+"' 	c #FFFFFF",
+") 	c #D6D6D6",
+"! 	c #8D8D8D",
+"~ 	c #131313",
+"{ 	c #C4C1B9",
+"] 	c #D8D7D1",
+"^ 	c #444444",
+"/ 	c #C4C0B8",
+"( 	c #838178",
+"_ 	c #F8F8F8",
+": 	c #E6E6E6",
+"< 	c #CBCBCB",
+"[ 	c #CBC7BF",
+"} 	c #E6E6E2",
+"| 	c #F4F4F2",
+"1 	c #EDECE8",
+"2 	c #C9C5BD",
+"3 	c #86847B",
+"4 	c #E1E1E1",
+"5 	c #B7B7B7",
+"6 	c #9C9C9C",
+"7 	c #555555",
+"8 	c #D2CFC8",
+"9 	c #F5F4F3",
+"0 	c #F4F4F3",
+"a 	c #1E1E1E",
+"b 	c #F2F1EE",
+"c 	c #E9E9E6",
+"d 	c #B4B0A8",
+"e 	c #797979",
+"f 	c #1B1B1B",
+"g 	c #D5D2CC",
+"h 	c #F7F7F4",
+"i 	c #222222",
+"j 	c #767676",
+"k 	c #ABA9A1",
+"l 	c #ABABAB",
+"m 	c #757575",
+"n 	c #D8D6D0",
+"o 	c #F4F4F4",
+"p 	c #F4F3F2",
+"q 	c #EBEAEA",
+"r 	c #EAE9E7",
+"s 	c #A39F97",
+"t 	c #9B9B9B",
+"u 	c #E4E4E4",
+"v 	c #6E6E6E",
+"w 	c #94928B",
+"x 	c #D4D1CC",
+"y 	c #EBEAE9",
+"z 	c #EFEEED",
+"A 	c #F1F1EE",
+"B 	c #D4D2CC",
+"C 	c #A19570",
+"D 	c #EAC87B",
+"E 	c #7F7F7F",
+"F 	c #89867E",
+"G 	c #B1ADA4",
+"H 	c #B4B2AA",
+"I 	c #AAA89F",
+"J 	c #96948C",
+"K 	c #131211",
+"L 	c #746B4C",
+"M 	c #BEAF7D",
+"N 	c #5F5F5F",
+"O 	c #0C0B0A",
+"P 	c #827755",
+"Q 	c #AEA074",
+"R 	c #F6E3A7",
+"S 	c #939393",
+"T 	c #6D6D6D",
+"U 	c #ACACAC",
+"V 	c #B0A278",
+"W 	c #BAA974",
+"X 	c #B6A775",
+"Y 	c #DDCD98",
+"Z 	c #F5E2A4",
+"` 	c #888888",
+" .	c #F5F5F5",
+"..	c #F7E4AC",
+"+.	c #F4DF9D",
+"@.	c #F3DE9A",
+"#.	c #E9E9E9",
+"$.	c #DCBC74",
+"%.	c #181818",
+"&.	c #090909",
+"                  . .           ",
+"              . . + @ . .       ",
+"          . . # $ $ % & * . .   ",
+"    . = - . . ; > , $ ' ' ) ! . ",
+"  ~ { ] ^ / ( . @ _ # : < . .   ",
+". [ } | = 1 2 3 . 4 5 . . 6 7 . ",
+". 8 9 0 a b c d = . . * e . .   ",
+"f g h % i a j k . . . . . l m . ",
+". n | o p q r s . t u . v . .   ",
+". w x y z A B 3 . C D . . * E . ",
+"  . F G H I J K L M D . N . .   ",
+"    . . . O . P Q R D . . S T . ",
+"    . . U V W X Y Z D . ` . .   ",
+"      .  ...+.+.@.Z D . .       ",
+"      . #.D D D D D $.%.        ",
+"      . . &.. . . . . .         "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm-today.xpm storm_0.5.2/usr/share/storm/pixmaps/storm-today.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm-today.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm-today.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,369 @@
+/* XPM */
+static char * storm_today_xpm[] = {
+"32 32 334 2",
+"  	c None",
+". 	c #848484",
+"+ 	c #ADADAD",
+"@ 	c #7A7A7A",
+"# 	c #626262",
+"$ 	c #D2CEC7",
+"% 	c #BCB8B1",
+"& 	c #B6B2AB",
+"* 	c #BEBAB2",
+"= 	c #DAD4CB",
+"- 	c #E8E3D6",
+"; 	c #D8D4CB",
+"> 	c #5D5D5D",
+", 	c #B0ADA8",
+"' 	c #C7C3BE",
+") 	c #E5E2DB",
+"! 	c #EDE9E1",
+"~ 	c #84817C",
+"{ 	c #E3DED5",
+"] 	c #EBE5D9",
+"^ 	c #E1DBCE",
+"/ 	c #C7C2BA",
+"( 	c #585858",
+"_ 	c #B7B4AE",
+": 	c #E6E3DD",
+"< 	c #FBF9F4",
+"[ 	c #FFFCF7",
+"} 	c #D6D3CE",
+"| 	c #393735",
+"1 	c #E2DDD5",
+"2 	c #FFF9EE",
+"3 	c #FAF4E7",
+"4 	c #D8D1C4",
+"5 	c #A4A097",
+"6 	c #F3E2A7",
+"7 	c #E6CC80",
+"8 	c #5C5B59",
+"9 	c #EED17D",
+"0 	c #F3E0A9",
+"a 	c #DDDAD5",
+"b 	c #FDFBF7",
+"c 	c #FFFDFA",
+"d 	c #FFFDF9",
+"e 	c #C2C0BC",
+"f 	c #3E3C3B",
+"g 	c #E7E3DC",
+"h 	c #FFFAEF",
+"i 	c #FFF9ED",
+"j 	c #F8F1E4",
+"k 	c #C0B9AD",
+"l 	c #A9A8A4",
+"m 	c #F1E4BA",
+"n 	c #E9CA65",
+"o 	c #B39C62",
+"p 	c #616161",
+"q 	c #E7C65C",
+"r 	c #CCB05F",
+"s 	c #D7BC73",
+"t 	c #EED389",
+"u 	c #E8D396",
+"v 	c #C2C0BE",
+"w 	c #D4D1CD",
+"x 	c #FFFDFB",
+"y 	c #FFFEFD",
+"z 	c #FFFEFC",
+"A 	c #C5C3C0",
+"B 	c #494846",
+"C 	c #F3EFE8",
+"D 	c #FFFAF0",
+"E 	c #FFF9EA",
+"F 	c #F2E9D6",
+"G 	c #B0A997",
+"H 	c #E5D7AA",
+"I 	c #DDBC51",
+"J 	c #907327",
+"K 	c #AF965A",
+"L 	c #6A6558",
+"M 	c #9E8841",
+"N 	c #766739",
+"O 	c #E3CC84",
+"P 	c #C6B077",
+"Q 	c #B6B3AD",
+"R 	c #EFECE6",
+"S 	c #FFFDF8",
+"T 	c #C9C7C4",
+"U 	c #4B4948",
+"V 	c #F5F1EA",
+"W 	c #F4EBD9",
+"X 	c #ABA083",
+"Y 	c #E2D2A1",
+"Z 	c #D8BD71",
+"` 	c #BA9839",
+" .	c #D1AB48",
+"..	c #8E7738",
+"+.	c #705F31",
+"@.	c #D1BB72",
+"#.	c #BFAE76",
+"$.	c #ADAAA4",
+"%.	c #F4F0EA",
+"&.	c #CBC9C4",
+"*.	c #989694",
+"=.	c #989695",
+"-.	c #ADACA9",
+";.	c #868481",
+">.	c #565452",
+",.	c #FFFBF2",
+"'.	c #FFF8EA",
+").	c #FFF8EC",
+"!.	c #B9B3A8",
+"~.	c #6B675D",
+"{.	c #D8CFB0",
+"].	c #DACEAB",
+"^.	c #D5B55E",
+"/.	c #C09E41",
+"(.	c #D4B55A",
+"_.	c #C7B272",
+":.	c #ACA9A2",
+"<.	c #F1EDE5",
+"[.	c #908E89",
+"}.	c #1E1E1D",
+"|.	c #121111",
+"1.	c #262524",
+"2.	c #434140",
+"3.	c #9F9C97",
+"4.	c #FFFAF1",
+"5.	c #FFF9EC",
+"6.	c #FFF8EE",
+"7.	c #B7B2A9",
+"8.	c #686764",
+"9.	c #C3B997",
+"0.	c #AD9B65",
+"a.	c #D3B45A",
+"b.	c #BEA24E",
+"c.	c #AFAAA3",
+"d.	c #F4F0E6",
+"e.	c #FFFBF4",
+"f.	c #FFFBF3",
+"g.	c #FFF9F0",
+"h.	c #837F78",
+"i.	c #6F6C60",
+"j.	c #F2E7BE",
+"k.	c #F4E8C1",
+"l.	c #D3CAA9",
+"m.	c #585142",
+"n.	c #B8A15F",
+"o.	c #F0DD95",
+"p.	c #F7E59D",
+"q.	c #F6E5A9",
+"r.	c #EFE6C3",
+"s.	c #B8B4AB",
+"t.	c #EAE5DB",
+"u.	c #FFFAF2",
+"v.	c #FFF9EB",
+"w.	c #FFF8E9",
+"x.	c #F2EDE4",
+"y.	c #605C50",
+"z.	c #B8B193",
+"A.	c #E3DBBC",
+"B.	c #DFD4A8",
+"C.	c #D8CEAB",
+"D.	c #484848",
+"E.	c #EDDA90",
+"F.	c #D4C078",
+"G.	c #E1CB79",
+"H.	c #D9C16E",
+"I.	c #B2A473",
+"J.	c #C1BCB3",
+"K.	c #C8C3B8",
+"L.	c #F7F1E5",
+"M.	c #FFFAEE",
+"N.	c #FFF7EA",
+"O.	c #F7F2E9",
+"P.	c #9C9790",
+"Q.	c #807A62",
+"R.	c #ECE3C2",
+"S.	c #908564",
+"T.	c #C8B988",
+"U.	c #D7CA9A",
+"V.	c #67614D",
+"W.	c #D8C173",
+"X.	c #8B7A45",
+"Y.	c #D5BC63",
+"Z.	c #9B8746",
+"`.	c #BCBAB4",
+" +	c #B9B4A8",
+".+	c #D8D1C5",
+"++	c #FDF7EA",
+"@+	c #FFF8EB",
+"#+	c #BBB6AE",
+"$+	c #4A4843",
+"%+	c #D0C59D",
+"&+	c #E4D9AC",
+"*+	c #817757",
+"=+	c #D9C88B",
+"-+	c #B6A56B",
+";+	c #D5BD6D",
+">+	c #766839",
+",+	c #756534",
+"'+	c #C2AA56",
+")+	c #9D8B56",
+"!+	c #9B988D",
+"~+	c #D4CEC1",
+"{+	c #F7F0E1",
+"]+	c #FFF8ED",
+"^+	c #EBE5DC",
+"/+	c #AEAAA2",
+"(+	c #3D3B37",
+"_+	c #746D50",
+":+	c #E6DBBB",
+"<+	c #D8CD9F",
+"[+	c #C5B381",
+"}+	c #E7D595",
+"|+	c #AA9965",
+"1+	c #D9C375",
+"2+	c #726434",
+"3+	c #9B8843",
+"4+	c #A58E44",
+"5+	c #868582",
+"6+	c #7A776F",
+"7+	c #A09B90",
+"8+	c #D2CDBF",
+"9+	c #F3EDE1",
+"0+	c #E2DDD3",
+"a+	c #74716A",
+"b+	c #3C3A36",
+"c+	c #DDD5B5",
+"d+	c #D3C088",
+"e+	c #C2B180",
+"f+	c #A09060",
+"g+	c #B1A063",
+"h+	c #BAA457",
+"i+	c #AF9647",
+"j+	c #927D3D",
+"k+	c #7A7977",
+"l+	c #494844",
+"m+	c #4C4B46",
+"n+	c #43413E",
+"o+	c #343331",
+"p+	c #6F6E6E",
+"q+	c #444444",
+"r+	c #A29778",
+"s+	c #796B3E",
+"t+	c #C0B9B0",
+"u+	c #B8B2AC",
+"v+	c #ACA9A5",
+"w+	c #4B4B4B",
+"x+	c #A19C97",
+"y+	c #96918D",
+"z+	c #7A705B",
+"A+	c #A2988F",
+"B+	c #C2BBB3",
+"C+	c #C1BBB4",
+"D+	c #B4ADA6",
+"E+	c #9B9590",
+"F+	c #3D3D3D",
+"G+	c #524D48",
+"H+	c #4D4844",
+"I+	c #5A534D",
+"J+	c #6F655C",
+"K+	c #796A5B",
+"L+	c #C5B7AB",
+"M+	c #B6A08E",
+"N+	c #E2DEDA",
+"O+	c #D4CFCA",
+"P+	c #C5BFB9",
+"Q+	c #C3BBB5",
+"R+	c #AFAAA4",
+"S+	c #585655",
+"T+	c #67605B",
+"U+	c #6B635D",
+"V+	c #786D63",
+"W+	c #7E7266",
+"X+	c #807163",
+"Y+	c #4C3E31",
+"Z+	c #4F4D4D",
+"`+	c #725440",
+" @	c #81604B",
+".@	c #D4C9BC",
+"+@	c #D2C4B8",
+"@@	c #C6B8AE",
+"#@	c #CFC4BA",
+"$@	c #C7BEB6",
+"%@	c #BBB2A9",
+"&@	c #AB9F93",
+"*@	c #978677",
+"=@	c #766759",
+"-@	c #625447",
+";@	c #31271F",
+">@	c #0C0806",
+",@	c #0F0C09",
+"'@	c #665549",
+")@	c #927864",
+"!@	c #A18973",
+"~@	c #9B8169",
+"{@	c #594131",
+"]@	c #6F5C4C",
+"^@	c #6C5B50",
+"/@	c #5F5045",
+"(@	c #524339",
+"_@	c #433429",
+":@	c #291E16",
+"<@	c #150E0B",
+"[@	c #0D0906",
+"}@	c #1B1613",
+"|@	c #AEA7A0",
+"1@	c #392A20",
+"2@	c #614C3B",
+"3@	c #201610",
+"4@	c #1C130D",
+"5@	c #1A120D",
+"6@	c #18110C",
+"7@	c #140D0A",
+"8@	c #0F0A07",
+"9@	c #0B0805",
+"0@	c #0F0B08",
+"a@	c #181411",
+"b@	c #515050",
+"c@	c #595553",
+"d@	c #463F3B",
+"e@	c #171412",
+"f@	c #110D0A",
+"g@	c #0E0907",
+"h@	c #0C0805",
+"i@	c #0C0906",
+"j@	c #0E0C0A",
+"k@	c #171614",
+"l@	c #292827",
+"m@	c #909090",
+"n@	c #868686",
+"o@	c #7D7D7D",
+"p@	c #797979",
+"q@	c #7B7B7B",
+"r@	c #808080",
+"s@	c #888888",
+"                                                                ",
+"                                                                ",
+"                                          .                     ",
+"                                        . + .                   ",
+"                                        . @ .                   ",
+"              . . . . . . .             . # .                   ",
+"            . $ % & * = - ; .           . > .                   ",
+"          . , ' ) ! ~ { ] ^ / .       . . ( . .                 ",
+"        . _ : < [ } | 1 2 3 4 5 .   . 6 7 8 9 0 . . .           ",
+"      . , a b c d e f g h i j k l . m n o p q r s t u .         ",
+"    . v w < x y z A B C D 2 E F G H I J K L M N O P .           ",
+"    . Q R S x y z T U V D 2 E W X Y Z `  ...+.@.#..             ",
+"    . $.%.&.*.=.-.;.>.,.h i '.).!.~.{.].^./.(._..               ",
+"    . :.<.[.}.|.1.2.3.4.h 5.'.6.7.8.  9.0.a.b.. . . .           ",
+"    . c.d.,.e.e.e.f.4.h i '.'.g.h.i.j.k.l.m.n.o.p.q.r..         ",
+"    . s.t.D 4.u.4.D h 2 v.w.).x.y.z.A.B.C.D.E.F.G.H.I..         ",
+"    . J.K.L.M.M.M.i 5.v.w.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.  .         ",
+"    . `. +.+++5.5.@+'.w.'.2 #+$+%+&+*+=+-+;+>+,+'+)+.           ",
+"      . . !+~+{+w.'.@+]+^+/+(+_+:+<+[+}+|+1+2+3+4+.             ",
+"        . 5+6+7+8+9+0+s.a+b+. .   c+d+e+f+g+h+i+j+.             ",
+"          . . k+l+m+n+o+p+.     . . . . . q+  r+s+.             ",
+"              . . . . . .       .   t+u+v+w+x+y+z+. .           ",
+"                            . . A+B+C+D+E+F+G+H+I+J+K+. .       ",
+"                          . L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+.     ",
+"                          . `+ @.@+@@@#@$@%@&@*@=@-@;@>@,@.     ",
+"                          . '@)@!@~@{@]@^@/@(@_@:@<@>@[@}@.     ",
+"                            . |@1@2@3@4@5@6@7@8@9@[@0@a@b@.     ",
+"                              . c@d@e@f@g@[@h@i@j@k@l@. .       ",
+"                                  . m@n@o@@ p@q@r@s@.           ",
+"                                                                ",
+"                                                                ",
+"                                                                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/storm.xpm storm_0.5.2/usr/share/storm/pixmaps/storm.xpm
--- storm_0.3/usr/share/storm/pixmaps/storm.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/storm.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,1027 @@
+/* XPM */
+static char * storm_xpm[] = {
+"48 48 976 2",
+"  	c None",
+". 	c #ADADAD",
+"+ 	c #7A7A7A",
+"@ 	c #626262",
+"# 	c #CDCDCD",
+"$ 	c #A5A39B",
+"% 	c #AFA78C",
+"& 	c #EAE6E0",
+"* 	c #D2CEC7",
+"= 	c #BCB8B1",
+"- 	c #B6B2AB",
+"; 	c #BEBAB2",
+"> 	c #DAD4CB",
+", 	c #E9E3D6",
+"' 	c #D8D3CB",
+") 	c #D9D8D7",
+"! 	c #5D5D5D",
+"~ 	c #AAA89D",
+"{ 	c #BAB189",
+"] 	c #F0E0A0",
+"^ 	c #EAD57C",
+"/ 	c #968E69",
+"( 	c #E0DCD8",
+"_ 	c #B0ADA8",
+": 	c #C7C3BE",
+"< 	c #E5E2DB",
+"[ 	c #EDE9E1",
+"} 	c #84817C",
+"| 	c #E3DED5",
+"1 	c #EBE5D9",
+"2 	c #E1DBCE",
+"3 	c #C2BDB5",
+"4 	c #CBCAC9",
+"5 	c #FCF5E4",
+"6 	c #F0E8D2",
+"7 	c #585858",
+"8 	c #A2A098",
+"9 	c #C8C09F",
+"0 	c #E1D190",
+"a 	c #F3DF89",
+"b 	c #F2DC7F",
+"c 	c #F2DB7F",
+"d 	c #CCBA6F",
+"e 	c #929292",
+"f 	c #D6D4CE",
+"g 	c #B7B4AE",
+"h 	c #E6E3DD",
+"i 	c #FBF9F4",
+"j 	c #FFFCF7",
+"k 	c #D6D3CE",
+"l 	c #393735",
+"m 	c #E2DDD5",
+"n 	c #FFF9EE",
+"o 	c #FAF4E7",
+"p 	c #D8D1C4",
+"q 	c #A4A097",
+"r 	c #BFBFBE",
+"s 	c #E6E6E6",
+"t 	c #F3E2A7",
+"u 	c #E6CC80",
+"v 	c #5C5B59",
+"w 	c #EDD07D",
+"x 	c #F3E0A9",
+"y 	c #F9F0D7",
+"z 	c #FBF4DF",
+"A 	c #BDBDBB",
+"B 	c #B1AEA3",
+"C 	c #BCB38B",
+"D 	c #EED97F",
+"E 	c #E9D57E",
+"F 	c #F2DC82",
+"G 	c #F0DB83",
+"H 	c #9E946C",
+"I 	c #EAE8E3",
+"J 	c #DDDAD5",
+"K 	c #FDFBF7",
+"L 	c #FFFDFA",
+"M 	c #FFFDF9",
+"N 	c #C2C0BC",
+"O 	c #3E3C3B",
+"P 	c #E7E3DC",
+"Q 	c #FFFAEF",
+"R 	c #FFF9ED",
+"S 	c #F8F1E4",
+"T 	c #C0B9AD",
+"U 	c #92918C",
+"V 	c #D3D2CF",
+"W 	c #F1E4BA",
+"X 	c #E8CA65",
+"Y 	c #B39C62",
+"Z 	c #616161",
+"` 	c #E7C65C",
+" .	c #CCB05F",
+"..	c #D7BC73",
+"+.	c #EED389",
+"@.	c #E8D396",
+"#.	c #BFB795",
+"$.	c #E3D497",
+"%.	c #F3DF8A",
+"&.	c #E8D47E",
+"*.	c #E1D07E",
+"=.	c #A0A078",
+"-.	c #CAC080",
+";.	c #E6D587",
+">.	c #CBBA78",
+",.	c #A8A698",
+"'.	c #BEBBB7",
+").	c #D4D1CD",
+"!.	c #FFFDFB",
+"~.	c #FFFEFD",
+"{.	c #FFFEFC",
+"].	c #C5C3C0",
+"^.	c #494846",
+"/.	c #F3EFE8",
+"(.	c #FFFAF0",
+"_.	c #FFF9EA",
+":.	c #F2E9D6",
+"<.	c #B1A997",
+"[.	c #E5D6AA",
+"}.	c #DDBC51",
+"|.	c #907327",
+"1.	c #AF965A",
+"2.	c #6A6558",
+"3.	c #9E8841",
+"4.	c #766739",
+"5.	c #E3CC84",
+"6.	c #C7B077",
+"7.	c #D6D6D4",
+"8.	c #979797",
+"9.	c #BDB595",
+"0.	c #EFE09F",
+"a.	c #F3DE87",
+"b.	c #EAD67E",
+"c.	c #D8C97C",
+"d.	c #BFB67A",
+"e.	c #DFCE7D",
+"f.	c #AAA779",
+"g.	c #C6BC7F",
+"h.	c #B2AE7F",
+"i.	c #E9D789",
+"j.	c #F3DF8E",
+"k.	c #F1DE8F",
+"l.	c #A69A6D",
+"m.	c #E0DDD9",
+"n.	c #B2AEA8",
+"o.	c #EFECE6",
+"p.	c #FFFDF8",
+"q.	c #C9C7C4",
+"r.	c #4B4948",
+"s.	c #F5F1EA",
+"t.	c #F4EBD9",
+"u.	c #AAA082",
+"v.	c #E2D2A1",
+"w.	c #D8BD71",
+"x.	c #BA9839",
+"y.	c #D1AB48",
+"z.	c #8E7738",
+"A.	c #705F31",
+"B.	c #D1BB72",
+"C.	c #BEAE76",
+"D.	c #C7C5BD",
+"E.	c #B2B2B2",
+"F.	c #A8A288",
+"G.	c #F2E197",
+"H.	c #D1C47B",
+"I.	c #B1AC78",
+"J.	c #949776",
+"K.	c #BAB37C",
+"L.	c #BAB47E",
+"M.	c #F3DE89",
+"N.	c #F3DF8C",
+"O.	c #F3E08F",
+"P.	c #F4E191",
+"Q.	c #F4E295",
+"R.	c #E4D38D",
+"S.	c #88857A",
+"T.	c #D6D3CD",
+"U.	c #ADAAA4",
+"V.	c #F4F0EA",
+"W.	c #CBC9C4",
+"X.	c #989694",
+"Y.	c #989695",
+"Z.	c #ADACA9",
+"`.	c #868481",
+" +	c #565452",
+".+	c #FFFBF2",
+"++	c #FFF8EA",
+"@+	c #FEF7EB",
+"#+	c #B7B2A7",
+"$+	c #6B675D",
+"%+	c #C0B798",
+"&+	c #DACDAB",
+"*+	c #D4B45E",
+"=+	c #BF9D41",
+"-+	c #D3B45A",
+";+	c #C6B173",
+">+	c #CFCECE",
+",+	c #9B9A98",
+"'+	c #A69E7E",
+")+	c #D4C67C",
+"!+	c #D4C67E",
+"~+	c #B9B37D",
+"{+	c #E9D889",
+"]+	c #F3E08E",
+"^+	c #DFD08D",
+"/+	c #B3B086",
+"(+	c #B5B289",
+"_+	c #F5E39A",
+":+	c #F5E39C",
+"<+	c #B1A67B",
+"[+	c #84837F",
+"}+	c #D5D2CB",
+"|+	c #ACA9A2",
+"1+	c #F1EDE5",
+"2+	c #908E89",
+"3+	c #1E1E1D",
+"4+	c #121111",
+"5+	c #262524",
+"6+	c #434140",
+"7+	c #9F9C97",
+"8+	c #FFFAF1",
+"9+	c #FDF7EA",
+"0+	c #FBF4E6",
+"a+	c #F9F2E8",
+"b+	c #B2ADA4",
+"c+	c #656462",
+"d+	c #A0A099",
+"e+	c #B6AB86",
+"f+	c #A89863",
+"g+	c #CDAF58",
+"h+	c #B99E4B",
+"i+	c #BFB9AA",
+"j+	c #DCDCDC",
+"k+	c #86847D",
+"l+	c #DFCF93",
+"m+	c #EDD985",
+"n+	c #D5C883",
+"o+	c #DECF86",
+"p+	c #EAD98D",
+"q+	c #EADA90",
+"r+	c #AFAD86",
+"s+	c #E3D695",
+"t+	c #EADB98",
+"u+	c #F5E39E",
+"v+	c #F5E4A1",
+"w+	c #E5D69A",
+"x+	c #78735F",
+"y+	c #D2CFC9",
+"z+	c #AFAAA3",
+"A+	c #F4F0E6",
+"B+	c #FFFBF4",
+"C+	c #FFFBF3",
+"D+	c #F5EFE4",
+"E+	c #BAB5AB",
+"F+	c #A09C93",
+"G+	c #9C9893",
+"H+	c #4F4D48",
+"I+	c #434139",
+"J+	c #928B73",
+"K+	c #938C75",
+"L+	c #7F7A66",
+"M+	c #353128",
+"N+	c #6F613A",
+"O+	c #918559",
+"P+	c #958A5F",
+"Q+	c #958A66",
+"R+	c #918B76",
+"S+	c #96958F",
+"T+	c #9A9A9A",
+"U+	c #A5A5A5",
+"V+	c #C1C1C0",
+"W+	c #868376",
+"X+	c #E3D395",
+"Y+	c #D5C989",
+"Z+	c #AFAD84",
+"`+	c #999C81",
+" @	c #CFC68F",
+".@	c #DED195",
+"+@	c #F5E39D",
+"@@	c #F0E09E",
+"#@	c #D4CB99",
+"$@	c #DFD59F",
+"%@	c #F6E7A9",
+"&@	c #CEC292",
+"*@	c #CDCAC4",
+"=@	c #B8B4AB",
+"-@	c #EAE5DB",
+";@	c #FFFAF2",
+">@	c #FEF8ED",
+",@	c #BBB7AC",
+"'@	c #83817D",
+")@	c #97917C",
+"!@	c #948D73",
+"~@	c #938C72",
+"{@	c #938B70",
+"]@	c #928A6F",
+"^@	c #928A6E",
+"/@	c #91896D",
+"(@	c #90886B",
+"_@	c #90876A",
+":@	c #908668",
+"<@	c #8F8667",
+"[@	c #8F8666",
+"}@	c #8E8564",
+"|@	c #8D8462",
+"1@	c #8C825F",
+"2@	c #706333",
+"3@	c #6C6757",
+"4@	c #D7D7D7",
+"5@	c #A8A8A6",
+"6@	c #B0A786",
+"7@	c #F4E298",
+"8@	c #CEC48A",
+"9@	c #DCD091",
+"0@	c #D8CD92",
+"a@	c #E2D69B",
+"b@	c #C8C397",
+"c@	c #DDD3A0",
+"d@	c #F3E5A9",
+"e@	c #F6E8AC",
+"f@	c #F4E6AD",
+"g@	c #BBBAB7",
+"h@	c #C1BCB3",
+"i@	c #C8C3B8",
+"j@	c #F7F1E5",
+"k@	c #FFFAEE",
+"l@	c #FFF9EC",
+"m@	c #FEF8EA",
+"n@	c #A5A097",
+"o@	c #C8B676",
+"p@	c #C7B473",
+"q@	c #C6B371",
+"r@	c #C5B16E",
+"s@	c #C3B06B",
+"t@	c #C2AE68",
+"u@	c #C1AD65",
+"v@	c #C0AB62",
+"w@	c #BFAA5F",
+"x@	c #BEA85D",
+"y@	c #BDA759",
+"z@	c #BCA557",
+"A@	c #BBA354",
+"B@	c #BAA352",
+"C@	c #B8A14E",
+"D@	c #B7A04C",
+"E@	c #B69D4A",
+"F@	c #A48E43",
+"G@	c #6D623B",
+"H@	c #554F3C",
+"I@	c #A3A2A1",
+"J@	c #C6C6C6",
+"K@	c #7B7B77",
+"L@	c #E6DAA7",
+"M@	c #F5E39B",
+"N@	c #D7CD98",
+"O@	c #EFE0A1",
+"P@	c #F5E6A7",
+"Q@	c #F5E6A9",
+"R@	c #F4E5AA",
+"S@	c #E4D6A1",
+"T@	c #B8AE88",
+"U@	c #918B73",
+"V@	c #BFBEBE",
+"W@	c #A9A6A1",
+"X@	c #B9B4A8",
+"Y@	c #D8D1C5",
+"Z@	c #FFF8EB",
+"`@	c #FEF7E8",
+" #	c #A4A096",
+".#	c #71663E",
+"+#	c #8A7A43",
+"@#	c #897941",
+"##	c #877840",
+"$#	c #87773F",
+"%#	c #84753E",
+"&#	c #84743D",
+"*#	c #82723B",
+"=#	c #81723A",
+"-#	c #7F7039",
+";#	c #7F6F37",
+">#	c #7E6D36",
+",#	c #7C6C35",
+"'#	c #7A6A33",
+")#	c #7A6932",
+"!#	c #786831",
+"~#	c #776630",
+"{#	c #6D5D2B",
+"]#	c #746940",
+"^#	c #D7CA91",
+"/#	c #C7B770",
+"(#	c #BBAE73",
+"_#	c #9B9681",
+":#	c #8F8F8C",
+"<#	c #928E78",
+"[#	c #F3E4A6",
+"}#	c #F0E09D",
+"|#	c #C8C194",
+"1#	c #B3B291",
+"2#	c #EFE1A5",
+"3#	c #F4E5A8",
+"4#	c #E4D7A0",
+"5#	c #958D6E",
+"6#	c #8A8677",
+"7#	c #8B8A88",
+"8#	c #A9A9A9",
+"9#	c #8C8A84",
+"0#	c #9C988D",
+"a#	c #D4CEC1",
+"b#	c #F7F0E1",
+"c#	c #FFF8E9",
+"d#	c #FEF7EC",
+"e#	c #D4CFC6",
+"f#	c #32312F",
+"g#	c #C5C5C5",
+"h#	c #ABABAB",
+"i#	c #A7A7A7",
+"j#	c #9C9C9C",
+"k#	c #989898",
+"l#	c #858585",
+"m#	c #8E8E8E",
+"n#	c #6B6963",
+"o#	c #787770",
+"p#	c #82807A",
+"q#	c #807F7A",
+"r#	c #6D6D6B",
+"s#	c #81807A",
+"t#	c #747269",
+"u#	c #7E7B6E",
+"v#	c #A39B7C",
+"w#	c #ECDC96",
+"x#	c #E8D47D",
+"y#	c #E9D476",
+"z#	c #EBD677",
+"A#	c #EAD676",
+"B#	c #DAC871",
+"C#	c #9D9462",
+"D#	c #D3CAA1",
+"E#	c #F5E5A4",
+"F#	c #F4E5A5",
+"G#	c #EEDFA4",
+"H#	c #C8BC8D",
+"I#	c #8B856E",
+"J#	c #646361",
+"K#	c #90908F",
+"L#	c #6A6865",
+"M#	c #7B776F",
+"N#	c #A09B90",
+"O#	c #D2CDBF",
+"P#	c #F3EDE1",
+"Q#	c #E2DDD3",
+"R#	c #B7B3AA",
+"S#	c #6D6A64",
+"T#	c #393937",
+"U#	c #F6F6F6",
+"V#	c #E4E4E4",
+"W#	c #E1E1E1",
+"X#	c #D6D6D6",
+"Y#	c #CACACA",
+"Z#	c #B3B3B3",
+"`#	c #CFCFCF",
+" $	c #8A8883",
+".$	c #D8D2BB",
+"+$	c #C8BC88",
+"@$	c #C1B072",
+"#$	c #BBAA70",
+"$$	c #CABA83",
+"%$	c #CDC094",
+"&$	c #DCCB82",
+"*$	c #E4D283",
+"=$	c #E4CE72",
+"-$	c #E6D074",
+";$	c #E8D275",
+">$	c #EAD577",
+",$	c #EBD777",
+"'$	c #E7D475",
+")$	c #AFA059",
+"!$	c #B9AE7F",
+"~$	c #EDDEA1",
+"{$	c #DED097",
+"]$	c #7B7456",
+"^$	c #555249",
+"/$	c #656565",
+"($	c #9D9D9D",
+"_$	c #676767",
+":$	c #474645",
+"<$	c #494844",
+"[$	c #4C4A47",
+"}$	c #43413D",
+"|$	c #343331",
+"1$	c #313131",
+"2$	c #555555",
+"3$	c #E7E7E7",
+"4$	c #E5E5E5",
+"5$	c #C7C7C7",
+"6$	c #838383",
+"7$	c #C2C2C2",
+"8$	c #E0E0E0",
+"9$	c #DFDFDF",
+"0$	c #CCCCCC",
+"a$	c #73726E",
+"b$	c #A4A191",
+"c$	c #D9C991",
+"d$	c #E0CE8B",
+"e$	c #DBC573",
+"f$	c #DBC56D",
+"g$	c #DDC86F",
+"h$	c #DFCA70",
+"i$	c #E2CC71",
+"j$	c #E4CE73",
+"k$	c #E7D074",
+"l$	c #E8D375",
+"m$	c #EAD677",
+"n$	c #E9D677",
+"o$	c #DFCC71",
+"p$	c #B7A96D",
+"q$	c #9B9063",
+"r$	c #665E37",
+"s$	c #B1A35A",
+"t$	c #C2B15D",
+"u$	c #C0AF61",
+"v$	c #A39661",
+"w$	c #8A8A8A",
+"x$	c #6E6E6E",
+"y$	c #5C5C5C",
+"z$	c #636363",
+"A$	c #6D6D6D",
+"B$	c #848484",
+"C$	c #DADADA",
+"D$	c #C8C8C8",
+"E$	c #BCBCBC",
+"F$	c #A3A3A3",
+"G$	c #C3C3C3",
+"H$	c #B9B9B9",
+"I$	c #6C6C6B",
+"J$	c #6B6A60",
+"K$	c #A7A083",
+"L$	c #E8DCAE",
+"M$	c #E4D494",
+"N$	c #DCC76E",
+"O$	c #DEC970",
+"P$	c #E1CB71",
+"Q$	c #E3CD72",
+"R$	c #E5CF73",
+"S$	c #E7D174",
+"T$	c #E9D576",
+"U$	c #E4D173",
+"V$	c #7C7343",
+"W$	c #847843",
+"X$	c #BBAB5F",
+"Y$	c #D2C16B",
+"Z$	c #D4C266",
+"`$	c #D9C368",
+" %	c #E7C95C",
+".%	c #B7B7B7",
+"+%	c #B4B4B4",
+"@%	c #B8B8B8",
+"#%	c #B0B0B0",
+"$%	c #F3F4F5",
+"%%	c #C8CED3",
+"&%	c #7A8B9D",
+"*%	c #76889A",
+"=%	c #B2BAC2",
+"-%	c #ABAEB2",
+";%	c #E3E3E3",
+">%	c #DEDEDE",
+",%	c #D4D4D4",
+"'%	c #B1B1B1",
+")%	c #727061",
+"!%	c #ABA163",
+"~%	c #D6C46A",
+"{%	c #DDCF90",
+"]%	c #E6D9A9",
+"^%	c #E5D698",
+"/%	c #E5D48C",
+"(%	c #E3CE78",
+"_%	c #E7D275",
+":%	c #E9D475",
+"<%	c #E5D274",
+"[%	c #E2CF72",
+"}%	c #DECB6F",
+"|%	c #D7C366",
+"1%	c #DCC773",
+"2%	c #EBD586",
+"3%	c #EECB52",
+"4%	c #CBCBCB",
+"5%	c #D2D2D2",
+"6%	c #CFD5DB",
+"7%	c #ACB6C0",
+"8%	c #E0E2E4",
+"9%	c #CBCDCF",
+"0%	c #B5BCC3",
+"a%	c #748392",
+"b%	c #D3D3D3",
+"c%	c #999687",
+"d%	c #CEC693",
+"e%	c #E7D77C",
+"f%	c #DCCB6C",
+"g%	c #D3C165",
+"h%	c #CEBD69",
+"i%	c #D2C37E",
+"j%	c #DBCE92",
+"k%	c #EBDFAF",
+"l%	c #E9D995",
+"m%	c #E6D27E",
+"n%	c #DAC469",
+"o%	c #D2BB5B",
+"p%	c #D8C57B",
+"q%	c #E3CD81",
+"r%	c #E9C755",
+"s%	c #EFD163",
+"t%	c #747474",
+"u%	c #CECECE",
+"v%	c #DDDDDD",
+"w%	c #BBC4CD",
+"x%	c #BAC2CA",
+"y%	c #A0A0A0",
+"z%	c #9A9C9E",
+"A%	c #6F8092",
+"B%	c #E7E8E8",
+"C%	c #E8E8E8",
+"D%	c #7B7B7B",
+"E%	c #5F5E54",
+"F%	c #EDE3AB",
+"G%	c #EEE5BB",
+"H%	c #E7DC9E",
+"I%	c #E2D280",
+"J%	c #D7C464",
+"K%	c #D2BE5F",
+"L%	c #CBB85A",
+"M%	c #C7B356",
+"N%	c #D5C784",
+"O%	c #DED39C",
+"P%	c #D8C880",
+"Q%	c #C7B25A",
+"R%	c #C3AD55",
+"S%	c #BAA54D",
+"T%	c #C5AE52",
+"U%	c #D0BE7A",
+"V%	c #DDC675",
+"W%	c #E2C14F",
+"X%	c #EACD66",
+"Y%	c #E8C859",
+"Z%	c #767676",
+"`%	c #C0C0C0",
+" &	c #B6BBC0",
+".&	c #8C99A6",
+"+&	c #BFC1C3",
+"@&	c #B3B5B7",
+"#&	c #858E97",
+"$&	c #7A8897",
+"%&	c #C9C9C9",
+"&&	c #606060",
+"*&	c #EFE2A6",
+"=&	c #E4D798",
+"-&	c #E6DCAA",
+";&	c #EAE2B9",
+">&	c #E4D99D",
+",&	c #DFCD74",
+"'&	c #DBC760",
+")&	c #D7C25C",
+"!&	c #CEB956",
+"~&	c #C7B251",
+"{&	c #BFAA4C",
+"]&	c #BBA649",
+"^&	c #BCA747",
+"/&	c #C1AB48",
+"(&	c #CDBC7D",
+"_&	c #D6C37B",
+":&	c #DDBD4C",
+"<&	c #E3C65E",
+"[&	c #E6CD71",
+"}&	c #9B8E5B",
+"|&	c #878787",
+"1&	c #BFBFBF",
+"2&	c #EFEFEF",
+"3&	c #F3F3F3",
+"4&	c #DEE1E3",
+"5&	c #9FABB7",
+"6&	c #8291A2",
+"7&	c #A4AAB1",
+"8&	c #DADBDC",
+"9&	c #D9D9D9",
+"0&	c #D5D5D5",
+"a&	c #6B6B6B",
+"b&	c #D6CB97",
+"c&	c #CEC5A1",
+"d&	c #C4BB8F",
+"e&	c #BDB385",
+"f&	c #D8CE9F",
+"g&	c #E2DAB7",
+"h&	c #E9DEAD",
+"i&	c #E5D485",
+"j&	c #E0CA64",
+"k&	c #DAC358",
+"l&	c #D4BD53",
+"m&	c #CFB950",
+"n&	c #CEB857",
+"o&	c #CFBF7D",
+"p&	c #D5BD6A",
+"q&	c #DBBD58",
+"r&	c #E3C867",
+"s&	c #E3CA6C",
+"t&	c #857A51",
+"u&	c #757575",
+"v&	c #AAAAAA",
+"w&	c #BABABA",
+"x&	c #C1C1C1",
+"y&	c #B5B5B5",
+"z&	c #AEAEAE",
+"A&	c #C4C2B6",
+"B&	c #D1CFC6",
+"C&	c #D1D0CA",
+"D&	c #A2A093",
+"E&	c #B0A783",
+"F&	c #D9CF9B",
+"G&	c #DACE9C",
+"H&	c #EDE5C0",
+"I&	c #EAE2B3",
+"J&	c #E7D78E",
+"K&	c #E1C957",
+"L&	c #DFC85D",
+"M&	c #D9C983",
+"N&	c #DBC268",
+"O&	c #DEC15B",
+"P&	c #E0C35D",
+"Q&	c #E2C96E",
+"R&	c #938654",
+"S&	c #E9E9E9",
+"T&	c #EBEBEB",
+"U&	c #EDEDED",
+"V&	c #F2F2F2",
+"W&	c #F7F7F7",
+"X&	c #F9F9F9",
+"Y&	c #FAFAFA",
+"Z&	c #FDFDFD",
+"`&	c #FFFFFF",
+" *	c #FEFEFE",
+".*	c #FBFBFB",
+"+*	c #F8F8F8",
+"@*	c #9F9E99",
+"#*	c #958F76",
+"$*	c #C3BB99",
+"%*	c #D5CCA3",
+"&*	c #E0D39D",
+"**	c #EADEAD",
+"=*	c #F0E8C3",
+"-*	c #EDE7CE",
+";*	c #E7DAAA",
+">*	c #E4C456",
+",*	c #E3C559",
+"'*	c #E6CB68",
+")*	c #E4CB6F",
+"!*	c #867B53",
+"~*	c #717171",
+"{*	c #FCFCFC",
+"]*	c #F1F1F1",
+"^*	c #EEEEEE",
+"/*	c #ECECEC",
+"(*	c #EAEAEA",
+"_*	c #5C5B58",
+":*	c #686348",
+"<*	c #ADA586",
+"[*	c #CDC6A8",
+"}*	c #E3D9B0",
+"|*	c #EDE3BA",
+"1*	c #ECE0AD",
+"2*	c #EADFB1",
+"3*	c #EDD176",
+"4*	c #E9C757",
+"5*	c #E8CC67",
+"6*	c #E4CA69",
+"7*	c #897C49",
+"8*	c #545454",
+"9*	c #8B8B8B",
+"0*	c #F0F0F0",
+"a*	c #D8D8D8",
+"b*	c #444444",
+"c*	c #414141",
+"d*	c #1D1D1D",
+"e*	c #3E3B2D",
+"f*	c #948B62",
+"g*	c #DAD2AD",
+"h*	c #F3EBC7",
+"i*	c #F8F0CA",
+"j*	c #F2D981",
+"k*	c #ECCF66",
+"l*	c #E0C768",
+"m*	c #5A4F26",
+"n*	c #232323",
+"o*	c #3F3F3F",
+"p*	c #959595",
+"q*	c #BDBDBD",
+"r*	c #F5F5F5",
+"s*	c #797979",
+"t*	c #5A5A5A",
+"u*	c #3E3E3E",
+"v*	c #242424",
+"w*	c #2F2F2F",
+"x*	c #36352F",
+"y*	c #5C5640",
+"z*	c #C1B88E",
+"A*	c #F1E7C0",
+"B*	c #F9F2D2",
+"C*	c #F1D982",
+"D*	c #E3CA69",
+"E*	c #736532",
+"F*	c #272727",
+"G*	c #575757",
+"H*	c #BEBEBE",
+"I*	c #999999",
+"J*	c #E2E2E2",
+"K*	c #4F4F4F",
+"L*	c #1F1F1F",
+"M*	c #7E7E7E",
+"N*	c #8C8C8C",
+"O*	c #535353",
+"P*	c #0F0F0F",
+"Q*	c #131313",
+"R*	c #222222",
+"S*	c #282826",
+"T*	c #6C664E",
+"U*	c #C9C095",
+"V*	c #E1C769",
+"W*	c #584E25",
+"X*	c #0D0E0E",
+"Y*	c #737373",
+"Z*	c #C4C4C4",
+"`*	c #898989",
+" =	c #9F9F9F",
+".=	c #BBBBBB",
+"+=	c #363636",
+"@=	c #666666",
+"#=	c #0D0D0D",
+"$=	c #000000",
+"%=	c #282A2C",
+"&=	c #7D7E78",
+"*=	c #504A30",
+"==	c #0F090A",
+"-=	c #261014",
+";=	c #585757",
+">=	c #A8A8A8",
+",=	c #909090",
+"'=	c #686868",
+")=	c #777777",
+"!=	c #DBDBDB",
+"~=	c #8D8D8D",
+"{=	c #808080",
+"]=	c #484848",
+"^=	c #4D4D4D",
+"/=	c #383838",
+"(=	c #161616",
+"_=	c #2D2F30",
+":=	c #A6AAAC",
+"<=	c #2C2F30",
+"[=	c #29191C",
+"}=	c #442229",
+"|=	c #5D5658",
+"1=	c #AFAFAF",
+"2=	c #646464",
+"3=	c #6F6F6F",
+"4=	c #D1D1D1",
+"5=	c #5B5B5B",
+"6=	c #494949",
+"7=	c #4E4E4E",
+"8=	c #9C9D9D",
+"9=	c #252626",
+"0=	c #331F23",
+"a=	c #4D2931",
+"b=	c #4B363A",
+"c=	c #B6B6B6",
+"d=	c #9B9B9B",
+"e=	c #7C7C7C",
+"f=	c #939393",
+"g=	c #787878",
+"h=	c #949494",
+"i=	c #4A4A4A",
+"j=	c #0E0E0E",
+"k=	c #392227",
+"l=	c #4E2A32",
+"m=	c #35151C",
+"n=	c #796C6F",
+"o=	c #A2A2A2",
+"p=	c #7F7F7F",
+"q=	c #6C6C6C",
+"r=	c #583D43",
+"s=	c #45252C",
+"t=	c #39161E",
+"u=	c #2A1317",
+"v=	c #9E9E9E",
+"w=	c #727272",
+"x=	c #A4A4A4",
+"y=	c #6B5157",
+"z=	c #47222B",
+"A=	c #33141B",
+"B=	c #2C1117",
+"C=	c #6B6466",
+"D=	c #F4F4F4",
+"E=	c #8F8F8F",
+"F=	c #6A6A6A",
+"G=	c #433B3D",
+"H=	c #5D4649",
+"I=	c #806A6D",
+"J=	c #8B787B",
+"K=	c #9A8C8E",
+"L=	c #999092",
+"M=	c #9C9A9A",
+"N=	c #6F5056",
+"O=	c #33141A",
+"P=	c #38161E",
+"Q=	c #36161C",
+"R=	c #301B20",
+"S=	c #8E8A8A",
+"T=	c #6E6C6C",
+"U=	c #331D20",
+"V=	c #4D141C",
+"W=	c #621C26",
+"X=	c #712630",
+"Y=	c #7F343F",
+"Z=	c #803A44",
+"`=	c #7C434C",
+" -	c #684E53",
+".-	c #421A23",
+"+-	c #31141A",
+"@-	c #2A1016",
+"#-	c #4C3F41",
+"$-	c #919191",
+"%-	c #D0D0D0",
+"&-	c #8F8E8E",
+"*-	c #716F70",
+"=-	c #362D2F",
+"--	c #3A181D",
+";-	c #4D121A",
+">-	c #5F1620",
+",-	c #6C1925",
+"'-	c #791C29",
+")-	c #711E2B",
+"!-	c #7C5E65",
+"~-	c #38161D",
+"{-	c #34151B",
+"]-	c #32141A",
+"^-	c #250E13",
+"/-	c #260F14",
+"(-	c #5E5E5E",
+"_-	c #757474",
+":-	c #555252",
+"<-	c #524C4E",
+"[-	c #72303A",
+"}-	c #6E1925",
+"|-	c #742A36",
+"1-	c #66444C",
+"2-	c #2D1217",
+"3-	c #210C11",
+"4-	c #210D11",
+"5-	c #36282B",
+"6-	c #707070",
+"7-	c #985D68",
+"8-	c #832E3B",
+"9-	c #712B37",
+"0-	c #673C45",
+"a-	c #3F1921",
+"b-	c #250F13",
+"c-	c #2F1D21",
+"d-	c #524B4D",
+"e-	c #7D7D7D",
+"f-	c #9D656E",
+"g-	c #66232E",
+"h-	c #472229",
+"i-	c #32151B",
+"j-	c #473D3E",
+"k-	c #6B6869",
+"l-	c #828282",
+"m-	c #AD9C9F",
+"n-	c #7C5B61",
+"o-	c #6B595C",
+"p-	c #8A8788",
+"q-	c #888888",
+"                                                                                                ",
+"                                                                                                ",
+"                                        .                                                       ",
+"                                        +                                                       ",
+"                                        @                                       # $ %           ",
+"          & * = - ; > , ' )             !                                     ~ { ] ^ /         ",
+"        ( _ : < [ } | 1 2 3 4       5 6 7                                 8 9 0 a b c d e       ",
+"      f g h i j k l m n o p q r s   t u v w x y z                   A B C ] b b D E F G H       ",
+"    I _ J K L M N O P Q R S T U V W X Y Z `  ...+.@.              8 #.$.%.b &.b *.=.-.;.>.,.    ",
+"    '.).i !.~.{.].^./.(.n _.:.<.[.}.|.1.2.3.4.5.6.7.          8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.    ",
+"  m.n.o.p.!.~.{.q.r.s.(.n _.t.u.v.w.x.y.z.A.B.C.D.            E.F.G.b H.I.J.K.L.M.N.O.P.Q.R.S.  ",
+"  T.U.V.W.X.Y.Z.`. +.+Q R ++@+#+$+%+&+*+=+-+;+>+                ,+'+%.)+!+~+M.{+]+^+/+(+_+:+<+[+",
+"  }+|+1+2+3+4+5+6+7+8+Q 9+0+a+b+c+d+e+f+g+h+i+                  j+k+l+m+n+o+N.p+q+r+s+t+u+v+w+x+",
+"  y+z+A+.+B+B+B+C+8+Q D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+T+T+T+U+V+j+W+X+N.Y+Z+`+ @.@+@@@#@$@%@&@",
+"  *@=@-@(.8+;@8+(.Q >@,@'@)@!@~@{@{@]@^@/@(@(@_@:@<@[@}@}@|@1@2@3@4@5@6@7@8@9@0@:+u+a@b@c@d@e@f@",
+"  g@h@i@j@k@k@k@R l@m@n@]@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@I@J@K@L@:+M@+@N@O@P@Q@R@S@T@U@",
+"  V@W@X@Y@9+l@l@Z@++`@ #.#+#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#}#|#1#2#3#4#5#6#7#T+",
+"    8#9#0#a#b#c#++Z@d#e#f#g#h#i#j#k#l#8.m#n#o#p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#F#G#H#I#J#        ",
+"      K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#`##  $.$+$@$#$$$%$&$*$=$-$;$>$,$'$)$!$~${$]$^$/$          ",
+"        ($_$:$<$[$}$|$1$2$U#3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$i#      ",
+"          i#w$x$Z y$z$A$B$C$D$J@E$F$8#G$7$H$8.I$J$K$L$M$N$O$P$Q$R$S$T$m$U$V$W$X$Y$Z$`$ %j#      ",
+"                .%+%@%#%Z#$%%%&%*%=%-%V#;%>%,%'%)%!%~%{%]%^%/%(%Q$R$_%:%T$<%[%}%|%1%2%3%+       ",
+"                      4%5%6%7%8%9%0%a%s 4$;%b%c%d%e%f%g%h%i%j%k%l%m%S$l$>$A#n%o%p%q%r%s%t%      ",
+"                      u%v%w%x%v%y%z%A%B%C%>%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%      ",
+"                      `%4@ &.&+&@&#&$&%&D$G$F$&&*&=&-&;&>&,&'&)&!&~&{&]&^&/&(&_&:&<&[&}&|&      ",
+"                      1&2&3&4&5&6&7&8&8$>%9&0&a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&        ",
+"          C%;%W#9$X#0$j#b%%&J@v&w&x&b%9&y&z&E.v&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&D%          ",
+"    J@u%v%S&T&U&V&W&X&Y&Z&`&`&`& *Z&Z&.*Y&Y&Y&X&X&+*3&@*#*$*%*&***=*-*;*>*,*'*)*!*~*            ",
+"    V#`&`&`&`&`&`&`&`& *Z&{*.*Y&X&U#U#3&]*2&^*/*(*4$i#_*:*<*[*}*|*1*2*3*4*5*6*7*8*9*            ",
+"    G$2&{*`&`& * *{*.*X&+*U#U#3&V&0*2&/*T&S&3$;%a*B$b*c*d*e*f*g*H&h*i*j*k*l*m*n*o*              ",
+"    p*8#q*T&Z&.*Y&+*U#r*3&]*]*^*U&T&(*3$4$;%>%0$s*c*t*u*v*w*x*y*z*A*B*C*D*E*F*G*                ",
+"    w&x&H*I*($x&8$r*3&0*U&/*T&S&3$V#J*8$>%a*g#K*L*M*N*O*P*Q*R*F*S*T*U*V*W*X*Y*                  ",
+"      Z*X&9$q*`*N* =%&V&0*3$4$;%W#9$j+C$b%.=@ +=_$8. =@=#=$=$=$=$=%=&=*===-=;=                  ",
+"      >=.*W&]*C%Y#,='=)=($,%;%W#!=X#,%Y#>=+=c*@=~=i#'%{=]=2$^=/=(=_=:=<=[=}=|=                  ",
+"      F$2&X&3&2&4$,%1=|&2=3=e H*C$>%4= =5=6=a&M*j#E..%~=7=($`%J*7$6=8=9=0=a=b=                  ",
+"      7$>%+*V&^*/*s j+@%y%c=d=6$e=~=f=K*g=I*h=e F$.=`%v&8*f=H$v%i=j=M*K*k=l=m=n=                ",
+"        b%W&0*U&T&S&V#4=E$3$C$Y#E.e e=B$y%w&J@+%y%H$7$E.@ ~=#%o=p=p*q=B$r=s=t=u=                ",
+"        7$r*3&T&S&3$V#%&W#3$>%4@b%%&H*w&x&4%4%`#`%v=z&#%'=w=y%I*x=w&D$# y=z=A=B=C=              ",
+"        H$D=3&S&3$4$9&X#(*9$!=a*X#5%u%%&4%4%D$g#D$.=p*E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=            ",
+"        F$.*V&s 4$v%# (*W#!=a*X#,%4=`#u%4%5$Z*x&q*.=E$e=T=U=V=W=X=Y=Z=`= -.-+-@-O=#-$-          ",
+"        ($T&V&S&;%%-v%s C$4@X#,%5%`#0$%&D$G$w&'%. j#&-*-=---;->-,-'-'-)-!-~-{-]-^-/-(-          ",
+"        0&u%3&(*,%,%S&C$4@,%b%4=`#5$G$E$. o=E=Y*_-:-<-        [-}-'-'-|-1-m=2-3-4-5-!           ",
+"          Z#r*s Y#3$8$4@0&5%# G$1&#%($~=5=! x$6-                7-8-'-9-0-a-b-c-d-2=            ",
+"          T+/*0&C$9$%-0$H*Z#F$M*e-! K*g=                          f-'-g-h-i-j-k-N*              ",
+"          E.4=%&4@J@.=y&l-&&q=x$D%                                  m-n-o-p-                    ",
+"          H$h#i#q-B$y$F=m#                                                                      ",
+"            E= =|&                                                                              ",
+"                                                                                                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/talk.xpm storm_0.5.2/usr/share/storm/pixmaps/talk.xpm
--- storm_0.3/usr/share/storm/pixmaps/talk.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/talk.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,89 @@
+/* XPM */
+static char * talk_xpm[] = {
+"16 16 70 1",
+" 	c None",
+".	c #7D7977",
+"+	c #DCDAD3",
+"@	c #DAD5A2",
+"#	c #A7A491",
+"$	c #D5D4CB",
+"%	c #EAE8DD",
+"&	c #DCD7A8",
+"*	c #B9AD4F",
+"=	c #C0B241",
+"-	c #9B8E66",
+";	c #E6E4DB",
+">	c #E8E7DB",
+",	c #DBD6B5",
+"'	c #C7BD71",
+")	c #C0AE3E",
+"!	c #C0A929",
+"~	c #8F7938",
+"{	c #DCD7AB",
+"]	c #C7BE81",
+"^	c #AF993E",
+"/	c #A88B18",
+"(	c #B18F11",
+"_	c #9E7909",
+":	c #B9AE5C",
+"<	c #A07F2B",
+"[	c #C5B9A3",
+"}	c #C4B490",
+"|	c #B19362",
+"1	c #BBAB4C",
+"2	c #AF996A",
+"3	c #D6CCBC",
+"4	c #DBD1BD",
+"5	c #9F855C",
+"6	c #424242",
+"7	c #BBA627",
+"8	c #D6CBB7",
+"9	c #E2DDD1",
+"0	c #333333",
+"a	c #DBD1B9",
+"b	c #B49514",
+"c	c #DAD1C0",
+"d	c #EAE7E1",
+"e	c #DED6C6",
+"f	c #C0AA81",
+"g	c #AC9228",
+"h	c #DFD7C8",
+"i	c #B7B3AC",
+"j	c #7D7C7C",
+"k	c #C8C6BF",
+"l	c #E0D9CB",
+"m	c #9B9A98",
+"n	c #D3D0C8",
+"o	c #DFD9C7",
+"p	c #E6E3DC",
+"q	c #C4C2C0",
+"r	c #D6D3CF",
+"s	c #E0D9C8",
+"t	c #EAE6DE",
+"u	c #E7E1D6",
+"v	c #D5C9B2",
+"w	c #DAD7D3",
+"x	c #E1DBC9",
+"y	c #EBE6DE",
+"z	c #E7E2D7",
+"A	c #CEC0A3",
+"B	c #DED6C2",
+"C	c #E0DACE",
+"D	c #CFC8B7",
+"E	c #87745E",
+"     ....       ",
+"    .+@#$.      ",
+"   ..%&*=-.     ",
+"  .;>,')!~.     ",
+"  .{]^/(_.      ",
+"  .:<[}|.       ",
+"  .12345.     66",
+"  .7890a.   66  ",
+"  .bcdef. 66    ",
+"  .ghij.        ",
+"  .klm     66666",
+"  .nopq.        ",
+"  .rstuv. 66    ",
+"  .wxyzA.   66  ",
+"   .BCDE.     66",
+"    ....        "};
diff -urN storm_0.3/usr/share/storm/pixmaps/tick-tiny.xpm storm_0.5.2/usr/share/storm/pixmaps/tick-tiny.xpm
--- storm_0.3/usr/share/storm/pixmaps/tick-tiny.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/tick-tiny.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,35 @@
+/* XPM */
+static char * tick_tiny_xpm[] = {
+"10 10 22 1",
+" 	c None",
+".	c #000000",
+"+	c #367B25",
+"@	c #377E26",
+"#	c #399F20",
+"$	c #39732A",
+"%	c #3EAE23",
+"&	c #3C6033",
+"*	c #3DAB22",
+"=	c #3C7E2C",
+"-	c #297117",
+";	c #3CA721",
+">	c #44673B",
+",	c #899286",
+"'	c #3BA321",
+")	c #465E3F",
+"!	c #3DA922",
+"~	c #436D39",
+"{	c #939991",
+"]	c #40B224",
+"^	c #41603A",
+"/	c #939A92",
+"          ",
+"        . ",
+"       .+.",
+"      .@#.",
+" ..  .$%&.",
+".*=..-;>. ",
+",.')=!~.  ",
+" {.]%^.   ",
+"  /.&.    ",
+"    .     "};
diff -urN storm_0.3/usr/share/storm/pixmaps/tick.xpm storm_0.5.2/usr/share/storm/pixmaps/tick.xpm
--- storm_0.3/usr/share/storm/pixmaps/tick.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/tick.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,24 @@
+/* XPM */
+static char * tick_xpm[] = {
+"16 16 5 1",
+" 	c None",
+".	c #000000",
+"+	c #3FAF23",
+"@	c #48C928",
+"#	c #379B1F",
+"                ",
+"                ",
+"              . ",
+"             .+.",
+"            .@+.",
+"           .@+#.",
+" .        .@+#. ",
+".+.      .++#.  ",
+".+@.    .+++.   ",
+".#+@.  .@++.    ",
+" .#+@..@++.     ",
+"  .#++@+#.      ",
+"   .+++#.       ",
+"    .+#.        ",
+"     ..         ",
+"                "};
diff -urN storm_0.3/usr/share/storm/pixmaps/trash-next.xpm storm_0.5.2/usr/share/storm/pixmaps/trash-next.xpm
--- storm_0.3/usr/share/storm/pixmaps/trash-next.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/trash-next.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,125 @@
+/* XPM */
+static char * trash_next_xpm[] = {
+"16 16 106 2",
+"  	c None",
+". 	c #0E0E0E",
+"+ 	c #424242",
+"@ 	c #4A4A4A",
+"# 	c #3E3E3E",
+"$ 	c #2C2C2C",
+"% 	c #000000",
+"& 	c #858371",
+"* 	c #F0EDD8",
+"= 	c #F2F1E9",
+"- 	c #EEEDE4",
+"; 	c #C7C6BA",
+"> 	c #535246",
+", 	c #101010",
+"' 	c #C2C0A5",
+") 	c #C1BFA5",
+"! 	c #7A7967",
+"~ 	c #484740",
+"{ 	c #272725",
+"] 	c #36352E",
+"^ 	c #878572",
+"/ 	c #A09E88",
+"( 	c #A3A18A",
+"_ 	c #A5A38C",
+": 	c #E2E0CF",
+"< 	c #B9B7A2",
+"[ 	c #64625B",
+"} 	c #393836",
+"| 	c #3C3C33",
+"1 	c #616053",
+"2 	c #9A9883",
+"3 	c #B7B59B",
+"4 	c #B3B298",
+"5 	c #A4A28B",
+"6 	c #3FAF23",
+"7 	c #48C928",
+"8 	c #EAE9DA",
+"9 	c #E5E2D2",
+"0 	c #D5D2BE",
+"a 	c #C3C1A7",
+"b 	c #AFAD94",
+"c 	c #C0BEA4",
+"d 	c #C6C4AC",
+"e 	c #B8B69C",
+"f 	c #797766",
+"g 	c #F8F7EE",
+"h 	c #F8F7EC",
+"i 	c #F5F3E6",
+"j 	c #ECEAD9",
+"k 	c #DEDDCB",
+"l 	c #9D9B89",
+"m 	c #636254",
+"n 	c #58574A",
+"o 	c #E9E6C9",
+"p 	c #ACAA92",
+"q 	c #777665",
+"r 	c #7F7D6B",
+"s 	c #434238",
+"t 	c #292822",
+"u 	c #848270",
+"v 	c #656456",
+"w 	c #393931",
+"x 	c #171615",
+"y 	c #1A1A16",
+"z 	c #1F1E19",
+"A 	c #0F0F0D",
+"B 	c #0B0B09",
+"C 	c #10100D",
+"D 	c #26261F",
+"E 	c #34342B",
+"F 	c #24241F",
+"G 	c #404035",
+"H 	c #565647",
+"I 	c #39392F",
+"J 	c #4A4A3D",
+"K 	c #3F3F34",
+"L 	c #262620",
+"M 	c #379B1F",
+"N 	c #88887B",
+"O 	c #58574F",
+"P 	c #60604F",
+"Q 	c #5C5C4C",
+"R 	c #505042",
+"S 	c #292922",
+"T 	c #B5B5A0",
+"U 	c #ACAB99",
+"V 	c #5D5D52",
+"W 	c #747460",
+"X 	c #4D4D40",
+"Y 	c #5D5D4D",
+"Z 	c #8D8D80",
+"` 	c #4F4F41",
+" .	c #282822",
+"..	c #9E9E8B",
+"+.	c #272721",
+"@.	c #3F3F39",
+"#.	c #4C4C42",
+"$.	c #7C7B6D",
+"%.	c #8C8C74",
+"&.	c #949482",
+"*.	c #4D4C43",
+"=.	c #666654",
+"-.	c #393932",
+";.	c #060606",
+">.	c #0F0F0F",
+",.	c #050505",
+"          . + @ # $ %           ",
+"      % % & * = - ; > % %       ",
+"    , ' ) ! ~ { ] ^ / ( _ %     ",
+"  % % % : < [ } | 1 2 3 4 5 %   ",
+"% 6 6 7 % 8 9 0 a b c d e f %   ",
+"% 6 6 6 7 % g h i j k l m n %   ",
+"% 6 6 6 6 7 % o p q r q s t %   ",
+"% 6 6 6 6 6 7 % u v w x y z     ",
+"% 6 6 6 6 6 6 % A B C D E F     ",
+"% 6 6 6 6 6 6 % G H I J K L     ",
+"% 6 6 6 6 M % N O P J Q R S     ",
+"% 6 6 6 M % T U V W X Y R S     ",
+"% 6 6 M % Z T U V W X Y `  .    ",
+"  % % % ..Z T U V W X Y X +.    ",
+"      @.#.$.%.&.*.=.G -.%       ",
+"          ;.% >.,.% %           "};
diff -urN storm_0.3/usr/share/storm/pixmaps/trash.xpm storm_0.5.2/usr/share/storm/pixmaps/trash.xpm
--- storm_0.3/usr/share/storm/pixmaps/trash.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/trash.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,163 @@
+/* XPM */
+static char * trash_xpm[] = {
+"16 16 144 2",
+"  	c None",
+". 	c #0E0E0E",
+"+ 	c #424242",
+"@ 	c #4A4A4A",
+"# 	c #3E3E3E",
+"$ 	c #2C2C2C",
+"% 	c #000000",
+"& 	c #858371",
+"* 	c #F0EDD8",
+"= 	c #F2F1E9",
+"- 	c #EEEDE4",
+"; 	c #C7C6BA",
+"> 	c #535246",
+", 	c #101010",
+"' 	c #C2C0A5",
+") 	c #C1BFA5",
+"! 	c #7A7967",
+"~ 	c #484740",
+"{ 	c #272725",
+"] 	c #36352E",
+"^ 	c #878572",
+"/ 	c #A09E88",
+"( 	c #A3A18A",
+"_ 	c #A5A38C",
+": 	c #2B2B2B",
+"< 	c #D3D1BC",
+"[ 	c #DCDAC4",
+"} 	c #E2E0CF",
+"| 	c #B9B7A2",
+"1 	c #64625B",
+"2 	c #393836",
+"3 	c #3C3C33",
+"4 	c #616053",
+"5 	c #9A9883",
+"6 	c #B7B59B",
+"7 	c #B3B298",
+"8 	c #A4A28B",
+"9 	c #E7E3D0",
+"0 	c #F1EDE2",
+"a 	c #F2F1E4",
+"b 	c #EAE9DA",
+"c 	c #E5E2D2",
+"d 	c #D5D2BE",
+"e 	c #C3C1A7",
+"f 	c #AFAD94",
+"g 	c #C0BEA4",
+"h 	c #C6C4AC",
+"i 	c #B8B69C",
+"j 	c #797766",
+"k 	c #8A8975",
+"l 	c #EFEBCB",
+"m 	c #FAF6E3",
+"n 	c #F9F5ED",
+"o 	c #F8F7EE",
+"p 	c #F8F7EC",
+"q 	c #F5F3E6",
+"r 	c #ECEAD9",
+"s 	c #DEDDCB",
+"t 	c #9D9B89",
+"u 	c #636254",
+"v 	c #58574A",
+"w 	c #525146",
+"x 	c #737165",
+"y 	c #9F9D91",
+"z 	c #E4E1C8",
+"A 	c #E9E5CF",
+"B 	c #E9E6C9",
+"C 	c #ACAA92",
+"D 	c #777665",
+"E 	c #7F7D6B",
+"F 	c #434238",
+"G 	c #292822",
+"H 	c #1F1F1B",
+"I 	c #343430",
+"J 	c #4B4944",
+"K 	c #686762",
+"L 	c #706F66",
+"M 	c #6B6B64",
+"N 	c #848270",
+"O 	c #656456",
+"P 	c #393931",
+"Q 	c #171615",
+"R 	c #1A1A16",
+"S 	c #1F1E19",
+"T 	c #2A2A23",
+"U 	c #666654",
+"V 	c #4D4D40",
+"W 	c #363630",
+"X 	c #2A2A26",
+"Y 	c #2F2F2A",
+"Z 	c #0F0F0D",
+"` 	c #0B0B09",
+" .	c #10100D",
+"..	c #26261F",
+"+.	c #34342B",
+"@.	c #24241F",
+"#.	c #2B2B24",
+"$.	c #696856",
+"%.	c #7E7D6E",
+"&.	c #717067",
+"*.	c #7E7E68",
+"=.	c #747363",
+"-.	c #404035",
+";.	c #565647",
+">.	c #39392F",
+",.	c #4A4A3D",
+"'.	c #3F3F34",
+").	c #262620",
+"!.	c #2C2C25",
+"~.	c #6C6C5A",
+"{.	c #9C9B8A",
+"].	c #8B8B7F",
+"^.	c #9E9D8B",
+"/.	c #88887B",
+"(.	c #58574F",
+"_.	c #60604F",
+":.	c #5C5C4C",
+"<.	c #505042",
+"[.	c #292922",
+"}.	c #6D6C5A",
+"|.	c #9E9E8B",
+"1.	c #8F8E81",
+"2.	c #B5B5A0",
+"3.	c #ACAB99",
+"4.	c #5D5D52",
+"5.	c #747460",
+"6.	c #5D5D4D",
+"7.	c #6C6C59",
+"8.	c #999986",
+"9.	c #8D8D80",
+"0.	c #4F4F41",
+"a.	c #282822",
+"b.	c #272721",
+"c.	c #656553",
+"d.	c #3F3F39",
+"e.	c #4C4C42",
+"f.	c #7C7B6D",
+"g.	c #8C8C74",
+"h.	c #949482",
+"i.	c #4D4C43",
+"j.	c #393932",
+"k.	c #060606",
+"l.	c #0F0F0F",
+"m.	c #050505",
+"          . + @ # $ %           ",
+"      % % & * = - ; > % %       ",
+"    , ' ) ! ~ { ] ^ / ( _ %     ",
+"  : < [ } | 1 2 3 4 5 6 7 8 %   ",
+"  % 9 0 a b c d e f g h i j %   ",
+"  % k l m n o p q r s t u v %   ",
+"  % w x y z A B C D E D F G %   ",
+"    H I J K L M N O P Q R S     ",
+"    T U V W X Y Z `  ...+.@.    ",
+"    #.$.%.&.*.=.-.;.>.,.'.).    ",
+"    !.~.{.].^./.(._.,.:.<.[.    ",
+"    !.}.|.1.2.3.4.5.V 6.<.[.    ",
+"    #.7.8.9.2.3.4.5.V 6.0.a.    ",
+"    b.c.|.9.2.3.4.5.V 6.V b.    ",
+"      d.e.f.g.h.i.U -.j.%       ",
+"          k.% l.m.% %           "};
diff -urN storm_0.3/usr/share/storm/pixmaps/welcome.xpm storm_0.5.2/usr/share/storm/pixmaps/welcome.xpm
--- storm_0.3/usr/share/storm/pixmaps/welcome.xpm	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/pixmaps/welcome.xpm	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,216 @@
+/* XPM */
+static char * welcome_xpm[] = {
+"200 142 71 1",
+" 	c None",
+".	c #020202",
+"+	c #1A1C0E",
+"@	c #41822C",
+"#	c #FEFEFE",
+"$	c #659158",
+"%	c #213B12",
+"&	c #285990",
+"*	c #A8ACA7",
+"=	c #4180A4",
+"-	c #29590E",
+";	c #79AD6F",
+">	c #56A0BD",
+",	c #89B57E",
+"'	c #2E6713",
+")	c #20497C",
+"!	c #255583",
+"~	c #8EB388",
+"{	c #62B6CB",
+"]	c #559946",
+"^	c #A1C491",
+"/	c #4E752F",
+"(	c #2E576B",
+"_	c #565656",
+":	c #E2E3E4",
+"<	c #3E7824",
+"[	c #18406C",
+"}	c #4E8031",
+"|	c #8E8E8D",
+"1	c #326998",
+"2	c #90BF87",
+"3	c #AAC8A4",
+"4	c #1D4250",
+"5	c #3A6B7B",
+"6	c #55903F",
+"7	c #6EABCE",
+"8	c #6E9497",
+"9	c #3B641C",
+"0	c #68A059",
+"a	c #7CB7D2",
+"b	c #4988AA",
+"c	c #70C3D2",
+"d	c #7DC3D6",
+"e	c #C9CFD2",
+"f	c #1D3116",
+"g	c #92CACF",
+"h	c #3A3F31",
+"i	c #4E747B",
+"j	c #3B5A1A",
+"k	c #717272",
+"l	c #7AA761",
+"m	c #3A78A1",
+"n	c #6FB4D2",
+"o	c #3C6F1E",
+"p	c #5DAAC5",
+"q	c #24490B",
+"r	c #230F06",
+"s	c #88CED5",
+"t	c #151207",
+"u	c #A4D2D7",
+"v	c #5195B5",
+"w	c #87C3DA",
+"x	c #639A4A",
+"y	c #649146",
+"z	c #1B2A13",
+"A	c #528838",
+"B	c #458F37",
+"C	c #8AB372",
+"D	c #6EBCCF",
+"E	c #6CAC60",
+"F	c #2F7219",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........_|*****h........................................................................................................................................................................................",
+".......k#######_..h_|*..................................................................................................................................................................................",
+"......h####___#_..*###..................................................................................................................................................................................",
+"......_###_.......*###..................................................................................................................................................................................",
+"......_####*.....*######_..k:###:*...._###_k##_.###*k:##*.h:##:.........................................................................................................................................",
+"......h#####|h...*######_.k#######|..._###|###_.###e#####_e####*........................................................................................................................................",
+".......h######_+..*###..._###:.e###_.._#######_.###############*........................................................................................................................................",
+"........ke#####|..*###...|###h.+e##e.._####k__+.###:k_###:k|###*........................................................................................................................................",
+".........+_:###:h.*###...*###...*###.._###|.....###*..###*._###*........................................................................................................................................",
+"...........he###_.*###...*###...*###.._###_.....###*..###*._###*........................................................................................................................................",
+"............*###_.*###...k###k.h:##|.._###_.....###*..###*._###*........................................................................................................................................",
+"......_e____###*..*###e_+h:###_####h.._###_.....###*..###*._###*........................................................................................................................................",
+"......_#######:h.._#####_.h:######h..._###_.....###*..###*._###*........................................................................................................................................",
+"......h******.......****h...k***k.....h***h.....***k..***k.h***k........................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"......................................+__...__+......h*k.........................................h*k.**.+k**h.........k*h..............**.......................................**.................*k...",
+"......................................_##+.+##_......_#*........................................._#*.**.k#e*f.........*#_..............##.......................................**.................#*...",
+"......................................_##k.k##_.+__+._#*.hh..+__+....__+.+_..+__..+_h.h_.h_+_+..._#*.__te#|_..h__.....*#_..h_h....__+..##.+_......+__..t_hhh.._hh_..h__..h_+__..__.h____+.+__+..h_.#*...",
+"......................................_#*ete:#__**##h_#*_:f.|#e#:....*#k.||.*#*e:h_#*.*#.*#:#_..._#*.##h:#e*.:#e#|....*#_hee*:e.k:e*#k.##+e|.....*#*e:h_#:#*h#:3##.|*3#:.*#:##|.##.k*e##_|#e#:.|#e:#*...",
+"......................................_#k#_#*#_+..e#__#*ee..:#k:#h...k#3h:hh#:.f#|_#*.*#.*#*_+..._#*.##.*#_.h#:k#:....*#_|#|.|#h:#h.::.##k#+....h#:.h#|_#:_f|#|re#.+.+##.*#*_#*.##...*#:t:#k:#h:#fh#*...",
+"......................................_#+##**#__e###__#e#e+.##***h....##e3._#*..#*_#*.*#.*#_....._#*.##.*#_._#:***....*#_*#_._#_##..*#.##e#_...._#*..#*_#*..*#_.*#.|:###.*#_.#*.##.._#e+.##***f##..#*...",
+"......................................_#.e#_*#_*#_*#__#**#|.e#|..h...._##_.+##._#k_#*h:#.*#_....._#*.##.*#_.t##h.h....*#_k#*.*#te#_.#e.##_#:....t##._#k_#*..k#|h:#.##.##.*#_.#*.##.|##+..e#|..fe#hk#*...",
+"......................................_#.k*r*#__##e#*_#*h:#++|###h.....#|..._e##|t+e#*e#.*#_....._#*.##.*#_..he##:....*#_+k:#:k.h|##ef.##.e#k...._e##|t_#*..+e#k*#.*#::#_*#_.#*.##.*####_t|###h_:#k#*...",
+"......................................................................h#+....................................................................................|_k::......................................",
+".....................................................................+#:....................................................................................h3##:h......................................",
+"........................................................................................................................................................................................................",
+"........................................................................................................................................................................................................",
+"########################################################################################################################################################################################################",
+"########################################################################################################################################################################################################",
+"1&111111111m11mm=m&!![[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[))))))))))!!!!!!!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1111111111m111mmm===bme8>pppn7{{n{n{nnnnDnDnDnDnn{nn{n{{n{n{nn{np7pnppp7{7{7pppppp>>v>>>>>>>",
+"1&111115m1m1mmm===m&!&!!))[[[[[[[[[[[[f[z[[[[[[[[[[[[[[)))))[)))))!!))!!!&&!&&&&&&&&&&&&&&&&&&&&&&&&&&&&1&1&&1111mmmmmmmmmm=bv>8vm*wv7{nnnnnn{n{{{{nDnDnDDDDnDnn{7{7{nn{nn7{nnnnnn{7npn{7ppppp>7>7>7>7>7",
+"1(1&11111m1mm=bbmmm111&!!!)))[[[[[[[[[[[[[[[[[[[[[[[[)))))))))))!!)!!!))!)!!!&&&&&&&&&&&&&&&&&&&&&&&1&&&&&&&1&11111mmm=====vv7777b*3vnnnnnnnp7pnnnnnnnnDaannDnnpnnn{nnnn{nnnnnn7n77n{77p77p7777>77>7>7>>",
+"15115115mmmm=bb=1111&&!!)!))))))[))[))[[[[[[[[[[[))))))))))!)!!)!!!&)!))))))!!!!&&&&&&!&&&&&&&&&&&1&111111111m1mmmm===bvvv>7777a78e*>aDDaaDDnnn7{nnDDnnDDdDaDDnn{7nn{n{n7{7nDnnnn{n7np7{7p77pp7>7v787>77",
+"11&111111m==mmmm111F&&!!!!)!))))[[)))))))))[)))))))))!)))!!)!))!)!!&!))))!!))!)!)!!&!&&&!)!&&111&&&1111111m1mmmmvvvv>>pp77a7aa7778ge7daDadannnnDaDdanDaaDanannnnnnnnnnnnnnnnnnnn7n7n7n7777p7p7>777>77>7>",
+"&515151mmm==m111!1&&&!!!)!)))4[[[[[[[[)))[)[[)))!)!)&!)&))))!)!))&!!!)!)!)!!)!!&&&)!&&&1&&&&&&&11111111mmm==bvvv>pppp7nnDaanaaaaaa*:7aadadadadaaaaadadaaaaaannnnnnnnnnnnnnnnannnnn7n7{7p{7ppp7>77>7>>7>7",
+"1&111515mbbbmm11&1&&!!!!!!!)))[[[)[[[[[[[)[[)))))))!)!!)!))!)!)!!)!&)&)&)!&&&&&&11&&&&1&1&111mmmmmmmmmmmbbvv>>>p7777nnnnaaananaaaaa:awdDaawadaddwwdaadadadDdaannnnnnnannna7n7n7n77{77777p7777>777>77>7>>",
+"11111mmm=bvvbm1'&&1&'!!!)))!4)))[[[[[[[[)[))[)))&))!)!!!)))))!))!)&&&&&&&&&&111111111&11===bbvvvvvvb=bvbvvv>>77nnnnnnna7aaanaaaaaaw:7awddawwwawawwwwawadaaadaanannaanaannn7a7a7n777777p7p7p7777>77>787>7",
+"511115m=bv8vvm11&&&&&!!!!!)))[[[[[[[[[)))[))[)))))))&)))))))))&&)&&&&&111mm11&1&&11&1&1mvvvvvv>>>>>v>vv7>77>77anannnn7nana7aaaaaaa7:*wawawawawwwwawwwawawawaadanaannannn77a7n7n7n7n777777777>777777>7>7>",
+"1&515m=b8v>7>bmm1(&1!!!!)))!)[)[[[[[[[)[[[[)))))!)))!))!)))))))&!!&&111mm=mm1&&&&&11&111mvvmb7787>7>7>7>7>777aaaaannaaaaaaaa7aaaaa*:w*wdawwwawawwwwawwwawaddaaaaaaannn7n777777777777n777777777>787v77>77",
+"11115mb8>87~7p=111!!!)!!))))))[[[[[[)))[[))))))&)!)&)))))))))&)&))&&11m=bbv=1&&&&&&&&&11&mm&mv7777>77>777777aaaaaaaa7aaaaaaaaaaaaa7eewawwawwwawawwwwwawwadaaadaananaa7a7a7aaaa7777777n7777777777777>7>7>",
+"515m1=v87awggwvm11&!!!!4))!))))[[[[[[)))[)))&!)))))))&)))))!)&))&)&&1mmbvvvbb11&&&&1&1&1&1&11b77777777777aaaaaaaaaaaaa7aaaaaaawwwaw*:7gwawwwwwwwwawawwawawadaaaana7aa7a7n7a777a777777777777777>77v787>77",
+"111m=b>7a*wg^gavmmm1!!!))))()))h[)[[[[[)[))))&&)&)&))))&)))))&))&)&&11mmv7v7=1&&1&&&1&&&11111m7777777777aaaaawwwaaaaaaaaaaawaaaawaw*:*ww*wwwwwwwwwwwwwwawadaaaanaaa7nnna77aa7a77n7n777a77777777777>77>7>",
+"55mm=87wwguugwaap>v=1!!!)!))()))))[[[)))))!&!)&&&)&)&)&))))))))))))&&1bm1mmbm&&&&&&&1&1&1&1m1m8aa7aaaaaaaaawawawaaaaaaaaaaaaawawawwae:awwwwwwwwwwwwwwawwaaadaDaan7an7n7nana7a7a7a7a7a7777777777>7>7>7>77",
+"5m=bbv*wg3uu3gw^w^a>m&!!!!)!)_))h))))))))))&&&)&&&&&&)&)&)&)&&&))))&&&im&1&111&&&&&&_&&1111mmmb7a777a7aawawawwawwaaaaaaaaaaa*wawawwaeeagwwwwwwwwwwawwwadwdaaaaannannn7ann7a7aa77777n77a7a777777777>77>7>",
+"5m=b87wg3ueggww3ggw7v=F1&(&!&!!)))))))!)!)&!!&&&&&&&)))&&))&)&&&&&)))&1m&1&&1m1&&1&&&11&111mmvmaaaaaaaaaawwwwwwawaawaaawawwaaaww*ww3:wwwgwwwwwwwwwwdwwwaaddananannnnnnnaaaaaaaannn7aanan77777>7>7>7>>7>7",
+"==bv7awuuuuu3wgg3gap>vbmm51&1&&&&!!))!)!!&!!&&&1&1&1&&&&&&&&&&&&&1&&&&1i&111mbb1&&&&_&11111mbvb7anaadawawwwwwwwawawawwawwaawwawwawwue*wwwwwwwwwwwwdwwawawaadanannannnnnaDaananan77nn7nnnnnn777777777>7>p",
+"=b8>ageuu3gwwwgugww7vbvb=m5111&&&!&!!!!!!!&&&&11&111111&1&1&11ib=1&&1&111&11mb|m1&1&111&111=v>7aaaDdwawwwwwg*wawawaawawawwawawawwawu:wwwwwwwwwwwwwwdwwwawaadaaaDnnnnnnnaDdaadnanannnannnnn7n777p7777p7p7",
+"bv87wgueuuegegw3u3gD>bbbbb=m1111&&&!!&&!!&&&1&1111111mmm==mm1m7*v=mmm111&111=vv=1111&111m1mmb7aaadaadawwwgwwwwwawawawaaawawwawwwwwwwe:wwwwwwwwwwdwdwwawwadaaaDannnDnDDDaDaDdaaDannnDnnnnannnn{777p7p7p7p",
+"b87a*uuuuuuuuu3uwuwa>vvbvvb=51111(1&&&&&&&1&111111mi=im=8b=1mm77v8vbm11111mb777=11111111m1m1b7adadwwaaawggggwwwwwwwawwwwwwawwawawwaw8:ggwswswsswwwwdwwawaddaaannDnDanaDdDadadadaDanannnnaDnnnnn{77p7pp7p",
+"vv7aueuueuuuuuuuuggDppp777vb=mm111&1111111111111mm1mm=mmbvv=m=7aaaa7>v=mmm=b7aa7vbmm11111mmmb7dndaddddwwggwwwwwwawdwadwwwddawwwwwwwwu:awdwsdwdwssswdwwwawaaanaaananDdDDDaDDdndDdDnDnaDnaDnnnnnn7{n{77{7n",
+"v>7aguuuuuueuuggugwcDDdanp>bbmmmmm111111&1111mm1mm=m==bm=bbvb=v7wawa7pvv>>v7a7aa7v=bb=1m1mmmbndDddadwwdwwgswwwdwddddddddwddddwwdddwae:wddwsdswdwwsdsddwdddadaaDaDdnDDaDDcDaDdaDadnDDaDDDDDDn{n{n7{7{p{p7",
+"v>7duuu:uuuuuuuguggddddaaap>vb=mmmmm5111111m1mmmmm====bbbvbvvbvpawdwwDppn7ppaawwn>ppvmm1mmmm=v>DDddwsswdwwwwsdwdwdwdwadddddadddddwwdeuassdwdddsssdswdwdwaddaDaaDaDdaDDdDDdDdDdddDdDdDDndDDnDD{n{{p{p{7p{",
+">pnwuuuuuuuuuuususgswdwdwanp>>vBb==mmmmmmmmmmmm==mmm==bbbvv>>>p7naaddadddnancdddadnppbbmmmmm=v>DdDddwwwdwwsdwdddwddddddwdddddddwdddde:wdddwsdwddwwsdsdwddddadaaaDDDDDDDDDcDdDdDdDdDdDDDDnDn{nD{7n7p7{{p7",
+"p7dsuuuu:uuuuuuuugggggwwwda{{>p>>bB====mmmm=mmm=====bbbbbv>>v>pp>{DdddnDdDddddwdddn{p{p>b=bvp{Dd{nDdddsssdddsddsdwdddddddddddddddsds:gwdswdddsdsdddsdsdsdwddddDddaDaDDDDDaDDdDdDdDDDDDDDDD{n{{{{{{7{ppp{",
+"nDdsuuuuuuuuuusssssswsdwwddaDpp>>>vv=Bvv==m======bbbbvvvvvpp>ppppnDdDddaddddcdcdcdDD{{{{>vv>{cDd{DDdddddddddddddddddddddddDddDdddddd:gwcddddsdsdsdsddsdwwdddddDaDaDDDDDcDDDDDDDDDDdDDDDDDD{D{n{7{{p{n{pn",
+"ndssuuuuuuuuuuuusswsssgdsd2dD{pppp>>v>>>>>vvbbbb=vbbv>>>>p>ppp{{{DDDdDcdDDdcdccccccDc{{{cc{DdddcDDDcdddddddcdcdddcdcddddccdDDdDcDccn:gdwcsdcdsdsdsddsdsssddddddcDDDnDcDDDcDDDDDDDDDDDDnD{n{n{{{{{p{ppp{p",
+"ddssuuuuuuuuususssgswssdddddDDp{pppppp{pp>>vvvvbbvvv>>>>>pp{{p{nDDcDddcddcdccccDDDcDcD{ccccdddddcDDcccdcccDcccccdDcccccdDDccDcDccccneuwddcccdscscdscsccccdcdDDDdDDDDDDDDDD{DDDDDDDDD{{{{{{{{{{{p{{{{{p{{",
+"dsssususuusuuususssssdssdsddDD{{{{{p{{{p{pp>>>>v>>>>pp>pp{pp{{{{{DDcDccccccccccccDDddcccddddddccdccDcccccccDcDccDcDDDcDDDcDDcDDDDccD:uDcddcccsdcsccccscscccDcDDDDnDD{Dc{DDDD{D{D{{{D{{{{{{{{{{{{{p{pp{pp",
+"sssuuuususuusussssssssdsddddDD{{{p{pp{{{{{pp>>>>>>>ppppppp{{p{{{{DDcDccccccccDDDcDddddcsccddcddcdccDDDDDDdcDcDDcDDDDDDcDDDDDDDDDcccD:wdccccccccccccscccccccDcDDDD{{D{D{c{{D{{D{{DD{{D{{{{{{{{{p{{p{{p{{{",
+"ssususuususuuussswsddssddsdsd2DD{{{{{{{{{{{p{ppp{>{pppppppp{{{{{{c{DccDcccDccccccccdcscccscsdccccDDDDDccccccDDD{{D{DDDD{D{D{DD{c{cDw:ndcccccdcccccccccccccDcDcc{D{D{c{c{cc{D{{D{D{{{{{{{{{{{{{{p{{{p{{p{",
+"sssusuusuusususussssdddscscsccDDD{{{{ccc{{{pppp{p{{p{{p{{p{pp{{{{{c{DcccDcDccccccccccccsccscccccccD{c{DDDDDDc{c{c{c{c{c{c{c{c{Dc{cDw:{dccccccccccccccccccc{c{c{DD{D{{c{{{{c{{{{{{{c{{{{{{{{p{{{{pp{pp{p{",
+"sussususuusuussssdsdsscssdsdddccc{{c{c{c{{{{p{p{>{{{{{p{p{p{{{{{{c{{cDDDcDccccccccccscccscscsccccD{cDDcDDDDc{c{c{{{{{c{{{c{{{{D{c{wa:pcccccccccccc{ccc{cc{ccc{c{c{{{{{{{{{{{{{{{{{{{{{{{{{p{p{{p{pp{pppp",
+"ssususuussussusssssdscsdsdsddcccc{D{ccccc{{{{p{p{{{{{p{pp{{{p{{{{c{{{cc{D{cDcccdccccscsccccccccD{c{{D{{D{D{{{D{{{{{{{{{{{{{c{c{D{{7:uDc{c{cDDD{D{{{{{c{{c{{{{D{{{{D{{{{{{{{{{{{{{{{{{{{{{{{{pp{pp{pppppp",
+"sssusssussussssssscscccccscsscccDc{D{c{ccc{{p{>{>p{p{{pppp{pp{{{{{{{{{{{D{{DDDDcDcccccccccccDD{{{{{{{{{{{{{{{{{{{{p{p{{{{{{{{{{{{{g:>D{{{{{{{{{{{{{{{{{{{{D{{{{{{{{{{{{{p{{pp{pppppppp{ppp>pppppp>>pp>pp",
+"sssssssssssssssccscscc2cDdccccccDDEc{DDDc{{{{p{>{>{p{pppp>{ppppppppp{{{{{{{{{DD{D{DDDDccccDD{{{{{{{{{{{p{p{p{pppppppp{p{ppp{{{{{{>u3>7{{{{{{{{{{{{{{{{{{{{{{{{{{pppppppppppppppppp>pppppppppppp>>>>>>>>>",
+"ssssssssssssccsccccccccDccc2dc,DDDDEDDDcc{{{{>p>>pppppppp>pppppp{p{ppppppp{{{{{{{{{{{{n{{{{{p{ppppp>p>pppppp>ppp>pppp>ppppppppppppa:7pp{pp{ppp{ppppppp{p{{{{pppppppp>p>pp>p>>>p>p>p>>p>pp>p>>>>>>>>>>>v>",
+"ssssssssssscsccccc2ccDDDcDcccccDD{{DDDDDcc{{ppp>p>pppp>p>p>pppp>pppppppppppp{p{p{{{{{{{{p{ppppppppppp>p>p>p>pp>p>p>>p>>>>p>>ppppppb:7p>pppppppppppppp>ppp>pppppp>p>>>>>p>>>>p>>>p>>m!v>>>>>>>>>>>>>vvvvv",
+"csssssscscccccccc{DD{DDD,D,DD{,DD{{{EDDDc{{{{pp>>>]>>p>>>p>p>>>p>>p>p>p>>>>pppp{p{pp{ppp{ppp>p>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>ae>>>>>>>p>>p>>>>>p>p>>p>>>>>>>>>>>>>>>>>>>>>v>pvz+!b>>>>>>>>>vvvvvbvv",
+"ccscscccccccD2DDDDD,DED;>pa;DD{{D{n{nDDDDc{{pp>p>>>>>>>>>>>>>>>>>>>>>>>>>>>ppppppppppppppp>>p>p>>>>>>>>>>>>>>v>>>>>>>vv>>>v>>>>>>>8:v>>>>>>>>>>>>>>>>>>p>>>>>>>>>>>>vv>>>>>vv>v>vm4+z4=vvvvvvvvvvvvvbvbb",
+"cccccccccDDDDEDD,D{>pp754(nnnnE{{{nnD;D;cE{pp{>>>>>B>>>B>>B>>B>>>>>>>>>>>>>>>>>>>pppppp>>>>>>v>>>v>vvvvvvvvvv>vv>vv>v>>v=bvvvv>>>vv:a>>>>vvvvvvv>>>v>>>>>v>v>vvvvvv>v>vvvvvv>vv>>4++t4=bvvvvvvvbvbvbvbbb",
+"cdDccc{,n,{n{{{{n;i-=]bzz4]np9)7p;p6>7D{D{Ep{]ppB>>>>B>>v>>>>>>B>B>v]vvvvvvvv>v>v>v>>>>>>>>>v>vvvvvvvv=bbvv>vv>>v>b!%!(4441mb>b158i|71v1bvvvbvvvvvvvvvvvvvvvvvvmvbv=1)&bvbvvb>=vmz++tz5vvbvbvbbvbbvbbbbb",
+"87$8a2(i8}=$;a,a8(zzf8itf!$avzz5D84f+98a6!)Bv>>p>vbv>>m-!mB>v>m4[f=8>]v>]>>>v8v>v>>>>v>vv>vvv>vvbvvvvv444mmm1mmmbb[++t++++%z45ztt4zz+f)t+z[[z[[&vvvvvb&m>>vv>=)+f44ftt+&vm1m[&4zz++tt+z4mvvbvb=b==v==v=b",
+"z+t+%(+++++z!955++z++%4+%%(iijh(8f++t+f9f++fzf4-[4qbb'fzzz[1F=4+++zzff%)((q(j(f4qi5-15i44bvBmm!&=>mm5qzz+z%%fz+zf(t+z++ttt+++zz++zz+z+z+++tt+z+t!vm[[f+f!![[4zt+++z++ttt[z++++++t+ttt+++4'&11=b==b!z4(=m",
+".tt.tttttt+++++ztttt+++++++++th+++t+tt+fzzt+tz+zz++fzz+++++++z+z+t++++++++tt++fz+z+t+zz+zf44f%+z%5%++z+t++z%z+z++z++++++++++zz++z++zzf+t++t+++tt+b5++++++++tt++tt+ttrr.tt+tr.tt.tttt+.tt+++++4mb=!++t+f4",
+"/iji9jj4%%%4fzzt+t+t++++r++t+tttttttt++t+trr++++t+++t+++t++zzzt++t++++++++++z+++z+t+t+++z+++t+++t++z+++t++zf++++++++z+t+++++z+zr++r++++t+tt++++tt)(+t++tt+tttttrr+ttrrrtttttrt+ttttttttt++++zz4]v'-jjo5/",
+"3e*l^;~~~^3el~*l|||$lk$ko9(9(qqqz+ttt.t.ttrrt++t+.t++tttt++++tttrtr+tttt+ttt+tr++r+r++z++z++ttt++++++trttt+ftt+rrtt++zr+rr+r++++++++r++tt+tt++tt+++t+t++t.tt.ttt.tttttttffqhj_j_9/ikiA|8|l|08ll80$$|l~ll",
+"22^^~2^CC~2C2^CCl222,2^^^333^3233^3*lkik9hhh%%fzz++tttzhf++ttt++hhhhhh%%f%f++rtr+fhffhfh%fh%h%4%%jhhhz+rtzh4fzz+++++t+rrrrr+rrrr+rr++rttttttz+zzff4hhh(j9i$$k$|l*~2^*2^^3^^332~~~llClCC;l0ll$$]}A$yA}yAy",
+"yyyll~l2,C~C^2^2^^^3^^2,,,E,;22^^C2^3u3^23u^^*^~l~08/kle$qf++tzhl~*l~~*~|l|hrttthl**l~;~~l~~~ll8l~23$%z+%/*ll*l*kf+_q+.t.t+zjhh%_j_j__ik$8|l****3*^33333^~2~2lCllC0l0llx8l0;0$000x6AAB}}A}//<'-o9-j9j9-'",
+"A}Ay///}llllylCllC^^^2^^ClC2C0l;2^322ExEC^3,222^~~22^^3222g2,ll$$l$$$$$A$$}+rrt.t/|;~l$0l;~ll~lx0;C0*l*l~l~Cl~;~C~ll~A/9h//8~^*~^^^33^3e3ee3322^^,,;Cl;;;l;xx06$$A$A}$6B@}}}////o/<oo'99jjj-''o-oo-qj--'",
+"Ay}y}-}A@}Ayyyy0lCClC^^3^3^^3~~^C^^C2C22^33^2ClC;2,l;0l;2E,2~~^33333^^~ll$/jhh_/k$l~~;;~l~ll;~;0$$x0$08$80lll;ClClC;~~~80*~2C23~~^~2,~,;,CC;,l~~~,;l0/}Ayx0@@6@}oo}<'FF<@<o<'o'o---9-9ooo'''q%qqo--''9'9",
+"}A6A}AxB6AyyAylx0yyyyllll2l^^223^^^3^0C^^2^33^3^^3^^^^,,,;2^Cl*xCC222^3^^3e33^2CC,~l$00l08l8ll~,2^2^2~^2^^222^~~~~~~2^^,2,2C~2^C~~l,CC;l;lC000xo}A/-j-9o/6x]@6}</oo}}A@}}oo<'o}oo---oj9-j-9/oo'o9'oo--''",
+"A6BBA6A@@A}Alxyy0yAy}xyyyyA0y}xllly^323^232^2yxl2^C22C2333*^~^^2~C~CCC^~C^^^^3^2C^2;2;;,;,CC2^^^^,^2^^*~32;;,,;lCllC,,,lC2yl2Cl0Clx00y]AA}y<F@/oo-'oooo9'o}A@@o<<o}<o'9''<<5999-oo<<99o9oo//-oo<}o9j9-9'",
+"6}66A6AA66}<}AAy]Ay6}y6AyAyxyyAAAA@<//}yyllCCC^^2CCCllllCCl^*3yll2CCCCC^3^lllC2^2,22^2,22,;Ellx00x0llxx0~22,,;$yll$y0xy<yxooA}A$}/}@<@AA}<<@<@A6A}//}/-9//<@<@o/<o}oo</}}$}/<}}'<oo</oo9ooo/99//oooooooo",
+"l0ll;C0xx]A<<6AA}66A@AAAA@}AyA}}}A6x6yA6y66xjAAy06Ax]llllllCl^~C^22^2Clxxx66]0x0l0lC;;xC2lly<<o<$6<}/o}00;D,;l</yAjo}}A'o}A@/</yx]A<@/'<}<A<@@yxAAA}}o--''<<<''o/o'o</A}/o-9o''}}<oo}oj/9oy}o9oo-jjjjj9o",
+"'j9-9}}Ay0x]6xlxy6@AyA6]6@}66xy<@6@6xyA@@@@6@A6AyA}}}A}/}/}}/ol0yo/xxy6''xy0lxo'@x0ExA-<<-o'oFo@0/qqF$x]0EE00x'/$xy6y60xxxy@'@x06xxyxxxA@@0A@AA@<<o<}A<-o}AF@]Ao/o-q-o}<o-f9<<$,EA/yAy}<9/yA/o/j9jq%%qjj",
+"'o9-99oooo</A}/6A/o}}o}}A<@A}6A'<A66A6@}A'<BB666AA@6yoqoy}ylxyyyAoqooA}}6x@}A<'-ox0yA'-/yxxy$x00$<<oo600EE]@]x}<xx6<6l0<<}@<<A00]x6}}}lx6]]<FFF<<'AyAx}qo}@@AyyA}}<o/0y9j--/6$]]AAA<AA}}@A}/j---jjqq%%-q",
+"<<<}<9-q-j9-/o9}-q-99/AAA6yl0xA<<'o<<Ao<}}A@B@@o'99/yoq@l6@x0ll0yy}9qy-'}}--oA/<A/A/--'-/$}AA}$A<x0oo}xy@A<'AA66xxxy6AB0@66]]@@@B]0}--A]60x6F@60xx6xx]AFAyx6]yAA}}$yy}/o'///oxAA<}yyF<6AA}'}9%--jq-j99qq",
+"jo}l}'q%oojo/o9}j--99j<@@AA}y}<qqq%-qF-%<q9o'jqq%qfqo<<A@<o}AxyA}/$}oo9/<<qq-<jqj-ooq--9/oAoo<<''AA--/A}9'o}o<yAAAAAA@6;0B0l00xx]0E6<}x0],0]6El6<6AAx6@}06A]xy}$$Ay}/}xy}A</o9F<<@o<A]6AA<<02A/j--9$A9qq",
+"h9'oo-''}/o/yyA//}//</<@@F}}}/jfz%%q-'-qFqjq%fzzzhfqjoo<o<o<'<}<9jA}Ao9}/o-q%-'-ooo9--'@@/6@<A}<F@AA</A}}}}yAy6<]El0y]xxx]]CE]]00,0]6xx0EEBBE;0B}E666]Ex0A@A6}oAAC}-A6}A}x$6}qq-oA<<A<@66A6A60CAj}^^~0oo",
+"qo-'-o-'///9}A}}/o<}}}o@@'oo/jqff%q-'--'-%-ffz%h%jqj-'''FF<<-@A<--yooAo/<'''o}}ooq%o}}A]606Ay]AA00llxlxAxxllll;00060]0EE]]]]]@B@A2;000;ExE00;0]x6666@]20y@<FA}9<<<<F<}<@<6$$A9-%9};xA<A6xl0@}El$@5l;x7;,",
+"-o-ooo'<6}}'o}<A}<<<o<o'oo--oo9o-''-'F}'o'o<'-99jj9o-''''<}<'<<<<@6A}66}/F9<'A$}'A6AAAAB6x@@A6xxE0ExxlAA;Ellxl0x030xxC,E;]@']@6F'66]EEE066,EB''@<F<F<@B<A@60A6<}B<@@66}E6]x$$AA9A$]]]AAx0E;62007@Fl>6<x<",
+"'-oo<o/''o<o@FoF'ooo<''-F<o9oA</9''<<x0@A}@9''o}}o9oFFF@F<@o<F'<AAx;E@F<A}o''<@6@6y@@@BB6@A<FBx]]0;x]6@<0]@AAE,,E,EEEE]]06E@;}</}oFF@]@]@@A]@A'o@@6]B<oF@}}x6xAE;E;6A0l0]l00ll8l6@A]x/Al$00]E,0AB-o'A'06",
+"9-oy}<<--'/AEB@F'oo'-'ooA@A/'A@AjF<@<@@<F<F99}2Ax}<<@@@B@@FF@@F-'A}FABB@F<<}F@BB@@@@@@@6A@BB@]BB]E2B]B@<A]]B]B];]F]]]]B@]B0E6l@9o9o--@@<@B@;l~A}}6;;@'o<@AA6}6A0;;E0$;;0A0]00AA0A6Ax6y<'<6F@EE0w$F-5$8}6",
+"j9oA</Ao9''F@<@<@@oFF<F'];Exoo}/o--'<@;2<'/oo}<'<FF@BEFF@B@}<6@<AFF--o<<@@B<<FB]B}}66@F@@A@}FAB0]]E]0@'oo<;E,BEsB@;2,$]E]FEEB;06$60p]0>Bv@$$0A8A@AaEB]xB]AFA60;;>x@xxl$6Bx}6l06x<Axxy;lA}@@]E0BA@69$Ax}6",
+"'--'o<y0x/-oB<-<F''@A'FF],E}'F'--9@'@0Dlo'9o/}F@@@BB@B@@<<<<F@BA6@'q---<@@]6}6@E66AA}''''<o'F@BE]E2]]@'--<;Ed,2Eg]B]0]0d;Bn,BAA$,a;]@@B66AA<<xAxA<@B0]0B00B6]0l0]00$$lA8]0$A6A}AFo'ooA}@}<}A]60@6A}$Aoo@",
+"o'q-}}oA}6oA]B'F<oo}<<<<]B6@$A'//'@FBx]<}0}<@B@<F@BB@B@oF@o'-<@@}j-qjoqo''@}<}@366}<}F@<oo@@<@@0E;EEx]-'A00EEE00;;}}6B]02;6E@<<}0]]BB<<@}}6]066l]@B]E]]B]B6A6}66/$$AA$FFx;0y6/<}/}'}<'FA6@<<<FoFA}}}/oo0",
+"<<-'}A9o9'}A<<Fo9'9''@Ao@@A6]A<l}}6x6xAB6EE0]B6@''o@F}<-o@''A@@@oq--o}}A@@A}<<<xA@<-'<}AAAl0]0E,,]E;,EB600]]]]E]BAA$A@B]E]66<}A<}'A66@x0A$}@B6Bx]B600]]]E@BBxxA0}/A//o9-o}}yA}}6/AA}6AA6A6$//}<A@<oo'o$o",
+"<A}o/ooo</}@ooj--qq%q-<'9F<B@B]]B@A;@B]E];@0E]F''---/'/-@}}}A]]A<-/o<Bx]66A<o}<2x6xoyA}yll0lC2,0;6EEE]0EE]B]BBB6A<A$oo9o@<@<@}}A6AB6BB0;0@FB6]]]@]<BEEBB]@@A}yAy////j/}<F}oA}}'/F/<A@@@6$;0A$AA6$0}o-o~<",
+"'-'-''o<''---9qqq%%qq'o'-'FFF@@B@F}60u]EB:B@BF''9---$oAAB@A@@]]}yA/o'<EB<F<}@<o66EE0lx0xyylyxl]@@<AA66BEBB@]@]x]}<6Aooj-''<<]]BAx<<BE0]]EE]]0B]E]]BBB]]x@<'o9ooAjq9/jy}A}x}A0o6;<o}<@066;0}}///A}$}$AAxl",
+"''----o/'qq--j-%%q%F%-----FBF@FFBF'B]]]B@BFF@Bo<-''l~A}@F'Fo666}y}o}<A<}@AA66y}x]3C0Clxly}A}/}9-yy9o/@@B@FF<B};0}<A}o-9<AF@B];E];@B0EDE{EB0]E],EExAo}<oA--qj-jqj%qjq9Ao}<]AA0;l,xE0;xlxAy00A6/600;0A0~,~",
+"'q'''o''''-'qq9q-f-<'F''-'BE@F@'@F@F@@@FFqFF@BFAoA}B<@@B]<'@]AB<A]@xxxx0Ax]x0B6A@2^BCC]0y}-9jqy9/oqj9/<@}'oo}$~lAA6y}@<<B@]B@E0BA'@u2,EE0BE]EEuE]@6lA9jjq%--%qo9-/jqj}/xA;xxl^;2;l6xAlx;xClxlxl~^2~2;ll6",
+"FF--'<''<<'@<'/'--@'@FFF''@]B<;BFBE@FF-@F@F@<F}@<6BFBB]B]]<@]BlF},<B66yEBx0]B@<B@]u0@F'A/9-j-%j9jqjfq9-/Aj9<'}xA$;}<xBBBB]E]B]]FF@@00EB@@BE]E]0]]];,o9--9oo/o}o//9o9<8;,E;lE];E0x0xxllCl}lyl~xl,lxx;0xA}",
+"'FB@}}-'<@F<FFF/'F'F@FF@'F@FFFF,BB]BFB>B<F@@-BBBB]B0B]]F0E@@2@@F6@'@3}ABEEBBB@FBF]C]Bx^%ojo/'-qjhjj%j/o}/Ao@o}/@66F<AA]B]B]B@]B6;]@@]xFF}6]B]F]]@]E]o9/}<';0oA/60xx;E;,,EEx,0E;Bxxlx00Clx2l2C0ClAyyCxyo'",
+"''F<<<F<F@@'F<<}-'-F<-'FFF<''F<B@BBFFBB0BBBFF@60E@F0F'B'F@B@2s,B2uE]]<A3BxB<]B@B]B@@<//--'''Ay/qqj/o%/}A<}06lo}ooF'F<F@EB@@-<020@}}'}}'-}/o]0F6E'xB'--}-F$$$--q-Fq'@;C]xx66EEE^yxA6yxC<xyxAAAxAA}6@yy}oo",
+"@o'}@FFF-'o''''9-qFF<--F6''-<;@FB@]E]22EBBBFB<@B]FF'-'6<;FBEu2s2B6E,]Bx2]BBl0B]]0@B@BE0<<F<<]]AAyy$3oA<60]$Ax'}}<F<o'q'Ax~AF'FBA}}oq</o-oo9F'F'<'<'-BF6}@BA-'qqq-'F<0x6o}o'x]E]]xy6o}l'6oFAo'Aoo}6}}}o9o",
+"F''/<F<FF'o-Foj---'F-'@@Fo<'F<@@BFB]E0]0]]E@B]B@]B'@9o}F0BEs22]E]B]EB<F@2E2^]B]BE0E]E;}xx;]E]Aoo6@}~,0<B000A</<'<}@F'9-9-9'BF@'FooFq--j9jjF''F@F@@<@60E,g,a0ED0BBFBA}}y'/A@E0E2yxl</$0<<@}l2lA//}y@yx}y/",
+"o-<o''ooF-'9-F-q9-'F'-'<o'q-F'@@FF@'@FB@]E]]B]@@@FF'-o--FFBEEEFB@@BE@];FxBBB@@BB]EBBB@@9<C@]06--@<]00<;B0B]E'A''}]Aoo--o9o9@BB</}/oojj9-jq/qq-Fo]@0]0FBB;E,EBx]]B@0x60ll/0l6Ex@<<y<Al9/o@6C$///}/yy<A/}'",
+"<'<oqq''-o'F@<-9-'F6@-/}F--'''<@@;BB@F@FBEF@FF@@]B0F-9%}xF@FB@F]FxAAA6}^}x'@F'']@B@@A@6x6}6EE]FAF{EEB@]''x0A<A'-x<6'o}@A}$A6B]@//}}Ao/jooqj'f-%-$<;]F-@A'B00E00,E6@/$yll}yy]F}oA0o}}y|/}Aoo/}/jo@yy}//oo",
+"''@FF9-9oA@@x@oo--o<BF''9qq'FFFF@@@0]B@B@]BFBFB]B]]AFAqj<'FFFF@E6xo''}'0/<oBxq-@}AAA}@Bx0]]0B@F60]BE]]]F<6x6}Ayo@<6Fo@]xBAxAB06o/x/o/}-$$/o%q-Aq}A@'06@A'0lC0E@<-}}-99/$joo'@/x/yylA}//}//AA/oj9}}A/ojqj",
+"o<B-/}}o<}<xx}}oo-A'-''qqFF<A@<@Ax@A6FBBFFFFFFF@<<@xA}}ABFFF'F}o<o-qq'xy}oxA]'6l66A@<<F]]BB]BBB]E0B@B6@<F@<@ooA}xBA<x02EE000By@oF6AAy$/~l-$<}i;<xaE>;B'<q@6BB;]@'}o9////qy0}ooy}6y}9///}9j/}A//jo/yo99o-",
+"A'<FFA}oFA@6<<9-ojF'</---F<@B@66yA$;6}Ao''F/qq-xAA@6A@/}]B]B'-'-yA-jq-}}}/6B<@BB6B]]BBBBF@@]]B@]]BB@@xB<<@<@A<Al}<'FoAE@]@AAA6o}A06AB,x/o<A@B0]BB]B]BBA0-F@AB6000xAo}$$8/Axx}ll}}}<}}o9//9_///o9'/yojqj9",
+"<'}F}BB<<AoA}-qj/o%99}j'/AA6x6AAx0$AAAo'-o9$_///}@AyE;A<@@B]o-qo0Ao]-@6AA6yE@x66AAA]x@AFFBBBB0x<E]@@0BBF0BFCy/AAA<FA--]@E<<9A}$A;E@@A<8'~$B6B]Ex<}<o@6@F<o/<<o@yx0xFFAxx0AB<//j9-o'}Aoj_jjj9j'ojoAy99j9$",
+"'<A@F<F@F-'o/-fq'9--9xoAxA@Ayxyoy6x66FF<'9-ljo//yAA}l;0ABB6@}y%q}6/6x<6xxx60]x<66}<A6Ao9}6A@BE0@]EB<,EBB]]FA'-//}''6F-<]B@xo@]2@x='F$F<-;];A6]x6@6@F@0dE<A@<ooylAxx<B<@@A@}'-99---99<-qjhhhoy99oo/}-'o9y",
+"F@o'<F@Ao'oo/@qqq9o-o}@6BA@<@y6}y}}Ax'F}</A$yA$yllyx;Clyx606x}}-A0xxC<6ll;]]0]AA}oo@A}-%/<A@F@B]B]BBB0BB0BBy'-/-}-F@<-/@BB5<@B@06'q05oo486@@E66BF'F@F<FF-'<}//A@<A6BBB@F'o9//jjj9q--jqfjjqq%}oj/999-9/oA",
+"<@ooAF<<<9o9//<@---'<x]F@@F@@}y@y}A}A<<}AAlyk^CyC2l;;;0yxx;00}0A8~xxl0xElx]@]06A<o<@xFo''FB<<B]B<BB]BE]]]<<<<AAoo/-'@BBF]B'-<E{2/A}}/qoqq]@@@@@FFFFFF---%q-'}}-o@xxAF@F@<</j/qqjofqj9jhqjhjjq9jj-o}}9jj9",
+"<@A<x@A}o//o--'A'oA}@AB@@A<6A}@}A@A60y0lxky}y2llCllClCx6x6lx6xy0lCyAyylA]x@0BB<6A}A<6A]'@]6FFB]B]FBABxB]@<F}<<AoA<-oAE;g]o-q@EE0$A/oA9A$<]bE]@]F'F''-ffz-jj-o6Fo/@A@'@o'o-jq_j%%j%%q9jjqqjqjjjhqhjqjjjjj",
+"AAy}lA}A/99j-o9'-o}<<FA6@@<@@o'}o<@Bx@AxAyyAAllyyAll0xlyx<]B@]60y6oo}A6@A@6}x6@yA}}o<66<<F6A<o<}x-<F6AF<@F'F@y}'}o''}EEEB@j-@]]B6'AA$AAb0@;,B<F6F<qqoq%%l6o}A0<F/}@<'oo''oqjjjffj/hjj%fqj/9qhhfq%9jqqjj-",
+"<}xo$AooAjj-qo9qo}/Fq'<A<<<oo--<A@BBBB]]@}/yAyAxyx0yExx@A66x]@@xx<o''-<o@6xF@@<Fo-o'-<<<''oo/-jo<-<<o}<-/@q'6}o'/ooAFF]]@o9fFB@@@'A]]0EuEB]]B<o$'o-q^/'o6-F<'@Fool<''-joq}qojjjhh9qj9qh99/9qqh%j%j9%qqj%",
+"-q}ox}ooA-qfjjoq-jo}--<99-j--q-''o<'FBA6A<9//A/yyAxAx0lAA@A@6xBC2<o---FF'6@-/</}-q'-q-j-/j/-q-jo9--<-oy}/@-'F''<}-o--B@@'--j'C'/o9oo<A6]B<B@<@-F}}$j}o<9'A;@--F-o$$5q-q9o<--/9/jj9jjjjj/j/9j9hjqfqj%qqjq",
+"q%/o//Aooqq%--jo%q9oqqjqqq--/oq--qj'-/oAAojy/yAo<yx}6lxA<o<'@]<CA''-F<'F-@@%qo'Aoj-qffj99qjq%jj/9-9o-oo}o9-<-'<'F-o''@-'/oqf%yj9/qj-<6]6@FFFFF'o/}ooiF7:@:$-o-9j-';//-q9<FFqoo-/9jqjjjj-q9/jj%jj%jj%qqjq",
+"q%o-/'o9o/j-/$qj%f-qqh%%%fq%%/9qffq%---/}o-/o/}o9y6}<xA@@<-oA<-F'o<F@o'@'F@-%jj-q%q%zf%qjhf-jqqo/99j-9-99--}ooAx<-o--'--'-qh'oqhjz%fj'<<'<oo'-'o/y}oA30<@]<q$909j}Ao9j%/AA@@'/--j99-jj99qj/jjj}9-9j%qjjq",
+"jq--o---j9q9'/9%q%hq%+z%hzq%hq/q%fqq/q'oooo'oo9oo<<o6F@Foo'9qx---<<o'FF<F-<q%qqqqq%hz%zjqffo-qjy6-9'qoj'9'99}'-'@B''-'oo9qfjlq%hjfqzqF<yo'9'9oj'o//}<@Fov];iA79/-$}9/9jo<x@'--9jjqjqqqo9qq/9-o}9qj-%qo/j",
+"jj9o9qq--/qqqq9q9/j%hfz%%%hqjj4jqfqq/j''''Ao<A/o''<<6F]B<}oyqy<o-Fo}-B6FBF'q%hqf%j%%zhzh%z-oq%-x/q'}A---%-qq}-''0]---F'qjjf%j-qq%hj83q,2''-j'o9'9-<<9''0l0o'@0i$/j}/j///A6]F''9ojqjjq-qjjqjj-'<o<9qq-j-9",
+"'%-jo'-9-/q--jj9jjjqjjqhq%%%j9jqjhj--'99o'FF<AF<o<6B]@B]<oo}'oAB@F@@<]B@B@Aqqqh%%hz%f9+fh%qo%fqo/'//9q-'qxj%-9'0B@--F''qqhf%%jqqjjqAo<66x/j-oo---o6o--j-$0i%9-o9-j/$q$e~F]<''<'9-q-j%qq--qj9jAo'/<%%hq-o",
+"'9-q-@---qzq-oq/jj%-/qjhqf%%q%q-jq%/q//9o/@</<o<}oA'AF<@<''66oA<]FA@'FF<B]Bqq%zzzhzfh_jhj/j-%q9/0@F0'F'<-}9<}@FF@B'--ojj9qf%qjjq9x}}9'F'}-j-oAqqq-F'--j-$loq/-jqqj9y/o9-<F--''''--'9qhq-}<'6j/9/-<%qqqqj",
+"9'-'-ojjqhfhjq/9j-j-/<9qjqqfj-jj9j9A-/oo9oo/o/ooo'o'</99o'-o<<@'@F<]FF---609%%9f9qhfzj9%f9'''xo@EF@,F'@@F@AB]BF]@6-j----/-%%qjj990o/j9''}jj9o3/%''''-o}}q9qqj-/-h%9A/9-/A-qj99--'-''qjjqo<o/-o-'qjqqjqqj",
+"9qqjqj9%%%f%-o/9o/o}FF-q/'oq/'@o-A/ojjo/jjj/jj9o<''''--qjo-''o''<<-']@q'q-@9%'y-<oo%qjj-qFF<B6F@@]]BB'@F<@F@B@@0<'-F}-9q--'qqqqqj9q9oo<FA99-9%q-'<q-qoA5q/jjqqooj%9<<-l<$j---9qq-o-9-9---'9'o//o-j9qq9qq",
+"j%h%%hj%qh9hj/q9o}<@<F/%'<}joF<F'F''j9oy9jjjj-oF]F<o9oqq-oo-'@o<--q-F@jq9/<'-'6@@@o9j9<F@B'@EF@@F<]@@F''@]F@]B<<FB@'<-q'--Fq9q%%qo%o}xB'}9j-'''9'F-Fo''-AjojqqjqjoFFA-Eo<j------q-q-'/o---j-''F'jjo-9/%q"};
diff -urN storm_0.3/usr/share/storm/storm-alarm.py storm_0.5.2/usr/share/storm/storm-alarm.py
--- storm_0.3/usr/share/storm/storm-alarm.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/storm-alarm.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,38 @@
+#! /usr/bin/python
+
+import os, time, mix
+
+if os.system("test -x /usr/bin/madplay") == 0 and \
+os.system("test -e /usr/share/storm/data/alarm.mp3") == 0:
+	CanPlayAlarm = 1
+else:
+	CanPlayAlarm = 0
+
+if os.system("test -x /usr/bin/bl") == 0:
+	CanChangeBL = 1
+else:
+	CanChangeBL = 0
+
+old_volume = mix.getvolume()
+
+# mystring = string.replace(mystring,'foo','bar')
+
+vol = 40
+x = 0
+while x < 12:
+        mix.setvolume(vol)
+	if CanChangeBL:
+		os.system("/usr/bin/bl 1 1 255")
+	if CanPlayAlarm:
+		os.system("/usr/bin/madplay /usr/share/storm/data/alarm.mp3")
+		os.system("/usr/bin/madplay /usr/share/storm/data/alarm.mp3")
+		os.system("/usr/bin/madplay /usr/share/storm/data/alarm.mp3")
+	if CanChangeBL:
+		os.system("/usr/bin/bl 1 1 0")
+        time.sleep(1)
+        x = x + 1
+        vol = vol + 3
+
+mix.setvolume(old_volume)
+
+# we should also restore the LCD light setting...
diff -urN storm_0.3/usr/share/storm/storm.py storm_0.5.2/usr/share/storm/storm.py
--- storm_0.3/usr/share/storm/storm.py	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/storm.py	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,350 @@
+#!/usr/bin/env python
+# Storm mini Evolution clone by Damien Tanner (dctanner@xoasis.com)      
+#
+# This file is part of Storm.
+#
+#    Storm is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    Storm is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with Storm; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from gtk import *
+import string, os, sys
+from modules.stormload import *
+from modules.mail import *
+from modules.today import *
+from modules.notes import *
+from modules.contacts import *
+from modules.calendar import *
+from modules.help import *
+from modules.sync import *
+from modules.prefs import *
+from modules.tasks import *
+from modules.scribble import *
+from modules.storm_constants import *
+
+# main class for the gui, other classes handle diffrent sub functions such as Mail and Contacts
+class Storm:
+	def __init__(self):
+		global first_time
+
+		self.VERSION = "0.5.2"
+
+		# directories and files for config and data:
+		self.storm_userdatafile    = os.environ['HOME'] + '/.stormrc'
+		self.storm_usercfgdir      = os.environ['HOME'] + '/.storm/config/'
+		self.storm_userdatadir     = os.environ['HOME'] + '/.storm/data/'
+		self.storm_usermaildirdir  = os.environ['HOME'] + '/Maildir/'
+
+		# read storm config file
+		self.get_config()
+
+		# some locations where gtkrc's could be...
+                rc_parse("/etc/gt2k/gtkrc")
+                rc_parse("/usr/share/gtkrc")
+                rc_parse(os.environ['HOME'] + "/.gtkrc")
+                rc_parse(self.config[2] + "/stormgtkrc")
+                rc_parse(os.environ['HOME'] + "/.stormgtkrc")
+		rc_parse_string('widget "*" style "storm_normal"')
+
+		# our main gtk window
+		self.window = GtkWindow(WINDOW_TOPLEVEL)
+		self.window.connect("delete_event", self.quit)
+		self.window.set_title("Storm v" + self.VERSION)
+		if screen_width() > 300:
+			self.window.set_usize(280, 240)
+		else:
+			self.window.set_usize(240, 280)
+
+		# show a nice loading popup
+		self.loading = StormLoad(self)
+		while events_pending(): mainiteration()
+		# start by importing the other classes
+		self.scribble = Scribble(self)
+		self.contacts = Contacts(self)
+		while events_pending(): mainiteration()
+		self.loading.today_pixmap.show()
+		self.mail = Mail(self)
+		while events_pending(): mainiteration()
+		self.loading.inbox_pixmap.show()
+		self.calendar = Calendar(self)
+		while events_pending(): mainiteration()
+		self.loading.calendar_pixmap.show()
+		self.tasks = Tasks(self)
+		self.notes = Notes(self)
+		while events_pending(): mainiteration()
+		self.loading.contacts_pixmap.show()
+		self.sync = Sync(self)
+		self.prefs = Prefs(self)
+		while events_pending(): mainiteration()
+		self.loading.notes_pixmap.show()
+		self.today = Today(self)
+		self.help = Help(self)
+		while events_pending(): mainiteration()
+		self.loading.tasks_pixmap.show()
+		
+		# close the loading window
+		self.loading.window.hide()
+		
+		# Main vBox
+		if screen_width() > 300:
+			self.vbox = GtkHBox()
+			self.window.add(self.vbox)
+			self.vbox.show()
+
+			hbox = GtkVBox()
+			self.vbox.pack_start(hbox, expand=FALSE)
+			hbox.show()
+		else:
+			self.vbox = GtkVBox()
+			self.window.add(self.vbox)
+			self.vbox.show()
+
+			hbox = GtkHBox()
+			self.vbox.pack_start(hbox, expand=FALSE)
+			hbox.show()
+
+		# make the toobar
+		if screen_width() > 300:
+			self.toolbar = GtkToolbar(ORIENTATION_VERTICAL, TOOLBAR_ICONS)
+		else:
+			self.toolbar = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		self.toolbar.set_button_relief(RELIEF_NONE)
+		self.toolbar.set_space_size(10)
+		hbox.pack_start(self.toolbar, expand=TRUE)
+		self.toolbar.show()
+
+		# make our notbook
+		self.notebook = GtkNotebook()
+		self.notebook.show()
+		self.notebook.set_show_tabs(FALSE)
+		self.notebook.set_show_border(FALSE)
+		# add it to the vbox
+		self.vbox.pack_start(self.notebook)
+		# add a load of pages to it
+		self.notebook.add(self.today.frame)
+		self.notebook.add(self.mail.frame)
+		self.notebook.add(self.calendar.frame)
+		self.notebook.add(self.tasks.frame)
+		self.notebook.add(self.contacts.frame)
+		self.notebook.add(self.notes.frame)
+
+		# add the evolution pixmaps to the toolbar
+		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/storm-today-mini.xpm")
+		self.toolbar.append_item(None, 'Today', None, GtkPixmap(pix, mask), self.show_today)
+
+		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/storm-inbox-mini.xpm")
+		self.toolbar.append_item(None, 'E-Mail', None, GtkPixmap(pix, mask), self.show_mail)
+
+		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/storm-calendar-mini.xpm")
+		self.toolbar.append_item(None, 'Calendar', None, GtkPixmap(pix, mask), self.show_calendar)
+
+		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/storm-tasks-mini.xpm")
+		self.toolbar.append_item(None, 'Tasks', None, GtkPixmap(pix, mask), self.show_tasks)
+
+		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/storm-contacts-mini.xpm")
+		self.toolbar.append_item(None, 'Contacts', None, GtkPixmap(pix, mask), self.show_contacts)
+
+		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/storm-notes-mini.xpm")
+		self.toolbar.append_item(None, 'Notes', None, GtkPixmap(pix, mask), self.show_notes)
+
+		# make another toolbar for other items such as prefs, about and sync
+		if screen_width() > 300:
+			self.toolbar2 = GtkToolbar(ORIENTATION_VERTICAL, TOOLBAR_ICONS)
+		else:
+			self.toolbar2 = GtkToolbar(ORIENTATION_HORIZONTAL, TOOLBAR_ICONS)
+		self.toolbar2.set_button_relief(RELIEF_NONE)
+		self.toolbar2.set_space_size(10)
+		hbox.pack_end(self.toolbar2, expand=FALSE)
+		self.toolbar2.show()
+
+		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/prefs.xpm")
+		self.toolbar2.append_item(None, 'Preferences', None, GtkPixmap(pix, mask), self.prefs.show_config)
+
+		self.sync_menubar = GtkMenuBar()
+		self.sync_menubar.set_shadow_type(SHADOW_NONE)
+		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/send-receive.xpm")
+
+		sync_menuitem = GtkMenuItem()
+		sync_pixmap = GtkPixmap(pix,mask)
+		sync_menuitem.add(sync_pixmap)
+		sync_pixmap.show()
+		sync_menuitem.show()
+		self.sync_menuitem = sync_menuitem
+		self.sync_menubar.append(sync_menuitem)
+		self.toolbar2.append_widget(self.sync_menubar, 'Sync', '')
+		self.sync_menubar.show()
+
+		sync_menu = GtkMenu()
+
+		sync_get_mail_menuitem = GtkMenuItem("Fetch Messages")
+		sync_get_mail_menuitem.connect("activate", self.sync.get_mail)
+		sync_menu.append(sync_get_mail_menuitem)
+		sync_get_mail_menuitem.show()
+
+		sync_send_mail_menuitem = GtkMenuItem("Send Messages")
+		sync_send_mail_menuitem.connect("activate", self.sync.send_mail)
+		sync_menu.append(sync_send_mail_menuitem)
+		sync_send_mail_menuitem.show()
+
+		sync_menu.show()
+		sync_menuitem.set_submenu(sync_menu)
+
+		pix, mask = create_pixmap_from_xpm(self.window, None, self.config[2] + "/pixmaps/exit.xpm")
+		self.toolbar2.append_item(None, 'Exit', None, GtkPixmap(pix, mask), self.quit)
+
+		# check every c_TimeoutCheckTime ms:
+		self.timer = timeout_add(c_TimeoutCheckTime, self.today_timeout)
+
+	def show_today(self, *args):
+		self.today.update_today()
+		self.notebook.set_page(0)
+
+	def show_mail(self, *args):
+		self.notebook.set_page(1)
+
+	def show_calendar(self, *args):
+		self.notebook.set_page(2)
+		self.calendar.today_date()
+
+	def show_tasks(self, *args):
+		self.notebook.set_page(3)
+
+	def show_contacts(self, *args):
+		self.notebook.set_page(4)
+
+	def show_notes(self, *args):
+		self.notebook.set_page(5)
+
+	def get_config(self):
+		'''Get the ~/.stormrc global config.'''
+
+		# If there's no ~/.stormrc we must be running it for
+		# the first time, so make one and also launch config
+		self.first_time = 0
+
+		if os.path.isfile(self.storm_userdatafile) <= 0:
+			# Make a new ~/.stormrc with some defaults
+			print "DEBUG: ~/.stormrc not existing, generating it..."
+			file = open(self.storm_userdatafile, 'w')
+			# lines meaning: 1) the user name
+			#                2) the user e-mail
+			#                3) the directory where stuff like pixmaps are pulled from
+			#                4) (not used?)
+			file.write('Your Name\nyour.email@mydomain.com\n/usr/share/storm/\nno\n')
+			file.close()
+			print "DEBUG: ~/.stormrc not existing, generating it...done"
+
+			self.first_time == 1
+
+		if os.path.isfile(self.storm_usercfgdir + 'lastsync') <= 0:
+			file = open(self.storm_usercfgdir + 'lastsync', 'w')
+			file.write('<never>')
+			file.close()
+
+		# Open up the storm config file
+		file = open(self.storm_userdatafile, 'r')
+		# read it
+		lines = file.readlines()
+
+		if lines < 4:
+			print "Your file '%s' is corrupted. Exiting." % self.storm_userdatafile
+			sys.exit(1)
+		
+		file.close()
+		# assign variables to the different lines
+		self.config = []
+		for line in lines:
+			line = string.strip(line)
+			self.config.append(line)
+
+		# check if the template dir exists:
+		templatedir = self.config[2] + '/data/templates/'
+		print "DEBUG: templatedir is '%s'" % templatedir
+		if not os.path.exists(templatedir):
+			print "DEBUG: No template directory '%s' found! Exiting." % templatedir
+			sys.exit(1)
+		# copy the data template files:
+		if not os.path.exists(self.storm_userdatadir):
+			for template in os.listdir(templatedir):
+				print "DEBUG: Copying data template files..."
+				if os.path.isfile(self.storm_userdatadir + template) <= 0:
+					open(self.storm_userdatadir + template, 'w').write(open(self.config[2] + '/data/templates/' + template).read())
+				print "DEBUG: Copying data template files...done"
+					
+		# copy the config template files:
+		if not os.path.exists(self.storm_usercfgdir):
+			for template in os.listdir(self.config[2] + '/config/templates/'):
+				print "DEBUG: Copying config template files..."
+				if os.path.isfile(self.storm_usercfgdir + template) <= 0:
+					open(self.storm_usercfgdir + template, 'w').write(open(self.config[2] + '/config/templates/' + template).read())
+				print "DEBUG: Copying config template files...done"
+
+		# copy the mail welcome message:
+		if self.first_time == 1:
+			print "DEBUG: Copying mail welcome message..."
+			if os.path.exists(self.storm_usermaildirdir + "Inbox/new/testmessage") <= 0:
+				open(self.storm_usermaildirdir + "Inbox/new/testmessage", 'w').write(open(self.config[2] + '/maildir/templates/testmessage').read())
+			print "DEBUG: Copying mail welcome message...done"
+		
+	def new_note(self, *args):
+		self.show_notes()
+		self.notes.new_note()
+
+	def mainloop(self):
+		self.window.show()
+		if self.first_time == 1:
+			self.prefs.show_config()
+		mainloop()
+
+	def quit(self, *args):
+		# quit storm
+		timeout_remove(self.timer)
+                mainquit()
+
+	def today_timeout(self):
+		cursecs = time.strftime("%S", time.localtime(time.time()))
+		# c_TimeoutCheckTime is in millisecs:
+		if cursecs <= c_TimeoutCheckTime/1000:
+			self.today.update_today_datetime()
+		# always return TRUE if the timeout should stay there:
+		return TRUE
+
+storm = Storm()
+storm.mainloop()
+
+# new idea for lock file handling: catch all signals and remove the lock before dying
+#
+# def handler(signum, frame):
+# 	# remove lock file (which should be in the user's $HOME and contain the PID) here
+# 	signal.signal(signum, signal.SIG_DFL)
+# 
+# siglist = []
+# for s,v in signal.__dict__.items():
+# 	if s[0:3] == "SIG" and not s[3] == "_":
+# 	#if s[0:3] == "SIG" and not s[3] == "_" and not s == "SIGSTOP" and not s == "SIGTSTP":
+# 		print "s = ", s
+# 		print "v = ", v
+# 		siglist.append(v)
+# 
+# for i in siglist:
+# 	signal.signal(i, handler)
+
+# old lock file handling:
+#
+# if os.path.exists("/tmp/storm.lock") <= 0:
+# 	os.system("touch /tmp/storm.lock")
+# 	storm = Storm()
+# 	storm.mainloop()
+# else:
+# 	print "Storm already seems to be running."
+# 	print "Please delete '/tmp/storm.lock' manually if this is not true."
diff -urN storm_0.3/usr/share/storm/stormgtkrc storm_0.5.2/usr/share/storm/stormgtkrc
--- storm_0.3/usr/share/storm/stormgtkrc	Wed Dec 31 19:00:00 1969
+++ storm_0.5.2/usr/share/storm/stormgtkrc	Mon Feb 25 18:01:50 2002
@@ -0,0 +1,68 @@
+# DON'T EDIT THIS FILE, 
+# OR IT WILL BE OVERWRITTEN THE NEXT TIME YOU INSTALL STORM!
+#
+# This is storm's default ressource file
+# (/usr/share/storm/stormgtkrc). If you want to change the styles,
+# you can copy this file to ~/.stormgtkrc, modify it and thus
+# override the default.
+
+# the normal storm font
+style "storm_normal"
+{
+  font = "-*-helvetica-medium-r-*-*-9-*-*-*-p-*-iso8859-1"
+}
+
+# the same normal font in bold
+style "storm_bold"
+{
+  font = "-*-helvetica-bold-r-*-*-9-*-*-*-*-*-iso8859-1"
+}
+
+# the same normal font in italic
+style "storm_italic"
+{
+  font = "-*-helvetica-medium-o-*-*-9-*-*-*-*-*-iso8859-1"
+}
+
+# the same normal font in bold-italic
+style "storm_bold_italic"
+{
+  font = "-*-helvetica-bold-o-*-*-9-*-*-*-*-*-iso8859-1"
+}
+
+
+# Used as the Today frame title:
+style "storm_today_title"
+{
+  font = "-*-helvetica-bold-r-*-*-9-*-*-*-*-*-iso8859-1"
+}
+
+# Used in the Today view:
+#    "there is an appointment today"
+style "storm_appt_today"
+{
+  font = "-*-helvetica-bold-r-*-*-9-*-*-*-*-*-iso8859-1"
+  fg[NORMAL] = { 0.0, 0.0, 0.0 }
+}
+
+# Used in the Today view:
+#    "an appointment is upcoming soon"
+style "storm_appt_upcoming"
+{
+  font = "-*-helvetica-bold-r-*-*-9-*-*-*-*-*-iso8859-1"
+  fg[NORMAL] = { 0.6, 0.0, 0.0 }
+#  fg[PRELIGHT] = { 1.0, 1.0, 1.0 }
+#  fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+#  base[NORMAL] = {   0,   0,   0 }
+}
+
+# Used in the Today view:
+#    the "Info for <foo>" text
+style "storm_username"
+{
+  font = "-*-helvetica-bold-r-*-*-9-*-*-*-*-*-iso8859-1"
+  fg[NORMAL] = { 0.3, 0.3, 0.3 }
+#  fg[PRELIGHT] = { 1.0, 1.0, 1.0 }
+#  fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+#  base[NORMAL] = {   0,   0,   0 }
+}
