changeset 0:aea3951b71bc

Initial commit
author Brian Smith <brian@dbsoft.org>
date Fri, 21 Jan 2011 18:25:00 -0600
parents
children e62c9115d17e
files Makefile.in account.c acinclude.m4 aclocal.m4 backend.c backend.h config.h config.h.in configure configure.in datetime.c datetime.h develop.txt dmail.c dmail.def dmail.h dmail.ini dmail.rc dmailw.rc gtk/FILE.xpm gtk/FOLDER.xpm gtk/LINK.xpm gtk/about.xpm gtk/admin.xpm gtk/change.xpm gtk/connect.xpm gtk/disconnect.xpm gtk/exit.xpm gtk/flush.xpm gtk/handyftp.xpm gtk/help.xpm gtk/logo.xpm gtk/newtab.xpm gtk/preferences.xpm gtk/queue.xpm gtk/remtab.xpm gtk/resources.c gtk/save.xpm gtk/unqueue.xpm gtk/unsave.xpm install.sh makefile.b32 makefile.emx makefile.vac makefile.vc minimal/Makefile.in minimal/makefile.emx minimal/makefile.vac minimal/makefile.vc minimal/minimal.c minimal/minimal.def minimal/minimal.h minimal/minimalw.def mysql/Makefile.in mysql/makefile.emx mysql/makefile.vac mysql/makefile.vc mysql/mysqlplg.c mysql/mysqlplg.def mysql/mysqlplg.h mysql/mysqlplgw.def os2/FILE.ICO os2/FOLDER.ICO os2/LINK.ICO os2/about.bmp os2/admin.bmp os2/change.bmp os2/connect.bmp os2/disconnect.bmp os2/exit.bmp os2/flush.bmp os2/handyftp.bmp os2/handyftp.ico os2/help.bmp os2/newtab.bmp os2/preferences.bmp os2/queue.bmp os2/remtab.bmp os2/save.bmp os2/unqueue.bmp os2/unsave.bmp parse.c parse.h receive.c send.c sendrecv.h userent.h win/FILE.ico win/FOLDER.ico win/LINK.ico win/about.bmp win/admin.bmp win/change.bmp win/connect.bmp win/disconnect.bmp win/exit.bmp win/flush.bmp win/handyftp.bmp win/handyftp.ico win/help.bmp win/newtab.bmp win/preferences.bmp win/queue.bmp win/remtab.bmp win/save.bmp win/unqueue.bmp win/unsave.bmp winmain.c
diffstat 108 files changed, 17064 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.in	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,58 @@
+# $Id: Makefile.in,v 1.4 2003/12/11 09:13:18 nuke Exp $ 
+
+# HandyFTP Makefile
+
+# Edit these as necessary.
+DWLIBDIR = /home/nuke/netlabs/dwindows/lib
+DWINCDIR = /home/nuke/netlabs/dwindows
+
+CC = @CC@
+RM = @RM@
+CP = @CP@
+MAKE = @MAKE@
+MKDIR = @MKDIR@
+INSTALL = @INSTALL@
+
+LIBS = @LIBS@
+INCLUDES = @INCLUDES@
+
+CFLAGS = @CFLAGS@ -I$(DWINCDIR) -DDW_RESOURCES
+LDFLAGS = @LDFLAGS@ -L$(DWLIBDIR) -ldw -ldwcompat
+
+
+OBJECTS = dmail.o backend.o receive.o send.o parse.o account.o datetime.o
+
+SOURCES = dmail.c backend.c receive.c send.c parse.c account.c datetime.c
+
+all: dmail
+
+$(OBJECTS):
+	$(CC) $(CFLAGS) $(INCLUDES) -c $<
+
+resources.o:
+	$(CC) $(CFLAGS) $(INCLUDES) -c gtk/resources.c
+
+dmail:  $(OBJECTS) resources.o
+	$(CC) $(CFLAGS) $(INCLUDES) -o dmail $(OBJECTS) resources.o $(LDFLAGS) $(LIBS)
+
+clean: 
+	$(RM) $(OBJECTS) resources.o dmail
+
+distclean: 
+	$(RM) $(OBJECTS) resources.o dmail *~ os2/*~ win/*~ gtk/*~ config.cache config.log config.status Makefile config.h
+
+install:
+	$(RM) -rf /usr/local/dmail
+	$(MKDIR)  /usr/local/dmail
+	$(CP) -f ../config/*.typ /usr/local/dmail
+	$(INSTALL) dmail /usr/local/bin
+        
+resources.o: gtk/resources.c
+dmail.o: dmail.c dmail.h config.h
+backend.o: backend.c backend.h
+receive.o: receive.c sendrecv.h
+send.o: send.c sendrecv.h
+parse.o: parse.c parse.h
+account.o: account.c userent.h
+datetime.o: datetime.c datetime.h
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/account.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,500 @@
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include "dw.h"
+#include "userent.h"
+#include "backend.h"
+#include "dmail.h"
+
+HWND in_account = 0;
+DWDialog *dialog;
+
+/* Handle OK press on the account dialog. */
+void DWSIGNAL account_ok(HWND window, void *data)
+{
+	UserEntry *param = (UserEntry *)data;
+
+	if(param)
+	{
+		HWND *handles = (HWND *)param->data;
+		AccountSettings *as = (AccountSettings *)param->data2;
+
+		if(handles && as)
+		{
+			char *tmp;
+
+			tmp = dw_window_get_text(handles[0]);
+			if(tmp)
+			{
+				strncpy(as->AccountName, tmp, ACCOUNTNAME_MAX);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[1]);
+			if(tmp)
+			{
+				strncpy(as->UserEmail, tmp, HOSTNAME_MAX + USERNAME_MAX);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[2]);
+			if(tmp)
+			{
+				strncpy(as->UserRealName, tmp, REALNAME_MAX);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[3]);
+			if(tmp)
+			{
+				strncpy(as->ReplyEmail, tmp, HOSTNAME_MAX + USERNAME_MAX);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[4]);
+			if(tmp)
+			{
+				strncpy(as->ReplyRealName, tmp, REALNAME_MAX);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[5]);
+			if(tmp)
+			{
+				strncpy(as->RecvHostName, tmp, HOSTNAME_MAX);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[6]);
+			if(tmp)
+			{
+				as->RecvHostPort = atoi(tmp);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[7]);
+			if(tmp)
+			{
+				strncpy(as->RecvHostUser, tmp, USERNAME_MAX);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[8]);
+			if(tmp)
+			{
+				strncpy(as->RecvHostPass, tmp, USERNAME_MAX);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[9]);
+			if(tmp)
+			{
+				strncpy(as->SendHostName, tmp, HOSTNAME_MAX);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[10]);
+			if(tmp)
+			{
+				as->SendHostPort = atoi(tmp);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[11]);
+			if(tmp)
+			{
+				strncpy(as->SendHostUser, tmp, USERNAME_MAX);
+				dw_free(tmp);
+			}
+			tmp = dw_window_get_text(handles[12]);
+			if(tmp)
+			{
+				strncpy(as->SendHostPass, tmp, USERNAME_MAX);
+				dw_free(tmp);
+			}
+
+			as->RecvHostType = HOST_TYPE_POP3;
+			as->SendHostType = HOST_TYPE_SMTP;
+		}
+
+		dw_window_destroy(param->window);
+		if(param->busy)
+			*param->busy = 0;
+		if(param->data)
+			free(param->data);
+		free(param);
+
+		if(dialog)
+			dw_dialog_dismiss(dialog, (void *)1);
+	}
+}
+
+/* Delete event */
+int DWSIGNAL confdeleteevent(HWND hwnd, void *data)
+{
+	UserEntry *param = (UserEntry *)data;
+
+	if(param)
+	{
+		dw_window_destroy(param->window);
+		if(param->busy)
+			*param->busy = 0;
+		if(param->data)
+			free(param->data);
+		free(param);
+	}
+	if(dialog)
+		dw_dialog_dismiss(dialog, NULL);
+	return TRUE;
+}
+
+void account_dialog_core(AccountSettings *as, int newaccount, int modal)
+{
+	HWND entrywindow, cancelbutton, okbutton, buttonbox, linebox, xbox, stext, groupbox,
+	notebook, notebookbox, *handles = malloc(35 * sizeof(HWND));
+	UserEntry *param = malloc(sizeof(UserEntry));
+	ULONG flStyle = DW_FCF_SYSMENU | DW_FCF_TITLEBAR | DW_FCF_SIZEBORDER | DW_FCF_MINMAX |
+		DW_FCF_SHELLPOSITION | DW_FCF_TASKLIST | DW_FCF_DLGBORDER;
+	int pageid, firstpage;
+	char tmpbuf[50];
+
+	if(in_account)
+	{
+		free(handles);
+		free(param);
+		dw_window_show(in_account);
+		return;
+	}
+
+	in_account = entrywindow = dw_window_new(HWND_DESKTOP, "Account Settings", flStyle);
+
+	dw_window_set_icon(entrywindow, MAIN_FRAME);
+
+	xbox = dw_box_new(BOXVERT, 3);
+
+	dw_box_pack_start(entrywindow, xbox, 150, 70, TRUE, TRUE, 0);
+
+	notebook = dw_notebook_new(1050L, TRUE);
+
+	dw_box_pack_start(xbox, notebook, 150, 300, TRUE, TRUE, 0);
+
+	/* General Settings */
+	notebookbox = dw_box_new(BOXVERT, 8);
+
+	stext = dw_box_new(BOXHORZ, 0);
+
+	dw_box_pack_start(notebookbox, stext, 0, 0, TRUE, TRUE, 0);
+
+	groupbox = stext;
+
+	linebox = dw_box_new(BOXVERT, 4);
+
+	dw_box_pack_start(groupbox, linebox, 0, 0, TRUE, TRUE, 0);
+
+	stext = dw_text_new("Description", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	linebox = dw_box_new(BOXVERT, 4);
+
+	dw_box_pack_start(groupbox, linebox, 0, 0, TRUE, TRUE, 0);
+
+	handles[0] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[0], ACCOUNTNAME_MAX);
+	dw_window_set_text(handles[0], as->AccountName);
+
+	dw_box_pack_start(linebox, handles[0], 100, 20, TRUE, TRUE, 0);
+
+	groupbox = dw_groupbox_new(BOXVERT, 7, "From Information");
+
+	dw_box_pack_start(notebookbox, groupbox, 0, 0, TRUE, TRUE, 0);
+
+	stext = dw_box_new(BOXHORZ, 0);
+
+	dw_box_pack_start(groupbox, stext, 0, 0, TRUE, TRUE, 0);
+
+	groupbox = stext;
+
+	linebox = dw_box_new(BOXVERT, 4);
+
+	dw_box_pack_start(groupbox, linebox, 0, 0, TRUE, TRUE, 0);
+
+	stext = dw_text_new("E-Mail Address", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	stext = dw_text_new("Real Name", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	linebox = dw_box_new(BOXVERT, 4);
+
+	dw_box_pack_start(groupbox, linebox, 0, 0, TRUE, TRUE, 0);
+
+	handles[1] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[1], HOSTNAME_MAX + USERNAME_MAX);
+	dw_window_set_text(handles[1], as->UserEmail);
+
+	dw_box_pack_start(linebox, handles[1], 100, 20, TRUE, TRUE, 0);
+
+	handles[2] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[2], REALNAME_MAX);
+	dw_window_set_text(handles[2], as->UserRealName);
+
+	dw_box_pack_start(linebox, handles[2], 100, 20, TRUE, TRUE, 0);
+
+	groupbox = dw_groupbox_new(BOXVERT, 7, "Reply-To Information");
+
+	dw_box_pack_start(notebookbox, groupbox, 0, 0, TRUE, TRUE, 0);
+
+	stext = dw_box_new(BOXHORZ, 0);
+
+	dw_box_pack_start(groupbox, stext, 0, 0, TRUE, TRUE, 0);
+
+	groupbox = stext;
+
+	linebox = dw_box_new(BOXVERT, 4);
+
+	dw_box_pack_start(groupbox, linebox, 0, 0, TRUE, TRUE, 0);
+
+	stext = dw_text_new("E-Mail Address", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	stext = dw_text_new("Real Name", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	linebox = dw_box_new(BOXVERT, 4);
+
+	dw_box_pack_start(groupbox, linebox, 0, 0, TRUE, TRUE, 0);
+
+	handles[3] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[3], HOSTNAME_MAX + USERNAME_MAX);
+	dw_window_set_text(handles[3], as->ReplyEmail);
+
+	dw_box_pack_start(linebox, handles[3], 100, 20, TRUE, TRUE, 0);
+
+	handles[4] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[4], REALNAME_MAX);
+	dw_window_set_text(handles[4], as->ReplyRealName);
+
+	dw_box_pack_start(linebox, handles[4], 100, 20, TRUE, TRUE, 0);
+
+	dw_box_pack_start(notebookbox, 0, 100, 100, TRUE, TRUE, 0);
+
+	firstpage = pageid = dw_notebook_page_new(notebook, 0L, FALSE);
+
+	dw_notebook_pack(notebook, pageid, notebookbox);
+
+	/* Due to a GTK limitiation the page text must be set after the page is packed */
+	dw_notebook_page_set_text(notebook, pageid, "General");
+	dw_notebook_page_set_status_text(notebook, pageid, "General Account Settings");
+
+	/* Receive Settings */
+	notebookbox = dw_box_new(BOXVERT, 8);
+
+	groupbox = dw_groupbox_new(BOXVERT, 7, "POP3");
+
+	dw_box_pack_start(notebookbox, groupbox, 0, 0, TRUE, TRUE, 0);
+
+	stext = dw_box_new(BOXHORZ, 0);
+
+	dw_box_pack_start(groupbox, stext, 0, 0, TRUE, TRUE, 0);
+
+	groupbox = stext;
+
+	linebox = dw_box_new(BOXVERT, 4);
+
+	dw_box_pack_start(groupbox, linebox, 0, 0, TRUE, TRUE, 0);
+
+	stext = dw_text_new("POP3 Server", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	stext = dw_text_new("Port", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	stext = dw_text_new("Username", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	stext = dw_text_new("Password", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	linebox = dw_box_new(BOXVERT, 4);
+
+	dw_box_pack_start(groupbox, linebox, 0, 0, TRUE, TRUE, 0);
+
+	handles[5] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[5], HOSTNAME_MAX);
+	dw_window_set_text(handles[5], as->RecvHostName);
+
+	dw_box_pack_start(linebox, handles[5], 100, 20, TRUE, TRUE, 0);
+
+	handles[6] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[6], REALNAME_MAX);
+	sprintf(tmpbuf, "%d", as->RecvHostPort ? as->RecvHostPort : 110);
+	dw_window_set_text(handles[6], tmpbuf);
+
+	dw_box_pack_start(linebox, handles[6], 100, 20, TRUE, TRUE, 0);
+
+	handles[7] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[7], USERNAME_MAX);
+	dw_window_set_text(handles[7], as->RecvHostUser);
+
+	dw_box_pack_start(linebox, handles[7], 100, 20, TRUE, TRUE, 0);
+
+	handles[8] = dw_entryfield_password_new("", 0);
+	dw_entryfield_set_limit(handles[8], USERNAME_MAX);
+	dw_window_set_text(handles[8], as->RecvHostPass);
+
+	dw_box_pack_start(linebox, handles[8], 100, 20, TRUE, TRUE, 0);
+
+	dw_box_pack_start(notebookbox, 0, 100, 160, TRUE, TRUE, 0);
+
+	pageid = dw_notebook_page_new(notebook, 0L, FALSE);
+
+	dw_notebook_pack(notebook, pageid, notebookbox);
+
+	/* Due to a GTK limitiation the page text must be set after the page is packed */
+	dw_notebook_page_set_text(notebook, pageid, "Receive");
+	dw_notebook_page_set_status_text(notebook, pageid, "Account Receive Settings");
+
+	/* Send Settings */
+	notebookbox = dw_box_new(BOXVERT, 8);
+
+	groupbox = dw_groupbox_new(BOXVERT, 7, "SMTP");
+
+	dw_box_pack_start(notebookbox, groupbox, 0, 0, TRUE, TRUE, 0);
+
+	stext = dw_box_new(BOXHORZ, 0);
+
+	dw_box_pack_start(groupbox, stext, 0, 0, TRUE, TRUE, 0);
+
+	groupbox = stext;
+
+	linebox = dw_box_new(BOXVERT, 4);
+
+	dw_box_pack_start(groupbox, linebox, 0, 0, TRUE, TRUE, 0);
+
+	stext = dw_text_new("SMTP Server", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	stext = dw_text_new("Port", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	stext = dw_text_new("Username", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	stext = dw_text_new("Password", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(linebox, stext, 30, 20, TRUE, TRUE, 0);
+
+	linebox = dw_box_new(BOXVERT, 4);
+
+	dw_box_pack_start(groupbox, linebox, 0, 0, TRUE, TRUE, 0);
+
+	handles[9] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[9], HOSTNAME_MAX);
+	dw_window_set_text(handles[9], as->SendHostName);
+
+	dw_box_pack_start(linebox, handles[9], 100, 20, TRUE, TRUE, 0);
+
+	handles[10] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[10], REALNAME_MAX);
+	sprintf(tmpbuf, "%d", as->RecvHostPort ? as->SendHostPort : 25);
+	dw_window_set_text(handles[10], tmpbuf);
+
+	dw_box_pack_start(linebox, handles[10], 100, 20, TRUE, TRUE, 0);
+
+	handles[11] = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(handles[11], USERNAME_MAX);
+	dw_window_set_text(handles[11], as->SendHostUser);
+
+	dw_box_pack_start(linebox, handles[11], 100, 20, TRUE, TRUE, 0);
+
+	handles[12] = dw_entryfield_password_new("", 0);
+	dw_entryfield_set_limit(handles[12], USERNAME_MAX);
+	dw_window_set_text(handles[12], as->SendHostPass);
+
+	dw_box_pack_start(linebox, handles[12], 100, 20, TRUE, TRUE, 0);
+
+	dw_box_pack_start(notebookbox, 0, 100, 160, TRUE, TRUE, 0);
+
+	pageid = dw_notebook_page_new(notebook, 0L, FALSE);
+
+	dw_notebook_pack(notebook, pageid, notebookbox);
+
+	/* Due to a GTK limitiation the page text must be set after the page is packed */
+	dw_notebook_page_set_text(notebook, pageid, "Send");
+	dw_notebook_page_set_status_text(notebook, pageid, "Account Send Settings");
+
+	/* Buttons */
+	buttonbox = dw_box_new(BOXHORZ, 5);
+
+	dw_box_pack_start(xbox, buttonbox, 0, 0, TRUE, FALSE, 0);
+
+	okbutton = dw_button_new("Ok", 1001L);
+
+	dw_box_pack_start(buttonbox, 0, 40, 30, TRUE, FALSE, 2);
+	dw_box_pack_start(buttonbox, okbutton, 40, 30, TRUE, FALSE, 2);
+
+	cancelbutton = dw_button_new("Cancel", 1002L);
+
+	dw_box_pack_start(buttonbox, cancelbutton, 40, 30, TRUE, FALSE, 2);
+	dw_box_pack_start(buttonbox, 0, 40, 30, TRUE, FALSE, 2);
+
+	param->window = entrywindow;
+	param->filename = NULL;
+	param->data = (void *)handles;
+	param->data2 = (void *)as;
+	param->busy = &in_account;
+
+	if(modal)
+		dialog = dw_dialog_new((void *)entrywindow);
+	else
+		dialog = NULL;
+
+	dw_signal_connect(entrywindow, DW_SIGNAL_DELETE, DW_SIGNAL_FUNC(confdeleteevent), (void *)param);
+
+	dw_signal_connect(okbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(account_ok), (void *)param);
+	dw_signal_connect(cancelbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(confdeleteevent), (void *)param);
+
+	dw_window_default(entrywindow, okbutton);
+
+#ifdef __WIN32__
+	dw_window_set_size(entrywindow, 420, 420);
+#else
+	dw_window_set_size(entrywindow, 460, 480);
+#endif
+
+	dw_notebook_page_set(notebook, firstpage);
+
+	dw_window_show(entrywindow);
+}
+
+void DWSIGNAL account_dialog(HWND handle, void *data)
+{
+	AccountSettings *as = findsettings(data);
+
+	if(as)
+		account_dialog_core(as, FALSE, FALSE);
+}
+
+int modal_account_dialog(AccountSettings *as)
+{
+	if(in_account)
+		return FALSE;
+
+	account_dialog_core(as, TRUE, TRUE);
+
+	return (int)dw_dialog_wait(dialog);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/acinclude.m4	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,1127 @@
+dnl aclocal.m4 generated automatically by aclocal 1.4a
+
+dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+
+# Configure paths for GLIB
+# Owen Taylor     97-11-3
+
+dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or 
+dnl gthread is specified in MODULES, pass to glib-config
+dnl
+AC_DEFUN(AM_PATH_GLIB,
+[dnl 
+dnl Get the cflags and libraries from the glib-config script
+dnl
+AC_ARG_WITH(glib-prefix,[  --with-glib-prefix=PFX  Prefix where GLIB is installed (optional)],
+            glib_config_prefix="$withval", glib_config_prefix="")
+AC_ARG_WITH(glib-exec-prefix,[  --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)],
+            glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
+AC_ARG_ENABLE(glibtest, [  --disable-glibtest      Do not try to compile and run a test GLIB program],
+		    , enable_glibtest=yes)
+
+  if test x$glib_config_exec_prefix != x ; then
+     glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
+     if test x${GLIB_CONFIG+set} != xset ; then
+        GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
+     fi
+  fi
+  if test x$glib_config_prefix != x ; then
+     glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
+     if test x${GLIB_CONFIG+set} != xset ; then
+        GLIB_CONFIG=$glib_config_prefix/bin/glib-config
+     fi
+  fi
+
+  for module in . $4
+  do
+      case "$module" in
+         gmodule) 
+             glib_config_args="$glib_config_args gmodule"
+         ;;
+         gthread) 
+             glib_config_args="$glib_config_args gthread"
+         ;;
+      esac
+  done
+
+  AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
+  min_glib_version=ifelse([$1], ,1.2.0,$1)
+  AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
+  no_glib=""
+  if test "$GLIB_CONFIG" = "no" ; then
+    no_glib=yes
+  else
+    GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
+    GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
+    glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_glibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GLIB_CFLAGS"
+      LIBS="$GLIB_LIBS $LIBS"
+dnl
+dnl Now check if the installed GLIB is sufficiently new. (Also sanity
+dnl checks the results of glib-config to some extent
+dnl
+      rm -f conf.glibtest
+      AC_TRY_RUN([
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int 
+main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.glibtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_glib_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_glib_version");
+     exit(1);
+   }
+
+  if ((glib_major_version != $glib_config_major_version) ||
+      (glib_minor_version != $glib_config_minor_version) ||
+      (glib_micro_version != $glib_config_micro_version))
+    {
+      printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
+             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
+             glib_major_version, glib_minor_version, glib_micro_version);
+      printf ("*** was found! If glib-config was correct, then it is best\n");
+      printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+      printf("*** required on your system.\n");
+      printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
+      printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
+      printf("*** before re-running configure\n");
+    } 
+  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
+	   (glib_minor_version != GLIB_MINOR_VERSION) ||
+           (glib_micro_version != GLIB_MICRO_VERSION))
+    {
+      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
+	     GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+	     glib_major_version, glib_minor_version, glib_micro_version);
+    }
+  else
+    {
+      if ((glib_major_version > major) ||
+        ((glib_major_version == major) && (glib_minor_version > minor)) ||
+        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
+               glib_major_version, glib_minor_version, glib_micro_version);
+        printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
+	       major, minor, micro);
+        printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
+        printf("***\n");
+        printf("*** If you have already installed a sufficiently new version, this error\n");
+        printf("*** probably means that the wrong copy of the glib-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
+        printf("*** correct copy of glib-config. (In this case, you will have to\n");
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** so that the correct libraries are found at run-time))\n");
+      }
+    }
+  return 1;
+}
+],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_glib" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$GLIB_CONFIG" = "no" ; then
+       echo "*** The glib-config script installed by GLIB could not be found"
+       echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the GLIB_CONFIG environment variable to the"
+       echo "*** full path to glib-config."
+     else
+       if test -f conf.glibtest ; then
+        :
+       else
+          echo "*** Could not run GLIB test program, checking why..."
+          CFLAGS="$CFLAGS $GLIB_CFLAGS"
+          LIBS="$LIBS $GLIB_LIBS"
+          AC_TRY_LINK([
+#include <glib.h>
+#include <stdio.h>
+],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
+          echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
+          echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
+          echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GLIB_CFLAGS=""
+     GLIB_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GLIB_CFLAGS)
+  AC_SUBST(GLIB_LIBS)
+  rm -f conf.glibtest
+])
+
+# Configure paths for GTK+
+# Owen Taylor     97-11-3
+
+dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
+dnl
+AC_DEFUN(AM_PATH_GTK,
+[dnl 
+dnl Get the cflags and libraries from the gtk-config script
+dnl
+AC_ARG_WITH(gtk-prefix,[  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)],
+            gtk_config_prefix="$withval", gtk_config_prefix="")
+AC_ARG_WITH(gtk-exec-prefix,[  --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
+            gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
+AC_ARG_ENABLE(gtktest, [  --disable-gtktest       Do not try to compile and run a test GTK program],
+		    , enable_gtktest=yes)
+
+  for module in . $4
+  do
+      case "$module" in
+         gthread) 
+             gtk_config_args="$gtk_config_args gthread"
+         ;;
+      esac
+  done
+
+  if test x$gtk_config_exec_prefix != x ; then
+     gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
+     if test x${GTK_CONFIG+set} != xset ; then
+        GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
+     fi
+  fi
+  if test x$gtk_config_prefix != x ; then
+     gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
+     if test x${GTK_CONFIG+set} != xset ; then
+        GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
+     fi
+  fi
+
+  AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
+  min_gtk_version=ifelse([$1], ,1.2.0,$1)
+  AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
+  no_gtk=""
+  if test "$GTK_CONFIG" = "no" ; then
+    no_gtk=yes
+  else
+    GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
+    GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
+    gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_gtktest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GTK_CFLAGS"
+      LIBS="$GTK_LIBS $LIBS"
+dnl
+dnl Now check if the installed GTK is sufficiently new. (Also sanity
+dnl checks the results of gtk-config to some extent
+dnl
+      rm -f conf.gtktest
+      AC_TRY_RUN([
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int 
+main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.gtktest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_gtk_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_gtk_version");
+     exit(1);
+   }
+
+  if ((gtk_major_version != $gtk_config_major_version) ||
+      (gtk_minor_version != $gtk_config_minor_version) ||
+      (gtk_micro_version != $gtk_config_micro_version))
+    {
+      printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
+             $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
+             gtk_major_version, gtk_minor_version, gtk_micro_version);
+      printf ("*** was found! If gtk-config was correct, then it is best\n");
+      printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+      printf("*** required on your system.\n");
+      printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
+      printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
+      printf("*** before re-running configure\n");
+    } 
+#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
+  else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
+	   (gtk_minor_version != GTK_MINOR_VERSION) ||
+           (gtk_micro_version != GTK_MICRO_VERSION))
+    {
+      printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
+	     GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+	     gtk_major_version, gtk_minor_version, gtk_micro_version);
+    }
+#endif /* defined (GTK_MAJOR_VERSION) ... */
+  else
+    {
+      if ((gtk_major_version > major) ||
+        ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
+        ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
+               gtk_major_version, gtk_minor_version, gtk_micro_version);
+        printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
+	       major, minor, micro);
+        printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
+        printf("***\n");
+        printf("*** If you have already installed a sufficiently new version, this error\n");
+        printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
+        printf("*** correct copy of gtk-config. (In this case, you will have to\n");
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** so that the correct libraries are found at run-time))\n");
+      }
+    }
+  return 1;
+}
+],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_gtk" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$GTK_CONFIG" = "no" ; then
+       echo "*** The gtk-config script installed by GTK could not be found"
+       echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the GTK_CONFIG environment variable to the"
+       echo "*** full path to gtk-config."
+     else
+       if test -f conf.gtktest ; then
+        :
+       else
+          echo "*** Could not run GTK test program, checking why..."
+          CFLAGS="$CFLAGS $GTK_CFLAGS"
+          LIBS="$LIBS $GTK_LIBS"
+          AC_TRY_LINK([
+#include <gtk/gtk.h>
+#include <stdio.h>
+],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GTK or finding the wrong"
+          echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GTK was incorrectly installed"
+          echo "*** or that you have moved GTK since it was installed. In the latter case, you"
+          echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GTK_CFLAGS=""
+     GTK_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GTK_CFLAGS)
+  AC_SUBST(GTK_LIBS)
+  rm -f conf.gtktest
+])
+
+# Configure paths for IMLIB
+# David Walluck   99-9-18   
+# Frank Belew     98-8-31
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_IMLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for IMLIB, and define IMLIB_CFLAGS and IMLIB_LIBS
+dnl
+AC_DEFUN(AM_PATH_IMLIB,
+[dnl 
+dnl Get the cflags and libraries from the imlib-config script
+dnl
+AC_ARG_WITH(imlib-prefix,[  --with-imlib-prefix=PFX Prefix where IMLIB is installed (optional)],
+            imlib_prefix="$withval", imlib_prefix="")
+AC_ARG_WITH(imlib-exec-prefix,[  --with-imlib-exec-prefix=PFX Exec prefix where IMLIB is installed (optional)],
+            imlib_exec_prefix="$withval", imlib_exec_prefix="")
+AC_ARG_ENABLE(imlibtest, [  --disable-imlibtest Do not try to compile and run a test IMLIB program],
+		    , enable_imlibtest=yes)
+
+  if test x$imlib_exec_prefix != x ; then
+     imlib_args="$imlib_args --exec-prefix=$imlib_exec_prefix"
+     if test x${IMLIB_CONFIG+set} != xset ; then
+        IMLIB_CONFIG=$imlib_exec_prefix/bin/imlib-config
+     fi
+  fi
+  if test x$imlib_prefix != x ; then
+     imlib_args="$imlib_args --prefix=$imlib_prefix"
+     if test x${IMLIB_CONFIG+set} != xset ; then
+        IMLIB_CONFIG=$imlib_prefix/bin/imlib-config
+     fi
+  fi
+
+  AC_PATH_PROG(IMLIB_CONFIG, imlib-config, no)
+  min_imlib_version=ifelse([$1], ,1.9.4,$1)
+  AC_MSG_CHECKING(for IMLIB - version >= $min_imlib_version)
+  no_imlib=""
+  if test "$IMLIB_CONFIG" = "no" ; then
+    no_imlib=yes
+  else
+    IMLIB_CFLAGS=`$IMLIB_CONFIG $imlibconf_args --cflags`
+    IMLIB_LIBS=`$IMLIB_CONFIG $imlibconf_args --libs`
+
+    imlib_major_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    imlib_minor_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    imlib_micro_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_imlibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $IMLIB_CFLAGS"
+      LIBS="$LIBS $IMLIB_LIBS"
+dnl
+dnl Now check if the installed IMLIB is sufficiently new. (Also sanity
+dnl checks the results of imlib-config to some extent
+dnl
+      rm -f conf.imlibtest
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <Imlib.h>
+
+int main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.imlibtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_imlib_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_imlib_version");
+     exit(1);
+   }
+
+    if (($imlib_major_version > major) ||
+        (($imlib_major_version == major) && ($imlib_minor_version > minor)) ||
+	(($imlib_major_version == major) && ($imlib_minor_version == minor) &&
+	($imlib_micro_version >= micro)))
+    {
+      return 0;
+    }
+  else
+    {
+      printf("\n*** 'imlib-config --version' returned %d.%d.%d, but the minimum version\n", $imlib_major_version, $imlib_minor_version, $imlib_micro_version);
+      printf("*** of IMLIB required is %d.%d.%d. If imlib-config is correct, then it is\n", major, minor, micro);
+      printf("*** best to upgrade to the required version.\n");
+      printf("*** If imlib-config was wrong, set the environment variable IMLIB_CONFIG\n");
+      printf("*** to point to the correct copy of imlib-config, and remove the file\n");
+      printf("*** config.cache before re-running configure\n");
+      return 1;
+    }
+}
+
+],, no_imlib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_imlib" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$IMLIB_CONFIG" = "no" ; then
+       echo "*** The imlib-config script installed by IMLIB could not be found"
+       echo "*** If IMLIB was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the IMLIB_CONFIG environment variable to the"
+       echo "*** full path to imlib-config."
+     else
+       if test -f conf.imlibtest ; then
+        :
+       else
+          echo "*** Could not run IMLIB test program, checking why..."
+          CFLAGS="$CFLAGS $IMLIB_CFLAGS"
+          LIBS="$LIBS $IMLIB_LIBS"
+          AC_TRY_LINK([
+#include <stdio.h>
+#include <Imlib.h>
+],      [ return 0; ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding IMLIB or finding the wrong"
+          echo "*** version of IMLIB. If it is not finding IMLIB, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means IMLIB was incorrectly installed"
+          echo "*** or that you have moved IMLIB since it was installed. In the latter case, you"
+          echo "*** may want to edit the imlib-config script: $IMLIB_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     IMLIB_CFLAGS=""
+     IMLIB_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(IMLIB_CFLAGS)
+  AC_SUBST(IMLIB_LIBS)
+  rm -f conf.imlibtest
+])
+
+# Check for gdk-imlib
+AC_DEFUN(AM_PATH_GDK_IMLIB,
+[dnl 
+dnl Get the cflags and libraries from the imlib-config script
+dnl
+AC_ARG_WITH(imlib-prefix,[  --with-imlib-prefix=PFX Prefix where IMLIB is installed (optional)],
+            imlib_prefix="$withval", imlib_prefix="")
+AC_ARG_WITH(imlib-exec-prefix,[  --with-imlib-exec-prefix=PFX Exec prefix where IMLIB is installed (optional)],
+            imlib_exec_prefix="$withval", imlib_exec_prefix="")
+AC_ARG_ENABLE(imlibtest, [  --disable-imlibtest     Do not try to compile and run a test IMLIB program],
+		    , enable_imlibtest=yes)
+
+  if test x$imlib_exec_prefix != x ; then
+     imlib_args="$imlib_args --exec-prefix=$imlib_exec_prefix"
+     if test x${IMLIB_CONFIG+set} != xset ; then
+        IMLIB_CONFIG=$imlib_exec_prefix/bin/imlib-config
+     fi
+  fi
+  if test x$imlib_prefix != x ; then
+     imlib_args="$imlib_args --prefix=$imlib_prefix"
+     if test x${IMLIB_CONFIG+set} != xset ; then
+        IMLIB_CONFIG=$imlib_prefix/bin/imlib-config
+     fi
+  fi
+
+  AC_PATH_PROG(IMLIB_CONFIG, imlib-config, no)
+  min_imlib_version=ifelse([$1], ,1.9.4,$1)
+  AC_MSG_CHECKING(for IMLIB - version >= $min_imlib_version)
+  no_imlib=""
+  if test "$IMLIB_CONFIG" = "no" ; then
+    no_imlib=yes
+  else
+    GDK_IMLIB_CFLAGS=`$IMLIB_CONFIG $imlibconf_args --cflags-gdk`
+    GDK_IMLIB_LIBS=`$IMLIB_CONFIG $imlibconf_args --libs-gdk`
+
+    imlib_major_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    imlib_minor_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    imlib_micro_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`                  
+    if test "x$enable_imlibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GDK_IMLIB_CFLAGS"
+      LIBS="$LIBS $GDK_IMLIB_LIBS"
+dnl
+dnl Now check if the installed IMLIB is sufficiently new. (Also sanity
+dnl checks the results of imlib-config to some extent
+dnl
+      rm -f conf.imlibtest
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <gdk_imlib.h>
+
+int main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.gdkimlibtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_imlib_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_imlib_version");
+     exit(1);
+   }
+
+    if (($imlib_major_version > major) ||
+        (($imlib_major_version == major) && ($imlib_minor_version > minor)) ||
+	(($imlib_major_version == major) && ($imlib_minor_version == minor) &&
+	($imlib_micro_version >= micro)))
+    {
+      return 0;
+    }
+  else
+    {
+      printf("\n*** 'imlib-config --version' returned %d.%d.%d, but the minimum version\n", $imlib_major_version, $imlib_minor_version, $imlib_micro_version);
+      printf("*** of IMLIB required is %d.%d.%d. If imlib-config is correct, then it is\n", major, minor, micro);
+      printf("*** best to upgrade to the required version.\n");
+      printf("*** If imlib-config was wrong, set the environment variable IMLIB_CONFIG\n");
+      printf("*** to point to the correct copy of imlib-config, and remove the file\n");
+      printf("*** config.cache before re-running configure\n");
+      return 1;
+    }
+}
+
+],, no_imlib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_imlib" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$IMLIB_CONFIG" = "no" ; then
+       echo "*** The imlib-config script installed by IMLIB could not be found"
+       echo "*** If IMLIB was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the IMLIB_CONFIG environment variable to the"
+       echo "*** full path to imlib-config."
+     else
+       if test -f conf.gdkimlibtest ; then
+        :
+       else
+          echo "*** Could not run IMLIB test program, checking why..."
+          CFLAGS="$CFLAGS $GDK_IMLIB_CFLAGS"
+          LIBS="$LIBS $GDK_IMLIB_LIBS"
+          AC_TRY_LINK([
+#include <stdio.h>
+#include <gdk_imlib.h>
+],      [ return 0; ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding IMLIB or finding the wrong"
+          echo "*** version of IMLIB. If it is not finding IMLIB, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means IMLIB was incorrectly installed"
+          echo "*** or that you have moved IMLIB since it was installed. In the latter case, you"
+          echo "*** may want to edit the imlib-config script: $IMLIB_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GDK_IMLIB_CFLAGS=""
+     GDK_IMLIB_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GDK_IMLIB_CFLAGS)
+  AC_SUBST(GDK_IMLIB_LIBS)
+  rm -f conf.gdkimlibtest
+])
+
+# Configure paths for ESD
+# David Walluck   99-9-20
+# Manish Singh    98-9-30
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_ESD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for ESD, and define ESD_CFLAGS and ESD_LIBS
+dnl
+AC_DEFUN(AM_PATH_ESD,
+[dnl 
+dnl Get the cflags and libraries from the esd-config script
+dnl
+AC_ARG_WITH(esd-prefix,[  --with-esd-prefix=PFX   Prefix where ESD is installed (optional)],
+            esd_prefix="$withval", esd_prefix="")
+AC_ARG_WITH(esd-exec-prefix,[  --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)],
+            esd_exec_prefix="$withval", esd_exec_prefix="")
+AC_ARG_ENABLE(esdtest, [  --disable-esdtest       Do not try to compile and run a test ESD program],
+		    , enable_esdtest=yes)
+
+  if test x$esd_exec_prefix != x ; then
+     esd_args="$esd_args --exec-prefix=$esd_exec_prefix"
+     if test x${ESD_CONFIG+set} != xset ; then
+        ESD_CONFIG=$esd_exec_prefix/bin/esd-config
+     fi
+  fi
+  if test x$esd_prefix != x ; then
+     esd_args="$esd_args --prefix=$esd_prefix"
+     if test x${ESD_CONFIG+set} != xset ; then
+        ESD_CONFIG=$esd_prefix/bin/esd-config
+     fi
+  fi
+
+  AC_PATH_PROG(ESD_CONFIG, esd-config, no)
+  min_esd_version=ifelse([$1], ,0.2.5,$1)
+  AC_MSG_CHECKING(for ESD - version >= $min_esd_version)
+  no_esd=""
+  if test "$ESD_CONFIG" = "no" ; then
+    no_esd=yes
+  else
+    ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags`
+    ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs`
+
+    esd_major_version=`$ESD_CONFIG $esd_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    esd_minor_version=`$ESD_CONFIG $esd_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_esdtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $ESD_CFLAGS"
+      LIBS="$LIBS $ESD_LIBS"
+dnl
+dnl Now check if the installed ESD is sufficiently new. (Also sanity
+dnl checks the results of esd-config to some extent
+dnl
+      rm -f conf.esdtest
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <esd.h>
+
+int main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.esdtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_esd_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_esd_version");
+     exit(1);
+   }
+
+   if (($esd_major_version > major) ||
+      (($esd_major_version == major) && ($esd_minor_version > minor)) ||
+      (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro)))
+    {
+      return 0;
+    }
+  else
+    {
+      printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version);
+      printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro);
+      printf("*** best to upgrade to the required version.\n");
+      printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n");
+      printf("*** to point to the correct copy of esd-config, and remove the file\n");
+      printf("*** config.cache before re-running configure\n");
+      return 1;
+    }
+}
+
+],, no_esd=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_esd" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$ESD_CONFIG" = "no" ; then
+       echo "*** The esd-config script installed by ESD could not be found"
+       echo "*** If ESD was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the ESD_CONFIG environment variable to the"
+       echo "*** full path to esd-config."
+     else
+       if test -f conf.esdtest ; then
+        :
+       else
+          echo "*** Could not run ESD test program, checking why..."
+          CFLAGS="$CFLAGS $ESD_CFLAGS"
+          LIBS="$LIBS $ESD_LIBS"
+          AC_TRY_LINK([
+#include <stdio.h>
+#include <esd.h>
+],      [ return 0; ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding ESD or finding the wrong"
+          echo "*** version of ESD. If it is not finding ESD, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means ESD was incorrectly installed"
+          echo "*** or that you have moved ESD since it was installed. In the latter case, you"
+          echo "*** may want to edit the esd-config script: $ESD_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     ESD_CFLAGS=""
+     ESD_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(ESD_CFLAGS)
+  AC_SUBST(ESD_LIBS)
+  rm -f conf.esdtest
+])
+
+# Configure paths for AUDIOFILE
+# Bertrand Guiheneuf 98-10-21
+# stolen from esd.m4 in esound :
+# Manish Singh    98-9-30
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_AUDIOFILE([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for AUDIOFILE, and define AUDIOFILE_CFLAGS and AUDIOFILE_LIBS
+dnl
+AC_DEFUN(AM_PATH_AUDIOFILE,
+[dnl 
+dnl Get the cflags and libraries from the audiofile-config script
+dnl
+AC_ARG_WITH(audiofile-prefix,[  --with-audiofile-prefix=PFX Prefix where AUDIOFILE is installed (optional)],
+            audiofile_prefix="$withval", audiofile_prefix="")
+AC_ARG_WITH(audiofile-exec-prefix,[  --with-audiofile-exec-prefix=PFX Exec prefix where AUDIOFILE is installed
+                          (optional)],
+            audiofile_exec_prefix="$withval", audiofile_exec_prefix="")
+AC_ARG_ENABLE(audiofiletest, [  --disable-audiofiletest Do not try to compile and run a test AUDIOFILE program],
+		    , enable_audiofiletest=yes)
+
+  if test x$audiofile_exec_prefix != x ; then
+     audiofile_args="$audiofile_args --exec-prefix=$audiofile_exec_prefix"
+     if test x${AUDIOFILE_CONFIG+set} != xset ; then
+        AUDIOFILE_CONFIG=$audiofile_exec_prefix/bin/audiofile-config
+     fi
+  fi
+  if test x$audiofile_prefix != x ; then
+     audiofile_args="$audiofile_args --prefix=$audiofile_prefix"
+     if test x${AUDIOFILE_CONFIG+set} != xset ; then
+        AUDIOFILE_CONFIG=$audiofile_prefix/bin/audiofile-config
+     fi
+  fi
+
+  AC_PATH_PROG(AUDIOFILE_CONFIG, audiofile-config, no)
+  min_audiofile_version=ifelse([$1], ,0.1.5,$1)
+  AC_MSG_CHECKING(for AUDIOFILE - version >= $min_audiofile_version)
+  no_audiofile=""
+  if test "$AUDIOFILE_CONFIG" = "no" ; then
+    no_audiofile=yes
+  else
+    AUDIOFILE_LIBS=`$AUDIOFILE_CONFIG $audiofileconf_args --libs`
+    AUDIOFILE_CFLAGS=`$AUDIOFILE_CONFIG $audiofileconf_args --cflags`
+    audiofile_major_version=`$AUDIOFILE_CONFIG $audiofile_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    audiofile_minor_version=`$AUDIOFILE_CONFIG $audiofile_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    audiofile_micro_version=`$AUDIOFILE_CONFIG $audiofile_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_audiofiletest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $AUDIOFILE_CFLAGS"
+      LIBS="$LIBS $AUDIOFILE_LIBS"
+dnl
+dnl Now check if the installed AUDIOFILE is sufficiently new. (Also sanity
+dnl checks the results of audiofile-config to some extent
+dnl
+      rm -f conf.audiofiletest
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <audiofile.h>
+
+int main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.audiofiletest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_audiofile_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_audiofile_version");
+     exit(1);
+   }
+
+   if (($audiofile_major_version > major) ||
+      (($audiofile_major_version == major) && ($audiofile_minor_version > minor)) ||
+      (($audiofile_major_version == major) && ($audiofile_minor_version == minor) && ($audiofile_micro_version >= micro)))
+    {
+      return 0;
+    }
+  else
+    {
+      printf("\n*** 'audiofile-config --version' returned %d.%d.%d, but the minimum version\n", $audiofile_major_version, $audiofile_minor_version, $audiofile_micro_version);
+      printf("*** of AUDIOFILE required is %d.%d.%d. If audiofile-config is correct, then it is\n", major, minor, micro);
+      printf("*** best to upgrade to the required version.\n");
+      printf("*** If audiofile-config was wrong, set the environment variable AUDIOFILE_CONFIG\n");
+      printf("*** to point to the correct copy of audiofile-config, and remove the file\n");
+      printf("*** config.cache before re-running configure\n");
+      return 1;
+    }
+}
+
+],, no_audiofile=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_audiofile" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$AUDIOFILE_CONFIG" = "no" ; then
+       echo "*** The audiofile-config script installed by AUDIOFILE could not be found"
+       echo "*** If AUDIOFILE was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the AUDIOFILE_CONFIG environment variable to the"
+       echo "*** full path to audiofile-config."
+     else
+       if test -f conf.audiofiletest ; then
+        :
+       else
+          echo "*** Could not run AUDIOFILE test program, checking why..."
+          CFLAGS="$CFLAGS $AUDIOFILE_CFLAGS"
+          LIBS="$LIBS $AUDIOFILE_LIBS"
+          AC_TRY_LINK([
+#include <stdio.h>
+#include <audiofile.h>
+],      [ return 0; ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding AUDIOFILE or finding the wrong"
+          echo "*** version of AUDIOFILE. If it is not finding AUDIOFILE, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means AUDIOFILE was incorrectly installed"
+          echo "*** or that you have moved AUDIOFILE since it was installed. In the latter case, you"
+          echo "*** may want to edit the audiofile-config script: $AUDIOFILE_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     AUDIOFILE_CFLAGS=""
+     AUDIOFILE_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(AUDIOFILE_CFLAGS)
+  AC_SUBST(AUDIOFILE_LIBS)
+  rm -f conf.audiofiletest
+])
+# Configure paths for GNOME
+# David Walluck   99-9-24
+
+dnl AM_PATH_GNOME([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for GNOME, and define GNOME_CFLAGS and GNOME_LIBS
+dnl
+AC_DEFUN(AM_PATH_GNOME,
+[dnl
+dnl Get the cflags and libraries from the gnome-config script
+dnl
+AC_ARG_WITH(gnome-prefix,[  --with-gnome-prefix=PFX Prefix where GNOME is installed (optional)],
+            gnome_prefix="$withval", gnome_prefix="")
+AC_ARG_WITH(gnome-exec-prefix,[  --with-gnome-exec-prefix=PFX Exec prefix where GNOME is installed (optional)],
+            gnome_exec_prefix="$withval", gnome_exec_prefix="")
+AC_ARG_ENABLE(gnometest, [  --disable-gnometest     Do not try to compile and run a test GNOME program],
+		    , enable_gnometest=yes)
+
+  if test x$gnome_exec_prefix != x ; then
+     gnome_args="$gnome_args --exec-prefix=$gnome_exec_prefix"
+     if test x${GNOME_CONFIG+set} != xset ; then
+        GNOME_CONFIG=$gnome_exec_prefix/bin/gnome-config
+     fi
+  fi
+  if test x$gnome_prefix != x ; then
+     gnome_args="$gnome_args --prefix=$gnome_prefix"
+     if test x${GNOME_CONFIG+set} != xset ; then
+        GNOME_CONFIG=$gnome_prefix/bin/gnome-config
+     fi
+  fi
+
+  AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
+  min_gnome_version=ifelse([$1], ,0.2.7,$1)
+  AC_MSG_CHECKING(for GNOME - version >= $min_gnome_version)
+  no_gnome=""
+  if test "$GNOME_CONFIG" = "no" ; then
+    no_gnome=yes
+  else
+    GNOME_CFLAGS=`$GNOME_CONFIG $gnomeconf_args gnome --cflags`
+    GNOME_LIBS=`$GNOME_CONFIG $gnomeconf_args gnome --libs`
+
+    gnome_major_version=`$GNOME_CONFIG $gnome_args --version | \
+           sed 's/gnome-libs //' | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    gnome_minor_version=`$GNOME_CONFIG $gnome_args --version | \
+           sed 's/gnome-libs //' | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    gnome_micro_version=`$GNOME_CONFIG $gnome_config_args --version | \
+           sed 's/gnome-libs //' | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_gnometest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GNOME_CFLAGS"
+      LIBS="$LIBS $GNOME_LIBS"
+dnl
+dnl Now check if the installed GNOME is sufficiently new. (Also sanity
+dnl checks the results of gnome-config to some extent
+dnl
+      rm -f conf.gnometest
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gnome.h>
+
+int main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.gnometest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_gnome_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_gnome_version");
+     exit(1);
+   }
+
+   if (($gnome_major_version > major) ||
+      (($gnome_major_version == major) && ($gnome_minor_version > minor)) ||
+      (($gnome_major_version == major) && ($gnome_minor_version == minor) && ($gnome_micro_version >= micro)))
+    {
+      return 0;
+    }
+  else
+    {
+      printf("\n*** 'gnome-config --version' returned %d.%d.%d, but the minimum version\n", $gnome_major_version, $gnome_minor_version, $gnome_micro_version);
+      printf("*** of GNOME required is %d.%d.%d. If gnome-config is correct, then it is\n", major, minor, micro);
+      printf("*** best to upgrade to the required version.\n");
+      printf("*** If gnome-config was wrong, set the environment variable GNOME_CONFIG\n");
+      printf("*** to point to the correct copy of gnome-config, and remove the file\n");
+      printf("*** config.cache before re-running configure\n");
+      return 1;
+    }
+}
+
+],, no_gnome=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_gnome" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])
+  else
+     AC_MSG_RESULT(no)
+     if test "$GNOME_CONFIG" = "no" ; then
+       echo "*** The gnome-config script installed by GNOME could not be found"
+       echo "*** If GNOME was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the GNOME_CONFIG environment variable to the"
+       echo "*** full path to gnome-config."
+     else
+       if test -f conf.gnometest ; then
+        :
+       else
+          echo "*** Could not run GNOME test program, checking why..."
+          CFLAGS="$CFLAGS $GNOME_CFLAGS"
+          LIBS="$LIBS $GNOME_LIBS"
+          AC_TRY_LINK([
+#include <stdio.h>
+#include <gnome.h>
+],      [ return 0; ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GNOME or finding the wrong"
+          echo "*** version of GNOME. If it is not finding GNOME, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GNOME was incorrectly installed"
+          echo "*** or that you have moved GNOME since it was installed. In the latter case, you"
+          echo "*** may want to edit the gnome-config script: $GNOME_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GNOME_CFLAGS=""
+     GNOME_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GNOME_CFLAGS)
+  AC_SUBST(GNOME_LIBS)
+  rm -f conf.gnometest
+])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/aclocal.m4	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,1140 @@
+dnl aclocal.m4 generated automatically by aclocal 1.4a
+
+dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+
+dnl aclocal.m4 generated automatically by aclocal 1.4a
+
+dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+
+# Configure paths for GLIB
+# Owen Taylor     97-11-3
+
+dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or 
+dnl gthread is specified in MODULES, pass to glib-config
+dnl
+AC_DEFUN(AM_PATH_GLIB,
+[dnl 
+dnl Get the cflags and libraries from the glib-config script
+dnl
+AC_ARG_WITH(glib-prefix,[  --with-glib-prefix=PFX  Prefix where GLIB is installed (optional)],
+            glib_config_prefix="$withval", glib_config_prefix="")
+AC_ARG_WITH(glib-exec-prefix,[  --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)],
+            glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
+AC_ARG_ENABLE(glibtest, [  --disable-glibtest      Do not try to compile and run a test GLIB program],
+		    , enable_glibtest=yes)
+
+  if test x$glib_config_exec_prefix != x ; then
+     glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
+     if test x${GLIB_CONFIG+set} != xset ; then
+        GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
+     fi
+  fi
+  if test x$glib_config_prefix != x ; then
+     glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
+     if test x${GLIB_CONFIG+set} != xset ; then
+        GLIB_CONFIG=$glib_config_prefix/bin/glib-config
+     fi
+  fi
+
+  for module in . $4
+  do
+      case "$module" in
+         gmodule) 
+             glib_config_args="$glib_config_args gmodule"
+         ;;
+         gthread) 
+             glib_config_args="$glib_config_args gthread"
+         ;;
+      esac
+  done
+
+  AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
+  min_glib_version=ifelse([$1], ,1.2.0,$1)
+  AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
+  no_glib=""
+  if test "$GLIB_CONFIG" = "no" ; then
+    no_glib=yes
+  else
+    GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
+    GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
+    glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_glibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GLIB_CFLAGS"
+      LIBS="$GLIB_LIBS $LIBS"
+dnl
+dnl Now check if the installed GLIB is sufficiently new. (Also sanity
+dnl checks the results of glib-config to some extent
+dnl
+      rm -f conf.glibtest
+      AC_TRY_RUN([
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int 
+main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.glibtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_glib_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_glib_version");
+     exit(1);
+   }
+
+  if ((glib_major_version != $glib_config_major_version) ||
+      (glib_minor_version != $glib_config_minor_version) ||
+      (glib_micro_version != $glib_config_micro_version))
+    {
+      printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
+             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
+             glib_major_version, glib_minor_version, glib_micro_version);
+      printf ("*** was found! If glib-config was correct, then it is best\n");
+      printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+      printf("*** required on your system.\n");
+      printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
+      printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
+      printf("*** before re-running configure\n");
+    } 
+  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
+	   (glib_minor_version != GLIB_MINOR_VERSION) ||
+           (glib_micro_version != GLIB_MICRO_VERSION))
+    {
+      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
+	     GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+	     glib_major_version, glib_minor_version, glib_micro_version);
+    }
+  else
+    {
+      if ((glib_major_version > major) ||
+        ((glib_major_version == major) && (glib_minor_version > minor)) ||
+        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
+               glib_major_version, glib_minor_version, glib_micro_version);
+        printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
+	       major, minor, micro);
+        printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
+        printf("***\n");
+        printf("*** If you have already installed a sufficiently new version, this error\n");
+        printf("*** probably means that the wrong copy of the glib-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
+        printf("*** correct copy of glib-config. (In this case, you will have to\n");
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** so that the correct libraries are found at run-time))\n");
+      }
+    }
+  return 1;
+}
+],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_glib" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$GLIB_CONFIG" = "no" ; then
+       echo "*** The glib-config script installed by GLIB could not be found"
+       echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the GLIB_CONFIG environment variable to the"
+       echo "*** full path to glib-config."
+     else
+       if test -f conf.glibtest ; then
+        :
+       else
+          echo "*** Could not run GLIB test program, checking why..."
+          CFLAGS="$CFLAGS $GLIB_CFLAGS"
+          LIBS="$LIBS $GLIB_LIBS"
+          AC_TRY_LINK([
+#include <glib.h>
+#include <stdio.h>
+],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
+          echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
+          echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
+          echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GLIB_CFLAGS=""
+     GLIB_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GLIB_CFLAGS)
+  AC_SUBST(GLIB_LIBS)
+  rm -f conf.glibtest
+])
+
+# Configure paths for GTK+
+# Owen Taylor     97-11-3
+
+dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
+dnl
+AC_DEFUN(AM_PATH_GTK,
+[dnl 
+dnl Get the cflags and libraries from the gtk-config script
+dnl
+AC_ARG_WITH(gtk-prefix,[  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)],
+            gtk_config_prefix="$withval", gtk_config_prefix="")
+AC_ARG_WITH(gtk-exec-prefix,[  --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
+            gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
+AC_ARG_ENABLE(gtktest, [  --disable-gtktest       Do not try to compile and run a test GTK program],
+		    , enable_gtktest=yes)
+
+  for module in . $4
+  do
+      case "$module" in
+         gthread) 
+             gtk_config_args="$gtk_config_args gthread"
+         ;;
+      esac
+  done
+
+  if test x$gtk_config_exec_prefix != x ; then
+     gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
+     if test x${GTK_CONFIG+set} != xset ; then
+        GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
+     fi
+  fi
+  if test x$gtk_config_prefix != x ; then
+     gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
+     if test x${GTK_CONFIG+set} != xset ; then
+        GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
+     fi
+  fi
+
+  AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
+  min_gtk_version=ifelse([$1], ,1.2.0,$1)
+  AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
+  no_gtk=""
+  if test "$GTK_CONFIG" = "no" ; then
+    no_gtk=yes
+  else
+    GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
+    GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
+    gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_gtktest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GTK_CFLAGS"
+      LIBS="$GTK_LIBS $LIBS"
+dnl
+dnl Now check if the installed GTK is sufficiently new. (Also sanity
+dnl checks the results of gtk-config to some extent
+dnl
+      rm -f conf.gtktest
+      AC_TRY_RUN([
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int 
+main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.gtktest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_gtk_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_gtk_version");
+     exit(1);
+   }
+
+  if ((gtk_major_version != $gtk_config_major_version) ||
+      (gtk_minor_version != $gtk_config_minor_version) ||
+      (gtk_micro_version != $gtk_config_micro_version))
+    {
+      printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
+             $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
+             gtk_major_version, gtk_minor_version, gtk_micro_version);
+      printf ("*** was found! If gtk-config was correct, then it is best\n");
+      printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+      printf("*** required on your system.\n");
+      printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
+      printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
+      printf("*** before re-running configure\n");
+    } 
+#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
+  else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
+	   (gtk_minor_version != GTK_MINOR_VERSION) ||
+           (gtk_micro_version != GTK_MICRO_VERSION))
+    {
+      printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
+	     GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+	     gtk_major_version, gtk_minor_version, gtk_micro_version);
+    }
+#endif /* defined (GTK_MAJOR_VERSION) ... */
+  else
+    {
+      if ((gtk_major_version > major) ||
+        ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
+        ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
+               gtk_major_version, gtk_minor_version, gtk_micro_version);
+        printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
+	       major, minor, micro);
+        printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
+        printf("***\n");
+        printf("*** If you have already installed a sufficiently new version, this error\n");
+        printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
+        printf("*** correct copy of gtk-config. (In this case, you will have to\n");
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** so that the correct libraries are found at run-time))\n");
+      }
+    }
+  return 1;
+}
+],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_gtk" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$GTK_CONFIG" = "no" ; then
+       echo "*** The gtk-config script installed by GTK could not be found"
+       echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the GTK_CONFIG environment variable to the"
+       echo "*** full path to gtk-config."
+     else
+       if test -f conf.gtktest ; then
+        :
+       else
+          echo "*** Could not run GTK test program, checking why..."
+          CFLAGS="$CFLAGS $GTK_CFLAGS"
+          LIBS="$LIBS $GTK_LIBS"
+          AC_TRY_LINK([
+#include <gtk/gtk.h>
+#include <stdio.h>
+],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GTK or finding the wrong"
+          echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GTK was incorrectly installed"
+          echo "*** or that you have moved GTK since it was installed. In the latter case, you"
+          echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GTK_CFLAGS=""
+     GTK_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GTK_CFLAGS)
+  AC_SUBST(GTK_LIBS)
+  rm -f conf.gtktest
+])
+
+# Configure paths for IMLIB
+# David Walluck   99-9-18   
+# Frank Belew     98-8-31
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_IMLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for IMLIB, and define IMLIB_CFLAGS and IMLIB_LIBS
+dnl
+AC_DEFUN(AM_PATH_IMLIB,
+[dnl 
+dnl Get the cflags and libraries from the imlib-config script
+dnl
+AC_ARG_WITH(imlib-prefix,[  --with-imlib-prefix=PFX Prefix where IMLIB is installed (optional)],
+            imlib_prefix="$withval", imlib_prefix="")
+AC_ARG_WITH(imlib-exec-prefix,[  --with-imlib-exec-prefix=PFX Exec prefix where IMLIB is installed (optional)],
+            imlib_exec_prefix="$withval", imlib_exec_prefix="")
+AC_ARG_ENABLE(imlibtest, [  --disable-imlibtest Do not try to compile and run a test IMLIB program],
+		    , enable_imlibtest=yes)
+
+  if test x$imlib_exec_prefix != x ; then
+     imlib_args="$imlib_args --exec-prefix=$imlib_exec_prefix"
+     if test x${IMLIB_CONFIG+set} != xset ; then
+        IMLIB_CONFIG=$imlib_exec_prefix/bin/imlib-config
+     fi
+  fi
+  if test x$imlib_prefix != x ; then
+     imlib_args="$imlib_args --prefix=$imlib_prefix"
+     if test x${IMLIB_CONFIG+set} != xset ; then
+        IMLIB_CONFIG=$imlib_prefix/bin/imlib-config
+     fi
+  fi
+
+  AC_PATH_PROG(IMLIB_CONFIG, imlib-config, no)
+  min_imlib_version=ifelse([$1], ,1.9.4,$1)
+  AC_MSG_CHECKING(for IMLIB - version >= $min_imlib_version)
+  no_imlib=""
+  if test "$IMLIB_CONFIG" = "no" ; then
+    no_imlib=yes
+  else
+    IMLIB_CFLAGS=`$IMLIB_CONFIG $imlibconf_args --cflags`
+    IMLIB_LIBS=`$IMLIB_CONFIG $imlibconf_args --libs`
+
+    imlib_major_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    imlib_minor_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    imlib_micro_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_imlibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $IMLIB_CFLAGS"
+      LIBS="$LIBS $IMLIB_LIBS"
+dnl
+dnl Now check if the installed IMLIB is sufficiently new. (Also sanity
+dnl checks the results of imlib-config to some extent
+dnl
+      rm -f conf.imlibtest
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <Imlib.h>
+
+int main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.imlibtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_imlib_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_imlib_version");
+     exit(1);
+   }
+
+    if (($imlib_major_version > major) ||
+        (($imlib_major_version == major) && ($imlib_minor_version > minor)) ||
+	(($imlib_major_version == major) && ($imlib_minor_version == minor) &&
+	($imlib_micro_version >= micro)))
+    {
+      return 0;
+    }
+  else
+    {
+      printf("\n*** 'imlib-config --version' returned %d.%d.%d, but the minimum version\n", $imlib_major_version, $imlib_minor_version, $imlib_micro_version);
+      printf("*** of IMLIB required is %d.%d.%d. If imlib-config is correct, then it is\n", major, minor, micro);
+      printf("*** best to upgrade to the required version.\n");
+      printf("*** If imlib-config was wrong, set the environment variable IMLIB_CONFIG\n");
+      printf("*** to point to the correct copy of imlib-config, and remove the file\n");
+      printf("*** config.cache before re-running configure\n");
+      return 1;
+    }
+}
+
+],, no_imlib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_imlib" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$IMLIB_CONFIG" = "no" ; then
+       echo "*** The imlib-config script installed by IMLIB could not be found"
+       echo "*** If IMLIB was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the IMLIB_CONFIG environment variable to the"
+       echo "*** full path to imlib-config."
+     else
+       if test -f conf.imlibtest ; then
+        :
+       else
+          echo "*** Could not run IMLIB test program, checking why..."
+          CFLAGS="$CFLAGS $IMLIB_CFLAGS"
+          LIBS="$LIBS $IMLIB_LIBS"
+          AC_TRY_LINK([
+#include <stdio.h>
+#include <Imlib.h>
+],      [ return 0; ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding IMLIB or finding the wrong"
+          echo "*** version of IMLIB. If it is not finding IMLIB, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means IMLIB was incorrectly installed"
+          echo "*** or that you have moved IMLIB since it was installed. In the latter case, you"
+          echo "*** may want to edit the imlib-config script: $IMLIB_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     IMLIB_CFLAGS=""
+     IMLIB_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(IMLIB_CFLAGS)
+  AC_SUBST(IMLIB_LIBS)
+  rm -f conf.imlibtest
+])
+
+# Check for gdk-imlib
+AC_DEFUN(AM_PATH_GDK_IMLIB,
+[dnl 
+dnl Get the cflags and libraries from the imlib-config script
+dnl
+AC_ARG_WITH(imlib-prefix,[  --with-imlib-prefix=PFX Prefix where IMLIB is installed (optional)],
+            imlib_prefix="$withval", imlib_prefix="")
+AC_ARG_WITH(imlib-exec-prefix,[  --with-imlib-exec-prefix=PFX Exec prefix where IMLIB is installed (optional)],
+            imlib_exec_prefix="$withval", imlib_exec_prefix="")
+AC_ARG_ENABLE(imlibtest, [  --disable-imlibtest     Do not try to compile and run a test IMLIB program],
+		    , enable_imlibtest=yes)
+
+  if test x$imlib_exec_prefix != x ; then
+     imlib_args="$imlib_args --exec-prefix=$imlib_exec_prefix"
+     if test x${IMLIB_CONFIG+set} != xset ; then
+        IMLIB_CONFIG=$imlib_exec_prefix/bin/imlib-config
+     fi
+  fi
+  if test x$imlib_prefix != x ; then
+     imlib_args="$imlib_args --prefix=$imlib_prefix"
+     if test x${IMLIB_CONFIG+set} != xset ; then
+        IMLIB_CONFIG=$imlib_prefix/bin/imlib-config
+     fi
+  fi
+
+  AC_PATH_PROG(IMLIB_CONFIG, imlib-config, no)
+  min_imlib_version=ifelse([$1], ,1.9.4,$1)
+  AC_MSG_CHECKING(for IMLIB - version >= $min_imlib_version)
+  no_imlib=""
+  if test "$IMLIB_CONFIG" = "no" ; then
+    no_imlib=yes
+  else
+    GDK_IMLIB_CFLAGS=`$IMLIB_CONFIG $imlibconf_args --cflags-gdk`
+    GDK_IMLIB_LIBS=`$IMLIB_CONFIG $imlibconf_args --libs-gdk`
+
+    imlib_major_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    imlib_minor_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    imlib_micro_version=`$IMLIB_CONFIG $imlib_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`                  
+    if test "x$enable_imlibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GDK_IMLIB_CFLAGS"
+      LIBS="$LIBS $GDK_IMLIB_LIBS"
+dnl
+dnl Now check if the installed IMLIB is sufficiently new. (Also sanity
+dnl checks the results of imlib-config to some extent
+dnl
+      rm -f conf.imlibtest
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <gdk_imlib.h>
+
+int main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.gdkimlibtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_imlib_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_imlib_version");
+     exit(1);
+   }
+
+    if (($imlib_major_version > major) ||
+        (($imlib_major_version == major) && ($imlib_minor_version > minor)) ||
+	(($imlib_major_version == major) && ($imlib_minor_version == minor) &&
+	($imlib_micro_version >= micro)))
+    {
+      return 0;
+    }
+  else
+    {
+      printf("\n*** 'imlib-config --version' returned %d.%d.%d, but the minimum version\n", $imlib_major_version, $imlib_minor_version, $imlib_micro_version);
+      printf("*** of IMLIB required is %d.%d.%d. If imlib-config is correct, then it is\n", major, minor, micro);
+      printf("*** best to upgrade to the required version.\n");
+      printf("*** If imlib-config was wrong, set the environment variable IMLIB_CONFIG\n");
+      printf("*** to point to the correct copy of imlib-config, and remove the file\n");
+      printf("*** config.cache before re-running configure\n");
+      return 1;
+    }
+}
+
+],, no_imlib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_imlib" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$IMLIB_CONFIG" = "no" ; then
+       echo "*** The imlib-config script installed by IMLIB could not be found"
+       echo "*** If IMLIB was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the IMLIB_CONFIG environment variable to the"
+       echo "*** full path to imlib-config."
+     else
+       if test -f conf.gdkimlibtest ; then
+        :
+       else
+          echo "*** Could not run IMLIB test program, checking why..."
+          CFLAGS="$CFLAGS $GDK_IMLIB_CFLAGS"
+          LIBS="$LIBS $GDK_IMLIB_LIBS"
+          AC_TRY_LINK([
+#include <stdio.h>
+#include <gdk_imlib.h>
+],      [ return 0; ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding IMLIB or finding the wrong"
+          echo "*** version of IMLIB. If it is not finding IMLIB, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means IMLIB was incorrectly installed"
+          echo "*** or that you have moved IMLIB since it was installed. In the latter case, you"
+          echo "*** may want to edit the imlib-config script: $IMLIB_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GDK_IMLIB_CFLAGS=""
+     GDK_IMLIB_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GDK_IMLIB_CFLAGS)
+  AC_SUBST(GDK_IMLIB_LIBS)
+  rm -f conf.gdkimlibtest
+])
+
+# Configure paths for ESD
+# David Walluck   99-9-20
+# Manish Singh    98-9-30
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_ESD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for ESD, and define ESD_CFLAGS and ESD_LIBS
+dnl
+AC_DEFUN(AM_PATH_ESD,
+[dnl 
+dnl Get the cflags and libraries from the esd-config script
+dnl
+AC_ARG_WITH(esd-prefix,[  --with-esd-prefix=PFX   Prefix where ESD is installed (optional)],
+            esd_prefix="$withval", esd_prefix="")
+AC_ARG_WITH(esd-exec-prefix,[  --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)],
+            esd_exec_prefix="$withval", esd_exec_prefix="")
+AC_ARG_ENABLE(esdtest, [  --disable-esdtest       Do not try to compile and run a test ESD program],
+		    , enable_esdtest=yes)
+
+  if test x$esd_exec_prefix != x ; then
+     esd_args="$esd_args --exec-prefix=$esd_exec_prefix"
+     if test x${ESD_CONFIG+set} != xset ; then
+        ESD_CONFIG=$esd_exec_prefix/bin/esd-config
+     fi
+  fi
+  if test x$esd_prefix != x ; then
+     esd_args="$esd_args --prefix=$esd_prefix"
+     if test x${ESD_CONFIG+set} != xset ; then
+        ESD_CONFIG=$esd_prefix/bin/esd-config
+     fi
+  fi
+
+  AC_PATH_PROG(ESD_CONFIG, esd-config, no)
+  min_esd_version=ifelse([$1], ,0.2.5,$1)
+  AC_MSG_CHECKING(for ESD - version >= $min_esd_version)
+  no_esd=""
+  if test "$ESD_CONFIG" = "no" ; then
+    no_esd=yes
+  else
+    ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags`
+    ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs`
+
+    esd_major_version=`$ESD_CONFIG $esd_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    esd_minor_version=`$ESD_CONFIG $esd_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_esdtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $ESD_CFLAGS"
+      LIBS="$LIBS $ESD_LIBS"
+dnl
+dnl Now check if the installed ESD is sufficiently new. (Also sanity
+dnl checks the results of esd-config to some extent
+dnl
+      rm -f conf.esdtest
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <esd.h>
+
+int main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.esdtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_esd_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_esd_version");
+     exit(1);
+   }
+
+   if (($esd_major_version > major) ||
+      (($esd_major_version == major) && ($esd_minor_version > minor)) ||
+      (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro)))
+    {
+      return 0;
+    }
+  else
+    {
+      printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version);
+      printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro);
+      printf("*** best to upgrade to the required version.\n");
+      printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n");
+      printf("*** to point to the correct copy of esd-config, and remove the file\n");
+      printf("*** config.cache before re-running configure\n");
+      return 1;
+    }
+}
+
+],, no_esd=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_esd" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$ESD_CONFIG" = "no" ; then
+       echo "*** The esd-config script installed by ESD could not be found"
+       echo "*** If ESD was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the ESD_CONFIG environment variable to the"
+       echo "*** full path to esd-config."
+     else
+       if test -f conf.esdtest ; then
+        :
+       else
+          echo "*** Could not run ESD test program, checking why..."
+          CFLAGS="$CFLAGS $ESD_CFLAGS"
+          LIBS="$LIBS $ESD_LIBS"
+          AC_TRY_LINK([
+#include <stdio.h>
+#include <esd.h>
+],      [ return 0; ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding ESD or finding the wrong"
+          echo "*** version of ESD. If it is not finding ESD, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means ESD was incorrectly installed"
+          echo "*** or that you have moved ESD since it was installed. In the latter case, you"
+          echo "*** may want to edit the esd-config script: $ESD_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     ESD_CFLAGS=""
+     ESD_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(ESD_CFLAGS)
+  AC_SUBST(ESD_LIBS)
+  rm -f conf.esdtest
+])
+
+# Configure paths for AUDIOFILE
+# Bertrand Guiheneuf 98-10-21
+# stolen from esd.m4 in esound :
+# Manish Singh    98-9-30
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_AUDIOFILE([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for AUDIOFILE, and define AUDIOFILE_CFLAGS and AUDIOFILE_LIBS
+dnl
+AC_DEFUN(AM_PATH_AUDIOFILE,
+[dnl 
+dnl Get the cflags and libraries from the audiofile-config script
+dnl
+AC_ARG_WITH(audiofile-prefix,[  --with-audiofile-prefix=PFX Prefix where AUDIOFILE is installed (optional)],
+            audiofile_prefix="$withval", audiofile_prefix="")
+AC_ARG_WITH(audiofile-exec-prefix,[  --with-audiofile-exec-prefix=PFX Exec prefix where AUDIOFILE is installed
+                          (optional)],
+            audiofile_exec_prefix="$withval", audiofile_exec_prefix="")
+AC_ARG_ENABLE(audiofiletest, [  --disable-audiofiletest Do not try to compile and run a test AUDIOFILE program],
+		    , enable_audiofiletest=yes)
+
+  if test x$audiofile_exec_prefix != x ; then
+     audiofile_args="$audiofile_args --exec-prefix=$audiofile_exec_prefix"
+     if test x${AUDIOFILE_CONFIG+set} != xset ; then
+        AUDIOFILE_CONFIG=$audiofile_exec_prefix/bin/audiofile-config
+     fi
+  fi
+  if test x$audiofile_prefix != x ; then
+     audiofile_args="$audiofile_args --prefix=$audiofile_prefix"
+     if test x${AUDIOFILE_CONFIG+set} != xset ; then
+        AUDIOFILE_CONFIG=$audiofile_prefix/bin/audiofile-config
+     fi
+  fi
+
+  AC_PATH_PROG(AUDIOFILE_CONFIG, audiofile-config, no)
+  min_audiofile_version=ifelse([$1], ,0.1.5,$1)
+  AC_MSG_CHECKING(for AUDIOFILE - version >= $min_audiofile_version)
+  no_audiofile=""
+  if test "$AUDIOFILE_CONFIG" = "no" ; then
+    no_audiofile=yes
+  else
+    AUDIOFILE_LIBS=`$AUDIOFILE_CONFIG $audiofileconf_args --libs`
+    AUDIOFILE_CFLAGS=`$AUDIOFILE_CONFIG $audiofileconf_args --cflags`
+    audiofile_major_version=`$AUDIOFILE_CONFIG $audiofile_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    audiofile_minor_version=`$AUDIOFILE_CONFIG $audiofile_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    audiofile_micro_version=`$AUDIOFILE_CONFIG $audiofile_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_audiofiletest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $AUDIOFILE_CFLAGS"
+      LIBS="$LIBS $AUDIOFILE_LIBS"
+dnl
+dnl Now check if the installed AUDIOFILE is sufficiently new. (Also sanity
+dnl checks the results of audiofile-config to some extent
+dnl
+      rm -f conf.audiofiletest
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <audiofile.h>
+
+int main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.audiofiletest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_audiofile_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_audiofile_version");
+     exit(1);
+   }
+
+   if (($audiofile_major_version > major) ||
+      (($audiofile_major_version == major) && ($audiofile_minor_version > minor)) ||
+      (($audiofile_major_version == major) && ($audiofile_minor_version == minor) && ($audiofile_micro_version >= micro)))
+    {
+      return 0;
+    }
+  else
+    {
+      printf("\n*** 'audiofile-config --version' returned %d.%d.%d, but the minimum version\n", $audiofile_major_version, $audiofile_minor_version, $audiofile_micro_version);
+      printf("*** of AUDIOFILE required is %d.%d.%d. If audiofile-config is correct, then it is\n", major, minor, micro);
+      printf("*** best to upgrade to the required version.\n");
+      printf("*** If audiofile-config was wrong, set the environment variable AUDIOFILE_CONFIG\n");
+      printf("*** to point to the correct copy of audiofile-config, and remove the file\n");
+      printf("*** config.cache before re-running configure\n");
+      return 1;
+    }
+}
+
+],, no_audiofile=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_audiofile" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$AUDIOFILE_CONFIG" = "no" ; then
+       echo "*** The audiofile-config script installed by AUDIOFILE could not be found"
+       echo "*** If AUDIOFILE was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the AUDIOFILE_CONFIG environment variable to the"
+       echo "*** full path to audiofile-config."
+     else
+       if test -f conf.audiofiletest ; then
+        :
+       else
+          echo "*** Could not run AUDIOFILE test program, checking why..."
+          CFLAGS="$CFLAGS $AUDIOFILE_CFLAGS"
+          LIBS="$LIBS $AUDIOFILE_LIBS"
+          AC_TRY_LINK([
+#include <stdio.h>
+#include <audiofile.h>
+],      [ return 0; ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding AUDIOFILE or finding the wrong"
+          echo "*** version of AUDIOFILE. If it is not finding AUDIOFILE, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means AUDIOFILE was incorrectly installed"
+          echo "*** or that you have moved AUDIOFILE since it was installed. In the latter case, you"
+          echo "*** may want to edit the audiofile-config script: $AUDIOFILE_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     AUDIOFILE_CFLAGS=""
+     AUDIOFILE_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(AUDIOFILE_CFLAGS)
+  AC_SUBST(AUDIOFILE_LIBS)
+  rm -f conf.audiofiletest
+])
+# Configure paths for GNOME
+# David Walluck   99-9-24
+
+dnl AM_PATH_GNOME([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for GNOME, and define GNOME_CFLAGS and GNOME_LIBS
+dnl
+AC_DEFUN(AM_PATH_GNOME,
+[dnl
+dnl Get the cflags and libraries from the gnome-config script
+dnl
+AC_ARG_WITH(gnome-prefix,[  --with-gnome-prefix=PFX Prefix where GNOME is installed (optional)],
+            gnome_prefix="$withval", gnome_prefix="")
+AC_ARG_WITH(gnome-exec-prefix,[  --with-gnome-exec-prefix=PFX Exec prefix where GNOME is installed (optional)],
+            gnome_exec_prefix="$withval", gnome_exec_prefix="")
+AC_ARG_ENABLE(gnometest, [  --disable-gnometest     Do not try to compile and run a test GNOME program],
+		    , enable_gnometest=yes)
+
+  if test x$gnome_exec_prefix != x ; then
+     gnome_args="$gnome_args --exec-prefix=$gnome_exec_prefix"
+     if test x${GNOME_CONFIG+set} != xset ; then
+        GNOME_CONFIG=$gnome_exec_prefix/bin/gnome-config
+     fi
+  fi
+  if test x$gnome_prefix != x ; then
+     gnome_args="$gnome_args --prefix=$gnome_prefix"
+     if test x${GNOME_CONFIG+set} != xset ; then
+        GNOME_CONFIG=$gnome_prefix/bin/gnome-config
+     fi
+  fi
+
+  AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
+  min_gnome_version=ifelse([$1], ,0.2.7,$1)
+  AC_MSG_CHECKING(for GNOME - version >= $min_gnome_version)
+  no_gnome=""
+  if test "$GNOME_CONFIG" = "no" ; then
+    no_gnome=yes
+  else
+    GNOME_CFLAGS=`$GNOME_CONFIG $gnomeconf_args gnome --cflags`
+    GNOME_LIBS=`$GNOME_CONFIG $gnomeconf_args gnome --libs`
+
+    gnome_major_version=`$GNOME_CONFIG $gnome_args --version | \
+           sed 's/gnome-libs //' | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    gnome_minor_version=`$GNOME_CONFIG $gnome_args --version | \
+           sed 's/gnome-libs //' | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    gnome_micro_version=`$GNOME_CONFIG $gnome_config_args --version | \
+           sed 's/gnome-libs //' | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_gnometest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GNOME_CFLAGS"
+      LIBS="$LIBS $GNOME_LIBS"
+dnl
+dnl Now check if the installed GNOME is sufficiently new. (Also sanity
+dnl checks the results of gnome-config to some extent
+dnl
+      rm -f conf.gnometest
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gnome.h>
+
+int main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.gnometest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_gnome_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_gnome_version");
+     exit(1);
+   }
+
+   if (($gnome_major_version > major) ||
+      (($gnome_major_version == major) && ($gnome_minor_version > minor)) ||
+      (($gnome_major_version == major) && ($gnome_minor_version == minor) && ($gnome_micro_version >= micro)))
+    {
+      return 0;
+    }
+  else
+    {
+      printf("\n*** 'gnome-config --version' returned %d.%d.%d, but the minimum version\n", $gnome_major_version, $gnome_minor_version, $gnome_micro_version);
+      printf("*** of GNOME required is %d.%d.%d. If gnome-config is correct, then it is\n", major, minor, micro);
+      printf("*** best to upgrade to the required version.\n");
+      printf("*** If gnome-config was wrong, set the environment variable GNOME_CONFIG\n");
+      printf("*** to point to the correct copy of gnome-config, and remove the file\n");
+      printf("*** config.cache before re-running configure\n");
+      return 1;
+    }
+}
+
+],, no_gnome=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_gnome" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])
+  else
+     AC_MSG_RESULT(no)
+     if test "$GNOME_CONFIG" = "no" ; then
+       echo "*** The gnome-config script installed by GNOME could not be found"
+       echo "*** If GNOME was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the GNOME_CONFIG environment variable to the"
+       echo "*** full path to gnome-config."
+     else
+       if test -f conf.gnometest ; then
+        :
+       else
+          echo "*** Could not run GNOME test program, checking why..."
+          CFLAGS="$CFLAGS $GNOME_CFLAGS"
+          LIBS="$LIBS $GNOME_LIBS"
+          AC_TRY_LINK([
+#include <stdio.h>
+#include <gnome.h>
+],      [ return 0; ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GNOME or finding the wrong"
+          echo "*** version of GNOME. If it is not finding GNOME, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GNOME was incorrectly installed"
+          echo "*** or that you have moved GNOME since it was installed. In the latter case, you"
+          echo "*** may want to edit the gnome-config script: $GNOME_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GNOME_CFLAGS=""
+     GNOME_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GNOME_CFLAGS)
+  AC_SUBST(GNOME_LIBS)
+  rm -f conf.gnometest
+])
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/backend.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,73 @@
+#include <dw.h>
+#include "backend.h"
+
+BackendPlugin plugin_list[PLUGIN_MAX];
+
+int load_backend(char *name)
+{
+	int z, index = -1;
+	HMOD hMod;
+
+	/* Find a free plugin entry */
+	for(z=0;z<PLUGIN_MAX;z++)
+	{
+		if(!plugin_list[z].hMod)
+		{
+			index = z;
+			break;
+		}
+	}
+	if(index == -1)
+		return -1;
+
+	if(dw_module_load(name, &hMod) == -1)
+		return -1;
+
+	if(dw_module_symbol(hMod, "backend_init", (void *)&(plugin_list[index].init)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_shutdown", (void *)&(plugin_list[index].shutdown)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_openaccount", (void *)&(plugin_list[index].openaccount)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_newaccount", (void *)&(plugin_list[index].newaccount)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_closeaccount", (void *)&(plugin_list[index].closeaccount)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_getaccounts", (void *)&(plugin_list[index].getaccounts)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_freeaccounts", (void *)&(plugin_list[index].freeaccounts)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_newsettings", (void *)&(plugin_list[index].newsettings)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_getsettings", (void *)&(plugin_list[index].getsettings)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_getfolders", (void *)&(plugin_list[index].getfolders)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_newfolder", (void *)&(plugin_list[index].newfolder)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_delfolder", (void *)&(plugin_list[index].delfolder)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_getitems", (void *)&(plugin_list[index].getitems)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_newitem", (void *)&(plugin_list[index].newitem)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_delitem", (void *)&(plugin_list[index].delitem)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_getmail", (void *)&(plugin_list[index].getmail)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_newmail", (void *)&(plugin_list[index].newmail)))
+		goto Failed;
+	if(dw_module_symbol(hMod, "backend_free", (void *)&(plugin_list[index].free)))
+		goto Failed;
+
+	if(!(plugin_list[index].Type = plugin_list[index].init(&(plugin_list[index].Info))))
+		goto Failed;
+
+	plugin_list[index].hMod = hMod;
+
+	return 0;
+
+Failed:
+	dw_module_close(hMod);
+	return -1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/backend.h	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,116 @@
+/*
+ * Structures and prototypes dealing with the backend
+ * plugins.
+ */
+
+#ifndef _BACKEND_H
+#define _BACKEND_H
+
+#define GENERAL_NAME_MAX         30
+#define MAIL_ITEM_MAX            256
+#define PLUGIN_MAX               10
+
+enum {
+	DATA_TYPE_NONE,
+	DATA_TYPE_ACCOUNT,
+	DATA_TYPE_FOLDER,
+	DATA_TYPE_ITEM,
+	DATA_TYPE_SETTINGS
+};
+
+typedef void Account;
+
+typedef struct {
+	char           Name[GENERAL_NAME_MAX+1];
+	char           Author[GENERAL_NAME_MAX+1];
+} BackendInfo;
+
+typedef struct {
+	int            Type;
+	Account*       Acc;
+	char           Name[GENERAL_NAME_MAX+1];
+	char           Parent[GENERAL_NAME_MAX+1];
+	unsigned long  Flags;
+	unsigned long  LastId;
+} MailFolder;
+
+typedef struct {
+	int            Type;
+	Account*       Acc;
+	MailFolder*    Folder;
+	unsigned long  Id;
+	CDATE          Date;
+	CTIME          Time;
+	char           Topic[MAIL_ITEM_MAX+1];
+	char           To[MAIL_ITEM_MAX+1];
+	char           From[MAIL_ITEM_MAX+1];
+	unsigned long  Size;
+} MailItem;
+
+enum {
+	HOST_TYPE_NONE,
+	HOST_TYPE_POP3,
+	HOST_TYPE_SMTP
+};
+
+#define HOSTNAME_MAX    100
+#define REALNAME_MAX    100
+#define ACCOUNTNAME_MAX 100
+#define USERNAME_MAX    32
+
+typedef struct {
+	int            Type;
+	char           AccountName[ACCOUNTNAME_MAX+1];
+	int            RecvHostType;
+	char           RecvHostName[HOSTNAME_MAX+1];
+	int            RecvHostPort;
+	char           RecvHostUser[USERNAME_MAX+1];
+	char           RecvHostPass[USERNAME_MAX+1];
+	int            SendHostType;
+	char           SendHostName[HOSTNAME_MAX+1];
+	int            SendHostPort;
+	char           SendHostUser[USERNAME_MAX+1];
+	char           SendHostPass[USERNAME_MAX+1];
+	char           UserEmail[HOSTNAME_MAX + USERNAME_MAX + 1];
+	char           UserRealName[REALNAME_MAX+1];
+	char           ReplyEmail[HOSTNAME_MAX + USERNAME_MAX + 1];
+	char           ReplyRealName[REALNAME_MAX+1];
+} AccountSettings;
+
+/* Avoid horrible compiler warnings with Microsoft
+ * Visual C.
+ */
+#ifdef MSVC
+#define DAPI
+#else
+#define DAPI API
+#endif
+
+typedef struct {
+	int            Type;
+	HMOD           hMod;
+	int            (* DAPI init)(BackendInfo *);
+	int            (* DAPI shutdown)(void);
+	Account*       (* DAPI openaccount)(char *);
+	Account*       (* DAPI newaccount)(char *);
+	int            (* DAPI closeaccount)(Account *);
+	char**         (* DAPI getaccounts)(void);
+	void           (* DAPI freeaccounts)(char **);
+	void           (* DAPI newsettings)(Account *, AccountSettings *);
+	void           (* DAPI getsettings)(Account *, AccountSettings *);
+	MailFolder*    (* DAPI getfolders)(Account *);
+	int            (* DAPI newfolder)(Account *, MailFolder *);
+	int            (* DAPI delfolder)(Account *, MailFolder *);
+	MailItem*      (* DAPI getitems)(Account *, MailFolder *);
+	int            (* DAPI newitem)(Account *, MailFolder *, MailItem *);
+	int            (* DAPI delitem)(Account *, MailFolder *, MailItem *);
+	char *         (* DAPI getmail)(Account *, MailFolder *, MailItem *, unsigned long *);
+	int            (* DAPI newmail)(Account *, MailFolder *, MailItem *, char *, unsigned long);
+	void           (* DAPI free)(Account *, void *);
+	BackendInfo    Info;
+} BackendPlugin;
+
+
+int load_backend(char *name);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/config.h	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,35 @@
+/* config.h.  Generated by configure.  */
+/* config.h.in.  Generated automatically from configure.in by autoheader.  */
+
+/* Define if you have the ANSI C header files.  */
+#define STDC_HEADERS 1
+
+/* Define if you have the connect function.  */
+#define HAVE_CONNECT 1
+
+/* Define if you have the pipe function.  */
+#define HAVE_PIPE 1
+
+/* Define if you have the <dirent.h> header file.  */
+#define HAVE_DIRENT_H 1
+
+/* Define if you have the <ndir.h> header file.  */
+/* #undef HAVE_NDIR_H */
+
+/* Define if you have the <sys/dir.h> header file.  */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define if you have the <sys/ndir.h> header file.  */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define if you have the <unistd.h> header file.  */
+#define HAVE_UNISTD_H 1
+
+/* Define if you have the <sys/stat.h> header file.  */
+#define HAVE_SYS_STAT_H 1
+
+/* Determine whether we have the pipe function */
+#define HAVE_PIPE 1
+
+/* Define if IMLIB is available. */
+/* #undef USE_IMLIB */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/config.h.in	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,34 @@
+/* config.h.in.  Generated automatically from configure.in by autoheader.  */
+
+/* Define if you have the ANSI C header files.  */
+#undef STDC_HEADERS
+
+/* Define if you have the connect function.  */
+#undef HAVE_CONNECT
+
+/* Define if you have the pipe function.  */
+#undef HAVE_PIPE
+
+/* Define if you have the <dirent.h> header file.  */
+#undef HAVE_DIRENT_H
+
+/* Define if you have the <ndir.h> header file.  */
+#undef HAVE_NDIR_H
+
+/* Define if you have the <sys/dir.h> header file.  */
+#undef HAVE_SYS_DIR_H
+
+/* Define if you have the <sys/ndir.h> header file.  */
+#undef HAVE_SYS_NDIR_H
+
+/* Define if you have the <unistd.h> header file.  */
+#undef HAVE_UNISTD_H
+
+/* Define if you have the <sys/stat.h> header file.  */
+#undef HAVE_SYS_STAT_H
+
+/* Determine whether we have the pipe function */
+#undef HAVE_PIPE
+
+/* Define if IMLIB is available. */
+#undef USE_IMLIB
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configure	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,6695 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.53.
+#
+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# NLS nuisances.
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
+    { $as_unset LANG || test "${LANG+set}" != set; } ||
+      { LANG=C; export LANG; }
+(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
+    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
+      { LC_ALL=C; export LC_ALL; }
+(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
+    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
+      { LC_TIME=C; export LC_TIME; }
+(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
+    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
+      { LC_CTYPE=C; export LC_CTYPE; }
+(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
+    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
+      { LANGUAGE=C; export LANGUAGE; }
+(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
+    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
+      { LC_COLLATE=C; export LC_COLLATE; }
+(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
+    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
+      { LC_NUMERIC=C; export LC_NUMERIC; }
+(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
+    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
+      { LC_MESSAGES=C; export LC_MESSAGES; }
+
+
+# Name of the executable.
+as_me=`(basename "$0") 2>/dev/null ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conftest.sh
+  echo  "exit 0"   >>conftest.sh
+  chmod +x conftest.sh
+  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conftest.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete.  It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_unique_file="dmail.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+#  include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_option in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    eval "enable_$ac_feature=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_$ac_feature='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_$ac_package='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    eval "with_$ac_package=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+    eval "$ac_envvar='$ac_optarg'"
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+              localstatedir libdir includedir oldincludedir infodir mandir
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$0" : 'X\(//\)[^/]' \| \
+         X"$0" : 'X\(//\)$' \| \
+         X"$0" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
+  else
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+  fi
+fi
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+  cat <<_ACEOF
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --infodir=DIR          info documentation [PREFIX/info]
+  --mandir=DIR           man documentation [PREFIX/man]
+_ACEOF
+
+  cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\_ACEOF
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+              headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d $ac_dir || continue
+    ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+    cd $ac_dir
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_srcdir/configure; then
+      echo
+      $SHELL $ac_srcdir/configure  --help=recursive
+    elif test -f $ac_srcdir/configure.ac ||
+           test -f $ac_srcdir/configure.in; then
+      echo
+      $ac_configure --help
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi
+    cd $ac_popdir
+  done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+  cat <<\_ACEOF
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.53.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell meta-characters.
+ac_configure_args=
+ac_sep=
+for ac_arg
+do
+  case $ac_arg in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n ) continue ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    continue ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+  esac
+  case " $ac_configure_args " in
+    *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+    *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+       ac_sep=" " ;;
+  esac
+  # Get rid of the leading space.
+done
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+{
+  (set) 2>&1 |
+    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      sed -n \
+        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+      ;;
+    *)
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+}
+    echo
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      sed "/^$/d" confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core core.* *.core &&
+  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+     ' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . $cache_file;;
+      *)                      . ./$cache_file;;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+  eval ac_new_val="\$ac_env_${ac_var}_value"
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+        ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+INCLUDES="-I."
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    set dummy "$as_dir/$ac_word" ${1+"$@"}
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_CC" && break
+done
+
+  CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output" >&5
+echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+  (eval $ac_link_default) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Find the output, starting from the most likely.  This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+for ac_file in `ls a_out.exe a.exe conftest.exe 2>/dev/null;
+                ls a.out conftest 2>/dev/null;
+                ls a.* conftest.* 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb | *.xSYM ) ;;
+    a.out ) # We found the default executable, but exeext='' is most
+            # certainly right.
+            break;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+          # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
+          export ac_cv_exeext
+          break;;
+    * ) break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables" >&5
+echo "$as_me: error: C compiler cannot create executables" >&2;}
+   { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+          export ac_cv_exeext
+          break;;
+    * ) break;;
+  esac
+done
+else
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_compiler_gnu=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+# Some people use a C++ compiler to compile C.  Since we use `exit',
+# in C++ we need to declare it.  In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+  choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+continue
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+$ac_declaration
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Extract the first word of "gmake", so it can be a program name with args.
+set dummy gmake; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_MAKE+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$MAKE"; then
+  ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MAKE="gmake"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+MAKE=$ac_cv_prog_MAKE
+if test -n "$MAKE"; then
+  echo "$as_me:$LINENO: result: $MAKE" >&5
+echo "${ECHO_T}$MAKE" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test x"$MAKE" = x; then
+  # Extract the first word of "make", so it can be a program name with args.
+set dummy make; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_MAKE+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$MAKE"; then
+  ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MAKE="make"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+MAKE=$ac_cv_prog_MAKE
+if test -n "$MAKE"; then
+  echo "$as_me:$LINENO: result: $MAKE" >&5
+echo "${ECHO_T}$MAKE" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f $ac_dir/shtool; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+          if test $ac_prog = install &&
+            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+            # AIX install.  It has an incompatible calling convention.
+            :
+          elif test $ac_prog = install &&
+            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+            # program-specific install script used by HP pwplus--don't use.
+            :
+          else
+            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+            break 3
+          fi
+        fi
+      done
+    done
+    ;;
+esac
+done
+
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL=$ac_install_sh
+  fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <assert.h>
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <assert.h>
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_cv_header_stdc=yes
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
+                     || ('j' <= (c) && (c) <= 'r') \
+                     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+        || toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+  as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
+echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <$ac_hdr>
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+  echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+if test "${ac_cv_search_opendir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+ac_cv_search_opendir=no
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_opendir="none required"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_opendir" = no; then
+  for ac_lib in dir; do
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_opendir="-l$ac_lib"
+break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+  done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6
+if test "$ac_cv_search_opendir" != no; then
+  test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
+
+fi
+
+else
+  echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+if test "${ac_cv_search_opendir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+ac_cv_search_opendir=no
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_opendir="none required"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_opendir" = no; then
+  for ac_lib in x; do
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_opendir="-l$ac_lib"
+break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+  done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6
+if test "$ac_cv_search_opendir" != no; then
+  test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
+
+fi
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                  inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_header in unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+  no:yes )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in sys/stat.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+  no:yes )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_func in pipe
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+char (*f) ();
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+f = $ac_func;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_PIPE 1
+_ACEOF
+
+fi
+done
+
+
+
+for ac_func in connect
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+char (*f) ();
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+f = $ac_func;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+if test x"$ac_cv_func_connect" = x"no"; then
+  if test -z "$libsocket"; then
+    echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
+echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_socket+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char socket ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+socket ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_socket_socket=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_socket_socket=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6
+if test $ac_cv_lib_socket_socket = yes; then
+  LIBS="$LIBS -lsocket"
+fi
+
+  fi
+
+    if test -z "$libinet"; then
+    echo "$as_me:$LINENO: checking for socket in -linet" >&5
+echo $ECHO_N "checking for socket in -linet... $ECHO_C" >&6
+if test "${ac_cv_lib_inet_socket+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-linet  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char socket ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+socket ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_inet_socket=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_inet_socket=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_inet_socket" >&5
+echo "${ECHO_T}$ac_cv_lib_inet_socket" >&6
+if test $ac_cv_lib_inet_socket = yes; then
+  libnsl=1; LIBS="$LIBS -linet -lnsl_s"
+fi
+
+  fi
+
+  if test -z "$libnsl"; then
+    echo "$as_me:$LINENO: checking for gethostname in -lnsl" >&5
+echo $ECHO_N "checking for gethostname in -lnsl... $ECHO_C" >&6
+if test "${ac_cv_lib_nsl_gethostname+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char gethostname ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+gethostname ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_nsl_gethostname=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_nsl_gethostname=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostname" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_gethostname" >&6
+if test $ac_cv_lib_nsl_gethostname = yes; then
+  LIBS="$LIBS -lnsl"
+fi
+
+  fi
+fi
+
+LIBS=`dw-config --libs`
+CFLAGS=`dw-config --cflags`
+
+echo "$as_me:$LINENO: checking for dw_main in -ldw" >&5
+echo $ECHO_N "checking for dw_main in -ldw... $ECHO_C" >&6
+if test "${ac_cv_lib_dw_dw_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldw  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dw_main ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+dw_main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dw_dw_main=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dw_dw_main=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dw_dw_main" >&5
+echo "${ECHO_T}$ac_cv_lib_dw_dw_main" >&6
+if test $ac_cv_lib_dw_dw_main = yes; then
+  LIBS="$LIBS"
+else
+  { { echo "$as_me:$LINENO: error: Dynamic Windows library not found. HandyFTP cannot build without it." >&5
+echo "$as_me: error: Dynamic Windows library not found. HandyFTP cannot build without it." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+echo "$as_me:$LINENO: checking for getpwnam in -lsun" >&5
+echo $ECHO_N "checking for getpwnam in -lsun... $ECHO_C" >&6
+if test "${ac_cv_lib_sun_getpwnam+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsun  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char getpwnam ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+getpwnam ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_sun_getpwnam=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_sun_getpwnam=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getpwnam" >&5
+echo "${ECHO_T}$ac_cv_lib_sun_getpwnam" >&6
+if test $ac_cv_lib_sun_getpwnam = yes; then
+  LIBS="$LIBS -lsun"
+fi
+
+echo "$as_me:$LINENO: checking for inet_addr in -ldgc" >&5
+echo $ECHO_N "checking for inet_addr in -ldgc... $ECHO_C" >&6
+if test "${ac_cv_lib_dgc_inet_addr+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldgc  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char inet_addr ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+inet_addr ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dgc_inet_addr=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dgc_inet_addr=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dgc_inet_addr" >&5
+echo "${ECHO_T}$ac_cv_lib_dgc_inet_addr" >&6
+if test $ac_cv_lib_dgc_inet_addr = yes; then
+  LIBS="$LIBS -ldgc"
+fi
+
+echo "$as_me:$LINENO: checking for gethostbyname in -lresolv" >&5
+echo $ECHO_N "checking for gethostbyname in -lresolv... $ECHO_C" >&6
+if test "${ac_cv_lib_resolv_gethostbyname+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lresolv  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char gethostbyname ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_resolv_gethostbyname=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_resolv_gethostbyname=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_resolv_gethostbyname" >&6
+if test $ac_cv_lib_resolv_gethostbyname = yes; then
+  LIBS="$LIBS -lresolv"
+fi
+
+
+CFLAGS="$CFLAGS $GTK_CFLAGS $GDK_IMLIB_FLAGS"
+LIBS="$LIBS $GTK_LIBS $PTHREAD_LIBS $GDK_IMLIB_LIBS"
+
+RM="rm -f"
+LN="ln -s"
+CP="cp"
+MV="mv"
+MKDIR="mkdir"
+
+
+
+
+
+
+
+
+
+ac_config_files="$ac_config_files Makefile:Makefile.in"
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+        "s/'/'\\\\''/g;
+    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if cmp -s $cache_file confcache; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ 	]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ 	]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# NLS nuisances.
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
+    { $as_unset LANG || test "${LANG+set}" != set; } ||
+      { LANG=C; export LANG; }
+(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
+    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
+      { LC_ALL=C; export LC_ALL; }
+(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
+    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
+      { LC_TIME=C; export LC_TIME; }
+(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
+    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
+      { LC_CTYPE=C; export LC_CTYPE; }
+(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
+    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
+      { LANGUAGE=C; export LANGUAGE; }
+(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
+    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
+      { LC_COLLATE=C; export LC_COLLATE; }
+(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
+    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
+      { LC_NUMERIC=C; export LC_NUMERIC; }
+(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
+    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
+      { LC_MESSAGES=C; export LC_MESSAGES; }
+
+
+# Name of the executable.
+as_me=`(basename "$0") 2>/dev/null ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conftest.sh
+  echo  "exit 0"   >>conftest.sh
+  chmod +x conftest.sh
+  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conftest.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.53.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Report bugs to <bug-autoconf@gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.53,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    shift
+    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
+    shift
+    ;;
+  -*);;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_need_defaults=false;;
+  esac
+
+  case $1 in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
+    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    shift
+    CONFIG_FILES="$CONFIG_FILES $1"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $1"
+    ac_need_defaults=false;;
+
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+_ACEOF
+
+
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile:Makefile.in" ;;
+  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+fi
+
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=$TMPDIR/cs$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+   { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@MAKE@,$MAKE,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@CPP@,$CPP,;t t
+s,@INCLUDES@,$INCLUDES,;t t
+s,@RM@,$RM,;t t
+s,@LN@,$LN,;t t
+s,@CP@,$CP,;t t
+s,@MV@,$MV,;t t
+s,@MKDIR@,$MKDIR,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" ||
+        mkdir "$as_incr_dir" ||
+	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+  esac
+done; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+                                     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='[ 	].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[ 	]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h.  The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status.  Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*\)\(([^)]*)\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless.  Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo '  if egrep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo '  :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+  # Write a limited-size here document to $tmp/defines.sed.
+  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#define' lines.
+  echo '/^[ 	]*#[ 	]*define/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo '  fi # egrep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+  # Write a limited-size here document to $tmp/undefs.sed.
+  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#undef'
+  echo '/^[ 	]*#[ 	]*undef/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+  rm -f conftest.undefs
+  mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated by configure.  */" >$tmp/config.h
+  else
+    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+      { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" ||
+        mkdir "$as_incr_dir" ||
+	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+  esac
+done; }
+
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
+    fi
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
+  fi
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+
+ac_config_files="$ac_config_files minimal/Makefile:minimal/Makefile.in"
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+        "s/'/'\\\\''/g;
+    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if cmp -s $cache_file confcache; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ 	]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ 	]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# NLS nuisances.
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
+    { $as_unset LANG || test "${LANG+set}" != set; } ||
+      { LANG=C; export LANG; }
+(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
+    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
+      { LC_ALL=C; export LC_ALL; }
+(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
+    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
+      { LC_TIME=C; export LC_TIME; }
+(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
+    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
+      { LC_CTYPE=C; export LC_CTYPE; }
+(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
+    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
+      { LANGUAGE=C; export LANGUAGE; }
+(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
+    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
+      { LC_COLLATE=C; export LC_COLLATE; }
+(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
+    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
+      { LC_NUMERIC=C; export LC_NUMERIC; }
+(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
+    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
+      { LC_MESSAGES=C; export LC_MESSAGES; }
+
+
+# Name of the executable.
+as_me=`(basename "$0") 2>/dev/null ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conftest.sh
+  echo  "exit 0"   >>conftest.sh
+  chmod +x conftest.sh
+  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conftest.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.53.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Report bugs to <bug-autoconf@gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.53,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    shift
+    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
+    shift
+    ;;
+  -*);;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_need_defaults=false;;
+  esac
+
+  case $1 in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
+    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    shift
+    CONFIG_FILES="$CONFIG_FILES $1"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $1"
+    ac_need_defaults=false;;
+
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+_ACEOF
+
+
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile:Makefile.in" ;;
+  "minimal/Makefile" ) CONFIG_FILES="$CONFIG_FILES minimal/Makefile:minimal/Makefile.in" ;;
+  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+fi
+
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=$TMPDIR/cs$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+   { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@MAKE@,$MAKE,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@CPP@,$CPP,;t t
+s,@INCLUDES@,$INCLUDES,;t t
+s,@RM@,$RM,;t t
+s,@LN@,$LN,;t t
+s,@CP@,$CP,;t t
+s,@MV@,$MV,;t t
+s,@MKDIR@,$MKDIR,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" ||
+        mkdir "$as_incr_dir" ||
+	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+  esac
+done; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+                                     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='[ 	].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[ 	]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h.  The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status.  Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*\)\(([^)]*)\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless.  Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo '  if egrep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo '  :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+  # Write a limited-size here document to $tmp/defines.sed.
+  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#define' lines.
+  echo '/^[ 	]*#[ 	]*define/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo '  fi # egrep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+  # Write a limited-size here document to $tmp/undefs.sed.
+  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#undef'
+  echo '/^[ 	]*#[ 	]*undef/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+  rm -f conftest.undefs
+  mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated by configure.  */" >$tmp/config.h
+  else
+    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+      { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" ||
+        mkdir "$as_incr_dir" ||
+	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+  esac
+done; }
+
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
+    fi
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
+  fi
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+
+ac_config_files="$ac_config_files mysql/Makefile:mysql/Makefile.in"
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+        "s/'/'\\\\''/g;
+    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if cmp -s $cache_file confcache; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ 	]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ 	]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# NLS nuisances.
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
+    { $as_unset LANG || test "${LANG+set}" != set; } ||
+      { LANG=C; export LANG; }
+(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
+    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
+      { LC_ALL=C; export LC_ALL; }
+(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
+    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
+      { LC_TIME=C; export LC_TIME; }
+(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
+    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
+      { LC_CTYPE=C; export LC_CTYPE; }
+(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
+    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
+      { LANGUAGE=C; export LANGUAGE; }
+(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
+    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
+      { LC_COLLATE=C; export LC_COLLATE; }
+(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
+    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
+      { LC_NUMERIC=C; export LC_NUMERIC; }
+(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
+    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
+      { LC_MESSAGES=C; export LC_MESSAGES; }
+
+
+# Name of the executable.
+as_me=`(basename "$0") 2>/dev/null ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conftest.sh
+  echo  "exit 0"   >>conftest.sh
+  chmod +x conftest.sh
+  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conftest.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.53.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Report bugs to <bug-autoconf@gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.53,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    shift
+    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
+    shift
+    ;;
+  -*);;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_need_defaults=false;;
+  esac
+
+  case $1 in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
+    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    shift
+    CONFIG_FILES="$CONFIG_FILES $1"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $1"
+    ac_need_defaults=false;;
+
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+_ACEOF
+
+
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile:Makefile.in" ;;
+  "minimal/Makefile" ) CONFIG_FILES="$CONFIG_FILES minimal/Makefile:minimal/Makefile.in" ;;
+  "mysql/Makefile" ) CONFIG_FILES="$CONFIG_FILES mysql/Makefile:mysql/Makefile.in" ;;
+  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+fi
+
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=$TMPDIR/cs$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+   { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@MAKE@,$MAKE,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@CPP@,$CPP,;t t
+s,@INCLUDES@,$INCLUDES,;t t
+s,@RM@,$RM,;t t
+s,@LN@,$LN,;t t
+s,@CP@,$CP,;t t
+s,@MV@,$MV,;t t
+s,@MKDIR@,$MKDIR,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" ||
+        mkdir "$as_incr_dir" ||
+	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+  esac
+done; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+                                     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='[ 	].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[ 	]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h.  The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status.  Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*\)\(([^)]*)\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless.  Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo '  if egrep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo '  :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+  # Write a limited-size here document to $tmp/defines.sed.
+  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#define' lines.
+  echo '/^[ 	]*#[ 	]*define/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo '  fi # egrep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+  # Write a limited-size here document to $tmp/undefs.sed.
+  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#undef'
+  echo '/^[ 	]*#[ 	]*undef/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+  rm -f conftest.undefs
+  mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated by configure.  */" >$tmp/config.h
+  else
+    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+      { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" ||
+        mkdir "$as_incr_dir" ||
+	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+  esac
+done; }
+
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
+    fi
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
+  fi
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configure.in	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,68 @@
+AC_INIT(dmail.c)
+AC_CONFIG_HEADER(config.h)
+
+INCLUDES="-I."
+
+AC_PROG_CC
+
+AC_CHECK_PROG(MAKE, gmake, gmake)
+if test x"$MAKE" = x; then
+  AC_CHECK_PROG(MAKE, make, make)
+fi
+
+AC_PROG_INSTALL
+
+AC_SUBST(MAKE)
+
+AC_HEADER_STDC
+AC_HEADER_DIRENT
+AC_CHECK_HEADERS(unistd.h)
+AC_CHECK_HEADERS(sys/stat.h)
+
+AC_CHECK_FUNCS(pipe, AC_DEFINE(HAVE_PIPE,1,Determine whether we have the pipe function))                      
+
+AC_CHECK_FUNCS(connect)
+if test x"$ac_cv_func_connect" = x"no"; then
+  if test -z "$libsocket"; then
+    AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket",)
+  fi
+
+  dnl this is for isc.  need the nsl_s library as well.
+  if test -z "$libinet"; then
+    AC_CHECK_LIB(inet, socket, libnsl=1; LIBS="$LIBS -linet -lnsl_s",)
+  fi
+
+  if test -z "$libnsl"; then
+    AC_CHECK_LIB(nsl, gethostname, LIBS="$LIBS -lnsl",)
+  fi
+fi
+
+LIBS=`dw-config --libs`
+CFLAGS=`dw-config --cflags`
+
+AC_CHECK_LIB(dw, dw_main,LIBS="$LIBS",AC_MSG_ERROR(Dynamic Windows library not found. HandyFTP cannot build without it.))
+
+AC_CHECK_LIB(sun, getpwnam, LIBS="$LIBS -lsun",)
+AC_CHECK_LIB(dgc, inet_addr, LIBS="$LIBS -ldgc",)
+AC_CHECK_LIB(resolv, gethostbyname, LIBS="$LIBS -lresolv",)
+
+CFLAGS="$CFLAGS $GTK_CFLAGS $GDK_IMLIB_FLAGS"
+LIBS="$LIBS $GTK_LIBS $PTHREAD_LIBS $GDK_IMLIB_LIBS"
+
+RM="rm -f"
+LN="ln -s"
+CP="cp"
+MV="mv"
+MKDIR="mkdir"
+
+
+AC_SUBST(INCLUDES)
+AC_SUBST(RM)
+AC_SUBST(LN)
+AC_SUBST(CP)
+AC_SUBST(MV)
+AC_SUBST(MKDIR)
+
+AC_OUTPUT(Makefile:Makefile.in)
+AC_OUTPUT(minimal/Makefile:minimal/Makefile.in)
+AC_OUTPUT(mysql/Makefile:mysql/Makefile.in)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/datetime.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,214 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dw.h>
+#include <compat.h>
+#include "datetime.h"
+
+int instring(char *in, char *this)
+{
+	int thislen, inlen, z;
+
+	thislen = strlen(this);
+	inlen = strlen(in);
+
+	if(inlen < thislen)
+		return FALSE;
+
+	for(z=0;z<(inlen-thislen)+1;z++)
+	{
+		if(strncasecmp(in+z, this, thislen) == 0)
+			return TRUE;
+	}
+	return FALSE;
+}
+
+int fourdigits(char *in)
+{
+	int z;
+
+	for(z=1;z<DTBUFSIZE-4;z++)
+	{
+		if(in[z-1] != '-' &&
+		   isdigit(in[z]) &&
+		   isdigit(in[z+1]) &&
+		   isdigit(in[z+2]) &&
+		   isdigit(in[z+3]))
+			return atoi(&in[z]);
+	}
+	return 0;
+}
+
+/* Return the # coresponding to the day in the file date */
+int findday(char *in)
+{
+	char tmp[DTBUFSIZE + 1];
+	int z;
+
+	memset(tmp, 0, DTBUFSIZE + 1);
+	strncpy(tmp, in, DTBUFSIZE);
+
+	for(z=0;z<DTBUFSIZE-2;z++)
+	{
+		if(tmp[z] == '-' || tmp[z] == '/')
+		{
+			if(tmp[z+2] == '-' || tmp[z+2] == '/')
+				return atoi(&tmp[z+1]);
+		}
+	}
+	for(z=0;z<DTBUFSIZE;z++)
+	{
+		if(isdigit(tmp[z]))
+			return atoi(&tmp[z]);
+	}
+	return 0;
+}
+
+/* Return the # coresponding to the month in the file date */
+int findmonth(char *in)
+{
+	char tmp[DTBUFSIZE + 1];
+	int z;
+
+	memset(tmp, 0, DTBUFSIZE + 1);
+	strncpy(tmp, in, DTBUFSIZE);
+
+	if(instring(tmp, "jan"))
+		return 1;
+	if(instring(tmp, "feb"))
+		return 2;
+	if(instring(tmp, "mar"))
+		return 3;
+	if(instring(tmp, "apr"))
+		return 4;
+	if(instring(tmp, "may"))
+		return 5;
+	if(instring(tmp, "jun"))
+		return 6;
+	if(instring(tmp, "jul"))
+		return 7;
+	if(instring(tmp, "aug"))
+		return 8;
+	if(instring(tmp, "sep"))
+		return 9;
+	if(instring(tmp, "oct"))
+		return 10;
+	if(instring(tmp, "nov"))
+		return 11;
+	if(instring(tmp, "dec"))
+		return 12;
+
+	for(z=2;z<DTBUFSIZE-3;z++)
+	{
+		if(tmp[z] == '-' || tmp[z] == '/')
+		{
+			if(tmp[z+3] == tmp[z])
+				return atoi(&tmp[z-2]);
+		}
+	}
+	return atoi(tmp);
+}
+
+/* Return the # coresponding to the year in the file date */
+int findyear(char *in)
+{
+	char tmp[DTBUFSIZE + 1];
+	time_t t;
+	int z=0, lastdash=0, y;
+
+	memset(tmp, 0, DTBUFSIZE + 1);
+	strncpy(tmp, in, DTBUFSIZE);
+
+	y = fourdigits(tmp);
+
+	if(!instring(tmp, "-") && !instring(tmp, "/") && !y)
+	{
+		t = time(NULL);
+		return localtime(&t)->tm_year + 1900;
+	}
+	else if(!y)
+	{
+		for(z=0;z<DTBUFSIZE;z++)
+		{
+			if(tmp[z] == '-' || tmp[z] == '/')
+				lastdash = z;
+		}
+		y = atoi(&tmp[lastdash+1]);
+	}
+	if(y<80)
+		y+=80;
+	if(y<1900)
+		y+=1900;
+
+	return y;
+}
+
+/* Return the # coresponding to the hour in the file time */
+int findhour(char *in)
+{
+	char tmp[DTBUFSIZE + 1];
+	int h=0, z;
+
+	memset(tmp, 0, DTBUFSIZE + 1);
+	strncpy(tmp, in, DTBUFSIZE);
+
+	if(!instring(tmp, ":"))
+		return 0;
+
+	for(z=2;z<DTBUFSIZE;z++)
+	{
+		if(tmp[z] == ':')
+		{
+			h = atoi(&tmp[z-2]);
+			break;
+		}
+	}
+
+	if(instring(&tmp[z], "p"))
+		h+=12;
+
+	return h;
+}
+
+/* Return the # coresponding to the minute in the file time */
+int findmin(char *in)
+{
+	char tmp[DTBUFSIZE + 1];
+	int z;
+
+	memset(tmp, 0, DTBUFSIZE + 1);
+	strncpy(tmp, in, DTBUFSIZE);
+
+	if(!instring(tmp, ":"))
+		return 0;
+
+	for(z=0;z<DTBUFSIZE;z++)
+	{
+		if(tmp[z] == ':')
+			return atoi(&tmp[z+1]);
+	}
+
+	return 0;
+}
+
+/* Return the # coresponding to the second in the file time */
+int findsec(char *in)
+{
+	char tmp[DTBUFSIZE + 1];
+	int z, lastcolon=0;
+
+	memset(tmp, 0, DTBUFSIZE + 1);
+	strncpy(tmp, in, DTBUFSIZE);
+
+	if(!instring(tmp, ":"))
+		return 0;
+
+	for(z=0;z<DTBUFSIZE;z++)
+	{
+		if(tmp[z] == ':')
+			lastcolon=z;
+	}
+
+	return atoi(&tmp[lastcolon+1]);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/datetime.h	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,14 @@
+#ifndef __DATETIME_H__
+#define __DATETIME_H__
+
+#define DTBUFSIZE 30
+
+int instring(char *in, char *this);
+int findday(char *in);
+int findmonth(char *in);
+int findyear(char *in);
+int findhour(char *in);
+int findmin(char *in);
+int findsec(char *in);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/develop.txt	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,21 @@
+Diagram of how the different structures are related to each other.
+
+
+
+                                  plugin_list index (BackendPlugin)
+                                       ^
+                                       |
+                                   AccountInfo  <------->   MailFolder
+                                        ^     ^----             ^
+                                        |          \            |
+                                        |            \          v
+                                        v              ----> MailItem
+                                  AccountSettings
+
+
+
+AccountInfo backpointers are obtained using findaccount() which takes a pointer
+to any of the types as a parameter.  If a backpointer cannot be obtained NULL
+is returned.
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dmail.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,1563 @@
+/* $Id: dmail.c,v 1.19 2005/04/17 10:55:55 nuke Exp $ */
+
+#include "compat.h"
+#include "dw.h"
+#include "backend.h"
+#include "dmail.h"
+#include "sendrecv.h"
+#include "parse.h"
+
+HWND hwndFrame, hwndTree, hwndContainer;
+HMENUI menubar;
+
+extern BackendPlugin plugin_list[];
+AccountInfo AccountList[ACCOUNT_MAX];
+DmailConfig config;
+
+HMTX mutex;
+char empty_string[] = "";
+
+HWND stext1, stext2, stext3;
+
+ULONG fileicon, foldericon, linkicon;
+
+/* Used for popup menus */
+char *contexttext = NULL;
+int message_dialog(MailParsed *mp, int readonly, int reply, char *text);
+int modal_account_dialog(AccountSettings *as);
+void DWSIGNAL account_dialog(HWND handle, void *data);
+
+typedef struct _ip {
+#ifdef _BIG_ENDIAN
+	unsigned char ip4, ip3, ip2, ip1;
+#else
+	unsigned char ip1, ip2, ip3, ip4;
+#endif
+} IP4;
+
+union ip4_32 {
+	IP4 ip4;
+	unsigned long ip32;
+};
+
+/* Parses out IP information from a string returned from the server */
+void getipport(char *buffer, union ip4_32 *ip, union ip4_32 *port)
+{
+	char *buf2;
+	int z, pos=0, num=0, len = strlen(buffer);
+
+	buf2 = malloc(len+1);
+	strcpy(buf2, buffer);
+
+	port->ip32 = 0;
+	ip->ip32 = 0;
+
+	for(z=0;z<len;z++)
+	{
+		if(buf2[z] == '(')
+			pos=z+1;
+		if(buf2[z] == ',' || buffer[z] == ')')
+		{
+			unsigned char blah;
+			buf2[z] = 0;
+			blah = (unsigned char)atoi(&buf2[pos]);
+			pos=z+1;
+			switch(num)
+			{
+			case 0:
+				ip->ip4.ip4 = blah;
+				break;
+			case 1:
+				ip->ip4.ip3 = blah;
+				break;
+			case 2:
+				ip->ip4.ip2 = blah;
+				break;
+			case 3:
+				ip->ip4.ip1 = blah;
+				break;
+			case 4:
+				port->ip4.ip2 = blah;
+				break;
+			case 5:
+				port->ip4.ip1 = blah;
+				break;
+			}
+			num++;
+		}
+	}
+	free(buf2);
+}
+
+/* Generic function to parse information from a config file */
+void getline(FILE *f, char *entry, char *entrydata)
+{
+	char in[256];
+	int z;
+
+	memset(in, 0, 256);
+	fgets(in, 255, f);
+
+	if(in[strlen(in)-1] == '\n')
+		in[strlen(in)-1] = 0;
+
+	if(in[0] != '#')
+	{
+		for(z=0;z<strlen(in);z++)
+		{
+			if(in[z] == '=')
+			{
+				in[z] = 0;
+				strcpy(entry, in);
+				strcpy(entrydata, &in[z+1]);
+				return;
+			}
+		}
+	}
+	strcpy(entry, "");
+	strcpy(entrydata, "");
+}
+
+/* Returns the AccountInfo pointer from an opaque type
+ * or it returns NULL on failure.
+ */
+AccountInfo *findaccount(void *opaque)
+{
+	int n;
+	AccountInfo *ai = opaque;
+
+	if(ai &&
+	   (ai->Type == DATA_TYPE_FOLDER ||
+	   ai->Type == DATA_TYPE_ITEM ||
+	   ai->Type == DATA_TYPE_ACCOUNT))
+	{
+		void *Acc;
+
+		if(ai->Type == DATA_TYPE_ACCOUNT)
+			Acc = ai;
+		else
+			Acc = ai->Acc;
+
+		for(n=0;n<ACCOUNT_MAX;n++)
+		{
+			if(AccountList[n].Acc == Acc)
+				return &AccountList[n];
+		}
+	}
+	return NULL;
+}
+
+AccountSettings *findsettings(void *opaque)
+{
+	int n;
+	AccountInfo *ai = opaque;
+
+	if(ai &&
+	   (ai->Type == DATA_TYPE_FOLDER ||
+	   ai->Type == DATA_TYPE_ITEM ||
+	   ai->Type == DATA_TYPE_ACCOUNT))
+	{
+		void *Acc;
+
+		if(ai->Type == DATA_TYPE_ACCOUNT)
+			Acc = ai;
+		else
+			Acc = ai->Acc;
+
+		for(n=0;n<ACCOUNT_MAX;n++)
+		{
+			if(AccountList[n].Acc == Acc)
+				return &AccountList[n].Settings;
+		}
+	}
+	return NULL;
+}
+
+/* Find an account mailbox from it's name */
+MailFolder *findfolder(AccountInfo *ai, char *name)
+{
+	int n = 0;
+
+	while(ai && ai->Folders[n].Name[0])
+	{
+		if(strcmp(ai->Folders[n].Name, name) == 0)
+			return &ai->Folders[n];
+		n++;
+	}
+	return NULL;
+}
+
+/* Move item from one folder to the next */
+void moveitem(AccountInfo *ai, MailItem *mi, MailFolder *mf)
+{
+	MailItem mailitem;
+	char *data;
+	unsigned long datalen;
+
+	data = plugin_list[ai->Plug].getmail(mi->Acc, mi->Folder, mi, &datalen);
+	memcpy(&mailitem, mi, sizeof(MailItem));
+	plugin_list[ai->Plug].newitem(ai->Acc, mf, &mailitem);
+	plugin_list[ai->Plug].newmail(ai->Acc, mf, &mailitem, data, datalen);
+	plugin_list[ai->Plug].free(mi->Acc, data);
+	plugin_list[ai->Plug].delitem(mi->Acc, mi->Folder, mi);
+}
+
+/* Make a DOS style path into something a web browser can handle. */
+void urlify(char *buf)
+{
+	int z, len = strlen(buf);
+
+	for(z=0;z<len;z++)
+	{
+		if(buf[z] == '\\')
+			buf[z] = '/';
+		if(buf[z] == ':')
+			buf[z] = '|';
+	}
+}
+
+void dmail_init_tree(void)
+{
+	HTREEITEM maint, tmp;
+    int z;
+
+	for(z=0;z<PLUGIN_MAX;z++)
+	{
+		if(plugin_list[z].hMod)
+		{
+			char **accs = plugin_list[z].getaccounts();
+			int x;
+
+			for(x=0;x<ACCOUNT_MAX;x++)
+			{
+				if(!AccountList[x].Acc)
+					break;
+			}
+
+			/* Initialize our account */
+			AccountList[x].Plug = z;
+			AccountList[x].SendEve = dw_event_new();
+			AccountList[x].RecvEve = dw_event_new();
+			dw_event_reset(AccountList[x].SendEve);
+			dw_event_reset(AccountList[x].RecvEve);
+
+			if(!accs)
+			{
+				AccountSettings *set = &AccountList[x].Settings;
+
+				if(!modal_account_dialog(set))
+				{
+					/* Initialize the deafult settings */
+					strcpy(set->AccountName, "Default");
+					set->RecvHostType = HOST_TYPE_POP3;
+					strcpy(set->RecvHostName, "pop3.server.com");
+					set->RecvHostPort = 110;
+					strcpy(set->RecvHostUser, "username");
+					strcpy(set->RecvHostPass, "password");
+					set->SendHostType = HOST_TYPE_SMTP;
+					strcpy(set->SendHostName, "smtp.server.com");
+					set->SendHostPort = 25;
+					strcpy(set->SendHostUser, "");
+					strcpy(set->SendHostPass, "");
+				}
+				AccountList[x].Acc = plugin_list[z].newaccount(set->AccountName);
+				AccountList[x].Folders = plugin_list[z].getfolders(AccountList[x].Acc);
+
+
+				plugin_list[z].newsettings(AccountList[x].Acc, set);
+
+				/* Populate our tree */
+				maint = dw_tree_insert(hwndTree, set->AccountName, fileicon, 0, 0);
+				dw_tree_item_set_data(hwndTree, maint, &AccountList[x]);
+
+				if(AccountList[x].Folders)
+				{
+					int y = 0;
+
+					while(AccountList[x].Folders[y].Name[0])
+					{
+						tmp = dw_tree_insert(hwndTree, AccountList[x].Folders[y].Name, foldericon, maint, 0);
+						dw_tree_item_set_data(hwndTree, tmp, &AccountList[x].Folders[y]);
+						y++;
+					}
+				}
+				dw_tree_item_expand(hwndTree, maint);
+			}
+			else
+			{
+				int x = 0;
+
+				while(accs[x])
+				{
+					AccountList[x].Acc = plugin_list[z].openaccount(accs[x]);
+					AccountList[x].Folders = plugin_list[z].getfolders(AccountList[x].Acc);
+					AccountList[x].Plug = z;
+
+					/* Load our settings */
+					plugin_list[z].getsettings(AccountList[x].Acc, &AccountList[x].Settings);
+
+					/* Populate our tree */
+					maint = dw_tree_insert(hwndTree, accs[x], fileicon, 0, 0);
+					dw_tree_item_set_data(hwndTree, maint, AccountList[x].Acc);
+
+					if(AccountList[x].Folders)
+					{
+						int y = 0;
+
+						while(AccountList[x].Folders[y].Name[0])
+						{
+							tmp = dw_tree_insert(hwndTree, AccountList[x].Folders[y].Name, foldericon, maint, 0);
+							dw_tree_item_set_data(hwndTree, tmp, &AccountList[x].Folders[y]);
+							y++;
+						}
+					}
+					dw_tree_item_expand(hwndTree, maint);
+
+					x++;
+				}
+			}
+
+			/* Start the send and receive threads */
+			dw_thread_new((void *)Mail_Send_Thread, (void *)&AccountList[x], 20000);
+			dw_thread_new((void *)Mail_Receive_Thread, (void *)&AccountList[x], 20000);
+		}
+	}
+}
+
+void setfoldercount(MailFolder *mf, int count)
+{
+	char textbuf[1024] = "Welcome to Dynamic Mail";
+	if(mf && mf->Type == DATA_TYPE_FOLDER)
+		sprintf(textbuf, "%s (%d message%s)", mf->Name, count, count == 1 ? "" : "s");
+	else
+		count = 0;
+	dw_window_set_text(stext1, textbuf);
+	dw_window_set_data(stext1, "count", (void *)count);
+}
+
+/* Open a mail viewer window when double clicking on a mail item */
+int DWSIGNAL deleteitem(HWND hwnd, void *data)
+{
+	MailItem *mi = (MailItem *)dw_container_query_start(hwndContainer, DW_CRA_SELECTED);
+	int plug = (int)dw_window_get_data(hwndContainer, "plug");
+	AccountInfo *ai = findaccount(mi);
+	MailFolder *mf = findfolder(ai, "Trash");
+
+	if(dw_messagebox("DynamicMail", DW_MB_YESNO | DW_MB_QUESTION, "Are you sure you want to delete the selected messages?"))
+	{
+		int deleted = 0, count = (int)dw_window_get_data(stext1, "count");
+
+		while(mi)
+		{
+			MailItem *lastitem = NULL;
+
+			if(mi->Type == DATA_TYPE_ITEM)
+			{
+
+				/* If we have a trash folder, move the message there
+				 * otherwise delete the message immediately.
+				 */
+				if(mf && mf != mi->Folder)
+					moveitem(ai, mi, mf);
+				else
+					plugin_list[plug].delitem(mi->Acc, mi->Folder, mi);
+
+				lastitem = mi;
+
+				deleted++;
+			}
+			mi = (MailItem *)dw_container_query_next(hwndContainer, DW_CRA_SELECTED);
+
+			/* Delete the item after querying the next, as the next
+			 * item is dependant on the last item.
+			 */
+			if(lastitem)
+				dw_container_delete_row(hwndContainer, (char *)lastitem);
+		}
+		setfoldercount(mf, count - deleted);
+	}
+	return TRUE;
+}
+
+/* Callback to handle right clicks on the container */
+int DWSIGNAL containercontextmenu(HWND hwnd, char *text, int x, int y, void *data)
+{
+	if(text)
+	{
+		HMENUI hwndMenu, submenu;
+		HWND menuitem;
+
+		hwndMenu = dw_menu_new(0L);
+
+		menuitem = dw_menu_append_item(hwndMenu, locale_string("New Message", 20), IDM_NEWMESS, 0L, TRUE, FALSE, DW_NOMENU);
+		dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(new_message), NULL);
+
+		menuitem = dw_menu_append_item(hwndMenu, "", 0L, 0L, TRUE, FALSE, DW_NOMENU);
+
+		submenu = dw_menu_new(0L);
+
+		menuitem = dw_menu_append_item(submenu, locale_string("Including Quoting", 20), IDM_REPLYQ, 0L, TRUE, FALSE, DW_NOMENU);
+		dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(replyq_message), (void *)text);
+		menuitem = dw_menu_append_item(submenu, locale_string("Excluding Quoting", 20), IDM_REPLY, 0L, TRUE, FALSE, DW_NOMENU);
+		dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(reply_message), (void *)text);
+
+		menuitem = dw_menu_append_item(hwndMenu, locale_string("Reply To", 20), IDM_REPLY, 0L, TRUE, FALSE, submenu);
+
+		submenu = dw_menu_new(0L);
+
+		menuitem = dw_menu_append_item(submenu, locale_string("Including Quoting", 20), IDM_REPLYALLQ, 0L, TRUE, FALSE, DW_NOMENU);
+		dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(replyallq_message), (void *)text);
+		menuitem = dw_menu_append_item(submenu, locale_string("Excluding Quoting", 20), IDM_REPLYALL, 0L, TRUE, FALSE, DW_NOMENU);
+		dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(replyall_message), (void *)text);
+
+		menuitem = dw_menu_append_item(hwndMenu, locale_string("Reply To All", 20), IDM_REPLY, 0L, TRUE, FALSE, submenu);
+
+		menuitem = dw_menu_append_item(hwndMenu, "", 0L, 0L, TRUE, FALSE, DW_NOMENU);
+
+		menuitem = dw_menu_append_item(hwndMenu, locale_string("Delete", 21), IDM_DELITEM, 0L, TRUE, FALSE, DW_NOMENU);
+		dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(deleteitem), (void *)text);
+		dw_menu_popup(&hwndMenu, hwndFrame, x, y);
+	}
+
+	return FALSE;  
+}
+
+/* Callback to handle right clicks on the container */
+static int DWSIGNAL treecontextmenu(HWND hwnd, char *text, int x, int y, void *data, void *itemdata)
+{
+	if(text)
+	{
+		HMENUI hwndMenu;
+		HWND menuitem;
+
+		hwndMenu = dw_menu_new(0L);
+
+		menuitem = dw_menu_append_item(hwndMenu, locale_string("New Folder", 20), IDM_NEWFOLD, 0L, TRUE, FALSE, DW_NOMENU);
+		dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(new_folder), itemdata);
+
+		menuitem = dw_menu_append_item(hwndMenu, "", 0L, 0L, TRUE, FALSE, DW_NOMENU);
+
+		menuitem = dw_menu_append_item(hwndMenu, locale_string("Account Settings", 20), IDM_ACCOUNT, 0L, TRUE, FALSE, DW_NOMENU);
+		dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(account_dialog), itemdata);
+
+		if(strcasecmp(text, "Trash") == 0)
+		{
+			menuitem = dw_menu_append_item(hwndMenu, "", 0L, 0L, TRUE, FALSE, DW_NOMENU);
+
+			menuitem = dw_menu_append_item(hwndMenu, locale_string("Empty Trash", 20), IDM_TRASH, 0L, TRUE, FALSE, DW_NOMENU);
+			dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(empty_trash), itemdata);
+		}
+		dw_menu_popup(&hwndMenu, hwndFrame, x, y);
+	}
+	return TRUE;
+}
+
+/* Open a mail viewer window when double clicking on a mail item */
+int DWSIGNAL containerselect(HWND hwnd, char *text, void *data)
+{
+	MailItem *mi = (MailItem *)text;
+	int plug = (int)dw_window_get_data(hwndContainer, "plug");
+
+	if(mi && mi->Type == DATA_TYPE_ITEM)
+	{
+		unsigned long len;
+		char *mytext = plugin_list[plug].getmail(mi->Acc, mi->Folder, mi, &len);
+
+		if(mytext)
+		{
+			MailParsed *mp = malloc(sizeof(MailParsed));
+
+			char *view = parse_message(mytext, len, mp);
+
+			message_dialog(mp, TRUE, FALSE, view);
+			plugin_list[plug].free(mi->Acc, mytext);
+		}
+	}
+	return TRUE;
+}
+
+/* Display the mail in the preview window */
+int DWSIGNAL containerfocus(HWND hwnd, HWND treeitem, char *text, void *data)
+{
+	MailItem *mi = (MailItem *)text;
+	int plug = (int)dw_window_get_data(hwndContainer, "plug");
+
+	if(mi && mi->Type == DATA_TYPE_ITEM)
+	{
+		unsigned long len;
+		char *mytext = plugin_list[plug].getmail(mi->Acc, mi->Folder, mi, &len);
+		HWND mle = (HWND)dw_window_get_data(hwnd, "mle");
+
+		if(mytext)
+		{
+			if(mle)
+			{
+				char *view = parse_message(mytext, len, NULL);
+
+				dw_mle_clear(mle);
+				dw_mle_import(mle, view, -1);
+				dw_mle_set_cursor(mle, 0);
+			}
+			plugin_list[plug].free(mi->Acc, mytext);
+		}
+	}
+	return TRUE;
+}
+
+/* Update the message list when a user selects a tree item */
+int DWSIGNAL tree_select(HWND handle, HTREEITEM item, char *text, void *date, void *itemdata)
+{
+	void *cdata = dw_window_get_data(hwndContainer, "items");
+	MailFolder *mf = (MailFolder *)itemdata;
+	int clear = TRUE;
+	HWND mle = (HWND)dw_window_get_data(hwndContainer, "mle");
+	int plug = (int)dw_window_get_data(hwndContainer, "plug");
+	MailItem *olditems = (MailItem *)cdata;
+	int count = 0;
+
+	/* Don't redraw if we don't have to */
+	if(olditems && olditems->Type == DATA_TYPE_ITEM && olditems->Folder == mf)
+		return TRUE;
+
+	dw_window_set_data(hwndContainer, "items", NULL);
+
+	if(mle)
+		dw_mle_clear(mle);
+
+	/* If the user clicked on a tree folder, populate the container
+	 * with the contents of that folder.  Otherwise clear the container.
+	 */
+	if(mf && mf->Type == DATA_TYPE_FOLDER)
+	{
+		MailItem *mi;
+		AccountInfo *ai = findaccount(mf);
+
+		if(ai)
+		{
+			plug = ai->Plug;
+			dw_window_set_data(hwndContainer, "plug", (void *)plug);
+			dw_window_set_data(hwndContainer, "account", (void *)ai);
+
+			mi = plugin_list[plug].getitems(mf->Acc, mf);
+
+			dw_window_set_data(hwndContainer, "items", mi);
+
+			if(mi)
+			{
+				void *containerinfo;
+				int z;
+
+				while(mi[count].Id)
+					count++;
+
+				if(count)
+				{
+					dw_container_clear(hwndContainer, FALSE);
+
+					containerinfo = dw_container_alloc(hwndContainer, count);
+
+					for(z=0;z<count;z++)
+					{
+						unsigned long size = mi[z].Size;
+						char *Topic = mi[z].Topic;
+						char *From = mi[z].From;
+
+						/* Icons */
+						dw_container_set_item(hwndContainer, containerinfo, 0, z, &fileicon);
+						dw_container_set_item(hwndContainer, containerinfo, 1, z, &foldericon);
+						dw_container_set_item(hwndContainer, containerinfo, 2, z, &Topic);
+						dw_container_set_item(hwndContainer, containerinfo, 3, z, &From);
+						/* Date and Time */
+						dw_container_set_item(hwndContainer, containerinfo, 4, z, &(mi[z].Date));
+						dw_container_set_item(hwndContainer, containerinfo, 5, z, &(mi[z].Time));
+						dw_container_set_item(hwndContainer, containerinfo, 6, z, &size);
+						dw_container_set_row_title(containerinfo, z, (char *)&(mi[z]));
+					}
+
+					dw_container_insert(hwndContainer, containerinfo, count);
+					dw_container_optimize(hwndContainer);
+					clear = FALSE;
+				}
+			}
+		}
+
+		if(clear)
+			dw_container_clear(hwndContainer, TRUE);
+	}
+	else
+		dw_container_clear(hwndContainer, TRUE);
+	if(mf && cdata)
+		plugin_list[plug].free(mf->Acc, cdata);
+	setfoldercount(mf, count);
+	return TRUE;
+}
+
+int DWSIGNAL exitfunc(HWND hwnd, void *data)
+{
+	if(dw_messagebox("DynamicMail", DW_MB_YESNO | DW_MB_QUESTION, "Are you sure you want to exit DynamicMail?"))
+	{
+		/* Destroy the main window */
+		dw_window_destroy(hwndFrame);
+		dw_exit(0);
+	}
+	return TRUE;
+}
+
+/* Delete event */
+int DWSIGNAL message_deleteevent(HWND hwnd, void *data)
+{
+	int readonly = (int)dw_window_get_data(hwnd, "readonly");
+
+	if(readonly || (!readonly && dw_messagebox("DynamicMail", DW_MB_YESNO | DW_MB_QUESTION, "Are you sure you want to close this unsent message?")))
+	{
+		MailParsed *mp = (MailParsed *)dw_window_get_data(hwnd, "MailParsed");
+
+		if(mp)
+		{
+			parse_free(mp);
+			free(mp);
+		}
+		dw_window_destroy(hwnd);
+	}
+	return TRUE;
+}
+
+/* Handle user request to show a raw message */
+int DWSIGNAL show_raw(HWND hwnd, void *data)
+{
+	HWND window = (HWND)data;
+	HWND mle = (HWND)dw_window_get_data(window, "mle");
+	MailParsed *mp = (MailParsed *)dw_window_get_data(window, "MailParsed");
+
+	if(mp)
+	{
+		dw_mle_clear(mle);
+		if(dw_window_get_data(window, "raw"))
+		{
+			dw_window_set_data(window, "raw", 0);
+			if(mp->text && mp->text[0])
+				dw_mle_import(mle, mp->text[0], -1);
+			else if(mp->html && mp->html[0])
+				dw_mle_import(mle, mp->html[0], -1);
+		}
+		else
+		{
+			dw_window_set_data(window, "raw", (void *)1);
+			if(mp->raw)
+				dw_mle_import(mle, mp->raw, -1);
+		}
+		dw_mle_set_cursor(mle, 0);
+	}
+	return 0;
+}
+
+/* Handle user request to save the main window position */
+int DWSIGNAL save_position(HWND hwnd, void *data)
+{
+	float pos;
+	HWND hsplit = (HWND)dw_window_get_data(hwndFrame, "hsplit");
+	HWND vsplit = (HWND)dw_window_get_data(hwndFrame, "vsplit");
+
+	dw_window_get_pos_size(hwndFrame, &config.x, &config.y, &config.width, &config.height);
+	if(hsplit)
+	{
+		pos = dw_splitbar_get(hsplit);
+		config.hsplit = (unsigned long)pos;
+	}
+	if(vsplit)
+	{
+		pos = dw_splitbar_get(vsplit);
+		config.vsplit = (unsigned long)pos;
+	}
+	saveconfig();
+	return TRUE;
+}
+
+/* Handle user request to send newly composed message */
+int DWSIGNAL send_message(HWND hwnd, void *data)
+{
+	HWND window = (HWND)data;
+	HWND mle = (HWND)dw_window_get_data(window, "mle");
+	HWND to = (HWND)dw_window_get_data(window, "entry1");
+	HWND from = (HWND)dw_window_get_data(window, "entry2");
+	HWND subject = (HWND)dw_window_get_data(window, "entry3");
+	HWND listbox1 = (HWND)dw_window_get_data(window, "listbox1");
+	HWND listbox2 = (HWND)dw_window_get_data(window, "listbox2");
+	int lcount, len, n;
+	AccountInfo *ai = (AccountInfo *)dw_window_get_data(hwndContainer, "account");
+	MailItem mi;
+	MailFolder *mf = NULL;
+	char *text, tmpbuf[41];
+	DWEnv env;
+	time_t now;
+	struct tm time_val;
+
+	if(!ai)
+		ai = &AccountList[0];
+
+	if(dw_window_get_data(window, "readonly"))
+		return TRUE;
+
+	memset(&mi, 0, sizeof(MailItem));
+
+	text = dw_window_get_text(to);
+
+	/* Query user entered text */
+	if(text)
+	{
+		if(*text)
+			strcpy(mi.To, text);
+		dw_free(text);
+	}
+
+	text = dw_window_get_text(subject);
+	if(text)
+	{
+		strcpy(mi.Topic, text);
+		dw_free(text);
+	}
+
+	/* User the email from the account settings for sending */
+	sprintf(mi.From, "%s <%s>", ai->Settings.UserRealName,
+			ai->Settings.UserEmail);
+
+	lcount = dw_listbox_count(listbox1);
+
+	if(!mi.To[0] && lcount)
+		dw_listbox_get_text(listbox1, 0, mi.To, MAIL_ITEM_MAX);
+
+	/* FIXME: This should query the text length! */
+	text = calloc(1, 200000);
+
+	/* Create a header */
+	dw_environment_query(&env);
+	now = time(NULL);
+	time_val = *localtime(&now);
+	strftime(tmpbuf, 40, "%a, %d %b %Y %H:%M:%S", &time_val);
+	strcat(text, tmpbuf);
+
+	sprintf(text, "Date: %s\r\nFrom: %s\r\nUser-Agent: DynamicMail 0.1 (%s %d.%d)\r\nMIME-Version: 1.0\r\nTo: ",
+			tmpbuf, mi.From, env.osName, env.MajorVersion, env.MinorVersion);
+
+	strcat(text, mi.To);
+
+	/* Create the to line */
+	for(n=0;n<lcount;n++)
+	{
+		char To[MAIL_ITEM_MAX+1];
+
+		dw_listbox_get_text(listbox1, n, To, MAIL_ITEM_MAX);
+		if(To[0] && (n || (!n && strncmp(mi.To, To, MAIL_ITEM_MAX))))
+		{
+			strcat(text, ",\r\n ");
+			strcat(text, To);
+		}
+	}
+
+	/* If the Reply-to information is set, use it */
+	if(ai->Settings.ReplyRealName[0] && ai->Settings.ReplyEmail[0])
+	{
+		strcat(text, "\r\nReply-to: ");
+		strcat(text, ai->Settings.ReplyRealName);
+		strcat(text, " <");
+		strcat(text, ai->Settings.ReplyEmail);
+		strcat(text, ">");
+	}
+	/* Create the subject and content lines */
+	strcat(text, "\r\nSubject: ");
+	strcat(text, mi.Topic);
+	strcat(text, "\r\nContent-Type: text/plain\r\nContent-Transfer-Encoding: 7bit\r\n\r\n");
+
+	n=0;
+
+	len = strlen(text);
+	dw_mle_export(mle, &text[len], 0, 200000 - len);
+
+	/* Find the outbox */
+	while(ai->Folders[n].Name[0])
+	{
+		if(strcmp(ai->Folders[n].Name, "Outbox") == 0)
+		{
+			mf = &ai->Folders[n];
+			break;
+		}
+		n++;
+	}
+
+	/* Save the new message to the outbox */
+	if(mf)
+	{
+		mi.Size = strlen(text);
+		init_date_time(&mi.Date, &mi.Time);
+		plugin_list[ai->Plug].newitem(ai->Acc, mf, &mi);
+		plugin_list[ai->Plug].newmail(ai->Acc, mf, &mi, text, mi.Size);
+	}
+
+	/* Cleanup */
+	free(text);
+
+	/* Tell the send thread to go! */
+	dw_event_post(ai->SendEve);
+
+	/* Destroy the compose window */
+	dw_window_destroy(window);
+	return TRUE;
+}
+
+/* Handle user request to send messages waiting in the outbox */
+int DWSIGNAL send_mail(HWND hwnd, void *data)
+{
+	AccountInfo *ai = (AccountInfo *)dw_window_get_data(hwndContainer, "account");
+
+	/* Tell the send thread to go! */
+	dw_event_post(ai->SendEve);
+
+	return TRUE;
+}
+
+/* Handle user request to check mail */
+int DWSIGNAL check_mail(HWND hwnd, void *data)
+{
+	int z;
+
+	for(z=0;z<ACCOUNT_MAX;z++)
+	{
+		if(AccountList[z].Acc)
+			dw_event_post(AccountList[z].RecvEve);
+
+	}
+	return TRUE;
+}
+
+ULONG messageItems[]=
+{
+	NEWTAB      , REMOVETAB   , TB_SEPARATOR, CONNECT     , DISCONNECT  ,
+	TB_SEPARATOR, IDM_EXIT    , TB_SEPARATOR, REMOVEFROMQ , ADDTOQ      ,
+	FLUSHQ      , TB_SEPARATOR, SAVETITLE   , UNSAVETITLE , TB_SEPARATOR,
+	PB_CHANGE   , TB_SEPARATOR, IDM_PREFERENCES , ADMIN       , TB_SEPARATOR,
+	IDM_GENERALHELP, IDM_ABOUT   , 0
+};
+
+char messageHelpItems[][100]=
+{
+	"Send Message", "Remove Tab", "", "Connect", "Disconnect",
+	"", "Exit", "", "Remove From Queue", "Add to Queue",
+	"Flush Queue", "", "Save Title", "Unsave Title", "",
+	"Refresh", "", "Preferences", "Toggle Raw Message", "",
+	"General Help", "About"
+};
+
+void *messageFunctions[] = { (void *)send_message, NULL, NULL, NULL, NULL,
+						  NULL, NULL, NULL, NULL, NULL,
+						  NULL, NULL, NULL, NULL, NULL,
+						  NULL, NULL, NULL, NULL, (void *)show_raw,
+						  NULL, NULL };
+
+/* Generic multi-use function for creating mail reading and composing windows */
+int message_dialog(MailParsed *mp, int readonly, int reply, char *text)
+{
+	HWND window, mainbox, toolbox, hbox, stext, entry, mle, button, listbox, controlbox, tempbutton, menuitem;
+	HMENUI menu;
+	ULONG flStyle = DW_FCF_SYSMENU | DW_FCF_TITLEBAR | DW_FCF_SIZEBORDER | DW_FCF_MINMAX |
+		DW_FCF_SHELLPOSITION | DW_FCF_TASKLIST | DW_FCF_DLGBORDER;
+	int z = 0;
+
+	window = dw_window_new(HWND_DESKTOP, mp ? (mp->topic ? mp->topic : "") : "New Message", flStyle);
+
+	dw_window_set_icon(window, MAIN_FRAME);
+
+	if(readonly)
+		dw_window_set_data(window, "readonly", (void *)1);
+
+	if(mp)
+		dw_window_set_data(window, "MailParsed", (void *)mp);
+
+	mainbox = dw_box_new(BOXVERT, 0);
+
+	dw_box_pack_start(window, mainbox, 0, 0, TRUE, TRUE, 0);
+
+	toolbox = dw_box_new(BOXHORZ, 1);
+
+	dw_box_pack_start(mainbox, toolbox, 0, 0, TRUE, FALSE, 0);
+
+	/* Create the toolbar */
+	while(messageItems[z])
+	{
+		if(messageItems[z] != -1)
+		{
+			tempbutton = dw_bitmapbutton_new(messageHelpItems[z], messageItems[z]);
+
+			if(messageFunctions[z])
+				dw_signal_connect(tempbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(messageFunctions[z]), (void *)window);
+
+			dw_box_pack_start(toolbox, tempbutton, 30, 30, FALSE, FALSE, 0);
+		}
+		else
+			dw_box_pack_start(toolbox, 0, 5, 30, FALSE, FALSE, 0);
+		z++;
+	}
+	dw_box_pack_start(toolbox, 0, 3, 30, TRUE, FALSE, 0);
+
+	hbox = dw_box_new(BOXHORZ, 0);
+
+	dw_box_pack_start(mainbox, hbox, 0, 0, TRUE, FALSE, 0);
+
+    if(readonly)
+		stext = dw_text_new("From:", 0);
+	else
+		stext = dw_text_new("To:", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER | DW_DT_CENTER, DW_DT_VCENTER | DW_DT_CENTER);
+
+	dw_box_pack_start(hbox, stext, 40, 22, FALSE, FALSE, 0);
+
+	entry = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(entry, MAIL_ITEM_MAX);
+
+	dw_window_set_data(window, "entry1", (void *)entry);
+
+	if(mp && readonly)
+		dw_window_set_text(entry, mp->from);
+
+	if(readonly)
+		dw_window_disable(entry);
+
+	dw_box_pack_start(hbox, entry, 100, 22, TRUE, FALSE, 0);
+
+	if(readonly)
+	{
+		stext = dw_text_new("Date:", 0);
+		dw_window_set_style(stext, DW_DT_VCENTER | DW_DT_CENTER, DW_DT_VCENTER | DW_DT_CENTER);
+
+		dw_box_pack_start(hbox, stext, 40, 22, FALSE, FALSE, 0);
+	}
+	else
+	{
+		button = dw_button_new("Cc:", 0);
+
+		dw_box_pack_start(hbox, button, 40, 22, FALSE, FALSE, 0);
+	}
+
+	entry = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(entry, MAIL_ITEM_MAX);
+
+	dw_window_set_data(window, "entry2", (void *)entry);
+
+	if(readonly)
+	{
+		dw_window_disable(entry);
+
+		if(mp && mp->date)
+			dw_window_set_text(entry, mp->date);
+	}
+
+	dw_box_pack_start(hbox, entry, 100, 22, TRUE, FALSE, 0);
+
+	hbox = dw_box_new(BOXHORZ, 0);
+
+	dw_box_pack_start(mainbox, hbox, 0, 0, TRUE, FALSE, 0);
+
+	if(readonly)
+	{
+		stext = dw_text_new("To:", 0);
+		dw_window_set_style(stext, DW_DT_TOP | DW_DT_CENTER, DW_DT_TOP | DW_DT_CENTER);
+
+		dw_box_pack_start(hbox, stext, 40, 44, FALSE, FALSE, 0);
+	}
+
+	listbox = dw_listbox_new(0, FALSE);
+
+	dw_window_set_data(window, "listbox1", (void *)listbox);
+
+	if(readonly || reply)
+	{
+		if(mp)
+		{
+			/* Fill in all the to addresses into the listbox */
+			int n = 0;
+
+			if(reply && mp)
+			{
+				if(mp->replyto)
+					dw_listbox_append(listbox, mp->replyto);
+				else
+					dw_listbox_append(listbox, mp->from);
+			}
+
+			if(reply == IDM_REPLYALL || reply == IDM_REPLYALLQ || !reply)
+			{
+				while(mp->to[n] && n < MAX_TO_ADDRESSES)
+				{
+					dw_listbox_append(listbox, mp->to[n]);
+					n++;
+				}
+			}
+		}
+		if(readonly)
+			dw_window_disable(listbox);
+	}
+
+	dw_box_pack_start(hbox, listbox, 100, 44, TRUE, FALSE, 0);
+
+	if(readonly)
+	{
+		stext = dw_text_new("Cc:", 0);
+		dw_window_set_style(stext, DW_DT_TOP | DW_DT_CENTER, DW_DT_TOP | DW_DT_CENTER);
+
+		dw_box_pack_start(hbox, stext, 40, 44, FALSE, FALSE, 0);
+	}
+
+	listbox = dw_listbox_new(0, FALSE);
+
+	dw_window_set_data(window, "listbox2", (void *)listbox);
+
+	if(readonly)
+		dw_window_disable(listbox);
+
+	dw_box_pack_start(hbox, listbox, 100, 44, TRUE, FALSE, 0);
+
+	hbox = dw_box_new(BOXHORZ, 0);
+
+	dw_box_pack_start(mainbox, hbox, 0, 0, TRUE, FALSE, 0);
+
+	stext = dw_text_new("Subject:", 0);
+	dw_window_set_style(stext, DW_DT_VCENTER | DW_DT_CENTER, DW_DT_VCENTER | DW_DT_CENTER);
+
+	dw_box_pack_start(hbox, stext, 50, 22, FALSE, FALSE, 0);
+
+	entry = dw_entryfield_new("", 0);
+	dw_entryfield_set_limit(entry, MAIL_ITEM_MAX);
+
+	dw_window_set_data(window, "entry3", (void *)entry);
+
+	if(mp)
+	{
+		if(reply && strncasecmp(mp->topic, "Re:", 3))
+		{
+			char *tmp = malloc(strlen(mp->topic) + 5);
+
+			sprintf(tmp, "Re: %s", mp->topic);
+			dw_window_set_text(entry, tmp);
+			free(tmp);
+		}
+		else
+			dw_window_set_text(entry, mp->topic);
+	}
+
+	if(readonly)
+		dw_window_disable(entry);
+
+	dw_box_pack_start(hbox, entry, 100, 22, TRUE, FALSE, 0);
+
+	mle = dw_mle_new(0);
+
+	dw_window_set_data(window, "mle", (void *)mle);
+
+	if(reply == IDM_REPLYQ || reply == IDM_REPLYALLQ)
+	{
+		char *oldtext = NULL;
+
+		if(mp && mp->text && mp->text[0])
+			oldtext = mp->text[0];
+		else if(mp && mp->html && mp->html[0])
+			oldtext = mp->html[0];
+		else 
+			oldtext = text;
+
+		if(oldtext)
+		{
+			int lines = count_lines(oldtext);
+			char *newtext = malloc(strlen(oldtext) + lines + 1);
+			make_reply(oldtext, newtext);
+			dw_mle_import(mle, newtext, -1);
+			dw_mle_set_cursor(mle, 0);
+			free(newtext);
+		}
+	}
+	else if(!reply)
+	{
+		if(mp && mp->text && mp->text[0])
+			dw_mle_import(mle, mp->text[0], -1);
+		else if(mp && mp->html && mp->html[0])
+			dw_mle_import(mle, mp->html[0], -1);
+		else if(text)
+			dw_mle_import(mle, text, -1);
+		dw_mle_set_cursor(mle, 0);
+	}
+
+	dw_mle_set_editable(mle, readonly ? FALSE : TRUE);
+	dw_mle_set_word_wrap(mle, TRUE);
+
+	dw_window_set_color(mle, DW_CLR_BLACK, DW_CLR_WHITE);
+
+	dw_box_pack_start(mainbox, mle, 100, 100, TRUE, TRUE, 0);
+
+	controlbox = dw_box_new(BOXHORZ, 0);
+
+	dw_box_pack_start(mainbox, controlbox, 0, 0, TRUE, FALSE, 0);
+
+	stext = dw_status_text_new("Welcome to DynamicMail.", 1026);
+
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(controlbox, stext, 100, 15, TRUE, FALSE, 2);
+
+	stext = dw_status_text_new("Normal", 1026);
+
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(controlbox, stext, 50, 15, FALSE, FALSE, 2);
+
+	stext = dw_status_text_new("MIME", 1026);
+
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(controlbox, stext, 50, 15, FALSE, FALSE, 2);
+
+	menubar = dw_menubar_new(window);
+
+	menu = dw_menu_new(0L);
+
+	menuitem = dw_menu_append_item(menu, locale_string("Send", 20), IDM_SEND, 0L, TRUE, FALSE, DW_NOMENU);
+	dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(send_message), (void *)window);
+
+	menuitem = dw_menu_append_item(menu, locale_string("Save", 20), IDM_SAVE, 0L, TRUE, FALSE, DW_NOMENU);
+
+	menuitem = dw_menu_append_item(menu, "", 0L, 0L, TRUE, FALSE, DW_NOMENU);
+
+	menuitem = dw_menu_append_item(menu, locale_string("Toggle Raw", 20), IDM_RAWTOG, 0L, TRUE, FALSE, DW_NOMENU);
+	dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(show_raw), (void *)window);
+
+	menuitem = dw_menu_append_item(menubar, locale_string("~Message", 2), IDM_MESSAGE, 0L, TRUE, FALSE, menu);
+
+	menu = dw_menu_new(0L);
+
+	menuitem = dw_menu_append_item(menu, locale_string("~General Help", 20), IDM_GENERALHELP, 0L, TRUE, FALSE, DW_NOMENU);
+
+	dw_menu_append_item(menu, "", 0L, 0L, TRUE, FALSE, DW_NOMENU);
+	menuitem = dw_menu_append_item(menu, locale_string("~About", 23), IDM_ABOUT, 0L, TRUE, FALSE, DW_NOMENU);
+
+	menuitem = dw_menu_append_item(menubar, locale_string("~Help", 2), IDM_HELP, 0L, TRUE, FALSE, menu);
+
+	dw_signal_connect(window, DW_SIGNAL_DELETE, DW_SIGNAL_FUNC(message_deleteevent), NULL);
+
+	dw_window_show(window);
+
+	return TRUE;
+}
+
+/* User wants to compose a message */
+int DWSIGNAL new_message(HWND hwnd, void *data)
+{
+	return message_dialog(NULL, FALSE, FALSE, NULL);
+}
+
+
+void reply_dialog(HWND hwnd, MailItem *mi, int reply)
+{
+	int plug = (int)dw_window_get_data(hwndContainer, "plug");
+
+	if(mi && mi->Type == DATA_TYPE_ITEM)
+	{
+		unsigned long len;
+		char *mytext = plugin_list[plug].getmail(mi->Acc, mi->Folder, mi, &len);
+
+		if(mytext)
+		{
+			MailParsed *mp = malloc(sizeof(MailParsed));
+
+			char *view = parse_message(mytext, len, mp);
+
+			message_dialog(mp, FALSE, reply, view);
+			plugin_list[plug].free(mi->Acc, mytext);
+		}
+	}
+}
+
+/* Tree context handlers */
+int DWSIGNAL empty_trash(HWND hwnd, void *data)
+{
+	MailFolder *mf = (MailFolder *)data;
+	int n = 0, plug = (int)dw_window_get_data(hwndContainer, "plug");
+	MailItem *mi = plugin_list[plug].getitems(mf->Acc, mf);
+	HWND mle = (HWND)dw_window_get_data(hwndContainer, "mle");
+
+	if(mi)
+	{
+		if(mle)
+			dw_mle_clear(mle);
+
+		dw_container_clear(hwndContainer, TRUE);
+		while(mi[n].Id)
+		{
+			plugin_list[plug].delitem(mi[n].Acc, mi[n].Folder, &mi[n]);
+			n++;
+		}
+		setfoldercount(mf, 0);
+	}
+	return TRUE;
+}
+
+int DWSIGNAL new_folder(HWND hwnd, void *data)
+{
+	return TRUE;
+}
+
+/* User wants to compose a message reply */
+int DWSIGNAL reply_message(HWND hwnd, void *data)
+{
+	reply_dialog(hwnd, (MailItem *)data, IDM_REPLY);
+	return TRUE;
+}
+
+int DWSIGNAL replyq_message(HWND hwnd, void *data)
+{
+	reply_dialog(hwnd, (MailItem *)data, IDM_REPLYQ);
+	return TRUE;
+}
+
+int DWSIGNAL replyall_message(HWND hwnd, void *data)
+{
+	reply_dialog(hwnd, (MailItem *)data, IDM_REPLYALL);
+	return TRUE;
+}
+
+int DWSIGNAL replyallq_message(HWND hwnd, void *data)
+{
+	reply_dialog(hwnd, (MailItem *)data, IDM_REPLYALLQ);
+	return TRUE;
+}
+
+ULONG mainItems[]=
+{
+	NEWTAB      , REMOVETAB   , TB_SEPARATOR, CONNECT     , DISCONNECT  ,
+	TB_SEPARATOR, IDM_EXIT    , TB_SEPARATOR, REMOVEFROMQ , ADDTOQ      ,
+	FLUSHQ      , TB_SEPARATOR, SAVETITLE   , UNSAVETITLE , TB_SEPARATOR,
+	PB_CHANGE   , TB_SEPARATOR, IDM_PREFERENCES , ADMIN       , TB_SEPARATOR,
+	IDM_GENERALHELP, IDM_ABOUT   , 0
+};
+
+char mainHelpItems[][100]=
+{
+	"Check Mail", "Send Mail", "", "Connect", "Disconnect",
+	"", "Exit", "", "Remove From Queue", "Add to Queue",
+	"Flush Queue", "", "Save Title", "Unsave Title", "",
+	"Refresh", "", "Preferences", "Site Administration", "",
+	"General Help", "About"
+};
+
+void *mainFunctions[] = { (void *)check_mail, (void *)send_mail, NULL, NULL, NULL,
+						  NULL, NULL, NULL, NULL, NULL,
+						  NULL, NULL, NULL, NULL, NULL,
+						  NULL, NULL, NULL, NULL, NULL,
+						  NULL, NULL };
+
+/* Create the main window with a notebook and a menu. */
+void dmail_init(void)
+{
+	HWND mainbox, toolbox, tempbutton, menuitem, controlbox, mle, splitbar, vsplitbar;
+	HMENUI menu;
+	float pos;
+	ULONG flStyle = DW_FCF_SYSMENU | DW_FCF_TITLEBAR | DW_FCF_SIZEBORDER | DW_FCF_MINMAX |
+		DW_FCF_SHELLPOSITION | DW_FCF_TASKLIST | DW_FCF_DLGBORDER;
+	char *titles[7] = { "",	"", "Topic", "From", "Date", "Time", "Size" };
+	unsigned long flags[7] = {
+		DW_CFA_BITMAPORICON | DW_CFA_RIGHT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR,
+		DW_CFA_BITMAPORICON | DW_CFA_RIGHT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR,
+		DW_CFA_STRING | DW_CFA_LEFT | DW_CFA_HORZSEPARATOR,
+		DW_CFA_STRING | DW_CFA_LEFT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR,
+		DW_CFA_DATE | DW_CFA_RIGHT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR,
+		DW_CFA_TIME | DW_CFA_RIGHT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR,
+		DW_CFA_ULONG | DW_CFA_RIGHT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR };
+	int z = 0;
+
+	hwndFrame = dw_window_new(HWND_DESKTOP, "DynamicMail", flStyle);
+
+	dw_window_set_icon(hwndFrame, MAIN_FRAME);
+
+	mainbox = dw_box_new(BOXVERT, 0);
+
+	dw_box_pack_start(hwndFrame, mainbox, 0, 0, TRUE, TRUE, 0);
+
+	toolbox = dw_box_new(BOXHORZ, 1);
+
+	dw_box_pack_start(mainbox, toolbox, 0, 0, TRUE, FALSE, 0);
+
+	/* Create the toolbar */
+	while(mainItems[z])
+	{
+		if(mainItems[z] != -1)
+		{
+			tempbutton = dw_bitmapbutton_new(mainHelpItems[z], mainItems[z]);
+
+			if(messageFunctions[z])
+				dw_signal_connect(tempbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(mainFunctions[z]), (void *)mainItems[z]);
+
+			dw_box_pack_start(toolbox, tempbutton, 30, 30, FALSE, FALSE, 0);
+		}
+		else
+			dw_box_pack_start(toolbox, 0, 5, 30, FALSE, FALSE, 0);
+		z++;
+	}
+	dw_box_pack_start(toolbox, 0, 3, 30, TRUE, FALSE, 0);
+
+	hwndTree = dw_tree_new(1050L);
+
+	dw_signal_connect(hwndTree, DW_SIGNAL_ITEM_SELECT, DW_SIGNAL_FUNC(tree_select), NULL);
+
+	hwndContainer = dw_container_new(117L, TRUE);
+
+	if(!dw_container_setup(hwndContainer, flags, titles, 7, 3))
+		dw_messagebox("DynamicMail", DW_MB_OK | DW_MB_ERROR, "Error Creating Container!");
+
+	dw_container_set_column_width(hwndContainer, 0, 18);
+	dw_container_set_column_width(hwndContainer, 1, 18);
+	dw_container_set_column_width(hwndContainer, 2, 300);
+
+	dw_signal_connect(hwndContainer, DW_SIGNAL_ITEM_ENTER, DW_SIGNAL_FUNC(containerselect), NULL);
+	dw_signal_connect(hwndContainer, DW_SIGNAL_ITEM_CONTEXT, DW_SIGNAL_FUNC(containercontextmenu), NULL);
+	dw_signal_connect(hwndContainer, DW_SIGNAL_ITEM_SELECT, DW_SIGNAL_FUNC(containerfocus), NULL);
+	dw_signal_connect(hwndTree, DW_SIGNAL_ITEM_CONTEXT, DW_SIGNAL_FUNC(treecontextmenu), NULL);
+
+	mle = dw_mle_new(1040);
+
+	dw_window_set_data(hwndContainer, "mle", (void *)mle);
+
+	dw_window_set_color(mle, DW_CLR_BLACK, DW_CLR_WHITE);
+
+	dw_mle_set_word_wrap(mle, TRUE);
+	dw_mle_set_editable(mle, FALSE);
+
+	vsplitbar = dw_splitbar_new(BOXVERT, hwndContainer, mle, 0);
+	if(config.vsplit)
+	{
+		pos = (float)config.vsplit;
+		dw_splitbar_set(vsplitbar, pos);
+	}
+	else
+		dw_splitbar_set(vsplitbar, 30.0);
+
+	splitbar = dw_splitbar_new(BOXHORZ, hwndTree, vsplitbar, 0);
+	if(config.hsplit)
+	{
+		pos = (float)config.hsplit;
+		dw_splitbar_set(splitbar, pos);
+	}
+	else
+		dw_splitbar_set(splitbar, 15.0);
+
+	dw_window_set_data(hwndFrame, "hsplit", (void *)splitbar);
+	dw_window_set_data(hwndFrame, "vsplit", (void *)vsplitbar);
+
+	dw_box_pack_start(mainbox, splitbar, 1, 1, TRUE, TRUE, 0);
+
+	controlbox = dw_box_new(BOXHORZ, 0);
+
+	dw_box_pack_start(mainbox, controlbox, 0, 0, TRUE, FALSE, 0);
+
+	stext1 = dw_status_text_new("Welcome to DynamicMail.", 1026);
+
+	dw_window_set_style(stext1, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(controlbox, stext1, 20, 15, TRUE, FALSE, 2);
+
+	stext2 = dw_status_text_new("Receive idle.", 1026);
+
+	dw_window_set_style(stext2, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(controlbox, stext2, 20, 15, TRUE, FALSE, 2);
+
+	stext3 = dw_status_text_new("Send idle.", 1026);
+
+	dw_window_set_style(stext3, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(controlbox, stext3, 20, 15, TRUE, FALSE, 2);
+
+	menubar = dw_menubar_new(hwndFrame);
+
+	menu = dw_menu_new(0L);
+
+	menuitem = dw_menu_append_item(menu, "~Check Mail", IDM_CHECK, 0L, TRUE, FALSE, DW_NOMENU);
+	dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(check_mail), NULL);
+
+	menuitem = dw_menu_append_item(menu, "~Send Mail", IDM_SENDMAIL, 0L, TRUE, FALSE, DW_NOMENU);
+	dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(send_mail), NULL);
+
+	dw_menu_append_item(menu, "", 0L, 0L, TRUE, FALSE, DW_NOMENU);
+
+	menuitem = dw_menu_append_item(menu, "~Exit", IDM_EXIT, 0L, TRUE, FALSE, DW_NOMENU);
+	dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(exitfunc), NULL);
+
+	dw_menu_append_item(menubar, "~File", IDM_FILE, 0L, TRUE, FALSE, menu);
+
+	menu = dw_menu_new(0L);
+
+	menuitem = dw_menu_append_item(menu, locale_string("New Message", 20), IDM_NEWMESS, 0L, TRUE, FALSE, DW_NOMENU);
+	dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(new_message), NULL);
+
+	menuitem = dw_menu_append_item(menubar, locale_string("~Messages", 2), IDM_MESSAGE, 0L, TRUE, FALSE, menu);
+
+	menu = dw_menu_new(0L);
+
+	menuitem = dw_menu_append_item(menu, locale_string("Save Position", 20), IDM_SAVEPOS, 0L, TRUE, FALSE, DW_NOMENU);
+	dw_signal_connect(menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(save_position), NULL);
+
+	menuitem = dw_menu_append_item(menubar, locale_string("~Tools", 2), IDM_TOOLS, 0L, TRUE, FALSE, menu);
+
+	menu = dw_menu_new(0L);
+
+	menuitem = dw_menu_append_item(menu, locale_string("~General Help", 20), IDM_GENERALHELP, 0L, TRUE, FALSE, DW_NOMENU);
+
+	dw_menu_append_item(menu, "", 0L, 0L, TRUE, FALSE, DW_NOMENU);
+	menuitem = dw_menu_append_item(menu, locale_string("~About", 23), IDM_ABOUT, 0L, TRUE, FALSE, DW_NOMENU);
+
+	menuitem = dw_menu_append_item(menubar, locale_string("~Help", 2), IDM_HELP, 0L, TRUE, FALSE, menu);
+}
+
+
+/* Save settings */
+void saveconfig(void)
+{
+	FILE *fp;
+
+	if((fp = fopen("dmail.ini", "w")) != NULL)
+	{
+		int z = 0;
+
+		while(config.plugins[z] && z < PLUGIN_MAX)
+		{
+			fprintf(fp, "PLUGIN=%s\n", config.plugins[z]);
+			z++;
+		}
+		z = 0;
+		while(config.accounts[z] && z < ACCOUNT_MAX)
+		{
+			fprintf(fp, "ACCOUNT=%s\n", config.accounts[z]);
+			z++;
+		}
+		fprintf(fp, "X=%d\n", (int)config.x);
+		fprintf(fp, "Y=%d\n", (int)config.y);
+		fprintf(fp, "WIDTH=%d\n", (int)config.width);
+		fprintf(fp, "HEIGHT=%d\n", (int)config.height);
+		fprintf(fp, "HSPLIT=%d\n", (int)config.hsplit);
+		fprintf(fp, "VSPLIT=%d\n", (int)config.vsplit);
+		fclose(fp);
+	}
+}
+
+/* Load settings */
+void loadconfig(void)
+{
+	FILE *fp;
+	char entry[256], entrydata[256];
+
+	if((fp = fopen("dmail.ini", "r")) != NULL)
+	{
+		int account = 0, plugin = 0;
+
+		while(!feof(fp))
+		{
+			getline(fp, entry, entrydata);
+			if(strcasecmp(entry, "plugin")==0 && plugin < PLUGIN_MAX)
+			{
+				config.plugins[plugin] = strdup(entrydata);
+				plugin++;
+			}
+			if(strcasecmp(entry, "account")==0 && plugin < PLUGIN_MAX)
+			{
+				config.accounts[account] = strdup(entrydata);
+				account++;
+			}
+			if(strcasecmp(entry, "x")==0)
+				config.x = atoi(entrydata);
+			if(strcasecmp(entry, "y")==0)
+				config.y = atoi(entrydata);
+			if(strcasecmp(entry, "width")==0)
+				config.width = atoi(entrydata);
+			if(strcasecmp(entry, "height")==0)
+				config.height = atoi(entrydata);
+			if(strcasecmp(entry, "hsplit")==0)
+				config.hsplit = atoi(entrydata);
+			if(strcasecmp(entry, "vsplit")==0)
+				config.vsplit = atoi(entrydata);
+		}
+		fclose(fp);
+	}
+}
+
+/* The main entry point.  Notice we don't use WinMain() on Windows */
+int main(int argc, char *argv[])
+{
+	int cx, cy, z = 0;
+
+	dw_init(TRUE, argc, argv);
+
+	sockinit();
+
+	srand(time(NULL));
+
+	cx = dw_screen_width();
+	cy = dw_screen_height();
+
+	mutex = dw_mutex_new();
+
+	loadconfig();
+
+	dmail_init();
+
+	fileicon = dw_icon_load(0,FILEICON);
+	foldericon = dw_icon_load(0,FOLDERICON);
+	linkicon = dw_icon_load(0,LINKICON);
+
+	/* If there is no config file... then automatically
+	 * load the minimal plugin so the program won't be
+	 * broken by default.
+	 */
+	if(!config.plugins[0])
+		config.plugins[0] = strdup("minimal");
+
+	while(config.plugins[z] && z < PLUGIN_MAX)
+	{
+		if(load_backend(config.plugins[z]))
+			dw_messagebox("DynamicMail", DW_MB_OK | DW_MB_ERROR, "Could not load backend \"%s\"!", config.plugins[z]);
+		z++;
+	}
+
+	dmail_init_tree();
+
+	if(hwndFrame)
+	{
+		dw_window_set_icon(hwndFrame, MAIN_FRAME);
+
+		dw_signal_connect(hwndFrame, DW_SIGNAL_DELETE, DW_SIGNAL_FUNC(exitfunc), NULL);
+
+		/* Reload old position if possible */
+		if(config.width && config.height)
+		{
+			dw_window_set_pos_size(hwndFrame, config.x, config.y,
+								   config.width, config.height);
+		}
+		else
+		{
+			dw_window_set_pos_size(hwndFrame, cx / 8,
+								   cy / 8,
+								   (cx / 4) * 3,
+								   (cy / 4) * 3);
+		}
+
+		dw_window_show(hwndFrame);
+
+		dw_main();
+
+		dw_window_destroy(hwndFrame);
+	}
+
+	sockshutdown();
+
+	dw_icon_free(foldericon);
+	dw_icon_free(foldericon);
+	dw_icon_free(linkicon);
+
+	dw_mutex_close(mutex);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dmail.def	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,5 @@
+NAME DMAIL WINDOWAPI
+           
+DESCRIPTION 'Dynamic Mail'
+
+STACKSIZE 65536
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dmail.h	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,111 @@
+/* $Id: dmail.h,v 1.3 2003/12/11 21:07:55 nuke Exp $ */
+#ifndef _DMAIL_H
+#define _DMAIL_H
+
+#define MAIN_FRAME    155
+#define ID_FILEMENU   156
+#define ID_EDITMENU   158
+
+#define ID_TOOLBAR    1045
+#define ID_LPANE      1046
+#define ID_RPANE      1047
+#define ID_NOTEBOOK   1048
+#define ID_NOTEBOOKFR 1049
+#define ID_STATUS     1050
+#define ID_LIST       1051
+#define ID_MLE        1052
+#define ID_TOP        1053
+
+#define PB_CHANGE 309
+
+#define IDM_FILE        250
+#define IDM_EXIT        251
+#define IDM_HELP        252
+#define IDM_GENERALHELP 253
+#define IDM_ABOUT       254
+#define IDM_PREFERENCES 255
+#define IDM_MESSAGE     256
+#define IDM_NEWMESS     257
+#define IDM_SAVE        258
+#define IDM_SEND        259
+#define IDM_CHECK       260
+#define IDM_SENDMAIL    261
+#define IDM_DELITEM     262
+#define IDM_RAWTOG      263
+#define IDM_SAVEPOS     264
+#define IDM_TOOLS       265
+#define IDM_REPLY       266
+#define IDM_REPLYQ      267
+#define IDM_REPLYALL    268
+#define IDM_REPLYALLQ   269
+#define IDM_NEWFOLD     270
+#define IDM_TRASH       271
+#define IDM_ACCOUNT     272
+
+#define CONNECT 335
+#define DISCONNECT 336
+#define ADDTOQ 337
+#define REMOVEFROMQ 338
+#define FLUSHQ 346
+#define ADMIN 349
+#define SAVETITLE 350
+#define UNSAVETITLE 351
+#define HOST_TITLE 352
+#define REMOVETAB 353
+#define PREFERENCES 354
+#define NEWTAB 355
+#define FILEICON 356
+#define FOLDERICON 357
+#define LINKICON 365
+
+#define TB_SEPARATOR -1
+
+#define LOGO 1300
+
+#define ACCOUNT_MAX   20
+
+#ifndef DW_RESOURCE
+typedef struct {
+	int                Type;
+	Account*           Acc;
+	int                Plug;
+	MailFolder*        Folders;
+	AccountSettings    Settings;
+	HEV                SendEve, RecvEve;
+} AccountInfo;
+
+typedef struct {
+	char *plugins[PLUGIN_MAX];
+	char *accounts[ACCOUNT_MAX];
+	unsigned long x, y, width, height;
+	unsigned long hsplit, vsplit;
+} DmailConfig;
+
+/* Select an editor for the current build platform. */
+#if defined(__OS2__) || defined(__EMX__)
+#define EDITOR "epm"
+#define EDMODE DW_EXEC_GUI
+#elif defined(__WIN32__) || defined(WINNT)
+#define EDITOR "notepad"
+#define EDMODE DW_EXEC_GUI
+#else
+#define EDITOR "vi"
+#define EDMODE DW_EXEC_CON
+#endif
+
+/* Prototypes */
+int DWSIGNAL new_message(HWND hwnd, void *data);
+int DWSIGNAL reply_message(HWND hwnd, void *data);
+int DWSIGNAL replyq_message(HWND hwnd, void *data);
+int DWSIGNAL replyall_message(HWND hwnd, void *data);
+int DWSIGNAL replyallq_message(HWND hwnd, void *data);
+int DWSIGNAL empty_trash(HWND hwnd, void *data);
+int DWSIGNAL new_folder(HWND hwnd, void *data);
+void saveconfig(void);
+void loadconfig(void);
+AccountSettings *findsettings(void *opaque);
+AccountInfo *findaccount(void *opaque);
+
+#endif
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dmail.ini	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,7 @@
+PLUGIN=mysqlplg
+X=128
+Y=96
+WIDTH=768
+HEIGHT=576
+HSPLIT=15
+VSPLIT=30
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dmail.rc	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,39 @@
+/* $Id: dmail.rc,v 1.1 2002/12/21 09:12:24 nuke Exp $ */
+
+
+/* OS/2 Warp Resource Script File - Created by Universal Resource Editor */
+
+#define INCL_WINSYS
+#define INCL_WINSTDDLGS
+#define INCL_WINSTDSPIN
+#define INCL_NLS
+#define INCL_SW
+
+#include <os2.h>
+
+#include "dmail.h"
+
+
+BITMAP NEWTAB          "os2\\newtab.bmp"
+BITMAP REMOVETAB       "os2\\remtab.bmp"
+BITMAP CONNECT         "os2\\connect.bmp"
+BITMAP DISCONNECT      "os2\\disconnect.bmp"
+BITMAP IDM_EXIT        "os2\\exit.bmp"
+BITMAP ADDTOQ          "os2\\queue.bmp"
+BITMAP REMOVEFROMQ     "os2\\unqueue.bmp"
+BITMAP FLUSHQ          "os2\\flush.bmp"
+BITMAP SAVETITLE       "os2\\save.bmp"
+BITMAP UNSAVETITLE     "os2\\unsave.bmp"
+BITMAP ADMIN           "os2\\admin.bmp"
+BITMAP PB_CHANGE       "os2\\change.bmp"
+BITMAP IDM_PREFERENCES "os2\\preferences.bmp"
+BITMAP IDM_GENERALHELP "os2\\help.bmp"
+BITMAP IDM_ABOUT       "os2\\about.bmp"
+
+BITMAP      LOGO "os2\\handyftp.bmp"
+
+ICON MAIN_FRAME "os2\\handyftp.ico"
+ICON FILEICON   "os2\\FILE.ICO"
+ICON FOLDERICON "os2\\FOLDER.ICO"
+ICON LINKICON "os2\\LINK.ICO"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dmailw.rc	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,27 @@
+/*#include <windows.h>*/
+
+#include "dmail.h"
+
+
+NEWTAB BITMAP          "win\\newtab.bmp"
+REMOVETAB BITMAP       "win\\remtab.bmp"
+CONNECT BITMAP         "win\\connect.bmp"
+DISCONNECT BITMAP      "win\\disconnect.bmp"
+IDM_EXIT BITMAP        "win\\exit.bmp"
+ADDTOQ BITMAP          "win\\queue.bmp"
+REMOVEFROMQ BITMAP     "win\\unqueue.bmp"
+FLUSHQ BITMAP          "win\\flush.bmp"
+SAVETITLE BITMAP       "win\\save.bmp"
+UNSAVETITLE BITMAP     "win\\unsave.bmp"
+ADMIN BITMAP           "win\\admin.bmp"
+PB_CHANGE BITMAP       "win\\change.bmp"
+IDM_PREFERENCES BITMAP "win\\preferences.bmp"
+IDM_GENERALHELP BITMAP "win\\help.bmp"
+IDM_ABOUT BITMAP       "win\\about.bmp"
+
+LOGO BITMAP      "win\\handyftp.bmp"
+
+MAIN_FRAME ICON "win\\handyftp.ico"
+FILEICON ICON   "win\\FILE.ICO"
+FOLDERICON ICON "win\\FOLDER.ICO"
+LINKICON ICON "win\\LINK.ICO"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/FILE.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,35 @@
+/* XPM */
+static char * FILE_xpm[] = {
+"16 16 16 1",
+" 	c None",
+".	c #000000",
+"+	c #D5FFFF",
+"@	c #F7F7F7",
+"#	c #8092AA",
+"$	c #646464",
+"%	c #AADBFF",
+"&	c #F0F0F0",
+"*	c #E8E8E8",
+"=	c #D5DBFF",
+"-	c #5592AA",
+";	c #E0E0E0",
+">	c #2B92FF",
+",	c #2B6DAA",
+"'	c #556DAA",
+")	c #55DBFF",
+"                ",
+"  #########-    ",
+"  #@@@@@@@#)$   ",
+"  #@@@@@@@>>,$  ",
+"  #@@@@@@&==%-$ ",
+"  #@@@@@@@+++=$ ",
+"  #@@@@@@&+++=$ ",
+"  #&&@*++%+++=$ ",
+"  #&&&*++++++%$ ",
+"  #**++%%%+++%$ ",
+"  #**++++%%++%$ ",
+"  -;;++%%%%%%%$ ",
+"  -;+++++%%%%%$ ",
+"  '###########$ ",
+"   $$$$$$$$$$$$ ",
+"                "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/FOLDER.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,29 @@
+/* XPM */
+static char * FOLDER_xpm[] = {
+"16 16 10 1",
+" 	c None",
+".	c #000000",
+"+	c #AA9200",
+"@	c #FFFFAA",
+"#	c #FFDB55",
+"$	c #AA6D00",
+"%	c #F7F7F7",
+"&	c #D59255",
+"*	c #FFDBAA",
+"=	c #D5B655",
+"                ",
+"  &&&&          ",
+" &%%%%&         ",
+"&%@@@@%+++++$   ",
+"&@@@@@@%%%%%$   ",
+"&@*++++++++++++ ",
+"&#+%%%%%%%%%*%+$",
+"&#+@@@@@@@@@#@+$",
+"&#+@@@@@@@@@.@+$",
+"&#+@@**@**@@=@+$",
+"&#+@########=@+$",
+"&#+@########=@+$",
+" ++++++++++++++$",
+"  $$$$$$$$$$$$$ ",
+"                ",
+"                "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/LINK.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,179 @@
+/* XPM */
+static char * LINK_xpm[] = {
+"16 16 160 2",
+"  	c None",
+". 	c #8D8D8D",
+"+ 	c #5C5C5C",
+"@ 	c #6D6D6D",
+"# 	c #C9C9C9",
+"$ 	c #FAFAFA",
+"% 	c #FFFFFF",
+"& 	c #515353",
+"* 	c #2D3A3D",
+"= 	c #505051",
+"- 	c #4C5757",
+"; 	c #485858",
+"> 	c #3A4041",
+", 	c #3F3F3F",
+"' 	c #414141",
+") 	c #888888",
+"! 	c #D0D0D0",
+"~ 	c #F8F8F8",
+"{ 	c #494B4B",
+"] 	c #5B6C6E",
+"^ 	c #C2B6B6",
+"/ 	c #C1D2D1",
+"( 	c #BCD7D8",
+"_ 	c #889294",
+": 	c #9C9C9C",
+"< 	c #909090",
+"[ 	c #545454",
+"} 	c #7C7C7C",
+"| 	c #494D4D",
+"1 	c #627C7E",
+"2 	c #D6CECE",
+"3 	c #CDF1F0",
+"4 	c #CAE2E2",
+"5 	c #979898",
+"6 	c #8C8C8C",
+"7 	c #5E5E5E",
+"8 	c #616161",
+"9 	c #898989",
+"0 	c #A4A4A4",
+"a 	c #BCBCBC",
+"b 	c #EBEBEB",
+"c 	c #4A4B4A",
+"d 	c #667171",
+"e 	c #D9C8C7",
+"f 	c #D9EAE9",
+"g 	c #B3C1C0",
+"h 	c #464848",
+"i 	c #283031",
+"j 	c #373434",
+"k 	c #323B3B",
+"l 	c #313838",
+"m 	c #292B2B",
+"n 	c #303030",
+"o 	c #494949",
+"p 	c #A1A1A1",
+"q 	c #E4E4E4",
+"r 	c #FDFDFD",
+"s 	c #494C4C",
+"t 	c #63787A",
+"u 	c #D7CCCB",
+"v 	c #D1EFEE",
+"w 	c #A2BDB9",
+"x 	c #3F4647",
+"y 	c #6D868A",
+"z 	c #BFA8A6",
+"A 	c #ACCBCE",
+"B 	c #A5C1C3",
+"C 	c #71787A",
+"D 	c #6C6C6C",
+"E 	c #E0E0E0",
+"F 	c #424847",
+"G 	c #80979B",
+"H 	c #E0C6C1",
+"I 	c #C9F0F7",
+"J 	c #C0E7E8",
+"K 	c #869092",
+"L 	c #D7D7D7",
+"M 	c #555555",
+"N 	c #606060",
+"O 	c #B4B4B4",
+"P 	c #ABBCB9",
+"Q 	c #424644",
+"R 	c #838F91",
+"S 	c #E1C1BC",
+"T 	c #D2E8EF",
+"U 	c #CFE8E8",
+"V 	c #8D9494",
+"W 	c #9B9B9B",
+"X 	c #979797",
+"Y 	c #4D4D4D",
+"Z 	c #585858",
+"` 	c #AEAEAE",
+" .	c #9DBEBA",
+"..	c #424949",
+"+.	c #7E9B9F",
+"@.	c #DFC8C4",
+"#.	c #C4F4FB",
+"$.	c #C6F9F9",
+"%.	c #B2E8E5",
+"&.	c #A5E1DC",
+"*.	c #9FD5D0",
+"=.	c #5C6E6C",
+"-.	c #494C4B",
+";.	c #657475",
+">.	c #D8CAC9",
+",.	c #D5ECEB",
+"'.	c #A7BDB9",
+").	c #424745",
+"!.	c #819396",
+"~.	c #E0C3BE",
+"{.	c #CDECF3",
+"].	c #D4FAFA",
+"^.	c #D6FCFC",
+"/.	c #D7FDFD",
+"(.	c #CDEFEF",
+"_.	c #6E7A7A",
+":.	c #454848",
+"<.	c #36494D",
+"[.	c #767375",
+"}.	c #738383",
+"|.	c #697977",
+"1.	c #777778",
+"2.	c #464849",
+"3.	c #4C4B4C",
+"4.	c #4C4C4C",
+"5.	c #C7FDFD",
+"6.	c #C7FEFE",
+"7.	c #C8FEFE",
+"8.	c #BFF0F0",
+"9.	c #697A7A",
+"0.	c #D8D8D8",
+"a.	c #B8B8B8",
+"b.	c #929292",
+"c.	c #DBF9F9",
+"d.	c #DEFBFB",
+"e.	c #DEFCFC",
+"f.	c #D4EEEE",
+"g.	c #707979",
+"h.	c #B6B6B6",
+"i.	c #3C4343",
+"j.	c #577277",
+"k.	c #9C8D8C",
+"l.	c #8AACB0",
+"m.	c #8AB0B0",
+"n.	c #85A7A7",
+"o.	c #4C5858",
+"p.	c #5D5E5E",
+"q.	c #3E4345",
+"r.	c #474446",
+"s.	c #484848",
+"t.	c #474747",
+"u.	c #444444",
+"v.	c #797979",
+"w.	c #B3B3B3",
+"x.	c #F2F2F2",
+"y.	c #B5B5B5",
+"z.	c #959595",
+"A.	c #989898",
+"B.	c #B2B2B2",
+"C.	c #D9D9D9",
+". + + + + + + @ # $ % % % % % % ",
+"& * = - ; > , ' ) ! ~ % % % % % ",
+"{ ] ^ / ( _ : < [ } ! $ % % % % ",
+"| 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 p D 7 : E ",
+"s t u v w F G H I J K L a M N O ",
+"c d e f P Q R S T U V W X Y Z ` ",
+"| 1 2 3  ...+.@.#.$.%.&.*.=.Z ` ",
+"-.;.>.,.'.).!.~.{.].^./.(._.Z ` ",
+":.<.[.}.|.).!.~.{.].^./.(._.Z ` ",
+"1.2.3.4.M ..+.@.#.5.6.7.8.9.Z ` ",
+"0.a.a.a.b.Q R S T c.d.e.f.g.Z ` ",
+"% % % % h.i.j.k.l.m.m.m.n.o.Z ` ",
+"% % % % ! p.q.r.s.s.s.s.t.u.v.w.",
+"% % % % x.y.z.z.z.z.z.z.z.A.B.C."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/about.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,42 @@
+/* XPM */
+static char * about_xpm[] = {
+"20 20 19 1",
+" 	c None",
+".	c #CECECE",
+"+	c #B6B6B6",
+"@	c #AAAAAA",
+"#	c #868686",
+"$	c #6E6E6E",
+"%	c #4A4A4A",
+"&	c #323232",
+"*	c #000000",
+"=	c #565656",
+"-	c #626262",
+";	c #C2C2C2",
+">	c #929292",
+",	c #F2F2F2",
+"'	c #E6E6E6",
+")	c #A0A0A4",
+"!	c #1A1A1A",
+"~	c #3E3E3E",
+"{	c #7A7A7A",
+".....++@#$$#@++.....",
+"....+#%&*&&*&%#+....",
+"...+=*-#@;;@#-*=+...",
+"..+=*>..,,,,..>*=+..",
+".+=*#.,,'&*),,.#*=+.",
+"+#*>.,,,+**=,,,.>*#+",
+"+%=.,,,,'%!+,,,,;-%+",
+"@&#,,,,,,,,,,,,,.#&@",
+"#*@,,,,,#~~>,,,,,@*#",
+"$&;,,,,,.**{,,,,,;&$",
+"$&;,,,,,.**{,,,,,;&$",
+"#*@,,,,,.**{,,,,,@*#",
+"@&#,,,,,.**{,,,,.#&@",
+"+%-.,,,,.**{,,,,;-%+",
+"+#*>.,,,.**{,,,.>*#+",
+".+=*#.,+{!!~+,.#*=+.",
+"..+=*>;,,,,,,;>*=+..",
+"...+=*-#@;;@#-*=+...",
+"....+#%&*&&*&%#+....",
+".....++@#$$#@++....."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/admin.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,38 @@
+/* XPM */
+static char * admin_xpm[] = {
+"20 20 15 1",
+" 	c None",
+".	c #CECECE",
+"+	c #626262",
+"@	c #000000",
+"#	c #F8E2B1",
+"$	c #250073",
+"%	c #4A0073",
+"&	c #937A00",
+"*	c #FFFFFF",
+"=	c #8F6BFF",
+"-	c #310096",
+";	c #868686",
+">	c #C5AA00",
+",	c #AF9200",
+"'	c #3E3E3E",
+"...........++++++++.",
+"..........+@@@@@@@@+",
+"..+++++++++@######@+",
+".+@@@@@@@@@@@@@@##@+",
+".+@############@##@+",
+".+@#$%%%%%%%%$#@##@+",
+".+@#&%*=%%---&#@##@+",
+".+@#&%=%%----&#@##@+",
+".+@#&%%------&#@##@+",
+".+@#&%---$$$@&#@##@+",
+".+@#&%---$$@@&#@##@+",
+".+@#$%---@@@@$#@##@+",
+".+@############@##@+",
+";+@&&&&&&&&&&&&@##@+",
+"+@@@@@@@@@@@@@@@##@+",
+"+@*>*>*>*>*>*>*>@#@+",
+"+@,@>,@>,,@>,@>,@#@+",
+"+@>*>*>*>*>*>*>*@@@+",
+";'@@@@@@@@@@@@@@'++;",
+".;++++++++++++++;..."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/change.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,55 @@
+/* XPM */
+static char * change_xpm[] = {
+"20 20 32 1",
+" 	c None",
+".	c #CECECE",
+"+	c #B6B6B6",
+"@	c #AAAAAA",
+"#	c #868686",
+"$	c #6E6E6E",
+"%	c #4A4A4A",
+"&	c #323232",
+"*	c #000000",
+"=	c #565656",
+"-	c #006296",
+";	c #FFFFFF",
+">	c #007AB9",
+",	c #0092DC",
+"'	c #48B8FF",
+")	c #007373",
+"!	c #00734A",
+"~	c #00AAFF",
+"{	c #8ED4FF",
+"]	c #25AAFF",
+"^	c #00B9B9",
+"/	c #005050",
+"(	c #DADADA",
+"_	c #C5AA00",
+":	c #626200",
+"<	c #4A4A00",
+"[	c #323200",
+"}	c #3E3E3E",
+"|	c #B1FFFF",
+"1	c #48FFFF",
+"2	c #004A73",
+"3	c #003250",
+".....++@#$$#@++.....",
+"....+#%&*==*&%#+....",
+"...+=*-.;;.;>-*=+...",
+"..+=*,,';.;.'))*=+..",
+".+=*!~{{']']^///*=+.",
+"+#*!^;;'](((!_::<*#+",
+"+%!^+;']';;((_::<[%+",
+"@&:'{']']]]^!_::<[&@",
+"#*:+++((((^!:_:<<[*#",
+"$}<[+(;|||11_::<[>2$",
+"$}<++((((],!:::<>>2$",
+"#*#+((],],]/::<,>>*#",
+"@&#+,],],],,/:<>>-&@",
+"+%[,,,,,,,,,,/<>-3%+",
+"+#*,>,#,>,>,#>/23*#+",
+".+=*3#+#>>>+;#23*=+.",
+"..+=*3&++;++#23*=+..",
+"...+=*3&;;;+#3*=+...",
+"....+#%&*&&*&%#+....",
+".....++@#$$#@++....."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/connect.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,40 @@
+/* XPM */
+static char * connect_xpm[] = {
+"20 20 17 1",
+" 	c None",
+".	c #CECECE",
+"+	c #7A7A7A",
+"@	c #626262",
+"#	c #4A4A4A",
+"$	c #000000",
+"%	c #262626",
+"&	c #9E9E9E",
+"*	c #6E6E6E",
+"=	c #3E3E3E",
+"-	c #FFFFB1",
+";	c #FEFE00",
+">	c #DCDC00",
+",	c #B9B900",
+"'	c #B6B6B6",
+")	c #868686",
+"!	c #929292",
+"....................",
+"....................",
+"....................",
+"....................",
+"........+@@@@@......",
+"......++#$$$$$@@@@@.",
+".....+$%$&+*@$$$$$$@",
+".@@@@@$=%####$-;>,$@",
+"@$$$$$%###&#&$$$$$$@",
+"@$'&)++#!#!#!$$)))).",
+"@$######+#!#!$$)))).",
+"@$$$$$%###+#+$$$$$$@",
+".@@@@@$=%#@#@$-;>,$@",
+".....+$%$@###$$$$$$@",
+"......++#$$$$$@@@@@.",
+"........+@@@@@......",
+"....................",
+"....................",
+"....................",
+"...................."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/disconnect.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,44 @@
+/* XPM */
+static char * disconnect_xpm[] = {
+"20 20 21 1",
+" 	c None",
+".	c #CECECE",
+"+	c #929292",
+"@	c #000000",
+"#	c #626262",
+"$	c #730025",
+"%	c #FF6B8F",
+"&	c #B9003D",
+"*	c #DC0049",
+"=	c #262626",
+"-	c #9E9E9E",
+";	c #7A7A7A",
+">	c #6E6E6E",
+",	c #960031",
+"'	c #4A4A4A",
+")	c #FFFFB1",
+"!	c #FEFE00",
+"~	c #DCDC00",
+"{	c #B9B900",
+"]	c #868686",
+"^	c #3E3E3E",
+"....................",
+"+@@#...#@@+.........",
+"@$%@#.#@%$@#........",
+"@&*%@#@%*&@#........",
+"#@&*%@%*&@####......",
+".#@&*%*&@@@@@@#####.",
+"..#@%*%=@-;>#@@@@@@#",
+".#@%*,*%=''''@)!~{@#",
+"#@%*,@,*%@-'-@@@@@@#",
+"@%*,@;@,*%''+@@]]]].",
+"@$,@'''@,$''+@@]]]].",
+"#@@@@@='@@#';@@@@@@#",
+".#####@^='#'#@)!~{@#",
+".....;@=@#'''@@@@@@#",
+"......;;'@@@@@#####.",
+"........;#####......",
+"....................",
+"....................",
+"....................",
+"...................."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/exit.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,36 @@
+/* XPM */
+static char * exit_xpm[] = {
+"20 20 13 1",
+" 	c None",
+".	c #CECECE",
+"+	c #B6B6B6",
+"@	c #4A4A4A",
+"#	c #626262",
+"$	c #000000",
+"%	c #FF6B8F",
+"&	c #FFB1C7",
+"*	c #DC0049",
+"=	c #FFFFFF",
+"-	c #FF0055",
+";	c #960031",
+">	c #B90000",
+"....................",
+"....................",
+"....................",
+".....+@#+...+@#+....",
+"....+@$$#..+@$$#....",
+"...+@$%$#.+@$%$#....",
+"..+@$%&$##@$%&$####+",
+".+@$%&*$$$$%&*$$$$$#",
+"+@$%=**-;$%=**---*$#",
+"@$%=***;$%=******;$#",
+"#$;%***;$;%******;$#",
+"+#$;>*>;;$;>**;;;;$#",
+".+#$;>>$$$$;>>$$$$$#",
+"..+#$;>$###$;>$####+",
+"...+#$;$#.+#$;$#....",
+"....+#$$#..+#$$#....",
+".....+##+...+##+....",
+"....................",
+"....................",
+"...................."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/flush.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,35 @@
+/* XPM */
+static char * flush_xpm[] = {
+"20 20 12 1",
+" 	c None",
+".	c #CECECE",
+"+	c #B6B6B6",
+"@	c #626262",
+"#	c #000000",
+"$	c #FFFFFF",
+"%	c #8ED4FF",
+"&	c #25AAFF",
+"*	c #48B8FF",
+"=	c #0092DC",
+"-	c #6BC6FF",
+";	c #007AB9",
+"......+@@@@@@+......",
+".....+@######@+.....",
+".....+@#$%%&#@+.....",
+".....+@#$**=#@+.....",
+".....+@#%**=#@+.....",
+".....+@#%**=#@+.....",
+".....+@#%**=#@+.....",
+".....+@#%**=#@+.....",
+".....+@#%**=#@+.....",
+".....+@#%**=#@+.....",
+"....++@#%**=#@++....",
+"...+@@@#%**=#@@@+...",
+"..+@####%**=####@+..",
+"..+@#%-****&&&;#@+..",
+"...+@#%-****&;#@+...",
+"....+@#%-**&;#@+....",
+".....+@#%-&;#@+.....",
+"......+@#%;#@+......",
+".......+@##@+.......",
+"........+@@+........"};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/handyftp.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,83 @@
+/* XPM */
+static char * handyftp_xpm[] = {
+"40 40 40 1",
+" 	c None",
+".	c #000000",
+"+	c #080808",
+"@	c #0F0F0F",
+"#	c #2B2455",
+"$	c #2B49AA",
+"%	c #2B49FF",
+"&	c #556DFF",
+"*	c #1F1F1F",
+"=	c #363636",
+"-	c #3E3E3E",
+";	c #55B6AA",
+">	c #2B6D55",
+",	c #2B92AA",
+"'	c #5592FF",
+")	c #55B6FF",
+"!	c #5592AA",
+"~	c #5549FF",
+"{	c #2B6DAA",
+"]	c #171717",
+"^	c #5549AA",
+"/	c #80DBFF",
+"(	c #80B6FF",
+"_	c #8092FF",
+":	c #556DAA",
+"<	c #AAB6FF",
+"[	c #2B9255",
+"}	c #2B4955",
+"|	c #55DBAA",
+"1	c #AADBFF",
+"2	c #002455",
+"3	c #80DBAA",
+"4	c #8092AA",
+"5	c #80B6AA",
+"6	c #2B24AA",
+"7	c #004955",
+"8	c #006D55",
+"9	c #2E2E2E",
+"0	c #272727",
+"a	c #004900",
+"..++...@..++@.+++#$%%&&$#.++++.+*=+..@.+",
+"+...-.....+@.++&;>,')''!!'~.+..+.+.+=.+.",
+"+...++*.+...+&'{)),,''),!,,{$.+..++++++@",
+"....+@+@]+.^''''',/))')!''!!{&++++..@*.+",
+"++++......&'''!!(/((!_(''!,!{{:@...+....",
+"+++.+++++&''!;//;!((((((,!,!,{{{#++.+..@",
+"...+.*+.&''))((/;/(((((!;;)!{>{{:....+++",
+".+.+@*.^''))((;,/<<<<(;((;!!>[>::}..+.+.",
+".*.*.].:,'))(!!|1<<<<(!(!!!!>[,{{}2+...+",
+"......&!!)!;!;/31<(<(4(!!!!>;!>>}}>#+...",
+"..+..${!!)!!|/(5(;554!!!!!{!!{>>>>>}.+.+",
+"++=++{{!!!;;;(55!>!>>!!>>!{!{,>>>>>}6.@.",
+".@].$}!:{};/;55!!>[>!!![[>}}}{>>{>>}}...",
+"+...{7{{:!;(5!555!>!;;[[[>>}>>>>}>>>}2.@",
+"+.+#{8{{:}!!!/5!![;(5!![[>>>}}}}}>>}}}@+",
+"++.{>{{{{::!!!!;/(!!!::>>>>>}}>}}>>>}}++",
+"++.:>{{:{!!!!!!;!!!!:::!>>>>}}>}}}}>}}2+",
+"+.#}>{{{}:::9}!}:::!::}}}}>}}}}}}}0}a00.",
+"]+$>7{${{{}}}>>}}}>>}}}}>>}}}}}}}}90}90.",
+"+.}>{$${{}#}>>!!}>}>>>}>>>>}}}}9}}9*000@",
+"..}{}$$$}}{}>>!{{>}}>>{>}>>}}}}9990000*]",
+"@]}}}$$}}}}}>}}}}}}}9}}}}}}}}}990*9*0*]]",
+"-6}}}#}}}}}}}}}9}}}}}}}}}}}999990*0**]]@",
+"+}}#}}}}}##}}}}}}>}}}}0*0}900*00**]]]]]@",
+"]}}}}}#}}#}}}}>}>}}}}}}0*000****]*]]]@@@",
+".}}}}}#}##09=}}}9}}}9}990****]*]**@]]@@+",
+".}#9}}}#92099}9}}}9}00000**]]]]*]]]@@+@+",
+"+}#*}}}00**0}00999}9090*000]]]]]]]@++@@+",
+".#00}}00****9000*}09000***]]@@@@@@@++@@@",
+".00099#9*****000*09****]]]]@@@@@@@+++@@+",
+".00000*0*]]***0]****]]]]@@@@++@@@++++@@@",
+".090*0******]]]**]@]]]]@@@@+++++@++@@@@@",
+"+*00**]]]]]]]]]*]]]]]@@@@@@@@++@+@@@@@@@",
+".]**]*]]]]]]]@@]]@]@@@@@@@@+@+@@@@@@@@@@",
+".]*]]]]]]]]]@@@@@@++++@@@@@@@+@@@@@@@@@+",
+".+@@@]@]@@@@+@+@+@]@++]++@++++++++@@++++",
+".@]@]]]@@@]@@+@*@+]+*+]++++++@@+++++++++",
+".]]]@@]@@@@@@@@@@]@@@@+@+@++++++@@++++++",
+".]]]@]]]@@]@]]@*]]@]+@@+@+@@+++++++++@++",
+".]]]*]]@@@@]@]]@*@@*@]@+@@]]+]+++@+@++++"};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/help.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,44 @@
+/* XPM */
+static char * help_xpm[] = {
+"20 20 21 1",
+" 	c None",
+".	c #CECECE",
+"+	c #B6B6B6",
+"@	c #626262",
+"#	c #000000",
+"$	c #505000",
+"%	c #FFAA25",
+"&	c #FFC66B",
+"*	c #FFE2B1",
+"=	c #FFFFFF",
+"-	c #FFFF6B",
+";	c #B9B900",
+">	c #969600",
+",	c #3E3E3E",
+"'	c #808000",
+")	c #FEFE00",
+"!	c #1A1A1A",
+"~	c #DCDC00",
+"{	c #323232",
+"]	c #262626",
+"^	c #6E6E6E",
+".+@@@@@@@@@@@@@@@@+.",
+"+@################@+",
+"@#$%&&&&&&&&&&&&%$#@",
+"@#%&*************%#@",
+"@#&*==-;>@,';---*&#@",
+"@#&*=-),'-@#!~--*&#@",
+"@#&*=-~#{-~##;--*&#@",
+"@#&*=--{@-~##;--*&#@",
+"@#&*=-----'#,~--*&#@",
+"@#&*=-----]@~---*&#@",
+"@#&*-----^;-----*&#@",
+"@#&*----~,>-----*&#@",
+"@#&*----@##-----*&#@",
+"@#&*---->#,-----*&#@",
+"@#%&----------**&%#@",
+"@#$%*-**&&&&&&&&%$#@",
+".@##***&%#########@+",
+"..@#&&%##,@@@@@@@@+.",
+"..@#%##,@...........",
+"..@###@+............"};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/logo.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,391 @@
+/* XPM */
+static char * logo_xpm[] = {
+"337 131 257 2",
+"  	c None",
+". 	c #FFFFFF",
+"+ 	c #797E6C",
+"@ 	c #4B7A71",
+"# 	c #7B7E4D",
+"$ 	c #4B868C",
+"% 	c #987F83",
+"& 	c #69859E",
+"* 	c #877F82",
+"= 	c #B068BE",
+"- 	c #597C73",
+"; 	c #9671D0",
+"> 	c #4D8FA7",
+", 	c #6A7C6E",
+"' 	c #7884BB",
+") 	c #87825B",
+"! 	c #9874BE",
+"~ 	c #9C78A2",
+"{ 	c #088586",
+"] 	c #A97F82",
+"^ 	c #6C88B8",
+"/ 	c #9379A7",
+"( 	c #7E7E91",
+"_ 	c #98836F",
+": 	c #087777",
+"< 	c #5B8BA7",
+"[ 	c #3A7B77",
+"} 	c #3A8589",
+"| 	c #698385",
+"1 	c #6C7958",
+"2 	c #78829E",
+"3 	c #187776",
+"4 	c #188686",
+"5 	c #2A7773",
+"6 	c #B78476",
+"7 	c #4A705E",
+"8 	c #AE9741",
+"9 	c #E85CAB",
+"0 	c #3A909D",
+"a 	c #598592",
+"b 	c #A8856F",
+"c 	c #075452",
+"d 	c #4B99BD",
+"e 	c #B77D85",
+"f 	c #07AAAC",
+"g 	c #D0817D",
+"h 	c #D07493",
+"i 	c #2F868A",
+"j 	c #079B9D",
+"k 	c #E9B342",
+"l 	c #847DBE",
+"m 	c #D060B1",
+"n 	c #186C68",
+"o 	c #D6A04F",
+"p 	c #56725C",
+"q 	c #076362",
+"r 	c #3A98AC",
+"s 	c #9F8A59",
+"t 	c #EF758B",
+"u 	c #B17796",
+"v 	c #597760",
+"w 	c #87826E",
+"x 	c #857E9E",
+"y 	c #B170A8",
+"z 	c #F9A559",
+"A 	c #AF8A66",
+"B 	c #D08C6F",
+"C 	c #D06AA2",
+"D 	c #C8C5C7",
+"E 	c #2BA0B0",
+"F 	c #5C91BD",
+"G 	c #2B9098",
+"H 	c #A970AF",
+"I 	c #2CA9BE",
+"J 	c #BB9E3E",
+"K 	c #D1955E",
+"L 	c #E8A84E",
+"M 	c #3A736A",
+"N 	c #3BA0BC",
+"O 	c #CBA740",
+"P 	c #2D6C62",
+"Q 	c #199194",
+"R 	c #E850BA",
+"S 	c #E88E6F",
+"T 	c #838245",
+"U 	c #A7789A",
+"V 	c #798386",
+"W 	c #F7B448",
+"X 	c #96865E",
+"Y 	c #06BFC1",
+"Z 	c #AD8F53",
+"` 	c #D058BE",
+" .	c #7E7EB6",
+"..	c #F98D71",
+"+.	c #2E6659",
+"@.	c #F9817E",
+"#.	c #F99866",
+"$.	c #07B4B7",
+"%.	c #19625C",
+"&.	c #06403E",
+"*.	c #E89863",
+"=.	c #069091",
+"-.	c #2A98A4",
+";.	c #19A0A8",
+">.	c #18AAB4",
+",.	c #C69951",
+"'.	c #E96A99",
+").	c #076C6B",
+"!.	c #E947C3",
+"~.	c #18B4C0",
+"{.	c #DAAF3D",
+"].	c #E8A058",
+"^.	c #19584F",
+"/.	c #396C5D",
+"(.	c #195045",
+"_.	c #EB857A",
+":.	c #B99849",
+"<.	c #E2807E",
+"[.	c #C8A048",
+"}.	c #18989D",
+"|.	c #17483E",
+"1.	c #8D78D1",
+"2.	c #598383",
+"3.	c #E2758D",
+"4.	c #38A7C4",
+"5.	c #F6BE3F",
+"6.	c #D7A845",
+"7.	c #EC7C84",
+"8.	c #074845",
+"9.	c #957E94",
+"0.	c #9BA7A0",
+"a.	c #B79156",
+"b.	c #628FBE",
+"c.	c #E26B9A",
+"d.	c #D352C5",
+"e.	c #AAC5CD",
+"f.	c #9AAAB7",
+"g.	c #B8BBC4",
+"h.	c #B9B39E",
+"i.	c #5498C0",
+"j.	c #B9C5C7",
+"k.	c #CA9162",
+"l.	c #A3B3B7",
+"m.	c #16BBC6",
+"n.	c #9CB2BA",
+"o.	c #798469",
+"p.	c #BDB5CD",
+"q.	c #CD7D8E",
+"r.	c #CDC2AE",
+"s.	c #9CCBCE",
+"t.	c #68908B",
+"u.	c #C8B672",
+"v.	c #9DBAC8",
+"w.	c #C8BDAE",
+"x.	c #7E8B9D",
+"y.	c #44695F",
+"z.	c #C2A1B6",
+"A.	c #DAC074",
+"B.	c #BCAF72",
+"C.	c #9D9D73",
+"D.	c #CAB1CD",
+"E.	c #69989A",
+"F.	c #67A9B8",
+"G.	c #C5A69F",
+"H.	c #A2AEA2",
+"I.	c #45BAC3",
+"J.	c #D681AD",
+"K.	c #47A1A3",
+"L.	c #46B0B9",
+"M.	c #C2AF99",
+"N.	c #DAB077",
+"O.	c #C29AC5",
+"P.	c #E5C477",
+"Q.	c #E3B294",
+"R.	c #A8BBBF",
+"S.	c #D89897",
+"T.	c #D7C8B0",
+"U.	c #DABEBA",
+"V.	c #7C9182",
+"W.	c #47A8AF",
+"X.	c #D7B972",
+"Y.	c #B8B2B0",
+"Z.	c #D68E9B",
+"`.	c #4997A2",
+" +	c #E0B0AB",
+".+	c #66A0A7",
+"++	c #6DB4B9",
+"@+	c #D5AACE",
+"#+	c #C5BCC4",
+"$+	c #DAA492",
+"%+	c #CA7AA3",
+"&+	c #53A7C2",
+"*+	c #66A1B3",
+"=+	c #499090",
+"-+	c #DE98B8",
+";+	c #558F92",
+">+	c #D173BA",
+",+	c #A4909B",
+"'+	c #D6A37A",
+")+	c #CC6ABE",
+"!+	c #DE8EC3",
+"~+	c #71BCC0",
+"{+	c #DA80C1",
+"]+	c #B4A7BC",
+"^+	c #C78C91",
+"/+	c #A599CF",
+"(+	c #6EC4C7",
+"_+	c #CA9870",
+":+	c #5398A5",
+"<+	c #7AB5BC",
+"[+	c #E1BC93",
+"}+	c #DA8EB0",
+"|+	c #B3A0C4",
+"1+	c #C79E64",
+"2+	c #A89798",
+"3+	c #8DA29B",
+"4+	c #949A8A",
+"5+	c #B8A976",
+"6+	c #B3A7A0",
+"7+	c #E7B07A",
+"8+	c #7AA9AA",
+"9+	c #DABA5E",
+"0+	c #689293",
+"a+	c #988E7C",
+"b+	c #BA8692",
+"c+	c #DFA2AF",
+"d+	c #DEC695",
+"e+	c #F29294",
+"f+	c #5EB8C6",
+"g+	c #AF90C7",
+"h+	c #949AC2",
+"i+	c #7B8FB7",
+"j+	c #E6AA82",
+"k+	c #789D9C",
+"l+	c #9B8CC5",
+"m+	c #899681",
+"n+	c #BA9A86",
+"o+	c #A8A8A0",
+"p+	c #86B0B3",
+"q+	c #82BCC8",
+"r+	c #927BBA",
+"s+	c #A99F97",
+"t+	c #A99A77",
+"u+	c #8A9EC8",
+"v+	c #E7A68C",
+"w+	c #A781C8",
+"x+	c #7A96C6",
+"y+	c #829A92",
+"z+	c #AA96B4",
+"A+	c #9C8D97",
+"B+	c #8398C7",
+"C+	c #8DC2CA",
+"D+	c #A6839E",
+"E+	c #ADA07F",
+"F+	c #E29A9A",
+"G+	c #8E8A6A",
+"H+	c #BC909F",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . 7 @ 7 7 7 @ p 7 @ p @ p @ v p - 3+. . . . V - v - - - v - - - v , - - , - V.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5+B.5+B.5+B.5+B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.u.B.u.B.u.r.. u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.X.u.u.X.u.X.u.X.u.A.X.X.A.u.A.X.A.A.X.A.A.A.. . d+A.A.A.A.A.A.A.A.P.A.P.A.P.A.P.P.P.P.P.P.d+d+d+T.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . D &.&.&.&.&.&.&.&.&.&.&.&.&.&.&.&.| . . . . y.&.|.|.&.|.|.|.|.|.|.|.|.|.|.|.y.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . w.# # # # # # T # T T T T T T T T T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 8 8 8 8 8 8 8 8 8 8 J 8 J J J J J J J J J J J J r.. [.O J J O J O O O O O O O {.O O O {.O O {.O {.{.O {.O {.{.{.{.{.{.{.{.{.9+. . 9+k {.k k k k k k k k 5.k k 5.k 5.k 5.5.5.5.5.5.5.5.5.P.P.. . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . &.&.&.&.&.&.&.&.&.&.&.&.&.&.|.&.V . . . . y.|.&.|.|.|.|.|.|.|.|.|.|.|.|.|.p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D # # # # # # # # T # T T T T T T T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 8 8 8 8 8 8 8 J 8 J 8 J 8 J 8 J J J J J J J J J r.. O J O J O O J O J O O O O O O O O O {.O O {.O {.{.{.{.{.{.{.{.{.{.{.{.{.9+. . A.{.k k {.k k k k k k k 5.k 5.k 5.k 5.k 5.5.k 5.5.5.5.5.5.5.P.. . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . D &.&.&.&.&.&.&.&.&.&.&.&.|.&.&.|.t.. . . . /.|.|.|.|.|.|.|.|.|.|.(.|.(.(.|.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D # # # # # # # T # T # T T T T T T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s 8 8 8 8 8 8 8 8 8 8 8 8 J 8 J 8 J 8 J J J J J J J J r.. O J J O J O J O O O J O O O O O O O O O O {.O {.O O {.O O {.6.{.{.{.{.{.9+. . A.k {.k k {.k k {.5.k k k k k k 5.k 5.k 5.k 5.5.5.5.5.5.5.5.5.P.. . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . &.&.&.&.&.&.&.&.&.&.|.&.&.|.&.&.V . . . . y.&.|.|.|.|.|.|.|.(.|.(.|.(.(.(.p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D # # # # # # T # T # T T # T T T T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 s 8 8 8 8 8 8 8 8 8 J 8 8 J 8 J J J 8 J J J J J J r.. 5+J O J O J O O J O O O O O O O {.O O {.O O O 6.{.6.{.6.{.6.{.{.{.{.{.{.9+. . X.{.k {.k k k k k k k k 5.k k 5.k k 5.k 5.k 5.5.k 5.W 5.5.5.5.5.T.. . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . &.&.&.&.&.&.&.&.&.&.&.&.|.8.8.|.t.. . . . y.(.|.8.(.|.|.(.(.(.(.(.(.(.(.(.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r.# # # # # # T # # T T # T T T T T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s 8 8 8 8 8 8 8 8 8 8 8 8 8 J 8 J 8 J 8 J J J J J J J r.. O J J [.J [.[.[.[.[.[.[.[.[.O O o O O O 6.O 6.6.O 6.O 6.6.6.{.6.{.6.{.L N.. . X.{.k {.k {.k {.k k k k k k k k k k k k k 5.k W W W 5.W W W 5.W 5.P.T.. . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . &.&.&.&.&.8.8.8.8.8.8.8.8.8.|.8.t.. . . . y.(.8.(.(.(.(.(.(.(.(.(.(.(.(.(.p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D # # # # # # # # # # # T T T T T T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 s 8 s 8 8 8 8 8 8 :.8 :.8 :.:.J :.:.:.:.:.J :.J J r.. [.J [.J [.[.J O [.[.[.[.O [.O o O o O 6.O 6.O 6.6.6.6.6.6.6.6.6.L 6.L {.9+. . X.k {.{.k {.k k {.k k k k k k k k k W k W k W W k W W W 5.W W 5.W W P.. . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . 8.8.8.8.8.8.8.8.8.8.c 8.|.c 8.c V . . . . M 8.(.(.(.(.(.(.(.(.(.(.(.(.^.(.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D 1 # # # # # # T # T T T # T T T T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D 8 s 8 s 8 8 Z 8 Z 8 8 8 :.8 :.8 :.8 :.:.J :.:.:.J ,.:.r.. 1+[.J ,.[.J [.[.[.[.[.[.[.o [.[.[.o [.o [.o 6.o O 6.6.6.6.6.6.6.6.6.6.6.N.. . X.6.L L L k {.L k k {.k k k k k W k W k W W k W W W W W W W W W 5.W W T.. . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . 8.8.8.8.8.8.c 8.c 8.8.c 8.8.(.c t.. . . . y.(.c (.(.c (.(.(.^.(.^.(.(.^.^.p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D # # # # # # # # # T # # T T T T T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 s 8 8 Z Z 8 Z 8 Z :.Z 8 :.8 :.8 :.:.:.:.:.:.:.:.:.:.r.. J J ,.[.J ,.[.[.[.[.[.[.[.[.o [.o O o O o O o 6.o o 6.o 6.o 6.L o L 6.L N.. . X.L L {.L L L {.L L L L L k L W L k W L W k W k W W W W W W W W W W W P.. . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . c 8.8.c 8.c 8.8.c 8.c 8.(.c c |.t.. . . . M c (.(.c (.(.^.(.^.(.^.(.+.^.(.@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D # 1 # # # # # T # # T # T # T T T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s 8 s Z Z 8 Z Z 8 Z 8 Z :.Z :.a.:.Z :.:.:.:.:.:.:.,.:.r.. 1+:.,.,.,.,.[.,.,.,.[.,.[.[.[.o [.[.o [.o [.o o o o o 6.o o 6.o 6.6.6.6.N.. . N.L 6.L L 6.L L L L L k L L L W L L W L k z k z W L W W z W W W W W W W . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . 8.c c 8.c 8.c c 8.c c c c c c (.0+. . . . 7 ^.c ^.^.^.c ^.^.^.^.^.^.^.^.+.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D T # # # # # # # T T # T # ) T ) T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 s 8 s 8 Z Z 8 Z Z :.Z 8 a.8 a.:.a.:.a.a.:.:.,.:.:.:.r.. 1+J ,.:.,.J ,.,.,.,.,.[.K [.K [.o ,.o [.o o o [.o o o o o 6.o L o ].o L 6.. . X.L L 6.L L L L L L L L L L L L L z L z W L z W z W z W W z W z W z W z T.. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . 8.c 8.c c c c c c c 8.c c (.c c t.. . . . M c ^.^.c ^.^.^.^.^.^.^.^.^.^.^.@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D # # # # # # # T # # ) # T # ) T ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s Z Z Z Z Z Z Z 8 Z Z Z a.Z a.:.Z :.a.:.:.a.:.a.a.,.:.r.. 1+:.,.,.,.,.,.,.,.[.,.[.,.o [.,.o [.o ,.o [.o o o o o o o o o o o o ].o N.. . N.].o L ].6.L L L L L L L z L z L L W L L z W L W z W z z W z W W W z W d+. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . c c c c 8.c c c c c c c (.c c (.0+. . . . @ c ^.^.^.^.^.^.^.^.^.+.^.^.+.(.@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l.0.0.0.0.0.0.0.0.0.0.0.H.0.H.0.g.. . . . g.H.0.V.V.V.m+4+0.Y.. . . . . . . . . . . . . . . . . g.h.g.h.g.h.g.g.D . . . . D # 1 # # # # # # ) T # ) # ) T ) T . D h.h.h.h.h.h.h.h.h.h.h.h.h.h.D . . . . . . D h.h.h.h.h.h.h.h.h.h.h.h.h.w.. . . . 8 s Z Z Z Z 8 Z Z a.8 a.8 a.Z a.:.Z a.a.a.:.a.,.:.a.:.w.. 1+:.,.,.,.,.,.,.,.,.,.,.,.,.K [.K ,.o K o ,.o o o o o o o o ].o ].o o ].N.. . N.L o L ].L ].L ].L L z L L L L z 9+U.d+7+L z z L z L W z W z z W z W z [+. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . c c c c c c c c c c c c c c c ^.0+. . . . [ ^.^.c %.c ^.%.^.^.^.^.^.^.^.%.@ . . . . . . . . . . . . . . . R.V.@ +.+.+.+.+.+.+.+./.- V.y+l.. . . . . . . . . . . . . . . , 7 y.7 7 7 7 7 7 7 p 7 p 7 p p 3+. . . m+p p p p p p p p v v p 4+. . . . . . . . . . . . D s+1 1 1 1 1 1 1 # 1 # # m+D . D # # # # # # ) # # ) # ) # ) # T ) . D ) T ) ) T ) ) ) ) ) ) ) X ) h.. . . . . . w.X s s s s s s s s Z s Z s t+. . . . s Z Z s Z Z Z Z Z Z Z Z a.Z :.a.a.a.a.a.:.a.a.a.,.a.,.w.. 1+k.,.:.,.,.,.,.,.,.K ,.K ,.o ,.o ,.o ,.o K o ,.o o K o o o o o o ].o o N.. . N.].].o ].].o ].L ].].L ].L z L z [+. . . T.z L z W z z z z z W z z W z [+. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . c c c c c c c c c c c c %.c c q 0+. . . . M ^.q ^.^.%.%.^.%.%.^.%.+.^.+.^.@ . . . . . . . . . . j.H.y+| +.+.+.+.+.+.+.+.+.+.y.+./.+.+./././.7 V.l.. . . . . . . . . . . | 7 y.y.7 y.7 7 p y.7 p 7 p 7 p 4+. H., p p p p p 1 p 1 p 1 p 1 p o.D . . . . . . . . . 0.1 1 1 1 1 1 # 1 # 1 # 1 # # # o+g.# # # # + # # ) # # ) # ) # ) ) # . . ) ) ) ) ) ) X T X X X X X X t+. . . . . . h.X s s X s s s s s s s s s E+. . . . Z s Z Z Z Z Z Z Z a.Z a.Z a.Z a.5+w.r.w.w.r.w.w.w.w.w.. . w.w.r.w.w.w.r.r.r.r.,.,.,.K ,.K ,.K K o ,.K o K o K o r.U.r.U.r.r.r.r.U.r.. . N.].o ].].].].].].].].].L ].].L ].[+. . . . 7+z z L z z W z z z z W z z [+. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . q c c c q c q c q c q c q c %.c V.. . . . @ q ^.%.%.q ^.%.%.^.%.%.%.^.%.%.@ . . . . . . . . . R./.+.%.+.+.+.+.+.+.+.+.+.y.+.+./.+./././.+.y./././.- g.. . . . . . . . . , 7 7 7 7 7 7 7 y.p 7 7 p 7 p 7 0.j.p p v p p p p p p p 1 p p p 1 v m+. . . . . . . . 4+1 1 1 1 1 1 1 1 1 # 1 1 # 1 1 1 # o.# + # + # # # + ) # ) # ) ) # ) ) . . E+) ) ) ) X ) ) X T X T X ) X . . . . . . 5+X s X s s s s s s s s Z s 5+. . . . s Z Z Z s Z Z A Z Z Z a.Z a.a.a.M.. . . . . . . . . . . . . . . . . . . . . . 1+K ,.K ,.K K K ,.K K K o K K o '+. . . . . . . . . . . . N.].].].o ].o ].].].].].].z ].z ].Q.. . . . 7+z z z z z z z z z z z z z [+. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . c q c q c c q c c q c q c q c %.E.. . . . [ ^.%.c %.^.%.%.^.%.%.%.%.%.+.%.@ . . . . . . . . D P +.+.+.+.%.+.+.+.+.+.+.+.+.+./.+.y.+.y.+.y./.+./././.7 j.. . . . . . . . | /.7 7 y.7 7 7 p 7 7 p 7 p 7 p 4+o.7 p p p v p p p 1 p p 1 1 v 1 p o.. . . . . . . . m+1 1 1 1 1 # 1 1 1 1 1 o.1 # o.# # # + # # + # + ) # # w # ) # ) ) ) # . . h.) ) X T ) X ) X ) X X ) s ) T.. . . . . C.X X s X s X s s s s s s s M.. . . . Z A s Z A Z A Z Z A Z A a.A a.a.M.. . . . . . . . . . . . . . . . . . . . . . K ,.K ,.K ,.K K K K o K K o K o '+. . . . . . . . . . . . N.K ].].*.].].].].].].].].].].].z Q.. . . . 7+].z z ].z z z z z z z z z 7+. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . q c q c q q c q q q %.c q %.q q E.. . . . [ %.q %.%.%.q %.%.%.%.%.%.%.%.%.@ . . . . . . . . - %.+.P %.+.+.+.+.+.+.+.+./.+./.+./.+./.+./././././.y././.v l.. . . . . . . | 7 7 7 7 7 7 7 7 7 7 p 7 p 7 p v p p p v p p 1 p v p p 1 p v p 1 v , . . . . . . . . o.1 1 1 1 1 1 1 1 o.1 + # 1 + 1 + + 1 # + # + ) # + ) + # w # w # ) ) ) . . D ) ) ) ) X T X ) X ) X ) X X h.. . . . . t+s X X X X s s s s s s A s 6+. . . . s Z s A s A Z A A Z A a.A a.A Z M.. . . . . . . . . . . . . . . . . . . . . . 1+k.k.K K K ,.K ,.K K K K K K K '+. . . . . . . . . . . . Q.].K *.*.o *.*.*.].*.].*.].#.].*.[+. . . . j+z ].#.z z #.z z z z #.z z [+. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . q q q q c q q q c q q q q q c %.E.. . . . [ %.%.q %.%.%.%.n %.%.P %.P %.n $ . . . . . . . l.n P +.n P P P P P +.+./.+./.+./././././././././././././.7 M y.j.. . . . . . t.7 7 7 7 7 7 7 7 p 7 7 p 7 p p @ p p v p p p v v v 1 v v v 1 v v 1 v Y.. . . . . . . o., 1 1 , o.1 1 + 1 1 1 + 1 # + 1 # + + # + # + # + # ) + ) + ) + ) ) ) . . . G+) X ) ) ) X ) X X X X ) X C.. . . . . s X X s s s X s b s b s s s M.. . . . A A A A Z A A A Z A A A a.A a.A M.. . . . . . . . . . . . . . . . . . . . . . _+k.k.k.k.K K K K K K K K K K *.'+. . . . . . . . . . . . $+*.*.o *.*.*.].*.*.].*.#.].*.].#.Q.. . . . 7+#.].z #.#.z #.z #.z #.z #.Q.. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . D q q c q q q q q q q q q q %.q %.E.. . . . @ q %.n %.q n %.%.n %.n %.%.P %.@ . . . . . . . 2.P %.P +.P +.P +.P P P P P P P P P +./.P /././././././.M /./.M - . . . . . . | 7 /.7 7 7 7 p 7 p 7 p 7 p v 7 p v 7 v p v v v v v p v 1 v v 1 v v 1 3+. . . . . . . 1 , 1 , 1 1 1 , 1 1 o.1 + o.1 + # + + # + + # + + # * # w # ) + ) ) + ) . . . a+) ) ) X ) ) X ) ) X ) X X a+. . . . . X _ s X X X s b X s s s s A h.. . . . A s A s A s A A A A a.A A a.A A M.. . . . . . . . . . . . . . . . . . . . . . K k.k.K k.K k.k.k.k.K K K K K K '+. . . . . . . . . . . . N.K *.*.*.*.*.*.*.*.*.*.].*.#.*.*.[+. . . . j+#.#.#.#.#.z #.#.#.z #.#.z 7+. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . q q q q q q q q q q q q q q q q k+. . . . } n q %.n n %.n n %.n n n n n n $ . . . . . . D n P P P n P P n P P P P P /.M P /.M P M /.M P M /.M M /.7 M 7 M 7 j.. . . . . t.7 7 @ 7 7 7 @ 7 @ 7 @ p @ 7 v @ p @ v v p v v v v v v v v v v 1 v v V.. . . . . . . , 1 , 1 , 1 , o.1 o.1 + 1 + + 1 + + 1 + + # + + ) + # + w + ) ) + ) w ) . . . a+) w _ ) w X ) _ X ) X X ) _ D . . . . _ X X b X b X s s b b b X b h.. . . . s b A A A A A A A A A A A A a.6 M.T.. . . . . . . . . . . . . . . . . . . . . _+k.k.k.k.k.k.K K B K B K S K B '+. . . . . . . . . . . . $+*.*.K *.K *.*.*.*.*.*.*.*.*.*.#.N.. . . . 7+#.*.].#.#.#.#.z #.#.#.z #.Q.. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . q q q q q q q q q q q n q q n q E.. . . . [ %.n n n q n n %.n n %.n %.n P @ . . . . . . R.P P n P P P P P P P P M P M P P P M P M P /.M /.M /./.M M M M /.M g.. . . . . t.7 M 7 7 @ 7 @ 7 v 7 p @ p @ p @ v p v @ v v v v v v v v 1 v v , v , 1 . . . . . . . 1 , 1 o., 1 , 1 , 1 + 1 o.1 + o.1 + + # + + + # + ) + ) + ) + ) + ) + w . . . t+w ) w ) _ ) w X ) _ w X _ X D . . . D _ X _ X X X b _ b _ s X b s w.. . . . A A s A b A A A A A A A A A A a.M.. . . . . . . . . . . . . . . . . . . . . . _+k.k.k.k.B K k.B K B K K K K K '+. . . . . . . . . . . . Q.K *.S *.*.K *.*.*.*.*.*.*.#.*.*.Q.. . . . j+#.#.#.#.#.#.#.#.z #.#.#.#.Q.. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . q q q q q q ).q q q q q ).q ).n E.. . . . } n q n %.n n %.n n n P n P n n $ . . . . . . k+P n P P n P P P P P P P P [ H.R.g.y+M P M M /.M M M M M 7 /.7 M 7 l.. . . . . | 7 @ 7 @ 7 @ 7 @ 7 @ 7 v 7 @ p @ 3+g.H., v v v v v v , v v , v , v v , g.. . . . . g., 1 , 1 , , o., + , + , + + 1 o.Y.g.4++ + ) + + + ) + ) + ) + w ) + ) ) . . . 4+) _ ) w ) _ ) _ ) _ ) _ X ) #+. . . D X b X b X b X s b X b b s b h.. . . . b A b A b A b A A A A A 6 a.6 A G.. . . . . . . . . . . . . . . . . . . . . . _+k.k.B k.B B B K B K B B B K S _+. . . . . . . . . . . . $+S *.K S *.S *.S *.S *.S *.*.*.#. +. . . . j+*.#.#.*.#.#.#.#.#.#.#.#.#.Q.. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . ).).).).).q ).).).).).).q ).n ).E.. . . . $ ).n n n ).n n n n n n n n n n $ . . . . . . 2.n 5 P 5 P 5 P 5 5 P 5 P 5 3+. . . . @ M M P M M M /.M M M M M M M H.. . . . . t.@ M @ M @ 7 @ 7 @ p @ @ @ p @ V.. . . V.@ v - v - v - v - v , v , v - Y.. . . . . 0., , , , 1 , 1 , 1 + 1 o.1 , + o+. . w.+ + + # + w + + + + w + ) + w w w . . . s+w w w ) _ w ) _ w _ X w _ X Y.. . . r._ X _ X _ X _ b _ s b X b b #+. . . . s b b A b A A A A A 6 A A A A A M.. . . . . . . . . . . . . . . . . . . . . . _+6 B k.B k.B k.B B B K k.S B B '+. . . . . . . . . . . . $+K S S *.S S *.S *.S *...*...*.S Q.. . . . v+#.*.#.#.#.#.#.#.#.#.#.#.#.j+. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . ).q ).).).).).).).).).).n ).).n ;+R.R.R.R.[ n ).n n n n n n n n n n n P n $ . . . . . . } P n P 5 n P 5 P P 5 P M P R.. . . . 2.5 M M M M M M M M M @ M @ M 3+. . . . . | M @ 7 @ 7 @ @ 7 @ @ p @ p @ v 3+. . . H.- v @ v - v , v , v - , v , v 0.. . . . . 0., 1 , , , , + , , , + , + + o.D . . j.+ + + + w + + ) + w ) * + w ) + w D . . 6+) w _ w w _ w _ ) _ w _ _ _ h.. . . g._ X b _ b _ s b _ b _ b s b r.. . . . b b A b b b b A 6 b A 6 6 A 6 6 M.. . . . . . . . . . . . . . . . . . . . . . k.B k.B B B B B B B B B B B K B S.. . . . . . . . . . . . $+S *.B S S K S S S S S *.S S *...Q.. . . . v+..#...*...#...#...#...#.#.Q.. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . ).).).).).).).).).).).).).).).).3 ).3 n : n : n 3 n : n n 3 n n 5 n 5 n 3 $ . . . . . j.5 P 5 5 P 5 5 P 5 5 P 5 5 M j.. . . . ;+M M 5 M M [ M [ M M M M M [ 3+. . . . . t.@ @ @ 7 @ @ @ @ @ 7 @ @ @ v @ 0.. . . H.@ - v - - v - - - , v - , - , 0.. . . . . 0., , , , o., , , + , + + , o.o.. . . D o.+ + + + + + * + w + + ) + * w w . . . Y.w w ) _ w w w _ w _ _ ) _ w 2+. . . h._ _ _ _ _ b _ _ b _ b _ b _ D . . . . b b b b b A A b 6 A A 6 A 6 A 6 M.. . . . . . . . . . . . . . . . . . . . . . B B 6 B g B B B B B B B B S B B '+. . . . . . . . . . . . $+B S S S S S S S S S S S S ..S S  +. . . . '+..S ............#...#.....v+. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . ).).).).).).).).: ).: : ).3 ).3 ).3 ).n : n 3 ).3 n 3 n 3 n 3 3 n 3 3 n 5 $ . . . . . l.3 5 n 5 5 5 5 5 5 5 5 5 P 5 j.. . . . t.5 [ M 5 [ M M [ M [ @ [ @ M k+. . . . . t.M @ @ @ @ M @ @ @ v @ v @ @ @ H.. . . H.- - - - - - - v , - - , - , - 0.. . . . . 0., , , , , , + , , + , + + , V.. . . D o.+ + w + + w + + w * w + * ) * w . . . D w w * w w _ w _ w _ w _ _ _ a+. . . Y._ _ _ _ _ _ b _ b _ b b _ b . . . . . b b b b 6 b 6 b b 6 6 b 6 6 6 6 n+G.M.G.G.M.G.M.G.M.w.. . . . . . . . . . . . _+B g B 6 B g B g B g B g B g S _+. . . . . . . . . . . . $+S S B S S S S S S S S S S S S ..$+. . . . e+....S ....#............... +. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . : : : : : : : : ).: ).: : ).: : : ).: 3 : n : 3 3 3 : 3 3 3 n 3 3 3 5 3 3 =+. . . . . l.5 5 5 5 5 5 5 5 5 P 5 [ 5 M j.. . . . t.[ M [ [ M [ [ [ [ [ [ M [ M t.. . . . . t.@ 7 [ @ @ @ @ @ @ @ @ @ @ - @ H.. . . f.- - p - - , - - - - , - , - , 0.. . . . . 0., , , , , , , , o., + | , + w . . . . + + + + * + + * + w + + w + * + w . . . . _ % w _ w % w w % w _ % w _ a+. . . h.b _ _ _ b _ _ _ ] _ b _ b b . . . . . b b b b b 6 b b 6 b b 6 6 A 6 A 6 6 6 A 6 6 6 6 6 6 G.. . . . . . . . . . . . ^+B 6 B g B B g B B B <.B B g B S.. . . . . . . . . . . . '+S <.S <.S <.S S _._.S _._..._.S  +. . . . S ..S ......................Q.. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . ).: ).: ).: ).: : ).: ).3 : 3 ).3 3 : n : 3 3 ).3 n 3 n 3 3 3 3 n 3 3 n 5 $ . . . . . p+5 n 5 5 n 5 5 5 5 5 5 5 5 5 j.. . . . t.5 [ M 5 [ M [ M [ M @ [ @ [ t.. . . . . t.@ [ @ @ @ @ @ @ @ - @ - @ - @ H.. . . H.- - - - - - - - , - - , - , - 0.. . . . . 0., , | , o., V , , V , + + V V.. . . D o.* + + + + * + w + * w * w + w * . . . . 4+w w w * ) % w _ % w _ % _ _ . . . 6+_ _ % _ _ ] _ ] _ b _ ] _ b . . . . . b b b 6 b b 6 b 6 b 6 6 b 6 6 6 6 6 6 6 6 6 k.6 B 6 G.. . . . . . . . . . . . B 6 B g B g B g B g B g B <.B B B . . . . . . . . . . . . $+<.S B _.S S <.S _.S _.S S _.S S $+. . . Q....._....._...............@. +T.. . . . . . . . . . . . . . . . . ",
+". . . . . . . . . : : : : : : : ).: : : : : ).: : : : 3 : 3 : 3 3 : 3 : 3 3 3 3 3 5 3 5 3 3 =+. . . . . k+3 5 5 5 5 5 5 5 5 5 5 5 [ 5 j.. . . . t.[ 5 [ [ [ [ [ [ [ [ [ [ [ [ 2.. . . . . t.[ @ @ @ @ @ @ @ @ @ @ @ - @ - n.. . . n.- - - - - - - - - - - - - - , 0.. . . . . 0., | , , | , , | , + , V , + V . . . D + + V + * + + * + * + + * + w * w . . . . 6+* w * % w % w _ w % w _ w % . . . 6+% % _ ] _ _ ] _ b _ ] _ ] b . . . . . b ] b ] b b ] b 6 ] 6 b 6 6 6 6 6 6 6 6 6 6 e 6 6 6 G.. . . . . . . . . . . . B g g B g 6 B g g B g g B g B <.S.. . . . . . . . . . . . $+B S <.S <.S <.S _._._._._..._._.F+ +v+S _._..._..._...@.....@.@...@... +. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . : : : : : : : : : : : : : 3 : 3 : 3 : 3 : 3 : 3 3 3 3 3 3 3 3 3 3 3 3 3 5 =+. . . . . 8+5 5 3 5 5 5 5 5 5 5 5 [ 5 [ j.. . . . E.5 [ [ 5 [ [ [ [ [ [ @ [ @ [ $ . . . . . t.@ @ [ @ @ @ @ @ - @ 2.@ @ - @ l.. . . H.- - - - - - - , - | - , | - - 0.. . . . . 0., , , | + | + , V , V , + V V . . . D V + V + V + * + * + * * + * * + * . . . . #+w % w * w * % w % w % % _ _ #+. . 6+_ _ % _ % _ _ ] _ ] _ ] _ 2+. . . . . ] b ] b e b e b e b 6 ] 6 b 6 6 6 6 6 6 6 6 6 6 g 6 G.. . . . . . . . . . . . ^+6 B 6 g g g g B g g B g <.B g S.. . . . . . . . . . . . S._.<.<.<.<.<._.<._.S _._._._._..._._._.@..._...@._...@...@...@...@...@. +. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . : : : : : : : : : : : : : : : : : : 3 : 3 3 : 3 3 : 3 3 3 3 3 3 3 3 5 3 3 =+. . . . . 8+5 4 5 4 5 5 i 5 5 5 i 5 5 5 j.. . . . t.[ [ [ [ [ [ [ [ [ [ [ [ [ [ 2.. . . . . t.[ $ @ @ $ @ $ @ $ @ @ @ @ 2.@ H.. . . n.- - - - - - - - - - , - - - | 0.. . . . . 0.| , | , , , | , , | + , V , V.. . . D V + V + * + * + + * + w * + w * w . . . . . * w % w % * _ * _ % w _ * _ g.. . 2+% % _ % _ ] _ ] % _ ] _ ] n+. . . . . ] b ] b ] 6 b ] 6 b e b e 6 e 6 6 6 6 6 6 6 g 6 6 6 G.. . . . . . . . . . . . B g g g B g B g g B g g B g g B S.. . . . . . . . . . . . $+<.S <.S S <.S _._._._._._._._._._..._..._.@..._.@..._.@...@...@...@... +. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . : : : : : : : : : : : : : 3 : 3 : 3 : 3 : 3 : 3 3 4 3 { 3 4 3 4 5 4 3 4 5 =+. . . . . k+5 5 5 5 i 5 5 5 i 5 5 i [ i j.. . . . ;+[ 5 [ [ [ [ [ [ [ [ [ [ @ [ $ . . . . . t.@ @ [ $ @ @ @ @ @ $ 2.@ 2.@ 2.f.. . . H.2.- 2.- 2.- | - | - | - | , - 0.. . . . . 0., | , V | , V , V , V , V + V . . . D o.( + V + V + * * + * + * * w * + . . . . . a+* w * % w * % w % % % % _ Y.. . s+_ % ] _ % _ % ] _ ] _ ] _ 2+. . . . . ] b ] ] b ] e b ] e b e b e b e 6 e 6 6 6 6 6 6 e g n+. . . . . . . . . . . . ^+6 g g g 6 g g g g g g g <.g <._+. . . . . . . . . . . . S.<.<.<.<.<.<._.<._.<._._._._._._.@.7._.@._._.@.@...@.@...@.@.@.@.@.@.@.U.. . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . : { : { { : { { { : { { { : { { { 3 { : 4 : 4 3 { 3 4 3 3 4 3 3 4 3 5 4 3 =+. . . . . 8+i i i i i i i i i i } } i [ j.. . . R.} [ } [ i [ [ [ [ [ } @ [ } [ 2.. . . . . 0+} @ $ @ @ @ $ @ $ @ @ - $ @ - n.. . . n.- - - a - - - | - | - | - - | 0.. . . . . 0.| , | , , | , | , V , ( | + x.. . . . + V + ( + ( + ( + * ( * + * + * * . . . . . 2+w % * * % * % * % w % * % 6+. . 2+% _ % % % ] _ % ] _ ] % ] G.. . . . T.] ] ] ] ] e b ] e ] 6 ] e 6 e 6 e 6 e e e e e q.6 e G.. . . . . . . . . . . . g g 6 g g g g g g g g g g g g g Z.. . . . . . . . . . . . S.S <.<.<._.<.<.<.<._._.7._.7.@._.7._._.7.@._.@._.7.@.@.@.@.@.@.@.@.@.e+. . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . { { { : { { { : { { { : { 4 : 3 { { 4 4 { 4 { 4 3 4 : 4 4 3 4 4 3 4 4 3 4 =+. . . . . . . . . . . . . . . . . . . . . n.;+i [ i [ i [ } i } } } [ } } } @ } ;+. . . . . 0+@ $ [ $ $ $ @ $ @ a $ $ - $ @ l.. . . l.2.a - a - a - a - 2.| - & - | 0.. . . . . 0.| | | ( | ( | ( | , V | + V V . . . D V ( + ( * V ( V * V + * ( * * * * . . . . . Y.* * * % * % * % * % % * % 2+. . ,+% % % % % % ] % % ] % ] % #+. . . . . ] ] ] e ] ] ] e ] e ] e ] e ] e e e e 6 e 6 e 6 e g G.. . . . . . . . . . . . ^+g q.g g q.g g g g g g g <.g <.Z.. . . . . . . . . . . . S.<.<.<.<.<.<.<.7.<.7.<.7.7.7.7.7.@.7.@.@.7.@.7.@.@.7.@.@.@.@.@.@.@.@.. . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . { { { { { : { { { : { { { { { { { 4 : { 3 { 3 4 { 4 4 4 4 4 4 4 4 4 4 i 4 `.. . . . . . . . . . . . . . . . . . . D E.i [ i i [ i i [ } [ [ } [ } [ $ [ } } $ . . . . . E.} @ $ @ $ @ $ $ @ $ - $ @ $ 2.n.. . . l.@ - a - a - | 2.| - 2.| - | - f.. . . . . 0.| | , | , | , | , V | ( , V x.. . . D V V V + V ( + * + * ( * + * ( * * . . . . . Y.* * % * * % * % % * % % % s+. . ] % % % ] % % ] % ] % ] % ] #+. . . . . ] ] ] ] ] e ] ] e ] e ] 6 e e e e 6 e e e e e e e e z.. . . . . . . . . . . . g e g h e q.q.q.g h g h g h g g Z.. . . . . . . . . . . . c+<.<.<.<.<.<.7.<.7.<.7.7.7.7.7.7.7.7.7.7.@.t @.@.t @.@.t @.t @.@.@.e+. . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . { : { { { { { { { { { { : 4 { { 3 { 4 { 4 { 4 { 3 4 4 3 4 3 4 5 4 5 4 4 5 `.. . . . . . . . . . . . . . . . D p+=+i i i i 5 } i [ } i [ } } } } } } [ } @ } 2.. . . . . 0+$ $ [ $ $ @ $ @ $ @ $ @ a 2.@ n.. . . l.2.a - a - a - 2.2.| 2.- & - & 0.. . . . . 0.| , 2 | | | ( | ( | ( | V , V . . . D V + ( ( V + * V ( * * V * ( * + * . . . . . D * % * * % * % * % % * % % ,+. . a+% % % % % ] % % ] % ] % ] w.. . . . . ] ] ] ] ] ] e ] ] e ] e ] e ] e e e e e e g e e g e n+. . . . . . . . . . . . ^+q.g g q.g g h g g h g g <.h g Z.. . . . . . . . . . . . S.3.<.3.<.3.7.<.t 7.7.7.7.7.7.7.7.7.7.t 7.t 7.t t @.t t @.@.t t t @. +. . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . { { { { { { { { { { { { { { { 4 { { 4 { 4 4 { 4 4 4 { 4 4 4 4 4 4 4 4 4 4 `.. . . . . . . . . . . . . . . . 8+i i i i i i } i i } i } } i } [ } [ } } $ } } ;+. . . . . E.[ $ $ @ $ $ @ $ $ $ $ 2.$ $ 2.l.. . . f.a - a 2.2.2.a - & - & - & - | 0.. . . . . h+| | | , | | | | | , V , V V x.. . . D V ( V V ( V V ( * ( V * ( * ( * * . . . . . . * * % * * % * % * % % * % ,+. . % % % % ] % % % ] % ] % ] % D . . . . . ] ] ] u ] u ] e ] e ] u e e e e e e e e e e e e e e z.. . . . . . . . . . . . g q.h e h q.h g h g h g h g h g Z.. . . . . . . . . . . . S.3.<.3.7.3.7.3.<.7.3.7.3.7.7.7.7.t t @.t @.t @.t t @.@.t t t @.t  +. . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . { { { { { { { { { { { { { { { { 4 { { 4 { 4 4 { 4 4 4 4 4 4 4 4 4 4 4 i 4 `.. . . . . . . . . . . . . . . f.} i i i [ i i i i [ i } [ i } } } } } } } } $ } 2.. . . . . E.$ $ } $ $ $ $ $ @ a @ $ - $ $ f.. . . l.2.a - a 2.2.2.| 2.2.| 2.| 2.| f.. . . . . 0.| | 2 | | ( | ( | 2 | ( | ( V . . . . V V ( + ( ( * V V ( + ( * ( * * ( . . . . . . ,+* * 9.* % * % * % % % * ,+. . % % U % % % U % U % U % U ] . . . . . . ] U ] ] ] ] u ] e ] e ] e u e u e e e e e e h e e h G.. . . . . . . . . . . . b+q.q.q.q.h q.q.h g h g h 3.g 3.Z.. . . . . . . . . . . . S.3.3.<.3.<.3.3.7.3.7.7.7.t 7.t t 7.t t t t t @.t @.t t t @.t t  +. . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . { =.{ =.{ =.{ { =.{ { { { =.4 { { Q { 4 { 4 { 4 4 { 4 4 4 4 4 4 4 i 4 4 4 `.. . . . . . . . . . . j.n..+i i i i i i i i i i } i } i } } } } } } } } $ } } } ;+. . . . . E.[ $ $ @ $ @ $ @ $ $ $ a $ $ 2.l.. . . f.a 2.a 2.a - a 2.& - a | 2.& 2.0.. . . . . f.| 2 - 2 , & , | | , ( | ( V x.. . . D V ( V ( V V V ( * ( * ( * ( * ( * . . . . . . 6+* 9.* * 9.* % 9.9.* 9.% ,+. . ~ % % % % U % % ] % ] % ] % . . . . . . U ] ] ] u ] u ] u u u u e ] u e e e u e e e e h e e z.. . . . . . . . . . . . q.e h q.h q.h q.h g h h h g h h Z.. . . . . . . . . . . . S.3.<.3.3.3.3.3.t 3.t 3.t 3.t t t t t t t @.t t t t t t t t t  +. . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . =.=.{ =.{ =.{ =.{ =.=.=.4 =.{ =.G r K.r K.Q 4 Q { Q 4 4 Q 4 4 Q 4 4 Q 4 i K.. . . . . . . . . . 8+i i i i 4 i i i i i i } i i } i } } i } } } } } } } } $ } ;+. . . . . E.$ $ } $ $ $ $ $ $ $ 2.$ @ a $ n.. . . l.2.a 2.a 2.a a - a & 2.- & - & f.D . . . . 0.| | | | 2 | 2 | ( & | ( | V V . . . D V V ( V ( ( ( ( V * ( ( ( * V * x . . . . . . g.* 9.* 9.* / * % * 9.% 9.A+. D % % ~ % % % ~ U % U % U % D+. . . . . . ] u U ] u ] u u ] u ] e u e e u e b+^+b+^+b+H+b+^+^+G.. . . . . . . . . . . . q.q.h e h q.h h h h h g h 3.h g Z.. . . . . . . . . . . . -+3.3.3.3.3.t 3.3.t 3.t t t t t t t t t t t t t t t t t t t U.. . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . { =.{ =.{ =.{ =.=.{ =.{ =.{ Q { ++. . . . `.=.4 Q 4 =.4 4 Q 4 4 Q 4 4 Q 4 `.. . . . . . . . . 8+i 4 i Q i G i i i i i i i i } i } i } } } } } } } } $ } } } ;+. . . . . E.} $ $ $ $ $ $ $ a $ $ $ a $ 2.l.. . . n.a @ a - a 2.& 2.& 2.a & 2.& - f.. . . . . 0.& | 2 & , | ( | | ( | ( | V x.. . . D V ( V ( V ( V ( ( ( ( * V * ( * * . . . . . . . 9.* / * % * % / % ~ 9.* D+. Y.% ~ % % ~ U % % % U % U ] ,+. . . . . . U ] ] u ] u ] u ] u u u e u u e G.. . . . . . . . . . . . . . . . . . . . . . b+h q.h h h h q.h g h h h h 3.h Z.. . . . . . . . . . . . S.3.3.3.3.3.3.t 3.t 3.t 3.t 3.t t t t t t t t t t t '.@.c+T.. . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . =.=.=.=.=.=.=.=.=.=.=.=.=.=.=.Q F.. . . . K.=.Q { Q Q Q Q 4 Q Q 4 G Q i Q K.. . . . . . . p+G G G G i G i i G i G i i G } i =+`.i 0 } G } } } } } } } $ } $ =+. . . . . E.$ $ } $ $ $ $ $ $ $ a $ $ a $ n.. . . l.a a a a a a - a a - & 2.& 2.& 0.. . . . . f.| & , & & & , & ( | 2 | 2 ( x.. . . D 2 V ( V ( ( V * ( ( ( ( ( x * x ( . . . . . . . o+x * 9./ * 9.* 9.* % ~ % . Y.9.% ~ % ~ % ~ U U % U % U 2+. . . . . . U U U u ] u u ] u u u u u u u u z.. . . . . . . . . . . . . . . . . . . . . . q.h h h h h h h h h h h h h h h Z.. . . . . . . . . . . . }+3.c.3.t 3.3.3.t '.3.'.t '.t '.t Z.U.U.U.U.U.U.U.T.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . =.=.j =.=.=.=.=.=.=.=.Q =.Q =.=.8+. . . . K.=.Q Q Q =.Q Q Q Q G Q Q Q Q Q K.. . . . . . R.G G 4 G i Q G G G G G i G G } G F.D .+0 i 0 } 0 0 } 0 0 0 } 0 $ 0 ;+. . . . . F $ $ $ $ $ $ $ $ $ $ $ $ $ a $ l.. . . n.a a a a a a a a & a & 2.& a & f.. . . . . h+| & & | ( & 2 | & | 2 | 2 | x.. . . D ( 2 ( 2 ( V ( ( ( ( ( ( x ( x * x . . . . . . . D 9./ * 9.* ~ / 9./ 9.9.9.. |+~ % ~ % ~ % ~ % U ~ % U U z.. . . . . . U u U U U U u u u u u u u u e u z.. . . . . . . . . . . . . . . . . . . . . . q.h u h h u h h h h h h h 3.h 3.J.. . . . . . . . . . . . S.c.3.c.3.c.'.'.c.'.t '.'.t '.'.'.c+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . j =.=.j j j =.j =.j j =.j =.j Q ++. . . . K.=.Q Q Q Q Q Q Q Q Q Q Q Q G Q :+. . . . . . F.Q G G G G G i G i G i G 0 G G 8+. . .+G } 0 G } 0 0 } 0 $ 0 0 } 0 ;+. . . . . .+$ 0 $ > $ > $ $ $ $ a $ a $ a n.. . . l.a a a a a a & a a a & a a & 2.f.. . . . . f.& | & & | & | 2 & ( & 2 2 ( x.. . . . 2 V 2 ( 2 ( 2 ( ( x ( x * ( ( x x . . . . . . . . 9.x / 9./ * * ~ * ~ 9.9.. ,+9.~ % ~ % ~ ~ U % U U ~ % ]+. . . . . . U U U u u u U u u u u u u u u u G.. . . . . . . . . . . . . . . . . . . . . . %+h h h C h C h C h C h C C h C Z.. . . . . . . . . . . . }+c.c.'.c.'.3.'.3.'.'.'.'.'.'.t '.c+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . j j =.j =.j =.j =.j =.j =.}.=.=.++. . . . K.Q j Q j Q Q =.Q Q Q Q G Q Q Q K.. . . . . . K.G G Q G G Q G G G G G G i G `.D . . .+0 0 } 0 0 } 0 0 } 0 0 $ 0 =+:+. . . . . E.0 $ > } > $ $ > $ > $ > $ > a n.. . . n.a a < a a a a a & a & a & a & f.. . . . . 0.& & | 2 & | & 2 & | 2 2 | & x.. . . D 2 2 ( 2 ( ( ( x.x ( ( ( x ( x x * . . . . . . . . A+9.* * / 9./ 9.9./ 9.9.. ,+% ~ 9.~ ~ ~ % ~ U ~ % U U Y.. . . . . . U u U U U U u u U u u u u u y u z.. . . . . . . . . . . . . . . . . . . . . . %+h u C h h h h h C h C h h c.h J.. . . . . . . . . . . . Z.c.3.c.c.c.'.c.'.'.'.t '.'.'.'.'.-+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . j =.j j j j j =.j =.j }.=.j =.}.++. . . . K.j Q Q Q }.Q }.}.Q }.Q Q Q Q -.K.. . . . . . G G Q G G G G G G G G G 0 G 0 j.. . . .+G 0 G 0 } 0 0 } 0 0 } 0 } 0 > . . . . . E.> $ $ > } > $ $ > $ a > a $ > n.. . . l.a < a a < a & a a a a & a & & 0.. . . . . f.& & & | & 2 & | 2 & ( & 2 ( x.. . . D 2 ( 2 ( 2 ( 2 ( ( x x.( x x ( x x . . . . . . . . z+x / / * / * / 9.9.9.~ . ,+~ ~ % ~ % ~ ~ ~ ~ U ~ U ~ w.. . . . . . U U U u u u U u u u u u u u u u z.. . . . . . . . . . . . . . . . . . . . . . q.C h C u C C C h C h C C c.h C q.. . . . . . . . . . . . }+c.c.c.'.c.c.'.'.'.'.'.'.'.'.'.'.F+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . j j j j =.j j j j j =.j j }.j j ++. . . . W.=.}.j Q j }.}.Q }.Q }.}.-.Q Q K.. . . . . j.Q G G G G G G G G G G G G G .+. . . . .+G 0 0 0 0 0 0 0 0 0 0 0 > 0 :+. . . . . *+$ 0 > $ > $ > > $ > $ > $ > a l.. . . n.< $ a < a a a < a & & a & a a f.. . . . . f.| & & 2 & & & 2 & 2 | 2 2 & x.. . . D 2 2 2 ( 2 ( 2 x 2 ( x x ( x x.x x . . . . . . . . o+/ * / 9./ 9./ / 9./ ~ g.~ ~ 9.~ ~ ~ ~ ~ U ~ ~ U ~ U #+. . . . . . U u U U U U y u U y u y u y u y z.. . . . . . . . . . . . . . . . . . . . . . %+h y h C C h C h C h C h C h c.J.. . . . . . . . . . . . }+c.c.c.c.c.'.c.'.'.'.'.'.'.'.'.'.-+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . j j j j j j j j j j j j j j j }.++. . . . K.j }.}.}.}.}.}.}.}.}.Q }.}.}.-.K.. . . . . R.}.-.Q -.G Q -.-.G -.G G 0 G <+. . . . .+0 0 G 0 G 0 0 0 0 0 $ 0 0 $ :+. . . . . .+0 $ > 0 $ > $ > $ > a > a > $ n.. . . l.< < < a < < a < & a < a & a & f.. . . . . f.& 2 & & & ( & & 2 & 2 & 2 2 x.. . . . 2 ( 2 2 ( 2 x 2 x ( 2 x x x ( x x . . . . . . . . ]+x / x / 9.* / 9./ 9./ Y.9.~ ~ 9.~ ~ ~ % ~ ~ U ~ U ~ #+. . . . . . U U U y u y U u y u y u y u y h z.. . . . . . . . . . . . . . . . . . . . . . %+C C C h C h C C C C C C C C h J.. . . . . . . . . . . . }+c.c.c.'.c.'.c.'.'.'.'.'.'.'.'.'.-+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . j j j j j j j j j j j j j }.j j ++. . . . W.}.}.}.j }.}.}.}.}.}.}.}.-.Q }.W.. . . . . <+-.G -.G -.-.G -.G G G -.G -.p+. . . . .+G 0 0 0 0 0 0 0 0 0 0 0 0 0 :+. . . . . E.> > $ > > $ > > $ > $ > $ < > l.. . . n.< $ a < a a < a & < a & < & & f.. . . . D f.& & & & & & & ( & & ( & 2 2 x.. . . D 2 2 2 2 2 x 2 x 2 x x x 2 x x x x . . . . . . . . p./ * / * / / / 9./ / 9.z+/ ~ 9.~ ~ ~ ~ ~ ~ U ~ ~ ~ U . . . . . . D U y U U H U u y U y u y u y u y z.. . . . . . . . . . . . . . . . . . . . . . %+C u C C C y C h C C h c.C c.C J.. . . . . . . . . . . . }+c.c.c.9 c.c.9 '.9 '.9 9 '.9 9 '.-+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . j f j f j f j j j j j j j j j }.++. . . . I }.j }.}.}.j }.}.}.}.-.}.}.-.}.W.. . . . . <+Q -.}.-.-.G -.-.G -.-.0 -.0 e.. . . . F.0 G 0 0 0 0 0 0 0 0 > 0 > 0 > . . . . . *+0 > 0 > $ > > $ > > > < > $ < n.. . . l.< < < < < < a < < & < & a < & f.. . . . . f.& & & 2 & & & & &  .& 2 & 2 2 . . . D 2 2 2 x 2 2 x 2 x x 2 x x x x x x . . . . . . . . D x / / / / / / / / 9./ ~ 9.~ ~ / ~ ~ ~ ~ ~ ~ ~ ~ U U . . . . . . . U H U y U y H y y y y y y y y y z.. . . . . . . . . . . . . . . . . . . . . . %+C C C y C C C C C C C C C C C J.. . . . . . . . . . . . }+c.9 c.c.9 c.9 '.9 '.9 '.9 '.9 9 e+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . f j f j f j j f j f ;.j f }.f j ++. . . . W.;.;.j ;.;.}.;.}.;.}.;.}.;.}.}.W.. . . . . <+-.-.-.Q -.-.-.-.-.-.-.-.0 -.j.. . . . .+-.0 r G r 0 0 0 0 0 0 0 0 0 :+. . . . . *+> 0 > > 0 > > > > > > $ > < > v.. . . l.> < $ < a < < < a < & < < & < f.. . . . . f.& & & & & &  .& 2 & 2 2 & 2 i+. . . D 2 2 2 2 x  .2 (  .2 x 2 x 2 x x x . . . . . . . . . A+x 9.x / * / / / / / ~ / ~ / ~ ~ ~ ~ ~ ~ ~ ~ H ~ z+. . . . . . . H y U H y U y y U y y y y y y y z.. . . . . . . . . . . . . . . . . . . . . . h y C C C C C C C C C C C C C c.J.. . . . . . . . . . . . J.9 c.9 9 9 9 c.9 '.9 9 '.9 9 '.9 -+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . f j f f j f f f j f f f j f j ;.~+. . . . W.j ;.;.;.j ;.;.;.;.;.}.;.;.E ;.W.. . . . . <+;.-.-.-.-.-.-.-.-.-.-.-.-.-.D . . . . F.r r 0 r 0 r r 0 r `.0 r > 0 :+. . . . . *+> > > > > > > > > > > > > > < n.. . . l.< < < < < < < < & < < < & < & f.. . . . . f.^ & &  .& & & & 2 &  .&  .& x.. . . . 2  .2 ' 2 x 2  .x  .x  .x  .x x  .. . . . . . . . . |+x / / / / / / / / / ~ / ~ ~ / ~ ~ ~ ~ H ~ H ~ ~ z.. . . . . . . U H H y H y H y y y y y y y y y z.. . . . . . . . . . . . . . . . . . . . . . %+C m C C C m C C m C m m m c.m %+. . . . . . . . . . . . }+c.9 c.m '.9 9 9 9 9 '.9 9 9 9 9 -+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . f f f f f f j f f j f j f ;.f f ++. . . . L.;.f ;.;.;.;.;.;.;.;.;.;.;.;.-.W.. . . . . <+-.;.-.;.E -.-.-.E -.-.-.r -.j.. . . . F.-.0 r -.r r 0 r r 0 r `.r `.i.. . . . . *+> 0 > > 0 > > > > > > < > < > n.. . . l.> < > < < < < < < < & < < ^ < f.. . . . . f.& & & ^ &  .& ' &  .& & ' 2 i+. . . D ' 2 2  .2  .2  .x 2 x  .x x  .x x . . . . . . . . . D / / / / / / / / / / ~ / ~ / ~ ! ~ ~ ~ ~ ~ ~ H U p.. . . . . . . H H H H H y H y H y y y y y C y O.. . . . . . . . . . . . . . . . . . . . . . %+m y C m C m C m C m C m C m m J.. . . . . . . . . . . . J.m 9 9 9 9 9 c.9 9 9 9 9 9 9 9 9 -+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . f f f f f f f f f f f f f f j >.++. . . . L.f ;.f ;.f ;.;.;.;.;.E ;.;.;.;.W.. . . . . <+;.-.E -.E E E -.E -.E r E -.j.. . . . F.-.r r r r r r r r r 0 r r r :+. . . . . *+> r > > > > > > > > > > > > > l.. . . v.< < < < > < < < < < < ^ < < ^ f.. . . . . f.^ ^ & & ^ & ^ & ^ & ' &  .& x.. . . D 2 '  .2 2  .x  .2  . .x  .x  .x l . . . . . . . . . . r+x / / / / / / / / ~ ! / ~ ~ ! ~ ! ~ H ~ H ~ ! . . . . . . . . U H H H H y H y y y y y y y y y O.T.. . . . . . . . . . . . . . . . . . . . . )+C m m m m C m m m C m m 9 m m J.. . . . . . . . . . . . }+9 9 m 9 9 9 9 9 9 9 9 9 9 9 9 9 e+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . f f f f f f f f f f f f f ;.f f ~+. . . . W.f ;.>.;.;.>.;.>.;.>.;.;.;.;.E L.. . . . . <+E ;.E E ;.-.E -.E E E -.r E j.. . . . F.r r r -.r r r r 0 d r > r `.i.. . . . . *+> r > d > r > > > > > > > < > v.. . . l.< > < F < < < < < ^ < < < & < f.. . . . . f.^ & ^ ^ & ^ & ' & ' 2 ^ 2 ' i+. . . . ' 2  .2  . .x. .x  .x  .x  .x l x . . . . . . . . . . l+/ l / / / / / / ! / / ~ / ! ~ ~ ~ ~ ! H ~ ! U . . . . . . . . H H H H y H y H y H y y y = y = z.. . . . . . . . . . . . . . . . . . . . . . C y m C = C m m C m m m m C m m J.. . . . . . . . . . . . J.m 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 !+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . f f f f f f f f f f f f f f f f ~+. . . . L.f ;.f >.>.;.>.;.;.>.;.>.E ;.;.L.. . . . . ~+E E ;.E E E -.E -.E -.E E -.j.. . . . F.-.r r r r r r r r r r r r r :+. . . . . *+r > d > 0 > d > > > > F > > F n.. . . v.F < > < < < b.< < < < ^ < < ^ f.. . . . . f.^ & ^ & ' & ^ & ' & ' &  .& i+. . . D 2 ' 2  .2  . .2  . .x ' x  .x l x . . . . . . . . . . ,+/ / / / / ! / / / ! ~ ! ~ ! ~ ! H ! ~ ~ H H ~ . . . . . . . . H H H y H H H y H y = y = y m y O.. . . . . . . . . . . . . . . . . . . . . . %+m m m m m m C m m m m m m 9 m J.. . . . . . . . . . . . {+9 9 9 m 9 9 9 R 9 R 9 R 9 R 9 R -+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . $.$.f $.f $.f f f f f f >.f >.f ~+. . . . L.f >.>.;.f ;.>.>.>.;.>.;.>.>.E L.. . . . . ~+E ;.E E E E E E E E E E r E e.. . . . F.E r E r r r r r r r r r d r i.. . . . . *+d > r > d d > > d > i.> > F > v.. . . l.> F < F F < < F ^ < b.< ^ < b.f.. . . . . f.^ ^ ^ ^ & ^ ' & ' & ' & ' ' ' . . . D ' 2  .'  .2  . . .x. .x  .l l x l . . . . . . . . . . |+l r+/ l ! / / / ! ~ / ! ! ! ~ ! / H ! H ! ~ g+. . . . . . . . H H H H H y H = y = y = y = y y O.. . . . . . . . . . . . . . . . . . . . . . )+m y m C m m m m m m m m m m m >+. . . . . . . . . . . . J.9 ` 9 9 R 9 R 9 9 9 R 9 R 9 R 9 !+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . f $.$.f $.f $.$.f $.f f $.f f f ~+. . . . L.f >.f >.>.>.>.;.>.>.>.E >.;.>.L.. . . . . v.E E ;.E ;.E E E E E E E E E <+. . . . &+r N r r E r r r r r d r r r i.. . . . . *+d r > d > > d > d > > d > > i.n.. . . v.F < F < < F < < F < < ^ F ^ < f.. . . . . l.^ & ^ ^ ^ ^ & ^ ^ ' ^ ' 2 ' ^ g.. . g.'  .' 2  . . .x  . . .l  .x  .l x . . . . . . . . . . ]+/ / ! / / ! / ! / ! ! ! ~ ! ! H ! / H ! H ! z.D . . . . . . . H H H H = H = H = y = y = = y = O.. . . . . . . . . . . . . . . . . . . . . . %+m m m m m m m m m m m m 9 m 9 %+. . . . . . . . . . . . {+9 9 R 9 ` R 9 R R R 9 R 9 R R R e+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . $.$.$.$.$.$.f $.$.$.$.$.f $.~.f (+. . . . L.f >.>.>.>.>.>.>.>.>.>.>.>.>.I L.. . . . . j.I >.E I E I E E I E E E N E N C+. . j.r N E N E N r N N N r N r d r &+. . . . . *+d > d d d d d > d > i.> F d F v.. . . l.> F > F F < F b.< b.F b.< < b.f.. . . . . D ^ ^ ^ ^ & ^ ^ ^ ' & ' & ^ ' 2 ' g.. h+2 '  . .' '  .'  .l  .l x.l l x l . . . . . . . . . . ]+1./ l / ! l / ! / ! / ! ! ! ! ! ! ! ! H ! H . . . . . . . . . H H = H = H = = y = = = = = = = O.. . . . . . . . . . . . . . . . . . . . . . )+= m m = m m m m m m m m m m ` >+. . . . . . . . . . . . J.` R ` R 9 R R 9 R 9 R R R R R R !+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . $.$.$.$.$.$.$.$.$.$.f $.~.$.f $.~+. . . . I.$.>.$.>.f >.>.>.>.>.I >.>.I >.L.. . . . . . >.E I >.E I E I E I E E I E N E W.W.E I N N r N N N r N r N r d r N i.. . . . . F.d r d > r > d d > d > d > > i.n.. . . v.F F F > F F < F b.< b.< ^ b.^ f.. . . . . . ^ ^ ^ ^ ^ ' ^ ^ ^ ' ^ ' ' ' ' ^ i+'  .' ' ' 2  .'  . . . . .x l  .l l l . . . . . . . . . . g./ ! l ! / ! ! ! / ! ! ! ! ~ ! H ! H ! ! H ! D . . . . . . . . H H = H = H = H = = = y = m = = z.. . . . . . . . . . . . . . . . . . . . . . )+m ` m ` m m ` m ` m ` ` ` ` 9 >+. . . . . . . . . . . . {+9 R 9 R d.R 9 R R R R R R R R R !+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . $.Y $.$.$.$.$.$.$.$.$.$.$.$.~.$.(+. . . . L.~.>.~.>.~.~.>.~.>.>.>.>.>.>.I L.. . . . . . L.>.I I I E >.I E I E I N E I E E N E N N E N E N r N N N d N N N r &+. . . . . *+d d d d d d d > d d d F i.d F v.. . . n.F > F F < F b.< b.< b.F b.< b.n.. . . . . . ^ ^ ^ ^ ^ ^ ^ ' ^ ^ ' ^ ' ^ ' '  .' ' ' '  . . .'  . .x.l ' l  .l l x l . . . . . . . . . . p.1./ ! / ; / ! / ! ! ! ! ! ! ! ! ! ! ! H ! ~ . . . . . . . . D = H = H = H = = = = = = = = = = O.. . . . . . . . . . . . . . . . . . . . . D )+= ` m ` m ` ` m ` ` ` ` 9 m ` >+. . . . . . . . . . . . {+R R d.R R R R R R R R R R R R R !+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . Y $.Y Y Y $.Y $.$.$.$.$.$.$.$.~.(+. . . . I.$.$.~.~.>.~.>.~.~.>.~.~.I ~.>.I.. . . . . . f+I >.I I I I I I I I E I I N I 4.E 4.E N N N N N 4.N r N N N d N d &+. . . . . F.r d d d d d d d d F d d > i.d n.. . . v.F F F F F F F F b.b.F b.b.b.b.u+. . . . . . b.^ ^ ^ ^ ^ ^ ^ ^ ' ^ ' ^ ' ' ' ' ' ' '  .' ' ' l ' l l  .l  .l  .l l l . . . . . . . . . . D r+1./ l ! l ! ! ! / ! ! ! ! ! ! H ! H ! H w+. . . . . . . . . H H = H = = = H = = = = = = = m O.. . . . . . . . . . . . . . . . . . . . . . )+` m ` ` ` m ` ` ` m d.` ` d.` >+. . . . . . . . . . . . {+R d.R R R d.R R R R !.R R !.R !.!+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . Y Y Y $.Y $.Y $.Y Y m.Y $.m.$.$.(+. . . . I.~.~.>.~.$.~.~.~.>.~.I ~.>.~.>.f+. . . . . . q+>.I I I >.I E I I E I I N I E 4.E 4.N I N N E 4.r 4.N N N N N r N &+. . . . . F.d d d r d d d d d d > i.d F i.v.. . . n.i.F F F > F F F F F b.< b.b.b.n.. . . . . . x+^ ^ ^ ^ ^ ^ ^ ^ ' ^ ' ' ^ ' ^ ' ' ' '  .' '  .' l ' l l ' l ' l l l l . . . . . . . . . . D ! l ; ! ! ! l ! ! ! ! ! ! ! H ! ; ! = ; ! g+. . . . . . . . . = = ; = H = = = = = = = = = = = O.. . . . . . . . . . . . . . . . . . . . . . )+` ` ` ` ` ` ` ` ` ` ` ` ` ` R >+. . . . . . . . . . . . J.R R R R R R R R !.R R !.!.R !.!.!+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . Y Y Y Y Y Y Y Y Y $.Y $.Y m.$.Y (+. . . . I.$.m.$.~.~.~.~.~.~.~.~.~.~.I ~.L.. . . . . . j.~.I >.I I I I I I I 4.I I I 4.4.I 4.E 4.N I N 4.4.N N N N N N N N &+. . . . . F.d N d d d d d d d d d d i.d i.v.. . . v.F i.F i.F F F F b.F b.b.b.b.b.f.. . . . . . x+^ b.^ ^ ^ ' ^ ^ ^ ' ^ ' ' ^ ' ' ' ' ' ' ' l ' l ' l ' l l l l l l l l . . . . . . . . . . D r+! l ! l ! ! ! ! ! ; ! ! ; ; ! H ; ! = ! O.. . . . . . . . . ; = = = = = H = = = = = = = = = O.. . . . . . . . . . . . . . . . . . . . . . )+= ` ` ` ` ` ` ` ` ` d.` d.` ` >+. . . . . . . . . . . . {+R d.R d.!.!.R !.R !.!.!.R !.!.!.!+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . Y Y Y Y Y Y Y Y Y $.Y Y m.Y $.m.(+. . . . I.$.~.m.~.~.~.~.~.~.~.~.~.~.~.~.I.. . . . . . . I.I I I I ~.I I I I I I I 4.I 4.I 4.W.4.4.N 4.N N 4.N 4.N N N d N &+. . . . . F.N d d d d d d d d i.d i.d F i.v.. . . v.F d F F F F F F F F b.F b.b.b.f.. . . . . . u+^ ^ ^ ^ ^ ^ ^ ^ ' ^ ' ^ ' ' ' ' ' ' ' ' ' ' l ' ' l ' l l ' l ' l l l . . . . . . . . . . . ! l ! ! ! ; / ; ! ; ! ! ; ! H ; ; ! = ; ! ]+. . . . . . . . . = = ; = = = = = = = = = = = ` = O.. . . . . . . . . . . . . . . . . . . . . . = ` ` ` ` ` ` ` ` ` ` d.d.` R d.>+. . . . . . . . . . . . {+d.!.!.R !.R !.!.!.!.!.!.!.!.!.!.!+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y (+. . . . I.Y m.~.m.$.~.~.~.~.~.~.~.I ~.~.f+. . . . . . . e.I ~.I ~.4.I ~.I I I I 4.I 4.I 4.q+++4.I 4.4.4.4.N 4.N N N N N N &+. . . . . F.d N d N d d d d d d i.d d d i.v.. . . v.F i.F F F F F F b.F b.b.b.b.b.f.. . . . . . j.x+^ ^ ^ ^ ^ ' ^ ^ ' ^ ' ' ^ ' ' h+p.' l ' ' ' l ' l l ' l l l l l l l . . . . . . . . . . . l ; l ; l ; ; l ; ! ; ! ; ; ; ; H ; ; H ; #+. . . . . . . . . = = = = = = = = = = = = ` = = = O.D . . . . . . . . . . . . . . . . . . . . . )+` ` ` ` ` ` ` d.` d.` d.d.d.d.>+. . . . . . . . . . . . {+!.d.!.!.d.!.!.!.!.!.!.!.!.!.!.!.!+T.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . Y Y Y Y Y Y Y Y Y Y Y Y m.Y m.Y (+. . . . I.Y m.m.m.m.m.m.m.m.~.~.~.m.~.~.I.. . . . . . . . q+I.~.4.~.I I I I I I 4.I I 4.C+. ~+4.4.4.4.4.4.4.4.4.N 4.4.&+N &+. . . . . F.d N d d d d d d d d i.d i.i.i.v.. . . v.F i.F i.i.F F F F F F F b.b.b.n.. . . . . . . D B+^ ^ ^ ^ ^ ^ ^ ' ^ ' ^ ' ' u+. D ' ' l ' l ' ' l ' l l ' l l ' 1.l . . . . . . . . . . p.! 1.! ! ; ! ; ! ; ; ! ; ; ; ; ; ; ; = ; H . . . . . . . . . j.= = ; = = = = = = = = = = = = ` O.. . . . . . . . . . . . . . . . . . . . . . = ` ` d.` ` d.d.d.d.d.d.d.d.d.d.>+. . . . . . . . . . . . >+!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . Y Y Y Y Y Y Y Y Y Y Y Y Y Y m.Y (+. . . . I.Y m.m.m.m.m.m.m.~.m.m.m.I m.m.f+. . . . . . . . . j.q+f+I.I.~.4.I I.I I.f+C+e.. . ~+4.4.4.4.4.4.4.N 4.N N N 4.N &+. . . . . F.4.i.N &+N d d d d i.d i.d i.i.v.. . . v.F i.i.F F F i.F F F b.b.b.b.b.f.. . . . . . . . . j.v.u+B+^ ^ ' ^ ' ^ B+/+g.. . D ' ' ' ' l ' 1.' 1.' l l ' 1.l l l . . . . . ]+l+l+l+l+1.1.! l ; l ; ! ; ! ; ; ; ; = ! ; = ; ; = g+. . . . . . . . . . = ; = = = = = = = = = = = = = = g+. . . . . . . . . . . . . . . . . . . . . . )+d.` d.d.d.d.d.d.d.d.d.d.d.d.!.)+. . . . . . . . . . . . {+!.d.!.!.!.!.!.!.!.!.!.!.!.!.!.!.{+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.j.. . . . s.s.s.s.s.s.s.s.e.s.e.e.e.s.e.e.e.. . . . . . . . . . . . . . . . s.e.. . . . . . . e.e.e.e.e.v.e.e.e.e.e.e.e.e.e.e.. . . . . j.e.e.g.e.e.e.e.e.e.e.e.e.R.e.e.D . . . D e.g.R.e.g.e.R.g.e.g.e.g.e.p.e.j.. . . . . . . . . . . . . . j.p.j.. . . . . . . . g.p.g.p.g.p.g.p.g.g.g.g.g.g.g.g.p.. . . . . /+1.1.1.1.l ; l ; ; ; ; l ; ; ; ! ; ; ; ; ; ; = ; ; #+. . . . . . . . . . p.D.p.]+p.|+D.|+D.|+D.O.D.O.D.@+#+. . . . . . . . . . . . . . . . . . . . . . D.D.]+D.D.]+D.p.D.z.D.D.z.@+D.@+D.. . . . . . . . . . . . D.@+@+z.@+D.z.@+@+@+@+c+@+c+-+@+-+U.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /+l 1.1.1.1.; 1.; l ; ; ; ; ; ; ; ; ; ; = ; ; ; = |+. . . . . . . . . . . . . D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /+1.1.1.1.1.; l ; ; ; 1.; ; ; ; ; ; ; ; ; ; ; ; g+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /+1.1.1.1.1.; ; 1.1.; ; 1.; ; ; ; ; = ; ; = ; = |+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h+1.1.l ; 1.1.1.; ; 1.; ; ; ; ; ; ; ; ; ; ; ; w+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /+1.1.1.1.1.; 1.; 1.; ; ; ; ; ; ; ; ; ; = ; ; p.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /+1.1.1.1.1.; 1.; ; ; ; ; ; ; ; ; ; ; ; g+|+#+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /+1.1.1.1.1.1.; 1.; 1.; ; ; ; w+/+D.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . g.p.p.p.p.p.]+p.p.p.p.p.p.p.D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D . . . D . D D . D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/newtab.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,31 @@
+/* XPM */
+static char * newtab_xpm[] = {
+"20 20 8 1",
+" 	c None",
+".	c #CECECE",
+"+	c #B6B6B6",
+"@	c #626262",
+"#	c #4A4A4A",
+"$	c #000000",
+"%	c #FFFFFF",
+"&	c #7A7A7A",
+"....................",
+".+@@@@@@@@@@@@@@@@+.",
+".#$$$$$$$$$$$$$$$$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$&&&&&&&&&&&&&&$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$&&&&&&&&&&&&&&$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$%%%%&%%%%&%%%%$#.",
+".#$$$$$$$$$$$$$$$$#.",
+".+@@@@@@@@@@@@@@@@+.",
+"...................."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/preferences.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,41 @@
+/* XPM */
+static char * preferences_xpm[] = {
+"20 20 18 1",
+" 	c None",
+".	c #CECECE",
+"+	c #B6B6B6",
+"@	c #AAAAAA",
+"#	c #868686",
+"$	c #6E6E6E",
+"%	c #4A4A4A",
+"&	c #323232",
+"*	c #000000",
+"=	c #565656",
+"-	c #626262",
+";	c #9E9E9E",
+">	c #929292",
+",	c #F2F2F2",
+"'	c #7A7A7A",
+")	c #C2C2C2",
+"!	c #FE0000",
+"~	c #3E3E3E",
+".....++@#$$#@++.....",
+"....+#%&*&&*&%#+....",
+"...+=*-#@;;@#-*=+...",
+"..+=*>..,-;,..>*=+..",
+".+=*#;,,,-;,,,;#*=+.",
+"+#*>;-;,,-;,,;-;>*#+",
+"+%=.,;',,,,,,';,)-%+",
+"@&#,,,,,,,,,,,,,.#&@",
+"#*@,,,,,,!!,,,,,,@*#",
+"$&;---,,,!!,,,---;&$",
+"$&;+++,,,!!,,,;++;&$",
+"#*@,,,,,,!!,,,,,,@*#",
+"@&#,,,,,,!!,,,,,.#&@",
+"+%-.~,,,,!!,,,,~)-%+",
+"+#*>.,,,,!!,,,,.>*#+",
+".+=*#,,@----@,,#*=+.",
+"..+=*.--****--.*=+..",
+"...+=*-******-*=+...",
+"....+#%&*&&*&%#+....",
+".....++@#$$#@++....."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/queue.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,46 @@
+/* XPM */
+static char * queue_xpm[] = {
+"20 20 23 1",
+" 	c None",
+".	c #CECECE",
+"+	c #9E9E9E",
+"@	c #868686",
+"#	c #6E6E6E",
+"$	c #323232",
+"%	c #565656",
+"&	c #3E3E3E",
+"*	c #000000",
+"=	c #734A00",
+"-	c #503200",
+";	c #B6B6B6",
+">	c #262626",
+",	c #966200",
+"'	c #B97A00",
+")	c #7A7A7A",
+"!	c #626262",
+"~	c #DC9200",
+"{	c #FFB848",
+"]	c #FFAA25",
+"^	c #48B8FF",
+"/	c #8ED4FF",
+"(	c #0092DC",
+".......+@#$$$$#@+...",
+"......%&$*=--=*$&%..",
+"....;%>=,,'''',,=>%;",
+"....)>=,'''''''',=>)",
+"....)*>=,,'''',,=>*)",
+"....!*-&-======-&-*!",
+"....!*--=******=--*!",
+"....!*-=,'''''',=-*!",
+"....!**-,'~{]~',=-*!",
+"@@@@!*^*-'~{]~',=-*!",
+"******^^*-~{]~',=-*!",
+"*/^^^^^^^*-{]~',=-*!",
+"*(((((^^(*-{]~',=-*!",
+"******^(*-~{]~',=-*!",
+"@@@@!*(*-'~{]~',=-*!",
+"....)**-,'~{]~',=-*)",
+"....)*-=,'~{]~',=-*)",
+"....;%>-=,'~~',=->%;",
+".....;%&$******$&%;.",
+".......;)!%%%%!);..."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/remtab.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,38 @@
+/* XPM */
+static char * remtab_xpm[] = {
+"20 20 15 1",
+" 	c None",
+".	c #6E6E6E",
+"+	c #000000",
+"@	c #3E3E3E",
+"#	c #CECECE",
+"$	c #626262",
+"%	c #730025",
+"&	c #FF6B8F",
+"*	c #B6B6B6",
+"=	c #B9003D",
+"-	c #DC0049",
+";	c #4A4A4A",
+">	c #FFFFFF",
+",	c #7A7A7A",
+"'	c #960031",
+".++@###@++$#########",
+"+%&+@#@+&%+$$$$$$$*#",
+"+=-&+@+&-=++++++++;#",
+"@+=-&+&-=+@>,>>>>+;#",
+"#;+=-&-=+@>>,>>>>+;#",
+"##@+&-&+@>>>,>>>>+;#",
+"#;+&-'-&+@>>,>>>>+;#",
+"@+&-'+'-&+@,,,,,,+;#",
+"+&-'+@+'-&+>,>>>>+;#",
+"+%'+@>@+'%+>,>>>>+;#",
+".++@>>>@++@>,>>>>+;#",
+"#;@>>>>,>>>>,>>>>+;#",
+"#;+,,,,,,,,,,,,,,+;#",
+"#;+>>>>,>>>>,>>>>+;#",
+"#;+>>>>,>>>>,>>>>+;#",
+"#;+>>>>,>>>>,>>>>+;#",
+"#;+>>>>,>>>>,>>>>+;#",
+"#;++++++++++++++++;#",
+"#*$$$$$$$$$$$$$$$$*#",
+"####################"};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/resources.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,81 @@
+#define DW_RESOURCE
+
+/* XPMs */
+#include "FILE.xpm"
+#include "FOLDER.xpm"
+#include "LINK.xpm"
+#include "about.xpm"
+#include "admin.xpm"
+#include "change.xpm"
+#include "connect.xpm"
+#include "disconnect.xpm"
+#include "exit.xpm"
+#include "flush.xpm"
+#include "handyftp.xpm"
+#include "help.xpm"
+#include "logo.xpm"
+#include "newtab.xpm"
+#include "preferences.xpm"
+#include "queue.xpm"
+#include "remtab.xpm"
+#include "save.xpm"
+#include "unqueue.xpm"
+#include "unsave.xpm"
+
+/* Associated IDs */
+#include "dmail.h"
+
+#define RESOURCE_MAX 20
+
+long _resource_id[RESOURCE_MAX] = {
+	FILEICON,
+	FOLDERICON,
+	LINKICON,
+	IDM_ABOUT,
+    ADMIN,
+	PB_CHANGE,
+	CONNECT,
+	DISCONNECT,
+	IDM_EXIT,
+	FLUSHQ,
+	MAIN_FRAME,
+	IDM_GENERALHELP,
+	LOGO,
+	NEWTAB,
+	IDM_PREFERENCES,
+	ADDTOQ,
+	REMOVETAB,
+	SAVETITLE,
+	REMOVEFROMQ,
+	UNSAVETITLE
+};
+
+char *_resource_data[RESOURCE_MAX] = {
+	(char *)FILE_xpm,
+	(char *)FOLDER_xpm,
+	(char *)LINK_xpm,
+	(char *)about_xpm,
+	(char *)admin_xpm,
+	(char *)change_xpm,
+	(char *)connect_xpm,
+	(char *)disconnect_xpm,
+	(char *)exit_xpm,
+	(char *)flush_xpm,
+	(char *)handyftp_xpm,
+	(char *)help_xpm,
+	(char *)logo_xpm,
+	(char *)newtab_xpm,
+	(char *)preferences_xpm,
+	(char *)queue_xpm,
+	(char *)remtab_xpm,
+	(char *)save_xpm,
+	(char *)unqueue_xpm,
+    (char *)unsave_xpm
+};
+
+typedef struct _resource_struct {
+	long resource_max, resource_id;
+	char **resource_data;
+} DWResources;
+
+DWResources _resources = { RESOURCE_MAX, _resource_id, _resource_data };
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/save.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,39 @@
+/* XPM */
+static char * save_xpm[] = {
+"20 20 16 1",
+" 	c None",
+".	c #6E6E6E",
+"+	c #4A4A4A",
+"@	c #000000",
+"#	c #7A7A7A",
+"$	c #929292",
+"%	c #9E9E9E",
+"&	c #B6B6B6",
+"*	c #C2C2C2",
+"=	c #AAAAAA",
+"-	c #565656",
+";	c #626262",
+">	c #FFFFFF",
+",	c #DADADA",
+"'	c #3E3E3E",
+")	c #CECECE",
+".++..............++.",
+"+++@@@@@@@@@@@@@@+++",
+"++#$............%#++",
+"+@#$............%#@+",
+"+@#$............%#@+",
+"+@#$............&#@+",
+"+@#$............*#@+",
+"+@#$............*#@+",
+"+@#$............&#@+",
+"+@##$$$$$==&&&*&##@+",
+"+@################@+",
+"+@##--------;;;;##@+",
+"+@#->>,,,,,,*'-;%#@+",
+"+@#->;-'>)*),'-;%#@+",
+"+@#-,;-'>*)*,'-;%#@+",
+"+@#-,;-'>)*),'-;%#@+",
+"+@#-,;-'>*)*,'-;%#@+",
+"+@+-,===****,'-;%#@+",
+"=+@@@@@@@@@@@@@@@@@+",
+")=+++++++++++++++++."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/unqueue.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,47 @@
+/* XPM */
+static char * unqueue_xpm[] = {
+"20 20 24 1",
+" 	c None",
+".	c #CECECE",
+"+	c #9E9E9E",
+"@	c #868686",
+"#	c #6E6E6E",
+"$	c #323232",
+"%	c #565656",
+"&	c #3E3E3E",
+"*	c #000000",
+"=	c #734A00",
+"-	c #503200",
+";	c #B6B6B6",
+">	c #262626",
+",	c #966200",
+"'	c #B97A00",
+")	c #7A7A7A",
+"!	c #626262",
+"~	c #4A4A4A",
+"{	c #DC9200",
+"]	c #FFB848",
+"^	c #FFAA25",
+"/	c #8ED4FF",
+"(	c #48B8FF",
+"_	c #0092DC",
+".......+@#$$$$#@+...",
+"......%&$*=--=*$&%..",
+"....;%>=,,'''',,=>%;",
+"....)>=,'''''''',=>)",
+"....)*>=,,'''',,=>*)",
+"....!*-&-======-&-*!",
+"....!*--=******=--*!",
+"....!*-=,'''''',=-*!",
+"...~**-=,'{]^{',=-*!",
+"..~*/*--=,']^{',=-*!",
+".~*/(******'^{',=-*!",
+"~*/(((((((*=^{',=-*!",
+"~*_((_____*=^{',=-*!",
+".~*_(******'^{',=-*!",
+"..~*_*--=,']^{',=-*!",
+"...~**-=,'{]^{',=-*)",
+"....)*-=,'{]^{',=-*)",
+"....;%>-=,'{{',=->%;",
+".....;%&$******$&%;.",
+".......;)!%%%%!);..."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gtk/unsave.xpm	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,31 @@
+/* XPM */
+static char * unsave_xpm[] = {
+"20 20 8 1",
+" 	c None",
+".	c #CECECE",
+"+	c #000000",
+"@	c #4A4A4A",
+"#	c #FF6B8F",
+"$	c #DC0049",
+"%	c #960031",
+"&	c #626262",
+"....................",
+"...+++........@++...",
+"..++#++......@+#++..",
+".++#$#++....@+#$#++.",
+".+#$$$#++..@+#$$$%+.",
+".++%$$$#+&&+#$$$%++.",
+"..++%$$$#++#$$$%++..",
+"...++%$$$##$$$%++...",
+"....++%$$$$$$%++....",
+".....&+%$$$$%+&.....",
+".....&+#$$$$#+&.....",
+"....++#$$$$$$#++....",
+"...++#$$$%%$$$#++...",
+"..++#$$$%++%$$$#++..",
+".++#$$$%+&&+%$$$#++.",
+".+$$$$%++..@+%$$$$+.",
+".++%$%++....@+%$%++.",
+"..++%++......@+%++..",
+"...+++........@++...",
+"...................."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/install.sh	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,42 @@
+#! /bin/sh
+#
+# Copyright (c) 1999 Marcel Moolenaar
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer 
+#    in this position and unchanged.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+#    derived from this software withough specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# $FreeBSD: src/tools/install.sh,v 1.3 1999/12/15 18:08:56 marcel Exp $
+
+# parse install's options and ignore them completely.
+# XXX - not all options are recognised.
+while [ ! -z $1 ]; do
+    case $1 in
+    -C | -c | -D | -M | -p | -s) shift;;
+    -f | -g | -m | -o) shift; shift;;
+    *) break;
+    esac
+done
+
+# the remaining arguments are assumed to be files/dirs only.
+exec install -c -p $*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makefile.b32	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,22 @@
+GUISTARTUP=c0w32.obj
+LIBS=import32.lib cw32mt.lib
+CFLAGS=-c -tWM -w-par -y -v
+LFLAGS=-aa -v -L$(LIBPATH)
+
+# the first rule will be made by default
+all: handyftp.exe
+
+handyftp.obj: handyftp.c
+        bcc32 $(CFLAGS) handyftp.c
+
+compat.obj: compat.c
+        bcc32 $(CFLAGS) compat.c
+
+dw.obj: win\dw.c
+        bcc32 $(CFLAGS) win\dw.c
+
+handyftpw.res: handyftpw.rc
+        brcc32 handyftpw.rc
+
+handyftp.exe: handyftp.obj dw.obj compat.obj handyftpw.res
+        ilink32 $(LFLAGS) $(GUISTARTUP) handyftp.obj dw.obj compat.obj,handyftp.exe,,$(LIBS),,handyftpw.res
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makefile.emx	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,44 @@
+# $Id: makefile.emx,v 1.5 2005/04/17 11:36:53 nuke Exp $ 
+
+# Dynamic Mail Makefile
+
+CC = gcc
+RM = rm -f
+RC = rc
+MAKE = make
+COMPRESS = lxlite
+
+DEFS =
+LIBS =
+
+CFLAGS = -O2 -g -Zomf -Zmt -D__ST_MT_ERRNO__ -I. -Wall
+LDFLAGS = -lsocket
+RCFLAGS = -r
+
+
+OBJECTS = dmail.o backend.o receive.o send.o parse.o account.o datetime.o
+
+SOURCES = dmail.c backend.c receive.c send.c parse.c account.c datetime.c
+
+all: dmail.exe
+
+$(OBJECTS):
+	$(CC) $(CFLAGS) -c $<	
+
+dmail.exe:  $(OBJECTS)
+	$(RC) $(RCFLAGS) dmail.rc
+	$(CC) $(CFLAGS) $(DEFS) -o dmail.exe $(OBJECTS) $(LDFLAGS) -ldw -ldwcompat dmail.def dmail.res
+#	$(COMPRESS) dmail.exe
+
+clean: 
+	$(RM) $(OBJECTS) dmail.exe dmail.res
+
+dmail.o: dmail.c dmail.h backend.h
+backend.o: backend.c backend.h
+receive.o: receive.c sendrecv.h
+send.o: send.c sendrecv.h
+parse.o: parse.c parse.h
+account.o: account.c
+datetime.o: datetime.c datetime.h
+dmail.res: dmail.rc dmail.h
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makefile.vac	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,47 @@
+# DynamicMail Makefile
+
+# Edit this as necessary.
+DWLIBPATH=d:\work\netlabs\dwindows\lib
+DWINCPATH=d:\work\netlabs\dwindows
+
+.SUFFIXES: \
+	.c .obj
+
+CFLAGS = /Ti /DOS2 /DTCPV40HDRS /I. /I$(DWINCPATH) /Sm /Ss /Q /Gm /Gt /C
+LDFLAGS = /DE /optfunc
+
+
+OBJECTS = dmail.obj backend.obj receive.obj send.obj parse.obj account.obj datetime.obj
+
+SOURCES = dmail.c backend.c receive.c send.c parse.c account.c datetime.c
+
+all: dmail.exe
+
+$(OBJECTS):
+	icc $(CFLAGS) %s	
+
+dmail.exe:  $(OBJECTS)
+	rc -r dmail.rc
+	icc @<<
+	 /B" $(LDFLAGS)"
+	 /Fedmail.exe
+	 so32dll.lib tcp32dll.lib $(DWLIBPATH)\dw.lib $(DWLIBPATH)\dwcompat.lib
+	 $(OBJECTS)
+	 dmail.def
+<<
+	rc -x2 dmail.res dmail.exe
+#	lxlite sfx.exe
+
+clean: 
+	rm $(OBJECTS) dw.obj dmail.exe dmail.res
+
+
+dmail.obj: dmail.c dmail.h backend.h
+backend.obj: backend.c backend.h
+receive.obj: receive.c sendrecv.h
+send.obj: send.c sendrecv.h
+parse.obj: parse.c parse.h
+account.obj: account.c
+datetime.obj: datetime.c datetime.h
+dmail.res: dmail.rc dmail.h
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makefile.vc	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,55 @@
+# DynamicMail Makefile for Win32
+
+# Change these as needed
+DWLIBDIR=\netlabs\dwindows\lib
+DWINCDIR=\netlabs\dwindows
+
+CC = cl
+CFLAGS = -c -G5 -GD -Zp1 -DWIN32 -D__WIN32__ -DMSVC -I. -I$(DWINCDIR)
+CFLAGS_DEBUG = -Zi
+CFLAGS_COMPILE = -MTd
+LIBS = wsock32.lib kernel32.lib user32.lib comctl32.lib gdi32.lib advapi32.lib shell32.lib comdlg32.lib $(DWLIBDIR)\dw.lib $(DWLIBDIR)\dwcompat.lib
+RES = 
+LINKFLAGS = -machine:i386 -debug:full -debugtype:cv
+DLLLINKFLAGS = -dll
+LINK = link
+DEFFILE = dmail.def
+
+OBJS =	dmail.obj \
+	backend.obj \
+	receive.obj \
+	send.obj \
+	parse.obj \
+	account.obj \
+	datetime.obj \
+	winmain.obj
+	
+all: dmail.exe
+
+clean:
+	-erase *.dll
+        -erase *.exe
+        -erase *.opt
+        -erase *.lib
+        -erase *.obj
+        -erase *.map
+        -erase *.pdb
+        -erase *.ilk
+        -erase *.exp
+        -erase *.res
+        -erase *~
+        
+dmailw.res: dmailw.rc
+	rc -r dmailw.rc
+
+dmail.exe: $(OBJS) dmailw.res
+	$(LINK) @<<
+-out:$(@) -def:$(DEFFILE) -subsystem:windows
+$(LINKFLAGS)
+$(OBJS)
+$(LIBS)
+dmailw.res
+<<
+        
+.c.obj:
+	$(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(CFLAGS_COMPILE) $*.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/minimal/Makefile.in	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,78 @@
+CC	=	@CC@
+CCFLAGS	=	@CFLAGS@ -g -O2 -fPIC -Wall -D__UNIX__
+LFLAGS	=	@LIBS@
+INSTALL =	@INSTALL@
+INCPATH	=	-I.. -I.
+DESTDIR	=	..
+MLFLAGS	=	-L$(DESTDIR) 
+TARGET	=	minimal
+SRCS	=	minimal.c
+OBJECTS	=	minimal.o
+TARGET2 =	dwcompat
+VER_MAJ	=	1
+VER_MIN	=	0
+PREFIX	=	@prefix@
+
+.SUFFIXES:	.c .h
+
+.c.o:
+	$(CC) -c $(CCFLAGS) $(INCPATH) -o $@ $<
+    
+
+# Link flags shared objects
+SYSCONF_LFLAGS_SHOBJ	= -shared
+
+# Linking shared libraries
+#   - Build the $(TARGET) library, eg. lib$(TARGET).so.0.0
+#   - Place target in $(DESTDIR) - which has a trailing /
+#   - Usually needs to incorporate $(VER_MAJ) and $(VER_MIN)
+#
+SYSCONF_LINK_SHLIB	= gcc
+SYSCONF_LINK_TARGET_SHARED	= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN)
+SYSCONF_LINK_LIB_SHARED	=  $(SYSCONF_LINK_SHLIB) -shared \
+				     -o $(SYSCONF_LINK_TARGET_SHARED) \
+				     $(OBJECTS) $(LFLAGS); \
+				 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
+				 cd $(DESTDIR); \
+				 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ); \
+				 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \
+				 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ)
+                                 
+# Linking static libraries
+#   - Build the $(TARGET) library, eg. lib$(TARGET).a
+#   - Place target in $(DESTDIR) - which has a trailing /
+#
+SYSCONF_AR		= ar cqs
+SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
+SYSCONF_LINK_LIB_STATIC	= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
+				 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) 
+
+
+
+####### Build rules
+
+SYSCONF_LINK_TARGET = $(SYSCONF_LINK_TARGET_SHARED)
+SYSCONF_LINK_LIB = $(SYSCONF_LINK_LIB_SHARED)
+
+all: $(SYSCONF_LINK_TARGET)
+
+install:
+		cd $(DESTDIR); \
+		$(INSTALL) $(SYSCONF_LINK_TARGET)  $(PREFIX)/lib; \
+		$(INSTALL) $(SYSCONF_LINK_TARGET2) $(PREFIX)/lib; \
+		cd $(PREFIX)/lib; \
+		rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ); \
+		ln -s $(SYSCONF_LINK_TARGET_SHARED)  lib$(TARGET).so; \
+		ln -s $(SYSCONF_LINK_TARGET_SHARED)  lib$(TARGET).so.$(VER_MAJ); \
+		rm -f lib$(TARGET2).so lib$(TARGET2).so.$(VER_MAJ); \
+		ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).so; \
+		ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).so.$(VER_MAJ)
+                
+clean:
+	rm -f *.so
+	rm -f *.o
+	rm -f *~
+	rm -f *.a
+        
+$(SYSCONF_LINK_TARGET): $(OBJECTS) 
+	$(SYSCONF_LINK_LIB)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/minimal/makefile.emx	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,36 @@
+# $Id: makefile.emx,v 1.3 2005/04/17 11:36:53 nuke Exp $ 
+
+# Dynamic Mail Makefile
+
+CC = gcc
+RM = rm -f
+RC = rc
+MAKE = make
+COMPRESS = lxlite
+
+DEFS =
+LIBS =
+
+CFLAGS = -O2 -g -Zomf -Zmt -Zdll -Zcrtdll -D__ST_MT_ERRNO__ -I. -I.. -Wall
+LDFLAGS = -lsocket
+RCFLAGS = -r
+
+
+OBJECTS = minimal.o
+
+SOURCES = minimal.c
+
+all: minimal.dll
+
+$(OBJECTS):
+	$(CC) $(CFLAGS) -c $<	
+
+minimal.dll:  $(OBJECTS)
+	$(CC) $(CFLAGS) $(DEFS) -o minimal.dll $(OBJECTS) $(LDFLAGS) -ldw -ldwcompat minimal.def
+	copy minimal.dll ..
+
+clean: 
+	$(RM) $(OBJECTS) minimal.dll
+
+minimal.o: minimal.c minimal.h
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/minimal/makefile.vac	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,33 @@
+# DynamicMail Minimal Plugin Makefile
+
+# Edit this as necessary.
+DWLIBPATH=d:\work\netlabs\dwindows\lib
+DWINCPATH=d:\work\netlabs\dwindows
+
+.SUFFIXES: .c .obj
+
+.all: \
+    minimal.dll
+
+.c.obj:
+  icc.exe  /DTCPV40HDRS /DOS2 /I. /I.. /I$(DWINCPATH) /Tdc /Ss /Wprorearet /Wpro+ /V"Minimal" /Tm+ /Ti /Gm /Gd- /G5 /Ge- /C /W3 /Wini+ /Wpar+ /Wpro+ /Wuse+ %s
+
+minimal.dll: \
+    minimal.obj
+    @echo " Link::Linker "
+    icc.exe @<<
+    /B" /NOE /de /ST:32768 /nologo /li"
+    /Fe"minimal.dll" minimal.def
+    minimal.obj
+    $(DWLIBPATH)\dw.lib 
+    $(DWLIBPATH)\dwcompat.lib
+<<
+  copy minimal.dll ..
+
+clean :
+        @if exist *.obj del *.obj
+        @if exist *.map del *.map
+        @if exist *.lib del *.lib
+        @if exist *.dll del *.dll
+        @if exist *.exe del *.exe
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/minimal/makefile.vc	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,44 @@
+# DynamicMail Minimal Plugin Makefile for Win32
+
+# Change these as needed
+DWLIBDIR=\netlabs\dwindows\lib
+DWINCDIR=\netlabs\dwindows
+
+CC = cl
+CFLAGS = -c -G5 -GD -Zp1 -DWIN32 -D__WIN32__ -DMSVC -DBUILD_DLL -I$(DWINCDIR) -I. -I..
+CFLAGS_DEBUG = -Zi
+CFLAGS_COMPILE = -MTd
+LIBS = $(DWLIBDIR)\dw.lib $(DWLIBDIR)\dwcompat.lib
+RES = 
+LINKFLAGS = -machine:i386 -debug:full -debugtype:cv
+DLLLINKFLAGS = -dll
+LINK = link
+DEFFILE = minimalw.def
+
+OBJS =	minimal.obj
+
+all: minimal.dll
+
+clean:
+	-erase *.dll
+        -erase *.exe
+        -erase *.opt
+        -erase *.lib
+        -erase *.obj
+        -erase *.map
+        -erase *.pdb
+        -erase *.ilk
+        -erase *.exp
+        -erase *~
+        
+minimal.dll: $(OBJS) $(DEFFILE)
+	$(LINK) @<<
+-out:$(@) -def:$(DEFFILE)
+$(LINKFLAGS) $(DLLLINKFLAGS)
+$(OBJS) $(RES)
+$(LIBS)
+<<
+        copy minimal.dll ..
+
+.c.obj:
+	$(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(CFLAGS_COMPILE) $*.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/minimal/minimal.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,848 @@
+/*
+ * This is a minimal disk based implementation of the
+ * mail backend.
+ */
+#include <stdio.h>
+#include <sys/stat.h>
+#include <string.h>
+#include <compat.h>
+#include <dw.h>
+#include "backend.h"
+#include "minimal.h"
+
+/* Choose a unique ID for this plugin */
+#define MINIMAL_BACKEND_ID 123
+#define FOLDER_INI_NAME "Folder.ini"
+#define MAIL_INI_NAME "Mail.ini"
+#define ACCOUNT_INI_NAME "Account.ini"
+
+HMTX backend_mtx;
+
+int API backend_newfolder(Account *acc, MailFolder *mf);
+
+/* Utility function */
+void stripcrlf(char *buffer)
+{
+	int z, len = strlen(buffer);
+
+	for(z=0;z<len;z++)
+	{
+		if(buffer[z] == '\r' || buffer[z] == '\n')
+		{
+			buffer[z] = 0;
+			return;
+		}
+	}
+}
+
+/* Initialize this backend */
+int API backend_init(BackendInfo *bi)
+{
+	sprintf(bi->Name, "Minimal");
+	sprintf(bi->Author, "Brian Smith");
+
+	backend_mtx = dw_mutex_new();
+
+	return MINIMAL_BACKEND_ID;
+}
+
+/* Shutdown this backend, doing any cleanup */
+int API backend_shutdown(void)
+{
+	dw_mutex_close(backend_mtx);
+
+	return 0;
+}
+
+/* Open a mail account, allocating any needed resources */
+Account * API backend_openaccount(char *name)
+{
+    char *namebuf;
+	AccountStruct *as = malloc(sizeof(AccountStruct));
+
+	dw_mutex_lock(backend_mtx);
+
+	namebuf = malloc(strlen(name) + strlen(FOLDER_INI_NAME) + 2);
+	sprintf(namebuf, "%s/%s", name, FOLDER_INI_NAME);
+
+	as->Type = DATA_TYPE_ACCOUNT;
+	as->fp = fopen(namebuf, "r+");
+	as->name = strdup(name);
+
+	free(namebuf);
+
+	dw_mutex_unlock(backend_mtx);
+	return (Account *)as;
+}
+
+/* Open a mail account, allocating any needed resources */
+Account * API backend_newaccount(char *name)
+{
+    char *namebuf;
+	AccountStruct *as = malloc(sizeof(AccountStruct));
+	MailFolder mf;
+
+	dw_mutex_lock(backend_mtx);
+
+	makedir(name);
+	namebuf = malloc(strlen(name) + strlen(FOLDER_INI_NAME) + 2);
+	sprintf(namebuf, "%s/%s", name, FOLDER_INI_NAME);
+
+	as->Type = DATA_TYPE_ACCOUNT;
+	as->fp = fopen(namebuf, "w+");
+	as->name = strdup(name);
+
+	free(namebuf);
+
+	/* Create the default folders */
+	strcpy(mf.Parent, "");
+	mf.Flags = 0;
+	strcpy(mf.Name, "Drafts");
+	backend_newfolder(as, &mf);
+	strcpy(mf.Name, "Inbox");
+	backend_newfolder(as, &mf);
+	strcpy(mf.Name, "Outbox");
+	backend_newfolder(as, &mf);
+	strcpy(mf.Name, "Sent Mail");
+	backend_newfolder(as, &mf);
+	strcpy(mf.Name, "Trash");
+	backend_newfolder(as, &mf);
+
+	dw_mutex_unlock(backend_mtx);
+	return (Account *)as;
+}
+
+/* Close an account previously opened with openaccount() */
+int API backend_closeaccount(Account *acc)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+
+	dw_mutex_lock(backend_mtx);
+	if(as)
+	{
+		if(as->fp)
+			fclose(as->fp);
+		if(as->name)
+			free(as->name);
+		free(as);
+	}
+	dw_mutex_unlock(backend_mtx);
+	return 0;
+}
+
+/* Get a list of available accounts */
+char ** API backend_getaccounts(void)
+{
+	int counter = 0;
+	char **ret = NULL;
+	DIR *dir;
+	struct dirent *ent;
+	struct stat bleah;
+
+	if(!(dir = opendir(".")))
+		return NULL;
+
+	while((ent = readdir(dir)) != 0)
+	{
+		stat(ent->d_name, &bleah);
+
+		if(S_ISDIR(bleah.st_mode))
+		{
+			char *namebuf = malloc(strlen(ent->d_name) + strlen(FOLDER_INI_NAME) + 2);
+
+			sprintf(namebuf, "%s/%s", ent->d_name, FOLDER_INI_NAME);
+
+			if(!stat(namebuf, &bleah))
+				counter++;
+
+			free(namebuf);
+		}
+	}
+	rewinddir(dir);
+	if(counter)
+	{
+		ret = calloc(counter+1, sizeof(char *));
+
+		counter = 0;
+
+		while((ent = readdir(dir)) != 0)
+		{
+			stat(ent->d_name, &bleah);
+
+			if(S_ISDIR(bleah.st_mode))
+			{
+				char *namebuf = malloc(strlen(ent->d_name) + strlen(FOLDER_INI_NAME) + 2);
+
+				sprintf(namebuf, "%s/%s", ent->d_name, FOLDER_INI_NAME);
+
+				if(!stat(namebuf, &bleah))
+				{
+					ret[counter] = strdup(ent->d_name);
+					counter++;
+				}
+
+				free(namebuf);
+			}
+		}
+	}
+
+	closedir(dir);
+	return ret;
+}
+
+/* Free the allocated list of accounts */
+void API backend_freeaccounts(char **list)
+{
+	if(list)
+	{
+		int z = 0;
+
+		while(list[z])
+		{
+			free(list[z]);
+			z++;
+		}
+		free(list);
+	}
+}
+
+/* Save settings associated with an account */
+void API backend_newsettings(Account *acc, AccountSettings *set)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char *namebuf;
+	FILE *fp;
+
+	if(!as || !set)
+		return;
+
+	dw_mutex_lock(backend_mtx);
+	set->Type = DATA_TYPE_SETTINGS;
+
+	namebuf = malloc(strlen(as->name) + strlen(ACCOUNT_INI_NAME) + 2);
+	sprintf(namebuf, "%s/" ACCOUNT_INI_NAME, as->name);
+	if((fp = fopen(namebuf, "w")) != NULL)
+	{
+		fprintf(fp, "RECVHOSTTYPE=%d\n", set->RecvHostType);
+		fprintf(fp, "RECVHOSTNAME=%s\n", set->RecvHostName);
+		fprintf(fp, "RECVHOSTPORT=%d\n", set->RecvHostPort);
+		fprintf(fp, "RECVHOSTUSER=%s\n", set->RecvHostUser);
+		fprintf(fp, "RECVHOSTPASS=%s\n", set->RecvHostPass);
+		fprintf(fp, "SENDHOSTTYPE=%d\n", set->SendHostType);
+		fprintf(fp, "SENDHOSTNAME=%s\n", set->SendHostName);
+		fprintf(fp, "SENDHOSTPORT=%d\n", set->SendHostPort);
+		fprintf(fp, "SENDHOSTUSER=%s\n", set->SendHostUser);
+		fprintf(fp, "SENDHOSTPASS=%s\n", set->SendHostPass);
+		fprintf(fp, "USEREMAIL=%s\n",    set->UserEmail);
+		fprintf(fp, "USERREALNAME=%s\n", set->UserRealName);
+		fprintf(fp, "REPLYEMAIL=%s\n",   set->ReplyEmail);
+		fprintf(fp, "REPLYREALNAME=%s\n",set->ReplyRealName);
+		fclose(fp);
+	}
+	free(namebuf);
+	dw_mutex_unlock(backend_mtx);
+	return;
+}
+
+/* Generic function to parse information from a config file */
+void getline(FILE *f, char *entry, char *entrydata)
+{
+	char in[256];
+	int z;
+
+	memset(in, 0, 256);
+	fgets(in, 255, f);
+
+	if(in[strlen(in)-1] == '\n')
+		in[strlen(in)-1] = 0;
+
+	if(in[0] != '#')
+	{
+		for(z=0;z<strlen(in);z++)
+		{
+			if(in[z] == '=')
+			{
+				in[z] = 0;
+				strcpy(entry, in);
+				strcpy(entrydata, &in[z+1]);
+				return;
+			}
+		}
+	}
+	strcpy(entry, "");
+	strcpy(entrydata, "");
+}
+
+/* Load settings associated with an account */
+void API backend_getsettings(Account *acc, AccountSettings *set)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char entry[256], entrydata[256], *namebuf;
+	FILE *fp;
+
+	if(!as || !set)
+		return;
+
+	dw_mutex_lock(backend_mtx);
+	set->Type = DATA_TYPE_SETTINGS;
+
+	namebuf = malloc(strlen(as->name) + strlen(ACCOUNT_INI_NAME) + 2);
+	sprintf(namebuf, "%s/" ACCOUNT_INI_NAME, as->name);
+	strncpy(set->AccountName, as->name, ACCOUNTNAME_MAX);
+	if((fp = fopen(namebuf, "r")) != NULL)
+	{
+		while(!feof(fp))
+		{
+			getline(fp, entry, entrydata);
+			if(strcasecmp(entry, "recvhosttype")==0)
+				set->RecvHostType = atoi(entrydata);
+			if(strcasecmp(entry, "recvhostname")==0)
+				strncpy(set->RecvHostName, entrydata, HOSTNAME_MAX);
+			if(strcasecmp(entry, "recvhostport")==0)
+				set->RecvHostPort = atoi(entrydata);
+			if(strcasecmp(entry, "recvhostuser")==0)
+				strncpy(set->RecvHostUser, entrydata, USERNAME_MAX);
+			if(strcasecmp(entry, "recvhostpass")==0)
+				strncpy(set->RecvHostPass, entrydata, USERNAME_MAX);
+			if(strcasecmp(entry, "sendhosttype")==0)
+				set->SendHostType = atoi(entrydata);
+			if(strcasecmp(entry, "sendhostname")==0)
+				strncpy(set->SendHostName, entrydata, HOSTNAME_MAX);
+			if(strcasecmp(entry, "sendhostport")==0)
+				set->SendHostPort = atoi(entrydata);
+			if(strcasecmp(entry, "sendhostuser")==0)
+				strncpy(set->SendHostUser, entrydata, USERNAME_MAX);
+			if(strcasecmp(entry, "sendhostpass")==0)
+				strncpy(set->SendHostPass, entrydata, USERNAME_MAX);
+			if(strcasecmp(entry, "useremail")==0)
+				strncpy(set->UserEmail, entrydata, HOSTNAME_MAX + USERNAME_MAX);
+			if(strcasecmp(entry, "userrealname")==0)
+				strncpy(set->UserRealName, entrydata, REALNAME_MAX);
+			if(strcasecmp(entry, "replyemail")==0)
+				strncpy(set->ReplyEmail, entrydata, HOSTNAME_MAX + USERNAME_MAX);
+			if(strcasecmp(entry, "replyrealname")==0)
+				strncpy(set->ReplyRealName, entrydata, REALNAME_MAX);
+		}
+		fclose(fp);
+	}
+	free(namebuf);
+	dw_mutex_unlock(backend_mtx);
+	return;
+}
+
+void addfolderitem(MailFolder *mf, char *buf, int commas)
+{
+	switch(commas)
+	{
+	case 0:
+		strcpy(mf->Name, buf);
+		break;
+	case 1:
+		strcpy(mf->Parent, buf);
+		break;
+	case 2:
+		mf->Flags = atoi(buf);
+		break;
+	}
+}
+
+/* Get an array of folders */
+MailFolder * API backend_getfolders(Account *acc)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	MailFolder *mf = NULL;
+	char buf[1024];
+	int counter = 0;
+
+	if(!as || !as->fp)
+		return NULL;
+
+	dw_mutex_lock(backend_mtx);
+	/* Find out how many folders we have */
+	rewind(as->fp);
+	while(!feof(as->fp))
+	{
+		if(fgets(buf, 1024, as->fp))
+		{
+			stripcrlf(buf);
+			counter++;
+		}
+	}
+	/* Allocate a sufficient return buffer */
+	mf = calloc(counter + 1, sizeof(MailFolder));
+	rewind(as->fp);
+	counter = 0;
+	/* Fill in the table */
+	while(!feof(as->fp))
+	{
+		int z, len, commas = 0;
+		char *start = buf;
+
+		if(fgets(buf, 1024, as->fp))
+		{
+			stripcrlf(buf);
+			len = strlen(buf);
+
+			for(z=0;z<len;z++)
+			{
+				if(buf[z] == ',')
+				{
+					buf[z] = 0;
+					addfolderitem(&mf[counter], start, commas);
+					start = &buf[z+1];
+					commas++;
+
+				}
+			}
+			addfolderitem(&mf[counter], start, commas);
+			mf[counter].Type = DATA_TYPE_FOLDER;
+			mf[counter].Acc = acc;
+			counter++;
+		}
+	}
+	dw_mutex_unlock(backend_mtx);
+	return mf;
+}
+
+/* Create a new folder in an account */
+int API backend_newfolder(Account *acc, MailFolder *mf)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char *namebuf;
+
+	if(!as || !as->fp)
+		return 1;
+
+	dw_mutex_lock(backend_mtx);
+	fseek(as->fp, 0, SEEK_END);
+	fprintf(as->fp, "%s,%s,%d\n", mf->Name, mf->Parent, (int)mf->Flags);
+
+	namebuf = malloc(strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + 3);
+    if(mf->Parent[0])
+		sprintf(namebuf, "%s/%s/%s", as->name, mf->Parent, mf->Name);
+	else
+		sprintf(namebuf, "%s/%s", as->name, mf->Name);
+	makedir(namebuf);
+	free(namebuf);
+
+	mf->Type = DATA_TYPE_FOLDER;
+	mf->Acc = acc;
+
+	dw_mutex_unlock(backend_mtx);
+	return 0;
+}
+
+/* Remove a folder from an account */
+int API backend_delfolder(Account *acc, MailFolder *mf)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char *namebuf;
+	FILE *tmp;
+	MailFolder *mfs;
+	int z = 0;
+
+	if(!as || !as->fp)
+		return 1;
+
+	if(!(mfs = backend_getfolders(acc)))
+		return 1;
+
+	dw_mutex_lock(backend_mtx);
+
+	/* Remove the entry from the INI file */
+	if(!(tmp = fopen("tmpfold.ini", "w")))
+		return 1;
+
+	while(mfs[z].Name[0])
+	{
+		if(strcmp(mfs[z].Name, mf->Name) != 0 && strcmp(mfs[z].Parent, mf->Parent) != 0)
+			fprintf(tmp, "%s,%s,%d\n", mfs[z].Name, mfs[z].Parent, (int)mfs[z].Flags);
+		z++;
+	}
+	fclose(tmp);
+	free(mfs);
+	namebuf = malloc(strlen(as->name) + strlen(FOLDER_INI_NAME) + 2);
+
+	/* Replace the temporary file with the real one
+	 * and reopen the handle.
+	 */
+	sprintf(namebuf, "%s/%s", as->name, FOLDER_INI_NAME);
+	remove(namebuf);
+	fclose(as->fp);
+	rename("tmpfold.ini", namebuf);
+	as->fp = fopen(namebuf, "r+");
+	free(namebuf);
+
+	/* Delete the actual directory */
+	namebuf = malloc(strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + 3);
+    if(mf->Parent[0])
+		sprintf(namebuf, "%s/%s/%s", as->name, mf->Parent, mf->Name);
+	else
+		sprintf(namebuf, "%s/%s", as->name, mf->Name);
+	rmdir(namebuf);
+	free(namebuf);
+
+	dw_mutex_unlock(backend_mtx);
+	return 0;
+}
+
+void addmailitem(MailItem *mi, char *buf, int commas)
+{
+	switch(commas)
+	{
+		/* Mail ID */
+	case 0:
+		mi->Id = atoi(buf);
+		break;
+		/* Mail Size */
+	case 1:
+		mi->Size = atoi(buf);
+		break;
+		/* Mail Date */
+	case 2:
+		{
+			int month = 0, day = 0, year = 0;
+			if(buf[0])
+				sscanf(buf, "%d-%d-%d", &month, &day, &year);
+			mi->Date.month = month;
+			mi->Date.day = day;
+			mi->Date.year = year;
+		}
+		break;
+		/* Mail Time */
+	case 3:
+		{
+			int hours = 0, minutes = 0, seconds = 0;
+			if(buf[0])
+				sscanf(buf, "%d:%d:%d", &hours, &minutes, &seconds);
+			mi->Time.hours = hours;
+			mi->Time.minutes = minutes;
+			mi->Time.seconds = seconds;
+		}
+		break;
+		/* Mail Topic */
+	case 4:
+		strcpy(mi->Topic, buf);
+		break;
+		/* Mail To */
+	case 5:
+		strcpy(mi->To, buf);
+		break;
+		/* Mail From */
+	case 6:
+		strcpy(mi->From, buf);
+		break;
+	}
+}
+
+/* Get a list of mail entries */
+MailItem * API backend_getitems(Account *acc, MailFolder *mf)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	MailItem *mi = NULL;
+	char buf[1024], *namebuf;
+	int counter = 0;
+	FILE *tmp;
+
+	if(!as || !mf)
+		return NULL;
+
+	dw_mutex_lock(backend_mtx);
+	/* Find out how many items we have */
+	namebuf = malloc(strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + strlen(MAIL_INI_NAME) + 4);
+    if(mf->Parent[0])
+		sprintf(namebuf, "%s/%s/%s/" MAIL_INI_NAME, as->name, mf->Parent, mf->Name);
+	else
+		sprintf(namebuf, "%s/%s/" MAIL_INI_NAME, as->name, mf->Name);
+	if(!(tmp = fopen(namebuf, "r")))
+	{
+		free(namebuf);
+		dw_mutex_unlock(backend_mtx);
+		return NULL;
+	}
+	free(namebuf);
+	while(!feof(tmp))
+	{
+		if(fgets(buf, 1024, tmp))
+		{
+			stripcrlf(buf);
+			counter++;
+		}
+	}
+	/* Allocate a sufficient return buffer */
+	mi = calloc(counter + 1, sizeof(MailItem));
+	rewind(tmp);
+	counter = 0;
+	/* Fill in the table */
+	while(!feof(tmp))
+	{
+		int z, len, commas = 0;
+		char *start = buf;
+
+		if(fgets(buf, 1024, tmp))
+		{
+			stripcrlf(buf);
+			len = strlen(buf);
+
+
+			for(z=0;z<len;z++)
+			{
+				if(buf[z] == '\255')
+				{
+					buf[z] = 0;
+					addmailitem(&mi[counter], start, commas);
+					start = &buf[z+1];
+					commas++;
+
+				}
+			}
+			addmailitem(&mi[counter], start, commas);
+			mi[counter].Type = DATA_TYPE_ITEM;
+			mi[counter].Acc = acc;
+			mi[counter].Folder = mf;
+			counter++;
+		}
+	}
+	fclose(tmp);
+	dw_mutex_unlock(backend_mtx);
+	return mi;
+}
+
+/* Create a name using base 36 */
+void makename(char *buf, int num)
+{
+	int mynum = num, z;
+
+	for(z=0;z<8;z++)
+	{
+		int rem = mynum % 36;
+
+		if(rem > -1 && rem < 10)
+			buf[7-z] = '0' + rem;
+		else if(rem > 9)
+			buf[7-z] = 'a' + (rem-10);
+
+		mynum = mynum / 36;
+
+		if(mynum == 0)
+			break;
+	}
+}
+
+/* Create a new mail item */
+int API backend_newitem(Account *acc, MailFolder *mf, MailItem *mi)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char *namebuf;
+	FILE *tmp;
+	struct stat bleah;
+	int pos;
+
+	if(!as || !mf || !mi)
+		return 1;
+
+	dw_mutex_lock(backend_mtx);
+
+	/* Start at 1 not 0 */
+	if(!mf->LastId)
+		mf->LastId = 1;
+
+	namebuf = malloc(strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + 16);
+	if(mf->Parent[0])
+	{
+		pos = strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + 3;
+		sprintf(namebuf, "%s/%s/%s/00000000.msg", as->name, mf->Parent, mf->Name);
+	}
+	else
+	{
+		pos = strlen(as->name) + strlen(mf->Name) + 2;
+		sprintf(namebuf, "%s/%s/00000000.msg", as->name, mf->Name);
+	}
+
+	makename(&namebuf[pos], mf->LastId);
+
+	while(!stat(namebuf, &bleah))
+	{
+		mf->LastId++;
+		makename(&namebuf[pos], mf->LastId);
+	}
+
+	mi->Id = mf->LastId;
+	mi->Type = DATA_TYPE_ITEM;
+	mi->Acc = acc;
+	mi->Folder = mf;
+	mf->LastId++;
+	free(namebuf);
+
+	namebuf = malloc(strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + strlen(MAIL_INI_NAME) + 4);
+    if(mf->Parent[0])
+		sprintf(namebuf, "%s/%s/%s/" MAIL_INI_NAME, as->name, mf->Parent, mf->Name);
+	else
+		sprintf(namebuf, "%s/%s/" MAIL_INI_NAME, as->name, mf->Name);
+	if(!(tmp = fopen(namebuf, "a+")))
+	{
+		free(namebuf);
+		dw_mutex_unlock(backend_mtx);
+		return 1;
+	}
+	free(namebuf);
+	fprintf(tmp, "%d\255%d\255%d-%d-%d\255%d:%d:%d\255%s\255%s\255%s\n", (int)mi->Id, (int)mi->Size,
+			mi->Date.month, mi->Date.day, mi->Date.year, mi->Time.hours, mi->Time.minutes, mi->Time.seconds,
+			mi->Topic, mi->To, mi->From);
+	fclose(tmp);
+	dw_mutex_unlock(backend_mtx);
+
+	return 0;
+}
+
+/* Remove a mail item from a mail folder */
+int API backend_delitem(Account *acc, MailFolder *mf, MailItem *mi)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char *namebuf;
+	FILE *tmp;
+	MailItem *mis;
+	int pos, z = 0;
+
+	if(!as)
+		return 1;
+
+	if(!(mis = backend_getitems(acc, mf)))
+		return 1;
+
+	dw_mutex_lock(backend_mtx);
+
+	/* Remove the entry from the INI file */
+	if(!(tmp = fopen("tmpmail.ini", "w")))
+		return 1;
+
+	while(mis[z].Id)
+	{
+		if(mi->Id != mis[z].Id)
+			fprintf(tmp, "%d\255%d\255%d-%d-%d\255%d:%d:%d\255%s\255%s\255%s\n", (int)mis[z].Id, (int)mis[z].Size,
+					mis[z].Date.month, mis[z].Date.day, mis[z].Date.year, mis[z].Time.hours, mis[z].Time.minutes, mis[z].Time.seconds,
+					mis[z].Topic, mis[z].To, mis[z].From);
+		z++;
+	}
+	fclose(tmp);
+	free(mis);
+
+	/* Replace the temporary file with the real one.
+	 */
+	namebuf = malloc(strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + strlen(MAIL_INI_NAME) + 4);
+    if(mf->Parent[0])
+		sprintf(namebuf, "%s/%s/%s/" MAIL_INI_NAME, as->name, mf->Parent, mf->Name);
+	else
+		sprintf(namebuf, "%s/%s/" MAIL_INI_NAME, as->name, mf->Name);
+	remove(namebuf);
+	rename("tmpmail.ini", namebuf);
+	free(namebuf);
+
+	/* Actually delete the message file */
+	namebuf = malloc(strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + 16);
+    if(mf->Parent[0])
+	{
+		pos = strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + 3;
+		sprintf(namebuf, "%s/%s/%s/00000000.msg", as->name, mf->Parent, mf->Name);
+	}
+	else
+	{
+		pos = strlen(as->name) + strlen(mf->Name) + 2;
+		sprintf(namebuf, "%s/%s/00000000.msg", as->name, mf->Name);
+	}
+	makename(&namebuf[pos], mi->Id);
+	remove(namebuf);
+	free(namebuf);
+
+	dw_mutex_unlock(backend_mtx);
+	return 0;
+}
+
+/* Retrieve a raw mail buffer associated with a mail item */
+char * API backend_getmail(Account *acc, MailFolder *mf, MailItem *mi, unsigned long *len)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char *namebuf, *mailbuf = NULL;
+	FILE *tmp;
+	struct stat bleah;
+	int pos;
+
+	if(!as || !mf || !mi || !len)
+		return NULL;
+
+	*len = 0;
+
+	dw_mutex_lock(backend_mtx);
+	namebuf = malloc(strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + 16);
+	if(mf->Parent[0])
+	{
+		pos = strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + 3;
+		sprintf(namebuf, "%s/%s/%s/00000000.msg", as->name, mf->Parent, mf->Name);
+	}
+	else
+	{
+		pos = strlen(as->name) + strlen(mf->Name) + 2;
+		sprintf(namebuf, "%s/%s/00000000.msg", as->name, mf->Name);
+	}
+
+	makename(&namebuf[pos], mi->Id);
+
+	if(!stat(namebuf, &bleah) && (tmp = fopen(namebuf, FOPEN_READ_BINARY)))
+	{
+		mailbuf = malloc(bleah.st_size+1);
+		fread(mailbuf, bleah.st_size, 1, tmp);
+		mailbuf[bleah.st_size] = 0;
+		fclose(tmp);
+		*len = bleah.st_size;
+	}
+	free(namebuf);
+	dw_mutex_unlock(backend_mtx);
+	return mailbuf;
+}
+
+/* Create a raw mail entry associated with a mail item */
+int API backend_newmail(Account *acc, MailFolder *mf, MailItem *mi, char *buf, unsigned long len)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char *namebuf;
+	FILE *tmp;
+	int pos;
+
+	if(!as || !mf || !mi)
+		return 1;
+
+	dw_mutex_lock(backend_mtx);
+	namebuf = malloc(strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + 16);
+	if(mf->Parent[0])
+	{
+		pos = strlen(as->name) + strlen(mf->Name) + strlen(mf->Parent) + 3;
+		sprintf(namebuf, "%s/%s/%s/00000000.msg", as->name, mf->Parent, mf->Name);
+	}
+	else
+	{
+		pos = strlen(as->name) + strlen(mf->Name) + 2;
+		sprintf(namebuf, "%s/%s/00000000.msg", as->name, mf->Name);
+	}
+
+	makename(&namebuf[pos], mi->Id);
+
+	if((tmp = fopen(namebuf, FOPEN_WRITE_BINARY)) != NULL)
+	{
+		fwrite(buf, len, 1, tmp);
+		fclose(tmp);
+	}
+	free(namebuf);
+	dw_mutex_unlock(backend_mtx);
+
+	return 0;
+}
+
+/* This function is here because the Visual C CRT doesn't
+ * like free()ing memory allocated in other modules.
+ */
+void API backend_free(Account *acc, void *buf)
+{
+	if(buf)
+		free(buf);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/minimal/minimal.def	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,29 @@
+LIBRARY MINIMAL INITINSTANCE TERMINSTANCE
+
+PROTMODE
+
+DESCRIPTION 'Minimal Dynamic Mail Backend'
+
+CODE LOADONCALL
+DATA NONSHARED LOADONCALL
+
+EXPORTS
+  backend_init                           @1
+  backend_shutdown                       @2
+  backend_openaccount                    @3
+  backend_newaccount                     @4
+  backend_closeaccount                   @5
+  backend_getaccounts                    @6
+  backend_freeaccounts                   @7
+  backend_getfolders                     @8
+  backend_newfolder                      @9
+  backend_delfolder                      @10
+  backend_getitems                       @11
+  backend_newitem                        @12
+  backend_delitem                        @13
+  backend_getmail                        @14
+  backend_newmail                        @15
+  backend_free                           @16
+  backend_newsettings                    @17
+  backend_getsettings                    @18
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/minimal/minimal.h	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,10 @@
+#ifndef _MINIMAL_H
+#define _MINIMAL_H
+
+typedef struct {
+	int         Type;
+	char        *name;
+	FILE        *fp;
+} AccountStruct;
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/minimal/minimalw.def	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,24 @@
+LIBRARY MINIMAL
+
+DESCRIPTION 'Minimal Dynamic Mail Backend'
+
+EXPORTS
+  backend_init                           @1
+  backend_shutdown                       @2
+  backend_openaccount                    @3
+  backend_newaccount                     @4
+  backend_closeaccount                   @5
+  backend_getaccounts                    @6
+  backend_freeaccounts                   @7
+  backend_getfolders                     @8
+  backend_newfolder                      @9
+  backend_delfolder                      @10
+  backend_getitems                       @11
+  backend_newitem                        @12
+  backend_delitem                        @13
+  backend_getmail                        @14
+  backend_newmail                        @15
+  backend_free                           @16
+  backend_newsettings                    @17
+  backend_getsettings                    @18
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mysql/Makefile.in	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,78 @@
+CC	=	@CC@
+CCFLAGS	=	@CFLAGS@ `mysql_config --cflags` -g -O2 -fPIC -Wall -D__UNIX__
+LFLAGS	=	@LIBS@ `mysql_config --libs`
+INSTALL =	@INSTALL@
+INCPATH	=	-I.. -I.
+DESTDIR	=	..
+MLFLAGS	=	-L$(DESTDIR) 
+TARGET	=	mysqlplg
+SRCS	=	mysqlplg.c
+OBJECTS	=	mysqlplg.o
+TARGET2 =	dwcompat
+VER_MAJ	=	1
+VER_MIN	=	0
+PREFIX	=	@prefix@
+
+.SUFFIXES:	.c .h
+
+.c.o:
+	$(CC) -c $(CCFLAGS) $(INCPATH) -o $@ $<
+    
+
+# Link flags shared objects
+SYSCONF_LFLAGS_SHOBJ	= -shared
+
+# Linking shared libraries
+#   - Build the $(TARGET) library, eg. lib$(TARGET).so.0.0
+#   - Place target in $(DESTDIR) - which has a trailing /
+#   - Usually needs to incorporate $(VER_MAJ) and $(VER_MIN)
+#
+SYSCONF_LINK_SHLIB	= gcc
+SYSCONF_LINK_TARGET_SHARED	= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN)
+SYSCONF_LINK_LIB_SHARED	=  $(SYSCONF_LINK_SHLIB) -shared \
+				     -o $(SYSCONF_LINK_TARGET_SHARED) \
+				     $(OBJECTS) $(LFLAGS); \
+				 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
+				 cd $(DESTDIR); \
+				 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ); \
+				 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \
+				 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ)
+                                 
+# Linking static libraries
+#   - Build the $(TARGET) library, eg. lib$(TARGET).a
+#   - Place target in $(DESTDIR) - which has a trailing /
+#
+SYSCONF_AR		= ar cqs
+SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
+SYSCONF_LINK_LIB_STATIC	= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
+				 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) 
+
+
+
+####### Build rules
+
+SYSCONF_LINK_TARGET = $(SYSCONF_LINK_TARGET_SHARED)
+SYSCONF_LINK_LIB = $(SYSCONF_LINK_LIB_SHARED)
+
+all: $(SYSCONF_LINK_TARGET)
+
+install:
+		cd $(DESTDIR); \
+		$(INSTALL) $(SYSCONF_LINK_TARGET)  $(PREFIX)/lib; \
+		$(INSTALL) $(SYSCONF_LINK_TARGET2) $(PREFIX)/lib; \
+		cd $(PREFIX)/lib; \
+		rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ); \
+		ln -s $(SYSCONF_LINK_TARGET_SHARED)  lib$(TARGET).so; \
+		ln -s $(SYSCONF_LINK_TARGET_SHARED)  lib$(TARGET).so.$(VER_MAJ); \
+		rm -f lib$(TARGET2).so lib$(TARGET2).so.$(VER_MAJ); \
+		ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).so; \
+		ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).so.$(VER_MAJ)
+                
+clean:
+	rm -f *.so
+	rm -f *.o
+	rm -f *~
+	rm -f *.a
+        
+$(SYSCONF_LINK_TARGET): $(OBJECTS) 
+	$(SYSCONF_LINK_LIB)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mysql/makefile.emx	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,36 @@
+# $Id: makefile.emx,v 1.3 2005/04/17 11:36:53 nuke Exp $ 
+
+# Dynamic Mail Makefile
+
+CC = gcc
+RM = rm -f
+RC = rc
+MAKE = make
+COMPRESS = lxlite
+
+DEFS =
+LIBS =
+
+CFLAGS = -O2 -g -Zomf -Zmt -Zdll -Zcrtdll -D__ST_MT_ERRNO__ -I. -I.. -I/usr/local/mysql/include -Wall
+LDFLAGS = -lsocket -L/usr/local/mysql/lib -lmysqlclient
+RCFLAGS = -r
+
+
+OBJECTS = mysqlplg.o
+
+SOURCES = mysqlplg.c
+
+all: mysqlplg.dll
+
+$(OBJECTS):
+	$(CC) $(CFLAGS) -c $<	
+
+mysqlplg.dll:  $(OBJECTS)
+	$(CC) $(CFLAGS) $(DEFS) -o mysqlplg.dll $(OBJECTS) $(LDFLAGS) -ldw -ldwcompat mysqlplg.def
+	copy mysqlplg.dll ..
+
+clean: 
+	$(RM) $(OBJECTS) mysqlplg.dll
+
+mysqlplg.o: mysqlplg.c mysqlplg.h
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mysql/makefile.vac	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,34 @@
+# DynamicMail mysqlplg Plugin Makefile
+
+# Edit this as necessary.
+DWLIBPATH=d:\work\netlabs\dwindows\lib
+DWINCPATH=d:\work\netlabs\dwindows
+
+.SUFFIXES: .c .obj
+
+.all: \
+    mysqlplg.dll
+
+.c.obj:
+  icc.exe  /DTCPV40HDRS /DOS2 /I. /I.. /I$(DWINCPATH) /Tdc /Ss /Wprorearet /Wpro+ /V"mysqlplg" /Tm+ /Ti /Gm /Gd- /G5 /Ge- /C /W3 /Wini+ /Wpar+ /Wpro+ /Wuse+ %s
+
+mysqlplg.dll: \
+    mysqlplg.obj
+    @echo " Link::Linker "
+    icc.exe @<<
+    /B" /NOE /de /ST:32768 /nologo /li"
+    /Fe"mysqlplg.dll" mysqlplg.def
+    mysqlplg.obj
+    mysqlclient.lib 
+    $(DWLIBPATH)\dw.lib 
+    $(DWLIBPATH)\dwcompat.lib
+<<
+  copy mysqlplg.dll ..
+
+clean :
+        @if exist *.obj del *.obj
+        @if exist *.map del *.map
+        @if exist *.lib del *.lib
+        @if exist *.dll del *.dll
+        @if exist *.exe del *.exe
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mysql/makefile.vc	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,44 @@
+# DynamicMail mysqlplg Plugin Makefile for Win32
+
+# Change these as needed
+DWLIBDIR=\netlabs\dwindows\lib
+DWINCDIR=\netlabs\dwindows
+
+CC = cl
+CFLAGS = -c -G5 -GD -Zp1 -DWIN32 -D__WIN32__ -DMSVC -DBUILD_DLL -I$(DWINCDIR) -I. -I..
+CFLAGS_DEBUG = -Zi
+CFLAGS_COMPILE = -MTd
+LIBS = $(DWLIBDIR)\dw.lib $(DWLIBDIR)\dwcompat.lib mysqlclient.lib wsock32.lib advapi32.lib user32.lib
+RES = 
+LINKFLAGS = -machine:i386 -debug:full -debugtype:cv
+DLLLINKFLAGS = -dll
+LINK = link
+DEFFILE = mysqlplgw.def
+
+OBJS =	mysqlplg.obj
+
+all: mysqlplg.dll
+
+clean:
+	-erase *.dll
+        -erase *.exe
+        -erase *.opt
+        -erase *.lib
+        -erase *.obj
+        -erase *.map
+        -erase *.pdb
+        -erase *.ilk
+        -erase *.exp
+        -erase *~
+        
+mysqlplg.dll: $(OBJS) $(DEFFILE)
+	$(LINK) @<<
+-out:$(@) -def:$(DEFFILE)
+$(LINKFLAGS) $(DLLLINKFLAGS)
+$(OBJS) $(RES)
+$(LIBS)
+<<
+        copy mysqlplg.dll ..
+
+.c.obj:
+	$(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(CFLAGS_COMPILE) $*.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mysql/mysqlplg.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,782 @@
+/*
+ * This is a MySQL Server based implementation of the
+ * mail backend.
+ */
+#include <stdio.h>
+#include <sys/stat.h>
+#include <string.h>
+#include <compat.h>
+#include <dw.h>
+#include <mysql.h>
+#include "backend.h"
+#include "mysqlplg.h"
+
+#define TITLE "DynamicMail MySQL Plugin"
+
+/* Choose a unique ID for this plugin */
+#define MYSQL_BACKEND_ID 124
+
+HMTX backend_mtx;
+MYSQL dmail_db;
+LoginStruct li;
+char *tsformat = "%04d-%02d-%02d %02d:%02d:%02d";
+
+int API backend_newfolder(Account *acc, MailFolder *mf);
+
+#define display_mysql_error() _display_mysql_error(__FILE__, __LINE__)
+
+void _display_mysql_error(char *file, int line)
+{
+	dw_messagebox(TITLE, DW_MB_OK | DW_MB_ERROR, "File: %s Line %d\n%s", file, line, mysql_error(&dmail_db));
+}
+
+/* Handle OK press on the login dialog. */
+void DWSIGNAL login_ok(HWND window, void *data)
+{
+	DWDialog *dwwait = (DWDialog *)data;
+	HWND entrywindow = (HWND)dwwait->data, name = NULL, pass = NULL, host = NULL;
+	char *login_username, *login_password, *login_hostname;
+
+	name = (HWND)dw_window_get_data(entrywindow, "name");
+	host = (HWND)dw_window_get_data(entrywindow, "host");
+	pass = (HWND)dw_window_get_data(entrywindow, "pass");
+
+	login_hostname = dw_window_get_text(host);
+	login_username = dw_window_get_text(name);
+	login_password = dw_window_get_text(pass);
+
+	if(login_hostname)
+	{
+		strcpy(li.hostname, login_hostname);
+		dw_free(login_hostname);
+	}
+	if(login_username)
+	{
+		strcpy(li.username, login_username);
+		dw_free(login_username);
+	}
+	if(login_password)
+	{
+		strcpy(li.password, login_password);
+		dw_free(login_password);
+	}
+
+	/* Destroy the dialog */
+	dw_window_destroy(entrywindow);
+	dw_dialog_dismiss(dwwait, (void *)1);
+}
+
+/* Handle Cancel press on the login dialog. */
+void DWSIGNAL login_cancel(HWND window, void *data)
+{
+	DWDialog *dwwait = (DWDialog *)data;
+	HWND entrywindow = (HWND)dwwait->data;
+
+	/* Destroy the dialog */
+	dw_window_destroy(entrywindow);
+	dw_dialog_dismiss(dwwait, (void *)0);
+}
+
+/* A dialog to get MySQL login information from the user */
+int login_dialog(void)
+{
+	HWND entrywindow, mainbox, entryfield, passfield, hostfield, cancelbutton, okbutton, buttonbox, stext;
+	ULONG style = DW_FCF_TITLEBAR | DW_FCF_SHELLPOSITION | DW_FCF_DLGBORDER;
+	DWDialog *dwwait;
+
+	entrywindow = dw_window_new(HWND_DESKTOP, "DynamicMail MySQL Login", style);
+
+	mainbox = dw_box_new(BOXVERT, 10);
+
+	dw_box_pack_start(entrywindow, mainbox, 0, 0, TRUE, TRUE, 0);
+
+	/* Hostname */
+	stext = dw_text_new("Hostname:", 0);
+
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(mainbox, stext, 130, 20, TRUE, TRUE, 2);
+
+	hostfield = dw_entryfield_new("localhost", 100L);
+
+	dw_entryfield_set_limit(hostfield, 20);
+
+	dw_box_pack_start(mainbox, hostfield, 130, 20, TRUE, TRUE, 4);
+
+	dw_window_set_data(entrywindow, "host", (void *)hostfield);
+
+	/* User ID */
+	stext = dw_text_new("Username:", 0);
+
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(mainbox, stext, 130, 20, TRUE, TRUE, 2);
+
+	entryfield = dw_entryfield_new("", 100L);
+
+	dw_entryfield_set_limit(entryfield, 20);
+
+	dw_box_pack_start(mainbox, entryfield, 130, 20, TRUE, TRUE, 4);
+
+	dw_window_set_data(entrywindow, "name", (void *)entryfield);
+
+	/* Password */
+	stext = dw_text_new("Password:", 0);
+
+	dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+	dw_box_pack_start(mainbox, stext, 130, 20, TRUE, TRUE, 2);
+
+	passfield = dw_entryfield_password_new("", 100L);
+
+	dw_entryfield_set_limit(passfield, 159);
+
+	dw_box_pack_start(mainbox, passfield, 130, 20, TRUE, TRUE, 4);
+
+	dw_window_set_data(entrywindow, "pass", (void *)passfield);
+
+	/* Buttons */
+	buttonbox = dw_box_new(BOXHORZ, 10);
+
+	dw_box_pack_start(mainbox, buttonbox, 0, 0, TRUE, FALSE, 0);
+
+	okbutton = dw_button_new("Ok", 1001L);
+
+	dw_box_pack_start(buttonbox, okbutton, 130, 30, TRUE, FALSE, 2);
+
+	cancelbutton = dw_button_new("Cancel", 1002L);
+
+	dw_box_pack_start(buttonbox, cancelbutton, 130, 30, TRUE, FALSE, 2);
+
+	dw_window_default(entrywindow, entryfield);
+
+	dw_window_click_default(hostfield, entryfield);
+
+	dw_window_click_default(entryfield, passfield);
+
+	dw_window_click_default(passfield, okbutton);
+
+	dwwait = dw_dialog_new((void *)entrywindow);
+
+	dw_signal_connect(okbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(login_ok), (void *)dwwait);
+	dw_signal_connect(cancelbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(login_cancel), (void *)dwwait);
+
+	dw_window_set_size(entrywindow, 300, 250);
+
+	dw_window_show(entrywindow);
+
+	return (int)dw_dialog_wait(dwwait);
+}
+
+int minversion(int major, int minor, int sub)
+{
+	char *version = mysql_get_server_info(&dmail_db);
+	int smajor, sminor, ssub;
+
+	sscanf(version, "%d.%d.%d", &smajor, &sminor, &ssub);
+	
+	if(smajor > major)
+		return 1;
+
+	if(smajor == major)
+	{
+		if(sminor > minor)
+			return 1;
+
+		if(sminor == minor)
+		{
+			if(ssub >= sub)
+				return 1;
+		}
+	}
+	return 0;
+}
+
+/* Initialize this backend */
+int API backend_init(BackendInfo *bi)
+{
+	/* Get the MySQL login information from the user */
+	if(!login_dialog())
+		return 0;
+
+	mysql_init(&dmail_db);
+	if(!mysql_real_connect(&dmail_db, li.hostname, li.username, li.password, NULL, 0, NULL, 0))
+	{
+		display_mysql_error();
+		return 0;
+	}
+
+	/* Select the database we want to use */
+	if(mysql_select_db(&dmail_db, "DynamicMail"))
+	{
+		if(mysql_query(&dmail_db, MYSQL_DATABASE))
+		{
+			display_mysql_error();
+			return 0;
+		}
+		if(mysql_select_db(&dmail_db, "DynamicMail"))
+		{
+			display_mysql_error();
+			return 0;
+		}
+	}
+	/* Check to see if our tables exist, if not try to create them */
+	if(mysql_query(&dmail_db, "SELECT * FROM `Accounts`")
+	   && (mysql_query(&dmail_db, MYSQL_TABLE1)
+	   || mysql_query(&dmail_db, MYSQL_TABLE2)
+	   || mysql_query(&dmail_db, MYSQL_TABLE3)
+	   || mysql_query(&dmail_db, MYSQL_TABLE4)))
+	{
+		display_mysql_error();
+		return 0;
+	}
+	else
+	{
+		MYSQL_RES *res=mysql_store_result(&dmail_db);
+
+		if(res)
+		{
+			mysql_free_result(res); /* Release memory used to store results. */
+		}
+	}
+
+	/* If the server is a pre 4.1 version of MySQL
+	 * then use the old timestamp format.
+	 */
+	if(!minversion(4, 1, 0))
+	{
+		tsformat = "%04d%02d%02d%02d%02d%02d";
+	}
+
+	sprintf(bi->Name, "MySQL");
+	sprintf(bi->Author, "Brian Smith");
+
+	backend_mtx = dw_mutex_new();
+
+	return MYSQL_BACKEND_ID;
+}
+
+/* Shutdown this backend, doing any cleanup */
+int API backend_shutdown(void)
+{
+	dw_mutex_close(backend_mtx);
+
+	return 0;
+}
+
+/* Open a mail account, allocating any needed resources */
+Account * API backend_openaccount(char *name)
+{
+	AccountStruct *as = malloc(sizeof(AccountStruct));
+
+	dw_mutex_lock(backend_mtx);
+
+	as->Type = DATA_TYPE_ACCOUNT;
+	as->name = strdup(name);
+
+	dw_mutex_unlock(backend_mtx);
+	return (Account *)as;
+}
+
+/* Open a mail account, allocating any needed resources */
+Account * API backend_newaccount(char *name)
+{
+	AccountStruct *as = malloc(sizeof(AccountStruct));
+	MailFolder mf;
+	char buf[100];
+
+	dw_mutex_lock(backend_mtx);
+
+	sprintf(buf, "INSERT INTO `Accounts` ( `name` )\nVALUES ( \'%s\' )", name);
+	if(mysql_query(&dmail_db, buf))
+		display_mysql_error();
+
+	as->Type = DATA_TYPE_ACCOUNT;
+	as->name = strdup(name);
+
+	/* Create the default folders */
+	strcpy(mf.Parent, "");
+	mf.Flags = 0;
+	strcpy(mf.Name, "Drafts");
+	backend_newfolder(as, &mf);
+	strcpy(mf.Name, "Inbox");
+	backend_newfolder(as, &mf);
+	strcpy(mf.Name, "Outbox");
+	backend_newfolder(as, &mf);
+	strcpy(mf.Name, "Sent Mail");
+	backend_newfolder(as, &mf);
+	strcpy(mf.Name, "Trash");
+	backend_newfolder(as, &mf);
+
+	dw_mutex_unlock(backend_mtx);
+	return (Account *)as;
+}
+
+/* Close an account previously opened with openaccount() */
+int API backend_closeaccount(Account *acc)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+
+	dw_mutex_lock(backend_mtx);
+	if(as)
+	{
+		if(as->name)
+			free(as->name);
+		free(as);
+	}
+	dw_mutex_unlock(backend_mtx);
+	return 0;
+}
+
+/* Get a list of available accounts */
+char ** API backend_getaccounts(void)
+{
+	int counter = 0;
+	char **ret = NULL;
+	MYSQL_RES *res;
+	MYSQL_ROW row;
+	
+	dw_mutex_lock(backend_mtx);
+
+	if(!mysql_query(&dmail_db, "SELECT * FROM `Accounts`") && (res=mysql_store_result(&dmail_db)))
+	{
+		int rows;
+
+		row=mysql_fetch_row(res); /* Get a row from the results */
+
+		rows = (int)mysql_num_rows(res);
+
+		if(rows)
+		{
+			ret = calloc(rows+1, sizeof(char *));
+
+			while(row)
+			{
+				ret[counter] = strdup(row[1]);
+				counter++;
+				row=mysql_fetch_row(res);
+			}
+		}
+
+		mysql_free_result(res); /* Release memory used to store results. */
+	}
+	else
+		display_mysql_error();
+
+	dw_mutex_unlock(backend_mtx);
+	return ret;
+}
+
+/* Free the allocated list of accounts */
+void API backend_freeaccounts(char **list)
+{
+	if(list)
+	{
+		int z = 0;
+
+		while(list[z])
+		{
+			free(list[z]);
+			z++;
+		}
+		free(list);
+	}
+}
+
+/* Save settings associated with an account */
+void API backend_newsettings(Account *acc, AccountSettings *set)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char buf[100];
+
+	if(!as || !set)
+		return;
+
+	dw_mutex_lock(backend_mtx);
+	set->Type = DATA_TYPE_SETTINGS;
+
+	sprintf(buf, "UPDATE `Accounts` SET recvhosttype=\'%d\' WHERE name=\'%s\'", set->RecvHostType, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET recvhostname=\'%s\' WHERE name=\'%s\'", set->RecvHostName, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET recvhostport=\'%d\' WHERE name=\'%s\'", set->RecvHostPort, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET recvhostuser=\'%s\' WHERE name=\'%s\'", set->RecvHostUser, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET recvhostpass=\'%s\' WHERE name=\'%s\'", set->RecvHostPass, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET sendhosttype=\'%d\' WHERE name=\'%s\'", set->SendHostType, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET sendhostname=\'%s\' WHERE name=\'%s\'", set->SendHostName, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET sendhostport=\'%d\' WHERE name=\'%s\'", set->SendHostPort, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET sendhostuser=\'%s\' WHERE name=\'%s\'", set->SendHostUser, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET sendhostpass=\'%s\' WHERE name=\'%s\'", set->SendHostPass, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET useremail=\'%s\' WHERE name=\'%s\'", set->UserEmail, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET userrealname=\'%s\' WHERE name=\'%s\'", set->UserRealName, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET replyemail=\'%s\' WHERE name=\'%s\'", set->ReplyEmail, as->name);
+	mysql_query(&dmail_db, buf);
+	sprintf(buf, "UPDATE `Accounts` SET replyrealname=\'%s\' WHERE name=\'%s\'", set->ReplyRealName, as->name);
+	mysql_query(&dmail_db, buf);
+
+	dw_mutex_unlock(backend_mtx);
+	return;
+}
+
+/* Load settings associated with an account */
+void API backend_getsettings(Account *acc, AccountSettings *set)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char buf[100];
+	MYSQL_RES *res;
+	MYSQL_ROW row;
+	
+	if(!as || !set)
+		return;
+
+	dw_mutex_lock(backend_mtx);
+
+	sprintf(buf, "SELECT * FROM `Accounts` WHERE name=\'%s\'", as->name);
+
+	if(!mysql_query(&dmail_db, buf) && (res=mysql_store_result(&dmail_db)))
+	{ 
+		row=mysql_fetch_row(res); /* Get a row from the results */
+
+		if(row)
+		{
+			set->Type = DATA_TYPE_SETTINGS;
+
+			strncpy(set->AccountName, as->name, ACCOUNTNAME_MAX);
+			set->RecvHostType = atoi(row[2]);
+			strncpy(set->RecvHostName, row[3], HOSTNAME_MAX);
+			set->RecvHostPort = atoi(row[4]);
+			strncpy(set->RecvHostUser, row[5], USERNAME_MAX);
+			strncpy(set->RecvHostPass, row[6], USERNAME_MAX);
+			set->SendHostType = atoi(row[7]);
+			strncpy(set->SendHostName, row[8], HOSTNAME_MAX);
+			set->SendHostPort = atoi(row[9]);
+			strncpy(set->SendHostUser, row[10], USERNAME_MAX);
+			strncpy(set->SendHostPass, row[11], USERNAME_MAX);
+			strncpy(set->UserEmail, row[12], HOSTNAME_MAX + USERNAME_MAX);
+			strncpy(set->UserRealName, row[13], REALNAME_MAX);
+			strncpy(set->ReplyEmail, row[14], HOSTNAME_MAX + USERNAME_MAX);
+			strncpy(set->ReplyRealName, row[15], REALNAME_MAX);
+		}
+		mysql_free_result(res); /* Release memory used to store results. */
+	}
+	else
+		display_mysql_error();
+
+	dw_mutex_unlock(backend_mtx);
+	return;
+}
+
+/* Get an array of folders */
+MailFolder * API backend_getfolders(Account *acc)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	MailFolder *mf = NULL;
+	int counter = 0;
+	char buf[100];
+	MYSQL_RES *res;
+	MYSQL_ROW row;
+	
+	if(!as)
+		return NULL;
+
+	dw_mutex_lock(backend_mtx);
+
+	sprintf(buf, "SELECT * FROM `Folders` WHERE name=\'%s\' ORDER BY `folder`", as->name);
+
+	if(!mysql_query(&dmail_db, buf) && (res=mysql_store_result(&dmail_db)))
+	{
+		int rows;
+
+		row=mysql_fetch_row(res); /* Get a row from the results */
+
+		rows = (int)mysql_num_rows(res);
+
+		if(rows)
+		{
+			/* Allocate a sufficient return buffer */
+			mf = calloc(rows + 1, sizeof(MailFolder));
+
+			while(row)
+			{
+				mf[counter].Type = DATA_TYPE_FOLDER;
+				mf[counter].Acc = acc;
+				mf[counter].LastId = atoi(row[0]);
+				strcpy(mf[counter].Name, row[2]);
+				strcpy(mf[counter].Parent, row[3]);
+				mf[counter].Flags = atoi(row[4]);
+				counter++;
+				row=mysql_fetch_row(res);
+			}
+		}
+		mysql_free_result(res); /* Release memory used to store results. */
+	}
+	else
+		display_mysql_error();
+
+	dw_mutex_unlock(backend_mtx);
+	return mf;
+}
+
+/* Create a new folder in an account */
+int API backend_newfolder(Account *acc, MailFolder *mf)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char buf[200];
+
+	if(!as || !mf)
+		return 1;
+
+	dw_mutex_lock(backend_mtx);
+
+	sprintf(buf, "INSERT INTO `Folders` ( `name`, `folder`, `parent`, `flags` )\n" \
+			"VALUES ( \'%s\', \'%s\', \'%s\', \'%d\' )", as->name, mf->Name, mf->Parent, (int)mf->Flags);
+	if(mysql_query(&dmail_db, buf))
+		display_mysql_error();
+
+	mf->Type = DATA_TYPE_FOLDER;
+	mf->Acc = acc;
+	mf->LastId = (int)mysql_insert_id(&dmail_db);
+
+	dw_mutex_unlock(backend_mtx);
+	return 0;
+}
+
+/* Remove a folder from an account */
+int API backend_delfolder(Account *acc, MailFolder *mf)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char buf[100];
+
+	if(!as || !mf)
+		return 1;
+
+	dw_mutex_lock(backend_mtx);
+
+	sprintf(buf, "DELETE FROM `Folders` WHERE entry=\'%d\'", (int)mf->LastId);
+	if(mysql_query(&dmail_db, buf))
+		display_mysql_error();
+
+	dw_mutex_unlock(backend_mtx);
+	return 0;
+}
+
+/* Get a list of mail entries */
+MailItem * API backend_getitems(Account *acc, MailFolder *mf)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	MailItem *mi = NULL;
+	int counter = 0;
+	char buf[100];
+	MYSQL_RES *res;
+	MYSQL_ROW row;
+	
+	if(!as || !mf)
+		return NULL;
+
+	dw_mutex_lock(backend_mtx);
+
+	sprintf(buf, "SELECT * FROM `Mail` WHERE folder=\'%d\'", (int)mf->LastId);
+
+	if(!mysql_query(&dmail_db, buf) && (res=mysql_store_result(&dmail_db)))
+	{
+		int rows;
+
+		row=mysql_fetch_row(res); /* Get a row from the results */
+
+		rows = (int)mysql_num_rows(res);
+
+		if(rows)
+		{
+			/* Allocate a sufficient return buffer */
+			mi = calloc(rows + 1, sizeof(MailItem));
+
+			while(row)
+			{
+				int month = 0, day = 0, year = 0;
+				int hours = 0, minutes = 0, seconds = 0;
+
+				mi[counter].Type = DATA_TYPE_ITEM;
+				mi[counter].Acc = acc;
+				mi[counter].Folder = mf;
+				mi[counter].Id = atoi(row[0]);
+				mi[counter].Size = atoi(row[1]);
+				sscanf(row[2], tsformat, &year, &month, &day, &hours, &minutes, &seconds);
+				mi[counter].Date.month = month;
+				mi[counter].Date.day = day;
+				mi[counter].Date.year = year;
+				mi[counter].Time.hours = hours;
+				mi[counter].Time.minutes = minutes;
+				mi[counter].Time.seconds = seconds;
+				strcpy(mi[counter].Topic, row[3]);
+				strcpy(mi[counter].To, row[4]);
+				strcpy(mi[counter].From, row[5]);
+				counter++;
+				row=mysql_fetch_row(res);
+			}
+		}
+		mysql_free_result(res); /* Release memory used to store results. */
+	}
+	else
+		display_mysql_error();
+
+	dw_mutex_unlock(backend_mtx);
+	return mi;
+}
+
+/* Create a new mail item */
+int API backend_newitem(Account *acc, MailFolder *mf, MailItem *mi)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char buf[300], tsbuf[20], *to, *from, *topic;
+
+	if(!as || !mf || !mi)
+		return 1;
+
+	dw_mutex_lock(backend_mtx);
+
+	to = malloc((strlen(mi->To)*2)+1);
+	mysql_real_escape_string(&dmail_db, to, mi->To, strlen(mi->To));
+	from = malloc((strlen(mi->From)*2)+1);
+	mysql_real_escape_string(&dmail_db, from, mi->From, strlen(mi->From));
+	topic = malloc((strlen(mi->Topic)*2)+1);
+	mysql_real_escape_string(&dmail_db, topic, mi->Topic, strlen(mi->Topic));
+
+	sprintf(tsbuf, tsformat, mi->Date.year, mi->Date.month, mi->Date.day, mi->Time.hours, mi->Time.minutes, mi->Time.seconds);
+	sprintf(buf, "INSERT INTO `Mail` ( `size`, `datetime`, `topic`, `to`, `from`, `folder` )\n" \
+			"VALUES ( \'%d\', \'%s\', \'%s\', \'%s\', \'%s\', \'%d\' )",
+			(int)mi->Size, tsbuf, topic, to, from, (int)mf->LastId);
+	if(mysql_query(&dmail_db, buf))
+		display_mysql_error();
+
+	if(to)
+		free(to);
+	if(from)
+		free(from);
+	if(topic)
+		free(topic);
+
+	mi->Id = mysql_insert_id(&dmail_db);
+	mi->Type = DATA_TYPE_ITEM;
+	mi->Acc = acc;
+	mi->Folder = mf;
+
+	dw_mutex_unlock(backend_mtx);
+
+	return 0;
+}
+
+/* Remove a mail item from a mail folder */
+int API backend_delitem(Account *acc, MailFolder *mf, MailItem *mi)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char buf[100];
+
+	if(!as || !mf || !mi)
+		return 1;
+
+	dw_mutex_lock(backend_mtx);
+
+	sprintf(buf, "DELETE FROM `Mail` WHERE entry=\'%d\'", (int)mi->Id);
+	if(mysql_query(&dmail_db, buf))
+		display_mysql_error();
+
+	sprintf(buf, "DELETE FROM `Body` WHERE messid=\'%d\'", (int)mi->Id);
+	if(mysql_query(&dmail_db, buf))
+		display_mysql_error();
+
+	dw_mutex_unlock(backend_mtx);
+
+	return 0;
+}
+
+/* Retrieve a raw mail buffer associated with a mail item */
+char * API backend_getmail(Account *acc, MailFolder *mf, MailItem *mi, unsigned long *len)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char buf[100], *mailbuf = NULL;
+	MYSQL_RES *res;
+	MYSQL_ROW row;
+	
+	if(!as || !mf || !mi || !len)
+		return NULL;
+
+	dw_mutex_lock(backend_mtx);
+
+	sprintf(buf, "SELECT * FROM `Body` WHERE messid=\'%d\' ORDER BY `entry`", (int)mi->Id);
+
+	if(!mysql_query(&dmail_db, buf) && (res=mysql_store_result(&dmail_db)))
+	{ 
+		row=mysql_fetch_row(res); /* Get a row from the results */
+
+		if(row)
+		{
+			unsigned long *lengths = mysql_fetch_lengths(res);
+
+			mailbuf = strdup(row[2]);
+
+			if(lengths)
+			{
+				*len = lengths[2];
+			}
+			else
+			{
+				*len = mi->Size;
+			}
+		}
+		mysql_free_result(res); /* Release memory used to store results. */
+	}
+	else
+		display_mysql_error();
+
+	dw_mutex_unlock(backend_mtx);
+	return mailbuf;
+}
+
+/* Create a raw mail entry associated with a mail item */
+int API backend_newmail(Account *acc, MailFolder *mf, MailItem *mi, char *buf, unsigned long len)
+{
+	AccountStruct *as = (AccountStruct *)acc;
+	char *qbuf, *mbuf = malloc(len*2);
+	int slen;
+
+	if(!as || !mf || !mi || !mbuf)
+		return 1;
+
+	dw_mutex_lock(backend_mtx);
+
+	slen = mysql_real_escape_string(&dmail_db, mbuf, buf, len);
+	qbuf = malloc(slen + 200);
+
+	if(qbuf)
+	{
+		sprintf(qbuf, "INSERT INTO `Body` ( `messid`, `body` )\nVALUES ( \'%d\' ,\'%s\' )", (int)mi->Id, mbuf);
+		if(mysql_query(&dmail_db, qbuf))
+			display_mysql_error();
+		free(qbuf);
+	}
+
+	free(mbuf);
+
+	dw_mutex_unlock(backend_mtx);
+	return 0;
+}
+
+/* This function is here because the Visual C CRT doesn't
+ * like free()ing memory allocated in other modules.
+ */
+void API backend_free(Account *acc, void *buf)
+{
+	if(buf)
+		free(buf);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mysql/mysqlplg.def	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,29 @@
+LIBRARY MYSQLPLG INITINSTANCE TERMINSTANCE
+
+PROTMODE
+
+DESCRIPTION 'MySQL Dynamic Mail Backend'
+
+CODE LOADONCALL
+DATA NONSHARED LOADONCALL
+
+EXPORTS
+  backend_init                           @1
+  backend_shutdown                       @2
+  backend_openaccount                    @3
+  backend_newaccount                     @4
+  backend_closeaccount                   @5
+  backend_getaccounts                    @6
+  backend_freeaccounts                   @7
+  backend_getfolders                     @8
+  backend_newfolder                      @9
+  backend_delfolder                      @10
+  backend_getitems                       @11
+  backend_newitem                        @12
+  backend_delitem                        @13
+  backend_getmail                        @14
+  backend_newmail                        @15
+  backend_free                           @16
+  backend_newsettings                    @17
+  backend_getsettings                    @18
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mysql/mysqlplg.h	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,64 @@
+#ifndef _MYSQLPLG_H
+#define _MYSQLPLG_H
+
+typedef struct {
+	int         Type;
+	char        *name;
+} AccountStruct;
+
+typedef struct {
+	char         hostname[100];
+	char         username[100];
+	char         password[100];
+} LoginStruct;
+
+#define MYSQL_DATABASE "CREATE DATABASE `DynamicMail`"
+
+#define MYSQL_TABLE1 "CREATE TABLE `Accounts` (\n" \
+	"  `entry` int(11) NOT NULL auto_increment,\n" \
+	"  `name` text NOT NULL,\n" \
+	"  `recvhosttype` int(11) NOT NULL default '0',\n" \
+	"  `recvhostname` text NOT NULL,\n" \
+	"  `recvhostport` int(11) NOT NULL default '0',\n" \
+	"  `recvhostuser` text NOT NULL,\n" \
+	"  `recvhostpass` text NOT NULL,\n" \
+	"  `sendhosttype` int(11) NOT NULL default '0',\n" \
+	"  `sendhostname` text NOT NULL,\n" \
+	"  `sendhostport` int(11) NOT NULL default '0',\n" \
+	"  `sendhostuser` text NOT NULL,\n" \
+	"  `sendhostpass` text NOT NULL,\n" \
+	"  `useremail` text NOT NULL,\n" \
+	"  `userrealname` text NOT NULL,\n" \
+	"  `replyemail` text NOT NULL,\n" \
+	"  `replyrealname` text NOT NULL,\n" \
+	"  PRIMARY KEY  (`entry`)\n" \
+	") TYPE=MyISAM AUTO_INCREMENT=1"
+
+#define MYSQL_TABLE2 "CREATE TABLE `Body` (\n" \
+	"  `entry` bigint(20) NOT NULL auto_increment,\n" \
+	"  `messid` bigint(20) NOT NULL default '0',\n" \
+	"  `body` longtext NOT NULL,\n" \
+	"  PRIMARY KEY  (`entry`)\n" \
+	") TYPE=MyISAM AUTO_INCREMENT=1"
+
+
+#define MYSQL_TABLE3 "CREATE TABLE `Folders` (\n" \
+	"  `entry` int(11) NOT NULL auto_increment,\n" \
+	"  `name` text NOT NULL,\n" \
+	"  `folder` text NOT NULL,\n" \
+	"  `parent` text NOT NULL,\n" \
+	"  `flags` int(11) NOT NULL default '0',\n" \
+	"  PRIMARY KEY  (`entry`)\n" \
+	") TYPE=MyISAM AUTO_INCREMENT=1"
+
+#define MYSQL_TABLE4 "CREATE TABLE `Mail` (\n" \
+	"  `entry` bigint(20) NOT NULL auto_increment,\n" \
+	"  `size` int(11) NOT NULL default '0',\n" \
+	"  `datetime` timestamp(14) NOT NULL,\n" \
+	"  `topic` text NOT NULL,\n" \
+	"  `to` text NOT NULL,\n" \
+	"  `from` text NOT NULL,\n" \
+	"  `folder` int(11) NOT NULL default '0',\n" \
+	"  PRIMARY KEY  (`entry`)\n" \
+	") TYPE=MyISAM AUTO_INCREMENT=2"
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mysql/mysqlplgw.def	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,24 @@
+LIBRARY MYSQLPLG
+
+DESCRIPTION 'MySQL Dynamic Mail Backend'
+
+EXPORTS
+  backend_init                           @1
+  backend_shutdown                       @2
+  backend_openaccount                    @3
+  backend_newaccount                     @4
+  backend_closeaccount                   @5
+  backend_getaccounts                    @6
+  backend_freeaccounts                   @7
+  backend_getfolders                     @8
+  backend_newfolder                      @9
+  backend_delfolder                      @10
+  backend_getitems                       @11
+  backend_newitem                        @12
+  backend_delitem                        @13
+  backend_getmail                        @14
+  backend_newmail                        @15
+  backend_free                           @16
+  backend_newsettings                    @17
+  backend_getsettings                    @18
+
Binary file os2/FILE.ICO has changed
Binary file os2/FOLDER.ICO has changed
Binary file os2/LINK.ICO has changed
Binary file os2/about.bmp has changed
Binary file os2/admin.bmp has changed
Binary file os2/change.bmp has changed
Binary file os2/connect.bmp has changed
Binary file os2/disconnect.bmp has changed
Binary file os2/exit.bmp has changed
Binary file os2/flush.bmp has changed
Binary file os2/handyftp.bmp has changed
Binary file os2/handyftp.ico has changed
Binary file os2/help.bmp has changed
Binary file os2/newtab.bmp has changed
Binary file os2/preferences.bmp has changed
Binary file os2/queue.bmp has changed
Binary file os2/remtab.bmp has changed
Binary file os2/save.bmp has changed
Binary file os2/unqueue.bmp has changed
Binary file os2/unsave.bmp has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/parse.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,498 @@
+/*
+ * This file deals with parsing the message body.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <compat.h>
+#include <dw.h>
+#include "backend.h"
+#include "dmail.h"
+#include "parse.h"
+
+int count_lines(char *buf)
+{
+	int count = 1;
+
+	if(!*buf)
+		return 0;
+
+	while(*buf)
+	{
+		if(*buf == '\n')
+			count++;
+		buf++;
+	}
+	return count;
+}
+
+/* Makes a reply buffer with quoted text */
+void make_reply(char *raw, char *newtext)
+{
+	int z, len, newpos = 0, totlen = strlen(raw);
+	char *start = raw;
+
+	for(z=0;z<totlen;z++)
+	{
+		/* Found a new line */
+		if(raw[z] == '\r')
+		{
+			int len;
+
+			if(raw[z] == '\r' && raw[z+1] == '\n')
+				z++;
+
+			newtext[newpos] = '>';
+			newpos++;
+
+			len = &raw[z+1] - start;
+
+			memcpy(&newtext[newpos], start, len);
+			newpos += len;
+
+			start = &raw[z+1];
+		}
+	}
+	len = &raw[z+1] - start;
+
+	if(len > 0)
+	{
+		newtext[newpos] = '>';
+		newpos++;
+
+		memcpy(&newtext[newpos], start, len);
+	}
+}
+
+/* Free memory allocated during parsing */
+void parse_free(MailParsed *mp)
+{
+	int z = 0;
+
+	if(mp->date)
+		free(mp->date);
+	if(mp->replyto)
+		free(mp->replyto);
+	if(mp->from)
+		free(mp->from);
+	if(mp->topic)
+		free(mp->topic);
+	while(mp->to[z] && z < MAX_TO_ADDRESSES)
+	{
+		free(mp->to[z]);
+		z++;
+	}
+	z=0;
+	while(mp->html[z] && z < MAX_MAIL_PARTS)
+	{
+		free(mp->html[z]);
+		z++;
+	}
+	z=0;
+	while(mp->text[z] && z < MAX_MAIL_PARTS)
+	{
+		free(mp->text[z]);
+		z++;
+	}
+	z=0;
+	while(mp->attach[z] && z < MAX_MAIL_PARTS)
+	{
+		free(mp->attach[z]);
+		z++;
+	}
+}
+
+/* Get multiple To: addresses from a single line */
+void parse_to(MailParsed *mp, int *tocount, char *start, int itemlen)
+{
+	int z, thisstart = 0, len;
+
+	for(z=0;z<itemlen;z++)
+	{
+		if(start[z] == ';' || start[z] == ',')
+		{
+			len = z - thisstart;
+
+			if(len > 0)
+			{
+				mp->to[*tocount] = calloc(1, len + 1);
+				strncpy(mp->to[*tocount], &start[thisstart], len);
+				(*tocount)++;
+			}
+			/* Skip over the trailing space */
+			z++;
+			thisstart = z + 1;
+		}
+	}
+	len = z - thisstart;
+
+	if(len > 0)
+	{
+		mp->to[*tocount] = calloc(1, len + 1);
+		strncpy(mp->to[*tocount], &start[thisstart], len);
+		(*tocount)++;
+	}
+}
+
+#define TYPE_TEXT 0
+#define TYPE_HTML 1
+#define TYPE_ATTA 2
+#define TYPE_OTHR 3
+
+/* Determine where this part of a multipart message goes, TEXT, HTML or ATTACHMENT */
+void check_part(MailParsed *mp, char **start, char *part, char *raw, char **ret, int *rettype, int type, int *textcount, int *htmlcount, int *attachcount)
+{
+	/* If we aren't in the headers save the
+	 * last component whereever necessary.
+	 */
+	if(part)
+	{
+		int partlen = *start - part;
+
+		if(type == TYPE_TEXT || type == TYPE_HTML)
+		{
+			/* If we are generating a MailParsed entry then we
+			 * can't touch the actual raw buffer.
+			 */
+			if(mp && type == TYPE_TEXT)
+			{
+				if(partlen > 0 && *textcount < MAX_MAIL_PARTS)
+				{
+					mp->text[*textcount] = calloc(1, partlen+1);
+					memcpy(mp->text[*textcount], part, partlen);
+					*textcount++;
+				}
+			}
+			if(!mp)
+			{
+				/* If we aren't generating a MailParsed entry then
+				 * we can NULL terminate the entry and return it!
+				 */
+				**start = 0;
+
+				/* If it's the first text entry set the return
+				 * buffer to the part.
+				 */
+				if(*ret == raw || (*rettype != TYPE_TEXT && type == TYPE_TEXT))
+				{
+					*ret = part;
+					*rettype = type;
+				}
+			}
+		}
+		/* HTML and Attachment items should only be parsed when
+		 * generating a MailParsed struct, unlike the text type.
+		 */
+		if(mp)
+		{
+			if(type == TYPE_HTML)
+			{
+				if(partlen > 0 && *htmlcount < MAX_MAIL_PARTS)
+				{
+					mp->html[*htmlcount] = calloc(1, partlen+1);
+					memcpy(mp->html[*htmlcount], part, partlen);
+					*htmlcount++;
+				}
+			}
+			if(type == TYPE_ATTA)
+			{
+				if(partlen > 0 && *attachcount < MAX_MAIL_PARTS)
+				{
+					mp->attach[*attachcount] = calloc(1, partlen+1);
+					memcpy(mp->attach[*attachcount], part, partlen);
+					*attachcount++;
+				}
+			}
+		}
+	}
+}
+
+/* Returns true if the line exists in the message buffer */
+int findline(char *line, char *raw, unsigned long totlen)
+{
+	int z, linelen = strlen(line), lines = 0;
+	char *start = raw;
+
+	for(z=0;z<totlen;z++)
+	{
+		/* Found a new line */
+		if(raw[z] == '\r')
+		{
+			int len = &raw[z] - start;
+
+			lines++;
+
+			if(len > linelen && strncasecmp(start, line, linelen) == 0)
+				return lines;
+
+			if(raw[z] == '\r' && raw[z+1] == '\n')
+				z++;
+			start = &raw[z+1];
+		}
+	}
+	return 0;
+}
+
+char *headerends[] = { "Content-type:", "Subject:", "From:", "To:", NULL };
+
+/* Find the body start point, and also fill in variables as necessary */
+char *parse_message(char *raw, unsigned long totlen, MailParsed *mp)
+{
+	int z = 0, in_body = 0, in_header = 1, in_to = 0, tocount = 0, textcount = 0, htmlcount = 0, attachcount = 0;
+	char *ret = raw, *start = raw, *part = NULL;
+	char *boundary = NULL;
+	int boundarylen = 0, type = TYPE_TEXT, rettype = TYPE_OTHR, headerindex = 0;
+
+	if(mp)
+	{
+		memset(mp, 0, sizeof(MailParsed));
+
+		/* Save the raw message */
+		mp->raw = calloc(1, totlen+1);
+		memcpy(mp->raw, raw, totlen);
+	}
+
+	/* Find the most optimal place to stop parsing the
+	 * header... optimally this would be the Content-type
+	 * line but some messages don't have it.
+	 */
+	while(headerends[z])
+	{
+		if(findline(headerends[z], raw, totlen))
+		{
+			headerindex = z;
+			break;
+		}
+		z++;
+	}
+
+	for(z=0;z<totlen;z++)
+	{
+		/* Found a new line */
+		if(raw[z] == '\r')
+		{
+			int len = &raw[z] - start;
+
+			if(in_to && len > 1 && tocount < MAX_TO_ADDRESSES)
+			{
+				int itemlen = (len - 1) > MAIL_ITEM_MAX ? MAIL_ITEM_MAX : (len - 1);
+				if(start[itemlen] == ';' || start[itemlen] == ',')
+				{
+					in_to = 1;
+					itemlen--;
+				}
+				else
+					in_to = 0;
+				mp->to[tocount] = calloc(1, itemlen+1);
+				strncpy(mp->to[tocount], &start[1], itemlen);
+				tocount++;
+			}
+			if(boundary && (start[0] == '-' || start[0] == boundary[0]))
+			{
+				int x;
+
+				for(x=0;x<=(len - boundarylen);x++)
+				{
+					if(strncmp(&start[x], boundary, boundarylen) == 0)
+					{
+						in_body = 0;
+						check_part(mp, &start, part, raw, &ret, &rettype, type, &textcount, &htmlcount, &attachcount);
+						part = NULL;
+					}
+				}
+			}
+			if(len > 14 && strncasecmp(start, "Content-type:", 13) == 0)
+			{
+				in_header = 0;
+
+				/* This is a multipart message... find the boundary */
+				if(strncasecmp(&start[14], "text/plain", 10) == 0)
+				{
+					type = TYPE_TEXT;
+				}
+				else if(strncasecmp(&start[14], "text/html", 9) == 0)
+				{
+					type = TYPE_HTML;
+				}
+				else
+					type = TYPE_OTHR;
+			}
+			else if(in_header && headerindex)
+			{
+				char *header =  headerends[headerindex];
+				int headerlen = strlen(header);
+
+				if(len > headerlen && strncasecmp(start, header, headerlen) == 0)
+					in_header = 0;
+			}
+			if(!in_body)
+			{
+				if(len)
+				{
+					int itemlen;
+
+					if(len > 14 && strncasecmp(start, "Content-type:", 13) == 0)
+					{
+						/* This is a multipart message... find the boundary */
+						if(strncasecmp(&start[14], "Multipart", 9) == 0)
+						{
+							/* Find the boundary */
+							int n, worklen = 100 > (totlen - (z+22)) ? (totlen - (z+22)) : 100;
+
+							for(n=0;n<worklen;n++)
+							{
+								if(strncasecmp(&start[14+n], "boundary", 8) == 0)
+								{
+									int place = 22+n;
+									n = worklen;
+
+									if(start[place] == '=')
+									{
+										int t;
+										char *boundstart = &start[place+1];
+
+										place++;
+										if(start[place] == '"')
+										{
+											place++;
+											boundstart++;
+										}
+
+										worklen = 100 > (totlen - place) ? (totlen - place) : 100;
+
+										for(t=0;t<worklen;t++)
+										{
+											if(boundstart[t] == '"' || boundstart[t] == '\r' || boundstart[t] == '\n')
+											{
+												boundary = calloc(1, t+1);
+												strncpy(boundary, boundstart, t);
+												boundarylen = t;
+												t=worklen;
+											}
+										}
+									}
+								}
+							}
+						}
+					}
+					if(mp)
+					{
+						/* Pull out useful items */
+						if(len > 9 && strncasecmp(start, "Subject:", 8) == 0)
+						{
+							itemlen = (len - 9) > MAIL_ITEM_MAX ? MAIL_ITEM_MAX : (len - 9);
+							mp->topic = calloc(1, itemlen+1);
+							strncpy(mp->topic, &start[9], itemlen);
+						}
+						if(len > 10 && strncasecmp(start, "Reply-to:", 9) == 0)
+						{
+							itemlen = (len - 10) > MAIL_ITEM_MAX ? MAIL_ITEM_MAX : (len - 10);
+							mp->replyto = calloc(1, itemlen+1);
+							strncpy(mp->replyto, &start[10], itemlen);
+						}
+						if(len > 4 && strncasecmp(start, "To:", 3) == 0 && tocount < MAX_TO_ADDRESSES)
+						{
+							itemlen = (len - 4) > MAIL_ITEM_MAX ? MAIL_ITEM_MAX : (len - 4);
+							if(start[3+itemlen] == ';' || start[3+itemlen] == ',')
+							{
+								in_to = 1;
+								itemlen--;
+							}
+							parse_to(mp, &tocount, &start[4], itemlen);
+						}
+						if(len > 6 && strncasecmp(start, "From:", 5) == 0)
+						{
+							itemlen = (len - 6) > MAIL_ITEM_MAX ? MAIL_ITEM_MAX : (len - 6);
+							mp->from = calloc(1, itemlen+1);
+							strncpy(mp->from, &start[6], itemlen);
+						}
+						if(len > 6 && strncasecmp(start, "Date:", 5) == 0)
+						{
+							itemlen = (len - 6) > MAIL_ITEM_MAX ? MAIL_ITEM_MAX : (len - 6);
+							mp->date = calloc(1, itemlen+1);
+							strncpy(mp->date, &start[6], itemlen);
+						}
+					}
+				}
+				else if(!in_header)
+				{
+					if(raw[z] == '\r' && raw[z+1] == '\n')
+						part = &raw[z+2];
+					else
+						part = &raw[z+1];
+
+					in_body = 1;
+				}
+			}
+			if(raw[z] == '\r' && raw[z+1] == '\n')
+				z++;
+			start = &raw[z+1];
+		}
+	}
+	start = &raw[z];
+	check_part(mp, &start, part, raw, &ret, &rettype, type, &textcount, &htmlcount, &attachcount);
+	if(boundary)
+		free(boundary);
+	return ret;
+}
+
+/* Checks if a string is a valid IP address */
+int isip(char *buf)
+{
+	int z = 0, dotcount = 0, value;
+	char *start = buf;
+
+	while(buf[z])
+	{
+		if(buf[z] == '.')
+		{
+			value = atoi(start);
+			if(value > 255 || value < 0)
+				return 0;
+			start = &buf[z+1];
+			dotcount++;
+		}
+		else if(!isdigit(buf[z]))
+			return 0;
+		z++;
+	}
+
+	value = atoi(start);
+	if(value > 255 || value < 0)
+		return 0;
+
+	if(dotcount != 3 || z < 7 || z > 15)
+		return 0;
+	return 1;
+}
+
+/* Initialize CDATA and CTIME structures to the
+ * current date and time.
+ */
+void init_date_time(CDATE *cdate, CTIME *ctime)
+{
+	time_t curtime = time(NULL);
+	struct tm curtm, *ret;
+
+#ifdef __UNIX__
+	ret = localtime_r(&curtime, &curtm);
+	if(ret)
+	{
+#else
+	ret = localtime(&curtime);
+
+	if(ret)
+	{
+		memcpy(&curtm, ret, sizeof(struct tm));
+#endif
+		cdate->day = curtm.tm_mday;
+		cdate->month = curtm.tm_mon + 1;
+		cdate->year = curtm.tm_year + 1900;
+		ctime->hours = curtm.tm_hour;
+		ctime->minutes = curtm.tm_min;
+		ctime->seconds = curtm.tm_sec;
+	}
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/parse.h	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,27 @@
+#ifndef _PARSE_H
+#define _PARSE_H
+
+#define MAX_TO_ADDRESSES 250
+#define MAX_MAIL_PARTS   10
+
+typedef struct {
+	char *to[MAX_TO_ADDRESSES];
+	char *from;
+	char *topic;
+	char *date;
+	char *replyto;
+	char *html[MAX_MAIL_PARTS];
+	char *text[MAX_MAIL_PARTS];
+	char *attach[MAX_MAIL_PARTS];
+	char *raw;
+} MailParsed;
+
+
+char *parse_message(char *raw, unsigned long len, MailParsed *mp);
+void parse_free(MailParsed *mp);
+int isip(char *buf);
+void init_date_time(CDATE *date, CTIME *time);
+int count_lines(char *buf);
+void make_reply(char *raw, char *newtext);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/receive.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,355 @@
+/*
+ * This file deals with getting messages from
+ * the remote email server.
+ */
+
+#include <string.h>
+#include <compat.h>
+#include <dw.h>
+#include "backend.h"
+#include "dmail.h"
+#include "parse.h"
+#include "datetime.h"
+
+extern BackendPlugin plugin_list[];
+extern HWND stext2;
+
+typedef struct _pop3data {
+	int messages;
+	int current;
+	int bytes;
+	int status;
+	int datalen;
+	char *data;
+	MailItem mi;
+} POP3Data;
+
+int POP3Iteration(AccountInfo *ai, MailFolder *mf, int controlfd, AccountSettings *set, POP3Data *p3d)
+{
+	char controlbuffer[1025] = "";
+	static char nexttime[513] = "";
+	int z, gah, start, amnt;
+
+	start = 0;
+	strncpy(controlbuffer, nexttime, 512);
+	amnt = sockread(controlfd, &controlbuffer[strlen(nexttime)], 512, 0);
+	if(amnt < 1)
+	{
+		dw_window_set_text(stext2, "Unexpected disconnect.");
+		sockclose(controlfd);
+		controlfd = 0;
+	}
+	else
+	{
+		controlbuffer[amnt+strlen(nexttime)] = 0;
+		nexttime[0] = 0;
+		gah = strlen(controlbuffer);
+		for(z=0;z<gah;z++)
+		{
+			if(controlbuffer[z] == '\r' || controlbuffer[z] == '\n')
+			{
+				char *mystart = &controlbuffer[start];
+
+				if(controlbuffer[z] == '\r' && controlbuffer[z+1] == '\n')
+				{
+					controlbuffer[z] = 0;
+					controlbuffer[z+1] = 0;
+					z++;
+				}
+				else
+					controlbuffer[z] = 0;
+
+				if(p3d->status == 5)
+				{
+					if(strncmp(mystart, ".", 2) == 0)
+					{
+						char textbuf[100];
+
+						if(p3d->data && p3d->datalen)
+						{
+							MailParsed mp;
+
+							parse_message(p3d->data, p3d->datalen, &mp);
+
+							/* Copy the items */
+							if(mp.to[0])
+								strncpy(p3d->mi.To, mp.to[0], MAIL_ITEM_MAX);
+							if(mp.from)
+								strncpy(p3d->mi.From, mp.from, MAIL_ITEM_MAX);
+							if(mp.topic)
+								strncpy(p3d->mi.Topic, mp.topic, MAIL_ITEM_MAX);
+
+							p3d->mi.Date.day = findday(mp.date);
+							p3d->mi.Date.month = findmonth(mp.date);
+							p3d->mi.Date.year = findyear(mp.date);
+							p3d->mi.Time.hours = findhour(mp.date);
+							p3d->mi.Time.minutes = findmin(mp.date);
+							p3d->mi.Time.seconds = findsec(mp.date);
+
+							parse_free(&mp);
+
+							p3d->mi.Size = p3d->datalen;
+
+							/* Yay! we have a whole message.. lets save it! */
+							plugin_list[ai->Plug].newitem(ai->Acc, mf, &p3d->mi);
+							plugin_list[ai->Plug].newmail(ai->Acc, mf, &p3d->mi, p3d->data, p3d->datalen);
+
+							free(p3d->data);
+						}
+
+						/* Reset the message state variables */
+						p3d->data = NULL;
+						p3d->datalen = 0;
+						memset(&p3d->mi, 0, sizeof(MailItem));
+
+						sprintf(textbuf, "Deleting message %d...", p3d->current);
+						dw_window_set_text(stext2, textbuf);
+						socksprint(controlfd, vargs(alloca(1024), 1023, "DELE %d\r\n", p3d->current));
+
+						p3d->status++;
+					}
+					else
+					{
+						/* More message data... save it for later */
+						int len = strlen(mystart);
+						char *tmp = malloc(len + p3d->datalen + 3);
+
+						if(p3d->data)
+							memcpy(tmp, p3d->data, p3d->datalen);
+						if(len)
+							memcpy(&tmp[p3d->datalen], mystart, len);
+						p3d->datalen += len + 2;
+						tmp[p3d->datalen-2] = '\r';
+						tmp[p3d->datalen-1] = '\n';
+						tmp[p3d->datalen] = 0;
+						if(p3d->data)
+							free(p3d->data);
+						p3d->data = tmp;
+					}
+				}
+				else if(strlen(&controlbuffer[start]) > 0)
+				{
+					if(p3d->status == -1 && strncmp(mystart, "+OK", 3) == 0)
+					{
+						/* We got the welcome message, let's login */
+						dw_window_set_text(stext2, "Username...");
+						socksprint(controlfd, vargs(alloca(1024), 1023, "USER %s\r\n", set->RecvHostUser));
+						p3d->status++;
+					}
+					else if(p3d->status == 0 && strncmp(mystart, "+OK", 3) == 0)
+					{
+						/* Our username was accepted, send password */
+						dw_window_set_text(stext2, "Password...");
+						socksprint(controlfd, vargs(alloca(1024), 1023, "PASS %s\r\n", set->RecvHostPass));
+						p3d->status++;
+					}
+					else if((p3d->status == 0 || p3d->status == 1) && strncmp(mystart, "-ERR", 3) == 0)
+					{
+						/* Either the user or pass request failed, abort. */
+						dw_window_set_text(stext2, "Login failed.");
+						socksprint(controlfd, "QUIT\r\n");
+						sockclose(controlfd);
+						controlfd = 0;
+					}
+					else if(p3d->status == 1 && strncmp(mystart, "+OK", 3) == 0)
+					{
+						/* Our login was successful! Get a list of messages */
+						dw_window_set_text(stext2, "Status...");
+						socksprint(controlfd, "STAT\r\n");
+						p3d->status++;
+					}
+					else if(p3d->status == 2 && strncmp(mystart, "+OK", 3) == 0)
+					{
+						char textbuf[100];
+
+						p3d->messages = atoi(&mystart[3]);
+						if(p3d->messages)
+						{
+							/* Our login was successful! Get a list of messages */
+							sprintf(textbuf, "Getting message %d of %d...", p3d->current, p3d->messages);
+							dw_window_set_text(stext2, textbuf);
+							socksprint(controlfd, vargs(alloca(1024), 1023, "LIST %d\r\n", p3d->current));
+							p3d->status++;
+						}
+						else
+						{
+							dw_window_set_text(stext2, "No new mail.");
+							socksprint(controlfd, "QUIT\r\n");
+							sockclose(controlfd);
+							controlfd = 0;
+						}
+					}
+					else if(p3d->status == 3 && strncmp(mystart, "+OK", 3) == 0)
+					{
+						char textbuf[100];
+
+						/* We have a size for our message...
+						 * request the message contents!
+						 */
+						sprintf(textbuf, "+OK %d ", p3d->current);
+						p3d->bytes = atoi(&mystart[strlen(textbuf)]);
+						socksprint(controlfd, vargs(alloca(1024), 1023, "RETR %d\r\n", p3d->current));
+						p3d->status++;
+					}
+					else if(p3d->status == 4 && strncmp(mystart, "+OK", 3) == 0)
+					{
+						/* Just proceed to the next step */
+						p3d->status++;
+					}
+					else if(p3d->status == 6 && strncmp(mystart, "+OK", 3) == 0)
+					{
+						char textbuf[100];
+
+						/* Move on to the next message */
+						p3d->current++;
+						if(p3d->current > p3d->messages)
+						{
+							/* Success! We have retrieved our new messages */
+							sprintf(textbuf, "%d new message%s.", p3d->messages, p3d->messages == 1 ? "" : "s");
+							dw_window_set_text(stext2, textbuf);
+							socksprint(controlfd, "QUIT\r\n");
+							sockclose(controlfd);
+							controlfd = 0;
+						}
+						else
+						{
+							sprintf(textbuf, "Getting message %d of %d...", p3d->current, p3d->messages);
+							dw_window_set_text(stext2, textbuf);
+							socksprint(controlfd, vargs(alloca(1024), 1023, "LIST %d\r\n", p3d->current));
+							p3d->status = 3;
+						}
+					}
+					else if(strncmp(mystart, "-ERR", 3) == 0)
+					{
+						/* An unhandled error occurred */
+						dw_window_set_text(stext2, "Error getting messages.");
+						socksprint(controlfd, "QUIT\r\n");
+						sockclose(controlfd);
+						controlfd = 0;
+						dw_messagebox("DynamicMail Error", DW_MB_OK | DW_MB_ERROR, mystart);
+					}
+				}
+				start = z+1;
+			}
+		}
+		if(strlen(&controlbuffer[start]) > 0)
+			strncpy(nexttime, &controlbuffer[start], 512);
+		else
+			nexttime[0] = 0;
+	}
+	return controlfd;
+}
+
+void HandlePOP3(AccountInfo *ai, MailFolder *mf, int controlfd)
+{
+	fd_set readset;
+	struct timeval tv = { 5, 0 }, slowtv = { 5, 0 };
+	POP3Data p3d = {0, 1, 0, -1, 0, NULL };
+
+	memset(&p3d.mi, 0, sizeof(MailItem));
+
+	FD_ZERO(&readset);
+	FD_SET(controlfd, &readset);
+
+	while(controlfd && select(controlfd + 1, &readset, NULL, NULL, &tv) > -1)
+	{
+		if(controlfd && FD_ISSET(controlfd, &readset))
+			controlfd = POP3Iteration(ai, mf, controlfd, &ai->Settings, &p3d);
+
+		FD_ZERO(&readset);
+		FD_SET(controlfd, &readset);
+
+		memcpy(&tv, &slowtv, sizeof(struct timeval));
+	}
+	if(controlfd)
+	{
+		dw_window_set_text(stext2, "Unexpected disconnect.");
+		sockclose(controlfd);
+		controlfd = 0;
+	}
+}
+
+void API Mail_Receive_Thread(void *data)
+{
+	AccountInfo *ai = (AccountInfo *)data;
+	MailFolder *mf = NULL;
+
+	if(!ai || !ai->Folders)
+	{
+		dw_messagebox("DynamicMail", DW_MB_OK | DW_MB_ERROR, "Receive Mail Thread failed to initialize!");
+		return;
+	}
+	else
+	{
+		int n = 0;
+
+		while(ai->Folders[n].Name[0])
+		{
+			if(strcmp(ai->Folders[n].Name, "Inbox") == 0)
+			{
+				mf = &ai->Folders[n];
+				break;
+			}
+			n++;
+		}
+	}
+
+	if(!mf)
+		return;
+
+	while(ai->Acc)
+	{
+		if(dw_event_wait(ai->RecvEve, 1000) > 0)
+		{
+			/* Check mail! */
+    		struct hostent *hostnm;
+			struct sockaddr_in server;
+			int controlfd = 0, ipaddr = 0;
+			AccountSettings *set = &ai->Settings;
+
+			dw_event_reset(ai->RecvEve);
+
+			dw_window_set_text(stext2, "Connecting...");
+
+			if(isip(set->RecvHostName))
+				ipaddr = inet_addr(set->RecvHostName);
+			else
+			{
+				hostnm = gethostbyname(set->RecvHostName);
+				if(!hostnm)
+					dw_window_set_text(stext2, "Host lookup failed.");
+				else
+					ipaddr = *((unsigned long *)hostnm->h_addr);
+			}
+
+			if(ipaddr && ipaddr != -1)
+			{
+				server.sin_family      = AF_INET;
+				server.sin_port        = htons(set->RecvHostPort);
+				server.sin_addr.s_addr = ipaddr;
+				if((controlfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 || connect(controlfd, (struct sockaddr *)&server, sizeof(server)))
+				{
+					dw_window_set_text(stext2, "Could not connect.");
+					controlfd = 0;
+				} else
+				{
+					/* We are connected, wait for the welcome */
+					dw_window_set_text(stext2, "Connected.");
+					nonblock(controlfd);
+				}
+				if(controlfd)
+				{
+					switch(set->RecvHostType)
+					{
+					case HOST_TYPE_POP3:
+						HandlePOP3(ai, mf, controlfd);
+						break;
+					default:
+						dw_window_set_text(stext2, "Unhandled protocol.");
+						sockclose(controlfd);
+					}
+				}
+			}
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/send.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,402 @@
+/*
+ * This file deals with getting messages from
+ * the remote email server.
+ */
+#include <string.h>
+#include <compat.h>
+#include <dw.h>
+#include "backend.h"
+#include "dmail.h"
+#include "parse.h"
+
+extern BackendPlugin plugin_list[];
+extern HWND stext3;
+
+char *find_address(char *from)
+{
+	int start, len = strlen(from);
+
+	/* Find the from domain */
+	for(start=0;start<len;start++)
+	{
+		if(from[start] == '<')
+		{
+			start++;
+			break;
+		}
+	}
+	from = strdup(from[start] ? &from[start] : from);
+	len = strlen(from);
+	for(start=0;start<len;start++)
+	{
+		if(from[start] == '>')
+			from[start] = 0;
+	}
+	return from;
+}
+
+char *find_domain(char *from)
+{
+	int atsym, len = strlen(from);
+
+	/* Find the from domain */
+	for(atsym=0;atsym<len;atsym++)
+	{
+		if(from[atsym] == '@')
+		{
+			atsym++;
+			break;
+		}
+	}
+	from = strdup(from[atsym] ? &from[atsym] : from);
+	len = strlen(from);
+	for(atsym=0;atsym<len;atsym++)
+	{
+		if(from[atsym] == '>')
+			from[atsym] = 0;
+	}
+	return from;
+}
+
+typedef struct _smtpdata {
+	int messages;
+	int current;
+	int status;
+	int sentlen;
+	unsigned long datalen;
+	char *data;
+	MailFolder *sentmail;
+} SMTPData;
+
+int SMTPIteration(AccountInfo *ai, MailFolder *mf, int controlfd, MailItem *mi, SMTPData *smd)
+{
+	char controlbuffer[1025] = "";
+	static char nexttime[513] = "";
+	int z, gah, start, amnt;
+
+	start = 0;
+	strncpy(controlbuffer, nexttime, 512);
+	amnt = sockread(controlfd, &controlbuffer[strlen(nexttime)], 512, 0);
+	if(amnt < 1)
+	{
+		dw_window_set_text(stext3, "Unexpected disconnect.");
+		sockclose(controlfd);
+		controlfd = 0;
+	}
+	else
+	{
+		controlbuffer[amnt+strlen(nexttime)] = 0;
+		nexttime[0] = 0;
+		gah = strlen(controlbuffer);
+		for(z=0;z<gah;z++)
+		{
+			if(controlbuffer[z] == '\r' || controlbuffer[z] == '\n')
+			{
+				char *mystart = &controlbuffer[start];
+
+				if(controlbuffer[z] == '\r' && controlbuffer[z+1] == '\n')
+				{
+					controlbuffer[z] = 0;
+					controlbuffer[z+1] = 0;
+					z++;
+				}
+				else
+					controlbuffer[z] = 0;
+
+				if(strlen(&controlbuffer[start]) > 0)
+				{
+					if(smd->status == -1 && strncmp(mystart, "220", 3) == 0)
+					{
+						/* We got the welcome message, be polite, say "helo" */
+						char *from;
+
+						dw_window_set_text(stext3, "Hello...");
+
+						from = find_domain(mi[smd->current].From);
+						socksprint(controlfd, vargs(alloca(1024), 1023, "HELO %s\r\n", from));
+						free(from);
+						smd->status++;
+					}
+					else if(smd->status == 0 && strncmp(mystart, "250", 3) == 0)
+					{
+						char *from;
+
+						/* Done saying hello, let's get a message to send */
+						dw_window_set_text(stext3, "From...");
+
+						from = find_address(mi[smd->current].From);
+						socksprint(controlfd, vargs(alloca(1024), 1023, "MAIL FROM:<%s>\r\n", from));
+						free(from);
+						smd->status++;
+					}
+					else if(smd->status == 1 && strncmp(mystart, "250", 3) == 0)
+					{
+						MailParsed *mp = malloc(sizeof(MailParsed));
+
+						smd->data = plugin_list[ai->Plug].getmail(mi[smd->current].Acc, mi[smd->current].Folder, mi, &smd->datalen);
+						parse_message(smd->data, smd->datalen, mp);
+
+						/* Our from host was accepted, send recipients */
+						dw_window_set_text(stext3, "Recipients...");
+
+						if(!mp->to[0])
+						{
+							char *to = find_address(mi[smd->current].To);
+							socksprint(controlfd, vargs(alloca(1024), 1023, "RCPT TO:<%s>\r\n", to));
+							free(to);
+						}
+						else
+						{
+							int n = 0;
+
+							while(mp->to[n] && n < MAX_TO_ADDRESSES)
+							{
+								char *to = find_address(mp->to[n]);
+								socksprint(controlfd, vargs(alloca(1024), 1023, "RCPT TO:<%s>\r\n", to));
+								free(to);
+								n++;
+							}
+						}
+						free(mp);
+						smd->status++;
+					}
+					else if(smd->status == 2 && strncmp(mystart, "250", 3) == 0)
+					{
+						/* Our recipients were accepted, send message */
+						char textbuf[100];
+
+						sprintf(textbuf, "Sending message %d of %d...", smd->current+1, smd->messages);
+						dw_window_set_text(stext3, textbuf);
+						socksprint(controlfd, "DATA\r\n");
+						smd->status++;
+					}
+					else if(smd->status == 3 && strncmp(mystart, "250", 3) == 0)
+					{
+						/* Do nothing.. probably resulting from multiple
+						 * recipients. ;)
+						 */
+					}
+					else if(smd->status == 3 && strncmp(mystart, "354", 3) == 0)
+					{
+						smd->sentlen = 0;
+						smd->status++;
+					}
+					else if(smd->status == 4 && strncmp(mystart, "250", 3) == 0)
+					{
+						/* Move messages to sent mail if found */
+						if(smd->sentmail)
+						{
+							MailItem mailitem;
+
+							memcpy(&mailitem, &mi[smd->current], sizeof(MailItem));
+							plugin_list[ai->Plug].newitem(ai->Acc, smd->sentmail, &mailitem);
+							plugin_list[ai->Plug].newmail(ai->Acc, smd->sentmail, &mailitem, smd->data, smd->datalen);
+						}
+
+						/* Free the buffer and then delete the message from
+						 * the outbox.
+						 */
+						plugin_list[ai->Plug].free(mi[smd->current].Acc, smd->data);
+						plugin_list[ai->Plug].delitem(mi[smd->current].Acc, mf, &mi[smd->current]);
+						smd->data = NULL;
+						smd->datalen = 0;
+						smd->current++;
+						smd->status = 0;
+						if(smd->current >= smd->messages)
+						{
+							char textbuf[100];
+
+							sprintf(textbuf, "%d message%s sent.", smd->messages, smd->messages == 1 ? "" : "s");
+							dw_window_set_text(stext3, textbuf);
+							socksprint(controlfd, "QUIT\r\n");
+							sockclose(controlfd);
+							controlfd = 0;
+						}
+						else
+						{
+							char *from;
+
+							/* Done saying hello, let's get a message to send */
+							dw_window_set_text(stext3, "From...");
+
+							from = find_address(mi[smd->current].From);
+							socksprint(controlfd, vargs(alloca(1024), 1023, "MAIL FROM:<%s>\r\n", from));
+							free(from);
+							smd->status++;
+						}
+					}
+					else
+					{
+						/* An unhandled error occurred */
+						dw_window_set_text(stext3, "Error sending messages.");
+						socksprint(controlfd, "QUIT\r\n");
+						sockclose(controlfd);
+						controlfd = 0;
+						dw_messagebox("DynamicMail Error", DW_MB_OK | DW_MB_ERROR, mystart);
+					}
+				}
+				start = z+1;
+			}
+		}
+		if(strlen(&controlbuffer[start]) > 0)
+			strncpy(nexttime, &controlbuffer[start], 512);
+		else
+			nexttime[0] = 0;
+	}
+	return controlfd;
+}
+
+void HandleSMTPSend(AccountInfo *ai, MailFolder *mf, int controlfd)
+{
+	fd_set readset, writeset;
+	struct timeval tv = { 5, 0 }, slowtv = { 5, 0 };
+	MailItem *mi = plugin_list[ai->Plug].getitems(mf->Acc, mf);
+	SMTPData smd = {0, 0, -1, 0, 0, NULL, NULL };
+	int n = 0;
+
+	/* Find a mailbox to put sent messages */
+	while(ai->Folders[n].Name[0])
+	{
+		if(strcmp(ai->Folders[n].Name, "Sent Mail") == 0)
+		{
+			smd.sentmail = &ai->Folders[n];
+			break;
+		}
+		n++;
+	}
+
+	/* Count how many messages we have to send */
+	while(mi[smd.messages].Id)
+	{
+		smd.messages++;
+	}
+
+	FD_ZERO(&readset);
+	FD_ZERO(&writeset);
+	FD_SET(controlfd, &readset);
+
+	while(mi && mi[smd.current].Id && controlfd && select(controlfd + 1, &readset, NULL, NULL, &tv) > -1)
+	{
+		int amnt;
+
+		if(smd.data && smd.datalen && smd.status == 4 && controlfd && FD_ISSET(controlfd, &writeset))
+		{
+			int tosend = smd.datalen - smd.sentlen;
+
+			if(tosend)
+			{
+				/* Send data as we can. */
+				amnt = sockwrite(controlfd, &smd.data[smd.sentlen], tosend > 512 ? 512 : tosend, 0);
+				if(amnt > 0)
+					smd.sentlen += amnt;
+			}
+			else
+			{
+				/* Finish the email with <CRLF>.<CRLF> */
+				socksprint(controlfd, "\r\n.\r\n");
+			}
+
+		}
+		if(controlfd && FD_ISSET(controlfd, &readset))
+			controlfd = SMTPIteration(ai, mf, controlfd, mi, &smd);
+
+		FD_ZERO(&readset);
+		FD_ZERO(&writeset);
+		FD_SET(controlfd, &readset);
+		if(smd.data && smd.datalen)
+			FD_SET(controlfd, &writeset);
+
+		memcpy(&tv, &slowtv, sizeof(struct timeval));
+	}
+	if(controlfd)
+	{
+		dw_window_set_text(stext3, "Unexpected disconnect.");
+		sockclose(controlfd);
+		controlfd = 0;
+	}
+}
+
+void API Mail_Send_Thread(void *data)
+{
+	AccountInfo *ai = (AccountInfo *)data;
+	MailFolder *mf = NULL;
+
+	if(!ai || !ai->Folders)
+	{
+		dw_messagebox("DynamicMail", DW_MB_OK | DW_MB_ERROR, "Send Mail Thread failed to initialize!");
+		return;
+	}
+	else
+	{
+		int n = 0;
+
+		while(ai->Folders[n].Name[0])
+		{
+			if(strcmp(ai->Folders[n].Name, "Outbox") == 0)
+			{
+				mf = &ai->Folders[n];
+				break;
+			}
+			n++;
+		}
+	}
+
+	if(!mf)
+		return;
+
+	while(ai->Acc)
+	{
+		if(dw_event_wait(ai->SendEve, 1000) > 0)
+		{
+			/* Send mail! */
+			struct hostent *hostnm;
+			struct sockaddr_in server;
+			int controlfd = 0, ipaddr = 0;
+			AccountSettings *set = &ai->Settings;
+
+			dw_event_reset(ai->SendEve);
+
+			dw_window_set_text(stext3, "Connecting...");
+
+			if(isip(set->SendHostName))
+				ipaddr = inet_addr(set->RecvHostName);
+			else
+			{
+				hostnm = gethostbyname(set->SendHostName);
+				if(!hostnm)
+					dw_window_set_text(stext3, "Host lookup failed.");
+				else
+					ipaddr = *((unsigned long *)hostnm->h_addr);
+			}
+
+			if(ipaddr && ipaddr != -1)
+			{
+				server.sin_family      = AF_INET;
+				server.sin_port        = htons(set->SendHostPort);
+				server.sin_addr.s_addr = ipaddr;
+				if((controlfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 || connect(controlfd, (struct sockaddr *)&server, sizeof(server)))
+				{
+					dw_window_set_text(stext3, "Could not connect.");
+					controlfd = 0;
+				} else
+				{
+					/* We are connected, wait for the welcome */
+					dw_window_set_text(stext3, "Connected.");
+					nonblock(controlfd);
+				}
+				if(controlfd)
+				{
+					switch(set->SendHostType)
+					{
+					case HOST_TYPE_SMTP:
+						HandleSMTPSend(ai, mf, controlfd);
+						break;
+					default:
+						dw_window_set_text(stext3, "Unhandled protocol.");
+						sockclose(controlfd);
+					}
+				}
+			}
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sendrecv.h	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,7 @@
+#ifndef _SENDRECV_H
+#define _SENDRECV_H
+
+void API Mail_Receive_Thread(void *data);
+void API Mail_Send_Thread(void *data);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/userent.h	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,12 @@
+#ifndef __USERENT_H__
+#define __USERENT_H__
+
+typedef struct _userentry {
+	HWND window, entryfield;
+	int page;
+	char *filename;
+	void *data, *data2;
+	HWND *busy;
+} UserEntry;
+
+#endif
Binary file win/FILE.ico has changed
Binary file win/FOLDER.ico has changed
Binary file win/LINK.ico has changed
Binary file win/about.bmp has changed
Binary file win/admin.bmp has changed
Binary file win/change.bmp has changed
Binary file win/connect.bmp has changed
Binary file win/disconnect.bmp has changed
Binary file win/exit.bmp has changed
Binary file win/flush.bmp has changed
Binary file win/handyftp.bmp has changed
Binary file win/handyftp.ico has changed
Binary file win/help.bmp has changed
Binary file win/newtab.bmp has changed
Binary file win/preferences.bmp has changed
Binary file win/queue.bmp has changed
Binary file win/remtab.bmp has changed
Binary file win/save.bmp has changed
Binary file win/unqueue.bmp has changed
Binary file win/unsave.bmp has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/winmain.c	Fri Jan 21 18:25:00 2011 -0600
@@ -0,0 +1,108 @@
+/* Dynamic Windows stub file to allow Win32 applications
+ * to use the main() entry point instead of WinMain().
+ */
+
+#include <windows.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <process.h>
+
+void Win32_Set_Instance(HINSTANCE hInstance);
+
+char **_convertargs(int *count, char *start, HINSTANCE DWInstance)
+{
+	char *tmp, *argstart, **argv;
+	int loc = 0, inquotes = 0;
+
+	(*count) = 1;
+
+	tmp = start;
+
+	/* Count the number of entries */
+	if(*start)
+	{
+		(*count)++;
+
+		while(*tmp)
+		{
+			if(*tmp == '"' && inquotes)
+				inquotes = 0;
+			else if(*tmp == '"' && !inquotes)
+				inquotes = 1;
+			else if(*tmp == ' ' && !inquotes)
+			{
+				/* Push past any white space */
+				while(*(tmp+1) == ' ')
+					tmp++;
+				/* If we aren't at the end of the command
+				 * line increment the count.
+				 */
+				if(*(tmp+1))
+					(*count)++;
+			}
+			tmp++;
+		}
+	}
+
+	argv = (char **)malloc(sizeof(char *) * ((*count)+1));
+	argv[0] = malloc(260);
+	GetModuleFileName(DWInstance, argv[0], 260);
+
+	argstart = tmp = start;
+
+	if(*start)
+	{
+		loc = 1;
+
+		while(*tmp)
+		{
+			if(*tmp == '"' && inquotes)
+			{
+				*tmp = 0;
+				inquotes = 0;
+			}
+			else if(*tmp == '"' && !inquotes)
+			{
+				argstart = tmp+1;
+				inquotes = 1;
+			}
+			else if(*tmp == ' ' && !inquotes)
+			{
+				*tmp = 0;
+				argv[loc] = strdup(argstart);
+
+				/* Push past any white space */
+				while(*(tmp+1) == ' ')
+					tmp++;
+
+				/* Move the start pointer */
+				argstart = tmp+1;
+
+				/* If we aren't at the end of the command
+				 * line increment the count.
+				 */
+				if(*(tmp+1))
+					loc++;
+			}
+			tmp++;
+		}
+		if(*argstart)
+			argv[loc] = strdup(argstart);
+	}
+	argv[loc+1] = NULL;
+	return argv;
+}
+
+/* Ok this is a really big hack but what the hell ;) */
+int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
+{
+	char **argv;
+	int argc;
+
+	Win32_Set_Instance(hInstance);
+
+	argv = _convertargs(&argc, lpCmdLine, hInstance);
+
+	return main(argc, argv);
+}