From 0a9750ef9f61a12070797f3475f8f5b6b07f21b4 Mon Sep 17 00:00:00 2001
From: Russell Bryant <russell@russellbryant.com>
Date: Fri, 6 Apr 2007 21:16:38 +0000
Subject: [PATCH] Merged revisions 60603 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r60603 | russell | 2007-04-06 15:58:43 -0500 (Fri, 06 Apr 2007) | 13 lines

To be able to achieve the things that we would like to achieve with the
Asterisk GUI project, we need a fully functional HTTP interface with access
to the Asterisk manager interface.  One of the things that was intended to be
a part of this system, but was never actually implemented, was the ability for
the GUI to be able to upload files to Asterisk.  So, this commit adds this in
the most minimally invasive way that we could come up with.

A lot of work on minimime was done by Steve Murphy.  He fixed a lot of bugs in
the parser, and updated it to be thread-safe.  The ability to check
permissions of active manager sessions was added by Dwayne Hubbard.  Then,
hacking this all together and do doing the modifications necessary to the HTTP
interface was done by me.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@60604 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 Makefile.moddir_rules                         |    2 +
 configs/http.conf.sample                      |   13 +
 configure                                     |    6 +-
 configure.ac                                  |    2 +-
 include/asterisk/autoconfig.h.in              |    6 +
 include/asterisk/compat.h                     |    8 +
 include/asterisk/manager.h                    |   16 +
 main/Makefile                                 |    8 +-
 main/http.c                                   |  318 +-
 main/manager.c                                |   38 +
 main/minimime/.cvsignore                      |    4 +
 main/minimime/Doxyfile                        | 1098 +++++++
 main/minimime/Make.conf                       |    7 +
 main/minimime/Makefile                        |   60 +
 main/minimime/mimeparser.h                    |   67 +
 main/minimime/mimeparser.l                    |  483 +++
 main/minimime/mimeparser.tab.c                | 2341 +++++++++++++++
 main/minimime/mimeparser.tab.h                |  112 +
 main/minimime/mimeparser.y                    |  750 +++++
 main/minimime/mimeparser.yy.c                 | 2622 +++++++++++++++++
 main/minimime/minimime.c                      |  245 ++
 main/minimime/mm-docs/html/bug.html           |   28 +
 main/minimime/mm-docs/html/doxygen.css        |  358 +++
 main/minimime/mm-docs/html/files.html         |   44 +
 main/minimime/mm-docs/html/globals.html       |  198 ++
 main/minimime/mm-docs/html/globals_func.html  |  198 ++
 main/minimime/mm-docs/html/group__codecs.html |  243 ++
 .../mm-docs/html/group__contenttype.html      |  516 ++++
 .../minimime/mm-docs/html/group__context.html |  465 +++
 .../mm-docs/html/group__envelope.html         |  172 ++
 main/minimime/mm-docs/html/group__error.html  |  108 +
 .../mm-docs/html/group__mimepart.html         |  705 +++++
 .../mm-docs/html/group__mimeutil.html         |   22 +
 main/minimime/mm-docs/html/group__param.html  |  273 ++
 main/minimime/mm-docs/html/group__util.html   |  280 ++
 main/minimime/mm-docs/html/index.html         |   21 +
 .../mm-docs/html/mimeparser_8h-source.html    |   42 +
 .../html/mimeparser_8tab_8h-source.html       |  136 +
 main/minimime/mm-docs/html/mm_8h-source.html  |  382 +++
 main/minimime/mm-docs/html/mm__codecs_8c.html |   58 +
 .../mm-docs/html/mm__contenttype_8c.html      |   78 +
 .../minimime/mm-docs/html/mm__context_8c.html |   63 +
 .../mm-docs/html/mm__envelope_8c.html         |   44 +
 main/minimime/mm-docs/html/mm__error_8c.html  |   49 +
 main/minimime/mm-docs/html/mm__header_8c.html |  131 +
 .../mm-docs/html/mm__internal_8h-source.html  |   82 +
 .../mm-docs/html/mm__internal_8h.html         |   78 +
 .../mm-docs/html/mm__mem_8h-source.html       |   56 +
 .../mm-docs/html/mm__mimepart_8c.html         |   79 +
 .../mm-docs/html/mm__mimeutil_8c.html         |   76 +
 main/minimime/mm-docs/html/mm__param_8c.html  |   57 +
 main/minimime/mm-docs/html/mm__parse_8c.html  |  198 ++
 .../mm-docs/html/mm__queue_8h-source.html     |  532 ++++
 main/minimime/mm-docs/html/mm__util_8c.html   |   58 +
 .../mm-docs/html/mm__util_8h-source.html      |   74 +
 main/minimime/mm-docs/html/modules.html       |   30 +
 main/minimime/mm-docs/html/pages.html         |   23 +
 main/minimime/mm-docs/html/tabs.css           |  102 +
 main/minimime/mm-docs/latex/Makefile          |   39 +
 main/minimime/mm-docs/latex/bug.tex           |    9 +
 main/minimime/mm-docs/latex/doxygen.sty       |   78 +
 main/minimime/mm-docs/latex/files.tex         |   21 +
 main/minimime/mm-docs/latex/group__codecs.tex |  119 +
 .../mm-docs/latex/group__contenttype.tex      |  246 ++
 .../minimime/mm-docs/latex/group__context.tex |  214 ++
 .../mm-docs/latex/group__envelope.tex         |   65 +
 main/minimime/mm-docs/latex/group__error.tex  |   43 +
 .../mm-docs/latex/group__mimepart.tex         |  333 +++
 .../mm-docs/latex/group__mimeutil.tex         |    2 +
 main/minimime/mm-docs/latex/group__param.tex  |  127 +
 main/minimime/mm-docs/latex/group__util.tex   |  128 +
 main/minimime/mm-docs/latex/mm__codecs_8c.tex |   41 +
 .../mm-docs/latex/mm__contenttype_8c.tex      |   61 +
 .../minimime/mm-docs/latex/mm__context_8c.tex |   44 +
 .../mm-docs/latex/mm__envelope_8c.tex         |   25 +
 main/minimime/mm-docs/latex/mm__error_8c.tex  |   29 +
 main/minimime/mm-docs/latex/mm__header_8c.tex |   63 +
 .../mm-docs/latex/mm__internal_8h.tex         |   45 +
 .../mm-docs/latex/mm__mimepart_8c.tex         |   69 +
 .../mm-docs/latex/mm__mimeutil_8c.tex         |   50 +
 main/minimime/mm-docs/latex/mm__param_8c.tex  |   38 +
 main/minimime/mm-docs/latex/mm__parse_8c.tex  |   90 +
 main/minimime/mm-docs/latex/mm__util_8c.tex   |   38 +
 main/minimime/mm-docs/latex/modules.tex       |   12 +
 main/minimime/mm-docs/latex/pages.tex         |    5 +
 main/minimime/mm-docs/latex/refman.tex        |   62 +
 main/minimime/mm-docs/refman.pdf              |  Bin 0 -> 261943 bytes
 main/minimime/mm.h                            |  368 +++
 main/minimime/mm_base64.c                     |  210 ++
 main/minimime/mm_codecs.c                     |  250 ++
 main/minimime/mm_contenttype.c                |  757 +++++
 main/minimime/mm_context.c                    |  604 ++++
 main/minimime/mm_envelope.c                   |  269 ++
 main/minimime/mm_error.c                      |  123 +
 main/minimime/mm_header.c                     |  213 ++
 main/minimime/mm_init.c                       |   65 +
 main/minimime/mm_internal.h                   |   65 +
 main/minimime/mm_mem.c                        |  171 ++
 main/minimime/mm_mem.h                        |   32 +
 main/minimime/mm_mimepart.c                   |  657 +++++
 main/minimime/mm_mimeutil.c                   |  136 +
 main/minimime/mm_param.c                      |  215 ++
 main/minimime/mm_parse.c                      |  181 ++
 main/minimime/mm_queue.h                      |  508 ++++
 main/minimime/mm_util.c                       |  412 +++
 main/minimime/mm_util.h                       |   50 +
 main/minimime/mm_warnings.c                   |   99 +
 main/minimime/mytest_files/ast_postdata       |   38 +
 main/minimime/mytest_files/ast_postdata2      |  Bin 0 -> 1737 bytes
 main/minimime/mytest_files/ast_postdata3.gz   |  Bin 0 -> 526318 bytes
 main/minimime/mytest_files/mytest.c           |   71 +
 main/minimime/strlcat.c                       |   70 +
 main/minimime/strlcpy.c                       |   66 +
 main/minimime/sys/CVS/Entries                 |    2 +
 main/minimime/sys/CVS/Repository              |    1 +
 main/minimime/sys/CVS/Root                    |    1 +
 main/minimime/sys/mm_queue.h                  |  503 ++++
 main/minimime/test.sh                         |   54 +
 main/minimime/test/CVS/Entries                |    1 +
 main/minimime/test/CVS/Repository             |    1 +
 main/minimime/test/CVS/Root                   |    1 +
 main/minimime/tests/CVS/Entries               |    4 +
 main/minimime/tests/CVS/Entries.Log           |    1 +
 main/minimime/tests/CVS/Repository            |    1 +
 main/minimime/tests/CVS/Root                  |    1 +
 main/minimime/tests/Makefile                  |   18 +
 main/minimime/tests/create.c                  |  106 +
 main/minimime/tests/messages/CVS/Entries      |    8 +
 main/minimime/tests/messages/CVS/Repository   |    1 +
 main/minimime/tests/messages/CVS/Root         |    1 +
 main/minimime/tests/messages/test1.txt        |   50 +
 main/minimime/tests/messages/test2.txt        |   50 +
 main/minimime/tests/messages/test3.txt        |   12 +
 main/minimime/tests/messages/test4.txt        |  168 ++
 main/minimime/tests/messages/test5.txt        |   44 +
 main/minimime/tests/messages/test6.txt        |   12 +
 main/minimime/tests/messages/test7.txt        |   64 +
 main/minimime/tests/parse.c                   |  231 ++
 main/strcompat.c                              |  128 +
 139 files changed, 23447 insertions(+), 8 deletions(-)
 create mode 100644 main/minimime/.cvsignore
 create mode 100644 main/minimime/Doxyfile
 create mode 100644 main/minimime/Make.conf
 create mode 100644 main/minimime/Makefile
 create mode 100644 main/minimime/mimeparser.h
 create mode 100644 main/minimime/mimeparser.l
 create mode 100644 main/minimime/mimeparser.tab.c
 create mode 100644 main/minimime/mimeparser.tab.h
 create mode 100644 main/minimime/mimeparser.y
 create mode 100644 main/minimime/mimeparser.yy.c
 create mode 100644 main/minimime/minimime.c
 create mode 100644 main/minimime/mm-docs/html/bug.html
 create mode 100644 main/minimime/mm-docs/html/doxygen.css
 create mode 100644 main/minimime/mm-docs/html/files.html
 create mode 100644 main/minimime/mm-docs/html/globals.html
 create mode 100644 main/minimime/mm-docs/html/globals_func.html
 create mode 100644 main/minimime/mm-docs/html/group__codecs.html
 create mode 100644 main/minimime/mm-docs/html/group__contenttype.html
 create mode 100644 main/minimime/mm-docs/html/group__context.html
 create mode 100644 main/minimime/mm-docs/html/group__envelope.html
 create mode 100644 main/minimime/mm-docs/html/group__error.html
 create mode 100644 main/minimime/mm-docs/html/group__mimepart.html
 create mode 100644 main/minimime/mm-docs/html/group__mimeutil.html
 create mode 100644 main/minimime/mm-docs/html/group__param.html
 create mode 100644 main/minimime/mm-docs/html/group__util.html
 create mode 100644 main/minimime/mm-docs/html/index.html
 create mode 100644 main/minimime/mm-docs/html/mimeparser_8h-source.html
 create mode 100644 main/minimime/mm-docs/html/mimeparser_8tab_8h-source.html
 create mode 100644 main/minimime/mm-docs/html/mm_8h-source.html
 create mode 100644 main/minimime/mm-docs/html/mm__codecs_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__contenttype_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__context_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__envelope_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__error_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__header_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__internal_8h-source.html
 create mode 100644 main/minimime/mm-docs/html/mm__internal_8h.html
 create mode 100644 main/minimime/mm-docs/html/mm__mem_8h-source.html
 create mode 100644 main/minimime/mm-docs/html/mm__mimepart_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__mimeutil_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__param_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__parse_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__queue_8h-source.html
 create mode 100644 main/minimime/mm-docs/html/mm__util_8c.html
 create mode 100644 main/minimime/mm-docs/html/mm__util_8h-source.html
 create mode 100644 main/minimime/mm-docs/html/modules.html
 create mode 100644 main/minimime/mm-docs/html/pages.html
 create mode 100644 main/minimime/mm-docs/html/tabs.css
 create mode 100644 main/minimime/mm-docs/latex/Makefile
 create mode 100644 main/minimime/mm-docs/latex/bug.tex
 create mode 100644 main/minimime/mm-docs/latex/doxygen.sty
 create mode 100644 main/minimime/mm-docs/latex/files.tex
 create mode 100644 main/minimime/mm-docs/latex/group__codecs.tex
 create mode 100644 main/minimime/mm-docs/latex/group__contenttype.tex
 create mode 100644 main/minimime/mm-docs/latex/group__context.tex
 create mode 100644 main/minimime/mm-docs/latex/group__envelope.tex
 create mode 100644 main/minimime/mm-docs/latex/group__error.tex
 create mode 100644 main/minimime/mm-docs/latex/group__mimepart.tex
 create mode 100644 main/minimime/mm-docs/latex/group__mimeutil.tex
 create mode 100644 main/minimime/mm-docs/latex/group__param.tex
 create mode 100644 main/minimime/mm-docs/latex/group__util.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__codecs_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__contenttype_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__context_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__envelope_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__error_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__header_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__internal_8h.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__mimepart_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__mimeutil_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__param_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__parse_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/mm__util_8c.tex
 create mode 100644 main/minimime/mm-docs/latex/modules.tex
 create mode 100644 main/minimime/mm-docs/latex/pages.tex
 create mode 100644 main/minimime/mm-docs/latex/refman.tex
 create mode 100644 main/minimime/mm-docs/refman.pdf
 create mode 100644 main/minimime/mm.h
 create mode 100644 main/minimime/mm_base64.c
 create mode 100644 main/minimime/mm_codecs.c
 create mode 100644 main/minimime/mm_contenttype.c
 create mode 100644 main/minimime/mm_context.c
 create mode 100644 main/minimime/mm_envelope.c
 create mode 100644 main/minimime/mm_error.c
 create mode 100644 main/minimime/mm_header.c
 create mode 100644 main/minimime/mm_init.c
 create mode 100644 main/minimime/mm_internal.h
 create mode 100644 main/minimime/mm_mem.c
 create mode 100644 main/minimime/mm_mem.h
 create mode 100644 main/minimime/mm_mimepart.c
 create mode 100644 main/minimime/mm_mimeutil.c
 create mode 100644 main/minimime/mm_param.c
 create mode 100644 main/minimime/mm_parse.c
 create mode 100644 main/minimime/mm_queue.h
 create mode 100644 main/minimime/mm_util.c
 create mode 100644 main/minimime/mm_util.h
 create mode 100644 main/minimime/mm_warnings.c
 create mode 100644 main/minimime/mytest_files/ast_postdata
 create mode 100644 main/minimime/mytest_files/ast_postdata2
 create mode 100644 main/minimime/mytest_files/ast_postdata3.gz
 create mode 100644 main/minimime/mytest_files/mytest.c
 create mode 100644 main/minimime/strlcat.c
 create mode 100644 main/minimime/strlcpy.c
 create mode 100644 main/minimime/sys/CVS/Entries
 create mode 100644 main/minimime/sys/CVS/Repository
 create mode 100644 main/minimime/sys/CVS/Root
 create mode 100644 main/minimime/sys/mm_queue.h
 create mode 100755 main/minimime/test.sh
 create mode 100644 main/minimime/test/CVS/Entries
 create mode 100644 main/minimime/test/CVS/Repository
 create mode 100644 main/minimime/test/CVS/Root
 create mode 100644 main/minimime/tests/CVS/Entries
 create mode 100644 main/minimime/tests/CVS/Entries.Log
 create mode 100644 main/minimime/tests/CVS/Repository
 create mode 100644 main/minimime/tests/CVS/Root
 create mode 100644 main/minimime/tests/Makefile
 create mode 100644 main/minimime/tests/create.c
 create mode 100644 main/minimime/tests/messages/CVS/Entries
 create mode 100644 main/minimime/tests/messages/CVS/Repository
 create mode 100644 main/minimime/tests/messages/CVS/Root
 create mode 100644 main/minimime/tests/messages/test1.txt
 create mode 100644 main/minimime/tests/messages/test2.txt
 create mode 100644 main/minimime/tests/messages/test3.txt
 create mode 100644 main/minimime/tests/messages/test4.txt
 create mode 100644 main/minimime/tests/messages/test5.txt
 create mode 100644 main/minimime/tests/messages/test6.txt
 create mode 100644 main/minimime/tests/messages/test7.txt
 create mode 100644 main/minimime/tests/parse.c

diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules
index d2dafe3294..1c78ebd459 100644
--- a/Makefile.moddir_rules
+++ b/Makefile.moddir_rules
@@ -12,7 +12,9 @@
 #
 
 ifneq ($(findstring MALLOC_DEBUG,$(MENUSELECT_CFLAGS)),)
+ ifeq ($(findstring astmm.h,$(ASTCFLAGS)),)
   ASTCFLAGS+=-include $(ASTTOPDIR)/include/asterisk/astmm.h
+ endif
 endif
 
 ifeq ($(findstring LOADABLE_MODULES,$(MENUSELECT_CFLAGS)),)
diff --git a/configs/http.conf.sample b/configs/http.conf.sample
index 19f96ca9ab..ebd09e79f5 100644
--- a/configs/http.conf.sample
+++ b/configs/http.conf.sample
@@ -48,3 +48,16 @@ bindaddr=127.0.0.1
 ; To produce a certificate you can e.g. use openssl
 ;	openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem
 ;
+;prefix=asterisk
+
+; The post_mappings section maps URLs to real paths on the filesystem.  If a
+; POST is done from within an authenticated manager session to one of the
+; configured POST mappings, then any files in the POST will be placed in the
+; configured directory.
+;
+;[post_mappings]
+;
+; In this example, if the prefix option is set to "asterisk", then using the
+; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/.
+;uploads = /var/lib/asterisk/uploads/
+;
diff --git a/configure b/configure
index 00dcbd3a41..108c6e428b 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac Revision: 58948 .
+# From configure.ac Revision: 59203 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.60.
 #
@@ -16007,7 +16007,9 @@ done
 
 
 
-for ac_func in asprintf atexit bzero dup2 endpwent floor ftruncate getcwd gethostbyname gethostname getloadavg gettimeofday inet_ntoa isascii localtime_r memchr memmove memset mkdir munmap pow putenv re_comp regcomp rint select setenv socket sqrt strcasecmp strcasestr strchr strcspn strdup strerror strncasecmp strndup strnlen strrchr strsep strspn strstr strtol strtoq unsetenv utime vasprintf
+
+
+for ac_func in asprintf atexit bzero dup2 endpwent floor ftruncate getcwd gethostbyname gethostname getloadavg gettimeofday inet_ntoa isascii localtime_r memchr memmove memset mkdir munmap pow putenv re_comp regcomp rint select setenv socket sqrt strcasecmp strcasestr strchr strcspn strdup strerror strlcat strlcpy strncasecmp strndup strnlen strrchr strsep strspn strstr strtol strtoq unsetenv utime vasprintf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 { echo "$as_me:$LINENO: checking for $ac_func" >&5
diff --git a/configure.ac b/configure.ac
index ddc70ed390..fe23adec17 100644
--- a/configure.ac
+++ b/configure.ac
@@ -275,7 +275,7 @@ AC_FUNC_STRNLEN
 AC_FUNC_STRTOD
 AC_FUNC_UTIME_NULL
 AC_FUNC_VPRINTF
-AC_CHECK_FUNCS([asprintf atexit bzero dup2 endpwent floor ftruncate getcwd gethostbyname gethostname getloadavg gettimeofday inet_ntoa isascii localtime_r memchr memmove memset mkdir munmap pow putenv re_comp regcomp rint select setenv socket sqrt strcasecmp strcasestr strchr strcspn strdup strerror strncasecmp strndup strnlen strrchr strsep strspn strstr strtol strtoq unsetenv utime vasprintf])
+AC_CHECK_FUNCS([asprintf atexit bzero dup2 endpwent floor ftruncate getcwd gethostbyname gethostname getloadavg gettimeofday inet_ntoa isascii localtime_r memchr memmove memset mkdir munmap pow putenv re_comp regcomp rint select setenv socket sqrt strcasecmp strcasestr strchr strcspn strdup strerror strlcat strlcpy strncasecmp strndup strnlen strrchr strsep strspn strstr strtol strtoq unsetenv utime vasprintf])
 
 # https support (in main/http.c) uses funopen on BSD systems,
 # fopencookie on linux
diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in
index e450ba93fe..ef6a76a490 100644
--- a/include/asterisk/autoconfig.h.in
+++ b/include/asterisk/autoconfig.h.in
@@ -462,6 +462,12 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
+/* Define to 1 if you have the `strlcat' function. */
+#undef HAVE_STRLCAT
+
+/* Define to 1 if you have the `strlcpy' function. */
+#undef HAVE_STRLCPY
+
 /* Define to 1 if you have the `strncasecmp' function. */
 #undef HAVE_STRNCASECMP
 
diff --git a/include/asterisk/compat.h b/include/asterisk/compat.h
index e02d3c7c13..838e24e472 100644
--- a/include/asterisk/compat.h
+++ b/include/asterisk/compat.h
@@ -61,6 +61,14 @@ int unsetenv(const char *name);
 int vasprintf(char **strp, const char *fmt, va_list ap);
 #endif
 
+#ifndef HAVE_STRLCAT
+size_t strlcat(char *dst, const char *src, size_t siz);
+#endif
+
+#ifndef HAVE_STRLCPY
+size_t strlcpy(char *dst, const char *src, size_t siz);
+#endif
+
 #ifdef SOLARIS
 #define __BEGIN_DECLS
 #define __END_DECLS
diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h
index 1cf03b5b56..8efcfba185 100644
--- a/include/asterisk/manager.h
+++ b/include/asterisk/manager.h
@@ -134,6 +134,22 @@ int ast_manager_register2(
 */
 int ast_manager_unregister( char *action );
 
+/*! 
+ * \brief Verify a session's read permissions against a permission mask.  
+ * \param ident session identity
+ * \param perm permission mask to verify
+ * \returns 1 if the session has the permission mask capabilities, otherwise 0
+ */
+int astman_verify_session_readpermissions(unsigned long ident, int perm);
+
+/*!
+ * \brief Verify a session's write permissions against a permission mask.  
+ * \param ident session identity
+ * \param perm permission mask to verify
+ * \returns 1 if the session has the permission mask capabilities, otherwise 0
+ */
+int astman_verify_session_writepermissions(unsigned long ident, int perm);
+
 /*! External routines may send asterisk manager events this way */
 /*! 	\param category	Event category, matches manager authorization
 	\param event	Event name
diff --git a/main/Makefile b/main/Makefile
index 9e0f6f2356..f552fabda4 100644
--- a/main/Makefile
+++ b/main/Makefile
@@ -133,7 +133,10 @@ else
   H323LDLIBS=
 endif
 
-asterisk: $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS)
+minimime/libmmime.a:
+	@cd minimime && $(MAKE) libmmime.a
+
+asterisk: $(OBJS) editline/libedit.a db1-ast/libdb1.a minimime/libmmime.a $(AST_EMBED_LDSCRIPTS)
 	@$(CC) -c -o buildinfo.o $(ASTCFLAGS) buildinfo.c
 	$(ECHO_PREFIX) echo "   [LD] $^ -> $@"
 	$(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $(H323LDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS)
@@ -145,3 +148,6 @@ clean::
 	@if [ -f editline/Makefile ]; then $(MAKE) -C editline distclean ; fi
 	@$(MAKE) -C db1-ast clean
 	@$(MAKE) -C stdtime clean
+	@$(MAKE) -C minimime clean
+
+.PHONY: minimime/libmmime.a
diff --git a/main/http.c b/main/http.c
index 4fbe9bded3..0dee18faaa 100644
--- a/main/http.c
+++ b/main/http.c
@@ -21,8 +21,9 @@
  * \brief http server for AMI access
  *
  * \author Mark Spencer <markster@digium.com>
- * This program implements a tiny http server supporting the "get" method
- * only and was inspired by micro-httpd by Jef Poskanzer 
+ *
+ * This program implements a tiny http server
+ * and was inspired by micro-httpd by Jef Poskanzer 
  * 
  * \ref AstHTTP - AMI over the http protocol
  */
@@ -47,6 +48,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include <fcntl.h>
 #include <pthread.h>
 
+#include "minimime/mm.h"
+
 #include "asterisk/cli.h"
 #include "asterisk/http.h"
 #include "asterisk/utils.h"
@@ -55,6 +58,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/config.h"
 #include "asterisk/stringfields.h"
 #include "asterisk/version.h"
+#include "asterisk/manager.h"
 
 #define MAX_PREFIX 80
 #define DEFAULT_PREFIX "/asterisk"
@@ -93,6 +97,14 @@ static struct server_args https_desc = {
 
 static AST_RWLIST_HEAD_STATIC(uris, ast_http_uri);	/*!< list of supported handlers */
 
+struct ast_http_post_mapping {
+	AST_RWLIST_ENTRY(ast_http_post_mapping) entry;
+	char *from;
+	char *to;
+};
+
+static AST_RWLIST_HEAD_STATIC(post_mappings, ast_http_post_mapping);
+
 /* all valid URIs must be prepended by the string in prefix. */
 static char prefix[MAX_PREFIX];
 static int enablestatic;
@@ -329,6 +341,225 @@ void ast_http_uri_unlink(struct ast_http_uri *urih)
 	AST_RWLIST_UNLOCK(&uris);
 }
 
+/*! \note This assumes that the post_mappings list is locked */
+static struct ast_http_post_mapping *find_post_mapping(const char *uri)
+{
+	struct ast_http_post_mapping *post_map;
+
+	if (!ast_strlen_zero(prefix) && strncmp(prefix, uri, strlen(prefix))) {
+		ast_log(LOG_DEBUG, "URI %s does not have prefix %s\n", uri, prefix);
+		return NULL;
+	}
+
+	uri += strlen(prefix);
+	if (*uri == '/')
+		uri++;
+	
+	AST_RWLIST_TRAVERSE(&post_mappings, post_map, entry) {
+		if (!strcmp(uri, post_map->from))
+			return post_map;
+	}
+
+	return NULL;
+}
+
+static int get_filename(struct mm_mimepart *part, char *fn, size_t fn_len)
+{
+	const char *filename;
+
+	filename = mm_content_getdispositionparambyname(part->type, "filename");
+
+	if (ast_strlen_zero(filename))
+		return -1;
+
+	ast_copy_string(fn, filename, fn_len);
+
+	return 0;
+}
+
+static void post_raw(struct mm_mimepart *part, const char *post_dir, const char *fn)
+{
+	char filename[PATH_MAX];
+	FILE *f;
+	const char *body;
+	size_t body_len;
+
+	snprintf(filename, sizeof(filename), "%s/%s", post_dir, fn);
+
+	if (option_debug)
+		ast_log(LOG_DEBUG, "Posting raw data to %s\n", filename);
+
+	if (!(f = fopen(filename, "w"))) {
+		ast_log(LOG_WARNING, "Unable to open %s for writing file from a POST!\n", filename);
+		return;
+	}
+
+	if (!(body = mm_mimepart_getbody(part, 0))) {
+		if (option_debug)
+			ast_log(LOG_DEBUG, "Couldn't get the mimepart body\n");
+		fclose(f);
+		return;
+	}
+	body_len = mm_mimepart_getlength(part);
+
+	if (option_debug)
+		ast_log(LOG_DEBUG, "Body length is %ld\n", body_len);
+
+	fwrite(body, 1, body_len, f);
+
+	fclose(f);
+}
+
+static struct ast_str *handle_post(struct server_instance *ser, char *uri, 
+	int *status, char **title, int *contentlength, struct ast_variable *headers,
+	struct ast_variable *cookies)
+{
+	char buf;
+	FILE *f;
+	size_t res;
+	struct ast_variable *var;
+	int content_len = 0;
+	MM_CTX *ctx;
+	int mm_res, i;
+	struct ast_http_post_mapping *post_map;
+	const char *post_dir;
+	unsigned long ident = 0;
+
+	for (var = cookies; var; var = var->next) {
+		if (strcasecmp(var->name, "mansession_id"))
+			continue;
+
+		if (sscanf(var->value, "%lx", &ident) != 1) {
+			*status = 400;
+			*title = ast_strdup("Bad Request");
+			return ast_http_error(400, "Bad Request", NULL, "The was an error parsing the request.");
+		}
+
+		if (!astman_verify_session_writepermissions(ident, EVENT_FLAG_CONFIG)) {
+			*status = 401;
+			*title = ast_strdup("Unauthorized");
+			return ast_http_error(401, "Unauthorized", NULL, "You are not authorized to make this request.");
+		}
+
+		break;
+	}
+	if (!var) {
+		*status = 401;
+		*title = ast_strdup("Unauthorized");
+		return ast_http_error(401, "Unauthorized", NULL, "You are not authorized to make this request.");
+	}
+
+	if (!(f = tmpfile()))
+		return NULL;
+
+	for (var = headers; var; var = var->next) {
+		if (!strcasecmp(var->name, "Content-Length")) {
+			if ((sscanf(var->value, "%u", &content_len)) != 1) {
+				ast_log(LOG_ERROR, "Invalid Content-Length in POST request!\n");
+				fclose(f);
+				return NULL;
+			}
+			if (option_debug)
+				ast_log(LOG_DEBUG, "Got a Content-Length of %d\n", content_len);
+		} else if (!strcasecmp(var->name, "Content-Type"))
+			fprintf(f, "Content-Type: %s\r\n\r\n", var->value);
+	}
+
+	while ((res = fread(&buf, 1, 1, ser->f))) {
+		fwrite(&buf, 1, 1, f);
+		content_len--;
+		if (!content_len)
+			break;
+	}
+
+	if (fseek(f, SEEK_SET, 0)) {
+		if (option_debug)
+			ast_log(LOG_DEBUG, "Failed to seek temp file back to beginning.\n");
+		fclose(f);
+		return NULL;
+	}
+
+	AST_RWLIST_RDLOCK(&post_mappings);
+	if (!(post_map = find_post_mapping(uri))) {
+		if (option_debug)
+			ast_log(LOG_DEBUG, "%s is not a valid URI for POST\n", uri);
+		AST_RWLIST_UNLOCK(&post_mappings);
+		fclose(f);
+		*status = 404;
+		*title = ast_strdup("Not Found");
+		return ast_http_error(404, "Not Found", NULL, "The requested URL was not found on this server.");
+	}
+	post_dir = ast_strdupa(post_map->to);
+	post_map = NULL;
+	AST_RWLIST_UNLOCK(&post_mappings);
+
+	if (option_debug)
+		ast_log(LOG_DEBUG, "Going to post files to dir %s\n", post_dir);
+
+	if (!(ctx = mm_context_new())) {
+		fclose(f);
+		return NULL;
+	}
+
+	mm_res = mm_parse_fileptr(ctx, f, MM_PARSE_LOOSE, 0);
+	fclose(f);
+	if (mm_res == -1) {
+		ast_log(LOG_ERROR, "Error parsing MIME data\n");
+		mm_context_free(ctx);
+		*status = 400;
+		*title = ast_strdup("Bad Request");
+		return ast_http_error(400, "Bad Request", NULL, "The was an error parsing the request.");
+	}
+
+	mm_res = mm_context_countparts(ctx);
+	if (!mm_res) {
+		ast_log(LOG_ERROR, "Invalid MIME data, found no parts!\n");
+		mm_context_free(ctx);
+		*status = 400;
+		*title = ast_strdup("Bad Request");
+		return ast_http_error(400, "Bad Request", NULL, "The was an error parsing the request.");
+	}
+
+	if (option_debug) {
+		if (mm_context_iscomposite(ctx))
+			ast_log(LOG_DEBUG, "Found %d MIME parts\n", mm_res - 1);
+		else
+			ast_log(LOG_DEBUG, "We have a flat (not multi-part) message\n");
+	}
+
+	for (i = 1; i < mm_res; i++) {
+		struct mm_mimepart *part;
+		char fn[PATH_MAX];
+
+		if (!(part = mm_context_getpart(ctx, i))) {
+			if (option_debug)
+				ast_log(LOG_DEBUG, "Failed to get mime part num %d\n", i);
+			continue;
+		}
+
+		if (get_filename(part, fn, sizeof(fn))) {
+			if (option_debug)
+				ast_log(LOG_DEBUG, "Failed to retrieve a filename for part num %d\n", i);
+			continue;
+		}
+	
+		if (!part->type) {
+			if (option_debug)
+				ast_log(LOG_DEBUG, "This part has no content struct?\n");
+			continue;
+		}
+
+		/* XXX This assumes the MIME part body is not encoded! */
+		post_raw(part, post_dir, fn);
+	}
+
+	mm_context_free(ctx);
+
+	*status = 200;
+	*title = ast_strdup("OK");
+	return ast_http_error(200, "OK", NULL, "File successfully uploaded.");
+}
+
 static struct ast_str *handle_uri(struct sockaddr_in *sin, char *uri, int *status, char **title, int *contentlength, struct ast_variable **cookies)
 {
 	char *c;
@@ -520,7 +751,7 @@ static void *httpd_helper_thread(void *data)
 	char buf[4096];
 	char cookie[4096];
 	struct server_instance *ser = data;
-	struct ast_variable *var, *prev=NULL, *vars=NULL;
+	struct ast_variable *var, *prev=NULL, *vars=NULL, *headers = NULL;
 	char *uri, *title=NULL;
 	int status = 200, contentlength = 0;
 	struct ast_str *out = NULL;
@@ -549,8 +780,23 @@ static void *httpd_helper_thread(void *data)
 		ast_trim_blanks(cookie);
 		if (ast_strlen_zero(cookie))
 			break;
-		if (strncasecmp(cookie, "Cookie: ", 8))
+		if (strncasecmp(cookie, "Cookie: ", 8)) {
+			char *name, *value;
+
+			value = ast_strdupa(cookie);
+			name = strsep(&value, ":");
+			if (!value)
+				continue;
+			value = ast_skip_blanks(value);
+			if (ast_strlen_zero(value))
+				continue;
+			var = ast_variable_new(name, value);
+			if (!var)
+				continue;
+			var->next = headers;
+			headers = var;
 			continue;
+		}
 
 		/* TODO - The cookie parsing code below seems to work   
 		   in IE6 and FireFox 1.5.  However, it is not entirely 
@@ -596,6 +842,8 @@ static void *httpd_helper_thread(void *data)
 
 	if (!*uri)
 		out = ast_http_error(400, "Bad Request", NULL, "Invalid Request");
+	else if (!strcasecmp(buf, "post")) 
+		out = handle_post(ser, uri, &status, &title, &contentlength, headers, vars);
 	else if (strcasecmp(buf, "get")) 
 		out = ast_http_error(501, "Not Implemented", NULL,
 			"Attempt to use unimplemented / unsupported method");
@@ -851,6 +1099,47 @@ static void add_redirect(const char *value)
 	AST_RWLIST_UNLOCK(&uri_redirects);
 }
 
+static void destroy_post_mapping(struct ast_http_post_mapping *post_map)
+{
+	if (post_map->from)
+		free(post_map->from);
+	if (post_map->to)
+		free(post_map->to);
+	free(post_map);
+}
+
+static void destroy_post_mappings(void)
+{
+	struct ast_http_post_mapping *post_map;
+
+	AST_RWLIST_WRLOCK(&post_mappings);
+	while ((post_map = AST_RWLIST_REMOVE_HEAD(&post_mappings, entry)))
+		destroy_post_mapping(post_map);
+	AST_RWLIST_UNLOCK(&post_mappings);
+}
+
+static void add_post_mapping(const char *from, const char *to)
+{
+	struct ast_http_post_mapping *post_map;
+
+	if (!(post_map = ast_calloc(1, sizeof(*post_map))))
+		return;
+
+	if (!(post_map->from = ast_strdup(from))) {
+		destroy_post_mapping(post_map);
+		return;
+	}
+
+	if (!(post_map->to = ast_strdup(to))) {
+		destroy_post_mapping(post_map);
+		return;
+	}
+
+	AST_RWLIST_WRLOCK(&post_mappings);
+	AST_RWLIST_INSERT_TAIL(&post_mappings, post_map, entry);
+	AST_RWLIST_UNLOCK(&post_mappings);
+}
+
 static int __ast_http_load(int reload)
 {
 	struct ast_config *cfg;
@@ -869,6 +1158,7 @@ static int __ast_http_load(int reload)
 
 	memset(&https_desc.sin, 0, sizeof(https_desc.sin));
 	https_desc.sin.sin_port = htons(8089);
+
 	strcpy(newprefix, DEFAULT_PREFIX);
 
 	http_tls_cfg.enabled = 0;
@@ -884,6 +1174,8 @@ static int __ast_http_load(int reload)
 		free(redirect);
 	AST_RWLIST_UNLOCK(&uri_redirects);
 
+	destroy_post_mappings();
+
 	cfg = ast_config_load("http.conf");
 	if (cfg) {
 		v = ast_variable_browse(cfg, "general");
@@ -931,6 +1223,10 @@ static int __ast_http_load(int reload)
 				ast_log(LOG_WARNING, "Ignoring unknown option '%s' in http.conf\n", v->name);
 			}
 		}
+
+		for (v = ast_variable_browse(cfg, "post_mappings"); v; v = v->next)
+			add_post_mapping(v->name, v->value);
+
 		ast_config_destroy(cfg);
 	}
 	if (!have_sslbindaddr)
@@ -943,6 +1239,7 @@ static int __ast_http_load(int reload)
 	server_start(&http_desc);
 	if (ssl_setup(https_desc.tls_cfg))
 		server_start(&https_desc);
+
 	return 0;
 }
 
@@ -950,6 +1247,7 @@ static int handle_show_http(int fd, int argc, char *argv[])
 {
 	struct ast_http_uri *urih;
 	struct http_uri_redirect *redirect;
+	struct ast_http_post_mapping *post_map;
 
 	if (argc != 3)
 		return RESULT_SHOWUSAGE;
@@ -986,6 +1284,14 @@ static int handle_show_http(int fd, int argc, char *argv[])
 		ast_cli(fd, "  None.\n");
 	AST_RWLIST_UNLOCK(&uri_redirects);
 
+
+	ast_cli(fd, "\nPOST mappings:\n");
+	AST_RWLIST_RDLOCK(&post_mappings);
+	AST_LIST_TRAVERSE(&post_mappings, post_map, entry)
+		ast_cli(fd, "%s/%s => %s\n", prefix, post_map->from, post_map->to);
+	ast_cli(fd, "%s\n", AST_LIST_EMPTY(&post_mappings) ? "None.\n" : "");
+	AST_RWLIST_UNLOCK(&post_mappings);
+
 	return RESULT_SUCCESS;
 }
 
@@ -1006,8 +1312,12 @@ static struct ast_cli_entry cli_http[] = {
 
 int ast_http_init(void)
 {
+	mm_library_init();
+	mm_codec_registerdefaultcodecs();
+
 	ast_http_uri_link(&statusuri);
 	ast_http_uri_link(&staticuri);
 	ast_cli_register_multiple(cli_http, sizeof(cli_http) / sizeof(struct ast_cli_entry));
+
 	return __ast_http_load(0);
 }
diff --git a/main/manager.c b/main/manager.c
index 116b77a37b..891df4c827 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -2592,6 +2592,44 @@ static struct mansession *find_session(unsigned long ident)
 	return s;
 }
 
+int astman_verify_session_readpermissions(unsigned long ident, int perm)
+{
+	int result = 0;
+	struct mansession *s;
+
+	AST_LIST_LOCK(&sessions);
+	AST_LIST_TRAVERSE(&sessions, s, list) {
+		ast_mutex_lock(&s->__lock);
+		if ((s->managerid == ident) && (s->readperm & perm)) {
+			result = 1;
+			ast_mutex_unlock(&s->__lock);
+			break;
+		}
+		ast_mutex_unlock(&s->__lock);
+	}
+	AST_LIST_UNLOCK(&sessions);
+	return result;
+}
+
+int astman_verify_session_writepermissions(unsigned long ident, int perm)
+{
+	int result = 0;
+	struct mansession *s;
+
+	AST_LIST_LOCK(&sessions);
+	AST_LIST_TRAVERSE(&sessions, s, list) {
+		ast_mutex_lock(&s->__lock);
+		if ((s->managerid == ident) && (s->writeperm & perm)) {
+			result = 1;
+			ast_mutex_unlock(&s->__lock);
+			break;
+		}
+		ast_mutex_unlock(&s->__lock);
+	}
+	AST_LIST_UNLOCK(&sessions);
+	return result;
+}
+
 /*
  * convert to xml with various conversion:
  * mode & 1	-> lowercase;
diff --git a/main/minimime/.cvsignore b/main/minimime/.cvsignore
new file mode 100644
index 0000000000..f5e1bf873b
--- /dev/null
+++ b/main/minimime/.cvsignore
@@ -0,0 +1,4 @@
+minimime
+*.so.*
+*.o
+*.swp
diff --git a/main/minimime/Doxyfile b/main/minimime/Doxyfile
new file mode 100644
index 0000000000..5ad5e11ec7
--- /dev/null
+++ b/main/minimime/Doxyfile
@@ -0,0 +1,1098 @@
+# Doxyfile 1.3.5
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = MiniMIME
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = mm-docs
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, 
+# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en 
+# (Japanese with English messages), Korean, Norwegian, Polish, Portuguese, 
+# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE        = English
+
+# This tag can be used to specify the encoding used in the generated output. 
+# The encoding is not always determined by the language that is chosen, 
+# but also whether or not the output is meant for Windows or non-Windows users. 
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
+# forces the Windows encoding (this is the default for the Windows binary), 
+# whereas setting the tag to NO uses a Unix-style encoding (the default for 
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING   = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is used 
+# as the annotated text. Otherwise, the brief description is used as-is. If left 
+# blank, the following values are used ("$name" is automatically replaced with the 
+# name of the entity): "The $name class" "The $name widget" "The $name file" 
+# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = 
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
+# members of a class in the documentation of that class as if those members were 
+# ordinary class members. Constructors, destructors and assignment operators of 
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user-defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. It is allowed to use relative paths in the argument list.
+
+STRIP_FROM_PATH        = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments will behave just like the Qt-style comments (thus requiring an 
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+# comments) as a brief description. This used to be the default behaviour. 
+# The new default is to treat a multi-line C++ comment block as a detailed 
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member 
+# documentation.
+
+DETAILS_AT_TOP         = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user-defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance, some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 
+# only. Doxygen will then generate output that is more tailored for Java. 
+# For instance, namespaces will be presented as packages, qualified scopes 
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these classes will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
+# friend (class|struct|union) declarations. 
+# If set to NO (the default) these declarations will be included in the 
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
+# documentation blocks found inside the body of a function. 
+# If set to NO (the default) these blocks will be appended to the 
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower-case letters. If set to YES upper-case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put a list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
+# disable (NO) the deprecated list. This list is created by putting 
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consists of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
+# potential errors in the documentation, such as not documenting some 
+# parameters in a documented function, or documenting parameters that 
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+INPUT                  = 
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
+# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc
+
+FILE_PATTERNS          = 
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories 
+# that are symbolic links (a Unix filesystem feature) are excluded from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories.
+
+EXCLUDE_PATTERNS       = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.
+
+INPUT_FILTER           = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+# Note: To get rid of all source code in the generated output, make sure also 
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet. Note that doxygen will try to copy 
+# the style sheet file to the HTML output directory, so don't put your own 
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
+# be used to specify the file name of the resulting .chm file. You 
+# can add a path in front of the file if the result should not be 
+# written to the html output directory.
+
+CHM_FILE               = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
+# be used to specify the location (absolute path including file name) of 
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+# generate index for LaTeX. If left blank `makeindex' will be used as the 
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+# include the index chapters (such as File Index, Compound Index, etc.) 
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimized for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assignments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_SCHEMA             = 
+
+# The XML_DTD tag can be used to specify an XML DTD, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+# dump the program listings (including syntax highlighting 
+# and cross-referencing information) to the XML output. Note that 
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
+# generate a Perl module file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
+# nicely formatted so it can be parsed by a human reader.  This is useful 
+# if you want to understand what is going on.  On the other hand, if this 
+# tag is set to NO the size of the Perl module output will be much smaller 
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file 
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
+# This is useful so different doxyrules.make files included by the same 
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line, have an all uppercase name, and do not end with a semicolon. Such 
+# function macros are typically used for boiler-plate code, and will confuse the 
+# parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles. 
+# Optionally an initial location of the external documentation 
+# can be added for each tagfile. The format of a tag file without 
+# this location is as follows: 
+#   TAGFILES = file1 file2 ... 
+# Adding location for the tag files is done as follows: 
+#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+# where "loc1" and "loc2" can be relative or absolute paths or 
+# URLs. If a location is present for each tag, the installdox tool 
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen 
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
+# in the modules index. If set to NO, only the current project's groups will 
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. Note that this 
+# option is superseded by the HAVE_DOT option below. This is only a fallback. It is 
+# recommended to install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a call dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable call graphs for selected 
+# functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH               = 
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+# graphs generated by dot. A depth value of 3 means that only nodes reachable 
+# from the root by following a path via at most 3 edges will be shown. Nodes that 
+# lay further from the root node will be omitted. Note that setting this option to 
+# 1 or 2 may greatly reduce the computation time needed for large code bases. Also 
+# note that a graph may be further truncated if the graph's image dimensions are 
+# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). 
+# If 0 is used for the depth value (the default), the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermediate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
diff --git a/main/minimime/Make.conf b/main/minimime/Make.conf
new file mode 100644
index 0000000000..de149932a0
--- /dev/null
+++ b/main/minimime/Make.conf
@@ -0,0 +1,7 @@
+CC=gcc
+PREFIX=/usr
+LIBNAME=libmmime.so.0.0
+HAVE_STRLCAT=
+HAVE_STRLCPY=
+INSTALL=/usr/bin/install
+HAVE_DEBUG=1
diff --git a/main/minimime/Makefile b/main/minimime/Makefile
new file mode 100644
index 0000000000..4351afd2f0
--- /dev/null
+++ b/main/minimime/Makefile
@@ -0,0 +1,60 @@
+#
+# Asterisk -- A telephony toolkit for Linux.
+# 
+# Makefile for resource modules
+#
+# Copyright (C) 2007, Digium, Inc.
+#
+# This program is free software, distributed under the terms of
+# the GNU General Public License
+#
+
+-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
+
+include $(ASTTOPDIR)/Makefile.moddir_rules
+
+LIBMMIME:=libmmime.a
+MM_SRCS= \
+	mimeparser.tab.c \
+	mimeparser.yy.c \
+	mm_init.c \
+	mm_base64.c \
+	mm_codecs.c \
+	mm_contenttype.c \
+	mm_context.c \
+	mm_envelope.c \
+	mm_error.c \
+	mm_header.c \
+	mm_mem.c \
+	mm_mimepart.c \
+	mm_mimeutil.c \
+	mm_param.c \
+	mm_parse.c \
+	mm_util.c
+
+MM_OBJS:=$(MM_SRCS:%.c=%.o)
+MM_HDRS:=mm.h mm_util.h
+
+ASTCFLAGS:=$(filter-out -Werror -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes,$(ASTCFLAGS))
+
+all: $(LIBMMIME)
+
+$(LIBMMIME): $(MM_OBJS)
+	$(ECHO_PREFIX) echo "   [AR] $^ -> $@"
+	$(CMD_PREFIX) $(AR) cr $@ $^
+	$(CMD_PREFIX) $(RANLIB) $@
+
+#mimeparser.yy.c: mimeparser.l
+#	flex -Pmimeparser_yy -omimeparser.yy.c mimeparser.l
+
+#mimeparser.tab.c: mimeparser.y
+#	bison -d -pmimeparser_yy -omimeparser.tab.c mimeparser.y
+
+clean::
+	rm -f $(LIBMMIME) *.o
+
+.PHONY: clean all
+
+ifneq ($(wildcard .*.d),)
+   include .*.d
+endif
diff --git a/main/minimime/mimeparser.h b/main/minimime/mimeparser.h
new file mode 100644
index 0000000000..3d8da816f7
--- /dev/null
+++ b/main/minimime/mimeparser.h
@@ -0,0 +1,67 @@
+#ifndef _MIMEPARSER_H_INCLUDED
+#define _MIMEPARSER_H_INCLUDED
+
+#include "mm.h"
+
+struct s_position
+{
+	size_t opaque_start;
+	size_t start;
+	size_t end;
+};
+
+struct lexer_state
+{
+	int header_state;
+	int lineno;
+	size_t current_pos;
+	int condition;
+
+	int is_envelope;
+
+	size_t message_len;
+	size_t buffer_length;
+
+	/* temporary marker variables */
+	size_t body_opaque_start;
+	size_t body_start;
+	size_t body_end;
+	size_t preamble_start;
+	size_t preamble_end;
+	size_t postamble_start;
+	size_t postamble_end;
+
+	char *boundary_string;
+	char *endboundary_string;
+	char *message_buffer;
+};
+
+
+struct parser_state
+{
+	MM_CTX *ctx;
+	struct mm_mimepart *envelope;
+	struct mm_mimepart *temppart;
+	struct mm_mimepart *current_mimepart;
+	struct mm_content *ctype;
+	int parsemode;
+	int have_contenttype;
+	int debug;
+	int mime_parts;
+	struct lexer_state lstate;
+};
+
+
+#include "mimeparser.tab.h"
+
+/**
+ * Prototypes for functions used by the parser routines
+ */
+int 	count_lines(char *);
+int 	dprintf2(struct parser_state *, const char *, ...);
+int 	mimeparser_yyparse(struct parser_state *, void *);
+int 	mimeparser_yylex(YYSTYPE *, void *);
+int	mimeparser_yyerror(struct parser_state *, void *, const char *);
+
+
+#endif /* ! _MIMEPARSER_H_INCLUDED */
diff --git a/main/minimime/mimeparser.l b/main/minimime/mimeparser.l
new file mode 100644
index 0000000000..d45295f131
--- /dev/null
+++ b/main/minimime/mimeparser.l
@@ -0,0 +1,483 @@
+%{
+/*
+ * Copyright (c) 2004 Jann Fischer. 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.
+ * 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. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ */
+
+/**
+ * This is a lexer file for parsing MIME compatible messages. It is intended
+ * to satisfy at least RFC 2045 (Format of Internet Message Bodies). It still
+ * has quite a few problems:
+ *
+ *	- The parsing could probably be done in a more elegant way
+ *	- I don't know what performance impact REJECT has on the parser
+ */
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+
+#include "mimeparser.h"
+#include "mimeparser.tab.h"
+
+#define NAMEOF(v) #v
+/* BC() is a debug wrapper for lex' BEGIN() macro */
+#define BC(x) do { \
+	struct lexer_state *lstate = yyget_extra(yyscanner); \
+	BEGIN(x); \
+	lstate->condition = x; \
+} while(0);
+
+#define ZERO(x) memset(x, '\0', sizeof(x))
+
+#define PREALLOC_BUFFER	100000
+#undef YY_BUF_SIZE
+#define YY_BUF_SIZE 65536
+
+enum header_states
+{
+	STATE_MAIL = 0,
+	STATE_CTYPE,
+	STATE_CDISP,
+	STATE_CENC,
+	STATE_MIME
+};
+
+
+
+%}
+
+%option reentrant
+%option yylineno
+%option bison-bridge
+
+%s headers
+%s header
+%s headervalue
+%s tspecialvalue
+%s comment
+%s body
+%s postamble
+%s preamble
+%s boundary
+%s endboundary
+%s endoffile
+
+STRING	[a-zA-Z0-9\-\.\_]
+TSPECIAL [a-zA-Z0-9)(<>@,;:/\-.=_\+'? ]
+TSPECIAL_LITE [a-zA-Z0-9)(<>@,-._+'?\[\]]
+
+%%
+
+<INITIAL,headers>^[a-zA-Z]+[a-zA-Z0-9\-\_]* {
+	yylval_param->string=strdup(yytext); 
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+	BC(header);
+
+	/* Depending on what header we are processing, we enter a different
+	 * state and return a different value.
+	 */
+	if (!strcasecmp(yytext, "Content-Type")) {
+		lstate->header_state = STATE_CTYPE;
+		return CONTENTTYPE_HEADER;
+	} else if (!strcasecmp(yytext, "Content-Transfer-Encoding")) {
+		lstate->header_state = STATE_CENC;
+		return CONTENTENCODING_HEADER;
+	} else if (!strcasecmp(yytext, "Content-Disposition")) {
+		lstate->header_state = STATE_CDISP;
+		return CONTENTDISPOSITION_HEADER;
+	} else if (!strcasecmp(yytext, "MIME-Version")) {
+		lstate->header_state = STATE_MAIL;
+		return MIMEVERSION_HEADER;
+	} else {
+		lstate->header_state = STATE_MAIL;
+		return MAIL_HEADER;
+	}
+}
+
+<INITIAL,headers>. {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	/* dprintf2("Unknown header char: %c\n", *yytext); */
+	lstate->current_pos += yyleng;
+	return ANY;
+}
+
+<headers>^(\r\n|\n) {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->lineno++; 
+
+	lstate->current_pos += yyleng;
+
+	/* This marks the end of headers. Depending on whether we are in the
+	 * envelope currently we need to parse either a body or the preamble
+	 * now.
+	 */
+	if (lstate->is_envelope == 0 || lstate->boundary_string == NULL) {
+		BC(body);
+		lstate->body_start = lstate->current_pos;
+	} else {
+		lstate->is_envelope = 0;
+		lstate->preamble_start = lstate->current_pos;
+		BC(preamble);
+	}	
+
+	return ENDOFHEADERS;
+}
+
+<header>\: {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	BC(headervalue); 
+	lstate->current_pos += yyleng;
+	return COLON;
+}	
+
+<header>(\r\n|\n) {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	BC(headers);
+	/* dprintf2("Invalid header, returning EOL\n"); */
+	lstate->current_pos += yyleng;
+	return EOL;
+}	
+
+<headervalue>(\n|\r\n)[\ \t]+	{
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+}
+
+<headervalue>.+|(.+(\n|\r\n)[\ \t]+.+)+ {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	if (lstate->header_state != STATE_MAIL && lstate->header_state != STATE_CENC) {
+		REJECT;
+	}
+	lstate->current_pos += yyleng;
+	while (*yytext && isspace(*yytext)) yytext++;
+	/* Do we actually have a header value? */
+	if (*yytext == '\0') {
+		yylval_param->string = strdup("");
+	} else {
+		yylval_param->string=strdup(yytext); 
+		lstate->lineno += count_lines(yytext);
+	}	
+	return WORD;
+}
+
+<headervalue,tspecialvalue>(\r\n|\n) {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	/* marks the end of one header line */
+	lstate->lineno++;
+	BC(headers);
+	lstate->current_pos += yyleng;
+	return EOL;
+}
+
+<headervalue>;|;(\r\n|\n)[\ \t]+ {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->lineno += count_lines(yytext);
+	lstate->current_pos += yyleng;
+	return SEMICOLON;
+}
+
+<headervalue>\= {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+	return EQUAL;
+}
+
+<headervalue>\" {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	BC(tspecialvalue);
+	lstate->current_pos += yyleng;
+	return *yytext;
+}
+
+<headervalue>{STRING}+|{TSPECIAL_LITE}+ {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	yylval_param->string=strdup(yytext);
+	lstate->lineno += count_lines(yytext);
+	lstate->current_pos += yyleng;
+	return WORD;
+}
+
+<headervalue>[\ |\t]+	{
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+}	
+
+<tspecialvalue>{TSPECIAL}+ {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->lineno += count_lines(yytext);
+	yylval_param->string=strdup(yytext);
+	lstate->current_pos += yyleng;
+	return TSPECIAL;
+}
+
+<tspecialvalue>\" {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	BC(headervalue);
+	lstate->current_pos += yyleng;
+	return *yytext;
+}
+
+<body>^\-\-{TSPECIAL}+\-\- {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	/**
+	 * Make sure we only catch matching boundaries, and not other lines
+	 * that begin and end with two dashes. If we have catched a valid
+	 * end boundary, which actually ends a body, we save the current
+	 * position, put the token back on the input stream and let the
+	 * endboundary condition parse the actual token.
+	 */
+	if (lstate->endboundary_string != NULL) {
+		if (strcmp(lstate->endboundary_string, yytext)) {
+			/* dprintf2("YYTEXT != end_boundary: '%s'\n", yytext); */
+			REJECT;
+		} else {
+			lstate->current_pos += yyleng;
+			/* dprintf2("YYTEXT == lstate->end_boundary: '%s'\n", yytext); */
+			if (lstate->body_start) {
+				yylval_param->position.opaque_start = 
+				    lstate->body_opaque_start;
+				yylval_param->position.start = lstate->body_start;
+				yylval_param->position.end = lstate->current_pos - yyleng;
+				lstate->body_opaque_start = 0;
+				lstate->body_start = 0;
+				lstate->body_end = 0;
+				yyless(0);
+				BC(endboundary);
+				return BODY;
+			}	
+		}
+	} else {
+	}	
+
+	REJECT;
+}
+
+<body,preamble>^\-\-{TSPECIAL}+ {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	/**
+	 * Make sure we only catch matching boundaries, and not other lines
+	 * that begin with two dashes.
+	 */
+	if (lstate->boundary_string != NULL) {
+		if (strcmp(lstate->boundary_string, yytext)) {
+			/* dprintf2("YYTEXT != boundary: '%s'\n", yytext);*/
+			REJECT;
+		} else {
+			/* dprintf2("YYTEXT == boundary: '%s'\n", yytext);*/
+			if (lstate->body_start) {
+				yylval_param->position.opaque_start = lstate->body_opaque_start;
+				yylval_param->position.start = lstate->body_start;
+				yylval_param->position.end = lstate->current_pos;
+				lstate->body_opaque_start = 0;
+				lstate->body_start = 0;
+				lstate->body_end = 0;
+				yyless(0);
+				BC(boundary);
+				return BODY;
+			} else if (lstate->preamble_start) {
+				yylval_param->position.start = lstate->preamble_start;
+				yylval_param->position.end = lstate->current_pos;
+				lstate->preamble_start = lstate->preamble_end = 0;
+				yyless(0);
+				BC(boundary);
+				return PREAMBLE;
+			} else {
+				BC(boundary);
+				yylval_param->string = strdup(yytext);
+				lstate->current_pos += yyleng;
+				return(BOUNDARY);
+			}
+		}
+	} else {
+	}	
+
+	REJECT;
+}
+
+<body>(\r\n|\n) {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+	lstate->lineno++;
+}
+
+<body>\r {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+	/* dprintf2("stray CR in body...\n"); */
+}
+
+<body>[^\r\n]+ {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+}
+
+<body><<EOF>> {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	if (lstate->boundary_string == NULL && lstate->body_start) {
+		yylval_param->position.opaque_start = 0;
+		yylval_param->position.start = lstate->body_start;
+		yylval_param->position.end = lstate->current_pos;
+		lstate->body_start = 0;
+		return BODY;
+	} else if (lstate->body_start) {
+		return POSTAMBLE;
+	}	
+	yyterminate();
+}	
+
+<preamble,postamble>(\r\n|\n) {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	/* dprintf2("Preamble CR/LF at line %d\n", lineno); */
+	lstate->lineno++; 
+	lstate->current_pos += yyleng;
+}	
+
+<boundary>[^\r\n]+ {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	yylval_param->string = strdup(yytext);
+	lstate->current_pos += yyleng;
+	return BOUNDARY;
+}
+
+<endboundary>[^\r\n]+ {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	yylval_param->string = strdup(yytext);
+	lstate->current_pos += yyleng;
+	return ENDBOUNDARY;
+}
+
+<boundary>(\r\n|\n) {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	BC(headers);
+	lstate->lineno++;
+	lstate->current_pos += yyleng;
+	lstate->body_opaque_start = lstate->current_pos;
+	return EOL;
+}
+
+<endboundary>(\r\n|\n) {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	BC(postamble);
+	lstate->lineno++;
+	lstate->current_pos += yyleng;
+}
+
+<preamble>. {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+}
+
+
+<postamble>. {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+}
+
+(\r\n|\n) {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->lineno++;
+	lstate->current_pos += yyleng;
+	return EOL;
+}
+
+. {
+	struct lexer_state *lstate = yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+	return((int)*yytext);
+}
+
+
+%%
+
+void reset_lexer_state(void *yyscanner, struct parser_state *pstate)
+{
+	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	struct lexer_state *lstate = &(pstate->lstate);
+
+	yyset_extra((void*)lstate, yyscanner);
+	BEGIN(0);
+	lstate->header_state = STATE_MAIL;
+	lstate->lineno = 0;
+	lstate->current_pos = 1;
+	lstate->condition = 0;
+
+	lstate->is_envelope = 1;
+
+	lstate->message_len = 0;
+	lstate->buffer_length = 0;
+
+	/* temporary marker variables */
+	lstate->body_opaque_start = 0;
+	lstate->body_start = 0;
+	lstate->body_end = 0;
+	lstate->preamble_start = 0;
+	lstate->preamble_end = 0;
+	lstate->postamble_start = 0;
+	lstate->postamble_end = 0;
+}
+
+void
+PARSER_setbuffer(char *string, yyscan_t scanner)
+{
+	struct lexer_state *lstate = yyget_extra(scanner);
+	lstate->message_buffer = string;
+	yy_scan_string(string, scanner);
+}
+
+void
+PARSER_setfp(FILE *fp, yyscan_t yyscanner)
+{
+	/* looks like a bug in bison 2.2a -- the wrong code is generated for yyset_in !! */
+	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	yyg->yyin_r = fp;
+	
+	if (0) {
+		/* This is just to make a compiler warning go away */
+		yyunput(0, NULL, yyscanner);
+	}
+}
+
+/**
+ * Counts how many lines a given string represents in the message (in case of
+ * folded header values, for example, or a message body).
+ */
+int
+count_lines(char *txt)
+{
+	char *o;
+	int line;
+
+	line = 0;
+
+	for (o = txt; *o != '\0'; o++)	
+		if (*o == '\n')
+			line++;
+
+	return line;
+}
diff --git a/main/minimime/mimeparser.tab.c b/main/minimime/mimeparser.tab.c
new file mode 100644
index 0000000000..509fa4d2da
--- /dev/null
+++ b/main/minimime/mimeparser.tab.c
@@ -0,0 +1,2341 @@
+/* A Bison parser, made by GNU Bison 2.3.  */
+
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+   simplifying the original so-called "semantic" parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Bison version.  */
+#define YYBISON_VERSION "2.3"
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 1
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+/* Substitute the variable and function names.  */
+#define yyparse mimeparser_yyparse
+#define yylex   mimeparser_yylex
+#define yyerror mimeparser_yyerror
+#define yylval  mimeparser_yylval
+#define yychar  mimeparser_yychar
+#define yydebug mimeparser_yydebug
+#define yynerrs mimeparser_yynerrs
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     ANY = 258,
+     COLON = 259,
+     DASH = 260,
+     DQUOTE = 261,
+     ENDOFHEADERS = 262,
+     EOL = 263,
+     EOM = 264,
+     EQUAL = 265,
+     MIMEVERSION_HEADER = 266,
+     SEMICOLON = 267,
+     CONTENTDISPOSITION_HEADER = 268,
+     CONTENTENCODING_HEADER = 269,
+     CONTENTTYPE_HEADER = 270,
+     MAIL_HEADER = 271,
+     HEADERVALUE = 272,
+     BOUNDARY = 273,
+     ENDBOUNDARY = 274,
+     CONTENTTYPE_VALUE = 275,
+     TSPECIAL = 276,
+     WORD = 277,
+     BODY = 278,
+     PREAMBLE = 279,
+     POSTAMBLE = 280
+   };
+#endif
+/* Tokens.  */
+#define ANY 258
+#define COLON 259
+#define DASH 260
+#define DQUOTE 261
+#define ENDOFHEADERS 262
+#define EOL 263
+#define EOM 264
+#define EQUAL 265
+#define MIMEVERSION_HEADER 266
+#define SEMICOLON 267
+#define CONTENTDISPOSITION_HEADER 268
+#define CONTENTENCODING_HEADER 269
+#define CONTENTTYPE_HEADER 270
+#define MAIL_HEADER 271
+#define HEADERVALUE 272
+#define BOUNDARY 273
+#define ENDBOUNDARY 274
+#define CONTENTTYPE_VALUE 275
+#define TSPECIAL 276
+#define WORD 277
+#define BODY 278
+#define PREAMBLE 279
+#define POSTAMBLE 280
+
+
+
+
+/* Copy the first part of user declarations.  */
+#line 1 "mimeparser.y"
+
+/*
+ * Copyright (c) 2004 Jann Fischer. 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.
+ * 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. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ */
+
+/**
+ * These are the grammatic definitions in yacc syntax to parse MIME conform
+ * messages.
+ *
+ * TODO:
+ *	- honour parse flags passed to us (partly done)
+ *	- parse Content-Disposition header (partly done)
+ *	- parse Content-Encoding header
+ */
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <errno.h>
+
+#include "mimeparser.h"
+#include "mm.h"
+#include "mm_internal.h"
+
+int set_boundary(char *,struct parser_state *);
+int mimeparser_yywrap(void);
+void reset_environ(struct parser_state *pstate);
+int PARSER_initialize(struct parser_state *pstate, void *yyscanner);
+
+typedef void *yyscan_t;
+
+static char *PARSE_readmessagepart(size_t, size_t, size_t, size_t *,yyscan_t, struct parser_state *);
+FILE *mimeparser_yyget_in (yyscan_t yyscanner );
+
+
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 69 "mimeparser.y"
+{
+	int number;
+	char *string;
+	struct s_position position;
+}
+/* Line 193 of yacc.c.  */
+#line 222 "mimeparser.tab.c"
+	YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+/* Copy the second part of user declarations.  */
+
+
+/* Line 216 of yacc.c.  */
+#line 235 "mimeparser.tab.c"
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+#  define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+#  define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# else
+#  define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if YYENABLE_NLS
+#  if ENABLE_NLS
+#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+#   define YY_(msgid) dgettext ("bison-runtime", msgid)
+#  endif
+# endif
+# ifndef YY_
+#  define YY_(msgid) msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E.  */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+    int i;
+#endif
+{
+  return i;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# ifdef YYSTACK_USE_ALLOCA
+#  if YYSTACK_USE_ALLOCA
+#   ifdef __GNUC__
+#    define YYSTACK_ALLOC __builtin_alloca
+#   elif defined __BUILTIN_VA_ARG_INCR
+#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+#   elif defined _AIX
+#    define YYSTACK_ALLOC __alloca
+#   elif defined _MSC_VER
+#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+#    define alloca _alloca
+#   else
+#    define YYSTACK_ALLOC alloca
+#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#     ifndef _STDLIB_H
+#      define _STDLIB_H 1
+#     endif
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+    /* The OS might guarantee only one guard page at the bottom of the stack,
+       and a page size can be as small as 4096 bytes.  So we cannot safely
+       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
+       to allow for a few compiler-allocated temporary stack slots.  */
+#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+#  endif
+# else
+#  define YYSTACK_ALLOC YYMALLOC
+#  define YYSTACK_FREE YYFREE
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+#  endif
+#  if (defined __cplusplus && ! defined _STDLIB_H \
+       && ! ((defined YYMALLOC || defined malloc) \
+	     && (defined YYFREE || defined free)))
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   ifndef _STDLIB_H
+#    define _STDLIB_H 1
+#   endif
+#  endif
+#  ifndef YYMALLOC
+#   define YYMALLOC malloc
+#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifndef YYFREE
+#   define YYFREE free
+#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+     && (! defined __cplusplus \
+	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  yytype_int16 yyss;
+  YYSTYPE yyvs;
+  };
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+      + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if defined __GNUC__ && 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)		\
+      do					\
+	{					\
+	  YYSIZE_T yyi;				\
+	  for (yyi = 0; yyi < (Count); yyi++)	\
+	    (To)[yyi] = (From)[yyi];		\
+	}					\
+      while (YYID (0))
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)					\
+    do									\
+      {									\
+	YYSIZE_T yynewbytes;						\
+	YYCOPY (&yyptr->Stack, Stack, yysize);				\
+	Stack = &yyptr->Stack;						\
+	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (YYID (0))
+
+#endif
+
+/* YYFINAL -- State number of the termination state.  */
+#define YYFINAL  26
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   61
+
+/* YYNTOKENS -- Number of terminals.  */
+#define YYNTOKENS  28
+/* YYNNTS -- Number of nonterminals.  */
+#define YYNNTS  29
+/* YYNRULES -- Number of rules.  */
+#define YYNRULES  50
+/* YYNRULES -- Number of states.  */
+#define YYNSTATES  83
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   280
+
+#define YYTRANSLATE(YYX)						\
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const yytype_uint8 yytranslate[] =
+{
+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,    27,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,    26,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const yytype_uint8 yyprhs[] =
+{
+       0,     0,     3,     5,     7,     8,    15,    18,    21,    23,
+      25,    27,    28,    30,    31,    34,    36,    40,    42,    44,
+      46,    48,    50,    52,    57,    61,    66,    72,    77,    83,
+      85,    90,    95,    98,   101,   103,   107,   111,   114,   116,
+     120,   123,   125,   129,   133,   135,   137,   141,   143,   146,
+     148
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int8 yyrhs[] =
+{
+      29,     0,    -1,    30,    -1,    32,    -1,    -1,    33,    34,
+      31,    36,    55,    35,    -1,    33,    56,    -1,    38,    33,
+      -1,    53,    -1,    38,    -1,    24,    -1,    -1,    25,    -1,
+      -1,    36,    37,    -1,    37,    -1,    54,    33,    56,    -1,
+      39,    -1,    40,    -1,    41,    -1,    43,    -1,    44,    -1,
+      45,    -1,    16,     4,    22,     8,    -1,    16,     4,     8,
+      -1,    15,     4,    47,     8,    -1,    15,     4,    47,    48,
+       8,    -1,    13,     4,    42,     8,    -1,    13,     4,    42,
+      49,     8,    -1,    22,    -1,    14,     4,    22,     8,    -1,
+      11,     4,    22,     8,    -1,    46,     8,    -1,    46,     3,
+      -1,     3,    -1,    22,    26,    22,    -1,    12,    50,    48,
+      -1,    12,    50,    -1,    12,    -1,    12,    51,    49,    -1,
+      12,    51,    -1,    12,    -1,    22,    10,    52,    -1,    22,
+      10,    52,    -1,    22,    -1,    21,    -1,    27,    21,    27,
+      -1,     7,    -1,    18,     8,    -1,    19,    -1,    23,    -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const yytype_uint16 yyrline[] =
+{
+       0,   114,   114,   116,   121,   120,   133,   141,   143,   167,
+     171,   186,   190,   193,   197,   199,   203,   218,   220,   230,
+     232,   234,   236,   250,   257,   276,   284,   294,   300,   308,
+     331,   338,   345,   349,   351,   355,   364,   366,   368,   382,
+     384,   386,   400,   431,   445,   451,   466,   474,   481,   500,
+     519
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "ANY", "COLON", "DASH", "DQUOTE",
+  "ENDOFHEADERS", "EOL", "EOM", "EQUAL", "MIMEVERSION_HEADER", "SEMICOLON",
+  "CONTENTDISPOSITION_HEADER", "CONTENTENCODING_HEADER",
+  "CONTENTTYPE_HEADER", "MAIL_HEADER", "HEADERVALUE", "BOUNDARY",
+  "ENDBOUNDARY", "CONTENTTYPE_VALUE", "TSPECIAL", "WORD", "BODY",
+  "PREAMBLE", "POSTAMBLE", "'/'", "'\"'", "$accept", "message",
+  "multipart_message", "@1", "singlepart_message", "headers", "preamble",
+  "postamble", "mimeparts", "mimepart", "header", "mail_header",
+  "contenttype_header", "contentdisposition_header", "content_disposition",
+  "contentencoding_header", "mimeversion_header", "invalid_header", "any",
+  "mimetype", "contenttype_parameters", "content_disposition_parameters",
+  "contenttype_parameter", "content_disposition_parameter",
+  "contenttype_parameter_value", "end_headers", "boundary", "endboundary",
+  "body", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const yytype_uint16 yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,    47,    34
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint8 yyr1[] =
+{
+       0,    28,    29,    29,    31,    30,    32,    33,    33,    33,
+      34,    34,    35,    35,    36,    36,    37,    38,    38,    38,
+      38,    38,    38,    39,    39,    40,    40,    41,    41,    42,
+      43,    44,    45,    46,    46,    47,    48,    48,    48,    49,
+      49,    49,    50,    51,    52,    52,    52,    53,    54,    55,
+      56
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     1,     1,     0,     6,     2,     2,     1,     1,
+       1,     0,     1,     0,     2,     1,     3,     1,     1,     1,
+       1,     1,     1,     4,     3,     4,     5,     4,     5,     1,
+       4,     4,     2,     2,     1,     3,     3,     2,     1,     3,
+       2,     1,     3,     3,     1,     1,     3,     1,     2,     1,
+       1
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const yytype_uint8 yydefact[] =
+{
+       0,    34,    47,     0,     0,     0,     0,     0,     0,     2,
+       3,    11,     9,    17,    18,    19,    20,    21,    22,     0,
+       8,     0,     0,     0,     0,     0,     1,    50,    10,     4,
+       6,     7,    33,    32,     0,    29,     0,     0,     0,     0,
+      24,     0,     0,    31,    27,    41,     0,    30,     0,    25,
+      38,     0,    23,     0,     0,    15,     0,     0,    40,    28,
+      35,     0,    37,    26,    48,    49,    14,    13,     0,     0,
+      39,     0,    36,    12,     5,    16,    45,    44,     0,    43,
+      42,     0,    46
+};
+
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int8 yydefgoto[] =
+{
+      -1,     8,     9,    42,    10,    11,    29,    74,    54,    55,
+      12,    13,    14,    15,    36,    16,    17,    18,    19,    39,
+      51,    46,    62,    58,    79,    20,    56,    67,    30
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -20
+static const yytype_int8 yypact[] =
+{
+       3,   -20,   -20,    17,    21,    22,    23,    24,     5,   -20,
+     -20,   -11,     3,   -20,   -20,   -20,   -20,   -20,   -20,     1,
+     -20,     7,     8,     9,    10,    -7,   -20,   -20,   -20,   -20,
+     -20,   -20,   -20,   -20,    25,   -20,    -1,    26,    11,    12,
+     -20,    27,    18,   -20,   -20,    16,    31,   -20,    19,   -20,
+      20,    32,   -20,    35,     4,   -20,     3,    36,    33,   -20,
+     -20,    37,    38,   -20,   -20,   -20,   -20,    28,    29,   -19,
+     -20,   -19,   -20,   -20,   -20,   -20,   -20,   -20,    30,   -20,
+     -20,    34,   -20
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const yytype_int8 yypgoto[] =
+{
+     -20,   -20,   -20,   -20,   -20,   -12,   -20,   -20,   -20,    -6,
+     -20,   -20,   -20,   -20,   -20,   -20,   -20,   -20,   -20,   -20,
+     -13,    -4,   -20,   -20,   -16,   -20,   -20,   -20,   -10
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -1
+static const yytype_uint8 yytable[] =
+{
+      31,    40,    76,    77,    32,    26,     1,    44,    78,    33,
+       2,    45,    27,    28,     3,    41,     4,     5,     6,     7,
+      49,    21,    53,    65,    50,    22,    23,    24,    25,    34,
+      35,    37,    38,    43,    47,    52,    53,    48,    57,    59,
+      63,    60,    61,    64,    68,    45,    69,    71,    66,    72,
+      50,    81,    27,    73,    70,    80,     0,     0,    75,     0,
+       0,    82
+};
+
+static const yytype_int8 yycheck[] =
+{
+      12,     8,    21,    22,     3,     0,     3,     8,    27,     8,
+       7,    12,    23,    24,    11,    22,    13,    14,    15,    16,
+       8,     4,    18,    19,    12,     4,     4,     4,     4,    22,
+      22,    22,    22,     8,     8,     8,    18,    26,    22,     8,
+       8,    22,    22,     8,    56,    12,    10,    10,    54,    62,
+      12,    21,    23,    25,    58,    71,    -1,    -1,    68,    -1,
+      -1,    27
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const yytype_uint8 yystos[] =
+{
+       0,     3,     7,    11,    13,    14,    15,    16,    29,    30,
+      32,    33,    38,    39,    40,    41,    43,    44,    45,    46,
+      53,     4,     4,     4,     4,     4,     0,    23,    24,    34,
+      56,    33,     3,     8,    22,    22,    42,    22,    22,    47,
+       8,    22,    31,     8,     8,    12,    49,     8,    26,     8,
+      12,    48,     8,    18,    36,    37,    54,    22,    51,     8,
+      22,    22,    50,     8,     8,    19,    37,    55,    33,    10,
+      49,    10,    48,    25,    35,    56,    21,    22,    27,    52,
+      52,    21,    27
+};
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		(-2)
+#define YYEOF		0
+
+#define YYACCEPT	goto yyacceptlab
+#define YYABORT		goto yyabortlab
+#define YYERROR		goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+
+#define YYFAIL		goto yyerrlab
+
+#define YYRECOVERING()  (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value)					\
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    {								\
+      yychar = (Token);						\
+      yylval = (Value);						\
+      yytoken = YYTRANSLATE (yychar);				\
+      YYPOPSTACK (1);						\
+      goto yybackup;						\
+    }								\
+  else								\
+    {								\
+      yyerror (pstate, yyscanner, YY_("syntax error: cannot back up")); \
+      YYERROR;							\
+    }								\
+while (YYID (0))
+
+
+#define YYTERROR	1
+#define YYERRCODE	256
+
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+   If N is 0, then set CURRENT to the empty location which ends
+   the previous symbol: RHS[0] (always defined).  */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N)				\
+    do									\
+      if (YYID (N))                                                    \
+	{								\
+	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
+	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
+	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
+	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
+	}								\
+      else								\
+	{								\
+	  (Current).first_line   = (Current).last_line   =		\
+	    YYRHSLOC (Rhs, 0).last_line;				\
+	  (Current).first_column = (Current).last_column =		\
+	    YYRHSLOC (Rhs, 0).last_column;				\
+	}								\
+    while (YYID (0))
+#endif
+
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+   This macro was not mandated originally: define only if we know
+   we won't break user code: when these are the locations we know.  */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+#  define YY_LOCATION_PRINT(File, Loc)			\
+     fprintf (File, "%d.%d-%d.%d",			\
+	      (Loc).first_line, (Loc).first_column,	\
+	      (Loc).last_line,  (Loc).last_column)
+# else
+#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments.  */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (&yylval, YYLEX_PARAM)
+#else
+# define YYLEX yylex (&yylval, yyscanner)
+#endif
+
+/* Enable debugging if requested.  */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args)			\
+do {						\
+  if (yydebug)					\
+    YYFPRINTF Args;				\
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
+do {									  \
+  if (yydebug)								  \
+    {									  \
+      YYFPRINTF (stderr, "%s ", Title);					  \
+      yy_symbol_print (stderr,						  \
+		  Type, Value, pstate, yyscanner); \
+      YYFPRINTF (stderr, "\n");						  \
+    }									  \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct parser_state *pstate, void *yyscanner)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep, pstate, yyscanner)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+    struct parser_state *pstate;
+    void *yyscanner;
+#endif
+{
+  if (!yyvaluep)
+    return;
+  YYUSE (pstate);
+  YYUSE (yyscanner);
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+  YYUSE (yyoutput);
+# endif
+  switch (yytype)
+    {
+      default:
+	break;
+    }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct parser_state *pstate, void *yyscanner)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep, pstate, yyscanner)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+    struct parser_state *pstate;
+    void *yyscanner;
+#endif
+{
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep, pstate, yyscanner);
+  YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included).                                                   |
+`------------------------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    yytype_int16 *bottom;
+    yytype_int16 *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)				\
+do {								\
+  if (yydebug)							\
+    yy_stack_print ((Bottom), (Top));				\
+} while (YYID (0))
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule, struct parser_state *pstate, void *yyscanner)
+#else
+static void
+yy_reduce_print (yyvsp, yyrule, pstate, yyscanner)
+    YYSTYPE *yyvsp;
+    int yyrule;
+    struct parser_state *pstate;
+    void *yyscanner;
+#endif
+{
+  int yynrhs = yyr2[yyrule];
+  int yyi;
+  unsigned long int yylno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+	     yyrule - 1, yylno);
+  /* The symbols being reduced.  */
+  for (yyi = 0; yyi < yynrhs; yyi++)
+    {
+      fprintf (stderr, "   $%d = ", yyi + 1);
+      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+		       &(yyvsp[(yyi + 1) - (yynrhs)])
+		       		       , pstate, yyscanner);
+      fprintf (stderr, "\n");
+    }
+}
+
+# define YY_REDUCE_PRINT(Rule)		\
+do {					\
+  if (yydebug)				\
+    yy_reduce_print (yyvsp, Rule, pstate, yyscanner); \
+} while (YYID (0))
+
+/* Nonzero means print parse trace.  It is left uninitialized so that
+   multiple parsers can coexist.  */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks.  */
+#ifndef	YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+   if the built-in stack extension method is used).
+
+   Do not make this value too large; the results are undefined if
+   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+   evaluated with infinite-precision integer arithmetic.  */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+#  if defined __GLIBC__ && defined _STRING_H
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static YYSIZE_T
+yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+    const char *yystr;
+#endif
+{
+  YYSIZE_T yylen;
+  for (yylen = 0; yystr[yylen]; yylen++)
+    continue;
+  return yylen;
+}
+#  endif
+# endif
+
+# ifndef yystpcpy
+#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+    char *yydest;
+    const char *yysrc;
+#endif
+{
+  char *yyd = yydest;
+  const char *yys = yysrc;
+
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+   quotes and backslashes, so that it's suitable for yyerror.  The
+   heuristic is that double-quoting is unnecessary unless the string
+   contains an apostrophe, a comma, or backslash (other than
+   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
+   null, do not copy; instead, return the length of what the result
+   would have been.  */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+  if (*yystr == '"')
+    {
+      YYSIZE_T yyn = 0;
+      char const *yyp = yystr;
+
+      for (;;)
+	switch (*++yyp)
+	  {
+	  case '\'':
+	  case ',':
+	    goto do_not_strip_quotes;
+
+	  case '\\':
+	    if (*++yyp != '\\')
+	      goto do_not_strip_quotes;
+	    /* Fall through.  */
+	  default:
+	    if (yyres)
+	      yyres[yyn] = *yyp;
+	    yyn++;
+	    break;
+
+	  case '"':
+	    if (yyres)
+	      yyres[yyn] = '\0';
+	    return yyn;
+	  }
+    do_not_strip_quotes: ;
+    }
+
+  if (! yyres)
+    return yystrlen (yystr);
+
+  return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into YYRESULT an error message about the unexpected token
+   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
+   including the terminating null byte.  If YYRESULT is null, do not
+   copy anything; just return the number of bytes that would be
+   copied.  As a special case, return 0 if an ordinary "syntax error"
+   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
+   size calculation.  */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
+{
+  int yyn = yypact[yystate];
+
+  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+    return 0;
+  else
+    {
+      int yytype = YYTRANSLATE (yychar);
+      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+      YYSIZE_T yysize = yysize0;
+      YYSIZE_T yysize1;
+      int yysize_overflow = 0;
+      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+      int yyx;
+
+# if 0
+      /* This is so xgettext sees the translatable formats that are
+	 constructed on the fly.  */
+      YY_("syntax error, unexpected %s");
+      YY_("syntax error, unexpected %s, expecting %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+      char *yyfmt;
+      char const *yyf;
+      static char const yyunexpected[] = "syntax error, unexpected %s";
+      static char const yyexpecting[] = ", expecting %s";
+      static char const yyor[] = " or %s";
+      char yyformat[sizeof yyunexpected
+		    + sizeof yyexpecting - 1
+		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+		       * (sizeof yyor - 1))];
+      char const *yyprefix = yyexpecting;
+
+      /* Start YYX at -YYN if negative to avoid negative indexes in
+	 YYCHECK.  */
+      int yyxbegin = yyn < 0 ? -yyn : 0;
+
+      /* Stay within bounds of both yycheck and yytname.  */
+      int yychecklim = YYLAST - yyn + 1;
+      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+      int yycount = 1;
+
+      yyarg[0] = yytname[yytype];
+      yyfmt = yystpcpy (yyformat, yyunexpected);
+
+      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+	  {
+	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+	      {
+		yycount = 1;
+		yysize = yysize0;
+		yyformat[sizeof yyunexpected - 1] = '\0';
+		break;
+	      }
+	    yyarg[yycount++] = yytname[yyx];
+	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+	    yysize_overflow |= (yysize1 < yysize);
+	    yysize = yysize1;
+	    yyfmt = yystpcpy (yyfmt, yyprefix);
+	    yyprefix = yyor;
+	  }
+
+      yyf = YY_(yyformat);
+      yysize1 = yysize + yystrlen (yyf);
+      yysize_overflow |= (yysize1 < yysize);
+      yysize = yysize1;
+
+      if (yysize_overflow)
+	return YYSIZE_MAXIMUM;
+
+      if (yyresult)
+	{
+	  /* Avoid sprintf, as that infringes on the user's name space.
+	     Don't have undefined behavior even if the translation
+	     produced a string with the wrong number of "%s"s.  */
+	  char *yyp = yyresult;
+	  int yyi = 0;
+	  while ((*yyp = *yyf) != '\0')
+	    {
+	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+		{
+		  yyp += yytnamerr (yyp, yyarg[yyi++]);
+		  yyf += 2;
+		}
+	      else
+		{
+		  yyp++;
+		  yyf++;
+		}
+	    }
+	}
+      return yysize;
+    }
+}
+#endif /* YYERROR_VERBOSE */
+
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_state *pstate, void *yyscanner)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep, pstate, yyscanner)
+    const char *yymsg;
+    int yytype;
+    YYSTYPE *yyvaluep;
+    struct parser_state *pstate;
+    void *yyscanner;
+#endif
+{
+  YYUSE (yyvaluep);
+  YYUSE (pstate);
+  YYUSE (yyscanner);
+
+  if (!yymsg)
+    yymsg = "Deleting";
+  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+  switch (yytype)
+    {
+
+      default:
+	break;
+    }
+}
+
+
+/* Prevent warnings from -Wmissing-prototypes.  */
+
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (struct parser_state *pstate, void *yyscanner);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+
+
+
+/*----------.
+| yyparse.  |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+    void *YYPARSE_PARAM;
+#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (struct parser_state *pstate, void *yyscanner)
+#else
+int
+yyparse (pstate, yyscanner)
+    struct parser_state *pstate;
+    void *yyscanner;
+#endif
+#endif
+{
+  /* The look-ahead symbol.  */
+int yychar;
+
+/* The semantic value of the look-ahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
+
+  int yystate;
+  int yyn;
+  int yyresult;
+  /* Number of tokens to shift before error messages enabled.  */
+  int yyerrstatus;
+  /* Look-ahead token as an internal (translated) token number.  */
+  int yytoken = 0;
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+  /* Three stacks and their tools:
+     `yyss': related to states,
+     `yyvs': related to semantic values,
+     `yyls': related to locations.
+
+     Refer to the stacks thru separate pointers, to allow yyoverflow
+     to reallocate them elsewhere.  */
+
+  /* The state stack.  */
+  yytype_int16 yyssa[YYINITDEPTH];
+  yytype_int16 *yyss = yyssa;
+  yytype_int16 *yyssp;
+
+  /* The semantic value stack.  */
+  YYSTYPE yyvsa[YYINITDEPTH];
+  YYSTYPE *yyvs = yyvsa;
+  YYSTYPE *yyvsp;
+
+
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
+
+  YYSIZE_T yystacksize = YYINITDEPTH;
+
+  /* The variables used to return semantic value and location from the
+     action routines.  */
+  YYSTYPE yyval;
+
+
+  /* The number of symbols on the RHS of the reduced rule.
+     Keep to zero when no symbol should be popped.  */
+  int yylen = 0;
+
+  YYDPRINTF ((stderr, "Starting parse\n"));
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;		/* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss;
+  yyvsp = yyvs;
+
+  goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate.  |
+`------------------------------------------------------------*/
+ yynewstate:
+  /* In all cases, when you get here, the value and location stacks
+     have just been pushed.  So pushing a state here evens the stacks.  */
+  yyssp++;
+
+ yysetstate:
+  *yyssp = yystate;
+
+  if (yyss + yystacksize - 1 <= yyssp)
+    {
+      /* Get the current used size of the three stacks, in elements.  */
+      YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      {
+	/* Give user a chance to reallocate the stack.  Use copies of
+	   these so that the &'s don't force the real ones into
+	   memory.  */
+	YYSTYPE *yyvs1 = yyvs;
+	yytype_int16 *yyss1 = yyss;
+
+
+	/* Each stack pointer address is followed by the size of the
+	   data in use in that stack, in bytes.  This used to be a
+	   conditional around just the two extra args, but that might
+	   be undefined if yyoverflow is a macro.  */
+	yyoverflow (YY_("memory exhausted"),
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
+
+		    &yystacksize);
+
+	yyss = yyss1;
+	yyvs = yyvs1;
+      }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyexhaustedlab;
+# else
+      /* Extend the stack our own way.  */
+      if (YYMAXDEPTH <= yystacksize)
+	goto yyexhaustedlab;
+      yystacksize *= 2;
+      if (YYMAXDEPTH < yystacksize)
+	yystacksize = YYMAXDEPTH;
+
+      {
+	yytype_int16 *yyss1 = yyss;
+	union yyalloc *yyptr =
+	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+	if (! yyptr)
+	  goto yyexhaustedlab;
+	YYSTACK_RELOCATE (yyss);
+	YYSTACK_RELOCATE (yyvs);
+
+#  undef YYSTACK_RELOCATE
+	if (yyss1 != yyssa)
+	  YYSTACK_FREE (yyss1);
+      }
+# endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
+
+
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+		  (unsigned long int) yystacksize));
+
+      if (yyss + yystacksize - 1 <= yyssp)
+	YYABORT;
+    }
+
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+  goto yybackup;
+
+/*-----------.
+| yybackup.  |
+`-----------*/
+yybackup:
+
+  /* Do appropriate processing given the current state.  Read a
+     look-ahead token if we need one and don't already have one.  */
+
+  /* First try to decide what to do without reference to look-ahead token.  */
+  yyn = yypact[yystate];
+  if (yyn == YYPACT_NINF)
+    goto yydefault;
+
+  /* Not known => get a look-ahead token if don't already have one.  */
+
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
+  if (yychar == YYEMPTY)
+    {
+      YYDPRINTF ((stderr, "Reading a token: "));
+      yychar = YYLEX;
+    }
+
+  if (yychar <= YYEOF)
+    {
+      yychar = yytoken = YYEOF;
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
+    }
+  else
+    {
+      yytoken = YYTRANSLATE (yychar);
+      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+    }
+
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+    goto yydefault;
+  yyn = yytable[yyn];
+  if (yyn <= 0)
+    {
+      if (yyn == 0 || yyn == YYTABLE_NINF)
+	goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Count tokens shifted since error; after three, turn off error
+     status.  */
+  if (yyerrstatus)
+    yyerrstatus--;
+
+  /* Shift the look-ahead token.  */
+  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+  /* Discard the shifted token unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  yystate = yyn;
+  *++yyvsp = yylval;
+
+  goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state.  |
+`-----------------------------------------------------------*/
+yydefault:
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+  goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction.  |
+`-----------------------------*/
+yyreduce:
+  /* yyn is the number of a rule to reduce with.  */
+  yylen = yyr2[yyn];
+
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `$$ = $1'.
+
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
+
+
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
+    {
+        case 4:
+#line 121 "mimeparser.y"
+    { 
+		mm_context_attachpart(pstate->ctx, pstate->current_mimepart);
+		pstate->current_mimepart = mm_mimepart_new();
+		pstate->have_contenttype = 0;
+	}
+    break;
+
+  case 5:
+#line 127 "mimeparser.y"
+    {
+		dprintf2(pstate,"This was a multipart message\n");
+	}
+    break;
+
+  case 6:
+#line 134 "mimeparser.y"
+    {
+		dprintf2(pstate,"This was a single part message\n");
+		mm_context_attachpart(pstate->ctx, pstate->current_mimepart);
+	}
+    break;
+
+  case 8:
+#line 144 "mimeparser.y"
+    {
+		/* If we did not find a Content-Type header for the current
+		 * MIME part (or envelope), we create one and attach it.
+		 * According to the RFC, a type of "text/plain" and a
+		 * charset of "us-ascii" can be assumed.
+		 */
+		struct mm_content *ct;
+		struct mm_param *param;
+
+		if (!pstate->have_contenttype) {
+			ct = mm_content_new();
+			mm_content_settype(ct, "text/plain");
+			
+			param = mm_param_new();
+			param->name = xstrdup("charset");
+			param->value = xstrdup("us-ascii");
+
+			mm_content_attachtypeparam(ct, param);
+			mm_mimepart_attachcontenttype(pstate->current_mimepart, ct);
+		}	
+		pstate->have_contenttype = 0;
+	}
+    break;
+
+  case 10:
+#line 172 "mimeparser.y"
+    {
+		char *preamble;
+		size_t offset;
+		
+		if ((yyvsp[(1) - (1)].position).start != (yyvsp[(1) - (1)].position).end) {
+			preamble = PARSE_readmessagepart(0, (yyvsp[(1) - (1)].position).start, (yyvsp[(1) - (1)].position).end,
+			    &offset,yyscanner,pstate);
+			if (preamble == NULL) {
+				return(-1);
+			}
+			pstate->ctx->preamble = preamble;
+			dprintf2(pstate,"PREAMBLE:\n%s\n", preamble);
+		}
+	}
+    break;
+
+  case 12:
+#line 191 "mimeparser.y"
+    {
+	}
+    break;
+
+  case 16:
+#line 204 "mimeparser.y"
+    {
+
+		if (mm_context_attachpart(pstate->ctx, pstate->current_mimepart) == -1) {
+			mm_errno = MM_ERROR_ERRNO;
+			return(-1);
+		}	
+
+		pstate->temppart = mm_mimepart_new();
+		pstate->current_mimepart = pstate->temppart;
+		pstate->mime_parts++;
+	}
+    break;
+
+  case 18:
+#line 221 "mimeparser.y"
+    {
+		pstate->have_contenttype = 1;
+		if (mm_content_iscomposite(pstate->envelope->type)) {
+			pstate->ctx->messagetype = MM_MSGTYPE_MULTIPART;
+		} else {
+			pstate->ctx->messagetype = MM_MSGTYPE_FLAT;
+		}	
+	}
+    break;
+
+  case 22:
+#line 237 "mimeparser.y"
+    {
+		if (pstate->parsemode != MM_PARSE_LOOSE) {
+			mm_errno = MM_ERROR_PARSE;
+			mm_error_setmsg("invalid header encountered");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		} else {
+			/* TODO: attach MM_WARNING_INVHDR */
+		}
+	}
+    break;
+
+  case 23:
+#line 251 "mimeparser.y"
+    {
+		struct mm_mimeheader *hdr;
+		hdr = mm_mimeheader_generate((yyvsp[(1) - (4)].string), (yyvsp[(3) - (4)].string));
+		mm_mimepart_attachheader(pstate->current_mimepart, hdr);
+	}
+    break;
+
+  case 24:
+#line 258 "mimeparser.y"
+    {
+		struct mm_mimeheader *hdr;
+
+		if (pstate->parsemode != MM_PARSE_LOOSE) {
+			mm_errno = MM_ERROR_MIME;
+			mm_error_setmsg("invalid header encountered");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		} else {
+			/* TODO: attach MM_WARNING_INVHDR */
+		}	
+		
+		hdr = mm_mimeheader_generate((yyvsp[(1) - (3)].string), xstrdup(""));
+		mm_mimepart_attachheader(pstate->current_mimepart, hdr);
+	}
+    break;
+
+  case 25:
+#line 277 "mimeparser.y"
+    {
+		mm_content_settype(pstate->ctype, "%s", (yyvsp[(3) - (4)].string));
+		mm_mimepart_attachcontenttype(pstate->current_mimepart, pstate->ctype);
+		dprintf2(pstate,"Content-Type -> %s\n", (yyvsp[(3) - (4)].string));
+		pstate->ctype = mm_content_new();
+	}
+    break;
+
+  case 26:
+#line 285 "mimeparser.y"
+    {
+		mm_content_settype(pstate->ctype, "%s", (yyvsp[(3) - (5)].string));
+		mm_mimepart_attachcontenttype(pstate->current_mimepart, pstate->ctype);
+		dprintf2(pstate,"Content-Type (P) -> %s\n", (yyvsp[(3) - (5)].string));
+		pstate->ctype = mm_content_new();
+	}
+    break;
+
+  case 27:
+#line 295 "mimeparser.y"
+    {
+		dprintf2(pstate,"Content-Disposition -> %s\n", (yyvsp[(3) - (4)].string));
+		pstate->ctype->disposition_type = xstrdup((yyvsp[(3) - (4)].string));
+	}
+    break;
+
+  case 28:
+#line 301 "mimeparser.y"
+    {
+		dprintf2(pstate,"Content-Disposition (P) -> %s; params\n", (yyvsp[(3) - (5)].string));
+		pstate->ctype->disposition_type = xstrdup((yyvsp[(3) - (5)].string));
+	}
+    break;
+
+  case 29:
+#line 309 "mimeparser.y"
+    {
+		/*
+		 * According to RFC 2183, the content disposition value may
+		 * only be "inline", "attachment" or an extension token. We
+		 * catch invalid values here if we are not in loose parsing
+		 * mode.
+		 */
+		if (strcasecmp((yyvsp[(1) - (1)].string), "inline") && strcasecmp((yyvsp[(1) - (1)].string), "attachment")
+		    && strncasecmp((yyvsp[(1) - (1)].string), "X-", 2)) {
+			if (pstate->parsemode != MM_PARSE_LOOSE) {
+				mm_errno = MM_ERROR_MIME;
+				mm_error_setmsg("invalid content-disposition");
+				return(-1);
+			}	
+		} else {
+			/* TODO: attach MM_WARNING_INVHDR */
+		}	
+		(yyval.string) = (yyvsp[(1) - (1)].string);
+	}
+    break;
+
+  case 30:
+#line 332 "mimeparser.y"
+    {
+		dprintf2(pstate,"Content-Transfer-Encoding -> %s\n", (yyvsp[(3) - (4)].string));
+	}
+    break;
+
+  case 31:
+#line 339 "mimeparser.y"
+    {
+		dprintf2(pstate,"MIME-Version -> '%s'\n", (yyvsp[(3) - (4)].string));
+	}
+    break;
+
+  case 35:
+#line 356 "mimeparser.y"
+    {
+		char type[255];
+		snprintf(type, sizeof(type), "%s/%s", (yyvsp[(1) - (3)].string), (yyvsp[(3) - (3)].string));
+		(yyval.string) = type;
+	}
+    break;
+
+  case 38:
+#line 369 "mimeparser.y"
+    {
+		if (pstate->parsemode != MM_PARSE_LOOSE) {
+			mm_errno = MM_ERROR_MIME;
+			mm_error_setmsg("invalid Content-Type header");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		} else {
+			/* TODO: attach MM_WARNING_INVHDR */
+		}	
+	}
+    break;
+
+  case 41:
+#line 387 "mimeparser.y"
+    {	
+		if (pstate->parsemode != MM_PARSE_LOOSE) {
+			mm_errno = MM_ERROR_MIME;
+			mm_error_setmsg("invalid Content-Disposition header");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		} else {
+			/* TODO: attach MM_WARNING_INVHDR */
+		}
+	}
+    break;
+
+  case 42:
+#line 401 "mimeparser.y"
+    {
+		struct mm_param *param;
+		param = mm_param_new();
+		
+		dprintf2(pstate,"Param: '%s', Value: '%s'\n", (yyvsp[(1) - (3)].string), (yyvsp[(3) - (3)].string));
+		
+		/* Catch an eventual boundary identifier */
+		if (!strcasecmp((yyvsp[(1) - (3)].string), "boundary")) {
+			if (pstate->lstate.boundary_string == NULL) {
+				set_boundary((yyvsp[(3) - (3)].string),pstate);
+			} else {
+				if (pstate->parsemode != MM_PARSE_LOOSE) {
+					mm_errno = MM_ERROR_MIME;
+					mm_error_setmsg("duplicate boundary "
+					    "found");
+					return -1;
+				} else {
+					/* TODO: attach MM_WARNING_DUPPARAM */
+				}
+			}
+		}
+
+		param->name = xstrdup((yyvsp[(1) - (3)].string));
+		param->value = xstrdup((yyvsp[(3) - (3)].string));
+
+		mm_content_attachtypeparam(pstate->ctype, param);
+	}
+    break;
+
+  case 43:
+#line 432 "mimeparser.y"
+    {
+		struct mm_param *param;
+		param = mm_param_new();
+		
+		param->name = xstrdup((yyvsp[(1) - (3)].string));
+		param->value = xstrdup((yyvsp[(3) - (3)].string));
+
+		mm_content_attachdispositionparam(pstate->ctype, param);
+
+	}
+    break;
+
+  case 44:
+#line 446 "mimeparser.y"
+    {
+		dprintf2(pstate,"contenttype_param_val: WORD=%s\n", (yyvsp[(1) - (1)].string));
+		(yyval.string) = (yyvsp[(1) - (1)].string);
+	}
+    break;
+
+  case 45:
+#line 452 "mimeparser.y"
+    {
+		dprintf2(pstate,"contenttype_param_val: TSPECIAL\n");
+		/* For broken MIME implementation */
+		if (pstate->parsemode != MM_PARSE_LOOSE) {
+			mm_errno = MM_ERROR_MIME;
+			mm_error_setmsg("tspecial without quotes");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		} else {
+			/* TODO: attach MM_WARNING_INVAL */
+		}	
+		(yyval.string) = (yyvsp[(1) - (1)].string);
+	}
+    break;
+
+  case 46:
+#line 467 "mimeparser.y"
+    {
+		dprintf2(pstate,"contenttype_param_val: \"TSPECIAL\"\n" );
+		(yyval.string) = (yyvsp[(2) - (3)].string);
+	}
+    break;
+
+  case 47:
+#line 475 "mimeparser.y"
+    {
+		dprintf2(pstate,"End of headers at line %d\n", pstate->lstate.lineno);
+	}
+    break;
+
+  case 48:
+#line 482 "mimeparser.y"
+    {
+		if (pstate->lstate.boundary_string == NULL) {
+			mm_errno = MM_ERROR_PARSE;
+			mm_error_setmsg("internal incosistency");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		}
+		if (strcmp(pstate->lstate.boundary_string, (yyvsp[(1) - (2)].string))) {
+			mm_errno = MM_ERROR_PARSE;
+			mm_error_setmsg("invalid boundary: '%s' (%d)", (yyvsp[(1) - (2)].string), strlen((yyvsp[(1) - (2)].string)));
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		}
+		dprintf2(pstate,"New MIME part... (%s)\n", (yyvsp[(1) - (2)].string));
+	}
+    break;
+
+  case 49:
+#line 501 "mimeparser.y"
+    {
+		if (pstate->lstate.endboundary_string == NULL) {
+			mm_errno = MM_ERROR_PARSE;
+			mm_error_setmsg("internal incosistency");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		}
+		if (strcmp(pstate->lstate.endboundary_string, (yyvsp[(1) - (1)].string))) {
+			mm_errno = MM_ERROR_PARSE;
+			mm_error_setmsg("invalid end boundary: %s", (yyvsp[(1) - (1)].string));
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		}
+		dprintf2(pstate,"End of MIME message\n");
+	}
+    break;
+
+  case 50:
+#line 520 "mimeparser.y"
+    {
+		char *body;
+		size_t offset;
+
+		dprintf2(pstate,"BODY (%d/%d), SIZE %d\n", (yyvsp[(1) - (1)].position).start, (yyvsp[(1) - (1)].position).end, (yyvsp[(1) - (1)].position).end - (yyvsp[(1) - (1)].position).start);
+
+		body = PARSE_readmessagepart((yyvsp[(1) - (1)].position).opaque_start, (yyvsp[(1) - (1)].position).start, (yyvsp[(1) - (1)].position).end,
+		    &offset,yyscanner,pstate);
+
+		if (body == NULL) {
+			return(-1);
+		}
+		pstate->current_mimepart->opaque_body = body;
+		pstate->current_mimepart->body = body + offset;
+		pstate->current_mimepart->opaque_length = (yyvsp[(1) - (1)].position).end - (yyvsp[(1) - (1)].position).start - 2 + offset;
+		pstate->current_mimepart->length = pstate->current_mimepart->opaque_length - offset;
+	}
+    break;
+
+
+/* Line 1267 of yacc.c.  */
+#line 1915 "mimeparser.tab.c"
+      default: break;
+    }
+  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+
+  *++yyvsp = yyval;
+
+
+  /* Now `shift' the result of the reduction.  Determine what state
+     that goes to, based on the state we popped back to and the rule
+     number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTOKENS];
+
+  goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+  /* If not already recovering from an error, report this error.  */
+  if (!yyerrstatus)
+    {
+      ++yynerrs;
+#if ! YYERROR_VERBOSE
+      yyerror (pstate, yyscanner, YY_("syntax error"));
+#else
+      {
+	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+	  {
+	    YYSIZE_T yyalloc = 2 * yysize;
+	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
+	    if (yymsg != yymsgbuf)
+	      YYSTACK_FREE (yymsg);
+	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+	    if (yymsg)
+	      yymsg_alloc = yyalloc;
+	    else
+	      {
+		yymsg = yymsgbuf;
+		yymsg_alloc = sizeof yymsgbuf;
+	      }
+	  }
+
+	if (0 < yysize && yysize <= yymsg_alloc)
+	  {
+	    (void) yysyntax_error (yymsg, yystate, yychar);
+	    yyerror (pstate, yyscanner, yymsg);
+	  }
+	else
+	  {
+	    yyerror (pstate, yyscanner, YY_("syntax error"));
+	    if (yysize != 0)
+	      goto yyexhaustedlab;
+	  }
+      }
+#endif
+    }
+
+
+
+  if (yyerrstatus == 3)
+    {
+      /* If just tried and failed to reuse look-ahead token after an
+	 error, discard it.  */
+
+      if (yychar <= YYEOF)
+	{
+	  /* Return failure if at end of input.  */
+	  if (yychar == YYEOF)
+	    YYABORT;
+	}
+      else
+	{
+	  yydestruct ("Error: discarding",
+		      yytoken, &yylval, pstate, yyscanner);
+	  yychar = YYEMPTY;
+	}
+    }
+
+  /* Else will try to reuse look-ahead token after shifting the error
+     token.  */
+  goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR.  |
+`---------------------------------------------------*/
+yyerrorlab:
+
+  /* Pacify compilers like GCC when the user code never invokes
+     YYERROR and the label yyerrorlab therefore never appears in user
+     code.  */
+  if (/*CONSTCOND*/ 0)
+     goto yyerrorlab;
+
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYERROR.  */
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+  yystate = *yyssp;
+  goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR.  |
+`-------------------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
+
+  for (;;)
+    {
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+	{
+	  yyn += YYTERROR;
+	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+	    {
+	      yyn = yytable[yyn];
+	      if (0 < yyn)
+		break;
+	    }
+	}
+
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+	YYABORT;
+
+
+      yydestruct ("Error: popping",
+		  yystos[yystate], yyvsp, pstate, yyscanner);
+      YYPOPSTACK (1);
+      yystate = *yyssp;
+      YY_STACK_PRINT (yyss, yyssp);
+    }
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  *++yyvsp = yylval;
+
+
+  /* Shift the error token.  */
+  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here.  |
+`-------------------------------------*/
+yyacceptlab:
+  yyresult = 0;
+  goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here.  |
+`-----------------------------------*/
+yyabortlab:
+  yyresult = 1;
+  goto yyreturn;
+
+#ifndef yyoverflow
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here.  |
+`-------------------------------------------------*/
+yyexhaustedlab:
+  yyerror (pstate, yyscanner, YY_("memory exhausted"));
+  yyresult = 2;
+  /* Fall through.  */
+#endif
+
+yyreturn:
+  if (yychar != YYEOF && yychar != YYEMPTY)
+     yydestruct ("Cleanup: discarding lookahead",
+		 yytoken, &yylval, pstate, yyscanner);
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYABORT or YYACCEPT.  */
+  YYPOPSTACK (yylen);
+  YY_STACK_PRINT (yyss, yyssp);
+  while (yyssp != yyss)
+    {
+      yydestruct ("Cleanup: popping",
+		  yystos[*yyssp], yyvsp, pstate, yyscanner);
+      YYPOPSTACK (1);
+    }
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
+#endif
+#if YYERROR_VERBOSE
+  if (yymsg != yymsgbuf)
+    YYSTACK_FREE (yymsg);
+#endif
+  /* Make sure YYID is used.  */
+  return YYID (yyresult);
+}
+
+
+#line 539 "mimeparser.y"
+
+
+/*
+ * This function gets the specified part from the currently parsed message.
+ */
+static char *
+PARSE_readmessagepart(size_t opaque_start, size_t real_start, size_t end, 
+    size_t *offset, yyscan_t yyscanner, struct parser_state *pstate)
+{
+	size_t body_size;
+	size_t current;
+	size_t start;
+	char *body;
+
+	/* calculate start and offset markers for the opaque and
+	 * header stripped body message.
+	 */
+	if (opaque_start > 0) {
+		/* Multipart message */
+		if (real_start) {
+			if (real_start < opaque_start) {
+				mm_errno = MM_ERROR_PARSE;
+				mm_error_setmsg("internal incosistency (S:%d/O:%d)",
+				    real_start,
+				    opaque_start);
+				return(NULL);
+			}
+			start = opaque_start;
+			*offset = real_start - start;
+		/* Flat message */	
+		} else {	
+			start = opaque_start;
+			*offset = 0;
+		}	
+	} else {
+		start = real_start;
+		*offset = 0;
+	}
+
+	/* The next three cases should NOT happen anytime */
+	if (end <= start) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("internal incosistency,2");
+		mm_error_setlineno(pstate->lstate.lineno);
+		return(NULL);
+	}
+	if (start < *offset) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("internal incosistency, S:%d,O:%d,L:%d", start, offset, pstate->lstate.lineno);
+		mm_error_setlineno(pstate->lstate.lineno);
+		return(NULL);
+	}	
+	if (start < 0 || end < 0) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("internal incosistency,4");
+		mm_error_setlineno(pstate->lstate.lineno);
+		return(NULL);
+	}	
+
+	/* XXX: do we want to enforce a maximum body size? make it a
+	 * parser option? */
+
+	/* Read in the body message */
+	body_size = end - start;
+
+	if (body_size < 1) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("size of body cannot be < 1");
+		mm_error_setlineno(pstate->lstate.lineno);
+		return(NULL);
+	}	
+	
+	body = (char *)malloc(body_size + 1);
+	if (body == NULL) {
+		mm_errno = MM_ERROR_ERRNO;
+		return(NULL);
+	}	
+		
+	/* Get the message body either from a stream or a memory
+	 * buffer.
+	 */
+	if (mimeparser_yyget_in(yyscanner) != NULL) {
+		FILE *x = mimeparser_yyget_in(yyscanner);
+		current = ftell(x);
+		fseek(x, start - 1, SEEK_SET);
+		fread(body, body_size - 1, 1, x);
+		fseek(x, current, SEEK_SET);
+	} else if (pstate->lstate.message_buffer != NULL) {
+		strlcpy(body, pstate->lstate.message_buffer + start - 1, body_size);
+	} 
+	
+	return(body);
+
+}
+
+int
+yyerror(struct parser_state *pstate, void *yyscanner, const char *str)
+{
+	mm_errno = MM_ERROR_PARSE;
+	mm_error_setmsg("%s", str);
+	mm_error_setlineno(pstate->lstate.lineno);
+	return -1;
+}
+
+int 
+mimeparser_yywrap(void)
+{
+	return 1;
+}
+
+/**
+ * Sets the boundary value for the current message
+ */
+int 
+set_boundary(char *str, struct parser_state *pstate)
+{
+	size_t blen;
+
+	blen = strlen(str);
+
+	pstate->lstate.boundary_string = (char *)malloc(blen + 3);
+	pstate->lstate.endboundary_string = (char *)malloc(blen + 5);
+
+	if (pstate->lstate.boundary_string == NULL || pstate->lstate.endboundary_string == NULL) {
+		if (pstate->lstate.boundary_string != NULL) {
+			free(pstate->lstate.boundary_string);
+		}
+		if (pstate->lstate.endboundary_string != NULL) {
+			free(pstate->lstate.endboundary_string);
+		}	
+		return -1;
+	}
+	
+	pstate->ctx->boundary = xstrdup(str);
+
+	snprintf(pstate->lstate.boundary_string, blen + 3, "--%s", str);
+	snprintf(pstate->lstate.endboundary_string, blen + 5, "--%s--", str);
+
+	return 0;
+}
+
+/**
+ * Debug printf()
+ */
+int
+dprintf2(struct parser_state *pstate, const char *fmt, ...)
+{
+	va_list ap;
+	char *msg;
+	if (pstate->debug == 0) return 1;
+
+	va_start(ap, fmt);
+	vasprintf(&msg, fmt, ap);
+	va_end(ap);
+
+	fprintf(stderr, "%s", msg);
+	free(msg);
+
+	return 0;
+	
+}
+
+void reset_environ(struct parser_state *pstate)
+{
+	pstate->lstate.lineno = 0;
+	pstate->lstate.boundary_string = NULL;
+	pstate->lstate.endboundary_string = NULL;
+	pstate->lstate.message_buffer = NULL;
+	pstate->mime_parts = 0;
+	pstate->debug = 0;
+	pstate->envelope = NULL;
+	pstate->temppart = NULL;
+	pstate->ctype = NULL;
+	pstate->current_mimepart = NULL;
+
+	pstate->have_contenttype = 0;
+}
+/**
+ * Initializes the parser engine.
+ */
+int
+PARSER_initialize(struct parser_state *pstate, void *yyscanner)
+{
+	void reset_lexer_state(void *yyscanner, struct parser_state *);
+#if 0
+	if (pstate->ctx != NULL) {
+		xfree(pstate->ctx);
+		pstate->ctx = NULL;
+	}
+	if (pstate->envelope != NULL) {
+		xfree(pstate->envelope);
+		pstate->envelope = NULL;
+	}	
+	if (pstate->ctype != NULL) {
+		xfree(pstate->ctype);
+		pstate->ctype = NULL;
+	}	
+#endif
+	/* yydebug = 1; */
+	reset_environ(pstate);
+	reset_lexer_state(yyscanner,pstate);
+
+	pstate->envelope = mm_mimepart_new();
+	pstate->current_mimepart = pstate->envelope;
+	pstate->ctype = mm_content_new();
+
+	pstate->have_contenttype = 0;
+
+	return 1;
+}
+
+
+
diff --git a/main/minimime/mimeparser.tab.h b/main/minimime/mimeparser.tab.h
new file mode 100644
index 0000000000..6cf3f22a24
--- /dev/null
+++ b/main/minimime/mimeparser.tab.h
@@ -0,0 +1,112 @@
+/* A Bison parser, made by GNU Bison 2.3.  */
+
+/* Skeleton interface for Bison's Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     ANY = 258,
+     COLON = 259,
+     DASH = 260,
+     DQUOTE = 261,
+     ENDOFHEADERS = 262,
+     EOL = 263,
+     EOM = 264,
+     EQUAL = 265,
+     MIMEVERSION_HEADER = 266,
+     SEMICOLON = 267,
+     CONTENTDISPOSITION_HEADER = 268,
+     CONTENTENCODING_HEADER = 269,
+     CONTENTTYPE_HEADER = 270,
+     MAIL_HEADER = 271,
+     HEADERVALUE = 272,
+     BOUNDARY = 273,
+     ENDBOUNDARY = 274,
+     CONTENTTYPE_VALUE = 275,
+     TSPECIAL = 276,
+     WORD = 277,
+     BODY = 278,
+     PREAMBLE = 279,
+     POSTAMBLE = 280
+   };
+#endif
+/* Tokens.  */
+#define ANY 258
+#define COLON 259
+#define DASH 260
+#define DQUOTE 261
+#define ENDOFHEADERS 262
+#define EOL 263
+#define EOM 264
+#define EQUAL 265
+#define MIMEVERSION_HEADER 266
+#define SEMICOLON 267
+#define CONTENTDISPOSITION_HEADER 268
+#define CONTENTENCODING_HEADER 269
+#define CONTENTTYPE_HEADER 270
+#define MAIL_HEADER 271
+#define HEADERVALUE 272
+#define BOUNDARY 273
+#define ENDBOUNDARY 274
+#define CONTENTTYPE_VALUE 275
+#define TSPECIAL 276
+#define WORD 277
+#define BODY 278
+#define PREAMBLE 279
+#define POSTAMBLE 280
+
+
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 69 "mimeparser.y"
+{
+	int number;
+	char *string;
+	struct s_position position;
+}
+/* Line 1529 of yacc.c.  */
+#line 105 "mimeparser.tab.h"
+	YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
diff --git a/main/minimime/mimeparser.y b/main/minimime/mimeparser.y
new file mode 100644
index 0000000000..18f409f359
--- /dev/null
+++ b/main/minimime/mimeparser.y
@@ -0,0 +1,750 @@
+%{
+/*
+ * Copyright (c) 2004 Jann Fischer. 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.
+ * 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. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ */
+
+/**
+ * These are the grammatic definitions in yacc syntax to parse MIME conform
+ * messages.
+ *
+ * TODO:
+ *	- honour parse flags passed to us (partly done)
+ *	- parse Content-Disposition header (partly done)
+ *	- parse Content-Encoding header
+ */
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <errno.h>
+
+#include "mimeparser.h"
+#include "mm.h"
+#include "mm_internal.h"
+
+int set_boundary(char *,struct parser_state *);
+int mimeparser_yywrap(void);
+void reset_environ(struct parser_state *pstate);
+int PARSER_initialize(struct parser_state *pstate, void *yyscanner);
+
+typedef void *yyscan_t;
+
+static char *PARSE_readmessagepart(size_t, size_t, size_t, size_t *,yyscan_t, struct parser_state *);
+FILE *mimeparser_yyget_in (yyscan_t yyscanner );
+
+%}
+
+%pure-parser
+%parse-param {struct parser_state *pstate}
+%parse-param {void *yyscanner}
+%lex-param {void *yyscanner}
+
+%union
+{
+	int number;
+	char *string;
+	struct s_position position;
+}
+
+%token ANY
+%token COLON 
+%token DASH
+%token DQUOTE
+%token ENDOFHEADERS
+%token EOL
+%token EOM
+%token EQUAL
+%token MIMEVERSION_HEADER
+%token SEMICOLON
+
+%token <string> CONTENTDISPOSITION_HEADER
+%token <string> CONTENTENCODING_HEADER
+%token <string> CONTENTTYPE_HEADER
+%token <string> MAIL_HEADER
+%token <string> HEADERVALUE
+%token <string> BOUNDARY
+%token <string> ENDBOUNDARY
+%token <string> CONTENTTYPE_VALUE 
+%token <string> TSPECIAL
+%token <string> WORD
+
+%token <position> BODY
+%token <position> PREAMBLE
+%token <position> POSTAMBLE
+
+%type  <string> content_disposition
+%type  <string> contenttype_parameter_value
+%type  <string> mimetype
+%type  <string> body
+
+%start message
+
+%%
+
+/* This is a parser for a MIME-conform message, which is in either single
+ * part or multi part format.
+ */
+message : 
+	multipart_message
+	|
+	singlepart_message
+	;
+
+multipart_message:
+	headers preamble 
+	{ 
+		mm_context_attachpart(pstate->ctx, pstate->current_mimepart);
+		pstate->current_mimepart = mm_mimepart_new();
+		pstate->have_contenttype = 0;
+	}
+	mimeparts endboundary postamble
+	{
+		dprintf2(pstate,"This was a multipart message\n");
+	}
+	;
+
+singlepart_message:	
+	headers body
+	{
+		dprintf2(pstate,"This was a single part message\n");
+		mm_context_attachpart(pstate->ctx, pstate->current_mimepart);
+	}
+	;
+	
+headers :
+	header headers
+	|
+	end_headers
+	{
+		/* If we did not find a Content-Type header for the current
+		 * MIME part (or envelope), we create one and attach it.
+		 * According to the RFC, a type of "text/plain" and a
+		 * charset of "us-ascii" can be assumed.
+		 */
+		struct mm_content *ct;
+		struct mm_param *param;
+
+		if (!pstate->have_contenttype) {
+			ct = mm_content_new();
+			mm_content_settype(ct, "text/plain");
+			
+			param = mm_param_new();
+			param->name = xstrdup("charset");
+			param->value = xstrdup("us-ascii");
+
+			mm_content_attachtypeparam(ct, param);
+			mm_mimepart_attachcontenttype(pstate->current_mimepart, ct);
+		}	
+		pstate->have_contenttype = 0;
+	}
+	|
+	header
+	;
+
+preamble:
+	PREAMBLE
+	{
+		char *preamble;
+		size_t offset;
+		
+		if ($1.start != $1.end) {
+			preamble = PARSE_readmessagepart(0, $1.start, $1.end,
+			    &offset,yyscanner,pstate);
+			if (preamble == NULL) {
+				return(-1);
+			}
+			pstate->ctx->preamble = preamble;
+			dprintf2(pstate,"PREAMBLE:\n%s\n", preamble);
+		}
+	}
+	|
+	;
+
+postamble:
+	POSTAMBLE
+	{
+	}
+	|
+	;
+
+mimeparts:
+	mimeparts mimepart
+	|
+	mimepart
+	;
+
+mimepart:
+	boundary headers body
+	{
+
+		if (mm_context_attachpart(pstate->ctx, pstate->current_mimepart) == -1) {
+			mm_errno = MM_ERROR_ERRNO;
+			return(-1);
+		}	
+
+		pstate->temppart = mm_mimepart_new();
+		pstate->current_mimepart = pstate->temppart;
+		pstate->mime_parts++;
+	}
+	;
+	
+header	:
+	mail_header
+	|
+	contenttype_header
+	{
+		pstate->have_contenttype = 1;
+		if (mm_content_iscomposite(pstate->envelope->type)) {
+			pstate->ctx->messagetype = MM_MSGTYPE_MULTIPART;
+		} else {
+			pstate->ctx->messagetype = MM_MSGTYPE_FLAT;
+		}	
+	}
+	|
+	contentdisposition_header
+	|
+	contentencoding_header
+	|
+	mimeversion_header
+	|
+	invalid_header
+	{
+		if (pstate->parsemode != MM_PARSE_LOOSE) {
+			mm_errno = MM_ERROR_PARSE;
+			mm_error_setmsg("invalid header encountered");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		} else {
+			/* TODO: attach MM_WARNING_INVHDR */
+		}
+	}
+	;
+
+mail_header:
+	MAIL_HEADER COLON WORD EOL
+	{
+		struct mm_mimeheader *hdr;
+		hdr = mm_mimeheader_generate($1, $3);
+		mm_mimepart_attachheader(pstate->current_mimepart, hdr);
+	}
+	|
+	MAIL_HEADER COLON EOL
+	{
+		struct mm_mimeheader *hdr;
+
+		if (pstate->parsemode != MM_PARSE_LOOSE) {
+			mm_errno = MM_ERROR_MIME;
+			mm_error_setmsg("invalid header encountered");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		} else {
+			/* TODO: attach MM_WARNING_INVHDR */
+		}	
+		
+		hdr = mm_mimeheader_generate($1, xstrdup(""));
+		mm_mimepart_attachheader(pstate->current_mimepart, hdr);
+	}
+	;
+
+contenttype_header:
+	CONTENTTYPE_HEADER COLON mimetype EOL
+	{
+		mm_content_settype(pstate->ctype, "%s", $3);
+		mm_mimepart_attachcontenttype(pstate->current_mimepart, pstate->ctype);
+		dprintf2(pstate,"Content-Type -> %s\n", $3);
+		pstate->ctype = mm_content_new();
+	}
+	|
+	CONTENTTYPE_HEADER COLON mimetype contenttype_parameters EOL
+	{
+		mm_content_settype(pstate->ctype, "%s", $3);
+		mm_mimepart_attachcontenttype(pstate->current_mimepart, pstate->ctype);
+		dprintf2(pstate,"Content-Type (P) -> %s\n", $3);
+		pstate->ctype = mm_content_new();
+	}
+	;
+
+contentdisposition_header:
+	CONTENTDISPOSITION_HEADER COLON content_disposition EOL
+	{
+		dprintf2(pstate,"Content-Disposition -> %s\n", $3);
+		pstate->ctype->disposition_type = xstrdup($3);
+	}
+	|
+	CONTENTDISPOSITION_HEADER COLON content_disposition content_disposition_parameters EOL
+	{
+		dprintf2(pstate,"Content-Disposition (P) -> %s; params\n", $3);
+		pstate->ctype->disposition_type = xstrdup($3);
+	}
+	;
+
+content_disposition:
+	WORD
+	{
+		/*
+		 * According to RFC 2183, the content disposition value may
+		 * only be "inline", "attachment" or an extension token. We
+		 * catch invalid values here if we are not in loose parsing
+		 * mode.
+		 */
+		if (strcasecmp($1, "inline") && strcasecmp($1, "attachment")
+		    && strncasecmp($1, "X-", 2)) {
+			if (pstate->parsemode != MM_PARSE_LOOSE) {
+				mm_errno = MM_ERROR_MIME;
+				mm_error_setmsg("invalid content-disposition");
+				return(-1);
+			}	
+		} else {
+			/* TODO: attach MM_WARNING_INVHDR */
+		}	
+		$$ = $1;
+	}
+	;
+
+contentencoding_header:
+	CONTENTENCODING_HEADER COLON WORD EOL
+	{
+		dprintf2(pstate,"Content-Transfer-Encoding -> %s\n", $3);
+	}
+	;
+
+mimeversion_header:
+	MIMEVERSION_HEADER COLON WORD EOL
+	{
+		dprintf2(pstate,"MIME-Version -> '%s'\n", $3);
+	}
+	;
+
+invalid_header:
+	any EOL
+	;
+
+any:
+	any ANY
+	|
+	ANY
+	;
+	
+mimetype:
+	WORD '/' WORD
+	{
+		char type[255];
+		snprintf(type, sizeof(type), "%s/%s", $1, $3);
+		$$ = type;
+	}	
+	;
+
+contenttype_parameters: 
+	SEMICOLON contenttype_parameter contenttype_parameters
+	|
+	SEMICOLON contenttype_parameter
+	|
+	SEMICOLON
+	{
+		if (pstate->parsemode != MM_PARSE_LOOSE) {
+			mm_errno = MM_ERROR_MIME;
+			mm_error_setmsg("invalid Content-Type header");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		} else {
+			/* TODO: attach MM_WARNING_INVHDR */
+		}	
+	}
+	;
+
+content_disposition_parameters:
+	SEMICOLON content_disposition_parameter content_disposition_parameters
+	|
+	SEMICOLON content_disposition_parameter
+	|
+	SEMICOLON
+	{	
+		if (pstate->parsemode != MM_PARSE_LOOSE) {
+			mm_errno = MM_ERROR_MIME;
+			mm_error_setmsg("invalid Content-Disposition header");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		} else {
+			/* TODO: attach MM_WARNING_INVHDR */
+		}
+	}	
+	;
+
+contenttype_parameter:	
+	WORD EQUAL contenttype_parameter_value
+	{
+		struct mm_param *param;
+		param = mm_param_new();
+		
+		dprintf2(pstate,"Param: '%s', Value: '%s'\n", $1, $3);
+		
+		/* Catch an eventual boundary identifier */
+		if (!strcasecmp($1, "boundary")) {
+			if (pstate->lstate.boundary_string == NULL) {
+				set_boundary($3,pstate);
+			} else {
+				if (pstate->parsemode != MM_PARSE_LOOSE) {
+					mm_errno = MM_ERROR_MIME;
+					mm_error_setmsg("duplicate boundary "
+					    "found");
+					return -1;
+				} else {
+					/* TODO: attach MM_WARNING_DUPPARAM */
+				}
+			}
+		}
+
+		param->name = xstrdup($1);
+		param->value = xstrdup($3);
+
+		mm_content_attachtypeparam(pstate->ctype, param);
+	}
+	;
+
+content_disposition_parameter:
+	WORD EQUAL contenttype_parameter_value
+	{
+		struct mm_param *param;
+		param = mm_param_new();
+		
+		param->name = xstrdup($1);
+		param->value = xstrdup($3);
+
+		mm_content_attachdispositionparam(pstate->ctype, param);
+
+	}
+	;
+
+contenttype_parameter_value:
+	WORD
+	{
+		dprintf2(pstate,"contenttype_param_val: WORD=%s\n", $1);
+		$$ = $1;
+	}
+	|
+	TSPECIAL
+	{
+		dprintf2(pstate,"contenttype_param_val: TSPECIAL\n");
+		/* For broken MIME implementation */
+		if (pstate->parsemode != MM_PARSE_LOOSE) {
+			mm_errno = MM_ERROR_MIME;
+			mm_error_setmsg("tspecial without quotes");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		} else {
+			/* TODO: attach MM_WARNING_INVAL */
+		}	
+		$$ = $1;
+	}
+	|
+	'"' TSPECIAL '"'
+	{
+		dprintf2(pstate,"contenttype_param_val: \"TSPECIAL\"\n" );
+		$$ = $2;
+	}
+	;
+	
+end_headers	:
+	ENDOFHEADERS
+	{
+		dprintf2(pstate,"End of headers at line %d\n", pstate->lstate.lineno);
+	}
+	;
+
+boundary	:
+	BOUNDARY EOL
+	{
+		if (pstate->lstate.boundary_string == NULL) {
+			mm_errno = MM_ERROR_PARSE;
+			mm_error_setmsg("internal incosistency");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		}
+		if (strcmp(pstate->lstate.boundary_string, $1)) {
+			mm_errno = MM_ERROR_PARSE;
+			mm_error_setmsg("invalid boundary: '%s' (%d)", $1, strlen($1));
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		}
+		dprintf2(pstate,"New MIME part... (%s)\n", $1);
+	}
+	;
+
+endboundary	:
+	ENDBOUNDARY
+	{
+		if (pstate->lstate.endboundary_string == NULL) {
+			mm_errno = MM_ERROR_PARSE;
+			mm_error_setmsg("internal incosistency");
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		}
+		if (strcmp(pstate->lstate.endboundary_string, $1)) {
+			mm_errno = MM_ERROR_PARSE;
+			mm_error_setmsg("invalid end boundary: %s", $1);
+			mm_error_setlineno(pstate->lstate.lineno);
+			return(-1);
+		}
+		dprintf2(pstate,"End of MIME message\n");
+	}
+	;
+
+body:
+	BODY
+	{
+		char *body;
+		size_t offset;
+
+		dprintf2(pstate,"BODY (%d/%d), SIZE %d\n", $1.start, $1.end, $1.end - $1.start);
+
+		body = PARSE_readmessagepart($1.opaque_start, $1.start, $1.end,
+		    &offset,yyscanner,pstate);
+
+		if (body == NULL) {
+			return(-1);
+		}
+		pstate->current_mimepart->opaque_body = body;
+		pstate->current_mimepart->body = body + offset;
+		pstate->current_mimepart->opaque_length = $1.end - $1.start - 2 + offset;
+		pstate->current_mimepart->length = pstate->current_mimepart->opaque_length - offset;
+	}
+	;
+
+%%
+
+/*
+ * This function gets the specified part from the currently parsed message.
+ */
+static char *
+PARSE_readmessagepart(size_t opaque_start, size_t real_start, size_t end, 
+    size_t *offset, yyscan_t yyscanner, struct parser_state *pstate)
+{
+	size_t body_size;
+	size_t current;
+	size_t start;
+	char *body;
+
+	/* calculate start and offset markers for the opaque and
+	 * header stripped body message.
+	 */
+	if (opaque_start > 0) {
+		/* Multipart message */
+		if (real_start) {
+			if (real_start < opaque_start) {
+				mm_errno = MM_ERROR_PARSE;
+				mm_error_setmsg("internal incosistency (S:%d/O:%d)",
+				    real_start,
+				    opaque_start);
+				return(NULL);
+			}
+			start = opaque_start;
+			*offset = real_start - start;
+		/* Flat message */	
+		} else {	
+			start = opaque_start;
+			*offset = 0;
+		}	
+	} else {
+		start = real_start;
+		*offset = 0;
+	}
+
+	/* The next three cases should NOT happen anytime */
+	if (end <= start) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("internal incosistency,2");
+		mm_error_setlineno(pstate->lstate.lineno);
+		return(NULL);
+	}
+	if (start < *offset) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("internal incosistency, S:%d,O:%d,L:%d", start, offset, pstate->lstate.lineno);
+		mm_error_setlineno(pstate->lstate.lineno);
+		return(NULL);
+	}	
+	if (start < 0 || end < 0) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("internal incosistency,4");
+		mm_error_setlineno(pstate->lstate.lineno);
+		return(NULL);
+	}	
+
+	/* XXX: do we want to enforce a maximum body size? make it a
+	 * parser option? */
+
+	/* Read in the body message */
+	body_size = end - start;
+
+	if (body_size < 1) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("size of body cannot be < 1");
+		mm_error_setlineno(pstate->lstate.lineno);
+		return(NULL);
+	}	
+	
+	body = (char *)malloc(body_size + 1);
+	if (body == NULL) {
+		mm_errno = MM_ERROR_ERRNO;
+		return(NULL);
+	}	
+		
+	/* Get the message body either from a stream or a memory
+	 * buffer.
+	 */
+	if (mimeparser_yyget_in(yyscanner) != NULL) {
+		FILE *x = mimeparser_yyget_in(yyscanner);
+		current = ftell(x);
+		fseek(x, start - 1, SEEK_SET);
+		fread(body, body_size - 1, 1, x);
+		fseek(x, current, SEEK_SET);
+	} else if (pstate->lstate.message_buffer != NULL) {
+		strlcpy(body, pstate->lstate.message_buffer + start - 1, body_size);
+	} 
+	
+	return(body);
+
+}
+
+int
+yyerror(struct parser_state *pstate, void *yyscanner, const char *str)
+{
+	mm_errno = MM_ERROR_PARSE;
+	mm_error_setmsg("%s", str);
+	mm_error_setlineno(pstate->lstate.lineno);
+	return -1;
+}
+
+int 
+mimeparser_yywrap(void)
+{
+	return 1;
+}
+
+/**
+ * Sets the boundary value for the current message
+ */
+int 
+set_boundary(char *str, struct parser_state *pstate)
+{
+	size_t blen;
+
+	blen = strlen(str);
+
+	pstate->lstate.boundary_string = (char *)malloc(blen + 3);
+	pstate->lstate.endboundary_string = (char *)malloc(blen + 5);
+
+	if (pstate->lstate.boundary_string == NULL || pstate->lstate.endboundary_string == NULL) {
+		if (pstate->lstate.boundary_string != NULL) {
+			free(pstate->lstate.boundary_string);
+		}
+		if (pstate->lstate.endboundary_string != NULL) {
+			free(pstate->lstate.endboundary_string);
+		}	
+		return -1;
+	}
+	
+	pstate->ctx->boundary = xstrdup(str);
+
+	snprintf(pstate->lstate.boundary_string, blen + 3, "--%s", str);
+	snprintf(pstate->lstate.endboundary_string, blen + 5, "--%s--", str);
+
+	return 0;
+}
+
+/**
+ * Debug printf()
+ */
+int
+dprintf2(struct parser_state *pstate, const char *fmt, ...)
+{
+	va_list ap;
+	char *msg;
+	if (pstate->debug == 0) return 1;
+
+	va_start(ap, fmt);
+	vasprintf(&msg, fmt, ap);
+	va_end(ap);
+
+	fprintf(stderr, "%s", msg);
+	free(msg);
+
+	return 0;
+	
+}
+
+void reset_environ(struct parser_state *pstate)
+{
+	pstate->lstate.lineno = 0;
+	pstate->lstate.boundary_string = NULL;
+	pstate->lstate.endboundary_string = NULL;
+	pstate->lstate.message_buffer = NULL;
+	pstate->mime_parts = 0;
+	pstate->debug = 0;
+	pstate->envelope = NULL;
+	pstate->temppart = NULL;
+	pstate->ctype = NULL;
+	pstate->current_mimepart = NULL;
+
+	pstate->have_contenttype = 0;
+}
+/**
+ * Initializes the parser engine.
+ */
+int
+PARSER_initialize(struct parser_state *pstate, void *yyscanner)
+{
+	void reset_lexer_state(void *yyscanner, struct parser_state *);
+#if 0
+	if (pstate->ctx != NULL) {
+		xfree(pstate->ctx);
+		pstate->ctx = NULL;
+	}
+	if (pstate->envelope != NULL) {
+		xfree(pstate->envelope);
+		pstate->envelope = NULL;
+	}	
+	if (pstate->ctype != NULL) {
+		xfree(pstate->ctype);
+		pstate->ctype = NULL;
+	}	
+#endif
+	/* yydebug = 1; */
+	reset_environ(pstate);
+	reset_lexer_state(yyscanner,pstate);
+
+	pstate->envelope = mm_mimepart_new();
+	pstate->current_mimepart = pstate->envelope;
+	pstate->ctype = mm_content_new();
+
+	pstate->have_contenttype = 0;
+
+	return 1;
+}
+
+
diff --git a/main/minimime/mimeparser.yy.c b/main/minimime/mimeparser.yy.c
new file mode 100644
index 0000000000..40d6bd9fa9
--- /dev/null
+++ b/main/minimime/mimeparser.yy.c
@@ -0,0 +1,2622 @@
+#line 2 "mimeparser.yy.c"
+
+#line 4 "mimeparser.yy.c"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 33
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+#if __STDC__
+
+#define YY_USE_CONST
+
+#endif	/* __STDC__ */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* An opaque pointer. */
+#ifndef YY_TYPEDEF_YY_SCANNER_T
+#define YY_TYPEDEF_YY_SCANNER_T
+typedef void* yyscan_t;
+#endif
+
+/* For convenience, these vars (plus the bison vars far below)
+   are macros in the reentrant scanner. */
+#define yyin yyg->yyin_r
+#define yyout yyg->yyout_r
+#define yyextra yyg->yyextra_r
+#define yyleng yyg->yyleng_r
+#define yytext yyg->yytext_r
+#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
+#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
+#define yy_flex_debug yyg->yy_flex_debug_r
+
+int mimeparser_yylex_init (yyscan_t* scanner);
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN yyg->yy_start = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START ((yyg->yy_start - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE mimeparser_yyrestart(yyin ,yyscanner )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
+     *       access to the local variable yy_act. Since yyless() is a macro, it would break
+     *       existing scanners that call yyless() from OUTSIDE mimeparser_yylex. 
+     *       One obvious solution it to make yy_act a global. I tried that, and saw
+     *       a 5% performance hit in a non-yylineno scanner, because yy_act is
+     *       normally declared as a register variable-- so it is not worth it.
+     */
+    #define  YY_LESS_LINENO(n) \
+            do { \
+                int yyl;\
+                for ( yyl = n; yyl < yyleng; ++yyl )\
+                    if ( yytext[yyl] == '\n' )\
+                        --yylineno;\
+            }while(0)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = yyg->yy_hold_char; \
+		YY_RESTORE_YY_MORE_OFFSET \
+		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
+
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ */
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef unsigned int yy_size_t;
+#endif
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	int yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via mimeparser_yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
+                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
+
+void mimeparser_yyrestart (FILE *input_file ,yyscan_t yyscanner );
+void mimeparser_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
+YY_BUFFER_STATE mimeparser_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
+void mimeparser_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
+void mimeparser_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
+void mimeparser_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
+void mimeparser_yypop_buffer_state (yyscan_t yyscanner );
+
+static void mimeparser_yyensure_buffer_stack (yyscan_t yyscanner );
+static void mimeparser_yy_load_buffer_state (yyscan_t yyscanner );
+static void mimeparser_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
+
+#define YY_FLUSH_BUFFER mimeparser_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
+
+YY_BUFFER_STATE mimeparser_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
+YY_BUFFER_STATE mimeparser_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
+YY_BUFFER_STATE mimeparser_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
+
+void *mimeparser_yyalloc (yy_size_t ,yyscan_t yyscanner );
+void *mimeparser_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
+void mimeparser_yyfree (void * ,yyscan_t yyscanner );
+
+#define yy_new_buffer mimeparser_yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        mimeparser_yyensure_buffer_stack (yyscanner); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            mimeparser_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        mimeparser_yyensure_buffer_stack (yyscanner); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            mimeparser_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+typedef unsigned char YY_CHAR;
+
+typedef int yy_state_type;
+
+#define yytext_ptr yytext_r
+
+static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
+static int yy_get_next_buffer (yyscan_t yyscanner );
+static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	yyg->yytext_ptr = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	yyg->yy_hold_char = *yy_cp; \
+	*yy_cp = '\0'; \
+	yyg->yy_c_buf_p = yy_cp;
+
+#define YY_NUM_RULES 30
+#define YY_END_OF_BUFFER 31
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_acclist[179] =
+    {   0,
+       31,    2,   29,   30,   28,   30,    2,   29,   30,    1,
+        2,   29,   30,    3,   28,   30,    2,   29,   30,   29,
+       30,    5,   28,   30,   29,   30,    4,   29,   30,    7,
+       29,   30,    7,   13,   29,   30,    8,   28,   30,    7,
+       29,   30,    7,   11,   29,   30,    7,   12,   29,   30,
+        7,   12,   29,   30,    7,    9,   29,   30,    7,   10,
+       29,   30,    8,   28,   30,   29,   30,   14,   29,   30,
+       15,   29,   30,   29,   30,   20,   29,   30,   18,   28,
+       30,   19,   29,   30,   20,   29,   30,   27,   29,   30,
+       21,   28,   30,   27,   29,   30,   26,   29,   30,   26,
+
+       29,   30,   26,   29,   30,   22,   29,   30,   24,   28,
+       30,   29,   30,   23,   29,   30,   25,   28,   30,   29,
+       30,   28,    1,    1,    3,   28,    5,   28,    7,    7,
+        7,   13,    6,    8,   28,    7,   12,    7,   12,    7,
+        8,   28,   14,   20,   18,   28,   20,   21,   28,   22,
+       24,   28,   23,   25,   28,    6,    9,   17,   20,   17,
+        7,    7,    6,    7,    7,    9,   17,   20,    7,    7,
+        6,    7,    7,    9,   16,   17,   20,    7
+    } ;
+
+static yyconst flex_int16_t yy_accept[112] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    2,    5,    7,   10,   14,
+       17,   20,   22,   25,   27,   30,   33,   37,   40,   43,
+       47,   51,   55,   59,   63,   66,   68,   71,   74,   76,
+       79,   82,   85,   88,   91,   94,   97,  100,  103,  106,
+      109,  112,  114,  117,  120,  122,  123,  124,  125,  127,
+      129,  130,  130,  131,  133,  134,  136,  138,  140,  140,
+      141,  143,  144,  145,  147,  148,  150,  150,  151,  153,
+      154,  156,  156,  156,  157,  158,  158,  160,  161,  162,
+
+      163,  165,  167,  169,  170,  171,  173,  175,  178,  179,
+      179
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    5,    1,    6,    1,    1,    1,    1,    7,    7,
+        7,    1,    7,    7,    8,    9,   10,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   12,   13,    7,
+       14,    7,    7,    7,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       16,    1,   16,    1,   11,    1,   15,   15,   15,   15,
+
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,    1,   17,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yyconst flex_int32_t yy_meta[18] =
+    {   0,
+        1,    1,    2,    3,    4,    1,    4,    5,    4,    4,
+        5,    4,    4,    4,    5,    1,    1
+    } ;
+
+static yyconst flex_int16_t yy_base[128] =
+    {   0,
+        0,    2,    4,   15,   28,   38,   50,    0,   67,    0,
+        6,    8,   10,   82,   12,   17,   19,   88,   21,   23,
+       25,   30,   32,   34,  228,  253,  253,  224,  208,  253,
+      219,  253,  253,  165,  253,   40,   95,   43,   43,   84,
+      110,  119,   90,   98,  253,  155,    0,  253,  153,    0,
+      253,  148,  131,  253,  253,  132,  253,  128,  116,    0,
+      253,  119,    0,  253,  108,  253,    0,   80,  253,  253,
+      100,  103,  103,    0,  118,  127,    0,    0,  131,  106,
+      253,    0,    0,  253,  136,  253,    0,    0,  253,    0,
+      253,  138,  139,  143,  144,  145,  153,    0,    0,  155,
+
+      160,  161,   81,  112,  169,  162,  173,   41,  173,  253,
+      178,  183,  188,  193,  198,  203,  208,   34,  213,  215,
+      220,  225,  230,  235,  237,  242,  247
+    } ;
+
+static yyconst flex_int16_t yy_def[128] =
+    {   0,
+      111,  111,  111,  111,  112,  112,  110,    7,  110,    9,
+      112,  112,  113,  113,  114,  114,  115,  115,  116,  116,
+      117,  117,  112,  112,  110,  110,  110,  110,  118,  110,
+      110,  110,  110,  110,  110,  119,  119,  110,  119,  119,
+      119,   41,  119,  119,  110,  110,  120,  110,  110,  121,
+      110,  110,  121,  110,  110,  110,  110,  110,  110,  122,
+      110,  110,  123,  110,  110,  110,  118,  118,  110,  110,
+      119,  110,  119,   37,  110,  110,   41,   42,  110,  119,
+      110,  120,  121,  110,  124,  110,  125,  122,  110,  123,
+      110,  126,  110,  126,  126,  110,  124,  125,  127,  127,
+
+      127,  127,   97,  127,  127,  105,  105,   97,  127,    0,
+      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
+      110,  110,  110,  110,  110,  110,  110
+    } ;
+
+static yyconst flex_int16_t yy_nxt[271] =
+    {   0,
+      110,  110,   27,   28,   27,   28,   27,   28,   27,   49,
+       27,   49,   51,   52,   55,   56,   29,   30,   31,   55,
+       56,   55,   58,   61,   62,   61,   62,   64,   65,   29,
+       33,   34,   64,   65,   27,   49,   27,   49,   67,   35,
+       33,   34,   72,   73,   75,   76,   73,   75,  108,   35,
+       36,   37,   38,   39,   37,   40,   41,   42,   42,   36,
+       42,   36,   43,   44,   42,   41,   37,   32,   32,   45,
+       46,   47,   48,   47,   47,   47,   47,   47,   47,   47,
+       47,   47,   32,   32,   51,   52,   72,   73,  108,   53,
+       55,   58,   79,   80,   68,   59,   74,   72,   73,   74,
+
+       72,   73,   72,   73,   92,   93,   73,   92,   96,   73,
+       91,   74,   72,   73,   72,  109,   77,   77,   77,   75,
+       77,   89,   75,   87,   77,   77,   78,   78,   94,   78,
+       86,   94,   95,   78,   86,   95,   83,   83,   85,  100,
+       92,   83,  100,   92,  101,  102,   95,  101,  102,   95,
+       84,   83,   83,   83,   83,   66,  105,   81,   83,  105,
+      103,  106,  107,  106,  106,  107,  106,   70,   83,   83,
+      105,   72,  109,  105,  107,   93,  109,  107,   26,   26,
+       26,   26,   26,   32,   32,   32,   32,   32,   50,   50,
+       50,   50,   50,   54,   54,   54,   54,   54,   57,   57,
+
+       57,   57,   57,   60,   60,   60,   60,   60,   63,   63,
+       63,   63,   63,   71,   71,   71,   71,   71,   82,   82,
+       83,   69,   68,   83,   83,   88,   66,  110,   88,   88,
+       90,  110,  110,   90,   90,   97,  110,  110,   97,   97,
+       98,   98,   99,  110,   99,   99,   99,  104,  110,  104,
+      104,  104,   25,  110,  110,  110,  110,  110,  110,  110,
+      110,  110,  110,  110,  110,  110,  110,  110,  110,  110
+    } ;
+
+static yyconst flex_int16_t yy_chk[271] =
+    {   0,
+        0,    0,    1,    1,    2,    2,    3,    3,   11,   11,
+       12,   12,   13,   13,   15,   15,    2,    4,    4,   16,
+       16,   17,   17,   19,   19,   20,   20,   21,   21,    4,
+        5,    5,   22,   22,   23,   23,   24,   24,  118,    5,
+        6,    6,   36,   36,   38,   39,   39,   38,  108,    6,
+        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
+        7,    7,    7,    7,    7,    7,    7,    9,    9,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
+        9,    9,    9,    9,   14,   14,   40,   40,  103,   14,
+       18,   18,   43,   43,   68,   18,   37,   37,   37,   37,
+
+       44,   44,   71,   71,   72,   73,   73,   72,   80,   80,
+       65,   37,   41,   41,  104,  104,   41,   41,   41,   75,
+       41,   62,   75,   59,   41,   41,   42,   42,   76,   42,
+       58,   76,   79,   42,   56,   79,   85,   85,   53,   92,
+       93,   85,   92,   93,   94,   95,   96,   94,   95,   96,
+       52,   85,   85,   97,   97,   49,  100,   46,   97,  100,
+       97,  101,  102,  106,  101,  102,  106,   34,   97,   97,
+      105,  105,  105,  105,  107,  109,  109,  107,  111,  111,
+      111,  111,  111,  112,  112,  112,  112,  112,  113,  113,
+      113,  113,  113,  114,  114,  114,  114,  114,  115,  115,
+
+      115,  115,  115,  116,  116,  116,  116,  116,  117,  117,
+      117,  117,  117,  119,  119,  119,  119,  119,  120,  120,
+      121,   31,   29,  121,  121,  122,   28,   25,  122,  122,
+      123,    0,    0,  123,  123,  124,    0,    0,  124,  124,
+      125,  125,  126,    0,  126,  126,  126,  127,    0,  127,
+      127,  127,  110,  110,  110,  110,  110,  110,  110,  110,
+      110,  110,  110,  110,  110,  110,  110,  110,  110,  110
+    } ;
+
+/* Table of booleans, true if rule could match eol. */
+static yyconst flex_int32_t yy_rule_can_match_eol[31] =
+    {   0,
+0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+    0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0,     };
+
+#define REJECT \
+{ \
+*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ \
+yy_cp = yyg->yy_full_match; /* restore poss. backed-over text */ \
+++yyg->yy_lp; \
+goto find_rule; \
+}
+
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+#line 1 "mimeparser.l"
+#line 2 "mimeparser.l"
+/*
+ * Copyright (c) 2004 Jann Fischer. 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.
+ * 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. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ */
+
+/**
+ * This is a lexer file for parsing MIME compatible messages. It is intended
+ * to satisfy at least RFC 2045 (Format of Internet Message Bodies). It still
+ * has quite a few problems:
+ *
+ *	- The parsing could probably be done in a more elegant way
+ *	- I don't know what performance impact REJECT has on the parser
+ */
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+
+#include "mimeparser.h"
+#include "mimeparser.tab.h"
+
+#define NAMEOF(v) #v
+/* BC() is a debug wrapper for lex' BEGIN() macro */
+#define BC(x) do { \
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner); \
+	BEGIN(x); \
+	lstate->condition = x; \
+} while(0);
+
+#define ZERO(x) memset(x, '\0', sizeof(x))
+
+#define PREALLOC_BUFFER	100000
+#undef YY_BUF_SIZE
+#define YY_BUF_SIZE 65536
+
+enum header_states
+{
+	STATE_MAIL = 0,
+	STATE_CTYPE,
+	STATE_CDISP,
+	STATE_CENC,
+	STATE_MIME
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 658 "mimeparser.yy.c"
+
+#define INITIAL 0
+#define headers 1
+#define header 2
+#define headervalue 3
+#define tspecialvalue 4
+#define comment 5
+#define body 6
+#define postamble 7
+#define preamble 8
+#define boundary 9
+#define endboundary 10
+#define endoffile 11
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+/* Holds the entire state of the reentrant scanner. */
+struct yyguts_t
+    {
+
+    /* User-defined. Not touched by flex. */
+    YY_EXTRA_TYPE yyextra_r;
+
+    /* The rest are the same as the globals declared in the non-reentrant scanner. */
+    FILE *yyin_r, *yyout_r;
+    size_t yy_buffer_stack_top; /**< index of top of stack. */
+    size_t yy_buffer_stack_max; /**< capacity of stack. */
+    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
+    char yy_hold_char;
+    int yy_n_chars;
+    int yyleng_r;
+    char *yy_c_buf_p;
+    int yy_init;
+    int yy_start;
+    int yy_did_buffer_switch_on_eof;
+    int yy_start_stack_ptr;
+    int yy_start_stack_depth;
+    int *yy_start_stack;
+    yy_state_type yy_last_accepting_state;
+    char* yy_last_accepting_cpos;
+
+    int yylineno_r;
+    int yy_flex_debug_r;
+
+    yy_state_type *yy_state_buf;
+    yy_state_type *yy_state_ptr;
+    char *yy_full_match;
+    int yy_lp;
+
+    char *yytext_r;
+    int yy_more_flag;
+    int yy_more_len;
+
+    YYSTYPE * yylval_r;
+
+    }; /* end struct yyguts_t */
+
+static int yy_init_globals (yyscan_t yyscanner );
+
+    /* This must go here because YYSTYPE and YYLTYPE are included
+     * from bison output in section 1.*/
+    #    define yylval yyg->yylval_r
+    
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int mimeparser_yylex_destroy (yyscan_t yyscanner );
+
+int mimeparser_yyget_debug (yyscan_t yyscanner );
+
+void mimeparser_yyset_debug (int debug_flag ,yyscan_t yyscanner );
+
+YY_EXTRA_TYPE mimeparser_yyget_extra (yyscan_t yyscanner );
+
+void mimeparser_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
+
+FILE *mimeparser_yyget_in (yyscan_t yyscanner );
+
+void mimeparser_yyset_in  (FILE * in_str ,yyscan_t yyscanner );
+
+FILE *mimeparser_yyget_out (yyscan_t yyscanner );
+
+void mimeparser_yyset_out  (FILE * out_str ,yyscan_t yyscanner );
+
+int mimeparser_yyget_leng (yyscan_t yyscanner );
+
+char *mimeparser_yyget_text (yyscan_t yyscanner );
+
+int mimeparser_yyget_lineno (yyscan_t yyscanner );
+
+void mimeparser_yyset_lineno (int line_number ,yyscan_t yyscanner );
+
+YYSTYPE * mimeparser_yyget_lval (yyscan_t yyscanner );
+
+void mimeparser_yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int mimeparser_yywrap (yyscan_t yyscanner );
+#else
+extern int mimeparser_yywrap (yyscan_t yyscanner );
+#endif
+#endif
+
+    static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
+    
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (yyscan_t yyscanner );
+#else
+static int input (yyscan_t yyscanner );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+		{ \
+		int c = '*'; \
+		size_t n; \
+		for ( n = 0; n < max_size && \
+			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+			buf[n] = (char) c; \
+		if ( c == '\n' ) \
+			buf[n++] = (char) c; \
+		if ( c == EOF && ferror( yyin ) ) \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+		result = n; \
+		} \
+	else \
+		{ \
+		errno=0; \
+		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
+			{ \
+			if( errno != EINTR) \
+				{ \
+				YY_FATAL_ERROR( "input in flex scanner failed" ); \
+				break; \
+				} \
+			errno=0; \
+			clearerr(yyin); \
+			} \
+		}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int mimeparser_yylex \
+               (YYSTYPE * yylval_param ,yyscan_t yyscanner);
+
+#define YY_DECL int mimeparser_yylex \
+               (YYSTYPE * yylval_param , yyscan_t yyscanner)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	if ( yyleng > 0 ) \
+		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
+				(yytext[yyleng - 1] == '\n'); \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+#line 94 "mimeparser.l"
+
+
+#line 909 "mimeparser.yy.c"
+
+    yylval = yylval_param;
+
+	if ( !yyg->yy_init )
+		{
+		yyg->yy_init = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+        /* Create the reject buffer large enough to save one state per allowed character. */
+        if ( ! yyg->yy_state_buf )
+            yyg->yy_state_buf = (yy_state_type *)mimeparser_yyalloc(YY_STATE_BUF_SIZE  ,yyscanner);
+
+		if ( ! yyg->yy_start )
+			yyg->yy_start = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			mimeparser_yyensure_buffer_stack (yyscanner);
+			YY_CURRENT_BUFFER_LVALUE =
+				mimeparser_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
+		}
+
+		mimeparser_yy_load_buffer_state(yyscanner );
+		}
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = yyg->yy_c_buf_p;
+
+		/* Support of yytext. */
+		*yy_cp = yyg->yy_hold_char;
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = yyg->yy_start;
+		yy_current_state += YY_AT_BOL();
+
+		yyg->yy_state_ptr = yyg->yy_state_buf;
+		*yyg->yy_state_ptr++ = yy_current_state;
+
+yy_match:
+		do
+			{
+			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+				{
+				yy_current_state = (int) yy_def[yy_current_state];
+				if ( yy_current_state >= 111 )
+					yy_c = yy_meta[(unsigned int) yy_c];
+				}
+			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+			*yyg->yy_state_ptr++ = yy_current_state;
+			++yy_cp;
+			}
+		while ( yy_base[yy_current_state] != 253 );
+
+yy_find_action:
+		yy_current_state = *--yyg->yy_state_ptr;
+		yyg->yy_lp = yy_accept[yy_current_state];
+find_rule: /* we branch to this label when backing up */
+		for ( ; ; ) /* until we find what rule we matched */
+			{
+			if ( yyg->yy_lp && yyg->yy_lp < yy_accept[yy_current_state + 1] )
+				{
+				yy_act = yy_acclist[yyg->yy_lp];
+					{
+					yyg->yy_full_match = yy_cp;
+					break;
+					}
+				}
+			--yy_cp;
+			yy_current_state = *--yyg->yy_state_ptr;
+			yyg->yy_lp = yy_accept[yy_current_state];
+			}
+
+		YY_DO_BEFORE_ACTION;
+
+		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
+			{
+			int yyl;
+			for ( yyl = 0; yyl < yyleng; ++yyl )
+				if ( yytext[yyl] == '\n' )
+					   
+    do{ yylineno++;
+        yycolumn=0;
+    }while(0)
+;
+			}
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+case 1:
+YY_RULE_SETUP
+#line 96 "mimeparser.l"
+{
+	yylval_param->string=strdup(yytext); 
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+	BC(header);
+
+	/* Depending on what header we are processing, we enter a different
+	 * state and return a different value.
+	 */
+	if (!strcasecmp(yytext, "Content-Type")) {
+		lstate->header_state = STATE_CTYPE;
+		return CONTENTTYPE_HEADER;
+	} else if (!strcasecmp(yytext, "Content-Transfer-Encoding")) {
+		lstate->header_state = STATE_CENC;
+		return CONTENTENCODING_HEADER;
+	} else if (!strcasecmp(yytext, "Content-Disposition")) {
+		lstate->header_state = STATE_CDISP;
+		return CONTENTDISPOSITION_HEADER;
+	} else if (!strcasecmp(yytext, "MIME-Version")) {
+		lstate->header_state = STATE_MAIL;
+		return MIMEVERSION_HEADER;
+	} else {
+		lstate->header_state = STATE_MAIL;
+		return MAIL_HEADER;
+	}
+}
+	YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 123 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	/* dprintf2("Unknown header char: %c\n", *yytext); */
+	lstate->current_pos += yyleng;
+	return ANY;
+}
+	YY_BREAK
+case 3:
+/* rule 3 can match eol */
+YY_RULE_SETUP
+#line 130 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->lineno++; 
+
+	lstate->current_pos += yyleng;
+
+	/* This marks the end of headers. Depending on whether we are in the
+	 * envelope currently we need to parse either a body or the preamble
+	 * now.
+	 */
+	if (lstate->is_envelope == 0 || lstate->boundary_string == NULL) {
+		BC(body);
+		lstate->body_start = lstate->current_pos;
+	} else {
+		lstate->is_envelope = 0;
+		lstate->preamble_start = lstate->current_pos;
+		BC(preamble);
+	}	
+
+	return ENDOFHEADERS;
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 152 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	BC(headervalue); 
+	lstate->current_pos += yyleng;
+	return COLON;
+}	
+	YY_BREAK
+case 5:
+/* rule 5 can match eol */
+YY_RULE_SETUP
+#line 159 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	BC(headers);
+	/* dprintf2("Invalid header, returning EOL\n"); */
+	lstate->current_pos += yyleng;
+	return EOL;
+}	
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 167 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+}
+	YY_BREAK
+case 7:
+/* rule 7 can match eol */
+YY_RULE_SETUP
+#line 172 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	if (lstate->header_state != STATE_MAIL && lstate->header_state != STATE_CENC) {
+		REJECT;
+	}
+	lstate->current_pos += yyleng;
+	while (*yytext && isspace(*yytext)) yytext++;
+	/* Do we actually have a header value? */
+	if (*yytext == '\0') {
+		yylval_param->string = strdup("");
+	} else {
+		yylval_param->string=strdup(yytext); 
+		lstate->lineno += count_lines(yytext);
+	}	
+	return WORD;
+}
+	YY_BREAK
+case 8:
+/* rule 8 can match eol */
+YY_RULE_SETUP
+#line 189 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	/* marks the end of one header line */
+	lstate->lineno++;
+	BC(headers);
+	lstate->current_pos += yyleng;
+	return EOL;
+}
+	YY_BREAK
+case 9:
+/* rule 9 can match eol */
+YY_RULE_SETUP
+#line 198 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->lineno += count_lines(yytext);
+	lstate->current_pos += yyleng;
+	return SEMICOLON;
+}
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 205 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+	return EQUAL;
+}
+	YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 211 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	BC(tspecialvalue);
+	lstate->current_pos += yyleng;
+	return *yytext;
+}
+	YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 218 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	yylval_param->string=strdup(yytext);
+	lstate->lineno += count_lines(yytext);
+	lstate->current_pos += yyleng;
+	return WORD;
+}
+	YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 226 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+}	
+	YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 231 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->lineno += count_lines(yytext);
+	yylval_param->string=strdup(yytext);
+	lstate->current_pos += yyleng;
+	return TSPECIAL;
+}
+	YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 239 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	BC(headervalue);
+	lstate->current_pos += yyleng;
+	return *yytext;
+}
+	YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 246 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	/**
+	 * Make sure we only catch matching boundaries, and not other lines
+	 * that begin and end with two dashes. If we have catched a valid
+	 * end boundary, which actually ends a body, we save the current
+	 * position, put the token back on the input stream and let the
+	 * endboundary condition parse the actual token.
+	 */
+	if (lstate->endboundary_string != NULL) {
+		if (strcmp(lstate->endboundary_string, yytext)) {
+			/* dprintf2("YYTEXT != end_boundary: '%s'\n", yytext); */
+			REJECT;
+		} else {
+			lstate->current_pos += yyleng;
+			/* dprintf2("YYTEXT == lstate->end_boundary: '%s'\n", yytext); */
+			if (lstate->body_start) {
+				yylval_param->position.opaque_start = 
+				    lstate->body_opaque_start;
+				yylval_param->position.start = lstate->body_start;
+				yylval_param->position.end = lstate->current_pos - yyleng;
+				lstate->body_opaque_start = 0;
+				lstate->body_start = 0;
+				lstate->body_end = 0;
+				yyless(0);
+				BC(endboundary);
+				return BODY;
+			}	
+		}
+	} else {
+	}	
+
+	REJECT;
+}
+	YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 281 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	/**
+	 * Make sure we only catch matching boundaries, and not other lines
+	 * that begin with two dashes.
+	 */
+	if (lstate->boundary_string != NULL) {
+		if (strcmp(lstate->boundary_string, yytext)) {
+			/* dprintf2("YYTEXT != boundary: '%s'\n", yytext);*/
+			REJECT;
+		} else {
+			/* dprintf2("YYTEXT == boundary: '%s'\n", yytext);*/
+			if (lstate->body_start) {
+				yylval_param->position.opaque_start = lstate->body_opaque_start;
+				yylval_param->position.start = lstate->body_start;
+				yylval_param->position.end = lstate->current_pos;
+				lstate->body_opaque_start = 0;
+				lstate->body_start = 0;
+				lstate->body_end = 0;
+				yyless(0);
+				BC(boundary);
+				return BODY;
+			} else if (lstate->preamble_start) {
+				yylval_param->position.start = lstate->preamble_start;
+				yylval_param->position.end = lstate->current_pos;
+				lstate->preamble_start = lstate->preamble_end = 0;
+				yyless(0);
+				BC(boundary);
+				return PREAMBLE;
+			} else {
+				BC(boundary);
+				yylval_param->string = strdup(yytext);
+				lstate->current_pos += yyleng;
+				return(BOUNDARY);
+			}
+		}
+	} else {
+	}	
+
+	REJECT;
+}
+	YY_BREAK
+case 18:
+/* rule 18 can match eol */
+YY_RULE_SETUP
+#line 323 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+	lstate->lineno++;
+}
+	YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 329 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+	/* dprintf2("stray CR in body...\n"); */
+}
+	YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 335 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+}
+	YY_BREAK
+case YY_STATE_EOF(body):
+#line 340 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	if (lstate->boundary_string == NULL && lstate->body_start) {
+		yylval_param->position.opaque_start = 0;
+		yylval_param->position.start = lstate->body_start;
+		yylval_param->position.end = lstate->current_pos;
+		lstate->body_start = 0;
+		return BODY;
+	} else if (lstate->body_start) {
+		return POSTAMBLE;
+	}	
+	yyterminate();
+}	
+	YY_BREAK
+case 21:
+/* rule 21 can match eol */
+YY_RULE_SETUP
+#line 354 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	/* dprintf2("Preamble CR/LF at line %d\n", lineno); */
+	lstate->lineno++; 
+	lstate->current_pos += yyleng;
+}	
+	YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 361 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	yylval_param->string = strdup(yytext);
+	lstate->current_pos += yyleng;
+	return BOUNDARY;
+}
+	YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 368 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	yylval_param->string = strdup(yytext);
+	lstate->current_pos += yyleng;
+	return ENDBOUNDARY;
+}
+	YY_BREAK
+case 24:
+/* rule 24 can match eol */
+YY_RULE_SETUP
+#line 375 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	BC(headers);
+	lstate->lineno++;
+	lstate->current_pos += yyleng;
+	lstate->body_opaque_start = lstate->current_pos;
+	return EOL;
+}
+	YY_BREAK
+case 25:
+/* rule 25 can match eol */
+YY_RULE_SETUP
+#line 384 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	BC(postamble);
+	lstate->lineno++;
+	lstate->current_pos += yyleng;
+}
+	YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 391 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+}
+	YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 397 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+}
+	YY_BREAK
+case 28:
+/* rule 28 can match eol */
+YY_RULE_SETUP
+#line 402 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->lineno++;
+	lstate->current_pos += yyleng;
+	return EOL;
+}
+	YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 409 "mimeparser.l"
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(yyscanner);
+	lstate->current_pos += yyleng;
+	return((int)*yytext);
+}
+	YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 416 "mimeparser.l"
+ECHO;
+	YY_BREAK
+#line 1437 "mimeparser.yy.c"
+			case YY_STATE_EOF(INITIAL):
+			case YY_STATE_EOF(headers):
+			case YY_STATE_EOF(header):
+			case YY_STATE_EOF(headervalue):
+			case YY_STATE_EOF(tspecialvalue):
+			case YY_STATE_EOF(comment):
+			case YY_STATE_EOF(postamble):
+			case YY_STATE_EOF(preamble):
+			case YY_STATE_EOF(boundary):
+			case YY_STATE_EOF(endboundary):
+			case YY_STATE_EOF(endoffile):
+				yyterminate();
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = yyg->yy_hold_char;
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * mimeparser_yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state( yyscanner );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
+
+			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++yyg->yy_c_buf_p;
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = yyg->yy_c_buf_p;
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer( yyscanner ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				yyg->yy_did_buffer_switch_on_eof = 0;
+
+				if ( mimeparser_yywrap(yyscanner ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! yyg->yy_did_buffer_switch_on_eof )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				yyg->yy_c_buf_p =
+					yyg->yytext_ptr + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state( yyscanner );
+
+				yy_cp = yyg->yy_c_buf_p;
+				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				yyg->yy_c_buf_p =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
+
+				yy_current_state = yy_get_previous_state( yyscanner );
+
+				yy_cp = yyg->yy_c_buf_p;
+				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+} /* end of mimeparser_yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = yyg->yytext_ptr;
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
+
+	else
+		{
+			int num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			yyg->yy_n_chars, num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
+		}
+
+	if ( yyg->yy_n_chars == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			mimeparser_yyrestart(yyin  ,yyscanner);
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	yyg->yy_n_chars += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+
+	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+	yy_current_state = yyg->yy_start;
+	yy_current_state += YY_AT_BOL();
+
+	yyg->yy_state_ptr = yyg->yy_state_buf;
+	*yyg->yy_state_ptr++ = yy_current_state;
+
+	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
+		{
+		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+			{
+			yy_current_state = (int) yy_def[yy_current_state];
+			if ( yy_current_state >= 111 )
+				yy_c = yy_meta[(unsigned int) yy_c];
+			}
+		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+		*yyg->yy_state_ptr++ = yy_current_state;
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
+{
+	register int yy_is_jam;
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
+
+	register YY_CHAR yy_c = 1;
+	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+		{
+		yy_current_state = (int) yy_def[yy_current_state];
+		if ( yy_current_state >= 111 )
+			yy_c = yy_meta[(unsigned int) yy_c];
+		}
+	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+	yy_is_jam = (yy_current_state == 110);
+	if ( ! yy_is_jam )
+		*yyg->yy_state_ptr++ = yy_current_state;
+
+	return yy_is_jam ? 0 : yy_current_state;
+}
+
+    static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
+{
+	register char *yy_cp;
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+    yy_cp = yyg->yy_c_buf_p;
+
+	/* undo effects of setting up yytext */
+	*yy_cp = yyg->yy_hold_char;
+
+	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+		{ /* need to shift things up to make room */
+		/* +2 for EOB chars. */
+		register int number_to_move = yyg->yy_n_chars + 2;
+		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+		register char *source =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+
+		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			*--dest = *--source;
+
+		yy_cp += (int) (dest - source);
+		yy_bp += (int) (dest - source);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+
+		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+			YY_FATAL_ERROR( "flex scanner push-back overflow" );
+		}
+
+	*--yy_cp = (char) c;
+
+    if ( c == '\n' ){
+        --yylineno;
+    }
+
+	yyg->yytext_ptr = yy_bp;
+	yyg->yy_hold_char = *yy_cp;
+	yyg->yy_c_buf_p = yy_cp;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (yyscan_t yyscanner)
+#else
+    static int input  (yyscan_t yyscanner)
+#endif
+
+{
+	int c;
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+	*yyg->yy_c_buf_p = yyg->yy_hold_char;
+
+	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
+			/* This was really a NUL. */
+			*yyg->yy_c_buf_p = '\0';
+
+		else
+			{ /* need more input */
+			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
+			++yyg->yy_c_buf_p;
+
+			switch ( yy_get_next_buffer( yyscanner ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					mimeparser_yyrestart(yyin ,yyscanner);
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( mimeparser_yywrap(yyscanner ) )
+						return EOF;
+
+					if ( ! yyg->yy_did_buffer_switch_on_eof )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput(yyscanner);
+#else
+					return input(yyscanner);
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
+	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
+	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
+
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
+		   
+    do{ yylineno++;
+        yycolumn=0;
+    }while(0)
+;
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * @param yyscanner The scanner object.
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void mimeparser_yyrestart  (FILE * input_file , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+	if ( ! YY_CURRENT_BUFFER ){
+        mimeparser_yyensure_buffer_stack (yyscanner);
+		YY_CURRENT_BUFFER_LVALUE =
+            mimeparser_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
+	}
+
+	mimeparser_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
+	mimeparser_yy_load_buffer_state(yyscanner );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * @param yyscanner The scanner object.
+ */
+    void mimeparser_yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		mimeparser_yypop_buffer_state();
+	 *		mimeparser_yypush_buffer_state(new_buffer);
+     */
+	mimeparser_yyensure_buffer_stack (yyscanner);
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*yyg->yy_c_buf_p = yyg->yy_hold_char;
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	mimeparser_yy_load_buffer_state(yyscanner );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (mimeparser_yywrap()) processing, but the only time this flag
+	 * is looked at is after mimeparser_yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	yyg->yy_did_buffer_switch_on_eof = 1;
+}
+
+static void mimeparser_yy_load_buffer_state  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	yyg->yy_hold_char = *yyg->yy_c_buf_p;
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * @param yyscanner The scanner object.
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE mimeparser_yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) mimeparser_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in mimeparser_yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) mimeparser_yyalloc(b->yy_buf_size + 2 ,yyscanner );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in mimeparser_yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	mimeparser_yy_init_buffer(b,file ,yyscanner);
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with mimeparser_yy_create_buffer()
+ * @param yyscanner The scanner object.
+ */
+    void mimeparser_yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		mimeparser_yyfree((void *) b->yy_ch_buf ,yyscanner );
+
+	mimeparser_yyfree((void *) b ,yyscanner );
+}
+
+#ifndef __cplusplus
+extern int isatty (int );
+#endif /* __cplusplus */
+    
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a mimeparser_yyrestart() or at EOF.
+ */
+    static void mimeparser_yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
+
+{
+	int oerrno = errno;
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+	mimeparser_yy_flush_buffer(b ,yyscanner);
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then mimeparser_yy_init_buffer was _probably_
+     * called from mimeparser_yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * @param yyscanner The scanner object.
+ */
+    void mimeparser_yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		mimeparser_yy_load_buffer_state(yyscanner );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  @param yyscanner The scanner object.
+ */
+void mimeparser_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	if (new_buffer == NULL)
+		return;
+
+	mimeparser_yyensure_buffer_stack(yyscanner);
+
+	/* This block is copied from mimeparser_yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*yyg->yy_c_buf_p = yyg->yy_hold_char;
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		yyg->yy_buffer_stack_top++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from mimeparser_yy_switch_to_buffer. */
+	mimeparser_yy_load_buffer_state(yyscanner );
+	yyg->yy_did_buffer_switch_on_eof = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  @param yyscanner The scanner object.
+ */
+void mimeparser_yypop_buffer_state (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	if (!YY_CURRENT_BUFFER)
+		return;
+
+	mimeparser_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if (yyg->yy_buffer_stack_top > 0)
+		--yyg->yy_buffer_stack_top;
+
+	if (YY_CURRENT_BUFFER) {
+		mimeparser_yy_load_buffer_state(yyscanner );
+		yyg->yy_did_buffer_switch_on_eof = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void mimeparser_yyensure_buffer_stack (yyscan_t yyscanner)
+{
+	int num_to_alloc;
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+	if (!yyg->yy_buffer_stack) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		yyg->yy_buffer_stack = (struct yy_buffer_state**)mimeparser_yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								, yyscanner);
+		
+		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		yyg->yy_buffer_stack_max = num_to_alloc;
+		yyg->yy_buffer_stack_top = 0;
+		return;
+	}
+
+	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
+		yyg->yy_buffer_stack = (struct yy_buffer_state**)mimeparser_yyrealloc
+								(yyg->yy_buffer_stack,
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								, yyscanner);
+
+		/* zero only the new slots.*/
+		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
+		yyg->yy_buffer_stack_max = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * @param yyscanner The scanner object.
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE mimeparser_yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) mimeparser_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in mimeparser_yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	mimeparser_yy_switch_to_buffer(b ,yyscanner );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to mimeparser_yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * @param yyscanner The scanner object.
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       mimeparser_yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE mimeparser_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
+{
+    
+	return mimeparser_yy_scan_bytes(yystr,strlen(yystr) ,yyscanner);
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to mimeparser_yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * @param yyscanner The scanner object.
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE mimeparser_yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	int i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) mimeparser_yyalloc(n ,yyscanner );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in mimeparser_yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = mimeparser_yy_scan_buffer(buf,n ,yyscanner);
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in mimeparser_yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = yyg->yy_hold_char; \
+		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
+		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
+		*yyg->yy_c_buf_p = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the user-defined data for this scanner.
+ * @param yyscanner The scanner object.
+ */
+YY_EXTRA_TYPE mimeparser_yyget_extra  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    return yyextra;
+}
+
+/** Get the current line number.
+ * @param yyscanner The scanner object.
+ */
+int mimeparser_yyget_lineno  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    
+        if (! YY_CURRENT_BUFFER)
+            return 0;
+    
+    return yylineno;
+}
+
+/** Get the current column number.
+ * @param yyscanner The scanner object.
+ */
+int mimeparser_yyget_column  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    
+        if (! YY_CURRENT_BUFFER)
+            return 0;
+    
+    return yycolumn;
+}
+
+/** Get the input stream.
+ * @param yyscanner The scanner object.
+ */
+FILE *mimeparser_yyget_in  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    return yyin;
+}
+
+/** Get the output stream.
+ * @param yyscanner The scanner object.
+ */
+FILE *mimeparser_yyget_out  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    return yyout;
+}
+
+/** Get the length of the current token.
+ * @param yyscanner The scanner object.
+ */
+int mimeparser_yyget_leng  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    return yyleng;
+}
+
+/** Get the current token.
+ * @param yyscanner The scanner object.
+ */
+
+char *mimeparser_yyget_text  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    return yytext;
+}
+
+/** Set the user-defined data. This data is never touched by the scanner.
+ * @param user_defined The data to be associated with this scanner.
+ * @param yyscanner The scanner object.
+ */
+void mimeparser_yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    yyextra = user_defined ;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * @param yyscanner The scanner object.
+ */
+void mimeparser_yyset_lineno (int  line_number , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+        /* lineno is only valid if an input buffer exists. */
+        if (! YY_CURRENT_BUFFER )
+           yy_fatal_error( "mimeparser_yyset_lineno called with no buffer" , yyscanner); 
+    
+    yylineno = line_number;
+}
+
+/** Set the current column.
+ * @param line_number
+ * @param yyscanner The scanner object.
+ */
+void mimeparser_yyset_column (int  column_no , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+        /* column is only valid if an input buffer exists. */
+        if (! YY_CURRENT_BUFFER )
+           yy_fatal_error( "mimeparser_yyset_column called with no buffer" , yyscanner); 
+    
+    yycolumn = column_no;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * @param yyscanner The scanner object.
+ * @see mimeparser_yy_switch_to_buffer
+ */
+void mimeparser_yyset_in (FILE *  in_str , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    yyin = in_str ;
+}
+
+void mimeparser_yyset_out (FILE *  out_str , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    yyout = out_str ;
+}
+
+int mimeparser_yyget_debug  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    return yy_flex_debug;
+}
+
+void mimeparser_yyset_debug (int  bdebug , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    yy_flex_debug = bdebug ;
+}
+
+/* Accessor methods for yylval and yylloc */
+
+YYSTYPE * mimeparser_yyget_lval  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    return yylval;
+}
+
+void mimeparser_yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    yylval = yylval_param;
+}
+
+/* User-visible API */
+
+/* mimeparser_yylex_init is special because it creates the scanner itself, so it is
+ * the ONLY reentrant function that doesn't take the scanner as the last argument.
+ * That's why we explicitly handle the declaration, instead of using our macros.
+ */
+
+int mimeparser_yylex_init(yyscan_t* ptr_yy_globals)
+
+{
+    if (ptr_yy_globals == NULL){
+        errno = EINVAL;
+        return 1;
+    }
+
+    *ptr_yy_globals = (yyscan_t) mimeparser_yyalloc ( sizeof( struct yyguts_t ), NULL );
+
+    if (*ptr_yy_globals == NULL){
+        errno = ENOMEM;
+        return 1;
+    }
+
+    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
+    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
+
+    return yy_init_globals ( *ptr_yy_globals );
+}
+
+static int yy_init_globals (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+    /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from mimeparser_yylex_destroy(), so don't allocate here.
+     */
+
+    yyg->yy_buffer_stack = 0;
+    yyg->yy_buffer_stack_top = 0;
+    yyg->yy_buffer_stack_max = 0;
+    yyg->yy_c_buf_p = (char *) 0;
+    yyg->yy_init = 0;
+    yyg->yy_start = 0;
+
+    yyg->yy_start_stack_ptr = 0;
+    yyg->yy_start_stack_depth = 0;
+    yyg->yy_start_stack =  NULL;
+
+    yyg->yy_state_buf = 0;
+    yyg->yy_state_ptr = 0;
+    yyg->yy_full_match = 0;
+    yyg->yy_lp = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * mimeparser_yylex_init()
+     */
+    return 0;
+}
+
+/* mimeparser_yylex_destroy is for both reentrant and non-reentrant scanners. */
+int mimeparser_yylex_destroy  (yyscan_t yyscanner)
+{
+    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		mimeparser_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		mimeparser_yypop_buffer_state(yyscanner);
+	}
+
+	/* Destroy the stack itself. */
+	mimeparser_yyfree(yyg->yy_buffer_stack ,yyscanner);
+	yyg->yy_buffer_stack = NULL;
+
+    /* Destroy the start condition stack. */
+        mimeparser_yyfree(yyg->yy_start_stack ,yyscanner );
+        yyg->yy_start_stack = NULL;
+
+    mimeparser_yyfree ( yyg->yy_state_buf , yyscanner);
+    yyg->yy_state_buf  = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * mimeparser_yylex() is called, initialization will occur. */
+    yy_init_globals( yyscanner);
+
+    /* Destroy the main struct (reentrant only). */
+    mimeparser_yyfree ( yyscanner , yyscanner );
+    yyscanner = NULL;
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *mimeparser_yyalloc (yy_size_t  size , yyscan_t yyscanner)
+{
+	return (void *) malloc( size );
+}
+
+void *mimeparser_yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void mimeparser_yyfree (void * ptr , yyscan_t yyscanner)
+{
+	free( (char *) ptr );	/* see mimeparser_yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 416 "mimeparser.l"
+
+
+
+void reset_lexer_state(void *yyscanner, struct parser_state *pstate)
+{
+	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	struct lexer_state *lstate = &(pstate->lstate);
+
+	mimeparser_yyset_extra((void*)lstate,yyscanner);
+	BEGIN(0);
+	lstate->header_state = STATE_MAIL;
+	lstate->lineno = 0;
+	lstate->current_pos = 1;
+	lstate->condition = 0;
+
+	lstate->is_envelope = 1;
+
+	lstate->message_len = 0;
+	lstate->buffer_length = 0;
+
+	/* temporary marker variables */
+	lstate->body_opaque_start = 0;
+	lstate->body_start = 0;
+	lstate->body_end = 0;
+	lstate->preamble_start = 0;
+	lstate->preamble_end = 0;
+	lstate->postamble_start = 0;
+	lstate->postamble_end = 0;
+}
+
+void
+PARSER_setbuffer(char *string, yyscan_t scanner)
+{
+	struct lexer_state *lstate = mimeparser_yyget_extra(scanner);
+	lstate->message_buffer = string;
+	mimeparser_yy_scan_string(string,scanner);
+}
+
+void
+PARSER_setfp(FILE *fp, yyscan_t yyscanner)
+{
+	/* looks like a bug in bison 2.2a -- the wrong code is generated for mimeparser_yyset_in !! */
+	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	yyg->yyin_r = fp;
+	
+	if (0) {
+		/* This is just to make a compiler warning go away */
+		yyunput(0, NULL, yyscanner);
+	}
+}
+
+/**
+ * Counts how many lines a given string represents in the message (in case of
+ * folded header values, for example, or a message body).
+ */
+int
+count_lines(char *txt)
+{
+	char *o;
+	int line;
+
+	line = 0;
+
+	for (o = txt; *o != '\0'; o++)	
+		if (*o == '\n')
+			line++;
+
+	return line;
+}
+
diff --git a/main/minimime/minimime.c b/main/minimime/minimime.c
new file mode 100644
index 0000000000..f96b62fb11
--- /dev/null
+++ b/main/minimime/minimime.c
@@ -0,0 +1,245 @@
+/*
+ * Copyright (c) 2004 Jann Fischer. 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.
+ * 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. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ */
+
+/*
+ * MiniMIME test program
+ */
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <err.h>
+
+#include "mm.h"
+
+void
+usage(void)
+{
+	fprintf(stderr,
+	"MiniMIME test suite\n"
+	"Usage: ./minimime [-m] <filename>\n\n"
+	"   -m            : use memory based scanning\n\n"
+	);
+	exit(1);
+}
+
+int
+main(int argc, char **argv)
+{
+	MM_CTX *ctx;
+	struct mm_mimeheader *header, *lastheader;
+	struct mm_warning *lastwarning;
+	struct mm_mimepart *part;
+	struct mm_content *ct;
+	int parts, i;
+	struct stat st;
+	int fd;
+	char *buf;
+	int scan_mode = 0;
+
+	lastheader = NULL;
+
+	while ((i = getopt(argc, argv, "m")) != -1) {
+		switch(i) {
+		case 'm':
+			scan_mode = 1;
+			break;
+		default:
+			usage();
+		}
+	}
+
+	argc -= optind;
+	argv += optind;
+
+	if (argc < 1) {
+		usage();
+	}
+	
+#ifdef __HAVE_LEAK_DETECTION
+	/* Initialize memory leak detection if compiled in */
+	MM_leakd_init();
+#endif
+
+	/* Initialize MiniMIME library */
+	mm_library_init();
+
+	/* Register all default codecs (base64/qp) */
+	mm_codec_registerdefaultcodecs();
+
+	do {
+		/* Create a new context */
+		ctx = mm_context_new();
+
+		/* Parse a file into our context */
+		if (scan_mode == 0) {
+			i = mm_parse_file(ctx, argv[0], MM_PARSE_LOOSE, 0);
+		} else {
+			if (stat(argv[0], &st) == -1) {
+				err(1, "stat");
+			}
+	
+			if ((fd = open(argv[0], O_RDONLY)) == -1) {
+				err(1, "open");
+			}
+
+			buf = (char *)malloc(st.st_size);
+			if (buf == NULL) {
+				err(1, "malloc");
+			}	
+
+			if (read(fd, buf, st.st_size) != st.st_size) {
+				err(1, "read");
+			}
+
+			close(fd);
+			buf[st.st_size] = '\0';
+			
+			i = mm_parse_mem(ctx, buf, MM_PARSE_LOOSE, 0);
+		}
+
+		if (i == -1 || mm_errno != MM_ERROR_NONE) {	
+			printf("ERROR: %s at line %d\n", mm_error_string(), mm_error_lineno());
+			exit(1);
+		}
+
+		/* Get the number of MIME parts */
+		parts = mm_context_countparts(ctx);
+		if (parts == 0) {
+			printf("ERROR: got zero MIME parts, huh\n");
+			exit(1);
+		} else {
+			if (mm_context_iscomposite(ctx)) {
+				printf("Got %d MIME parts\n", parts - 1);
+			} else {
+				printf("Flat message (not multipart)\n");
+			}
+		}
+
+		/* Get the main MIME part */
+		part = mm_context_getpart(ctx, 0);
+		if (part == NULL) {
+			fprintf(stderr, "Could not get envelope part\n");
+			exit(1);
+		}
+
+		printf("Printing envelope headers:\n");
+		/* Print all headers */
+		if (mm_mimepart_headers_start(part, &lastheader) == -1) {
+			fprintf(stderr, "No headers in envelope\n");
+			exit(1);
+		}
+		while ((header = mm_mimepart_headers_next(part, &lastheader)) != NULL) {
+			printf("%s: %s\n", header->name, header->value);
+		}
+
+		printf("%s\n", mm_content_tostring(part->type));
+		printf("\n");
+		
+		ct = part->type;
+		assert(ct != NULL);
+
+		if (mm_context_iscomposite(ctx) == 0) {
+			printf("Printing body part for FLAT message:\n");
+			part = mm_context_getpart(ctx, 0);
+			printf("%s", part->body);
+		}	
+
+		/* Loop through all MIME parts beginning with 1 */
+		for (i = 1; i < mm_context_countparts(ctx); i++) {
+			char *decoded;
+
+			printf("Printing headers for MIME part %d\n", i);
+
+			/* Get the current MIME entity */
+			part = mm_context_getpart(ctx, i);
+			if (part == NULL) {
+				fprintf(stderr, "Should have %d parts but "
+				    "couldn't retrieve part %d",
+				    mm_context_countparts(ctx), i);
+				exit(1);
+			}
+
+			/* Print all headers */
+			if (mm_mimepart_headers_start(part, &lastheader) == -1) {
+				printf("Ups no headers\n");
+			}
+			while ((header = mm_mimepart_headers_next(part, &lastheader)) != NULL) {
+				printf("%s: %s\n", header->name, header->value);
+			}
+
+			printf("Part Type: %s\n", mm_content_tostring(part->type));
+
+			/* Print MIME part body */
+			printf("\nPrinting message BODY:\n%s\n", (char *)part->opaque_body);
+			decoded = mm_mimepart_decode(part);
+			if (decoded != NULL) {
+				printf("DECODED:\n%s\n", decoded);
+				free(decoded);
+			}
+		}
+		
+		/* Print out all warnings that we might have received */
+		if (mm_context_haswarnings(ctx) > 0) {
+			lastwarning = NULL;
+			fprintf(stderr, "WARNINGS:\n");
+#if 0
+			while ((warning = mm_warning_next(ctx, &lastwarning)) 
+			    != NULL) {
+				fprintf(stderr, " -> %s\n", warning->message);
+			}
+#endif
+		}
+
+		printf("ENVELOPE:\n");
+
+		do {
+			char *env;
+			size_t env_len;
+
+			mm_context_flatten(ctx, &env, &env_len, 0);
+			printf("%s", env);
+
+		} while (0);	
+
+		mm_context_free(ctx);
+		ctx = NULL;
+
+#ifdef __HAVE_LEAK_DETECTION
+		MM_leakd_printallocated();
+#endif
+
+	} while (0);
+
+	return 0;
+}
diff --git a/main/minimime/mm-docs/html/bug.html b/main/minimime/mm-docs/html/bug.html
new file mode 100644
index 0000000000..61f89acc88
--- /dev/null
+++ b/main/minimime/mm-docs/html/bug.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Bug List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1><a class="anchor" name="bug">Bug List</a></h1><a class="anchor" name="_bug000001"></a> <dl>
+<dt>Global <a class="el" href="group__contenttype.html#g7bab273d117c6c0cacad20361d8fb1c8">mm_content_setmaintype</a>  </dt>
+<dd>The xfree() call could lead to undesirable results. Do we really need it? </dd>
+</dl>
+<p>
+<a class="anchor" name="_bug000002"></a> <dl>
+<dt>Global <a class="el" href="group__contenttype.html#g14b0738410d566ad2312405946f22212">mm_content_setsubtype</a>  </dt>
+<dd>The xfree() call could lead to undesirable results. Do we really need it? </dd>
+</dl>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/doxygen.css b/main/minimime/mm-docs/html/doxygen.css
new file mode 100644
index 0000000000..c7db1a8a04
--- /dev/null
+++ b/main/minimime/mm-docs/html/doxygen.css
@@ -0,0 +1,358 @@
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+	font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+BODY,TD {
+       font-size: 90%;
+}
+H1 {
+	text-align: center;
+       font-size: 160%;
+}
+H2 {
+       font-size: 120%;
+}
+H3 {
+       font-size: 100%;
+}
+CAPTION { font-weight: bold }
+DIV.qindex {
+	width: 100%;
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+	line-height: 140%;
+}
+DIV.nav {
+	width: 100%;
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+	line-height: 140%;
+}
+DIV.navtab {
+       background-color: #e8eef2;
+       border: 1px solid #84b0c7;
+       text-align: center;
+       margin: 2px;
+       margin-right: 15px;
+       padding: 2px;
+}
+TD.navtab {
+       font-size: 70%;
+}
+A.qindex {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D;
+}
+A.qindex:visited {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D
+}
+A.qindex:hover {
+	text-decoration: none;
+	background-color: #ddddff;
+}
+A.qindexHL {
+	text-decoration: none;
+	font-weight: bold;
+	background-color: #6666cc;
+	color: #ffffff;
+	border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+	text-decoration: none;
+	background-color: #6666cc;
+	color: #ffffff;
+}
+A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
+A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
+A.codeRef:link { font-weight: normal; color: #0000FF}
+A.codeRef:visited { font-weight: normal; color: #0000FF}
+A:hover { text-decoration: none; background-color: #f2f2ff }
+DL.el { margin-left: -1cm }
+.fragment {
+       font-family: monospace, fixed;
+       font-size: 95%;
+}
+PRE.fragment {
+	border: 1px solid #CCCCCC;
+	background-color: #f5f5f5;
+	margin-top: 4px;
+	margin-bottom: 4px;
+	margin-left: 2px;
+	margin-right: 8px;
+	padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 4px;
+	padding-bottom: 4px;
+}
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+
+DIV.groupHeader {
+       margin-left: 16px;
+       margin-top: 12px;
+       margin-bottom: 6px;
+       font-weight: bold;
+}
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
+BODY {
+	background: white;
+	color: black;
+	margin-right: 20px;
+	margin-left: 20px;
+}
+TD.indexkey {
+	background-color: #e8eef2;
+	font-weight: bold;
+	padding-right  : 10px;
+	padding-top    : 2px;
+	padding-left   : 10px;
+	padding-bottom : 2px;
+	margin-left    : 0px;
+	margin-right   : 0px;
+	margin-top     : 2px;
+	margin-bottom  : 2px;
+	border: 1px solid #CCCCCC;
+}
+TD.indexvalue {
+	background-color: #e8eef2;
+	font-style: italic;
+	padding-right  : 10px;
+	padding-top    : 2px;
+	padding-left   : 10px;
+	padding-bottom : 2px;
+	margin-left    : 0px;
+	margin-right   : 0px;
+	margin-top     : 2px;
+	margin-bottom  : 2px;
+	border: 1px solid #CCCCCC;
+}
+TR.memlist {
+   background-color: #f0f0f0; 
+}
+P.formulaDsp { text-align: center; }
+IMG.formulaDsp { }
+IMG.formulaInl { vertical-align: middle; }
+SPAN.keyword       { color: #008000 }
+SPAN.keywordtype   { color: #604020 }
+SPAN.keywordflow   { color: #e08000 }
+SPAN.comment       { color: #800000 }
+SPAN.preprocessor  { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral   { color: #008080 }
+.mdescLeft {
+       padding: 0px 8px 4px 8px;
+	font-size: 80%;
+	font-style: italic;
+	background-color: #FAFAFA;
+	border-top: 1px none #E0E0E0;
+	border-right: 1px none #E0E0E0;
+	border-bottom: 1px none #E0E0E0;
+	border-left: 1px none #E0E0E0;
+	margin: 0px;
+}
+.mdescRight {
+       padding: 0px 8px 4px 8px;
+	font-size: 80%;
+	font-style: italic;
+	background-color: #FAFAFA;
+	border-top: 1px none #E0E0E0;
+	border-right: 1px none #E0E0E0;
+	border-bottom: 1px none #E0E0E0;
+	border-left: 1px none #E0E0E0;
+	margin: 0px;
+}
+.memItemLeft {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memItemRight {
+	padding: 1px 8px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplItemLeft {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: none;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplItemRight {
+	padding: 1px 8px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: none;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplParams {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+       color: #606060;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.search     { color: #003399;
+              font-weight: bold;
+}
+FORM.search {
+              margin-bottom: 0px;
+              margin-top: 0px;
+}
+INPUT.search { font-size: 75%;
+               color: #000080;
+               font-weight: normal;
+               background-color: #e8eef2;
+}
+TD.tiny      { font-size: 75%;
+}
+a {
+	color: #1A41A8;
+}
+a:visited {
+	color: #2A3798;
+}
+.dirtab { padding: 4px;
+          border-collapse: collapse;
+          border: 1px solid #84b0c7;
+}
+TH.dirtab { background: #e8eef2;
+            font-weight: bold;
+}
+HR { height: 1px;
+     border: none;
+     border-top: 1px solid black;
+}
+
+/* Style for detailed member documentation */
+.memtemplate {
+  font-size: 80%;
+  color: #606060;
+  font-weight: normal;
+} 
+.memnav { 
+  background-color: #e8eef2;
+  border: 1px solid #84b0c7;
+  text-align: center;
+  margin: 2px;
+  margin-right: 15px;
+  padding: 2px;
+}
+.memitem {
+  padding: 4px;
+  background-color: #eef3f5;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #dedeee;
+  -moz-border-radius: 8px 8px 8px 8px;
+}
+.memname {
+  white-space: nowrap;
+  font-weight: bold;
+}
+.memdoc{
+  padding-left: 10px;
+}
+.memproto {
+  background-color: #d5e1e8;
+  width: 100%;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #84b0c7;
+  font-weight: bold;
+  -moz-border-radius: 8px 8px 8px 8px;
+}
+.paramkey {
+  text-align: right;
+}
+.paramtype {
+  white-space: nowrap;
+}
+.paramname {
+  color: #602020;
+  font-style: italic;
+  white-space: nowrap;
+}
+/* End Styling for detailed member documentation */
+
+/* for the tree view */
+.ftvtree {
+	font-family: sans-serif;
+	margin:0.5em;
+}
+.directory { font-size: 9pt; font-weight: bold; }
+.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
+.directory > h3 { margin-top: 0; }
+.directory p { margin: 0px; white-space: nowrap; }
+.directory div { display: none; margin: 0px; }
+.directory img { vertical-align: -30%; }
diff --git a/main/minimime/mm-docs/html/files.html b/main/minimime/mm-docs/html/files.html
new file mode 100644
index 0000000000..df53367c9e
--- /dev/null
+++ b/main/minimime/mm-docs/html/files.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: File Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li id="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>MiniMIME File List</h1>Here is a list of all documented files with brief descriptions:<table>
+  <tr><td class="indexkey"><b>mimeparser.h</b> <a href="mimeparser_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>mimeparser.tab.h</b> <a href="mimeparser_8tab_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>mm.h</b> <a href="mm_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__codecs_8c.html">mm_codecs.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__contenttype_8c.html">mm_contenttype.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__context_8c.html">mm_context.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__envelope_8c.html">mm_envelope.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__error_8c.html">mm_error.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__header_8c.html">mm_header.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__internal_8h.html">mm_internal.h</a> <a href="mm__internal_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>mm_mem.h</b> <a href="mm__mem_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__mimepart_8c.html">mm_mimepart.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__mimeutil_8c.html">mm_mimeutil.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__param_8c.html">mm_param.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__parse_8c.html">mm_parse.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>mm_queue.h</b> <a href="mm__queue_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="mm__util_8c.html">mm_util.c</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>mm_util.h</b> <a href="mm__util_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/globals.html b/main/minimime/mm-docs/html/globals.html
new file mode 100644
index 0000000000..b8a90462cf
--- /dev/null
+++ b/main/minimime/mm-docs/html/globals.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li id="current"><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li id="current"><a href="globals.html"><span>All</span></a></li>
+    <li><a href="globals_func.html"><span>Functions</span></a></li>
+  </ul>
+</div>
+<div class="tabs">
+  <ul>
+    <li><a href="#index_m"><span>m</span></a></li>
+    <li><a href="#index_x"><span>x</span></a></li>
+  </ul>
+</div>
+
+<p>
+Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+<p>
+<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
+<li>mm_addchars()
+: <a class="el" href="group__util.html#g0747d4b4e33644263e6d73d2d8d4818b">mm_util.c</a>
+<li>mm_codec_hasdecoder()
+: <a class="el" href="group__codecs.html#g6ccb0f7a1d7c870dc3dae04f31d6ccca">mm_codecs.c</a>
+<li>mm_codec_hasencoder()
+: <a class="el" href="group__codecs.html#g50ff257b794ceaec7aedf9ae18bfcc57">mm_codecs.c</a>
+<li>mm_codec_isregistered()
+: <a class="el" href="group__codecs.html#g9e19f6343128fd7e4ec57c3d55049b55">mm_codecs.c</a>
+<li>mm_codec_register()
+: <a class="el" href="group__codecs.html#gf97a7311c909888ed9f6f14d6f1bf397">mm_codecs.c</a>
+<li>mm_codec_registerdefaultcodecs()
+: <a class="el" href="group__codecs.html#gf39e72460fb85f5ca41f6e270a68aacc">mm_codecs.c</a>
+<li>mm_codec_unregister()
+: <a class="el" href="group__codecs.html#g0c71696bc70f834386193e3c7a0e2ca4">mm_codecs.c</a>
+<li>mm_codec_unregisterall()
+: <a class="el" href="group__codecs.html#g7c9e6538f84c368be2b56a3c9ba702be">mm_codecs.c</a>
+<li>mm_content_attachparam()
+: <a class="el" href="group__contenttype.html#g080b7ed798ed497dcd635a6bab86962f">mm_contenttype.c</a>
+<li>mm_content_free()
+: <a class="el" href="group__contenttype.html#g404314481125849bce869ee4b0f647af">mm_contenttype.c</a>
+<li>mm_content_getencoding()
+: <a class="el" href="group__contenttype.html#gbff87e581cd04db16e91245e9e9de67d">mm_contenttype.c</a>
+<li>mm_content_getmaintype()
+: <a class="el" href="group__contenttype.html#gb213081017abf6bc7e601c6bf4214924">mm_contenttype.c</a>
+<li>mm_content_getparambyname()
+: <a class="el" href="group__contenttype.html#g451441ee557ab5ef29477f3dc8330bf6">mm_contenttype.c</a>
+<li>mm_content_getsubtype()
+: <a class="el" href="group__contenttype.html#g97f77ef40c14cd0fb397bad358ee5d49">mm_contenttype.c</a>
+<li>mm_content_iscomposite()
+: <a class="el" href="group__contenttype.html#ga7fa479f27e73dea57257421d8fc9fc5">mm_contenttype.c</a>
+<li>mm_content_isvalidencoding()
+: <a class="el" href="group__contenttype.html#gb724b5979182fa272fe4fd1b72b395d5">mm_contenttype.c</a>
+<li>mm_content_new()
+: <a class="el" href="group__contenttype.html#g3880ac74a20b4a9f610a4159568e1801">mm_contenttype.c</a>
+<li>mm_content_paramstostring()
+: <a class="el" href="group__contenttype.html#g792e7d33fbb30e0123408bcef9d3204c">mm_contenttype.c</a>
+<li>mm_content_setencoding()
+: <a class="el" href="group__contenttype.html#gea945e48ac5cca846715543634b9afe4">mm_contenttype.c</a>
+<li>mm_content_setmaintype()
+: <a class="el" href="group__contenttype.html#g7bab273d117c6c0cacad20361d8fb1c8">mm_contenttype.c</a>
+<li>mm_content_setsubtype()
+: <a class="el" href="group__contenttype.html#g14b0738410d566ad2312405946f22212">mm_contenttype.c</a>
+<li>mm_content_tostring()
+: <a class="el" href="group__contenttype.html#g18a99c95e35a76f13a77a83c4231e738">mm_contenttype.c</a>
+<li>mm_context_attachpart()
+: <a class="el" href="group__context.html#gec3ca486a61b392ff68774242086768e">mm_context.c</a>
+<li>mm_context_attachpart_after()
+: <a class="el" href="group__context.html#g73a3dd187053aeabca4836dc28a6c468">mm_context.c</a>
+<li>mm_context_countparts()
+: <a class="el" href="group__context.html#gf5bb032ad1c481d31d7b1b0710939712">mm_context.c</a>
+<li>mm_context_deletepart()
+: <a class="el" href="group__context.html#g53d20c33a401539ef1ffa45f3dddb983">mm_context.c</a>
+<li>mm_context_flatten()
+: <a class="el" href="group__context.html#g5288136ab923605f6508c09359ae5772">mm_context.c</a>
+<li>mm_context_free()
+: <a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context.c</a>
+<li>mm_context_generateboundary()
+: <a class="el" href="group__context.html#g9710e485f51167099d90f0d659979068">mm_context.c</a>
+<li>mm_context_getpart()
+: <a class="el" href="group__context.html#g57fea229675f3e56a77eb40bb8193ee3">mm_context.c</a>
+<li>mm_context_haswarnings()
+: <a class="el" href="group__context.html#g8733dee7d83d3205349a7ee4ee5b2750">mm_context.c</a>
+<li>mm_context_iscomposite()
+: <a class="el" href="group__context.html#g1e73cadba4acd3ef9dd148dd0c2c3e70">mm_context.c</a>
+<li>mm_context_new()
+: <a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context.c</a>
+<li>mm_context_setpreamble()
+: <a class="el" href="group__context.html#gc0e7cc297516618d4773830a1988fc8d">mm_context.c</a>
+<li>mm_envelope_getheaders()
+: <a class="el" href="group__envelope.html#g38f1164142cedfc3253b068a81f85563">mm_envelope.c</a>
+<li>mm_envelope_getrecipients()
+: <a class="el" href="group__envelope.html#ge63da17c56867ca2406a4eaf73230baf">mm_envelope.c</a>
+<li>mm_envelope_setheader()
+: <a class="el" href="group__envelope.html#gb2c43c1645e42ae0860c902ce1dda788">mm_envelope.c</a>
+<li>mm_error_init()
+: <a class="el" href="group__error.html#g69de7c9bee1d535593a55807590de543">mm_error.c</a>
+<li>mm_error_setmsg()
+: <a class="el" href="group__error.html#g92006c97728639d8f32f5bc4c6e2a47f">mm_error.c</a>
+<li>mm_error_string()
+: <a class="el" href="group__error.html#g8654857a3ac349b87d798902912371a3">mm_error.c</a>
+<li>mm_mimeheader_free()
+: <a class="el" href="mm__header_8c.html#61e3e62728f720ac381196ec59303064">mm_header.c</a>
+<li>mm_mimeheader_generate()
+: <a class="el" href="mm__header_8c.html#07a7f7dcebc91aa86f5478e1d84341a1">mm_header.c</a>
+<li>mm_mimeheader_new()
+: <a class="el" href="mm__header_8c.html#2f2c5f2f640111caf3096ed46b5986a4">mm_header.c</a>
+<li>mm_mimepart_attachcontenttype()
+: <a class="el" href="group__mimepart.html#g01822bc93b4741af75b5379384354e37">mm_mimepart.c</a>
+<li>mm_mimepart_attachheader()
+: <a class="el" href="group__mimepart.html#g46a674ff6b9873c0c45fa4eb5d94fd62">mm_mimepart.c</a>
+<li>mm_mimepart_countheaderbyname()
+: <a class="el" href="group__mimepart.html#gf89da502ac54306994bdb452448a8026">mm_mimepart.c</a>
+<li>mm_mimepart_countheaders()
+: <a class="el" href="group__mimepart.html#g44c78abfb0535312bcb427a2cd220026">mm_mimepart.c</a>
+<li>mm_mimepart_decode()
+: <a class="el" href="group__mimepart.html#g4551bf4460e5d165bbcd9f32d4f625de">mm_mimepart.c</a>
+<li>mm_mimepart_flatten()
+: <a class="el" href="group__mimepart.html#gf19d3ace5ae174b3eaa35f9ddbe6e216">mm_mimepart.c</a>
+<li>mm_mimepart_free()
+: <a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart.c</a>
+<li>mm_mimepart_fromfile()
+: <a class="el" href="group__mimepart.html#ged8112012a337371ae8093adb1ab6d27">mm_mimepart.c</a>
+<li>mm_mimepart_getbody()
+: <a class="el" href="group__mimepart.html#g52dc9f27a2801e4f6abb1effd2ed838d">mm_mimepart.c</a>
+<li>mm_mimepart_getheaderbyname()
+: <a class="el" href="group__mimepart.html#ga3ca298eaa82f4ef3ea731511ac84e53">mm_mimepart.c</a>
+<li>mm_mimepart_getheadervalue()
+: <a class="el" href="group__mimepart.html#g779f11f7a6a54f83763b5ef6ff87e48f">mm_mimepart.c</a>
+<li>mm_mimepart_getlength()
+: <a class="el" href="group__mimepart.html#gf8ccae1737dc4b9b91958fe448da677f">mm_mimepart.c</a>
+<li>mm_mimepart_gettype()
+: <a class="el" href="group__mimepart.html#g210e2ceee56f8349f6778006da87d080">mm_mimepart.c</a>
+<li>mm_mimepart_headers_next()
+: <a class="el" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart.c</a>
+<li>mm_mimepart_headers_start()
+: <a class="el" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart.c</a>
+<li>mm_mimepart_new()
+: <a class="el" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart.c</a>
+<li>mm_mimepart_setbody()
+: <a class="el" href="group__mimepart.html#gd1def098c00edc546b03e98e9ff8b27a">mm_mimepart.c</a>
+<li>mm_mimepart_setdefaultcontenttype()
+: <a class="el" href="group__mimepart.html#g164bb39a266559574c252f11266809ff">mm_mimepart.c</a>
+<li>mm_mimeutil_gendate()
+: <a class="el" href="mm__mimeutil_8c.html#a7b7f63b42dfa7a7f907b615aa4cd057">mm_mimeutil.c</a>
+<li>mm_param_free()
+: <a class="el" href="group__param.html#g46339038e995799e6a3e37512f442fc9">mm_param.c</a>
+<li>mm_param_generate()
+: <a class="el" href="group__param.html#gd3970def45b8bede334f4b89a41dec15">mm_param.c</a>
+<li>mm_param_getname()
+: <a class="el" href="group__param.html#g0e0ddccf47a2b1e0ad5bcc52c7b39753">mm_param.c</a>
+<li>mm_param_getvalue()
+: <a class="el" href="group__param.html#g3c6f8cddd409de3000c31584e140561e">mm_param.c</a>
+<li>mm_param_new()
+: <a class="el" href="group__param.html#gd3ac756551bf5a29a07d5992bfdbde09">mm_param.c</a>
+<li>mm_param_setname()
+: <a class="el" href="group__param.html#g2a266c63c7e89cf829b2af8e995e55e8">mm_param.c</a>
+<li>mm_param_setvalue()
+: <a class="el" href="group__param.html#gca3e636ab5700462eb32ca5bc19e4cc6">mm_param.c</a>
+<li>mm_parse_file()
+: <a class="el" href="mm__parse_8c.html#cc9f623682b05f330c46e72e4e9d66cc">mm_parse.c</a>
+<li>mm_parse_mem()
+: <a class="el" href="mm__parse_8c.html#58c960b6017f13d4e4ec5f09b3c38495">mm_parse.c</a>
+<li>mm_stripchars()
+: <a class="el" href="group__util.html#gf62be7dd21e545f8db72f3c9e3b6a3c3">mm_util.c</a>
+<li>mm_uncomment()
+: <a class="el" href="group__util.html#g49c016ff4cfd02f1b019c4dce5aac357">mm_util.c</a>
+<li>mm_unquote()
+: <a class="el" href="group__util.html#gf0f89a29a634f6f1f833abb1e214a6b1">mm_util.c</a>
+</ul>
+<h3><a class="anchor" name="index_x">- x -</a></h3><ul>
+<li>xmalloc()
+: <a class="el" href="group__util.html#g2ff4ef58da7e543466e75f20f2a2d8b7">mm_util.c</a>
+<li>xrealloc()
+: <a class="el" href="group__util.html#ge14637b4672461f1f0bee822406d68dc">mm_util.c</a>
+<li>xstrsep()
+: <a class="el" href="group__util.html#g3ae25483c8a42f6562f2a916a511228f">mm_util.c</a>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/globals_func.html b/main/minimime/mm-docs/html/globals_func.html
new file mode 100644
index 0000000000..7794fda651
--- /dev/null
+++ b/main/minimime/mm-docs/html/globals_func.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li id="current"><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="globals.html"><span>All</span></a></li>
+    <li id="current"><a href="globals_func.html"><span>Functions</span></a></li>
+  </ul>
+</div>
+<div class="tabs">
+  <ul>
+    <li><a href="#index_m"><span>m</span></a></li>
+    <li><a href="#index_x"><span>x</span></a></li>
+  </ul>
+</div>
+
+<p>
+&nbsp;
+<p>
+<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
+<li>mm_addchars()
+: <a class="el" href="group__util.html#g0747d4b4e33644263e6d73d2d8d4818b">mm_util.c</a>
+<li>mm_codec_hasdecoder()
+: <a class="el" href="group__codecs.html#g6ccb0f7a1d7c870dc3dae04f31d6ccca">mm_codecs.c</a>
+<li>mm_codec_hasencoder()
+: <a class="el" href="group__codecs.html#g50ff257b794ceaec7aedf9ae18bfcc57">mm_codecs.c</a>
+<li>mm_codec_isregistered()
+: <a class="el" href="group__codecs.html#g9e19f6343128fd7e4ec57c3d55049b55">mm_codecs.c</a>
+<li>mm_codec_register()
+: <a class="el" href="group__codecs.html#gf97a7311c909888ed9f6f14d6f1bf397">mm_codecs.c</a>
+<li>mm_codec_registerdefaultcodecs()
+: <a class="el" href="group__codecs.html#gf39e72460fb85f5ca41f6e270a68aacc">mm_codecs.c</a>
+<li>mm_codec_unregister()
+: <a class="el" href="group__codecs.html#g0c71696bc70f834386193e3c7a0e2ca4">mm_codecs.c</a>
+<li>mm_codec_unregisterall()
+: <a class="el" href="group__codecs.html#g7c9e6538f84c368be2b56a3c9ba702be">mm_codecs.c</a>
+<li>mm_content_attachparam()
+: <a class="el" href="group__contenttype.html#g080b7ed798ed497dcd635a6bab86962f">mm_contenttype.c</a>
+<li>mm_content_free()
+: <a class="el" href="group__contenttype.html#g404314481125849bce869ee4b0f647af">mm_contenttype.c</a>
+<li>mm_content_getencoding()
+: <a class="el" href="group__contenttype.html#gbff87e581cd04db16e91245e9e9de67d">mm_contenttype.c</a>
+<li>mm_content_getmaintype()
+: <a class="el" href="group__contenttype.html#gb213081017abf6bc7e601c6bf4214924">mm_contenttype.c</a>
+<li>mm_content_getparambyname()
+: <a class="el" href="group__contenttype.html#g451441ee557ab5ef29477f3dc8330bf6">mm_contenttype.c</a>
+<li>mm_content_getsubtype()
+: <a class="el" href="group__contenttype.html#g97f77ef40c14cd0fb397bad358ee5d49">mm_contenttype.c</a>
+<li>mm_content_iscomposite()
+: <a class="el" href="group__contenttype.html#ga7fa479f27e73dea57257421d8fc9fc5">mm_contenttype.c</a>
+<li>mm_content_isvalidencoding()
+: <a class="el" href="group__contenttype.html#gb724b5979182fa272fe4fd1b72b395d5">mm_contenttype.c</a>
+<li>mm_content_new()
+: <a class="el" href="group__contenttype.html#g3880ac74a20b4a9f610a4159568e1801">mm_contenttype.c</a>
+<li>mm_content_paramstostring()
+: <a class="el" href="group__contenttype.html#g792e7d33fbb30e0123408bcef9d3204c">mm_contenttype.c</a>
+<li>mm_content_setencoding()
+: <a class="el" href="group__contenttype.html#gea945e48ac5cca846715543634b9afe4">mm_contenttype.c</a>
+<li>mm_content_setmaintype()
+: <a class="el" href="group__contenttype.html#g7bab273d117c6c0cacad20361d8fb1c8">mm_contenttype.c</a>
+<li>mm_content_setsubtype()
+: <a class="el" href="group__contenttype.html#g14b0738410d566ad2312405946f22212">mm_contenttype.c</a>
+<li>mm_content_tostring()
+: <a class="el" href="group__contenttype.html#g18a99c95e35a76f13a77a83c4231e738">mm_contenttype.c</a>
+<li>mm_context_attachpart()
+: <a class="el" href="group__context.html#gec3ca486a61b392ff68774242086768e">mm_context.c</a>
+<li>mm_context_attachpart_after()
+: <a class="el" href="group__context.html#g73a3dd187053aeabca4836dc28a6c468">mm_context.c</a>
+<li>mm_context_countparts()
+: <a class="el" href="group__context.html#gf5bb032ad1c481d31d7b1b0710939712">mm_context.c</a>
+<li>mm_context_deletepart()
+: <a class="el" href="group__context.html#g53d20c33a401539ef1ffa45f3dddb983">mm_context.c</a>
+<li>mm_context_flatten()
+: <a class="el" href="group__context.html#g5288136ab923605f6508c09359ae5772">mm_context.c</a>
+<li>mm_context_free()
+: <a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context.c</a>
+<li>mm_context_generateboundary()
+: <a class="el" href="group__context.html#g9710e485f51167099d90f0d659979068">mm_context.c</a>
+<li>mm_context_getpart()
+: <a class="el" href="group__context.html#g57fea229675f3e56a77eb40bb8193ee3">mm_context.c</a>
+<li>mm_context_haswarnings()
+: <a class="el" href="group__context.html#g8733dee7d83d3205349a7ee4ee5b2750">mm_context.c</a>
+<li>mm_context_iscomposite()
+: <a class="el" href="group__context.html#g1e73cadba4acd3ef9dd148dd0c2c3e70">mm_context.c</a>
+<li>mm_context_new()
+: <a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context.c</a>
+<li>mm_context_setpreamble()
+: <a class="el" href="group__context.html#gc0e7cc297516618d4773830a1988fc8d">mm_context.c</a>
+<li>mm_envelope_getheaders()
+: <a class="el" href="group__envelope.html#g38f1164142cedfc3253b068a81f85563">mm_envelope.c</a>
+<li>mm_envelope_getrecipients()
+: <a class="el" href="group__envelope.html#ge63da17c56867ca2406a4eaf73230baf">mm_envelope.c</a>
+<li>mm_envelope_setheader()
+: <a class="el" href="group__envelope.html#gb2c43c1645e42ae0860c902ce1dda788">mm_envelope.c</a>
+<li>mm_error_init()
+: <a class="el" href="group__error.html#g69de7c9bee1d535593a55807590de543">mm_error.c</a>
+<li>mm_error_setmsg()
+: <a class="el" href="group__error.html#g92006c97728639d8f32f5bc4c6e2a47f">mm_error.c</a>
+<li>mm_error_string()
+: <a class="el" href="group__error.html#g8654857a3ac349b87d798902912371a3">mm_error.c</a>
+<li>mm_mimeheader_free()
+: <a class="el" href="mm__header_8c.html#61e3e62728f720ac381196ec59303064">mm_header.c</a>
+<li>mm_mimeheader_generate()
+: <a class="el" href="mm__header_8c.html#07a7f7dcebc91aa86f5478e1d84341a1">mm_header.c</a>
+<li>mm_mimeheader_new()
+: <a class="el" href="mm__header_8c.html#2f2c5f2f640111caf3096ed46b5986a4">mm_header.c</a>
+<li>mm_mimepart_attachcontenttype()
+: <a class="el" href="group__mimepart.html#g01822bc93b4741af75b5379384354e37">mm_mimepart.c</a>
+<li>mm_mimepart_attachheader()
+: <a class="el" href="group__mimepart.html#g46a674ff6b9873c0c45fa4eb5d94fd62">mm_mimepart.c</a>
+<li>mm_mimepart_countheaderbyname()
+: <a class="el" href="group__mimepart.html#gf89da502ac54306994bdb452448a8026">mm_mimepart.c</a>
+<li>mm_mimepart_countheaders()
+: <a class="el" href="group__mimepart.html#g44c78abfb0535312bcb427a2cd220026">mm_mimepart.c</a>
+<li>mm_mimepart_decode()
+: <a class="el" href="group__mimepart.html#g4551bf4460e5d165bbcd9f32d4f625de">mm_mimepart.c</a>
+<li>mm_mimepart_flatten()
+: <a class="el" href="group__mimepart.html#gf19d3ace5ae174b3eaa35f9ddbe6e216">mm_mimepart.c</a>
+<li>mm_mimepart_free()
+: <a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart.c</a>
+<li>mm_mimepart_fromfile()
+: <a class="el" href="group__mimepart.html#ged8112012a337371ae8093adb1ab6d27">mm_mimepart.c</a>
+<li>mm_mimepart_getbody()
+: <a class="el" href="group__mimepart.html#g52dc9f27a2801e4f6abb1effd2ed838d">mm_mimepart.c</a>
+<li>mm_mimepart_getheaderbyname()
+: <a class="el" href="group__mimepart.html#ga3ca298eaa82f4ef3ea731511ac84e53">mm_mimepart.c</a>
+<li>mm_mimepart_getheadervalue()
+: <a class="el" href="group__mimepart.html#g779f11f7a6a54f83763b5ef6ff87e48f">mm_mimepart.c</a>
+<li>mm_mimepart_getlength()
+: <a class="el" href="group__mimepart.html#gf8ccae1737dc4b9b91958fe448da677f">mm_mimepart.c</a>
+<li>mm_mimepart_gettype()
+: <a class="el" href="group__mimepart.html#g210e2ceee56f8349f6778006da87d080">mm_mimepart.c</a>
+<li>mm_mimepart_headers_next()
+: <a class="el" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart.c</a>
+<li>mm_mimepart_headers_start()
+: <a class="el" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart.c</a>
+<li>mm_mimepart_new()
+: <a class="el" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart.c</a>
+<li>mm_mimepart_setbody()
+: <a class="el" href="group__mimepart.html#gd1def098c00edc546b03e98e9ff8b27a">mm_mimepart.c</a>
+<li>mm_mimepart_setdefaultcontenttype()
+: <a class="el" href="group__mimepart.html#g164bb39a266559574c252f11266809ff">mm_mimepart.c</a>
+<li>mm_mimeutil_gendate()
+: <a class="el" href="mm__mimeutil_8c.html#a7b7f63b42dfa7a7f907b615aa4cd057">mm_mimeutil.c</a>
+<li>mm_param_free()
+: <a class="el" href="group__param.html#g46339038e995799e6a3e37512f442fc9">mm_param.c</a>
+<li>mm_param_generate()
+: <a class="el" href="group__param.html#gd3970def45b8bede334f4b89a41dec15">mm_param.c</a>
+<li>mm_param_getname()
+: <a class="el" href="group__param.html#g0e0ddccf47a2b1e0ad5bcc52c7b39753">mm_param.c</a>
+<li>mm_param_getvalue()
+: <a class="el" href="group__param.html#g3c6f8cddd409de3000c31584e140561e">mm_param.c</a>
+<li>mm_param_new()
+: <a class="el" href="group__param.html#gd3ac756551bf5a29a07d5992bfdbde09">mm_param.c</a>
+<li>mm_param_setname()
+: <a class="el" href="group__param.html#g2a266c63c7e89cf829b2af8e995e55e8">mm_param.c</a>
+<li>mm_param_setvalue()
+: <a class="el" href="group__param.html#gca3e636ab5700462eb32ca5bc19e4cc6">mm_param.c</a>
+<li>mm_parse_file()
+: <a class="el" href="mm__parse_8c.html#cc9f623682b05f330c46e72e4e9d66cc">mm_parse.c</a>
+<li>mm_parse_mem()
+: <a class="el" href="mm__parse_8c.html#58c960b6017f13d4e4ec5f09b3c38495">mm_parse.c</a>
+<li>mm_stripchars()
+: <a class="el" href="group__util.html#gf62be7dd21e545f8db72f3c9e3b6a3c3">mm_util.c</a>
+<li>mm_uncomment()
+: <a class="el" href="group__util.html#g49c016ff4cfd02f1b019c4dce5aac357">mm_util.c</a>
+<li>mm_unquote()
+: <a class="el" href="group__util.html#gf0f89a29a634f6f1f833abb1e214a6b1">mm_util.c</a>
+</ul>
+<h3><a class="anchor" name="index_x">- x -</a></h3><ul>
+<li>xmalloc()
+: <a class="el" href="group__util.html#g2ff4ef58da7e543466e75f20f2a2d8b7">mm_util.c</a>
+<li>xrealloc()
+: <a class="el" href="group__util.html#ge14637b4672461f1f0bee822406d68dc">mm_util.c</a>
+<li>xstrsep()
+: <a class="el" href="group__util.html#g3ae25483c8a42f6562f2a916a511228f">mm_util.c</a>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/group__codecs.html b/main/minimime/mm-docs/html/group__codecs.html
new file mode 100644
index 0000000000..a803cd67c0
--- /dev/null
+++ b/main/minimime/mm-docs/html/group__codecs.html
@@ -0,0 +1,243 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Manipulating MiniMIME codecs</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>Manipulating MiniMIME codecs</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Codec manipulation</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#g6ccb0f7a1d7c870dc3dae04f31d6ccca">mm_codec_hasdecoder</a> (const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#g50ff257b794ceaec7aedf9ae18bfcc57">mm_codec_hasencoder</a> (const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#g9e19f6343128fd7e4ec57c3d55049b55">mm_codec_isregistered</a> (const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#gf97a7311c909888ed9f6f14d6f1bf397">mm_codec_register</a> (const char *encoding, char *(*encoder)(char *data, u_int32_t i), char *(*decoder)(char *data))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#g0c71696bc70f834386193e3c7a0e2ca4">mm_codec_unregister</a> (const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#g7c9e6538f84c368be2b56a3c9ba702be">mm_codec_unregisterall</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#gf39e72460fb85f5ca41f6e270a68aacc">mm_codec_registerdefaultcodecs</a> (void)</td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="g6ccb0f7a1d7c870dc3dae04f31d6ccca"></a><!-- doxytag: member="mm_codecs.c::mm_codec_hasdecoder" ref="g6ccb0f7a1d7c870dc3dae04f31d6ccca" args="(const char *encoding)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_codec_hasdecoder           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>encoding</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Looks up whether a context has an decoder installed for a given encoding<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>The encoding specifier to look up </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if a decoder is installed or 0 if not </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g50ff257b794ceaec7aedf9ae18bfcc57"></a><!-- doxytag: member="mm_codecs.c::mm_codec_hasencoder" ref="g50ff257b794ceaec7aedf9ae18bfcc57" args="(const char *encoding)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_codec_hasencoder           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>encoding</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Looks up whether a context has an encoder installed for a given encoding<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MIME context </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>The encoding specifier to look up </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if an encoder is installed or 0 if not </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g9e19f6343128fd7e4ec57c3d55049b55"></a><!-- doxytag: member="mm_codecs.c::mm_codec_isregistered" ref="g9e19f6343128fd7e4ec57c3d55049b55" args="(const char *encoding)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_codec_isregistered           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>encoding</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Looks up whether a codec for a given encoding is installed to a context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>The encoding specifier to look up </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if a codec was found or 0 if not </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gf97a7311c909888ed9f6f14d6f1bf397"></a><!-- doxytag: member="mm_codecs.c::mm_codec_register" ref="gf97a7311c909888ed9f6f14d6f1bf397" args="(const char *encoding, char *(*encoder)(char *data, u_int32_t i), char *(*decoder)(char *data))" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_codec_register           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>encoding</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *(*)(char *data, u_int32_t i)&nbsp;</td>
+          <td class="paramname"> <em>encoder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *(*)(char *data)&nbsp;</td>
+          <td class="paramname"> <em>decoder</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Registers a codec with the MiniMIME library<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>The encoding specifier for which to register the codec </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>encoder</em>&nbsp;</td><td>The encoder function for this encoding </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>decoder</em>&nbsp;</td><td>The decoder function for this encoding </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if successfull or 0 if not</dd></dl>
+This function registers a codec for a given MiniMIME context. The codec may provide an decoder, an encoder or both (but not none). If there is a codec already installed for this encoding, the function will puke. 
+</div>
+</div><p>
+<a class="anchor" name="gf39e72460fb85f5ca41f6e270a68aacc"></a><!-- doxytag: member="mm_codecs.c::mm_codec_registerdefaultcodecs" ref="gf39e72460fb85f5ca41f6e270a68aacc" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void mm_codec_registerdefaultcodecs           </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Registers the default codecs to a MiniMIME context<p>
+This functions registers the codecs for the following encodings to a MiniMIME context:<p>
+<ul>
+<li>Base64</li><li>(TODO:) Quoted-Printable </li></ul>
+
+</div>
+</div><p>
+<a class="anchor" name="g0c71696bc70f834386193e3c7a0e2ca4"></a><!-- doxytag: member="mm_codecs.c::mm_codec_unregister" ref="g0c71696bc70f834386193e3c7a0e2ca4" args="(const char *encoding)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_codec_unregister           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>encoding</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Unregisters a MiniMIME codec<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>The encoding specifier which to unregister </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if unregistered successfully, or -1 if there was no such codec </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g7c9e6538f84c368be2b56a3c9ba702be"></a><!-- doxytag: member="mm_codecs.c::mm_codec_unregisterall" ref="g7c9e6538f84c368be2b56a3c9ba702be" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_codec_unregisterall           </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Unregisters all codecs within a context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if all codecs were unregistered successfully or -1 if an error occured. </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Foobar </dd></dl>
+
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/group__contenttype.html b/main/minimime/mm-docs/html/group__contenttype.html
new file mode 100644
index 0000000000..973f98a8d8
--- /dev/null
+++ b/main/minimime/mm-docs/html/group__contenttype.html
@@ -0,0 +1,516 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Accessing and manipulating Content-Type objects</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>Accessing and manipulating Content-Type objects</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions for manipulating Content-Type objects</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_content *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g3880ac74a20b4a9f610a4159568e1801">mm_content_new</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g404314481125849bce869ee4b0f647af">mm_content_free</a> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g080b7ed798ed497dcd635a6bab86962f">mm_content_attachparam</a> (struct mm_content *ct, struct mm_param *param)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g451441ee557ab5ef29477f3dc8330bf6">mm_content_getparambyname</a> (struct mm_content *ct, const char *name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1ba63e679d2b49aceb6cfec8a6752581"></a><!-- doxytag: member="contenttype::mm_content_getparamobjbyname" ref="g1ba63e679d2b49aceb6cfec8a6752581" args="(struct mm_content *ct, const char *name)" -->
+mm_param *&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_content_getparamobjbyname</b> (struct mm_content *ct, const char *name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g7bab273d117c6c0cacad20361d8fb1c8">mm_content_setmaintype</a> (struct mm_content *ct, char *value, int copy)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#gb213081017abf6bc7e601c6bf4214924">mm_content_getmaintype</a> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g97f77ef40c14cd0fb397bad358ee5d49">mm_content_getsubtype</a> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6d8453eb35bd695c4944e53b7040b65"></a><!-- doxytag: member="contenttype::mm_content_gettype" ref="ga6d8453eb35bd695c4944e53b7040b65" args="(struct mm_content *ct)" -->
+char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_content_gettype</b> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g14b0738410d566ad2312405946f22212">mm_content_setsubtype</a> (struct mm_content *ct, char *value, int copy)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g878686678ea2ba97aa8edb1206a564d8"></a><!-- doxytag: member="contenttype::mm_content_settype" ref="g878686678ea2ba97aa8edb1206a564d8" args="(struct mm_content *ct, const char *fmt,...)" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_content_settype</b> (struct mm_content *ct, const char *fmt,...)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#ga7fa479f27e73dea57257421d8fc9fc5">mm_content_iscomposite</a> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#gb724b5979182fa272fe4fd1b72b395d5">mm_content_isvalidencoding</a> (const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#gea945e48ac5cca846715543634b9afe4">mm_content_setencoding</a> (struct mm_content *ct, const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#gbff87e581cd04db16e91245e9e9de67d">mm_content_getencoding</a> (struct mm_content *ct, const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g792e7d33fbb30e0123408bcef9d3204c">mm_content_paramstostring</a> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g18a99c95e35a76f13a77a83c4231e738">mm_content_tostring</a> (struct mm_content *ct)</td></tr>
+
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6c458a8611981109bf0519b5ae21e12e"></a><!-- doxytag: member="contenttype::type" ref="g6c458a8611981109bf0519b5ae21e12e" args="" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_encoding_mappings::type</b></td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="g080b7ed798ed497dcd635a6bab86962f"></a><!-- doxytag: member="mm_contenttype.c::mm_content_attachparam" ref="g080b7ed798ed497dcd635a6bab86962f" args="(struct mm_content *ct, struct mm_param *param)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_content_attachparam           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct mm_param *&nbsp;</td>
+          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Attaches a parameter to a Content-Type object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>The target Content-Type object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>The Content-Type parameter which to attach </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success and -1 on failure </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g404314481125849bce869ee4b0f647af"></a><!-- doxytag: member="mm_contenttype.c::mm_content_free" ref="g404314481125849bce869ee4b0f647af" args="(struct mm_content *ct)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void mm_content_free           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Releases all memory associated with an Content-Type object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>A Content-Type object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>Nothing </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gbff87e581cd04db16e91245e9e9de67d"></a><!-- doxytag: member="mm_contenttype.c::mm_content_getencoding" ref="gbff87e581cd04db16e91245e9e9de67d" args="(struct mm_content *ct, const char *encoding)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_content_getencoding           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>encoding</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the numerical ID of a content encoding identifier<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>A valid Content Type object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>A string representing the content encoding identifier </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The numerical ID of the content encoding </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gb213081017abf6bc7e601c6bf4214924"></a><!-- doxytag: member="mm_contenttype.c::mm_content_getmaintype" ref="gb213081017abf6bc7e601c6bf4214924" args="(struct mm_content *ct)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_content_getmaintype           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieves the main MIME type stored in a Content-Type object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>A valid Content-Type object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the string representing the main type </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g451441ee557ab5ef29477f3dc8330bf6"></a><!-- doxytag: member="mm_contenttype.c::mm_content_getparambyname" ref="g451441ee557ab5ef29477f3dc8330bf6" args="(struct mm_content *ct, const char *name)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_content_getparambyname           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets a parameter value from a Content-Type object.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>the Content-Type object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>the name of the parameter to retrieve </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The value of the parameter on success or a NULL pointer on failure </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g97f77ef40c14cd0fb397bad358ee5d49"></a><!-- doxytag: member="mm_contenttype.c::mm_content_getsubtype" ref="g97f77ef40c14cd0fb397bad358ee5d49" args="(struct mm_content *ct)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_content_getsubtype           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieves the sub MIME type stored in a Content-Type object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>A valid Content-Type object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the string holding the current sub MIME type </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ga7fa479f27e73dea57257421d8fc9fc5"></a><!-- doxytag: member="mm_contenttype.c::mm_content_iscomposite" ref="ga7fa479f27e73dea57257421d8fc9fc5" args="(struct mm_content *ct)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_content_iscomposite           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Checks whether the Content-Type represents a composite message or not<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>A valid Content-Type object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if the Content-Type object represents a composite message or 0 if not. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gb724b5979182fa272fe4fd1b72b395d5"></a><!-- doxytag: member="mm_contenttype.c::mm_content_isvalidencoding" ref="gb724b5979182fa272fe4fd1b72b395d5" args="(const char *encoding)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_content_isvalidencoding           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>encoding</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Verifies whether a string represents a valid encoding or not.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>The string to verify </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if the encoding string is valid or 0 if not </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g3880ac74a20b4a9f610a4159568e1801"></a><!-- doxytag: member="mm_contenttype.c::mm_content_new" ref="g3880ac74a20b4a9f610a4159568e1801" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_content* mm_content_new           </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates a new object to hold a Content-Type representation. The allocated memory must later be freed using <a class="el" href="group__contenttype.html#g404314481125849bce869ee4b0f647af">mm_content_free()</a><p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>An object representing a MIME Content-Type </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__contenttype.html#g404314481125849bce869ee4b0f647af">mm_content_free</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g792e7d33fbb30e0123408bcef9d3204c"></a><!-- doxytag: member="mm_contenttype.c::mm_content_paramstostring" ref="g792e7d33fbb30e0123408bcef9d3204c" args="(struct mm_content *ct)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_content_paramstostring           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Constructs a MIME conform string of Content-Type parameters.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>A valid Content Type object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to a string representing the Content-Type parameters in MIME terminology, or NULL if either the Content-Type object is invalid, has no parameters or no memory could be allocated.</dd></dl>
+This function constructs a MIME conform string including all the parameters associated with the given Content-Type object. It should NOT be used if you need an opaque copy of the current MIME part (e.g. for PGP purposes). 
+</div>
+</div><p>
+<a class="anchor" name="gea945e48ac5cca846715543634b9afe4"></a><!-- doxytag: member="mm_contenttype.c::mm_content_setencoding" ref="gea945e48ac5cca846715543634b9afe4" args="(struct mm_content *ct, const char *encoding)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_content_setencoding           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>encoding</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set the encoding of a MIME entitity according to a mapping table<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>A valid content type object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>A string representing the content encoding </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successfull or -1 if not (i.e. unknown content encoding) </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g7bab273d117c6c0cacad20361d8fb1c8"></a><!-- doxytag: member="mm_contenttype.c::mm_content_setmaintype" ref="g7bab273d117c6c0cacad20361d8fb1c8" args="(struct mm_content *ct, char *value, int copy)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_content_setmaintype           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>copy</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets the MIME main type for a MIME Content-Type object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>The MIME Content-Type object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value which to set the main type to </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>Whether to make a copy of the value (original value must be freed afterwards to prevent memory leaks). </td></tr>
+  </table>
+</dl>
+
+<p>
+<dl compact><dt><b><a class="el" href="bug.html#_bug000001">Bug:</a></b></dt><dd>The xfree() call could lead to undesirable results. Do we really need it? </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g14b0738410d566ad2312405946f22212"></a><!-- doxytag: member="mm_contenttype.c::mm_content_setsubtype" ref="g14b0738410d566ad2312405946f22212" args="(struct mm_content *ct, char *value, int copy)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_content_setsubtype           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>copy</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets the MIME sub type for a MIME Content-Type object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>The MIME Content-Type object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value which to set the sub type to </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>Whether to make a copy of the value (original value must be freed afterwards to prevent memory leaks). </td></tr>
+  </table>
+</dl>
+
+<p>
+<dl compact><dt><b><a class="el" href="bug.html#_bug000002">Bug:</a></b></dt><dd>The xfree() call could lead to undesirable results. Do we really need it? </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g18a99c95e35a76f13a77a83c4231e738"></a><!-- doxytag: member="mm_contenttype.c::mm_content_tostring" ref="g18a99c95e35a76f13a77a83c4231e738" args="(struct mm_content *ct)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_content_tostring           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates a Content-Type header according to the object given<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>A valid Content-Type object </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/group__context.html b/main/minimime/mm-docs/html/group__context.html
new file mode 100644
index 0000000000..832151ea1f
--- /dev/null
+++ b/main/minimime/mm-docs/html/group__context.html
@@ -0,0 +1,465 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Accessing and manipulating MIME contexts</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>Accessing and manipulating MIME contexts</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Manipulating MiniMIME contexts</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">MM_CTX *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free</a> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gec3ca486a61b392ff68774242086768e">mm_context_attachpart</a> (MM_CTX *ctx, struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g73a3dd187053aeabca4836dc28a6c468">mm_context_attachpart_after</a> (MM_CTX *ctx, struct mm_mimepart *part, int pos)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g53d20c33a401539ef1ffa45f3dddb983">mm_context_deletepart</a> (MM_CTX *ctx, int which, int freemem)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gf5bb032ad1c481d31d7b1b0710939712">mm_context_countparts</a> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimepart *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g57fea229675f3e56a77eb40bb8193ee3">mm_context_getpart</a> (MM_CTX *ctx, int which)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g1e73cadba4acd3ef9dd148dd0c2c3e70">mm_context_iscomposite</a> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g8733dee7d83d3205349a7ee4ee5b2750">mm_context_haswarnings</a> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g9710e485f51167099d90f0d659979068">mm_context_generateboundary</a> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gc0e7cc297516618d4773830a1988fc8d">mm_context_setpreamble</a> (MM_CTX *ctx, char *preamble)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1ebbdd51106ccdee77ca421f9692bde7"></a><!-- doxytag: member="context::mm_context_getpreamble" ref="g1ebbdd51106ccdee77ca421f9692bde7" args="(MM_CTX *ctx)" -->
+char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_context_getpreamble</b> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g5288136ab923605f6508c09359ae5772">mm_context_flatten</a> (MM_CTX *ctx, char **flat, size_t *length, int flags)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Each message in MiniMIME is represented by a so called ``context''. A context holds all necessary information given about a MIME message, such as the envelope, all MIME parts etc. <hr><h2>Function Documentation</h2>
+<a class="anchor" name="gec3ca486a61b392ff68774242086768e"></a><!-- doxytag: member="mm_context.c::mm_context_attachpart" ref="gec3ca486a61b392ff68774242086768e" args="(MM_CTX *ctx, struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_context_attachpart           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Attaches a MIME part object to a MiniMIME context.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>the MiniMIME context </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>the MIME part object to attach </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure. Sets mm_errno on failure.</dd></dl>
+This function attaches a MIME part to a context, appending it to the end of the message.<p>
+The MIME part should be initialized before attaching it using <a class="el" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart_new()</a>. 
+</div>
+</div><p>
+<a class="anchor" name="g73a3dd187053aeabca4836dc28a6c468"></a><!-- doxytag: member="mm_context.c::mm_context_attachpart_after" ref="g73a3dd187053aeabca4836dc28a6c468" args="(MM_CTX *ctx, struct mm_mimepart *part, int pos)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_context_attachpart_after           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>pos</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Attaches a MIME part object to a MiniMIME context at a given position<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>The MIME part object to attach </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>After which part to attach the object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 if the given position is invalid </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#gec3ca486a61b392ff68774242086768e">mm_context_attachpart</a></dd></dl>
+This function attaches a MIME part object after a given position in the specified context. If the position is invalid (out of range), the part will not get attached to the message and the function returns -1. If the index was in range, the MIME part will get attached after the MIME part at the given position, moving any possible following MIME parts one down the hierarchy. 
+</div>
+</div><p>
+<a class="anchor" name="gf5bb032ad1c481d31d7b1b0710939712"></a><!-- doxytag: member="mm_context.c::mm_context_countparts" ref="gf5bb032ad1c481d31d7b1b0710939712" args="(MM_CTX *ctx)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_context_countparts           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Counts the number of attached MIME part objects in a given MiniMIME context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>The MiniMIME context </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of attached MIME part objects </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g53d20c33a401539ef1ffa45f3dddb983"></a><!-- doxytag: member="mm_context.c::mm_context_deletepart" ref="g53d20c33a401539ef1ffa45f3dddb983" args="(MM_CTX *ctx, int which, int freemem)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_context_deletepart           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>which</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>freemem</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Deletes a MIME part object from a MiniMIME context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>which</em>&nbsp;</td><td>The number of the MIME part object to delete </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>freemem</em>&nbsp;</td><td>Whether to free the memory associated with the MIME part object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure. Sets mm_errno on failure.</dd></dl>
+This function deletes a MIME part from a given context. The MIME part to delete is specified as numerical index by the parameter ``which''. If the parameter ``freemem'' is set to anything greater than 0, the memory that is associated will be free'd by using <a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free()</a>, otherwise the memory is left untouched (if you still have a pointer to the MIME part around). 
+</div>
+</div><p>
+<a class="anchor" name="g5288136ab923605f6508c09359ae5772"></a><!-- doxytag: member="mm_context.c::mm_context_flatten" ref="g5288136ab923605f6508c09359ae5772" args="(MM_CTX *ctx, char **flat, size_t *length, int flags)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_context_flatten           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>flat</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t *&nbsp;</td>
+          <td class="paramname"> <em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates an ASCII message of the specified context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>flat</em>&nbsp;</td><td>Where to store the message </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>Flags that affect the flattening process</td></tr>
+  </table>
+</dl>
+This function ``flattens'' a MiniMIME context, that is, it creates an ASCII represantation of the message the context contains. The flags can be a bitwise combination of the following constants:<p>
+<ul>
+<li>MM_FLATTEN_OPAQUE : use opaque MIME parts when flattening</li><li>MM_FLATTEN_SKIPENVELOPE : do not flatten the envelope part</li></ul>
+<p>
+Great care is taken to not produce invalid MIME output. 
+</div>
+</div><p>
+<a class="anchor" name="g76392d5269e9ef340c2f5f8336f7193b"></a><!-- doxytag: member="mm_context.c::mm_context_free" ref="g76392d5269e9ef340c2f5f8336f7193b" args="(MM_CTX *ctx)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void mm_context_free           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Releases a MiniMIME context object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context </td></tr>
+  </table>
+</dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new</a></dd></dl>
+This function releases all memory associated with MiniMIME context object that was created using <a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new()</a>. It will also release all memory used for the MIME parts attached, and their specific properties (such as Content-Type information, headers, and the body data). 
+</div>
+</div><p>
+<a class="anchor" name="g9710e485f51167099d90f0d659979068"></a><!-- doxytag: member="mm_context.c::mm_context_generateboundary" ref="g9710e485f51167099d90f0d659979068" args="(MM_CTX *ctx)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_context_generateboundary           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Generates a generic boundary string for a given context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure</dd></dl>
+This function generates a default boundary string for the given context. If there is already a boundary for the context, the memory will be free()'d. 
+</div>
+</div><p>
+<a class="anchor" name="g57fea229675f3e56a77eb40bb8193ee3"></a><!-- doxytag: member="mm_context.c::mm_context_getpart" ref="g57fea229675f3e56a77eb40bb8193ee3" args="(MM_CTX *ctx, int which)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_mimepart* mm_context_getpart           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>which</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets a specified MIME part object from a MimeMIME context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>The MiniMIME context </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>which</em>&nbsp;</td><td>The number of the MIME part object to retrieve </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The requested MIME part object on success or a NULL pointer if there is no such part. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g8733dee7d83d3205349a7ee4ee5b2750"></a><!-- doxytag: member="mm_context.c::mm_context_haswarnings" ref="g8733dee7d83d3205349a7ee4ee5b2750" args="(MM_CTX *ctx)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_context_haswarnings           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Checks whether there are any warnings associated with a given context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if there are warnings associated with the context, otherwise 0 </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g1e73cadba4acd3ef9dd148dd0c2c3e70"></a><!-- doxytag: member="mm_context.c::mm_context_iscomposite" ref="g1e73cadba4acd3ef9dd148dd0c2c3e70" args="(MM_CTX *ctx)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_context_iscomposite           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Checks whether a given context represents a composite (multipart) message<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if the context is a composite message or 0 if it's flat </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g919fd41f85534d9c87c256857faa2610"></a><!-- doxytag: member="mm_context.c::mm_context_new" ref="g919fd41f85534d9c87c256857faa2610" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MM_CTX* mm_context_new           </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates a new MiniMIME context object.<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>a new MiniMIME context object </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free</a></dd></dl>
+This function creates a new MiniMIME context, which will hold a message. The memory needed is allocated dynamically and should later be free'd using <a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free()</a>.<p>
+Before a context can be created, the MiniMIME library needs to be initialized properly using mm_library_init(). 
+</div>
+</div><p>
+<a class="anchor" name="gc0e7cc297516618d4773830a1988fc8d"></a><!-- doxytag: member="mm_context.c::mm_context_setpreamble" ref="gc0e7cc297516618d4773830a1988fc8d" args="(MM_CTX *ctx, char *preamble)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_context_setpreamble           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>preamble</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets a preamble for the given MiniMIME context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>preamble</em>&nbsp;</td><td>The preamble to set </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure</dd></dl>
+This function sets the MIME preamble (the text between the end of envelope headers and the beginning of the first MIME part) for a given context object. If preamble is a NULL-pointer then the preamble will be deleted, and the currently associated memory will be free automagically. 
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/group__envelope.html b/main/minimime/mm-docs/html/group__envelope.html
new file mode 100644
index 0000000000..9f19e734f9
--- /dev/null
+++ b/main/minimime/mm-docs/html/group__envelope.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Accessing and manipulating a message&apos;s envelope</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>Accessing and manipulating a message's envelope</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Accessing and manipulating a message's envelope</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__envelope.html#g38f1164142cedfc3253b068a81f85563">mm_envelope_getheaders</a> (MM_CTX *ctx, char **result, size_t *length)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__envelope.html#gb2c43c1645e42ae0860c902ce1dda788">mm_envelope_setheader</a> (MM_CTX *ctx, const char *name, const char *fmt,...)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__envelope.html#ge63da17c56867ca2406a4eaf73230baf">mm_envelope_getrecipients</a> (MM_CTX *ctx, char **result, size_t *length)</td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="g38f1164142cedfc3253b068a81f85563"></a><!-- doxytag: member="mm_envelope.c::mm_envelope_getheaders" ref="g38f1164142cedfc3253b068a81f85563" args="(MM_CTX *ctx, char **result, size_t *length)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_envelope_getheaders           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>result</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t *&nbsp;</td>
+          <td class="paramname"> <em>length</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets an ASCII representation of all envelope headers<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>Where to store the resulting ASCII headers </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>Where to store the length of the result </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure. </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Sets mm_errno on failure</dd></dl>
+This is mainly a convinience function. It constructs an ASCII representation from all of the message's envelope headers and stores the result in headers. Memory is allocated dynamically, and the total length of the result is stored in length. This function takes care that the output is MIME conform, and folds long lines according to the MIME standard at position 78 of the string. It also nicely formats all MIME related header fields, such as the Content-Type header.<p>
+Since the memory needed to store the result is allocated dynamically, one should take care of freeing it again when it's not needed anymore. If an error occurs, *result will be set to NULL, *length will be set to zero and mm_errno will be set to a reasonable value. 
+</div>
+</div><p>
+<a class="anchor" name="ge63da17c56867ca2406a4eaf73230baf"></a><!-- doxytag: member="mm_envelope.c::mm_envelope_getrecipients" ref="ge63da17c56867ca2406a4eaf73230baf" args="(MM_CTX *ctx, char **result, size_t *length)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_envelope_getrecipients           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>result</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t *&nbsp;</td>
+          <td class="paramname"> <em>length</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the list of recipients for a MIME message<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>Where to store the result </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>Where to store the length of the result </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on error </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Sets mm_errno on error</dd></dl>
+This functions gets the list of recipients for a given MIME message. It does so by concatenating the "From" and "Cc" header fields, and storing the results in recipients. The memory needed to store the result is allocated dynamically, and the total length of the result is stored in length.<p>
+One should take care to free() the result once it's not needed anymore. 
+</div>
+</div><p>
+<a class="anchor" name="gb2c43c1645e42ae0860c902ce1dda788"></a><!-- doxytag: member="mm_envelope.c::mm_envelope_setheader" ref="gb2c43c1645e42ae0860c902ce1dda788" args="(MM_CTX *ctx, const char *name, const char *fmt,...)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_envelope_setheader           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>fmt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets a header field in the envelope<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the header field to set </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>fmt</em>&nbsp;</td><td>A format string specifying the value of the header field </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure</dd></dl>
+This function generates a new MIME header and attaches it to the first MIME part (the envelope) found in the given context. If no part is attached already, the function will return an error. The function will store a copy of ``name'' as the header's name field, and dynamically allocate the memory needed to build the format string. 
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/group__error.html b/main/minimime/mm-docs/html/group__error.html
new file mode 100644
index 0000000000..739ea03e83
--- /dev/null
+++ b/main/minimime/mm-docs/html/group__error.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: MiniMIME error functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>MiniMIME error functions</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__error.html#g69de7c9bee1d535593a55807590de543">mm_error_init</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__error.html#g92006c97728639d8f32f5bc4c6e2a47f">mm_error_setmsg</a> (const char *fmt,...)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__error.html#g8654857a3ac349b87d798902912371a3">mm_error_string</a> (void)</td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="g69de7c9bee1d535593a55807590de543"></a><!-- doxytag: member="mm_error.c::mm_error_init" ref="g69de7c9bee1d535593a55807590de543" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void mm_error_init           </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Initializes the global error object<p>
+This function initializes the global error object mm_error. This must be done when the library is initialized, and is automatically called from mm_init_library(). 
+</div>
+</div><p>
+<a class="anchor" name="g92006c97728639d8f32f5bc4c6e2a47f"></a><!-- doxytag: member="mm_error.c::mm_error_setmsg" ref="g92006c97728639d8f32f5bc4c6e2a47f" args="(const char *fmt,...)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void mm_error_setmsg           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>fmt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets a descriptive error message<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>fmt</em>&nbsp;</td><td>The error message as format string</td></tr>
+  </table>
+</dl>
+This function is called from the various MiniMIME modules in case an error occured. Should never be called by the user. 
+</div>
+</div><p>
+<a class="anchor" name="g8654857a3ac349b87d798902912371a3"></a><!-- doxytag: member="mm_error.c::mm_error_string" ref="g8654857a3ac349b87d798902912371a3" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_error_string           </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieves the current error message<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The currently set error message</dd></dl>
+This function can be used to retrieve a descriptive error message for the current error, much like strerror() function of libc. When this function is called without an error being set, it returns the string "No error". The string returned does not need to be freed, since it is not dynamically allocated by the library. 
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/group__mimepart.html b/main/minimime/mm-docs/html/group__mimepart.html
new file mode 100644
index 0000000000..84806c80d3
--- /dev/null
+++ b/main/minimime/mm-docs/html/group__mimepart.html
@@ -0,0 +1,705 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Accessing and manipulating MIME parts</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>Accessing and manipulating MIME parts</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Creating and destroying MIME parts</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimepart *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart_new</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimepart *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#ged8112012a337371ae8093adb1ab6d27">mm_mimepart_fromfile</a> (const char *filename)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td colspan="2"><br><h2>Accessing the MIME part's mail header</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g46a674ff6b9873c0c45fa4eb5d94fd62">mm_mimepart_attachheader</a> (struct mm_mimepart *part, struct mm_mimeheader *header)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g44c78abfb0535312bcb427a2cd220026">mm_mimepart_countheaders</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gf89da502ac54306994bdb452448a8026">mm_mimepart_countheaderbyname</a> (struct mm_mimepart *part, const char *name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimeheader *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#ga3ca298eaa82f4ef3ea731511ac84e53">mm_mimepart_getheaderbyname</a> (struct mm_mimepart *part, const char *name, int idx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g779f11f7a6a54f83763b5ef6ff87e48f">mm_mimepart_getheadervalue</a> (struct mm_mimepart *part, const char *name, int idx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart_headers_start</a> (struct mm_mimepart *part, struct mm_mimeheader **id)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimeheader *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart_headers_next</a> (struct mm_mimepart *part, struct mm_mimeheader **id)</td></tr>
+
+<tr><td colspan="2"><br><h2>Accessing and manipulating the MIME part's body</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g52dc9f27a2801e4f6abb1effd2ed838d">mm_mimepart_getbody</a> (struct mm_mimepart *part, int opaque)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gd1def098c00edc546b03e98e9ff8b27a">mm_mimepart_setbody</a> (struct mm_mimepart *part, const char *data, int opaque)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gf8ccae1737dc4b9b91958fe448da677f">mm_mimepart_getlength</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g4551bf4460e5d165bbcd9f32d4f625de">mm_mimepart_decode</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gf19d3ace5ae174b3eaa35f9ddbe6e216">mm_mimepart_flatten</a> (struct mm_mimepart *part, char **result, size_t *length, int opaque)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g164bb39a266559574c252f11266809ff">mm_mimepart_setdefaultcontenttype</a> (struct mm_mimepart *part, int composite)</td></tr>
+
+<tr><td colspan="2"><br><h2>Accessing the MIME part's Content-Type information</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g01822bc93b4741af75b5379384354e37">mm_mimepart_attachcontenttype</a> (struct mm_mimepart *part, struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_content *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g210e2ceee56f8349f6778006da87d080">mm_mimepart_gettype</a> (struct mm_mimepart *part)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+MIME parts, also called entities, represent the structure of a MIME message. ``Normal'' internet messages have only a single part, and are called ``flat'' messages. Multipart messages have more then one part, and each MIME part can have it's own subset of headers.<p>
+Provided here are functions to easily access all informations from a MIME part, including their specific headers and bodies. <hr><h2>Function Documentation</h2>
+<a class="anchor" name="g01822bc93b4741af75b5379384354e37"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_attachcontenttype" ref="g01822bc93b4741af75b5379384354e37" args="(struct mm_mimepart *part, struct mm_content *ct)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void mm_mimepart_attachcontenttype           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct mm_content *&nbsp;</td>
+          <td class="paramname"> <em>ct</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Attaches a context type object to a MIME part<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>The content type object to attach </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>Nothing</dd></dl>
+This function attaches a Content-Type object to a MIME part. It does not care whether the Content-Type suites the actual content in the MIME part, so the programmer should take care of that. 
+</div>
+</div><p>
+<a class="anchor" name="g46a674ff6b9873c0c45fa4eb5d94fd62"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_attachheader" ref="g46a674ff6b9873c0c45fa4eb5d94fd62" args="(struct mm_mimepart *part, struct mm_mimeheader *header)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_mimepart_attachheader           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct mm_mimeheader *&nbsp;</td>
+          <td class="paramname"> <em>header</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Attaches a mm_mimeheader object to a MIME part<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>A valid MIME header object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successfull or -1 if the header could not be attached </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gf89da502ac54306994bdb452448a8026"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_countheaderbyname" ref="gf89da502ac54306994bdb452448a8026" args="(struct mm_mimepart *part, const char *name)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_mimepart_countheaderbyname           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieves the number of MIME headers with a given name in a MIME part<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the MIME header which to count for </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of MIME headers within the MIME part </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g44c78abfb0535312bcb427a2cd220026"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_countheaders" ref="g44c78abfb0535312bcb427a2cd220026" args="(struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_mimepart_countheaders           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieves the number of MIME headers available in a MIME part<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of MIME headers within the MIME part </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g4551bf4460e5d165bbcd9f32d4f625de"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_decode" ref="g4551bf4460e5d165bbcd9f32d4f625de" args="(struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_mimepart_decode           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Decodes a MIME part according to it's encoding using MiniMIME codecs<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>A</em>&nbsp;</td><td>valid MIME part object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if the MIME part could be successfully decoded or -1 if not </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Sets mm_errno on error</dd></dl>
+This function decodes the body of a MIME part with a registered decoder according to it's Content-Transfer-Encoding header field. 
+</div>
+</div><p>
+<a class="anchor" name="gf19d3ace5ae174b3eaa35f9ddbe6e216"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_flatten" ref="gf19d3ace5ae174b3eaa35f9ddbe6e216" args="(struct mm_mimepart *part, char **result, size_t *length, int opaque)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_mimepart_flatten           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>result</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t *&nbsp;</td>
+          <td class="paramname"> <em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>opaque</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates an ASCII representation of the given MIME part<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>Where to store the result </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>Where to store the length of the result </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>opaque</em>&nbsp;</td><td>Whether to use the opaque MIME part  0 on success or -1 on error. </td></tr>
+  </table>
+</dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#g5288136ab923605f6508c09359ae5772">mm_context_flatten</a></dd></dl>
+This function creates an ASCII representation of a given MIME part. It will dynamically allocate the memory needed and stores the result in the memory region pointed to by result. The length of the result will be stored in length. If opaque is set to 1, mm_mimepart_flatten will store an opaque version of the MIME part in result, which means no headers will be created or sanitized. This is particulary useful if the part is digitally signed by e.g. PGP, and the signature spans the header fields of the part in question. 
+</div>
+</div><p>
+<a class="anchor" name="gbf47790a0bb96b22bc5e236bc40cb32e"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_free" ref="gbf47790a0bb96b22bc5e236bc40cb32e" args="(struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void mm_mimepart_free           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Frees all memory allocated by a mm_mimepart object.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A pointer to an allocated mm_mimepart object </td></tr>
+  </table>
+</dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart_new</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ged8112012a337371ae8093adb1ab6d27"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_fromfile" ref="ged8112012a337371ae8093adb1ab6d27" args="(const char *filename)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_mimepart* mm_mimepart_fromfile           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>filename</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates a MIME part from a file<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>The name of the file to create the MIME part from </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to a new MIME part object</dd></dl>
+This function creates a new MIME part object from a file. The object should be freed using <a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free()</a> later on. This function does NOT set the Content-Type and neither does any encoding work. 
+</div>
+</div><p>
+<a class="anchor" name="g52dc9f27a2801e4f6abb1effd2ed838d"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_getbody" ref="g52dc9f27a2801e4f6abb1effd2ed838d" args="(struct mm_mimepart *part, int opaque)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_mimepart_getbody           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>opaque</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the pointer to the MIME part's body data<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>opaque</em>&nbsp;</td><td>Whether to get the opaque part or not </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the MIME part's body </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#gd1def098c00edc546b03e98e9ff8b27a">mm_mimepart_setbody</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ga3ca298eaa82f4ef3ea731511ac84e53"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_getheaderbyname" ref="ga3ca298eaa82f4ef3ea731511ac84e53" args="(struct mm_mimepart *part, const char *name, int idx)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_mimeheader* mm_mimepart_getheaderbyname           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>idx</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get a MIME header object from a MIME part<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the MIME header which to retrieve </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>idx</em>&nbsp;</td><td>Which header field to get (in case of multiple headers of the same name). </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the requested MIME header on success, or NULL if there either isn't a header with the requested name or idx is out of range. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g779f11f7a6a54f83763b5ef6ff87e48f"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_getheadervalue" ref="g779f11f7a6a54f83763b5ef6ff87e48f" args="(struct mm_mimepart *part, const char *name, int idx)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* mm_mimepart_getheadervalue           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>idx</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the value of a MIME header object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the header field to get the value from </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>idx</em>&nbsp;</td><td>The index of the header field to get, in case there are multiple headers with the same name. </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the requested value on success, or NULL if there either isn't a header with the requested name or idx is out of range. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gf8ccae1737dc4b9b91958fe448da677f"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_getlength" ref="gf8ccae1737dc4b9b91958fe448da677f" args="(struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t mm_mimepart_getlength           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the length of a given MIME part object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The size of the part's body in byte.</dd></dl>
+This function returns the total length of the given MIME part's body. The length does not include the headers of the MIME parts. If the function returns 0, no body part is set currently. 
+</div>
+</div><p>
+<a class="anchor" name="g210e2ceee56f8349f6778006da87d080"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_gettype" ref="g210e2ceee56f8349f6778006da87d080" args="(struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_content* mm_mimepart_gettype           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the Content-Type of a given MIME part object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The Content-Type object of the specified MIME part</dd></dl>
+This function returns a pointer to the Content-Type object of the given MIME part. This pointer might be set to NULL, indicating that there is no Content-Type object for the given MIME part currently. 
+</div>
+</div><p>
+<a class="anchor" name="g8e9064736efdeebf4b257cc45f8a6adf"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_headers_next" ref="g8e9064736efdeebf4b257cc45f8a6adf" args="(struct mm_mimepart *part, struct mm_mimeheader **id)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_mimeheader* mm_mimepart_headers_next           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct mm_mimeheader **&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Returns the next MIME header of a given MIME part object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>A previously initialized MIME header object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the MIME header object or NULL if end of headers was reached. </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart_headers_start</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g4440bdcfddf88eb642b6a834a0557176"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_headers_start" ref="g4440bdcfddf88eb642b6a834a0557176" args="(struct mm_mimepart *part, struct mm_mimeheader **id)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_mimepart_headers_start           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct mm_mimeheader **&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Initializes a header loop for a given MIME part<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The address of a MIME header object (to allow reentrance) </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart_headers_next</a></dd></dl>
+Looping through headers can be done in the following way:<p>
+<div class="fragment"><pre class="fragment"> <span class="keyword">struct </span>mm_mimeheader *header, *lheader;
+
+ <a class="code" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart_headers_start</a>(part, &amp;lheader);
+
+ <span class="keywordflow">while</span> ((header = <a class="code" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart_headers_next</a>(part, &amp;lheader)) != NULL) {
+        printf(<span class="stringliteral">"%s: %s\n"</span>, header-&gt;name, header-&gt;value);        
+ }
+</pre></div><p>
+For convienience, the macro mm_mimepart_headers_foreach() can be used to loop through headers in a one-shot manner. 
+</div>
+</div><p>
+<a class="anchor" name="g417e5dd361e30cddb91e1d9a5e30b223"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_new" ref="g417e5dd361e30cddb91e1d9a5e30b223" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_mimepart* mm_mimepart_new           </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Allocates memory for a new mm_mimepart structure and initializes it.<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to a struct of type mm_mimeheader or NULL on failure </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free</a> </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>The memory must be freed by using <a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free()</a> later on. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gd1def098c00edc546b03e98e9ff8b27a"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_setbody" ref="gd1def098c00edc546b03e98e9ff8b27a" args="(struct mm_mimepart *part, const char *data, int opaque)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void mm_mimepart_setbody           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>opaque</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets the MIME part's body data<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>A pointer to the data which to set </td></tr>
+  </table>
+</dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#g52dc9f27a2801e4f6abb1effd2ed838d">mm_mimepart_getbody</a></dd></dl>
+This functions sets the body data for a given MIME part. The string pointed to by data must be NUL-terminated. The data is copied into the MIME part's body, and thus, the memory pointed to by data can be freed after the operation. 
+</div>
+</div><p>
+<a class="anchor" name="g164bb39a266559574c252f11266809ff"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_setdefaultcontenttype" ref="g164bb39a266559574c252f11266809ff" args="(struct mm_mimepart *part, int composite)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_mimepart_setdefaultcontenttype           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+          <td class="paramname"> <em>part</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>composite</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets the default Content-Type for a given MIME part<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>Whether the Content-Type should be for composite or not </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure</dd></dl>
+This function sets a default Content-Type according to RFC 2045 with a value of "text/plain; charset="us-ascii"". This function should only be used if the MIME part in question does not have a valid Content-Type specification. 
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/group__mimeutil.html b/main/minimime/mm-docs/html/group__mimeutil.html
new file mode 100644
index 0000000000..a2b128434f
--- /dev/null
+++ b/main/minimime/mm-docs/html/group__mimeutil.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: MIME related utility functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>MIME related utility functions</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/group__param.html b/main/minimime/mm-docs/html/group__param.html
new file mode 100644
index 0000000000..93e8219607
--- /dev/null
+++ b/main/minimime/mm-docs/html/group__param.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Accessing and manipulating MIME parameters</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>Accessing and manipulating MIME parameters</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions for manipulating MIME parameters</h2></td></tr>
+<tr><td colspan="2">MIME parameters are properties attached to certain MIME headers, such as Content-Type and Content-Disposition. MIME parameters have a textual representations as in <em>name=value</em>. They contain important information about the MIME structure of a message, such as the boundary string used, which charset was used to encode the message and so on. This module provides simple to use functions to query or set MIME parameters.<p>
+Each MIME header may hold an arbitrary amount of such parameters, which are delimeted by each other with a semicolon. <br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_param *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#gd3ac756551bf5a29a07d5992bfdbde09">mm_param_new</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#g46339038e995799e6a3e37512f442fc9">mm_param_free</a> (struct mm_param *param)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_param *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#gd3970def45b8bede334f4b89a41dec15">mm_param_generate</a> (const char *name, const char *value)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#g2a266c63c7e89cf829b2af8e995e55e8">mm_param_setname</a> (struct mm_param *param, const char *name, int copy)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#gca3e636ab5700462eb32ca5bc19e4cc6">mm_param_setvalue</a> (struct mm_param *param, const char *value, int copy)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#g0e0ddccf47a2b1e0ad5bcc52c7b39753">mm_param_getname</a> (struct mm_param *param)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#g3c6f8cddd409de3000c31584e140561e">mm_param_getvalue</a> (struct mm_param *param)</td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="g46339038e995799e6a3e37512f442fc9"></a><!-- doxytag: member="mm_param.c::mm_param_free" ref="g46339038e995799e6a3e37512f442fc9" args="(struct mm_param *param)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void mm_param_free           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_param *&nbsp;</td>
+          <td class="paramname"> <em>param</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Releases all memory associated with a MIME parameter object.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>A valid MIME parameter object to be freed </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>Nothing </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__param.html#gd3ac756551bf5a29a07d5992bfdbde09">mm_param_new</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gd3970def45b8bede334f4b89a41dec15"></a><!-- doxytag: member="mm_param.c::mm_param_generate" ref="gd3970def45b8bede334f4b89a41dec15" args="(const char *name, const char *value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_param* mm_param_generate           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Generates a new Content-Type parameter with the given name and value<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the MIME parameter </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value of the MIME parameter </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new MIME parameter object </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__param.html#g46339038e995799e6a3e37512f442fc9">mm_param_free</a> <p>
+<a class="el" href="group__param.html#gd3ac756551bf5a29a07d5992bfdbde09">mm_param_new</a></dd></dl>
+This function generates a new MIME parameter, with the name and value given as the arguments. The needed memory for the operation is allocated dynamically. It stores a copy of name and value in the actual object, so the memory holding the arguments can safely be freed after successfull return of this function. 
+</div>
+</div><p>
+<a class="anchor" name="g0e0ddccf47a2b1e0ad5bcc52c7b39753"></a><!-- doxytag: member="mm_param.c::mm_param_getname" ref="g0e0ddccf47a2b1e0ad5bcc52c7b39753" args="(struct mm_param *param)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* mm_param_getname           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_param *&nbsp;</td>
+          <td class="paramname"> <em>param</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the name of a MIME parameter object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>A valid MIME parameter object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The name of the MIME parameter </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g3c6f8cddd409de3000c31584e140561e"></a><!-- doxytag: member="mm_param.c::mm_param_getvalue" ref="g3c6f8cddd409de3000c31584e140561e" args="(struct mm_param *param)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* mm_param_getvalue           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_param *&nbsp;</td>
+          <td class="paramname"> <em>param</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the value of a MIME parameter object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>A valid MIME parameter object </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The value of the MIME parameter </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gd3ac756551bf5a29a07d5992bfdbde09"></a><!-- doxytag: member="mm_param.c::mm_param_new" ref="gd3ac756551bf5a29a07d5992bfdbde09" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_param* mm_param_new           </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates a new object to hold a MIME parameter.<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>An object representing a MIME parameter </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__param.html#g46339038e995799e6a3e37512f442fc9">mm_param_free</a> </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>The allocated memory must later be freed using <a class="el" href="group__param.html#g46339038e995799e6a3e37512f442fc9">mm_param_free()</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g2a266c63c7e89cf829b2af8e995e55e8"></a><!-- doxytag: member="mm_param.c::mm_param_setname" ref="g2a266c63c7e89cf829b2af8e995e55e8" args="(struct mm_param *param, const char *name, int copy)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_param_setname           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_param *&nbsp;</td>
+          <td class="paramname"> <em>param</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>copy</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets the name of the given MIME parameter<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>A valid MIME parameter object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The new name of the parameter </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>If set to &gt; 0, copy the value stored in name </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The address of the previous name for passing to free() </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gca3e636ab5700462eb32ca5bc19e4cc6"></a><!-- doxytag: member="mm_param.c::mm_param_setvalue" ref="gca3e636ab5700462eb32ca5bc19e4cc6" args="(struct mm_param *param, const char *value, int copy)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_param_setvalue           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_param *&nbsp;</td>
+          <td class="paramname"> <em>param</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>value</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>copy</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets the value of the given MIME parameter<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>A valid MIME parameter object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The new value for the parameter </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>If set to &gt; 0, copy the value stored in value </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The address of the previous value for passing to free() </dd></dl>
+
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/group__util.html b/main/minimime/mm-docs/html/group__util.html
new file mode 100644
index 0000000000..4ea219224d
--- /dev/null
+++ b/main/minimime/mm-docs/html/group__util.html
@@ -0,0 +1,280 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: General purpose utility functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>General purpose utility functions</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Utility functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g35c4383ff0dee2de18985e6edfed1ae6"></a><!-- doxytag: member="util::xfree" ref="g35c4383ff0dee2de18985e6edfed1ae6" args="(void *)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>xfree</b> (void *)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2961ae74e91b0b28acdf9822438a581c"></a><!-- doxytag: member="util::xstrdup" ref="g2961ae74e91b0b28acdf9822438a581c" args="(const char *)" -->
+char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>xstrdup</b> (const char *)</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g2ff4ef58da7e543466e75f20f2a2d8b7">xmalloc</a> (size_t size)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ge14637b4672461f1f0bee822406d68dc">xrealloc</a> (void *p, size_t size)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gf0f89a29a634f6f1f833abb1e214a6b1">mm_unquote</a> (const char *string)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g49c016ff4cfd02f1b019c4dce5aac357">mm_uncomment</a> (const char *string)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g3ae25483c8a42f6562f2a916a511228f">xstrsep</a> (char **stringp, const char *delim)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gf62be7dd21e545f8db72f3c9e3b6a3c3">mm_stripchars</a> (char *input, char *strip)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g0747d4b4e33644263e6d73d2d8d4818b">mm_addchars</a> (char *input, char *add, u_int16_t linelength)</td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="g0747d4b4e33644263e6d73d2d8d4818b"></a><!-- doxytag: member="mm_util.c::mm_addchars" ref="g0747d4b4e33644263e6d73d2d8d4818b" args="(char *input, char *add, u_int16_t linelength)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_addchars           </td>
+          <td>(</td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>input</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>add</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">u_int16_t&nbsp;</td>
+          <td class="paramname"> <em>linelength</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Adds characters to a string at given positions<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>input</em>&nbsp;</td><td>The string to which to add characters </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>add</em>&nbsp;</td><td>The character string to add </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>linelength</em>&nbsp;</td><td>The position where to add the character </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A copy of the string with characters added</dd></dl>
+This function adds the characters add at each linelength positions and returns this new string. 
+</div>
+</div><p>
+<a class="anchor" name="gf62be7dd21e545f8db72f3c9e3b6a3c3"></a><!-- doxytag: member="mm_util.c::mm_stripchars" ref="gf62be7dd21e545f8db72f3c9e3b6a3c3" args="(char *input, char *strip)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_stripchars           </td>
+          <td>(</td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>input</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>strip</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Strips a given character set from a string<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>input</em>&nbsp;</td><td>The string which to strip </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>strip</em>&nbsp;</td><td>The character set to strip off </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A copy of the original string with all chars stripped </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g49c016ff4cfd02f1b019c4dce5aac357"></a><!-- doxytag: member="mm_util.c::mm_uncomment" ref="g49c016ff4cfd02f1b019c4dce5aac357" args="(const char *string)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_uncomment           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>string</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Removes MIME comments from a string<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>The string to uncomment </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the uncommented string or NULL on error. Sets mm_errno.</dd></dl>
+This function removes MIME comments from a string (included in parantheses). It returns a pointer to a newly allocated memory region in which the uncommented string is stored. The returned string needs to be freed when it's not used anymore. 
+</div>
+</div><p>
+<a class="anchor" name="gf0f89a29a634f6f1f833abb1e214a6b1"></a><!-- doxytag: member="mm_util.c::mm_unquote" ref="gf0f89a29a634f6f1f833abb1e214a6b1" args="(const char *string)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* mm_unquote           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>string</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Unquotes a string<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>The quoted string to unquote </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the unquoted string</dd></dl>
+This function unquotes a string. That is, it returns a pointer to a newly allocated memory region in which the unquoted string is stored. Only leading and trailing double-qoutes are removed. The string needs to be freed when it is not needed anymore. 
+</div>
+</div><p>
+<a class="anchor" name="g2ff4ef58da7e543466e75f20f2a2d8b7"></a><!-- doxytag: member="mm_util.c::xmalloc" ref="g2ff4ef58da7e543466e75f20f2a2d8b7" args="(size_t size)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* xmalloc           </td>
+          <td>(</td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>size</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Allocates a block of memory<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The size of the memory region to allocate </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the allocated memory region</dd></dl>
+<a class="el" href="group__util.html#g2ff4ef58da7e543466e75f20f2a2d8b7">xmalloc()</a> calls abort() if either the size argument is negative or the requested memory amount could not be allocated via an assert() call. 
+</div>
+</div><p>
+<a class="anchor" name="ge14637b4672461f1f0bee822406d68dc"></a><!-- doxytag: member="mm_util.c::xrealloc" ref="ge14637b4672461f1f0bee822406d68dc" args="(void *p, size_t size)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* xrealloc           </td>
+          <td>(</td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>p</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+realloc() wrapper<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>Pointer to a memory region which should be reallocated </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The new size of the memory region </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the reallocated memory region</dd></dl>
+<a class="el" href="group__util.html#ge14637b4672461f1f0bee822406d68dc">xrealloc()</a> is a wrapper around realloc() which calls abort() if either the size argument is negative or the requested memory amount could not be allocated. 
+</div>
+</div><p>
+<a class="anchor" name="g3ae25483c8a42f6562f2a916a511228f"></a><!-- doxytag: member="mm_util.c::xstrsep" ref="g3ae25483c8a42f6562f2a916a511228f" args="(char **stringp, const char *delim)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* xstrsep           </td>
+          <td>(</td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>stringp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>delim</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+separate strings<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>stringp</em>&nbsp;</td><td>A pointer to the string being splitted </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>delim</em>&nbsp;</td><td>The delimeter string</td></tr>
+  </table>
+</dl>
+This function works similar to strsep(), with the difference that delim is treated as a whole. 
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/index.html b/main/minimime/mm-docs/html/index.html
new file mode 100644
index 0000000000..8acc2a634e
--- /dev/null
+++ b/main/minimime/mm-docs/html/index.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li id="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>MiniMIME Documentation</h1>
+<p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mimeparser_8h-source.html b/main/minimime/mm-docs/html/mimeparser_8h-source.html
new file mode 100644
index 0000000000..0350006424
--- /dev/null
+++ b/main/minimime/mm-docs/html/mimeparser_8h-source.html
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mimeparser.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mimeparser.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef _MIMEPARSER_H_INCLUDED</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define _MIMEPARSER_H_INCLUDED</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00007"></a>00007 <span class="keywordtype">int</span>     count_lines(<span class="keywordtype">char</span> *);
+<a name="l00008"></a>00008 <span class="keywordtype">void</span>    mimieparser_yyerror(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00009"></a>00009 <span class="keywordtype">int</span>     dprintf2(<span class="keyword">const</span> <span class="keywordtype">char</span> *, ...);
+<a name="l00010"></a>00010 <span class="keywordtype">int</span>     mimeparser_yyparse(<span class="keywordtype">void</span>);
+<a name="l00011"></a>00011 <span class="keywordtype">int</span>     mimeparser_yylex(<span class="keywordtype">void</span>);
+<a name="l00012"></a>00012 <span class="keywordtype">int</span>     mimeparser_yyerror(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="keyword">struct </span>s_position
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016         size_t opaque_start;
+<a name="l00017"></a>00017         size_t start;
+<a name="l00018"></a>00018         size_t end;
+<a name="l00019"></a>00019 };
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 <span class="preprocessor">#endif </span><span class="comment">/* ! _MIMEPARSER_H_INCLUDED */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mimeparser_8tab_8h-source.html b/main/minimime/mm-docs/html/mimeparser_8tab_8h-source.html
new file mode 100644
index 0000000000..81f10816ce
--- /dev/null
+++ b/main/minimime/mm-docs/html/mimeparser_8tab_8h-source.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mimeparser.tab.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mimeparser.tab.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* A Bison parser, made by GNU Bison 2.3.  */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/* Skeleton interface for Bison's Yacc-like parsers in C</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006</span>
+<a name="l00006"></a>00006 <span class="comment">   Free Software Foundation, Inc.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">   This program is free software; you can redistribute it and/or modify</span>
+<a name="l00009"></a>00009 <span class="comment">   it under the terms of the GNU General Public License as published by</span>
+<a name="l00010"></a>00010 <span class="comment">   the Free Software Foundation; either version 2, or (at your option)</span>
+<a name="l00011"></a>00011 <span class="comment">   any later version.</span>
+<a name="l00012"></a>00012 <span class="comment"></span>
+<a name="l00013"></a>00013 <span class="comment">   This program is distributed in the hope that it will be useful,</span>
+<a name="l00014"></a>00014 <span class="comment">   but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<a name="l00015"></a>00015 <span class="comment">   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
+<a name="l00016"></a>00016 <span class="comment">   GNU General Public License for more details.</span>
+<a name="l00017"></a>00017 <span class="comment"></span>
+<a name="l00018"></a>00018 <span class="comment">   You should have received a copy of the GNU General Public License</span>
+<a name="l00019"></a>00019 <span class="comment">   along with this program; if not, write to the Free Software</span>
+<a name="l00020"></a>00020 <span class="comment">   Foundation, Inc., 51 Franklin Street, Fifth Floor,</span>
+<a name="l00021"></a>00021 <span class="comment">   Boston, MA 02110-1301, USA.  */</span>
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 <span class="comment">/* As a special exception, you may create a larger work that contains</span>
+<a name="l00024"></a>00024 <span class="comment">   part or all of the Bison parser skeleton and distribute that work</span>
+<a name="l00025"></a>00025 <span class="comment">   under terms of your choice, so long as that work isn't itself a</span>
+<a name="l00026"></a>00026 <span class="comment">   parser generator using the skeleton or a modified version thereof</span>
+<a name="l00027"></a>00027 <span class="comment">   as a parser skeleton.  Alternatively, if you modify or redistribute</span>
+<a name="l00028"></a>00028 <span class="comment">   the parser skeleton itself, you may (at your option) remove this</span>
+<a name="l00029"></a>00029 <span class="comment">   special exception, which will cause the skeleton and the resulting</span>
+<a name="l00030"></a>00030 <span class="comment">   Bison output files to be licensed under the GNU General Public</span>
+<a name="l00031"></a>00031 <span class="comment">   License without this special exception.</span>
+<a name="l00032"></a>00032 <span class="comment"></span>
+<a name="l00033"></a>00033 <span class="comment">   This special exception was added by the Free Software Foundation in</span>
+<a name="l00034"></a>00034 <span class="comment">   version 2.2 of Bison.  */</span>
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 <span class="comment">/* Tokens.  */</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef YYTOKENTYPE</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor"># define YYTOKENTYPE</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>   <span class="comment">/* Put the tokens into the symbol table, so that GDB and other debuggers</span>
+<a name="l00040"></a>00040 <span class="comment">      know about them.  */</span>
+<a name="l00041"></a>00041    <span class="keyword">enum</span> yytokentype {
+<a name="l00042"></a>00042      ANY = 258,
+<a name="l00043"></a>00043      COLON = 259,
+<a name="l00044"></a>00044      DASH = 260,
+<a name="l00045"></a>00045      DQUOTE = 261,
+<a name="l00046"></a>00046      ENDOFHEADERS = 262,
+<a name="l00047"></a>00047      EOL = 263,
+<a name="l00048"></a>00048      EOM = 264,
+<a name="l00049"></a>00049      EQUAL = 265,
+<a name="l00050"></a>00050      MIMEVERSION_HEADER = 266,
+<a name="l00051"></a>00051      SEMICOLON = 267,
+<a name="l00052"></a>00052      CONTENTDISPOSITION_HEADER = 268,
+<a name="l00053"></a>00053      CONTENTENCODING_HEADER = 269,
+<a name="l00054"></a>00054      CONTENTTYPE_HEADER = 270,
+<a name="l00055"></a>00055      MAIL_HEADER = 271,
+<a name="l00056"></a>00056      HEADERVALUE = 272,
+<a name="l00057"></a>00057      BOUNDARY = 273,
+<a name="l00058"></a>00058      ENDBOUNDARY = 274,
+<a name="l00059"></a>00059      CONTENTTYPE_VALUE = 275,
+<a name="l00060"></a>00060      TSPECIAL = 276,
+<a name="l00061"></a>00061      WORD = 277,
+<a name="l00062"></a>00062      BODY = 278,
+<a name="l00063"></a>00063      PREAMBLE = 279,
+<a name="l00064"></a>00064      POSTAMBLE = 280
+<a name="l00065"></a>00065    };
+<a name="l00066"></a>00066 <span class="preprocessor">#endif</span>
+<a name="l00067"></a>00067 <span class="preprocessor"></span><span class="comment">/* Tokens.  */</span>
+<a name="l00068"></a>00068 <span class="preprocessor">#define ANY 258</span>
+<a name="l00069"></a>00069 <span class="preprocessor"></span><span class="preprocessor">#define COLON 259</span>
+<a name="l00070"></a>00070 <span class="preprocessor"></span><span class="preprocessor">#define DASH 260</span>
+<a name="l00071"></a>00071 <span class="preprocessor"></span><span class="preprocessor">#define DQUOTE 261</span>
+<a name="l00072"></a>00072 <span class="preprocessor"></span><span class="preprocessor">#define ENDOFHEADERS 262</span>
+<a name="l00073"></a>00073 <span class="preprocessor"></span><span class="preprocessor">#define EOL 263</span>
+<a name="l00074"></a>00074 <span class="preprocessor"></span><span class="preprocessor">#define EOM 264</span>
+<a name="l00075"></a>00075 <span class="preprocessor"></span><span class="preprocessor">#define EQUAL 265</span>
+<a name="l00076"></a>00076 <span class="preprocessor"></span><span class="preprocessor">#define MIMEVERSION_HEADER 266</span>
+<a name="l00077"></a>00077 <span class="preprocessor"></span><span class="preprocessor">#define SEMICOLON 267</span>
+<a name="l00078"></a>00078 <span class="preprocessor"></span><span class="preprocessor">#define CONTENTDISPOSITION_HEADER 268</span>
+<a name="l00079"></a>00079 <span class="preprocessor"></span><span class="preprocessor">#define CONTENTENCODING_HEADER 269</span>
+<a name="l00080"></a>00080 <span class="preprocessor"></span><span class="preprocessor">#define CONTENTTYPE_HEADER 270</span>
+<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define MAIL_HEADER 271</span>
+<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">#define HEADERVALUE 272</span>
+<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">#define BOUNDARY 273</span>
+<a name="l00084"></a>00084 <span class="preprocessor"></span><span class="preprocessor">#define ENDBOUNDARY 274</span>
+<a name="l00085"></a>00085 <span class="preprocessor"></span><span class="preprocessor">#define CONTENTTYPE_VALUE 275</span>
+<a name="l00086"></a>00086 <span class="preprocessor"></span><span class="preprocessor">#define TSPECIAL 276</span>
+<a name="l00087"></a>00087 <span class="preprocessor"></span><span class="preprocessor">#define WORD 277</span>
+<a name="l00088"></a>00088 <span class="preprocessor"></span><span class="preprocessor">#define BODY 278</span>
+<a name="l00089"></a>00089 <span class="preprocessor"></span><span class="preprocessor">#define PREAMBLE 279</span>
+<a name="l00090"></a>00090 <span class="preprocessor"></span><span class="preprocessor">#define POSTAMBLE 280</span>
+<a name="l00091"></a>00091 <span class="preprocessor"></span>
+<a name="l00092"></a>00092 
+<a name="l00093"></a>00093 
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095 <span class="preprocessor">#if ! defined YYSTYPE &amp;&amp; ! defined YYSTYPE_IS_DECLARED</span>
+<a name="l00096"></a>00096 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">union </span>YYSTYPE
+<a name="l00097"></a>00097 #line 84 "mimeparser.y"
+<a name="l00098"></a>00098 {
+<a name="l00099"></a>00099         <span class="keywordtype">int</span> number;
+<a name="l00100"></a>00100         <span class="keywordtype">char</span> *string;
+<a name="l00101"></a>00101         <span class="keyword">struct </span>s_position position;
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103 <span class="comment">/* Line 1489 of yacc.c.  */</span>
+<a name="l00104"></a>00104 <span class="preprocessor">#line 105 "mimeparser.tab.h"</span>
+<a name="l00105"></a>00105 <span class="preprocessor"></span>        YYSTYPE;
+<a name="l00106"></a>00106 <span class="preprocessor"># define yystype YYSTYPE </span><span class="comment">/* obsolescent; will be withdrawn */</span>
+<a name="l00107"></a>00107 <span class="preprocessor"># define YYSTYPE_IS_DECLARED 1</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span><span class="preprocessor"># define YYSTYPE_IS_TRIVIAL 1</span>
+<a name="l00109"></a>00109 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00110"></a>00110 <span class="preprocessor"></span>
+<a name="l00111"></a>00111 <span class="keyword">extern</span> YYSTYPE mimeparser_yylval;
+<a name="l00112"></a>00112 
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm_8h-source.html b/main/minimime/mm-docs/html/mm_8h-source.html
new file mode 100644
index 0000000000..cc5285c219
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm_8h-source.html
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment"> * $Id$</span>
+<a name="l00003"></a>00003 <span class="comment"> *</span>
+<a name="l00004"></a>00004 <span class="comment"> * MiniMIME - a library for handling MIME messages</span>
+<a name="l00005"></a>00005 <span class="comment"> *</span>
+<a name="l00006"></a>00006 <span class="comment"> * Copyright (C) 2003 Jann Fischer &lt;rezine@mistrust.net&gt;</span>
+<a name="l00007"></a>00007 <span class="comment"> * All rights reserved.</span>
+<a name="l00008"></a>00008 <span class="comment"> *</span>
+<a name="l00009"></a>00009 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00010"></a>00010 <span class="comment"> * modification, are permitted provided that the following conditions</span>
+<a name="l00011"></a>00011 <span class="comment"> * are met:</span>
+<a name="l00012"></a>00012 <span class="comment"> *</span>
+<a name="l00013"></a>00013 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
+<a name="l00014"></a>00014 <span class="comment"> *    notice, this list of conditions and the following disclaimer.</span>
+<a name="l00015"></a>00015 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00016"></a>00016 <span class="comment"> *    notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00017"></a>00017 <span class="comment"> *    documentation and/or other materials provided with the distribution.</span>
+<a name="l00018"></a>00018 <span class="comment"> * 3. Neither the name of the author nor the names of the contributors</span>
+<a name="l00019"></a>00019 <span class="comment"> *    may be used to endorse or promote products derived from this software</span>
+<a name="l00020"></a>00020 <span class="comment"> *    without specific prior written permission.</span>
+<a name="l00021"></a>00021 <span class="comment"> *</span>
+<a name="l00022"></a>00022 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``AS IS'' AND</span>
+<a name="l00023"></a>00023 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00024"></a>00024 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00025"></a>00025 <span class="comment"> * ARE DISCLAIMED.  IN NO EVENT SHALL JANN FISCHER OR THE VOICES IN HIS HEAD</span>
+<a name="l00026"></a>00026 <span class="comment"> * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00027"></a>00027 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00028"></a>00028 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00029"></a>00029 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00030"></a>00030 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00031"></a>00031 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF</span>
+<a name="l00032"></a>00032 <span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00033"></a>00033 <span class="comment"> */</span>
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 <span class="preprocessor">#ifndef _MM_H_INCLUDED</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define _MM_H_INCLUDED</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;assert.h&gt;</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "mm_queue.h"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "mm_mem.h"</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#define MM_MIME_LINELEN 998</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#define MM_BASE64_LINELEN 76</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span>
+<a name="l00046"></a>00046 TAILQ_HEAD(mm_mimeheaders, mm_mimeheader);
+<a name="l00047"></a>00047 TAILQ_HEAD(mm_mimeparts, mm_mimepart);
+<a name="l00048"></a>00048 TAILQ_HEAD(mm_params, mm_param);
+<a name="l00049"></a>00049 SLIST_HEAD(mm_codecs, mm_codec);
+<a name="l00050"></a>00050 SLIST_HEAD(mm_warnings, mm_warning);
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052 <span class="comment">/*</span>
+<a name="l00053"></a>00053 <span class="comment"> * Parser modes</span>
+<a name="l00054"></a>00054 <span class="comment"> */</span>
+<a name="l00055"></a>00055 <span class="keyword">enum</span> mm_parsemodes
+<a name="l00056"></a>00056 {
+<a name="l00058"></a>00058         MM_PARSE_LOOSE = 0,
+<a name="l00060"></a>00060         MM_PARSE_STRICT
+<a name="l00061"></a>00061 };
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 <span class="comment">/*</span>
+<a name="l00064"></a>00064 <span class="comment"> * Available parser flags</span>
+<a name="l00065"></a>00065 <span class="comment"> */</span>
+<a name="l00066"></a>00066 <span class="keyword">enum</span> mm_parseflags
+<a name="l00067"></a>00067 {
+<a name="l00068"></a>00068         MM_PARSE_NONE = (1L &lt;&lt; 0),
+<a name="l00069"></a>00069         MM_PARSE_STRIPCOMMENTS = (1L &lt;&lt; 1)
+<a name="l00070"></a>00070 };
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 <span class="comment">/*</span>
+<a name="l00073"></a>00073 <span class="comment"> * Enumeration of MIME encodings</span>
+<a name="l00074"></a>00074 <span class="comment"> */</span>
+<a name="l00075"></a>00075 <span class="keyword">enum</span> mm_encoding
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077         MM_ENCODING_NONE = 0,
+<a name="l00078"></a>00078         MM_ENCODING_BASE64,
+<a name="l00079"></a>00079         MM_ENCODING_QUOTEDPRINTABLE,
+<a name="l00080"></a>00080         MM_ENCODING_UNKNOWN
+<a name="l00081"></a>00081 };
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083 <span class="comment">/*</span>
+<a name="l00084"></a>00084 <span class="comment"> * Message type</span>
+<a name="l00085"></a>00085 <span class="comment"> */</span>
+<a name="l00086"></a>00086 <span class="keyword">enum</span> mm_messagetype
+<a name="l00087"></a>00087 {
+<a name="l00089"></a>00089         MM_MSGTYPE_FLAT = 0,
+<a name="l00091"></a>00091         MM_MSGTYPE_MULTIPART
+<a name="l00092"></a>00092 };
+<a name="l00093"></a>00093 
+<a name="l00094"></a>00094 <span class="comment">/*</span>
+<a name="l00095"></a>00095 <span class="comment"> * Enumeration of error categories</span>
+<a name="l00096"></a>00096 <span class="comment"> */</span>
+<a name="l00097"></a>00097 <span class="keyword">enum</span> mm_errors
+<a name="l00098"></a>00098 {
+<a name="l00099"></a>00099         MM_ERROR_NONE = 0,
+<a name="l00100"></a>00100         MM_ERROR_UNDEF,
+<a name="l00101"></a>00101         MM_ERROR_ERRNO, 
+<a name="l00102"></a>00102         MM_ERROR_PARSE,         
+<a name="l00103"></a>00103         MM_ERROR_MIME,
+<a name="l00104"></a>00104         MM_ERROR_CODEC,
+<a name="l00105"></a>00105         MM_ERROR_PROGRAM
+<a name="l00106"></a>00106 };
+<a name="l00107"></a>00107 
+<a name="l00108"></a>00108 <span class="keyword">enum</span> mm_warning_ids
+<a name="l00109"></a>00109 {
+<a name="l00110"></a>00110         MM_WARN_NONE = 0,
+<a name="l00111"></a>00111         MM_WARN_PARSE,
+<a name="l00112"></a>00112         MM_WARN_MIME,
+<a name="l00113"></a>00113         MM_WARN_CODEC
+<a name="l00114"></a>00114 };
+<a name="l00115"></a>00115 
+<a name="l00116"></a>00116 <span class="keyword">enum</span> mm_addressfields {
+<a name="l00117"></a>00117         MM_ADDR_TO = 0,
+<a name="l00118"></a>00118         MM_ADDR_CC,
+<a name="l00119"></a>00119         MM_ADDR_BCC,
+<a name="l00120"></a>00120         MM_ADDR_FROM,
+<a name="l00121"></a>00121         MM_ADDR_SENDER,
+<a name="l00122"></a>00122         MM_ADDR_REPLY_TO
+<a name="l00123"></a>00123 };
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125 <span class="keyword">enum</span> mm_flatten_flags {
+<a name="l00126"></a>00126         MM_FLATTEN_NONE = 0,
+<a name="l00127"></a>00127         MM_FLATTEN_SKIPENVELOPE = (1L &lt;&lt; 1),
+<a name="l00128"></a>00128         MM_FLATTEN_OPAQUE = (1L &lt;&lt; 2),
+<a name="l00129"></a>00129         MM_FLATTEN_NOPREAMBLE = (1L &lt;&lt; 3)
+<a name="l00130"></a>00130 };      
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132 <span class="comment">/*</span>
+<a name="l00133"></a>00133 <span class="comment"> * More information about an error</span>
+<a name="l00134"></a>00134 <span class="comment"> */</span>
+<a name="l00135"></a>00135 <span class="keyword">struct </span>mm_error_data
+<a name="l00136"></a>00136 {
+<a name="l00137"></a>00137         <span class="keywordtype">int</span> error_id;
+<a name="l00138"></a>00138         <span class="keywordtype">int</span> error_where;
+<a name="l00139"></a>00139         <span class="keywordtype">int</span> lineno;
+<a name="l00140"></a>00140         <span class="keywordtype">char</span> error_msg[128];
+<a name="l00141"></a>00141 };
+<a name="l00142"></a>00142 
+<a name="l00143"></a>00143 <span class="keyword">extern</span> <span class="keywordtype">int</span> mm_errno;
+<a name="l00144"></a>00144 <span class="keyword">extern</span> <span class="keyword">struct </span>mm_error_data mm_error;
+<a name="l00145"></a>00145 
+<a name="l00146"></a>00146 <span class="keyword">enum</span> mm_warning_code
+<a name="l00147"></a>00147 {
+<a name="l00148"></a>00148         MM_WARNING_NONE = 0,
+<a name="l00149"></a>00149         MM_WARNING_INVHDR,
+<a name="l00150"></a>00150 };
+<a name="l00151"></a>00151 
+<a name="l00152"></a>00152 <span class="comment">/*</span>
+<a name="l00153"></a>00153 <span class="comment"> * A parser warning</span>
+<a name="l00154"></a>00154 <span class="comment"> */</span>
+<a name="l00155"></a>00155 <span class="keyword">struct </span>mm_warning
+<a name="l00156"></a>00156 {
+<a name="l00157"></a>00157         <span class="keyword">enum</span> mm_warning_code warning;
+<a name="l00158"></a>00158         u_int32_t lineno;
+<a name="l00159"></a>00159         SLIST_ENTRY(mm_warning) next;
+<a name="l00160"></a>00160 };
+<a name="l00161"></a>00161 
+<a name="l00162"></a>00162 <span class="comment">/*</span>
+<a name="l00163"></a>00163 <span class="comment"> * Representation of a MiniMIME codec object</span>
+<a name="l00164"></a>00164 <span class="comment"> */</span>
+<a name="l00165"></a>00165 struct mm_codec
+<a name="l00166"></a>00166 {
+<a name="l00167"></a>00167         <span class="keyword">enum</span> mm_encoding id;
+<a name="l00168"></a>00168         <span class="keywordtype">char</span> *encoding;
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170         <span class="keywordtype">char</span> *(*encoder)(<span class="keywordtype">char</span> *, u_int32_t);
+<a name="l00171"></a>00171         <span class="keywordtype">char</span> *(*decoder)(<span class="keywordtype">char</span> *);
+<a name="l00172"></a>00172 
+<a name="l00173"></a>00173         SLIST_ENTRY(mm_codec) next;
+<a name="l00174"></a>00174 };
+<a name="l00175"></a>00175 
+<a name="l00176"></a>00176 <span class="comment">/*</span>
+<a name="l00177"></a>00177 <span class="comment"> * Representation of a mail or MIME header field</span>
+<a name="l00178"></a>00178 <span class="comment"> */</span>
+<a name="l00179"></a>00179 struct mm_mimeheader
+<a name="l00180"></a>00180 {
+<a name="l00181"></a>00181         <span class="keywordtype">char</span> *name; 
+<a name="l00182"></a>00182         <span class="keywordtype">char</span> *value;
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184         TAILQ_ENTRY(mm_mimeheader) next;
+<a name="l00185"></a>00185 };
+<a name="l00186"></a>00186 
+<a name="l00187"></a>00187 <span class="comment">/*</span>
+<a name="l00188"></a>00188 <span class="comment"> * Representation of a MIME Content-Type parameter</span>
+<a name="l00189"></a>00189 <span class="comment"> */</span>
+<a name="l00190"></a>00190 struct mm_param
+<a name="l00191"></a>00191 {
+<a name="l00192"></a>00192         <span class="keywordtype">char</span> *name; 
+<a name="l00193"></a>00193         <span class="keywordtype">char</span> *value; 
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195         TAILQ_ENTRY(mm_param) next;
+<a name="l00196"></a>00196 };
+<a name="l00197"></a>00197 
+<a name="l00198"></a>00198 <span class="comment">/*</span>
+<a name="l00199"></a>00199 <span class="comment"> * Representation of a MIME Content-Type object</span>
+<a name="l00200"></a>00200 <span class="comment"> */</span>
+<a name="l00201"></a>00201 struct mm_content
+<a name="l00202"></a>00202 {
+<a name="l00203"></a>00203         <span class="keywordtype">char</span> *maintype;
+<a name="l00204"></a>00204         <span class="keywordtype">char</span> *subtype;
+<a name="l00205"></a>00205 
+<a name="l00206"></a>00206         <span class="keyword">struct </span>mm_params params;
+<a name="l00207"></a>00207 
+<a name="l00208"></a>00208         <span class="keywordtype">char</span> *encstring;
+<a name="l00209"></a>00209         <span class="keyword">enum</span> mm_encoding encoding;
+<a name="l00210"></a>00210 };
+<a name="l00211"></a>00211 
+<a name="l00212"></a>00212 <span class="comment">/*</span>
+<a name="l00213"></a>00213 <span class="comment"> * Representation of a MIME part </span>
+<a name="l00214"></a>00214 <span class="comment"> */</span>
+<a name="l00215"></a>00215 <span class="keyword">struct </span>mm_mimepart
+<a name="l00216"></a>00216 {
+<a name="l00217"></a>00217         <span class="keyword">struct </span>mm_mimeheaders headers;
+<a name="l00218"></a>00218         
+<a name="l00219"></a>00219         size_t opaque_length;
+<a name="l00220"></a>00220         <span class="keywordtype">char</span> *opaque_body;
+<a name="l00221"></a>00221 
+<a name="l00222"></a>00222         size_t length;
+<a name="l00223"></a>00223         <span class="keywordtype">char</span> *body;
+<a name="l00224"></a>00224 
+<a name="l00225"></a>00225         <span class="keyword">struct </span>mm_content *type;
+<a name="l00226"></a>00226 
+<a name="l00227"></a>00227         <span class="keywordtype">char</span> *disposition_type;
+<a name="l00228"></a>00228         <span class="keywordtype">char</span> *filename;
+<a name="l00229"></a>00229         <span class="keywordtype">char</span> *creation_date;
+<a name="l00230"></a>00230         <span class="keywordtype">char</span> *modification_date;
+<a name="l00231"></a>00231         <span class="keywordtype">char</span> *read_date;
+<a name="l00232"></a>00232         <span class="keywordtype">char</span> *disposition_size;
+<a name="l00233"></a>00233         
+<a name="l00234"></a>00234         TAILQ_ENTRY(mm_mimepart) next;
+<a name="l00235"></a>00235 };
+<a name="l00236"></a>00236 
+<a name="l00237"></a>00237 <span class="comment">/*</span>
+<a name="l00238"></a>00238 <span class="comment"> * Represantation of a MiniMIME context</span>
+<a name="l00239"></a>00239 <span class="comment"> */</span>
+<a name="l00240"></a>00240 struct mm_context
+<a name="l00241"></a>00241 {
+<a name="l00242"></a>00242         <span class="keyword">struct </span>mm_mimeparts parts;
+<a name="l00243"></a>00243         <span class="keyword">enum</span> mm_messagetype messagetype;
+<a name="l00244"></a>00244         <span class="keyword">struct </span>mm_warnings warnings;
+<a name="l00245"></a>00245         <span class="keyword">struct </span>mm_codecs codecs;
+<a name="l00246"></a>00246         <span class="keywordtype">char</span> *boundary;
+<a name="l00247"></a>00247         <span class="keywordtype">char</span> *preamble;
+<a name="l00248"></a>00248         size_t max_message_size;
+<a name="l00249"></a>00249 };
+<a name="l00250"></a>00250 
+<a name="l00251"></a>00251 <span class="keyword">typedef</span> <span class="keyword">struct </span>mm_context MM_CTX;
+<a name="l00252"></a>00252 <span class="keyword">typedef</span> <span class="keyword">struct </span>mm_context mm_ctx_t;
+<a name="l00253"></a>00253 
+<a name="l00254"></a>00254 <span class="keywordtype">char</span> *<a class="code" href="group__util.html#gf0f89a29a634f6f1f833abb1e214a6b1">mm_unquote</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00255"></a>00255 <span class="keywordtype">char</span> *<a class="code" href="group__util.html#g49c016ff4cfd02f1b019c4dce5aac357">mm_uncomment</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00256"></a>00256 <span class="keywordtype">char</span> *<a class="code" href="group__util.html#gf62be7dd21e545f8db72f3c9e3b6a3c3">mm_stripchars</a>(<span class="keywordtype">char</span> *, <span class="keywordtype">char</span> *);
+<a name="l00257"></a>00257 <span class="keywordtype">char</span> *<a class="code" href="group__util.html#g0747d4b4e33644263e6d73d2d8d4818b">mm_addchars</a>(<span class="keywordtype">char</span> *, <span class="keywordtype">char</span> *, u_int16_t);
+<a name="l00258"></a>00258 <span class="keywordtype">int</span> mm_gendate(<span class="keywordtype">char</span> **);
+<a name="l00259"></a>00259 <span class="keywordtype">void</span> mm_striptrailing(<span class="keywordtype">char</span> **, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00260"></a>00260 <span class="keywordtype">int</span> mm_mimeutil_genboundary(<span class="keywordtype">char</span> *, size_t, <span class="keywordtype">char</span> **);
+<a name="l00261"></a>00261 
+<a name="l00262"></a>00262 <span class="keywordtype">int</span> mm_library_init(<span class="keywordtype">void</span>);
+<a name="l00263"></a>00263 <span class="keywordtype">int</span> mm_library_isinitialized(<span class="keywordtype">void</span>);
+<a name="l00264"></a>00264 
+<a name="l00265"></a>00265 <span class="keywordtype">int</span> <a class="code" href="mm__parse_8c.html#58c960b6017f13d4e4ec5f09b3c38495">mm_parse_mem</a>(MM_CTX *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>);
+<a name="l00266"></a>00266 <span class="keywordtype">int</span> <a class="code" href="mm__parse_8c.html#cc9f623682b05f330c46e72e4e9d66cc">mm_parse_file</a>(MM_CTX *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>);
+<a name="l00267"></a>00267 
+<a name="l00268"></a>00268 MM_CTX *<a class="code" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new</a>(<span class="keywordtype">void</span>);
+<a name="l00269"></a>00269 <span class="keywordtype">void</span> <a class="code" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free</a>(MM_CTX *);
+<a name="l00270"></a>00270 <span class="keywordtype">int</span> <a class="code" href="group__context.html#gec3ca486a61b392ff68774242086768e">mm_context_attachpart</a>(MM_CTX *, <span class="keyword">struct</span> mm_mimepart *);
+<a name="l00271"></a>00271 <span class="keywordtype">int</span> <a class="code" href="group__context.html#g53d20c33a401539ef1ffa45f3dddb983">mm_context_deletepart</a>(MM_CTX *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>);
+<a name="l00272"></a>00272 <span class="keywordtype">int</span> <a class="code" href="group__context.html#gf5bb032ad1c481d31d7b1b0710939712">mm_context_countparts</a>(MM_CTX *);
+<a name="l00273"></a>00273 <span class="keyword">struct </span>mm_mimepart *<a class="code" href="group__context.html#g57fea229675f3e56a77eb40bb8193ee3">mm_context_getpart</a>(MM_CTX *, <span class="keywordtype">int</span>);
+<a name="l00274"></a>00274 <span class="keywordtype">int</span> <a class="code" href="group__context.html#g1e73cadba4acd3ef9dd148dd0c2c3e70">mm_context_iscomposite</a>(MM_CTX *);
+<a name="l00275"></a>00275 <span class="keywordtype">int</span> <a class="code" href="group__context.html#g8733dee7d83d3205349a7ee4ee5b2750">mm_context_haswarnings</a>(MM_CTX *);
+<a name="l00276"></a>00276 <span class="keywordtype">int</span> <a class="code" href="group__context.html#g5288136ab923605f6508c09359ae5772">mm_context_flatten</a>(MM_CTX *, <span class="keywordtype">char</span> **, size_t *, <span class="keywordtype">int</span>);
+<a name="l00277"></a>00277 
+<a name="l00278"></a>00278 <span class="keywordtype">int</span> <a class="code" href="group__envelope.html#g38f1164142cedfc3253b068a81f85563">mm_envelope_getheaders</a>(MM_CTX *, <span class="keywordtype">char</span> **, size_t *);
+<a name="l00279"></a>00279 <span class="keywordtype">int</span> <a class="code" href="group__envelope.html#gb2c43c1645e42ae0860c902ce1dda788">mm_envelope_setheader</a>(MM_CTX *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, ...);
+<a name="l00280"></a>00280 
+<a name="l00281"></a>00281 <span class="keyword">struct </span>mm_mimeheader *<a class="code" href="mm__header_8c.html#2f2c5f2f640111caf3096ed46b5986a4">mm_mimeheader_new</a>(<span class="keywordtype">void</span>);
+<a name="l00282"></a>00282 <span class="keywordtype">void</span> <a class="code" href="mm__header_8c.html#61e3e62728f720ac381196ec59303064">mm_mimeheader_free</a>(<span class="keyword">struct</span> mm_mimeheader *);
+<a name="l00283"></a>00283 <span class="keyword">struct </span>mm_mimeheader *<a class="code" href="mm__header_8c.html#07a7f7dcebc91aa86f5478e1d84341a1">mm_mimeheader_generate</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00284"></a>00284 <span class="keywordtype">int</span> mm_mimeheader_uncomment(<span class="keyword">struct</span> mm_mimeheader *);
+<a name="l00285"></a>00285 <span class="keywordtype">int</span> mm_mimeheader_uncommentbyname(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00286"></a>00286 <span class="keywordtype">int</span> mm_mimeheader_uncommentall(<span class="keyword">struct</span> mm_mimepart *);
+<a name="l00287"></a>00287 <span class="keywordtype">int</span> mm_mimeheader_tostring(<span class="keyword">struct</span> mm_mimeheader *);
+<a name="l00288"></a>00288 
+<a name="l00289"></a>00289 <span class="keyword">struct </span>mm_mimepart *<a class="code" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart_new</a>(<span class="keywordtype">void</span>);
+<a name="l00290"></a>00290 <span class="keywordtype">void</span> <a class="code" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free</a>(<span class="keyword">struct</span> mm_mimepart *);
+<a name="l00291"></a>00291 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#g46a674ff6b9873c0c45fa4eb5d94fd62">mm_mimepart_attachheader</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">struct</span> mm_mimeheader *);
+<a name="l00292"></a>00292 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#g44c78abfb0535312bcb427a2cd220026">mm_mimepart_countheaders</a>(<span class="keyword">struct</span> mm_mimepart *part);
+<a name="l00293"></a>00293 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#gf89da502ac54306994bdb452448a8026">mm_mimepart_countheaderbyname</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00294"></a>00294 <span class="keyword">struct </span>mm_mimeheader *<a class="code" href="group__mimepart.html#ga3ca298eaa82f4ef3ea731511ac84e53">mm_mimepart_getheaderbyname</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
+<a name="l00295"></a>00295 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__mimepart.html#g779f11f7a6a54f83763b5ef6ff87e48f">mm_mimepart_getheadervalue</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
+<a name="l00296"></a>00296 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart_headers_start</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">struct</span> mm_mimeheader **);
+<a name="l00297"></a>00297 <span class="keyword">struct </span>mm_mimeheader *<a class="code" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart_headers_next</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">struct</span> mm_mimeheader **);
+<a name="l00298"></a>00298 <span class="keywordtype">char</span> *<a class="code" href="group__mimepart.html#g4551bf4460e5d165bbcd9f32d4f625de">mm_mimepart_decode</a>(<span class="keyword">struct</span> mm_mimepart *);
+<a name="l00299"></a>00299 <span class="keyword">struct </span>mm_content *<a class="code" href="group__mimepart.html#g210e2ceee56f8349f6778006da87d080">mm_mimepart_gettype</a>(<span class="keyword">struct</span> mm_mimepart *);
+<a name="l00300"></a>00300 size_t <a class="code" href="group__mimepart.html#gf8ccae1737dc4b9b91958fe448da677f">mm_mimepart_getlength</a>(<span class="keyword">struct</span> mm_mimepart *);
+<a name="l00301"></a>00301 <span class="keywordtype">char</span> *<a class="code" href="group__mimepart.html#g52dc9f27a2801e4f6abb1effd2ed838d">mm_mimepart_getbody</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keywordtype">int</span>);
+<a name="l00302"></a>00302 <span class="keywordtype">void</span> <a class="code" href="group__mimepart.html#g01822bc93b4741af75b5379384354e37">mm_mimepart_attachcontenttype</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">struct</span> mm_content *);
+<a name="l00303"></a>00303 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#g164bb39a266559574c252f11266809ff">mm_mimepart_setdefaultcontenttype</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keywordtype">int</span>);
+<a name="l00304"></a>00304 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#gf19d3ace5ae174b3eaa35f9ddbe6e216">mm_mimepart_flatten</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keywordtype">char</span> **, size_t *, <span class="keywordtype">int</span>);
+<a name="l00305"></a>00305 <span class="keyword">struct </span>mm_mimepart *<a class="code" href="group__mimepart.html#ged8112012a337371ae8093adb1ab6d27">mm_mimepart_fromfile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00306"></a>00306 
+<a name="l00307"></a>00307 <span class="keyword">struct </span>mm_content *<a class="code" href="group__contenttype.html#g3880ac74a20b4a9f610a4159568e1801">mm_content_new</a>(<span class="keywordtype">void</span>);
+<a name="l00308"></a>00308 <span class="keywordtype">void</span> <a class="code" href="group__contenttype.html#g404314481125849bce869ee4b0f647af">mm_content_free</a>(<span class="keyword">struct</span> mm_content *);
+<a name="l00309"></a>00309 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#g080b7ed798ed497dcd635a6bab86962f">mm_content_attachparam</a>(<span class="keyword">struct</span> mm_content *, <span class="keyword">struct</span> mm_param *);
+<a name="l00310"></a>00310 <span class="keyword">struct </span>mm_content *mm_content_parse(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
+<a name="l00311"></a>00311 <span class="keywordtype">char</span> *<a class="code" href="group__contenttype.html#g451441ee557ab5ef29477f3dc8330bf6">mm_content_getparambyname</a>(<span class="keyword">struct</span> mm_content *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00312"></a>00312 <span class="keyword">struct </span>mm_param *mm_content_getparamobjbyname(<span class="keyword">struct</span> mm_content *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00313"></a>00313 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#g7bab273d117c6c0cacad20361d8fb1c8">mm_content_setmaintype</a>(<span class="keyword">struct</span> mm_content *, <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
+<a name="l00314"></a>00314 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#g14b0738410d566ad2312405946f22212">mm_content_setsubtype</a>(<span class="keyword">struct</span> mm_content *, <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
+<a name="l00315"></a>00315 <span class="keywordtype">int</span> mm_content_settype(<span class="keyword">struct</span> mm_content *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, ...);
+<a name="l00316"></a>00316 <span class="keywordtype">char</span> *<a class="code" href="group__contenttype.html#gb213081017abf6bc7e601c6bf4214924">mm_content_getmaintype</a>(<span class="keyword">struct</span> mm_content *);
+<a name="l00317"></a>00317 <span class="keywordtype">char</span> *<a class="code" href="group__contenttype.html#g97f77ef40c14cd0fb397bad358ee5d49">mm_content_getsubtype</a>(<span class="keyword">struct</span> mm_content *);
+<a name="l00318"></a>00318 <span class="keywordtype">char</span> *mm_content_gettype(<span class="keyword">struct</span> mm_content *);
+<a name="l00319"></a>00319 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#ga7fa479f27e73dea57257421d8fc9fc5">mm_content_iscomposite</a>(<span class="keyword">struct</span> mm_content *);
+<a name="l00320"></a>00320 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#gb724b5979182fa272fe4fd1b72b395d5">mm_content_isvalidencoding</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00321"></a>00321 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#gea945e48ac5cca846715543634b9afe4">mm_content_setencoding</a>(<span class="keyword">struct</span> mm_content *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00322"></a>00322 <span class="keywordtype">char</span> *<a class="code" href="group__contenttype.html#g792e7d33fbb30e0123408bcef9d3204c">mm_content_paramstostring</a>(<span class="keyword">struct</span> mm_content *);
+<a name="l00323"></a>00323 <span class="keywordtype">char</span> *<a class="code" href="group__contenttype.html#g18a99c95e35a76f13a77a83c4231e738">mm_content_tostring</a>(<span class="keyword">struct</span> mm_content *);
+<a name="l00324"></a>00324 
+<a name="l00325"></a>00325 <span class="keyword">struct </span>mm_param *<a class="code" href="group__param.html#gd3ac756551bf5a29a07d5992bfdbde09">mm_param_new</a>(<span class="keywordtype">void</span>);
+<a name="l00326"></a>00326 <span class="keywordtype">void</span> <a class="code" href="group__param.html#g46339038e995799e6a3e37512f442fc9">mm_param_free</a>(<span class="keyword">struct</span> mm_param *);
+<a name="l00327"></a>00327 
+<a name="l00328"></a>00328 <span class="keywordtype">char</span> *mm_flatten_mimepart(<span class="keyword">struct</span> mm_mimepart *);
+<a name="l00329"></a>00329 <span class="keywordtype">char</span> *mm_flatten_context(MM_CTX *);
+<a name="l00330"></a>00330 
+<a name="l00331"></a>00331 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#g9e19f6343128fd7e4ec57c3d55049b55">mm_codec_isregistered</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00332"></a>00332 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#g6ccb0f7a1d7c870dc3dae04f31d6ccca">mm_codec_hasdecoder</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00333"></a>00333 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#g50ff257b794ceaec7aedf9ae18bfcc57">mm_codec_hasencoder</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00334"></a>00334 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#gf97a7311c909888ed9f6f14d6f1bf397">mm_codec_register</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">char</span> *(*encoder)(<span class="keywordtype">char</span> *, u_int32_t), <span class="keywordtype">char</span> *(*decoder)(<span class="keywordtype">char</span> *));
+<a name="l00335"></a>00335 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#g0c71696bc70f834386193e3c7a0e2ca4">mm_codec_unregister</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00336"></a>00336 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#g7c9e6538f84c368be2b56a3c9ba702be">mm_codec_unregisterall</a>(<span class="keywordtype">void</span>);
+<a name="l00337"></a>00337 <span class="keywordtype">void</span> <a class="code" href="group__codecs.html#gf39e72460fb85f5ca41f6e270a68aacc">mm_codec_registerdefaultcodecs</a>(<span class="keywordtype">void</span>);
+<a name="l00338"></a>00338 
+<a name="l00339"></a>00339 <span class="keywordtype">char</span> *mm_base64_decode(<span class="keywordtype">char</span> *);
+<a name="l00340"></a>00340 <span class="keywordtype">char</span> *mm_base64_encode(<span class="keywordtype">char</span> *, u_int32_t);
+<a name="l00341"></a>00341 
+<a name="l00342"></a>00342 <span class="keywordtype">void</span> <a class="code" href="group__error.html#g69de7c9bee1d535593a55807590de543">mm_error_init</a>(<span class="keywordtype">void</span>);
+<a name="l00343"></a>00343 <span class="keywordtype">void</span> <a class="code" href="group__error.html#g92006c97728639d8f32f5bc4c6e2a47f">mm_error_setmsg</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, ...);
+<a name="l00344"></a>00344 <span class="keywordtype">void</span> mm_error_setlineno(<span class="keywordtype">int</span> lineno);
+<a name="l00345"></a>00345 <span class="keywordtype">char</span> *<a class="code" href="group__error.html#g8654857a3ac349b87d798902912371a3">mm_error_string</a>(<span class="keywordtype">void</span>);
+<a name="l00346"></a>00346 <span class="keywordtype">int</span> mm_error_lineno(<span class="keywordtype">void</span>);
+<a name="l00347"></a>00347 
+<a name="l00348"></a>00348 <span class="keywordtype">void</span> mm_warning_add(MM_CTX *, <span class="keywordtype">int</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *, ...);
+<a name="l00349"></a>00349 <span class="keyword">struct </span>mm_warning *mm_warning_next(MM_CTX *, <span class="keyword">struct</span> mm_warning **);
+<a name="l00350"></a>00350 
+<a name="l00351"></a>00351 <span class="preprocessor">#ifndef HAVE_STRLCPY</span>
+<a name="l00352"></a>00352 <span class="preprocessor"></span>size_t strlcpy(<span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, size_t);
+<a name="l00353"></a>00353 <span class="preprocessor">#endif </span><span class="comment">/* ! HAVE_STRLCPY */</span>
+<a name="l00354"></a>00354 <span class="preprocessor">#ifndef HAVE_STRLCAT</span>
+<a name="l00355"></a>00355 <span class="preprocessor"></span>size_t strlcat(<span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, size_t);
+<a name="l00356"></a>00356 <span class="preprocessor">#endif </span><span class="comment">/* ! HAVE_STRLCAT */</span>
+<a name="l00357"></a>00357 
+<a name="l00358"></a>00358 <span class="preprocessor">#define MM_ISINIT() do { \</span>
+<a name="l00359"></a>00359 <span class="preprocessor">        assert(mm_library_isinitialized() == 1); \</span>
+<a name="l00360"></a>00360 <span class="preprocessor">} while (0);</span>
+<a name="l00361"></a>00361 <span class="preprocessor"></span>
+<a name="l00362"></a>00362 <span class="preprocessor">#endif </span><span class="comment">/* ! _MM_H_INCLUDED */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__codecs_8c.html b/main/minimime/mm-docs/html/mm__codecs_8c.html
new file mode 100644
index 0000000000..286282b956
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__codecs_8c.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_codecs.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_codecs.c File Reference</h1><code>#include &lt;sys/types.h&gt;</code><br>
+<code>#include &lt;sys/stat.h&gt;</code><br>
+<code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;unistd.h&gt;</code><br>
+<code>#include &lt;fcntl.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<code>#include &quot;mm_util.h&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Codec manipulation</div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#g6ccb0f7a1d7c870dc3dae04f31d6ccca">mm_codec_hasdecoder</a> (const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#g50ff257b794ceaec7aedf9ae18bfcc57">mm_codec_hasencoder</a> (const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#g9e19f6343128fd7e4ec57c3d55049b55">mm_codec_isregistered</a> (const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#gf97a7311c909888ed9f6f14d6f1bf397">mm_codec_register</a> (const char *encoding, char *(*encoder)(char *data, u_int32_t i), char *(*decoder)(char *data))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#g0c71696bc70f834386193e3c7a0e2ca4">mm_codec_unregister</a> (const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#g7c9e6538f84c368be2b56a3c9ba702be">mm_codec_unregisterall</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codecs.html#gf39e72460fb85f5ca41f6e270a68aacc">mm_codec_registerdefaultcodecs</a> (void)</td></tr>
+
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b669b6dc7c7d10408d8da81b3f1a30d3"></a><!-- doxytag: member="mm_codecs.c::codecs" ref="b669b6dc7c7d10408d8da81b3f1a30d3" args="" -->
+mm_codecs&nbsp;</td><td class="memItemRight" valign="bottom"><b>codecs</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This module contains functions to manipulate MiniMIME codecs <hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__contenttype_8c.html b/main/minimime/mm-docs/html/mm__contenttype_8c.html
new file mode 100644
index 0000000000..77b44a8b56
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__contenttype_8c.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_contenttype.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_contenttype.c File Reference</h1><code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;stdarg.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;ctype.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<code>#include &quot;mm_util.h&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_encoding_mappings</b></td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Functions for manipulating Content-Type objects</div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_content *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g3880ac74a20b4a9f610a4159568e1801">mm_content_new</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g404314481125849bce869ee4b0f647af">mm_content_free</a> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g080b7ed798ed497dcd635a6bab86962f">mm_content_attachparam</a> (struct mm_content *ct, struct mm_param *param)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g451441ee557ab5ef29477f3dc8330bf6">mm_content_getparambyname</a> (struct mm_content *ct, const char *name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1ba63e679d2b49aceb6cfec8a6752581"></a><!-- doxytag: member="mm_contenttype.c::mm_content_getparamobjbyname" ref="g1ba63e679d2b49aceb6cfec8a6752581" args="(struct mm_content *ct, const char *name)" -->
+mm_param *&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_content_getparamobjbyname</b> (struct mm_content *ct, const char *name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g7bab273d117c6c0cacad20361d8fb1c8">mm_content_setmaintype</a> (struct mm_content *ct, char *value, int copy)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#gb213081017abf6bc7e601c6bf4214924">mm_content_getmaintype</a> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g97f77ef40c14cd0fb397bad358ee5d49">mm_content_getsubtype</a> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6d8453eb35bd695c4944e53b7040b65"></a><!-- doxytag: member="mm_contenttype.c::mm_content_gettype" ref="ga6d8453eb35bd695c4944e53b7040b65" args="(struct mm_content *ct)" -->
+char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_content_gettype</b> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g14b0738410d566ad2312405946f22212">mm_content_setsubtype</a> (struct mm_content *ct, char *value, int copy)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g878686678ea2ba97aa8edb1206a564d8"></a><!-- doxytag: member="mm_contenttype.c::mm_content_settype" ref="g878686678ea2ba97aa8edb1206a564d8" args="(struct mm_content *ct, const char *fmt,...)" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_content_settype</b> (struct mm_content *ct, const char *fmt,...)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#ga7fa479f27e73dea57257421d8fc9fc5">mm_content_iscomposite</a> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#gb724b5979182fa272fe4fd1b72b395d5">mm_content_isvalidencoding</a> (const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#gea945e48ac5cca846715543634b9afe4">mm_content_setencoding</a> (struct mm_content *ct, const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#gbff87e581cd04db16e91245e9e9de67d">mm_content_getencoding</a> (struct mm_content *ct, const char *encoding)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g792e7d33fbb30e0123408bcef9d3204c">mm_content_paramstostring</a> (struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__contenttype.html#g18a99c95e35a76f13a77a83c4231e738">mm_content_tostring</a> (struct mm_content *ct)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This module contains functions for manipulating Content-Type objects. <hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__context_8c.html b/main/minimime/mm-docs/html/mm__context_8c.html
new file mode 100644
index 0000000000..064caad5de
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__context_8c.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_context.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_context.c File Reference</h1><code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;stdarg.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Manipulating MiniMIME contexts</div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">MM_CTX *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free</a> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gec3ca486a61b392ff68774242086768e">mm_context_attachpart</a> (MM_CTX *ctx, struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g73a3dd187053aeabca4836dc28a6c468">mm_context_attachpart_after</a> (MM_CTX *ctx, struct mm_mimepart *part, int pos)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g53d20c33a401539ef1ffa45f3dddb983">mm_context_deletepart</a> (MM_CTX *ctx, int which, int freemem)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gf5bb032ad1c481d31d7b1b0710939712">mm_context_countparts</a> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimepart *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g57fea229675f3e56a77eb40bb8193ee3">mm_context_getpart</a> (MM_CTX *ctx, int which)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g1e73cadba4acd3ef9dd148dd0c2c3e70">mm_context_iscomposite</a> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g8733dee7d83d3205349a7ee4ee5b2750">mm_context_haswarnings</a> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g9710e485f51167099d90f0d659979068">mm_context_generateboundary</a> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gc0e7cc297516618d4773830a1988fc8d">mm_context_setpreamble</a> (MM_CTX *ctx, char *preamble)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1ebbdd51106ccdee77ca421f9692bde7"></a><!-- doxytag: member="mm_context.c::mm_context_getpreamble" ref="g1ebbdd51106ccdee77ca421f9692bde7" args="(MM_CTX *ctx)" -->
+char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_context_getpreamble</b> (MM_CTX *ctx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g5288136ab923605f6508c09359ae5772">mm_context_flatten</a> (MM_CTX *ctx, char **flat, size_t *length, int flags)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Modules for manipulating MiniMIME contexts <hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__envelope_8c.html b/main/minimime/mm-docs/html/mm__envelope_8c.html
new file mode 100644
index 0000000000..62fd8d7847
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__envelope_8c.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_envelope.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_envelope.c File Reference</h1><code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;stdarg.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;ctype.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<code>#include &quot;mm_util.h&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Accessing and manipulating a message's envelope</div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__envelope.html#g38f1164142cedfc3253b068a81f85563">mm_envelope_getheaders</a> (MM_CTX *ctx, char **result, size_t *length)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__envelope.html#gb2c43c1645e42ae0860c902ce1dda788">mm_envelope_setheader</a> (MM_CTX *ctx, const char *name, const char *fmt,...)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__envelope.html#ge63da17c56867ca2406a4eaf73230baf">mm_envelope_getrecipients</a> (MM_CTX *ctx, char **result, size_t *length)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This module contains functions for accessing a message's envelope. This are mainly wrapper functions for easy access. <hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__error_8c.html b/main/minimime/mm-docs/html/mm__error_8c.html
new file mode 100644
index 0000000000..87ff13783b
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__error_8c.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_error.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_error.c File Reference</h1><code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;stdarg.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &lt;errno.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<code>#include &quot;mm_util.h&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__error.html#g69de7c9bee1d535593a55807590de543">mm_error_init</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__error.html#g92006c97728639d8f32f5bc4c6e2a47f">mm_error_setmsg</a> (const char *fmt,...)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="190c991d7bb378b6cd6f995ffc3011f7"></a><!-- doxytag: member="mm_error.c::mm_error_setlineno" ref="190c991d7bb378b6cd6f995ffc3011f7" args="(int lineno)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_error_setlineno</b> (int lineno)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__error.html#g8654857a3ac349b87d798902912371a3">mm_error_string</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c84acacac29f1e6efd10bb3a89eab272"></a><!-- doxytag: member="mm_error.c::mm_error_lineno" ref="c84acacac29f1e6efd10bb3a89eab272" args="(void)" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_error_lineno</b> (void)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This module contains functions for MiniMIME error information/manipulation <hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__header_8c.html b/main/minimime/mm-docs/html/mm__header_8c.html
new file mode 100644
index 0000000000..7d0212e6bc
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__header_8c.html
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_header.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_header.c File Reference</h1><code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;stdarg.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;ctype.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<code>#include &quot;mm_util.h&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimeheader *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mm__header_8c.html#2f2c5f2f640111caf3096ed46b5986a4">mm_mimeheader_new</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mm__header_8c.html#61e3e62728f720ac381196ec59303064">mm_mimeheader_free</a> (struct mm_mimeheader *header)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimeheader *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mm__header_8c.html#07a7f7dcebc91aa86f5478e1d84341a1">mm_mimeheader_generate</a> (const char *name, const char *value)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="26657e44385646fde63712d7110492d7"></a><!-- doxytag: member="mm_header.c::mm_mimeheader_uncomment" ref="26657e44385646fde63712d7110492d7" args="(struct mm_mimeheader *header)" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_mimeheader_uncomment</b> (struct mm_mimeheader *header)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2081ee4c43e88d5a318a783069a5d471"></a><!-- doxytag: member="mm_header.c::mm_mimeheader_uncommentbyname" ref="2081ee4c43e88d5a318a783069a5d471" args="(struct mm_mimepart *part, const char *name)" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_mimeheader_uncommentbyname</b> (struct mm_mimepart *part, const char *name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9f9bcb0fb26461bd349c15366748ecb7"></a><!-- doxytag: member="mm_header.c::mm_mimeheader_uncommentall" ref="9f9bcb0fb26461bd349c15366748ecb7" args="(struct mm_mimepart *part)" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_mimeheader_uncommentall</b> (struct mm_mimepart *part)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This module contains functions for manipulating MIME headers <hr><h2>Function Documentation</h2>
+<a class="anchor" name="61e3e62728f720ac381196ec59303064"></a><!-- doxytag: member="mm_header.c::mm_mimeheader_free" ref="61e3e62728f720ac381196ec59303064" args="(struct mm_mimeheader *header)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void mm_mimeheader_free           </td>
+          <td>(</td>
+          <td class="paramtype">struct mm_mimeheader *&nbsp;</td>
+          <td class="paramname"> <em>header</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Frees a MIME header object<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>The MIME header object which to free </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="07a7f7dcebc91aa86f5478e1d84341a1"></a><!-- doxytag: member="mm_header.c::mm_mimeheader_generate" ref="07a7f7dcebc91aa86f5478e1d84341a1" args="(const char *name, const char *value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_mimeheader* mm_mimeheader_generate           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates a new MIME header, but does no checks whatsoever (create as-is) 
+</div>
+</div><p>
+<a class="anchor" name="2f2c5f2f640111caf3096ed46b5986a4"></a><!-- doxytag: member="mm_header.c::mm_mimeheader_new" ref="2f2c5f2f640111caf3096ed46b5986a4" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct mm_mimeheader* mm_mimeheader_new           </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates a new MIME header object<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new and initialized MIME header object </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="mm__header_8c.html#61e3e62728f720ac381196ec59303064">mm_mimeheader_free</a></dd></dl>
+This function creates and initializes a new MIME header object, which must later be freed using <a class="el" href="mm__header_8c.html#61e3e62728f720ac381196ec59303064">mm_mimeheader_free()</a> 
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__internal_8h-source.html b/main/minimime/mm-docs/html/mm__internal_8h-source.html
new file mode 100644
index 0000000000..1f92a3e94f
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__internal_8h-source.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_internal.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_internal.h</h1><a href="mm__internal_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment"> * $Id$</span>
+<a name="l00003"></a>00003 <span class="comment"> *</span>
+<a name="l00004"></a>00004 <span class="comment"> * MiniMIME - a library for handling MIME messages</span>
+<a name="l00005"></a>00005 <span class="comment"> *</span>
+<a name="l00006"></a>00006 <span class="comment"> * Copyright (C) 2003 Jann Fischer &lt;rezine@mistrust.net&gt;</span>
+<a name="l00007"></a>00007 <span class="comment"> * All rights reserved.</span>
+<a name="l00008"></a>00008 <span class="comment"> *</span>
+<a name="l00009"></a>00009 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00010"></a>00010 <span class="comment"> * modification, are permitted provided that the following conditions</span>
+<a name="l00011"></a>00011 <span class="comment"> * are met:</span>
+<a name="l00012"></a>00012 <span class="comment"> *</span>
+<a name="l00013"></a>00013 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
+<a name="l00014"></a>00014 <span class="comment"> *    notice, this list of conditions and the following disclaimer.</span>
+<a name="l00015"></a>00015 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00016"></a>00016 <span class="comment"> *    notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00017"></a>00017 <span class="comment"> *    documentation and/or other materials provided with the distribution.</span>
+<a name="l00018"></a>00018 <span class="comment"> * 3. Neither the name of the author nor the names of the contributors</span>
+<a name="l00019"></a>00019 <span class="comment"> *    may be used to endorse or promote products derived from this software</span>
+<a name="l00020"></a>00020 <span class="comment"> *    without specific prior written permission.</span>
+<a name="l00021"></a>00021 <span class="comment"> *</span>
+<a name="l00022"></a>00022 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``AS IS'' AND</span>
+<a name="l00023"></a>00023 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00024"></a>00024 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00025"></a>00025 <span class="comment"> * ARE DISCLAIMED.  IN NO EVENT SHALL JANN FISCHER OR THE VOICES IN HIS HEAD</span>
+<a name="l00026"></a>00026 <span class="comment"> * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00027"></a>00027 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00028"></a>00028 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00029"></a>00029 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00030"></a>00030 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00031"></a>00031 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF</span>
+<a name="l00032"></a>00032 <span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00033"></a>00033 <span class="comment"> */</span>
+<a name="l00034"></a>00034 
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef _MM_INTERNAL_H_INCLUDED</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define _MM_INTERNAL_H_INCLUDED</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "mm.h"</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#define debugp(m, ...) do { \</span>
+<a name="l00044"></a>00044 <span class="preprocessor">        fprintf(stderr, "%s:%d:: ", __FILE__, __LINE__); \</span>
+<a name="l00045"></a>00045 <span class="preprocessor">        fprintf(stderr, m, ## __VA_ARGS__); \</span>
+<a name="l00046"></a>00046 <span class="preprocessor">        fprintf(stderr, "\n"); \</span>
+<a name="l00047"></a>00047 <span class="preprocessor">        fflush(stderr); \</span>
+<a name="l00048"></a>00048 <span class="preprocessor">} while (0); </span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00054"></a>00054 <span class="preprocessor">#ifndef __HAVE_LEAK_DETECTION</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="keywordtype">void</span> *<a class="code" href="group__util.html#g2ff4ef58da7e543466e75f20f2a2d8b7">xmalloc</a>(size_t);
+<a name="l00056"></a>00056 <span class="keywordtype">void</span> *<a class="code" href="group__util.html#ge14637b4672461f1f0bee822406d68dc">xrealloc</a>(<span class="keywordtype">void</span> *, size_t);
+<a name="l00057"></a>00057 <span class="keywordtype">void</span> xfree(<span class="keywordtype">void</span> *);
+<a name="l00058"></a>00058 <span class="keywordtype">char</span> *xstrdup(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00059"></a>00059 <span class="preprocessor">#endif</span>
+<a name="l00060"></a>00060 <span class="preprocessor"></span>
+<a name="l00061"></a>00061 <span class="keywordtype">char</span> *<a class="code" href="group__util.html#g3ae25483c8a42f6562f2a916a511228f">xstrsep</a>(<span class="keywordtype">char</span> **, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 <span class="comment">/* THIS FILE IS INTENTIONALLY LEFT BLANK */</span>
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065 <span class="preprocessor">#endif </span><span class="comment">/* ! _MM_INTERNAL_H_INCLUDED */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__internal_8h.html b/main/minimime/mm-docs/html/mm__internal_8h.html
new file mode 100644
index 0000000000..8afb665eca
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__internal_8h.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_internal.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_internal.h File Reference</h1><code>#include &quot;mm.h&quot;</code><br>
+
+<p>
+<a href="mm__internal_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>debugp</b>(m,...)</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Utility functions</div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g2ff4ef58da7e543466e75f20f2a2d8b7">xmalloc</a> (size_t)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ge14637b4672461f1f0bee822406d68dc">xrealloc</a> (void *, size_t)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g35c4383ff0dee2de18985e6edfed1ae6"></a><!-- doxytag: member="mm_internal.h::xfree" ref="g35c4383ff0dee2de18985e6edfed1ae6" args="(void *)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>xfree</b> (void *)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2961ae74e91b0b28acdf9822438a581c"></a><!-- doxytag: member="mm_internal.h::xstrdup" ref="g2961ae74e91b0b28acdf9822438a581c" args="(const char *)" -->
+char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>xstrdup</b> (const char *)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g3ae25483c8a42f6562f2a916a511228f">xstrsep</a> (char **, const char *)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Data definitions for MiniMIME <hr><h2>Define Documentation</h2>
+<a class="anchor" name="089dd7bda22f552c35ebdc06a8849c56"></a><!-- doxytag: member="mm_internal.h::debugp" ref="089dd7bda22f552c35ebdc06a8849c56" args="(m,...)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define debugp          </td>
+          <td>(</td>
+          <td class="paramtype">m,         <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> <em>...</em>&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \
+        fprintf(stderr, <span class="stringliteral">"%s:%d:: "</span>, __FILE__, __LINE__); \
+        fprintf(stderr, m, ## __VA_ARGS__); \
+        fprintf(stderr, <span class="stringliteral">"\n"</span>); \
+        fflush(stderr); \
+} <span class="keywordflow">while</span> (0);
+</pre></div>
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__mem_8h-source.html b/main/minimime/mm-docs/html/mm__mem_8h-source.html
new file mode 100644
index 0000000000..69ddd73dc5
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__mem_8h-source.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_mem.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_mem.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef __MEM_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __MEM_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#ifdef __HAVE_LEAK_DETECTION</span>
+<a name="l00005"></a>00005 <span class="preprocessor"></span>
+<a name="l00006"></a>00006 <span class="preprocessor">#define NAMEOF(v)       #v</span>
+<a name="l00007"></a>00007 <span class="preprocessor"></span><span class="preprocessor">#define xmalloc(x) MM_malloc(x, __FILE__, __LINE__)</span>
+<a name="l00008"></a>00008 <span class="preprocessor"></span><span class="preprocessor">#define xfree(x) MM_free(x, __FILE__, __LINE__, NAMEOF(x))</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define xstrdup(x) MM_strdup(x, __FILE__, __LINE__)</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span><span class="preprocessor">#define xrealloc(x, y) MM_realloc(x, y, __FILE__, __LINE__)</span>
+<a name="l00011"></a>00011 <span class="preprocessor"></span>
+<a name="l00012"></a>00012 TAILQ_HEAD(MM_chunks, MM_mem_chunk);
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="keyword">struct </span>MM_mem_chunk {
+<a name="l00015"></a>00015         <span class="keywordtype">void</span> *address;
+<a name="l00016"></a>00016         <span class="keyword">const</span> <span class="keywordtype">char</span> *filename;
+<a name="l00017"></a>00017         u_int32_t line;
+<a name="l00018"></a>00018         size_t size;
+<a name="l00019"></a>00019         
+<a name="l00020"></a>00020         TAILQ_ENTRY(MM_mem_chunk) next;
+<a name="l00021"></a>00021 };
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 <span class="keywordtype">void</span> *MM_malloc(size_t, <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
+<a name="l00024"></a>00024 <span class="keywordtype">void</span> *MM_realloc(<span class="keywordtype">void</span> *, size_t, <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
+<a name="l00025"></a>00025 <span class="keywordtype">void</span> MM_free(<span class="keywordtype">void</span> *, <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>, <span class="keywordtype">char</span> *);
+<a name="l00026"></a>00026 <span class="keywordtype">char</span> *MM_strdup(const <span class="keywordtype">char</span> *, <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
+<a name="l00027"></a>00027 <span class="keywordtype">void</span> MM_leakd_init(<span class="keywordtype">void</span>);
+<a name="l00028"></a>00028 <span class="keywordtype">void</span> MM_leakd_printallocated(<span class="keywordtype">void</span>);
+<a name="l00029"></a>00029 <span class="keywordtype">void</span> MM_leakd_flush(<span class="keywordtype">void</span>);
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 <span class="preprocessor">#endif </span><span class="comment">/* __HAVE_LEAK_DETECTION */</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#endif </span><span class="comment">/* ! HAVE_MEM_H */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__mimepart_8c.html b/main/minimime/mm-docs/html/mm__mimepart_8c.html
new file mode 100644
index 0000000000..210dd8dc98
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__mimepart_8c.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_mimepart.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_mimepart.c File Reference</h1><code>#include &lt;sys/types.h&gt;</code><br>
+<code>#include &lt;sys/stat.h&gt;</code><br>
+<code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;unistd.h&gt;</code><br>
+<code>#include &lt;fcntl.h&gt;</code><br>
+<code>#include &lt;ctype.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Creating and destroying MIME parts</div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimepart *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart_new</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimepart *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#ged8112012a337371ae8093adb1ab6d27">mm_mimepart_fromfile</a> (const char *filename)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Accessing the MIME part's mail header</div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g46a674ff6b9873c0c45fa4eb5d94fd62">mm_mimepart_attachheader</a> (struct mm_mimepart *part, struct mm_mimeheader *header)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g44c78abfb0535312bcb427a2cd220026">mm_mimepart_countheaders</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gf89da502ac54306994bdb452448a8026">mm_mimepart_countheaderbyname</a> (struct mm_mimepart *part, const char *name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimeheader *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#ga3ca298eaa82f4ef3ea731511ac84e53">mm_mimepart_getheaderbyname</a> (struct mm_mimepart *part, const char *name, int idx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g779f11f7a6a54f83763b5ef6ff87e48f">mm_mimepart_getheadervalue</a> (struct mm_mimepart *part, const char *name, int idx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart_headers_start</a> (struct mm_mimepart *part, struct mm_mimeheader **id)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimeheader *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart_headers_next</a> (struct mm_mimepart *part, struct mm_mimeheader **id)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Accessing and manipulating the MIME part's body</div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g52dc9f27a2801e4f6abb1effd2ed838d">mm_mimepart_getbody</a> (struct mm_mimepart *part, int opaque)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gd1def098c00edc546b03e98e9ff8b27a">mm_mimepart_setbody</a> (struct mm_mimepart *part, const char *data, int opaque)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gf8ccae1737dc4b9b91958fe448da677f">mm_mimepart_getlength</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g4551bf4460e5d165bbcd9f32d4f625de">mm_mimepart_decode</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gf19d3ace5ae174b3eaa35f9ddbe6e216">mm_mimepart_flatten</a> (struct mm_mimepart *part, char **result, size_t *length, int opaque)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g164bb39a266559574c252f11266809ff">mm_mimepart_setdefaultcontenttype</a> (struct mm_mimepart *part, int composite)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Accessing the MIME part's Content-Type information</div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g01822bc93b4741af75b5379384354e37">mm_mimepart_attachcontenttype</a> (struct mm_mimepart *part, struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_content *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g210e2ceee56f8349f6778006da87d080">mm_mimepart_gettype</a> (struct mm_mimepart *part)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This module contains functions for manipulating MIME header objects. <hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__mimeutil_8c.html b/main/minimime/mm-docs/html/mm__mimeutil_8c.html
new file mode 100644
index 0000000000..7823572d79
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__mimeutil_8c.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_mimeutil.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_mimeutil.c File Reference</h1><code>#include &lt;sys/time.h&gt;</code><br>
+<code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;time.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="257774e1a30f8190b3d99891be64210a"></a><!-- doxytag: member="mm_mimeutil.c::MM_DATE_LENGTH" ref="257774e1a30f8190b3d99891be64210a" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>MM_DATE_LENGTH</b>&nbsp;&nbsp;&nbsp;50</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mm__mimeutil_8c.html#a7b7f63b42dfa7a7f907b615aa4cd057">mm_mimeutil_gendate</a> (char **result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a72e503ba7ce2552456c6bd5935febe9"></a><!-- doxytag: member="mm_mimeutil.c::mm_mimeutil_genboundary" ref="a72e503ba7ce2552456c6bd5935febe9" args="(char *prefix, size_t length, char **result)" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_mimeutil_genboundary</b> (char *prefix, size_t length, char **result)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This module contains various MIME related utility functions. <hr><h2>Function Documentation</h2>
+<a class="anchor" name="a7b7f63b42dfa7a7f907b615aa4cd057"></a><!-- doxytag: member="mm_mimeutil.c::mm_mimeutil_gendate" ref="a7b7f63b42dfa7a7f907b615aa4cd057" args="(char **result)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_mimeutil_gendate           </td>
+          <td>(</td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>result</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Generates an RFC 2822 conform date string<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>timezone</em>&nbsp;</td><td>Whether to include timezone information </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the actual date string </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>The pointer returned must be freed some time</dd></dl>
+This function generates an RFC 2822 conform date string to use in message headers. It allocates memory to hold the string and returns a pointer to it. The generated date is in the format (example):<p>
+Thu, 25 December 2003 16:35:22 +0100 (CET)<p>
+This function dynamically allocates memory and returns a pointer to it. This memory should be released with free() once not needed anymore. 
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__param_8c.html b/main/minimime/mm-docs/html/mm__param_8c.html
new file mode 100644
index 0000000000..149cf2140c
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__param_8c.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_param.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_param.c File Reference</h1><code>#include &lt;sys/types.h&gt;</code><br>
+<code>#include &lt;sys/stat.h&gt;</code><br>
+<code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;unistd.h&gt;</code><br>
+<code>#include &lt;fcntl.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;ctype.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<code>#include &quot;mm_util.h&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Functions for manipulating MIME parameters</div></td></tr>
+<tr><td colspan="2"><div class="groupText">MIME parameters are properties attached to certain MIME headers, such as Content-Type and Content-Disposition. MIME parameters have a textual representations as in <em>name=value</em>. They contain important information about the MIME structure of a message, such as the boundary string used, which charset was used to encode the message and so on. This module provides simple to use functions to query or set MIME parameters.<p>
+Each MIME header may hold an arbitrary amount of such parameters, which are delimeted by each other with a semicolon. <br><br></div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_param *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#gd3ac756551bf5a29a07d5992bfdbde09">mm_param_new</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#g46339038e995799e6a3e37512f442fc9">mm_param_free</a> (struct mm_param *param)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_param *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#gd3970def45b8bede334f4b89a41dec15">mm_param_generate</a> (const char *name, const char *value)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#g2a266c63c7e89cf829b2af8e995e55e8">mm_param_setname</a> (struct mm_param *param, const char *name, int copy)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#gca3e636ab5700462eb32ca5bc19e4cc6">mm_param_setvalue</a> (struct mm_param *param, const char *value, int copy)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#g0e0ddccf47a2b1e0ad5bcc52c7b39753">mm_param_getname</a> (struct mm_param *param)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__param.html#g3c6f8cddd409de3000c31584e140561e">mm_param_getvalue</a> (struct mm_param *param)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Functions to manipulate MIME parameters <hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__parse_8c.html b/main/minimime/mm-docs/html/mm__parse_8c.html
new file mode 100644
index 0000000000..8ce1502722
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__parse_8c.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_parse.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_parse.c File Reference</h1><code>#include &lt;sys/types.h&gt;</code><br>
+<code>#include &lt;sys/stat.h&gt;</code><br>
+<code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;unistd.h&gt;</code><br>
+<code>#include &lt;fcntl.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;ctype.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<code>#include &quot;mm_util.h&quot;</code><br>
+<code>#include &quot;mimeparser.h&quot;</code><br>
+<code>#include &quot;mimeparser.tab.h&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mm__parse_8c.html#187cf71c0f6c2da1384823e3f20aa1a2">PARSER_initialize</a> (MM_CTX *, int)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="92d7d8e20b6def16fcf2649e0d88651f"></a><!-- doxytag: member="mm_parse.c::PARSER_setbuffer" ref="92d7d8e20b6def16fcf2649e0d88651f" args="(const char *)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>PARSER_setbuffer</b> (const char *)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="04446354e4248226578b90007d728a7b"></a><!-- doxytag: member="mm_parse.c::PARSER_setfp" ref="04446354e4248226578b90007d728a7b" args="(FILE *)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>PARSER_setfp</b> (FILE *)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mm__parse_8c.html#58c960b6017f13d4e4ec5f09b3c38495">mm_parse_mem</a> (MM_CTX *ctx, const char *text, int parsemode, int flags)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mm__parse_8c.html#cc9f623682b05f330c46e72e4e9d66cc">mm_parse_file</a> (MM_CTX *ctx, const char *filename, int parsemode, int flags)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Functions to parse MIME messages <hr><h2>Function Documentation</h2>
+<a class="anchor" name="cc9f623682b05f330c46e72e4e9d66cc"></a><!-- doxytag: member="mm_parse.c::mm_parse_file" ref="cc9f623682b05f330c46e72e4e9d66cc" args="(MM_CTX *ctx, const char *filename, int parsemode, int flags)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_parse_file           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>filename</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>parsemode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Parses a file into a MiniMIME context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>The name of the file to parse </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>parsemode</em>&nbsp;</td><td>The parsemode </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>The flags to pass to the parser </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Sets mm_errno if an error occurs</dd></dl>
+This function parses a MIME message, stored in the filesystem according to the parseflags and stores the results in the MiniMIME context specified by ctx.<p>
+The following modes can be used to specify how the message should be parsed:<p>
+<ul>
+<li>MM_PARSE_STRICT: Do not tolerate MIME violations</li><li>MM_PARSE_LOOSE: Tolerate as much MIME violations as possible</li></ul>
+<p>
+The context needs to be initialized before using <a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new()</a> and may be freed using <a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free()</a>. 
+</div>
+</div><p>
+<a class="anchor" name="58c960b6017f13d4e4ec5f09b3c38495"></a><!-- doxytag: member="mm_parse.c::mm_parse_mem" ref="58c960b6017f13d4e4ec5f09b3c38495" args="(MM_CTX *ctx, const char *text, int parsemode, int flags)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int mm_parse_mem           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>text</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>parsemode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Parses a NUL-terminated string into a MiniMIME context<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context object </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>The NUL-terminated string to parse </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>parsemode</em>&nbsp;</td><td>The parsemode </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>The flags to pass to the parser </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Sets mm_errno if an error occurs</dd></dl>
+This function parses a MIME message, stored in the memory region pointed to by text (must be NUL-terminated) according to the parseflags and stores the results in the MiniMIME context specified by ctx.<p>
+The following modes can be used to specify how the message should be parsed:<p>
+<ul>
+<li>MM_PARSE_STRICT: Do not tolerate MIME violations</li><li>MM_PARSE_LOOSE: Tolerate as much MIME violations as possible</li></ul>
+<p>
+The context needs to be initialized before using <a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new()</a> and may be freed using <a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free()</a>. 
+</div>
+</div><p>
+<a class="anchor" name="187cf71c0f6c2da1384823e3f20aa1a2"></a><!-- doxytag: member="mm_parse.c::PARSER_initialize" ref="187cf71c0f6c2da1384823e3f20aa1a2" args="(MM_CTX *, int)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void PARSER_initialize           </td>
+          <td>(</td>
+          <td class="paramtype">MM_CTX *&nbsp;</td>
+          <td class="paramname"> <em>newctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Initializes the parser engine. 
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__queue_8h-source.html b/main/minimime/mm-docs/html/mm__queue_8h-source.html
new file mode 100644
index 0000000000..2501344613
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__queue_8h-source.html
@@ -0,0 +1,532 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_queue.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_queue.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*      $OpenBSD: queue.h,v 1.25 2004/04/08 16:08:21 henning Exp $      */</span>
+<a name="l00002"></a>00002 <span class="comment">/*      $NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $       */</span>
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 <span class="comment">/*</span>
+<a name="l00005"></a>00005 <span class="comment"> * Copyright (c) 1991, 1993</span>
+<a name="l00006"></a>00006 <span class="comment"> *      The Regents of the University of California.  All rights reserved.</span>
+<a name="l00007"></a>00007 <span class="comment"> *</span>
+<a name="l00008"></a>00008 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00009"></a>00009 <span class="comment"> * modification, are permitted provided that the following conditions</span>
+<a name="l00010"></a>00010 <span class="comment"> * are met:</span>
+<a name="l00011"></a>00011 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
+<a name="l00012"></a>00012 <span class="comment"> *    notice, this list of conditions and the following disclaimer.</span>
+<a name="l00013"></a>00013 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00014"></a>00014 <span class="comment"> *    notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00015"></a>00015 <span class="comment"> *    documentation and/or other materials provided with the distribution.</span>
+<a name="l00016"></a>00016 <span class="comment"> * 3. Neither the name of the University nor the names of its contributors</span>
+<a name="l00017"></a>00017 <span class="comment"> *    may be used to endorse or promote products derived from this software</span>
+<a name="l00018"></a>00018 <span class="comment"> *    without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"> *</span>
+<a name="l00020"></a>00020 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND</span>
+<a name="l00021"></a>00021 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00022"></a>00022 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00023"></a>00023 <span class="comment"> * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE</span>
+<a name="l00024"></a>00024 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
+<a name="l00025"></a>00025 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
+<a name="l00026"></a>00026 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
+<a name="l00027"></a>00027 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
+<a name="l00028"></a>00028 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
+<a name="l00029"></a>00029 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
+<a name="l00030"></a>00030 <span class="comment"> * SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment"> *</span>
+<a name="l00032"></a>00032 <span class="comment"> *      @(#)queue.h     8.5 (Berkeley) 8/20/94</span>
+<a name="l00033"></a>00033 <span class="comment"> */</span>
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 <span class="preprocessor">#ifndef _SYS_QUEUE_H_</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define _SYS_QUEUE_H_</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="comment">/*</span>
+<a name="l00039"></a>00039 <span class="comment"> * This file defines five types of data structures: singly-linked lists, </span>
+<a name="l00040"></a>00040 <span class="comment"> * lists, simple queues, tail queues, and circular queues.</span>
+<a name="l00041"></a>00041 <span class="comment"> *</span>
+<a name="l00042"></a>00042 <span class="comment"> *</span>
+<a name="l00043"></a>00043 <span class="comment"> * A singly-linked list is headed by a single forward pointer. The elements</span>
+<a name="l00044"></a>00044 <span class="comment"> * are singly linked for minimum space and pointer manipulation overhead at</span>
+<a name="l00045"></a>00045 <span class="comment"> * the expense of O(n) removal for arbitrary elements. New elements can be</span>
+<a name="l00046"></a>00046 <span class="comment"> * added to the list after an existing element or at the head of the list.</span>
+<a name="l00047"></a>00047 <span class="comment"> * Elements being removed from the head of the list should use the explicit</span>
+<a name="l00048"></a>00048 <span class="comment"> * macro for this purpose for optimum efficiency. A singly-linked list may</span>
+<a name="l00049"></a>00049 <span class="comment"> * only be traversed in the forward direction.  Singly-linked lists are ideal</span>
+<a name="l00050"></a>00050 <span class="comment"> * for applications with large datasets and few or no removals or for</span>
+<a name="l00051"></a>00051 <span class="comment"> * implementing a LIFO queue.</span>
+<a name="l00052"></a>00052 <span class="comment"> *</span>
+<a name="l00053"></a>00053 <span class="comment"> * A list is headed by a single forward pointer (or an array of forward</span>
+<a name="l00054"></a>00054 <span class="comment"> * pointers for a hash table header). The elements are doubly linked</span>
+<a name="l00055"></a>00055 <span class="comment"> * so that an arbitrary element can be removed without a need to</span>
+<a name="l00056"></a>00056 <span class="comment"> * traverse the list. New elements can be added to the list before</span>
+<a name="l00057"></a>00057 <span class="comment"> * or after an existing element or at the head of the list. A list</span>
+<a name="l00058"></a>00058 <span class="comment"> * may only be traversed in the forward direction.</span>
+<a name="l00059"></a>00059 <span class="comment"> *</span>
+<a name="l00060"></a>00060 <span class="comment"> * A simple queue is headed by a pair of pointers, one the head of the</span>
+<a name="l00061"></a>00061 <span class="comment"> * list and the other to the tail of the list. The elements are singly</span>
+<a name="l00062"></a>00062 <span class="comment"> * linked to save space, so elements can only be removed from the</span>
+<a name="l00063"></a>00063 <span class="comment"> * head of the list. New elements can be added to the list before or after</span>
+<a name="l00064"></a>00064 <span class="comment"> * an existing element, at the head of the list, or at the end of the</span>
+<a name="l00065"></a>00065 <span class="comment"> * list. A simple queue may only be traversed in the forward direction.</span>
+<a name="l00066"></a>00066 <span class="comment"> *</span>
+<a name="l00067"></a>00067 <span class="comment"> * A tail queue is headed by a pair of pointers, one to the head of the</span>
+<a name="l00068"></a>00068 <span class="comment"> * list and the other to the tail of the list. The elements are doubly</span>
+<a name="l00069"></a>00069 <span class="comment"> * linked so that an arbitrary element can be removed without a need to</span>
+<a name="l00070"></a>00070 <span class="comment"> * traverse the list. New elements can be added to the list before or</span>
+<a name="l00071"></a>00071 <span class="comment"> * after an existing element, at the head of the list, or at the end of</span>
+<a name="l00072"></a>00072 <span class="comment"> * the list. A tail queue may be traversed in either direction.</span>
+<a name="l00073"></a>00073 <span class="comment"> *</span>
+<a name="l00074"></a>00074 <span class="comment"> * A circle queue is headed by a pair of pointers, one to the head of the</span>
+<a name="l00075"></a>00075 <span class="comment"> * list and the other to the tail of the list. The elements are doubly</span>
+<a name="l00076"></a>00076 <span class="comment"> * linked so that an arbitrary element can be removed without a need to</span>
+<a name="l00077"></a>00077 <span class="comment"> * traverse the list. New elements can be added to the list before or after</span>
+<a name="l00078"></a>00078 <span class="comment"> * an existing element, at the head of the list, or at the end of the list.</span>
+<a name="l00079"></a>00079 <span class="comment"> * A circle queue may be traversed in either direction, but has a more</span>
+<a name="l00080"></a>00080 <span class="comment"> * complex end of list detection.</span>
+<a name="l00081"></a>00081 <span class="comment"> *</span>
+<a name="l00082"></a>00082 <span class="comment"> * For details on the use of these macros, see the queue(3) manual page.</span>
+<a name="l00083"></a>00083 <span class="comment"> */</span>
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085 <span class="comment">/*</span>
+<a name="l00086"></a>00086 <span class="comment"> * Singly-linked List definitions.</span>
+<a name="l00087"></a>00087 <span class="comment"> */</span>
+<a name="l00088"></a>00088 <span class="preprocessor">#define SLIST_HEAD(name, type)                                          \</span>
+<a name="l00089"></a>00089 <span class="preprocessor">struct name {                                                           \</span>
+<a name="l00090"></a>00090 <span class="preprocessor">        struct type *slh_first; </span><span class="comment">/* first element */</span>                     \
+<a name="l00091"></a>00091 }
+<a name="l00092"></a>00092  
+<a name="l00093"></a>00093 <span class="preprocessor">#define SLIST_HEAD_INITIALIZER(head)                                    \</span>
+<a name="l00094"></a>00094 <span class="preprocessor">        { NULL }</span>
+<a name="l00095"></a>00095 <span class="preprocessor"></span> 
+<a name="l00096"></a>00096 <span class="preprocessor">#define SLIST_ENTRY(type)                                               \</span>
+<a name="l00097"></a>00097 <span class="preprocessor">struct {                                                                \</span>
+<a name="l00098"></a>00098 <span class="preprocessor">        struct type *sle_next;  </span><span class="comment">/* next element */</span>                      \
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100  
+<a name="l00101"></a>00101 <span class="comment">/*</span>
+<a name="l00102"></a>00102 <span class="comment"> * Singly-linked List access methods.</span>
+<a name="l00103"></a>00103 <span class="comment"> */</span>
+<a name="l00104"></a>00104 <span class="preprocessor">#define SLIST_FIRST(head)       ((head)-&gt;slh_first)</span>
+<a name="l00105"></a>00105 <span class="preprocessor"></span><span class="preprocessor">#define SLIST_END(head)         NULL</span>
+<a name="l00106"></a>00106 <span class="preprocessor"></span><span class="preprocessor">#define SLIST_EMPTY(head)       (SLIST_FIRST(head) == SLIST_END(head))</span>
+<a name="l00107"></a>00107 <span class="preprocessor"></span><span class="preprocessor">#define SLIST_NEXT(elm, field)  ((elm)-&gt;field.sle_next)</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span>
+<a name="l00109"></a>00109 <span class="preprocessor">#define SLIST_FOREACH(var, head, field)                                 \</span>
+<a name="l00110"></a>00110 <span class="preprocessor">        for((var) = SLIST_FIRST(head);                                  \</span>
+<a name="l00111"></a>00111 <span class="preprocessor">            (var) != SLIST_END(head);                                   \</span>
+<a name="l00112"></a>00112 <span class="preprocessor">            (var) = SLIST_NEXT(var, field))</span>
+<a name="l00113"></a>00113 <span class="preprocessor"></span>
+<a name="l00114"></a>00114 <span class="preprocessor">#define SLIST_FOREACH_PREVPTR(var, varp, head, field)                   \</span>
+<a name="l00115"></a>00115 <span class="preprocessor">        for ((varp) = &amp;SLIST_FIRST((head));                             \</span>
+<a name="l00116"></a>00116 <span class="preprocessor">            ((var) = *(varp)) != SLIST_END(head);                       \</span>
+<a name="l00117"></a>00117 <span class="preprocessor">            (varp) = &amp;SLIST_NEXT((var), field))</span>
+<a name="l00118"></a>00118 <span class="preprocessor"></span>
+<a name="l00119"></a>00119 <span class="comment">/*</span>
+<a name="l00120"></a>00120 <span class="comment"> * Singly-linked List functions.</span>
+<a name="l00121"></a>00121 <span class="comment"> */</span>
+<a name="l00122"></a>00122 <span class="preprocessor">#define SLIST_INIT(head) {                                              \</span>
+<a name="l00123"></a>00123 <span class="preprocessor">        SLIST_FIRST(head) = SLIST_END(head);                            \</span>
+<a name="l00124"></a>00124 <span class="preprocessor">}</span>
+<a name="l00125"></a>00125 <span class="preprocessor"></span>
+<a name="l00126"></a>00126 <span class="preprocessor">#define SLIST_INSERT_AFTER(slistelm, elm, field) do {                   \</span>
+<a name="l00127"></a>00127 <span class="preprocessor">        (elm)-&gt;field.sle_next = (slistelm)-&gt;field.sle_next;             \</span>
+<a name="l00128"></a>00128 <span class="preprocessor">        (slistelm)-&gt;field.sle_next = (elm);                             \</span>
+<a name="l00129"></a>00129 <span class="preprocessor">} while (0)</span>
+<a name="l00130"></a>00130 <span class="preprocessor"></span>
+<a name="l00131"></a>00131 <span class="preprocessor">#define SLIST_INSERT_HEAD(head, elm, field) do {                        \</span>
+<a name="l00132"></a>00132 <span class="preprocessor">        (elm)-&gt;field.sle_next = (head)-&gt;slh_first;                      \</span>
+<a name="l00133"></a>00133 <span class="preprocessor">        (head)-&gt;slh_first = (elm);                                      \</span>
+<a name="l00134"></a>00134 <span class="preprocessor">} while (0)</span>
+<a name="l00135"></a>00135 <span class="preprocessor"></span>
+<a name="l00136"></a>00136 <span class="preprocessor">#define SLIST_REMOVE_NEXT(head, elm, field) do {                        \</span>
+<a name="l00137"></a>00137 <span class="preprocessor">        (elm)-&gt;field.sle_next = (elm)-&gt;field.sle_next-&gt;field.sle_next;  \</span>
+<a name="l00138"></a>00138 <span class="preprocessor">} while (0)</span>
+<a name="l00139"></a>00139 <span class="preprocessor"></span>
+<a name="l00140"></a>00140 <span class="preprocessor">#define SLIST_REMOVE_HEAD(head, field) do {                             \</span>
+<a name="l00141"></a>00141 <span class="preprocessor">        (head)-&gt;slh_first = (head)-&gt;slh_first-&gt;field.sle_next;          \</span>
+<a name="l00142"></a>00142 <span class="preprocessor">} while (0)</span>
+<a name="l00143"></a>00143 <span class="preprocessor"></span>
+<a name="l00144"></a>00144 <span class="preprocessor">#define SLIST_REMOVE(head, elm, type, field) do {                       \</span>
+<a name="l00145"></a>00145 <span class="preprocessor">        if ((head)-&gt;slh_first == (elm)) {                               \</span>
+<a name="l00146"></a>00146 <span class="preprocessor">                SLIST_REMOVE_HEAD((head), field);                       \</span>
+<a name="l00147"></a>00147 <span class="preprocessor">        }                                                               \</span>
+<a name="l00148"></a>00148 <span class="preprocessor">        else {                                                          \</span>
+<a name="l00149"></a>00149 <span class="preprocessor">                struct type *curelm = (head)-&gt;slh_first;                \</span>
+<a name="l00150"></a>00150 <span class="preprocessor">                while( curelm-&gt;field.sle_next != (elm) )                \</span>
+<a name="l00151"></a>00151 <span class="preprocessor">                        curelm = curelm-&gt;field.sle_next;                \</span>
+<a name="l00152"></a>00152 <span class="preprocessor">                curelm-&gt;field.sle_next =                                \</span>
+<a name="l00153"></a>00153 <span class="preprocessor">                    curelm-&gt;field.sle_next-&gt;field.sle_next;             \</span>
+<a name="l00154"></a>00154 <span class="preprocessor">        }                                                               \</span>
+<a name="l00155"></a>00155 <span class="preprocessor">} while (0)</span>
+<a name="l00156"></a>00156 <span class="preprocessor"></span>
+<a name="l00157"></a>00157 <span class="comment">/*</span>
+<a name="l00158"></a>00158 <span class="comment"> * List definitions.</span>
+<a name="l00159"></a>00159 <span class="comment"> */</span>
+<a name="l00160"></a>00160 <span class="preprocessor">#define LIST_HEAD(name, type)                                           \</span>
+<a name="l00161"></a>00161 <span class="preprocessor">struct name {                                                           \</span>
+<a name="l00162"></a>00162 <span class="preprocessor">        struct type *lh_first;  </span><span class="comment">/* first element */</span>                     \
+<a name="l00163"></a>00163 }
+<a name="l00164"></a>00164 
+<a name="l00165"></a>00165 <span class="preprocessor">#define LIST_HEAD_INITIALIZER(head)                                     \</span>
+<a name="l00166"></a>00166 <span class="preprocessor">        { NULL }</span>
+<a name="l00167"></a>00167 <span class="preprocessor"></span>
+<a name="l00168"></a>00168 <span class="preprocessor">#define LIST_ENTRY(type)                                                \</span>
+<a name="l00169"></a>00169 <span class="preprocessor">struct {                                                                \</span>
+<a name="l00170"></a>00170 <span class="preprocessor">        struct type *le_next;   </span><span class="comment">/* next element */</span>                      \
+<a name="l00171"></a>00171         struct type **le_prev;  <span class="comment">/* address of previous next element */</span>  \
+<a name="l00172"></a>00172 }
+<a name="l00173"></a>00173 
+<a name="l00174"></a>00174 <span class="comment">/*</span>
+<a name="l00175"></a>00175 <span class="comment"> * List access methods</span>
+<a name="l00176"></a>00176 <span class="comment"> */</span>
+<a name="l00177"></a>00177 <span class="preprocessor">#define LIST_FIRST(head)                ((head)-&gt;lh_first)</span>
+<a name="l00178"></a>00178 <span class="preprocessor"></span><span class="preprocessor">#define LIST_END(head)                  NULL</span>
+<a name="l00179"></a>00179 <span class="preprocessor"></span><span class="preprocessor">#define LIST_EMPTY(head)                (LIST_FIRST(head) == LIST_END(head))</span>
+<a name="l00180"></a>00180 <span class="preprocessor"></span><span class="preprocessor">#define LIST_NEXT(elm, field)           ((elm)-&gt;field.le_next)</span>
+<a name="l00181"></a>00181 <span class="preprocessor"></span>
+<a name="l00182"></a>00182 <span class="preprocessor">#define LIST_FOREACH(var, head, field)                                  \</span>
+<a name="l00183"></a>00183 <span class="preprocessor">        for((var) = LIST_FIRST(head);                                   \</span>
+<a name="l00184"></a>00184 <span class="preprocessor">            (var)!= LIST_END(head);                                     \</span>
+<a name="l00185"></a>00185 <span class="preprocessor">            (var) = LIST_NEXT(var, field))</span>
+<a name="l00186"></a>00186 <span class="preprocessor"></span>
+<a name="l00187"></a>00187 <span class="comment">/*</span>
+<a name="l00188"></a>00188 <span class="comment"> * List functions.</span>
+<a name="l00189"></a>00189 <span class="comment"> */</span>
+<a name="l00190"></a>00190 <span class="preprocessor">#define LIST_INIT(head) do {                                            \</span>
+<a name="l00191"></a>00191 <span class="preprocessor">        LIST_FIRST(head) = LIST_END(head);                              \</span>
+<a name="l00192"></a>00192 <span class="preprocessor">} while (0)</span>
+<a name="l00193"></a>00193 <span class="preprocessor"></span>
+<a name="l00194"></a>00194 <span class="preprocessor">#define LIST_INSERT_AFTER(listelm, elm, field) do {                     \</span>
+<a name="l00195"></a>00195 <span class="preprocessor">        if (((elm)-&gt;field.le_next = (listelm)-&gt;field.le_next) != NULL)  \</span>
+<a name="l00196"></a>00196 <span class="preprocessor">                (listelm)-&gt;field.le_next-&gt;field.le_prev =               \</span>
+<a name="l00197"></a>00197 <span class="preprocessor">                    &amp;(elm)-&gt;field.le_next;                              \</span>
+<a name="l00198"></a>00198 <span class="preprocessor">        (listelm)-&gt;field.le_next = (elm);                               \</span>
+<a name="l00199"></a>00199 <span class="preprocessor">        (elm)-&gt;field.le_prev = &amp;(listelm)-&gt;field.le_next;               \</span>
+<a name="l00200"></a>00200 <span class="preprocessor">} while (0)</span>
+<a name="l00201"></a>00201 <span class="preprocessor"></span>
+<a name="l00202"></a>00202 <span class="preprocessor">#define LIST_INSERT_BEFORE(listelm, elm, field) do {                    \</span>
+<a name="l00203"></a>00203 <span class="preprocessor">        (elm)-&gt;field.le_prev = (listelm)-&gt;field.le_prev;                \</span>
+<a name="l00204"></a>00204 <span class="preprocessor">        (elm)-&gt;field.le_next = (listelm);                               \</span>
+<a name="l00205"></a>00205 <span class="preprocessor">        *(listelm)-&gt;field.le_prev = (elm);                              \</span>
+<a name="l00206"></a>00206 <span class="preprocessor">        (listelm)-&gt;field.le_prev = &amp;(elm)-&gt;field.le_next;               \</span>
+<a name="l00207"></a>00207 <span class="preprocessor">} while (0)</span>
+<a name="l00208"></a>00208 <span class="preprocessor"></span>
+<a name="l00209"></a>00209 <span class="preprocessor">#define LIST_INSERT_HEAD(head, elm, field) do {                         \</span>
+<a name="l00210"></a>00210 <span class="preprocessor">        if (((elm)-&gt;field.le_next = (head)-&gt;lh_first) != NULL)          \</span>
+<a name="l00211"></a>00211 <span class="preprocessor">                (head)-&gt;lh_first-&gt;field.le_prev = &amp;(elm)-&gt;field.le_next;\</span>
+<a name="l00212"></a>00212 <span class="preprocessor">        (head)-&gt;lh_first = (elm);                                       \</span>
+<a name="l00213"></a>00213 <span class="preprocessor">        (elm)-&gt;field.le_prev = &amp;(head)-&gt;lh_first;                       \</span>
+<a name="l00214"></a>00214 <span class="preprocessor">} while (0)</span>
+<a name="l00215"></a>00215 <span class="preprocessor"></span>
+<a name="l00216"></a>00216 <span class="preprocessor">#define LIST_REMOVE(elm, field) do {                                    \</span>
+<a name="l00217"></a>00217 <span class="preprocessor">        if ((elm)-&gt;field.le_next != NULL)                               \</span>
+<a name="l00218"></a>00218 <span class="preprocessor">                (elm)-&gt;field.le_next-&gt;field.le_prev =                   \</span>
+<a name="l00219"></a>00219 <span class="preprocessor">                    (elm)-&gt;field.le_prev;                               \</span>
+<a name="l00220"></a>00220 <span class="preprocessor">        *(elm)-&gt;field.le_prev = (elm)-&gt;field.le_next;                   \</span>
+<a name="l00221"></a>00221 <span class="preprocessor">} while (0)</span>
+<a name="l00222"></a>00222 <span class="preprocessor"></span>
+<a name="l00223"></a>00223 <span class="preprocessor">#define LIST_REPLACE(elm, elm2, field) do {                             \</span>
+<a name="l00224"></a>00224 <span class="preprocessor">        if (((elm2)-&gt;field.le_next = (elm)-&gt;field.le_next) != NULL)     \</span>
+<a name="l00225"></a>00225 <span class="preprocessor">                (elm2)-&gt;field.le_next-&gt;field.le_prev =                  \</span>
+<a name="l00226"></a>00226 <span class="preprocessor">                    &amp;(elm2)-&gt;field.le_next;                             \</span>
+<a name="l00227"></a>00227 <span class="preprocessor">        (elm2)-&gt;field.le_prev = (elm)-&gt;field.le_prev;                   \</span>
+<a name="l00228"></a>00228 <span class="preprocessor">        *(elm2)-&gt;field.le_prev = (elm2);                                \</span>
+<a name="l00229"></a>00229 <span class="preprocessor">} while (0)</span>
+<a name="l00230"></a>00230 <span class="preprocessor"></span>
+<a name="l00231"></a>00231 <span class="comment">/*</span>
+<a name="l00232"></a>00232 <span class="comment"> * Simple queue definitions.</span>
+<a name="l00233"></a>00233 <span class="comment"> */</span>
+<a name="l00234"></a>00234 <span class="preprocessor">#define SIMPLEQ_HEAD(name, type)                                        \</span>
+<a name="l00235"></a>00235 <span class="preprocessor">struct name {                                                           \</span>
+<a name="l00236"></a>00236 <span class="preprocessor">        struct type *sqh_first; </span><span class="comment">/* first element */</span>                     \
+<a name="l00237"></a>00237         struct type **sqh_last; <span class="comment">/* addr of last next element */</span>         \
+<a name="l00238"></a>00238 }
+<a name="l00239"></a>00239 
+<a name="l00240"></a>00240 <span class="preprocessor">#define SIMPLEQ_HEAD_INITIALIZER(head)                                  \</span>
+<a name="l00241"></a>00241 <span class="preprocessor">        { NULL, &amp;(head).sqh_first }</span>
+<a name="l00242"></a>00242 <span class="preprocessor"></span>
+<a name="l00243"></a>00243 <span class="preprocessor">#define SIMPLEQ_ENTRY(type)                                             \</span>
+<a name="l00244"></a>00244 <span class="preprocessor">struct {                                                                \</span>
+<a name="l00245"></a>00245 <span class="preprocessor">        struct type *sqe_next;  </span><span class="comment">/* next element */</span>                      \
+<a name="l00246"></a>00246 }
+<a name="l00247"></a>00247 
+<a name="l00248"></a>00248 <span class="comment">/*</span>
+<a name="l00249"></a>00249 <span class="comment"> * Simple queue access methods.</span>
+<a name="l00250"></a>00250 <span class="comment"> */</span>
+<a name="l00251"></a>00251 <span class="preprocessor">#define SIMPLEQ_FIRST(head)         ((head)-&gt;sqh_first)</span>
+<a name="l00252"></a>00252 <span class="preprocessor"></span><span class="preprocessor">#define SIMPLEQ_END(head)           NULL</span>
+<a name="l00253"></a>00253 <span class="preprocessor"></span><span class="preprocessor">#define SIMPLEQ_EMPTY(head)         (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head))</span>
+<a name="l00254"></a>00254 <span class="preprocessor"></span><span class="preprocessor">#define SIMPLEQ_NEXT(elm, field)    ((elm)-&gt;field.sqe_next)</span>
+<a name="l00255"></a>00255 <span class="preprocessor"></span>
+<a name="l00256"></a>00256 <span class="preprocessor">#define SIMPLEQ_FOREACH(var, head, field)                               \</span>
+<a name="l00257"></a>00257 <span class="preprocessor">        for((var) = SIMPLEQ_FIRST(head);                                \</span>
+<a name="l00258"></a>00258 <span class="preprocessor">            (var) != SIMPLEQ_END(head);                                 \</span>
+<a name="l00259"></a>00259 <span class="preprocessor">            (var) = SIMPLEQ_NEXT(var, field))</span>
+<a name="l00260"></a>00260 <span class="preprocessor"></span>
+<a name="l00261"></a>00261 <span class="comment">/*</span>
+<a name="l00262"></a>00262 <span class="comment"> * Simple queue functions.</span>
+<a name="l00263"></a>00263 <span class="comment"> */</span>
+<a name="l00264"></a>00264 <span class="preprocessor">#define SIMPLEQ_INIT(head) do {                                         \</span>
+<a name="l00265"></a>00265 <span class="preprocessor">        (head)-&gt;sqh_first = NULL;                                       \</span>
+<a name="l00266"></a>00266 <span class="preprocessor">        (head)-&gt;sqh_last = &amp;(head)-&gt;sqh_first;                          \</span>
+<a name="l00267"></a>00267 <span class="preprocessor">} while (0)</span>
+<a name="l00268"></a>00268 <span class="preprocessor"></span>
+<a name="l00269"></a>00269 <span class="preprocessor">#define SIMPLEQ_INSERT_HEAD(head, elm, field) do {                      \</span>
+<a name="l00270"></a>00270 <span class="preprocessor">        if (((elm)-&gt;field.sqe_next = (head)-&gt;sqh_first) == NULL)        \</span>
+<a name="l00271"></a>00271 <span class="preprocessor">                (head)-&gt;sqh_last = &amp;(elm)-&gt;field.sqe_next;              \</span>
+<a name="l00272"></a>00272 <span class="preprocessor">        (head)-&gt;sqh_first = (elm);                                      \</span>
+<a name="l00273"></a>00273 <span class="preprocessor">} while (0)</span>
+<a name="l00274"></a>00274 <span class="preprocessor"></span>
+<a name="l00275"></a>00275 <span class="preprocessor">#define SIMPLEQ_INSERT_TAIL(head, elm, field) do {                      \</span>
+<a name="l00276"></a>00276 <span class="preprocessor">        (elm)-&gt;field.sqe_next = NULL;                                   \</span>
+<a name="l00277"></a>00277 <span class="preprocessor">        *(head)-&gt;sqh_last = (elm);                                      \</span>
+<a name="l00278"></a>00278 <span class="preprocessor">        (head)-&gt;sqh_last = &amp;(elm)-&gt;field.sqe_next;                      \</span>
+<a name="l00279"></a>00279 <span class="preprocessor">} while (0)</span>
+<a name="l00280"></a>00280 <span class="preprocessor"></span>
+<a name="l00281"></a>00281 <span class="preprocessor">#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do {            \</span>
+<a name="l00282"></a>00282 <span class="preprocessor">        if (((elm)-&gt;field.sqe_next = (listelm)-&gt;field.sqe_next) == NULL)\</span>
+<a name="l00283"></a>00283 <span class="preprocessor">                (head)-&gt;sqh_last = &amp;(elm)-&gt;field.sqe_next;              \</span>
+<a name="l00284"></a>00284 <span class="preprocessor">        (listelm)-&gt;field.sqe_next = (elm);                              \</span>
+<a name="l00285"></a>00285 <span class="preprocessor">} while (0)</span>
+<a name="l00286"></a>00286 <span class="preprocessor"></span>
+<a name="l00287"></a>00287 <span class="preprocessor">#define SIMPLEQ_REMOVE_HEAD(head, elm, field) do {                      \</span>
+<a name="l00288"></a>00288 <span class="preprocessor">        if (((head)-&gt;sqh_first = (elm)-&gt;field.sqe_next) == NULL)        \</span>
+<a name="l00289"></a>00289 <span class="preprocessor">                (head)-&gt;sqh_last = &amp;(head)-&gt;sqh_first;                  \</span>
+<a name="l00290"></a>00290 <span class="preprocessor">} while (0)</span>
+<a name="l00291"></a>00291 <span class="preprocessor"></span>
+<a name="l00292"></a>00292 <span class="comment">/*</span>
+<a name="l00293"></a>00293 <span class="comment"> * Tail queue definitions.</span>
+<a name="l00294"></a>00294 <span class="comment"> */</span>
+<a name="l00295"></a>00295 <span class="preprocessor">#define TAILQ_HEAD(name, type)                                          \</span>
+<a name="l00296"></a>00296 <span class="preprocessor">struct name {                                                           \</span>
+<a name="l00297"></a>00297 <span class="preprocessor">        struct type *tqh_first; </span><span class="comment">/* first element */</span>                     \
+<a name="l00298"></a>00298         struct type **tqh_last; <span class="comment">/* addr of last next element */</span>         \
+<a name="l00299"></a>00299 }
+<a name="l00300"></a>00300 
+<a name="l00301"></a>00301 <span class="preprocessor">#define TAILQ_HEAD_INITIALIZER(head)                                    \</span>
+<a name="l00302"></a>00302 <span class="preprocessor">        { NULL, &amp;(head).tqh_first }</span>
+<a name="l00303"></a>00303 <span class="preprocessor"></span>
+<a name="l00304"></a>00304 <span class="preprocessor">#define TAILQ_ENTRY(type)                                               \</span>
+<a name="l00305"></a>00305 <span class="preprocessor">struct {                                                                \</span>
+<a name="l00306"></a>00306 <span class="preprocessor">        struct type *tqe_next;  </span><span class="comment">/* next element */</span>                      \
+<a name="l00307"></a>00307         struct type **tqe_prev; <span class="comment">/* address of previous next element */</span>  \
+<a name="l00308"></a>00308 }
+<a name="l00309"></a>00309 
+<a name="l00310"></a>00310 <span class="comment">/* </span>
+<a name="l00311"></a>00311 <span class="comment"> * tail queue access methods </span>
+<a name="l00312"></a>00312 <span class="comment"> */</span>
+<a name="l00313"></a>00313 <span class="preprocessor">#define TAILQ_FIRST(head)               ((head)-&gt;tqh_first)</span>
+<a name="l00314"></a>00314 <span class="preprocessor"></span><span class="preprocessor">#define TAILQ_END(head)                 NULL</span>
+<a name="l00315"></a>00315 <span class="preprocessor"></span><span class="preprocessor">#define TAILQ_NEXT(elm, field)          ((elm)-&gt;field.tqe_next)</span>
+<a name="l00316"></a>00316 <span class="preprocessor"></span><span class="preprocessor">#define TAILQ_LAST(head, headname)                                      \</span>
+<a name="l00317"></a>00317 <span class="preprocessor">        (*(((struct headname *)((head)-&gt;tqh_last))-&gt;tqh_last))</span>
+<a name="l00318"></a>00318 <span class="preprocessor"></span><span class="comment">/* XXX */</span>
+<a name="l00319"></a>00319 <span class="preprocessor">#define TAILQ_PREV(elm, headname, field)                                \</span>
+<a name="l00320"></a>00320 <span class="preprocessor">        (*(((struct headname *)((elm)-&gt;field.tqe_prev))-&gt;tqh_last))</span>
+<a name="l00321"></a>00321 <span class="preprocessor"></span><span class="preprocessor">#define TAILQ_EMPTY(head)                                               \</span>
+<a name="l00322"></a>00322 <span class="preprocessor">        (TAILQ_FIRST(head) == TAILQ_END(head))</span>
+<a name="l00323"></a>00323 <span class="preprocessor"></span>
+<a name="l00324"></a>00324 <span class="preprocessor">#define TAILQ_FOREACH(var, head, field)                                 \</span>
+<a name="l00325"></a>00325 <span class="preprocessor">        for((var) = TAILQ_FIRST(head);                                  \</span>
+<a name="l00326"></a>00326 <span class="preprocessor">            (var) != TAILQ_END(head);                                   \</span>
+<a name="l00327"></a>00327 <span class="preprocessor">            (var) = TAILQ_NEXT(var, field))</span>
+<a name="l00328"></a>00328 <span class="preprocessor"></span>
+<a name="l00329"></a>00329 <span class="preprocessor">#define TAILQ_FOREACH_REVERSE(var, head, headname, field)               \</span>
+<a name="l00330"></a>00330 <span class="preprocessor">        for((var) = TAILQ_LAST(head, headname);                         \</span>
+<a name="l00331"></a>00331 <span class="preprocessor">            (var) != TAILQ_END(head);                                   \</span>
+<a name="l00332"></a>00332 <span class="preprocessor">            (var) = TAILQ_PREV(var, headname, field))</span>
+<a name="l00333"></a>00333 <span class="preprocessor"></span>
+<a name="l00334"></a>00334 <span class="comment">/*</span>
+<a name="l00335"></a>00335 <span class="comment"> * Tail queue functions.</span>
+<a name="l00336"></a>00336 <span class="comment"> */</span>
+<a name="l00337"></a>00337 <span class="preprocessor">#define TAILQ_INIT(head) do {                                           \</span>
+<a name="l00338"></a>00338 <span class="preprocessor">        (head)-&gt;tqh_first = NULL;                                       \</span>
+<a name="l00339"></a>00339 <span class="preprocessor">        (head)-&gt;tqh_last = &amp;(head)-&gt;tqh_first;                          \</span>
+<a name="l00340"></a>00340 <span class="preprocessor">} while (0)</span>
+<a name="l00341"></a>00341 <span class="preprocessor"></span>
+<a name="l00342"></a>00342 <span class="preprocessor">#define TAILQ_INSERT_HEAD(head, elm, field) do {                        \</span>
+<a name="l00343"></a>00343 <span class="preprocessor">        if (((elm)-&gt;field.tqe_next = (head)-&gt;tqh_first) != NULL)        \</span>
+<a name="l00344"></a>00344 <span class="preprocessor">                (head)-&gt;tqh_first-&gt;field.tqe_prev =                     \</span>
+<a name="l00345"></a>00345 <span class="preprocessor">                    &amp;(elm)-&gt;field.tqe_next;                             \</span>
+<a name="l00346"></a>00346 <span class="preprocessor">        else                                                            \</span>
+<a name="l00347"></a>00347 <span class="preprocessor">                (head)-&gt;tqh_last = &amp;(elm)-&gt;field.tqe_next;              \</span>
+<a name="l00348"></a>00348 <span class="preprocessor">        (head)-&gt;tqh_first = (elm);                                      \</span>
+<a name="l00349"></a>00349 <span class="preprocessor">        (elm)-&gt;field.tqe_prev = &amp;(head)-&gt;tqh_first;                     \</span>
+<a name="l00350"></a>00350 <span class="preprocessor">} while (0)</span>
+<a name="l00351"></a>00351 <span class="preprocessor"></span>
+<a name="l00352"></a>00352 <span class="preprocessor">#define TAILQ_INSERT_TAIL(head, elm, field) do {                        \</span>
+<a name="l00353"></a>00353 <span class="preprocessor">        (elm)-&gt;field.tqe_next = NULL;                                   \</span>
+<a name="l00354"></a>00354 <span class="preprocessor">        (elm)-&gt;field.tqe_prev = (head)-&gt;tqh_last;                       \</span>
+<a name="l00355"></a>00355 <span class="preprocessor">        *(head)-&gt;tqh_last = (elm);                                      \</span>
+<a name="l00356"></a>00356 <span class="preprocessor">        (head)-&gt;tqh_last = &amp;(elm)-&gt;field.tqe_next;                      \</span>
+<a name="l00357"></a>00357 <span class="preprocessor">} while (0)</span>
+<a name="l00358"></a>00358 <span class="preprocessor"></span>
+<a name="l00359"></a>00359 <span class="preprocessor">#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do {              \</span>
+<a name="l00360"></a>00360 <span class="preprocessor">        if (((elm)-&gt;field.tqe_next = (listelm)-&gt;field.tqe_next) != NULL)\</span>
+<a name="l00361"></a>00361 <span class="preprocessor">                (elm)-&gt;field.tqe_next-&gt;field.tqe_prev =                 \</span>
+<a name="l00362"></a>00362 <span class="preprocessor">                    &amp;(elm)-&gt;field.tqe_next;                             \</span>
+<a name="l00363"></a>00363 <span class="preprocessor">        else                                                            \</span>
+<a name="l00364"></a>00364 <span class="preprocessor">                (head)-&gt;tqh_last = &amp;(elm)-&gt;field.tqe_next;              \</span>
+<a name="l00365"></a>00365 <span class="preprocessor">        (listelm)-&gt;field.tqe_next = (elm);                              \</span>
+<a name="l00366"></a>00366 <span class="preprocessor">        (elm)-&gt;field.tqe_prev = &amp;(listelm)-&gt;field.tqe_next;             \</span>
+<a name="l00367"></a>00367 <span class="preprocessor">} while (0)</span>
+<a name="l00368"></a>00368 <span class="preprocessor"></span>
+<a name="l00369"></a>00369 <span class="preprocessor">#define TAILQ_INSERT_BEFORE(listelm, elm, field) do {                   \</span>
+<a name="l00370"></a>00370 <span class="preprocessor">        (elm)-&gt;field.tqe_prev = (listelm)-&gt;field.tqe_prev;              \</span>
+<a name="l00371"></a>00371 <span class="preprocessor">        (elm)-&gt;field.tqe_next = (listelm);                              \</span>
+<a name="l00372"></a>00372 <span class="preprocessor">        *(listelm)-&gt;field.tqe_prev = (elm);                             \</span>
+<a name="l00373"></a>00373 <span class="preprocessor">        (listelm)-&gt;field.tqe_prev = &amp;(elm)-&gt;field.tqe_next;             \</span>
+<a name="l00374"></a>00374 <span class="preprocessor">} while (0)</span>
+<a name="l00375"></a>00375 <span class="preprocessor"></span>
+<a name="l00376"></a>00376 <span class="preprocessor">#define TAILQ_REMOVE(head, elm, field) do {                             \</span>
+<a name="l00377"></a>00377 <span class="preprocessor">        if (((elm)-&gt;field.tqe_next) != NULL)                            \</span>
+<a name="l00378"></a>00378 <span class="preprocessor">                (elm)-&gt;field.tqe_next-&gt;field.tqe_prev =                 \</span>
+<a name="l00379"></a>00379 <span class="preprocessor">                    (elm)-&gt;field.tqe_prev;                              \</span>
+<a name="l00380"></a>00380 <span class="preprocessor">        else                                                            \</span>
+<a name="l00381"></a>00381 <span class="preprocessor">                (head)-&gt;tqh_last = (elm)-&gt;field.tqe_prev;               \</span>
+<a name="l00382"></a>00382 <span class="preprocessor">        *(elm)-&gt;field.tqe_prev = (elm)-&gt;field.tqe_next;                 \</span>
+<a name="l00383"></a>00383 <span class="preprocessor">} while (0)</span>
+<a name="l00384"></a>00384 <span class="preprocessor"></span>
+<a name="l00385"></a>00385 <span class="preprocessor">#define TAILQ_REPLACE(head, elm, elm2, field) do {                      \</span>
+<a name="l00386"></a>00386 <span class="preprocessor">        if (((elm2)-&gt;field.tqe_next = (elm)-&gt;field.tqe_next) != NULL)   \</span>
+<a name="l00387"></a>00387 <span class="preprocessor">                (elm2)-&gt;field.tqe_next-&gt;field.tqe_prev =                \</span>
+<a name="l00388"></a>00388 <span class="preprocessor">                    &amp;(elm2)-&gt;field.tqe_next;                            \</span>
+<a name="l00389"></a>00389 <span class="preprocessor">        else                                                            \</span>
+<a name="l00390"></a>00390 <span class="preprocessor">                (head)-&gt;tqh_last = &amp;(elm2)-&gt;field.tqe_next;             \</span>
+<a name="l00391"></a>00391 <span class="preprocessor">        (elm2)-&gt;field.tqe_prev = (elm)-&gt;field.tqe_prev;                 \</span>
+<a name="l00392"></a>00392 <span class="preprocessor">        *(elm2)-&gt;field.tqe_prev = (elm2);                               \</span>
+<a name="l00393"></a>00393 <span class="preprocessor">} while (0)</span>
+<a name="l00394"></a>00394 <span class="preprocessor"></span>
+<a name="l00395"></a>00395 <span class="comment">/*</span>
+<a name="l00396"></a>00396 <span class="comment"> * Circular queue definitions.</span>
+<a name="l00397"></a>00397 <span class="comment"> */</span>
+<a name="l00398"></a>00398 <span class="preprocessor">#define CIRCLEQ_HEAD(name, type)                                        \</span>
+<a name="l00399"></a>00399 <span class="preprocessor">struct name {                                                           \</span>
+<a name="l00400"></a>00400 <span class="preprocessor">        struct type *cqh_first;         </span><span class="comment">/* first element */</span>             \
+<a name="l00401"></a>00401         struct type *cqh_last;          <span class="comment">/* last element */</span>              \
+<a name="l00402"></a>00402 }
+<a name="l00403"></a>00403 
+<a name="l00404"></a>00404 <span class="preprocessor">#define CIRCLEQ_HEAD_INITIALIZER(head)                                  \</span>
+<a name="l00405"></a>00405 <span class="preprocessor">        { CIRCLEQ_END(&amp;head), CIRCLEQ_END(&amp;head) }</span>
+<a name="l00406"></a>00406 <span class="preprocessor"></span>
+<a name="l00407"></a>00407 <span class="preprocessor">#define CIRCLEQ_ENTRY(type)                                             \</span>
+<a name="l00408"></a>00408 <span class="preprocessor">struct {                                                                \</span>
+<a name="l00409"></a>00409 <span class="preprocessor">        struct type *cqe_next;          </span><span class="comment">/* next element */</span>              \
+<a name="l00410"></a>00410         struct type *cqe_prev;          <span class="comment">/* previous element */</span>          \
+<a name="l00411"></a>00411 }
+<a name="l00412"></a>00412 
+<a name="l00413"></a>00413 <span class="comment">/*</span>
+<a name="l00414"></a>00414 <span class="comment"> * Circular queue access methods </span>
+<a name="l00415"></a>00415 <span class="comment"> */</span>
+<a name="l00416"></a>00416 <span class="preprocessor">#define CIRCLEQ_FIRST(head)             ((head)-&gt;cqh_first)</span>
+<a name="l00417"></a>00417 <span class="preprocessor"></span><span class="preprocessor">#define CIRCLEQ_LAST(head)              ((head)-&gt;cqh_last)</span>
+<a name="l00418"></a>00418 <span class="preprocessor"></span><span class="preprocessor">#define CIRCLEQ_END(head)               ((void *)(head))</span>
+<a name="l00419"></a>00419 <span class="preprocessor"></span><span class="preprocessor">#define CIRCLEQ_NEXT(elm, field)        ((elm)-&gt;field.cqe_next)</span>
+<a name="l00420"></a>00420 <span class="preprocessor"></span><span class="preprocessor">#define CIRCLEQ_PREV(elm, field)        ((elm)-&gt;field.cqe_prev)</span>
+<a name="l00421"></a>00421 <span class="preprocessor"></span><span class="preprocessor">#define CIRCLEQ_EMPTY(head)                                             \</span>
+<a name="l00422"></a>00422 <span class="preprocessor">        (CIRCLEQ_FIRST(head) == CIRCLEQ_END(head))</span>
+<a name="l00423"></a>00423 <span class="preprocessor"></span>
+<a name="l00424"></a>00424 <span class="preprocessor">#define CIRCLEQ_FOREACH(var, head, field)                               \</span>
+<a name="l00425"></a>00425 <span class="preprocessor">        for((var) = CIRCLEQ_FIRST(head);                                \</span>
+<a name="l00426"></a>00426 <span class="preprocessor">            (var) != CIRCLEQ_END(head);                                 \</span>
+<a name="l00427"></a>00427 <span class="preprocessor">            (var) = CIRCLEQ_NEXT(var, field))</span>
+<a name="l00428"></a>00428 <span class="preprocessor"></span>
+<a name="l00429"></a>00429 <span class="preprocessor">#define CIRCLEQ_FOREACH_REVERSE(var, head, field)                       \</span>
+<a name="l00430"></a>00430 <span class="preprocessor">        for((var) = CIRCLEQ_LAST(head);                                 \</span>
+<a name="l00431"></a>00431 <span class="preprocessor">            (var) != CIRCLEQ_END(head);                                 \</span>
+<a name="l00432"></a>00432 <span class="preprocessor">            (var) = CIRCLEQ_PREV(var, field))</span>
+<a name="l00433"></a>00433 <span class="preprocessor"></span>
+<a name="l00434"></a>00434 <span class="comment">/*</span>
+<a name="l00435"></a>00435 <span class="comment"> * Circular queue functions.</span>
+<a name="l00436"></a>00436 <span class="comment"> */</span>
+<a name="l00437"></a>00437 <span class="preprocessor">#define CIRCLEQ_INIT(head) do {                                         \</span>
+<a name="l00438"></a>00438 <span class="preprocessor">        (head)-&gt;cqh_first = CIRCLEQ_END(head);                          \</span>
+<a name="l00439"></a>00439 <span class="preprocessor">        (head)-&gt;cqh_last = CIRCLEQ_END(head);                           \</span>
+<a name="l00440"></a>00440 <span class="preprocessor">} while (0)</span>
+<a name="l00441"></a>00441 <span class="preprocessor"></span>
+<a name="l00442"></a>00442 <span class="preprocessor">#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do {            \</span>
+<a name="l00443"></a>00443 <span class="preprocessor">        (elm)-&gt;field.cqe_next = (listelm)-&gt;field.cqe_next;              \</span>
+<a name="l00444"></a>00444 <span class="preprocessor">        (elm)-&gt;field.cqe_prev = (listelm);                              \</span>
+<a name="l00445"></a>00445 <span class="preprocessor">        if ((listelm)-&gt;field.cqe_next == CIRCLEQ_END(head))             \</span>
+<a name="l00446"></a>00446 <span class="preprocessor">                (head)-&gt;cqh_last = (elm);                               \</span>
+<a name="l00447"></a>00447 <span class="preprocessor">        else                                                            \</span>
+<a name="l00448"></a>00448 <span class="preprocessor">                (listelm)-&gt;field.cqe_next-&gt;field.cqe_prev = (elm);      \</span>
+<a name="l00449"></a>00449 <span class="preprocessor">        (listelm)-&gt;field.cqe_next = (elm);                              \</span>
+<a name="l00450"></a>00450 <span class="preprocessor">} while (0)</span>
+<a name="l00451"></a>00451 <span class="preprocessor"></span>
+<a name="l00452"></a>00452 <span class="preprocessor">#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do {           \</span>
+<a name="l00453"></a>00453 <span class="preprocessor">        (elm)-&gt;field.cqe_next = (listelm);                              \</span>
+<a name="l00454"></a>00454 <span class="preprocessor">        (elm)-&gt;field.cqe_prev = (listelm)-&gt;field.cqe_prev;              \</span>
+<a name="l00455"></a>00455 <span class="preprocessor">        if ((listelm)-&gt;field.cqe_prev == CIRCLEQ_END(head))             \</span>
+<a name="l00456"></a>00456 <span class="preprocessor">                (head)-&gt;cqh_first = (elm);                              \</span>
+<a name="l00457"></a>00457 <span class="preprocessor">        else                                                            \</span>
+<a name="l00458"></a>00458 <span class="preprocessor">                (listelm)-&gt;field.cqe_prev-&gt;field.cqe_next = (elm);      \</span>
+<a name="l00459"></a>00459 <span class="preprocessor">        (listelm)-&gt;field.cqe_prev = (elm);                              \</span>
+<a name="l00460"></a>00460 <span class="preprocessor">} while (0)</span>
+<a name="l00461"></a>00461 <span class="preprocessor"></span>
+<a name="l00462"></a>00462 <span class="preprocessor">#define CIRCLEQ_INSERT_HEAD(head, elm, field) do {                      \</span>
+<a name="l00463"></a>00463 <span class="preprocessor">        (elm)-&gt;field.cqe_next = (head)-&gt;cqh_first;                      \</span>
+<a name="l00464"></a>00464 <span class="preprocessor">        (elm)-&gt;field.cqe_prev = CIRCLEQ_END(head);                      \</span>
+<a name="l00465"></a>00465 <span class="preprocessor">        if ((head)-&gt;cqh_last == CIRCLEQ_END(head))                      \</span>
+<a name="l00466"></a>00466 <span class="preprocessor">                (head)-&gt;cqh_last = (elm);                               \</span>
+<a name="l00467"></a>00467 <span class="preprocessor">        else                                                            \</span>
+<a name="l00468"></a>00468 <span class="preprocessor">                (head)-&gt;cqh_first-&gt;field.cqe_prev = (elm);              \</span>
+<a name="l00469"></a>00469 <span class="preprocessor">        (head)-&gt;cqh_first = (elm);                                      \</span>
+<a name="l00470"></a>00470 <span class="preprocessor">} while (0)</span>
+<a name="l00471"></a>00471 <span class="preprocessor"></span>
+<a name="l00472"></a>00472 <span class="preprocessor">#define CIRCLEQ_INSERT_TAIL(head, elm, field) do {                      \</span>
+<a name="l00473"></a>00473 <span class="preprocessor">        (elm)-&gt;field.cqe_next = CIRCLEQ_END(head);                      \</span>
+<a name="l00474"></a>00474 <span class="preprocessor">        (elm)-&gt;field.cqe_prev = (head)-&gt;cqh_last;                       \</span>
+<a name="l00475"></a>00475 <span class="preprocessor">        if ((head)-&gt;cqh_first == CIRCLEQ_END(head))                     \</span>
+<a name="l00476"></a>00476 <span class="preprocessor">                (head)-&gt;cqh_first = (elm);                              \</span>
+<a name="l00477"></a>00477 <span class="preprocessor">        else                                                            \</span>
+<a name="l00478"></a>00478 <span class="preprocessor">                (head)-&gt;cqh_last-&gt;field.cqe_next = (elm);               \</span>
+<a name="l00479"></a>00479 <span class="preprocessor">        (head)-&gt;cqh_last = (elm);                                       \</span>
+<a name="l00480"></a>00480 <span class="preprocessor">} while (0)</span>
+<a name="l00481"></a>00481 <span class="preprocessor"></span>
+<a name="l00482"></a>00482 <span class="preprocessor">#define CIRCLEQ_REMOVE(head, elm, field) do {                           \</span>
+<a name="l00483"></a>00483 <span class="preprocessor">        if ((elm)-&gt;field.cqe_next == CIRCLEQ_END(head))                 \</span>
+<a name="l00484"></a>00484 <span class="preprocessor">                (head)-&gt;cqh_last = (elm)-&gt;field.cqe_prev;               \</span>
+<a name="l00485"></a>00485 <span class="preprocessor">        else                                                            \</span>
+<a name="l00486"></a>00486 <span class="preprocessor">                (elm)-&gt;field.cqe_next-&gt;field.cqe_prev =                 \</span>
+<a name="l00487"></a>00487 <span class="preprocessor">                    (elm)-&gt;field.cqe_prev;                              \</span>
+<a name="l00488"></a>00488 <span class="preprocessor">        if ((elm)-&gt;field.cqe_prev == CIRCLEQ_END(head))                 \</span>
+<a name="l00489"></a>00489 <span class="preprocessor">                (head)-&gt;cqh_first = (elm)-&gt;field.cqe_next;              \</span>
+<a name="l00490"></a>00490 <span class="preprocessor">        else                                                            \</span>
+<a name="l00491"></a>00491 <span class="preprocessor">                (elm)-&gt;field.cqe_prev-&gt;field.cqe_next =                 \</span>
+<a name="l00492"></a>00492 <span class="preprocessor">                    (elm)-&gt;field.cqe_next;                              \</span>
+<a name="l00493"></a>00493 <span class="preprocessor">} while (0)</span>
+<a name="l00494"></a>00494 <span class="preprocessor"></span>
+<a name="l00495"></a>00495 <span class="preprocessor">#define CIRCLEQ_REPLACE(head, elm, elm2, field) do {                    \</span>
+<a name="l00496"></a>00496 <span class="preprocessor">        if (((elm2)-&gt;field.cqe_next = (elm)-&gt;field.cqe_next) ==         \</span>
+<a name="l00497"></a>00497 <span class="preprocessor">            CIRCLEQ_END(head))                                          \</span>
+<a name="l00498"></a>00498 <span class="preprocessor">                (head).cqh_last = (elm2);                               \</span>
+<a name="l00499"></a>00499 <span class="preprocessor">        else                                                            \</span>
+<a name="l00500"></a>00500 <span class="preprocessor">                (elm2)-&gt;field.cqe_next-&gt;field.cqe_prev = (elm2);        \</span>
+<a name="l00501"></a>00501 <span class="preprocessor">        if (((elm2)-&gt;field.cqe_prev = (elm)-&gt;field.cqe_prev) ==         \</span>
+<a name="l00502"></a>00502 <span class="preprocessor">            CIRCLEQ_END(head))                                          \</span>
+<a name="l00503"></a>00503 <span class="preprocessor">                (head).cqh_first = (elm2);                              \</span>
+<a name="l00504"></a>00504 <span class="preprocessor">        else                                                            \</span>
+<a name="l00505"></a>00505 <span class="preprocessor">                (elm2)-&gt;field.cqe_prev-&gt;field.cqe_next = (elm2);        \</span>
+<a name="l00506"></a>00506 <span class="preprocessor">} while (0)</span>
+<a name="l00507"></a>00507 <span class="preprocessor"></span>
+<a name="l00508"></a>00508 <span class="preprocessor">#endif  </span><span class="comment">/* !_SYS_QUEUE_H_ */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__util_8c.html b/main/minimime/mm-docs/html/mm__util_8c.html
new file mode 100644
index 0000000000..780feb796e
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__util_8c.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_util.c File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_util.c File Reference</h1><code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;string.h&gt;</code><br>
+<code>#include &lt;time.h&gt;</code><br>
+<code>#include &lt;assert.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g2ff4ef58da7e543466e75f20f2a2d8b7">xmalloc</a> (size_t size)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ge14637b4672461f1f0bee822406d68dc">xrealloc</a> (void *p, size_t size)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="700bf3013e33311eacdd1f20d13bdc9a"></a><!-- doxytag: member="mm_util.c::xstrdup" ref="700bf3013e33311eacdd1f20d13bdc9a" args="(const char *str)" -->
+char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>xstrdup</b> (const char *str)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="91fc771d8aa78ca2ac43244c491da52d"></a><!-- doxytag: member="mm_util.c::xfree" ref="91fc771d8aa78ca2ac43244c491da52d" args="(void *p)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>xfree</b> (void *p)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gf0f89a29a634f6f1f833abb1e214a6b1">mm_unquote</a> (const char *string)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g49c016ff4cfd02f1b019c4dce5aac357">mm_uncomment</a> (const char *string)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g3ae25483c8a42f6562f2a916a511228f">xstrsep</a> (char **stringp, const char *delim)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gf62be7dd21e545f8db72f3c9e3b6a3c3">mm_stripchars</a> (char *input, char *strip)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g0747d4b4e33644263e6d73d2d8d4818b">mm_addchars</a> (char *input, char *add, u_int16_t linelength)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a965d3d1c625253beffd53051b38548e"></a><!-- doxytag: member="mm_util.c::mm_striptrailing" ref="a965d3d1c625253beffd53051b38548e" args="(char **what, const char *charset)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mm_striptrailing</b> (char **what, const char *charset)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This module contains utility functions for the MiniMIME library <hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/mm__util_8h-source.html b/main/minimime/mm-docs/html/mm__util_8h-source.html
new file mode 100644
index 0000000000..88dc9be5f2
--- /dev/null
+++ b/main/minimime/mm-docs/html/mm__util_8h-source.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: mm_util.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    <li><a href="globals.html"><span>Globals</span></a></li>
+  </ul></div>
+<h1>mm_util.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment"> * $Id$</span>
+<a name="l00003"></a>00003 <span class="comment"> *</span>
+<a name="l00004"></a>00004 <span class="comment"> * MiniMIME - a library for handling MIME messages</span>
+<a name="l00005"></a>00005 <span class="comment"> *</span>
+<a name="l00006"></a>00006 <span class="comment"> * Copyright (C) 2003 Jann Fischer &lt;rezine@mistrust.net&gt;</span>
+<a name="l00007"></a>00007 <span class="comment"> * All rights reserved.</span>
+<a name="l00008"></a>00008 <span class="comment"> *</span>
+<a name="l00009"></a>00009 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
+<a name="l00010"></a>00010 <span class="comment"> * modification, are permitted provided that the following conditions</span>
+<a name="l00011"></a>00011 <span class="comment"> * are met:</span>
+<a name="l00012"></a>00012 <span class="comment"> *</span>
+<a name="l00013"></a>00013 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
+<a name="l00014"></a>00014 <span class="comment"> *    notice, this list of conditions and the following disclaimer.</span>
+<a name="l00015"></a>00015 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00016"></a>00016 <span class="comment"> *    notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00017"></a>00017 <span class="comment"> *    documentation and/or other materials provided with the distribution.</span>
+<a name="l00018"></a>00018 <span class="comment"> *</span>
+<a name="l00019"></a>00019 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``AS IS'' AND</span>
+<a name="l00020"></a>00020 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
+<a name="l00021"></a>00021 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
+<a name="l00022"></a>00022 <span class="comment"> * ARE DISCLAIMED.  IN NO EVENT SHALL JANN FISCHER OR THE VOICES IN HIS HEAD</span>
+<a name="l00023"></a>00023 <span class="comment"> * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
+<a name="l00024"></a>00024 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
+<a name="l00025"></a>00025 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
+<a name="l00026"></a>00026 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
+<a name="l00027"></a>00027 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
+<a name="l00028"></a>00028 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF</span>
+<a name="l00029"></a>00029 <span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00030"></a>00030 <span class="comment"> */</span>
+<a name="l00031"></a>00031 <span class="preprocessor">#ifndef __MM_UTIL_H</span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define __MM_UTIL_H</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span>
+<a name="l00034"></a>00034 <span class="preprocessor">#define STRIP_TRAILING(str, charset) do { \</span>
+<a name="l00035"></a>00035 <span class="preprocessor">        size_t eos, i, hit; \</span>
+<a name="l00036"></a>00036 <span class="preprocessor">        for (eos = strlen(str); eos &gt; 0; eos--) { \</span>
+<a name="l00037"></a>00037 <span class="preprocessor">                hit = 0; \</span>
+<a name="l00038"></a>00038 <span class="preprocessor">                for (i = 0; i &lt;= strlen(charset); i++) { \</span>
+<a name="l00039"></a>00039 <span class="preprocessor">                        if (str[eos] == charset[i]) {\</span>
+<a name="l00040"></a>00040 <span class="preprocessor">                                str[eos] = '\0'; \</span>
+<a name="l00041"></a>00041 <span class="preprocessor">                                hit = 1; \</span>
+<a name="l00042"></a>00042 <span class="preprocessor">                                break; \</span>
+<a name="l00043"></a>00043 <span class="preprocessor">                        } \</span>
+<a name="l00044"></a>00044 <span class="preprocessor">                } \</span>
+<a name="l00045"></a>00045 <span class="preprocessor">                if (!hit) \</span>
+<a name="l00046"></a>00046 <span class="preprocessor">                        break; \</span>
+<a name="l00047"></a>00047 <span class="preprocessor">        } \</span>
+<a name="l00048"></a>00048 <span class="preprocessor">} while (0);</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="preprocessor">#endif </span><span class="comment">/* ! __MM_UTIL_H */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/modules.html b/main/minimime/mm-docs/html/modules.html
new file mode 100644
index 0000000000..5057325275
--- /dev/null
+++ b/main/minimime/mm-docs/html/modules.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Module Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li id="current"><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>MiniMIME Modules</h1>Here is a list of all modules:<ul>
+<li><a class="el" href="group__codecs.html">Manipulating MiniMIME codecs</a>
+<li><a class="el" href="group__contenttype.html">Accessing and manipulating Content-Type objects</a>
+<li><a class="el" href="group__context.html">Accessing and manipulating MIME contexts</a>
+<li><a class="el" href="group__envelope.html">Accessing and manipulating a message's envelope</a>
+<li><a class="el" href="group__error.html">MiniMIME error functions</a>
+<li><a class="el" href="group__mimepart.html">Accessing and manipulating MIME parts</a>
+<li><a class="el" href="group__mimeutil.html">MIME related utility functions</a>
+<li><a class="el" href="group__param.html">Accessing and manipulating MIME parameters</a>
+<li><a class="el" href="group__util.html">General purpose utility functions</a>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/pages.html b/main/minimime/mm-docs/html/pages.html
new file mode 100644
index 0000000000..362d4af9b2
--- /dev/null
+++ b/main/minimime/mm-docs/html/pages.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>MiniMIME: Page Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li id="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul></div>
+<h1>MiniMIME Related Pages</h1>Here is a list of all related documentation pages:<ul>
+<li><a class="el" href="bug.html">Bug List</a>
+
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 2007 for MiniMIME by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
diff --git a/main/minimime/mm-docs/html/tabs.css b/main/minimime/mm-docs/html/tabs.css
new file mode 100644
index 0000000000..a61552a67a
--- /dev/null
+++ b/main/minimime/mm-docs/html/tabs.css
@@ -0,0 +1,102 @@
+/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
+
+DIV.tabs
+{
+   float            : left;
+   width            : 100%;
+   background       : url("tab_b.gif") repeat-x bottom;
+   margin-bottom    : 4px;
+}
+
+DIV.tabs UL
+{
+   margin           : 0px;
+   padding-left     : 10px;
+   list-style       : none;
+}
+
+DIV.tabs LI, DIV.tabs FORM
+{
+   display          : inline;
+   margin           : 0px;
+   padding          : 0px;
+}
+
+DIV.tabs FORM
+{
+   float            : right;
+}
+
+DIV.tabs A
+{
+   float            : left;
+   background       : url("tab_r.gif") no-repeat right top;
+   border-bottom    : 1px solid #84B0C7;
+   font-size        : x-small;
+   font-weight      : bold;
+   text-decoration  : none;
+}
+
+DIV.tabs A:hover
+{
+   background-position: 100% -150px;
+}
+
+DIV.tabs A:link, DIV.tabs A:visited,
+DIV.tabs A:active, DIV.tabs A:hover
+{
+       color: #1A419D;
+}
+
+DIV.tabs SPAN
+{
+   float            : left;
+   display          : block;
+   background       : url("tab_l.gif") no-repeat left top;
+   padding          : 5px 9px;
+   white-space      : nowrap;
+}
+
+DIV.tabs INPUT
+{
+   float            : right;
+   display          : inline;
+   font-size        : 1em;
+}
+
+DIV.tabs TD
+{
+   font-size        : x-small;
+   font-weight      : bold;
+   text-decoration  : none;
+}
+
+
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+DIV.tabs SPAN {float : none;}
+/* End IE5-Mac hack */
+
+DIV.tabs A:hover SPAN
+{
+   background-position: 0% -150px;
+}
+
+DIV.tabs LI#current A
+{
+   background-position: 100% -150px;
+   border-width     : 0px;
+}
+
+DIV.tabs LI#current SPAN
+{
+   background-position: 0% -150px;
+   padding-bottom   : 6px;
+}
+
+DIV.nav
+{
+   background       : none;
+   border           : none;
+   border-bottom    : 1px solid #84B0C7;
+}
diff --git a/main/minimime/mm-docs/latex/Makefile b/main/minimime/mm-docs/latex/Makefile
new file mode 100644
index 0000000000..776fcf9682
--- /dev/null
+++ b/main/minimime/mm-docs/latex/Makefile
@@ -0,0 +1,39 @@
+all: clean refman.dvi
+
+ps: refman.ps
+
+pdf: refman.pdf
+
+ps_2on1: refman_2on1.ps
+
+pdf_2on1: refman_2on1.pdf
+
+refman.ps: refman.dvi
+	dvips -o refman.ps refman.dvi
+
+refman.pdf: refman.ps
+	ps2pdf refman.ps refman.pdf
+
+refman.dvi: refman.tex doxygen.sty
+	echo "Running latex..."
+	latex refman.tex
+	echo "Running makeindex..."
+	makeindex refman.idx
+	echo "Rerunning latex...."
+	latex refman.tex
+	latex_count=5 ; \
+	while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
+	    do \
+	      echo "Rerunning latex...." ;\
+	      latex refman.tex ;\
+	      latex_count=`expr $$latex_count - 1` ;\
+	    done
+
+refman_2on1.ps: refman.ps
+	psnup -2 refman.ps >refman_2on1.ps
+
+refman_2on1.pdf: refman_2on1.ps
+	ps2pdf refman_2on1.ps refman_2on1.pdf
+
+clean:
+	rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf
diff --git a/main/minimime/mm-docs/latex/bug.tex b/main/minimime/mm-docs/latex/bug.tex
new file mode 100644
index 0000000000..0850a8f78d
--- /dev/null
+++ b/main/minimime/mm-docs/latex/bug.tex
@@ -0,0 +1,9 @@
+\section{Bug List}\label{bug}
+\label{bug__bug000001}
+ \begin{description}
+\item[Global \doxyref{mm\_\-content\_\-setmaintype}{p.}{group__contenttype_g7bab273d117c6c0cacad20361d8fb1c8} ]The xfree() call could lead to undesirable results. Do we really need it? \end{description}
+
+
+\label{bug__bug000002}
+ \begin{description}
+\item[Global \doxyref{mm\_\-content\_\-setsubtype}{p.}{group__contenttype_g14b0738410d566ad2312405946f22212} ]The xfree() call could lead to undesirable results. Do we really need it? \end{description}
diff --git a/main/minimime/mm-docs/latex/doxygen.sty b/main/minimime/mm-docs/latex/doxygen.sty
new file mode 100644
index 0000000000..37e3982923
--- /dev/null
+++ b/main/minimime/mm-docs/latex/doxygen.sty
@@ -0,0 +1,78 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{doxygen}
+\RequirePackage{calc}
+\RequirePackage{array}
+\pagestyle{fancyplain}
+\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
+\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
+\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
+\lhead[\fancyplain{}{\bfseries\thepage}]
+        {\fancyplain{}{\bfseries\rightmark}}
+\rhead[\fancyplain{}{\bfseries\leftmark}]
+        {\fancyplain{}{\bfseries\thepage}}
+\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Thu Mar 29 17:59:08 2007 for Mini\-MIME by Doxygen }]{}
+\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Thu Mar 29 17:59:08 2007 for Mini\-MIME by Doxygen }}
+\cfoot{}
+\newenvironment{Code}
+{\footnotesize}
+{\normalsize}
+\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})}
+\newenvironment{DocInclude}
+{\footnotesize}
+{\normalsize}
+\newenvironment{VerbInclude}
+{\footnotesize}
+{\normalsize}
+\newenvironment{Image}
+{\begin{figure}[H]}
+{\end{figure}}
+\newenvironment{ImageNoCaption}{}{}
+\newenvironment{CompactList}
+{\begin{list}{}{
+  \setlength{\leftmargin}{0.5cm}
+  \setlength{\itemsep}{0pt}
+  \setlength{\parsep}{0pt}
+  \setlength{\topsep}{0pt}
+  \renewcommand{\makelabel}{\hfill}}}
+{\end{list}}
+\newenvironment{CompactItemize}
+{
+  \begin{itemize}
+  \setlength{\itemsep}{-3pt}
+  \setlength{\parsep}{0pt}
+  \setlength{\topsep}{0pt}
+  \setlength{\partopsep}{0pt}
+}
+{\end{itemize}}
+\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
+\newlength{\tmplength}
+\newenvironment{TabularC}[1]
+{
+\setlength{\tmplength}
+     {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
+      \par\begin{tabular*}{\linewidth}
+             {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
+}
+{\end{tabular*}\par}
+\newcommand{\entrylabel}[1]{
+   {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}}
+\newenvironment{Desc}
+{\begin{list}{}
+  {
+    \settowidth{\labelwidth}{40pt}
+    \setlength{\leftmargin}{\labelwidth}
+    \setlength{\parsep}{0pt}
+    \setlength{\itemsep}{-4pt}
+    \renewcommand{\makelabel}{\entrylabel}
+  }
+}
+{\end{list}}
+\newenvironment{Indent}
+  {\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
+      \item[]\ignorespaces}
+  {\unskip\end{list}}
+\setlength{\parindent}{0cm}
+\setlength{\parskip}{0.2cm}
+\addtocounter{secnumdepth}{1}
+\sloppy
+\usepackage[T1]{fontenc}
diff --git a/main/minimime/mm-docs/latex/files.tex b/main/minimime/mm-docs/latex/files.tex
new file mode 100644
index 0000000000..fd49692dbe
--- /dev/null
+++ b/main/minimime/mm-docs/latex/files.tex
@@ -0,0 +1,21 @@
+\section{Mini\-MIME File List}
+Here is a list of all documented files with brief descriptions:\begin{CompactList}
+\item\contentsline{section}{\textbf{mimeparser.h} }{\pageref{mimeparser_8h}}{}
+\item\contentsline{section}{\textbf{mimeparser.tab.h} }{\pageref{mimeparser_8tab_8h}}{}
+\item\contentsline{section}{\textbf{mm.h} }{\pageref{mm_8h}}{}
+\item\contentsline{section}{{\bf mm\_\-codecs.c} }{\pageref{mm__codecs_8c}}{}
+\item\contentsline{section}{{\bf mm\_\-contenttype.c} }{\pageref{mm__contenttype_8c}}{}
+\item\contentsline{section}{{\bf mm\_\-context.c} }{\pageref{mm__context_8c}}{}
+\item\contentsline{section}{{\bf mm\_\-envelope.c} }{\pageref{mm__envelope_8c}}{}
+\item\contentsline{section}{{\bf mm\_\-error.c} }{\pageref{mm__error_8c}}{}
+\item\contentsline{section}{{\bf mm\_\-header.c} }{\pageref{mm__header_8c}}{}
+\item\contentsline{section}{{\bf mm\_\-internal.h} }{\pageref{mm__internal_8h}}{}
+\item\contentsline{section}{\textbf{mm\_\-mem.h} }{\pageref{mm__mem_8h}}{}
+\item\contentsline{section}{{\bf mm\_\-mimepart.c} }{\pageref{mm__mimepart_8c}}{}
+\item\contentsline{section}{{\bf mm\_\-mimeutil.c} }{\pageref{mm__mimeutil_8c}}{}
+\item\contentsline{section}{{\bf mm\_\-param.c} }{\pageref{mm__param_8c}}{}
+\item\contentsline{section}{{\bf mm\_\-parse.c} }{\pageref{mm__parse_8c}}{}
+\item\contentsline{section}{\textbf{mm\_\-queue.h} }{\pageref{mm__queue_8h}}{}
+\item\contentsline{section}{{\bf mm\_\-util.c} }{\pageref{mm__util_8c}}{}
+\item\contentsline{section}{\textbf{mm\_\-util.h} }{\pageref{mm__util_8h}}{}
+\end{CompactList}
diff --git a/main/minimime/mm-docs/latex/group__codecs.tex b/main/minimime/mm-docs/latex/group__codecs.tex
new file mode 100644
index 0000000000..33c15f6d94
--- /dev/null
+++ b/main/minimime/mm-docs/latex/group__codecs.tex
@@ -0,0 +1,119 @@
+\section{Manipulating Mini\-MIME codecs}
+\label{group__codecs}\index{Manipulating MiniMIME codecs@{Manipulating MiniMIME codecs}}
+\subsection*{Codec manipulation}
+\begin{CompactItemize}
+\item 
+int {\bf mm\_\-codec\_\-hasdecoder} (const char $\ast$encoding)
+\item 
+int {\bf mm\_\-codec\_\-hasencoder} (const char $\ast$encoding)
+\item 
+int {\bf mm\_\-codec\_\-isregistered} (const char $\ast$encoding)
+\item 
+int {\bf mm\_\-codec\_\-register} (const char $\ast$encoding, char $\ast$($\ast$encoder)(char $\ast$data, u\_\-int32\_\-t i), char $\ast$($\ast$decoder)(char $\ast$data))
+\item 
+int {\bf mm\_\-codec\_\-unregister} (const char $\ast$encoding)
+\item 
+int {\bf mm\_\-codec\_\-unregisterall} (void)
+\item 
+void {\bf mm\_\-codec\_\-registerdefaultcodecs} (void)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\index{codecs@{codecs}!mm_codec_hasdecoder@{mm\_\-codec\_\-hasdecoder}}
+\index{mm_codec_hasdecoder@{mm\_\-codec\_\-hasdecoder}!codecs@{codecs}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-codec\_\-hasdecoder (const char $\ast$ {\em encoding})}\label{group__codecs_g6ccb0f7a1d7c870dc3dae04f31d6ccca}
+
+
+Looks up whether a context has an decoder installed for a given encoding
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em encoding}]The encoding specifier to look up \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]1 if a decoder is installed or 0 if not \end{Desc}
+\index{codecs@{codecs}!mm_codec_hasencoder@{mm\_\-codec\_\-hasencoder}}
+\index{mm_codec_hasencoder@{mm\_\-codec\_\-hasencoder}!codecs@{codecs}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-codec\_\-hasencoder (const char $\ast$ {\em encoding})}\label{group__codecs_g50ff257b794ceaec7aedf9ae18bfcc57}
+
+
+Looks up whether a context has an encoder installed for a given encoding
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid MIME context \item[{\em encoding}]The encoding specifier to look up \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]1 if an encoder is installed or 0 if not \end{Desc}
+\index{codecs@{codecs}!mm_codec_isregistered@{mm\_\-codec\_\-isregistered}}
+\index{mm_codec_isregistered@{mm\_\-codec\_\-isregistered}!codecs@{codecs}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-codec\_\-isregistered (const char $\ast$ {\em encoding})}\label{group__codecs_g9e19f6343128fd7e4ec57c3d55049b55}
+
+
+Looks up whether a codec for a given encoding is installed to a context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em encoding}]The encoding specifier to look up \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]1 if a codec was found or 0 if not \end{Desc}
+\index{codecs@{codecs}!mm_codec_register@{mm\_\-codec\_\-register}}
+\index{mm_codec_register@{mm\_\-codec\_\-register}!codecs@{codecs}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-codec\_\-register (const char $\ast$ {\em encoding}, char $\ast$($\ast$)(char $\ast$data, u\_\-int32\_\-t i) {\em encoder}, char $\ast$($\ast$)(char $\ast$data) {\em decoder})}\label{group__codecs_gf97a7311c909888ed9f6f14d6f1bf397}
+
+
+Registers a codec with the Mini\-MIME library
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em encoding}]The encoding specifier for which to register the codec \item[{\em encoder}]The encoder function for this encoding \item[{\em decoder}]The decoder function for this encoding \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]1 if successfull or 0 if not\end{Desc}
+This function registers a codec for a given Mini\-MIME context. The codec may provide an decoder, an encoder or both (but not none). If there is a codec already installed for this encoding, the function will puke. \index{codecs@{codecs}!mm_codec_registerdefaultcodecs@{mm\_\-codec\_\-registerdefaultcodecs}}
+\index{mm_codec_registerdefaultcodecs@{mm\_\-codec\_\-registerdefaultcodecs}!codecs@{codecs}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mm\_\-codec\_\-registerdefaultcodecs (void)}\label{group__codecs_gf39e72460fb85f5ca41f6e270a68aacc}
+
+
+Registers the default codecs to a Mini\-MIME context
+
+This functions registers the codecs for the following encodings to a Mini\-MIME context:
+
+\begin{itemize}
+\item Base64\item (TODO:) Quoted-Printable \end{itemize}
+\index{codecs@{codecs}!mm_codec_unregister@{mm\_\-codec\_\-unregister}}
+\index{mm_codec_unregister@{mm\_\-codec\_\-unregister}!codecs@{codecs}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-codec\_\-unregister (const char $\ast$ {\em encoding})}\label{group__codecs_g0c71696bc70f834386193e3c7a0e2ca4}
+
+
+Unregisters a Mini\-MIME codec
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em encoding}]The encoding specifier which to unregister \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 if unregistered successfully, or -1 if there was no such codec \end{Desc}
+\index{codecs@{codecs}!mm_codec_unregisterall@{mm\_\-codec\_\-unregisterall}}
+\index{mm_codec_unregisterall@{mm\_\-codec\_\-unregisterall}!codecs@{codecs}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-codec\_\-unregisterall (void)}\label{group__codecs_g7c9e6538f84c368be2b56a3c9ba702be}
+
+
+Unregisters all codecs within a context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 if all codecs were unregistered successfully or -1 if an error occured. \end{Desc}
+\begin{Desc}
+\item[Note:]Foobar \end{Desc}
diff --git a/main/minimime/mm-docs/latex/group__contenttype.tex b/main/minimime/mm-docs/latex/group__contenttype.tex
new file mode 100644
index 0000000000..166261a629
--- /dev/null
+++ b/main/minimime/mm-docs/latex/group__contenttype.tex
@@ -0,0 +1,246 @@
+\section{Accessing and manipulating Content-Type objects}
+\label{group__contenttype}\index{Accessing and manipulating Content-Type objects@{Accessing and manipulating Content-Type objects}}
+\subsection*{Functions for manipulating Content-Type objects}
+\begin{CompactItemize}
+\item 
+mm\_\-content $\ast$ {\bf mm\_\-content\_\-new} (void)
+\item 
+void {\bf mm\_\-content\_\-free} (struct mm\_\-content $\ast$ct)
+\item 
+int {\bf mm\_\-content\_\-attachparam} (struct mm\_\-content $\ast$ct, struct mm\_\-param $\ast$param)
+\item 
+char $\ast$ {\bf mm\_\-content\_\-getparambyname} (struct mm\_\-content $\ast$ct, const char $\ast$name)
+\item 
+mm\_\-param $\ast$ \textbf{mm\_\-content\_\-getparamobjbyname} (struct mm\_\-content $\ast$ct, const char $\ast$name)\label{group__contenttype_g1ba63e679d2b49aceb6cfec8a6752581}
+
+\item 
+int {\bf mm\_\-content\_\-setmaintype} (struct mm\_\-content $\ast$ct, char $\ast$value, int copy)
+\item 
+char $\ast$ {\bf mm\_\-content\_\-getmaintype} (struct mm\_\-content $\ast$ct)
+\item 
+char $\ast$ {\bf mm\_\-content\_\-getsubtype} (struct mm\_\-content $\ast$ct)
+\item 
+char $\ast$ \textbf{mm\_\-content\_\-gettype} (struct mm\_\-content $\ast$ct)\label{group__contenttype_ga6d8453eb35bd695c4944e53b7040b65}
+
+\item 
+int {\bf mm\_\-content\_\-setsubtype} (struct mm\_\-content $\ast$ct, char $\ast$value, int copy)
+\item 
+int \textbf{mm\_\-content\_\-settype} (struct mm\_\-content $\ast$ct, const char $\ast$fmt,...)\label{group__contenttype_g878686678ea2ba97aa8edb1206a564d8}
+
+\item 
+int {\bf mm\_\-content\_\-iscomposite} (struct mm\_\-content $\ast$ct)
+\item 
+int {\bf mm\_\-content\_\-isvalidencoding} (const char $\ast$encoding)
+\item 
+int {\bf mm\_\-content\_\-setencoding} (struct mm\_\-content $\ast$ct, const char $\ast$encoding)
+\item 
+int {\bf mm\_\-content\_\-getencoding} (struct mm\_\-content $\ast$ct, const char $\ast$encoding)
+\item 
+char $\ast$ {\bf mm\_\-content\_\-paramstostring} (struct mm\_\-content $\ast$ct)
+\item 
+char $\ast$ {\bf mm\_\-content\_\-tostring} (struct mm\_\-content $\ast$ct)
+\end{CompactItemize}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item 
+int \textbf{mm\_\-encoding\_\-mappings::type}\label{group__contenttype_g6c458a8611981109bf0519b5ae21e12e}
+
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\index{contenttype@{contenttype}!mm_content_attachparam@{mm\_\-content\_\-attachparam}}
+\index{mm_content_attachparam@{mm\_\-content\_\-attachparam}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-content\_\-attachparam (struct mm\_\-content $\ast$ {\em ct}, struct mm\_\-param $\ast$ {\em param})}\label{group__contenttype_g080b7ed798ed497dcd635a6bab86962f}
+
+
+Attaches a parameter to a Content-Type object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]The target Content-Type object \item[{\em param}]The Content-Type parameter which to attach \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success and -1 on failure \end{Desc}
+\index{contenttype@{contenttype}!mm_content_free@{mm\_\-content\_\-free}}
+\index{mm_content_free@{mm\_\-content\_\-free}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mm\_\-content\_\-free (struct mm\_\-content $\ast$ {\em ct})}\label{group__contenttype_g404314481125849bce869ee4b0f647af}
+
+
+Releases all memory associated with an Content-Type object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]A Content-Type object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]Nothing \end{Desc}
+\index{contenttype@{contenttype}!mm_content_getencoding@{mm\_\-content\_\-getencoding}}
+\index{mm_content_getencoding@{mm\_\-content\_\-getencoding}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-content\_\-getencoding (struct mm\_\-content $\ast$ {\em ct}, const char $\ast$ {\em encoding})}\label{group__contenttype_gbff87e581cd04db16e91245e9e9de67d}
+
+
+Gets the numerical ID of a content encoding identifier
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]A valid Content Type object \item[{\em encoding}]A string representing the content encoding identifier \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The numerical ID of the content encoding \end{Desc}
+\index{contenttype@{contenttype}!mm_content_getmaintype@{mm\_\-content\_\-getmaintype}}
+\index{mm_content_getmaintype@{mm\_\-content\_\-getmaintype}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-content\_\-getmaintype (struct mm\_\-content $\ast$ {\em ct})}\label{group__contenttype_gb213081017abf6bc7e601c6bf4214924}
+
+
+Retrieves the main MIME type stored in a Content-Type object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]A valid Content-Type object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the string representing the main type \end{Desc}
+\index{contenttype@{contenttype}!mm_content_getparambyname@{mm\_\-content\_\-getparambyname}}
+\index{mm_content_getparambyname@{mm\_\-content\_\-getparambyname}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-content\_\-getparambyname (struct mm\_\-content $\ast$ {\em ct}, const char $\ast$ {\em name})}\label{group__contenttype_g451441ee557ab5ef29477f3dc8330bf6}
+
+
+Gets a parameter value from a Content-Type object.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]the Content-Type object \item[{\em name}]the name of the parameter to retrieve \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The value of the parameter on success or a NULL pointer on failure \end{Desc}
+\index{contenttype@{contenttype}!mm_content_getsubtype@{mm\_\-content\_\-getsubtype}}
+\index{mm_content_getsubtype@{mm\_\-content\_\-getsubtype}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-content\_\-getsubtype (struct mm\_\-content $\ast$ {\em ct})}\label{group__contenttype_g97f77ef40c14cd0fb397bad358ee5d49}
+
+
+Retrieves the sub MIME type stored in a Content-Type object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]A valid Content-Type object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the string holding the current sub MIME type \end{Desc}
+\index{contenttype@{contenttype}!mm_content_iscomposite@{mm\_\-content\_\-iscomposite}}
+\index{mm_content_iscomposite@{mm\_\-content\_\-iscomposite}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-content\_\-iscomposite (struct mm\_\-content $\ast$ {\em ct})}\label{group__contenttype_ga7fa479f27e73dea57257421d8fc9fc5}
+
+
+Checks whether the Content-Type represents a composite message or not
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]A valid Content-Type object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]1 if the Content-Type object represents a composite message or 0 if not. \end{Desc}
+\index{contenttype@{contenttype}!mm_content_isvalidencoding@{mm\_\-content\_\-isvalidencoding}}
+\index{mm_content_isvalidencoding@{mm\_\-content\_\-isvalidencoding}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-content\_\-isvalidencoding (const char $\ast$ {\em encoding})}\label{group__contenttype_gb724b5979182fa272fe4fd1b72b395d5}
+
+
+Verifies whether a string represents a valid encoding or not.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em encoding}]The string to verify \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]1 if the encoding string is valid or 0 if not \end{Desc}
+\index{contenttype@{contenttype}!mm_content_new@{mm\_\-content\_\-new}}
+\index{mm_content_new@{mm\_\-content\_\-new}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-content$\ast$ mm\_\-content\_\-new (void)}\label{group__contenttype_g3880ac74a20b4a9f610a4159568e1801}
+
+
+Creates a new object to hold a Content-Type representation. The allocated memory must later be freed using \doxyref{mm\_\-content\_\-free()}{p.}{group__contenttype_g404314481125849bce869ee4b0f647af}
+
+\begin{Desc}
+\item[Returns:]An object representing a MIME Content-Type \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-content\_\-free}{p.}{group__contenttype_g404314481125849bce869ee4b0f647af} \end{Desc}
+\index{contenttype@{contenttype}!mm_content_paramstostring@{mm\_\-content\_\-paramstostring}}
+\index{mm_content_paramstostring@{mm\_\-content\_\-paramstostring}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-content\_\-paramstostring (struct mm\_\-content $\ast$ {\em ct})}\label{group__contenttype_g792e7d33fbb30e0123408bcef9d3204c}
+
+
+Constructs a MIME conform string of Content-Type parameters.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]A valid Content Type object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to a string representing the Content-Type parameters in MIME terminology, or NULL if either the Content-Type object is invalid, has no parameters or no memory could be allocated.\end{Desc}
+This function constructs a MIME conform string including all the parameters associated with the given Content-Type object. It should NOT be used if you need an opaque copy of the current MIME part (e.g. for PGP purposes). \index{contenttype@{contenttype}!mm_content_setencoding@{mm\_\-content\_\-setencoding}}
+\index{mm_content_setencoding@{mm\_\-content\_\-setencoding}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-content\_\-setencoding (struct mm\_\-content $\ast$ {\em ct}, const char $\ast$ {\em encoding})}\label{group__contenttype_gea945e48ac5cca846715543634b9afe4}
+
+
+Set the encoding of a MIME entitity according to a mapping table
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]A valid content type object \item[{\em encoding}]A string representing the content encoding \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 if successfull or -1 if not (i.e. unknown content encoding) \end{Desc}
+\index{contenttype@{contenttype}!mm_content_setmaintype@{mm\_\-content\_\-setmaintype}}
+\index{mm_content_setmaintype@{mm\_\-content\_\-setmaintype}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-content\_\-setmaintype (struct mm\_\-content $\ast$ {\em ct}, char $\ast$ {\em value}, int {\em copy})}\label{group__contenttype_g7bab273d117c6c0cacad20361d8fb1c8}
+
+
+Sets the MIME main type for a MIME Content-Type object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]The MIME Content-Type object \item[{\em value}]The value which to set the main type to \item[{\em copy}]Whether to make a copy of the value (original value must be freed afterwards to prevent memory leaks). \end{description}
+\end{Desc}
+
+
+\begin{Desc}
+\item[{\bf Bug}]The xfree() call could lead to undesirable results. Do we really need it? \end{Desc}
+\index{contenttype@{contenttype}!mm_content_setsubtype@{mm\_\-content\_\-setsubtype}}
+\index{mm_content_setsubtype@{mm\_\-content\_\-setsubtype}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-content\_\-setsubtype (struct mm\_\-content $\ast$ {\em ct}, char $\ast$ {\em value}, int {\em copy})}\label{group__contenttype_g14b0738410d566ad2312405946f22212}
+
+
+Sets the MIME sub type for a MIME Content-Type object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]The MIME Content-Type object \item[{\em value}]The value which to set the sub type to \item[{\em copy}]Whether to make a copy of the value (original value must be freed afterwards to prevent memory leaks). \end{description}
+\end{Desc}
+
+
+\begin{Desc}
+\item[{\bf Bug}]The xfree() call could lead to undesirable results. Do we really need it? \end{Desc}
+\index{contenttype@{contenttype}!mm_content_tostring@{mm\_\-content\_\-tostring}}
+\index{mm_content_tostring@{mm\_\-content\_\-tostring}!contenttype@{contenttype}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-content\_\-tostring (struct mm\_\-content $\ast$ {\em ct})}\label{group__contenttype_g18a99c95e35a76f13a77a83c4231e738}
+
+
+Creates a Content-Type header according to the object given
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ct}]A valid Content-Type object \end{description}
+\end{Desc}
diff --git a/main/minimime/mm-docs/latex/group__context.tex b/main/minimime/mm-docs/latex/group__context.tex
new file mode 100644
index 0000000000..aa28a7ba53
--- /dev/null
+++ b/main/minimime/mm-docs/latex/group__context.tex
@@ -0,0 +1,214 @@
+\section{Accessing and manipulating MIME contexts}
+\label{group__context}\index{Accessing and manipulating MIME contexts@{Accessing and manipulating MIME contexts}}
+\subsection*{Manipulating Mini\-MIME contexts}
+\begin{CompactItemize}
+\item 
+MM\_\-CTX $\ast$ {\bf mm\_\-context\_\-new} (void)
+\item 
+void {\bf mm\_\-context\_\-free} (MM\_\-CTX $\ast$ctx)
+\item 
+int {\bf mm\_\-context\_\-attachpart} (MM\_\-CTX $\ast$ctx, struct mm\_\-mimepart $\ast$part)
+\item 
+int {\bf mm\_\-context\_\-attachpart\_\-after} (MM\_\-CTX $\ast$ctx, struct mm\_\-mimepart $\ast$part, int pos)
+\item 
+int {\bf mm\_\-context\_\-deletepart} (MM\_\-CTX $\ast$ctx, int which, int freemem)
+\item 
+int {\bf mm\_\-context\_\-countparts} (MM\_\-CTX $\ast$ctx)
+\item 
+mm\_\-mimepart $\ast$ {\bf mm\_\-context\_\-getpart} (MM\_\-CTX $\ast$ctx, int which)
+\item 
+int {\bf mm\_\-context\_\-iscomposite} (MM\_\-CTX $\ast$ctx)
+\item 
+int {\bf mm\_\-context\_\-haswarnings} (MM\_\-CTX $\ast$ctx)
+\item 
+int {\bf mm\_\-context\_\-generateboundary} (MM\_\-CTX $\ast$ctx)
+\item 
+int {\bf mm\_\-context\_\-setpreamble} (MM\_\-CTX $\ast$ctx, char $\ast$preamble)
+\item 
+char $\ast$ \textbf{mm\_\-context\_\-getpreamble} (MM\_\-CTX $\ast$ctx)\label{group__context_g1ebbdd51106ccdee77ca421f9692bde7}
+
+\item 
+int {\bf mm\_\-context\_\-flatten} (MM\_\-CTX $\ast$ctx, char $\ast$$\ast$flat, size\_\-t $\ast$length, int flags)
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Each message in Mini\-MIME is represented by a so called ``context''. A context holds all necessary information given about a MIME message, such as the envelope, all MIME parts etc. 
+
+\subsection{Function Documentation}
+\index{context@{context}!mm_context_attachpart@{mm\_\-context\_\-attachpart}}
+\index{mm_context_attachpart@{mm\_\-context\_\-attachpart}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-context\_\-attachpart (MM\_\-CTX $\ast$ {\em ctx}, struct mm\_\-mimepart $\ast$ {\em part})}\label{group__context_gec3ca486a61b392ff68774242086768e}
+
+
+Attaches a MIME part object to a Mini\-MIME context.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]the Mini\-MIME context \item[{\em part}]the MIME part object to attach \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on failure. Sets mm\_\-errno on failure.\end{Desc}
+This function attaches a MIME part to a context, appending it to the end of the message.
+
+The MIME part should be initialized before attaching it using \doxyref{mm\_\-mimepart\_\-new()}{p.}{group__mimepart_g417e5dd361e30cddb91e1d9a5e30b223}. \index{context@{context}!mm_context_attachpart_after@{mm\_\-context\_\-attachpart\_\-after}}
+\index{mm_context_attachpart_after@{mm\_\-context\_\-attachpart\_\-after}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-context\_\-attachpart\_\-after (MM\_\-CTX $\ast$ {\em ctx}, struct mm\_\-mimepart $\ast$ {\em part}, int {\em pos})}\label{group__context_g73a3dd187053aeabca4836dc28a6c468}
+
+
+Attaches a MIME part object to a Mini\-MIME context at a given position
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context \item[{\em part}]The MIME part object to attach \item[{\em pos}]After which part to attach the object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 if the given position is invalid \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-context\_\-attachpart}{p.}{group__context_gec3ca486a61b392ff68774242086768e}\end{Desc}
+This function attaches a MIME part object after a given position in the specified context. If the position is invalid (out of range), the part will not get attached to the message and the function returns -1. If the index was in range, the MIME part will get attached after the MIME part at the given position, moving any possible following MIME parts one down the hierarchy. \index{context@{context}!mm_context_countparts@{mm\_\-context\_\-countparts}}
+\index{mm_context_countparts@{mm\_\-context\_\-countparts}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-context\_\-countparts (MM\_\-CTX $\ast$ {\em ctx})}\label{group__context_gf5bb032ad1c481d31d7b1b0710939712}
+
+
+Counts the number of attached MIME part objects in a given Mini\-MIME context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]The Mini\-MIME context \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The number of attached MIME part objects \end{Desc}
+\index{context@{context}!mm_context_deletepart@{mm\_\-context\_\-deletepart}}
+\index{mm_context_deletepart@{mm\_\-context\_\-deletepart}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-context\_\-deletepart (MM\_\-CTX $\ast$ {\em ctx}, int {\em which}, int {\em freemem})}\label{group__context_g53d20c33a401539ef1ffa45f3dddb983}
+
+
+Deletes a MIME part object from a Mini\-MIME context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context object \item[{\em which}]The number of the MIME part object to delete \item[{\em freemem}]Whether to free the memory associated with the MIME part object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on failure. Sets mm\_\-errno on failure.\end{Desc}
+This function deletes a MIME part from a given context. The MIME part to delete is specified as numerical index by the parameter ``which''. If the parameter ``freemem'' is set to anything greater than 0, the memory that is associated will be free'd by using \doxyref{mm\_\-mimepart\_\-free()}{p.}{group__mimepart_gbf47790a0bb96b22bc5e236bc40cb32e}, otherwise the memory is left untouched (if you still have a pointer to the MIME part around). \index{context@{context}!mm_context_flatten@{mm\_\-context\_\-flatten}}
+\index{mm_context_flatten@{mm\_\-context\_\-flatten}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-context\_\-flatten (MM\_\-CTX $\ast$ {\em ctx}, char $\ast$$\ast$ {\em flat}, size\_\-t $\ast$ {\em length}, int {\em flags})}\label{group__context_g5288136ab923605f6508c09359ae5772}
+
+
+Creates an ASCII message of the specified context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context object \item[{\em flat}]Where to store the message \item[{\em flags}]Flags that affect the flattening process\end{description}
+\end{Desc}
+This function ``flattens'' a Mini\-MIME context, that is, it creates an ASCII represantation of the message the context contains. The flags can be a bitwise combination of the following constants:
+
+\begin{itemize}
+\item MM\_\-FLATTEN\_\-OPAQUE : use opaque MIME parts when flattening\item MM\_\-FLATTEN\_\-SKIPENVELOPE : do not flatten the envelope part\end{itemize}
+
+
+Great care is taken to not produce invalid MIME output. \index{context@{context}!mm_context_free@{mm\_\-context\_\-free}}
+\index{mm_context_free@{mm\_\-context\_\-free}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mm\_\-context\_\-free (MM\_\-CTX $\ast$ {\em ctx})}\label{group__context_g76392d5269e9ef340c2f5f8336f7193b}
+
+
+Releases a Mini\-MIME context object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context \end{description}
+\end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-context\_\-new}{p.}{group__context_g919fd41f85534d9c87c256857faa2610}\end{Desc}
+This function releases all memory associated with Mini\-MIME context object that was created using \doxyref{mm\_\-context\_\-new()}{p.}{group__context_g919fd41f85534d9c87c256857faa2610}. It will also release all memory used for the MIME parts attached, and their specific properties (such as Content-Type information, headers, and the body data). \index{context@{context}!mm_context_generateboundary@{mm\_\-context\_\-generateboundary}}
+\index{mm_context_generateboundary@{mm\_\-context\_\-generateboundary}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-context\_\-generateboundary (MM\_\-CTX $\ast$ {\em ctx})}\label{group__context_g9710e485f51167099d90f0d659979068}
+
+
+Generates a generic boundary string for a given context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on failure\end{Desc}
+This function generates a default boundary string for the given context. If there is already a boundary for the context, the memory will be free()'d. \index{context@{context}!mm_context_getpart@{mm\_\-context\_\-getpart}}
+\index{mm_context_getpart@{mm\_\-context\_\-getpart}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-mimepart$\ast$ mm\_\-context\_\-getpart (MM\_\-CTX $\ast$ {\em ctx}, int {\em which})}\label{group__context_g57fea229675f3e56a77eb40bb8193ee3}
+
+
+Gets a specified MIME part object from a Mime\-MIME context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]The Mini\-MIME context \item[{\em which}]The number of the MIME part object to retrieve \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The requested MIME part object on success or a NULL pointer if there is no such part. \end{Desc}
+\index{context@{context}!mm_context_haswarnings@{mm\_\-context\_\-haswarnings}}
+\index{mm_context_haswarnings@{mm\_\-context\_\-haswarnings}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-context\_\-haswarnings (MM\_\-CTX $\ast$ {\em ctx})}\label{group__context_g8733dee7d83d3205349a7ee4ee5b2750}
+
+
+Checks whether there are any warnings associated with a given context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]1 if there are warnings associated with the context, otherwise 0 \end{Desc}
+\index{context@{context}!mm_context_iscomposite@{mm\_\-context\_\-iscomposite}}
+\index{mm_context_iscomposite@{mm\_\-context\_\-iscomposite}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-context\_\-iscomposite (MM\_\-CTX $\ast$ {\em ctx})}\label{group__context_g1e73cadba4acd3ef9dd148dd0c2c3e70}
+
+
+Checks whether a given context represents a composite (multipart) message
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]1 if the context is a composite message or 0 if it's flat \end{Desc}
+\index{context@{context}!mm_context_new@{mm\_\-context\_\-new}}
+\index{mm_context_new@{mm\_\-context\_\-new}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}MM\_\-CTX$\ast$ mm\_\-context\_\-new (void)}\label{group__context_g919fd41f85534d9c87c256857faa2610}
+
+
+Creates a new Mini\-MIME context object.
+
+\begin{Desc}
+\item[Returns:]a new Mini\-MIME context object \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-context\_\-free}{p.}{group__context_g76392d5269e9ef340c2f5f8336f7193b}\end{Desc}
+This function creates a new Mini\-MIME context, which will hold a message. The memory needed is allocated dynamically and should later be free'd using \doxyref{mm\_\-context\_\-free()}{p.}{group__context_g76392d5269e9ef340c2f5f8336f7193b}.
+
+Before a context can be created, the Mini\-MIME library needs to be initialized properly using mm\_\-library\_\-init(). \index{context@{context}!mm_context_setpreamble@{mm\_\-context\_\-setpreamble}}
+\index{mm_context_setpreamble@{mm\_\-context\_\-setpreamble}!context@{context}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-context\_\-setpreamble (MM\_\-CTX $\ast$ {\em ctx}, char $\ast$ {\em preamble})}\label{group__context_gc0e7cc297516618d4773830a1988fc8d}
+
+
+Sets a preamble for the given Mini\-MIME context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context \item[{\em preamble}]The preamble to set \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on failure\end{Desc}
+This function sets the MIME preamble (the text between the end of envelope headers and the beginning of the first MIME part) for a given context object. If preamble is a NULL-pointer then the preamble will be deleted, and the currently associated memory will be free automagically. 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/group__envelope.tex b/main/minimime/mm-docs/latex/group__envelope.tex
new file mode 100644
index 0000000000..613c879487
--- /dev/null
+++ b/main/minimime/mm-docs/latex/group__envelope.tex
@@ -0,0 +1,65 @@
+\section{Accessing and manipulating a message's envelope}
+\label{group__envelope}\index{Accessing and manipulating a message's envelope@{Accessing and manipulating a message's envelope}}
+\subsection*{Accessing and manipulating a message's envelope}
+\begin{CompactItemize}
+\item 
+int {\bf mm\_\-envelope\_\-getheaders} (MM\_\-CTX $\ast$ctx, char $\ast$$\ast$result, size\_\-t $\ast$length)
+\item 
+int {\bf mm\_\-envelope\_\-setheader} (MM\_\-CTX $\ast$ctx, const char $\ast$name, const char $\ast$fmt,...)
+\item 
+int {\bf mm\_\-envelope\_\-getrecipients} (MM\_\-CTX $\ast$ctx, char $\ast$$\ast$result, size\_\-t $\ast$length)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\index{envelope@{envelope}!mm_envelope_getheaders@{mm\_\-envelope\_\-getheaders}}
+\index{mm_envelope_getheaders@{mm\_\-envelope\_\-getheaders}!envelope@{envelope}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-envelope\_\-getheaders (MM\_\-CTX $\ast$ {\em ctx}, char $\ast$$\ast$ {\em result}, size\_\-t $\ast$ {\em length})}\label{group__envelope_g38f1164142cedfc3253b068a81f85563}
+
+
+Gets an ASCII representation of all envelope headers
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context \item[{\em result}]Where to store the resulting ASCII headers \item[{\em length}]Where to store the length of the result \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on failure. \end{Desc}
+\begin{Desc}
+\item[Note:]Sets mm\_\-errno on failure\end{Desc}
+This is mainly a convinience function. It constructs an ASCII representation from all of the message's envelope headers and stores the result in headers. Memory is allocated dynamically, and the total length of the result is stored in length. This function takes care that the output is MIME conform, and folds long lines according to the MIME standard at position 78 of the string. It also nicely formats all MIME related header fields, such as the Content-Type header.
+
+Since the memory needed to store the result is allocated dynamically, one should take care of freeing it again when it's not needed anymore. If an error occurs, $\ast$result will be set to NULL, $\ast$length will be set to zero and mm\_\-errno will be set to a reasonable value. \index{envelope@{envelope}!mm_envelope_getrecipients@{mm\_\-envelope\_\-getrecipients}}
+\index{mm_envelope_getrecipients@{mm\_\-envelope\_\-getrecipients}!envelope@{envelope}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-envelope\_\-getrecipients (MM\_\-CTX $\ast$ {\em ctx}, char $\ast$$\ast$ {\em result}, size\_\-t $\ast$ {\em length})}\label{group__envelope_ge63da17c56867ca2406a4eaf73230baf}
+
+
+Gets the list of recipients for a MIME message
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context \item[{\em result}]Where to store the result \item[{\em length}]Where to store the length of the result \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on error \end{Desc}
+\begin{Desc}
+\item[Note:]Sets mm\_\-errno on error\end{Desc}
+This functions gets the list of recipients for a given MIME message. It does so by concatenating the \char`\"{}From\char`\"{} and \char`\"{}Cc\char`\"{} header fields, and storing the results in recipients. The memory needed to store the result is allocated dynamically, and the total length of the result is stored in length.
+
+One should take care to free() the result once it's not needed anymore. \index{envelope@{envelope}!mm_envelope_setheader@{mm\_\-envelope\_\-setheader}}
+\index{mm_envelope_setheader@{mm\_\-envelope\_\-setheader}!envelope@{envelope}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-envelope\_\-setheader (MM\_\-CTX $\ast$ {\em ctx}, const char $\ast$ {\em name}, const char $\ast$ {\em fmt},  {\em ...})}\label{group__envelope_gb2c43c1645e42ae0860c902ce1dda788}
+
+
+Sets a header field in the envelope
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context \item[{\em name}]The name of the header field to set \item[{\em fmt}]A format string specifying the value of the header field \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on failure\end{Desc}
+This function generates a new MIME header and attaches it to the first MIME part (the envelope) found in the given context. If no part is attached already, the function will return an error. The function will store a copy of ``name'' as the header's name field, and dynamically allocate the memory needed to build the format string. 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/group__error.tex b/main/minimime/mm-docs/latex/group__error.tex
new file mode 100644
index 0000000000..c9c49034e4
--- /dev/null
+++ b/main/minimime/mm-docs/latex/group__error.tex
@@ -0,0 +1,43 @@
+\section{Mini\-MIME error functions}
+\label{group__error}\index{MiniMIME error functions@{MiniMIME error functions}}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item 
+void {\bf mm\_\-error\_\-init} (void)
+\item 
+void {\bf mm\_\-error\_\-setmsg} (const char $\ast$fmt,...)
+\item 
+char $\ast$ {\bf mm\_\-error\_\-string} (void)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\index{error@{error}!mm_error_init@{mm\_\-error\_\-init}}
+\index{mm_error_init@{mm\_\-error\_\-init}!error@{error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mm\_\-error\_\-init (void)}\label{group__error_g69de7c9bee1d535593a55807590de543}
+
+
+Initializes the global error object
+
+This function initializes the global error object mm\_\-error. This must be done when the library is initialized, and is automatically called from mm\_\-init\_\-library(). \index{error@{error}!mm_error_setmsg@{mm\_\-error\_\-setmsg}}
+\index{mm_error_setmsg@{mm\_\-error\_\-setmsg}!error@{error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mm\_\-error\_\-setmsg (const char $\ast$ {\em fmt},  {\em ...})}\label{group__error_g92006c97728639d8f32f5bc4c6e2a47f}
+
+
+Sets a descriptive error message
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em fmt}]The error message as format string\end{description}
+\end{Desc}
+This function is called from the various Mini\-MIME modules in case an error occured. Should never be called by the user. \index{error@{error}!mm_error_string@{mm\_\-error\_\-string}}
+\index{mm_error_string@{mm\_\-error\_\-string}!error@{error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-error\_\-string (void)}\label{group__error_g8654857a3ac349b87d798902912371a3}
+
+
+Retrieves the current error message
+
+\begin{Desc}
+\item[Returns:]The currently set error message\end{Desc}
+This function can be used to retrieve a descriptive error message for the current error, much like strerror() function of libc. When this function is called without an error being set, it returns the string \char`\"{}No error\char`\"{}. The string returned does not need to be freed, since it is not dynamically allocated by the library. 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/group__mimepart.tex b/main/minimime/mm-docs/latex/group__mimepart.tex
new file mode 100644
index 0000000000..e9f9742d96
--- /dev/null
+++ b/main/minimime/mm-docs/latex/group__mimepart.tex
@@ -0,0 +1,333 @@
+\section{Accessing and manipulating MIME parts}
+\label{group__mimepart}\index{Accessing and manipulating MIME parts@{Accessing and manipulating MIME parts}}
+\subsection*{Creating and destroying MIME parts}
+\begin{CompactItemize}
+\item 
+mm\_\-mimepart $\ast$ {\bf mm\_\-mimepart\_\-new} (void)
+\item 
+mm\_\-mimepart $\ast$ {\bf mm\_\-mimepart\_\-fromfile} (const char $\ast$filename)
+\item 
+void {\bf mm\_\-mimepart\_\-free} (struct mm\_\-mimepart $\ast$part)
+\end{CompactItemize}
+\subsection*{Accessing the MIME part's mail header}
+\begin{CompactItemize}
+\item 
+int {\bf mm\_\-mimepart\_\-attachheader} (struct mm\_\-mimepart $\ast$part, struct mm\_\-mimeheader $\ast$header)
+\item 
+int {\bf mm\_\-mimepart\_\-countheaders} (struct mm\_\-mimepart $\ast$part)
+\item 
+int {\bf mm\_\-mimepart\_\-countheaderbyname} (struct mm\_\-mimepart $\ast$part, const char $\ast$name)
+\item 
+mm\_\-mimeheader $\ast$ {\bf mm\_\-mimepart\_\-getheaderbyname} (struct mm\_\-mimepart $\ast$part, const char $\ast$name, int idx)
+\item 
+const char $\ast$ {\bf mm\_\-mimepart\_\-getheadervalue} (struct mm\_\-mimepart $\ast$part, const char $\ast$name, int idx)
+\item 
+int {\bf mm\_\-mimepart\_\-headers\_\-start} (struct mm\_\-mimepart $\ast$part, struct mm\_\-mimeheader $\ast$$\ast$id)
+\item 
+mm\_\-mimeheader $\ast$ {\bf mm\_\-mimepart\_\-headers\_\-next} (struct mm\_\-mimepart $\ast$part, struct mm\_\-mimeheader $\ast$$\ast$id)
+\end{CompactItemize}
+\subsection*{Accessing and manipulating the MIME part's body}
+\begin{CompactItemize}
+\item 
+char $\ast$ {\bf mm\_\-mimepart\_\-getbody} (struct mm\_\-mimepart $\ast$part, int opaque)
+\item 
+void {\bf mm\_\-mimepart\_\-setbody} (struct mm\_\-mimepart $\ast$part, const char $\ast$data, int opaque)
+\item 
+size\_\-t {\bf mm\_\-mimepart\_\-getlength} (struct mm\_\-mimepart $\ast$part)
+\item 
+char $\ast$ {\bf mm\_\-mimepart\_\-decode} (struct mm\_\-mimepart $\ast$part)
+\item 
+int {\bf mm\_\-mimepart\_\-flatten} (struct mm\_\-mimepart $\ast$part, char $\ast$$\ast$result, size\_\-t $\ast$length, int opaque)
+\item 
+int {\bf mm\_\-mimepart\_\-setdefaultcontenttype} (struct mm\_\-mimepart $\ast$part, int composite)
+\end{CompactItemize}
+\subsection*{Accessing the MIME part's Content-Type information}
+\begin{CompactItemize}
+\item 
+void {\bf mm\_\-mimepart\_\-attachcontenttype} (struct mm\_\-mimepart $\ast$part, struct mm\_\-content $\ast$ct)
+\item 
+mm\_\-content $\ast$ {\bf mm\_\-mimepart\_\-gettype} (struct mm\_\-mimepart $\ast$part)
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+MIME parts, also called entities, represent the structure of a MIME message. ``Normal'' internet messages have only a single part, and are called ``flat'' messages. Multipart messages have more then one part, and each MIME part can have it's own subset of headers.
+
+Provided here are functions to easily access all informations from a MIME part, including their specific headers and bodies. 
+
+\subsection{Function Documentation}
+\index{mimepart@{mimepart}!mm_mimepart_attachcontenttype@{mm\_\-mimepart\_\-attachcontenttype}}
+\index{mm_mimepart_attachcontenttype@{mm\_\-mimepart\_\-attachcontenttype}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mm\_\-mimepart\_\-attachcontenttype (struct mm\_\-mimepart $\ast$ {\em part}, struct mm\_\-content $\ast$ {\em ct})}\label{group__mimepart_g01822bc93b4741af75b5379384354e37}
+
+
+Attaches a context type object to a MIME part
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em ct}]The content type object to attach \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]Nothing\end{Desc}
+This function attaches a Content-Type object to a MIME part. It does not care whether the Content-Type suites the actual content in the MIME part, so the programmer should take care of that. \index{mimepart@{mimepart}!mm_mimepart_attachheader@{mm\_\-mimepart\_\-attachheader}}
+\index{mm_mimepart_attachheader@{mm\_\-mimepart\_\-attachheader}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-mimepart\_\-attachheader (struct mm\_\-mimepart $\ast$ {\em part}, struct mm\_\-mimeheader $\ast$ {\em header})}\label{group__mimepart_g46a674ff6b9873c0c45fa4eb5d94fd62}
+
+
+Attaches a mm\_\-mimeheader object to a MIME part
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em header}]A valid MIME header object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 if successfull or -1 if the header could not be attached \end{Desc}
+\index{mimepart@{mimepart}!mm_mimepart_countheaderbyname@{mm\_\-mimepart\_\-countheaderbyname}}
+\index{mm_mimepart_countheaderbyname@{mm\_\-mimepart\_\-countheaderbyname}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-mimepart\_\-countheaderbyname (struct mm\_\-mimepart $\ast$ {\em part}, const char $\ast$ {\em name})}\label{group__mimepart_gf89da502ac54306994bdb452448a8026}
+
+
+Retrieves the number of MIME headers with a given name in a MIME part
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em name}]The name of the MIME header which to count for \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The number of MIME headers within the MIME part \end{Desc}
+\index{mimepart@{mimepart}!mm_mimepart_countheaders@{mm\_\-mimepart\_\-countheaders}}
+\index{mm_mimepart_countheaders@{mm\_\-mimepart\_\-countheaders}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-mimepart\_\-countheaders (struct mm\_\-mimepart $\ast$ {\em part})}\label{group__mimepart_g44c78abfb0535312bcb427a2cd220026}
+
+
+Retrieves the number of MIME headers available in a MIME part
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The number of MIME headers within the MIME part \end{Desc}
+\index{mimepart@{mimepart}!mm_mimepart_decode@{mm\_\-mimepart\_\-decode}}
+\index{mm_mimepart_decode@{mm\_\-mimepart\_\-decode}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-mimepart\_\-decode (struct mm\_\-mimepart $\ast$ {\em part})}\label{group__mimepart_g4551bf4460e5d165bbcd9f32d4f625de}
+
+
+Decodes a MIME part according to it's encoding using Mini\-MIME codecs
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em A}]valid MIME part object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 if the MIME part could be successfully decoded or -1 if not \end{Desc}
+\begin{Desc}
+\item[Note:]Sets mm\_\-errno on error\end{Desc}
+This function decodes the body of a MIME part with a registered decoder according to it's Content-Transfer-Encoding header field. \index{mimepart@{mimepart}!mm_mimepart_flatten@{mm\_\-mimepart\_\-flatten}}
+\index{mm_mimepart_flatten@{mm\_\-mimepart\_\-flatten}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-mimepart\_\-flatten (struct mm\_\-mimepart $\ast$ {\em part}, char $\ast$$\ast$ {\em result}, size\_\-t $\ast$ {\em length}, int {\em opaque})}\label{group__mimepart_gf19d3ace5ae174b3eaa35f9ddbe6e216}
+
+
+Creates an ASCII representation of the given MIME part
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em result}]Where to store the result \item[{\em length}]Where to store the length of the result \item[{\em opaque}]Whether to use the opaque MIME part  0 on success or -1 on error. \end{description}
+\end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-context\_\-flatten}{p.}{group__context_g5288136ab923605f6508c09359ae5772}\end{Desc}
+This function creates an ASCII representation of a given MIME part. It will dynamically allocate the memory needed and stores the result in the memory region pointed to by result. The length of the result will be stored in length. If opaque is set to 1, mm\_\-mimepart\_\-flatten will store an opaque version of the MIME part in result, which means no headers will be created or sanitized. This is particulary useful if the part is digitally signed by e.g. PGP, and the signature spans the header fields of the part in question. \index{mimepart@{mimepart}!mm_mimepart_free@{mm\_\-mimepart\_\-free}}
+\index{mm_mimepart_free@{mm\_\-mimepart\_\-free}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mm\_\-mimepart\_\-free (struct mm\_\-mimepart $\ast$ {\em part})}\label{group__mimepart_gbf47790a0bb96b22bc5e236bc40cb32e}
+
+
+Frees all memory allocated by a mm\_\-mimepart object.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A pointer to an allocated mm\_\-mimepart object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-mimepart\_\-new}{p.}{group__mimepart_g417e5dd361e30cddb91e1d9a5e30b223} \end{Desc}
+\index{mimepart@{mimepart}!mm_mimepart_fromfile@{mm\_\-mimepart\_\-fromfile}}
+\index{mm_mimepart_fromfile@{mm\_\-mimepart\_\-fromfile}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-mimepart$\ast$ mm\_\-mimepart\_\-fromfile (const char $\ast$ {\em filename})}\label{group__mimepart_ged8112012a337371ae8093adb1ab6d27}
+
+
+Creates a MIME part from a file
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em filename}]The name of the file to create the MIME part from \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to a new MIME part object\end{Desc}
+This function creates a new MIME part object from a file. The object should be freed using \doxyref{mm\_\-mimepart\_\-free()}{p.}{group__mimepart_gbf47790a0bb96b22bc5e236bc40cb32e} later on. This function does NOT set the Content-Type and neither does any encoding work. \index{mimepart@{mimepart}!mm_mimepart_getbody@{mm\_\-mimepart\_\-getbody}}
+\index{mm_mimepart_getbody@{mm\_\-mimepart\_\-getbody}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-mimepart\_\-getbody (struct mm\_\-mimepart $\ast$ {\em part}, int {\em opaque})}\label{group__mimepart_g52dc9f27a2801e4f6abb1effd2ed838d}
+
+
+Gets the pointer to the MIME part's body data
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em opaque}]Whether to get the opaque part or not \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the MIME part's body \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-mimepart\_\-setbody}{p.}{group__mimepart_gd1def098c00edc546b03e98e9ff8b27a} \end{Desc}
+\index{mimepart@{mimepart}!mm_mimepart_getheaderbyname@{mm\_\-mimepart\_\-getheaderbyname}}
+\index{mm_mimepart_getheaderbyname@{mm\_\-mimepart\_\-getheaderbyname}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-mimeheader$\ast$ mm\_\-mimepart\_\-getheaderbyname (struct mm\_\-mimepart $\ast$ {\em part}, const char $\ast$ {\em name}, int {\em idx})}\label{group__mimepart_ga3ca298eaa82f4ef3ea731511ac84e53}
+
+
+Get a MIME header object from a MIME part
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em name}]The name of the MIME header which to retrieve \item[{\em idx}]Which header field to get (in case of multiple headers of the same name). \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the requested MIME header on success, or NULL if there either isn't a header with the requested name or idx is out of range. \end{Desc}
+\index{mimepart@{mimepart}!mm_mimepart_getheadervalue@{mm\_\-mimepart\_\-getheadervalue}}
+\index{mm_mimepart_getheadervalue@{mm\_\-mimepart\_\-getheadervalue}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ mm\_\-mimepart\_\-getheadervalue (struct mm\_\-mimepart $\ast$ {\em part}, const char $\ast$ {\em name}, int {\em idx})}\label{group__mimepart_g779f11f7a6a54f83763b5ef6ff87e48f}
+
+
+Gets the value of a MIME header object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em name}]The name of the header field to get the value from \item[{\em idx}]The index of the header field to get, in case there are multiple headers with the same name. \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the requested value on success, or NULL if there either isn't a header with the requested name or idx is out of range. \end{Desc}
+\index{mimepart@{mimepart}!mm_mimepart_getlength@{mm\_\-mimepart\_\-getlength}}
+\index{mm_mimepart_getlength@{mm\_\-mimepart\_\-getlength}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}size\_\-t mm\_\-mimepart\_\-getlength (struct mm\_\-mimepart $\ast$ {\em part})}\label{group__mimepart_gf8ccae1737dc4b9b91958fe448da677f}
+
+
+Gets the length of a given MIME part object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The size of the part's body in byte.\end{Desc}
+This function returns the total length of the given MIME part's body. The length does not include the headers of the MIME parts. If the function returns 0, no body part is set currently. \index{mimepart@{mimepart}!mm_mimepart_gettype@{mm\_\-mimepart\_\-gettype}}
+\index{mm_mimepart_gettype@{mm\_\-mimepart\_\-gettype}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-content$\ast$ mm\_\-mimepart\_\-gettype (struct mm\_\-mimepart $\ast$ {\em part})}\label{group__mimepart_g210e2ceee56f8349f6778006da87d080}
+
+
+Gets the Content-Type of a given MIME part object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The Content-Type object of the specified MIME part\end{Desc}
+This function returns a pointer to the Content-Type object of the given MIME part. This pointer might be set to NULL, indicating that there is no Content-Type object for the given MIME part currently. \index{mimepart@{mimepart}!mm_mimepart_headers_next@{mm\_\-mimepart\_\-headers\_\-next}}
+\index{mm_mimepart_headers_next@{mm\_\-mimepart\_\-headers\_\-next}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-mimeheader$\ast$ mm\_\-mimepart\_\-headers\_\-next (struct mm\_\-mimepart $\ast$ {\em part}, struct mm\_\-mimeheader $\ast$$\ast$ {\em id})}\label{group__mimepart_g8e9064736efdeebf4b257cc45f8a6adf}
+
+
+Returns the next MIME header of a given MIME part object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em id}]A previously initialized MIME header object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the MIME header object or NULL if end of headers was reached. \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-mimepart\_\-headers\_\-start}{p.}{group__mimepart_g4440bdcfddf88eb642b6a834a0557176} \end{Desc}
+\index{mimepart@{mimepart}!mm_mimepart_headers_start@{mm\_\-mimepart\_\-headers\_\-start}}
+\index{mm_mimepart_headers_start@{mm\_\-mimepart\_\-headers\_\-start}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-mimepart\_\-headers\_\-start (struct mm\_\-mimepart $\ast$ {\em part}, struct mm\_\-mimeheader $\ast$$\ast$ {\em id})}\label{group__mimepart_g4440bdcfddf88eb642b6a834a0557176}
+
+
+Initializes a header loop for a given MIME part
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em id}]The address of a MIME header object (to allow reentrance) \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on failure \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-mimepart\_\-headers\_\-next}{p.}{group__mimepart_g8e9064736efdeebf4b257cc45f8a6adf}\end{Desc}
+Looping through headers can be done in the following way:
+
+
+
+\begin{Code}\begin{verbatim} struct mm_mimeheader *header, *lheader;
+
+ mm_mimepart_headers_start(part, &lheader);
+
+ while ((header = mm_mimepart_headers_next(part, &lheader)) != NULL) {
+        printf("%s: %s\n", header->name, header->value);        
+ }
+\end{verbatim}\end{Code}
+
+
+
+For convienience, the macro mm\_\-mimepart\_\-headers\_\-foreach() can be used to loop through headers in a one-shot manner. \index{mimepart@{mimepart}!mm_mimepart_new@{mm\_\-mimepart\_\-new}}
+\index{mm_mimepart_new@{mm\_\-mimepart\_\-new}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-mimepart$\ast$ mm\_\-mimepart\_\-new (void)}\label{group__mimepart_g417e5dd361e30cddb91e1d9a5e30b223}
+
+
+Allocates memory for a new mm\_\-mimepart structure and initializes it.
+
+\begin{Desc}
+\item[Returns:]A pointer to a struct of type mm\_\-mimeheader or NULL on failure \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-mimepart\_\-free}{p.}{group__mimepart_gbf47790a0bb96b22bc5e236bc40cb32e} \end{Desc}
+\begin{Desc}
+\item[Note:]The memory must be freed by using \doxyref{mm\_\-mimepart\_\-free()}{p.}{group__mimepart_gbf47790a0bb96b22bc5e236bc40cb32e} later on. \end{Desc}
+\index{mimepart@{mimepart}!mm_mimepart_setbody@{mm\_\-mimepart\_\-setbody}}
+\index{mm_mimepart_setbody@{mm\_\-mimepart\_\-setbody}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mm\_\-mimepart\_\-setbody (struct mm\_\-mimepart $\ast$ {\em part}, const char $\ast$ {\em data}, int {\em opaque})}\label{group__mimepart_gd1def098c00edc546b03e98e9ff8b27a}
+
+
+Sets the MIME part's body data
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em data}]A pointer to the data which to set \end{description}
+\end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-mimepart\_\-getbody}{p.}{group__mimepart_g52dc9f27a2801e4f6abb1effd2ed838d}\end{Desc}
+This functions sets the body data for a given MIME part. The string pointed to by data must be NUL-terminated. The data is copied into the MIME part's body, and thus, the memory pointed to by data can be freed after the operation. \index{mimepart@{mimepart}!mm_mimepart_setdefaultcontenttype@{mm\_\-mimepart\_\-setdefaultcontenttype}}
+\index{mm_mimepart_setdefaultcontenttype@{mm\_\-mimepart\_\-setdefaultcontenttype}!mimepart@{mimepart}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-mimepart\_\-setdefaultcontenttype (struct mm\_\-mimepart $\ast$ {\em part}, int {\em composite})}\label{group__mimepart_g164bb39a266559574c252f11266809ff}
+
+
+Sets the default Content-Type for a given MIME part
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em part}]A valid MIME part object \item[{\em part}]Whether the Content-Type should be for composite or not \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on failure\end{Desc}
+This function sets a default Content-Type according to RFC 2045 with a value of \char`\"{}text/plain; charset=\char`\"{}us-ascii\char`\"{}\char`\"{}. This function should only be used if the MIME part in question does not have a valid Content-Type specification. 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/group__mimeutil.tex b/main/minimime/mm-docs/latex/group__mimeutil.tex
new file mode 100644
index 0000000000..6de2599760
--- /dev/null
+++ b/main/minimime/mm-docs/latex/group__mimeutil.tex
@@ -0,0 +1,2 @@
+\section{MIME related utility functions}
+\label{group__mimeutil}\index{MIME related utility functions@{MIME related utility functions}}
diff --git a/main/minimime/mm-docs/latex/group__param.tex b/main/minimime/mm-docs/latex/group__param.tex
new file mode 100644
index 0000000000..320dd398cb
--- /dev/null
+++ b/main/minimime/mm-docs/latex/group__param.tex
@@ -0,0 +1,127 @@
+\section{Accessing and manipulating MIME parameters}
+\label{group__param}\index{Accessing and manipulating MIME parameters@{Accessing and manipulating MIME parameters}}
+\subsection*{Functions for manipulating MIME parameters}
+MIME parameters are properties attached to certain MIME headers, such as Content-Type and Content-Disposition. MIME parameters have a textual representations as in {\em name=value\/}. They contain important information about the MIME structure of a message, such as the boundary string used, which charset was used to encode the message and so on. This module provides simple to use functions to query or set MIME parameters.
+
+Each MIME header may hold an arbitrary amount of such parameters, which are delimeted by each other with a semicolon. \begin{CompactItemize}
+\item 
+mm\_\-param $\ast$ {\bf mm\_\-param\_\-new} (void)
+\item 
+void {\bf mm\_\-param\_\-free} (struct mm\_\-param $\ast$param)
+\item 
+mm\_\-param $\ast$ {\bf mm\_\-param\_\-generate} (const char $\ast$name, const char $\ast$value)
+\item 
+char $\ast$ {\bf mm\_\-param\_\-setname} (struct mm\_\-param $\ast$param, const char $\ast$name, int copy)
+\item 
+char $\ast$ {\bf mm\_\-param\_\-setvalue} (struct mm\_\-param $\ast$param, const char $\ast$value, int copy)
+\item 
+const char $\ast$ {\bf mm\_\-param\_\-getname} (struct mm\_\-param $\ast$param)
+\item 
+const char $\ast$ {\bf mm\_\-param\_\-getvalue} (struct mm\_\-param $\ast$param)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\index{param@{param}!mm_param_free@{mm\_\-param\_\-free}}
+\index{mm_param_free@{mm\_\-param\_\-free}!param@{param}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mm\_\-param\_\-free (struct mm\_\-param $\ast$ {\em param})}\label{group__param_g46339038e995799e6a3e37512f442fc9}
+
+
+Releases all memory associated with a MIME parameter object.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em param}]A valid MIME parameter object to be freed \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]Nothing \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-param\_\-new}{p.}{group__param_gd3ac756551bf5a29a07d5992bfdbde09} \end{Desc}
+\index{param@{param}!mm_param_generate@{mm\_\-param\_\-generate}}
+\index{mm_param_generate@{mm\_\-param\_\-generate}!param@{param}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-param$\ast$ mm\_\-param\_\-generate (const char $\ast$ {\em name}, const char $\ast$ {\em value})}\label{group__param_gd3970def45b8bede334f4b89a41dec15}
+
+
+Generates a new Content-Type parameter with the given name and value
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em name}]The name of the MIME parameter \item[{\em value}]The value of the MIME parameter \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A new MIME parameter object \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-param\_\-free}{p.}{group__param_g46339038e995799e6a3e37512f442fc9} 
+
+\doxyref{mm\_\-param\_\-new}{p.}{group__param_gd3ac756551bf5a29a07d5992bfdbde09}\end{Desc}
+This function generates a new MIME parameter, with the name and value given as the arguments. The needed memory for the operation is allocated dynamically. It stores a copy of name and value in the actual object, so the memory holding the arguments can safely be freed after successfull return of this function. \index{param@{param}!mm_param_getname@{mm\_\-param\_\-getname}}
+\index{mm_param_getname@{mm\_\-param\_\-getname}!param@{param}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ mm\_\-param\_\-getname (struct mm\_\-param $\ast$ {\em param})}\label{group__param_g0e0ddccf47a2b1e0ad5bcc52c7b39753}
+
+
+Gets the name of a MIME parameter object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em param}]A valid MIME parameter object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The name of the MIME parameter \end{Desc}
+\index{param@{param}!mm_param_getvalue@{mm\_\-param\_\-getvalue}}
+\index{mm_param_getvalue@{mm\_\-param\_\-getvalue}!param@{param}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ mm\_\-param\_\-getvalue (struct mm\_\-param $\ast$ {\em param})}\label{group__param_g3c6f8cddd409de3000c31584e140561e}
+
+
+Gets the value of a MIME parameter object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em param}]A valid MIME parameter object \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The value of the MIME parameter \end{Desc}
+\index{param@{param}!mm_param_new@{mm\_\-param\_\-new}}
+\index{mm_param_new@{mm\_\-param\_\-new}!param@{param}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-param$\ast$ mm\_\-param\_\-new (void)}\label{group__param_gd3ac756551bf5a29a07d5992bfdbde09}
+
+
+Creates a new object to hold a MIME parameter.
+
+\begin{Desc}
+\item[Returns:]An object representing a MIME parameter \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-param\_\-free}{p.}{group__param_g46339038e995799e6a3e37512f442fc9} \end{Desc}
+\begin{Desc}
+\item[Note:]The allocated memory must later be freed using \doxyref{mm\_\-param\_\-free()}{p.}{group__param_g46339038e995799e6a3e37512f442fc9} \end{Desc}
+\index{param@{param}!mm_param_setname@{mm\_\-param\_\-setname}}
+\index{mm_param_setname@{mm\_\-param\_\-setname}!param@{param}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-param\_\-setname (struct mm\_\-param $\ast$ {\em param}, const char $\ast$ {\em name}, int {\em copy})}\label{group__param_g2a266c63c7e89cf829b2af8e995e55e8}
+
+
+Sets the name of the given MIME parameter
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em param}]A valid MIME parameter object \item[{\em name}]The new name of the parameter \item[{\em copy}]If set to $>$ 0, copy the value stored in name \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The address of the previous name for passing to free() \end{Desc}
+\index{param@{param}!mm_param_setvalue@{mm\_\-param\_\-setvalue}}
+\index{mm_param_setvalue@{mm\_\-param\_\-setvalue}!param@{param}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-param\_\-setvalue (struct mm\_\-param $\ast$ {\em param}, const char $\ast$ {\em value}, int {\em copy})}\label{group__param_gca3e636ab5700462eb32ca5bc19e4cc6}
+
+
+Sets the value of the given MIME parameter
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em param}]A valid MIME parameter object \item[{\em name}]The new value for the parameter \item[{\em copy}]If set to $>$ 0, copy the value stored in value \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]The address of the previous value for passing to free() \end{Desc}
diff --git a/main/minimime/mm-docs/latex/group__util.tex b/main/minimime/mm-docs/latex/group__util.tex
new file mode 100644
index 0000000000..00a3c20da3
--- /dev/null
+++ b/main/minimime/mm-docs/latex/group__util.tex
@@ -0,0 +1,128 @@
+\section{General purpose utility functions}
+\label{group__util}\index{General purpose utility functions@{General purpose utility functions}}
+\subsection*{Utility functions}
+\begin{CompactItemize}
+\item 
+void \textbf{xfree} (void $\ast$)\label{group__util_g35c4383ff0dee2de18985e6edfed1ae6}
+
+\item 
+char $\ast$ \textbf{xstrdup} (const char $\ast$)\label{group__util_g2961ae74e91b0b28acdf9822438a581c}
+
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item 
+void $\ast$ {\bf xmalloc} (size\_\-t size)
+\item 
+void $\ast$ {\bf xrealloc} (void $\ast$p, size\_\-t size)
+\item 
+char $\ast$ {\bf mm\_\-unquote} (const char $\ast$string)
+\item 
+char $\ast$ {\bf mm\_\-uncomment} (const char $\ast$string)
+\item 
+char $\ast$ {\bf xstrsep} (char $\ast$$\ast$stringp, const char $\ast$delim)
+\item 
+char $\ast$ {\bf mm\_\-stripchars} (char $\ast$input, char $\ast$strip)
+\item 
+char $\ast$ {\bf mm\_\-addchars} (char $\ast$input, char $\ast$add, u\_\-int16\_\-t linelength)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\index{util@{util}!mm_addchars@{mm\_\-addchars}}
+\index{mm_addchars@{mm\_\-addchars}!util@{util}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-addchars (char $\ast$ {\em input}, char $\ast$ {\em add}, u\_\-int16\_\-t {\em linelength})}\label{group__util_g0747d4b4e33644263e6d73d2d8d4818b}
+
+
+Adds characters to a string at given positions
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em input}]The string to which to add characters \item[{\em add}]The character string to add \item[{\em linelength}]The position where to add the character \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A copy of the string with characters added\end{Desc}
+This function adds the characters add at each linelength positions and returns this new string. \index{util@{util}!mm_stripchars@{mm\_\-stripchars}}
+\index{mm_stripchars@{mm\_\-stripchars}!util@{util}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-stripchars (char $\ast$ {\em input}, char $\ast$ {\em strip})}\label{group__util_gf62be7dd21e545f8db72f3c9e3b6a3c3}
+
+
+Strips a given character set from a string
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em input}]The string which to strip \item[{\em strip}]The character set to strip off \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A copy of the original string with all chars stripped \end{Desc}
+\index{util@{util}!mm_uncomment@{mm\_\-uncomment}}
+\index{mm_uncomment@{mm\_\-uncomment}!util@{util}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-uncomment (const char $\ast$ {\em string})}\label{group__util_g49c016ff4cfd02f1b019c4dce5aac357}
+
+
+Removes MIME comments from a string
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em string}]The string to uncomment \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the uncommented string or NULL on error. Sets mm\_\-errno.\end{Desc}
+This function removes MIME comments from a string (included in parantheses). It returns a pointer to a newly allocated memory region in which the uncommented string is stored. The returned string needs to be freed when it's not used anymore. \index{util@{util}!mm_unquote@{mm\_\-unquote}}
+\index{mm_unquote@{mm\_\-unquote}!util@{util}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ mm\_\-unquote (const char $\ast$ {\em string})}\label{group__util_gf0f89a29a634f6f1f833abb1e214a6b1}
+
+
+Unquotes a string
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em string}]The quoted string to unquote \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the unquoted string\end{Desc}
+This function unquotes a string. That is, it returns a pointer to a newly allocated memory region in which the unquoted string is stored. Only leading and trailing double-qoutes are removed. The string needs to be freed when it is not needed anymore. \index{util@{util}!xmalloc@{xmalloc}}
+\index{xmalloc@{xmalloc}!util@{util}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ xmalloc (size\_\-t {\em size})}\label{group__util_g2ff4ef58da7e543466e75f20f2a2d8b7}
+
+
+Allocates a block of memory
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em size}]The size of the memory region to allocate \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the allocated memory region\end{Desc}
+\doxyref{xmalloc()}{p.}{group__util_g2ff4ef58da7e543466e75f20f2a2d8b7} calls abort() if either the size argument is negative or the requested memory amount could not be allocated via an assert() call. \index{util@{util}!xrealloc@{xrealloc}}
+\index{xrealloc@{xrealloc}!util@{util}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ xrealloc (void $\ast$ {\em p}, size\_\-t {\em size})}\label{group__util_ge14637b4672461f1f0bee822406d68dc}
+
+
+realloc() wrapper
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em p}]Pointer to a memory region which should be reallocated \item[{\em size}]The new size of the memory region \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the reallocated memory region\end{Desc}
+\doxyref{xrealloc()}{p.}{group__util_ge14637b4672461f1f0bee822406d68dc} is a wrapper around realloc() which calls abort() if either the size argument is negative or the requested memory amount could not be allocated. \index{util@{util}!xstrsep@{xstrsep}}
+\index{xstrsep@{xstrsep}!util@{util}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ xstrsep (char $\ast$$\ast$ {\em stringp}, const char $\ast$ {\em delim})}\label{group__util_g3ae25483c8a42f6562f2a916a511228f}
+
+
+separate strings
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em stringp}]A pointer to the string being splitted \item[{\em delim}]The delimeter string\end{description}
+\end{Desc}
+This function works similar to strsep(), with the difference that delim is treated as a whole. 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__codecs_8c.tex b/main/minimime/mm-docs/latex/mm__codecs_8c.tex
new file mode 100644
index 0000000000..1dad6cf963
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__codecs_8c.tex
@@ -0,0 +1,41 @@
+\section{mm\_\-codecs.c File Reference}
+\label{mm__codecs_8c}\index{mm_codecs.c@{mm\_\-codecs.c}}
+{\tt \#include $<$sys/types.h$>$}\par
+{\tt \#include $<$sys/stat.h$>$}\par
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$fcntl.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+{\tt \#include \char`\"{}mm\_\-util.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{Indent}{\bf Codec manipulation}\par
+\begin{CompactItemize}
+\item 
+int {\bf mm\_\-codec\_\-hasdecoder} (const char $\ast$encoding)
+\item 
+int {\bf mm\_\-codec\_\-hasencoder} (const char $\ast$encoding)
+\item 
+int {\bf mm\_\-codec\_\-isregistered} (const char $\ast$encoding)
+\item 
+int {\bf mm\_\-codec\_\-register} (const char $\ast$encoding, char $\ast$($\ast$encoder)(char $\ast$data, u\_\-int32\_\-t i), char $\ast$($\ast$decoder)(char $\ast$data))
+\item 
+int {\bf mm\_\-codec\_\-unregister} (const char $\ast$encoding)
+\item 
+int {\bf mm\_\-codec\_\-unregisterall} (void)
+\item 
+void {\bf mm\_\-codec\_\-registerdefaultcodecs} (void)
+\end{CompactItemize}
+\end{Indent}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item 
+mm\_\-codecs \textbf{codecs}\label{mm__codecs_8c_b669b6dc7c7d10408d8da81b3f1a30d3}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This module contains functions to manipulate Mini\-MIME codecs 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__contenttype_8c.tex b/main/minimime/mm-docs/latex/mm__contenttype_8c.tex
new file mode 100644
index 0000000000..71a88cf626
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__contenttype_8c.tex
@@ -0,0 +1,61 @@
+\section{mm\_\-contenttype.c File Reference}
+\label{mm__contenttype_8c}\index{mm_contenttype.c@{mm\_\-contenttype.c}}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$stdarg.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$ctype.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+{\tt \#include \char`\"{}mm\_\-util.h\char`\"{}}\par
+\subsection*{Data Structures}
+\begin{CompactItemize}
+\item 
+struct \textbf{mm\_\-encoding\_\-mappings}
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{Indent}{\bf Functions for manipulating Content-Type objects}\par
+\begin{CompactItemize}
+\item 
+mm\_\-content $\ast$ {\bf mm\_\-content\_\-new} (void)
+\item 
+void {\bf mm\_\-content\_\-free} (struct mm\_\-content $\ast$ct)
+\item 
+int {\bf mm\_\-content\_\-attachparam} (struct mm\_\-content $\ast$ct, struct mm\_\-param $\ast$param)
+\item 
+char $\ast$ {\bf mm\_\-content\_\-getparambyname} (struct mm\_\-content $\ast$ct, const char $\ast$name)
+\item 
+mm\_\-param $\ast$ \textbf{mm\_\-content\_\-getparamobjbyname} (struct mm\_\-content $\ast$ct, const char $\ast$name)\label{group__contenttype_g1ba63e679d2b49aceb6cfec8a6752581}
+
+\item 
+int {\bf mm\_\-content\_\-setmaintype} (struct mm\_\-content $\ast$ct, char $\ast$value, int copy)
+\item 
+char $\ast$ {\bf mm\_\-content\_\-getmaintype} (struct mm\_\-content $\ast$ct)
+\item 
+char $\ast$ {\bf mm\_\-content\_\-getsubtype} (struct mm\_\-content $\ast$ct)
+\item 
+char $\ast$ \textbf{mm\_\-content\_\-gettype} (struct mm\_\-content $\ast$ct)\label{group__contenttype_ga6d8453eb35bd695c4944e53b7040b65}
+
+\item 
+int {\bf mm\_\-content\_\-setsubtype} (struct mm\_\-content $\ast$ct, char $\ast$value, int copy)
+\item 
+int \textbf{mm\_\-content\_\-settype} (struct mm\_\-content $\ast$ct, const char $\ast$fmt,...)\label{group__contenttype_g878686678ea2ba97aa8edb1206a564d8}
+
+\item 
+int {\bf mm\_\-content\_\-iscomposite} (struct mm\_\-content $\ast$ct)
+\item 
+int {\bf mm\_\-content\_\-isvalidencoding} (const char $\ast$encoding)
+\item 
+int {\bf mm\_\-content\_\-setencoding} (struct mm\_\-content $\ast$ct, const char $\ast$encoding)
+\item 
+int {\bf mm\_\-content\_\-getencoding} (struct mm\_\-content $\ast$ct, const char $\ast$encoding)
+\item 
+char $\ast$ {\bf mm\_\-content\_\-paramstostring} (struct mm\_\-content $\ast$ct)
+\item 
+char $\ast$ {\bf mm\_\-content\_\-tostring} (struct mm\_\-content $\ast$ct)
+\end{CompactItemize}
+\end{Indent}
+
+
+\subsection{Detailed Description}
+This module contains functions for manipulating Content-Type objects. 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__context_8c.tex b/main/minimime/mm-docs/latex/mm__context_8c.tex
new file mode 100644
index 0000000000..78ba141e57
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__context_8c.tex
@@ -0,0 +1,44 @@
+\section{mm\_\-context.c File Reference}
+\label{mm__context_8c}\index{mm_context.c@{mm\_\-context.c}}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$stdarg.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{Indent}{\bf Manipulating Mini\-MIME contexts}\par
+\begin{CompactItemize}
+\item 
+MM\_\-CTX $\ast$ {\bf mm\_\-context\_\-new} (void)
+\item 
+void {\bf mm\_\-context\_\-free} (MM\_\-CTX $\ast$ctx)
+\item 
+int {\bf mm\_\-context\_\-attachpart} (MM\_\-CTX $\ast$ctx, struct mm\_\-mimepart $\ast$part)
+\item 
+int {\bf mm\_\-context\_\-attachpart\_\-after} (MM\_\-CTX $\ast$ctx, struct mm\_\-mimepart $\ast$part, int pos)
+\item 
+int {\bf mm\_\-context\_\-deletepart} (MM\_\-CTX $\ast$ctx, int which, int freemem)
+\item 
+int {\bf mm\_\-context\_\-countparts} (MM\_\-CTX $\ast$ctx)
+\item 
+mm\_\-mimepart $\ast$ {\bf mm\_\-context\_\-getpart} (MM\_\-CTX $\ast$ctx, int which)
+\item 
+int {\bf mm\_\-context\_\-iscomposite} (MM\_\-CTX $\ast$ctx)
+\item 
+int {\bf mm\_\-context\_\-haswarnings} (MM\_\-CTX $\ast$ctx)
+\item 
+int {\bf mm\_\-context\_\-generateboundary} (MM\_\-CTX $\ast$ctx)
+\item 
+int {\bf mm\_\-context\_\-setpreamble} (MM\_\-CTX $\ast$ctx, char $\ast$preamble)
+\item 
+char $\ast$ \textbf{mm\_\-context\_\-getpreamble} (MM\_\-CTX $\ast$ctx)\label{group__context_g1ebbdd51106ccdee77ca421f9692bde7}
+
+\item 
+int {\bf mm\_\-context\_\-flatten} (MM\_\-CTX $\ast$ctx, char $\ast$$\ast$flat, size\_\-t $\ast$length, int flags)
+\end{CompactItemize}
+\end{Indent}
+
+
+\subsection{Detailed Description}
+Modules for manipulating Mini\-MIME contexts 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__envelope_8c.tex b/main/minimime/mm-docs/latex/mm__envelope_8c.tex
new file mode 100644
index 0000000000..841a6b5501
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__envelope_8c.tex
@@ -0,0 +1,25 @@
+\section{mm\_\-envelope.c File Reference}
+\label{mm__envelope_8c}\index{mm_envelope.c@{mm\_\-envelope.c}}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$stdarg.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$ctype.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+{\tt \#include \char`\"{}mm\_\-util.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{Indent}{\bf Accessing and manipulating a message's envelope}\par
+\begin{CompactItemize}
+\item 
+int {\bf mm\_\-envelope\_\-getheaders} (MM\_\-CTX $\ast$ctx, char $\ast$$\ast$result, size\_\-t $\ast$length)
+\item 
+int {\bf mm\_\-envelope\_\-setheader} (MM\_\-CTX $\ast$ctx, const char $\ast$name, const char $\ast$fmt,...)
+\item 
+int {\bf mm\_\-envelope\_\-getrecipients} (MM\_\-CTX $\ast$ctx, char $\ast$$\ast$result, size\_\-t $\ast$length)
+\end{CompactItemize}
+\end{Indent}
+
+
+\subsection{Detailed Description}
+This module contains functions for accessing a message's envelope. This are mainly wrapper functions for easy access. 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__error_8c.tex b/main/minimime/mm-docs/latex/mm__error_8c.tex
new file mode 100644
index 0000000000..47ae033142
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__error_8c.tex
@@ -0,0 +1,29 @@
+\section{mm\_\-error.c File Reference}
+\label{mm__error_8c}\index{mm_error.c@{mm\_\-error.c}}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$stdarg.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include $<$errno.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+{\tt \#include \char`\"{}mm\_\-util.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item 
+void {\bf mm\_\-error\_\-init} (void)
+\item 
+void {\bf mm\_\-error\_\-setmsg} (const char $\ast$fmt,...)
+\item 
+void \textbf{mm\_\-error\_\-setlineno} (int lineno)\label{mm__error_8c_190c991d7bb378b6cd6f995ffc3011f7}
+
+\item 
+char $\ast$ {\bf mm\_\-error\_\-string} (void)
+\item 
+int \textbf{mm\_\-error\_\-lineno} (void)\label{mm__error_8c_c84acacac29f1e6efd10bb3a89eab272}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This module contains functions for Mini\-MIME error information/manipulation 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__header_8c.tex b/main/minimime/mm-docs/latex/mm__header_8c.tex
new file mode 100644
index 0000000000..651a5a4e95
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__header_8c.tex
@@ -0,0 +1,63 @@
+\section{mm\_\-header.c File Reference}
+\label{mm__header_8c}\index{mm_header.c@{mm\_\-header.c}}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$stdarg.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$ctype.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+{\tt \#include \char`\"{}mm\_\-util.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item 
+mm\_\-mimeheader $\ast$ {\bf mm\_\-mimeheader\_\-new} (void)
+\item 
+void {\bf mm\_\-mimeheader\_\-free} (struct mm\_\-mimeheader $\ast$header)
+\item 
+mm\_\-mimeheader $\ast$ {\bf mm\_\-mimeheader\_\-generate} (const char $\ast$name, const char $\ast$value)
+\item 
+int \textbf{mm\_\-mimeheader\_\-uncomment} (struct mm\_\-mimeheader $\ast$header)\label{mm__header_8c_26657e44385646fde63712d7110492d7}
+
+\item 
+int \textbf{mm\_\-mimeheader\_\-uncommentbyname} (struct mm\_\-mimepart $\ast$part, const char $\ast$name)\label{mm__header_8c_2081ee4c43e88d5a318a783069a5d471}
+
+\item 
+int \textbf{mm\_\-mimeheader\_\-uncommentall} (struct mm\_\-mimepart $\ast$part)\label{mm__header_8c_9f9bcb0fb26461bd349c15366748ecb7}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This module contains functions for manipulating MIME headers 
+
+\subsection{Function Documentation}
+\index{mm_header.c@{mm\_\-header.c}!mm_mimeheader_free@{mm\_\-mimeheader\_\-free}}
+\index{mm_mimeheader_free@{mm\_\-mimeheader\_\-free}!mm_header.c@{mm\_\-header.c}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void mm\_\-mimeheader\_\-free (struct mm\_\-mimeheader $\ast$ {\em header})}\label{mm__header_8c_61e3e62728f720ac381196ec59303064}
+
+
+Frees a MIME header object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em header}]The MIME header object which to free \end{description}
+\end{Desc}
+\index{mm_header.c@{mm\_\-header.c}!mm_mimeheader_generate@{mm\_\-mimeheader\_\-generate}}
+\index{mm_mimeheader_generate@{mm\_\-mimeheader\_\-generate}!mm_header.c@{mm\_\-header.c}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-mimeheader$\ast$ mm\_\-mimeheader\_\-generate (const char $\ast$ {\em name}, const char $\ast$ {\em value})}\label{mm__header_8c_07a7f7dcebc91aa86f5478e1d84341a1}
+
+
+Creates a new MIME header, but does no checks whatsoever (create as-is) \index{mm_header.c@{mm\_\-header.c}!mm_mimeheader_new@{mm\_\-mimeheader\_\-new}}
+\index{mm_mimeheader_new@{mm\_\-mimeheader\_\-new}!mm_header.c@{mm\_\-header.c}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct mm\_\-mimeheader$\ast$ mm\_\-mimeheader\_\-new (void)}\label{mm__header_8c_2f2c5f2f640111caf3096ed46b5986a4}
+
+
+Creates a new MIME header object
+
+\begin{Desc}
+\item[Returns:]A new and initialized MIME header object \end{Desc}
+\begin{Desc}
+\item[See also:]\doxyref{mm\_\-mimeheader\_\-free}{p.}{mm__header_8c_61e3e62728f720ac381196ec59303064}\end{Desc}
+This function creates and initializes a new MIME header object, which must later be freed using \doxyref{mm\_\-mimeheader\_\-free()}{p.}{mm__header_8c_61e3e62728f720ac381196ec59303064} 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__internal_8h.tex b/main/minimime/mm-docs/latex/mm__internal_8h.tex
new file mode 100644
index 0000000000..017f05bc00
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__internal_8h.tex
@@ -0,0 +1,45 @@
+\section{mm\_\-internal.h File Reference}
+\label{mm__internal_8h}\index{mm_internal.h@{mm\_\-internal.h}}
+{\tt \#include \char`\"{}mm.h\char`\"{}}\par
+\subsection*{Defines}
+\begin{CompactItemize}
+\item 
+\#define \textbf{debugp}(m,...)
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{Indent}{\bf Utility functions}\par
+\begin{CompactItemize}
+\item 
+void $\ast$ {\bf xmalloc} (size\_\-t)
+\item 
+void $\ast$ {\bf xrealloc} (void $\ast$, size\_\-t)
+\item 
+void \textbf{xfree} (void $\ast$)\label{group__util_g35c4383ff0dee2de18985e6edfed1ae6}
+
+\item 
+char $\ast$ \textbf{xstrdup} (const char $\ast$)\label{group__util_g2961ae74e91b0b28acdf9822438a581c}
+
+\item 
+char $\ast$ {\bf xstrsep} (char $\ast$$\ast$, const char $\ast$)
+\end{CompactItemize}
+\end{Indent}
+
+
+\subsection{Detailed Description}
+Data definitions for Mini\-MIME 
+
+\subsection{Define Documentation}
+\index{mm_internal.h@{mm\_\-internal.h}!debugp@{debugp}}
+\index{debugp@{debugp}!mm_internal.h@{mm\_\-internal.h}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define debugp(m,  {\em ...})}\label{mm__internal_8h_089dd7bda22f552c35ebdc06a8849c56}
+
+
+\textbf{Value:}
+
+\begin{Code}\begin{verbatim}do { \
+        fprintf(stderr, "%s:%d:: ", __FILE__, __LINE__); \
+        fprintf(stderr, m, ## __VA_ARGS__); \
+        fprintf(stderr, "\n"); \
+        fflush(stderr); \
+} while (0);
+\end{verbatim}\end{Code}
diff --git a/main/minimime/mm-docs/latex/mm__mimepart_8c.tex b/main/minimime/mm-docs/latex/mm__mimepart_8c.tex
new file mode 100644
index 0000000000..247887efda
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__mimepart_8c.tex
@@ -0,0 +1,69 @@
+\section{mm\_\-mimepart.c File Reference}
+\label{mm__mimepart_8c}\index{mm_mimepart.c@{mm\_\-mimepart.c}}
+{\tt \#include $<$sys/types.h$>$}\par
+{\tt \#include $<$sys/stat.h$>$}\par
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$fcntl.h$>$}\par
+{\tt \#include $<$ctype.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{Indent}{\bf Creating and destroying MIME parts}\par
+\begin{CompactItemize}
+\item 
+mm\_\-mimepart $\ast$ {\bf mm\_\-mimepart\_\-new} (void)
+\item 
+mm\_\-mimepart $\ast$ {\bf mm\_\-mimepart\_\-fromfile} (const char $\ast$filename)
+\item 
+void {\bf mm\_\-mimepart\_\-free} (struct mm\_\-mimepart $\ast$part)
+\end{CompactItemize}
+\end{Indent}
+\begin{Indent}{\bf Accessing the MIME part's mail header}\par
+\begin{CompactItemize}
+\item 
+int {\bf mm\_\-mimepart\_\-attachheader} (struct mm\_\-mimepart $\ast$part, struct mm\_\-mimeheader $\ast$header)
+\item 
+int {\bf mm\_\-mimepart\_\-countheaders} (struct mm\_\-mimepart $\ast$part)
+\item 
+int {\bf mm\_\-mimepart\_\-countheaderbyname} (struct mm\_\-mimepart $\ast$part, const char $\ast$name)
+\item 
+mm\_\-mimeheader $\ast$ {\bf mm\_\-mimepart\_\-getheaderbyname} (struct mm\_\-mimepart $\ast$part, const char $\ast$name, int idx)
+\item 
+const char $\ast$ {\bf mm\_\-mimepart\_\-getheadervalue} (struct mm\_\-mimepart $\ast$part, const char $\ast$name, int idx)
+\item 
+int {\bf mm\_\-mimepart\_\-headers\_\-start} (struct mm\_\-mimepart $\ast$part, struct mm\_\-mimeheader $\ast$$\ast$id)
+\item 
+mm\_\-mimeheader $\ast$ {\bf mm\_\-mimepart\_\-headers\_\-next} (struct mm\_\-mimepart $\ast$part, struct mm\_\-mimeheader $\ast$$\ast$id)
+\end{CompactItemize}
+\end{Indent}
+\begin{Indent}{\bf Accessing and manipulating the MIME part's body}\par
+\begin{CompactItemize}
+\item 
+char $\ast$ {\bf mm\_\-mimepart\_\-getbody} (struct mm\_\-mimepart $\ast$part, int opaque)
+\item 
+void {\bf mm\_\-mimepart\_\-setbody} (struct mm\_\-mimepart $\ast$part, const char $\ast$data, int opaque)
+\item 
+size\_\-t {\bf mm\_\-mimepart\_\-getlength} (struct mm\_\-mimepart $\ast$part)
+\item 
+char $\ast$ {\bf mm\_\-mimepart\_\-decode} (struct mm\_\-mimepart $\ast$part)
+\item 
+int {\bf mm\_\-mimepart\_\-flatten} (struct mm\_\-mimepart $\ast$part, char $\ast$$\ast$result, size\_\-t $\ast$length, int opaque)
+\item 
+int {\bf mm\_\-mimepart\_\-setdefaultcontenttype} (struct mm\_\-mimepart $\ast$part, int composite)
+\end{CompactItemize}
+\end{Indent}
+\begin{Indent}{\bf Accessing the MIME part's Content-Type information}\par
+\begin{CompactItemize}
+\item 
+void {\bf mm\_\-mimepart\_\-attachcontenttype} (struct mm\_\-mimepart $\ast$part, struct mm\_\-content $\ast$ct)
+\item 
+mm\_\-content $\ast$ {\bf mm\_\-mimepart\_\-gettype} (struct mm\_\-mimepart $\ast$part)
+\end{CompactItemize}
+\end{Indent}
+
+
+\subsection{Detailed Description}
+This module contains functions for manipulating MIME header objects. 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__mimeutil_8c.tex b/main/minimime/mm-docs/latex/mm__mimeutil_8c.tex
new file mode 100644
index 0000000000..5ac2599b65
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__mimeutil_8c.tex
@@ -0,0 +1,50 @@
+\section{mm\_\-mimeutil.c File Reference}
+\label{mm__mimeutil_8c}\index{mm_mimeutil.c@{mm\_\-mimeutil.c}}
+{\tt \#include $<$sys/time.h$>$}\par
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$time.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+\subsection*{Defines}
+\begin{CompactItemize}
+\item 
+\#define \textbf{MM\_\-DATE\_\-LENGTH}~50\label{mm__mimeutil_8c_257774e1a30f8190b3d99891be64210a}
+
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item 
+int {\bf mm\_\-mimeutil\_\-gendate} (char $\ast$$\ast$result)
+\item 
+int \textbf{mm\_\-mimeutil\_\-genboundary} (char $\ast$prefix, size\_\-t length, char $\ast$$\ast$result)\label{mm__mimeutil_8c_a72e503ba7ce2552456c6bd5935febe9}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This module contains various MIME related utility functions. 
+
+\subsection{Function Documentation}
+\index{mm_mimeutil.c@{mm\_\-mimeutil.c}!mm_mimeutil_gendate@{mm\_\-mimeutil\_\-gendate}}
+\index{mm_mimeutil_gendate@{mm\_\-mimeutil\_\-gendate}!mm_mimeutil.c@{mm\_\-mimeutil.c}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-mimeutil\_\-gendate (char $\ast$$\ast$ {\em result})}\label{mm__mimeutil_8c_a7b7f63b42dfa7a7f907b615aa4cd057}
+
+
+Generates an RFC 2822 conform date string
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em timezone}]Whether to include timezone information \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]A pointer to the actual date string \end{Desc}
+\begin{Desc}
+\item[Note:]The pointer returned must be freed some time\end{Desc}
+This function generates an RFC 2822 conform date string to use in message headers. It allocates memory to hold the string and returns a pointer to it. The generated date is in the format (example):
+
+Thu, 25 December 2003 16:35:22 +0100 (CET)
+
+This function dynamically allocates memory and returns a pointer to it. This memory should be released with free() once not needed anymore. 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__param_8c.tex b/main/minimime/mm-docs/latex/mm__param_8c.tex
new file mode 100644
index 0000000000..a3bc27e192
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__param_8c.tex
@@ -0,0 +1,38 @@
+\section{mm\_\-param.c File Reference}
+\label{mm__param_8c}\index{mm_param.c@{mm\_\-param.c}}
+{\tt \#include $<$sys/types.h$>$}\par
+{\tt \#include $<$sys/stat.h$>$}\par
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$fcntl.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$ctype.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+{\tt \#include \char`\"{}mm\_\-util.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{Indent}{\bf Functions for manipulating MIME parameters}\par
+{\em MIME parameters are properties attached to certain MIME headers, such as Content-Type and Content-Disposition. MIME parameters have a textual representations as in {\em name=value\/}. They contain important information about the MIME structure of a message, such as the boundary string used, which charset was used to encode the message and so on. This module provides simple to use functions to query or set MIME parameters.
+
+Each MIME header may hold an arbitrary amount of such parameters, which are delimeted by each other with a semicolon. }\begin{CompactItemize}
+\item 
+mm\_\-param $\ast$ {\bf mm\_\-param\_\-new} (void)
+\item 
+void {\bf mm\_\-param\_\-free} (struct mm\_\-param $\ast$param)
+\item 
+mm\_\-param $\ast$ {\bf mm\_\-param\_\-generate} (const char $\ast$name, const char $\ast$value)
+\item 
+char $\ast$ {\bf mm\_\-param\_\-setname} (struct mm\_\-param $\ast$param, const char $\ast$name, int copy)
+\item 
+char $\ast$ {\bf mm\_\-param\_\-setvalue} (struct mm\_\-param $\ast$param, const char $\ast$value, int copy)
+\item 
+const char $\ast$ {\bf mm\_\-param\_\-getname} (struct mm\_\-param $\ast$param)
+\item 
+const char $\ast$ {\bf mm\_\-param\_\-getvalue} (struct mm\_\-param $\ast$param)
+\end{CompactItemize}
+\end{Indent}
+
+
+\subsection{Detailed Description}
+Functions to manipulate MIME parameters 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__parse_8c.tex b/main/minimime/mm-docs/latex/mm__parse_8c.tex
new file mode 100644
index 0000000000..36613ad6cd
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__parse_8c.tex
@@ -0,0 +1,90 @@
+\section{mm\_\-parse.c File Reference}
+\label{mm__parse_8c}\index{mm_parse.c@{mm\_\-parse.c}}
+{\tt \#include $<$sys/types.h$>$}\par
+{\tt \#include $<$sys/stat.h$>$}\par
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$fcntl.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$ctype.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+{\tt \#include \char`\"{}mm\_\-util.h\char`\"{}}\par
+{\tt \#include \char`\"{}mimeparser.h\char`\"{}}\par
+{\tt \#include \char`\"{}mimeparser.tab.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item 
+void {\bf PARSER\_\-initialize} (MM\_\-CTX $\ast$, int)
+\item 
+void \textbf{PARSER\_\-setbuffer} (const char $\ast$)\label{mm__parse_8c_92d7d8e20b6def16fcf2649e0d88651f}
+
+\item 
+void \textbf{PARSER\_\-setfp} (FILE $\ast$)\label{mm__parse_8c_04446354e4248226578b90007d728a7b}
+
+\item 
+int {\bf mm\_\-parse\_\-mem} (MM\_\-CTX $\ast$ctx, const char $\ast$text, int parsemode, int flags)
+\item 
+int {\bf mm\_\-parse\_\-file} (MM\_\-CTX $\ast$ctx, const char $\ast$filename, int parsemode, int flags)
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Functions to parse MIME messages 
+
+\subsection{Function Documentation}
+\index{mm_parse.c@{mm\_\-parse.c}!mm_parse_file@{mm\_\-parse\_\-file}}
+\index{mm_parse_file@{mm\_\-parse\_\-file}!mm_parse.c@{mm\_\-parse.c}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-parse\_\-file (MM\_\-CTX $\ast$ {\em ctx}, const char $\ast$ {\em filename}, int {\em parsemode}, int {\em flags})}\label{mm__parse_8c_cc9f623682b05f330c46e72e4e9d66cc}
+
+
+Parses a file into a Mini\-MIME context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context object \item[{\em filename}]The name of the file to parse \item[{\em parsemode}]The parsemode \item[{\em flags}]The flags to pass to the parser \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on failure \end{Desc}
+\begin{Desc}
+\item[Note:]Sets mm\_\-errno if an error occurs\end{Desc}
+This function parses a MIME message, stored in the filesystem according to the parseflags and stores the results in the Mini\-MIME context specified by ctx.
+
+The following modes can be used to specify how the message should be parsed:
+
+\begin{itemize}
+\item MM\_\-PARSE\_\-STRICT: Do not tolerate MIME violations\item MM\_\-PARSE\_\-LOOSE: Tolerate as much MIME violations as possible\end{itemize}
+
+
+The context needs to be initialized before using \doxyref{mm\_\-context\_\-new()}{p.}{group__context_g919fd41f85534d9c87c256857faa2610} and may be freed using \doxyref{mm\_\-context\_\-free()}{p.}{group__context_g76392d5269e9ef340c2f5f8336f7193b}. \index{mm_parse.c@{mm\_\-parse.c}!mm_parse_mem@{mm\_\-parse\_\-mem}}
+\index{mm_parse_mem@{mm\_\-parse\_\-mem}!mm_parse.c@{mm\_\-parse.c}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int mm\_\-parse\_\-mem (MM\_\-CTX $\ast$ {\em ctx}, const char $\ast$ {\em text}, int {\em parsemode}, int {\em flags})}\label{mm__parse_8c_58c960b6017f13d4e4ec5f09b3c38495}
+
+
+Parses a NUL-terminated string into a Mini\-MIME context
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em ctx}]A valid Mini\-MIME context object \item[{\em text}]The NUL-terminated string to parse \item[{\em parsemode}]The parsemode \item[{\em flags}]The flags to pass to the parser \end{description}
+\end{Desc}
+\begin{Desc}
+\item[Returns:]0 on success or -1 on failure \end{Desc}
+\begin{Desc}
+\item[Note:]Sets mm\_\-errno if an error occurs\end{Desc}
+This function parses a MIME message, stored in the memory region pointed to by text (must be NUL-terminated) according to the parseflags and stores the results in the Mini\-MIME context specified by ctx.
+
+The following modes can be used to specify how the message should be parsed:
+
+\begin{itemize}
+\item MM\_\-PARSE\_\-STRICT: Do not tolerate MIME violations\item MM\_\-PARSE\_\-LOOSE: Tolerate as much MIME violations as possible\end{itemize}
+
+
+The context needs to be initialized before using \doxyref{mm\_\-context\_\-new()}{p.}{group__context_g919fd41f85534d9c87c256857faa2610} and may be freed using \doxyref{mm\_\-context\_\-free()}{p.}{group__context_g76392d5269e9ef340c2f5f8336f7193b}. \index{mm_parse.c@{mm\_\-parse.c}!PARSER_initialize@{PARSER\_\-initialize}}
+\index{PARSER_initialize@{PARSER\_\-initialize}!mm_parse.c@{mm\_\-parse.c}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void PARSER\_\-initialize (MM\_\-CTX $\ast$ {\em newctx}, int {\em mode})}\label{mm__parse_8c_187cf71c0f6c2da1384823e3f20aa1a2}
+
+
+Initializes the parser engine. 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/mm__util_8c.tex b/main/minimime/mm-docs/latex/mm__util_8c.tex
new file mode 100644
index 0000000000..929efe9bcf
--- /dev/null
+++ b/main/minimime/mm-docs/latex/mm__util_8c.tex
@@ -0,0 +1,38 @@
+\section{mm\_\-util.c File Reference}
+\label{mm__util_8c}\index{mm_util.c@{mm\_\-util.c}}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$time.h$>$}\par
+{\tt \#include $<$assert.h$>$}\par
+{\tt \#include \char`\"{}mm\_\-internal.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item 
+void $\ast$ {\bf xmalloc} (size\_\-t size)
+\item 
+void $\ast$ {\bf xrealloc} (void $\ast$p, size\_\-t size)
+\item 
+char $\ast$ \textbf{xstrdup} (const char $\ast$str)\label{mm__util_8c_700bf3013e33311eacdd1f20d13bdc9a}
+
+\item 
+void \textbf{xfree} (void $\ast$p)\label{mm__util_8c_91fc771d8aa78ca2ac43244c491da52d}
+
+\item 
+char $\ast$ {\bf mm\_\-unquote} (const char $\ast$string)
+\item 
+char $\ast$ {\bf mm\_\-uncomment} (const char $\ast$string)
+\item 
+char $\ast$ {\bf xstrsep} (char $\ast$$\ast$stringp, const char $\ast$delim)
+\item 
+char $\ast$ {\bf mm\_\-stripchars} (char $\ast$input, char $\ast$strip)
+\item 
+char $\ast$ {\bf mm\_\-addchars} (char $\ast$input, char $\ast$add, u\_\-int16\_\-t linelength)
+\item 
+void \textbf{mm\_\-striptrailing} (char $\ast$$\ast$what, const char $\ast$charset)\label{mm__util_8c_a965d3d1c625253beffd53051b38548e}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This module contains utility functions for the Mini\-MIME library 
\ No newline at end of file
diff --git a/main/minimime/mm-docs/latex/modules.tex b/main/minimime/mm-docs/latex/modules.tex
new file mode 100644
index 0000000000..95e134be32
--- /dev/null
+++ b/main/minimime/mm-docs/latex/modules.tex
@@ -0,0 +1,12 @@
+\section{Mini\-MIME Modules}
+Here is a list of all modules:\begin{CompactList}
+\item \contentsline{section}{Manipulating Mini\-MIME codecs}{\pageref{group__codecs}}{}
+\item \contentsline{section}{Accessing and manipulating Content-Type objects}{\pageref{group__contenttype}}{}
+\item \contentsline{section}{Accessing and manipulating MIME contexts}{\pageref{group__context}}{}
+\item \contentsline{section}{Accessing and manipulating a message's envelope}{\pageref{group__envelope}}{}
+\item \contentsline{section}{Mini\-MIME error functions}{\pageref{group__error}}{}
+\item \contentsline{section}{Accessing and manipulating MIME parts}{\pageref{group__mimepart}}{}
+\item \contentsline{section}{MIME related utility functions}{\pageref{group__mimeutil}}{}
+\item \contentsline{section}{Accessing and manipulating MIME parameters}{\pageref{group__param}}{}
+\item \contentsline{section}{General purpose utility functions}{\pageref{group__util}}{}
+\end{CompactList}
diff --git a/main/minimime/mm-docs/latex/pages.tex b/main/minimime/mm-docs/latex/pages.tex
new file mode 100644
index 0000000000..9fdec66bc0
--- /dev/null
+++ b/main/minimime/mm-docs/latex/pages.tex
@@ -0,0 +1,5 @@
+\section{Mini\-MIME Related Pages}
+Here is a list of all related documentation pages:\begin{CompactList}
+\item \contentsline{section}{Bug List}{\pageref{bug}}{}
+
+\end{CompactList}
diff --git a/main/minimime/mm-docs/latex/refman.tex b/main/minimime/mm-docs/latex/refman.tex
new file mode 100644
index 0000000000..0346dcdc7d
--- /dev/null
+++ b/main/minimime/mm-docs/latex/refman.tex
@@ -0,0 +1,62 @@
+\documentclass[a4paper]{book}
+\usepackage{a4wide}
+\usepackage{makeidx}
+\usepackage{fancyhdr}
+\usepackage{graphicx}
+\usepackage{multicol}
+\usepackage{float}
+\usepackage{textcomp}
+\usepackage{alltt}
+\usepackage{doxygen}
+\makeindex
+\setcounter{tocdepth}{1}
+\renewcommand{\footrulewidth}{0.4pt}
+\begin{document}
+\begin{titlepage}
+\vspace*{7cm}
+\begin{center}
+{\Large Mini\-MIME Reference Manual}\\
+\vspace*{1cm}
+{\large Generated by Doxygen 1.5.1}\\
+\vspace*{0.5cm}
+{\small Thu Mar 29 17:59:08 2007}\\
+\end{center}
+\end{titlepage}
+\clearemptydoublepage
+\pagenumbering{roman}
+\tableofcontents
+\clearemptydoublepage
+\pagenumbering{arabic}
+\chapter{Mini\-MIME Module Index}
+\input{modules}
+\chapter{Mini\-MIME File Index}
+\input{files}
+\chapter{Mini\-MIME Page Index}
+\input{pages}
+\chapter{Mini\-MIME Module Documentation}
+\input{group__codecs}
+\include{group__contenttype}
+\include{group__context}
+\include{group__envelope}
+\include{group__error}
+\include{group__mimepart}
+\include{group__mimeutil}
+\include{group__param}
+\include{group__util}
+\chapter{Mini\-MIME File Documentation}
+\input{mm__codecs_8c}
+\include{mm__contenttype_8c}
+\include{mm__context_8c}
+\include{mm__envelope_8c}
+\include{mm__error_8c}
+\include{mm__header_8c}
+\include{mm__internal_8h}
+\include{mm__mimepart_8c}
+\include{mm__mimeutil_8c}
+\include{mm__param_8c}
+\include{mm__parse_8c}
+\include{mm__util_8c}
+\chapter{Mini\-MIME Page Documentation}
+\input{bug}
+\printindex
+\end{document}
diff --git a/main/minimime/mm-docs/refman.pdf b/main/minimime/mm-docs/refman.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..dc77d05e7ab293b0f5a80bf299b298dc5aed4e14
GIT binary patch
literal 261943
zcmc$`RdifgvIQt+W@fgS$zo;(i<y~aF*7q*V6kK|Gc#GtOqMKWvPR{u>UKT*O;z=q
zwI;vrx+^noo;Y##j@S{Iq;f(cGz_%NP)r2$1UCBS1l-(EbW%pvCXS{AjPwiy|9U~u
ziI`bB8rc)jiCF468VMO0*cci?@$f)7INBTOSwXoj(Tu;f0A_#z+j#a06n)P=8)vmR
zjuDrHVokXw5iGgo!DqW+ntgv;b=v#|wKcj{W_6jXnh(04G1L($03>J#q7YUH-Cu0L
zhC_42X#rMa7W?YrP1Z%i2qB#vMmSMY^m&2TlnH1XUzrx0|KLWEd)ut8<J-B`Xw3`e
zZ+ix)=1vuZBPQu>D=Vm=_qW{p)zk<$8yz@8K7*Df>_CbUx#VDZx+d&e?;hpTlMW3O
zu_N*tsV6HmHNRAnOf9iBEEk-BmhJE&8(ACvzNFWyS9d@${@@lRH(MhDIypTPBPcpS
z8*4`+Yexry-~6TkMW<loVB=(OVB|o+@UI)vMuuj30yeG$8uYI>SU6Z{8QEA^3D}t#
zXxZ60*tMWu4cWh1AYl9cejXlz-=Fx~=l|FUk=LiZ?#Qd#8CVIJe|zI^muv(qe_XN?
zuztUM-3mH6dm95qBS!*_*Y7AKLO`cv<myPE^}0*{w*1>S`NQ<@d(8g(4igak^&SHQ
zyuJW`auLT5R)6UthToq1Cm*r@>&AcWqu)ON$3p(cvj4Q;Uj#Kf>mN)0>jkf-XxXIG
zqXeBkzG+Nv^4Z*`^Jt28KCBg+O=vMo!?4pR;3E<!I9Z?AiwUTekxZACwpUd2!+mPq
z-*#Gyo><f7Ljs6aE-|HVhjT;{8#hRm!;Bzb9}HGU^&^Yy(nIvZ_pWy^%{HLnZ>AJS
z5Jz<&HRbXTiUs2r5mt_%72VhCRS*$j;sQ#gE(EjDR6%w?7s)1wb(UzMLTyu~jAoHl
zLy$+61jCt+IzD6uJfNGfbrW0OMc2#ABeBB>C2{-QS+{2L(1H2k8A(aJ4XBA!ww4Ss
ziNtmW)q_e4<#zXTf?0RaFfiB7mpP*h4@$I1WHB79_Lmo=Pkfe@e52%(%BJxYEluPK
zRFuT}MPio0Vmikq2~vU*j4q!S!f(bwc-x_@{1z+f?@6OMWP|b*nzuOkD0zxDJbSV4
zt84RTw3*cv7nZO9=?g-zO7PZ;l9l^BIO;}}*tAf4*=%#2()P5pn41!5ln<Hn%=DV-
zYhb}R=}$HD_L|hGIT<qymC^flflaOa6&E%Xri2XGo>CiDV0aiG%{p}AbjWOQL}Dt`
zOexd=n9q@Q>4+++09S&b1?XL@KT3rIe`<s9wGq_C1^Gq<fypDkG+-6`zNWJU1EpgX
zpDFW`zhB|mLnb((sW%CPO(>hw+fuua^CMI)po3Nk)6>o(y4ZAbycA6)!=p7zyHL_d
z&I_$EKzEcy%8g}$`K-<z#(wFVtbMhnOWh$^H@W2b4@xT<>GIjnMx?8}a@AAJ1<v3o
zy5Pv9#|4W~LAfo`-i(RGHIyf2?PXO+<7is`n&mLWL7^7`p(s}eR&R5$tT+3%P0BK(
zV#Jr-7Ih^l=8`I@y{~X|GHkNi%lce6Q!NzJsn|}=KFM5e1PZuW<*F_BqN(h=Oaifb
z9_{DM6DMB?E??HH=UYKYJrXj&=e2;P+75uo2A^c%p$*-Kf+}H)bD!6NR5_=iO)XKB
zB+4t5B5Zv_m;xZ5W#hOOjXU7CznM-}EvL5X6!W}Fa&YOkJ2QyGmTDkNPXW)UN0NTy
zrO(?&fU_6;k<~V=9Aj3QHPQy3znA&#gASL68QD`E#VP?+_*A38Q2cY&smUsQ@i8Ix
z7kK=(vHncs4`l)pAs>UMc<;|=syMjtvz|fMDfKOX0uzS61YCxn5%>QLxxdC-MtTB<
zKR}m}fq>!PsLMj|3dg^J@!x~p9|7`r*kxv8`P<Ywn;;!OO%D@vdXLJ(8H^!$v5yC>
z6@=SdX=%;HC1pAtms${L%~kn=M`|spI}Dg|VHZa_P<`1NCt`H7gTya{ipwcKE<DrC
zC5Hwm%+V4r9lxHe>SrmpLj<`hn$_M+J21a%)sP%H0>fSodR6#IH3=ugEZuYT<fJae
z=$)p~J9!ut4}H-$A&A21n0fv+qt-R)1|R&8QG295p5*9)!-HBWF{cHH!aZEQE9Kh{
z6i%>uyb-J`e#bHfO+-wWj<ZuOGoJ3QZF4wV>);d<7H#_M(BFF}xj(Ka(+)Z*Y^Gm<
z*8@_4gXNG7A}9fW9g8GrE+Yqp_0rFqu}+^)@aY>MDYwFsRl1R%kfuZ-L>F)N{UW~}
z_+d+^d}li%^o|#7|IL-AwotA8R9V_k_)v-)Xk3MZfI7|L&RdNdVUE?h>yqUKm1X0$
zVQ7+#sk(%dhx#w@s<46fVWpVN&@4+daYA(I!8A;aCmlB1y!q6b7`whEtO(EFNbpGx
z!8vkmxoapL(}>)5>!7>+fwr|OzFfL1+mu+nHK1NG)lzq?_sEJ*Y}t`2k$$Huh4vH}
ziO%`;<GaV&w2E7NuTTBs?~~)>qs_+Z219vyX&X^)3EBY+-Z{$r9Q;4>+OMhfw^;fU
zmA+;J-|zg_T>9O>A7uKUgyYu%Pbb32_?j2~{orT(1qHLbKJxG8m8(h8HZ$}HzfrJ9
z4@d9V9n&6|vM<pw4O=fE$r@6EbgoDC#p!wSjAf`$&Zh<YMRn3tmpxC$`pfzSt=5k?
zpCiP?L8;)xOvLP^g~sLNy}OfjM)X(>;uyOaNV3ACSqTLbkQ3k7LSjk;5^y&#((0`{
zj(v0YHezb*f8-G_?!TT&v)ybi9kWV6gkaaxoT4Dc-1L*60|tphAsCtSQ*h@8)3$w0
z6JyBUHFH-8BwC43R$O#Nl+zkCrV3DNZ8TaHaA+RDpNlL9@rusd<59IblWHbsV+d1H
z5K%_+jFe+0)n}xikdc&Q)uEP97*J`b?{bidQ<Y@~gO*=sk#dW=@*!t4bq*_59{`4+
z0dZ%sg*xdd8>bNwM2(b3g?Q_^EV@7{yRv3VrcZYV;`@tYtn0q?sU+T|7aNNv40)Tr
zPX}$FCg2L>e*x-u4*`OAIO496%D82=Jg-E&9AFAPx-rG4vl%UIOzUa%aN#XDKJ6Et
zt})JSKpS;`tQ_yJ!uQ|rnNoI`c9~;BwOu=X;_x#O*`%DGm5Z|GH`Ap<(B0r~a9tUj
zFfDUX1aBExsU7>;Fk|b&q7c^hq<C;!d$k>16#s=Xy59>`-6O8*@&oQ^memJ|Q)!ca
zMz0%~5saG&uQ2eFwqlOOkbu0G5g*G<eYp9Pl7(lG)*>CPpN`3E2>vJi`{gnD9(8{@
zCa>ZAe>*1M4gBJmFcUETn<IYY3l;*#|B^2le?);lO0n0{;qM-q{FoMNAO-~C_uhR8
z&Uyn(HD2<$F%Wq)xt75c1Qtjn3(9hG8>cnlg!ev!eJfnm(Pd0ly*<c;B=OvCru8w@
zAkqDZNX*9yaZ@P%PStBpE$-SA344RpDp*Fmh6%@JSp!C-`&#J}=CjnjWrz^Y?5?2A
zx;XCx8vO52MiK*6)YKp>*oDE@1*^amiP%HJ?zC^Vlv|(dsZH_y2y^e~qVRa~w$DIP
zMJKOHd^*!n*rT9A{2}K=AxtZwz8!9IxZF2>8~!wfs#<+IY{`Sd<wljSjW3z4L>3e(
ziHvQdVIe5K{LT4X_HcnUtgSWSX(4*!a`&x^%ST>b03F1iqvbb%{A1&O9WB3?Bmb%4
z7{Ajy6y1Lfs^1O#@z7s`>OTZhrXO>Z-=l(+>F?Jv$0^d$>AwN#Ju1#-=gfM4TiJ}c
z>S{^T?wraSR`xJb0!qT;oAr6HYJ7DYtT?gbE_6#krs^y=H_SWw^wt(aY9fdL0`4>#
zqClc9l(Pttnk|bbyVMGeRT9cwYO<l*MH6fvqHaE8q!s{_{0!g`ODuGHmb%n6nF=cq
z#q&r?C*GD%(9iU}mk><ZQZa<ua=IBIv>yOu6e1AaKZu8Dkr8gw8BgDY(nq6EY!bC_
z3oSW`E$-guVY~3=S1n!{oPePv)3$O|y@Np?uFgU!B_UPkURP<B35n3qx<YR!9F};y
zb8oa{#M@#Mp?#$e-ImH`yqc!m=EiG@%&U>PN}rS<M43bYaip$XFm=?rcmS640au(&
zIdwI)1v4%|gUSR(su<evJ{s*Di>VKjpyaIc>*4S!a=y~yG=(A>FIXSP+Q9nW?HUqA
zsb!ZDMHl};2!M&oN^nj*p8GE77(GHdxlg;LQ6qp^<ip_b%Gf7B1^qG0c3(H!JY=v@
zgs9@H8KTv$_h0zo+%we<KAi;5;d)oJ2$<TS(&zHgqvpWK_9jN(5f{yK;>YmT^6wWa
znjAo6@(P?@KTqR2HgS@iN%{3MZg|IY-Po<mFW;iCGMDz#IRFLdqO#+QX1dPu(66XI
zD(nYZ`?X|rrAOJJGqJlX?&ml3z!Y4duXschD=n=LfJ<^TsgmP})E@Q>ly-PSW__{=
z)w~mG@7XnIwUWk6OHh<EF?i~g;Hc<czJOUVA6>3~JVtfzt|@k4E+BuZn$^Jdy8aff
z(>A-BE<%ezKLqq3-+b!@4NG!sv>vMic9HB2LIEn1>V6I(Rc;c`8#Wf$^V6AR`caAa
z<(d2*?tez`-&3EzeI}WHqX~r{^bf`#6Y(Do<v)V(*9_?2rNG}x|CxTHfj^+&-*8U<
z58!;lx|<%R|I`f%e_D`fU|c84l-_ryr*;JaTx~=J@*S)dR_pT;SUq@({n@Shxa>D>
z*)2VBtlY3DoIGG5kki`gJV=GM*a8YnTyXU|EsakleH*|dM(-^}jCM*&(<Q5<Evm!>
zfZ=3iQH~Og3OBDwczTV)<)8!V`1%;s?(kr!aEZIbF}7Mb!qCs3M))Z*Z^J^mJJ@$C
z<uHTj(%eAC3Rgg6geUYyrN1VMqIX*4N4hB96&6^Gw@eh!O7w`_XqA6y(|yxXUF^J1
zO|e(<Jlc;Lq=Ej~#Oc7s-#Zy+wOyCILY?=9_|D$bqWMwS8-OxRGwtV~`Hg4)aOAIp
z<~!s5D8@1UUM&9iLG#_hA5Z-uX#O1p|2QRn1?~T=<Bxz~<M`VF(H18y(?gFCc>6Xm
zd0RMQ0B@OLB$p_xC_v7+C_JQ*R6(qSB$1uR8HbRTPjx%XZT-E0n}*d19x4NAVBK)#
zVQ;HpQY(GFvGOGxeAcxQ95G!j;pCIrTTx%buz)wXWWI)h41U8Q;(mh54Z+WP=%_oJ
ziErSqId)dtZMtuV>0!i8tIdtnXa*@-=xh132_){5jcHl~%RdOlv(o0W7&CV#<d~+Q
zuaOORE79)RTkG)zGUQKUEm6*MqWYC*?s?E>%!QYagrCpT-LL>h^WBMg%~wo1D0gd4
z98d1=NscnE77~~-I=-s{%B&2#=&`KWU%88ejRft2Mh<QjCp@(|yp1M|A@Nh^*)~?S
z@&f4dO?!3Y{}67O{*v~;@57%UhUuTu{!b9|-NG-T<sU)J-+~q9U*rRfEPr2B$d8$L
zjiP_SO1z+eCEJU028L-omG6PoQqH8MlzwIkpQVlLvSlm4aM${TJ<sBLE20a0K#bJI
zPR^o0H3B!5sMw^V#g|0maIxyO+sAii2_x<dS41P^eI(0Tw6$MbJXF$+Nzo$tDtmf{
z#z40hh+A=c3)O6>9lN_F)Osj6?=U;Dq(V0csJ5^@LSCU|-+=!S0S2+p`~E<W5I2}^
zkQ-~P@DZ|A+;`iR*N(pH0Rj+KrAwBOdygk;sbYmv%Z@bKvv{mUpS%Nl=C~L_B40nH
ziMi%{sg4z;?yWX>p->^SsJrsl-TZ^cZBvi-ulC-OSLn`FT4z5+3-ezR(szIVIa>bD
zgv9i}5Ym5-EzCb+<nP$RKu`ZWxcs%^eXJ%Oz08Wxc3LqR3q+KZmAjxZMZ)KYMFF*5
z-6v4FTPLUSPE8>#Yh5(<VpwY_68+xPS2KxGczpCdlOWG=>F$`UO`rtGM>kr>>J^eC
z(xz%9bVl`Z-WZ+wT|ph(DJgSdrH6rwx2%;y6y{Jpt6)in?-Z3gBbF<R(%sLk&%wA7
zNW)pj0!WYaRPRIQz4TeWmXh@e>fAUjgS2pNhDjub>#`*)nZ-ssqwbpZa~K%PvtIX9
z_Vn-Ji8u(NQIb3P&*wQuuW{|E+LCdotCrHb4kC{i&$?d_P!pMS3%)JyH)USLf5ri3
z4$WtELA25=Li^kml-<3RSY!8w{nDc8!zU+M&8{2`e=%YH2i>>{X>+PZ$dQ}J76z|P
zqUPl!+@LdTjM%tB>&6%*4Fmr`je^Azt7g2GJd#o+jB1*~Nb`Dmhj$RhQI9DRYT#>I
z5V_`>^qo~AXd5A-7{egbO6dZmnCK|GL>-)>JZ1PenY%?NaI>DPIr*hd3AoZtEE6P!
zcQE!lPCFRGk)L%^a6XI>4UhLqM_}$0$54yF;(W?zsF}eipK&O5+r(LrguBQf;<^ay
zcI*;`5tpORLN|4?rNj|$LMX~Bi+O+oKdPn!2JF!iD@JiKc!w-yVIFAzi3#_R_L4RZ
zeIV>DdV~`5{)z|q+!KcvtOZW;VqzI+&*$<jqQZ9==aEqvIZZPvt$cXK<O43eb{OU0
zU+?Eu5?Zt(@Iq}9Vwl`{IN7Y)c+$0s7`ACkN)e@!h!H@7i3}gMa+=CncPo$Z*Bu%7
zM6yj@Kqo>aMnHnawj(}n=72-fkiR`Z&6(V>GDpQsn=P6VIlfu4;GknVw<TiQ@5}&G
zN-(=Lok^b^HA3Ojq(r-j!@=HVNE!`qu<Z*^KHowe))GkKE!LJFRY9Fm<3dI*uFrGw
z)&vx-q>!_im0CO#10ry9c<Kyg0smHd8gVl*&bD^8G0;(;7(e@VW@hefgdBrT&^JrZ
z&#GDdLCQYZFbR?P`@xwy3O#7-0&Rl65lrbfGl!mU=Xwt~QaHY>LR>`vx<{4wC3far
zXAyNYfg}Xm>*R2@WD&z`w}|ddv9#o%-QIx~$WEYAv)xIZOVQzq6H1`hgwNc4B5ps?
z%P8tkhWkbnZ$56k{$R&uw3!kBG1c1XWOGe9vtH`O&Wzk2ulC~mc|ZL<{B^&mT7P^X
zC}HL`w?SMjVX~#QNL)cAt~chxyq0e2RuLP^Df78{<_*Q6x8u^iOnP|Li+JIu2idAO
z-3tE9p!PZsl{^LS;_X#~fnZ+rQbHI$q!e1$3}KWDo5$?D=m)R2s;@o4GVaJ%{)~e^
z%5}fYvA!eBpKy@*UwQW5FP48|&F>ceJJx(Hw3+|VSs2*}nE$2Azcxw#t<nFOu)p4C
zCSd-K+pmq(SD}UFA4r)jKl<hmY-MKqy+{7n*t)8=Y`x5m;CZWhAP+{B#1^Z7=U*R=
zhJ97NR#*Um5*`(}WUrdseE*n9NU3g*LcZo))!FSs8b)ltH#(Y{LyKOMY{L$%5Jy$+
z*GDC0mW@ixV8X4olhtF0XBP{Bs*P%7cYSks&5aZaQ{ilDq_<`r@%{`7|IBvLTACv`
zoy;Oki{qu*mF<07N|jG{^x~|6w0@3S<;wWCG|z7W{vIO!E=&?aX}w)|U<sAXyIsy?
zO$T7<i}*Fs&zy+VD6p!{9=c+2ND_f?wFm+I#g%g&jM5s3*Pw^j7qH>r7dR+#0w9Rf
zB&gg~7cdb>MARy-iFzu{Rg}rPw6fhRO4_+M^VQbXWBohU5DL^+M2?L~5F=XKwHRi&
zRVXu){3QC5-IRoo{#icxYEpXO&~&-9-N!e^UwkIUE((g?IH=A<7JvOl?=5Z6yy7ck
z-Po%-uf98$EO?nu^p4c0Vf7NL^74>WP%czP@rw~apj(Dt<XJNM?rH!>9CD28qp$(1
zuSf56KreepBZ!XKo2M2**V|d*WiN;M=Ou!ov5Y{A)-T*KO_HZ6`PdcCiMN^9>!|Dd
z^fsKbTS(*SOPG3r_;w~W*k4KYDv;*QN2A466)Ls(`S=YfX|w>m_}~qd>sdDPY2ic>
zTG$h|*)xLN19Cy^1~uWYf#ff8!pQKj)x2xqBQmK0Ml7gy5XQ%6r1yi?pplbG0w7}h
z4HUgu=L?>jM0;zNhRU3+7LAtZM|OC}8Qn6B`1nQD=XO)lu?;ccWQ{PuMdBVD{qj4V
zAHIS}K0(v*LE0%m5(ttNBw)};Oa<Vk5ELLoixU}OW;MXo=w`~v#HmqzixB1txF{Ra
z&PHfNY7}IIk}-<Nv->)%`hNQ@<y|Cs*A|~3@d0YHXc6UCX_lOjN=O&JZ;*bd8Md)u
zIsvWRz<K+G6NdIt_90Kid{7eXs#=yiV1yn>Qo=~XSyU)~P`RWbu+V+vS<%;sY+U^g
zt%N<EpUd9XIL)vhnDXf=uBfOxy>t*?C=WzDI#mf>Xttnp`SDIJLSz7*@-WjJI!0jJ
z0T#WSCt#+7S)y9lEirFH-;~fK*9YUIe=cj;dP0b$lzvVkmd1}9s;ZAT5V|n1a=4VN
z!$ntsb1Rxn4OIF-oyP(q9Iio^Tu`ohY|JFj0Ke6)@63YaG0Gv{yxrNo)H6G&i=!M&
z(yO;e+p}f0-t`vz(nV`hK(@e2Hb@rU?aSOjI<+55k}n)<dtt+ZF@@(T*m?<WR6BZ8
z^7vOYhOqadjY@Vb0Z|s<P?81F&7MOEfp8|)S~dZre$lapHp~5Egi+rLn8i%9+a!$c
zoOkgA3zYlYf@8Kmj%v9dR?9dLEfz4Ud!2%SX;F@UYE}e;)9j3#4brX2^j&ovp0YbT
zfkr3t(RrL@9Wf+Qp`2o<WH9i*p}aYsb}<~#ij~b&XqFoqqq1Nd(<|V~P;b7)rv$lD
z0z9A`y`QtTA2qu+<mIJ?*lKKPNHNQ0pIH+mTQIymxG$JlWHULjl<$hnO4*ou0Mtq;
zuUWOU{Ce_sI=qUvg>*kj9_;xd7B<P=ovWEKA6yNHt^jFEH(_r+<1^&SdAZFS+L|Q_
zjw=0~KB6Rq;VBckkSLv2@9S^f?yH9{RjVvy(L73lHH0mzDU@pgreehk$gpkh4+|?v
z{#dSiIjKls+0Sgj#z8D<Q3{(A)oBMoQ5u=xb<aW##1n_k55$=~70a6)CCivB99n)O
zwi{dCM|bW@BJf<!`0$7Ibe*>jA*JZsj5t;2w>ieEm%;l1U7yk6>+xcpO-~nUM0M7X
z<kEeYc%L_|Dq|i``hh{Uds~5RH#GB#C4j~>>HIgIj3pF}B0s5RGpk^=3Xq~Ru#&Sk
z4pX`GD7qLu5XsP)Ze=NytY#WXa%@@Ptd0kEcSqk=I5(a}KXOfb`#oWc*-=&h#FQ+5
z*@XDc7k^?(mVerW_=zdMTlfW2{!lUe$b7$MyI1D>fhqr?4*lAQ_({EBVgCC%biShe
z>r4%T*S_lAXYP$9o(Q`&l~1WEl+*Rqh2<p_b_yf{tU%Hir!KZJ1&UPCX)%=(86A)9
zr;SI{jcFEr8MdJ^YW4aujOi45wNum@YnN(8^nNIJL=_`CT8RxtZ6~t&?G#7$=Wcd_
z>)|xzX>^`d(8RDJTqoVZUs)T6fci*y%mLU`FvL*auy&npeB-Y+B3QH{0BxM9d<&*P
zvCq5=QWZp5<kzyX3`s7KeSq`jAr~$(=j~AEKv1lL$VD|=thr<_Tl#?NNwn7Lol}#A
zXS^yZ=~IG8`xScqF4Ap@suPRqUK!TZ=c<@~xIV88`bj8&4G>VnI2qA+0R48lWw~<`
z66S#W1eM^Fxd%bXzBRG%JX=~oYBM1mNu;|v@)WlF{#zrH?YgV4X(HjsA?kT$w%MWP
zpYdo1<z>`DJM9PW`SP>{4CKU{^3KX0kqsVcx7DCh`TP?2U#EWDS5DiH)7-Znf;x3H
zrwMfwitSn4ucL}PZ`<73&lA|3P(1sQ`>=Vb7Mz4PU0Re?l|?xhS!+eY$`vTT>PVN`
zq)`T%qX`GwZpH1ygB-?Tk$5cDf5X30u-Vg-aI$<+d7`wTg;5GqMeTf<n8rkij5mfH
zhtHd4-vsGn#Vqo?V1W}`=ED3ayYQqp_Cb)o^`ow@V{oK%Efp7&HQDsJl7wW-th1EI
zbN<5tWk3MF*^AvWFn*MUjx5>}APP5$%FjpbM+NnlN$K~X{PR)!-jw?X9UPYbIfuvc
zV=4V>;qS+z_Mc?(9}9x4KZ*~3B$lkNsp<FE-$*RqY1u5ZqIlj`OnwAW!s+0>NOC@|
z1OludUy#%Q3Cks+qF$`oF}%NRA<0*=C)Lmf8lV6Y%A=0m|KQ-}CVqJAaWeug0puT%
z$C$DX0tPODL_(3%_4ME%W{aXILJCQD!Ps&4yyc0)G}aSNs%hrh7An>lqK{;J!vpPo
zeLF23n}~>Vm^YqmbmjET?#7FU7%+%;%N-F4l1w}Xt;X9pt7B`!J;*<rDI(=Fk*g1s
zNG}E!3X_bwhWhBYwCDR785r2U)uc5}e<410ea)#kA}BB_8w6354Wx*k%aB-l>6((^
z5e+^X<&=c^dV(IJD%Qk%^BMr)rwK+6@FaSixjAN}x$~7dJk>K|=Nm!jkx~k<>UJYD
zE%j2sNEiry5r|;0Ga!s|1_x6fp`hS&#yS$^Nk62`G5cd^;i)71lg4kp)1$r)!r{KI
zFxtSbqk6h;VM>S@Yz^46Ln(!&SozxJ<d)t_3eDqY3$bU{PoVS}K|vHb!^ok|jbXQ5
z2GK*{gs@b2bfvH$G;0?i_AHNa_B`!YkKzS&QV22M87<d#-lB~%b_6kERx*=G5QKsH
zBMAqYF)hy3?*g8o1O@l&<2;XXjsz_wLm)2&>dYQVzw<YZkS3m&>xGTwjafbd-<g#K
z%Dcv3OMnX4R1u8)ASHbw4@WQPW0l(<Dt^c*Zgp;*SQf9JP2A0piy#^$J%zpgO+`m5
zp$(5YPAv}D-IgYj5-<nUE+5WiYKGA+xeT1ZFW!9Y`Z8$KO65INwzJX8+az&@oh2b4
z`%g1=hTF^4{M*XY%I4|#1t9c{{fmGl>J|gSii2{-aH>|p29UlGv+w=MlO#@5$E1O|
zpXxO@j1X9Sy!bf$8WN`shV@2zbAY34<;JCrWZqgj7lR*Sk@y@t(|Q8Ju1dMCAgCER
z#qP9kIjT2#n8{&*;S~(N2^7HBDC6|Erw=V6dhkg)B_`}Ktg;)DoE9H3U<y;6iyHWh
z7))3|*(J*;BZEH6hvYvrWC$oh6j{YBu24EQ>%~KO=lJMu#Y4K&kr|<wg_QMvD8Q#k
z@7{^g5XyA4Tn^58+ywMM+&b8b+PyBoM8Z~O0A_r~HqTO%t6b^vZ5rWFrTZuGt3c%G
zq?+_@JuiO*tSlN#B#|#){6ft9#F)y(wDU*0ORLH*++BD0qDlw9Ncjj5N>lP0Bc-U`
zA{y=u5p|3Y*Di|Jv~UAELK^QkoRoJl7b4M{$a#qQ?dAB0qYYDN5#T3j;<{y==0oaY
zN{z{~j+2Xb7xBHra*z_YE)>f}AnbiId=G?7Di86-N`|h~nG0CC4TQ2E2u}F$t|W3F
z6$6Fw;_Bjy77kJ<J5vRF-}N}oN-l^2b}c3eXa?kM_xjCOLiPQjS)%u!9sIuN<)aJI
zh8x!TSvWbf#>`oz_A(G947Cg6$P0b_0*BfbkLpdm6;&Yio>`bvR8fQC7!y_$qx!K>
z#Ipt{_?U`!PXN}&ZW*SzW9<0Du{$8T`^IXH5T4Xr_Zj|M<=a8@Q4f3xU^Gk+WWy0I
z5V3N@mU&os|E70Du1Yrz^Ujt^61rNL_1MWG!`z$igu54J!=80u_-di4dN|$SFl}p6
zY*UmHGLJZ+GPzu8GL{ju79E(uJ{*gt*8muo)>X`ntW}&oq^F;+(AamLZ^Ye`AG4Mq
zoG@DfI7h_#R*w-QDh|WP@s@qC>X=;wU_r@EGj!G~B`A?!jki7$0x|xq(tNKqml9j1
z2XzAgZaKLIhRYhwg>5(w)>a2^{urX?ibXV-qWxAg#@4K_kCh%=<QQaHF(4S;#jPdd
znHB;1Sv@whF<1?~vfIenZaV*2QN?D?Xv78nm|(q;u<(knB$5lpy4i)iOD;rw8!W$K
zo#bA>W;}=w5jc}V4amW-v2*o|KmE+k=4}t&o93R2sv5yt1DmBuk9VCuM!a_h`w@;W
zoh$hC{b0niayfC=VB3Y3v82j#Q;lk_4`F3$<@o98%Dak1%(91NoA-njr|%B4Hs`te
z$zHq-6s2*}_n!d~nzmivOYtH;&D|nm$szEaf1M!aguSmIHYJFam*UbO6jxO{1b70|
zFLg|MN=jT@deehF(J+6n)hpC^o(K&ATh15Rf#gIsia9r?6_H5SG=aH-ExR7Qu%z5;
zcy};D&mh?I!n0;9iy!s`&TA6j@iRgHsAK<<pubbxp9%W+p^LxWnfsZbf9#|EnxJ1t
zaQ;1o^LLb@|21F!XG3qSzfy`AU)#@rlhDW1v>eh!P(0@=HV}=6jd>TfI!I-v#L32M
zBQH=)7%>RLqd=&#nZMn(Jpv*zid1KsaeZKD8CjieyIpZ;JTvEcf1VV_N1QoHl0pX@
z37m@X8=rfelkS9wFep-cU@~ACtFJK&yB#G>*>8fS*HYKFI4z;cOLa36<<xC#8Y!n)
zS)I_HuV|js+r|eqEo-a_*>(5uUY1$uvJFTC1qkWvpPJb0F(K*R5zo;O#_B>sR*!wH
zSWK>9R~xlG^9n+omH_eY0U^$1fn|N=c{cS4o-wb}iO|jLyR$siTgGhW?vx=u#-Pf{
z(SptB*40@f2fZiv^P~{q_fT*o5ugmQVoW7v&jTe|sod(9UFQs+b?N+5NW~D>OfV69
z3A~7G)fz2@848(KEZdEGsJ&Xo^iq^r!=b~27+U**UM1;~uOh6~pSdRBTlLh4L<q$!
zpBsY)+a?YxDG=mi^iAUHh~<4jk*74CfZ$T}i--HcV^i04@~=a{Aq6#|SdRHd8~GBt
zMFtV31Q0A>)k6Z{-dx%+e6W^@o%8T+B_KxVr{c#_1PHY6)O@$B<DeK5QB|q6Yb__D
z6x1TEjjrD8EP1NkVo}GeidSH5&M2EW#%*b~nhOk@gllSCthO^=+1MYkf34P~8$#gw
z@G28Y)H<E8#ZT7Cu*pF=sV4a+;3nqd=(2@;uoV&uUX|RRzZDCi*FuM8YvYCxZL)P`
zXEP8qZoC7*WDM_(bAu6nk=z^3J|v^ZVIL#}N}bFJmOJ!BJMz%jkDPGoSn4tEqNhOE
zE<`M%4S|%}At4L(gQz{=lb1yby<c>i1@8e*oE2n<*pkofX*-aTSHg(QzNO@hktV4-
zVb<5IWi>0by!`+q(h9>2t2>hhc#wjfHZZ8JAmZl7ZlM28ye$36lJdP6J%(b4#SmB+
z;N86Nx7Cd}Hqpw(h2yE&mQuEF1-`3DVnJ(VW~H3Bc}J{yCv%A4+cgJlgd~S%0=Y7f
zkZuuiDHKr-x*rkXMY`Cxpe_p)Wbrunt5s3g3YWGOI7Hn6G3T*nEyjGm;O#s6OnhXg
z9N#73>Jt|>VjLR!)U`HhO-(6D0n*cCI4P5I|Jj*woF8(iKp<<2ppg`RT87>f%9Bga
zBXv-6G{kRDrm9>q+oaSt^0}Q(i74Y>CxAdKGEeFX7&qV)s=hdp6@itjGUG@+4nWfR
z1JFqG5{$Dp++!&6j_3>Sqi32skLH8P=|`m_!|BRk^9`VnG4Jia`c;^Hq#pS=uDjfK
zqOR$LvkrZ)Mg=OIVSB?3d6@N0o6zMRSoX;`-gf;+vSx%)QTR+`&t}Fy?*8t+2i)67
zS+&%jvDIaqk!G&NT_9&LMTnGFIu{OuomPJAWY0HBuR^w6G(^h5q}D7~S{EVVbFg=z
zv=2~M<>?A5puVR}GJppY>A3?Z=!3WWuB-jW&JXh+dE4aGl#lw_d3}a8)$1Qr<FvH)
zgHH+ZTzNpe7Wi;H5#%@M0KK!G-|lP>+;Rkfo$*ko9`ZmS3b9`yo}{YmIW46fZiD$v
zY3-MWgxc<tsS<!Y^VPK=xe;E0s(7Iqd=VKL#(veEH-XrgOoijl#v^r9_crid8e(X&
z{Ja6)$|tw{#1*W6shfO9&p&Ym>p#^^e&UMn7XClbP5vPd{6Z^XVCMLJ`uVR5yV>75
z1|kTa^Qs52ASGjKgS&e)E+iq-wepW~Ab`@JXzGzv2}xVNJ&u2+Hkv9pCZmKx0c%Ac
zr=8FoAC;3$t`VinPth=TNS#PFaTwVrL#K`x7*8&Z4vqODK$RN4lV^PxKTl3K6-ec1
zzonNjbQlw67*8v-WvfFvVb;NEsTJRCsB>bmo|lzuV@#LC#IS!x-mSsd!<ZQER+s6S
z>G?FeUy7O4k!n|989PR&*OgkSGTy*MqujAD$}{T4u~y>~j@Fa@L57M%&rA$|j0AZU
zKtJ|8k1PVjv*lUAZ7F1-V@7MYp(Q)^^w4wW9C^aE!3KWzgQYKc7fgExOax+K_RYs+
z0r(Aya<v?iY*FScc2yFRa9_Euh&s+;rSr5Z6{(_89Gf8_4`tREz?p0_>rN>JCb%t%
zC(Gj!CA6U|Tpv}=Ce4=TrMgBr$WhY^n1om`W{4<MaevX9a8fu`T?C9=!z1TUM>vqZ
zT$1iW_5ROm&Xo;LTB;ug0&T?G&lNdo*=tx;eYC4I?Ql0bM0=8~nw;LxJ4cg8kQ4gZ
z=kG(mQqNRG1UqBQq*TaSh%CgEaGH^LQ?V*A7YZSPJ1_>L4<YbDZ&m>``(<#t<BWh=
z0W<*b)Rt-kZ>==EH^?E_lb@QH=^>LlX|vI4{K>L>P~@_g;_V~s`g~V-m#4q#BL;^@
z1OoSPK^Y;nX)t0j^|U4|h5D0$gmzvN9Id@HYK`1#hK?e#jN`dSpvjyO7r&4h^GFT#
zBN$ot<J2e_-b<kBnu?rch`JR%iSc-CeP2jQM<KvM-8Ff6Z8#ieYz@hDF8mFRnMVh{
zO)q0AbZ>4`KZqeblbk0$aQOQOw(4*&I|`o9t|L6?PQX?S7jLEM<P0k37iUo}T6HBB
zEn%Mdmx^t2R|EJfs=BMJr(lWu4_up?-+&|Ok=^MN>y$%(M$sYz(&3As8VO(ar8|Lo
zg2ZAyxk$4^Z`?nc)jFqT1e{GDu_H9sYJ&H*mI_f*ByoIGCfGdu=m?7aUUqxQMukLU
zs-OPWcLB)5k?Gm@EQB<NRPPLkT}D0#f)(4|7_>;Gw!ukbUAvD%+x>tj0~R8%3<wQ~
zmp<KSMkfQ#Vq5)4^Xef-Hf!3AIGC#IQ}gngD{9&U95QryYNCK9IbJ(3tgtl_1G@up
zJq$=&?*ULl%INSZ(NH{D|Mj5J$8jI5P~uPn_pq^@>}A_{tA3CR;uyjf-o}Nj#Po6S
zyJ?@(%9DV0RufIJYby~{OhqtFxAba1(eX9KqzC}Nori(Jrk<;n<7Wo!)z7s&DQ^tX
zIQPGHn5pJOv*lRB)PSHl2)(7XA{Q$(c=91KX<uEF>Ebay2?aA-88|d_p*H*a@;Myo
zYiN{*Sg&^nA<J6<noE-UP$!VNDcU`A97!A)&O8%dTG3+mlfA25-}pxdz_x2shj%?k
zJ!1)S-B#tRbCK(Jm!&BB&*TfBOZP(&&nFEHHk-~Cf|UKAXJ;HYxi`9pfE(ou699Vx
zwQzbcZB6i2AZ<}52myNsA`9(;`QJ{`tSm+uJ;ViE4&zs1Y+YS(s;<r0Xf6oY!avxi
zG8k+%oZI8RL$i*r5mXF3byn-*$L9eoK95iW$%zX}>6eG=i&6@RBu3>}%3i`z86eFj
z!hF~X$jnjo7n;A9>n`O~F<fW`nV*E2kT!j<t*8@1*fs0_xmVQDcjto%r(0Vg`Dz+W
z#H9-_otZr+_xl4)kEkmDZPfO0eACa3-|R5Y@3ii(5#TK7k7%<)Ww$_uKvI-~>yN|t
z#pDrD+R8uZHm1PP4{$ldnVWu!uW6t5cscY;5CX@2cNpQZ&neYsxiydq#7>uO{q4+#
z$v^y{5R+pfC%1^m5DgSEYabNtZH_eFmHRH%d|VHUR|6|E?R@cYWq5a=_~Mk%JFM4^
z<KjSTNJ|EG8YprA@&JB?ty5YF_X6(T#9QsB`Pn9}ZxYvR9|s0Xf9Ax$6gXLbpG^DD
zh&t>4S>XI`;V(Gxm)-LJ(Ov(CocLp{_=niZ#PR#j8~&OTkJWw<J4dN`g{$ZUm+N|<
zKo(Sh-<yUD#C}mLrE!Z(WPb6w4ND+i3X9k6<Af3Rk*lp3bbvp7D>^sQ_jM6_oJde=
zc-pio3?|ZXIAkkAG<^3_4e7(EFxeJ*=!TvALOo6Cn_GEpn$<qmieasWp<5$H6T8I9
z#^{*y(&p~vn>pA^P`C!JySRb5RSg}oOQnAACH?j8)i`5LW1{;;SFYdM>>=IwM|zaf
z31aF>mL}d~Yu<UE?L|H|Fi8XqDLDcoOQbMxFO8F+_ZTw0XL~%Z9LGURi&k~#7y<|`
z=0V`Y(1WRD5Z<0LiW?=JK6idBE<zqvs}zjOdIz0+#zEE;U^9@np@m<Rd))pd?3@Zv
zHs!g7O)5$bvR`bNNvu@#+E-yS*Oj$jCIulin(~QL&lw@7Hu??_z!tUV<kNt{#<!!^
zRK6If?#S_R;1p=e5D7CZK&@ViT`>?IB%>{?7n&+B8DDXkh}gZ#R((8wEIJ$ZN?j@D
z{W!TnV1spa0J?yXTZ=MELIY9Wi52Z<m+RrkCT!X>DX%8iV`DxpkW<OKo^TEPce--&
zY%Zl=k8~5Q+IwPFS8wlk`(;Sj3S%^>09fOI`a&DMh08C=)&<&_k1ruvIcA)xNNkHk
z5jDXFun>Ak5)N$3=x|bwgo@eM6C~OCuzIK&)N$bxuJ2FWtIJHFuoUt=1!Zt6*C9no
zQMnvi0r?;?4-$eQa-iX6Se)k<=KNcT9j!zU5LpE?7GzUKY(2KOKj`v~g&>FoUcFe~
zYAM3Dg6ra*676I*j}0f5R-wf>dirLQl{b&|PtP~njd$Ob+?ZB9OX@>1XC&CEdX}4y
z?iSeFZ5v!*;z7Oh|1c^qNAKO(*lZC`uV+jE2y0Ky97}`?jme9~7@JB7>9@<P7ggV}
zvM2Zy>yyqm9*`5A$Yg3*u;9irBo?&$0>XhDlsQe`1?d{)+Fd?>Uyy!iTFw`e0OLYC
zaF2JCOO~onG$TCE+Ok{>%bt_!!3W1eoR(Rn_nsse9X#hK`n<hgXOka(m+N3>b56A#
z&{NAVkyn7DJrj%;Y!idg7M}RyIOiB&Gt5kUt&I`^AQnI5!UiM`-Ed~sTG<GYUfJq5
z|BhPGq#$y(!zZ4r1n<W8B^TT=08VPIId^6PiY!-y_!iI@*%YpaU*QL=zH!(sZ&AAl
zo+e$7V^etfeOO+vzln|UIE>#v8x0<g)g4MyHA=LBV>m<r*4T8%<@vDj)m{vpytIEQ
zKe*EGqN!`LRlS~2tuoP~Y=vKraND#TBK}?ASYzFC^Z8mw)%`wNOO%u{BX{Xpgm0@r
zJXJ|Xd;8b&@pqws>I{r!L3Am=Q<H3s(=Q&jak(d~BfuF(YJ^&KwN{H)6WD9K%hokE
zZJ(Z$TF%mU%DJ(iB_E%tmRpK++E-rggwPSmY4xiicLz*1>sz>;VMAcGh~MW~$bk~2
zeF?r=9*p4qLYQ&^t|@4y_o4F0Z60BB+(gSCv3RC|1(v<@@$JWc#)lKk7x9TR@Y~fl
z?FFip-eYfOUV7i;-G(tiLC1m23@Qd1`F5Kd1f@V$EY1h7$EQNTlEp_eVT^-{!zROv
zKSK=mfH`ErK_jq)c8K&#JVB+bFFTVIMI#U*R#?4wG}ii~pd+8s7`|M(Mfw_C3m+eP
z54t}$QdK-k6t&kAgjZY=8Ti2+A57kwUVKjPg_)%1yNuQ$i9)kKMRZF*`Y6oWD%yKE
zUykWjpJ=sVN(dPW@rI3dE>!N02#_3o66YC|&D!vxiE+Ygk2hbbrBwMCm~Obl(K@hZ
zL@1A<$Q4!#7TUY1&3-=w<q7t>N|)_ty82Og`?cKneZ=a=L44MK`ZLv^OSm5gx_>SA
z{crN!pZawFjIP*zELZ=aD|UvzJ@hrEzWUmmL-4-U*%ZYr;=t=zY;d*;Mun*S<c2Yc
z=Bv+C1*S1f;%0R_e@dZHoiKT?reQPaFBZzN_Iz?OuzkOK|23EmW-m#tZ|3RA-1>{=
z8-h5%^sI_?69P2J{#3uOWfb8xSrgiHNh={=%eu)&<{m)}m-~<y_t!7KD!X<pooY69
z@~1ZlE7S6P=*Vp2$?D43!gp*DlO|E6*Eu%!9)BgJ%j<~o^>K>Lxxst#3^|~=>U(Q4
zj8pRE#g@ei{|r*7cTuEmUt!`L5CWk4+`}=jiv0QS0B1oZYS5wK7R`6l3MeY%E%Iwx
zH6MM4otqkpsjY7`m<c>o)S2<o%O}a6PUk$Wv2AdyOZEVIB^Is1%r`%X1ihWO2qmEz
z(A_GF?<bqO8YDN3K&61f<ws$e9D3^X392I)_|}66vC^@8`*myJa($bM;T@^358`t*
ze8NTJF*^#(rXxb#vQ|WGE5&Nz%pO*s{>GI)>9a+blnSZ^j$n5+DTOc!6Od>I2Fi`v
zw0jq18)i^N4&$dg<zr2WdLonswae`Vae>z{;L7wt!RS=}dF99ZqGvFJdHZjMkKt3m
zlVqdd;ur_D*KW&uZ+MqicAU}|fa%Ti>n~aW&tZr^T$Y&~J(s{5%-E@ZT@m|uP74r3
zuZLd)8*R~=XW-*t4Pg}IsnOXqd&3Z-v!nW{RI%}m2p`s^*a{}w1*DJAN<QZX?IvO)
zcKJ23UG!tbq`>I2uit1$$}P+n)$J}n$`zbTC7~DQ&?;w*`R0$}dJqs+?N$nBT;iWg
zqmW}gmr&mDuIBN$qb)bBG8|y&_a}0rmX?)xrno+(q4;Fz14QV5QMwwIv#Ndh!ncxz
zJ&Z&{{q(qfxl}ixKlWz0gYCJ1_?RLrrK2ApgCZl$SozqxnX%eDY>pII0%;PU5S}9F
zx|rcXNY3(NFFtF>DKy`Jvo0pRlHdhChA%4iP>4^nWop*#h*nVT>xh%KxA=#TX{J=N
z(Lsj2jLuZ-SUb^6yIe0@_UYpY(!IA4;e#Z;98X4+709`P9TGgnDv-`Oa<xb7gz7*N
zY2+VqYo*PHxd$LGoie_~$im1AjGU^7;`D_-zLTj$7TyORCY@_5m(t^Fsk!t<PZI5Q
z`6#%$b$n<;-?x53q>LjLCI}~cwlbGEf801et=@{|#HAfAxg(yeH^h%j%d9fwN&r=+
z_=pA$xW1#y_<nb(b)nhGl)2S@tc2G3A!(E*-(y+;q3g``QeS)jZ5WPJy@PbTP76Ih
zY0G|5<mNi-x8j;5JtAgWEFkp;F0YO&y7mATH`iIE&8FdoWv@l>;Uai)d^ZdkcF<}y
zDC-(@yYo#0*Q(<Bqeix2$Ww`ZF0S*0vx3M|JYhHG*_O$)L!WlqZx_Q&>|=C2yN3AB
zF~OqDs1^kwBKXjcfRs;3Y@1dsc6u9}PCa1DR4eZvykQ@r3@@pbK4((Qmk-9?DA+dQ
z;*96^tW%c_-t1B>?Pad%tu*ZD&cwAOPB%QQi^KYo6uUG{*f@eH!`GrVlin7v_N>&C
z#V%uXZSQ=Pia4MV7W6YcSOg&y7OMsmEWa*}R$Zl!pjvlXK28(40SrWN<W}}wZy%IM
zht)6qL=i@Y(+Gzo-k^l@2HdJ}q2mCkH4^hcpM9rT4l;`>LXEP9cZI6mwAAbXkFoBf
zXuy7qFiFk>k{OKKD1N<=1Lk;yjsQd2=~=ZV+XOPg{ezmFx7B>FeL-P+Iv%Ji(j?#q
zLXG~kF!6G7oT(8tKcXP}c-uik*&q`r+>qPK{Ysr^3iyx`KzT1d$1_PNRzgI8oWjQE
zy(Ler8y{&F2|$sLP)2f4_kHo|9_qpSNCn~LG5fc5mr9gEH{*3<liChWS}F`OL_M&j
zEpV{igNgmncs&AL^q(p1+9`8GN`bTPC|XgIgE21Uoyb}5nNi4TkHyc(;`E!~aP7U}
z*21<C)5||nsy4I>DUbngTjZu3M1Dc*+AzmJ2`F1sdOYTg0KOdP!wCDpALbEW`0NOX
zM_~6EFuI6aXqRx=g_nlJmH#n`r>JEWY+e0!#w~y*yWxu*?`rnI`BFT?@e6tC@CqYQ
zB2-tgffSg#iOYdjy682%U5=;E4h^XS31>)ym^L&de0(crRcl_^siE`c2s6UjBJbwz
zBj&ms5lH;)8<UXwdho|s?icDOggM}}Y_T0Ti+eTm*}PE|5UVM89DH341p>VM^@pd<
z&WeH;=XJy>#ch)5mXcu@W##pAny4p|5ZcYo`}r3lb|e%p1VabmvYP?m?g`IuzSJgo
ztQ_UwdD*It%9}uAUGW$0b?U~^8$J7^dA&|cS3fV>V+Zps4GAX<EoHk+KnC6xP21fO
z9p3&l7*OwT_QzlZ-vHN3q)UFvCSC`q|1(hb%WUF12meVBX8S(2{ePM6`EKF=z4-nA
zsd@PN&oKY-#~&F78$HwCZ63C%9sQPZyqt7&uaf~Yh=$2tYv^FVBj~KhTJWidKuM2c
zSx_JwlD=3!jS?M-`$+Vq9!{8;=VWlbE!wLt?fFiTY7cWn%6zZ%n0wp70%W>aY`=7D
zK!~A9O@cf=89J5hsLm!Ww>2lfb!BoRCb{p}E~}wWpEAy#Fpe)LZp0<oCe%<X(UtG$
zbQvt9Y{QJ`YU}dw`RlPc*&fcfP}`PzDM{kJqn_7(;lPAPd+Pc9Bc=(XgS!_v^0-h^
z{$-C;es%g+6MW;2n|<od?A_OfVKj&n=C<ZiQ(~N5<`BU#T?j+PrN52mYAc^>=N_0P
z<p#aNI6p{|_<}&a(|g%G0eCUterioXpO`(;1ODNi5rHF;b#&}BZ8RgqL=tiFVpxf^
zM)yVBMwBSK!fM--V*wL@rc8hsa|C%u02MC$(}>&R9kl!IcTR0;=J8Ko=IwGm9i%r{
zwQJ|mE=m&~S`!F8fE1Y*oI&(Y%iwBE(rei@yxD>^$tI%*39FAc3`v`WrD;|2^F0D=
zo?-Y%lX}Otj(1dDbBwXRP|rGf>8dR5!Zv^aY{wu`iE>3#ZvtQwMi;Uyy7!v5jcTw6
zYdG$sB2Y`?B#A-8=@0UgksKnzkv?pAMhti=f;JVjUD-Bb32ma9p&GX=o82Os_1BI`
z)h>{i-_!Unu&^RR853#Np$u0^VRGq6jN_;hxoi09Q^s3H?{W@9*WfS-K?{J#FB$Hq
zdja!)=14q#0+{nlb=uFUOcdScsDed>RaC0Qroc)Hi*p@ft(-)N)j`i{RPqumB?Qr$
zL>MgLD?P0z7eT>b3`d}z=8QbyX@~Lw8>-{Ltc`ZX$iXT#kVKhHLOW`0JugblR*BW@
ztQIF$S%_{1h-%UAD6FdvlVsz8ld(g}^G!tH=fj3)90K%U>j*_2Uhg?xQ$hBdLt*DL
zm97Sf0Rr@ot3}NtQ4<|GvBib2%?`8QJ~cani`|XoRqGMyl7Ba^4u<v-9zZ=|`NqD7
zHq-(?H2lqHI!p367UW=GmZd76o$BqPItKIIg>Lj(=ORC|Vif%_sL)5f(Mgo~N7tSD
zrBmP$EyFJs#8bePv>y{<_53ABq98s7H@xx4oJV;pc2)^MXN3F(XeT}h(n3phSUqf4
z6JqQ$Pzt0zAbw$xlT)5}FpSuw4IN#DcEz`lVu47iNIeCCn*#;VWaQm$hIAvUsVf!-
z5OoS;Vdr6XeIh!3xG{``4j7Rzqo{cAc9BVpW`;~K)hlK=>;d3!Z3RWqsV!lckE6*S
z%Huw33p2~`eBqE)zLmG$r}jT*uk&``)z4au&RFsV6k{3njwelIvd#lc2wF@?x1lb!
z_HddUm>-)`^?F>Ou4W6znhQ3DVuqlN3@n%H;?sB=0(Ko?x^VZlh*uk2`WQKuAl0G!
zi7j@cS+0@55O)-kS57K3syE4;&5q(u#XRBBB-q;G>sOCEhqK_&ZDlBU@cb+Yom6$Q
z3~bTU^z0pD1Znf`IpoO0`f@mf@&W$+cAH7h4$)3=Lq{8G$fNxZ7%&-nKM?p2N~u@e
z@Z6XYR>{&?M#<%Fg$JoXtD6`+cx0ZI0oq+3qmIS{z1Q7*l;JCsY(s8MSdhm{4ujWZ
zEBAw5lw%yUc4+d^L3f*0Gppe8g!`*{A4;R)4N{p>?_TimaX+)t-3%-l+?Jql!!;{_
zs*lY(VLB=GA<Zf((ybdwnD0*Oy_vYKOx!1X$7;P>i<a2;n1tFyA;7_MR7r0+cmFX-
z<M1G!&n*-yi=9!eIhfA^cQCXaufn>(eQ5#xu32q=L0e+pr3|Tuz)@8XXSItEVi<<`
zxmQsJUX4P59+AS&c?N;EE7%JvDpa#G0SXC_HGOi6$VGUa8^F`lrRu%oko2(ww`Fzo
zn0yVbB)g$&UyBO}^_AWRg8JH&dE=a(gBKoRC1fO9!0-n$1_lI<?iamjD<S2sI}9(v
zGzuP-?NbH@`z~DgKEj0AH{6h=hpJRTJ~0Q12WOaR<~xl9>xr03_y+x8<@8)DsFA#q
zdOaR;y#R}kRxroJMjN2c8yh|YcK;7?=M>oao^APxZQC{~uGqG1+qP|1?21vbor-PS
zb~5Si+xMQHb9(yp+`(%eeoy&-*WRDK_Sz<);NhuAc(K(S(*<TnasJ=jrDZxxXin)x
zYyt>dUe)%~#W}n(5*8-6tY!6Cu3FOqUJ3AhUQe>eK*6S}jE`2Ue~B-=agnFWCUbOV
zdqLR5ZBkK^qP$i*LxpY=NzvY<gPIBJ=;<7ug1FcvIY{JNp+Lyo!J8~VnN2p>z83Wa
zT;N%IE|qTDT!6FV{=N$Mt=smGtAM|*dHt3tu>QNt{j7hZ=>L_7`PVP}iz?thm&E=N
zd;bG#_&1rtA0cp7`akXWol{kF$Pk79+?wCCl2a1g_Xp@?k4~^>k<L{0Q0%8bLnVsP
zf<WfwzF)9;xb^KCK(TSwX_QAv{jU75;IgA~Gd#-b?;#c|NO-+3L8tdU+7%v>w$1In
z|6t0Iv>>#}CmrqSX!z*Lk<?%>JNXjXyD`Jw=UbND2ENvFRanQOl_Wz@3aQm~ZK`)x
zX9o5J*{Z>1j0R0EEI)>wO--6-hUe2rn`KX%3li!OF>JdATeUA)*d+@RiJ^z8%s5##
z2Rjoy^NED}SMylkd{PfZd?18C-_(#_6A(oF2k*uX&E#Ra=jo$Rq`mcKUC<sL-Tcn(
z?rzK?20kJI+8tYE#iB#>vVd{wLTHg<+lY2CRIv4+Ora)ItL(|#`jvoVJAGGeymy<j
zeGTH}2>tTF{&#cSx#^?4BGjkoQ*8`)ayf;_0(VaDDb1F`iBt%eY{(PzEkaE!{Z4h5
za?o<qxrqY(R)M%sS;O?8Ar^4_7{q$y_r_Wa2HQqmiil340_VRVUikCD4UZ->AW+CF
z>W#R|B$rb$;l+-MQ{m;GLJma8WU-cca&HD^o!qTLOEstK)G%5qekLza+w+z{lgbHG
zr#cWeva|ZT5BL*@5pRb1vq2C=96)=;D<2Io7nQ*YXA<Q^5|(zca)=UZ!c1G~GJ^eN
znisx|<z18Pos?N<?p-W@L#-k0Gd!Df1by{UtwYW4HgEWa-;Ow*C&JFwMa-7yD-Szk
zL#4pp$x`TGqTpPR<Y5LxpVyxBpz4u9DR5`kMQlNJIfmJsSvi}QnOBO>CvA07XAHOH
z_(num8CF~I<y)XT0Iys*s{&>#&ZY!DtB~p3m<qf3%(BioWPD~oJfaR%OOvj@)3ycM
z)sZA$g!EAh8V%0F&FH-1v^qeho0V8iHfwbAsAE$@8mwT-QO%fRj*78H8V5<u>;_G?
zlzWp1T8^8gYI*?R5oCV$d%$VBy}iBm>?Nje5GC-zZTm{Fk)Nkx%5-O~tP~ol1kj7G
zYsNy>JPcyxbzc7lO2u-Bty<**$y=<x>DGJ{Q+qkrx6}17zz8sgcKFPwU5t(^mQlT?
zHa8!(APkOdJfEgl*Wjv<lEWFg%1hY8n(`Ie0B4&S8%~$?ltY$^^mO=*N=b(JxR|&J
zZ0sM&Y~kL>k53b1CWCn1-@HGre!yuwsfi8dS>kTG#Uc*0Jb->Mo!GC$9LyI9f<R2k
zg79TXqx<4Cz0erfNJQ1!%ilBx&+t_2>MzQ1C|V^Mw+1Psb8_`2FFv)beqGT*ie$DS
z|3VQ!ZuquFWZyan!*Vqp4z%!1l{-1f4oc~#OXNAWsZ&7*r&ogDTR_rI=@L2rVy1p>
zaPL)}T1NeO5s{mNq3)@L<{8+)_E8#{x8?ru!35V+0Fw=HjXpdWh8%Zr7>dVwFum47
zA;>E{A^RoYA(R8BvK>8zqRlAO5~@03O#Ort7M<nK>NbXo0n+gJ;YY#lh%zX`@0M{D
zW_2pzd<W}^bM39=7OegDsmK@%tNYbcODF9MvE1NX+ACcm$gUDOYKBJmChDzt%j}6!
zQE^)BHaY=s(!G=WXWkEsrH6H7j94uG_z03bM_O!xVb?P7lnc7&nBRJdu+;O|;W%oY
za(0f|z%(aYnDS^Pjt%d1HSpFs7XZvGOw@x6CTXCs-Ng_g*&V@{CmsDNHPWC%n!8|7
z6jJjYq_hd5rrt4rz8v_U=gzU)&+Rt)`yo|Sxe&*bqaz#gnCFWX(r4@(d2eL<k<cX@
zHPkT8`KhHb2lzLTZRPk$n%`eSVJ=ket-}G0R|Kgo7a#|kIIF%ro}9}Cw6g@2;`djc
z9+)>%)gl|*zC~vY@pcc~Zq%<{IB5=_9fYDgul|I6soqnMxEAt(Sk3?`Xen)xLiQKr
zv45Fz@}9{KbIx`jFd6>n5b|LetE5yf>9z5#Q65|EbIJCVC3Q|A(-)e+z+<GD@oX=T
zEZ+hyFy~&*PFj0JtB=_}a>p~_DtZik{Y5>awUUF?;tp?3+_2TCkAU@_{0tqw4u&1m
zp0(orYxQfr{R!KxOmg4MqzZaRqwS2-+&kgextI{ge4WU&-O{tgsl;Y~KzU;jVO;t}
zz7!s7QDgr{A_$R>T{uDBq`=1;UZ%VM;e}LB0OK5E5f788=qmX=GhEa3RE~bl!_Kq9
zq(evg$mGV<7IVd+5b^EqGrlCO>S;-&nR~t|Y%(>MmXy)%#>~qJBFM&?0BA$>BNi*p
z3)%1G{a=m@J_B(68qoJ&6K>XjcVzH;dH+8&GWg%$mSg*)@d4B4<o!=Nf!kGAqCcDY
zzwC_DFv2snDg4riClv~?oMfSu#fLyuPt&fOGa?#3S@ZS^AvBV}YPKM=+5(e9{>sE<
zG7i0$GP+d9nka~ACT3KxDS|2T*Ug?O`#XmH&@nV>y{icJe7oedqME&iZ1K?~JY+L7
zn?|?g<tP8Xz0AHfNL-y)$E#(!;j(EA(=n};E<z#tsIYV&?T)N=?Qzk-EfJ0jeu8e|
zuv-0lqx&nSXk{ks_AI?VN5VXuRb9dQA~}Yg#5>lf)85mR_AC%|b!eLQ%vJIrjfM@f
zJaWIu&@Q`~`IR3q8C0}T8mSre)>=&y>+sz40>A?4WDreG#@u?pUd!U@fGH~6RDnRj
zOf|JL8tc~BUjjionrz9nJJjE~_hd*y!G}BUQ?PGR8eEVF5TcQ%^oA8K)}Bj9q2;5S
z=Gzz628=TxGMM=k?b~CdVyl4|RO>ed3F66hA%5uRw)FF0rl3XgDL+X#FzHMZv!uNR
zVzAQAEOO^=x^+Pd&&_!f7`}!K_w=<?hWpXDLOpV}9d#9#0r}{|K}FVsdV1NWJ5Ifw
z+KQdj(^r&c94LI@^A-oK>fUG0H;;S;|B@F6xC|&h8g-?owK#pxXOCyd2yK68HMOD&
z@28p<A5tHQ%_wR`dn6Eo1G&=E+<dLN05I9m+339&R`N5cbH1peqS?uK47mdzJ*)v8
z=(XJJr_&M<XSg@w(i^GyjgdwA{g2l#rmg*BjpZhKwV!zJWn;blrrZ-(ndK58c?n3^
ziFcTP&EmBhTGbcqVV+dgKXwwCxQjG_Qk_1vmmeB39u}lj#aJgU7{oAvg)=*wByrzZ
zRWuqIff7R;x$r|8K@1m(O9~m;hFaL)r-1>7#RqiA8EdE7)0gscsyD+Kc=cr|3k#3s
z6qgmo7ZxLH$uS$2bH!S?URxtOb&nzGO@QLDQ9L$N6GHnD-sXV6&&*myCnZS40&Ngn
zf|Ni%96adU^?Re|55v?g?D*&=VA3lA@eaSB#*{N%Jeh!Z>;uk~K#)hSEO<|US<3_^
zkRgoo@`1*E;zCj4r4LeMm|_gSr6Ybft_p#qwo)kruKgYE69PLFTHYQmVlAD;{R$_g
za;PQ`Mc!`7sxcz-xWMa=7Q63MDFSrxlTe!cCNZXmoX<0IFfiMgh=v|-*kpww-jfw<
zLx!_amM;ZI6o!OW6UYb<gdCJ${vg;tuUs;nCF(eb&gZ36oSh`$0=u@<4LIfnta9p^
z^MStqbZ2=xoW0p-z6HY+Q1ztz0rc{TV;zOhwV(x_b@|`KZ;FlqGhp`s-cOcO!?aAp
z=yOA=ApLCMb%~WE4JV>^fTT0TTSbZUyd*TOpHH=HMt?NCT~Ttv_v69$$7DNa-z$w9
zN4HM0IkQZ>1xO`T36loU;%km8`OrJg2q|qmXpcdr$E^T4xALlke=M22aE;uQA!*M4
zq(QAZAFZ#(;A**$!QT?AD{XW`?^UUS&~H2D(7C+u^+uexY_-`ByCA8I+vNr37EUtQ
z4&?yf7ggYowh!hqle8sX<)oz{-s_<6WIh>bup2K0n$}_@3)eGuPOv>a2Hip;_~krX
z=}T2veQ|94%v;tvdZv`c0l6BLpJOL5kJ38=CnCJHH_uP<F^aHBYJE)U2|VvcUng?S
zOMFxV^-i0Wh0Dr(1t$Q=NPwSk@gAV3JM_`XOB7bGFZS^P$QMY3(P1N@@UprseO1^=
z%j!V7UD4SrYQdAUtP|!=d+U%Hs1})oS5aPV`^7cIN3sQ|7VATnz1QVoVe%FT*awJm
z*jxQ~(!};J`SV{N@qggYZ2vBQ{+%@a^$Y*&&hsBS%zx5_{+r9&Y=6L(KaWxTO^yD<
z1&Bf=jj9zEXzz!r%Y2yGvdUz~^?53F=H5o*F5gBrTWk`$Es1@$ZwIe0a(S8TRxHry
zfP#clad<rO(-BVBuP`R1B#pa9E$fBJMJ<Mcb^|ka_X-1&+P2*i$rb4xYV8{B<4}5r
zjhMQ7OZS;|KgOVv*{jf&sAd-q#_!lIi_Fb~xj$;Xv)i=Es0%L*2*RfY!{Q5_QeM+M
zpZRC3_-7s<NO~}nxP5sc>XM7K2%A%bSe{Zp7fTd;^YxF8`o{v<LNRaR1mUI8!G<KK
ze(=SHwx67z0HB=PweU0_v9*-lgiB%Fyhx&GJ$b4;&@K2pwter^vqy+Y2}ZX7_(W4_
z@_x#z)IXr7=0{8wWMZZaAu`4C(xONw=-tn1u*<H5HM=3ucqe_}Jg^;%a;+~_oVdI3
z7)1FbDMlg``t=PP=qUr|1$mvO{U!L5U<dHl904c!4U=>XgEj4ungiil_4>vfZB6TJ
zI^3X4vvPFmu|01a{9-y-SaVPlRW%^HazYc4%ikgn$}!8wrL4Ku)^q~}I+FmS8Kiz}
zKDXejxG_pFPht)~LJ)Y5CXJLeF1?4U;_J5ywn1zCf`uvy%_7*S96^DHz#-jR#XJ!x
zU_$)yLF$TW8zkM)uWANS96XU&vw6<Snl<RXe@uDqqM4>E!_YTr5GQ@m;#{oy)Z78m
z%Cf8^<$)_;?gt`g{sln6(owP$051N>(&hZb*3Z|_6ITw8W56cX@&h3h>L>gts@1;K
z>yY-T0FD0}C@o7C0Mq3Me9QQq%D5MvwH(u_tyAvz#r!i{U^vo<Xt>H{{+O+9bM8Z}
zC+e+q{Ycfq>LDzyW}D}ZqX%Bd27+K6JM<EORsQH=h=!U{U6&sN6q5R}w!vL3{BGaz
zCj?@2lC{v0fdW;G?&s!^08;aQt@kf(jFFpq61-xreZ0Pe!1XiGvocRv0e@+FInk`i
zE%G^^2r06%`<YgH+cV!lU$tVgNbNV;PXl1!gewx_!uNt4C0$IAQ<ec4omcCyM$i3b
zQL=WpJ*SXWoLhb`rPZ*Btj%V>GsQ>`08P5-)2Rj}@@RNfAIK`6N^ip7+b^50$kbCn
z3lwFebs_vq3UHMkvAPnjS#}8{2&D~Lua~A$a)ZJ{L~2&P%nq%EG_z?{MSFR75=y2i
zBm^6qhx=@8@9rJy)&@B4_m9`V#Abi}$^YZy_20&3Y`@)a`+sJ|Vf$?l@%O<P`)8Ew
zpRA?N)YNQNS>U}lbZTspzC`R%h`Tvd_V8iX-=WgP0{hjD-a*cZSN2J5zdn!0CMwsW
z44%go<MRr}<+HPGXs!>I_s2}IYwQ!txV30nrLb!qCnEG?=v1;)5s4XQhDr(+*KAI?
zTeVdFpnFr6vw79mncbVqrL@E#qb@T*WrxH-*~0Fiq#c9H^7;Dp`q}p*t*qH!O0_FR
zo&u$Y%e&RR#<fwsnk2~QS7`yW9HG(Zo%hwk_MJw{D)r%YzdvG}iTM+PHo2bLc*;xA
zZk|smDq4gNC^rPX_&_Eu=gC~W7@^^a#|`^xFs|AJdZ8&dRz~)*u6Mfs)A*?^$UB=;
zBhcKUv#Zbw#`5^2^DFFGu`Z7)%yNOmfM{jn4CpP0k)d$V%zhE9ItWfZcC#+qbxe(?
zE6%RW`TFQQ5q4MBE@HhX8yUac5wdG9#$CN+6ax?yDW66G#Yw7391Qi~q<*+<5zvzN
zhcznb1#Q$?n!drZwJ;(Q#W1;v-!N9$;nPzqSve121@;uBP|5TXuXsPSKsBQQ;pC6A
zVx&p_P}3-u(@9Pt&R%tWU&Eu&JG8}+q+$yxmlDg^$)xNtPR?E||Cnh-F5a_|*%W6m
zmu}-%@SZPxZloy?JH!WS?_*p`ci%Ieh*L}FKF$Y=&QCYxan6j_()h)PFg$z%TNX1i
z2n~71et=g%EHJi*gudVZ^l*703yh^}QD*948w;?wvBAi%P)kuM<Y}zSr6f>nevQ$h
z{!l9^^9U|`pU>qGdyvJ?*({LF<fT=lNP7?prKc9q6q?x46b^B>8ZEkqc%wi@poR)*
zmpN;+HTkI((J#3D4KK~TF`N*8GRBUO;$n@v0?{%v{i=~u#<N(*jS~EF;iq+|2~k-j
zZ^d|YbXGtiaXR1eH8UAG2hc=-`^^?9n^*&Kop$z+F`#+-sX%9x5-$6~#9>#Bo$irh
z2&_BK!mVfYRq(znAs<>&k;?`jp`vs>{{oyZ`XysAw0uOq-?tpnNr`%VUs7(nSD684
z+y$Yt>|!*T@onI|!(YWUs8V)W5P^PIrFr1KK-b1t+*On^7h>F-KDg9Pm&~xVLy&IH
zOwPo}nQ#P&wnD%Q+Wpy6H9}DA^ZZzsru!{y%-$5K+4NHO03t|-k~i?H$g6Hmr3zIG
zA?O@qd6ca0cWpmLZ|ZJL1cV3G^~T6J4@$r50X8#^2IN~4n&biI$iYx-K4h8oo-GdO
z=$d5cS)ieE13ej^C&#?@Z@0r*O~Wv|h4Bg5K}jgw;Wq`&!p+dxViEAKD|(Nwr5@c_
z9-r$(eXDo6I0!SZ^Dg2u$EoLRN@lZcd{3*Um}(?17qA%0ln#KW)y>qE9w;A3_aNVe
zX+r0RR4`eY-&%hTh3JXP3V{0sfG>#@h6BK;dL}MejA<|CdLB_*S!p*`6E{c$CK1Zi
zRaUw%kZmPEgKrm4!5e~O%DI9&&r;nhD{`#>-V4<iC6FM@yk%$cEW033vh&_(b?*lN
z%1Jx9Fa+Thbw6p=gDHg-@5S(SQ*L9o6^(UZvxjfY3iQX8v2TJ#%H6I*HRss$;p%C|
z{j!hpJr`AG74K$CHEH#Rroe%6<<=ob@YSv1=fNd;3f#@ehym0j9oXuShJbc`krr(k
z&3x2HM^KR95>9Vl$w>&*wi+NPWFr7T*OqU|E{R&NVcHB^wp#V=@~u7VlXdKi<-Kz6
zeJpS%vAZP__A5ne1`$9;zgD1ER*IH$$V*O@cH-eIm5r==jBB*>_oZ5|O2h24Nqk4t
zcI@Lfct(z?FX@)0boJiOlLT~UlDbtFr_;#nSS4O81+GvvVny~>os3`XXTN$YrAUhe
zT<!G0ol*zq9h4^@&h@&RP{zdO>IV^D2Sb`|a!UsbBDqTqmSh+TVtl*0G85>RRDNvw
zo-9y|2FaG5CpJ=uS4Ag|w?GKBh{g`A$jf3mKVXR+uZL%Y^T2QY-IEE~_EZ|SsYHLj
zg_F&33t;wV570g77J+6=!ZY(eI)_{9zAT7+h!oyr*P;N@L$?>x;!5Ly>*Owc!8}jI
zXpayGHP5-^8eU7Ma#xu(pq5R`%YfG9*VTyb%L7J^6<D%!2=+x3Kvfo4BUtzoft9RZ
zPNmJHisJ9S+}@#%v#pM?{&OB=P+l-n?hBmVaY6I|c`BXlp6taS+nKVJv&icY*_2#;
z{wzHfNU>nc=$w^DgwK}CMK(aJ-;FifI=Vz}BMYD&WDmkSj?uIf&@QN$%xYn8lvq{2
zB!I}pk50+<*uaty7AL4BuAz&sa_P@|QF+hN1s~1YHF?NSWtwK)R7p{$p`Pj`Kt8{I
zVn2DODn1eg`E?)JDFu{s))MgQ3yT2p^f*Pp7aP_R?2Pf+4+ROHKxm)fuEZ6XCvX2z
z0~5TKgbRlufrHo!rh#w9&^k`mAFgqJUqAuh?`+VBgx`yyIwZv^h2}r(yTKDUV5Sr@
z8mmq_f_EGmB7%Cpf6*ByAZiAgcuP1Eq4W`~tClFer$UoEj{wMdyyr$Wb39v+!7_Y3
zdY+zrLwSYK(MSdVeG&6pO!tSgzrRZVKNd0nu@Lj8;{$%*f&F$l^N)*||4$Ae_TP4-
ze=l^HSpPIMEL4%O`CJ?AI8lLb4g~x$#@(bj{gX5b3QYDn6c%K=E2lI`D3MUh-bmx4
zgNai@J$|Wx7lCaR2iBy+EoQyS_@c5P)IPbGF-kdu{2)#YWJZ3-wBa37f?G$FL;-=W
zyhvS}j%OT=QexW(N(Q6q!2x06CMc9<TIrQ(YV>WK#euD<N6Cumqw$&fr71luw3lbA
z!L+wtTuAZU*k_`{duPghAYX=QT=DzSAp~t^7+1=ab+YJJ&Eut%rHlMb5O8&D3HOhY
z9BPwHDkO|T^o8bYWiRWjc0t*T%0O=Y<eYCxl<MHU_9RRbul+5!k@A%5XVz8=UrqDG
z_31|y{AQiWp}9x5JdkLJ@kb&*+#4z`EwcJDycF`7dhWjW^$c6l;2f8^xXRnL5{R3O
z9_Iq8h$F$BVomO+h2xjF_boK$T7)8GIyYWKc#Q5tjm<nRBRIia8lkS>SJ;Rx;*7At
zS6F7$+BW(vetlSHw5@}uUQl<<2e;GTW>s+jcV9SP-~1L4VT_~gNe*OY5z%lK>fWoQ
zf8ylh=ib+q)!%NxskoOWyp?tK(C`yewageF7I(OdNLM2s!?u>BGHb12&5sSsVu6L+
z_N){makXS#9$t(BTa-em3DS=4I6X61TMfy|%QRd|siz#MWs}gB<pjwMesvz@>y-J*
zYAa2amv79I_HCJ5)gT(M`-@-I_ZM{}h7tXIrQkwFu{NbnmhMFFmGcuPU%A&HTqv87
zJgiN>rr3#$@nx(^_SY~Ur|@etx^2d`($$qOjb=c-hc2;dk8C*j<jHdFS;%DgDwCG-
zd=2r{fe=N!9h2BJ1E7HZ_B#?28+cbd8b9GWCKgxLTNrxnf6<SnjIO|y^9Z<+4er5Y
z@rP3bw3nQNVhVgo!f}Bne`BsrJa+?Z6ir1?!*#{Kg*Z@U_WGhhIAAp;#Vbl8Q4{VR
zsk`aNT!)07(|^e<Q%wJ;T#y)?DEgWG>;slID_Qm$(!uaFRJYVjao`(M=nZhME;@3}
zH30}@pb$pDwqJ+Y%`4n-KChbw%vBm3oWbkBYI4?+gN;1{B$^A5l{}leKdXf6mHP;N
zgK~qp<{toZsD7yyZ+jfpnQIXNo404Vpd-Ebja_R1nv($rG|Uei_{E3NHO8SL7flJ^
zeTsJ=-r7ub(S$YEodNvQ8FU>uS~trfS4qs40C&`m*|yVcc5OBO4Ainn2cTf>Y-K9q
zjJT9@2E3H2Uc95m2qETkjDjB0+5-c_6p8R<$>3F&I(crN9#N!ka}?RL`6F7$bh5lJ
zO*B}L(dto+<yCL3!{Yg)&G0g1|G4{N6tTz!9~2tOZls=~%za~NXHG!!6nEOR(<A5G
z;<+6jkUk`qr~zlH={GGXeXCQXHHx3H%!;uGJrE&%J<WN2i7U%F1@^anzC`6Nq==Jl
zS{LK}+{js2=*)1dM~*14G@G7*Hp_3-g3wt0SjhmL=tlME-E%6U`&4~ZFlwId5E=Xu
z*udZvN{bx+aZUZeG(u~BtOIFq8ox?xR4+yQ6qFVOFFa}C8^Cp6r(NsYC8^cuwh_OD
z_9`r@BWCFh#mf7q*#1I9aKI>K)wKVi=E}c)7&s^-gN@5jE33P4@0brL5*&Mmwo8g<
zZ^*XpCdxx2JU}N*S4+0dOl#chzgd1#&$oJ3{_N@HuC?~Lz9|SwLXuPP{$LYE#CNN}
zzg^Erc@tC)%{;{%5vfbaP|A9mA}e^9cbWesyZlV^$W<nV1X|N4mi=2$^XwDJ1YnYb
z09ohq3*Eqa^v~92aWBU$Xr5}`%Nu}j7u!A_+ItV(--#FdZ^PUEP`v*7od2VE{l~29
zzad_~wUGR=c>Q+i<)5L%e-j_F|CToVr!al~^-p%-4Jr~bpVO?47ZvbtV!XeuDdgBe
zrNV(1^Q@q6KRfXGyajWb(mA4|{RNjH0wZ&krABf{JT6a|gDWql*@)ir6_rd95(<a!
zWFZRj(*;8qa+z1VvYiqna!cB#aqG-l4mZ#Hg*d~r&;mT0J!a?83NtPSjR)dX$@a-!
zY;8;JT&Jr1TZ5VMO7JB1$=EAvc&#pYrt%l2*Ty1Y<PGB7y}pRb$y{bG@e%Y*r|ak5
z>bIwSQ{3~nJxf)Hq+zk_aIm(Q#i6Grk<*KQTsqi85kmm<ShIT&1_g>Er2$ZU8MBIP
zPF1z?MR50Ma*tiH@;$@f4g`I1&L=&_$<K`_VZVw>_P{t#6i1%a+n84|NkfD<nwGr|
zG`<~Let@4#VyS-(IW*mJ=`0Qhox`t#Ng&{emzC-^9q6{9Kl)&DXI9``w>qK;8ye+e
zd;v%JjxWGpFc^t;)QtJcj*+DhX)1kZ9~};}7mGZ`FDhNp;O;IA{$wub$OlP!?SmJW
zKi6(WAt-3^v^cG_$c*49=Nz@n%)Dki`{m(>C&vO6+eI2MGgA=~IJKO3co$+1wM>&b
zA9jyU$!#m{yPA8Z#*7iZWRix5WjhI!t{93+VTrO_SNJ9@Ri)_<xznOa&sE2-K6~ft
z9~NxOiYfaM7zm^@OF6b+E=4Jkh3zQT<xtXK;{l5s#vVz<o$2{Iv2(v5;~m0ExihiK
z6ZR$Ss`Cl0UXya3Bb2OOY1=RYTP0!^y7z5yBwJ4s+sD7B+cNg~8hTJDI+|E)amRRL
zVFzWpzd3EV9o;Os<|mKRjh)HDJg}J#^fRP*?_*mer_N2#BPy9F5E?E&k}KcL{*2u+
zaB5!lc=t0kPm~eZ*aoQHD0?vlieg<sUY?D!vIH-IVCTJngnegb^K4MvL=g9HBmt22
z3^LV3IuzV9C^|x!39n6*kV<8d1QoQc<d<@9%q1o>QUeti;9HXCr}^=il&{gXeghZ}
zY(zcqpurTBsM}@1gd4K|Fx+#I&>!j+crqVp;AFybx~Ne7^=FnC0tH3SmIzkAd5Jnx
znx1FJ7C{JT7Sz_E9AxFfmO48CP0S2e;G3<tX_n>>f#NoYV(%|axt=tR!`guAkY)lv
zSp}h{6d+NiW+Hklo3m%OY)Orpd`;ug6;0O^K>I2JGZXKNcSgD*Ru|wZ6KFdN8MGyM
zFl9epBOk`XU5{Ne!4!b<p==*2+HY4UQrxA4JkuNpP%L%~49w1%C{+Sm8(PopxSjhe
z$MP}06KiOO1(B^F%?_g=v?2Q}<P+|5oyvXGCtg5_p@*~$gnlgfBH|@GNrlAz>ivQ;
z(RdCsyOJ6SkL`;Vd|&|#Zvog9bu$UFTeWo>OSdqjBa8FP?;5L&Sh2kL5j^}9t5_E+
z7FE7KOW414K57K6lIF`j-?&9$5pGHdxn-05)`mR&c7twK<df;epxT}QuH_dVrV!R-
z+NqRxpsq&vQiX?{^sA$QPsC>9x&wL+Kz?p(ipq;Otk2(D!n4KW$Xt+Qq*yug8H!p*
zg_P_sLe_gK56Sz!D%sTo0fyqfz00cukM`^b31z?u1_1&`vbyrv3)Ev&UiVy*bi@xF
z+xgU8B>KdE6?Jw?@__GNjiS^#+w+b&8fE}M?fkY2g5)gu*jA$t9D{iLy?ed#OPrL;
z?aX;nVYOl<^ZbL>+_Q0K98Ky&Qbjrol{~(ntLK-u;em&2P!@(mqK~H=I{82ypH=5A
z{=>^FFd1pJ-SNlI3yGlh8vYfFw8VWp0T1($0U74JekqR=;Rj`&(hb>#^}I*3FHv@_
z)vL(OFu_S%xzOPsZJkV7;N3a^um}CW7pvcb+dmeo|A-a%FB=B?Un~rt^7W_1iv4d!
z&Hr*){`Cw0>si<TuTJX^kn-o%`#&8<Fs8m@y(5hHmw+BC3jE`<7ZMvWV?@g@bhWCT
zM*aX&4OW22N3pZNTsyhv&_)VY^Qfa(AfQvFYL=YXm5R$Wo<HvxPT*0fVHy%Ajjp^D
zc1w^zASO=ko$W6~PS2$?Qi?e%%<qkLTCZ2lOWvFo`B9Crw4w}`&7~X8dyUt+Y~ASp
zY`B92^;%DnYJWbvKj?p10a4R`B+?F-6{QzT?svX=*<RSVw6E(L%|=6K$nU>q`gCSQ
z=8m5EE3m98Mtsn|*XfwRKvfJ<d0oIDO7tM?#KWS>(aVAau*K)lcC)=$_lqhcH=c|<
z1Jox|j-Ete4OwPzW*lFesrUhG)%?nPqQ9cBc^Ov&ncj_uHw?U-=EZ|24NbWdun75?
z6dKX1YtY(Zm3e#c7~5Ky)%UPv-PVSg3uKG|>p!1JSQ&aP&n@fUt4TN@+7oIkJ2bXr
z&0{@U;dC-k>dCBxS<pmacMcY*miR3iItpF7;-RK78)+M2UX+2?QdMzNhN`TtXtgVq
zI8p<NC=L-=mjqfbynmyo?WJ+ayDL(K#fU^Hl-@{K8C7cS?hBEDT1_6M$FG$@X@7jF
z8t=jxLnmGhq{i$W$C8_hZ~HuDn%IaA9Uq{Eh~BxppqR<x>;t4){scHExIl1Q9aMQT
z`?-XRAdLtnkNp+Q*F(fu3$u0@Q}FVU1hONKDzHp=_O(9sdhia|!ZN&8(h{PhK8^%*
zKi$-VLSk4p7Vpz3)aPLXxnca|6G`!hUbyM7$GD^K(s~H|*csv=*dhsvH}L@{S@$K`
zI_#jS44v^!&(=YRu?IAH6JdGT%X!1XU=j=whT!d_WdjSNNy2+Xp`<1z5_Zu2^2vSQ
zF!S=3g80!DkLBSZq62qd=|)m1LQI3mjjzi(rmExF&N4Vzy`7;`?BfYUDG3p!;{`Jv
z5leIf*?6K0lhq6z$%<@QiZF1NaUtDC7MZIL3}GrWh@2+K6m>L_Vn~xnLv73U%k%hl
z`$-HAaZfXN6(H?;B>|bGW#ZxXLm7J~KxwL>LkA>BDKKrQ#x?yWP&@)Q8T>Z_owRUE
zs39p>b)o^ND5gPmCQqSRz!@xnn3>g&6{KQpZcR4d>f^aa%e4@-AigS{D2j9JN#7(B
zpedpr-ok0pC&cOI#JPt8TpO#QZDJrQX(g~x%u?h@0cNX8ay!38xD-!<mpn5n$=9<(
zz^LMX-9c0ID#2dz%ki2E`OMKNJH(Ugivh*u>}Zt*G&A143sb}Z&ia`-!5oCnW&%3A
z>@5aJLEPk*034fmmB1eC=Z*3$V2ChQ(Y6Z#Qx|>@bCcU2{D(d=5B^+25-1TRS<=2G
zaj{mrg#<)CS;lkIj<eT`A(c<T2H1>1K3y$mQ|ync57vnV%NvtN$Y;-r<__Cz$V9J$
z3GMCSUk>)I=J3U;o>Ilb6EQ`8!cIAI-@nQ{U9_foQ72lLRkg+JiH;anoUCuN3B!M7
zP702nVRg)oPq;Z!lxwr$<{Oc0SU~pEnZqDtamyA#$Oi<b013>8VHdq}>*504KC^|n
zT1fh+!&3-~0kAQ1D7g4x`8LTz%7-XAEeH5k_(Hx9OR@xVw)PQ$&(au*@SS^Dzd9gk
z*Jg|BCttCqrdz-`h|JR-kTKzfhXz?Yf2?f?N-3&JdtpCHrq=XMZ8O^@B1P|Q8c0LK
zS|z43Uh(>E^(;o@1i@2mOmCxvIXF>S@ht<P52)rgM|gr~PgP_Gp>V;HkHLk*B{Y2n
zPh_Z$=Iy&Lu6hnxHuDh^#Nv9iOG*CWWDR=&h^_@RC>{(VsODflh|=6poB^NqlqH{v
z3P5Y_QSjwmB%4tF&p|jzKE&i}@q<Dhwv_ly`KBK>?K0V(8YmldCoe^7=ba=i${Al5
zAb1tK*G=!)?)+7KX;rS}AaHS<N@gSpa=fv;yy3xnR)e7wSJ(%^?Cjev{D~RG!&MIO
zxos_1S38s;%qhrBzS8u|aigL0Y1l1c%$rFC@f{b|Wt4{#uF2lMgIj>AQz9^lf23*M
zOaU9^L>7%mG9jmH2(FfLqAYQ)92gnxq(og<s?_hzNO()_>Stf6j>f7nr0LzDv9&m9
zbd9G#XYMI21cnG{2i*k?S^5^AN^nYAo*~U*wic7R5>0|gX7?ReHf-5B;8nV%-sTOU
zvXS{zg9GAN*y8qoIDejT0ROco2?uSuvK$PHif1X^3mF~D9PECaH<S<nlg;dOhb=7K
z1nS_oQ}$>(QO|r%vR2Q+z3Ks=ZJ!>*O=u2E;v9RLxS)%im^uv>=CjkF?OuS!Wuu-^
z3&y23$f3Scoq>5)>z_<t?Y2l0*m@|7E(DSa#8BygkA<70hj(h&B*QZpwssC%X0+P9
zHki_T1+rXTrrE8hJ*T7o@my?=w7P2yb}-c)!QASSTU`!?mZSApV$(CXuZ7VC(ChgW
zcA>0<9%(LuR@6*qu~T4+;a$_ET@CzloVRSnPZL14IbAFD)B?3Pi(2?{-H@t^y;}Y7
zphe#H{!vulO#sH@<_ig6`K#j{4K6>Z2M+g89&lJd<Zv_tQ2R@x(z&mWn9Z<EW24nN
zCw7xS73{*wAPN#K*4h}%ZMrwFR1@M|1^tFT4o|;o5CYq`j?c?Up{=bN3=l%oF&kg4
zx9BF|oIh4#c)pOA*Kqy5eEOH5`qNAEKe<>xla2nn<<tLVQ2p;MuQ1U6A)WrbRPiSv
zz?jO4{a-At3o4fgnGkZTe2-&h3DS%^(sb?;jJWD~l8uN*^0L?;UZ`mD1(GU_FY!~6
zyoeF~OLY-In`ib{GakZ70a5ytYSxGXh!y0?k+p`+?}5O|W&;k<v<l;s=1S)eP7YYy
zC}SL4r{P5%oR&};#TY_T;&DIW50882T6OJJ9G&6Xn@Ir~zI&^AYqn|7n(}Xoyw%Ga
z45LUXxAu2N$modHYRB&G`0HBRr>*uvb<d(FpQ8F-y&JVYT3iiok^zY<EzW4*<%*N{
z3yaT(4B_j46AZ<`&zH=5C`CA&{9(Dq;;SKXD*;6#RNh-@DeqbxbOH28*4N!8sSoLZ
z*RFs3D(>IGalMRrh^UyecJ8inAuclPq-RxQ-#!Pq%5O0`srv9?3s%RZ7;KjvM(nYI
zqkJEi{UtOU0l$*Dj~oQw!IvAUhv?KZ(?)Vw*C9nb0MsVo61_W6sE)OgXSiuM7SK4}
z5+9Aj<1=T#d4WuBY_lLxPx{cO_g4)|QAl$-5V)W1X2%1eS*CcjC1V+I5x=B@Q(7(d
z6Em+yl5AlnlwwmbQOJf<%7*2m^;-ET)C?`%xq?T6v3y?VXcCnV7U(id{gjL*gsvB>
zjID4rLpTs~0DFkP%cQqU0g6@)mDSQ2opGpNn{B@ydXS|<k;ye%?iWC^!0VwIqc0C%
zK_2_(=MK;<R2zyJmNAgkE>Ka~sK51+x}|@~i3M0bFjGq+N^hV;8gwqO&EXK48t;__
z7zi~MU5M>sw{GqtBqQ5>S6dcXxcwommTqwOb6#2c#q&zRwtyKNws;d$Sr)uF_!wa|
zXAGav|KJ-NPT8mrgfY*<97?+7QDk)go+K$kYc8$+0)kecVKZzBb*8a8!fki(xD(b;
zL>)^d_sXG(lA~StOIf|rQV<%{F^rlWU;NPsZa|Qtk*;eW7Na2BGM@R#0z8*Swl@5$
zz7bqMi|45VOz&v5R$rum&KmFwcn{B@IdLUsmKT`UeUyTc|NYsppo^9V)Tq%x-j!+D
zeYKWI{&qGqtvXn5$i+Z?hFSfrh($TzV&<G%B|}ntjN^Bqtg8GGKdu`x!w$-bh67CM
zBLDFT2oA*>1UGN#$*{QBLjUg&!tO_~+puqnJ-8eMB!H0&T*0R3<0M9OllG#S0c=ef
zy1UR+G!tem;|x2R?Yy(adYK5xYEqu!ooOlPV}~cZoF5Fk8RJF9fWY&<@yE@)Tr+xC
zxJ%!=(qt(dBunI~l1{n^Ar$5^y1H-;cQ)}KnNIhs*M!Lt<b{jxwf!@_*dcRIT*~n&
zb?57Aw5<nLX6;xh7aRa!TSE%qOEGZ-8GNWo90^J2-3}o`tzX$|{4k-46r^$wn1y;7
zCmg(#73$shFy!<rmAKc$bfFdpiS*(7^`#|s$@3N4cqO@@n3|YLM@k$xws*fyJSmFg
z9JjQ*rVnV%QVF0;czGXioUZ!(^43|e36@6XMZ;NLXiN_swZb7a&C|)2)QKD$CYVOq
ztqVL%0u#Fuz$K1x%QA=Wl|9|RrCypL)5i^tjFQ>f+4IzyyE;Ty_U8O?y<?`BBegPS
zj?!z3=HO^S4L&z9L&-2#M&#_m@77X)D?(3M+Myc!?Ad0LrP=Jz#m~q3@et*)ORm|Z
zmbZC5eDmHRwY3a_xUK)zU^!A*UDyiUiv2ZLOPL}?I(KbUX(|ZJm|x;9h#8GIMh9YQ
zYnX&2vLvI02NG&Cn(7w*`xYo%bmzC#WGR_$7h^s8@Zags=S9y?QTcmE{fB-0-=67z
zpw8_7E_MEWBmb|d^KVnu{~2}uEt&o|2{Z%!A0cSgKd(ORs%kc$NBI8YU|kvE9lJ&@
z?6?z#G@M#PUkv#SM+mEFh$T@OY+Tam6o4g>2=`~!$N`6kDc#b{v@zaQX`Q=q$*eFy
z4B^teuwG!$I*I*@1?-|$1|TJa293+G+emvq1ueyfRRdvov(}#suGYHOU%$@CujYl&
zHQ>d}g?SG&l*R0(Y}IqgOSOHiVlll3&p|zrR6Ni!3s*%)CA(wNsWI;aj!Ik*yY!A#
zRkmk4wJL^cSg4a+S*4r@lwAY99!J8x;SfHgP}qkU0)lK4*&rO0eL1uUFJ@uz)l^z+
zO}khrqzaaFSaJ=2(4@?CW?pMqA6}U3N65qm1N$^}ATbA`Zp+N;r<GNc3)4<WaIof<
zt2in=fN!}EP8wn_fV{tr|EvB|xNK~!efzq-Sjlwslg!L~^OH$$ewQjwV70ayKWO3F
zS@it}%qo-Z?2z0VVL+$tB0Cr$>TvMMW_A>005M&BM$aZo;7pddtsA$exMlckER{s1
z6-C&NtnXa7ElncROFoQ`JekOh|1ug>TtKLAuWh6mB2*<BAsYmoXmR3Qu6J0n9}=Z#
zI9IEU{aPL?N+4+JJIhhtmAoH@yi7$%j*HV$#<#Bq!>4QAA=UM9UXQ}#s3S*Fo}(*3
z!9I@dOg5;ICJg96jS|AZF(Tk{xCEu`!2<GhyDlZC7~VYXOI+<q2N*=uOr>-L`yaj$
z60ok5$7uc%;w6NXnZ74cH-MECOhC-Z{4rJ2^<{N!t3(nSZnO2BPjyA7g>Iw>j$>Us
zlwFtllNl^A0^-~d^0gCVLqvPt%&An&UWPS@uJAN3=e)?=;DiLe%2TuJB7DqDiO;Uj
z%X9qA?6(zW2rKA9sE$D)ogvt?>9kT(Gpo)*b|IWgPmS&6pGgeKQBFXS<wC4rr!i}<
z?dD@}$dI>JBlX;BU+{`5KV!GIYv44JfGlFHOyf0?hD$GlNNp@dOuDU9iYi%Kl~}|K
zTX)JrN$APn&v4F{%nh?4xasSYdnVOKlnWpftnS@_(o76k71TTin0PZmP`DBBlijtN
zqvtSHNY6lQva0Ao=!NwQtA{UGWMz&EEUl&5y*%&~RoUa-C4-oSgi$M@3Lw#g0@3IC
zZMoS+M_%NO6pnyd_!@xA+Cir%%_?f5Ei^ZYQDUUv5|MCE9%}%>1mfJ){XC54EHsvA
zxHFrfj=PmsevL2VRez!6`w?^>+3>ZSS*yl0Fl#0i_m{02<!L<z14DZ^>BoX5T`-7m
zui9;3txl>vTw0T^v}8TzK%L2A(6fhDNmTq0+xZd|^!>s(wP>(8YUyK5aF3&CNx@Y?
zZd;|)G;Dj{gu-V$gAOm`$tK`J1N&SNLnsJ#H5pS6{g+dR%$Jd;)5}S&OC~D=<x=lq
zVpOTJa<o>XaKSfXmWiP-g4n(AJC)}J0P_U6oT@S@4H%8LK;@VjkGu`B0E&?lxQoIK
zMOIH7a13s#<`kB+DW5*ZDhtFkH%OU^2vOovE)6jC<5Djzrk|A@>}GJV0FKM$o&k3z
zWLb{$lgVW_%KgAC>dZK8RgrjP33;WOm7gbS)?)I^f>c>I1`FNw=5uAqcbnm<+zDkj
z1#qgX2U);F?0Zz%>NVKSe*%`hHLoozadc(6rwRmI(#K%`Dpd_;zeAI;n++U9-*x-~
z+us#Xh?wU#wLSl{jXZYbd}KGZ7y_0x2Z#JLfkKt#tnAm5|H2PdTjs&C4uKYC&=7*0
zglQyN2dsh+1#V89vkt`px<SITOj);Jq;cG4n-}elQC=f5q{Viuh@a;JaUYrfYfR7k
zO#V>%=<Z1TPK|IZUa7t<c1{bMJx@slXPUlb=3m;yYd3qKaC~(!uo5@W=~mU?WQ;YU
zzk41=ihz3TTZ-sF`$~=o`M4)dC(BzntnE&&t@&zfcigDm`z8rg4gnNQ`}9dH4F)ui
zlM|4Ja5Y?UZ=U4)JweJeVJJrX5XK4=4PVL9y!1`T2KRDVvWTVqoV>Dw%s9vzjJ?eb
zEdI(O(@JPZL4=Y_$T^ML<ZRG%O1F@mIx=+awf=k>VgwYu|1#}GYe>F3AUxH{VrZj4
zwcS1VfOqEj1now@H<*qY8{g$3(aH5hPcYikzlJ4T0Rxhnpq8h0db(4z=yTV5#@Z+x
z8-%w)NbU!Xc`NfV&w?1p({SZvdeAx4;FKFyq*p&5Nncv?(au^}dNoo=cXHp%X$icF
zMN50uX9<D3lW>Ga>CH#fDN!nX+;|;%V58UCvJ^VGp7{CSrF{9&+K%Dv^a@wKASC_=
z)xf```hSznf2al+=>OYX|8Jl8dl~XirqKWA6NEqA`@gAv{&Nid8S(!oJJ9yejK$A;
zX`eN~<cguLz8lJLTZ0zo4_@bTzi-S!xuT9g#*#H9tkZoudn2%iixLVgBEB#P;bu8>
zI6S$YqD3s#EhG|S9%b$i>!+D!4rSu=K}ey_wI=3!erM>PK5!78sb$tuVP*9$H>K=c
zM3!n_tBUCOZbEFePwa%q)&9D7orJc8+S(DIK*AtXn%b$;me#KROVocWhOLgDu-iU9
zF=J_Psr7-a)R@hUsW;S&BwoX{E7VjfVJuRCh3kijjfoHTtziy1mW4Zlkm!~i?ia#v
z;wE8WX&$vit8bgjo{O_s23{Z4s~9^jRn=XnCSYtHt&3+8o%OLI7pk!n+DP1t(ha=8
z5+{{ky@MET<Q1a|kmJ>F@awXmvT*CAa%3avzm*^oqazc=Mal&;j|s)gMOVj4Ki*;6
ze!(9CH;5g&Tc%?%o;g2<%{b%Ar=*EkU-YH_u065k#s*gvdC8G>@BSSk?%iqxSIBdm
zewxE%Gn!X3koeWQSNk+P>S(O8H8c=7r#7?OLXdE*Br?$0AFJL#G8movp~D*Id!scq
zboH*w%RHwx^MP-6jv=nmx$FS1J;1p=yU>$!Nsj(n1MDsX_1^A)(L(A9IEO!qyn4;c
z>JE*+{4XQ%JuebTFG58Ea$x!ah#vJrxwmrJ4=uR<)oewdg7`4smTmDYWkz<D;TdOh
zR+ZGNJ2{0UntJ(}AY)1^tsmi9zdGVW^$4>k#n!cflu)k{6$06bVjPhM(E(+O*KX}i
za^zd&G_X@+-1cv%BHRd(0WWP6bcb)qzCvUx&oCTA;M4l?J;LYokGOth)?e%!nZ|D&
z#xk?rX7x@_gXj`I@&XguIt&%Yn}<Kh%v`vPeQ{h~W61fa7zW}srTU59wtKX+4oZdj
z3&6}okx;xF3GWA{{CKl?%1hDdN#m8wo-9nJgvIzdyMy!A*isU!iP6A*8@CEs{({%9
z-0nhoZZT&U!Fum}jfNMey@dr@$boXT77a+u(Z!(B*YowY-Qp!*tVH;Npq#kMuLI7<
zY4`ZCuuVVAB9j9>$aWM9=*buBZPSab4CLe(1(BphrhxrM6lx$sI^P>FU$TzgqRUxZ
zZ)#yM9`KfW)|6HRuzCAnskw6l@&PF9-dT!3t#WmRgS7_zmDx4DiYVU9_Dl#CTN>t<
z3C2HiTs1NHG^xH4YJX<>0ThjH(dMRm5lpS8;+l6$e?9kca+&z4Q2Vokhpol7i5q=N
z$H(z$s`U#F6zn~N_6~fb0I+)1{SNm)W+VX#vsdE4SIJOw@g1Iw4o<>WgcQ+BYUas6
zdEsdV+9v|?n=I24q36S1H>KNt)}l8N6C#$ZDDE*oiEt+^shZWg2gBM3*Ekq+Cc+$W
zS7sF?9&~61Y`FgGg^^X44c-OTA|6Ql&$CF;6r61f^;33|rh*JFxDTUZ4ApWBwkpt!
zFuQhW4tMkj(OPfu!!?{{ui$#UqC>=}3_Z#w2cqbh#0hSe(Zr9Yv4J+`0V-4qiliJP
zV&P4Q+j_xu6n(_ww%T_MXNjCVt+peB*avFa-H~Kp&YE9nwljJ{d%xa{iB?(mR*&Mg
z0g~qhPLjFW8IJ@3fF5x8U|zv;oE$p{k~ngb-ZBgna)e-0x&3M~`CI{@BHLLsjOLbf
z5HY+<3QO{`(f{_W2P__oaJlXCLCYw=>w}sr7F`dl4b2k)58R#=GRtgy(D`A1qPN3?
zR?d!ew9cc6%GsH-?DMx1FM4POM=GN%;M((2IKsLj!PGyAlC(Z%)%&wAtaUx12p-W|
zUsE~$K#+b*EdNP+`j<ESe-fns2>AKmA2c)2|8~Fe|D7N){I(tcyCAWAUb^{{g0%LZ
zP3feD5x%k8@u9|qP(;yUZ-kd=1aH!jDwKvaNwd}c!Uc4Qyr76Q%L*VAHK5>bEMaGJ
z2gcKq{rzJSvfTK!AnBAn&K{RIQg<XWqk84~AY&Tc=YtnIQQpGg<MnReA)6LG@o<@V
zbxe<T<=g>ZBh(zO6WhjhYWXdMPsMSr<GYV$M_Rk)xM1IwOp}J>NTj&nr)M|Y<bvng
z^y|)428Idcgyby>>EArNMTN(o8NoJnI>8R8wv+mv(@e#(Eb^k4nWe-ia+G|j@ybp$
zb)iRBRC>Z5NrtPJ*wF)0qcFz>$Y;TE(GM2!j&Jd-;M7)@HMKBeoz`Xcv~{im5^LZ4
zqR!Gsyt`3+JbWFebUNYF#b~fY&F`!LOMLYzBf*|UT-VTt!7A(5D!GooSvA#bb(*^>
z%`{P~SIywA9igmkHHTQKXj#2cX03m(7U4{Vi~>D?+W(3Jw!|NhA_bT(-Ystxsj#E6
zf|K6j#h6<a_!cIwo0hmIUS$2D&_phGg#v7fdcg<h>L`8Hx59N4=a*BH4cB;f8os;9
zrg%d#2Aa@4;3ZXiFPq$GHKCgv?s}oJ@%DaCQ=wwvGc&-FEZEos5mw&lJsa1AAJz$6
z57bE$sN2kd9Idm}P9#96nWAjP>M~5St%M#GPT!4W(6`iP{?^mY+4LZzFq?8-FJ=Rt
zLICdr!K8iw8*dDeAPMd&fsUK<(gK2wV<xX}Y@@5anH%Mj3R@dpCrO$XGYOYj9+tsm
zd|fZ|bM0JT<?K{x$`K7d*RX=lp{a5ax6O}1ccqd&alQ5&r;qnS>PsAkAUb`Y75)+h
zzKTP_V6Pc~Zm0n5TO-qf7&xqMk>v1XzG+o7dR(NEq}nh#X^`xLp2Usj%Qx0Olx=Yg
znQKGdecH-UU$W@L^rH+WuyBZI<X}63J>Rj=ur|%mNG6D<CSRiF+_u+Y=QBBGpERtQ
zRy%NsGeiTyynHS}>nCQNE)Ab$`w=84Sm;#IL43j#!DOEN9w8tWK-|MH;#tpdQT~vS
zJ|N}IfROK?%ZlX&kF=mNzHq4>JkGyvd47=QB52iSR|1q(0dQQ(F+Pe8o)~w&AP7-n
z5G`Q$+8cFF!RK1gLI6R!f9$yWMj-`8aRRUi{!GTsU#XB?v-b!MwbPh#Ra5P>t~52{
z@5ACXZO0-UGA@mo#;oAhnj{7)LWq_qWH|N%p~31Il|*IU!7*`X#X>=5Mk+#=)Iwq6
zLt(;Df{uNrH1<Sc3b?XmQ)JM*SNbK3!jzBvwf)Im5h=(jk^y?T+Oc$Jx-ekcNo5H!
z!Aat|Wlq^=2}-6<1jN|lL;{S5vy5tTExJ*9vQd6>S2GOk@}B1hMX{+e3C66x+4+vz
zBm~n3qDQclsmMe_3d(J^ndM1{?Sj>|(nqxGoeyuD-givj+!^?{cDMh*+&e~Bx^7#e
zv5kuDR4TSvv6G5z+qSKWZB%UAwr#tjx>@V&y-)44YJY33d%o80&5!(=dD?85?|gb6
zz4tLjNe?HE2zu@b2qaOC@H$r}dG^|mxw@!_6wMcZQO`A5|0rEm$^wPN=Vw|D{o$Rv
zZ0fZKlu-~*X?#mnTbA6~6{o&LeUIQBbi`(Z<pByLdNfFKGQDknc$|C)t~MXI;_hfq
z)Fl9?@C)Us&nE;;%BxO{#mBa8%97QBGEG!<@r0Haue<zNpSGviJv~}2&Xy0>)!%Ny
zMgx#N_bE&^o(W{^S$Xse>wnl%!b|FfWHqc)HN5wbD@=lYtmvQ3b2Yto-x;1g2V(!c
zP_bmQ@Zo-zT~ADZ|2*SKkYjDDctPoWXH}6MCprV%2K-1=BwYd~Vi0n=M;D+i|4VjI
zN8DR%8cBcf^WsI*v+bQh9Bx?t2n}WN%-R7tJbCM7w4Sc4Al1;10-SX1zFnWPBB{!4
zyI}pnd=3p-dc(`?V~^sU`(ctiJ-=$(w#{14hiSu%C=+BumRiU-U)%;a>UiCWy^P3H
z?M(#^9F0a2nK8(D;h^vkw1Nz0M36&2`+`}B=TG{`AkC%JES4B&gzjxsj92j_?gupL
z7fzoAjQdKf4=G=4IxUt^UJW<kwhIz7>b!p7Vr?c8J%l<-zGfW0e(Wwo_LJ|6kdLxY
zGhEHZL)|h{fP@&mc$2iTM|jO6&-LFc9#(%WjnC&C%0ZbHDhxTuU1kn2bEwPFin(lB
z9Zd*<XJn(n#2ie^AoS3^CgZ%38<)pqb8BJ=#M7wzC`TFc&E!Ql3f!xuy|(9DsTVNB
zx&0qaPCDA3Ro-8t_wRuBKhXOh&gcIIy?;(){TjXL|HB-Ff0LU3rlCpqbNT#F^k!uK
z%iB8llr7%NNrbm^t!&god|1>GCE4Lhz)$lqpO$sh+N3QIi#{NmRgx&h#u@g!J)et+
zC91PQ&PNF#e9bFr33|9*m7PcmD?CU8#TY`$02vv<&-IZ)e~&h6tF%Ish~_Bg5xReX
z#I5*JU@>w${Ao{d3v8v8(&<@pJwbM~n^HG>ji85xW~0?w&CzA1?vim%Ay8cyFY((4
znndUiGLL#+%HO9X_=A?7ZO?44fn%aTW45Zw5LPRIve0Jx8(_fKLk|h@EK#jfdt&YO
z;*;ZwyK=kn!^v}DM_YFjYwLvuS}dF@X`qM~_nh79s##u%7{VISv%x`QGX?)RVv8ec
zlCaBZk^%r9_K+^NZYfv}sogxoE$qy)pq?kCk(kj`*soE{^aT-mKM=WB!kRU4RJ&KC
z0EH)!4wy2(NZKQW0>_GweI#$ACQRW2TsP?=8%g}Lg>;&ln_YGd7m`yn8!#lFGd<lT
zB(DTQy4)E{VqYtc3$uva=!typrz-7Gh)+TYcJC^+<IP3E%DYUQgFtvX4+c(e|Gr`h
zubTE6ylUb^ydkkAv-FyM+r(JC5wFciLr0j2`v-cTSb$f`T$-q!7(F^LKcC!~9Q2iv
zL|yApLxEo~YbqUrGe0p9TtDLwh_n$W3mvGEzubJ#8bi=IJCOSK0xBsSfXG+SN4n5P
zG_2fgj7PoG3P=Fb5dB+-&I-B(gElLc220H^21-C#9THo!6W_P_zM#e$e~K+uX*-zM
zKV>kQz%@YeD?O>^k8<J)u5d)~0Kw^tAPEJuib7RV@-Ti3>Ug<&s^fXhk29vci00ns
zWN0j82_}5lTKVc8a8rk>5zQtKBaD^0T~3$L&0=8zYikbV5u3Ga$=&~TI5<ZRH#YVh
zVpELq@|8fS@bIe?VggW-0kNo0jc{5SCz;<70l}oTiYqv=b6SMxjq@`M31l(=9fS=Y
zkD)1kd(cg89w+uqgSS1R38m5ZXJRwMw7k%(pjgAFy1XGIp;#DfI?}Nu0mFJ^T=kW0
zXOS_<vsi<Jf+Ual18QftWzHN4jPrfiryu$Q2GSHRvW$~fV_&lT&PZp2gOP#;skPZz
zOS;v;AH2U?t-3|fMNX%*swT@rx@yaH4x&CwONenb51Uv%)JLTu>5LYnQs3CtSdFg5
zgSilM7CcjYYHK-2(PMOmKirb~EO3-!Jx1`2trF6{(edGg8&$o<JT;<VU8{UR^M+Y@
zkDG{l*~wj6ZZ_cvdM8h#tGBy%h4*79_1xB2R_`3RdduB8;^YN?gE$7RC=xYD4P<^R
zpKHB>FRVTatV%@b23w`{i}_B$#>$L9%a}KwhkeviVt~A7{l1?T&Au86@)CVW0cY&K
zyK4<KOTWcH!<83T_gxPJqezNP$qeK~foYr634hB|1X{q{W93sr7$LcYFCQ3y8>t){
zy~%J%i{Mcdt^nrZTGYyegvg{K*L8DR!Q%i_<FWA(yYRu;*w*1yT87s?y6fc@`SN(~
zY(7$wN@IzIu2xb3WsF(&3GXYXs5;12hDEz6Eq`|FxB&>Q(}tS!2m=jPpHAbpK7>-*
zshatU3_cQEMR*CIRM6u9R}nd`J9kNtfZQ$Lg&8=pz-oorgqihDnFPbarOfFwq+m2|
z1Jcmc-T1odg*j|xy6Ab!n53nY9><scehR)54ZXgSk?r@{wjr}(Qex*d5iA>&7f&TE
zOe@Vz>9b#!&_D`hC87+_R+D4I*WTJYsG`DLmtx|C7BzAjec#UcP<f@WhQRNpzoTE&
zf}d06Zk;q24w&pPt|*9WN%l6TV0$=vV^w>n9xZq|phMc?;W$SFT!hyCIP8RoLy$3!
z%!C!Bc|_$T;1YY$s36MjZcA+)!eZG>el~cLFfd}gD~&g0sgBX!0ElXC2Qb1Tit%r-
ze36gv<=M~##BoM`fi_W$Z2n{EO84`?w*LTrzv0EdgWvl;n7<eDp?mj0fBTF74oTDf
ze#ZY^Onsk+LHCY^?}y{leEz%cD&5Zr{4XeE`Nx2uKVQz)_pfnv5YKWLMd<6qv1+&3
zO{lQVe5s9x0!SdLqMD_ZLP|-J_ZJ)ja+*W3)h1y%%GyG5JzMW9OS4~`Yg}*BY6cPF
zuBevHi3Ere=wfaAb0xo%?z^U2cQJg>nv?Xno0+R|Agm4lM#br(4rlh^VgWMjqdMA^
ze1|4XP>D)U*2MEN^NCX`TB%VgY8d$oos(FJ2qpao)S$V{QkDy2g$m<aU7-+K_6Y7y
ze<VYgD7cS9eXL9G1H3)CjzoE7>E~`Ak%MXp;-OF}2p}XQtTo#ze4D<v*CZKh^loiR
z1e5E8qIcEBabU0G9Sb;&uDre02T0<7KV%apd%_5qK?Ma~i)>)b7X|_xQW%y0O4ngz
zDBsPBOIS_5g(1qYQ{P_e;m~B=oop}+Y2|q6gK(A2zIYEeK+j#)6d6?UU{yh2#}21!
z>~WM|A$vSd1Fx~RN~Jsq0IbUJp_M%f*wy7?g%g*GNDkxvyK|%8gNs(3r!iJF3Xvs>
ztojvsOt3ITI=3i&H>7-4Og>|~Q1}ui7lXZ_q0-#~Tqt1CVI}i;Muin(l>p%485xJo
z)CHX9PzaYVLk_W^*KJs+c3nnJ#39uV-+rT%r291U4V<l*aFx{*2sy@z{R0^4;Ucva
z8r2YMjQR)-RxE%%Z#a=TI-SY!NYm)E`w;f$JXu>^gxSw$(9V2pN%)qZZBAZa?20}x
z3d|kZhX#_2@^Yb1iooh?@F$eW<arz*PP<hKEL^>UC(?><*vn_BJ#@fyzJ=#PlJx5%
zpkyFXP}qUL`g-nLcoqS~t?kA3h>z)Hth)>qOxiD^XW_MqHk>d91nzV~%{0-h^FUX4
zPvR+7q1@{$q*lhGi%!V1vjC3BoHRiS<53J!aY}(Ms(HEc+@lmuM{u7W>y9b5riz84
zhni6|(i5q6Pg6Dj$Xi%<murQN0HckgjPt0v>PD0kD5E#8n=HCp<TC4pW4LlOhSDcz
znLAW=-tq$k7EDUXfu860w(hWa9jEOmwxX-&^|Zu{g(13y9*yhvUxziD46b}_el;ql
z@I!TEB)mNx+QNKpgL=g^)awv#I8wgn2B-0QX7jPfI|f^}3^C*lyD}8vqKqf4$Od%q
zR9@6OD+2&z6mwD2o{xI=wVPg5%AGx!gKz>pC8OBwpb!SlC|qU7yGwSXjDz0#>heAv
zKj#XwyoDpkGKMAdGOP7~uhPg(3y|pglWpgeL96Ney7iFMPB_4{csiy%VjNbJ)6~g<
zJ~onsIcBF-2F=u`?rsFfPTJM4t}k9r_JiMA6FXG}wrYoq=SfPYeXV<Df{KP^3Vu*4
zHl-l(^2xXwtzNsdd((rrqn}Y+Qn^_RFISu=83TuYu_?yOfj#uYys(F#1pDl<7-Tku
zj77VLH`Jd^w#(_=3#JZ29w8I~Y4)Mz;m0WBc83lool(j+=A8!(&?>8m>PiIXGhnag
zd`Au?@1Az`=I%%p3IxsyF4o(}Zi`of2o1vmly1rz7iLYx*Gc9zrPU@6%tL3bJ7EU_
zSp^LiF0Ee3RA`GESDsqMO+sK*RJANZwroP48wvm1RURq){vqHh`<2k{`urU<jISV>
z-!h2SGdBeX(!|1@j<q~G@8QQ>Tur^F5#pE2y)<v<2HvJ@G8e|2#LJs_-8P?~G~K=E
z>_yj69XxCRN8|FB4jB^UGmFK4c;BCPMNUI68hX7?f~MNkKP;KPC~olV>w*EtJ$pP3
zZpPkD*WTIa;i|)m@}JlC*aCM0av%S0mz2xXa8f0d#@?fn?;&J$)Lq8AL%V5JY%NND
zezboouL6vY;eDm$MInvy9o_)fpqD%wXBX7nYDz*l6p>VMANxm@X*9S-WtAD@Thmgx
z5ESt~snTV_HrVPTnS4@lQyzPnT*=EIYUPT}69r%Mg=`Fg$IfH1P#@lfWyy>cm=~Z0
z0M5r>VB*hy+ke2sKjdEN-n(f2_n7#zko@b4@aHhmzg2-hRf>NX2I+qhaixFnV*0Ck
zZhkb6bPp{;pOY6<)HuRU%S~pZo)DkHu=n5>2XYIjm}x<Og-NR@WEK)6qU+6vjIx90
zwQ6lAc!*VTtEubl!M5#jUq*<*u%6GxN3rqrNZ;k#G2=gIs9Zc<Bkb5|%_(Lggo?vN
z9vE&YS==P&i6ry;a4&r@tEWV_MuiLaLMMY&*?dNR)=n+o1}}I_p%CR}c=?D<(&e^G
zRuDrfUxRk<ej+L$%WkC_$r|XFnD<GF6a8`(2AsDzWMCO1%7FzJ-G%>h<R*y_dIxCg
z2Z5nb3}6#1gFG{VH^|v(@TD@d0UG#xp3q8fi?j4#upQ&~iZDVduhy<l;aWwfDU^FT
z?DY#lE^`VtBz|s^gK*I3w;miQURvwJhN@lg^gO;6e|*U3f7Z}{{gD0svHTC>^>;IE
zzam~g>m9#-$o{Q8?QhBp^uJ21u`>N-b6`y6pKkSKF32qQMIO{?_JR&5y?Ob@a*m8S
z>Adz(F)`U##|9fQiFjlhBgQ-`V0YM{-S_bT&fAf_)1-#9F@{)^ii43bm(K^E8FE;6
zZuXw^2#uRJea#ZnP!(<NpO;eY3CbkK9Vf5#+oV;hCDEvCSZQJxbUf>5G!pm=$5wQe
z@-vez46PCwm<ullIMED(ky6H#_D)YucZ}GzCJtZL!jWQBm^yp_NvK91Thm0To4XwE
zb?%j<jR5^W2#C?N@tcklBg)-K5y3&FWJMEy=rxEZrIG83of~G7l-2N^T_$#^>yMNg
z#&#$PeV=WQ0+H!}G#3=0<dU9L;o#s`0w~U96s|Akl8BFDt&m7Racz+@q_0(u5CV3O
zm7solJV|kbi2OA~BFkyizt|@`I*3@p<iy3k<<L3_@1QOW?|2OreTKBc5_-YIV#Ph7
zd$+&5N1_G#3@UL?2o((c8Y}6W&piXSfoM(880nIru84xsP-(g_{7^kLV;Bi@gRFNW
z_9R%JOag$W_sQIO<xHp4<$D|h+3`FDNS64BpKe7opWO|Af%&d|Fcy=YJPK&dme@IB
zS6w+X2)_Jz{`|%QefGS>Q8J$8A{-R2RkgCX$QP%VR@=X_*W1kZ1Gzh>?u%=>)q`cX
zp;)xUv1PGRH?cU1<Bla43UrK34imb=)H5=bhLA`r7x8T<(iQCxoH>eiw+jj)XDJNb
z0onD9_ewh~7Gj2ExY7$Qey`@t{Ig=qHx1>+mS7NmdH%1vNpPdos90auXiWH5EVtKh
z@K@UTKcBR=<D{}3g1od&i08+8?97WSm+TtK-_|Bb@bi4bS_sT%f$%>-e+a;J{ZwC}
zde+)+hQ?#AOJ<4y#ywdz)9bNbNHrF_R}kDgB4XSTk&5r#iic{pAi-t{{H3doKNvx1
z(${}6W~dJz5T@O0jl+B3+a(2HL2Jok$T@6VY3q&gM#$D!X8=1L%#^wqO@Au-WF^yy
z-IoI0-9YYLmd-n7&qa%c>?EbC@`<qe@smb;nyJLD5$o`FpK>R^j2VKfED8*q6nX@Q
z>>9@vAhgc~2Ym66Xg1)I2zayx{)Yv|EZIp;UlaO<jnY4LB2B}G6feOLB8&$}0NsHq
z_1fYrx^IU|34Xl)8s4RvsMYFelaBqlj*#CD7tJ$AL9oAvQ70tJDcGZUbqq!CbJ-LZ
zm(VxF0FA0Z?o=7mu3ADUxYYM`-zo&{YNe5v{+(%CfCZ5x?L}(}h9l&3voL~iOT_30
zxTj?#j6270jzrtq3@c%$6zM>|43(e<^#a>J>M!z3)zcf~gXye=49Kyx!BpBqq8&`E
z#IP^nxI3S81}`OCKO8wyxf|AzDWeNC#yoK-2d~G(OT83>$2bkM`vPl_Ebf%sMU`z9
z&Wk;xobcud8Iwlzh?3IZYq8g&v)|^9>S6d`eR2bd@&QNjAbfbKc&R(h>jMc=5Uj}@
z)Lke}913|x?dj<edu2#HL$u+5D)IS#I_SR7eFKOqF*1M$vyl{<=QA@KTxifgQw44i
zQTq~vakZ<X3lihYL!$8taC;sFjKGTg^n*1@IDmFF6E+6B)suiYTkMvJRYy6%j)^i-
zVCf_iLHWVI6HFRHco93HGs85ilpG{#^UZW8lcfIvjfaW9Z}?eeD+N*KNN~8CNIseB
zL`PH+j79TDM_ROoj4lJ6wJkH?Es(i%5n{Fc?Bm?U+WcNbSb|{tTHvgFvn`q_<X7_)
znYOY}PW9SC%Q2&`%3wmDTRVcb;7V8rdAwQ_#Ys_=Wn%d@Hu55vx<I@L4?Qq0-GPXu
zw&+3Mm*jq!+{gej^Y`-}X^u%(YKOSybM#NqRV%yrAP&r>KPlkC)h(#xn*LygNXy&t
zwHXW;#2;G5D(}DzJivC2f;HAbu8Swju}jy<*R#V@<cGjP-uL<?7wQ>%JW68LY<^fP
zIwhGsdJCj3FanNP@Cg~wt!C&1PDJN>Jl(K?#p50@yh^DcSmZz%(>(!<aqDrZ^)#Q5
zbE^T08)3ZBvdNi(8%hSG((ItzyUu%Sln68YXe}cR%sXk#0_pRtXD)u;es6v4^CZAv
zUS$T?+hqo4Zp^UUtU;w~pR{a-9Dk=GKFgO+-AgdrTBL_ep6<81V6;1K>5vx=TT?KJ
zcqG9B>{nJ)joa0isQIPctwD2M5b&i0rVh6J9no^VGjgHW!u=s5psPk*3C-e*wmXra
zchXqk32-h3MQ`yWL^{FL-J>`hkpWqP@)nT+!H^bsLBg?vLoh4}l>kCzAMuhZBR9j?
znAw9l6EuVidwYpGK$l_Mue3U@;2{FYJh>OL3Mw^$2N?o=3$a+=@~4QR2AsHS%}|&3
zNKq-5g1RvLD=sdnYDYPhmh4P-sPai~U+mg8rhY*9=H4h6y9@Skuc~@qHmHfH;~@M1
zfD%{Z{sqbSS?d1}B;yYa@O1C=@qf)^e?Q~@tnU09$zaB3{9Pe>7jb@OxD0gobnmbG
zhr09AUV{H?)c02k5dAwj`-@SAGo^p-JI)q{{Hh}Nf^?H;X)*<bQ9oy;AxmD3ZC05t
zfp>Jh@$kNU(2<Z#In08_4=_v^*Tt#hdGqSd^y*lWl5ikRRI+wiFj9CPqCh_8bLriH
zaut=zuta}Sh{R3~c}qo!l?mmy1;)h#2M3nZ>vpk3!U|+WH#k(Sj+S=9#Fo~v2Lr8o
zoJwOoXDXp<lRHnFI@RFd9%<*LW%^GM!J)6)6MX~HoT@a=x1L?e_Q{d$0A0z})Did4
z3BxgqpSY<!)5lf1`9^l)G<oP4?85C#h(40+EQ?y51XaTXo;B|S)rH9+nCFEjcGHv1
zjNY6*WVW$ovV1xPs8_P`=kAJDv6RKyeM>j<9OyLF(;M<Zs@)UJ+-o$V0I^dIljn2z
zZXhK!+&Eif+e;1(k0N0cT`!?ymWVOYw)|x?WcJvZVHUKx9K1nMG9r$&{nJVH*mE@z
zJ=qt9o|#>xw3L@8;K}5O4u#jmFHaVtqfE5^dbHZsXWUbmGPq)dR;ACxW83r)6D`7I
zyJu&WL5iD49Q$M2L~<sy;3_pJ3W93G4o#%4TIZ?vKK-c$eLgVYJrZ_78|acGGdklt
z+kV;$S&xkX*z=4Ho&b6!K#90W_<$CmFc+@NOLvkdh<-LwSWwXbK)yg@frh|@gI|K;
z01*X()0Bm6WPD7g*{0QOa1Vrdb~#eaEn`VeUvsHkFMW_m&r^sTvBU8<=Phc~<iYUl
zc7s*JLO3>!fl|MOwHA!wSUb;4LP9*&Vev;pNCZ2`*Z}kK)vRrv^cyao?Yl1|zE0)@
z$hrFGDR84VkQe##3EQC;9g;G~@mS~0Mo-U&D~3UmZUJPov1Whnb1M-A{ZMVO9_TMO
z0GXe>EA!azzis<jp})+I@=^lBRqcLPu?+8PsKy4I5CWU+Sg=HZ&ML;8f}x|-zD7=$
zPWg|G3376_k*qH`!@ggOaR8F^RQ6%wLHo++QB17FFYGXELBJiP5N%HJLu9@2$Uz!i
zg=Q6CfG!B=55#bd#xcmtiw%;I=0|>jrZZ@uqA|#DmJHrw6O+yJo9k=qdGE%~LJJkC
zN*9bKXAi=7%)?kHQ<iho?Xcj@<N}g4k7`ns0x$d5rbK68(@_>hqNGg;v$Ae{7B@()
z<--{Uzq{D)@z7Nuzt)q}E(4j8u?*bK>Z_s1NtWq;1*eGh393bxC+12b6kb@eK^*Cz
zseGG=@&hb2%Fa;FHmq}}6RplAo+1#1yHn#vOXFAVXRv4|5q9TbD(L5OtuLNG@RcRM
zM6B&3t9sN^lZ#_c&=-<i-nkaXXS(hCu&F-+V|=<7%($U&M18`rT(^f~FTLojd@SS<
zN1ypwuK}r|fI%u_7f*P7M6&&LAjRFhuW1j8(RWyvjo{I4CdrEjk>4#P;*5fj>E5NW
zeE`hz5UBBz8Ov%<peK+EH3wbQP!;#(`MmhLIC_*k7Z04S+iyNIMD5@!;xZTXOfHKy
zm?L!Mb4#YTF!&TSZ3Ijwb<I`w$4yO0oSl`+&8~A)GgZlrIp!F4+~CGQsAKTr+;5d=
z%Nmzdqx{dJL_a1kIZB#y8ikHYW56<jSl^1f{C>E42hBrtDW%YEr2hgn{#^ff_oaV_
zi2oj&LigSY^}k1r|8Mk<ca-_>_OgH20Bp4Xn2Pcj)&#66tys?R{<gK|aVqiB@gj*E
zU)BauB*uHc9DkQIb-t*|?+oPWVRYGy%u!>SKL8;V<-*d@XnZt{O(k>8FK!{;9}Gj(
zfK@91Ea>-@HCyg3h;*1_@v@>hDv3rl4K+$O-HcI&pqwVPtNp~yA;?H74dXdUXHU8<
z^)4`e?Bz9tQ9KhHpx^cZA?e&jc7(`@zY=fh;<!UobMIJVY+h=3BQmJ^Z|L|U(gg;d
zc+1aATKe8>3RsZ=3JhiE*9>`+ODJN&3u7V@1JWU~s<H+zm>gZEx01eWrlADO0(++F
zWzrg+6=d587SVf7xV{?1B_2JA8=P=z2=KGUSj%meP&b4vk12MTb(4?)nF!r!WIl0c
zrYe7hxNNz&1K|yfVJ-{X#^BB3R7G*wn|h%HgptjU@)kvB5s|%wgcSN5%se9b=rko0
zP|0W;)lWxi=0dNNX4@OF<@wwVs$y<gcq-@5bP)r!-Gdk;0tuKRV%`mMs+*lMc2Hjd
z0H!DFafUwX9M+~n`6V~AqFO`30c6y2-h-vnc!#}Hac;go4dAP`zBWt+=r(p-|AQNv
zlT#6Ux)=bXpZ_rlz#8r2QAR90kU^xN`lETPG2po_LC!6y+B)C*`_N`8>KzbA&$=+z
z>g9DuAPFYys4%WxKq16NqT`okGNy)&sC^d(u{{L8298cz;sF3*0rsi7PPGeY*IABF
zFUfo><irje!4qU<Kr2<JEx<fx5uZXOB^2#Bf(s|!=A}!U$;-b9?l;93M)JpL#G!`-
z_Y>W_*WT5SaxB9TW#mX|dD}NpStx#Y{q|XgC4bGJuO4&3STP<)r-X9k+tV)7^OyWO
zsl)p=mT+%$-aKC7#%Hsw7v9jh8Bsb0UH(v~s$K5yX@>(xbl{?T!h6ma4?4CI@O#SK
z>X8^RFGbj9c_b&ZjrqeBA)frqps@;<14DFf^lV^XkSU^u=x!r957QGX-K7_+NL!dw
zWE!3slN~gK@bZUR&8Y9ROs?^l+&6CBTpn5CRbGV*)~(p6$8KY$%RIGGggv&z`wDN9
z*QO4pG}M79fr{Q9DLu7|+CpYzy5~}lNF9sPeW(3H@w*eub-ncL)C%gv*`4?f&g?vK
z7!WO1hG5uBF=S@AL)cOGQOr6*t4xI@ky4OfTS8Mc`X!o&Tj*Ldy|?fhl<K`GzC#uy
zQ)c|}DtmVa|NEQ$YXbcHm;c{YHv0byD%<a8{GSQ%f8ww|6X183l#b#5t-Z<c^F{tI
zd-I<c+n?K;bIR}Ip58|nyl>;00wYX(5MOUTw44G3s?~Tfsew>eiv(SaRZ1dV`F0_b
zXFi>X%yC9Y0n{5SF_Fw><ScT$W`ElQE{5b6o=2ZdjqHc~`>ZGZ=10!`K?%8nrN@J^
z!IGurHS-lyXeE2~`DBmofiwT`R8g`1@9b8jmt!m}wo4ywNNK`cW93R%aTu7t)4#I1
z^5DdP^xz%g2k`rf#*VV&e#@QEvaUwo+TDR5GOQKB-2@}jg^^??l2Y-i!S%p=tq+Ui
z&teR}ttgcu_9yBmIUC89DTgW{0@=ypEPlGKq=C<<jVKMXcj)r-(2#-68uWi3>vSlC
z4<Cp~+G|hlCCKw-`*45~0U(wMyE`wQs2k>ja8=HCO_`9tYBSW@yGHLVMTU#|CLjtU
zRE$q1A^`8Pv8>u0A9D`EOzgEtjmjDuDcZLS$fj%5lGYFyF&jm4ksBYQ2u(pi89gyi
zhHdKl#rJ@@Wv&c!I1<0SiF=q@SBNOksSEd{K(%%yn~<DPJ=i;ujU2pf9KD9E2$>CH
z&_~w+OyK2fc2T+<A!|3bo$<#IZNqBI$Dj}&mxncuqv*w~xN$;92DNV^<5c?sAiT+9
zao%g}KR8-$ZkJEwJ#s&F0NB}Vyfo}7F3sG@_I50UFKeEuum{oclgC26+&UC48`>>=
z&|0a+peHcs5q;}kDxlGZCw13c&D<3;%{ybi25U@7N|pSwC{%|5umDCeI&{KNKoaYF
z#G<|Hz^uPJx>!p{<OQURPr?Z6EloSCQ5>A@shLsew=V+0Pd%v<Q+_i>fk7VVta`Oz
zr7qq-k45z2H+U!WtebcC`6!@-b3jqkd}aSQZ3y6mvdNm>TskZ(n)wzsm{yG{LstvZ
zn7iQ3=~O_4+uSV)joDT}zXPn|hEUC@&!dLDDK`fs5^@;(v<LtQ(G5R~a9N{C<5}7<
zfo#WRC7BM}$#BhS0CUrFghU%>McBaxbbTxU5HpWA9P=rybNH(~kdrWV;kGD>FW+bC
zUAk~?(3v4t`wE0Xgf*v$1V1mJ6j{L~86UEk>}Ei91ZlAnz10fDQ_Ll%ZX0zIk|m!D
zH+_8Wpg4rRV`DYkJ0frX@5;r>XLx5XDpbdfM@BcKr7txF_L&UNU0ouZhvrGJP8>Iq
z?wL+*ePz~BT_OZ>DhFGZJfm!VgXoY0<Ru7<G2;75;t*L@^w3^holpTp_4@NgDD*Ju
zr@R-=prGHF3m%S-C~w@x4Kv$671$@im#!v@Dl=aYpEXSZvJ5okb7e?IlJo5(2E%`=
ztlMkRn53=?{?TI&OyOwpVe5g9=%r^oWEufRhYG%?a{EY=^Wjh@K{2_IN~GJM?s`KI
z2G*nky~s#|3gz{o%%n6&iNlcMi`sMKT}wha$w_L<$0S+mszLas1Q(`g{kD%JC+MKW
zz|l~wd0;k%{zjw^L`iO84sEh{n{Z=UIP$OhLx%Tr@{1NeVgpFGI-vo6<=A>$wwY=%
zT>f>rI;BR~9}seZN(&EExmre#gP0YJ*tpBwy|czIHEa@hMxb#rH8vmLTO{=ZA-Y~L
zqzh7fU@<Y=uF0@!;M5mZO0Vx-H-*-d7&g>LN>&9s?&P<|Trab(s)LsfESS+fZWAXF
z93rRgLHZ%>DH0pL!q&M%iPHq_Oa?^uYi=7GBy1cAJ&ZS~1(sq<lvjS<RsyeNlio6K
ziySHQ3tgQ)eL3H3W5%{b_c?vLGdshNb}N-c4hi?2srM>|#geGNRy$X81cuCCm3v?9
zcVyb#+vvc;LaWvSZMsS(yU?w!cb2JJwmMgR3v6{w*ztXDzpdrjt~-xpUbCki9f-%X
zWg;}g*9#yt_d4?zSoSkH{tsC8+lBw{SjO;Q!JEH6&XA7bzqtKRQJvq<_&;OWe-d-(
zf7Wc6@c+vs{Y~Wg4}Fq<*Sci<1$C!mWMcZO`c2zcExQ?3gwBl{iWkRm7{qxzwGURb
zov<)%JNTS{J&hsD&eT<EOWC*FuV<zP1D31&Zs0TEBh#jJEz7SC=|&?<J4wF6fyom3
zQ`c1VqInGCa$Q2T>R#dbDK!2l7*W#0C7dn}*ShV|O`+1J&Y{k2nK#ZHT9=F4t>Kw7
zFQy$ebJ$=OQ;7~tKU&?n+^W*9$bERurA3*<4f=EEEFIaNAK60YYlvOB#J@7SU}|)U
zcQ?`zE|0}WuZ=j~d)_O3GXf0#ARswGii31nGKAL$vm@c#$0@mun$k#tz5MV<qU7hH
zGMq<iU9oXbAxaDx5q}_omFqid`K}n1A8Q=2f$qx3l9o1`cAwyo*%~NknAo}Nd#=Pt
zo(vzmchkl&=v`~d5BInn@frd)Kn<h7poq(z8Eh<RaG|-pI8fW0W6`P(v#N81`?^)m
z2i7qty$6macfO>4fLx3hWu-O{P27EJZ9tFeM&(#hUEoZ%R_6Vzk5q3n7LM{Xcoicr
z*RA+)rDAzHNX}zPCzK!hJObpjLg6Ogm*)#C4AxO|wyv0-pIc+4EOsq@Gzm?f%UL1L
zKGs}CVPSO8MH);SpQsVnIr+wJ{<hPT%A!+1NO7Wmw&<Q6AG)z}9*9q)lU;(50@IIC
ziIhGqLCg+qLy5Iou)|Q<sZ{1=7i2!@!MsWQ-Voitl%?>Y8gK#1)jn_sT|B$&%gQU}
zT6Z#injIhpZ_LtSKl9hh&A{=RM@8{aoPf5Ohz#B%yK#vWIRiXlWr`i5aA`(xsP<~5
zl@r>UwRz8x65}CU<cm%%wE1){cpKU-DP%1R1P2oJQK+_ce}>C@Yue^EsRII_tiq#x
zQ=^5$97JwW;Wz6GcozvsTB*%p*UgGl9i*YhSvS3w>ROF+bqjN$ID==kMfo`kk;Ve#
zT<FF?0A*%bSnc#(iDW7qYlT<FNX_$;`SsK+Ie<Z=s}qP41eOdFaDPwyom4>7DsKW4
zPnhs09qmy(kk3}fAo|UD$ClgA&a)jLQQ&StKTOVZQg(|AG3Q}4eQ8XGYNS*UD2!w6
z2?Y$`ph6Q1M)ncmY{>~y4qX@*!=#LD`N7Gwr#Ng7pg^t}-W{_M93N{g1Y=)^K_Z=K
zVFPeN_k328A$%#;wT+Ku+JeT^2qJv=KgwD~D_hf_r6LFVmaX`va#Uw@PeN_OE=y$y
z%PLM@kLIbVPq+e*cA<<+#v)Qe&TEO*Lv;4Rx<Q*MybK6n3joR7Iw_iQK-MHjv%8;t
zrC@oJz$QKVO3Fs=P!4(Nryc;;8gL8%?nl69nf7?@#X0&ubvaYITKg>a0&*G^2flr`
zw6rPz8Y@F8V9AA3pvQ20B-Mf%zPf?Z|3p=b7GK5Fv~kjgLnKtq$h2RyB5)KF!^QXX
z<SVp5!tt7mr)#B<BHvE%xYcr)-InbM@DgcFXDdud-F%+c&&Oo&fI=4J5{%(2KF=#%
zAm=G^$=Ku_x}O{vCD`%)=4*knpySBEt!29AE6(a%W3Iz9>OnTJBZkD${aYA<V{SY)
zGG_V%GZMIhCd5p|ObXhI`<F)AEXbuUT}9*`J5XQHrwSM6p5MrWpGwxP7Fh7<w<oSF
ziXK1qw;xgn*h=aN19pBRUwr8~9P)&6O-t9Ez%eq;ifR|ubD-1VAHK%6jRe7+s%qGl
zf+Pi*c!OW{!7bxv=+;03Z0)|fQ*YY#HJxt0u>Q0Yx)Ek(y85Or@pS|_(Z~h7uHhyU
zb}I})d}S?b4rJvN&~%n$cag-I-I5dc=><3cj+T<UD$1*As0$H}{CR?B6$WMMf|+nQ
zOEiHkTZ188-zAT2hcf!uNlgWfdm;K9l`AQ=Nn(eqEe$0Sta~!<gsj*lc2|d4lrdub
z7~lEPK>RzkfZ-KWMCL-#<H}vrnOFA{8UpHk^dB*i@z3kK-x1<}VB+7d?|y-af1aZF
zPZ;-eefPKV?ic9_w)c*XzlwMHUsf#N=K=jT!B-ZDGEpgJR4vQ`O%0#d>7=0^K2&0*
z`*>T-HtuxcLWYQ4F6RSzXy+ygLyw&yYmjS8m}bWTRekS1XOvUW;<WNXIQh79>x!2Y
zag_;axX7D*`AHZi+JU%NAck~v*LR#`b-BcFlm6I}ihh*0o8ZJCakWUr1vr!brbJFe
z%Gc&+gtiqSs)Eab0-^*`v0W<a)I+t~?;j%`5F>a5;~~rx+~J|czSePC5)KI|&rTH{
zUYMo902z#kSdlpzc16mH3s$I<v6-9Zu`2vvi#ob<EBH{aj*wsGGr4Z;bS)SlqUv-(
zhO|~te(t>!%uH{hK64k<xYR;4Iq+C2VI+qz0vg3o@xEWO>t&~3d;^X}%^M%93BjhH
zvC8*k=nXalXl|4AsDwE{$Nm+jNPtrhV523cqGhO_>T|=unvr!OB|jSn&ywJH0Tqz-
zU>zSeJON{T`wKtn`&<nCY;;706SmUzONq@ibuxY_YUEJU&Z^F>cAD`)TH23K=hNp}
zvCSFbo`og1kZd}bVwKQ77oD0!ed}6lb$SlG@Ze6#E>4bI-%~~kpU_^frdcIkQF&yd
zYC4(qe%le*Th8%8?`|!1;vwG+x5a6L+EN*1kjR-*ZVKSJ&&I&1_yN7-Y`=|Tbm6qJ
zgng-qqBhdIej*vpLK=O_no6FL!b2c4)U%>c{c$f8!m_U}L%|$`MNsXdQEHIRDY(;T
zmrIi$D)x=W%Y#C<eUPR79|W;5D^Sy9>IQDWkO)HPC^OGA34)P!P0|W^y1F5avO;OT
zrr^=7wKSVD^YX69jEu^|n=^^^e<D%;2+SZ_)ZNUx9g1tps?`;8P&t<qubdi|^~v1!
z?QqD)ZHJe@x3_FFw|5YqZr^}e2|a*>bmB~6cOefVx8nTRfh%nb@v7kmNjFtmGM$jQ
z%$QKY0svdKYUKeYcXA6x>a9%H$m>zI2^pK_@X9#~F$Jgbq3eaH<7<b&q<=w480uaK
zMf@j-(NdL^5}PmiWC6)tidsbo6;2jMzEmi7@)u++%cXXH>wxnRl+JTux)hlJ*Rykx
z=A12H!(*F5-_Mks5Fzk1a1Soqp^&*L&~@Yv<SDNNbh|0r?(103rHW-PG3Y*7dceK<
zt6?X%%iag3xFpF%)CjO(t$(p_cwRW;P+!X@e9*%8d=owZ=HbNEz>>S<Nik$)_{EL(
z=awzwA1zzPzirw6@kaaoj6Y%dKZOi`zQz9Sru&<DF~(nrRP_JsM*9omdw%qoWj8H?
z|Al8L*D`p^`dTj!wycR_9(KuoAS(c!1u>EWh^fmnJ7hk*%y(Lbk8b8(H>#YRi2RIG
zF@CP_Q@&2dV*I|%Dx!{J$Z-NHbslPM3efp%DAnwSBunZj!+z7`GqgtES;w4`sP8CK
zZ}wMl-RdfmbY-DIQqdwC;@9I(5ggMWQA+CqJ}WCjnXv{UwcA#L=@B0a^1WceZA-SU
zyHOb*v=QW7e#1@2%M;-C9Tk{z-{s$wxWxve?p=320di(kc4p~zk@8@-7%!G>-sIo+
zid6L?r`|Jwn%if@2#w3hOt3NRu`n&qTzzw1c?5SAQR|b^B+J~|-@Z6;Yes$rY=qQr
z|Haev=QZQ+|Nno-$N#e8|HcUXU(}4hpYbP8)8Bkjn0^NPf5@4v@9V7pD)!AONm|X)
zBD6gy30jL1>z-acit}SX7J<mo821I_P)f>~Qb?9cehBfJU`^!(U^z|H04%&acg@J$
zShVV=`9dZw4T!ucVJ0(lOliY8b@;WKUPTdaI%%O#L+e|OI;Di-z0F-BkTcL=I1?er
zC9zUyHpy26>wPt^`~6cUp)7G}4|yx$Z<aOK>Z+EO$IQ8WTDNcYIDm?T(W0}oK&C@7
zKDYp=$STwz2S;OLLZalcg^C)EWqH}mGf0fCN?LO#&7V#_mH7A46#|a}KqZ>!=m2<}
zu2e56>_`w8GEC7*2|m(ZsDKR9`pt(UH`A=myp3qARh>X2(n|nlc4i278XI-y?M8kM
zG~sn|_QWy4DFlbXeytXa!Xj;~MCRh8ZEL@7khPR!7|Yk#-UkuzId-1K^upK+^i_eh
zjKP``E{=+ylRODo_i4mYZYZrjOZ8&PH{0-hVv$$1*JwMBiknvV5yOk|c&h)#5L2<@
zOMgoa0IH`Rxpdo}{nds$xlYPoTdH`dEMKqlZoW*KA;_M6Wb<r|)vFz~+C?YW6)pwR
zdL=8VYnI?EyN7D>I!bxR3gZos&OW-1Lxf*;Zi3qS0sbR-dde6qkx#B|22_;fGy11K
zUWw$d!=s&t+s%iEdM{G!GM`=?FaTpIj0#ZF?fS%#vI@y5X6S+AG|}Yo$8o;OL9e=p
z?a=#1jxJfHW<7nNESCJpK3p3eOdb!cB!MB0DeC|TESzLKa_p5Tf~`cfQGOz=zdW0z
zAnQ;xX0z|Jy@=Br^Bf|exPk64c%z4I3l$#1Ac~9}sAel$>Z$m-m=D7(lU|>8eklky
zl}x3gNhNk2;#gVsoWKJg4={EVGX!2trwtARTd+wBvivIupc}a?ss|lZWz%2~Js%fm
zv|cU*&dK51#?7ZKUCvT&1XrZ~#&{eg_$FjGYxa0&HHHlh&LNPtPxmU`y;wfEPT~l8
zAdDOvpYF)oYfO@;lOUvXl09A=r1uqwKyXzt&pdM_rx@v6h^P3zW_C{Kq^oJIrK-C^
zrD_jyC?%LcBiri3;~%n(+f1>SK9wvozCL(0F9yQUg4??A@YFi7fxxOC4jx#nKTqzX
znrW#sJD{0Okw4se|EL;U$@dIT#i}sEFvAzsD!(IMmR{j<X=DEmwWo?R`itA>XU_a<
z1?%_k`2V<#{^2$M<xcBg-9|she16J2GvfaqSN^?s?7flfUq%ZP{=ZU3@3S`Pn0`~4
zetXfs+c7_dmfo}4?|}GUFZy%Mi<=vYM#k1kPu{>DUk#r|M({H}je>!*J-)`z9db;+
z;Q9>A|B$x+3Npsh{T9m)aQg9kET3b*aTSpdQ3MBJ2|++aqcT2kk`(BTD~UA#&YZkw
zt;U_^f$Mv<E}9w0d47YjOWls9jS(Lv$nM;|>>>Tgls8Q;>Aj6zOVhZmhG|u#MWP>s
zsK!}wj&VQrEe4YSSFcAVm!i{Yvu-D<2dx_xSwwwjYGhl@09jvy#1%(D-hKWS9&tR#
zMT}D!uLsg6H|+-=ZZ?d)1F0m2z&(IzEI%?hVyYzCa1h8^+AKsRogzJ~`r7K$*($c)
zhM9IWGg>2?$*9Wc;l`zW*9hU1X;piW@chL{3lVVGh+Lw}MH(eXy$y+qFzkY0dxGZX
zC@VcR_>oPOvKq;2*s-gqTd`2c+BYv}qt6r^yNT7)d%fYyqJ`!|I0j!>IdV7rxv`B+
z#LDrZa?;K2QcQ^YiJ9*Rm=5JZ8|XdrhxZgHlA6~%n;xNgiVq~zt`b~bW%Xaa-ywNs
zOtHwM=KNwN5YwOYxZgkDe}C5BWAcA9MDa%+_xl-tg1kRHxj*x`zgvwm{ervEF}@e&
zzyJKX!MLXKug#rD0YEup<LxZut|B;Su$ux{Yq9uQ6w8JLvXr81cO4T{NeV^wB=QxM
z&^~~1wN6Gx?N*w*t;vy^8uY<bRiVYkuE;8wCZK}!+Ee!T1d09;WUH6XRgY=ZVRS||
z>EFfAJbB74H>k!%juS&3ZDDM<Gk7^CUfOwTQp-j|QSdPIRQp#Wc_cR?)}@3IWM6#t
zC5l6Kp>pi$p4@J?kRuF<Fx#+XyUSyy(A={?$_%D-iP0}`_j4a|d6;cU$&IIzZVTw7
zKjTB7g*x2RF)BTb0%zIl;W<AW|Mn}ZPP+J!-U>#(*$6%5<~X(nH?#<RMiAX1Mc#8b
z%)ULN?qhaT!=!(XVXex89dA4-=3XsyiEARwkOnWDlAx^RvO@<5h$IyPApd9NNkKY-
z$ckmo4!C1dZ}jm~%{3X1F2zDDo@Pr?7dPUy$VjzhG@}wVRi3hHqNbG?3ds`6k0(FC
z>qGSEJ$)bvXpUiSR8)xVY#+KIZDZQJCYr|&8Vfa|j)a8(dc}s8dpp@;<Q{MBVrC%?
zkw-%>PHfZXPv}dREt(5y_Gv!K02s=2(|Itt@z7_L-&JRJUcvRU9Pk&H_i}$8MIhp!
zk~JIE8zGIEn8e_riJgP`ra0&uvMcy8D4nJE#+9v}P!r80ohFRZ8dnt{#fpk{jr7h!
zUjCD1V*WRxu)IMfGZ5SJP*J&DcF(?VD?-NfXG#Pe`Yv1<<cL2K@*NN)jlz+Npx1d*
zbAqy#5+MvzW|AY-^liEtaHa`4C%<0_i@5;639$Cr)%V_qKdI|$@edmVfoT(|PP-M3
z(r0dQflvu4^#KW|9{>pDj#*C}5eK=0uK)`?7<<VZs))1`qM)A?Z#0v+BH@8m7zirM
z`~Y$~!G`$&>>k(csMGV680CjOEo0LH{q7#QEJQt4a$ZH;?Am&HEWHYd6c8UBtQZDA
z<m>}^vIe;iI#BGQ_w95@!<CcpUBW7RCjxOS4zB=_2^zAxXm}7AtI07!qxi6Q=wV(z
z1Oq-ypJlUU&9Z>E^nzptMXb=fra)Kw<z(jZp4oyNFF@%`wip>N5X50u{SsK&ZvLE9
z5_zPNE3J+zk_44b8&3xoxvVxSZeG#nwHHHST@Ddn%D9C<>H?NU6h!epE6=}IG@MR4
z?c^gV_A}l`ro?>7Dvy*Po&+h~%d^wLrD&gZNri;DFyaSzH6c!3WMON@v}XI()n1g?
z$y)*fLIn1LEd;{z0lB^*_jI=8GXk7Q3*K*OIPe@xIU?<e+f?%V)^eZj8BoRx2qw{i
z<4bBl>QuFOBFTtqz2@z9ifQHLhbE9Fgu8lKKJ=V@_ok3VZ@0~4<%757IJTXtx#Jdy
zt>HGXHT;5bcD-y;?7EuECYyGAK$#<aF3T}$`5|JQ29ltql!R=0JM2xHf0vejHiMb*
z+w@*{O;y=7J2qRaci;_$x11jGU@rv@%eV7^#eA|G_xd|nN|2=8iuOAmd>A{*5GKDV
z0ZhhkP$|0#OOR;O!U>aPkvGCR{B=|Y_uyeSeDT(#A+qxsv9T)z@y0*^_u$W*w9!bC
zMa=gv&7J!n`4nkhK}f$^ziY8Z7EW4xF$8Xb7i7=0AVMGw6Uy85g=nKP?nkwiT<x6*
zWSd}J68&f@>AN@P`v>%BDhY|-ha<>=3Y*!!;iIH#kr}uqDV1wjsF$VcRKa)kbGkEG
zCavCr;k9D9Us_($U6A6gN^`p6xs%NlJonB6(Iju|wmXO(k>L{4Y6|DFS-))*o^bJb
zHjWbtmF*X#mIDK3D*_K#sl+6Ro<*Zb4RmW2I_XjG)Oj`X7n)msy;GX}mhT}c`K%;X
z*I{;P;<zj1dG|c0_QRfQpVIU40Zp9jF*9hT>=6GE3UCjN<c|c7>Cel_-yz|DfZE@-
zAesJPLB2bB{~hG{iNO6#yZ%0D`zz+;-z-w!$FlzS8~tbIhW>rfz+Z&KF=a_BEEa^e
z6D6wY5vX8vxDE^yuDr-Fu*vN5-<DY`e<L^XnHyfym~-^<2zt)0z#OheQh{`zlqta7
z;2eh;a$&)0Ytlzh(M6S?GDrL;CYry|eX!@$K`IL_REd%FN^i%LZrr*uNQ@#wXmPZ!
z>XQCYxKj7A-*{Fu-6Hg=a4Bf&c?p6r)N4{(T#{G`A^&7bD>o|Bm=SO4uqPPFG9vuk
znio=eB<D_qb{+nD3NLrVkrf#v1tw;l$#M_^WQ)IQ9X`<VXdYISbsAJ`=kAGJ$P{~f
zd2NAMXj{z9N!{%A{6mGk&@tyTOHvwaZ<j$bX}9r=_ggfoNqf2zgARG_q(33z^5`=i
zKz_*QG)sQPi5gfHQ0qp*P}`ZYX9@tuDqau>3`t((K7UrWI?fhITV!4sqkCCP5iRRE
zyB)HF#P|_p8;&MRgD>udtFa}v2CwvP>@gDk-)M)ba~$=8M+k?8juoN(A$|kBX7lYd
zktII$$f`l}uvw+Zl2o3&z#&-7VhMC2Y`d24Q;ZbVD;AM^1<LjLMIYtcSsn6AM4jgI
z+@eZ@8Z%;$g2TY<i#__h9j^y<90Z{S3&-tUUvEw)EECa3V|hD+J(p4QIX5E-($2G<
za%QVrsaG|OZ6Yc=9V=tsxC}|x_3dg2HkUw9&QTc-v1IJ07mc3hiNJ$%C8lLC4BN@m
zp>;m;`@k0CeUL_?tots}%Eif7wqzrD^6UqM&PhylFaRBms_Day5)?~2sq+xmEG5UI
zx<+b%qYQj05xYE$Ccn+p&w0@PVm{Mc7qi2z)&fXWh4vOmtCLv+bFuH7ClG3931JYJ
zu3!_6Ytd&%+#&U$?xR5W$Isze6R>>HU$C=9KDHuMB5Tq<#b16EQONN~yZrV_JgXwA
zn|I0nfa;K?Q*+VaY}Z3v0cW9D_?9fEcW$fH;%A}*0a32S{t4_U_|Y;U-?I_wbq1}v
zP7QB55|FGB)aWDCk>LtltGA*EpH$U!x+>qBeTad`iua4JzZWN0eBZ~g02&^_qzY~n
zi$<5gj<0f2{mXn9S5pQsX&*DHDc8!ZQiWFvhE37J$wSbny>En3dKR+ij@4DmVvon+
zW2-yW^jVuKIc<pAeNdDQ^J))bb&sHwNb6cmi1gGpflmmWQ?~tlhi^^@Fsj0b?2cr0
zU@0`J@3mHUx2UEB(>NKqd774wx3ri<F}y#t8|dxQIfeAofCzQKp^=F5irTfVep<s<
z+=ou5)lyo_Tt@M;Qh0^kMn+>+ue9qsK;1*4>8yYV;Y~%pZGj#IzKporxa)hK>oBPH
zT6H)K#h2CV+X^lp(Woj5df-~qN=!vf>S?*w{020VO%Ut1bfF^B4f)tl7<Uy=8b{@1
z*E{2>kZ<6)(!lpac$ft#V4>B5*gPfm$vw5D#Gqy|er=`v$jaH_hK}+y0yCn1rRyQ3
zy7kPSk(wz&CHSIE5p=l{Oj^0q=t{{+2b|XeIZ-H7c}z0yXf+dQSP=8&Op|H+Z5oHJ
zD2^9A+UAB$EutyB;Y>R;dlr4PJ~L}W>^U*zTuscujEOyj3+Ls~a8&VSav2Q^-u*|V
zeT(O9NAz7P&>umA`DfYg*H!=Tm*)Qfjlb>D{Q@+8)*JqR4I00w^x0Vcy0SU;k44ib
zN)SicNC<T9Jia-+Gx}j5m)Yg;pt0IrgSDS{6E#FFx8I)NgoaCjmd`9pKlA~e5HO{E
z-<NDxC8Mz<7loyd9ky?igq2Dl7Lnnfx!d<3MVNptP;q2kZ6-Bhd>;E@cXtKy%$r5;
z-cf9NK#}pfTVLTI2`N5YJC8y3ec-NTcZ{8YB9MpP7!eARR8$o=Rx9oS&!$<_`iZ(L
z7~|9QL}h0%y1<M;Hw6}&!?oS@j-nKxZ)kCzk{=%-2{s+|kuf4D@LVrGKP~Pj!gWGU
zRsUQexrh&d4n~NJSKEP8Aw2*9ios_2;8$9Tk}8=jF>w+aBdFZ~knrvsqrq|_K52uK
zcd5t0_YAgQ1(6tVzPG0%DxmwaZV`S8=8v^)XRU31VhoEw&ck4W*9Cq|8$!fV!%nqu
zg4R)6wX&Fdk*-R3-P`>j)({|I+A?1E+Obp5FB8M%CndwwHX=IDT>tsmNHhA|Y0yO4
zb4egW4Bk_u1SH>Q2uv(sJrM}pr*TP3XGhE7c6Mfs-OLmqoG@~4O_@-1#<HzRr}l-!
z{1bMOv`Hh2nh@9}=D8#FmA7;G!wzum295^@G)JQrN06)n08aZMKmY{d`WpE7%|j=;
zbR=Fx+%?Vrhq|{6$}7RTMsaru?(S~E-QC^Y2_77RySoK<cXxMpC%8k<e00xDO=c$V
z?e3cIt$QzjsN%<YimK=Awf5R;ug$_Sug+^4#}^;2-)8HxcCOXw;=H?JBZBOEJDVI!
zz6bolwZ7%m>s4}ZA6bV0;e&*(Izt-bP|S3IcJ15fC%$eq6?d$AdJM+ZiQoe-VhavL
z&#3QWpdAZNhb>W<Eype{tCK^4_F>gVvOe0aCW{x{Xhx)w*<<)N%tEnx5XG#LLa{`k
zahH_>%Mm&05yT=rc8^734#e?<vXR6rgj6{l?)de={28!C@xj-Y@a|&0-_i$g*W#4k
z4+O9rLsB*bb^n+|6nFqb^TD#d&F%KIN@=JllTrS@HmO1tWRXt~`Jr6p?V&`Ot43qq
zTf5vF6B*Q>D+VacUaRUVH8i-hsHe>B%pKZAe)Azg*U4Bj;{`iq`n2-v8mDt~&4wyH
zXp^70{q19_^~9UZDCz?T*PefQD($IN<*Ye-HFtyl<_0W&r)}@K(a3jgF{l!JQ$C|1
z4B70qDFrFHB~}YwpOq&hR^G;Y6!^NuZqAQGs{J^$cqxErhFqT-S_8^`5XRdWnYqXy
z41c`DFd(9Apfi6FP_m;7m4)$xP;~%!@we2n{ESBr$KE~Nd*PnN6qC_wV7$sFhwK&N
zPBA7~wo5xeDMtYFCN!^9+E~h_e@9`;*b4G=Hx2#fu-t6o*p1iOV=(`V>iNey66=4?
z1K+cl|DulcpVjmCXZ(SV^#2XY{R<U}{oS+przy9JwCpM$Li@9-+O2`)T}|y~SP3pd
z9wkyxLo;BB-)?lm4y;pp!^`u;6A{Z+w$~KY{?@YD{p0v*#vw<hNDwkuHHiuXsw`S{
zezgi8G4Kc3L$nY*^8sSDm~_sIiOsC60t_~;lqTg=eucWyI2IoDSliK_LiD-Xm2yva
z7Va>aLc~6le^Bj1<6DxJrray8+$(h<$VQQYO*{T~roF?66#fvVd`t0E)jNzpjzx&W
zW;}%c8`1873p74zfDtEtC)#l}FIr0TErc8jDj!jhLggqQ)u=;DF5M7a@nqPshWzM^
zQX#%d13!#BdempQq|l?tnF+)ISzm92^O@%&7D_J7eQG2fMZ~TM&RuhKvlaDWgckCN
zwg*ckC+(|M)NDSHw*d;?9^)B?J%X-qw|QA^9xq8V-MK$)QJ(0Ov#A{~C^}AZD_BZ+
z!>bn{O_74Dy2+>vLx~-kR55Zx@DVWOZ8z2YI?q3||8=qm-A9c=-4rGrnL_x4DGnvW
z;p9foJB?NsJ~&rU-ItST07BH?f>oO_TYK5TtRLO?Tgh80V_eyKTQBxV?^FeBg0{hh
zty*cRs2r@|Ds$UtM_%mx6nZa&ah)`OQH~fU`U30@UhD>nQ*$#$Z+!q&DOlYnr6!TX
z1Fm7kg1G&%<NJ_qo{+^<`Px;{M+kP@P+y%`VGOm!N=Smws0^;3a*hIi<P42G_Ed^y
z`)Ztuu_*OF26~oCw%XgGE?w(|pO!{<Y6;_RFjTOq=!d(OJ+v#pZaaeC*Uk*E4{k(c
zIaPIjGHk{tAH_?TrQ0-|z=s5WjlS9VS{)m#7b6?naY#IbS%{KjeL>!qr3Df2eyR3b
zUXdw##n_djlbZGQ$ohTU0x*!iL3c+&3x5jjdO<rfNu-6CQHS+F<`h>G&MJ6}XHv})
zhFYtZDnSz);Lc_Qfb}=7gZS|=7qyAD*7b^eSRXJl?yZ-L!%jds&bMl{?WUlt5IblN
zR&r(11=s#BDiL58P`XOBABV`QF!L6<3P<BdjaF$Vt`yh+YtN8xW9mfb9DgX3tQH{(
zuOX9^RVY@(wz3Z7p!;@iuA^`gcmd2ZkF@`yYW=ZL!1|wF<@edfe_yr!{~{Ey{Y;Dh
zArvsv|J};<$J+V$`*O~z$Zt+AgfnQ+fVB1H&vGbcD@|rT0M;dq#1LlYIMoT{Nx88t
zx|_?;G&4C){3vzwdU3Z7_hTt3wM-s7X<Y3<iSIf=k(G0tda8MUFbLSP)fH)ykTkT7
zYllv!Zi~Y<CSw$QMag`fUUQgB<$8pr7Wbegf`|a^_uKW;{k?vx9>!2!>g2>!u?jU-
zUD>zPHaF4Q{s0p?vUod7qkBkOa{UE?hD?a9^>K^q=e@?yoS>MLPl=h}bVdX3wTu4{
zEL*kZ5Y#Z9$4=1vBG84uI1?J;<p?zhm!^rxj4+(Fd!tdATlegPImrn!Ide|1Z=lm=
zMDmQ#*Ni&7RoW6*^~j~|Q1TIJjfdCZoE}EP<Y@J7W_kR+{+#lX6L~8?#NKY)zQ9XR
zRUB3?dn@CcZGk1)2~EZMABt8t_vZ`R<m<H9Gw*jVq@SJ4sECJNu&7^4Y}VuVrL`-D
zuCZ)~RPVQ4oN1tNMrYkoFcTO=%HpE~d_Mv4J73<F7Nb5^WH!zhY!uwJfTNI%KzY;x
z;KvVNPH5^eyU{#LgsVys7a|U}Xta`Rn^%9MVU73kiyUo?zpi_~W-Z8$)A+r^IZFip
zJrW1f`eIz-$sUSyQwh4wgy;>mi&{Pv+6Xnc4n0;;`;<BgKoosOjwAG?z}^Pt<IVA=
zXrxnfS|j;gI$nMpfve@CsUuuNmmKCoc}M}Sv9LN}S=4iLna5d|w_UyEh;zI^cL?It
zSG!2@4D@ta{=-oRnAkoC&=OhvN`Iv!%Ln4+vjzk&=$oMr8pu-u8Hia?ipAFs^`AOS
z-KeG3vip4F4}*$JxR;y*K9fSybB}Nz_nEXi-^B|)9Mc0JS&A1`X7%ml5g(ugH>l{w
z<9v}$s2)6OzVE#7$PGs{rkU1?xFkk7DceYt<{Usu2ms<OTxcheQq{khowxmjuMG_s
z3ZRyywmxkyV$Ss;+Ai7Wk*=m*t9)Q5TfV3sF$np7nh&76RwNT67?;D}zj@0Qh<^X*
z2ycoV65+rUkZaxB!8&C92hg;+cVh<Id^vBk==~kA55Cf|o^eB2!*C%i92cqXX%7k_
z=$IstM#XGw+Orq_hD~ab?MY3AjZ0}wzca(z$^84#w7$}==A;rZ&8RcTh@c1PSlw4r
z;>SR8j)HHreNhB0?P>ns;n!hAh_qvK0}S?F0oTX<;bpfkJrEp;B1_`o<Gvu$3=ZAN
z(ko@QOG)RCKiq@i+I77dW(jFK!1#si;`WBj!lk#T61qDQeJREc6e6|{mt|XA!Yg@!
zXTzh)^~*h{j9lQ5N77WceN&y(S=QrdtXSs3x<a&rQXv=Wz^li;Evf|OWoNBWaGIyr
zY*Azg0?$fRo-1o=SkHTDvn>jg+3vz|tl3%`^*PVimf{+V_FOx=nibEvWr7|2h(<)i
zxz-$T_H-7KPd+eo--Hf~8i0`#MWSW9`&!LpCHd-O*gEEkGyqA>c1i%lBv^crjo}56
zdV4(Dhmn8DP{&L(^?r-<F@{mE2p<VN%M0UWiJiD!7liO(wwu7$9VtosLcxS4m)u$9
zSh~~Hk>KcU%~@QnVYQA+3V^oQ5W=i0Hrp!9Vioxryrdt4-}||ypI1`COF_Y*c)mLC
zRCw!#<5&lbv)d!yiw06~r8E4^(_T_{?QI(}7lrln*^0KJivcsh17G-#X(gTl7ZGku
z(j6gB@o`D{i1J;OW;#I{JP+Isc`pM|=gX?zq}&TLL`si-blUl-Ub2N@>+L56#6B8?
za$fq^&1HuX<Bl-4$||*9(53H5N2W78UrD+1l?F@g>Vnv!qs4qXdpDH#U9K=?4VYgZ
za7t7~yE`H0HR^wXc0cP3zg9SYulE0{aIpSmU&Ajr`v2f-_}`bse{ur;)u}Pt&n?a0
zk&l_3`A_rpe8o|lIeL`!L#nnqlAWiOE6YSw9HD&mY!lTI%5ipSIo#-BGjiQY>2x?j
zL@T+x@0rinSIzfMnOfE)2$StGfqSS|ermv4lF`JQo3qr0#dBLsEtXFv5B4s-3i~MQ
ztTd9ofx#Q_O%fWoty4_Q1qK#@ncRDg!_t`mh~K+sG&L&{02Q2v8~5J$qdf_StO=X0
zW#W*5y1PG%w-Co2qt*>;UmvZJ^@|)C7oPA&ZgZgts2e2g2z;(j-={5e47;bdGI18#
z84#g}_1o7GZ`^ZQH(Yegf$Qf9kD3oQPX1gE>RAm8u(Cju)4W$ZwL>K;9G;&d03!K}
z5`Rd^M4T|RuuQ^MnFf441X3PZ8|c{_T<<!<fTF0@!x!d-*Ix88hhlxRiyiXDlTN5}
z=%+%A)7y(IS)ZdTz|o$@9h-SvU^FxRk<_KulS>M*zUf9I<O@3Fv~GkI2J@Q=&!FHe
zuc)+_BF-RCSNp;x8jfj-PQP1eq2n6I$s5JDwADR3cc0nki&4jE@(mJk7#Y>(loX{z
zO?~X@E`nN<?FWKeeW7l-7%5}N%+0m~7R6Ltq9s&A=DaAXrHFg1ZIwy{R*m^8(l>WQ
zCU=98sU)*q=-z=%-OS!c^;ZyA<NbyIe8t#)YiR$`jQ$U=*l%B}e|^Q?CA9yVQ2zdm
ze|++<Ma2KcLc#VkQ~n1Hq<=qF`1{Wv)4+ZeZQEHf6wimsDg^=#1*Wl#3rJafOeLY1
z4>fIaC|_I!sQYc~)AOl!IzMq6f@7^AHE87U7!9;PtbLyFNOxn5!ks|xOH}Ju;?f;V
z9MAxafl=d<-6W0ub`^k?x%Ws&HIPn{Koz#1XmvbEm}0Dn2BgzmPo-VmLxHU4M7Z~T
z{l(3ZH44ArJ2<YE1!1$FYl0}=*TxI8bP;AR+}|7%S7hmOKnpeOQ6Rf#Mp*5UZy&d$
z5X@$T-FMvn*1#r02<o)-0{hG)LO6zyuOoF&yAUqD^<tRfxK+{q=91t#7FQ{2ct$}c
zi5n)L95z9zp~wEMcZ?f&cPiLr-Op(&&_Xp@8aNdKDO3T~l7=Hzs26=2_6byrUhnTg
zgb;dY&x5r9UeQ*rfSd<P9hz(3^lrlK+6{$}u|{?lCmEN8Bw+U;P(ii~29Wb~sI5jF
z?od-+R<6eS1`6qS0PeRy_Nr~XT2|7ycvw}r5KKS7(jzSSk&iq7SSFqiAKQmVr`UU7
zj968Dr7uJVTR>cJpC51p938#q2=J6t*QQZ*iCIzw_zUQL0jwkOy77+|;rZ#hQF8+y
z^uR6T?4gMzUZE04ms$fMNAh)LO(cTm*J5Y9NHyTL5RU$mbTXGwkgnhvSN%1`!b}j)
z44Z}gPrznl2o~tio!>SGmJ|f?_d8`>m0cRu6MM0G(e=Gd4NprL*LC4-ArTaujnucR
z%X<tA;GYt4joP=1c?1ZqpuhNN3RrtOz1fF2+g!TWgM=T8JBsQ%Qk$z4Uec_5k2%N7
zB+5qvfdzhBJvikA{2E`?0k8K1#9~s|)Z@5><jFFW=E%K4Ghx}u8UYy8GOT|f4^E}I
zEYVlY&{q8t^(BDRUODiGwvn*2y_danz{7%dwV-B%VPM1YGhFOEkIS}a)ysyyZSymZ
zdsmmzOeFNPsC?DRRvv8Zky{S_Sgt>q+q7j6OdL`_$g@7AUDEE8dUV0!cv`jcutTfM
z?7^MiB)%g)l=UvsWH6LMo|qcpG~M<gQq$!Sd6K-qZiZk0(#T*%<!D*a!bVpKO2%@+
zzWERq_mVVT-mE#3We4qt+8Z>}uzvlgofi_BlY6{ZxhU3zy-Ldc@rz+`=%<6LovTvQ
z%8L-r62;JIMD&w0uSRoxY=iiHxtY95y`fi3KOXBB!P!9~IM_#C-gwxKVBeeP&NxoK
z?UXTtFPwg9_X#kr_9s;%lUmy&#>#j~zK75*oj)>c2ee3^>6^P+`{0vdJF^RCWQxr@
z6iRxBvShNRGi7)`^B$CV?av!>IY4;aJo-~<Kz0Cr^930CMM?a*)BPVx;%~*}-%8@&
z#lk=DreynDqyE!AFx$`LieHz+pZ9_P#X<S=!Sp{iO1?+>|3ozYtE_+aU-jE;?+eL)
zve1reNZP)KVRSsJqMzk3%6;O%=0OwoJum$R#8EeHT?>Jd5(2v9un_CQ_IigSQA1Q%
zXGI2wxu-Xh9mKTBCQE5M0ba=if&THJZmRd@BxhIft1kthfh*5rycjnoG^h-zsas6e
ztNpzfvq;!*kOwQK;7(eh3-l9;cth&5flwG_`L!^^lgFF=<(mh9pp3WNs7fHk9R1jV
zKb^m9)}tNcR&NyW#FRSAiwJzW?<WIxJTc#spyjQL?kp@0LnP*N33tV`oIrdG37Q3G
z2*y!n6LJ%A?Jcg9NxH+wwatRjP~*IM*6u{TpoL-Gw-q|in8)m=Qh4%@LsKa|^yU%e
zByY)R%T_GrE&^zR=ICTJuI(2|!Q{O#!{%)9F8ig&=L<<zm@%kjC>}JYi^24alJr97
zX2!`M6f$)>V<93+$&&2=+K=sfef+gcgUD1WQ}@D(Y>HA2%$^-TbrFl*X$>jIse7T$
zO9R!CYgO9hbqKv$wb0z`90;{!B+n?vAUo0_H=dLgnb6Iy*F+1;<gJ8YNRQ6Yl^*Il
zmIX+7W!Gh*CE)SbP%99A3lc#P2hfwDm@cprDq)tHC*%n)Dk~4Ao-3(Y-&Bqmfkam@
zrUpqM2zU~;P09?_w4X)ks7ns`B1P(0Q<x1UY>z0hwQe%$ISnIh>KT26i=s3a3kMW9
zzzU`Vu|=a(qM2<DTJxn;acrf$rdFAAr>i{f2J{e}VTN&!!7b^_j}IKUO~zmuOAyL0
zCt^!RF|uZ`h`R%PFBrmkiWGVS?5>Ch+H`0)(2))YhAImA;LH_<#v(ilh!Mf!tVpCO
z1*5?-p>67R&v+RPd6EazTPCtoIbw%iXkI-a4*)J)UX~_=P0@uEqsl1gcwYiWni$(8
zxtgCTEg6mqp_=q&*quOV`4zwsmjr~=k3+F%LKXb2F>5vj=8RM5My2<Z6+3bKYCb$G
zE_-mw3L;~vC}zpLT*t?xpaDKpCMuhme+j|QQc+F?r7F<&Y*5D^MKmB*^ZBe#08K+d
zB;1_s90QCk-aq-3!MJPhjTun}D<}(zU50^w*sE>0zMFBzXf(2%U4G2>;{YC}e5*m9
zok;@fV2~KRtPygb*~o`dlOb~@%CF4gA~r-n3iXy{@D}L1Pp;iQS}`LR&3V~X94nyL
zXu^=3B-b;TCKlcM2|@TLg8L9RuB%yytr+1(9*G|q65~x}+pSi^6XellDQa%#(MQn+
zar%!a$l2#VLlfd>&@u?DNAQL-V?M?=RHN*ziRcaS*&hrM6ld(LU`JVu>S_DKQw|1_
z8WQv&#-NnhL_wU}#@<JJTzjHrMFK!J!inB2uVgntvM#ODfI5{m1u0K7(bq)HR}#_0
zIW~mGmQXBnm=oqvRy+g}KH~Hc3CL4y_{k+93LRg_ht?Z1i{0}H3NLGzXC>)iW)^9c
z#udnlS~a6<T8lSRmwqm549R^2tqVgi)}xa*0^FD8$}EyQADxo5!l^HQ3lv9@EqUW~
zELOFwT;tY97iP+vos5<TmCh77i{Q3qtF;Rs@9~a`8>TpB@5`MC25#lB7!|gHT1gU4
z3;x>FD8aKuJ5zEh1kq&3hrFTK6mWJ75&j9tSk`t^W+Nwz?s|2;j456fu<EF&JtGkw
z?9%DMTUl3~4Q(;5Rq_5UYDg_;yexjyP=gm;8z;`Mw6HESN^Jim+#)TUGOpkH$#|Y=
z7E{9azK@A!U!>TeD*+tnFnmCb8E6waowSl0g55(6c)kEJ+tA%(P;DTgpC~dpPk9A*
znnDESeuiENKDQ&QD$)PzduWOGi*Xqkq3KKuj_0>AG`4wW5u_43P&3^Dy)WCaC_K4W
zpDREZuGCMquQX}$VpMv=0O+Jn1v1;pYbaT3bnTSPl^+R1Lk;wl#`42`fHg{<HT{Ts
zHvCSkpN`nppZ(uTS}Hmubt_CPk8*UsZb8>yGJXuoiH0d}7@X9Xb{%;7_C|dDZMg9V
zX-|pkNY?k0_{;25jZLw-%7Riv0SD2owS^cYSQOFX#8I^*8WP?u69GXZnD<{jYm0Ie
zy)6B0XVozRiyCJQ&4kbb4AeIx7j2aJXL_f|wi25*g6uq%wh#*d3!2wE?$zmvXbWwC
zzQp%Wn+~Zu2w89UokT@$k92{lC2T7N@bqJL4pzW0dDHdNozFdVvm>%S_3-s%!Z&U_
zI5`q3<GmRD2JHwHk03W1&5LUdn+`Uqs3|LN1~;;Z+ea1wsamBvothxsn-?}OV8Pyi
zXd6n%zn~0%EL8jslmA8;{<2W<3(D~Sno#i<{d?@c5GPpwVc+{ROBYJgwyX3o@597z
z<iNF*$Gx%c)GIJl(Y>ti@%45%`BziyDPOHlI`ND-d|SaRgSx?EYHo)f#IABjCQN{W
z4J%MciWB?n4J7n5eDLRY0xe8#1T@4KPoAAx?^j#k%R)3mCsxR^yu7X?H=ir`RmCV+
zlu0{FD{4zAfqSm}0oAYyj3M*XO*d=PIAuOykS$`E&ZtX!<@RE*lMQ`T6u?a{Jhi-k
z3|7RKV-RjZXHSL%_lfnjBVhnylO}Ya@)=B@Fv%|Tm<IYXbTt;GrPgAOcC-eq4Wh@W
z5Drdeu(n7rCrt~g&5}l2(OpQghxF|eoMRXv<gu&}xM2$F0m6?&%MR$*4#=XfinH{)
z#w_h)z8DozF3nts{0yd1FN9OzQi0G<qRE6hB;N~#!~~%L4(en^gf)sJ^GIO06GG;s
zeEnRE2nU&@`6}p-xyrS3s<9l+89*Z`)E>@v2*Mhf<|Fk#kE*706xAEY%IZhud)-zS
z`SJY7&&}<#VZ9d;zS3_~m+y|Zf5Hn07el6ybST5NpvX7Iz9h-%uT#0c%){7IGsrp0
zhiB>70W~qrZM1xH#?qL(a?<i}5n!ko_faTcSsya@w>CO5;FSViLm%;ZTC`@vRX=Yf
z&Ba}l#)Ca=Yq4y6F8o-xZurFVgSk^;VPp{+1Z0KG`z9JqW7f6<lGE9sMa>F3`ua!E
zC<yuZ2Yv}`q8Z!+qDUa)5&kbx9XFmhxjs;j_*eSnDjaa#o(>02Suoo(PzPGApKJ!T
zC!}k@)B~}s7fA_nAEHN*4u|w~Z3r(b4@Ea|h`+-gT9}{w=gZCh#}di!U+#Z>x!?CE
z|Dr_lpD*|C&-j0qNd6Sn|7k1buWE|yzmidy+5U76(74(^u1+8<pkb7%Z-|5T`ZS2Q
ze2}bm0=u93;A_B84WP{^u9Nomlp&~)nNF!5$kK%XLP&9a$+_7)LbniRT9{6PG0eO;
z{KPnHX247o%9L3a_E20mimFN-cci`?Z(2DilSrj6?5?3QiYlp{jMI3zcVwd4Y69s`
zfH%^h?xoeKo?eDVopU+ZX7$^}36eDTtHGUD(Nq-Z)HZcFLdMcq+24;?${v5&Ge}no
z+x*aZzF)>SWkGrLMOBbQ3W<OP?`|tQ5z>M@7EnvXTx0RjNxgMlPQ?hgsGeV24!(TW
z<$T7eVwpYQ?NsR!lF5#YO-RGAy^qYew%A#CZMXniLXbQ=+iMe^DHnzTpUmc)?UN}m
zKH(~cd?<1z!-vK<b|TCEB7$&6Xd*%8q-(5Rtk9Z_ep2RXrKRU8<8U$3c?fBbPiD$)
z3}MoY2B4GY{a}~*Q&A$Cs;sI%WUXA>)AWSU&Cdl*SoBqfMQhA99xAYKgX$A@C|}`v
zI<3GOjm#JKP?x>XKzu<4-p^)6<<Nr2Q<k`#^2iZjEe^JuI8fxJOZ60^9(LitH*W)*
zGM8i*G^2`0iNI!}$XlSe>w)8s4>251PE15G6!YkseALcL|KV|cKmSyS@fZ$mQ2*g7
zJ@->fd6!3@Uktnwm$pFQCJUC-D!d%i=c-iW+C5erlX#<0J624u*o4VSEyX?mR>AJ@
zREB+z>`)uI7uJg%8;<31RECl3R};$1A8=jtP|qJ1FG>J~YB4Z<xWuVJuhGFpQap@s
zr%us2>KZul^IKDhgnQJ^uYOo6m<ah*pW!|_9pc>GD0UGDtt9ELJt7RKv8u0V!LEM4
z&J4qt6{5f5vrKL+v;Q^<G#mD17kmPyKa-yN0pW7cW+<l(&1Z6}Y}0Z7ZYh1O1%s-M
zSP6s9xSi%XTN!p8_M7slN1BgCkG)OyC`DS+{$&1)`9{Lo1RY-^%108{`DUoLW(Z_v
zD-L`~HvP?gbjLlw5D3&=`D*h%k^L%2Lqp^NQt2g{D9*WAXjl)5P_NKeO|z4O+?h^3
zGQn9}yPFTO=8?7P-oOtkb7QGEHT!+MAPk9-IqNjaiSDbDTZc=J)gisL7={9iB_Ur1
z?)a8fE9`NK5XTeQx}h#)ritl#2^-UcjH_;pSLgLPETRauET3VjP)XFm9?{N86%-CC
zUqCrVTHBocPoBPF%yT$)YCz~VG9p?+d^n=BW=aAh*dnM7-`{>H$7-m6o(g2e-$di?
zWDmWrojGw#vMpm~9S2hf9`tW|aB2J0TVW}339e`33(w38ud4mrWNvug8i6P$N@W$O
zt%FlT&HcV12<yH;z5JX8yqYuZy$W~UO}|Lw$B~Uhh*pm)*f`+Q%2Ut*?M;Z=d73^M
zU~js)fP8=mqm|bEI^Zop{+Y8|>kVg+zBTnme%o_y?Oy&0p64S0cC2iti*Hfv$@2>(
ztxX2}4p4eLwW`9%t<xM!CFPh8SPu@Xt5FehUW{i+&&>Yu2dFuTR68P`Mr-9h)I3aZ
zB6{pYX%DRA^IZ#959_$%JqLhjl`uU)Ee!K8LSR%c%lI%2JU&Q!yCUdSH2DXP%1WxB
zqkXeZ(;2mj#tni@Fx_oRJEv3DiO&*_(cf;c<1#mgZe!#`zut8eUP@!?Y-P~NE*O4%
zernmGIq1^Nrd(%s)3)gnVcT}9OO$5&3cuWL{qkG@;m>{4L<Dd7$ye_ya0*|Gk_nIr
zW%Fi3YYBwt!1rVVG^pIsXNEGKgkIJ}fnY-7Zl<lx`tKy?qS9EN(}lo?p;xZwF&h97
zq9$IpRVZn2SDW58$q-PTtd~N9xdD^9QnXW5Snp>&(e-D(`78LpL9FDoUqadtDYZby
z)wV$cXMQ1L5~bwKeV=w(^gw8_WG?-H@~;icpIQ>%LLcFUc=PbLHYDDmoBQB^@e4fs
zV}0y*)c7|%{J)@&z0b1#Ijs1L`q=-xVf<&7Relo7{xX98+#CF35W)KA!(zwP{&5LG
z-;s_{uJ(mg+3NGRcj`M8WbI`cCQzNC=0jbGlrZ<h^FnMy-k@K+7K93@55=i1YV*Q%
z?`YiM`Z%E0T*hJi&e5KA{AkWh1jW>&Ma^>zMc<JXO~oi}JSi-fg4GBkOLk;rTg>D~
z6VqaoJ7koWL_br?BoEz&>;?^~mBe-wX#EHR33D1PTU=#aRMwFrOU~>AvV@S${4EqN
zxxU*(VOq#uu6GgX51F@(lNA5lN4eQF1m9Ff@qoEDcwa#w6Ldhs_zf8TG#-$0Z~~v*
zN*NG5KA;cH1T&aex33Bdqa~Uo;;bODm;&A4n0sD0^2Wh{+~V2m^_4H@J@rQ1xzL7t
zb*lHz!HmHn$OL9^??}n_<Myq-<8t@hzUR|GWQ!;)-=x(=rmMljOUYW~)9>(U*s=c`
ze10N0R8@BSc${X`2bGC;2fLOez#C_)t?l<&c5f9~(Y>L}^R8B5CI0SlQv3+1bO^co
zzAyZP^$F$=uBvfV)n(|SBjdC6aARq0zUwwVVYS+*$|Dc;?o?uU(cnx*5r=$N%0~f&
zd?PLa8I$IKh}zrz2AjASdK7k#WWdEkY$(Qb?pH$3c5>_#(^b;U<g{E`x{p=5-NW&y
zxC&Gf9^X%TTiKz&6K*QR!9ZKxh#7<(#J_smC)6>wCR0o;2K+E*8GBHqh5Qm^9S!O%
zu?X#^OT7qJs472WyL-VHnp@jJe!}i%%~C<3qIXWhH|DzFJnH13T6gsjMN_5p{Agg}
z*bvt6pmaB6I54ND2~n?m*<j^=+dzXT0dzcvOCF5{tqze<9wv!K63V{4&bEoFoF3*X
zM63nv9GXcMP3@Dy9H3`-T(aGuFvMh)n%v5=^m^t{(4{cnjMx(I!x?$hNC2rnNuu0`
z-t;Z+Qr)##trdq)>?W8)58+Z}&Sal-XX<<Iy?j9#K|X8u9lLxwSj@yAiPzbVM*y^_
z+)zvY#gj)@@tL{?Hk!58>W4$PVG-7R87r_D*0<ap#Ov5QcV%Wysa<USfOK;OzeDxK
zfft~0yR*@X_hXVDIQEuW%rp*ndr>ia_|b~_bPY9fk)$L&AkiB1=-V9ZX#>Iq&_$NC
zv$we{AZ{4C`D&y!1Y{`k0iPMw*L@^1%Udj%N9w$3M^VqQbF3DC*tRJlcem0R31;Z+
zS;>L?A9P!ra-6Ri;=z<q@qPG5>|C9aw~a0qvZ30jfZ`SIBz>Ffm`sCZkqcS-X(h@V
z=P4sYKfbaS=8I-w!tgpkP=&(E9e;&5fO;E<@0!kW87gl(U?rD13OrV+pp>s7L)pkW
zAFzw;0LSqe{E%!-h_9M28z&6EQV?D&N03%6kf#4dq+Y|%D|uJ^2N_&O_xAY!Vw`#H
zJ&j;&T(5R{@KhTw6t6s`NF<mf2)EpQzO$-f;I<I6d!_93C`M4zC~Ek!nB1oVRQdRA
zWvrgsNB^(Ks8Q@=IghnU>-XQw>}{l|NCH!RN2}ZP&QJ!cY7^zQwgFnPMo5OwHukfR
zXz|%kfxDYu?TIskHb1Gh7F-$zGc-|?3oZlHlFS8yEISOqrfZESb4KHM_}sllZ#UmE
z9-T>xG3#H@>%(k|9D^q#JPY}?V90P6VY*ZkWqTe-a1qKzeTQ<RtgMW3sWJ>sc;u%Q
z3=uXH8Qxy{RvQy=uz)LV_RXn$o;P)h4}MZw7Jh{tsU}~@;)>`t4~7rfE)1Z*9kJ=9
zd-mLBzyZi<nTN#?lfK24S3ai?!Z3-62K=E^vyQ<aS=rDj`1rG#V(N(K6zNvt>IJ36
zc@9luEVr{Ns3!HLX${J>;CJA-7sMCtq7VGY$&y64a+ve_=53#E__07ehdyPJ?(i3e
zAgXCDO@?e-Mc_k>etF}?Z=2>59Ih5p?0pu|IPL653e+{sf%QJgZY;*u0fgnLA1!Eu
zC?Cr)egUI`R3@!on8Js*nMcrQQZ@|Esjav?g)P+HB-^klvh_?4<fcqU`0=`W%P0TB
zJYJZ(C$jW5%IuFFB#9e%W!gfbR|{KV03XyDb_atwN6X{k0|Nz|IjC!*Q~JVEZ=R@t
zEV{iapeDayY%#ul<On8xN*lRpBY)M1vnJyX(E&`$@+|!e5dT>>`t^{D{WswHHxU23
zxAeama<TvHD*wL);_qSe|Ga1PFSdc7(f#La+`lMay<hG8C-wLTiZi{7dVg}tHLtd5
zyUL2-^`J}ONcX-;^dilG4pwK$Sf}Pgd)Mnz@IK~}VP0||9oDYt^b(D6AP%xe9>ZYV
z>y8!J@N{{I!Hc>mi0eg`AdINXV@#bOiXi$u_1)~_GZJ)qo)W_N?raUEEN?n48O5lY
zhXQSEeBVHOyKXmKMA+So5+qlhn`TAH-pTFmp6f>f#6aGe<qyBD5-CxWdCPQo^iNy)
zeT_m6Po5CEMQhU&sw<dw=%F~#{SY@9x5?_PKpziB(|*!}fVdrOFaFF<9+2;W9*oc>
zNgtUs8kW{(149W=tHg?g^(Fo)B_(Y|=}UDNye#_rQCThpJMyN}(^ol_egp0sqG5V}
zEdm&HJGS#dABrz1lks>{Yb-%$>k;NtPF;x+F*_SevVevN$im_Ju(D9%Bad%aEOHa{
zT%kpzMr2%N2;Ib=DO}IWv_PvFLWoV4X{}Q6WtzU_RJRLi#wYPxrDuoBw<BY99ZGe`
ztt==*Uh0rFxXIUtEo#iPlvU`Mu0XZE-^{cA9GJ)!QM}5XZ(W*KoK5Hj{MlW-o|M2|
zd!H|pZ6SKS*8j@tpiEPa0g2b%qnQ~Wn;tjUjsA<Lw?vxmlR3T$BO!=6K@l3-fLtQ~
zKv_Z@$eyz{s)`^MuMVsN5Mv?7m=uMu0Q8LX$3l>2kg%N0UgT|_&P}A${!)hnYdC0r
z{u?IhmoC|m#H-cX$wAZT#TuF$;m1ZuwV(_f`{Mj8=SWZ<?)L9)Ppx>PK?d(jN0h5D
z{nUC0grlr>@O+6FVWT5GHr?!y#6%>izWQZbA-;1%r^2(-$@dPPkr+%)^mr)tB9HiZ
zpmSADz9^8&S57)XvA`!j26y3mT$ym;@v$$wl7la#dhB1t6s5r2*dH%X?D6daw;>4j
zcz_NuDGIXi8V^<Rtq2iFJmsH0?e@=53z9PUpzIl|2uyE0^<Of76lZ6%xP}2QZ?+yB
z9q+ho3Uh@l{A|a<1b)7&2LgN|wWm66sGP$E{82zhr;QpQfKDJy3G6e<?31?!2AWC&
z-FP-n$>f`-XH5qWwG!THDNDAXKVt+6ggaNHm?~MJki#r%PK7-X$7kCWZ1;SOCFT2a
zisS2oi<<_4sxu_?yeiy`T>iKw`8qh&R!pHS*Zo$>?@i3oak?ocg=%p43h?$t>9_?>
zf=?6iFdt`W6s!rHO|(yeR^wM1Sj9P#;K{-9=52K3qpk8WyyaX{Bfd>y;37~7c~%MD
zw(|%yt|CwRkyDR|1`i@8#B%}qx^}ezAjlvdgonq(Cz|jm!bcS9t;p2O%q1ZoY!C|!
zW)563L%Y>R9K14Ib!mT$k8<}Da428)#C8sX8pce={(gBY0Hkyt@CCVe5aiKlG5O2c
zV>&0?Lp*v}Z^E<eIS*Wg{93_uxyh0j@OOnN6dDY66MXB~&w~g~I)dsNifp1emkb6q
zlC=V<(^g}JSH7Uk$hNfT8z1F1kq8Xfug5!rnx3m#0%j|Mf6zC47p}T&Pl^`{$hqWq
zk7(pGqd(<X+fLPa4tM_AYE^OIg?049Da*B^z7YiA?tmM=IV_k+OThQmt|h{<4K|4D
z9$6GubPW432czd+!E{uXSD$Lc#8UQ7{OVdeC>gY7jJa_RNsRI!aVN!m(P{pZ1&rAk
z#bS}(q|b<(<$|!jJ9X*GYk?7$860L!h4hvUJuq58wYN75JN=#wm^pEb$`p``C9b>T
zXE^z6E3IaM7XwPg!}57nn_=bV%_FBCp*Cl_!m4s-c%@d|+{gf)o|GS<)ef>Z33#rZ
zcBiYxJw_gfnfwV|muKq<%UZE-z$cb$wEu~596v_}{2JqaFYEt`aU8$-8Q%Z&-(cMD
z&-er3_J3!^>%VAJIezZz{{e9<3~YZE;?C40qh`erIu2F8e-q0)Dm=@?s_KR61K^BH
zPyu3Q6gS;bHke$2>piX9EU9QP1cyJ}tqDT(b98Arc~qVk&7?Dx)s;Y0H$hGj8kIJ3
zizoHNpfGxmd=G|2Ht3K`34M4zS#7hy)|`GbuKv_CbCti^w30xzBw@{jg~jlr&V!p%
zcS5LdJL=LvdL&#zsBUHQE!p#X-`Bfv(Mr>FinNq(aIEQ&md15i=EW`JHqI>1`AM|^
z{9!qHhnud^>I2OZUzI2ZB9u2G8kJ8briu#bzF=r2W^>C^Y6QotlQ4Ndj?}}t7PL)P
zRE$Eoe55@f+?ZmdI|B01oUaRzWDHX+6<p6IL@?)f#-t%uOUu`}cF^=O8t0$L31AOx
z0!<NC-pL8~^yvMP9!aaCoj%*W!6NOoo7p9^)MQ?|Qht<1$Yt9Y3CH7*?^4lhtI=3k
zc|BiJvMB5(h_-UP_hk`gQp#&K0BwJz74YhVpSoedL)QuH^i`!jAXyMje|WCaOiibq
zd_1U|ALj-8cbIL9^~FTEG)+9-M#?F7M_5_j-Tcq74Hlg>8+q|03MUA2*~W@z&huIY
zR~asIWYIM>=TbUOA<t4PV%IrGxApVIENP!VF30X6PYNpZe6@C3Di`15>&X390sLn4
zu`6q8%z{W1|B)Ot%ZIWe0POH;qQC#{nFD3JcC_^7q;!A36m67g=1vj7QoTMyl2i52
zIw^z)S~t`psnMt1q^Cl7DiFV6rpViLDb3}gV!~frk_#s#7QE|}VK4~wtrZ8WI7kF;
zgHOoQwX}eOM-c6LpOhe;OI+p{)=6JIato|<rkQ2LFa0UKcbdW24#LMe%tQ6%D8~N9
z8ThggD+o+pBnRsr4+2S%;sOYW1|)&%C_y*r{G5ml`z<s?4l0u#?(IvX>rEnmJ+V2p
z!jFN{ft6d4vzrPYzc1$4*c)?O_@E*o0p_Q{Inl+{yk=fK#D~r+?(t9BHw54c!4x;h
z9=)U}v;jy`Vj+Qyalv(2oKlRCm0z}(cBa5C$49)7v@fdLw;?Tn_S)6nK9tP}M&%h5
z%M~<+mg<SHVq;N{))24xsxawOpjcAY&@#)))r%OhY|x%s>g}>tl39rnGikj5LvtyR
zNew0YPP4J*ba`O{-Il8rg)y&nW?*3%?q$>TSe%hEqeHmEcaZ_|hxm=@g$6=U;wnL|
zt80FSVUI|FEb9(fVCCpBhEk%xP8q7ZM4f=`-sRrmk&@g*E7ERzy&KPUy6Yg%84XC>
zsB_|lgE|Jv5k83Ph2#`|l6yf*S5E`bjSe(NPwz$#7Swq^QQMMMTZ}C=9gb_Xi&;Yr
z>JgC41>Np$BL%Z=_DU2M62eF3^W4eV*Ka||A0{&@fR4_mm8oYl7K8ujd3W1;zbbdq
z<U747s`=16hjtQ=%6~l+3{L;C2I6}bibh7NBUa{gUzWlWH?}$U_NP-fu=S>kFYTF`
zWDyxwsSH67#QbsEcPOcjV0)^g4C%DmpNmEhY-g2mYjDL>KdF^#nM#Vvpc#0W$Dy?f
zax4D`(*ZXDFIxH$%}cd2NrPxg64|GYXs^Q6!FP%57P#)im9{6AiAr`2^X_$|+FO1u
z=_qtMvx)o|>=5ulU=lbka5A#!iAgu4si#@!w!pk_={Cl}%u7LDf2H@)r*(Is7n-+m
zdp)`J8I9y)XMyzOQjl$AxV9pM$R^wq^l9Ll`5th>B$2&0@p)9=YfMvANGnv|D|D)y
z+YS)DJ8xr%=+gcjgX}G;yz8kZ{Iu(M%G@%%xrc>ylEBb1bDU}_B+Z<Ui0Lt>#|MOx
zD1}bJO#N_ERt8@DIv-?!77V5pRZlJ%Z|&y(?5-b_LTj!fXb1UJwxKiCA-XG!UDW{8
zZ-;m*V1D0RSTRV(3Mfy!C<0zin6K`CoJwpGzG%%cNK3<h;Zh~#nK}S!yM#7BQp__Q
z$h@LXcgUQvQ2Y`$D4yqOs{#qD9&v^Q;@#e9Z;a;G32^(w9`*~Y{aKp*AF%c}eEB!5
z{kygN&tome-<+2}nI<`YHWvK4pZrq|;eUgizmj<A-`B_gdUII!F7Z}#y_qna=7=$s
z@!>W+meW89=Nbamq)S|<o>pGS=i)TSt+Ut0z=2UKWb<r1tY5kAtuF7~k@ycGl_rOp
z+zic#QQ^k|hM7DDsnwYG5UU~TqAJ_J2U4|~_rONcg*l}1ojz^!LuFA<EJ&(KS5FsM
zSC<rInOu-vm>>s}zh(FSwswd=k{Cx92cKmYFKc$|CGfs5Euvd3_**p5z7T!KQG8q{
zskfCq5{N{gm@OwJBM^U+oK>$s0S%5B0v{nj{J`k`p_67jv0z-ny$}~<{toZ@+I+=G
zdgJpQi7BwUoj^ed{feXAdtM#Yq8mD-AmA5L6zS~sCS8$i=ILN$FlK9=vLOSIAgWw)
zHvP3qBEAq%LcSq#Kxq`@oxOsD{<|XU-xj8E>tM&x-cNY!7B-aAmZTvsI~%O87#t07
zLj_poz^j{}021}5P)nu_%%8b&rHYa6qBS*ymN+Q}pHR{a?+C;HEv2YO<2|Ja1E01q
zS!+T0fJp>-;H0~+si?e*4tYS1w{F_|HU<!ud5`|HKD3bD)kA!WtMZ<HI(oQa@-|F@
z{?>amUb1UZ2tm3{_j#hZdLT6$Bg3(2y)R96p7d4J^V$x0`d~-Ig<gQRft(xI#y$)x
z(3RA!g-bFXkpbWN)LJaW@LA`<#uuUm0C+<iUGAb=^nQQ@g_WUQlF_#1usYnNF?9XN
z7??P@jt(3&=-C?VZwdNl;3j7N8;1V3Ied3SdC2f?c9jxqNEWXxN6N9XFl9J^&cG)&
zI-G2N128#()wTVjJR^xnlr-K4O_z7VcgF1&gL%`qG9hGvfgA$)USVrkI3s#JgU3f?
zQ<R!CY{t7odjm+)pj@2>O>9&lpv%)IM|<jp_J-=<i<~P>aZYej)FFw1u%sJb<rY_H
zT3H{T?7irL8r^+}UZPuT)XqNve+@RRbA9W&Ggu3RMgD=%i~+4H0psIYqUx2WEWci{
zsv4yZ<C^VHgw}iJMP_C|{S28Neeg(dSKqg_`{Z57GXqs+NnOP40Bxa&l_0z?p}Jld
z_WITh6%zL8{51`9YQfwWY&{$hI1z9lor%CxJMZjaS?pbBhk+n2jkN0rE3-f2JI?@?
z?je3S;kSijg?E7ic_|0RjiA*E6KKY!nd?|I(rL33zg~ZNtKrw9_{y2QoNMMDDp@u;
zo$Rr`u6CQ=x+E4x33J7UC43^?aiKfbNLDJ7`dD(l*%;=-(6n%5aMB`k@*I<fC1r%o
z{^J6T4LJL4BTyI$Ubd<BiGIt~Ab;e$0Azql22f}7$h`SUKk^WuxXa|S!H99&Ij8Ek
z^NMb(A0V$HD{ONCjq%4F^AuB_)g<Si7ZoeoOgcQPue)3x*la$3xq}_@Ne}-;(fwl)
zkK;c@JdVFC;{BrN{%?qQf6B}9*K|9^_l2MT(CwJtLxulrX)ceEwOpe|=)ZWTaEymn
zxpN`TfHIGpn)-t4VJUf8k<hnQkEU5L+;}0zNCK-#UPm@QbhCl=>M?)1u`VV}Yzi<F
zec<aV!}r-FolyEA!OPWRl3`4_JiI{8)An4hD`al$BUP+V+zNUD&I)mN2j25*;VTPe
zU7;@Jk@+*a#Djf_#c9+DMfj1Rl_76LS}}nDQ$D{<L3T1LQVj*Y{JemjOyz>;El_sW
zGl`7^Ki5sPNUfa4+Q15R8%}{BXLb*T`^R-W25E6jL5}kz1X*j{R0+r@hXHy1*%p~u
z+qFw1g0WHveeT*VRFnK*rq-&!Evai=B7vNQCcOlDhel}@*<>n~sly<S0F+GS$Kxfq
zUKQz+sRRcI8igE9v_gjpL$pLM8~9!mwjg7io!CX<db_6fUPXG_@Uh{ePV)S3Q4%XJ
zu4RWlF?9L3g5M<O2OrRM!WhOr0Vq(7hTmT%ohIEOD8^Nf`f0ynv>NH%d4HwVF;rb?
z@6W7&a?YpWCY=HGv_SM!6+yapd<*2(ZtIU+<$SH&a#<WdC!5o}{7*Y3BmEyX{(t*k
z{0kXjd|$x*i;e$(ycd6a#xENGKaq$1bJF!c3Co{Kv}UCLRqOuSebYZlK=Rc_Ytq;e
z);B9JZS0is@d5peO^!_{6`fo*#`Clohgd0KXvNpQzrB77siwh|Q8}1COjjvwo&P>L
zK6+S*ujR|mhY_lh_DTt_O5w+kPI6?S_;%uHDdC{*z4>zUXc=F2jW5ejdDfGFcgX*N
zKYOgBjQ;=?RKLsu&XPAWCMZooH{DJ#qZRY!gz82hc^CN6e|U9{XdDy&LYom$SE3?Y
zPOQgqUsOJtEF`gH^=2iBHEV$<U@FYP_(V5?A0g2G{1&=zfX?3jFv;~=bye)M%xzR>
z44kJJ#~z~f%sHvnGe6WsndY`bBfv<VCct`-WQY6n{e8(M>Oyze450eCaP<siA*h2H
zNMC;jA6%J_tIGgN76h5nR1_^TPc<`ybf2-5O~O8MIdw#U10E;9X(|AOT&78Av)Oz{
zQl8$i6LAe9@zfC6$bsXE&Ul09SYK3oVIWR3&^-Y0cqIUp$Z(DUp-&!jkrl2n!z7VJ
z&7k%;c#ge8liw`M<fslqQ-!VG+nEizBLg}4o;|HCkJRJGd%Gex;5CB@dx9)%<-m;v
zHFoGtMS-<sBNzt+<*7oSAyw$84-!x>kg8A1cFUbzUlXbE&QauvC~xCvQ%%*>8a20u
z%(y5UBHIkkM0GyT;8Yu<daob~-*m_z!7nNwh108v%|~ZV3Mdg{*kYjR$dzKyk?DD=
z;8(_X7lFtV(TS|dk|vYh0MkB*1=hv!oO*=~BYtSgYoPN`r_g<36e$UBcB0P=Spv2T
zdsuAP=K;956ka`2hKoueSNEY7r@3!)VbckGq6-MQOkuW({uJREhjefR6aj25gm++6
z*q}*W)pxtg0mP%Vh!o6@?mfb8uoBFC1RU~#k4oj+L=5c5LEr@p49%k}MiO}>QwgI{
zp^b_T<j`wou|B&rA0;U|`!WcLniIIgL1r*FIz5SmDX_)vX}f`8ZC?O%fMoONOv254
zG$Hu%A*W+l=Jen*{zTSoQ9ntRB-lb7WQe9<-_T>y>zbm8gcSRAk6Ipvqo}-|#Vd$_
zNShpPqWA_!_oEpBkmed~K%sL`O3r1j<!<xGu3`3eT-t$!c75+szmod>=C7>kAzm|A
zB^8cA^TSOSseY=~hK3N&GNtNwOHcRgx1q+N-Kv2X%Disro6(li&KiNZB!1EHD^Z+-
zTmFV!3DooAPW8ju)gu0nlBk%+oiSQua6S{|pQ4M?6YZmm%_UwwoH>ZFeIlUUrmR0&
zH)6i<_xI=C?cHkap&XbEZ4~WkZ<jQrub+syF#n7MWWRaF$2dsa(#gSb`;jMI>|4)~
zijg7hR~L5))!lKFrMoFdl_t`0U%ZTaB87>UbVSAs6>Ltl4z*D~^iCO80BLA#GBuxr
z@5@Wh#<Q3}i{8YM-r?)9j}u;cD~U&ZE%}_!TVf{z#>J($imV$>Mog_|g%!ZY*PPzz
z9%YkHhOl-oyuPA{-&c`(z2OsYOv4^&T0z>{Y;@kh-7#Fz{)5Ia(*I%a__qT0Z{_;G
z?;RQ6Q(^we4u0w#e>z$4mrL=_oa`SeD*d02Zf{pxjr{t4NbHcx6~w&P0P9oA;Ph>U
zNuG{*y&Jl@GYX;|5;3j%u9VB0m#1&QtsMgaw=DV~PvNnWe8u<OmG7_c5Mx6j9^cYV
zGBBD=wt&F}0mhx4#-Cmm3kxgnAMVg*fjw4wbB;#v=s(mB%&q`<46yjFg#v>U;U$af
zznFSFpQjdYr|QBi^2-O0qrL5X#1G9@N5>U9leBp;eDUm7x6f8aJNjCMv=y1qwQm?4
zgTcoG5nn8BT&ZW4Ph9L>s|rCt6(3m1SL@o(9ZauM8fNfmy(-5jYd(A`{&Yui;-ef=
zE*gIl{Ox7NNTNLl4|adlO<NQYb$(Gs-m)K1^Wd4f)`|xM(F>xQ6*AKYGJ^xVaC5Ej
z6sOvlkfa-V#<)O~CdI%FhYNB7LxoLAh(L&k0C>&j8i&qs?6I4~I5hi$gBH6{;w;;M
zP^PRki8e;sq0iswKLkA0WyEi-??lhDRv~=`Eh|9~^HrY5c&^uvW__t*XxQPB#7mB|
z)1j8QzQ*<N_ZnR*Raa&@=f%1F(1!Ne^YI0k3KcTio=Sq@dwt0w6QyqlqFDnvA*5{2
z>lrZgj1&{8gMRU|AVZUHQ)cS)T=C;bYJcW_^K97aE=%+v)vVloLOonamusrQTVGv>
z3$o`J4A0bHk`ft7es-xTlfLJqLhKFv1MRCx)yoOt7|Y({6}qas@a(Cp&6TGo*?r#L
zIth_x$`Y4=xzuE>a+>f^Akf!s<X{hQ!_8Yn2an)fo<KpZ&S0)E^I=P&@{4d&U%t(l
zG8rXK1h__EJ6u^?ux}YnF3nw3PccZ-tDp<4WKl|?L$JIcjKfs(EHRcOAixP#E~_SV
zNIq4-A&LT`Kr5}SEbJ}4TZt*xz(K+Ku{cci4rPAp`rzn|Uq5U>0|x*-Aohm*&<L0b
z)p_r*HbfxSs8@}QS+5~SSzr-BFzaf%i$&dAIT4m!gR*^HuhdC4l(Cp$Mpe<&`RCx&
z+gGIt-OcdNI5k)N*1Rap@ZmCO+62}raN`Ti2_R{9*Es4DxAk2VYPip$w9!Z>D%d8X
zpyugLBm@^#^0ouiL3lMB>SJt~5luIo{CQ)+OE6lsYKCU8iddOFW&<P9mjUV_E6nwS
zRG-L!WRhxLPBV@{n%Vq>RMb9t)dS#4tMcl!#A{W|-*$6LqltW$u7YsiVVV~J<t|e0
zj<~<ZSW=rc*brbnE17vNqZ@&Nx{GOaqnHudKS&$Bo^nFqGker_0~gat5Hx#|LCLOa
zp8|)w1kz1?GFANH%KEwO^ahC_>%>2z>bpO!PNrcA7`=ilf=AahIGdG;Hk;g6?RjdC
zgTkkq!$Y#WhWGy?WB$7$iI48&=L8=CzaM~gUAmROD3(8WUcVID80mj2LH|}P|Gu#N
zUkGiC@0P`17R#S9QT|yh-xrMkVyE_Q(ER7)|6VxR{=yZidR0x^G<p=T_wf^AUblzU
zSiWs(s&sk0x#bOgaVa5YIvAuFRyxgcWmYpuw1d4ZT{r3G<AmvRy6kt40?#)IfXBoO
z1n}|1p}`@iE&~vV)Gv)6KZUn0qvmE>HwP?1pxM%O>PmU-dz;0jfL)V_$OSMi8q5LK
ziPe#v-NSvA>-{Ft`+tc03a}`<Z(m^O?vA09W@Z>lx*O>RY3UXLsR2PiB$SkH6p;`V
z3|gd96fg)uMNvrwMCQIj`1$Fad+>kGeXcn3%zksPwbx$zx7S{4ZQ4zl*u6f2yKUbH
zG~qcTA(Zao)5D---uQtN<H5Hn&6K!pB~K)BWcDB|HFb(F%HcAt_Ck2ePT9ryQSnt0
z*ly=r+g%GLDUkE2n^))&k09>e0KZ=2sFnK6b*Utu^X*c!Sr~pJB(CBM8;PN;tbAxQ
zfJqjmR(+SVQ$)^%n5N1uM$8nz-^{m6emb|x^!b5-{8_@&GAccp?P9c-&s{I5nO&Rv
zP$T0J^U#vw@v~yW+DDk5Ic+k|FycntE76{SlrdLa51CpFiC&2NN(BELJDABNo6^!|
zq)g3UI%wJ@9<3EZQlTELoK8v2OB4Ee@u5r@ZcS<b>xf13IzKfsVycZvjIbOsBg2$Y
zY6iJ9*3Re{>&SPl&_;*XNo_Kd7oRKA2Vh3fvre>H0ei~4(`St5i7SbC$YOW1k|8tf
zem8{$?=E*Pr-4XayyiR01)-*^?LU^A&poYByA*tH$v%(k;l|WGNJr|b>jPF;^odNF
z;@eAz#Ha60$2l2#uxXw1DB&M>mm<e}QZG~3Q}omifAfKLHEEw^x$(`!a~DiRFs3m_
zzNmkS{jA0QNR=e3v61-W`_)VAph~L1yEE%=Ts|`0yudL!8*)jLVS%t?WrP%`$U5`g
zdRbtA-h<)-Z>K8BkgZ;gSNHh8D|ZVK%s1`&S!`fvwY-Y0;#j;7+cR^RYzq{-bKaAm
zr}1n>*PbC`MfBTKPvgv<kPKWi6)fENL|2Qe?~CNXmR!53@@RKYrP955ay5mBcJj8N
z`gap^6_>2L0u<X57Sd<=qw61LuJytv(?Ii?r+tRAB4QtX5bXAnw7AVbYb5q`!|xRD
z*>AY#Ho_!Z%-(f9c+^lC!np^+yz*53Pptv{HAo-5*4XcVziEv_<I(>}Yy4^({{>?G
zZ)puQ_8lkyD33ey6@fkz5jBM9L5xQl^&oeRMnnzNp$mKqFfm+0MxHDMuB-mdxzf!W
zoivG8nm1&q2bwly!e}%TG!2_K^00Dgh?_U8sf$Tyi0zxDt*JjCk;q|;E+o?kel2!p
z)k#w@9R@=)Uly7M`4xE{YCFlp%?!ZD2#5SxZ)^%xTEf^^Lf%-b7%TZ{3@#7+RE?oU
zzqN%iGCV?`r3;Z7r_aP(Egmxx3ah|4ivylfVP~v7nbAM4qLAO-Qnc5G#Dkbcw6!SY
zBl;(<@uv`BT-sp!b4y^@{w7{Wri~+D3+zhqA8=aK6yP+ZQSVnyXDd4Xo7IsWRy+AE
zgxo4+H>`GaF^33at#*V6M`H<b>#XvH2#JY_m*ofAW-vGx+OgFKSd}Lcai_@jK_~Yj
z<JjZ}@K4BM5I93tF&vq*Brsr~F=RzXiCG<;=ZP_zvdN1vlzo~*{BZm*F{D;bjiG5C
zv<8*GC$`oI0yBk(8AFc53WfuS6$Wpuwx3YuwUe3Q5_*wZGa&7d9lkW`^m4x?DI5uY
zdcUOyJjzUb^j&_z_jx8EJ<zA1xro>uT#u%FOsQKAwNDa0rGR@p7{CjDn+t>sSQwA_
z`Cp<T;@1KDsKtQnXn);exb{>^IEG3w)JnG%g&h3BGZ<Ys8eH%EB!m5yF7ean_%B_+
zPyu?!uN@;YlrF|a2`Ac2=rkP;ZXhlLF76(#R5AW`>?v@&UbOBc&{dF_<VYk!6*39k
zwT&b{mndHxy9(0pVsi$sMsH(YY;%T9YIc(?<I$62uj7S-S0h^y^iiuAQXtS_-|8&(
z|1*IL3~*Wb14%#uXQ1QK?Kx0K*db4hJ4@ZJNXs_2hHazeUNnv{sf{kY7A<k3B)Yij
zQ_hsy5~su|W;&`o>`ULl5q=T*S5D$^r+w__<$s?t&v3`!t+JZ+@@a|cQ7<0;Q6VlB
zOW~!EW|mQ1QxVNklLj5$DLZTZuG5iOph!EfbXI1q_ovn=?YY-%Emk1dDN2#w$!3PJ
zh(J!I^j=?PZT!Xp5?JvbBj@h8G_<(lVOn`NL{4eZT*}&};2@>Ee|Fi|<_+V_S!ye4
zG-7~mMhZCh9+w??Nl<_t<SJ)t$;(&qv#GK!aw+n$t3qN5(__qTl*JTR_m29dG28V=
zvcK`5B$uko!izZn7RiP??$XWr{Z!F#>hQ^e+tgh*W%xfmSyj|f{hSn?^)kKXYEJcb
z_=VhF9Wf%4yfqtfvb3^XCXAFFqGp^u%nE}_oR(4?>QqvkgkG(*jvIQm9<?$0S9Hic
zmOtTDKVDaBa4S3us{NezfEW?az`@V-dZISwzS~`{tYCtM0T(Ur6TSZD(J<rJ;pnJO
z9J%oxL+@Tmf|5o7%xEowWXC>Bl0*=hmvSp;zwA)vCvqsupk?$#lmt^J*=i`zpXF^h
zcP*^9U~n(^MxHP%X=(=UoU<xf#AIF-oVYg^P}Y$;b*Its*(vTfV!KUp!j1`_u2R9c
z*(j5e7c^DDg5(-_Phqwk3G&Ji7BK!yLgi*qk>YFHSmqG7<PVqkPVa^%;#kn^j8%??
zs8lJKKD#eXUIQiEw5eXd>UPtAq;E7yw#Gt5?N1)Segy+ZJdiy8n3+Cw*gw)pV+6u3
zz9sPJH!d1isJ6vZIEm+LpoXVnIxJq5JkJ>rAn{q-f=-;}bM%7x8l4+FUr#mROp#0O
zxa<?En^!+-Yi>`n)VV>dukk_i{OQJ>6*AX1BV8MFDW8ja`t{wNe2Psjg`vJnSBJ54
zx|ptn<xLn7;v1_Xd;LS<&x&NdBDSov3N!6JiHMwmuM+Khao-cOF+rUMMXeNlz3NFP
zm5BQh7EeYSK%Uu6S^`6iR&z|(TFlkaa0JcV17*uUZWr-Pg1U7AQW2q72f30|D5+qg
znDGMV1)>sP!Z=};&o`T++e?teGr3;P=Z2!o+Vhwy;(_RFx!vumug#Y3)m1MW@4El+
zS}>hXS`QoOc%JMLvdT6cIDe*@W~Oy%J3umFX8GQ9+|1J1l1+u3ykav9BU(heR}d^m
zFKf_;DBUlrNE6?ICLU6pfXVYF#h06MZY<aC7Lxo1);7s)GGc}XJ`Nr0;zwGGSHis%
z<A!Wg%{{Q&m2ee%Ly096Z9;-G<y2pu`HqG!=+G6gz2b5C@)M=t+WG%8fRLlc59n{B
zeerLjy?o1M#fG9N1%b?p%UB=~k_;CY_j`o=JTd|ow;PFMqR&#m{$3CQUd2>jk*mey
zlfpPb??bf-3@V`Om~b40$j2-0C3to~885{$986&g6*4`2TV4p`bFWPy8cNaNF&MDd
z<Z&qtONQ!p$rGy}`Bb>X{V_|ouu?8!lMkv|(8g1%>*<4UT5A%L2UKaFN@_O-lqLHj
zbqT$ckzV1bwD}uktIWA`et|<c1#7;+z2_cJ;C#^vDZ6hgHNETl$;M^eV6W|*!uFLG
z!`H9ZzQ1@PvY7LLUx;^R&7t=(Rih<t3U+C`ile_s=j9&F8ZM4Ir;CYX^RCtgzTsnS
z#^hsyaDE*90lFq&f2SR*P@l>m6^Aodo$Q+^=(7k<$ZkiWx>~fP2VGUEX-;Ccy&JA$
z`^T?!hUU^dr23<-jL#x!;k0>QCPv@yrl@SW_G$@C$&$b+J>Fv6_gczt!JJ8tl0w7G
zUk$oP3I^D&=D5s!G*kyDSz=sUs|Q>78wAoq%(qX(#fxXXU$D)6I*M7czUm@Pm>kKZ
zs`!J9cHYhYTKLjTKxO>d-dxUSE>!--+qZa6zVTluVbe9$6ucqBq~mr)koUpd_fNj;
z>0X(MxvQ9&YV`~cPRVPmSAWdgbu<gMCOR|Leh)vbJw(3^wn1x05Y4+B@*;Jx^_;<+
zN@|5VG;ngfZ!Afc^mE8JH1wiFi$Hd^<I?-Ho8Z|yXyF)g9s(_;-+>mBA3C5_44`6p
z!2?jd48Y<wJn-ZmCRS&c{92Iw4<tx_H*!vn{J9boBo*fK1Br~-13Cp+tU~BvhuC&K
zeF6<l=)faj-}!5raO|nTPL(P4J;psw9#{*}&EWV2E1{F8g?{+pI8X_Nkrnb}wp7$8
zYUsQ2Wwsbb-oZ-wQcUhyX-nR}xKykMfJ9Iy63LblA41;VCY>0!1Jqs|V-*R)#}epX
z{Lo9&gM;xQ!paB@3FvSjkTCeTBs@xxK>?qbdzM+w$tlf|UW$}jAZQdXcC|p4rl25o
zwc3h(GeQlbHtBcS>B(pSt2}Gy!&VNqOe$^PG=c=mbplqHMD(N)*Xo1i(|Y%8#r-fJ
zq%e9s==!)Ah;3QpoQ3f8;U8vcAQ|givKbZOvRUOfQJ_%UOOfPbxdt(|=+<=gwkmEA
zc~mR@icHEMDa>n>&y2ISEMZ_Pw^ej0n8-Z{wDigO2^z}LK|WxszvEK=Qy{VJsT^<|
zL=FU!>Nmx$4NQJzBL7g_`T+1R>_g%Hm>se;GJ5(wWF->B1&AFUR|GIWZqq}uDZ}=V
zwlf%9WIfS6xZ5E4s|YsrJ<zp?lpeN?6CaUs7^hZ|$Yh|Q!Pm%r59KtD*~1kLsb~S+
z@%vs_k_-ya#auE=(e9)O)SXqNbrJs;po=N_q%VP07GuW}8#QEa1B>_))@)A8U6z)d
zewBCW>Kuzs`=f?8^P!!6MY1Wpdfq_^)1FJ)LDu@F4``e!-A_5E<&R8YuhL-{*}6tu
z;<?C5%N`mulvA3FtH*+^CumkHP`$YRl_X`$e3J9?UVq#9SG%LNm+APS#;n(Q)j7DW
zAlT|7CweI8o|Ast0!c;biT}w3AcNx{Q=Y#8FlEUHqJDt!hj0S!EZ`Xu>_z^Rb<Znm
z>pYSj8AP#(4>aVp+Id^%N!DNI@Gy51;N1!?RAY7}rIK|yWteqJbXLO6^gERf%z%m1
z(157oT3<%!qnAmgC#rbe4MbkMkp`v>N{Ii!>Po-~*1(y^^}B?Z&|AQh9FD-Uj;09^
z$RMdzCR$Ng^hHvni};)s91$Bj7b`#9kQzf)<KCqBzN$z#K5!TN%Nm^@Z`&ic7JYa4
zu#1lObV$S!8or<bc2FSQ_i;NybuVh}LybLBpt+T~QqVSdA6jY|NAXf|q)+kIQv<!x
z5E+XkO7B{ygxRJ#@=t<q+Xoz-;l14HzS`xF7wVsfIvaN7e{GZtR1;#UYRrn7kiLEE
zrQ+?(7YO6#+yrOiURAC8PNwk@SE~`&nDm7>vG1h?PSx*GC{Qj{a=#dh_W)AFgjQbo
z+&a>_BCmweLHFg#*(B3lthH&405sI1gKHAU@Af+V`!hY9kyL7gtKY=|f|p!Xm`wku
zycixr6R)I<k_CL;duFhqsF=r=&VhRcOH0xf7o{J8^TxR!OMTG(+EugX(_&{{aw=s=
z&vSv!_)*!rH|JE0Kbxc#-+Z5C;MZ}V19F!j%ahAqAAelsD+qB8Quj3(L{E&7g;_XD
zYR{?=QoV5jB0!O$&SM*@r5&r-^@i-b1(DW`B<YJu*)seg!P6%KBR?{J+rl|dVk3)&
z5opjH^gq#mSoRJ?I8=xF&%yBb0XYZVfc$ThApHV;WLrLVF>25ymfvl~1dypZECxGj
z8zaRwA~MfqHlhtY1CEGP*i-m{i5p&MDUS^Tts^6di4&0#k=j9RZHI&0PP`%l4XNm`
z7X0`U{=cW{2LMnGXmw-+M$9c_J24kS1Z0Jbhc{Vy8q_OCya}Xj-b1|XUSY$hr~iO(
z1Vzhar6D6&)nP~nU`#lqv7Olw4W0z{ocdF{i5%Y=r!rIrOwRy=&Ws~|TqIk22;%GV
zBtb8w(sg+m>Z>=D-aido9vSiK4(u6u?zVIp`&7W73E2s{UK!@3@1IjXb8)Y3x(u+B
zZS!6Cfh`0LoThkWAf4{gQ_@w&dd4L`wfS9;=3A3_$9k#o7cFwvvTM8~IPT2qbj^XB
zh=i)oGP$4s>iEef)spEW%dF|^)q=t`H|$7G9L9l2D_+OmY$*ec-m2-jFBVBjdzout
zJ{#d_GpF0!x7}}GOcK@W2M(Mf<o@E4HVsV)PVHOZ`PO%7gEy2rg|>`Vx6#LkGW5rE
zCYMY0==Gr&S$08x2nba4R~2|*`bU}J355;M*#`vsIDv&x2So^lb?rQXf~p7%NRAF%
zpko){=NbgIga|>P2mTkp81v6>>w~Kl6}^FLz=BZVza$tg3I>!baLT~R-}{`OgOfj4
zS{f{@=jZKU=oA24C#<Ke3KrJzv^(ph2(|{JyxUY={rm%zT<rY7B5*=sZM(w)6b2;}
zHg$CjaPbGjL=KlPRlFR$9bLW70!L8T4p^-~-H3WT>Y{^X&woM#4sHWX)`XUD5g}lY
z<%4h3Q2G1ce|P@(>;LoeQ5}AL<MDr^-ur*Q`oBJZQ0IfYtqB1^L2>4Qkw<3z1MxWG
zGNG`ttFyC{pOY7=AuUDV!gl)~QLu=Zu#lH`fTNQ$7%nDkxBmeG?InI5l@t}W1L6rK
z|G7?595{mdNB|#6VLK=Ug8G7@zF?>?5!4s(3Mk;r2!;G}BNPJMarlM04~n`Ein<R9
z14E%AKi>(3qV7KU0$vY=0yTpIwqPjqpLzjO1ssGytqFe>lV8y?Kq43h%yago%MQ>y
zFd&unK>;oX6i_1zAa{0faiD<Gy{G~}Dh#O2VF7jKP&@&0fx>}cqUZ(+hihs8Nf0n>
z-xP;>0>BBNgzBmXC1CL!SU^82i2$Xe7o%3UV6dY%qqqeFl7b&y3A_%-1b$Qk-Um2U
zAC`bMKp2qq`>2F^-_N=Lm51$P$o;nibisg(3P)E0ZvZB<M<sv>B0uW_&<O(=c6bh`
zKWtxD8~nmv=>FA55_Vt>fP%%vf$n`!K((Ui&yomO6s3WVtOnvh&G!GH6op5ClOLd=
zJnRCTl$`)g-~_ye&_BS>$<C87X!?_ZtC8VzTHMr|MYmu#O5J1x5-D9{nMl}+A~CU)
z6FEd+>I0A1?{R$_>nGtN0nf|F+!VNM7SPMXrx|0cQb@|v*u@7#R=Ls?U33yOXyn7v
zePnBGT_!j4ee;>ryWy#sy`k5D$AELw#n?MtkQPjWF6dR9I(CYc%-&LRI=!<(nccQq
zRB^e=z5?>P92^(~F|4*_CL}@q7^dKPVX9ReIPS_5!%gh#w>S_va{f_V81^KJg@ls0
zj(!F)E|rXg&5Re{5K^;mdVo!;6ehc_z{z7v*_BUW-Ek$ywlz|SB2kAWj7m^lFU_LF
zixP+2(h1AaREvXaQv2kj^<t-~(?59{g2AcDcve*RoDz>9lEmEbGM?MShY7zy<!z0M
zz4T0Xy~aIZ+}j!xSMf0&B@)RejojdCs=34n{c2}76V1MfO2tI(DvGwKj62Q!GqWxh
z;G0UbdTB<Lkp{PQl}`9#M_2F_?dCjfk53?7J45w$@A-4x6H1Fbs;ch|DcXMI$S^2H
zJW12Qz6tWR63ZmgS9WWa;nsFN(M~OqXx|(8<Qs-xRLV!!r{ww+Z1mtrdq^=TF3DiP
z&Ot)M8Z%AATt1$vAwFVr7AuKSLn}vq21B|{BR@-~?-9ZB%<1*@&U3iWV63*QTSok!
z{Z4~t{qO847`YH&wfFR{77>Rq@$2^)Vvn*DUSGn!y)wPF`r7b?TRpdNo?3Ob>$(=H
zx2xQ}O~-h;3zg6N=NLz~9I)5g*}htSl2c8dq9MB!`WTVEE4#z%TRuuYG&Swu-Ehv{
zWSOX7RUS%RAo0n--16gv>!253uG3yOWO~K6yRfsNyCeDWzVSD(0(Y21M9APElQ7%a
z3XkRYB2%FR4@hapDf@J5rlXaAgjB5bZT$d0BosG3bDgR6%Z)euRF5_T&-V$wptMuS
z9{3Ov|LwB5Rk`lej6(F+3IX`zG(ywZ%g#gJnrMw}umoOz3*?Pob@d`l{UPgLc$t^k
zhd211<@Fq6W@f=F%-QD~Iu!IpPJd!C(z&Pn!SZ>dOK2@o@Y|inW>VhGJn1hSJdM6&
zoC2=P+;5Uqq{`(qg7zMMoBD_q(hrJhf84RX)!=e|_(#i<*Jq`HK%rMVAI_>~nl*p8
z{GfDFyy>~KibBp?yqUd$xB3im6gI=Y_k9;cOsSFsPs7WnEcc2$^1eUU>3+3JnHK~3
z%JEe{VzF~Z=q~m0J8s;aCz~ho;+vMjZ`_>=HI8)fe7%9~U}$SQQCyxKG#oi&MaTAJ
z+vd)vuGP2rh10J0N2>WB)||>&YGY%w^wD1ME&Lwyd^Y)UYIpZsCo55XHJ<pe)>Ll`
zTiw&y?FSRhDbrkG6=y#Yy!qyzu^ht*Gk5=1&Rj)sW2$^qj&f+)-^dI}Ue7ly{ayLx
zMqYg)5B51PcBTR$r@PQ+XKsfnPt(N8)@a*P)wP_puz+HTu(64ht`FTZAO4nbI(*`j
zzr?a_quujvyksw-GqqtdI*#KrBH+>rO<BRA@JCLiC)M2@gk9Z|MeNQeXT02NA)_Jn
zki9Ts^YH`A`h<M}ZOE(bGpeSyoK~09DR6I}dL}bdACZeGZtCWiM_+qw`)Yyo)Zl_g
znq)YC*nA>Gjv>)qoU4gS!l#XB)O_m)W%zYNno_D%`Blue?3Z{q4KBOht4Nj=3KWy$
z7Gr5*6ma30A^86KCcd?}0rYcNg}YVGo1kEc);I6Q`yDl>J~pk$X!xfygjm1JO)S4X
z796;EDk9@W#<)9i!Fr2?@kmpzJ!zc<BVmNY4Y!%V!BtJ4v})XGAS`M%pCx{&r!hpF
zKY}}NkHDn1$;;?ojZo9mm**XyJWlNSww`$YWpS<+_v0D?hmsGtF9iGN$ySv~uOxKu
zM7^TpyX+yCVDO!)jG{T=u4R0VDQWKq#-uOxQ=}|LPPFF+hurg_5l_ksa#;m6$ZEFy
z@`fc9yh5H%$%hwwx#ew5M|)FU0{XGbwy1PRe$86rw9i|SnJ=%SXX;4l%{L@=v^BzC
z``@|wtpV88A>h4V#g_9&FICUX`#0{xz3+JhUg_L9AGJ){c!t)xasBm#&C?-dsb^x#
z#n4s0&kF_>HJchSdh+MnI}0<686bg8IApcfuU@<#dD}nKOOd&A&U!}jmZr!1CX<YH
z5n6`V@@(E!)8a%419MvqgJ4?1YUh{VXEm2AX1I)ra8-x3EGTb(4VA4Ayfhobi|Ewm
zaqR7-d9^E9PI4NiNVaG)>i)eMIamCnwGF9^8N--L#dSNCinl=y6P%t{`6p1{A4iYI
z$^R0l0|Vs|J_82Z!vXvs3@rxv1w)Gg1L+Zj20W1WM`=Ynf2Vyn9AOhvHKo%A{7O1H
z8c^Ua)Int@e+NHTp8#(^F!XT9{|6@>9673>g1>{4R{&T{5&-Q=c0TG(u4i3<q69FJ
zKs^O@4ww-DCsEHmm|FbyLX7}B4_5~Tud^Obz@=~@2yn4sfRm>QSRAOg+2Ir6A^^px
zXB^Bl1c7P^!bAZFZ3r;Q6&Hn|<{=(-XZ^vbdH|CF)I5Vn*u%-+U-&El3;@KydvHGh
zADjTH4xr0FRKfNc15ib1DK3seN2u>#;PJ2K#s4cj25$WcMa3ZdH2{l2|2YIZst;J~
zCuaQ@42AzXQ9Hsvz|7~k_(udbAp+G0T$v0<MB#=Im|m^XfrAYk<;p~#t?2Y~$&DE0
z%M>~P+mhSA9c%{hCgoNlQjlOIh*+-H+ZJNWW2=tQfk%u-PX-Z(h}4R#Kzkr&7%>P%
zVyoNvRtPJMzG(KLKjaz)M`M)&g0}yfu3Bt+B`t6|Y9Rq<9?>NqaOgtQ6vds{f)}^4
zVa&tJr?WVAp3uhxvM_dDKTgaD61TV(pg-$S>s{%+MTQ_gM=W+!S;JcTQ8blB$;Xk5
zA2kAioR8fIBF{ubj35B-A#fvzh%rR$un|O2jz9DY|FnU&4yp~%J2}Zm@4J&tBBR^b
z!XcZ<h#?G*k4U^t+YcCro-dDr`2Wm!1B0V61_5)E<JZ3asmL8YK!i*ofCSY8&PxZi
z#~Q<xcOgtwKk_Tn1U!CtvH;`PuWm~iIDjV{;?$8N97ZuxZ{x_Nti6ye5)HG_*>!+T
zkdDjjn2~nPE(kg9Z0m+zPkRd@k8b2HzxjDP1vArHJcZM&UDraWji|qZ#gd<?^>S`Z
zD!Jxr6kp~E!e`6ox|TiK-&x{tvoe3QJ@GBknAZK8i92K0OK1i^1_gYpe0GJeM#J4W
z-`^^I5a&_LLzzmyuwc!HGb1`W6V+~F*x<a{C%F=Lh9%CLQfh^q_)-`4u7tFT!UbWE
zaUzLKUF~!?rcEe?d2+|vxXtGai52N`0=Xx%u}V&E23&Q#w6N2y-X|Ox7rJs;%zm#;
zWrgfAn@5@HEblT$5xd!G$|c3jyf2a>m_nIzQ?ynL!(wM0D@|biO_W|xmIa0&q2|@i
z@U4toZQSNN52l}*m)w4OlDO5g6%B{ctm46dsq1k$Y&}}1+lk`vWohO6+{q~yqE0D1
zW#Md8;Q&!;6UPzIOEpAEhBZiQvK2YR68cAYjF%?dI^8_E7nbzEvgyJN>`p<a=BvZk
zzb*5%m(*;n)V(>^|JB&)@mKvSj~6GmWp_jCtmV8*ogbv%v$%QQ>z-ow1*8`I!}s^*
zMBDO@F@_z56gs*TKNSz^%TT0iyec%h?0AdYzcHKfTh{a|P5&QV_I~9qV(ZEbLpC;|
zA{Suq>zc18vqp#DDzi()^Em#fs<!<y%HH5vY<6v$wWf&7^UZy*MfZC}E^Eco=J;*{
zPx19E#t73LExrCOGQrjrwouiCIW%lUvyun{j9tfOBOs_3^{Bg7Pg~)ieM6+|Ur<;D
zdhSd?rA@WKQE7bH#aJ+!m(YTEsbsKZ3tz~Z*x}uSQ`ZT0-tYx|M&4icXo1B0hMe_(
zGc>5h_hlYtebQ>Jb3NylUmaPulfCyw_2lle(D2Yl3D&QyvyGOgrOQtQUk&vnZ+y6i
zXi`<@D|~N;btl!(>04$$?_yj0o*iL_pRyV&rjI=K>086LwyIxqb;8qXJ;|uPmSV;;
zdPoVWUwIrC7{+#EvT=!kFVHh8Z<y19@@rZP|A(df^N8Zh+*%P<xmtIZvA&gJlRRkR
zCsEYzEZ9gR^vmmiw2Nh;6E=W`iNBgzj#MjPl{+pIMZ})oX#i9!1k;Wa$I$<;yb*u1
z$!7t^c!V;f76b)-$D?mg2D7%|2V?tUs7`Xm;nM3TgXwL%A|zJHR3RL3a*!wnh22Ps
zW&9}Gq3>jlzzRB>E(S~2p~ZSK!!Q~Rt-r#CLs~@u6VGvJwH}ev?2@O(U7;(d&*Es7
ze+jtVkyPd26M;SwmXkNslk+!H7xQ?eFPyOHgo&@<zs1#UR)MsLZ=W@I_~c8@e0%6<
z@9GC_!3oBbHaEuAWn$-5l+!Y)3CM=+bK+)ARNN`7=Bx0p@^60K+2e}(wAoCkQfqj=
z$l~>7$BIaCJdBs+*TmJuXjJ(@c>$uST#M1+npSGjyNqqy9G>bkk0#X+3HnyLjcUyy
z)K~^-a@Q0d2iL$kjZ5kS+v;{cEu@Lw7>J}Xgi@bZ9VIhMMMzPpZQn8-sH7z=ftQ-F
z#(%phL9-AQ*q2RPXg+tPz6|jeGLG9oRDX@k(-p}jXZcCv{x!s1c*=xTY|>)1hjFZK
z$`(SoOjL)L-P^6|G5B73lX};cEzswVY&3!fpu<1LaFpThxXd>mK3FcWWgx?|_>7}j
zeKO9W?=denmM-Bcxl09cnc;L@%0=Az$H{NiRyl(<Y(r(H7`RAwwz%OvkA`ggt{c8p
zv|L#5+ZkF(6e0>9@_or1QO5(7N$H2Yih-6d=I;qTXVbp?jU;9%L$-5}F2fR*UlnZ2
z7BI{1>Olg^I(6d&m=S!t;AB4d1E?z14F`HBw@Kk8j&33WkR||utIc0W46(YK%5~kM
z{+ZF$2e@1|P<0L+;ds%!E*FdV3GISgPXfN>3qQn~(cEo|Sd{Vkb6EiPuVsNl2}RjG
zkIN*Tp;osJJwQUgT%GGMU&B%yB6=_SHtL*yEuk~d`=<)I7HW8xy%5;U^-D|}=40YZ
zoQ?zJSM#lK9_&iwMuY~!YuU+yJAR~8FS-mAu(R;ik1_jg_!WdQyRcphe%Eu=Tq8$&
zx4WWdJ%1qdM<07Oj`!kd(mW1`2ICdJ!fQ}@ewv0_8Dk}BjWWp({;ed%34B81SJ_Ua
zHHz1JofA&pSAM}FhFoD$`Sz|Nh+IM_=~nkZ>REy@W&(>VH{8NB0v~X!Y~Cx~bgQJ~
zc3~Kg-NP_{VYKyUM;1i`UQu@6W3y?v&Z`4L-o2{CD)4Gv+~qS)8x-G>>!~_*sdJ@K
zIVmuNGRT9WMk#9jB|#3i)X4PTXE*3vnpu0b){6L)O;H9fzg>hVD=NFvF7s6|nV00r
zpwpvH*QA~39okL);mURKQ>?m{PshK}!79%-z|(F+3Md>gdLQAK25wh48&^@qWW<GP
zsR~6toB+2P74ezhY<uX_N06D;AxC{hAnMH6nW@F(HPI^hW>w1cId=YV`PuhvbqLTf
z^XAklgn~5RiQu#bW<ta)flvM$tX53B{xdCTxP%Th1Brf*%O&ffefI;LS-QLA<-HUz
zx{+6+g;OV@<YsB3Ola-PGNKX`2}gtO1YH9>=V*&>6GqX_P=A4Tc4;WxGpn1s|8~;n
z<=e7yLD4H@G*5af%x~Rr*U)WtRVNM89!m;pmAa)K_(bLz*LUghTW=k|6X#;C@{rqT
zDNoK`Bo^mF5am{0ta_Bz5o2Q%$Hy0`yXQMJ^WqHIm%VpiwSwa_Sr8vC7HYF6P}{M#
z4_{udN&BJ%uZ0(#WGI$Bg@zSqAUJAi>bR^h9)juuuB134=FPS6E6KCX7#`Zp+3-5*
zsEb5gl|1CeiW-<vLstd$o1&R~XgP&CD6H<+KHPm3<TU!wKJe|A)5E&s%Cz+v*ObS!
zP2TybZ)ImP#1ffTCkuZ+`I`3D7su?nmX54*zJfKv-pRM_iPK%JecdY)#o9DUKyiaL
z3yGaHL^ZS<Qk?yaYWQjX%kg(j%nC1!lyln1)7#^k8AmZ^t45v4#AqAb<R?>EDM;Z}
z%z<H8gNcu=Pb*XPY<r!wf0DfTh?VC&{G5id5_firSf8@X*KGw~>hK~@NXmyw&K7~K
z3?xRSn)?eh+(R=X0IUed=AP%!p}z(JFIH<W#hP$oj%cCAwa8z*)oWw21_$SLzT)#5
z#`#WkbkB>5K(wj9Ev6{xHl38zlwe%d9ZSWHCs9h8_r4=D(gX%V@f7Wy9Vj2?4p;Q&
zcLhQ1G&tThF8C;^49OETS(6~WQi|G12+4RVV*HqRhUK@tMW+i@uem;1(=G>Do3QlV
zZrr$llefA1W|hhYF=-%Ps4<sC?ZwjeT-G4S*u5rem|Ta*VvOjifub}Tj-W&EN4u*Y
z!(lyrqz)C#fHA^Psz@6l?-E{U<33?RPGr$e8l_7*Uz$Xkpm?b`+(Pd0=}JqS8z(N&
z%vmviRuEe7)421>rEx^HDn8>)(MP)nm)-FKXLkZTOP=%kR|yhxr1%Gfr8sCtCY}hI
zWD^JDjkBKuD_Kdn2(uIF<Lm1Xh;Z)6rf$UTD!e36^5x{am)ir2t)e!~yUsBIrJ+m6
zA2!PJ<{^C_C;vV-dz_5$ZIJ_yUtR*o__llEF!oGZYqdy4xJJ9X0Og6dF@6PE1W)~~
z2utvtSFj{Bt^c&1!GK7lKL>qaG3vPe4)77s#D)Sh9rL^R+SlmFVZwz|wI5%dL#$)p
zI{;h_deqoX!pXENDr@+dIs6?T2I{K@O|@aj-A`}3sw<0<l3raurS|DME3>Qv|9GtK
zgYBg~f_pO4Om3zw!a+%QTT7p3-cxIMQ6=K%az5Z=Wpih^8U`O$<goS>S7m*#-bq!J
zJO#XN?DY0%&00F#5dzhs$fSwH_{}avtMFFgiSkd`KN1%N5+kTvtO*(m3BQfvMS5g?
zBkPV3+0pv&ENbVZ;QM%dwT`y3i*0z)kZ3)L+w-NT%^`A#aaEg+b=I0yx^+LtL^L9X
z2AHE(3XjV=0574yD$a;_DY?xxHuAM_`6o^0^me|s*6q|N{oUx!d#l(seV}5|kYi82
zPq3r=yQ*E@Tk7*cnNkzmuEu@Y1B<0;H?KBd)9I~|_Q$6<v)gj(Opy7Vu#{|v3(;Ag
zVf<gb*@itb&zl<5TlaD%<Tu$6IDt~LDc|#qom@y2DvG;^%~o{L#I>Q3S9K*=1HOs#
z-bW;cS&wyKFL@}jkMxSU<JKiIp0!gS<g3;hS!hNH8PBoeJ4@p}=;<gK4c^^pyIXc^
zM$A?(WM$%0Zz!HeUJr#}T#b9nJGNSHM>aG(Lj&-ke=*|43?8~#u^9+x&)I;R{4rl~
zak-sz!8XLVFpo>OAmp2N>$=P>KE+wuK<+Cp87We;H9#$=`(2}hovfM8S9%`47^ZwS
zK`AhYbb9!+`nBAR>u*vvUgm4OBWkhn!W+A`n8rEA;LSmLFYPRG%|!^gXsMIcSEAiK
z#yz~^%SnnO^yUt^7GzJ)(|;riWgZUc^q#n_12-O{H)k|wFi!t46-3h~oEABbAO^o)
zA$G|aPY9PJmR$dn6@X*+A3YB$e*C#k*uXw3V&*6=w^6^vvVV(pe@Z?8N8uMYJAHNb
z>m`dkl2J|x<gcb0X<I%-tZ+!i@sv_*a;qpM(6DgX=<!i0B|Pz(Du9ggh;h**#PsrP
zT=jbXokFGlda82jn2AA?QXb`2%(rbsThG)}%&+zNCJqy~7L9IwdYJt#ZQwj1?QZLr
z+V1xXuNqJ2@mD4i*NaGN;tv>;N<44s7GBU&F-Ai=8j~$d?D)9Hcvt~2U{T}F$~o%y
zblBKJzF<u+#d*>>5x&6>WPjfm(`1mTNE37Wl%z${)pjCmD{a~`hwC>JtCAmHL`L+k
zjnC)4O&izH+|C{H3(<UB)k7QpKKXIL`WA;tqxxqa%eaNUWEF!m<3QBF9d#3Ny0ipG
zoo~E@Y|4*LI77hoam+LPQ*SC0IbR9+J`~t~ras`<-`ZfL;xwiE*rqcu&e+mbEGS3g
zl~KZ`f)Cz}W#_Sg*{|{e4whx*&j{aBWFxzAnQCqE-iE#}=&XFYM}a&??DWH9?8=Ug
z6@z9Izar1QOFM%eRGLk$iW1^q)u=SLO#1b{E=7FSs#U|L2KL!9zihcm@~%G!ST1lp
zT*n7~p^Wh`F?7HiaBVogQW|svJU4M>shpucbgMXBFX<|wTyBI#m=SFP*w)QF)>A@6
zp04af@u09e={{-2456;Cy7hYEGxGy7cqg)nPdc!!rm=D8vP$N!xhof>DN`m%=sw8&
zAvH)ycs^H|`Zia2t=amw=fg}fcLsC0tyk^@*i@R;p7q7t(D=cyWq$fOy|hzbF<aVA
zh3n$^;|WeSm)Yhu;MFNPZ{Ige7#oeu<4j|{le$2gZ>IDiPoV<w!6OC9Sm8FITAnmL
zQDqq>es1MekKM?$x6UhDllwQ?6#JhOyO@t;>|rK#8t0(l7+Mg1{5U_EBM^R)7i)YO
z1;Pi}Ds`|J4|F&X+m;a6j&CFInoDgGrlOw9WxLwGg8N$g{b|Ky>-_b}HzV(C`_3kN
zQEyS+XC8<hT++Opwvi7i*s!o4TZ(1-_AX|_{()n1KnEW0DTC{f6p)Ffd>9F{Q4qV*
z6%Vd!PUKU#b=Djv9lW@!4>I4e>^4@rL^?x0JUusj6ZbBK6N$02-eaO6DaAzfq`-=a
zCmS{Lgf8i0N#Qg-YG`Z#K=Rc;loHAx?6~4%J$z{Rl<Om3qGe_OhQ(b<l7>lfgF2pA
zJ-}XGThO757V#8wA{@Sc;w_1ENF3vkjyj*m64U3<ikZh-4|}#1Kl8NC+Yemht?`>S
zFnyF8P`!BFnZ{|@Y9UQVJ+J;ls@!Y28J--OS9M13b~%)4j0PFvb%|4^$1ugczTsG1
zxIna=Mj@_QVGkN*NpYKeW|0`46n<~Vri<07hDn>*s3u17UABt<2Kf53$_%535dA0B
zSMNN9T^j3oQAk^jeUY%eNDOu{Y>WJB5d-blXVIfK!XdJv9t5e2@GILVUzs)(o*|6!
z7(pXQXh1j&NDpva-l+^d0*uB$*K-K24ak&^`a%?WEo-JMT{E>O5}OKS@5aC&Uu&!*
z#(G&=leN7BufJQ!h(XqRDR<85!ntWHpTXy$SHGC|f4zE-<k2-xe~b0zA2nj$4Ig@>
z>pXj3F6L^VA1+`!Q{!ktCjK(TeBHluljxi~?!$`-ggcfF>=CusC~TBdH7-@2xOkJE
zVuOdUm3eO?dPAmEN>firQRj{uVP$u=P;BI4J84)(E%_3px=OaS{*n(6!#vQTO&xxM
z=#n&1>R6ESJr<cU;dLYX88j?HgUX@6MzP0bkuhrchX4lQlPnj-CyA)P3l+Mm7XhP|
zMLY2UEC<v+sl9&#Ynj^n_j+9?=2I5McU$ME<^pI9<tcO|Vse$0PbQgC7bj!JZ{1@S
z&eCv{qQsiIIoz{w{qwyi4CZ&u$<;E(^9_CEv#%LS2{u*Fv^Qy6t>niL^*+=v&V446
zu4z04Qo+F`o2J8nv*~=pgM&I>bU+(um6ROj7~P0w3Iz<J!<k)uczrLQ!8$E%kA@5A
zF!x`CP09?`xpmm0bTo|m^Hp)kH=K>rYlb?R*akQv)E^eWc~A8#4T_X170(DHUsdbL
zVqf@DS4KL+@_8}e;nM=|sCvbzqzT!Zc}qeWC0x9jsnZ)@>SfgR6U^POCYbvPmWPfe
zj|U5v2ZcQ|8?X|uQ}s3&qM?t(JFl{0&8ZYkC@8y{L|XlPyZZTS(cH!v%<$8<W8a;c
zZ}o4BVb~VDg!giR+CcB@h6*U^V=F6rzhZ`yKvhb;&w_aC7gkOu{XWfbj9`0pJ2ZSj
z1E`_Evhs1I!}<Ub;fw&Y*zskYivu_T*L3U!x?<?t1rLIcaA<J&@2K_b`&~?<Rb&nz
zT3x@1oT~~=A>l2~-GOo^z*N4|4_6uparRyPQZHq1r*~VUjOU$I37qIYfDO|g`)NY^
zu8KibEaBV;Z}v)sUHt5Ga8LzSko?5CM3C^-+T=K}J3RI+U*+}lGvDdmrN(@o`;3ja
zxipxb-aSQpi=2GLlSo3OsYATIRgnk{2hhM{lq2PFIUw2#1k^&PBj--S>0gsuw@rS*
zs`gm0$H9t%$As`S7+$){`^ijQizu6MrqFauKj5Oc8>GDcjnK>rQpZ2cp|UvRwws#;
zOz_dOErfHPy-K&u&>YJ>mJerP?oYq*mV9P?|8f00$>!J947aCJAvbPJJKW=p!vL$1
z%YMgUFu6Ib2u(e0Hc@5U-^DwZEOJ{|Mv5m)ePb>+lFf&RQzCM%gP}`X`(pvc0&!=p
z1-TM5^`yN}XNPKiqKO}E^=x8t)a4#>@d}KjJiJAkS?f!ux9}t!OqBlQ6A+E|=P-4&
zH{>y9_kbQj1s>y!2;U{wX18uL^G5_Vdeq(}$7g0L<{&o}Qsk2=YZnXTUvfFs$7-iV
z(;dXjodPG@V~h2EH83FgE~<c7j_EGW7h;xP3ts=bUJpIKHB@SNPg;!C7+kwOvlV(j
zG}Y!|Yc2bu1+vcVlM`C1@>u6oVuBLxYQgN*3PWdMMtM~!=PnU0kyVp3madT4Z{<W*
zDYGkV3_@Trj1UB21P=wCL|6F23L8@EDbdYKYd5cnXU8dG+495$l8><#8tb^<2c<ky
z7)HY#bnyCbY-#%wQ(#Un=TQfF{E3M9-a6KG0d}hd+ga%&RMWvrNb8rW_Cjq61#9qi
zUm8l3Z`lSq2bSL)vhKyH*&gsU_HTZBR?XXpMq16hBD2DDIv{Pv-&ikP(6#RY(_RoV
zv?$d7LT}QVpqzvd>x~yM4h#}e#m&3V`CVpqVqz#V;!o&Xnt6x4>iF9I#d$*xuR-zU
z@P<N)uiXv~C+Ub<%9Y7s;s|Yso(NGTk4i<4tiDCYh=N-(Jbve5O_y$pFO;G%iWSCw
zT|d~-cT=#+)<Y=q<tx%aO6`<Zc~h2GqhwUq?a&P4;^+|cUs(860PTEHo;qfZlNNMu
zgpT}Oi+pi0IUQGrGpG*V<0duxgjZiA0fCu7w_1)`wp!C7HLS}i-nC_3?lJGjk8Yik
zrlH0@#=gOwPoiWirJv;X@6<EDc737$bzm{J{t~z0GnuvL@4hiPz4*aGm-cC^Y<4&O
zK8upMQ(;~pz3w?s^QWA)@@JP+g|(-Ha6I4Ahg>g-kyVspS0Uo!ZyWAwnm2tb7Zt(0
zLsS%<Tc^QO>%fCxNyqN5yLc^GMMw53z0$k^@#YN${%ZN`$;i)AA;o7x#5McT2pJmK
z41@p0YSBn5VErJ+T@m)6$m)0)*#yW~7Z+DYdwcLvsAvq&bnjy|t#|IroE~Qre6~D|
zbaQ4pmUkWcmfvqFi&SqyY8nL^DmP^_PxA7qid6R%)I3l#Z@g;buCEa?)KvN@rbW6{
zR{j2c=?SZ`#@7qiUuixt3Bqtzgm>XVyoNafzavx%>(s68D8mAzLMGe2ZD(E$WY~82
z;f@Y$>5z%ogWe!(RhF|E9<Trh$VA={j9<};yO*zX0dJ$AE1di`9esEm=%jyv?6Oi;
zf87E}=*dEd^8vBOIs;KS{;3|FBpvJvx6=8yvGOPFCI4XI!OnX}PBZ_d=h`nJCWkIv
ze-~l`IDP@{<`RH|xa5BvVgd)e#L$PB0B$Gy{&D{}*8!W{?;rUk#6<kSwf-0HvHjcj
zy~kjpLV)`XOi~EQuygPmrQ83jKQR#@F_d;Y`V*BD0zz8EU_!veMN~{^-%lTPP6R5n
zpTZsWTO2O5@9=kY4+P)@>aKsv|NaGs2?0K3A`(Ktz<coh>yd*x{(AhMTEn11FtC`o
z5D+^E7ZVZ#zV{#X>+K?NAt1IvL_`SKLJKCoA6)|%0um-1JWy0r2v~3he#3#FAcznU
zXz-6q-9BIcEiFe(|1IJK4g_@Ue}HffAov0<{*N~u5XJ%UPYm|Y5g@ii4D|t`MZ_e*
z;*g(b#DT~XaS?!f{~Q6X6Bh@I{}UG?0lW#=U0Oo)=QaON;#E)qDX2J?KY~<H$53G|
zP*j8q3>D$>Ta3!S<Q*{$U<w$v?=FZ6*8u!b4jjMs3qW|rzQY}=0B{JU$@ZlfU=C0?
z6ls7<K;b}`_t}N=2|Bn8;1mq-tUN5B?m<C0)YAa|pd2p`3cw};2TRDPGpHb!{e{x~
z0uXcp$icy7`#~;1!jPj9P$3`;^QZ(!4&eWBR03YSZ^TDEWIxCS2qil@2apK#`lAx?
zx_zVL!Ii-K_Pf%42^HkBZ#p_C0q+z0Sr=50%f4OU;2iKiK(Y^?i3)iU`&k!Ylth{F
zj?Mu*1sHZz0w@Or?5G6PWgo;HJQJu3VEH^e2L$)P_6OnpbEx1LfVrr1zv>S(Q>ee0
zDx5n^&eU3pS~$%mdjDCK%Hf)PqAj5UKT(~57LkfnDiESPPa$9!cWSDU#zr*aTdQ0m
z-e{I6)8LPbB?QToubEDzYAoKAObQ?UtgfQsHh6+tG*jw^TRV`9NB*Xn?o<k2u!EWR
z4L$~hidl&%=e;cq?*K+@lKZDGl4VY2FbgvHoPWtIthSC<u#>rG8ha-BOPZg4oO%EU
z%{eJ~=N|fAEUh~UCL1_Uge3+47(8J6PPa#redve)1sHYQslrbVm|>&RQ|)tL9LIit
z)dt_hjknUpU3!}JF{haYwr~CAvXz_LBI|n+ECBw<U4^{iTGZ&ipmY}2Oe|WVp&qEl
zCwPM-C-<phcj@xg8X!#DsQG#wyRomQnRl;AD3--62rfTIE~R{0S$JdSeWUDy3xuZy
zq)*{uKBxG>UTP;|^|)1T?(7R*Wv)}H2^NI#mPD5_`a!|!C8Ba7u_`pgqnRf`|H6PQ
zh-!X4a%EG2i=NU^{#X&=;o6$)sw;Fy%jVBQ;K@Ma3v&6METuPlJuu{zl{k(?0K>*k
z)|;K(EOzx0Q0TF6h!}(2d;uPu5KO#zS?lHPZzcErM59ej?LMY1!%ZYE_dGYsVH|(M
z4GX(WOhOvYA=B~JbtG~0Ng>0J`y$f;Cv$q=LpufPK2hGeoVWbeWc<~F=U(A@rTY(%
zkTHDzPqKl8TYpS@P=Tt)ZF3Q^2@xQ#o*qPh1W4WpxcNd24_uvLAXL^yMulH;38FGK
z{ugexN4W%XfUGHUg<E9g&oO*i$X_Vb$&mL)`+z_oIea!-TU)$2JYwPj$Swkbpt#5j
z!*|A)jh>CQ6~T|oW@@sMX~t^CNV_27j)qJ$^A{+f$Nrj3lYKG`ev(;_@dud#|2>&N
zY8X^DjtE;@Z2Le+cv~A1pa_XUE}n8}5z*9wDB6=7S%{F|#Y;eVq|mFA-iozaZ}$S-
zr&urvtbCymj<FMSm?3gKMtKztxo9RFP(T^~e<F83;v9)FFDJiSfGA>(WB9;CPrrc3
zDzGAkry+sX{f@*V9ze=LAd1j95=u}nVj{&=w#QRmJnAK(pUC7VdAZ2ljzc#;sd<$P
zXedVM^WSwBu;t8OQw+#4kR}qyK6>aaejvxcW*<d~F?Hm{UlZj-v1k60Buf!+Oe6vP
z8s#Dr73>ck^667fq@k%b8rwJ&a{N`RpS=%`OR3sTctVwMKlx~e{B6uQyo@6!anss`
zv2Pd&zd4EjmfI5gRAkq?jpQQ(q=*FslNZJ0>OW-osbEnw*$x0e`X|HxCJE_J#R1vZ
z8)C*sdLw~>hu%Dj`)7zm;=bPaJ-N-lLnMg(h>2|l$jXYE<dd3<RFhig3UYT5JHeYI
zKpryj9whQf8<6w{n0x{HW0S;|u?sIgdO_iX{0D^{`JL23C9#6T{<QWEb`MQEq43D>
z(glEuzm_hz!AK+E%dh`4AOxEbD@L#o*4u2Qn{Tx<2jq{n+F_OV6$<-Ts@THH%ZhM4
zLsSN~DCy`hr5}hLJaQML{2rzh`5Ie_oZiez!5mvBTPzmtVTvB>F3xE*bfCjHz}5?Y
zPshHzsb>5S<t?&31Xl`o8N-m}Fqpz1iL)3@wb5B|fw1Vmul6DPfq;s`fE?@uAQr?@
zzU-&85tE<`$dTVqrBuG3LNyrod+ZJf;xYpsj%1OakcpK4j<-fOiAX_40wNcSBu3Kj
zL8u`|X>Bi53gDq32_4)3(#8KZNd^$O0YuCMQh$`gR}Vu$NhIzlt8G(M9VQTyqnD*M
zGj3W`S_x0rn&E9TZ%@$zvJX$|wS!UVhl_xeC~SbjLV`NMvLMn(9l^uqAa@n7{j=`>
z+Ee)mC;o*?^-ry3h^jjf+X6Q|?E6@#!Bp{=OwWlZU8@bW$gc@)|LsB!WP08LvZ!HW
zP93V+j%RG~Xex~k0sJQnH-*4}O6x(Ohv}(d0K+*ekNExHXAw4n$ZmD+&ap{hVK#5+
zldOZlFk6YEtSi2OVl-&#j&3;ri=c;}3<r|vIN(qnr4I(-kYoEPQ2x|C-MA>-qyL-k
zL8Yla5)?#xR34%zwiT0qk8`GNMJXRM_9GxRK!z}2@Ft!Y39oek<2sD@?-s^lUYugv
zwX>C50r5L~@z~BD=0{EnwuwbUAezzpZ+v^X`+=N~5Wx6eXJB^SISFvpl!%`yGv^+w
zS1*;1O2E>`<i^3j@A9T(n@2XPU%B2S$T95E+la7x4?cT0FXq>LU1pwH-Y)6%4iMA|
z46}aSx*|~&X7{`}j7M~ODK#QuPj-~G;B%AGh56@6FT`_owF{$Gb(o`*w5X}?DcfnC
zD0K`KC7c{H$hC`~$8zYg4aGHJkgvwLqMlAm5vg36xPnm<>Bc+sxQrmBpWV=4>XsW#
z=gYVN2^R|fgidX{EFDPIY7}KKizpoP%gNC0h-n8qQ8ZjagBDOJEsm=*bO!1)K?;Bo
zK9!nie1HiskKR9jk0Qs12pVOIZ&3zBG60Ts0vT4P*xs-{eyCt$$2Ql;8*3?SL&zW-
zz7;_q;cH{<*G^NAzAQ7$A1<^?64rhx=euig$YZByufZ1i^CHjQU$;b=;T7&Zd@xV>
zDuGQ?h_%ifsvLO@(>4QB`?c;@slqQMQ*v+PzA8TDJy%kot8)Sh^1QN#$w^yz&vu;m
zVoNMow1Lu&iqmBms~Tsa?JJcg5!AKF;pV3|CtN)IpFtWZ;XPaY*^YrhuV!WTuy$^n
zzemF<wBY3UocgW99HoIgUWZW<3i~zT_8tg8CP)mL7olxkqH^R-#ZibkH4<FsUE51h
z*>aO25V@2~vq)rn7JwRYC1l%X+9ELU+Xe7%0|}e}yz(8@vHTBHq@Qduc!P#obm-(i
z86E-kK=qG$IA+pIRCe*gjQu2ofEtLvm}l$BYDHi&31Qgd;@`!XXT%1O7ZqoJ^n?i5
zfdPECGZyg`sni*9IA7DLvf@EQ5;~xAw2R&`R^xs)AojmB-fw9W6ZgmZ-;pIM-z{9v
z2?e%LNd7QMCt^1ONPoUuYs&z3mbaA!XQ%;<28Gs3o5_F_tdPkF%u1T1pP4-KKIyze
zLlrt4BXNAOJa?4tIj&P7L$+fPXJgvtah)E2(9d+}mUUqb>pE+M^M1BPUoGCBnCnlG
z-+Mm=&j)7ZIviuyuV(2|*yvwc;2-_*HmH4|a5|M#zj_+Vcc&ak$*P*}NlRVS=gOuZ
zB!7*nCo^WPa|AB!MKD~(T<hri!UiYTB+8I{_u^_{WNI~Ln}0<5ZQ~2)hG{xUMpw^|
z-yBXg32g32f5o=P=F&pE_#&zyQY+eW7xN~k^=CA^Km&jP>*cYP+0PaR**k!K3N5Dt
zm~G(KjQ9-yT}J#EKxo-HV;OO$+2IckW%3iDZ0H{~7TMpG^7l!=Uj#G#tnvSJ6fW9h
zLnUIxC!W8<Rw#M9Jq9%fud@+=w&e~9aOPA0Gj<Xc_4em11~9xHcl`KYBp`A(8Hu-y
z+>O9!-(*{eSfPWkVZ0#(-;K0q;>p0Ym*ja1vJdAPc%9fbaET&|;v$<81cV<EJ8#c(
z8`s_)ay!B{Vit)P%<~p+ZTrabLwmu{7fq|7!%lzU9t`-zl6F9dar8<^(;sf&1KFg@
zT_498B`D)@WzmyUL12-#x?-xgpECJiODH}erD4~dpvX80q$uKJI!TqFF{XaCk0(7K
zB}ldGC9E92boB?pI_2ZoG{rg}ck0EfK>kSzl@`D)R)56A;9+My*pnZ_ovGYOAkvwm
z<cfotB*%$Rsi-qsPiMBt_BI7s1lO0;O0sX%oGnJa%)Yb~%xJA9>;P<U)Fy_&u_m*U
zlLtu%`(8Oi7Guqbh85^g)?e(<qBC^p;^1wBUp`6!r&Bkv=$(8O^+w(Zd!A24J-rk@
z+3w|_AaqxaVgXC@9gttW8ZN|291%Ngv~JltqR9V<w{gwlLYT0VaCmR+$o-v}hn`Lo
zaTiQlslT<ES*=%I8h&%BX<|GtWB%EWf!iwIpoQIxr@b6h^s*$*DHX*y&NT^ePVUJi
zNBJ>QjF$JxMR<N7*vHiA$m}bbg^T2pde1O<xqmz+y|Wh@6Lu|Cyxa1lB79E)68NLu
zpYBvo7$?&<h!SScfQC0{uoV<o-1+OifwCMy#PlK1!x^U7{+x#XS3BsH|K31|jOanC
zJ=rBmWOGR(gG58WW4^^(25%vdm}U#fKQQ;xuJ0kw+EyZ;w1JV)2*eM}qn$WDds_Z!
z9}_{lFD<aF^Z$vyO|~uM4`dsX4M={yhucjC9te-z#)PRZVy@!tfymSG2T+p>oad88
z_DoE;xDObyGpghtugTHVZ^?ln-$9VKhx3W}kD4rKS`!^2`iuQm1P2}gPJ!fjE7W*%
z8M2C>3AA76b@A%)XDN*IDgcSk6-FiBjc+r`MmbzcSvOz~_hCayy%@SKY2tE+HU}r)
zy$MlWR^yjLSHT~^I>72l;w)$g36D<xzK&J?LP)<{hIL^9zvT(RHNNc<I9Z=BwT7hq
zoI1abn-L)aZaINSy5i*(LEavrJrYjA#`0b6hg_Y^EdEzRudhkb+=#1PtBq!h3efm7
z^hN|Q9iq|j|A7@0$KF8+hg0hyvYYdF*o2yp|B-F_H-p?)HdMN4JKH^E0fHrN8)3Gm
zAOl#gWRzs0S(I2nAbKQXp3MxReLD%kQhAB3(y*m{FETWG_fkl0@G_8Ud=T&E7Fk38
z9>$Sef2R^BK-1FbAQiCGcU-wXmnaCRcj_k(v{R(-a4zRX-u{U1*Go@8!&OL*jiZi@
zEs*!dV%YbJWD<tGYp^wh3miU=yrI?^n#k}rQK(k0$<PP8+U%@CtnG!!zDTPg6Y$yP
zD7e3LfzXAN3Hzv9?pEuLpmJ6A(9RL@Xyhc5%AP`9gu%Q_8RD7YRGOoTrfKR%z)O;c
z;Uk;DYfI%1`GdW0czl<8(wc;{UihLrIobZSjq-Jxw&kBTBoPQ22nGF%tm@W@btu<Y
zl`~7^L0WR`Ux>8FIUfH@${PoPK%xIb+*g1_)pczTozf{WLr6$7q;w+)QldymN{DnS
z(hW+A2q=x9sDLOUg0xc75(XehiAqb)zh?mT(Rtoa-tW7vU#|i7oH=LCuCv!(>t6T0
zNN|lQx>GrW@wLmh%6FG!?;So`q-}SX#^a4ogY)Tv)W(_U`znv`+*Npdjqhkx_RDQw
zg?^_SdAgn+T?WkEUf9i8^Z1e{VX4{XUW=j<<9XsbYs|{5$_%ONP&v%n<=lvN(s;aa
zWkCgONew8%Z_AVZ1xEPOL<|=j*9hn>{u6(Cpy2-yQQP-G9RMlxt0nW(cr2kyB})9^
zG#3<}LgO`utp7v#Y6Zy+Oe$D{2&k<kZCsRh3}B92hYAjsLd{F8%;lSr-sde~ok560
z)}|e}>Q({U!Casf*}l7Z>yv!wpMx4D0QbA4`QI!?VE6OOhK}ub(qsl#bSeg@4c#tl
zJmL^BF@iM9(#vmc6pFh#j-Vg>hHy4VR)`KU9#FdzvW>Bc2bLz%_<4+;1w_CiIP^%Z
zei2c*8;z4LFwRC(KXf)3pyT}8N&BPwfbFk@L%Fv-XQTYRem8;W+8=UQ|MVWx@q))x
zHft6>ZXu#!9s#B5$Lb$UhyqT<O;Rj*u{}SicdRhFZbD;EA*oOgTn!9ME4Ck7n37bC
z$b${T6$J88t2TNGc0L{|VFJ1!2)yJ1Eq)BM&O*V9Xu1Kd&2w;@pi2~+qWL`Gel$S7
z0D}y((){MWwnP>MQd&arpVAV$5wrbm_ATjgyl}+ION1bpEIZKnHAGxC;G>?G+v4o3
z4VWj5mza;p40<t!7i+#IkCU^rAh(H!kV8};0%5iL5w>wFtv><aa1?*+?^6jNwGP}z
zsHwESB3k|3RN5VCK}W5SiiA7jI~HpJTXGGEO#}mQxCcN&hY$;L<_NIvZDTEAt>US#
zL1xwva_gY;hS)6D5qtjZ#SFc3XgUwAiSu7<=D^_lWvPe%F^AASBYvAhbM$m{2sv}G
z)&oNn=mYH_0_Y}4w~$<4wk1~awuM&l&V?4E&T9>|0i$?WQijBdSQhce;xAp!%7$$(
zk|KgSux=6wL#;_)$?nCk5&~tE(Nr3peRBXf|BnX;u+l{UBNzyq?3?MxKu~JxFM*(4
z=g{xWY`+A8!Vp&j=ysrp&UwTR0t<9n0HhH*2%O=dOSeL{vBsgRc*JCWf!QR{UrI)g
zWu+Y}c}5B&?!)T=dKy?#ucWgo=e{GvOELlJy8jv;mX3@r==~Gzdtuj<Rx@`rEr8D6
z0Wh<_9nV+Wr3f(<$gsPv@hlKt!JLYSoOu>ZiGP?rGU4!HE}m4RxCC=uNu9-8dNQHp
zk2w8@s8yBZ&bQUz2W^LbC*j0y6U~3~@@phVeX-=3RNu<_MjY>{HjDxz?V-Bz=dO+w
zk$iWiMza%@RUXxdaQ2@#+O(~4iA|4nR&J4W{p4Nu;eh^YMva8dte@0y(9{l{MRNeT
zBBmGs!jY#^4mdg{UKto4fGIvi*Vrr{yH8%BNOe(*<l~sMVk=(?lX#GL({qbO%L3X&
z4f4c0IXB!o*6J=XZ=8u3bDL@{ITn5U(J*dX>)gbO-^iI$n~$xF9VBfMZx8iRj4?ED
z&VRvwCAD$pEDocVjP6_gDE?+=OwIebb}ommr%;INY*^sc(~^|Pk7SKs9m7Ik99>jK
zv+G2WPXGRN`Y-JmnDA~C4KpU_S79GEcQnF2|HLa`Dq&z@HITl03Z6>gU>rli$^p&1
zG?%&nX&{}%bJ>aj20T=7D@hJg4hdzTn?nc*&I8ll9PvXDLGilApI%%zibebP>H!+;
zza6YUrtAN~!?zE*7Lc`rA$(r0_5{m$Jj)$mw9G+EKy@?eqv>}7b~?=i=H>R*dnPCC
z(LYBgiU$1m>KsJNVjuE=asd8VOa6<fLKp%%hsd(p!Cl3gJEY?S)Hv56a#(b7@wVoE
zFuXeG937qPp!|H?VchU&Li`8ob+zV87{On_CJX~}2??Zf{t=L4ejr7LrmE;nn}f*B
z?N{}G-E*^Y^I*YL+K~em^dbO<t<lrTnvdd!lg@RJLQ5(Flt*_mNmDm@NCh(^K5q7t
z`E_nU#$`U^HV3SdZK*NGDsb!vPav)8H_+4+oe^|^P1KJu`oHhg4bm0p4nkg@EOR}G
z32PjW0XG~fN=!@*ydDm+f`Wr!g^dRT7fb$KZEfubh($=FW6&UOVF5Ctq;%+vz&Ms9
z?j+VC@d|WKp<pNIr}^jEulgrj035|t|NC%0fB@%@ngdK6aCret++IX{7ZXRP^b7Rw
zZ!mF-V6(9TU~vcp(vpY(mV_McDk*|)jdTzzKQKP%MIH02M^@%|<A-r4@dQokYS(}*
zF^*>`RQBN*?kb)jTwyZg3#MXxHEdJiE2I){f<Jy!{_DOlZ+)>|{2#p!;NQPEO#UWc
zVvnBp*L(?4kR^tK`vXaiy}!{&av-G|0EGX)&X<6Lq>W$lB}9Ml3B&hQ2KJ%*F!;XG
zz|VXM_@3OrPrUQ)X`uTFjp3sF;EZ2?f^3Ih-uq{1_sBorLsozPeN<EIHVEqHzhCM1
zvwr>L{?+z>|GfUsclO`ge`ojierf+cewO$D`seT6(yu>%zwSTFzkc$6x)Qq2?q6;H
z_m6ap-EP~TkpGe47!FbwP%n@y0ho1u5dndNgbLIPWQ0imNTCn`c?_r*NY((xqR0>0
zW7yBc4y1m_4=E9l0Rd7EM1EdD6ug6aNx}f7^8V)lt1?J!056cE^7EQvAV~y-mBfBt
zPYfheAYULC!~&r5#eXJ?ph*b<Vj&>MLi}fn3CIqy07ky}&%2QTIwhzV90u}5_U{Jd
zj98#vVlauHXG?<5g3K7npZE7~k|;2sh_Zhzq%g`K;wXUX`sY>lBvOz{C;!JfDd38~
zrl7!(QYriQB_xc@S^*LyLc%{Q4${7mZ;Jj(V!b=#_eT>LEihq_HnN)!ffQB&D%^Vo
zkYNGZXRiQKDgYz&UIAoO0LHJ~0wCuW2AMj01!M*Vawme!rvL*=7=;E!6~Lt>kk3O@
z0eNZUJVX`1i2Nas0wNE>APBd61mLiRK@@zqfXtKulGu9%aB1-$1?1KC(?methp^=S
z_kiVE7^K1Mo&(00FbE{?6+pF7SzE|E0HbO*h>I$K+d&0Hkp;jP00&^<-E%-*8ysLF
z_X=Qkfe_hV0eOM_J3wYzq0sZl3m|1@z<IkL1GfT4tqG_jlAy4EZ^$GZH~^jPeh#TL
zv+Kk~eh`T7fE=^^)<UM;z)^m{-DBW3fM;p{JaF$I@Vs9F-+)@jP@e=>fTNrqyCv`q
zKU8y&zA5+*JsjlP2mc|61B72dX}_s~Vh`x7ANK;z*|p_&uZir)ANK;zf&Wy*0q4Mf
zD&m0mg(ddK88SCf7&J8Uu76#I&~5n+;zR>P*{4AMfe3^`m4h&R4*?zCOb8=~(efr`
zw0)Xr$%j5Lw`<S;hCwyi^Znn+$<5_pz!{^oO-i-}kT($s=q$7k8gIJ~U3>Y8<@p~L
z1RSm2BNzdHyT`fGvrBJcewv;Y&{Ed=W2g(~oucKv&YFNhz=7L`WTh-gR40y=#*9<^
z5U5rg7hkH>H_lI6aa@5trG`s3bNpP(Qto<R!Kz@c(4+N?mlttK<qJGI3oO1)GSlF&
zpEkf~q1Tev%XoX|<&=~<4K1fwh_(Ggc>05^GiOz9)TQZ0@=>y|-W#}E>@&>Mf%Cxd
zb<%Q~wUBy9266s|-J_(<5<CND=Vu)T?{*%NJWxBfacm;xve!4?DEqu7d8P>({^^P|
z^Q8z6)dBiz2;->iNwp}Olf;IMr0cUsI9!9Bt6i%_58vgv=6q*nT$IArm$$UiaAK*X
z6xt|xO*cYfB>nZGX5+Uk=w>&9E%W+xp6MoQ%C=a+2uF$yp*GReP^gbZ-JdxQaFi_4
z{_|}w25=B!--}&)4X?(;`#w=E@*E@)f4JTnMJofMw<l^}L4vO<f5h+!l_m5|!u6b1
zXHOx~ZC~fVVQ}i!t8-Luy<bSnO38{wNop+IN^6Ot&rE+wWd@O>^edn=y6h8fguB4x
z6ud@A3w!;b<L&27%Em|OL`jO$;xT>f-{U*3)>|;h-K(war0IWszgqV`;`x)l*Xgv`
zOH!ufrP0J*?~jT)-~|{}TbHt@(55T!7=~m=+Paq-yjj=1>vwYJoJ)sHh?z?D;9YO_
zCsLD^#}is60|%uhE@VeW#5SJQO)31K=iD7FXQ_2leeU9bWxwXY(=o@f@JDvVUsi0n
zjT;80@oeacrM{fjn&f$N|E`Rt*U-9YNlKe2)bYdPQd5SGx6~%*U5F6!>4SgDI>J$s
z6u&k8fk=J!+04%{vmzTmGf)I8o3{wSDsYjo3VjP}I~<1k>prFG#Lrd5-Z)wpdaP}|
z4co};y(85od&|!-v;6`bes$tq#_jZ%X<~iq&K&uS#hLa)x}LUaX?J-B^6yrO3A`QP
zyqh9U+w6II@`I^wmXnQel$g?>GVW1b&dIuuqpyuQ_=Cj~;!erwsJ*ECZdGHxK))4e
zW6&VB#_UJ*Rh0B2c0c|~;V5Lujx>geH<#W-LhS|h<%{ugr}z=~@KV(-pLuHPyYVQQ
zlan6Hcp6b_Z<MIkcG>l#(xI8MT;mNKA)@?0c}d}DRJdTm2S6eNl0TAQBojOv346sn
zel=|urX?$p78xb|2@f|x?b+$9?n=iRnz(v4!DAwQ4fW=WQx_J`MO3lh3L^+h?h(mR
zIk9xal=Zn4g*$zZv}e-Np(Tn>L5Xyq!Y?F$O1T|3Ky6cFtQ%UEWu-hu&=w3aI0U(U
z(P-qbzw$k;b3AVh>*vWZv67sYv1(=xWkAXJzmSQxb~|D{TTikYI_$VT6+e5!TW0nU
z?(5c~dr{QI&Nu=LTLxlS-5$q2pVZx+<P*T%D#9?i@${v@r+V)yG*8rD_hfq$8!5r|
zw@*|XFtHm2fo6H8Q{hB@oX!hKUUxocDl1dOK4#|wBv{hFe4gV<D1$SXD2Y8adx~?(
zk<E%*QWeGyEl)how|MrMcEvP_zmvHCq|fyA{VA-kmqbX*UG1F8uNAz=kNe(vTBNFq
zr_643*{<kHz5mHBV#wnyJVldu%+BH+2>f$>xsHvr(h8qip|UCyLX?|V=Oo!v=IfJr
z_o$%hRvgOb=xFM*6ogAl61fP8Xy4G2y*i<>(pK1a=R{!nQ5lw!xKT+#k;5mKuFj+`
zM|zN(efNozbBl}8L(^JlpsvCPNPN2ZTE+=TYvYXCR?4R}^SytK^XiffgMv*|AQf#w
zR*rlTCV)=QzR&H@UB&0;CTklti0bi6gW6B_ucW8DwYcAwc);-B{Bv)QoV(o?E&W@z
zOIPw#)V$hGDXl8Kw5~c?lkpI*EM`SYs!a2PB>#&-V_}_TNDtF1{hqJqF^A9KKc`b5
zyl;K{^HvahZj~PKJE~ml-iF*SLjD+QL2EH0Fa+67BF+(7s9>}Pxp5GA6CUNGi00n!
zhYbLUCqZtdeSdfO?cNrXNi;2kCPH!${@;t8dvp?#de{Yklf)O}J+_#6nz6)5!LY3B
zVP}f+!*W&%9xY$TtWjrXF?UyaCE>mx#`)B5Yj6&_8uRcZ(Mg<s4?Vq4MaObqQk?7h
zY^iWc=9{$ic!7eq=7-#>WE+nT>gwtmx$L(lnfg&qn%+mKzYjVRSf?tyS`T1Zj#(IV
zN{G9dbWcuESigbx^Y`z00;P5lT;cpDF1^2YX)rckD`p-4{2fY9JTaTD(2zulw-*-j
zLT#n^ZkzOA26*6|e&PRB^oye-{E6jj!`8IwpaJtu?gyVvH)nO=+2gns;yt&U#|?l;
zLvP$g(|Smo_4g+{Kpgz-ECl?&yO4Zne&jBDvV<W;qhU&l3M&qU0hJw3);mk`zSV9&
zDrlWev|WdUN93fv2-~*YxX(rBr&CPljF>r@oz~y?+zdaSB12j=()KoL6@HVJnM0Vg
zi~}x*WGunEx!ucTER5&>_#M<<RxnFA&<$f)53?_a%|wq})`I}Y)PY~oc*aoSBCpPI
zqHde%Xi|Q09N8-Bnq-p%GI|}oi;-Y>^<YE0RI@c@H6mgt9ws$@{*s_F`?f6q4SqGI
zhg>gw8$x%=yd6ygA<g*T8|VO(IG$Z#;t5hg%yWnnKGc&h@^>Ah$<r-R7g6s(akB+q
zV><izLQC^2@=MnpV@+7}1c2e!I4&b4LfrgB)~IY{M>SXNmSreu+R5N?x^b$C!ykek
zl7E|+*?8g`avZ~<B~!k79;?tY9Ldm@#j#}Dm*r++ANxjULSl4<Z_S_-qu+7uZOPEW
zN$IGnOtaYuIWyZcF$&xog7=(dsty(3pJ2=BIrILV<gkwLd(m<+C-{XgUfvfzr4;Au
zKXe~mHtY4@99iy4{nBCHQ8;6L@e=7{`o~m?+3b#R{gKLVa)L6o<$*XRkWj*iKhv$@
zDEf@wTkimItW$f|8<0ae^Q;NTp<v+CaN9iEGaz(0&F6Hm-8a~!HJOjZ)lRdNt#@7|
zICJM@tI_JV_S@T=JeBcb8SDAwnw8H}PIpQ<$vm4DxMnP1Z07k+`uOL{N~O&7uV%6z
z<VKzv$-KjVcEPtf`;hkq7U6`F+2Ympm_iNyZ!Ow1&+N>%P3r{jZo4FMePfaBIDTK`
z0_9Lhq5T`J36h+Tj@uU++lS@{5*+htQq_d@Pl@<))!|(UJ)G#kR-ed$(=QigB4p<x
zji0~`eXL?#r_dgXuV@sZR1KRj*g4DVZ9%bc@nzf=matT;*Pr8WUo8vh`u-5<L@I#(
z^#tugas`tGjv=!_CddKHa{4P=88WOX0;H@({5|b99_@1N+WMFCr`*<9KQlPqWVO!F
z5=qAzn+kc)=jGM$kzF*ohn~qcIaAMH`y~C>uC<Qj#U`J!p^s(C+w#p>H3=8{KJg(H
zdveV_nCgaKQi-F_zrcGMTNe+aw)KLnqR#pO5smxBlC-zjz8;+)NMC$B>E&ki@NDU+
zThpu$so9)z%!={qr1A=$g?ubp&9ZI{ix%3v6E^$S_q#Uk)WbS&o{*ERwZ&=YE{r~1
z<$xL9fW;j>HXRZ045C9b|E%%y76#pF(x2HzaCGus!UxE@y$(dIk%9}O=NS1jKFI>T
zg~4>?9Q?$<vv%Q%Qj*Eqvs{IPd|i%L_{7gOs6BlzjNR+*M0o4+sPRsN<krj_%XsP?
zX$>FgNyp~5q1Tcf=$0nD9}V^9uvbiquzhD2s$9I;c_)skvZ*bR(v8PoQ^Nm_TT?A#
zEvMkL!BvaE52j^?t9V-%2)j)unhs6QTD&-{TyW#9Sw8Eh?&yMfH}9mQvpt^;n23X4
zoNcJOf7O8v=U$rPL{9Jub*!^_&6R0#|4$H^lw}P$`7%9oGy@B{NB?bV9t2hf7w+B_
z-qJzE1#|=-@1-VU5@1%Qko~}g;IM&AnLmIbm^ytbEQbp@k$H&#O@Ox)fNdF%fGDn#
zEki<QS*9WQ+Ywo~Fw0O@@FP4c0M<yN5Fj534fYR=m&P6w-kHaOZICLzgl;*@K@_*;
z`yk3IOZ0O=)6iF3lcf8SW4<cZ*l22w^r`$-bEJ>wZ>N+^mk>%TW>hW@{{&nu)f+=g
zv9|F%-W%!@EOs_5h7R`Gb`|jp*0`$>GYcurJB%#tYaCHkh4XkdfRxo*PduWZoZ6sQ
z;kXtc?Dx+1q4I39QRrXrm|9ifHBLCEYZ|o`dm*7>YI$qfO<?g;6Tx-XbKRcDo37fO
zPL@z7nh9*rUFu?v9}~rH2=aS7=w#(dn*ZVI&h!cm5p|aA)#$}YEKSnLkfyUzg%*in
zZc<n2*L;~J9#~y<HI*ZJ(MZG?dR(S0cIDgxCg)9?Gy2=P)_N2;d6(DE+)+p~@~0B8
zHoNKAleHFo579_;(^&rNr{>}N-foY21Q-I`Cf7ubU-1b`-RAk!IZ5dtpYi0Qo*x#J
zv1l1hJEODk55N#_+IbR1);#~vL)Ryrkp*xyr@R*Qf`_?cSCM&qvUJJkH|2W9U?+VO
zhjf(sQYbH5a^nsACb^jT%YFnCm)mBaK6pAx4ZZ%{#MQIj`-n_WPD;t>-P=x1P`h3|
z|BjfnMfWIfXMwf#nNPPDJ3evWNOtx;?dGcVC4~~tCI~cgAmKw6y21+Yw<}#64I)@?
zj>)TS1)UFlGAQm;zhjv^AY7?U7b+VJWmlUX$6o&=kjP2SX3nvWt8V-JM62>vQ2Pb8
zPmgrl*5izoIwUOQ##m?WT#ezh2uwSh-;;|mU7XLef$5^}%Yvrq(3<;ypTVv5S_VZ^
zILZlV3Uk@)_|3l&wvnA8+6gMeXFnAk-|98P%JLvTcZTa&um-i|%iQaA7Goi|EY6!5
z-8XHy#$!hP-1E8bn7e|U!Li#T1!s@l;rZfFmT7XV?BQ7s;};7f-@Yh%eXp4co(p<G
z=rv*hrF*3cVGSgoS-wF!f8|)tOgpx{mOA!vL5!%pq(l|fBXPvh0p@v8%LsLq<gBVp
z>t4mG_&9jTN46`yv+FnCc$2O16TG@C108S55-KCX@F<=M`Ff?m0S%Y}#iI24>^*=<
zp|!tnRAV~o+rpLs972lMLW+7^)ji~cqcDUp*s$<bli&Ifo8?mo=rt0B@+nb`n-Se#
z25TeFlaJb~_t`Y@%1<+O_w<Yjy+6Gc>U89krl$ClugtFRvnn|%6y5nfMSz4IAdt&4
zI(J(y?7WgV^^mcn81^$h3V9|G=ej#-Qa)`)c#({4g{%>*MYY0t{*5Mn3tpUCM*iQn
z7~4Oly4@BjqMTMZo?)VVhFGKCPUhsm%Zl8Zke$gaI%Ok#*;d?9_9-lQ#m5Mdpb@sf
z#IfUR6{+c*ZIwj>ZBxsn5jU^kbRK?Qe=aUL{!f-iIEs4e_Z9?^!@qt0odOFZN}~?W
zOkA->?jg|C%Hec88>X&b7$Gn0$#rWumj3Lpk-vyc^agf6SK-2^VhQ`;Q7I2^^?+WJ
zfeM3eCez~=Cq>eGFJFanJx+A*J&{|%#DBK0vn+7q_(tJd>MK|LoplA?kQ(Hg^=NAK
z^E}bS6nrmZz16E!7a+scDMM#_dGvK-tU{9?U4kxes7^E6(O`n3feVwNhs>*2%-_q+
z1u;qaE@YgTo(OSYY;>vhYEqX}R~8Ky)_<NDmJz@fcpU~IxQ<Vo8v3G^Bg1hX#y1(Y
z5FN+o<U$&XAH{%XLZaCQ2pu4&5AcSP1S5Gvk5IAqx`f^$nl96zVo)ce<UUbeCWu@z
zx?f{EeLOY&JY3vGGx`u)l}P+?vxNYEj^yznY^;oNbxXQ2k@`oW451il>HN<oJ;Frr
zN?!^>N}a68)^P#bH;(c%(;V!CF$GJPP-&$CBi&~c@r%<+!vTo9;hT*VU&UiB&q-0a
zYkuj8xyO7}J306BL>tuw3#PFA!}2L*alLgLPgBkZ+IA~Bgb2fzhz%v@Mo9&k^rO+V
z1v+0oh?D&7_>p<Nmv%wK6l%PI^lY(TRJeudA4rdVi?Q)I6BE_@yvgnjE?Gsjh{UD4
ztS?F35TRAc=XDaZSyuS2hewk$@!l?dbtKtqt9mHY<)f~1;VWGMcGWL8JgVPaE9AV#
zZPW)JJ}WG>499d4<#Nh;$(PqjST>q<k8q9cX!t7U(W0+Zu^(w6?qnysYn3oL;lc?n
z$(1>@y;(Vqk#W!m+1o_3P4Ob$x-D*}tKx+MYA_ceQ_KTvxHXC<iGQ{SI{7mp5P19B
z_ORLKfd_gFB9e+oIfkw5t3h=8jH!SJJ_qO#P|Ra;>tl}>r}rzSKJ>*}YQE9nD$jq_
z4%R}-O>8Hy5Ng(#t!YsxUd6^iA1&%j9xeHjs|?5V^#E41wd9c~*8HpN-Z4fR5Ni1s
zxFyNBwGRRqb9*dv`<TzZeIm(oOmd#9T3~IOL7+o8?ZNQcy$Zr34;+ugX{wFUa?Fvq
zx?<fauJboEuQ=lEA~(`x6wc#^Rr1Oljbjh3&>4uI{B3in>@&f~2rGj<-{@rwmtqb=
zQ->ce`>s+f{3k~VW@|4PeN-tcJuEcJa#vFP)YCDBour-K>l@Eg^|h&Q*&o$RGwn)h
zw&gua;-1#=vSXa)hUnePM~@l|Fy`KMo?iKMF~q_5^6|s{(Qncg@rqAl<9@^@!t5E9
zAD(LqDYg8T{rDr>(MLh1C1ciXgHD`&1{>@iAs)qXn5o^ew;VT@Ylpk%$OM?bJatYq
zPD+ApS?X;}PV>+1h`x?f3|xKds$~9l``bxU4!`C*^_Qn%^jR3s?=FxaAm3Rpq1h>;
z*FF3DNu|<`jB@}@m<zs<%QOguZGQ;GJ@T;p1V93>Q*`UtZlr@R$Kqqfvjv77>^Npt
zhL;!nKS|G+RT~csOosE^UbsGXskztKUuapow~ERzL)+>0h+Vf{r548ZxFN45q=UhL
z|IK&DLX*YUE-T7k5*H3xsLbWx=%!IxnCi>&zeRG^<~hj{<x!7eYBphytCSXYyts0~
zS0-H=+0Jjo&fA+wkh?0Jy-A=J-9X=;*{yy8hB>JYWg_ckT$LlS%fT@ihF<7W(q!1c
zyV-$80|t&_IsAR$Ism<w=kC%E(K*e;>e~V(LqN(;d7ge|k~bbd9f;j~2&D~Ia;iKs
zXoN5z@#<s8gh)YtZy6!^aOt50zL!gjSveU;hXw4+bbZwaa6XI`r&w#-RQpyw1I!3R
zY3D`Hb0#(yOXf#xzGP@mu~joLf07duyr}7Dh)pvwhf$JL^;w^}c6F}ra(v`1e}dZ1
zxs}hVxgX<*sFQBh?i`Qvs_9oKuMuUj5tL11*~a`*Z&;FKrls0do$Tb9bS!wrhM%eS
zmESh>tol=N3>wx{3){`Ou?jDB+!^@nOMg>!m30ptlG>Ups`OaI0fKGOR8{=fsw}(o
z!e1V`JuaR`oA3_JvkR?_{`a;3kZsr{n;<Y|JOPg@0b~=BZsCJZ$=G~$y{9&WDpHlk
zC9kY1>+t5OSIM6|x2$xnH_BfJm}>vj^S+l1mojen={+)wp_Ut1i`L2=%b=aoUn+0%
zjQM&y9ryj?=ILPu|A0*&g^HT$iNo*1p&rxZZx1Pn*5aG1v0+>qI-WtjS*6L5lxlM1
zFt>hQ_jy7C$0zblwxl9!ehUwo{AT5=)`}>mO$=*K7Fcbz_!OVOh3IK5E||Z#p>sr%
z?o?I_Ob%1*)r~;BBJ5*a?Ah|RFTP{>lqS}uXiS~BJrm>8|B-12W9p`hDVo+pXQm$@
z-O}`jdu#tur>>WnLZF$iZjG`<yRQ+$2FarOf(90IJ*+xXS?;b2IORtZkC=~aduxlz
zWoohzN%GL@(Ym>Ee@+~Enl@G*|4i1T`uSqn*p}{H`l$+usppkRAdmq>Up6mrOP*`d
z=Wc?F^RTFG;G7Ka=}KA|`X>K6{fqp4ak;x4sy;YM<(p!&H|Pzd*s~cfW?~=aXi@RD
z_c+<7dPU^zXJz*6ZG${k!Xi7le$`FHvuTp*)GPvwC&v9a&!gI{g`e!qYdp^FyLbNV
z($lgBUIqiMGU06Rmb;9v<~>oWR+9|Y72YmQRc{nOBsUL@6HjnP)1v6S`2g(jw~NP>
zYe4={o;Vy4$&z?Ox_%vJ+EiI%#zPNML?7SU7<lY)ER%eRihW+q8Q?LDUkERJ@GzO$
zXa{#QX`A-zSQL}oqR5ox>qj^N6CQc>uEj%3o=ZE&ZB)EohOuqtSe5mM14+6d$Mt6u
z8FSI!C9A~m8WP6}rbe<Ry=hP%sMS0-u33*yPC%}dGo2JztcjaS6F8tsDdg~(FqJsE
z{B-KqYYE%*2=Q6FzHYjH_29$y>f>#5;UD~BJj~e2uZHWsMKlg#u=wYCs(`rSioDU2
zKU(M?#>QVj8HFVX1yr4#Jbr~T3Zu|10QUi)jC+5hfieQ>XQBTM^)vFDe}OUz|AaE`
zv(Em6GJ-jSg1P(xW!$5m{RKm^uQ*3&4A_nVDo7Nt9fQ;U^MAk(jhv+a^M7$6eiVr1
zfBxjZe?ml(9{_qpM34l~dq0192XHq77|pNm|F}6}5hOdcxCB2ykBS0{XE*@mp)U2y
z=^{e>0DuR`osobZet_5#6+*E+qrMH$TZ<#9qk-{-B#=gaO#CMWG#u5w`zz;v#2g9(
z6dvk@1T_7?qXE$1?}X5Qp#T2=6F4K$al-#V$Dsz%e!W4x0Dm^J_mBW5K#{!*E<qN6
zQvnX%*gXP3jl0MP<Pjvw3l+*o6_6J|jyY5Tc>(0uLKaYvFVK1WB>>1m5ryv_1Ar_L
zGTJ`|fM=+<$nG)Fn<yXuZV7z#51wfufEIuQ&&K|F;QM}%OA8?ZU?5j??-+oP!GCZ~
zqX1wiHwo&RNM7(CY||(>*blmC6ddda-!uvi_JeR*2nh#6+48$r0r&EQavIQPgVGOZ
z8WIlnlXDuRgTQ}sPJ@U(e2;Vb=Tt`Bz<#&v#{R+R7X@hN-GVSoTu5xc0Ql$O!utgP
zhy)V_^$$GP>>WL9++YH#jusv^$~IQc);0ihMz|+z<}>_7?}7oP8r_O+Hm}1K1Gb0b
zFjWKC5RTGeKXO(VvM6;wno?75&X)S~;!a{B2@z*X9jKreuNY8is3;RXS&f{u<Iz(t
z$(PaL7QGZna}HneBGFmWXj7dywXLC@*_rmt^~n#F?o<A3t5*lGxsQ7tiM6Dc#ZNM~
zkf*+56rK%9%8EQw{1NtApBIidWkFX<MM%umaV)R}a+H)vwZYm=nb@GXyH)p?3@OLG
zg5|^sdHX;{l~Llz245Kw{KMGVScf!q;wv-)6AKg+zY$QX2Xeg1SJVqOr-N|^<MCu)
zvm~>Bm`kVHhPmE*vB%MmBwz70dn#rUPLh70d4e_lFrj*(N}hw^QzAm`okRNDO}XtN
z_nQw@FJ9rU4j#viej;mCf}49Yf-%zS_$#69BF#~Kch~s5_V67$;<#R_Y-<k@Y=uD)
zg2Swr33Up%S}|LEqB)o4V|qCTD@f_fUQn~t$g=5aP2_~lHeqyb4C6JAQ#A;bA7+t1
zSF-6ar^1)ls7n(csi8wf8CmaFqcQ7k#I97r-ZU*=!b>&E7-394hDUInIL{)`Qr!-t
zi&Y{;gD!>k8iXZ{ILk&dui`$7d~|wfA(wu17xfi^$mbhrk@#;CX{d@J3eh?WObv=b
zCj4zaQR=CZB*K0p5#++YW*4|w)bRP@<r%N?3du<Mevcw0u~lU*loD2+T`ehCzSgiZ
zr+4{0zsh+#YhNNiPd|$b3hqO1G;}q#pH?<5-^#5VXO^7h<2feBV5)b1v)pcGmDi|p
zB2m@a)b_1tF=y=y(E_*rk20HY#4m?kcOUrfv`FOPv2nkMK27b3^7AXB?O3+Cn}tOL
zQ0-fz+}>1GVuu)c%EaE+NbHbqroHcnM_q&Rcg94~-pp~_Ss6C^$|JR~DIU*$(c#LK
z+F;|>=<t-u@68Eus_i3sx9uuFKXR?dUHCR7qLRXITyT0=V1(XOMed?w8~3zE=C|<V
zO=Sbo{!`~qi)&WcsAMkOoHBKnQ6BkXM49zrrGUgUoOok4<^A~P1VhZVD?t~1dOptj
z3NAflm9`maiMulS&a`^AYvv{?O_ZB3dnxBC@8<n^kNnHyGeU#YLx)KEpG2%X&7P$-
zcFCxm+u^VBzmRU=@#xCgi&mx{V=KH3f!WNPy|nDNl-(xBb!GS^sl{)l--}&LxbYr0
z?wIH%@8X7Jhi}EwPSc2=uwVQ652f2=M&GA1mX20e^Ssc1el~%(Exp`CRI{?P;(fK{
zrDe5cp(FP%^^7xJeCT<v{@#ZKVj;Pdht6gr2|k<k2})mSA22gcig#1_co?}J-<(=v
zoFyEfxO3Xt>B)1C6Qk6&cvf$kCDL1CojX?i&ZJc4b~Rk^9k^k3?yay}CfKi%KAib*
z*?iRJoF?DV2N@>89qJ^9I8CF!2nu<9ENG^fn!T0(Azyvq`d9k<+{1M|DX(6e4W=F@
z8X&oGiiVi0=W}!%v)QqnGZ%;y&Rx#1v7~-1_tmE&e`BF~ZFMU=csb*;#pg>T=aR1V
zeQH@d73p;E+?s1<k(yEr?)yWXJN<^&moL^0mlC}_tm*u9Te8JTyH_o=QLMf7I%8%x
zlmC2sONZmz%z>}OPSvUN;fO&^e&ep~ByF5@a;2GTF5J^Ta`UR|Ce@03MXHD~`5oG|
zllWvJjgq%TM@<M9#VcM^J@~^;L_O8_AF=;xCjwoNpGMd|#lNb(o4W_n5`+Dki~{~X
zZEx*i=MM4^_Q1Z17Vb7k+Y%<AuX4&j+mJ^|OW#OnFLy@S#@))z-o?Y&4d_Uq)~R2f
z|G%P66x@Ltr3ZNYgA<i3T-0ssZS6c@ViMpBk=H;T;{%e^yJoDm#YLMxzV5h(g`>Td
zf|ISI4fv=CzaSi}B>EmU7Y%{H1fjs0y-SL~_he8M6`g%x#(ZGG=aU4L7D6t3;^F{T
zk6cM?-C^Lnkk!|>@qlp&Sh#~V#@_wHMGFr*?%kUJ>y8a<ZxQ`jsoiD)O%Ci+0094)
z@PTUAe|E)wqyMJA0h;ND$psPse)(qDk2HXP*f%KUh5bwKf#`%l*Z=Jb2?u=8r8)pt
zjiYD<$FXwXWr6`rYh)r~n40WUZj!!kGZ8#=41YnfFaZ?=dHoHwYX~S{`bHcAIsVXi
zka!6)ybw@%WY#H2E(K+|MssT!L3jD{!R@$17-dA(oUfer(!pEPJ?;M-$-iz1|8*pT
z(Xu->RE5QNd+9(s9#I&uynqpiG@1qUY}}na-K=cf0q6oIpyTFjg&YdT;7?^$n85Li
z7PdBuFjE*XHGm1SKUaj{NQ(vZ8EWRBN<Zeyo~5+k>)@OAEVp0wJHYBh8gsvnr@c5e
zp)oN1!EpO!L?KV#@Am&_&V%~^#wlFvpQGkiw*~SjxS>A~`zUda{qNWxS_e={kU?qc
zQDJwH$ArbjGo*qn?R2{wq+6RW^bAsP`7GBk!BFmy?^Q;YTin4HEaiRr+XaITb7#uj
zb`!Lan{a7XQ=!$<rM$!#TQ%uYpq%usEL#0RT56uz(w9qe2`9>McoMn4QC+^=!yUu<
zj>0wUdH8niuv~A;{iyq{BdX7dLxXx1+Hk^ax27=q<ipIO{4sQE?Qd&I(L>7n%CiNQ
zY(=;J7;JEq3d!%)2K(i|o>5|ba6osgQv$JMqr_3t-<?sgi;z%xLiU8cJOz>oz*iV}
z{2%1s|Kt;0#ae{U1@s}-5v25Q5TytfFpVI4Y0G12T({8NIGP9**d!m|#s}bl&`d|r
zK(Jf~De<tEXf9la4d|NB{7To%3y7iqBQ<_KnC1aw^?S?~oiw6mXzmwX6zKqreQ<aW
zTo`%3n3npQIPO@x4Xyt>vqfs!Uocw$zA*$A0WRQMBMp>9$U%xW!2Jg{`U@h{-*H>F
zu<lvm>MbJZ27`{xAp%8*5fJ?qsCn`h0yi8%_5p!6$h{h19=(8<iix4em8Hb66M|tz
zm>1;Rs8hRk41ZZvHhPbDo+KIvENH(;FT+uKHouKIWaif2j=8JdfU!@ID$s)dP;kW>
zeh+~IgC3`mB{CkXDCNm@a~NO@hwl&89DndJcLJYTCiS_-x8tr+bq3~Z>;i}+!<c)Y
zA0O|i_rKRZabYQ~4v*Kp>g4-3+djS#7YSODj3(pX4e6`5US3*R-^OiO9c#9ZpKEtN
z-y@SO#WvS-b^d}uxArOMROowU@>O`E#EHClkz6{VX|g=h>D<S%JS0agm)9An4Y-%P
z<#MgNU`qZ_UzID7*PiLtYo2wjk&aHwFP1p_IKZI9lIL|CL$=Vn=bZyiuZgI&lV7-g
zSGb$O^-Q&jf1-BXRweKDc-Yf;_CwO)qY6|rjSIm`YEArCaap=yY5h9SI|a`0HC;Zn
zRdWAcu6NVd7r}2Sn8#?F>sryo>`<aXzco2Bo9l0zyeUyeyHTDvj7f{UrGt^B2Exw$
z>ioTgJ=kj`Ay)!KLDP-$K_X~y{em-1gGocY0W$jR=cG@r#(a4uVRpknM@8+(eeJ@t
zy;q_-&-7F9+EF_L3_-8Czt*X%>y@EG&io)o^#x-IAXBcVI?t$5ytjOGB))-p^!NvQ
zc%VytyAo?WVXSH`!HJ?kvyv6oo9r87Dy+IZq-`>x4^JcplDn{yXGeI^-kUG%x^$@3
z^}~Et{Q5GaI(Q|e$~k@`evOFk8%?UeqLk7iEw<F`^f`-C@~cd>0;B#|YLQy%G<24^
zG=fTw1v6Hcdq2#vT&wkR<r?}BAL8pW|9~hv%1e+`oPG*J>9Ciw@=Xq_6yLkrH`sl;
z9}`r1Bq-9G-sj(Wk<#!8_u)L{jTdcbNbJz6B?6P|uX~_pFN#bPQO|cJ^aEuo&D=}F
zLh3o#^aKo<9x?3*y&u=3<}#;qiKA32G_tEje(Xjl`=_s&p}p*iP}?m{zgP-sT$dn;
z33o|qh6uPdP6=N#OUaRQIEKaZUe%d_HlHPNYu(=AOn=LMl`v7V=JUCzk6X9MV5uqj
zn@`_zS<x4pe34hwYI%%zFKIPea2r2owXv5;Q?S3#`uRlVvQ|FJlv2N4f55<60Dpji
z(m*TQqXK)|H)h`9hjX2u%-;Q4{<TIUly97UB3e^D?EYz+0&PxRY5W*Wv3bmgau7{4
zPl`R0;2&tv10<DP-EB0;XeddT@dobX?b>oGV@{&S!A$$1cO1?YBv?B)gpOhEaaZ{p
z`O&ISlO6u$O)RKspUko#-N!c}SlAZKRmb`$(`6dDUmd|^d1Wt4D12*d#^*y&?3C5A
zJjc_;E>oqntc@qJp5slaI<c;pG592PtS*>v*CVmR-S@_NAa^KlzV5=;F2T<UteGF-
zI(^F5XR|<Z?U6(_!RKxq!#Xk7hYdn7V&zZ<nWs5W_Cf6ILI~A$<*4rhwd`Ryevk*H
zBi3lz=U2mM-)K32wiR5w3oZm!Z$S)8xIPY?Xm?S8|IXcU9xa9bKUVNC1X-7Splq!<
z;EYya)_^P8hhO5lNSgmCTSPATd_*@XNY5roBj@Q@gQ&v&VDj)lyYq}9QpuAMJuBvi
zr+IShQZI%2dtt5$C8~#D+_Kln^M?iR(_um~I{#!jfd511Z@=;fAbv$|2E>t-$F<P>
zQFkl-->IU~fx^uHK)1GoRfpw>9kLaG8?K8<8U&x-BP@=w4>^LS(|$GZ_wE~+cl@_c
zf~&n+NSt8pLNY(0a}tqyI%TSL{57opdWm3D{PEVXb_b6cMcwHK)lsKswC2d4Wi$zP
zK3@xpKYc8$Ylnhs%eOIY%Oiy+_w~E7^976UD|TZzH0~7^ksf7N!fkLi%=jj=oZs<J
z&l)1LID*VT#0aNakJRwyAp@Q;AF>^LGGpZ}Tw%KzDMDE5xvn_=61K)n48l2r7PZLp
zuvfgwm27#$W!3W!3DnP>hO7I%uZ0z4721;N>b%oZ&@t_C%R0s_p<~(_92{-0W7-is
zi%au>f7a+})>Eso;KWsYkq|2BR?}m_j^|?KnP;uyM+JjZCu{3FuZ3le;my-FWUp5p
zxk}gYDIjAD@_^@Qh=A!O@(eVs{Og{3ua%K$&VSp=7Za*A8g<CRP7boVq(2Xg_r>Tq
zAC-V(VPX0UPKBr?_ml1-J~x}mR|&Xx6u(b;T>Cf4q)VPp?%Ev}y_Mo&re9rfqo=yc
zfv@g}DWh<wv(wwBAA{~b=5b=5i=Ir8m8&r`Ev>G~>7kao#B0Akk;a4}J&LU^IZ81o
z=zTd#h?F^M^sQB$>1*a9T<J0bJDEk@Xc;lAc!EoIHPpP=?_=39nYZvZ>9@(PQzJ)(
zETiYU2Ey_0kq_P}WMVrLe{U9lrUhH!O3UZQkmny5?X}w86y@s|ck|&{Gv0y554(I(
zcxV5rJ&65~Th0P)3%Q`x2Hw0H{u{ja3D{LVtb@K2w~v}!D~|reS$MYtUlbPAl_r<@
zmb;)Y!_Lr<R5!oM>0R|E#`mQGLNpzK#y~%iT9^31BM}4Cv&o$j2fnvghim>eKU0nV
zeSQWtH@f*g;~GRn1mY<R?Fh{Smd70g;7f|EGe>0aKvG!{*|#y;&D8{FVZ@W9qGY&i
zG^#kEb%AjUSgmUd7_Eh{@H&W%V61Rqi#Z-A_D8xs6W^exjUP>o(U|xLNrC*5C<A!D
z$imckF?%PFN`oA%>qVG5f!w>A?0kUc>)NEQw4z4L=vo<h(`&=|IufY!d1m7ij9%Ny
zelwb!@lQD|c+&&FGpYz)AxJ8C^kD&J^(dap5+2mSk>0xCGF(RA9!^n0-y%#F&@`k@
zb@bJ#>MNSb9|#=I&773exP4?wi#Fark;skVsDmO4X_I}SwqC5xMh@IelU(Ceb-|It
zDQ*T+hWgR9<>lFDpM2rP{9-?36Itxmf0rfW-SyiA+q`k`+e=tY6EFYNn}VZL<wFt_
z{Oy#y+6AVhJX!6+A#TjK6XZ^2@=0s16KO;loT-XkvxF!$%Bpex@8=UPCwL4LyaSmX
zLqn&ObTVoe*{XO0#N?!8GZhFqU6K|2340lt;oCV&RBP$4t*6F}1T=0H!%lj-sl4#i
zGiv~O%}Lrc;<WKI)&$=4dEcLzVD@n3>rBe&sXX*KmQT2x7D;@M6+7=tU)gMsq8_`$
znexKO6di*{(~;4~g9<Hg266bwc=3KZRq~{`lKPI*8L>+j!>|^NqQuOCsHfb^lp_oo
zJ6b5V@4t%9l{BL=c9rGSEY~V9U~3V3My9*`t_YERHF9x4o2zBD<Lba`?q<`^D+~G6
z`k|Z6pGT=aX0IyVfs}5T66#(p|MK$avlk*lR!v{d=)#k0cvtT4VB0O!e*JTFqN2UO
zZ2^Qq#`E8{{*}&ZfVcwe(f6d4pB+Kr)L0YC$oF7sFb?xMkbml1E~~+u?MPp|RryHD
z0Mmk0Zhdak<!y%eg`x??*ADg!-3=EyzP&TFtg37m7m)g}%*dR7U*erZs!{+a09-jU
zihUo@b02Kg=j(@mH_oQ!==oGihb5TUY_40;B}hq~;AcQ{bVZBcs7rKj?78BS3hag^
zY$oAlC<y_3^oa;(EFtQKWDP43zpq`NNZx1AU7PTi5Z=BjHI`+gf9dAJ;Tf7|J>1gG
z66OynJEFBEeJ_V}3%A-qN7HXZ*YG|$W}~6fLXkWC-fjmm+!LgbvpQTHrJyQI+odJ4
z(9N|5(Z@f#?-p9H!yp|cZzq59j#c7yGno!Hk83*VWa$zD-f`(Zb5_Km;tjedr9*X(
zNu}_$x*7}<j4ozFgEFk>0vX-utVQY?cAjDkWs-E^Nj8SXeW1u;iIyPWima*kuis!`
zycIIt{*){~mM7u-yF{~Q*w{OI`U^IxjYF(9X}k|;k|#5%Bm0Rwu6<CmmaA<GwcJQ&
zKh-MwF{vl|e1PK|`%%ZG4;@;zP83Uo<w^w_Lz8xftrhS#$_Esfs^smX81^K6E@%cD
zI>Q}MbNuaKyC09FJS0=$1e)g@YOhS>#S>IYg~-^zL~m6r?(0$1Eg?(H{gR+pfKP8r
zsWKNfMjhZKi+FgGgi}BIRTqo{&H^v6ilr4{BhS@#O>dy@Wn4*V$6wL2?pu#`8rUT8
ze0Ezu_E@gziEielSV$r+MEX1tnc!(w!59OByEx{bg}C^sL%tO(8^6r58uYu_=iJ(s
zgZt1kG-5DvGkuHm*wi@=nIliiWRwWLy{#=JK6Cdv1*u|`tp$fCk58*>?(75Se$N|F
zopz|4$;8t-TFgn0Iy9|>#(WnB@#Md4rKT>>N`fF|E14v$VglcnwyV77s5Z`hb36r3
zJXbw6Je4UQtcMeao(GF}l`73F$xyp;Nkq{v))5gPGQI8%MGH03F_3eZI(oa(*Wpso
zhY$MR;(gQAR;Mi#RY&4WECwBOsyY|+<?1F~P=^bRg+zq3Qd8SQYtm_+R_Sg8tQueT
zdN9W^Veamm*@~E#JQnFPNm@@a-i*8V@|5=dwwFAU$IteSn!S_FhK@QE#jv|}Fcj5a
z#cV#V^;Ju6nDglRMRyxU1d&x?&k6aktarz032`M)jFNaeJ^9lu4o4@=C=6J_{<g6^
z<4`H#VYZ(v^X>hxJ8=?ins9rJKB`5>sAuQM8w4d{Dm!f2$wtSO<P%M_ygfrm)k2eL
z_^sME&3B>mLz{BJ;>3~X8mTRHOE;AQB@zUow>l{Wj(Qmr1ifdl_Uf-P5jdyj6%&{5
z<Ha+SZP(ea5!re>Qn){y>+}~`p=!>vli^QRRaMg+<*}h<SdAPnj?kFDr@3NDc;o%6
zOV(R9CwOyYg{xoS)4oTP_*)0q`r4i_zA7U0@=3v?Xsjw?+Tk~Ln!ZW18pNcyL5kEC
zo9>Tw*WzJI&psXs!1}5jO^IfBq1k90MEn;n)(san6x4xOP+I-)I9mN~fYBNMy8(8H
zn%EM_5=;lEoW%tJy(S<O*8zfjK(Z1cN0*BDj<6U-yhOw)?8HgOuVJvyDJXB_Vb>ud
z#t>M7bz2zff{YMy;yg-(f|w=SD-mZ%<OV{Xf}w7YOm=$fK^B^7qp|#vggt*dP_8Ec
zUzZ?R7<9Nkkpar$j-ig3UcR5<4P0H^@?8`o<_{-;tBboLQo4OGhOCK(y@|84^K$3$
zflN_8Q4fVXQ+%Em&U!Du8y0^nn&&(MJ$v$@7kqHz_Os?U19}xJE=tgEnF3Efyff3g
z@R?60vM-nE3HE%bK&|Up*Ff731ZOgR>Rqj&r(+$y<sNs5iE|1%eyR|AE)T;VQOi@0
zSU7z|Q<GH`vy3lZ33Ax}4W;H>ER0PmMIkjyRHBGcg*TOO60`b35FP#N9D04PQ6opq
zM=)A_GxMk;N7)+G-Z#;SSnC90jnj^kC%2RZ3e6sSZpLq8|EM;9%l_(4f>KK1?e-(v
zvOF_&W`|Z^`(wSIeuajs2E}gm+sb&L@wMmDhFHL1`;5h+IE!^A@yc%eH<CDS_&*IU
z;zsH`CjTd$N1!VV!2;w)C*v){bz-qpOA%Q5s|W`9KBRlQuMWvzTr>`tMIl8?hZbS8
zvRDW?m?x>?c94!7-5>(1h?J`j%dsygTNwoIUI3cvfHkhY_?*V40W<{TC?2oht9>A0
zvfYpgaJsPl^yL33M}gE+`CY~9H#rJXz|&8k3fPu`6JL1?0fn(e!gOc~aSIb6g>pIw
zD2@<9u2%i>GL(8>w{vJd01X2*TJ1|fc=oqbra%4#NcSO*xIm}=>>XPdZLJgun=7lr
ziRX37oOt7T*GLZE8te9<Vh&0O()qSkQSx+nLNm?(1<6He`p>CUVfuuRS#Rm&Ow*0w
zSY3P>eg2%cgw=T+C+;^~Hw?2xc%GSl<4hj9q)pzM;YD5~la>K_eptR7qJS5_DnQ7*
z=*mB}==5#iu#k^5c4!lVA-HF%e6h0d%49RkhB%YB!b{IC8qeXp>t9ke7o>Y@Vt8u9
z>JG_5hTeqyDM|@P5y<`Cxd+IihVRA0K<9$6GJIcaME^GdubY4I%$y|!@#DCtn?b3r
z*g%yHA)aNmH!ef<Z=msbpy=*?yLI6Ma9e!omIGSv#JKa3N-S+sitd=_K10tc@EYJq
z;UANXOgeUqi_l4yQ_VSx)^%F<Qs^}%4Xe8$Pw~H!1dZIV-W<MqHdlp2)MnVz;fdYM
zN8BqX%k-NUOU_u)W#3Nxmd)Hs<0+E!-s^=T)3wVJIbVC*kJw(*%^bBW#+3gAY3CTF
zyXL4Ne202c*~jwrU5c=&zSpNHtm`$43EvJ%8m!|+SDDl5jPaa#hjD6=U;24!i~iAt
zq#{9IA@b%CI--tD=fy{~DQ3~<B17;w*C1=(w%Gn$7*G^|zctW-JQBY=uWatdTfRE=
z%Ep0kBIH+MYJL5`Af~>8wJ8TeX$Xcngm_>f017~gKr9YCrdCN;0|E^KLbjl|lZYky
zH9$$dlZltTDqjdCo<jun;Ze<Eh|SjO<N$QR2mlwz`BCi!Nym-vp-JOI@f`kEW8njc
zyX7Oza2?`sHWI}Y=IqMA8XDt#{cOYeL&4f4AHlSae!XHRqY(#;OCgRY{VFDYWU^~Z
zONnx0))VU!-KpWSVOE439`g&a3hX&*b>%a2CsWUeFc7ke5G8aE9x)ZDU`w+WWrJ#I
z7_Zw!h#i4c;QGo;nh2Wn<M2PaYxJokaEW<DK~s7gPu`?fUN@LctOD~6Cf{jY??`G=
z&mt-PdGC3m?{W(l6e~1CoH{qI*K~AoICKw`hlQrht#48YJu0uWcpxi&fj`nc=7Jxl
zX;a*JG{fRoc)-3t_5gg|kGo490Qo%bs1a`{Ff6BVJiaY!ms7+BpT@QX>G2#k(UEVa
za{1OEvWkA8d=JksBCackHX4+kksTbenacd)IehB`#f%0Illq4nyf+4t<s{;&qL#}Z
z_RQW=!+BddLI0L}b%>_3%*c6U@S53eb{nY_m7^_*F{L^)hp7|p>c0=Fo+W2A;F+HZ
z$KVn@Y0xY0c_c(p%Ue~(1@}&A>@#QeZ9W^%Od!+XAJB=Io9l6M{9u}E@G8PQ=&;Zv
zceogx0zCxxBStgjL(4N%_8UaXaSG#^TZc{(-d>=`&wtm9rpeG+mVa+z!G-$a;z)i&
zTuWeDQtqJ!{yWohmSL8D2jRSh0ME!t1fZJ!1`JH~WdJ1zsM(U6L~KqVgmy--Sp93G
zNX>&0q(FUiPA(9891B)g8+d{-OMC$#*JbI5y*H7Z;)7_>R2ZF235X#7c7arh1H3`<
z#42)WmPf=T>(?*^rH1EN@BR`%tpEYkcdqvtkEp5NWQ{JRE*EhY85!B}GCeoJW9Hs5
zb@Rey@2#|%TVlqPUoKY~m|ZJ(=8{=FuQ~I^TBCz0z~8T0cX;HSdx6L3o%YYR4kWP>
zI6<><*r%?yl1F6e9izimISXs8u)@7dX_$i`QzMnXA8d#haXs2$ijM3Q=inMWb10nD
zE$-=HWiMF@ef8rTIJuvW-Nor8s8O{gSRkz_@~r3*YWIrI*SgCVZt3tsSn9pVviysq
zw*t`USD~0ne|zo-9V9L#^ad`f55|Wcl5FFNjv(A{S4&$A2dSlfQ~nncZY`v2SG~!`
z?Ha-(D)~hw8`>DJ34gPbVgUhn2}S!Ed@qSQQqGC7P?^X=JaR-3Harr!vIaB+@M51K
zxP_nP9myHEvxNY}^GY(I=5ipM74jkoxjPvYmq(5(;%s0%GVjNw4)Ml$pcyM@+`vKr
zUi7zPrN5Pj1o%F1N9~V_(f6_m(guDJdq2#P&t43}2!nA&E6d9Zs2RT$oh^|d%WEJD
zF09L~*@|Oju#wD9?(NcHIqN|Dwfijh5t>Y!M-8pnW{Hmr@95=v!H+R(8~645oxt_f
z;!&D8Y^pVirA*w;GC9)72(ysH(+N1<W7U;w9Vo!(BOBtJE9E^3ojsb|PRn9psM!9V
zVP1R%J43=`l&D}L@6S-A2s#~6VE{Dz+ge}g02B`9fZvXu6oaoup_p>wQH&OM>fuGK
z6&>|E#4P&5rAkVK^q4K(e#wk=xp<tj_a0_H#m1x{O(b*P5z&CMlYidQEj#f+f9Iog
zL&l(8#0qB|j~7u3+)H4v?4FrT)%uRP`0bPIHsaT9j<!VKD=Iu1HvFEgi?SP@pc~li
z4w35G2|C(6c!LQChPxIeKoyMNCvOkI9kpX*Bf}J)<q?wqI!_yF>^Ek=+MGS)JN$<0
zZL|Ao<5ZHGOv0NAScO_)AKTOA?61(2)<@AJYj~sA0l4#b@QVmKxzd9W99@Y+5qyRt
zxRmlhHhB$aA!RatsfeC2yD+S-F)%eSA)DIqRJxkx2s?$q=v89!m+Q|3`^#2l=BiHa
zq^H|>HXV7{YvOLYWUM0P;Bdd~OmoBl=~?fI%%?>yBQt#KUvJBOKlg27fRy3EE9dpf
zkBec?_+qwluDcL)-HNNVR}_MLiB%zeN>4&~QI{86O@(D!A)!r>TUZjWp+XyL5w4t(
z7iUMA0XZI$r_ckl-^q>_dK?<sGPx}N%<#2~dRmK!k)Rf{V+|d=AztMwZscLx?2<Aa
zp+E=a5tT{Jthd*gXGpm&L`R`%IW!DD!UsU;0S7jc#|CGVK@Zz0N!;Ztk)3}kSG}eA
zFA+UOLKffhHI7YuZhdQS>7@{B@=$u&rw#2l^>1ZT<xl9fy57|E<T%^rUgvCLf5Kg|
ze{6c@`oJOE?|SyH9|%nqS0;euL)zDGDsJexJV}U9TvT%svy9CiY)6pa<m<*su)$GP
z!#gXu9em2l%B+(L1II<}3pXw|U0^mgdsf9VcO-^Ucp&C0nMK&U=7)^qH}V;bUy2yb
z+I!3~I#hVlsX2tdfO#u8+9{NuQ(VIMf{|pqOp7UYs<PGK`x9Z$ko&Q?PlVO6YEl;0
z5<{H7e=++?ajq>?cI>lkb3o+7!!_ej*jjuHnx;kTuKoM<yeR>YcY-v;3v?%*&EqfQ
zEZ0J=u}4M`a~zYT;{=L%)5LMjx%2q3#G%8v#Lu3lnbf@7t`-^imgDmkZ$e-FQD6>E
z6S*nobE~JxU3Vnjw62HSUz?O4qv%kz6j?`+cWON|)(zyy%@sLjahqJe2eUTRXj*uH
zLQvB{#0;;tzx+myskXpNw_(!k<mlGN#io@ReYb6L%bAkAtg%KPhuM5jcN{{*yck&(
z?XK<g?GGH*fjhL6e$X%~(@n}fC0hK1X_8`@*5%eX^T?yOwODAH2#v26B<K9~^9?TA
z3kO(3of2$IN+KNizR5%MTR4->_}`(&d*Mt$K|!S0i8&tmA}ohlT@Zmsu`2%&5y0Cx
zh7df$77Muqb`(GCnL*sNOf<DYXY(FljoPOf21IqpU=W!c#__y@d-+fH5_vJK@W|Ae
z;y<b_<*t!SdqrN_^3DmwR+4R6{r0GHd?N?y_f2gZ_XYEIZ>_-d9@mFT+rICX&VT&+
z`l0IA2ZC+yJ-&>Xjbv87edoAc`~LMv?*F6iEyJp8+Nj}8OLwVsNOyO4cXvydbc%!^
zT@unFNJ$7NEh!)%Dj?lRNK5lxd!yd>qkPY&&yV*w-XCoC?5ifunQP9ObFI}6qs*^N
znI3VIw~Z8wl`PG5TjpTCa>(Lw*hItu0Y`>a-c9PXl@R9?v1A;3Uf=usPkK7yK5#wb
zIcE4+)6RV0xg}rVVpelH@^Ui|o*u&;dtf|@iaw`B>6JKlT`zf=q*x8laPVq@*26C<
z$O9B=#j<pd!)=HIa_rjp8r0^J3s&`I%Llsb2TTTw&eAUWQn6=t?;u3Jp}wYOubCRN
z{RKukEUro^%mgLOw?kxPDG>Gq8j13oHC2PrcOG0HX@r=;Z5sik*w!AAV!<$sh5237
z&9yaKa}UELHJPMRH8Wbxq?ZZ8M+9X$GMZ&spY929W(xPRx&~NV4rcfspPV&22l&*-
zC+t-VWDFy7Ta%5%N2qC<7foQ-MkT26tFoy!sqpC_pvalBIpE{5!1&f&<gcH)cO`kl
zZ`$j(%JGCE>%7a^EM)vBih%DaQ|~ostDNC8q1Z40|4sK?-FiOnO^g;X*Lw1Mrw7E(
zrH9NmMvu|EvwFLrzOp^4uOVt}6i={!6N9I)1FK1J60ZO5$+2Mo%?#IBkMM~_ZT>Yi
zdfnXnFJ=~HL*I$*?xO@(FJii8=Ww@4ILngKrR5GO5y=7Llgb1m$G9Ju*KXiL8Cux>
z@+FJ|e3sAbbgUcmS*Gv%9dVqy1r)DF;vcCScD_iqFgq>2`|9D6RFqo(LuzbRWM8@>
zztL|~-FgZ;93OQ06^tGFGm_Xn?3W(xg+HztGn_}=mK708Krfa>o@AcQ3Z8L;Z6m(l
z-`{iRSr2YK{%lszj2lQ4MocLs-mdlPhd_|1GK^R=GX?H3HDgIb_t%!QJDmAW6nkpf
zO9;`U@p#wN(=`DXYyfKUPiJ6-L##@jV1{8~kBG%WX|HBbLA((k*4hr3Edm?H3|a~v
z<2i>kGIlqqbkA6>U8NzlNq&itq^$X6?bld-X(Dev*F~a(>@6apxxqavY5$h&Nx}I5
z5no0A*u%`1!)W;XyJsgso`K$SXq&-~^+Swk2yCDs03ZmZU}zjLDw*{`meEctzdnek
zRCmdTx=k1*%s*9ZIsYT<vfE}xC}nVp`dT}Vjosp+qN3kDb#-iAr5(oY+9yga4*3Kx
zc<`#ql>+tlH6};dtkyW?zMa7*EJ~oVMb#?~xz0lC555M)J{u+s8N>+bk84TeWW5y3
zM)e9a4tY^`-E{VvNjw_>WBAj`^dI^`vs->c!OdxQ5Qye*&fs#+HbD}lM}~wdtWQaQ
zmhPn}h$h%_qsCu43&jZNwD+_+L_Uz!m8BJZM30y}D!N4<Fz+#BM(fce+~B*Y`1V5Y
zWAJ%H%J@tCU7#{s1Khmna8Ju7ZSwUUUy9X;kducS#SoN%FmPp9hwUg+i`RNBqlh{c
zhAQ6kBfG!VZ5qbqck{@3uhnCvu#Cw`=g*h6lM!~#&ohM}F7Xr^X0Ghhy4O2CXc<07
zwzg%f4J(gQ-Hgwdu0vXZH!o|CZD$k&r-E-LH2IwMk>Teo)hyyXa!@)I$!n77sH;J?
zNl7_O3dcKozC?ck@+SDi_`8t;INpDt96uIY{$gXe@Es&Z25uIS76_7ow_?i45K-8G
z4Q#~;(ZVw;Ou>r^3A1^W0^XZZhxPE(iYBOZi9+{G`IfRNMI=o6gxn5c6qPp07JHVs
zBQ5pyR(i$(8UkVoTo`K!VudP|I@n3l2px}u)}YXH9Y#vTtQCp1e*OmGU6XA~9hQ6*
zh8rvUbj@1ws}pC_3NtwCx>3D6!)?UO+ejd8Z1u9#5DC#d(&3l4m#SjIK4MP2{>W~n
zwl_CGa}cXnntP7b>>lvtBG)Zd`wR0tPaCfgl<;yi!8Nr6Mx6cPKZ7+#{?z(3ftLud
zg(bl)huIq=Om+b!LvA>t$A=b)Bcq~9N|#dr65W(J(-G<<a*)GMNgWqd;(L6@`*n8u
z0gvHf==#(u6FfJX<ISnJCes6s_s3q@@=Xi0q@UY2BD}n%cn@aWeXs2F?8t|6>SC)8
zwTQo7nm{o9cs8P4N`jN!CS9BS9SSXjLlK?2VX=}1>j#YV$28hvEjolovG#3;Z@jt`
z(~~6c=uX$kh`}a6o3Upyrk1F5oMnXx%gVV()YO?d5GbMM*D3Zrmm4PR5<rtrv?R=!
z#T*tT*zwtm$GE8_VQ(rb0Ue1QN+x?>yH3uxYgw3eCZdC+%qt<rsP0j~d&R`FWX4@z
z)IOXkn!E25`70(!9#DofWDhhQ!<C9R!(LP4*E$z}9xfOYCoI<~g3)!SKqt)#=<aYF
zh_4lIc?tb1SWwKh2E4k{AnCQhEh{34Om;@f{?;$h%wJ1OO)lxZoEeozQg@WG7d|UP
zVfm+l4)(A5OpccL4fSu*9v;d~0~4b9G2<ulot>gv&a2s<LoqzCF?j_;L~FZ6JSa!1
z(rMmL-|0)9RM@h4@??{{Uq{t^L)#Paw#Woe`6#o}rO8QRdeIjCE%rLr{##kp=!uUf
z#dHLRVa-YE^WK(OsqXR>cZM>#UQ)K3SF@5tPfw$n_Ku}#UB-NbSrln;rLJ#ZV8P@=
z3C-G9FNfLC?P$>ZoUSKS;~+QqW#wUt(-AiN%7=yDEB4<L%|Ai20jRQH`8!yEpk4?G
z1;F3&{rfNc9bBZ0K-dIWYX-oU{I7_%UkE$^@Z@(u8^;e-nxB9+jvvZ2{{Y%JzRT16
z18BRt4Cuv3`dn;G5dE0nsWbp;3y1>Fk0b2dOaSA;k6$^tfFhIrZ=XNzc=ex$g9$<o
z!NbA?Y;o~$G6B1L-0V!i^ne>+*Z><p3n>7*gP;_^-&t9>m;mqQpPO72ftwq0Igl-0
zK%?sFmj9gd;~OUj6TruCbp=4|0cagveFqpkAj}O+z{=@Wp{{<vDlR(*_;;|-54cKr
z*_i;giSO4zs^RK8kWEe|AoLr|D*~{K07dxmBu?I|s=WGt_4yM+c-3M*hSdLxA-tjl
z0Th=0!KMPTSpbCvpf&bGu!;kq1A+Vj)Fc0ha&bTe#(*Qh`J8|#7$+bi#t8^@aRT60
zPC!zN6S#^K04M^?E`aLTk9%DsEC$G(ae@DU`&|i)0R$00&%Z`o3^*51u>usue%zA>
zcp~Hvc<MFcVZiwi`V!#&zsZ4t$vuFpzYBo@IR;DtFo%Ci3Gj4)e}sGh1qG-%z#l+S
z!9*OatpCyyV+G5IU44M>!wSY`vI5Trgus9k|EXVql?V9o>Vx&)(9Nq(^`q4wgeHJQ
z))ff|&>-v(&?cC#10Vxo=K{}vAqg<R6YMlV5`f^_Pu(j3D$D^HOu$C~>JJVGGY}*J
z5Xk`Lyt)P;{^0njZUuA^j-TRI0PP0{VEW%r1FR4-pMl%}umr%kzaIg}X&~Jid<4v|
z0)f0i5&+8x1dIhq03;)j9tTMP<pGw+uWkUG&&~}V^}t7fU$4LpkOcS!KQamy_4+Aa
z#siESKjq7SXesue8e>3TzY4wu-vG?;0*M8MB!C=zSFZw_0+9HT0|>(laLcPKKt#QM
z%Ar9-y?*MU0p<c+_oKcc5??=c&%h#b>_3Iiz?Q`RQ#uX8_X62(2j_$ps8;r$ifs_S
zm!FbtfOP@Ke&z+JS@xfjX%L2&pPFe9h8LiO-*XLkiR?dB(;y5lKV{RvHh8sY4S71i
z>2kF+dzAuP!><rw4&ZLT&C0-q_|sV#I|s`MJAgC=WW4~TZZ6GAST!j;B-#fCVFt@7
zA}%m+ZfOQT178}bQk%m=c(2u$A9}9Cq>LYSa;dV7&=$gaaoN$;UKIKrb16ok^*cK}
z2Sgz4M@RZT?`8#h%%A3+vriN$M1-Jo2cPMFY|br?8N|owH7XIX>^+hyrFg?7dUZ5*
z_^ZRqG-CKRv^e8BNG%^O1)T&4j-Tt$ANmtNxb5XP<W5aARx*a1VH=poL)BnP6lXA|
z#AdjA;L4v6t<C<C5_{TCi(d}g6FCBF_|`arZdggm%jo2DiDXRX1tFBol)Fo{(<G!p
zLM(99twc1#RoTu_C-l2kU!ggaZ553<?g?JAcmR=t`?cJF8UAUx*}2}cbAn;FU?sL?
zqz6`4?Im)P61t$3t+&BIDcj&=P6P_r^=DaID^*d`c-&X`6=(LjNl)R|JPe0o6O6Y@
zYk92~A{XK3Pfh|4E-xscFlH`d&(IGMzM~0jB<W0lpEv<;x8JM{u=+pGIqS!27VsV`
z0Br_@Y_$O`+p9e^ctq$hRI;CWN9rmvI3X4>W%B<Id^YKfB-w;Y8!4Eveoh!efHdoe
zV%&zdw9oI^1v=1g*#&EV{%J)gzi+X-&vLufg-V?CVXR4Z4qcO&Ax^n=v3PD4Uy_nT
zHyY!nXK`!_;4xdc-$<oiP8B9rvz0h1CJi{ZH8eKRswv=a`lP+@BRxa6EBhtku_DQ1
z<O&jtnfUq0k5sf<`?_lG-}X<}SF&(U!*A)u&x<@ca4?d&mlLV$fTguzI$38{s)Rek
zp=S0$M=@hC$-tvrDZ?>&*U=2U?L5bCu?jWCAtKXkW%^m&Lj}p@m>NUM`Kl`JWil-G
z#Vp%bJ@(OAJ}VPUY|3VLrhOWP>W4$!w_?b4>uX|DyD)gux%)^zrHOBiFcA;n#oeW*
zCFNGYt?uc2j#zXz<?Q|OM&jFpw!LnYwt)t+=9k1|pAh8l!Z*l&KEmlI`vgZ(88lhw
zAh0}_*wudly)r0ucaNs5vL%)SQ%*$qw4&ERnz)yF+Z?Iznr6Aqll+TKliEZ<$4~&1
z(w!&r*b2~Z62-HpBF9Y-r&QN@L65IR$8Q-WAxlIOlkW^GhxEqhV<pV)#8!XQhnHs?
z8Q$ndE6VS1;sq1&<*eKzc5Wp`Y|IumRb94AKJt;5z3<bjt-3;ga(;X&(WKL&dKHe1
zuuPb~Hw-NzU4&&9)~{L&t5O6?n?QJnlh*h&($**BQmcnY&O75#k$`c+e3_Gak85o1
zY2$)itPzR0lX%N~+pIiId7-CTR^n`NvlzpiA5-VlgtmMkv`1%e?pqTH4`r@$d1$3`
z;`H$N3NFHUV_Q-jIq3xr`rfjn8l;s1d6laBr!Q{h$`x;4!UZ7DxJ}L?dJK54UsJW$
zxQt-lvp==?fka`YFu-NB7O(2%x*gmU1g*L-QQy0lE@PUP90pz@it&`<xjDT^WfYVU
z!ZNr)LK^>CFXxDnpP$`t&&AVKC#iAh=}FFLmyKJ&6S;#Dh1_GV?tqmYNe8;*8C&(@
zvnZp|*Nq>)I+47io0&9NRa?^cSB@mssQn<K9YPdjQGyAj1|1o}-xI;0ik=byk}l>Y
z{tO!|Zi~FZ?W!aHmSmA76-#thgfapP&5b|dMI&F_4wR6zaz_#?tBO{!v~)rV%B(LA
zvg;a6?fPUq3M{gmKPw%#I?XFeesvp5*>Qyfp?Rkh@uS#cqe3h6GFz7S1rs;NWp~mC
zpZ50e<35MlCVYw{p2@NAa*`MONTzWWOS+t};i044=he#Rk>%AGnK#Tw#ZfSB)BCP)
z>wO;lT!$-!`-&(Og<xW~CGR1fB-v|(50-_FADGAAZC>MhLfna827k7{V17>?5kzYz
z#X;Eq<WB01EKPF<qqNJDeTSkdG*Stz3t;Z%;7iRvpdoG>mW6%ad=gxMB@++^g1fM7
z`4A(izpo(AU*~8pV3Lsb)jF1FY{Mlj*C2{gl$W!KraGO6=pBDj$Fa;Cnr<`86kT&J
zyhet5HgvNm(5*F0aJ;nSfbKYwj0*ido1A7`@6HUGdT3_4st3?VDyz5@E@~1Zg$l>&
z2a}%;>dlQWFPomME+;mXle~ysQ&}BZ((k7?D$PlyM!nr9+nDp5RxU5kolef4)~&Nd
zu1<XxONq^37G|qe)8HDb22ZnosWaBUU^}k{<~Z!&&<!XvH)J?uiYrL5oB1#MTxque
zN|66QSgm*)3A~vu5cwtyjvc>5uw*6G*>%Pf&g?|9X6?|8cE*DV(L}KR(4l+irMp{D
zeY2He83E-?;spVL^NX>a7e{jp-aK!KyUfneEuo+y8SWcV?!|4)-Wl=l*Dw`rjk5|)
zJU~#>`TiPa6{Pq*Ae7@eJ$d%Opd9*;2+{3(VCYet1d;8l(Tp$8`j>1UTabyPclCmz
z(mYiC&V!OJ*~wQmlC5$G-x3#iJm-bqMJ?pDqu_fbnb)?yXgxI$d^W<v&Y(QmH<hpV
zk*=xhh1weLD@{G)*|&S^p>nCIPt!`>!?<~^UX~b<ZR3yNkwTwxN`R_5BO<usbUya;
z52X-33-8)2@Q@LCV2%blS7P!Tc!cgc#}wxvl2toc{kcNQ?~!1JqFLQzl#ewghM^sq
zX3)O0LzJtnnrsCmV?`@1`*&_5cHB4DhE8ktOL6Ub-pye7h?mf9?-u%bV8_0)mr<a(
zRiTIAMZZrMQ+SFmSLRu8_{)sl?T_jytTnfz>-qOZ&x3EpT2kL~(mE$RwEmoNY*GYg
zOpzJE{pLv?E!v2Z^y}A%t1*W+ai(+~Jo6Ou$IDhfO<Ez7MNk_!eR-~>{RLULi0pSr
zI0t0K;#cGS3(zln6@Z5a&-Q@0H1(gxi!J`E@e*7Yz8jRsgfuL|SY?pSgmfvI1BKt)
zdI3NkI%s$`WX`I3zhf2>_&!u#)9bF;<6;Gt3I6n5!v1m;vbzlKb=W^M{=a}_&k%wU
zP*70bun-)PjnbH7umxaPv9uGC$e6G!SXG*{9L+@|s5}sW?;!3f4rjd(CyZu+=Z|hf
z2L@`w{?>vc5+pQ?jvrG+E=NGb@3#;bU<CechyklY|7l@kMyr(Wvk<iIV8JIitx?n{
zlO`Dm+>se%kN+8NJ|#2Ti_+CLEWHiHoX?4!pCrqkW>L{@(=%Kane=@a_9;VdYB!b3
zSC;d4nnjG}?MiPS7i{#suLyHo+vVN!&gJIrvRDhCX(H0xAn*Zxx2&19u|CYIw5&Ei
zhr;D05A{3uxoP&(CtlftR8wcmFAp>fBaG|rXtAEvz*M2`c5Fqc$9)yzAq>6k7ufjF
zO#0jl^+i#@c=)qo<4790FBJq<qcdy@&jO>&=Tj&M36VZM+2UyoxEGnHk2db+elF+i
zey+(d<yymFc=-nFv?`n8(A=Nlm0%X(NA{1^8hGpGw40xytoDap6>P($6Fd>*MfvF^
zB)_5}@651b7aCsB1?qkaFMcD&b9WXg0OS<$6ma=|q2b|x5WxP@S^g$oyt;Dq%E5p#
zLpJ|ub8f#zG^G8Ph=w2dpo>soq=$#Uv3?1|vrdwE&;m6GEw>kX<Mfgwhrue&k>w#&
z0bF~@CA#@I45zrx?j^d2E-6;KnY5XIYx@b5C9ApRc`hOHlco(B27AW<(6=QhlqVEo
zFqmT7Dlml6SdAvmph2^ss(@BqR1_9<0x8|asvOxYSiJ8+pBkSzD1NV?>qW5td>5wn
zJuvi>5`au(!l^Guq*pJY<?hCOQc@gb|1p7399^CC<sdGMZ5^8<SIe24>4~ADJw}2G
zILaN*bSkfGl^39|dREok`Uy)Y_nCruu*Z^*(X{F3V6Qht&@Oi$i@M)CIzQNhH}egQ
zp^6|9O4bn&e<|+pwzX*f`7_)d=BjCB;kD7P()!kpK^}SNZT+a8TL;5sSv|bQI`Gz>
z!D*V?Yd!|!JAC?ST@3lY1-?$b$NP(uJ>Jw@_mBG#5|E#y#xXldGEi*x`5{Ox^EOg7
zc#>Tja~m%DM?X$HI-YmTtiMyLQ?U>`D|m}yD|Oktr*@HU-T*yv7kyx|(0!Xrx37@<
z$(Li+L+YsUbmb=B9*WQmG~!uw5B?a(Yij%&Z-o_D?fTP^p_*fqomCqczv0Y~+2N4I
zuO=VJzw(*j!Gk?s)&Ju0wp|G0oRMXF1m#``!?4F4ghRbCtGradgleC^)V>6@n_X%L
z0-qP!Gaysei&E>LN`g2Y4;C#VE-ln(OKFC6^k~aVn6897S)Cwr*60@xs2*Y_WTImX
z%)1^eA}vCL7Q{CMt||XDE(IH~7Wk*-PmYJEA3nGPD7CqP)d?QMDwLx@@bLg_RzMzE
za=q!b?yS+`tdR+S#SOxh7R6a4#!1WLvGnn*OY1LRTpN<a$`|vJ8WTzq6nnoK;D;D~
zVBOp8Doxpweug~g#Mtlc3kGUeWL9id6fXKPDi`9sn=B72CPbuHp9)p-05z4|#M;E4
zz%HaHr0HQOhMG(e#v)q_mpOA+dfMV<>a;_wpj^dBWls4~*tV}tgTkM(Jm<Z0$==QN
z0mF@3)I_T9{3Z*Yrt_{v5nFqTS`%Lu@jv~*EhX%Bzkq4>(rF5AJ@vNx%X<^n2)87Q
z+B`}G?J=TF7?z;|iV0Z=ut_4E^a5r{p3Ds9T~oW)MY;XOOLhtX26l*GNOj9$+CIMB
z<_4vsuN3`^d`Y?;to@3KtD+W^Q^#MPd}|SjS4>V?Z<B?88Wl?}t~hS&i>=i?fq)rF
zmu$@>RZ(l+<WvpZ{j>$-6l_{6jhNHH4)#Gij(ZwPLk6;hivEgD6<?KYthn9!h8b*<
z)jeYmLQE!tiI<IANukef*?0<~r2ERGe?mg7{<@Q$Th%7khon#7x}J+mbr&5JsS%v@
z^(}iH=Gn`~Od+T&f<gSKw@J?tCt89MPj7n)?eZVKg8g77PHNm`kkpHDP$zn1g-j7M
zYyLDe7&~>9;m%7AW_o^`kgV4(tTu!Q_0M<kgrT^d@qTBr;ec?1|M~_2IJ^JUTx)@C
zYJgJU0rMA=H9TRlEx6W53-v}52&I7Km!LG8ZZuLISrSG-^xLA}WU1aQq|v?et@Zi0
z&n;W%FFysy;(9lh(0U;SA96P58%OG>)~8cDNgHsldM;|O5=%;b5*S|T{scAU<EzZs
zh}tx&(PUOl76f-0l-ZLXlCE4*Rgyx6#wKTiCBh$si~ddJkxGxi3j+SIcxme%c1d3I
z{s`y>I{Q8rm>OQ}33sToz$4_F%%p>}C{s`ywhuly_7T2txYPWsg`c(n;V9(>EyGfT
zS<g(G(ZdZnm-J^-Ay3QmeQNE8w{zR9&)^269yVWNlmFfy{SgoG7ePB8M!vH$Xb_T5
z%}e(*fjsg898*rn;-L_!;orbUqmZUeaj()JsGh)Yj*;~}sjk=wiF$KC!eS})VOI5J
zpFPL(WrLlx3cGAg0g@dzMJJ9d8CBx$ljXH!Jk)XDY^5F}`E+}?4lrKT0{^9ad2jhq
z?(&!T$GFyWeN~b7LXAn?1p6<;DRZ28BvFEx@<5fSG*xclpig0WtxwuHpdPWo!fX`M
z^;Et0Lo#d_=AxdTtWj7Ube@^To_N@5JR5#~^tM}8Mp}vNjZU9X6^<cNbu2erHpPP}
zt7Xu6+zdGrO!S~ssc>nxkt!+sNcu<AsbTy`GX%kFD)X8JdNzPH{!i^OEUrZkmK7u1
zdYl}HQ6>Y#U0#|<l(u?@=>OzuX!Ne}PZDTP#xw0sZ&=t@VU6?KUP=`{n_rugRYvB^
z3(cNq?UX?m6f)OnP%-EKrd)r!@>TAb`8~3mujUerjHijK^o_FO$8e|m()n*|!Orr8
zM#l?VIHXytblbtaGytiExuEhTTD-YW*M{g9re)?>$A3H28lzegZ4V7~#UkyH^`jFF
z(pc~}(*<-J39(D_Gu&#ja|wOuz&2c`wCAiXl8%LlHyWyn7O8B%Ol>)qaNSVi+cOx^
z`)q>RQDi8SVLUD?K(c*P7|MIS>~|C)2ZYA|mp;u3?6>}D9ex;s@YI23u@UA{ga9IU
z1v=V#Tst^+2#C<rUB%szctCoMg2yT@GnH?3L=hp}Z!uu@5xb87nWB_Yxvkx5+#I4J
zlM8-V`$a^dWGz`@zMc$Tvf;>*UzuuhDWPRC-Go)aJsW!HpiyLTG_&>%5YqB3&}m+>
z``dd2RoK|XmEkqjH=HuMpOR+ndXLu(k4i!{)4Lf|zcW@iV_rhZHO|yGSiokOn*E)l
zh6AEo@JsR8fxY`bEq-DA&p41V2ysQC%&u5T*a|j8E42bx)RSBv82*^C2w$Xt$u_uA
zjzN4Qq;jr%>+H0-x185WpP{O&`XT&1PA*O%%@a*-qL!2~PuBgTyl+iRTUBfBE(2d1
zSDm)cHy3pAPe02)cXw$GM|zvTg?=Nh0_2C4r#cKG98O4t5tm4js;nkgGZ*ut<}bR9
zC0CM#irw1ZW!X-3ufbWfdHs-G>_k}k^x{psUr>%T%?T*PsOk<LD98#i(r{iwre&;R
zJJC;vcdhR>sIGsK`L;5TBvZVA)J?i{Zr}?8<$-&=`j8|;rdb{;%GbNk_5B0OgEQ5S
zjf2zASSqJsQL|}L7r7KJT6OT(+mxD(S1UfU#D<?T?zCIZBvASuB3qR;FpNno=vFSE
z)>mRSd?_`WS#vrjMq0b3TVJyi!umJVsoWpgE5WSKfO9MkhirZ|D+E+7W<YP?WPh?g
zr=|Y^b?QbSOAr7lr({VpMR{P_5qAk=d3HGivSI;XM4<lJaIe!#^kbNVz}9F!_|rfW
zc$LqA7z-;11Pf3w!ZHA86CnqM6v~o?1wd>E^&f?|9f`v(bko2L9-&9y^dxl&B7pzy
zlGq=!{Z6XIah*Ii>tC!n|Jcp~nVJJG8}?OAQ2gq$5$OJZ2ciFP*$6fW0a6Db5dG{j
zDERmifyD}dN6|m%4IK^H4?0LdUJQhwmkEQ@Os_CjBHiED*#^c7`G0TZ>*cHeeB9X_
z2F4u`6cCsTg+VC98>)$4-{vJuU@O``SXBTzB-9?mjbm;{&li!HkMIq(*AQAZ?-XWa
zRQ?&a3=LNjRSl<CD^GGIb$+$AYjwBjBRg4_C_6oCl_hpQV8K?S<2VAPgtZK1jdR%?
z8bptOgoNRYi1FfX<XGU`!Pd^EY7Xr|hItdt@;e!0<CkX?68O3LNFNcy@av&H4d9%T
z7|D#0Np=gjF+)AFZn<Zb<#fF0i?B>)o3lC#O1zElg%D{l{q>s4xyCO5LNfk%RQgx5
z1FJ*dI{?LROdkJ*O6{L!ziL+im2Qf&@a8f&`2M2?1HlI922gEe$Bk>Ue%++|FKDMW
zN1DLsT7+#x?HlhWDJF%2U)~zUz(5D!wKwz%Z#+}z!@-23ua5PMb&Yi<ldOx&I9t)E
z#DJxLh=aVB5j(}$HQw#{bz0|rr^{iRJOA>)&K>^sxGFnFMj@{>x07h%?lo9jrM+jm
zjGw+{qFF1$kH>qr_0z9Vi0ewqk~U&1Q>x8*MNx4?NXYdSIAVM)9U<Mr%EQRV9~=2p
zu31-*BU2)xOLTf8lyav2m6G$z`KJXE@FImYK^IUh#ACNby^KPak)IahF7a;QbV|a8
zU3L$EKHn#5@3M79^~&7Kyaahp*ot3MZ`ZBE1MwJt`XbsKhCp)QXQ@%B4ZUDbV5c!L
zCjkLgLIrnM7BFAzu%>s7FAnisbSTPwpL>}2_{6Qb1E07qM=dy#uoH07<-~4E*P!p*
zcd@s!mG&JYVx?DkPWwo;e*jOiD(CI7k4QY@Q=GgWTkM2Mvv}-+n<4O^wAyDQZRX{-
z{gx-lRK9i1!P_FwR+W>P-11#T!#!fU)F64?hX#Vt;+n}l7kv+NKw@0!J<!VW0fC3!
zIm`)p{^;>F^>Ez;`7hWuYQfMXz{dcnDIDi8U*ivjRIwzGQnRJ4E}CSH4vXfq3p@t=
z3l=tlK_huW1p+EEW4CkPri;Mm%d#P4OfGn)uSE*CvD%1m@WnN%rg&#a=|zZDs7SdR
zQC^JA@9i{(^n21ri!6IZvj~XB=VM^|AYZ6`L5VCL+2*)A5JYF^eM(WpKyzyj`>h@0
zvwqtPZ-=|jpOs17h3U|O_2Y7IK>sAq&bi@5TfeGvbA+b%#R-1*7SXc1+qX0SPupAB
z%{xyC{al-QNf3+;(YYU1xY@vVOK{PoCR)!2dqDXfK{M0Vj$Ko2*G+{1nW8^6pMiuH
zz}H3T0=6v{!=#IiK}=+dVozlXlOIDN7NOx{v#<rNW(wSlO_1*KN-iPz+#q!Wo-dc_
z>67NY<991>6H8Ygkjt&^^5xnqtwm>>`*kqja^?x3Yb#gO(+oS%$PbrEN^4IKcb{&-
zP0e4Vn7PYObm0h^HBizBXfT3UP7&SE)t8k+qZ%~F*tbQ41#z%AtQ==U?k3x%?GMv&
zLuZ8uCE`=Spq~$Skcn`Le8Y}{I&w;rL%u|N%5mshZo1e8TiqGGJ43Yo$V#r<#L1uI
zbv%>3av2r;^u7GJhYrTjVGbDXPjBW~av0M1JTNg{*J#y@L_dP7H6i|;Q;6d_4QW;&
z6zxx|^TRuSw00I0(2)DV2*v0f(wGD-vl5Lc33$ph0t|3vnmERG0i+rlC>F(bnQSZv
zAf3a+Gu_O!^lbB}$Mg#vUTV&8iEhGmrY^5VY(=+*7D=@Q;A}s6wFnN9z8!$Z?Lqp6
z^d4pmNpddF2%{nGCRc7sS#Op2d?cUoQ3Rj%-f$_AKm5#qGL|tivkgWha+gC~=n3LE
zi7ZZbI#vo^-8Ph+QNeX@o@>_X*?>sWKP|W+04f32OyGt{3M)C_nxXjdL7$^y#6k-(
zC=E#Cqo7rxsNil)Jda(@-@r5|s`O0LMWD^|9@%=i5<8`lx_+0bVfkUyIwv=3i{`%U
zfgH2EWBKypK`0jyuChTzas8*ebd3lX7bo6N&Gx+B;^OKDl-K*^I=<EEbB5<hAB4gj
zUk{U!z#EoYq}aWIUpcxE6gB~a8GzS%QC!R&cz6e`R~4owsRm@kuOP2S&%x<pC&Gkh
z@x^_z+cWW)tf0P|+!kST=uQ8=r41I^$E5u>yU*B$5tl?3S}V2HO#|v4+2O0CRp$r7
zHqSCJ-hV-`UNX0mhx0neYh1UHZfQ%-)w`x^UOS!r^F>Z}PJln?CpaG1uHsg|3hZG8
zD;K0?i2nnQS3tQA9514ZA7+!24UQp$gMV-n9-~$HqD_g-EUsUMk{_!VoqDOQKrrn&
zLgJ+;C41T;FtfcBesIYnQ+y(-w9Bm`*9X(FLK2d6*=>SAc^N8maf#YGW^x(0jX=|L
z5eR~txkShTozH-fBuz+N8hl*gT%kaGYl*+J1aka`xZ{tYw7;0xZw^CP0^x=b@sO_=
zQ>}*WH=tSn@z?db2k(x1<9v26y7A~$WEg1_LZ$E7Tt{o{tE@_8vV-C>8ZDdyn?mP@
zdY@SeXzZBYq87m~Mb}92zF?JOFFN0<luB2EFHo`K(8ggJvVfIEoZTTzlgBut(8I&f
z2?{-0pg((eV>*s!v7(140crN|{=KDkt}Rj~N0cYAZM|(u9R~u$ZkipQ58)39+dw=V
zJe>$h{oB{9d|#^~4aA}TX+H}af~@=o&FQMa76BnrMk3q|lW_Jw*M3KLqp&y8uq*37
z_1&7JU&MqECwfX^^Hk~xrRk168DJhvC8SCk)|K;CDvdT$n>1~XGZiZ>oDpzxG0gMN
z@e4kb>auyO?*mBFO1^4-m4~zWfLL8FyK)kP{UyfU_LB#`pbik-MyF_!`ZKoDF5wuR
z9>e$EFsxeowE!#EsFVZgV}d?k)y<er5xCk==$hP6d2941dGMQA9TkrYOq<*|2F*rq
zqatOp-hFg(u+T=hle<HlMMiR$nIFcAr*O`t=rT7_GjJj=<JL>Jd@FLJRIk_>iO#fZ
zmVqF;eZTndf3u1n20-kAz#PeNl{kftI~xJP$U<*);su^W;!x}9642My4B611rTZa0
z37V3pG_bZB)}ifPu7vUZmVL6AGjY^T(pM6DKHN2vdiKVH>QwCI$=p`_OUCfK#@e?B
zE&Fntwwd2mpx>@becHTOxyN0|?AS2n4N`~hzl?7T>)DLFiLsRbI{yy$^9{=f!8ghK
zSVl5fIwf51V{IhzvL!D_q`j9NXB;oKk3)|iT-~0gcM~BCe%m*m)^5fzB(pww^TI0B
z>Coj7*~O*!E8*k&2eQIuCS0AZe$npYDDM6!_6q3|Y_6;xShAXT;x&MOcj*#7YEW^i
zP;pk?DkFQt6e<*$_)f2Ro|!eT{+bm_U~%%A-P=FkqX_%)MyN8-ndp+<HUMSvv|%bT
zgptlcBhn#Bz$M|3u9AP$Xh?C2qd$VTUnAdTsjd!|fL7H}er)J{ak0Da#n*<Zv|XHL
zraRvYOVYJGo&={X&65$9e|o37STP{f(sUO&JL7fpn@_1Pr4yOU2c7MAsiq&fxLbdr
z!cs*bbhu>CBPJyWVQOupEWL{osD^n`oxG}Z!fM5CN4hn7U$Ilmp3D-v3e%h9)<e=p
zC;B)P!T!*%&tdhvUt)D5d}-<!?9q>ZgK6$0g(Yp^tFHI*OIOBFk*aX$VoapTOvD42
z+H^sO%U8+#9P4O`pM~w)o3b!2urm?-`E^S-HL~oo>fV$c*wws$Hi2{?tMW<j>AL;X
zyY_cI*20_FDEu|$m};;`9;o$uJCqOLoAx$c^InGNPyTA-f5A#SkZ?t?Dh+TJ352*o
zP1#pTm5OMvT&Y+WhUIy<a>UMKGBAd$-(#nR#!F$cAUPwn>b+!l59LXb$=okPDSJaP
zt}j&OhCvb8t!a60k;A+iZ)L2XthyJ^mDd>Eeq>34A>*0-a|!*yBC*j!xH-y;$X82E
z2z;$E#q0VPkJMy&qmDy;s4$bZkYl*rq2S=}6CRQJAtAZ@H{v!0Nn^{lR>K!9P)QQ2
zT!2WnPmIql=xgB=jp_V6D!F)d0-WG;p4mt}PFvP~`fS{8<nb%V;4O(-GJ&^VolXxh
zq1}Fe^Fm}gf2lN9V8QcG2U&J@fVK#{y$A#Y7cC<#e-GZKwn8GsB*kY){4RG?ZerF|
z_!SCgdF0!^CJil};?l@HBxfy_#gTie5kUNR#L}+2DgfY*GY3KOvmB#Ku!PD6u;`+b
zk6*&bE?<)F3R54$6fC1lEYZl~zaS>qzr36!|L$aK$>t?pQ?P4h`|JR6=uZpgKddO%
z$$|lzrPYOfv4)v|J(ePEY)A;e*O*`p8!)uLjD+Q_?*mj{kK!!x3m48Jgh}BiDr~Ka
z65VH>porUaWLI#ZJe{j@V=kW=HYj?%y}f~!f7emG#chD9$z#9^7mQvraH|(W&$|0)
zt{i!@=~gUMtCL8+7=uJiJr*YBogfJdy~pH?k8v3oC&ZY!irGQrUXhRU0QsJkr1VU@
z^3?ZzIOTUEH<3f%20Bl3yI}fZ_ES19NS!P{Zs{R?b!-8@sgN!*0VnE-eujHf535F|
za9ryB^CDfvQqJkSehhjRA2(#HErB7@&O|YIf3X_Fnk-l(M#H_X)C4aWO}|HM;1$!X
zD9^$R$qUSbxA*#!&2UObqqOr9aL#(q?rfR4b8o@;yPsZH`Panm{EgB;Onj5leG!cA
zaC^}gsIjfDgP=Q!ttDNv|Mj{V5S$P~iWQL+C0Gf4h;a*X?&XHxxwREO)A~($6ff1e
z@^+utisZ{}vTe)AgJfN!>GRx!PKpP!5A~Z5C4Iw<pUgNl^Gq6>FFm9X($o<;J&XX+
zO3psbk8F7qp#&n#N9d83rpO?VaDlh6k~td1;AwuhwrC~UCrT(O+u4I7*m8NllQCj2
zfr|1O#YSz2j6v%M?NzIe0*nR_B5KZnjdglhy16y+RHN;K1|D0z3+YmmXKwU01-%Sx
zoS*g$Y$r|FaP|B3>x+BfCD~~u7MUY1%=Fr_SefE@q(f0clVxu`uU^yiAoj>stC))!
z;KSU~8Kr*hG*z={__2aqv2k!}rsksU60~-{?sSdyU+1F$aeIGi{Y^tnfSwev#B>8S
zM1TKA<DG~NmCx=~WF#2q!R}vF*lLORYdA7o&TIm3ghQm!LnsH&VLHWM9f+LdVvF5N
zrQTy$h#)DaH*`MiabopXV_VMK;W2t0F!X}*vR_szz;_^l`QF*Nhu@u+$qF9omgUs6
ze3<0B*)f=orwWRrLn8dcZP3}&*^+Pv5-^PJ_jZKBIZ>Q3G@0#e_{O5@Fo_scw9)7Z
zBsg1*Mzd^k984+r_H|otYB^)zjtXu_ypO_bgf|P|eQp|L9l6XL*nj!N<LL69t@;SI
zAqdOxy~{Nfc8v$Z2B3TXw8F}UAw>KL+q!5d_KDIxuY;)PWb$H=R}hOZYF=OfGbEK7
zC1S?d7qOKliDnHRLayQDI)pcbUyLg(x4h@NV;GKG=Vf57Z+b6Exz@jS;4$9Xj>3#U
z^O&O3TYmeGb+7X*^$$NCT^#P%za1EW`&c(Q?;rCabn~T+6o>~JJHm~HfA(_$=us{`
zT{RX?g+gC(5Js}@4$_TyL|Yut#gpi}8MBLD$*7d}8aN1I+&4{UX+TVJ6Cq|JTLQAl
za3$sf>@HI<*}9vEfh?C6g^Nbc)hutm7KBYXwP$;g$_JY{%ZsZ}uf2z|)*(RViy;?f
zMdaNq$hF!hO4eCRS`%?a<LIFcey_X4CQO`8c~5}Hcl@*dDcp^3OJToP_J7D>es^-%
z{{rzI1D4(b=!owCbi^6A!F0rG7BHy)VveH~AyqXcVU!-HC{V!k_A=kYuYrqCR^Hw7
z3dsI6VEWm$6P0B2b$Nr}{ON?ycu|{G=cbF=7V&1$%Oy_k7{+&14sS0)jI)hN>>C;c
zmL^j4o1Zl_)}E(C_P~xPTeJpJu|bFRpw#oKt9mYK?2dY~L657WwV`Uv5<tH~WK)X4
z)RFSkZAaQgk3KT)fx6MKx+zZf_#yc;c0?nUTG<wJqiTF4O>`YO*(WVZoN2{YL|iB@
z3d%$l@>klVWjTWp!78rpG{qa(l<&D~TD^tmbK0@CW>yc$jfh4JmZ^3lWaE1+nlVa^
zBwK?-H+$3qdvPm>ZB@9}Mcn(oa7Yz3clc+Hyv#urAC<-k?ae+o><a)rFhD!JrX{Y4
zE@A^<gnw-IBURvW0^TGYEm;5TMl-&RW!S`^hUjAvL7d05;%iA3{c%H%ZM*r$s%JL{
zIn#JvT!=V0=ZHHEA>65dPb8Q4lwl!_JwPK<Xis5BYdAPzl*&9?(WQF)y}+G@WlE~!
z<q^ugdly0%8#05!M!N9^+fV0@9`3?Pw@Yh;Ak|Q9vqo*XL7`U83gp1!(!@xomA`vP
z)946i^QJc|_&^|2bTd7u5(`gxYp7j42)oPnj8G?*exw6;jr=(R42<C+Yw?FeL`MS^
z*VaY&$KmD@F#7~u(@)Ro+XBh;><3LO8&A$zYx->^wcDZFu89}CPJ9)t?Ea_Krx_1$
zAhH0Q{s1X~;v*Ad&<olZ!F?kyWC}z=fQ2ANVBTMxl^>RIbYo4%)ceRBK~!x~c8BEh
zSon17_1A$x_vPoDryuw6mm4&lO4hestWVzhx%y~^i*lkDt!uc2zAGVg9Oyn>d1!}r
zPrFESU|68e>RZ8sd@?$3a)A_>X*l*+3EbJpFCwpJdlI{HZ#|2WV4#ptePd20E|7w#
zj>y{Z>;(OZiGP#i7^&5El<KnGc&j4kJ3`Uhm1##%=4~&Ex|yi<LI#3@kf}ntP*zYf
zv3Zv*5>zicGhJ8H6WrsSWht<{#=lZ}7?Vqyq%v}X<Rh$f`k;N{k?~wSZ!_dTF;lmB
zH*oRM`h-1v=6TB!eT2|Ms#df?@~AUuR?CY}M=OH=L$x8+;!M1eyj19MtSK=s(x{zz
ziS&#0N!{diQDQ<#xwPVS(Wz1riD$6E*I4+qzS*CzBE%$sR}pX|jb&I_2F`-Lg>%Mn
z#%XQ@d%%I!Dj2lvY;$e0&TIVSgvczTOv}Fx%wpko;<(K!vANAO>3+JS*g;=@TtDy8
zIY29{b=di_HiF)9aAdHfddj`-^+IFaQgTn-M)~pP!Fg{=Mh0@ZeZ!JrXQ}UJhx8s3
z<=y=>%Yh(~644Lj76g`ei#*BOB{~&Kc$9hJ*~kLyMU>*qzluab`wR^+u^yTR+d{QR
z&&*xMY-1COT_Q~6cnYh|f<kAp+=Wt|@8^gkbA-6@wmgwBtP^?y3&$dc-3DSt6G4(y
z!1NCYE@Gr^?&vmnffH*)pPHVwwYuo(QW-SdgYG;LO8SN`N<(SAmbz@{NXImru3s`W
zm3^a@#O0QMZG@6V64^Q2aB07+1v9_zU13nRBgXHPvj2e@_!H6tK(+Z7(gPMAK&BRg
zr)OgM@%<Ol18!1A03pu`5FY^BLjNo20Xy%%Reah0MSAc<v-cm;gYS~P5V2^mN-&@t
z{T+b)FVX|ZWq^-`q|eU91o2XTumS*BeK0Ed`>$L8il3YGfBXD#$E*LmyiCA;5Wp9}
zNy^I!=1X89<>3PV#KXn}<PU%+GXbL%fbZpD0%C!{*KqTKPh(}{0A~UG0}n4aYb>O^
z+)NN`H7_7Qe0AhM9|h(`U<2Qp<$KNn3IzZF%n95XfZtzz2W|yM4>Pg-$0=9EhWrdb
zyCHP|AfB0kG4<-QtBSb#&O*uw$udBf06?d~qzMqN2H-(lyi7oN9q@3-|Ete`C=MX)
z^TWOUuM`LD{}%`i0N^`-_XnVc0E@v7S^_Yc!4;tafNEzY<!1YN<Qh@~;A(F0-+vMt
z089aZjug*7bO<~E!2$qb2iOjNJcS2LdcXmYT>Sin7oZ;iu(P~e|NQd*3<UzDi~VR-
z2n_`U%MHe<1FQ!e5STC|0VW^-dqR)|0B(nLK1c#!J%B8IfD>TW1AsE)>NH^0nF9!b
z{hk0=4*;UN?+JkQ074i7xdvc8fJ|c{3E-hz;2r=;01y4Hr46CA;NSwAC-?|pj2sY5
zFeCw-28>hRj{xKdY**lVur&aQAJ+hp&KwY)6!0~GeO!UBAPFEl5O5D90lwRhTm$C8
z0RfbNj{uf&1#5sLfbu{>_#p|P2#|gYP5`EG1?Gn&fExhu2v>On$O1Tkz@YC5Aa9Tm
zSMX_IJ_HV6yuCUE=0o6sjL=udz>oToBQPJrRUFyXG4PYY<IhzJcr+x4=PCu11QPgi
zl>#0Pp<=m80Z)f?c1Q}~nc#qoURNpL=|JOuzbC+lzya{B{73=MgA86*XM&&iqfr3{
z4j}b2FMu6gZNXff2{xG@Z3K{U0I46f0)EGEK-PW#E!fTh;n?_LncqDdj=vDHTuO$-
zu68r;n)Jd1z|7+ZaY>4qkztWw5yhF9i72%8fI@0}^A7-pMM8E7u6rv5&0-Ic=#%pn
zSNKo23}$9JRb9MXH;T&B8bj0Rt@ahB)J=^PRdH<6x<t8zo71Wr(kFR2(tB}r`z-=C
zr)Pw+2NpM$C+D`qUUhq;TLsJo1?q0^PdvmCv)QSAXA<Az#rIgO7zz(I3enKpb#PR?
zOCvsaKSzK$c45`%E;*5yI58@=(!zMzfj}9>h~XBmUWbd1K|~&-Ia>0Hq}dBxOKbBB
z5S9O;3+Bl-$7s7s<ehKS3Dh@J-*gIE>OS36F$eAM4*N=SVJ;`AyNG)|31Lr;tjx1h
zfJ@w=#Vv}HIZYx^t&@_ABQN1rU-qDzyER@0Ym^k8^i}R5o5LHY8{B61zIYaF$F8jy
zo_rom4b1O6K|GG!z(>-Tt;qVw`Na~!K1XxKqG_Y#d1yt=7pV`uN}6RGW>bA=pJFxw
zKFe5E%0Ih#tVSoND_<)rCkKmrBRPa7en1EMhKIV~jivWQH#BP)Z*=zG!m!h0B%@`7
zJ^n;5Tuc)?5iq3a$@p26mR5?Z2uCweL1_AhdHPP>>PS4QS>jp>;;z6`L8B=p6Q-5r
zkABc*ob|%j%uTOZrC|p~qCa&XYQF<1)jcAT0LIZ4P>m+sq+<Ld@jMtT1(a246AMtA
z+^ZeEDX*B<P~4uyELDkzA)qM<g!R(Iv5QNZw_hrSLa-jq<%C!w-jS~_9nIGp71C`d
zFP{`D*36H(t20`{^UYS11AqH$-?bv@!xF7ViB5+i+>#XMT?{dT4ap<dH}4|wT;zP)
zH)|g8u-Um^#10=R+~U%gUb=1id6-&AT6MmaM+KKIUbVlTq&vEFDN|&lo-kRq>JpBz
z_VdHs_*_{m906I8S6Qmx*x`dOV?D*rr#6B%qlI|8%)3e-$~=V9b=44^hjvBj8I;_y
zaHxTOYIr<I)Ziw)w@GEmGl4U8-yv#Pb`9$d&MV>Jt&T&4!?uUd^d%ZEVhP=(hz*+;
za(u-n_HUV1_OEj_QIZ%nWjU;fr^ZZEQ08Y66CA5$&f=RNRq60Cy4-`2Nv8Tt)*&KR
zTrFkzjJdVh?wZI;2-(grJ)9jFME<nRvc9if5H&<Bb^$VOpj`@4F-u!rN;OhZ$>2I@
zIV6mlb-@W@2rb%T8@uQ02wb)Mg_KVO7rf0^JO+-bG@PNVIctb&w71nt?|tA3s0v|{
z%AOf5(O#mciJ@~ke?fQ3e*{p`X)b-axM`<ZKKJZ_UH%E@4KlV&*jQ+ncR>*dC(FbJ
z(WF}fI=4~KlIH!~al}sgqhEMSC3E1iKH@qig74^Hm+z!`gh-u2_=1p<Uj8<=v+2k%
z$~a~bEZjHBfS|}(rM3s^)Rl<aIL??1gmZSCm#s`8WI@Nbq9~$UM5I{|cW0qZt;hOo
zk~cR9Q{h4_62EeWSjHh#$ffj3SBNrxX}cTeSB0OOHy){ixyF2w>b`T^XTCgZRzUF^
zcO`Nj`r1cBdtV{YdP#<nV6l^_75z1VP!I~CU)qB0FIG7>-+vFxmiZwdE~T=OH;X<d
zI@Bu)j)WRkEROvML}t4`*YTk)`Vd8gLv;IQ&(0DPSujOA<^eU|Si*aUd>fv6tV%fT
zp8Ib4r6aB|g6KymhERS5BdtxWTlc~_x2FqY*#uh~1ZqG|LH#*tmZ7WMRsn6EZCXp0
zFGyw_FyI;-@@QTvCoQHZ7WGT%QSjMj#82Yd=tHfm6+4t}S#QxuPjsJAv30?{eUW~A
zo9+&CGc0=Pdd!`t6VE5tZYc@58#K74f6&fV*Y4cD)iD%GYXGJ0xDfdJfOD<pJuuh!
zQ{&xCY6D=V7!Txm;`+m+O^ifx$Dj8_S{P#Urmgmdjwkx;=M3-d+6Y9&w#LWYci}55
zcy5ofV?j>2DgF7_dR3v6-T(C)lvJ-89g~2Nr`AU~bA-Dn1EsZ|Zr_wE>ByQo1w!`$
z;X6H}x%Ic7DGEy0-4?%cPTTf#sg$dRjg|!6>_o?O69b5-zCIFn<m+bTUaYr)$(vyN
z7Dixi`-xtQtpw4(Mo!YK|A7FGnp1izJoy`gNF%D}5_!|s=9WZn@~nv7++HD;=WfG#
zL-`FRoT5k;4b6=+{6pG$OPAZ_z1YA>YhnCh(XH18_Y%F8r6y4h7VLT}N}X!IX(lFX
zm)2@`#AtsGO-=L6inq5XwYaC~^;tqIjn~Dxk0o|Oyr=(>MME(zm(W}f8hXRgimrV*
zV}ngVud`}9svk7ThuNBIn&g@|R<^&`r`jC(E>R?dK=x4DMrro0s$LfCWzbJKcSDER
zWgv{|4w@&;xnG6mkYd~L+(IgB0<CH3_?M_V4v9JRrqUmUzVcKyS?lXRubYh38KAPM
zzL`N=YC|4=?$S{rOce3Xjt1HIHI=kD8Ny=&#UNHDxw|4}WiZcbP0c*s^Hd*VE#inj
zv7_k;8!SUz?T3oSKi}f?_X_xyB2aedq=888*1|Cu4HuuG#it=#v26VK{5(tKn3v>j
zeuT9j0xS(2$2AoLo^$@%xq;dIAKU6k6`%x(5i|!xKLe@&P548LaeA3Znr%O$pUWqt
z_f-90yU_}(WYHxhRc;%+UJ6A<guRG(OeYb>Xpd2cDC^-YTKRybqz)<a$i6v*5{|cx
z1)7(|H*O8%WyTbi1=|<$;ElN?l>yStT#P)71Ha<EqAlbm{1bF|^sbHI58wEnzxA<i
z?Rs8*P@68c%H7ob?Hh9F26vb4l%)L$&6BB&fc=4y2MObg=zMOj>%#*MGIze(cl4bn
zo~M13zLniz%A8_gG-#>SJ)~@kg3nTla!n*2gca?Vnqmc<nm?|ow?Ivapuo?Dett1Y
zk#=XBsYZ*BXcTFhbajyw92dK~QF;*X2O_IWeI8Q1PqG^?Tu@}o+7YC2Xl_KI8hj^&
zUPBynH`}QjnFH|*trY9bZnf<x=d@ES`;k?(2=vT+Hp^|&TAP!x!9^aAJgH>KQoaLP
zJ-qx?p0{TMFDD|I^Dp!BFU>7_E85xG@PsZ}?d-0xhijr<!Te-@TFRLBK=>xGRP8KH
z$l$$0F{Ui?SgY9m1rTwF@H67D)4xU_ili++ym;BKnPRD;SmOYnf99UnMEOa6XI0iX
z?rY`cy07?$&DzR#yy0PlMyX}5q-&>3wkDWXO8A-ImV7oEOI`Vd@S%)Z*`cB_rfF?+
zL(73%>xSvBQj&J!Uc?aZCn|&pxa~+^2hlEl(iDUnPhSwsPOCV|iyavvK2iyv@*R$@
zRj;X}r*wa-^9r8m%Op|{0=tGp=$&m|K0Z0u$k}hurP8t85-1)7#BdLY$OEJ<ppS*U
z7zFNj<OZF9a#gn0b~v9wR|JNnvjm8jIAfcIJ;9*cy&v52Cf2EXs|MSqXi@d?9UCUD
z$(3UC%7ye0DOJUewFmDRpHe;Le2N-&KYzUaj@06Ot3Ur%K2fjjfNh7Z_DK0CEcBpM
zL=^mcry*`E3-VPNmf%_VkZ$pfXYeX_K@M4hQF!mSPg8<(5cmq)0+9r4y0@bhYzP?1
zdYy()I-F77^|X**KzY<@YJVXbTz`7a793=m=@&BwySsndz+p*Oz7vsm#3E!iT##E6
zMyp1PMflTo;`QecmLn!Je?Ye^w1Hfh>lG0&n049A|HNN6dl28#O8aoJ-zf9*i_Fid
zBd;?)U|kHFG@E?h%h3H)<W*T(Nb9)WLi<Jk^mymMF6v+^nNhK-Dz-37Fx|&IS#9E5
zl=MOq#nALAkt+ORK5JUr=+UFe+dMhue6uJ*bO=@VQ#2S)<`cSxeJHh{kxxpHEU>W3
zNF(k`xRIjKBG@YKDv0MKExM(#TL!*AEItUTq3NE2kD!yvp`;s(q0uC>BK|<>p*9;o
zAyTz0Oq1IR14n^yp8{1n6z64+1P^`#brg+m$%5L@COIs3j%aj~N(6iSqcQbC%9yH$
zSmS87rCrrxw8S<gtQ0I192Le$;!?0S<1=!!TzQqIaMsAwq&}0nM8@;rQwojy&$C^~
zZ#s><U-YYYpYB{=c{wRf8;^`zLZg-^8a6oSo2wNzJ<vGzbdBkdcI9D-AM>-g`dg_D
zyA17&Guu<$;bhcAGZ9kLsD7d+W3xLtVk?i=CnhtTf*JF#Yk2T7!7mNZ2CQ5BX~R#A
z@B_OjIB-Le1`<9osU{UcZ|3t=bZ^4{i`)5Dcor%@B0oVRY1n<8MBfZVxV#13_(xgu
zCwq^krY~{_9L}OB)+d9T+;(Xs9Ty_@j@A!FQwlA#>w2j8AHGdUUO7BoTQYjF)EViK
zP_|K9eH@cS|7uK2C+C47RZ`vvp>1D(k9zP;&tw%lDcV9>b_(S%LVr=jLLop*vv8l^
zV!BuxIR2`lm{^Wargjuwj&@4rZjVay1L&_Mc|J62#dvBOjlu5XWn|*VkLTZNXrRZK
zsvy(ap@iPFLCLTvW<@b0fh~E;NAtj;u$X}BSuh7~2la<I>rZecPag=6#u}ap7kKv>
z%PGk>Bst+fHM72E1ijAP{0kM>5APM_-mnnB&&uG1+56mIhMuquH@%Gky>P>mY_+eG
z^aeO4W|nSq*e8iN_br3m{I|rO*`6HvS3Zv~hQ9h|XnL?2ucjNVE$BV@*jTcBQl-Xh
zr`z!bWf0$Qb56JHmge*q%d$Rs18qyULa^9{MnkjEr(`;AAN{rQEITf}No0XXd^@5&
ze8X5MCav^Pvrus4Jn><qAg?1q1w<xOg;nfESj;(WgZ8)~$yr9&)FF!JbM);<jkuVx
zmw@^XG)h>o`u2uam#PDC_{*-2F_!!=Eu_rpc3r6*vDF0Vdph`9L0@y!Sg5`{42@o@
z+ZJd8F_>dmhv*R>tt0szaMueeM4urXwUC~{k4P>G<=w!1@CBh}-+UtkTku98#yOLT
zMM*HGxXn`nd48$1N9sf^D*LR~@P0-@ltb#<)z**57A5%KAx9?4fgHt)Z++Zhcm3kO
zI4u!e`g+pMNO$t#Hi1)HmZ185f@dhtbj7_(9!gCWD?|6W5?#}n*90tpmks~4)0B-u
zMoZAF1R=S1FU1>XkS&daY1Dtb4ygiw*C8g%Ew2rXrFs&6S~@z?;oOt?G3%9$J<|sM
z?A7?}wJbsZ%8IwH&z<BvDy-D)iRShsrVVGF9joEu`*3M?BG#6gd6$s<AL8Bw916F4
zAD=PI*q7|tv+rZyjWzqeCN!Z!Swf<e89UjsgrW#Vt0hXQ2t~=33N4moOJ%9-=J(8?
zKGnRRm-qX>uK(3_O_rH4=UL8ko^$SV-#q7i?PO4DUBzN7ixu64;#JOLaVL*(v`E7|
z^%OAf0+5cFEXXy=LzFS3T){qf-cY`g6eC-1_w+YEVf_SF@+@H}_*+DymDfmi%;Rs_
z9k~*;X_ns-?K9G56xgL{TdyFFXqSm5C!gLeeO7%sV1}8k-ffS)Z-g?mza{kJZo3sH
zMM^dF;o9$MW?G#m+3XW4u5pIkw#*z%sb_6ZBexaz(or$usymh0NK)%$q<G~t4J1Ua
z;zEhx57<EAYqhJoN5V+zZhk)1de{Eq<EyJ;qo^P40g>J<eGf|)wS9FL6nnLM?TfX|
z`VL4^$VLt+M87pyWul|3sypFmT}(gxsd+){Ssf2tRN=<sgu7Eg&S-`#%Td<xXPD#*
z61mAmZ+Q=g@9MDY`tjOC`CV60a@K_N36fHYQS@KaPDllBxXR6x(d7RwqbU%mZb20X
zl+o6|{=JMQ2dZdtpcVwEi$Tuwe=VcQ|5iqm0VL)d+~L5r6B4t(%4i$pyZ_)0U#H;x
zM;VRqGGII9ZcvK?Y3F}`{Ig26@x2V-(k5`@Zv0@Y|F8YowO8TGX}}hI4NL~q+J1kl
zjh}%E79rWKBqIfQw|>>82uA-tmm4EODXr(VfB(LKeZKDd0(p1i$+L+QX!8R8?2Q@^
zfgby}+7f}#T8UTXSG5UzCVbwWKn(x$h3mZ5^1zB;?*^Ew!888@eKnw}{^v6ZB-V<*
zu~ZYLZ^Jn7;Q=T323aw_+yc7i*K+gta?4NdW{_Q%CzK!Y*>^n2^iS?)P`Hu*$=wW+
z>}!d3{L=ulvHVY(YrJLhgbW=ae-C)A<q0{WwQN5A-G65D0o+LbC($&a3b4*J{m&Ig
z<O+(XZ{Dnrm6Pq3E3+kV@94^r@yo6C7VG}Wy%R%}dq-F51n5c8C5t39rKrR#f`2#!
zFMZ<~cP)6&@H+Tay+H*2mzR(ykW_Ds{zezc7O0Ko6ke~(+}i*xQrOz(X8f}`HrtUH
z=Nss+abdc+(Hy%9gTi32IB+pp1tMKIcQlUf66leJ*!-ZY%UDJrn{Y7Ga$S)T6#WE`
zY|}gs&r2=#=;x+PZwk!aaFLVFB_9f0u_4sMW~rBP1*A}<)}6J^+J3SSVs;a`Bg%mK
z+omV1yju>5?;`?acY(hQr^k22%cKR?<f_+vYhX4_#J3RryAC-HJHP{zZK2ks#(~bE
zZK8BS3o?d3;JmxArm~pEa9+dx^b0tYDg}dq6~)Wl_45#OStO5^aPMiuRX8bl_9tzD
zSsXkyWmS$heZ5IMK+l)RwV1#;{>N0y0=K<clk<QS6#iN~(C<P1c1YpeS2F8e_1+ci
zT}(rK9j5F$m#f`l&yZHs0Gi=x{*c=G>jBnLJo)6`;_t!U<?Ysx;Heo-7(J8s;pxo1
zV(9?ESR2VNIkzpGlssrBjb(S!q<aO2Eoz3R?s}+RE?7BO_;DulEDdY{!<-r#ejj4<
z^*A(vZ^^EYw#st?5sjX?Too~%Z@0}g+c1vbX3_Av*7y#e0oj10dC01MfuvBM9_w!7
z?s!dW0fDq<Jz<*3X>b$wiH@ml4!qk~yPkjh@b;5_JJ9}u2h$!oN@QCQxoCj$=BCF=
zPWJU0y&K$(-{$A?;Qx~gk&T_$zW9v`5r@O@j)YSOY59LzU(m*3`VmAvF_Dm67C7b2
z&aPdDj5moDnBDMRx4mbN!txmB-=`fZ<dtB9_3lWuWl0k=%F(eZ3-lXdJe8rM^Mic1
zQ`|Y3)X7@x;D-yM@R3(EG48=({CO$Lfy-yQ(q>F6?mhlA^gZ&DV6Vz3doLm<O_C?{
zeqU{Rp60v5#=(zIWxS)xl=GEN^)8Mok@FSj^<8<`&u#c4Z;t{xp{*T0CYmCQzNnsy
zz25a~aOXW;+k>Z!oqFetiWRD`ieAUC(_Y)y@@`}A$QRsGy)|XLVDeD*A#UM?R?$-0
z`Edl>t&Gb=#)wEHyd?q%g)TXH>$Od9Lgv1%PtR!cCl^LGv044y+fCqL^$4bl`c)_{
z7LZ*aT6w%N0v}>2d0VCi5pl~<J`|>z(pdl&=fQ^FHkLytBCt+vp(Eku^S5OLU4TFK
z_EuVK?Vb`kTA~LTPSwdDk7}iOD{$3_J&xh6P6yyV>+aI&R8;|$ruV%2w3?M89UUhT
zexpYh4p~|1<fuDXo_V3t#BsM~QtvXixx+Q}K8+fczN+Pm-#L!Gy})|wWw4QG-&tBw
zL4$7!&^ZW03M8f``i{67-xsn%y@sq3=Avb*8Hf!_t4L*cQD@Y5)zt=chGSZXVXGf)
z%pOi5YEJ);hhurvt{S@#F&uwP|7rLZT5RQHy5*F>ltT70B8_E+#fD`S5i|A9sd_)P
z1j>Po0KziEr2mCOK~af(rb)kO-LCpnlYdgY;}C#=k+j}I$|@X##m(Y)sDZvb4z`U3
z$1#sX_V5hg>UnXHk|-Y2Fvzw^^bq1OsUspP1R^uR)7*ih#<9=0M@o3ZceOxn<*q9c
zRKIpIA!06(8h{MIkZg9B|9@gG7K>d8hsoAkTF~+VweV%!p8h(#z3^2Yt-@g*<f>m8
zstzKs9b-H(*cc8UiaQ3+rp<@)7P4u_$VMiP;^?Z!5DmES?<lrmR5xye?^HO#Rf34c
z#3CzzliRGt`mOlnK1lgEsFJ?#vKU(;d2va9jH!gVbt7jj5_C{g@<N)$SaxYUlPK+h
zJ9Ce&PuRIwYl~fBDph!A9Cp#$O=?7$?lqzs{xRM*GJth=#(s;huSb(BG!B*M^>(Vf
zckT!xRn>aLSk$UW)%Vdg<g@inA5~gKc7!2`bT$rxmg(W~DQM^VmJ`bx!S>-YVn1Sm
z^o~MEqja*fo(d70iP2Ypd(38SmXm$8*5pj$<_`OH`ULXwwEly#hb`y7vq-aL<7AM{
zI6rg=E*vxca2YlduC;8i3SFXO8$s2rMq;5{VB(?4<t;W5SaYnql!L_$Eh)%rHDe;~
zmmoXx$6l2M%1@g$%OzO@-wq$mV~kzvhR0OhXJL71Y?SJc)w{wJmrzs$Ij#7f!@u}G
z_GX#2ls1%mf1a(E=JVF2&O1MTB%9n=xOAnr%K3I}=~$$5;p?<_D@MnTUk)`0etv^*
zspM$IJI3%6U#dMu+o^6eODz-+&1Bvcgx!IMO*BL=8`UzgyPaM>D&I-n8RZtI$%GK;
zQn5|4+!G~4B2UFML*=|6|MEOq$iwb*_YM@hySd?cQdfp!T8~QlNk1bEOh36|HMLH7
zDRNWouc353a%{{~AD2?OC!NUb<1dPT43i9iHf?s8Hug9^G}Zk%`v7qIJ7W{ux&J=>
ztKp#2PK$ndc-sserV)ptUgp8!+y`(cr%*6lIGlGnrQiV;M;A8_71p$joX1^Q!O@Y{
zuah;uAl)NC#5y9875-ASY3nv_N^mz_6Ea5K^_$Y4XE57YVrMWW>>n4UAMjP!4BaG3
zD}Ncb3Y(;%_MgJR$Y&TSfalg;U&vAiREbn#392}M&JX~!ZQ6$QLuYM<Hg0?W+YF&n
z!|SGS^<ZvrJgc}Tb-3k$aQNyRwbl@q?g<!<hkhDn9+nTE#-WyQJmeAUr^|P0%lAa)
zhFE;Gl}nN0YXW;ca67*)vF?Ae*RyScy`F6t2QGnt9IOt1vcTX!c$RtC=6R4fbgCbE
zz5(4|H<eOw9vVjvE=Zl23m6e!h!`0M8u%!lNZ_QvLPgDoYe|sorl{UHP($x)@BYhV
z1prL^d$R$s<ff-m5!?guLNO$JO@7|nd3_+;WMC#6<Y=%3=S6OG*T2ONk%Z|xFppaf
zhv8;d5cB=LAZUO!p|r9uU~!-U1&8RG#^GrETh}+&;VHE@M64ke4FTllrmd;ymQ%!A
zLyEt)xCgFNoc%R}?El$yV8z^P)Lod^#MtP^5acou46}4#_NZr2Y^(TvHHl`}k;*An
z;l66qFwf)Jfq*Z;)^DxmK^n<KOd=NXY(a+NcW?NA+iT%yTt9|)9);|-$(g6)XTvF#
z;UInW%ee3ry2rTiiEw03cnNO9|D74O2qR(-v3O<+B`p0@GI%l^eV2WBo#7G-t-hVM
zWtIfiSCG;o0Qq8UeIMB!%isjn%PaLcs`D+lrCrho?DSPK)sJcK(|=9EQ!<)6%l2U~
z;K}2B)wJ`4eF3MQPL6#K>$g-`QeZA|Qf1D#(0Pk#C;K8rmoWD*FK3*Ulc7!@EUKS1
zp9*4`l6VMRbe`{nkee`nSBVGLv#ZJdnpI>|IgyR!k`iyaD!6i~gGqd;xu@t(JTXuv
zG6qEA8(E+ex!Gk3Vmf@M4Oxd;5qYi9^-R!elirIxOeRCmpRLp3P1WmNb<5F;o*~`h
z%}RRa3bu~r5;=Q+Bj&m2m*aDNvo@p3?hV3^%kpMhrwa=ddQ<lwYQOYiA}1l?Tf}w#
z6Z|UU6KD49d4JxJ^{B%k!>nbr@@{LpfX`O9agAJELSIhrm^hs1Str<yp%O{4sQcjJ
zsha=()+77ohex&U(s3$k%`i^U(Bq)I+u2DKx~SO3g_3zq_83nYp9y1%+t(s2J9GM(
z1J{*M5rF_w7l$B=hXG$qo)8%%Vi~F}5H8EDJ7fC}1)yMMhpe_-Bf3!}r6h@#{HKIf
z3~*0>Nm%8VoYIlEw2;WUe2OG;83B*M;Xp75B0=2Va10KLgDt=&d4@T%Q9VjXT-gEi
zvQ>NCJc1nuzA~WQsR%oy$P_sV>!qsT8KzA=uJvVTox9tE*3p)TvBY8?0I}Zeir6rg
z%neX8x>K$Dt-nH^O+~zPKraPWz5<2+z#-UHb*Jf$$FXS~Ucuq$(An$9=SaS;1rZ~N
zg*G6)y;&nPS_tyYP1C|GSg#-CIgEGW85EMBsDH{c-<jSI0G~aw(aOnDj>`#i;Vt<u
zM&pi)jUSdBK4B_6ap`Vh|1#G-{-nT)gI_Lrj5@W9P(8@KiKzJSG0MHd=6xflkLU&2
zw^Tl*=;6po(I(wUU3+7O#j~Z`X)kRTU5<WmCUb)94hen!cX;11#Mz{gvO9aDIKEto
z@XMUS#wm%}<^&k)J%v9HaOz~enz8HemR$wVY4i7qx`o>DzUS*0Bh2nIH)y+_QH@pI
zzZmRQU_S-d7DgPlHbCg#*7@4`#cGjUNj2_3!riecZNt?IB`uz&48`(^M#V*!fLvCh
z(c@=vwm%+BS~z-Va2U&GP`MU%o7{EvHOTnry;J6CLbZ&(S~v4|=rtsk`TbF9*x-f9
zdd^B}-Y6dZr567OK8ct|G3qp0%9w#q?^|+kqw}Y(*4XHFj=W`kd=3*nr~Z07mGbL5
zk6CMuoBf@QQy|D({uv>Ha>HhqLUda>WrQWu<7w&bQI+%L=UGdxzBi08L`HH(oZWu0
zbUQ}^Nvt8ybAxFHPOgh@7*6$VKluzdRo|%{-Yi9TXSAHwF(u?{XZ$T`tC^(=HS3I2
zr^+8j&jr(sS;7FjNYTZQ85-6ye(J%uGaA+5^oofxJUKEJ)AUs(dO458tb0Pq5X?eD
zLRYts*<Saha7-d8i%!4&h==__E6-8B_D+cc=KB!x;|6~-Rw@vcDBnUML?KDT_YwY%
z*Y~JPUh`2KSzWn(l;!ot6eiZwX`s<nP*gM`U-$9bRxUw@9{xi$(H~nJDVl_n9)$Wm
zelFC$+?f1C@Sf;B)>X0bSm#pf@5_F(HJA1En_^synyz|_T~X5HHt)BUc%OAGxM}z2
z$r2}-LnM0W2%kzts!;cf(MBwV!-%utPJ(BL)fn%4)IW7OEtJKb^TS}r^=(1PKZIKL
z6yF=@dRcZ~XpwejedMuxM4Ljs3N`8?O=$D?<j&($6t`}SMV^E{b98b4+d&W{PXAmL
zTcGT+Ya^hL5mS-W(Yt5JYgjv+BKFwi+m}V=r$;K67DiqSob`n6DN3>Q7j@hw-K`zl
zPlH<;_!gvGz~Hsrqv%P|fuN^T3927bKZN$HxFV%x-kokkx*SgQs=2iE`S4@;eu=mj
z5kG1J>neDWG+I-<PVW08^8zXqrM$#A;uXK$<yqY`bXEF;fQ{?R$HIf3^+Q6*E$Ddf
z8p`fVKl9aqrrn^b{Hf@GH>|k>OFk`3bw}dxDW1>w_WTWwCp0&0jKpTD)3Se6r)87~
zO;I3z2mOfaU;kd6mf@8I32;!%0$oD?b8TArKeTu%fVcj=Hm$Isbp5L~t*|b2{i{;A
z_A+2OXz^46CE;HW_=^bPyY>Hm{YDm)gYh@BKmREx;WeLuMl?Zt7xYmQ%A>MMYwei$
zX9Ia^LLb_%S1QQ<E}8x7H~6pcy_KL!x-MnC_CHXT2ID6yhi{}Le5SP@|Nf!YpNhAL
z@IHhBHWJ7{<IC?G?+4x=G;QKlW$}+c%iC+?_WNS^Pvvc(n@rG&24!wg90n568zpUm
zN;DA0mjCq=(6;zXGa7siT1|hcCKJ@5!Mg#Utn^En8VE)I_twh4^`if7nf%!x$qOW+
zH$Efif+MuT5$fvr2YlW9pK{Tltp2OXa$OpFO&=PR(SNmjuB$?WDm;<eI(SPEHvxg(
zUw`&L2}G~0&W(Ww1Iw!bJoQ?&9n|3!en~omq5h|&^V%7YFO`GN$hEVM@Qosv5&ZNM
zz5z1b1b;{P2JFF~;>h?7Nhmwxe*?x}p3psv{|4W+_){4f6xrp0Z(Msfe52w|U1acL
z`Jb}L_^SR-Rb+ez;y*-@0es+>C^Ej_|4S4Z2o%fz5=F*09TKvW_)mcsVV3_TiVTKC
z{vV>q`1iy|ID}^c1LglAiYyNXW5a%YPD=s&&5dV*;aC?%27dv#KLzkN*MA56n8LcS
z_CFm3vG^aDz1a{VFNILj(GNFd$ky>gkC5E$WtPXH8Sq!6r#ev>Cnpg~78Vt!<TQRq
zCsiZ+b3u=;u2Rc=O?lpIsxpuoD}-j8X`Hfp5gjB@I{Y}9_JFah_3l>;rNzTV70mrN
z<`_#oG!B@Feass{TkLwOMQiJCe1}XuA3=>_3z4rKuvPHg^?`zHk;Hp>zeDzk(BKf9
z{#@Hv{iV*>BlPT6GsXvd`Vy+Yr=0T<6?|Eg-<?s>>~*>`MpK_gi;>95N$h^`KMcl0
zN774itn_lM9nWuEWDw9#9AJsCXK^b&6Oj-R9c}Q;Du6U)V1JsUr*N(Jh}`VS{%@^u
zy4?P+qYlB<<!fID326ksNaeS=9&BJNQL6AsrnKf<dIi-3S6_s6OTg2!wof^p51u*n
zlsy$D%uCXTp}Ph78o%GZ!~b5EKPz_~X&g40-tg|guEBl%^0VRd_h&<`PEvcvI%aTJ
z74)cn?&?p!BmHtm={RN0Q~AnU7nO7+b^b=dDuDg{cZ3a=(`HwOoLr}zf<4IcICLo7
zvPD)wtS_wzGhc#J@_LeF8n=B6m>KS(b3iH#bj?{J2mg(VtprC$LW7>cK}E=zhu80T
zVol;ViOeCfivj2{-t5PgY#~%~q6axBDGy9h$mR+oYb5Jit0LG*^EmbByR9rcYeH|;
z=2VOH|G*uQo5P-`QlwFk)pKQ{D;X`JeHi$lz|8;nmDt^M>{34S#~$4D{~T--{VBw9
zk>A=t{C?O>e&V9rspTBEiWa*Y9%76+@tGn=RVeH!)WV?Rn*0ewEFzXK-9oVYb0X|I
z6l{=kmdNt;JGufC+|kW=f67e%cZuw}I&>Wbt{V^9Ny78HJHElz%f-p9qR;;R;J<}m
z8>pWx<OwBP@V<pfzY|5u<T^-sDTJdVhbR8A;!b}`ZE-4ws77ncPSwg=y*Wbk=12V=
zIL}9%KiGCeU$SQJ)evnBM5xU95v*8UUMaV4|Is`C1EVYV8|<D)GT#`{AHPYia6M?|
z)P4D}G&5P*7Cpww>=s)gSw`_<^^Zb5WVura?I-*dL`))*`UEb0)2j<#Gb1E&5pKGH
zWb37U6W(@6Gc;akG(aUZU_4eF4`afR|0ebQJNSw{=2#4l2I<(&+fcWjsddU`KSJc=
z5=(1tLAofqRfdv8hAC<=E*}|J72V{lm43+H?EVcjVFF02m~3y&d2%-u&Yv;kunv2!
z{(euN*SMGRhoZ6|sx~TD32uLTd)==?<6*kY`Ex-m$0XH)dZxaI?J2nWIj!QAdh-j0
zf=kv{SZSJgx1Tya^+@mN;e?YzZzkk5ulwqboD@1|e4wH<Na~#7DEM#3)iTPSK{_n8
z7_p^BEZ+%E!p-jb-{-}B9T{iB`x?>+ix>Xq#6ZXZ*y;qcae}c;&9^*~T;|^q7anXA
z?5j$3XpKl}m<+^*b$x^EQ{7QbWO|5XC}jZkz?MHXaIt`H`j#b9ah+#c-V&m1!(U?i
z6JJmO#p4Td{|#TD9aC_AFdRnxO0F464;#2ki$SkIb70h#%^{d_Y&o_Dn}f~6CSmDH
zx*`fNd|2#yn(9Q6#NYKrh2IEvHa7oO^e{G#4?Cp1E#7M>+OB05f!EqD!lu3N7yQla
z4uHQsa$Y?DfKpJuxYT*k9NI<+(v3jtHHH#S5PSWO(;h%%FXLjdZ4htCZie+@Kxl@<
zYa-J^EDYE}fy%B`n=(R+jch=PoC0_82vt3fG%4Bhg)uU6KSTEweNvq&Y6<VpoIc4z
z47J*&ojbVuM>ImbW!hzv7X>J;3SK@7Zp=pG<+kHTRr*Vi0(95pTg>*P%kMs^>FSWy
z<l7|El9nQ4AS^40nCj#W@;i5%KkFzeiRxb60t4qNd90J8Ev)_GcgU#j9g3*DN0kki
zA2TVC*k)s2#r*gNMOVoniI_~}um^$brdOg_iw3P0aMgpWH->K1ottyp`BhjZI?9+&
zEQ9jV7ePb$G@BDoDg;PX#S}WM&j#2ZLLTqz40m@rZD432XJ|$jPm{9Z%p1Dfl1~s(
z%)wyte(pP+on9=Wy?{5K$fqTC#%}?w0dR8!0c=9f+8$Y9iL6>X5=mrfFdfZIVwvkS
zv9z`gc$V1Fe+x~}htP&-Uvx-aTU`hy1zV#XgU!>9z$Vp4U{mTb*w_M$b_^d>gyaz&
z<{|=fv3Z^|@^AwVfU$6NJ>i(aMc54bP=6f`;vux|D^xxszZ0>USQG#t@tgJ)pc-5b
z6qW$~w*qA9?U7aM`$-m#-%q-~_ERDOPWtcrNr74c$F{n1AZiCM2jfebWvEy~!XY*>
z2{sAjY0^mOx+QX)ihnC;DiGCd1vi?_T2ghIke_;TlbnTid~(2FI^QV&`jP8vP@9PS
zWF6+b&xIeY!qSh$vvA7Vc08Mk6j(;x36iyzF*5cnu{L%$mQ@u|=eL<*fAaP63PoU&
z+jAbv)&=fp*N*Q2Y8RWcY^+5n`$W=qcauT2=praJl`+ZgJgNik@Pfjq8(D&S$!hlB
zrt4{gsl|`6u?3f1bL`Zmbx?KEr_=oend>wAuH*CIW^c9cy+yNRq1P$i5ef>LJ73jT
zzC-!3AK30NPpY(Jx%&4E6S!|S?#UY-6F|Z@J1%lEFV@iAq;8CiWHuYPLH<7w8QE<A
zSwm~1tjabYj)Z8hpm^)&Bk$vZSkMnpID7#f19Yc<XmP`Ixj?CyZ2_SzyNXEz+8$};
zP`!vGz8sI$x+xxVOQSmrt-4r`)dqmwDOkltf}+Mx)bN3$aer%}C=l3v{<3|;0fDTX
z*P)<&0ld;X5A6-wr?=1D&to5@rY2=zP{6*uK9nJScvWyKLPZ$>#5YX0`4cBiLkuUq
zCbjT%O=<yv%c#TI*w`j;m7vCiUamj+Z~+2af<4A9BiM#HdT=c$blCw=GcTGL=%(ZS
zjxaxg_5)9=TZI;#!{+pLhttnvcXmFy2)&q%0}5ggGQ9Pue5>^X=NSEkULrG3EP4Sg
z2LHdzJPtqeI1)JgF;6QG8(R-g8O&$_ev;R#9kSz7YBS1mTS?3`0w(vp8K;FYwtgMv
zl-^p0T!2zPLEvyaT0-lM0Mz%=>4;cLEaCx~nax_71Oifg;(qWpsdKhY%0O=2J9;v*
zy?kPXbi=i7a3hdv<digMVX$^G9MYrGrpo&$9(*zz-7&p%s75@3dk$XvecTZHak1q#
z?KzETh8#h}nO56skBjUVEV8(A{59P!v}QYKzERM3k9k&bWt(cC7vuFq<SvdOP0;s}
zF?Ta9=O%P_#B@y;oyxMOy=7AeHPn+35H~VT%ZmS||Ka-d<vlN$%zgJ%`h9m*HQV9T
z0eiBf7D8koh~!;l0h85c2g0YL-WVnWfYcONDeB_mpS62JNz$(ub=wr!`_o07S2rxk
z=O$ymPjSxR4d4rzERQWdETp3($wAH|$CrMg^*~moc!j_lmltol4#r;?<9uyztP&FX
z#4dUyK36yJiHrP8jT7N3wFSF0-de`*H)|K{rLjLqf+1@>^7JcxEYy}w>$N7|RgS&4
zOmifTKDuLABjU98>}83W`{>GylxvLDs>Pi$Hig?VQgSk4NonZAioUSRa7t3~eH*4W
z;D9k{*Z}ny#|M?D1J7RE<G;txX|_`MX8vHPu*G6sxsGyf#BFBHAs&twK7Y$UDiA2W
z{%{qtpd7f_k;_b7Q=3XbroJ8G53xY=^$qNg$nN<mOrJN{8NviK>9Lkn4rWHqo-a<;
zR3Dw2%X+qp)5b8cayY`n^fft;i0;HCihHM?aWO^@8OrLFD_j=oPIhgdqtUO}V-vNb
z*hX)V-Oji#aa+D_LkHx18=tr-Ia2bt=@oA6cMX2dA)g_~B$V6z-kq&J?Q>B7nqwLR
zLShbqkvO^so;w=I?3d5@jXpG`^&;D;x7Q!dFO_5TO%Dd&cDs4%=Erxw-9tMEp(vNr
z7l;(OiK&Ci0&2L;j?eW@f=mg3=u@y|Kf1;8=sA^V+6Q~nD*y9@YhSswiMIZ3IlrN+
z^FkvG5;y5z_qLpmcBI6nm@3NM!!7zgJQvt-er{w^V=39s=~%x0<)#?AzVT<@xg?KY
zkq+s!I&pE|l_i^#$HE>I9}5j`TzoL}?94gw2?y#sBIX#e<Y?K(s*6=w)|O!xuaLe(
zBskO`iaO3p>cUJ03o0Klp%@Yh(m<vMT({-;=9m9A-|VD_fXDkpzQL3HJ575A!Vfer
zD`<G^<o|k%B>18!g__TPsxys>5?L;e#%g7)w0kMu^M9l`VSQIsaGzu_M}07(4dQ-g
zw}u^5^~-qf18C~*z|%x_E3ts{=e>Uu$CKPExoQx60Vtjg6`9RC;>m{b&!hS5e;0LJ
zh1G+jnEpFVXT=>HQ2h`+Eh$*!3Ji2EK}}_F5SzsCI;I8`xm}7*uaZ^?3~kJ9tO2oE
zww!>mB&;B~C+KKI)PEGH&^Jw6-qg~7&-%au=$CbA1wFI1b?Mp8=jW60(Q8qJqSgJ^
zg@N=QW_S`A5@PWv$i8oOnH}lC=h^5X9aMNa6pHt(+4g5uS=L2pc}qZ*v2sNo)g<j@
z8hAJ^2|E>##c5=onSQY-@lx=Wi0(vl6<4c|ifxN!{mQOouS9Ma1!S0<(=T-h0&-g-
zpT6fFsxHWr>@D<d{#F=Czt_o76#|2tPhgi5O>bn=_u_gqoj`)rB2CQh-fK$wa885$
z44toXW5~UueNB7xsBtKZZK<-%vxi)c(#$QgI(xnyK)6Vy5h=kFRr>@Dftwu$Ifc$O
z5H(mCx<6M2<DZz4?Ck%Hh5Oms7FkE<kv1I;i(ICQ!BJBuqSFTHvadnY717r4_~Cl(
z8LW|_a!U`!R2D6mbJ{Q%DN45khcgi78?sbrzRMQRtBo-h_<(~^qYb#U1lP~;%hI9L
zf6qQqDNs<R*{s<=oeb&_L$**#YAE!%zUjb~=vh)ci*ejbFR#IZ?{JB*>*Eq9qHD1Z
zu7}^M-s>eLHF*)%VlJDra@)uJ(^=NAHsJ$rU%i!BD8Iz&?d0MdmFd{4{^CmEMDn>a
zSHxW|UAZ^%`tut`yQ}A@UX3dBA1p*nyrQm~qtBnZXIj2WKXqS$Bv5OWPb3(*Cn5my
zfXx1x`M|NL-8X5BTap=0?BOta;4nk6vK`4-(4r@#$j881*FToZc3?%g)|G#dj^YlV
zo8VqX-J)gvx1FYMKbx99O0Fr&u-@-$+R+}$ay;AO`C{C%2FoGU*dVdl#-QF#$rZ>j
zb;c_q!$~Ypw*^UKIk~Ql{z#Lbi^%3rv~o64wDRxyD*&Htp9c}EZ30+Gu-R}poY!qx
zNm-P)t_XfJ@U*Dsm>W&#I&7KEpjeiOEyRM^t)#0fx+@9VX?U#bhO6XH&4$KNr5XOL
z8OVO<nu8>OMCqbf22<vxfN?c4WpTEE@p~eA9Aa#Z0ikzA@XaC+YB>ml?umwuC%iX#
z7f!8btfZeg|4l}wK;Z8DGqBhKBHrbv<O0z5Qr^SszeFme{neC@RoMa=Jz$5g|L8FJ
zJlAyM7EDR)((!%Ux_s(cdF!g<nVjB~?;jT?9<iQGI5O_wuv#@tm&|fl?^06M(f5kE
zsK*MUM^%;PRzJ-yCCz?rNRn3RU%1@G+WvO3HZJwl;VbD{-AQ^ndPk5-9<B|P)&58q
zKcRZl7Uw!@`?BcB((z9D?6WM-2jHt(GF+yOGhJ;H5@`F~E8Z$sBstqozSLZ?ffWs7
zW}BV2y}kNr^wph*ESlCFoTW6E=2Ti=!ncR`jSuGI20glQyAq;o7ODp|a4@lj%)k4F
z6bO8$e~h3Ea21>N3P3h*qo0xS*W5GyIrlOjH#PU5(O0%*9tVNZFCSogT14vFMPj-g
zol3?wj38|x7s{y@KxJoy*Udk~4uVS>FGeR|{lLrq>LX5MT@%R)ZbiBNNGCxh7c#Jm
zMV&3`AWSq@*ndvBw!wG`QH!sYl0;lGJ)PRkUG!Ynr>yK&)hzd*@u`L*QWTHV-$b)N
z$cf&I9xA!6RwOzcr#sPji*|~+Q0nzviDxM<seUlp1}5AsdHhyC({v2zj<ef^tL8&q
zrm{fCg-v5TB&TL4Tlz8v`?Z!YLX@{Z{xA+-N@RHDmL+Fj)f2E>B>o`u?)<fA6`0|!
zdU*bzmUQ$bm?VtOZl2u}QOkM8&R>=`PN#^rZr39&MH=B_d*(d3a;IjG#ZlK@i)zKy
z-A;$sl3Y{hGThBQ$5Sf`GoWajBDqrch@Z$95=k@4Zefertx4#?2T-I^$mk{b{tI<x
zUmTkr*M&xil3tf+oVW#KO%zJQZp7smr=Z0?*{1E7ysLJ+=@OgfDtq=2%9&fjp(6F<
zxAJa-nHxn0U40)P8HD#}cH9*@B3UJL<V$tY1l0oI7Pas`5h`Y4%@Jzzbm+`P(k+(e
zYvt86LEOq6-^w&nZ_l$sp!=a=DXp)WX7^?v<#<tZ`TV6*rN@MLNcj0ldYO=>+YKj^
zUqy16v5w`4rP3v`xmUy+nVGt=_uS4NNiRL=K7-nsoh^~tW=N7fo6z_@j<E>F@4T-k
z_UrcJaxD3kXK#%0NOZ)w5*a}vk?58LGEP6lYwbQxQBHmPi2s|b7L;t8Fe6Ujm)P#r
zDNl9El!0cgx_e!Z2M)dXmi7LG&&__pPLcDLS~4_GGLV;pXs2TiH`Zg)%AV!kP`2po
zx8W>!ID%XpkKvvhC0kht)~?;t#aA>CH=YK8OEz2jh<fIpb+{bC+90X@5#q|nxL@Ut
zA0{!yR>H%M#_3%g_k2{NinN$LM@Ya;G3tz+rSqCoPjepMOEE2c8c;fbxW046p@+4#
zQsbL=Wz*cixF5@p7kv?LmG^!gN2^!TZb$V}PCpKL9zXd8@rL;wzjN`O2D$|8_(meb
zM=WaH5)r`*IT?IIK8c$R|IgFue`F$93*-?xEBH)Pe;tHnA38N0a%mog5gp;7pP<Wj
zTaGowB4uA{iA7)Idg)nm!tzalFZM2V3CHkcI5m0#)<_ytZ;I7n9da^FSU=k``!EfE
z+YMk$e--oP0NiV{p85J|!lf_<m+H2cVuXxV4kTTX@#H!K>h(;BwScWaL@{<(`S*eu
zh^Af`)F@}iTh&Sd{kkstndsh}-W;5CMZ<F3wx{E~k|hHd81I^VFKm-b77EHuF*t{~
ze=R7?EcDU`s^m|1oL<bncy>QIE9*eUM2NnUsNn6pP7DLPn;CoU%Vy!L$28uvUD5Zz
zl$~ZR#!g_)njAA9z6O;#uB1H_c7rofAkb>8BdSZ&dq-@rUW*Sya9}s>3Mqf2X&G(9
zL${L+%Rd%8W(N%tm!_+Czqdbfe&76k++Ocj`k_h9l?Zq+^uexD)w&o#G1T<as!mqp
zFGVNy(1#0IcqW%HTF!^3KI=dx-3MFG`cI&%X_Lm1J60)jws}X)_T8>vQNIl9Iefx(
zTzrK}>{c<6#Ya>?bPFl`%+7US=9vgA$2YuCw!AU(<p>@$Vgs^#V98U{n5V!!wkzaw
zarFMvF^}lJ7zW_>UwXXCc_MenGeR!9p7SOpH+_aaPbAq<siTfNc~iO(HN~>cp0PJa
zm*4?4dkRQu9;fTzs5`e;y^7X7)g3Rx@4`jp+re5nn8hVD$-7Vg)vITcr;?qPKF@wS
z{z*kg?!ri@zAuU3W9ipdeTuSjoXs>pJbBtXTor&*_<V)qc59DzA?u6dmM3o}>f-cm
z?}py&5?wT}dX&pt3Oh$mI|VD4JNKB#k|h!o%Wi>;+OEAEu&@CZ$%jwrMNPO1PC`A8
zJA4VE+MuJ3qhMp#D&uo{-<q;5o^@=epk-3v(fo=q<4NV}PfdGkE~a^_W?N|#7BauH
z`_lP5YrBM()o0n;biVKI3?+=1IOKZuFh5t(K;3_P&+Wuvon!qSNAy1?9aJPmVHh4K
z^3AmEFXK7Huh}c-)TTyCtJU@dGpbbgC4`JR{A-I)B1EY9jJb~r17qYiYh)H*fr0e4
zz4~8w>WS+M-0w_;S5=rf#y<>?a&2MM+#4&o_;~rWSsZR`N#oLMRmLO!98YeYDUz)6
zdVk_O`Itdsoc84e*W-bgLXY;{F`0wu?~D;4GM>cZ@-47(%2k25e2tdCCXjxui=Aw`
zeh2T)pGD?Ung80vUcZVWSJx_}MdA*mhNGX<&8J`&v}xkpmMx(d*)*9jr6jguP*Zkv
zF*io^6i8l>h&MqlvF)U8T73vLd>R?CJ!zxG!`vz0DiJG*C71zNZ?lf>V+Wx-f^2}5
zloj6jO2=O+{~XV&3&tJf>$+(G^6--LdEqem8I~c{bC@A^i8Fqoa;DR&d({$qM&ow#
zozpxg<wv5LDzj}-szvw{7Y$<<m14{{J-4ow42vhTXTJF>4q<{?pJ7&*1!Z<0ESUVn
z+J31{A(E`aG|;<Q6enXhu2(`n9t%g#TW3A+)w+q6uG&|}WjQnKaI7x<?QxwJS=SqO
zM@NP{`(kx_sr4y4lnYeuL)&icts*iU#L~=LKp6M{zK#YY=nyzSDx<DbyPtg6B|mdA
zEklZ?NVHowKTkG8C;u~>p^n-cgBMmoq$%u)FNF`5FeTEXI&Lp_R@{;NVrZqUL?+2B
z`DI-E31dY<`%t~~1%z{!$kE!uu)zZvAJ3d@d)P1X`ldxj;oFYm<`b}IG`rrA*j7KV
z@7d0Kkgpt)y8UJcq%BJ6Hr0bnMv|(dP02bmby0bh?gu_R@9`RII#(f<aWDA>_8mfq
z3qxDwN_!*+TQzpwJ8SN%af(~gQQybq&#x&RymWe8zp2`_^NYLMi*rG$6}T2Yakd}R
zPkU46orgG9p%4;}GepLZNYF301r)=PP8kzG1qm5&prnZka8ctNUV-{Ji8@?<6dJ)r
z8x%l4sKv#_l*fUKMhOq`h?2ME73tQ@rxgy7nHkO-x;`>-wc}=?%5WUe#=c}YLsk2H
z0d`ZM&z1XYu<w_Jiosq%`?LcGZnakKPqIj9KdQd_`~`GdC9~^Ck(;5FI_^97oAR*D
zW@TIPRzuv#z0Bc|S7ZV^DZi)KqJ^NMoL+T)qQdYFv9ik-HO7sqVp7eUj!y{1(;m_+
zwdp=)d@Q@utV{HUhE+h|U9S%rlolDzV#hknWvBI8T0F=zUc`i6Jdiea+Fq6Ogy^<P
z?>)9<N$U4c@3;T1*7W$ireUD?v{CuZ^ACgszui89yU;VH$q>xE?YxfoXT8q&%XP*o
zR`Ro?c~?t)`d+fndo@VUE4`*GeL-Xjh}{{s(8}ntk<Z>mavRBMbUZrs1W9Flh$|my
z8>1<o=RUqiSO8LW680P5pBD>doMUifMZQ(Or^a%$X~ey`BK${th3XCSL<Q!X#R``X
zjFdJycwDC_44<Bl_yj+tcE0=$W&229?ZXr5?&S|^kb*26fqS+uVV*y}rDyqqG?pYO
zzZB-lC7`bJS&Qb7CMLkGeLug*d-$;ky>4m&we0v(2L{ei?A_=)l-2iXUipgOMQeVm
zpS*l(b*F-M5UZJ<{t`*k3TK&g)9j$yl?O2)ZKG_@FUo0<*-&JkqM~rr?l$hQC&}$u
zdRmv2zJwX>w`89W(9sfW`zYj`Hgo=&S@3(QWvb_U%xk?bezB}QG{u607+_BjDZvtS
zW&XIl%WeVh>C?LIIVq^5sIj-~_XE$VAbQKFj^~$RF`DmC@|nU(P@E(Ea1E7oM`F)3
z_w2TJCU7PzQx`L%3q#P)^4v1Pd`}vVR%#507*q{$zf5$uUC3>_{EYjhr;JdNx6VPc
zPWUW^wkI^d6dLs$B0x$O?!_me-}I5{>nfQyx$#aG>W3({op<Y7W$D@)-{skvj`_;P
z9)`g+=Tr97($U2ADe?L}5OwlW6Ib(6D|=nG&5YUc{Aoe+K<6RGE1|X}M3x}2TLZvn
zZ}w36S(&%SBTi%h_F^4@DT9Y;nZ%j?JVE0LFs<x=gK1$G0D)OUxNQWF9?~WcTo?pE
zM=&xx3>>D*HQEob3u-VN6mU6B(g9A8kJ;dNs}M0bBX#&dBTCr{v17tWXu{GA%Kmg7
z;r50u^*;JpKQ{L;^>F?Nni=ZWB)SQ<Z1z<gMAc;#vH|aG?>V^h?@=M9nkln|3P4gD
zfJve0$p(Z`^9}T&*t#06oMqeUZLPel+Si@*u6naOc1yJuhBBoLbVb{`AHlHnkI<wj
z?N=ukQuk;$ap8HKSsmg+n@1Rh;Q5o%ON{yyp&W{up;YlLCTGI#zfB(2zshd1eb!!8
z&Dbr*8#0&4Z&Pf?Z^!KI;*?}lLZ{?l))Qfe!Widg#*bd8*mIegBsjYvI56lP3D;#U
zi!5>vrOcIWM_rmxm>b%&QLnziDMB@vi3|e~NT|&JvN#AWv@%xzx5WX#8X)5Z61Pkd
z^{Wuuh-0L)bi8~x9>ebPIUe+U{roCq77?=uo20{3V~cpB!eEx=8rcx9tFeqnc!zje
z^ti5w{_rR9JgpuD={raluv4R1`zs2$idM&6D2Ta_Lq#s5R&msmTCsua*|Om0p5{bG
zg-G-+vjr%<OB?Vemeh!;@X&!s>K`N#HJAt0bX8I;%MdkkRh77ORZ6kDM&E(nbxOxH
z&BdLQyzrCsX{n9DZw{xxlJ78Ad@f50<>)$nNT3PhgL~6E>6M+ft0Jk{wAfTAZ+ao9
z_cVK(0cRTftk^KxY&^Swt0N5RfSSt{vmMX8JC%E(LE-D2lLA^o@Y^>97~6SniU~Y<
zcrD;+Gk50O0*{+#I27^<Z&1nCZj<4pZMNmZH8;ZKjl8t|9_`hlCo&ksLhr5QMP*-Z
z5GDYooeg*kKh+;hJG=gK_3$UKXMzp%S1Tc>c*5#<`&Tjb=Wzhc!-T`40ont>2AoA|
z0!W*~o(zv&W|G701&lm6Sn_%)=t9wM5+cSCiMVCuHt!shQp$}<W$0sY^hjj%G)=Ip
z*3l2wE1CvDgtVIz9MAUNq9vZU{g*sLGt_mSGMzdcK#p+RJIk<tb>U>!-Sp}YF%}Cw
zN8YNs1}zVdC9&-5o9bO?pO}uehrK+yEq~Ez#Fma@H3S!S>DZCLmgEVAel=fiPe(Zj
z*WN<2vC)s)N{?~b-P+q-Ki?U`m3&P)KEm629M!Xj37TN+G)bB#R`*TLAI<MC^7-N3
zxhazLN@>Fmm2mBkxx%6Qq^o`C&n2;bq~gyHHZ;1i+UQ(;&$)*DesiSbqzB2dl3hmV
zbME7$W8V3@7vZl@c-ImcJt6_R%oYl1KaUm?0_bbKC!O(63czeo8aWQp{{y=GPYOVQ
z^}!6F;4O4QIbP-wlY3XuIE3EGGDI2=U9%E6Uwj8pfF&gls<#SD4+p5Ax@I1>;aIFd
zZ#X966Aq7ZQu>MUVoeX-LBv!du{564chjfn26mogFQ}Amke5>ZQA1~Q`p>&yqf(m9
zfoFMX4%gDwV#rrMS+|TGL{XQALk^cF_k;sJm~cqMIt!wZkv@?mEHPEJtq5Gmt?%a!
z1uFpDcEAI-71n{<vZRz8BH0`b!$0B8iJ(BIf!X#4ym<|^c4G~-_83Mz35aXL^Lg{h
zEjdvDk2b{<1Hh$szUeC_q9)kFmk%sYU0{#kUUo-WHk_=B0c<ZkFhH5IUdUTfbC@ME
zUqn*PGN4Cov-4H;oPgCL>&RrndIbQg$2;*myTu6P8F;ooYfGy#`sbYiOeyr`Nd0D2
z6z>GoqZd&rH~ZR8>E4Op8o}3oftR0%rvwk*OXL^a{){GCW}JOVYW#F<TJn>y9-h}l
z4J{arE{1lEU{)rBL;H+HXHUVd;Vk8vlqSxS1hu27e6vl+#2F4<d#O#AtHt-WzL4oW
z))Fq8t5i0KeyyEABVaWXV9EPn=;C`EoH@S3@Ut^nj!dZxk0;xU3|G^U04gGbLM#;A
z0{ZA@qXA(NuWwh~|7j7Ukjt@rt8~<@k#yxaG$`6aNDr@{$&F!F5`TYoV)9fnTMz@3
ztL&DO$D=Gs+~fj(^7hF6S)P*vom~H=G>Z%$z}4~MFoQV65{mje3iAzd{4wGPz+G^s
z`uXAkmT&9AbJv4e75bGFERHsg04D{}P3|flZppC%V5#-=`P%0pWQ{l+z#jUo;&}2#
z)|<opGvf@1i~zA%4Ja{gc1i#4Z8w;U{wHq>_<ew<`OV2r{fm=DLhb`*rg|KXBh_eq
z*G5P06C+|G(ZFj9$8oX@ZG;xR{=?n~kL}52flwEF!#eo3Mm<W#>k^5XPEMY;<eEE`
zDGl<Awh3FNI_Binwl2S0nT4rQ?f4PWX7ddD<YeOk6QvnlhJDV|N|(ipRdO_z_;RY6
zJ!WW7U)rg1g6?^k2z`j$_th};u_X`0*MX$`3f8`@sGdr;(O=B-PH_f{?e>cT5qAxs
zB_oKTOMT%oCy$@nBd0p|X7T<F0g=4z@#;D<!@7JLK@J5L7FTnFzmd^AHR&fZ7R2JN
zErjNIcqRlb5QG}W=&<k<ghKCMz0NFLPxp%n;p%6geYr?39C5$kTdg>)su;FEHFcP$
z$wkGZMdJ&pi~(OP>^&mrqG83=lk?o4ljY3~uc@R7j8t3f*fsSrOe2*|T9`96dqxOd
zQ|$4yWSJz<SRwoPVc2Z*a;tbjo;!^zmN{RCro>A7YC(mT?uyx>TtDLMvoj;-g2Tn9
zGLkx_rp8G!d&xVZ_4d7e+g|^96?<9o@$iKX0(nMtx8Eruqe3iT+e)vL%qzLucouPR
zVF5r5aAQ$)SZmE8TxZ??(RH+To&DFYBP@0S(Ex=ngeM}{CVDvNkjs13!!Qf5h7W-G
zhwUld6bg+*)rDi~S260AozNvXd3|{Pd1&;!fh=}E23%d(rRjvU>?1z!3$L@J3+Pya
zC8F5cBRPBN0;DXHR}iTXFaA@2y$(<DhKkr=0kt68FG^%&hy`O?$d<|}cF7S~+T7fA
zfBHudrvE{S_%Ct#MugJC(=4|fZVB9E!xOqylrOFhm%9R+mE%2$X!Oel40U@w(ZCI2
zB2bpBm9Xb{_Bzgu3z>TIPHQ5z5sSV+|M_NJpGKR8H=xBN8$gJWzL=!BScAF02*qKv
zdBxGp*dpV-)=g40)#dfk^~Y~%Bv=<S7g_PC=NQ&EJ!!3dZF(m8GW(O<X^}zG(L^N*
zE|EOXlF=|v&7-!q9{nnLsV-io)yD>3OxFtTu9Z^Z+dZQ?I3IZ>jSot)5OX*}c-WEm
z5gGh=lqWaIEu5+##J8$TFl+niTgZz^Z=sz?rpwn8a$~2t_ukw&)j{ois^f@8<U_iX
z%glSa>PBh5Id^ibkeqZeC?ql_L{f_~ph~ydF~QHbtOM8yw)ngbXd_bC=&6B$o|^3K
z+8)26xYqyPq(;4snwqVLgu;P$kO#o`v|6bfC$%I17^@*%WPj9CD<}_d6#FVN!XKtf
z69}$ta<E7ZH9*>jD%-z)BrppbW)LxxSRl8BF3_K+-dg(VAN!pY-#WBg>zA3Pgkbg0
z-l4T%^*kY19iao6DK<d)xtwA=6AlXAb&%6s{%Jgsq<51TbXL)2V5?3=7AzxR4LmWU
zI1aYSoD|T2fcvbKwm{cGx^5`DgF6vgAc7*pA1O?kEl^|G0Ty2Z9}++7Hrmq%caM@y
zTyd}#uBQ$l_x6tCEqNSsu{sWvSQApv=PW&M-?f%}IEbqsjmPq&nMr-;nsMHy+ou|$
zHJzYHfvY_9gY9xNtANfhW9I40HmY3hYQxiq^k`?I&d~OXn=)QG$Zogi+O}(tB<fms
zK_%P;kzOJLH0t@qrTH-b=xU(|-$-i6v94E+y?6N>vO_QJRa!W8I5x(qV3k7(N4lN!
zvhovQGZNI)-_yOJOTw$J4p?RO`5p-J1jH(vN9NkKX_z!vvNcTyQaFatR|boWERY;a
zKl3K5No#jKb%Z(X4yJ2`^E&T}cFr`BM67JjQKfi4O<N!0cjd7;O8LOT)y~0^XM9H&
zc-<6+T`!C>Xrx*PQ`ac<sK34qjz8BjYXOT%Q(2XdO&?y+v`qI#@u%55NK~%9=<(E!
z*;aqKD#_2XUP&@Zu+~lYix;PM5sEyLjk{VqUisbOw=3@P?P0IW7mHzyZg#i0c0E6M
zDOM|WpK4ItS*5*Spg6AmKMW2g$=(hdsHqp9PIEe>ulvrUlYD!A`B#y$(d>Gb&ciyR
z-)PQf?IE&HeiK017&t(_u~~Ouwh=Cbi;9reztr|TUsru=UWWM}DJx2Ir>Um9DvOkw
zI`2q}4_Ie$zfBPs4xos%zx;%IDWCxpsd)25pG`^4<x==n$?xs~qnwMw$;HOL>VqE!
zZ}Htmah2J|)~2=zHt8w~)ojnG3e;o2#%WFx2a)njVAy^!J;eJi<EL?(YnnFS1wWUe
zuI$SfmJXFnTs>@Ea&yY^`n|Stznr%6ezzv;gYyYy3p`^i{B2Efrbp9hh4ojizd7ri
zC2dlez5g5RDboB3k+nr6x|9X<Lz^8Uu(t61J7fd9K!cIY_2>a-knLIAO|go><F^34
z0%+hdmp6D*7!uV(5!2|>t9R(Z5Y23e*{-kO3@szQPsX05N%QGj4AJwl)|T|LIHy5N
zGE9}GG0d39Pj@Lu(<QhWQOUQ^Y;fzF(KRHS)!CSp;n+D6=>UHJOhznYMHZRkH7pzD
z84f1Nqq;m#&v=W-c0=oI4xU=FWVc9~rIwteVK0TJ<$glF<2)URycU@8@u@t;i_h`1
zO|}!g^jWPoO-wnLyh-<;hd+U~O~ZyJOo(*y5lCqM@<W>+CBd~(iW#&ZVSpP+@hS@=
z<Hb95sOMpXA~at<AQB1I36M`2VvvxGn116}+tjK~b#Um5e}2J_?D4Dd-|1WQO&e8i
z6>3ac$QlXul*9`-`ipDd?SAw9WCpt8tk`Y2cQY;KT{%K_cCVPtRbpn@3l_K^g-1^&
zw#_CMHK)Ew9Xxf->ecCpZx?VRqK3GS{zjh+U94{}U=1ctR~x=j?6RU&7gOHXgzE7)
z|J3Q^F-P5PL{<xtNK*z7>}+<mRHYI!2>RhYI@v-7_)@&WuI`<DJO5cwk^zflm|WDR
z^k6l)q0>2sR_fMpl=X^dBQ*9chrjav>kIi~rUlgvnC~4vKZFx((l}@pTB5nqO|$Sd
z0)Y=N6Pa70ZYM-?6;tTiLhkyVYE{w_qzoZ5CXZB8h11Qe2+_J6A4gU-b9i9<`lc#G
zR%5HPEI68%hYv<5$yS}Ky3T8SGhpOK<lQ7cX?Y7TGoGhxXdIETAQoG0K^FzjFpKZs
zMI!LD$2K<W<dc71zAFHi%743jBe?<JHry>3$bAms$tN4i)NK!ypqCKT-*JF|eee1i
z+j!cX$eoI~zRTw4)Td3`xIqgb3jDJ52Yg0Iit`wiDbjUVbn@+yRN4+wMZ6`?bePE;
zgbZdyRCKajGSvGozay8LiOiV`*PWQS=Ih3Oa4CQ>>)E_*%c<c*qiF`T+_x(x1l~2}
z3cB=OFZ!bT;Qj-YiPJmhM&mBk_YUQ64R0rtABU`vD!+uDJY+!X+GfRxj6_|;o-11-
zOF+mnR5jI~S-m_OwA265B4c&iTw>v1xH21AxKQHoGe`fcA0G+t9m!T<Ij>*8!(Ta;
z!{1!9nfqi}tK4iW^)m)rW~#0<*CP?D`ci5&nSQ%3xnqgUJ&`z57W8Rtb{~LV8DG#V
z10Ogg>v*@|BrHJMGME0^qbR-7Zt6_5TZyXn6JyKzgcZ+|AVt0t9(DY{S=vmt8KauO
z)!BW{G*1}CN-sTOcxh8{rkeRnd9|}di{?AkbJDp=p08|o%ina~`J%RSaA`h%|AVkg
zl+PpHi;JPkcF~u}L0We(x??7<sWrn`Gux%7Aid1D4kWPbV0y=OE65HKKiHtbDrC`2
z|B^zoP~*eAXwfdc(3d{p0w>OpSaU1m490Q<`x><dR;6p3!bv`mq#Rxquu?NR-<(+Q
zqy6B*M98e^DpZ;M>cZ3ct^vw$NZWhwzePtB2!vdJIn&KU7c)0bWpOg9f-xscq{YCy
zUT?M6l)>}>e^Fq`MTV-knrb55)A(eJcWmX<^-9FT>0xrC{Nvh<2}?pGO_6*z6+XAn
znYo;qZ@$fRS%7siRzUcYiEQ4?xc~dq!~^`V1Q=bt?Zu55S#<O+4v{2KQuWl8dSRtJ
zVLY7LwA}Ek!~4r*K4IYg+K3P>ELU^gJ2Z5Ovg|d~Y=DGLPYX+}UjL?c=*is3Lw{GH
z`a?8HHfLWT7P-(%L{<`!^rNio=2uc?d%HI{f8kTo<h$6SYB6KATKD45p=qNdsyaAH
zHA3mN%QRT7-0Il<qjOOtlr)7q;!RFS>W`6+N3-)#OCNhrxCT5`=}+p-bY@yU+j%}W
z-R)`9@Jz+=%U=4yO>L)7oR;nNZo3eBQ>o%b6XOAo1GR0+?<^HQu#Gi@sMm2G7tW?v
zO*SqJA=9C1Ji-sT?PmUHOd?E}`>?ymtc8W|yx|S))Ccw|2g404C&X8IV8!-2vA9#o
zWbeAfcDpPd=JU3iXn_iRwRGd3jt?sd{T3%L=ABb-c(E%`-(-=D!`G2WZw)cg8d>?x
zhr>Q8_wh8)(d}jW1B#)Mc}pZ`8xQ&WP+t?z*6{~4L<AO`BO{$NBD3HaisEY5BaQaa
zj5$8K{MPPBt<%BMD(*bb6PL^iEi!A3-uXLv2QF5IhMhJOZo2*|iOGS}q|@colcmv0
zrgP`0t{3%8xD<c9AGDjSj~jUyQlShDRUU0VP{%5Poc7tN{E#i~&`#bN3`=N=pv1>A
zZlmvXzVL0-NiHlJLunIt6k$W+I~x)3#=4T87t-~!uc_bQpp1|B?&#+4xb<-CK#zxa
z`ib)qJ@2t*KL&O&wl*`Cj~?-#gqZkA^z4#S>upi8)9{P>d({!h?*80@TgV+`wt-5&
zCGcPIT6<Z7p`|ri8hgC&06r9F(kgETZA(emsfgfX_;BVf_Bk7+l+(BDImy+%BN`SK
zwHVGBFLgnSbW~yGV~)F;v7Cthw($h32ycTMDc(&oS3Jy8mS!Ww`Xmes6TEJ=sGzr{
z!@@}RN=4b(Wx6C><74F|Lk^ImDXKwJ<A4_Qt-CRn>X;7dfN8G}`5E->Zs~_nwjor-
ziPhf@dZhQtj>%qW;dr#i14sYVAtvl_&HxK4$li)bn-hWZ?~gH&Ror|BoLP!CSXT7<
z;bZ!`l9L>!6JS}HTJFup9wx1%5BjL%Tx!Ca@JIqa2@;IkYqf%Rl2@Y&m3>{0tX%0|
zIqt+|no`y6G)GsZ*?FmR$@qMcugIA`&K1)y-1~Zs4_`mR-=wlnw2$gU=*bhQZlR%9
zGMU8hm)@$)3@%1$VAL7>L?Mx%Q=6{EQuNdvYei#KIFa?-O1pX{Q@;-En$=QCiTX5t
z1m<^`;$Y9PTJ|^YcsjbG&*^&_ca$FyO}<P!Z>quQ@Aha%edyiUP7Uodj}jl34eoc8
zGZAneMjR^YT;^Lsm{*pOWj!BLIB6c+zd!iAk&lPri*vrF%;B(JXlkYXjbRRY9rp<$
zi;YOqc1wq4y9~hn(vx+RTkD;D%&Ilx49QKc!aVJ&Ff7uF@TSru%V6U5Gy>%HVd;7N
zMWzgU_bWoJv}PsDhNf{>7d?*{Gb;pzm_BEZ)}m9;bZ7K%v{KG__!c#ISN~zLQ2xUV
znZ+Lou6y2dciz0&Ub^#P!JD&J)D9_;HjzW5s9em^m(upxQd?HA*UOp?Y^#m@6y2kn
zJFeBH5n5l28+h1p?_o!=@e}iM3R#mhF4jZAhhm0w(;T1B3&-2gM%=&&eHjmjT!-1`
zL<*0W^H#Z~MU-bDa_!YSE?j#hIxCE6`B1S<+Nri)8tUq!`Pbk9HppKv|4k6y$|(Fz
zcq>a_=LG!%fbe$x>)#1)CFOY~0huJY<N!&i|CR9;ufJ-#H!uj#VvCn{{i(*Pu)&wP
zLCy;JRPmuRV8Z+d<Lx?e=0Aum2`>Ztk#aYnrUk^WYmfN0hu{CnD@y_5O+`G{?b_qU
zuK|B7;3id6ks`3^;(rR*Xu(*>$x49(cI^?#t0*r8GG}YQS^q<XXRW>Z|MIy0o`iSX
z_&WqHTN!-%P7!<xKs*cBcLBwxiWKlZia^E{aH%Rv$pZ>dc|32fqJk92R;)b}aN-ii
zXzlYV$l%#}m4MX>>%U+BIpNi7Un>GO-Tz11dk0eezK{RM-g{*4O~T>WJ3F!}89DYy
z5fUML@63#%5TYb9%F3pU5S6lpC?P93zxy2H^?uiRf8O=^etv&Yx97U=>mJYRd0*G{
zxRAL^k&-!h0_vIj_mh%9N@4&1hY~~nyMHafm7=7#e>LFy0;KA{{$EVufY1vhy#M!u
z*6#luDhzh+_W!ak|NV3R^`7FWb3iYkIs{N#_dDd^MAX6kO7EX|a5}0Y{~&--1L<(h
z-k%<aqwJRqx1z`tvdA9*x&4Q6D+YkOs2_mz6_aLz{)6;|0yr<~2UPDLxGod`gpohu
z0Iv(&eZ>EP>xx6cUywiGI&pvy76;D~2Y3GmI}E6|023?$;Jqm5FgWkuF~guN%?A6Y
z1~70o4B7ifL|z!UKcJSu{(%+4z>`ov;AyDryeKp=AmW1hp`gUzX+X4+|6Cynu0Z{O
zD<qLfVsM2dXpt1SLJB-l3S1!to+E{X6N7W5z<E;OJfO5o{evWy21kJGrT>x4ekNe>
zS8zYTE(SDQB!PH888EozzwwHZMQ~eD5pZ8o5paR12=WS1<Q1Zz4hNZmK`joD#o%dx
zi;Mh)yaMze_=UV;pHPgvLQL#mlLJejX3F8X0R7G;A%>iDDEKazZXi+5egVvYeNqwf
z2slLog=|6<z?=bFtox?{jEe*q9tQ=$E=Ccrkf(vX%Mz&Rj4S}dk_5<0wtpHJ9ulb4
z8+8QCbkV~bfUsl<6iE|x1l$eO;@}!&MUfV5)DdJwk-KxK0;t;&{1^#YK7t=3dDchp
zV_@o#ID#L8WXJp8TF4uKHBJI}>+RnSkccFX;KxW7^AY?QgyTpYv5x`MTjB_PjO1X0
z1?%7jpa!T+;mBKqLAnnIL>0hufVlQg1KN`W0C^u2z^zfJ7u0D;!5=mogzHIwmG9s*
zq~H%L3LG3HfK>O70L-%lkm^AJG!Dd>9u&Ys!3V%W0X!5H`Hg%IK%4IeF{29Lp<r!2
zI1M}$I0_sTz(c`GwqF3-?Gix52L<p@RIDBH2Eg(lfr|M;6~IG*h!0K!5(OeYD1aIO
z5g!yl4S<Lb3ZMo+#0LdX10dr40+>zvfL`RSflrPE%6l7CK%RD39YBqiK)LB6kAOJ_
zN{13brlytvFYx{Q0ZKS19o7g;KTtZX5|UIc0s7|fOz>#%emyLK`l8&S_MZT10=nn$
z7^n&$Zy%OGUH&EcHK+^dp@U=KwI%T{$*)0Oz%q1r4AkW)S2vj9pmbChFnuJBvUQ_a
z*hlHQk$iHAqkP?96#%89x`4?gfijbzY7J)Be%|^05~vI4xr3*JDJ6m0&NT$QF*cxZ
zAyo_s6sh}g!8ouK{Eg3VYJx2AZY5WH1VGVUxS=m`*KZwL!BSy6#8`n$sAnxq({6I-
zSCW69Gdd|dX$%$d(Ch!Y^=>%tY1yNo;oHMGCo~?X4L&3dcCM1wq>edXTxD&a9TWBG
zx`M@q_1!iTe^DxnwITJXD9qz<Y`Ol<{!^3rZdBgayp{0HgO07743X;>a;soU&tK7|
z43)UNdEz5t%_Hwdc4PPb-7og3r}))XufK*}YoOgLg%ib$w#mRM#J^tZ5>G4egA~`;
zp!-Zj_WW;B`SWe>f24vxXiIR5WFC5Y*O>6eKZ$9)*z3g8fly9Sv}UCT7E<d;U_n2v
zhvz6gdpGiwWGLPf{++H<t#r2X!MzJrGTC+v(Qiwttkbe%2+m!9_VKiJ;pbbp)^l~!
z#r2^cx`EV@fua-1yw8uB5@d3zajJ6SbuvZ<McAx*KA%X=Z{l1?KYNxJac3uNeENc+
z{OmQE6tM!6CAqa1x8~LzaLi0vg~uh-AEpmi;M;MszI<xx`kOi~fugqmDv`g4senoj
zK*fNoMY(>zgcx8qV;P1YFtq2Ctbix*zqncyg9Ne>!TjkB_aCWf88``~Hy8yz31&}k
z011}*^O2_4upI=TH|On1<_?M+B0TOLlla}r14H5Ef35c4_(6ybqWmDvAyJcJhDRRl
z;sD(mh~0byoF)wCK_-Qw5cdBcV8?p^mHC}@QE?Z65gMRW&Vs*;Sn0D$v?{kMhqMre
zV}_H(lF_k>u)<v@91`)gwL}iNMdoIL;lFhW3<b;ot!;nfg?i97l=BN{ocP&&=NEB|
zXkZLKuTpSi^Cw1uX{Ubi-28Vi?Jmg%*`nf5z!pdfi3o(tlfOeu-f3ZLfw#ah!fA+c
zh*?3~6yOR?ADjBv$Wm^?4?S2S-39y5v<|s&{n|Rv<UieMh92}Bo;9Z`j;hVRkpUzc
z3{@iJN;-t1&Hxrspw^#tSqR(hpICc`j;4e~T)z{`U|>T0UTKix;eS=>L#I5|-_i*(
z{C9-X7UL4@5J;}Kg1{pV_TC`dVx%j_99ul_f9K4QG(aPAG)6A)dj8|u`*%GiRT7~N
zoBS!)=7U*X{d(S<OGYz;*!qPd+tSD9TwX1WegO|}-On>*zNDPxVX##GMNJhE=c5{#
z81zP&;ku@a56cK4frVC>F;l9&N@<2+9YTe9U>f5_>v20Y)kVHMe;FZSe-Y6Ltsa5`
zXBT}DK$8dFUy^5zX7>|pFaa{Ml>V6jFNKh<%jhS7(miWb2FJkMz@TpsEU$JvTzmX!
z3@i^U!jNwmShAs40)uie!Z3zjkO573WfBhg-mOeWOe|JJoO^*$1gq#ZW-7*zA%=Zt
z;8<ji6_&dMzDXcc415R?5lE)LgCLW_dgNL(dmJznz8IXk|H5C{zH)$luZTM70LAGP
z<jsOcJV?#v7x9P!wdGI8;&39snkf;7BVHemd6dYza{Zl3b%<#*BS;?5s>LkJSLe*S
z%+jXe=1D$XP{TKMSyN#Z5kziC{NvVaEZ$?n9<?q;9og=lB510NiKMZQ7*Vf|Sn~YM
zZ$=7B31(u$F0E;&UiH-2t2NlOr9viz&Rv=%UB@PC`Y>_VKd3S>Q8Vj#(Jkk2<Noii
zp-MiBk(Qp6C#Q*?$p^G-f#Ah}o9(yf*0Gl<>Kf6s9I0FW+Va0h8#O!txQa?3-kuWo
zrm!5QKPFkM`Isg-75ynscM-kC`P>0|mN<<`ip#e8&OKADcazi28+Pk2y4Hy2nCOV=
z+P$YQ@Q~s5R?E_imso867VHycuK`nja#JAFU3c^SbS%%fkY)+aa=~n%oiapWM41di
z^DO#e)UNeqcH0RB&%~=u7Bjid@?H!KmfwfYmf`tV8Q7^%Ne}#>>$FQe>%T1PW3pV-
z*o!!J>kfU7WL#7aW%U-WvdUxx8d0EAWd4T7Dgh|}$T<QiAs|%YFeu|!N5Bk|{~W3i
z)Q)0UiHL|G6mJ9u0g5gHONl3P2GIxMS`HAw?ApP5sRZ(2uyx^cGiE3g<99Vho)k;e
z+rz^U;_@jZq22~CR^P-Y1Bc$iW}ZEF(6kh(693xiN8s=O4mM2PPooFvr^aK~QOw)M
zd{l5|jPPi@gV5$jcix<?J?*xn&yXB^RbXEELML}^PhqmRx~ML<n3jhOuXl@ha-Cq+
zmAa`Hci$Ri=AG|3&hRX+<EM}ElTl%QWut!fysgNmY>}pcfp1$fYQy^@j?ai#yQwU6
z2kJb;d^k!rQJIx4#<YOjDGMQosTdR09y2e{RC?eDE%LqaqI1(YV5Norvw42N%y+yI
z;uYovnCG!`wAZ$9Cnw<Mze@y_TId&vi2X%EO#lAJdMzU4fs-+ECUx8i6TX<)5Q1`X
zLw-v7M7XumsisayFo}durJVK;+@w0&$m^pGUXg0$)C*7KxB4uyZ_j*68MyVMTTnoF
zL8609h^V@6_l@QA=hGGHKQ!%vHs0jiE&DnTNMIz(t9zO5m4es1`F-23t3h&MY&x5w
zudQh9V-1!a2Hc3}yl@FTct@FYy@aBi8C6}+n_j)9^zJcN;U%i(%D75~BJ5$&D;PX4
z7-B2;lmzIQRi+@<qgz|5dE|>AZI>_Yg>KBNR{U5{;F2ZI8`5>eoE8nYO`Knp8VOU(
zfiE|+({o*C?XP=FI{9IPbwW3eY>TMb{<aAkfg->1eii6npl5Oh<N>jW8UiQA>N2~I
zJx(AL3K2_U<N1eJ1O+?>H*9rWmE-HFCetUA=X3&AZ>+v>d>q@aX88r6-(JMvUBkEb
z@%mwdaBEP`#8QNlV~uy3O>EQNNf@E=t~1NSlWVyb@r7WOSgrA6n#AZ$6+zbMcNJ<9
zj!~xP#k=#*^j78YQw{FM-JAaGC!;tFy(e>vub_miWpeMqUcTtGSobvkC27Z=CPW#J
zbNdxd_3ie(uDkd4Ofxm)d)qRScL_f;ZLDDU7QOj|MnGtEHnG1*H&CAhMjUwMFxyFW
z^~kI2V!FkheBi}?IO1{wlk#Xvxf13yx;Q<T+)BRXFh+Vq^r9O&-~8P8iLmymEpbx!
zs4H^1qPE6e|E5NDRw(t{8y}yJt1**WKj^+x#^%-EPx$$XG5mWA$uJ#ky;Q{vm^&c4
zp}`p16vC;goz47eT-V>YV>{7hmp@&X#qcip_?kua8iX%JtSH58M^^|c>-G9R#S#ur
zsZ`hQYY(WH-a^ff9?ls~MC+B?uUOCD-ppFDt=z0(edlZ8x?aCM*}Plav|ER}_Vu%z
z$eeMmRH2mdS$Vy^9~eRj`FYzJ5!TO~Z>U}neH2`MTwzMGFg!;RjaboXm46Yw1eJUP
z1+iI3W-FBF2=xU0joEtZKQH2k-rRd3N+4!CV-KSM(K3%k3<6&0MnRC-pqmhaOl1ub
z(f?A3N=ckkA4}}j3i!%-hzQhvk5IaYP;&I~++oGoQH*m^*+3{?Rm=|Gd9a69(r7h_
zQD8NRO{BPiD4H}w;IZtLZz)CHQPgLk3ph}3q}sZ&(Fg^NvMLI83jb8S0jnF5+KM|N
z$Q%k{8n2&*n-);8^9>Q&Bb_ODuX^fJGZ8ja*o3RNB-3V^k}$ER_t<T1J9gfueqF=I
zVknnq6nZY!XCUh-6Vr(dO<UP$>54N~Vop6=xZ#_f#GQqs)@k@ogPKLZF#na$HOvz@
z`l9;bx7(_{Nhel!)s^fi0s?QoWS88+EekM`FFt147@3(Ha|6p!)Pp?jCA;gCG(S#S
zZS!Dv;R6}Yj)K<XHz0&5)xBusfJO@z1>0tSDhDXEA1Z<jg#y@C;Ei<%^!<&s&+wmF
z`~M7%W{gs5)t_WQ|83JpKu&e3^4-7(loQc=`mrX(WNanD7_4o9Cx0px(y>#^X6ztX
zC2`JR4hA|CW|D02;l9()EpJmhjQl$PqqqW1bJ1wEVqo*{Pn%mmfO@InPCSr1iF&DF
zxW%T>^5_(3+A0M{VTfXIV&TuN5A5>!gvK+MGC6cq8QSscG;Dd+&g|*>zBM;cJ#Jz0
z&cylA!iTA256z@grn8DyH=^E?zJivSiEp~c7W(Gi`8rM}{=UPk!qIEpy4a`fvIb-V
zv-J5G&69H!ncMnmA|6HlrPy%ZqEVeQxf+2oDwzdB^JI_*_$=1<@33$f(qBLE;fGYO
z4)4o6|Lfz#VnZ~c(9VeOI!sn|TLBZc&>z7KY%de{-X9mWpT~I(>rI3e>d6{AJy5;i
zt;}SZQ=!?PJ;?8qifvP9lVhY%lKlgsz<tvz{u;BwBr6_66S{>PoyH6{z5i6I$lV?2
z{tDy4c{GTizp06T5HAAMLqr6<re9MFh}dp!YT80zwDjBV;$dLMvM(!V6I*knAMoKC
zMIpb#KVT@M#4j&t<eu;!Hw88b1yQVEK3Gv5wFJbflViIpQ+Cyw>)kfrnIvq-MQ-;P
z{7>6GVW1%h<#yx}87`x~Np+A(BuCpv5zVkhr@j6~=s8qk1o{-Ir-NB+b5!l$c%zSJ
z{;N;rE*|h_#zjrza4XHnlH~bYdDK|6+ALue8hMNCLjfXf_<0%Z)Cfh9GYB%KI>Z(I
zgLRtoTFmb;S}>Hs=a>Ev`-{jF|JRQJw+XD%R1DbF^CU~Y!QF-YSJ>g2Mnw@SvRCnQ
z-o-MTnrbe<6;1FIqgj=0aFah5hmz;RgW|vD&qh4^JT>L4hhx!QCP3MkwiQ2oYKNn8
za(b2|ourPp#D4zE42^}y={u~JjGjFai~<8?juwXBVqZmPTw~LK`p${=w~pbNvRC4f
zx^=UXzT~*!!E1hU%$+Px-K8M#4tyD7h#Z=}RF~ky{cORSfxv~mFs<n=b*il;7j{>J
zE`N}J_qzvHH@EdR`IjB*QtVyX3+7xhqXYWLU#u8C-DCR9KIv_1lJWeU-)IiiyDyqp
zh}QSGtl!9#?1+93h=idmWWS2?FVri$fqJAu-}LPXYV9Le#L(N)tUE8D#(_n7iWpGj
zWT}I&t?{4JKiBdOsR*KW&-V8+8ft$1)$escc~(n(ooIpd#Nblaz4o!QH7~BWdn{-)
z)|{VuuIB5sNdL~LLGAtRTM<7xWGmO!Y>e_OG9GlNjEo8s4?uFG-k8x*X+oImE8aAD
z<LTFHobaB!+O!tx+MIj>*V88SUSx0#hV(H6=d@?woOR%oHN?%JNiFDoAcxfPiMxR@
zn8JiLe1Qb2CneRTqWR`^69*&M?wt<0y~3@(&I#Fx!%vu<q>N^sAvhnbr%zC>T#c0u
zrb5E=h?V<^-1FE~IC4(kFcFZerLFb9&pni_@mH||qu8IW7*$E4$Q0aayxJgXG^^Do
zO!(6#u2gPJO5wy@ZHfX8ej_fzD(TFGDb5;CE79%gB#a=#_SKy-#Jq2NfWwvSSGF8R
z^lHtQclf?0HA=;hvn%@8ZFa2%4<75{xG&h5O?z>B`(uEc%(xuUP}uVqYwc|+k(y=|
zf(G(*I>Wd%g94rtA@6iUk7=Hij<#Fw*(eO7mB>hr|KiK?0qXrN@Z?#h(E#6hjJe*O
zOgqJFSinHU$VQ|0;-|H-75mGGMj5FGK~bOFq&`_o7pEqU4?L+78FE(}toW8{_N71A
zM_}!&@{bE8AKH9!di(m4({Wt4k5xN#0#lLgLCzZRKOj9q7|KZciyTG&!jB9J9fpEk
zXyh6O1r~urO$7SyY><r1KT$*gI3{BUSO}Dh5G2SIcniS_F^EO52J+$NGLYl6vUTr~
ziE$&y!gfycgjo}okmz4zj}Md~SW=4QRT^T&{|+go!^UOBxx(#rh$H2;FZmq>0Ye#s
ze`)mJgeVmZJOgSdHSPp1-lUL%N*|FULqU4k1kMuM{0tjN0Yw_!dv&eKkD4{_p6a~l
zE45}BJ{HF<O%?Y&aoQY_7ZBf3TDohZu~#_ZWCnM6u!yOiRD4uc#8T+s!%#Ro*z|;e
zh3x+El|9cu%q{X`m?7M@s$6GY8=VQdO!_*gq-ys|)x2}lIuA|)Va(#7s=)YUx<r3K
z5%X5vP*u{icJl`$BhOu@YF^gHl^TrZ7yGF{b$q?O%yiZ_j;wE$=1Zg1tUjG)%r1_7
zV%k!n$Btb~u3Gv7_2l`|=9gd3%<7P-)4!a+Q0pE4J>38dT~@un`Bt<8P)zWx2ms29
z<Xu=kA?+t1PTCx)1xeaToq;ELaa*xtiP=niH&L*acH#m0A8dB;?ffTw4T!~_m@{31
z54WGsIJbNcx75CV-?>cfxaCjJ+vAQShTocoGo#Ip8x4H?_Nik;kmlKsi^9dDYxjh&
z-}UO##BosK{7FepUu_Z@%K4f<DbPiUC2_M8Gn15Pn3KSbMPJl6G<&Rf=Ph@B%*KH7
z`@}BKvxcfeGI68I!_DT)iBS@US1Vm$d~4jp@02L3LJ}VM$<05IvF0&&WtH$O0M-~E
zu(OcACTh8x9-~OOk!~BTX4v+LlP9j<#zkl?(X^69Z{)SE4&DwfIcMJQ&YUomhsQ7D
zQS@&jB%y;)*ul3VP$Ul6Bt|;FME+)&qNA|<JAi))5u%Kxw}aP$AbW{mTqJ`y0b0{{
z5;oI4C1$M1xrjjtcqX&nxj-lT>~%8ypA%Ra_N`jbKqnEpTjGj*3~qx5dWC=3lLa)Z
z4LX(eFFuNw_cwVV{gik&h5aypV#o{6PjV4hbA&|ck+y3wGmF>JPY!NTD+Ub&>HCsX
z@$za!Y+QI>*`qcI*Te`L8llD!k9K_YEwo+JsQZfKTV~NN{jx4PV-Kf$-L#(4mSjaY
zXH&#WQec_E$L;w=JxCNhws8^_F`7=~g`C^{2Hgs-2|H;X!0|M!tyNh3<`>s7F7q_o
z4te3G$GlA20@aj|a}$a}tGM}2WL>WB&b_H|!gzTG?=&gcDsQ1_fH3;xpxN_BIs5$5
z`(l5Qc+J0mUqiT}LC^8wrbcHyMCxI#m2<u!ml#`fYhXsM4Ia76nJkT-do`})#X8|d
z9Ut2K#0}}Ec3pJtH=3X7{eUwk)eMbLi%-XCkns+2YL0kb&v5y|S&>Ig3R9I3-<}Tm
z1KC|~gn4kzxaB>pXHC2j+fZX7uDfqqPwuhO?J*{=sN^&;J~<;Edpl`Qt+<FDPrbd9
zdX?ftfjN;qVZ(T*Q1cF*+$sCEV7*CQu1M^%U?QBGbiQhvF(;eL3`?SlgQ>Xnsh~K#
z+POS?xyEjvg>pagNnK&?UnkUC!rYbg!s2*Wh4BL;d_y4+^XX8wiq?1hooEeBGTx+h
zo7N9>J1MxA1-t`Klrd)ho(dF(@`d_UzJGyX@J~W{^s4c?Q#fTZH7j6f1=_07IGyJ*
zWK&iPdWxw{NM3nyJoLc~2pF0VuIv_J=?iv*-JEqW`__XvpL2WY(?fR$xpzb(rDH~M
zk49n7A5Mv}$TdvVb*z4@B1s#09%C0U{c&93_G9z$3v~=ValS<sRc$w><px~5n<yZS
z5NaxjXRC<VD1L|%gprPrA$OX76^o9+Djgo|9~wJ%3PLxB?F%K?;%3FEE6{{%5mP9H
zC@FJ6Wp7w%!TBthm<cAx)-~OWrXkl8X8M_NPKPw;O$T%~@cTd6HjKD6l$4;LEL!xE
zbg{gdXI?5o%FB>Jk?2$6gH1yQMtlC_7fORxwXoXKS}A%cG)gU*EHo8y{WOCjFHV*4
zF=0Gk{6-o8Ij2%}{rBmPKGou%f1zIOm4Em`gct%pN1yn72LBs@rp|*Gv{9^4q?#i2
zlMA}Y&FotrW0?vx=0`DxM+32YVs4(UurU+vwo=GTaraTv+RpHzXL(GgmF--_`W{P9
za9z<jw*LfoOoQnFfUw=W^UxtB@6MpB`U2}&kKlf+K&#6TArHI>Q^DeX2HIz#7b&D}
zJcqejJb0%rQ6=!HXN5)J!f>c;7g^1lhkH<7xlhl98)FgOrpa<WL;a+-PS>tU#;5sq
z47fR59cXuJRSRSEgD433kf0F_nr&&(zW@bS^`UmcApM%*FOL7j{z`P}L0TQoLH?p-
z85usAYGC>3;<a7U_q`CUs+QfFC|5H!dy^~KfZ8V1<^n+<J&R3EllW{6k^hui_{+d|
zQ{p&PGZy;xVb!01Vhfn{iQ=YC$G=}{p5fD6$vuIavzkC!WUK04S{Qywnp?Wi@FtBK
zcdd$<<)fTyCYvtLt;RR-6zl3g%+{rsr}8a*zC_l+ns}9}Qbk6$DiJmlTe?eNLO0q(
zb(ufZ4~;m`Y(k6vMPk0xUX<MvcOr!}OvoQ2&j<5S)$u9gBAVyQ{awo0Lj%eK!_PE6
z-&?1U@#2e<7L<~m2{FGp-Df{2l$T+6j!65Hr`}4qld%7isic&}<DsIBl)0ietI^u7
z^H%~c=%>Et<}MPD>6FwMq6zAdQ0kNqw8Dk=ykQOeoSUvSN-z*{mQUTbOB}A0AvLqe
z`ZD1xUxT;qP~4X8sH#357WNy5$kJAyTEBW7fzK>vO{wk74H$ey<^^a3fp**Y(4PO_
zEn-!Pz+9n3uFg))HRy&thb@ea@5L1vMa^S+o=&i;vfq*9W9+?olFAlry2h&2N6^a^
zC${Z@t1csse4j%C)>!AKqCUYpPpR8GZ^zd?9@EcE&b&gG%#f!oz`Azhnn|)YFV=>Z
zom@u-&MZBnlv*+SxRbo&UQ{8Ivc^L=$8kQI4O8nH!*_93It$|On#;cXZr;5m_gJdl
z=*C1(WrBrUV3g5C!5Zn6rHS)-!`cyux~N`<erh8bhB@&9S^E3}G@p7X2hCsBZ&Bb7
z`lp|I7QKzAP2-i*GWgXq6z-?tW&)l<#yAHcM;SiC%luo`{vdX-ow&`rEI5F4RaO|U
zOR`tpr=8%ML$-U`nnD4U*6F(U&n=hYjn7g)vMcodXm)(dy@7>KIGsw5|Mn`+tgX&)
z3Pl)0e=`P8C0*zbtO2Y-mZyBqvj*btRLzz{UntkI*o=Ey&9~qcy9xy=zC5w|F(&Iv
z;)%&KL{eJhwaS4N_;F5LmXMUtloVR=2aal|b;a$_%@nj-$A3ORpcR0kg`~vbS^=}d
zfo<64SF-|L)_*rE(9z8Rh?K}4qNS;6522X2d9NX;d9N9P8xC+-tPrYL1Y;idT7Wuv
z^GYLz`lu*`0M|Ma!8SO6Z~gss8~}!~;x-?okB?e&MWYs@O||$Jd6vTx_p?Uunh2fp
zaCN(NtlwNS-h>{R4=Fdb&8i@cHu_DL<Vx!6^E-q@3W5BOq`Y<=sIUdoXW!e+-3hR-
zzO0vNc-FA%%3IA3npXwLxD`Dt*z0b7zpnQ|@mt~a)Y--87@gMI`G+&#XP1*=UVX1k
zF?X@Udm#JesfvkoQcOOU&(GKFM#Enx?hbC2k2+*V_;HPytw1Y-c01sqa=VSZvo8lS
zGt5rUxm+5^pe^z3zsP248kh!q^YTfnm-U@FW=bO(d`TM-)=(zzTuzZf-&5xcyaEH|
z1gbPHuKMrV{fIDnlfuHgel|-jYm9m6!3y~g?%2uURy_@lhWV}V0LaDf8U1M17<5|r
zU!*pG9{Lx6eM_)${Qu%#u<HN`Mo58Na9yW#D)u0WwtEOH%~ilt<C+Z$eu=n52VkLy
zN04MzI;9ybFs?E{idPQCM9pvvF0fH+1K>0~T?b<bEBW?GG;KxaO93{I{&ev;^hm?C
z<}~^Teflfkl8zqTm({=WEn``M%}rzlfyKU!;KS#@Pr)f^#@mAqak6h9h+ht=gVqFc
z9z?!7GVA>wTLnY8ng6;B0zc(HZON-%QBt5x;pkuc{+e^>7@t!x;WBkGbri8CaM0s{
z+d`VNwatY<>e}m&P%S|jHd=Kdd9uBLasdso`?0SH3fxtkPx)x!ML8I&NjZqWif{>d
z(VaV*D4;K-68J)B;d(8zf$;-+EozBN+;+0!5*S<%I5XtOh1TVC_Rqc+i1aA4$Ze`o
zB}5okf86D=!Q(&Tzq`iEKPzYS4G5moKwNJnnHZa3ur$l}8Tq{%QEv6WHvVt2x*a$c
zf^G!%vV#%J`K!H*j{d)IQ_<}~cQsU&5cC;%^gAH4G}EE!E4Av}?`cF}s1Sf(EB+S@
ziVv?2K*X96Dzpjx*D&v>xzL2Fl>L)*rMWDX^g<7#H`W5h$I-lXSJP}6Z%9O<rGn<}
z71#Na1_sSou5IV9t5N=^7Yj@Ao^eKqey&=Tf8()G5r1qEyu(Z)dWzl8YdCW{JY~{|
z7SMKIOgmX5!^f{AP=SHzp5&onkI9)y&QfgC`S5b+F=?Fhsq5o$wvzmxp|rPCs4o?y
zWIUb!v1N&!LYjy%SM5!^7Oj{yS>=PK6VWMof0F{_-`1T&PfM!b3|4>O*R*R>q}a5A
zU|j?2$xX0|u<`fpvTD8)*>i;>&S7xfLiocWHxaBNyNZC@2BCZ#cv6g*4e8VL1A!1d
z^l6Hwi6TVPN^}|=h#C0Pc?uOBflBUMg{X{<FmAtDg+$R=g&=Ac)OUkS_gx$55Uc>S
zF#$ZcG~a-M%7u{Jb%n$CI^c-Fpr2$RyLcemI2*RDQjOAU7R_K9Na`?F7lLmlfc&kJ
zK$H_{t6!u==Tp@&tVxxzE`0GB$jhH#VTNdxHy*%g`EoAbN7H<CCVmi?^QX-(>qq5B
z#+}F{<*Hu6|48I$hC#3OZ+?8NNIyOqG4fu)OvfSJh#M^yzMJ<AM22uB;@#lwbWX(9
zWAsugbRK7HsO3!GW93U1(S(Z@(T^z4ddS@o_SIjo4#qVOzsOP*B&Vt@Uq{GsM<`3b
z<tfYKG{&0($^|owYTR0pFJzK;oEm*bTmx2YOc8eHte<hYyq&Fe@KDo=8zJo4zWC--
zJlE!noB++;6XT&yq&hViRQF?W(Fg>M!Y1|?KG9{pibxbW?h18;N*YTZ0Ff&=zkd}R
z&_oJYSX236v-$Fio`H297UgQvcXY+U6Gc6)np-zdM44XErf3_g<mXPCicO=H9PRaF
zFraKa8zbRGByQyF;218WVHE3F{ozr+XNP=+<Bs?f>Q|5Fsk|{2RM|cSvZssLCQh?|
z3U}jmXbf(;;)Z1@ReD_coX@h_;F5y8Vk)brrR4YY&AlS#p}M{&S&pYKy}Hfx^~J<Y
zNw~YA`~Wp%SBH1FT8hstm~1mSO9qW#(0B!if>@|O9VyVKLr~!0k92diIm`$I!&n6=
zfud&2g?Ud4|8&E#p%V5d%jH8CmQa}&tSpp%KL)c!5kTP(h;Ili$_+%&NnQUIM1bNR
zD;%*o2{IWV$dp<!qz3fIAzVxJf!Jh`a0n%_I4`hxM<^e<`ZM{Tdyl4l=+vyg@Mz_Z
zMK1m1p_2LJPrE28ctr^M8igmw4pPm(RssCtWMq1RmG0vz?f&^&a0h#bF;6LaEn#61
zTFF$8W=XHG1-VZ0?1yrXq~6B}N||N#oUcj(u8or}4Hl8LI?^Vyox_Gj>rd!%cmfN@
zPwGT}S50b&s$BNDii=4?@e*>w_`Ly^E`gs>Q^XAylTky42ImJPGN+T2b2j|m-L4KR
zyCjgQIf=*e^d97=A@_wd&!-g!w5+JnhytA!_7~PVC~O3J(9=NSJctY6{B?hu?mRjz
zY=3|I(4ln&DguZ5h`W%reOKCL4W<vuV2+#x*r63x0w`8nQK%sP1S|M(Q2=j(UGRcf
z!NUE4zzd9bLN1(52byM*p}{noHlp(e_?tHVAHLlj;N^-dAX&oC03og)0l4izaSn3E
zO|d=6am$KpIsn&;{B08gfuVnkxxWoSmmmOe$hsF|EWV5AJ80wQrXb(n+lY!S{6(7)
z1K~P<I%Vx%K8}8&M2*ugnUDXRCjkEOm{b&xGdtnKV1C*+NGdmKRIj(#cHN($D$M4P
z`gp|(>sgz;+jvM8@ABo-lnZQcmFoQ87Wz#HX`J@^p7826FV5!zTj|fz4@+ZCO9RT`
zo8(7iTIWyOrD|8qSqt>i&n^XEX;3Fu<9rq8z=<f&7o>RJ6fHDR#(@<VY;#Y*vHmeh
zx8-MY^{d_yefZ&hk-0He6Q-_>dF~0-5?l_5>(IFA5>a8spSuZig5J$1jD1XV(8vYN
zZk`zUeEn0oT<tyZmmp$6`b${LE7MdrJ2kZ?7V49Qc`cHQaWl(`S0*;Y<uh5-5^`OH
zNg6&DtJYJ0*{Y$E*<0OkKA&-`c24-%oV^t(PJ@l~Cm)`Ba!ccGA9DRgXPK6<TnAtY
zbJJVf(Oy429SAEKpUgsKU0~t!r)HdYPD=!SVJD&wvaa{mk~zCgQ0oGjHQ~ne*~aAH
z4&mv<ka?rqCU?HW=~Ibi{pcf^am*S2GZD$7Z}RZ^(~VfBJJ}bZ4@Ms~84iuRs4FM2
z_RznLn%~2oDiwjz;9=3VKZKY*)(+bwQJ5wpu8FZlBRe!&p_u5OD-3q8P@BYfZs(W<
zd=@CCs1i2@FsV|v66aU)JAnBkFbM;jky75YmVokDWb4hm7o+DtHYMJ%<_&oE^7>B<
zyLHa{bOr&M&zKTSQVbnT7h5(0lNpwyqbZkF>Ks2?$^ea_GP#j|*3qG|m;XInp3~l8
z)SuCV$~UqmjukS-Gqs#l2}#vq9AJcqd@won>_NtJSy6jdPwQ67*X7rVHoI~B=RFat
zW{5_UC#Tc4yDV&+9%QPw@Pu}-`=!2uT!5+0*g-{9+xE<|M`~Kh>MdL>(Fh5RQYi+a
zga34Z0mCa2_Yycsz>hgNLvr~Ojwe-eHf=-@GUK@eGRuWi9-sM@o1P6RnytsWI9+Ph
zYOdHP5jn2WJXz^;NoA(>=$?-xU6oGdHD((0k3Vg4R_s-gz>Pa!SgyRytuL%l@n!d@
ze8pWa*Qk(d@vx6i<JsM;><TlNv#m=U8;Cgira&1gS*b8h^GJCYjMg}*Ks-l0x4SW|
z@6<x(&rDC>_?i*9kl{HcOp|Ou$iXN&cYehvc8gOgx@qrGSypL;*5GO98z)X><~}T$
zRWw|neYafQtgD~Cl0LU>*0TJJXFRsunKaeyJf(2c8t$VNyswdN>}aHjRyX}~w@ck#
zQKa3!{o83V>W?=$*K?Xo%=(pu9RFo2kvVkEQ92sfBl74h7pD?gpN9tAbdh^W$#R9^
zP0Anv$UJJ0*(FD4BPC_wWN`DXM`qIb9^qT=Er24VV*l8}U8Qg$#M~plVq(nq>z-pu
zb!{BBV}kTL9<-JDLZ`2(aS>zl=5qs*=c)zRnlum<oL2c9HX8lvZY>&bLEcpN#fZ3U
z<D@}(R!70qr>k(6&$P8=SwYpS^#P7&UdJ~)erB(OMl5JF)c*}9k=F!&a0dSt(Y*Z?
zRZW^miZNtfY2=zdAQOBHiPP(*X8$Z@hTZyRjs_~SHZHj!K1`jQ7sX@4C+a!m-F&{i
zCF5qRE2)E!P|5LEV#Ycw_bLSIEWYv@w_Vp`IHM)2P^n=?iA@UO7=ai+#B%Fn31(r6
zl__GGrd>TZs$@*Wq0ZTP5&t~~&AlJNHtUF%N9mY%qE)XG-%?F0ZqpoVHT0{m^;~hn
zIz|gzc$x2{Goq0NI;9l&aQ*2-JNkOVv!+tTF{0WJVYK-z8j$fnM*|+JDk7btkRayB
zExgtxw!18vyNCqs^$@PD2nqwRS%kn94?b|IlqWF%Juegt6|4X2s~P|!{<I;N`Wm&{
zfRD?{BWj^+?u351pxT0ZPa*S1`#TS-z{EsIs<N~1sX=-yVVpvZJYx67c5<>U-RX{A
z*WI*>^FO^-BJ^(Ov(mc?RlfLnZ^@oOvVoP`Ttv{SVf{qkBQi>_a}Ev3<(t(^9=vNG
zTl^uBnfk@F;w2h2a{TYw7R2)2P^X)EyiB!!)&Jt5<<w3@MpsHFLC3?b@G4d@@8M$v
zOpSCeB{xW~ag|k7EkQo5$Q>&+IsaJLTQxaKC*PtIyVM(xP|{GJ=7ze?CGl{msf`#%
z*AAJxLQj<+W<OhcIhy`QqpAMQo7_JEnf8_ZWQVquQ<k5~242%Ki@SqoK-O0d97<#A
z$i>`zi1M<ZsY2VG39+zLyK_lJ<gb#K==;3uTE6GaGGFr>b|1Mi{_Ua;Yo+4iZ2XTK
zM#5h`8TjSC?P*TxJ>rku-2J}&Q+;yXt>t(aRPkazQJjN1H-w=}DFyS~^W5&#Qwq|z
zeiCbax8_S6D@8O5b!F9d>rv)n^zRawMOo4~W8z+Vpj)b2TIOezlVe3F1Q|%F8BJb|
zsk%j@YFMODTCp2f!Olthy^VV@L+;eZhqrGz9to<QG`m{cJ0fO5R>!=MbOR#eoP@@v
ziQ+!|GUWbd9ZBtLCIq%CTzFfENV<PWHm_sq+2@f#^fT;5MiKMI%(B!tETMkltZf=A
zqp!U7k|&G9e!}<cBIuJ}CP%7X7`<p6Ph!bYmz*S&V#v}f*{$;$4@R*Nr>m82c0=L9
zx!2p5+hE7H92>KXghsD0HC9PE+d|S;Nbm-j7nE5A=$eQN%Y*CZRUU<u%}d@@`2?{q
z52smDtEQ57)SzKBuqvTHWksUsmN<Co=ZC4&@}3!*pKorg<2dfdUHg3;q03Gu20T6f
zbozxIcuK*6Q-@FP3H=2SS94M;r7RWcDK(_WOitywq<`|9aDrFDO^q5+tmtivd@)b>
zHtze)ALiB9F7a=^?!3f*m0S1tS8mo?XM>Zq+sn_Hy@wx<YYkTfsNC}36uQHDU;fAN
zoU-=DMIYsU!D|<9Q5ks3(+tE>-!&TE!wl-$g54CQlh45C3JgSaUK)M-K9{q$Sm{DH
z1uIl&QHyg<{9_=-+T^J^k-f=SJ8U|_d$+aDab2X##GHya5o4)ectxwWOen>^OV^lB
zA?59PYB$<f<>9QdA6LnGV?%$(6~It%kYC1+7$CCzsm!kSH6mSQ0bQ~iQr8Az-!R<n
z$&|?ao3Cv1(uzIE<P}VT#d4P^{b?>?)U3mgC!PVjQ+@{DV&(6gS&|>QeMjKkYro>j
z*w5DyYc+XiRKLW3(s4h>kbLpsHn8;E8e5zT7IeSZFrq>>R7x*G9~i5||9Y{<6W{+W
z=To)drhFB+hcw4bva+abg>?V{J&eCFLF)mthfLnJ?L>@Ke#~v>f?=rFJBf9Mi2PBZ
z?IyRA!ORG91m~{EQu%h%jWMSc@v{EUVvhx9EH-JFv6bJqI9{S=7_d{VUMERhzU7Z*
zxS>;`|6-FVrw^oE0h>&y=vk(q3rcrRV4RNyhGSwL8EHBYSkvz~1rG(g4e?D|xWNtQ
zV$0{@5w2TVg=MT8s#;itMZ8^P{B*DNrYQWW7NuNd-ea}%N7HOmww>zWdo7)FI$b{6
zTa-PAr}7Py@e~z9P_ZZ@&63f%J+)483A4x1$KOsZlQj7^(KPkMQ3PVvV5LB49>mgK
zOt-(^lJ&h`L*Dta71XiJtgOA;@tUVhU0liV52y8X7RAX`s(5ME`~1S+a2~UJK13rJ
zbc!<o;r!{CQtOx1!xkmRg=_GuyC-wTo`5{Lmown}K(mKK6t$oef{k*02ar}2Nr4Wf
z^Hp|P<0tFbPIkIh%jl#^Wf3c`D}H)iY)ba>W<^b&&)x^08!autEm)T}rN%nNNPCX^
z-|(xSa;tfEmm-2wUi%)ec|3ObIY<Y6lLwAtcr!KrgI5za>A9zab%cX^RMLMywYszo
zN>bK^+T=C3zYkpbrb2YFV@#<Ce*Q942GbrFUx-4^W5}suyyC-bQyX`mnwfE<=|d}=
z1<qORaR#OPCT+V|4g!LPF6*U9Z15OFkI)Hc^1JffQg+{V@Xp?y_#V8uh2_ng{5wY&
zhC=fEHb4LTBLrk~2Hu|ljp$liE*_TvlKZ%ojz$}nQ3r<-aTW2ApUKT<BmBO@W8Nld
zl`!E>bTPb{olh<E+)HP~?g#s;^(8*dB$mTt;$yH~(?PuBBQSHf_bjKqzE&<2U7wl-
z7(_;+;SXz8h;8-ZxykU0B~N!<lury@qOZktV+hJ6xMd$~p3BD*+HeX#L}z6nL1T<g
zFP~ms)Iv$vYGjvwFM;hTUu2mvf8i<a^j#3_e&VsSp3rMu2qM^{8~;vr0hg<8N5EYQ
zdt6mtMf-Qp9Lc==+4=4*3l0g)mSE+sX~aT4c&%$H>Z_$i|27U$pshpE{Q((KOcc0!
zxL)?uweoa#@@6yp7aHRKKt_ZCG9ru(SeO1E$cSQ+|ACAMJ7h2&GV9o2ha9GV$cV55
z7}GznqW#N2(+SNaB#>l834j;`j3d<Ve^7ps(!wZK74k1)FeGMAQdo5V*FS#(7{UF6
z0Qe^<4ERm|yWgn$A3j=KLRbW;^Gk{$$%`;aBs&l$B@A4#B%#6p;slt303rng9U#so
z3C<M*d^%y!N<bMzMJ*vgQo_JCD=i`nRPOy_lA_2n01purr2tAuP#LPhFqkj^iGe$V
zo1q?f_~66pApZq7K}C%Kx*!s<h`LZ*Oc=>%+y6h{4FU)xKt)O%NMQf(sCMoD`9O&K
zQa!i|C9(bgONa=A-6^QFFcKpOc$MP&lK$6&`!d)+asT&z6^?L*`@R3~WBPDt{DL$5
zAHanGmIvPOe+Df?!U~Uog`nj}s6iCA5ODUy0cKAEaQXgcbRodR9bNf<0x3ko36Vbl
z_xBH=kPYw&g)h5$+S=K(p)iHNp$gdmsqp9wQ2YOLXdxStS$Oz_19aj45B$RYIe$11
z0HG4h7NqF|i8BKlFAO!kPzB^XLVjN%3!v9wz<_^HKpsI3edG}&m=HxcLlwZF2fn%o
zN5BLHYsWzWc?0Bz4(c?39|cqMpa33v1hE5bJlGM$4(wm=e;6aL0qYIyh+79#0@x9^
z4!GXKj<|IIys@vDqOJiCJ)+iu+ro~Zbzt)EzaUYkA)AfVJdg!&3Jd@T4hrA~D8>Wo
z2)F@Y&m9~AHxNB+0-)Hzz#izq5zqt_6&867fWg2}Zxd7jG~o!_2wcWtV8PnI1}qT!
zQI)9Ekk2`+0YKF4$M>O*fae@B908yXhFY<ZM*yF0KR5_g0JlCOD5A)_hdl>^xA(&r
zP^W>$9pNDX<`IT+ZATqJKIgCoNO~X&O@=%IdKz{Fs02L?JAzt*Q((|TfgtIDup`7J
zk{$><0yiQfMPWzeMkGBDhH@Q4-X2L0gdMRPMUep7BX}d=dV<nnt-u5Uu+qap2q2%J
zbl5k5_6bTybwOfoj|h%{{|QQm15p(88ch69I!In1><Hp03i=IpL~%s&0%5>DwBKJy
zULfp<<A~%1!j3?W03QlUM|A<gnXn_2qbTS-*b&PSkVQdhzb^m!3PwKVaDpE20+DFM
zKUIR4)0!`jv5|*&tYSnFCBQGReYpOti-upf;7gvN?_%C!@hi~?<5yK1S?gzZ`Q(BV
z6if<5h%dH3&CGvmljKD*?mdCmLi~Mp_`%PD8)cvC8%96xxHXM$nttrr(Oo9_=vl+D
zRxRt}pYp8lUDnJO|MJcc-$M4brzg*Td8pVh%rZWI;^Wr`avvRYt+U(i7kJHP6ZHiv
zExdn7Mw7+lNAIt8QeR5wcwn@W+5}^2j(j#Fr4kuJ(T56i^1X!{wxduK-M2Q<yU%eg
z@#i=&4GD(zIrttU`bYT4@inLf@8b&$MK%xy<q7*eYNQaC;^Ti><dJc%ZHi4kXtbW~
zyg^`F?I2t8`@5VX@E4WEY#ACPR~hFa+avt$`fB}9{lePz+3MPdY_D-G1p99*nY=hP
zkBk4{wxCA;41_$ENeVYp0`Bo1(w??$E2&h4%V8O>n=7TCm1~oGU6}kLd{r%guqmfg
z*@Ferhy6uSO4f0Y;Q7|)ENEccn+q7<LI-nUfj?!*6ChQ@xFx<!LMpw4#veFb&MY&m
z^gFy$a}$?a;e=z*X3D9CtrB@Bh7)+xMNoL>o=~4C&SeVZCBj@=I!PusS;XS4Z76z1
zZ`<8%xe!OV$|*?DBZVzF(fY1mM*DG%cO_2dqWS*m>dVL83w>mo6DPBkvcM*+mbzx0
zdHUpYyV$k4Hs{+PRIg1{rhV(ie9N_92(|N({NV1+3b62GGd^#=)rXHfntjW8X7z)?
zjhg|GKo?7w-?U&D3di}&K!k#Y;!g+St2gqOLqw?Y+&FQ$PB3BI$(@K!95Bq(wkrZ#
zA|-md9i(ON=;PZB+_Bq<@tqkMcfWC&@i{9;hu&bHJD<3@S2=2a$>V0yaYVnap5qN&
zQtAMB=CSMwOS(os|Bh#r_fInsW`B%}A6&id=YOMd(sR>Il}~ST=GM(6oOEBYml|=s
z5i0e%EdzzUJdZQg%XFvG`6xe&UB<=9X2@ypF%8-3>S7bW1n1!yxx=5<)|>xOfG@E+
zo1n`~z&PqSf9pva!nV7FVH^fwdU48mx<OKB@S{x6l=N1~MCSC26if0y)>`V+tx~4Y
zj8kUU)R2tom@7<H?o5{<D`8tap&6pJRAKxmC^O*xOkY%4=-F?WLcacjr%iW1eNL0W
zd4x+9I3&!`7*F77nc;lR15X_yB1?BNr=yaA&H2L`MaJExEu3&qYbucsf`YV=N%l%k
zb)k@W+H=khMFjVmBn+%^xY*Q1=?5z{-}vHGx8MCp8dP>VH{~(ac-j^P0#aj`_IuJY
z7z(NSYmb8U>Q8&L{tYU432)^I$SuR209V9_VlRPL7)PJP<;tKVrxFnhgty6=vKAyH
zK2|-Gj2%ArRr_HUzRua1JI4adzqkl^xL;T>?0a{)*Z!Tcx+3EZ8;|P)hHq6Rx7WMZ
zGGlx{=(%0_Absq695M&{r1cHo;`iTF6zMD!-0S;q^utaLws?_|Ykkf7lEtncuY|#e
z9hJzg59!4+!46C0)C?6O<RGMeAsMKHmqjW-+GE?<5oE%OD+rOsATLmYVRZ7%80h2E
zHe=wEu~Cdcb~X^?r8eW*A@$hLNcvO@SlxH;7UD;!-Yfrcx+AzibS2&3bu+u4F66!E
zC?wLe^R+T=dAm6s4h>Gs#N8Ff!Dng@nq@}dPA=t{FcVh{Ii(*k6B0HJH;6^%D9)rW
zU4vqL(5z_FIf?OaWJ?VEvcFF-6w~&X?)aPR1<S)A<*W!fWFnb3$ZQq=Bh_d-;<&!x
z=s!^u4J8Q^^ZKP_Mcx#chJvIQG$(X0Yq>(_)gQdMlz4i%bn$wGr_rFwG{e;o_n*%&
zZ%_DzDTjXK%9_0=+4*B2CcN^)QrbMuJr+Asr;@HaR@8>wQ!COe$1yuE66H!YyJ_o{
zJ4(^qpP^n@xJ9E^PUpeUTaw(Z<s@oFt#_7?d`wQZ7D4+eWXdE_AJ+~;fcJqOLvIGu
zjygMfZNXpew#`E28~<0`-EZF|)myIh4%8;pcZNmZnUUYyUE8buz`>t2n&1|DEPA2A
z3XSlPFZf@ChkQ%_=~zax2}O`$m{`^xR5+?socqQfXkso#2H8#R-dXq6nb&0JM4+Dl
z(18FLfOZ5@s8b8w7i4jy1nJxtp7EVz6re+a*LEX<@n%Hn=rVw%rx}8IFV>))&n89r
z9Bx?Ku>&SW_c6j3Xxe~gze^nGBY)b4vXN$OutyU(8Ons|+r_!05TsRNU7xQnm=Ti8
zOE#q?e_el_*74&@Ic*m9sb;1U(I=m6&yhnHJlXBmXtXDJbG`^kkLhflxjXkWm4&r<
z9bWjw@Eh0y)W3`2RZV7nD`rdkyKCeYv3cuu?e!biYma?fojO^-aiRFLF}Ea#Wijd5
z&(b<N_beqzf5Zn!vxq$RklP)9RanVVzvs7Pi<qzLt}~C__8l31^TZ%v(DK;1$5oPz
zFDj=Syn?r1)ttx{QLeAo;WaUd^PLHe>Ry)j4AycT!{RkjcN-@#5*hOduA;7P-VL9I
zndlph;Svc(zZWs+y25zsI{33#+Iu)o*QN5bIl98W7w%)5wVLtGJLX&+BL1{#HsuP(
zx<pU4dlH`|XAY?{mb79c>U%{pbGMcNx7Pb|u(EJw7CbR#j^|Xn7gZ_SGlDm-nL&1;
zQxUQ`G4tf=4puVQgSC;Q&7Q({RWn@hNSmVxNSohTY}Ng6Dcr(zz#8E0<tik5k~q)a
z3%`peHGS*LbO6y^Un#;4^UHhdR%ahEj=ZYPJt=uVc=CB}K;xp5@PiLEHx_Y^-LI{o
z9-p<{<wG+V(Ac}h{sOPJ{H7j>@qoa?h=ajuP|I6%m#g(H;dan<zDlEr{^I4)Jno#&
z8f*7vDCC^+&)T&O^wqY8DmgV_hA7g1v0dmj(M!%cIfYN<(bYvf>lyoqQb8&HlfAPo
zZ%M?7ujQJ`a(O<GsfU?(Ngt;-);^Q8PFY1!wh~J6j6(AThc2g-GJG_p_#A6Ok=`o9
zD_jz3{@H^0eAwJ~%6R*$>YwsR<}JphHpvLG-?9g7R)5rJs3NG>#at9xZxU|GlB_5C
z;9AFaHqUqY;~g9OYwH}J1vk~c27I|uoil#olVx_vv5%g5i=r2c$CJP7?c{0fgl!B4
zu8$|K^DbCkzQ((_X@kHUkLVP7%F$~hNLy>$i$kRTsW%4^(-IKXC{k+V9m@L5W$!f_
zsUx-jUzQQ^zj-C5plC<oW_Cq0;EmV_;Yw2CR(WBF@h`6WL+n14D?F**L7GA!0jI*a
zw3j0{ITnj^z(bE~dtd$3Zd6(doq3q%{77G|!FU$*SL+i#oo87ORulK?0w^D7+e(%Q
zsd-sdtDUtd8A-3!NGf}%cZR(Jdey9GSI^kN*<OR>)yo9xrdWtq<#Rpq9XCQayuV+l
zDXWQd@1FE!=XoZfl^R<jr?0VzI8k_|IKgRt(jIl!&UTv1>uX-Zr-xH*IJ>Wtz=V~a
zLW6pP2-xn6?Bc%WS8}T(az6H6xc`d+@q!3Z;yOj_B0?6v^V3uXa*lv}I0jEBe?aNd
zF&4^{){xe>s&U0uxh|smK0a5oXYO6*Ia`?!M#g`u<Gdyt<!z#LxMw*|%9@1|hD(dJ
z>cB3(NZ4hf8CInZH>MUDue$h_ZCeqHEgwIVBts(a<r(I@)O;2UqBka1+`(szttT%o
z5uM$l@{5;fqzq|;WUz)*m07SpZjAe~LK?19(pLQG>2zWIVrMKf`*+{5Fh3iLPpLJu
zmSju)XaZeP5cprZ9Qqg3#^K~fy-+3cc6RElQ!Sk3CvuzG2JgL_k)z^2RasGEQd|(G
zZZ<ivVc?CeP3S(|`|?ZBH`k?nlN&;^<Gn97&vZo08Xns@$(m9p;CVIwtG0LO@C)6#
zj)Ld4{()CXwyQ22XH&d3m^gB5XM16mW%c`Pu`v7i{H5X;#v(}>_j9o}Gbchu3AiI`
zs9rKz_l%Nz8HU1|gY*sRC)@Zpj0Fte#L0=9Uy^xft#+Y}reqWIa<dYqkQNoaQ>`6W
zZ&A^Um5o@EnERpg6a;1qw_rpWTmIwsGN*;%I~WUTudWbx+|HxOcbyV-FT)jIX4wvT
z>9$2QrPyMbeQB5F)#(hJ#v5S^Oamcj?!f0tmznQWL1Wt-)@6C~J+vJeoK03z%N=Y7
zSEX&dszyWW8#E-sntwo3D^0%e5c-NUah+XzbCoh`Gxs8t*$)=Mw|+9J$|(N6Cz;V)
zS%(SFWNEmdHx`eSraGE=ipD<|3T%*n`l?(`eXJKILLII{r&+gxzm7v)a&mfT=DMz}
z$Us-KRPntKbq8;8mM{&tEgO@so>?vdd#gF`iJpZK*r(l;wPQYMIo*OuQ94&R!cuAz
zw`;vqcSCxXRQepQb4Wfo@zw9#%DTZk&Fzm<n5Sc8zX79v`{0M4Rf%#RVtDy094;*3
zFy5)jX(v#UjZoyF^`Z7|^%F?&%#XrkiZ#YG<_sIMi7%htNm^HjXw;2ok~`~A5XTm`
z8)D`>Rd>)*zPGlKR!(OV!k!aK$w(+l@P#+pbGGY@Xkn{TN=*rMF+|H%%MQAxO7K0l
zDe;O1JYUGrG4!~ht*x-(bCoEcJd%8vkyHF^E;b^X)Wd!;ecaXebm`SMrWy~gu2x|A
zJqo>@;McJ|<2$%n_H}{M{stND4`of$(V+K6(_d*~;R1OK&jZ~Us+H`t1WT>qX?z=;
z{B?ayZPd&Q%}qSfBK`C$S;2}ctUP_CXd*07X%&8*ZD7CdPdlzYxgI&&I?`PpcfsT^
ze_(c7olJ=Sx7l_P)pNie6$_P>otf&$i%TAxP2aw-(b%?q<w8xWtcS)eK|S*;i!9I|
z)+5p~=N@)SudcXArs{qjlc`>ysk>xq@vM4elQ-+~Wnpvs!7|_<e%19snUNy{E=?(}
z<1J!HY%Dj22<4S<Tu0}5>8r+~yuAHZwo@f(tF_(Lms6tsUPe?t%Efe1B5ECag?QW&
z;pZVVZ(LOL(_1lQpc>mb9)JDfi<f*ZaV$S+9=}^Dyd!e^G12|I+g+F&v&yIN@tSvJ
znP@4}43;FN#&;CqKY5vOdbm&BXwni<h#i2ReD7O?CvS5i`klt0pbvi`kxJ{sP-fSD
z+yM@lXWw)0kmT*`tBJ68`7^Ih-lH5|RE{du?Q_n*z-%clZ7QuX^F;i(ZQ;tKhQvkk
zGO~!Y4jt9Ggd|P#3ndllsr6N?SSLc2&`dbwR@*QAhD=WLr~URSRWW`DxZg1sl+W;J
zM4o_X!Oz<>sGHJ8@h6T(V;W#^<KUa}7@G@H;!WVcq%bTjUtRg}$y@y-13RI4?AqEB
zMaB1b<Sm}nj>~V9HEwJ^WZ8P?KT~~f&*GCp-7*iXy201`cyl%D*sG5ck9NJLGe6O}
zz1j;y>@M{9j*LC`Ta+Cc+ZoAm9k2OWCRseBQR3ClXw(!sPRmAT)Ew&u31km%hRdZ5
zwBBLy)#VPQyumi~xDUgn{Bb<%=*pUAprJuOTS}3o`UipFIBf$_{e0^T0_Ub|TVjFa
z{J6Cx>>bK-Yr5!L?;L4D-cIP_nwpY^z35b8RMHnXl^${iAAz&`ic)W5!uHx5NzwNg
zlXHT#E-_i^#Vhwx>&RU4%GzqucTe7>bE=f%b?CnNxZ}hsqwMGnUS2Wd@zHz4Qx|%b
z{Ej!p-(PLDoyBgrfV*Y~`P~2LMPkbpnnETO(po0{q?I72?jTvgSii!zd^lI)QrIJs
zNa<*=JP>*EgEou<FFCi*kZqY-+TI!8$uK+hC!ApDv_zqPG^;lDccUeR0a>m-OU=3H
zGOH^Q@_1Fu^0oxg9)a7Z;d}C>w&cBeBc)HiPw2j1sF)6ESi<<&tzAv1SbCwvl-2#`
zdp=s#E83Z+b-QD#m1R=4=C{Lc;zj+Ke_1v^Wb!%eX$<!ehx64eoX&vkI^U<)u6>cj
zj`oE8KEhB*Rel*^q9A+ApN=pjR}&d$fM;!l{D3>~-lKx%2LAgOoapp_{DQ;Mjh<cg
zG=Rg4K(G}Y4x-02#ej!B*IV%G=I*|)Jt8pwCj#MC0fI<y4K;1+$p_hZR9%8b@gFl!
z-OPh5S~dJY+%ch~#w200<kXxqa4))<EA<l*L3i`O<qvoJ92(z6bP42<JHr2q)*FG=
zAB0&@B_bPd&Hc$;+Q)q%LNFr(nSUV^p!NM}w4=3+YS(ixvuO^ZEO^@7ed_o?RQQmj
zhzMwHBgRQ`EwRxMEibN{J}FGx5sC!b;FFd@)xGw*JB~XBgnjci8s|k+0-Rs^5ejzd
z|Fk8`!}7?asgQ|dPw`JZkreU3Oy*l6!w<TOV}x&dJ~GwRl#h^>NY>hF0jJf&#AJrg
zBQ%8~&A;JJSH;<AJ{Y~`|JT`-07AWef4l68LS%_bNzH0zDj`cDMWjUu5lIoPDk5!E
zB$XCLi&WYrDO(##rKqG$k?MtZOJx4%`<=nez4Lp2y;m>h%>91vcJ8_7e(qT|wb8!#
z_c3ZSe(`ePi!$X;cQ;FpeVzT`>Q!2smrdfg{dy^L_uDUgJl}E2<8?l}_Q*EZ|8Bl<
zY}d`X2M#O?oEmx{Wq)X(xL1={KPlb5Piclnj!K(dpR~%rF6?lV_r$y#(M|m=<I``;
zyIcto%hpUg5cc@k)*&aoUOI0b(qh$rU19#_<k~9EcCU9io8pYE4f0&PXH4>bcG}}u
z?2<eFMI+AUtZUl(nHilw`or;CIxEke__|dp`=j({rTgiv&QU)v9(}H^C;4D}np#lP
zgt<k-oHGk<X(a5*TLWL~oS$9HvQ^ADSHn#8D6W4oQ#R&s+Kf4!9QW8b<*^OtZ_cwy
zO5=|Fo&UDFbu?qmaSlz-Vb@d<A#6n@nWz1Q6M180UZ8}Ps_fUD>NgnUqkl*}pKIO6
zOkP9!oa$u1zSD*bceP0z6{0<|;ivSi50ku?#)rm-yzgJMbj8CVx?5%%IfZyxL~wo5
zwJRR)O?TSAq)s!;snH~y)*5Sf&1USihqVfJ)KgUZ9fA7PQ>!Kg?`rXPd-QRS;wjx%
z+K*K<Tl$FgQz-ZQdb@1EsN^4mY?SKn$LDq`hprspHh*<oYPh&lr*h!2$Np-SS<e0z
zF4fPKrAm$4#h2u38>H=C!K_zb+q!Q?(rUls=_iBpE6Q}8Jp;wt_s_@*b%@^6|BPe*
z<M|^->@c>N_57T%`RB|?)8-+cZ=X9{pxQkD`c2cjgDgBmh%OOlbvj%Y^_JzIB#k8u
zPd5!Zz6CbNs;go~cGt5nW{vDOJR$XnrJJR_c=Q;EXP5{nN4@>N&es_`(j+P)<n7vv
z#q{hS+yTGZ(%2gYPI+s&J|o_1o#NE!g73e!YMm)s`?9iD;SJ+@E?x3^Zs@u&r7yvH
z53g6hoU^{>$$%#5N|o!+B`zrq8?fI-M~=?eo|E<Rp@Bh3Oh$BcXyvxcRc&9RF6^GC
z??QENl{U?_9W!9L`SzUWFDE)2$T+_+Xt1Aa^Y}0e{}t2cgpaU%Qjx+=AG9ESCZv{R
ztE^mKb$pJE*{~;vJly>1#=oCl=dE|I<f!5^)0QypS=>F;??3h0M*Giu?H~T(&5x;_
zbG3ezpSWIWUpFo=)3Gg1+5YrL#)s9RV}4XWbxgUJ%6$|bHI9~GP@-%5b?0EUgdw!=
zgB}<%4*X{PIyYA7_dh4!-1n*Y+0>rk(X`^tuC|o7dzA{_AFltIvs=Vei8$cX{{mK7
zo=8T)gNW%{mO1Jgv`8elWjTzs9btQfAJS9Hl2RN$;I)zVqC1Kwl7F=6%pQ?wa5%hx
zTU`*GH>O}__1&k<LEfJ)zZ%*2<Hq%UxfeT@xQBlK8JNAs_4SKf+WX7g=Sl6_?cX}v
zeC{?j9-o^W>aRB-JDky;BE5c->NKg6tvbHCvj;~@7<`-ek9N#9?|{DY|D-PWe3P3x
zF%|s5w_3b)m@IdTen3<H#yHESBC2o9?UIBMMltslB_&m}B^tTq`u8cFlG2H;$?5?z
zZXead6S(oe4&GMW5M9Z%@p&C{@W%Phed<*V70P;>l2Gw?-)^eSSC%>UPfdxbda+-{
z9GO#g(~rjHR`~`DckSa&owIRH@nq%t?d9bkkCe#y$`8Lfe9s?gwwO|r)WBilx>my|
zof9G@mcH7s#AnO>@Pr4|<0XDAeN|a1p(c~$F|4njRN{t$!?cLE>+`Q>4vNaZu|OtL
z?T^-*cKcAf5bx8TtWAEa;tYKMd9^0nZ)(_O*2;R>3E$R<@I@k16C(T0-z4j9thjI&
z;B(opL{z5LF)tx7WdG0Z&KBo4r0&{490`w{Zams%yiTfE*(X2!nf`34+qOlM3tlQ|
z-1u{?anq8t_{Euv6!&L%4BR`=tX%H<sl#s$RC;8lX+-V!879WeTJHR)&&n5n<lTZ_
zPE-n9Pv73Db3~kWr*-S2)oQOzRHs^wx0`7-C+h0NGZIZT)Ae<ZS$|X=o80eZQCNcV
zh2c9IRm)6rcC@~Yt2usHdFP%*BX<mVKIn#a$*p&j69#x+c&8D4o?YIomUH`RpZ)fM
zT7Mkx(&cUJ#2*^^?C=YiJmJDf_d~lYGLkIRI|nBhT5Nip@K(g)5OJ!eftf{b<yd27
zk%J@^LI;mr)2GbujpYYvhSupMX#;1I99gTWy2pn7s<O5%deMBp;b?>5&z#Ng*!zxE
zPf!`W>LSNzZK=_|imAgolLLRUZy8QFLeG?KokWrRZvDJ@=Hc{9n}=^37_!n>w&tv_
z-kh-Q;DIo;#*U>ispihAsUL@xZ+oO!F>12T^wDbciGye@vBpL7N@IQ=b~=?9YjnUj
z@owgdb9tTnT33#U$PC>Zo7v*@eDOx7>GqFphW#j-a{1H`(>y=v>3XYnXC>|38)dO=
zXkt=QO5N=_8zwlM+Gy;#Gd1D+>OG8#{y`TRA@1|!_m5pPYwoky<Mke9of)P@ev((d
z${jyD(m}+CinzUJfGI(5NAxluPXuuTcp?N4-l`xunY1I9Qj_$Nu#-_OD}|f;@5bw5
zc4!UO%m4A5qq5CuI%l5G^TVBEi>ps7tXVwf(znP(qwn9pbKT?5@iUEzo#SdxUzwWs
zd3k%ohh@2WE%D1=SR@l6)L%8}25*1T`1<<HioAa!f@KOFPY&GtN#~e);gJqzjCkQ&
z=O}rVtq$SGvn{8d-j^Y+xpT_Sj@hS_-DCrIj2J1i>Qc(!x5vDVM(pe3CcZvy^Zi+8
zLblGC=FM~`{$Bo_^H_cQ%<bggP1Cn5=+7E<`PhU&`;ESd^8JkZPjeh$6jstF-Dc)a
zs*ALkob#PO6Q%b$rw@HX>$m7m^xev1Wl4_$2Puqjb)6L$TAz3(ao4>So69DbD9YL=
zoaCHzXP<N*HSNrPg*5lWzJd9c(fjSw>(|)U)vfWncGq&x{#_^g$CaI&Gp+WA-0UY`
z%Q6G2Ois_HpYcze>OAdewo_o?h3y8iv&wyTN-Hhaelp>O-Q|$AM`yF?E{l_GS3bFJ
zdh+dN-?Xi(!jvDc%!_y&nU<e#k4-me=+h;FdSfX{!7N273^MsDn6iwbbp0-zLz|{=
z3f3%Cu)QH1?*D5NZ8Kq0QE14Fg}%!I!oYr#Z&cG|4+wd!`Gz$DrlR~bt^#%{<YUlx
zc@HWimWE)n5Q%sc9N(yriW#~@r87s7YA2XTa)@lv#5=*#kphXQiEA$k6eNutdG!DN
zFPQoerkxZ>2~5~fQfZV?fX{PSqeu&|?r*{9lQ6mga~t9pDw{%>OY#eM7b3og?9^b4
z#D*-`^ses-GFbl*HljTiljI->&u!NTAr_NldStLCGy{7*Gq7reYj((x+-1whf@H&B
z;3b$SnXo+s!_uB)(PWBbXj;!xyrjqakn_0fJw)nb!Su&qFxZp7nV$q1dPM0-$P5Nl
zgiRHU8RSIndJT*PK}1apq5lGJqmpTn1#%<9*F7zPQH58~D1v#B%}5668ZO8f4F+~y
z=2C=xTz76)!akR@Lm&*k2>ZD1%&vqLTz6tu!tf0UJbNp`ysbN}D`A7yoz;~vJL^g6
zN|>GXBy}as&U%u%5{70yNnHukG7^8_nVmrc$@4hx6TGu0sViYj#!u=BohFRQ$n{E=
zBuvD*vn7)zV%_PINfR-!PUaho5oTauGD>_BSVCkv<gPK}n|gJ}I@SOG;|J1dm2@+A
z@($Y?qR;TJuod*5iQSUiI;;x=AS3KZi-Z8W@`?og(<y0{q9i$R{njx4S^sshjtHk*
zGG{Z=V%lHax-TxzbC7gVm9DuoXA4E@@shqFhxFHI)DGPp)v?}#IPI%$8SZLay<o<)
zV?X<@O?nA=h`_t~<>#P*mzKufEZ*n6U#sf%lLXV2A@(<(Q44PUbg&=!>gi?Ak?xEs
z!^7*0(m%SVs~=z4(b;_ASio8f?@z7~iM#wAPBf^9NzD80z=+&`w10F;)tHW!v9i^}
zA~^bPFPp^Iyh|6Wk3Br3M*YW+Oz%|Agwt>RUb{EuIREkq*52=Pc3{$!{uZk%6l3qa
zP0x1SVkQ0Mk?qh(i(Lzbo0pFciQ9Ju+ZW8>fPtZ>)W5jdr!$|>sje`yyr^x~JmZ93
zMo(J5R%2s;we$vlB3H|=DjS2mxP`6fHbwoB+%Q*qOOlD$&b6vEahr?gVmlj3>cmw`
zw;lEs+o@>1xsEGtR0p8Xh6!Du&+~Ua)gn45;#l=J?t_c(LA(@8)lF}wj*M9tDh@II
zb2n{Qbyf@j7k57BGuwacxy!GOUR$=;jQMt=uhy#Al?x`n+>vv0lZU~9WT#sP5}JKa
z8DDLGow<@xHfgl))bPRkmYKb;eVaAJ{NQ%BQOb8(-GkVRNjp7Kn}RL998<T7CzR-4
zxGNvk{@6HGzebNaIzv8kl=JB0(pUbuDR=HohwbtP>6X?Ztu<-#dyme@xz+T=eeT)U
zX4iekmCJ6Y@2^mE?Q{_lP(mmrJbxKe|H5sFPJK+L6O%1Lx*_wI@q9E?mZr!5ALcQc
z2=dr5aY&Vw6n%G}Hc87PosyD2ie)1;lPy@46iTFj#(b|%*}<KZD(kI!A@3kyOtYTi
zFC_?;1#$ekW8^dq@Qf5O=ORuER51GOt!_&<<0nFr@-bA9p3jFY4e3babIpDKJFr{S
zi1|b&&}6+zN=Ibt;kVq{&P@;oMdf_KE(rc56U+SyAqc&^*4L_37ByI2>V(W$#rz=W
zUcQ#2MD$67zW!Hnjk@M;S~+AorMgkf_$hv~#pEHy?*U8S?i9b<OmlvkufOrHDSpfJ
zG#j)!BWt+vHs>R~GW^9H%abxD4(X&*qPG&EZZsn(U${4&i<dw^qfWg9FRu5)u0S^n
z=T96cqJJW;aj4+f)9X3QE~gW@tK7?((<o-sDNJWx24gcR=w9+bD}nAQ5eZz;?peBk
zEJ{5@h$3m3PFcuj7OANjQAMR#)C7B3h{Y(C$+l`I>y^+c5n|qJWbWwc2g$lkFE0El
zJBT~qt97E%w);WJuk;neR7w_mt&}h*xvzg^!ymDq3Vg$=EmWThtk(c%ix9t{qW*2K
zC4J^Y2qQ_J^fh$F81;XLFzVV_HLJ8VHCv-*>Tdb01wke0ln&Xqe-srh8lrqQ^nb>p
zRC2j*#BTCg^d{G2sff-HdM&o+_WmZ${BD86O=nH%uWB@@{P$<IV%rWCuBmVjNYl*d
zU#4GKY85kKxjKXtaV4V8*Y$1ssCxa-qVl(_gBH7<|8h&Q+ja6ad!5O9*E?YgH0JAM
z>s`#eJ^u5mQO!|js(!nuwAWs%djETh;{}s-!=L0i<V|xkRUP-Z{3b(uMh?Sp4_*D0
z^3d<vzWFDDedoQM@%u~Jb$!K-LYqO(SsP9ni245$74s}+Z_?gvm)_0^$vrNel5o>-
z>X^EP3VWF$G9iXuGh%8?a-I96wHvlv9#^W8sOoMiVuVE40@D5>Bh|*T3xN`#m6V$d
zkMS;Dbmm>h`qkGy%gaZn%8+3(q^wM()qIBK9&R3gdummv!t)PL^phPnN!~0=S(t61
zro?<?mwDgDBkinV+n$`8-Wg|FgD+J(So9xTkz=^x)`hBNnFSW@+p9W#Q+HOSJup<#
zNK|Hu9lW}`MXRVaaa7VSYiG&i)%PiDMyS@wYChXwWlnE+J>2rwT1mICn#QzM?ne!G
zbKegMmY@ASVx|8a?d8wjb5#y{(T1*#iv7^;DbwcQH)4kQfXNgQBO}7XkO~TOZx_OL
zB8Up%1u7REH9YIG>OqB%OID~&Hjwg>x}utOQPs-X(IEC|>7&pj9h*55%_hhz#69bH
zxcOYI{iMVR15F;g#u}waTtDKj;}Dy)XotpRrC8I28+}Tt@|TXZH!ii?dG>>PYDs`b
z!pozjlOzha4S8C9?nd>D+I^C@WW`ED-DikRm)8B9BsPBZwans8L4`hhSb@d0(@)$U
zof2{HqvXN5&F@s!ifhO~gb-O3^Nk|<FG3Ha!SS!R{b$DWq7rlc;x-O1Q<${E({k4w
z#hEcu4`2`u?%qgP`y2_``11XuW_#Zvjj9KxH_mL>Ym#4on0vVGME<yfn#4upJwjfE
zxPA|_4R)I`c+bm`%DYa?n62#gGHkBPQbSt*o2HT1BlDdv%$au~!z3c1%uvb1u0HCO
z)G?_+4FLz2YGqkO$#YbvL{&)~Fnl$6bhyRfpHrl@ldia23ktT|Wt5ViHZ3V-LV-rV
zuLllx+P~g5+_&nsj@b%|tAhFBRH>lbc}kY7U3yz(XMf9@_hX&OtBWpc)G}Qk|KZAh
zwt6P{>XF`<<uh>~SQhE-g-M;>UvbQhC;f+Q3ohSwaII0WslF;!_2AC5+}#rrLZYPl
z+uBGc4Yw@6vnI>@uCBME#-n7HklpW?k)2$6?Uj|<OP>E|+`sPOx_f$q*6sY_7IbwU
zck1i-EbWZdes5fUWYCy5)wpZ95z{WM$@ib$vbMZTTWO75O4L$`1yTDXg3iuQ2?~9*
zK*LFn;%CE586fp!*7`+t1AlpzXT~VlWljAj;C8w;b@h<x&*kq74*8_m7`0;bWCiKm
zH$`=+Eylw?E;q>4R6Tz~Zc5{?IbQY0EX00N$`$^I5BlOIB6p~OaP9>HL}g<L5S30k
zIl-0%zP9||g%KbsxC+A&S|4=E{|f&wpx(*eVao_e2M+T92Jzt^R+q<L7r3F%>T(F|
zfqz(hPr#nDEAKJj4|xwd8ysYN{vozr@)Q3@&o?ycDAFm6DDm%qSm5$XC}ur>z#W-%
z&FY~D{>HDbhXn4gq`z|yh4&ksbPXnc=auM&dw8Ah;&<Lec8v%E_Xs<%>VyAk7q-F#
zs0ZA;m^}~-6EGC=e{eZv0_+3Wx`0C~>4Yi_1cA#e;0tVK_d9VQh=6!VS2+UT>8cvw
zD*~PX+zqgs9wJl;lPw6;@TRh>qu$`tX4dWA2QF<q)rmkiz@v@T?Y{}VVs*Q0g1aWG
z+hG!Jky+iIorF_0DLBX%5U=iX!z1t<5<DQjfgbWs$ixQ%&jBYxK2Sn<0Fvh^;wz#*
zX7D}#JHqRZ?_Mg%h$1vxcwetYJe~H8e%_hlEaq+PC~eKx_4JjZH>q|<Ce=Ue_(pPa
z`2Y3*D4|xeDp?&CVp00pI+A?VRCc@0J$y$JnKK;Vq2BIDd5?({*P1dliONQAZuIS#
z;$>hkeOSL+HZp1{I@=(bNWij9N0&nAj}pt-Cl}iXc03Q7pj)kM`sJRHZn2K_w)V{r
z6Q+LCERxRIzd7)fr?UT~FfWff>UqBc`H}P9Hilb>J3b5Bw%#u%j`Gs_P+G%g{TO4v
z#X)l4d~MfWc1il<bJA(V;_`q$?v7(k``RrWxy}CMpy_9=76)bJUtWIvX;a>z*0hdY
zdJj&#Yyb1<UQ4x3&?xIEmk%7i|73QK`Kok{>fF2`zsf&f@?RMK<t5khiAtP~*;g^e
zE9Y?0$^x_v*L;CHdOKFP6Uj)8o2IVn^YX~V@;u8$*Hrya8#txu$~RV~sY@&_RyJ*H
zu=FhR@Vx0UBVKFUlL~uz36(*TdwwlVY&zD?oxc3)vFJU^mfD(h%7>eLQ#&2IVPjm$
z-OsXTwaX4?oT3!eQtI!UuZ#S1eSUsKPFlYoO6Ggru6tcF5Gz+J+~a>fd&8j*Wz|-e
z@qup2|0ti89x2<R_`IaH@H|^0W1ft8j-O0z^W{99cY4;>B=xe-#x_|w^|h0Y^ZYKC
zv-aQ^aeKuP;wQxtEX_Ah@lt3kC~T=tkxP1i=-Q&Ps2652+E2f6hK{F5heaE#KNJ-V
zxtrb&4cr;MxAfSJlw(Og%ag7t$%y%{-}dmdHN`$#Mf>u1yXfJwKWpBvKi;ohyk_x+
z_*U6}Mx5yo!K0$|X@JvvJMPONfT5%nTnk2C_3@VfqI7+=_$!^~0l6DBi%g`>OxvRB
z?5JQnma33nwJiTmUetwa??O`Y)Z$WI*WR`mYms?aPxs-f8;4W^o5Pyv`DZ>wb+}n?
zkH2&OzPahZP?KiYP=AQ-^Puh1x3(QG-@S`j6zZ6NYIUg7{Y39IA7j*?oDGVa5Nqn?
zJ;qC=eEINI(x(P!FOO4Qd8Te+-i)~9CvC;FlSBRPojWL1n*KH$oY4Zb4{Uy*|NMSH
z$MTe~o4t!OHZNMoO_P7^A?H(h>T>X5pKE^x+wKbAwP|Yp`YGDE$AU|@1>p`!Eb>;P
zORn-!puY)?dHWHWBuJ)atd9JZ);@U}<&2r8(ast2D|qR$)!mluCVcDit%__Zvv;|>
zEn7yp$$Gi-<)34pp7|B(vT}xA9e(vm{l;TTZP_1}e*IWBL;beV&<0r}ne@qnb-ypU
zHZO6D-P}D!;p28U+&6Bb22zG`9}mw|f2WtV%VkEGUjzH(((V3*i{xdGMyr<poU@U$
z{y>dV>i+6$Qx-N~42^Itxb^tO!+##`eKTx4Yd9-wXne|Ov9uezE^gf+7f{H!q_u1C
zxlpJ4@3I+s70FHEzMFB_kR^0s);&nQhmi6f@&k^8^kWq&B(EBsdc3dE6v5a>9~X>_
zzjO3!pKXeE*P}Pxd2&nnO~|w6PKAy%#YZ>$DjUi4D^`2y$c{P}r@QIPgQh-9<$bnC
z^zoVEr}{}^^oP&lHrEdxk=j{fcjU@OhLzpKg-3pSoZfl)l*MUU;<F*2>RB`&<<<UX
zZK=w&yQc)~9g{XU;MIhJ#t$hjPft!hF#OlUY;Ll}0k!)^OFHeVeADZ$S9;9szc}fU
z-Hy8piw}iAeiB=^+{%pZwdaPsXZEAOYa&*k2xyfC+eYtK9~B&dG^K0&$MxyF&Dz3M
zU|if;OO+Y6G2Hl=>t@wHMp_C^lb+3-SmClZW}BA7s~L0DjNP`V{FM5ASe~_f3Vr$S
zghe|SQY+Stnz(d`weG#Q3tEOQH*B6hcX;#G3sv>A9-fHbP!)c;d``o(XIB?!FWeLR
zQDOZj$%H#IYNDrx%u{{k9Az(EVem^%&fc=$W4#ga#|#&w4tX}f@Q+?j#M_Y_j%$kJ
z-3+xpC||!MlRYx#!TF_LrN-x%G|YM_7B;z6D^l`ZzV_=q#de-`+8eI8<GE&7aN&UO
z3x5%{KP8@wJ$A>!#M)?d1XzAp_6u=5;m%9b3(?vLKi1O&TS`lg+Psq<x8i*G!A1wg
zEz-rmZ|7RPS?BM6LPIU^<H0EpW?!UVR0|LMbvoPqh?3KZ;>y}M&lS0zyDsPE@5woP
zO*=fYebv)n-<uO>&pr1s|9HLCN|R`v+Ej_(eK)OqJ>Mmwaa{Df8>h{c?`r6JF!$)1
zJMWk|X>)mzVusGCw-&6H1u2>Pe$|e&te5dlu!x;ndX&;|%x<mx(NBi=gL9Jx^((fi
z&$wB(&rtn@^Fy7-?W&)ZPI&HEaO>%unOB|MbZ9O1Eu%LbcDUk{XKyv$>rfKwQGBKm
zYvAYFrVQVl%n|9S=f<o%Q6O%l7&%h}6N<um|0d}@^AVlF%W~;zE!}OLn~*HNMImug
zw|6C#@UDyn80~-SR+LWf4!{GsD(zfJ%V|6QNG4=?brcnLo>>1)Me@gCSw#R8xw>Ah
zvPRmLb&$^}T)%X^KG!=TQf73i;`hZjAz?%Vmuo%r>KyZ{5?946mIk_t=&lGDm<CZL
zdb{RQ63FX}jT5IyrI+@lX_PxH`*Tv=r{^-GdMkh=>hTFQ+evE=7#pv+@wKt+z^jxi
zrzfU(&l~s2{)L9Q>Z`qZ4~IRSyXBC}KM$HptZoIG=H3fb-Zwof;a*#~SO1YG-d&RS
ztBt$z-dOzz+hFkNyOzUD3#nIYw(BrLFS-W$`I=AGw~~7#9;Y!k=vsx;wl}xF$+=V7
z{QQzTi_g6%%d87qQhRIT>F<rIhZHUr9n36~>X$V7$9>0FSyGK7WIw;DnRUw~Lc+Oy
zHlEOi1y}CalKU&1-0ayU2AO);o8HY1^HFv%d-wmd1J|qbD|d6pVXj3`Lnqfb!=L-D
z#^T3ANv>9;S%-gz(hbGsmO(dL4@X6P(;L`ny{1ets|8}lhm`SyrI$22|ARAts3hvt
zzi?B5p!dA~k@o;_DNA?b1Le+QR&>KHlS4=C-8F1)L{9Vt@xA%7&dH8%DrTe|%V6ww
zd^5aoR#AfE8(V{F=OX<*_bP0oqP9ngOa4gn<`@OZ-dgV55g!%RcgyprnP7vi!cEgO
znqpXHt$ucXf_H|0g4p~uG72(nGLkZFlG2I|D!P#6%c4*$sV4MSoqU~ySevrLViEln
zrCR?*5Ok-9MGj!W3dw<`vMDvqr_Mvn*@YKO%=;*OmT%VoSh}H4bhx_P&!LR?Jrh3}
z{;ab8$lg_<`+euWn74-)hrRa9t!9R1UtTo&rHA#r$`#W-Ow;qU2zawAa@pdEo$k4H
z?PFVh{Ar&O5gFMy@Vjh_k;UPY7VP?yHOn&J2e6|hH8myromWV{y`^u4-DMposn}AP
zrP*RZv$qaC^Tf|Edg_xj_m!?I+)fAWGYu_B4jZ;6vGS5_<IF!gl^XWqHumCbCXZwW
zdAr=*GF|t=rv9u%iJV0BLOsPr3)x8uzRW!eKQ1h*sF3_4shaGAr>SC*VRukX4-V43
z6&8Nw1w?#rnXkcebG-U^9+*Jr$M@$d%FD`rkV_|E)wh<W()}B6y_k40s|+CdX`X%i
ztvu3p^La<?zPb7PI6HQ{i&2`|781xF|9;gSmA-k-uFQjFowHk}W=*z#6LK&iKV<pi
zPeTgw@+}fQJyVw2gx|i>_rO?(8FQX(JasQELMbTpoWxM~t*R|z{$e>z`D?^tQU(kw
zym2FI3N3SNSY07|;?sXL?ygv3e&Win@>6$Rg5Ueh4Jp4SCmRtLcg|BIyO#a=SL4}!
zRbzhpQz#7wSrK;+HE9-{m344CeoN)K(!>0YgL;gxBqvXU$EzKl{gm{$KXaG}9ux&m
z|3%be`h{{j3$o*#7bEUX>HJK}^RYxx+W-4LvHO}vQ&Ce>b39z0N>J&l_awh@A<KwW
zD@XN`WZO-pA6&8DKUA#24TS5R%=hXjTjq&-O|e8LEAKsPKtdgoHEJw$8g4LFi&K9{
z<Zj&?=fTf|x3N$3Z21w@`^Qy}ziSQ=x*eZt^|#4+TyL^q-@eG~=FP<>qgLORojB*&
zOGbzDBL&kub;l(gE%*MYof#YY?E25T2gfI$y;cLRZWBX4-*Y`%vbZ(<-S<7YO4?#Y
zGF4uNzl+k7^vfLFhWedWq%4-os<oID?IfOFVy7A3hyKnwI(6e9XGMqemb%9b-#F|V
z#HGo_&3iX$N|NVJ$rX_GfN8RFOk14)EY6<XXVyLq!`m&#)>)owTQG9MfSpc|bX{-4
z&IsD0Srcdclxu4BdxJ5Apx)aXC>20VH0&an(7`?he*jA5|Bgec5G@b_15*AwmTD%5
zr4rE}yRcL;<vJi&UC1F+M5wAj5x`RULAL}TtgcM$@*XtSC=zM~e3Ctiv~nV`N`c?W
z-tqb<@GnFm<in#ZA|9jYLjOkPRmTJyI70E`{bbO2c&%Vlc<<nU-`y+-OGqMpT|bFZ
zOe)bN-oHICt5Ejze}`ECGKCiiMh*lEIDjZ2XkZt>i36^r4ITkJc9#KDJa4cuWA&J~
z@gP+|9@+X}P}lV?;1>c`CI0~f!vEK}j!Kl|{R72?tmi~RvCtjDL=52Ao+|l<bnp$0
zDg@G!Jkqtr5W~Rg4oXLWw6reEI0BdLj`aq1b}SNJB(PJW%OrkAd;koU)g7)5y3GSC
zh;N8cZM;)C?-TJ<4;Tw?C(l~sckpT!$sN2;L`gzx=6!+?nWT!y`vmPJ6)N%*{Ko1I
zTStUI<87dVmT)YQY1N@<Z@1Kx$NW$@CWGWzAGNF2NL0j{DNjfn!4HPx;{3=dBfkD<
zYo8s;K9f(*xK%zvNoVa|iyd{xf>x9qwcH%!dd1d6Z>8p>lr;<Yj~dC+yluQdeUiGN
zdE8*#3h&4{N4E@J_uWM?plR2Y!c~?dv{xF7XK1fa8GKd3vbB8Ykq76s21te;RQ##P
zh;=!=-jp3F78_y`<5%dNqxEymADjHP+MLy4_F8_o7tM*Z;#M4&4^sOO%)XtW9nw}i
z!S06hOBcn7c`qJLpJhGUVQJj>d+Tp%o@kYb*j`(TiAfe2o3D#Gy6lbq!p59Vtt1g|
z2z@i3F0H_~H~Om#O<nsYD5P9TExK4=>p!wGGVQWQHMM0nDj6r2-`LLIC#NQDI*oTh
zWU_HE&+P4dZ?CX&yh%|n{1&4t@#TC(ROxrQ$tD|ytkNu#Bel;}p=0F_d~^!vSn!H<
zvQ>IT#Rj8%4Hql_LmSfzvhq3>&YQcvr8xJo+PGIXFC_Cayp^85%|Bvlo|7LnOR|1~
zhitvnm*|C4e!Xh^)32<dVbU|N`rj9yKIzX08&vCFp62s2vYmO=CT{c^gX*cZp{;wa
zYeZCS^xb=Dd+Fy)kEs!N!>iwpV9kmTpA%P{=@>iX``-T2D&I#LM<lmIx?6oSxugDu
zerMJ5Mv9EaA?h8IBF$RagVcx;t<ihvch0TI{bm07Q~G@K@aD{W8b!0E@2Et-v(U*m
z{r1_R<3Q}BOV5Uw47{dU!rsA%Z+&ML%wAHX^IH6PQy(=E!z@b62b<X54)d7`e!#D|
zF*XqJt1wTDy|C}M0X>OGGb;xtRFxh5<?_9cF5SkgbITx`k?FqYBQDm~bri$|k80iI
zkbC3@^PA(lMd4?@Zdtx~sN>jLchBaW#XHTX%{9EntSG4-`x~NtS!d@Jq{~0wacIPd
z!xvud%+{#7XK#1X_)nv;_wlhN-gnZk1aA9o5O91$;o_zJPNY_b3_bcg)#ou~#&~<v
z%v&#FZKf9lP8no!XhsZ!)?Y1lR)1Q_;`86XS<RRDa&%0e)7Gj1$&J5`w+=fo=4kz8
z-;+y@GnR)KERT!hPB-N4`c$LQ=TkwhWKND#knG{LudP4$(e!qoY+y9o)-|m>f8bZ2
zHHNRVTGv~=^!)Zg#3+k`%Rw^tc9hqZ^UqRp9QArHPs@+j*Qfj4Kcdlflv*_{UROP@
z`sLa);~ex1igotf*|*Gg)&ST2=ZyBXS-<+;8f2x!853A)T59_7<n0;DluB!-)Tb0{
z%=s1YrGy!9Zk5*JNGHM-Fkl8tqw>hyigk|nC7TyX?6%re>hiJDZW85drd@{ldSx#O
z%lAdw)+Q9R8lU?p<y@?H?EI9mg;{Z1rJIJAv~CXHf6l$cJ|q2Nanub}`PEIF{-^Hi
zWNqIb`RUFL)d&}F$L4mI_Hqes^uuYM)R(_&=B%ziUvcQil(9<Fqi04g-KlIRacS?1
zZ>I;>_{CpoReBH;!xS-?A`S(#zlb|<CV|LWrn+fZP~YUC!Cv*!*PTl2M#fk^kaX?i
zxtwRP;k9>N*1Dv1F($4$8vbUnRo8CM=xC?Yx$_q2sogCpXAh$vznD6A$3%v7oYw9I
zt<QDOFLCB340j$q)9%&CPiu1<T%Mhtde`OQ!W7r+q6JgL>}5NCA4<!ux>OT&yz+)(
zs)VL^$E7}x^elrmo}3;Ou(;#iGPz3y^j}lmn~I*wPi)xjw6gmAFDIS!yfT%{LqB(G
z++F;rFeI$bXk#dK*fe+hI|&TAlbkgQk0q}x-MwHib>-GIi~-d*&&d>glUcWa!F&;;
zCeqHO_cvwRyUrclNf#(iuM1NE!OFSsZ9v+&1o$nTdGdW!Y<AOlICqS{v1i7XrFY`$
z9QJ<g+v&S$U*rBu{aM%RD)#*0taOYB{IvV}-t%uC=;e=V3NTN&=KrO1uH)n-Id5C8
z#QTSSe&M*Jbn&Vep+78dZW8y<_t)8Ys!FP|)OYLr%d!#!<`rHU|GQsEpY2r>T`Om2
zoqU?;`y|sTsOj<(U*~(i2M5JJ`QhJ@^6AZ{`4vGH?ME&-4M-U<YuLo6rUUF-P9-+Y
zwB0iFoojlcPmN8mq(;95A0Mtcs<h#?X5h)Ar=yxa%IZD~!JXh(WH4HEI|T=Z-Y#Fd
z*&{lOfI7i^S5jJ`D~nKqX0jmCY1Rv*6ObEkA_?r9!a}cyYu87m?f51sc~h@hMRA)&
zYb03jiuG&IkLHSRORx}2+6@M;Vw1!!SF_3ww!${7w=7z>`SDJ%jdfgE%R7<!TkX0s
zUgpP#6^LLN5g<DCFBTfztddR`EsOgYhDj@Q*+^oC@7`o-2BT##+J)5gToq|?+x71(
zXN7{tB6rf3Ha*E&i-el>`t@8$`pJ#zO1f<(H)oKD9*M%N|Kj3AphpVQ3iJ6^pIA01
zt^b`3s!J`><WkAJ)0*oCE8gr&<p#q9>2)Wc4z~!IC8G5rAZRL_QhUpWuO9O64;2PU
zTxpeQK2&(@^6)Wom!q|$Qgm+F50dWxYF!p=AZbUfuO@#q`Y9LF-quvmc=wy}XnWVb
zKIy)pV-~EkRlBx>IchWAeZZ4FlcNH)&So^kHeD%}n|}F_>!wrbbM3<8vxgQXWQ!fD
zjWN1Ea<IYjC<DcT3FE|{M|%wt&$s+8&zSd8_KW4Rs1GXTlHB3;t7eCPJ+!f9?&zHJ
zIYr>ZlNc|e=c2IXzgd9PM|2vo0L8r_ix*#=osXH7ALs=P#HCbHJGeJn3*K_|n(HOG
z+^^p(TDcSLIwjln6xvj_MatJ%P&(|z`Vxs|!JIi#<-DF(>x;s|!moOhDK+|?N`ocp
z^cN(Afi-<%fE3>n<ieHtF?hE{rb!2<q~1<Ao&J<gBUYdbVS0Yqjl!J9gPfV-q;0l!
zk8Sp3r~lvdd>faDU<q+RiVIuyWN$0G-QaE(Kb0sxiK;v{R!imfj?{k&4T_u}78WX`
z`9>v~OKuqA?3o``^fgj)Lx=dL_*Ba^g{xF2QMq2hQqu}kr8XLE=uq)8?s6j;%i3}u
z8w0^zt2c-b051sQLt&HA!vSyr_euWm!iW#JPtw3$5Ip|=GvH&!5d?e$jpw?8j`sjQ
zU4h3103UwzaRI=Gd<?c6c@Gx&G4kOW@SEggKj4i>0YHaO2fsjwu|TLr|N9SkV3O8V
zko<uV>*NnQV-)EO2X=Un;(~mb{|m%yAaNMteGJH7LC8&TP$Q{5Pz~9Wu6^-ep&G*J
z5&ZgCJ-|$_oF0iJ3pD6lHy(o9y78PIVK{nT4dLVo*n<2A++ry`kN>N`Ba{@tdidZC
zpfNqxd%ZWIBPX<LWXPU($Id4_J-cJ)!|=1nlP-aSKv!8k;qr-Zx@_aX{*EOSEuSS6
zEuW{LkWdQP*0BVl<pYq@6D^;BXL_RLgP{ehCt5zhHY|R$d;u<mIq&KOZ+e}*{r$oK
zs|;SgWSKs!HD~WoKlqK+6)@j%p>LSJ2ia_WLS|0`2U^|_5(v`g<s;DN0i1$(7TMMR
zQWtOZ^m*d}c~8jNcs<eQEi1w(7Fr@$8(1O!x1RCxP=JLdSq(3B1cd14ed2YI=dCJO
zn@~8(zZplKM=Q7ilkeyGpAu4v7+0R>DCDUjJ_*)FT1x(xk>nX)5`vJNH_}4}=8tE`
z2|r1knph-gjYJ}Z|2CXNvIVj-9%@K<Tk}5i;7j<-Zwzmi1-nTlIk}hp<l~h*?xgb8
z2Y8qBE90{XmBh!P$Gp4^`cyceBV$Vi>)c-VRJc;Gf+c&(OGE;$@Z`(kXBVBnTzLM?
zLOmsA^ndCp&kI_g%5!T5pZBiC$m3YT9g}Pn&v##_QX!Yc|A%RXdrEq?!Z7j-alxOT
zfS9JiPafmac*f)UguxOrygV`TFFmCTiX3v_<VW)+mB%MMfe9&`$QpTW-}*e$VZ!Vg
zua6-8OMNtkfQS>SkH>z{OOhktCpk$(ugPM9L&+lf>R)OxgHQ|nUhw27$Wsw*B|0Vi
z7HjWi-a*0sL>oaY!&AH_3J7qxbMAS_IW*XJ`Fy`ned7?{1%7URGfk<GnaX=O$n#J?
z?`6U81rWPFE(~5`<GsvJ-`Hjh<b($cZVK2cGFVKiDTO(VLKz0-oZW0^j<Q=G6y)Q*
zWC`(Jw}6FV`tX<k{*n6bexYITB7Mlc1u;%IG+vFSv{5vD;~9QFG;4j(ZbmVN>n{rN
zhENlJ-uf%LpCIT0zVNF;{T9f>4#wcf!zC>LKajmlIGr!h@1j8~^~vw_mvqx;1e+88
z3D78n7!#z?7z`S*`3lkK95UIAFpWVaeE5ZE3?`MhV-cjm@1zAgLSqt35uq`Nn=xS;
ztXP<Cghs|A5T;Q`wLp+Yqj8wTvKOLJ*(_rB5TwEKq!9Npf;0*RLcU>bfssMpN1;&J
zgvbzlmdawX@Mr0CBCLa8ISPeNBQ|7V8jVcqBuJw|ECzH;!Q6&JD8_>2;C&oomq2K2
zLb@O{U|y64p;fSXV~|&}!p|~9@Cy^;7Yc>RK=}%2G<2-s-kF1s6_W!eTBOZPHnABA
zw}r{T-v=3lu)diw2uUmaETr;+eMguEtbx-=hYR6ykV6Z3ADDO1i5*<98~{W#Vw(}7
z(Ksx$eN-A7m<TJ!Bw~UHKMUR-2n{BKOuQsm4rnmY!q0-(;$Z6y&H#iKD)cNIrik51
zh(_VC2$?QOqcNCtjQ?QeV|+!0Jh#ZRU~NF=&k}qe1ym41qZFpmIfND~Orw$MwuEU+
zHpVYhCWuG$Sq2rGb7HZgV+w&)3Ec##gF{3w5vFlSZytmOjX}$?NH-m!ax|zItrvoW
z5Q>;kIS@{0IT(A8vPe0|g@W}B(tBfLN&^9iwvWbS5E)Q~>ZQT_V&&)@LIoBs2TAhK
zIRX(z91DcYF`4LEfYrgl_z!j{jQ?mL0MW6hQ*geg69NXUmqWq&O9!4r`$nhH2sK)$
z&2)GasTancNn~>tE(dZF9Tylq!nsSh9F2*|Vmjn$L&uK}x#ln$gN?R@LTBTAN@o+{
zWRZG7CZg|Sz=}ir0ivBabqKeajqlS88mwxh90N2XRF;4Sf~_M4orB3(2Aze;aR!Y>
zU@C%b0gDhOx(~v9kO7Va%TX9iOvVC@%v&g24n!R~M-0fthw=dfG6|ym!hrn<T{EzS
z5@%82Isj+G>tGNNhG023TXG1MU64j$g4D*|$KhaWnqUpI4kqkAX#1EDm<q3h)YFCP
z1<eB6D>xuH&@tcu6QN@TVb8H~fmMmEb0(ER96kl>g}DSpN0<g`1RGncOa=-12tG?;
z(y4@NrZ5eZB$S^)GGTits1ew{#e|St*t0OqSbrhqBvvmA7AD#j7HNBgw2wuceT8To
z-~^P$WHX7Aq)<6vKjM6h&?wkC2d*a$^+M$!p(tTvBt&DfNe5Oz8q5a=>l>uo#P}5Q
zabj`}q#vpeQ6T9hf#V3)0W>1|4?=?jG1@*zM2XD@q^iW`1CnRr{WXIf4y^;SkYe@1
zHi*t8gj~bM3IeoYyap*!iMvtZzOg|nVl*0o1_+k}lP`o{Xdu}M*jcC?xC>+F6mTxa
z_75{QnM_vrSt^qN%n=%qq7b1`$k=Pb<>+*@eV{y3F`fkbH*D`=fj~gV1y0TcM32+~
zix8!O<2*Vaph^*mMundRA%W4@9Q;`}EE@D#*eZ}Yg0TnTgp^}b=mb6`R4<zX2SS7f
zI~f5N3YP=G1s!`>F{u2butAEUW5uSC>2ihNN5juOYyb$+zOi9X!Rn>6vAKjg2&_i9
z4kiUJ$6#Y~&Sv29iVYhLx_;TP31EFA1UXhOX_kq!1(Z0n9OMed-Upd%v3|f}#mnJ)
zC>sndQC?%Sn3()yvsgH9uyGxe&BoUZ8wLTJ52zR$12zXA7Y+?uzc3qc=Z(x8Y-Ko&
zgW*0L065TkIS^A7Z6Az0#s?fYv7&s>fddyh_8eH|=-6`za0zKM2b4mbMkG)X?i+L$
z+gCZT6wrC&fSQfdM6{Vnrc4&%H4f+pSexO<iM0iEQLMiZ3>M{6IPPQefCEQUtPU0n
z#Q-RPOJTYXhfT-!P!5|+w=CQbU=D1KI5g~B2I?escIH4O$g?2SDCqeYXbf}@1sZv=
zCfF9(%z-LAmq3G47)B$rfg{gi=T$H_hbX$}vor?bFD?8m4U;ACEC-c!gvNzGOD9vC
z3%?KWPOQxg2Fe=%p|DW>fPh+v>oDQ>F|qS1lw+YfI>05+YV=u1PLA*-lw;uaLNHjY
zUI;aU^#csxvG;+Rjm;Yigf`k1fFAH?F?<pN=~D52fSkmh1*i{^L+~snCt;COh}$yZ
zG39_liO~QW$7n1R^MLnpP%H=r1=IoLS(sq-917*g6!k)Ffkva)CTxuO7{FyZdM1Wq
z7~T#v*pbk-;Ae5D0XuU7O+@=>7;Xkx-mx<i(D3yEA*=B=)5(A~!eaoU9UXh(0tB6N
z(6~^U2*W}qfERursCw8KfWCp#uyZ^V0^kfCKUi;ATR?qAWeFA58%|^4Z2`9rlqZ3L
z%2=362F_P(Y(Jt>fyc2nbKo`x?FWZ+S`iv6*m=;s2d<R?l}4V0IOFJk4&^{YK+8dE
zP+0<^7~N~(zyymLeU?Uq^d%b9efI<zobdgFMkC`%3zq{-0c#5#!<7lPNAXjjVfPCF
zQ`1nr3201IR|Xn(uBF0h0lPl}O$r|ufbUVh2Z@d1Ah0ayc$)!JMdcq2&WJdTiLEU-
z1>o(2Ee{(%4t6$xr4I)XWRBqUhRJrIVf!!Ov8Wyf@5Ar12=Ri|0fG|k8{DQ~>kTA3
z##e9*#rPDkT>O2Y`k?EQ4#iNO1W||a0i6zSM8}1W;X`mI3>`+xF#tuzXiQAj(c$=u
zm4o8~y6@8gz{19g2|zkp2LaSzG+aNRgMNU@5;~|&SX;od3YC9!78CC;3t#(mxL?KE
z%oZ^&Y(V1BHp7`6>l=qOOc9b1u+3n47%Y8!3^*LDzW`%m;|I_%#zPD^p`&eKz%GTh
z88lIBO*7zb2OVd~os8E@qhsq0PPOP+gUW#8G*&M>iq1KpQW)RER*UUNaI=kKk<bec
zrelJb#Q2Z6>Okc^VCE<m1lu`=(*TW3T_7}<3`iS*@(ZAy=y@M<Vt_zJ_ytfx6mz38
z*s#*Ea%R}x2%0>mpMpgKrVB7Q*!>$Y0nVoYp<wcg38+3gR!j<9LL%)0l?GdbfSIFb
zIw}())MC#9ev0ZeaC3s`tZ;%waek1nU>S_I1@>C(eQ<?_jw$S**!}@#0N7e!0#l;%
z23L?M&Oilefa2Mp!ogxd+sA~_!f0%~&1QsCF~Mp*ItT#)VEqNq7nS2oz#?%P+y<iW
z16>c5lW?tp?a55I7sC3%W?^S5fZ*}5A}(mqdZ7w*3_y*=WC<))OkTmTU~&lHHSD|!
zR~^_{60RySJ_Vc~8!I@?V0;hS8YY_n=f~DGhz%4&hO0n0Tp?osrv*%p1q}pSzhJ(B
z?Z0L~M0p&bLrng`c8T5xP$3@*b`AjT592EWmq&R6&~|)W*nsGueS;%A_ACHmC?7xw
zP!Ti??*wNVFxEio0BZ(p-e7jI@dN*QY@GvqfQ>0UiR}S^CSrO7c*A2n3F<D!e}DjB
zvJSQdY@ESE9@{Sgp}?>zuqsEfTrd#9Wjh#-V`~dc#Id;q*1*;W7;<9zB&>3b*8mbk
z?FxXYNXt+mc?IwbKF+Yv(X|g2Xc!N%fXPu=$ASq)c@5wk?5qZ24d(+EW}8Qa(=;Xz
z;6#GS7q}wDbQKoZ8lZa$i;c@QKuR&a4sMPyJc0!m)aaUKfxQ$q1|U1pwE*3~<^xm<
zZ2UknVef<M0BnxnB#H4jz+o8gvSHUl#{kU3u)Ts!9K4bB%Z7U)oQB!3!08-JZ_sDq
zZWi6kV2i@AIS^|YAHY2mhC8z1XpizF8w{7wJr6WJ^j?h$_eYrS&1Qm@gti&XJFzwc
zo1$_O;Bid%2ILFFS&1uftbHI%P<{bK8sl9yK)%@6!}SMF0|OJZA7Da?jTMJT?=7sW
z0HlxU0&rD?k29Qc(0+hwi|u7_--Gcf2d-SvaRw^@Ob>%QAWZ&&We>K_ImAwl^aJjN
zusw=Uv(dQ(t5*!ChL&Ku00-<#uxII{wY`w+<bWvzHZE|ji$5!(zaZPOe!yV}oi`4H
zjkg7K74)nIJ1C~}!!9j?hS`0A!477}12lZ!f>R!P?+lp{ar_Ey8}WK!W5C9WxF|;F
z667<+FC03m9{?1I-OU0Gv!4VShQY%`Qc+n9G!R6>Z2=m#E`bI+4OR|r;7}UyAJR9-
zih|oH!7@VkRVat)Ljbb^lcRNjQ6Sc4uzf>hF)S>&?LeOeJp$oBD2M6ZKm#BceHPav
z0P=;C6jlzCr%(>F!KJ~@h{|1{fgnfU2T(3Hrf{^v`Uc7r))p3a27?Q50IJbCpbD(N
zU^0f6g9~)@Sr8mpISv!&E3m;u+XokzDBpv!hRHvmnW1|(&_HS<ZGj6KRClBSw1mn@
zpkZfrpkX#ya4RIDePH5>$T}zolZm#420I~2gDW6p-y)n~P)q@6*j+Txz&ZeZAAn@o
z`@j$solD{l2&ZBA6=*}){suJ678_`oJO$$`xZy(E2ir6%Bfvuq-J{@HOmByi3ua3~
zn0uqP>_8L2SKxwxwFS%xvGD^K9UB)86Wx<(AW+f$2xuJi3<d^)xa@?2sJy4aoej3O
zXf)^uGJY@u*g68UYr=I>a8D+zuF?B9;#vsBrGSRnEz!Vx29qV=wu7xL(ArVm5w4jq
zJ8qz1_L$H$Y_A0xD5z*Z;IM&>0UHorv>aeOs4M~N5_}9e*clcg`v7=|ybq4G*j@|w
zF4#Upz<Ov~=y0=(wi&KJP(2ZxdoX_upaGbHwgns-(Z0dW33^va1Ggt^3<%RuR3;K|
zHco>ZAGBUjU$A}vUt#574@K7&Y{{71r2|Zju6<x#^t=G<jPoDd&tN<W5IkP58D`&3
z+}h*w0edJm1^`FkG|V2Da0x-r6|mf3`Jv;-hUJCPFrN^37P~74kRNt4^jWaMz{Va-
z(9k)8dlzg^2Dlj8D~M|~{8=zuLh6OP7;LYAx1ncP*l5|93<G}y6o-Qe!f<7v;qyUU
z@uA}fCk;&RWPmvhUJkPh2l0pNaDe=y*a#S(Vps;yu(J?IY<zD7KL>2B!t3z%0bGZ*
z*-Yq8X<4ZE!XUp;`EldqN4qWz_ahxsM^6h5CZZt#pAu0o?UyVFhEKpL<R=?_k8w1L
ztrdf93%EL)X~m$}!e20cvgKH@CvdFn*qrhD|9=s}xmZ4InRn<i(kGVKn<!NIAwz7Z
H+R6VPSUA98

literal 0
HcmV?d00001

diff --git a/main/minimime/mm.h b/main/minimime/mm.h
new file mode 100644
index 0000000000..adaf2db1d7
--- /dev/null
+++ b/main/minimime/mm.h
@@ -0,0 +1,368 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+
+#ifndef _MM_H_INCLUDED
+#define _MM_H_INCLUDED
+
+#include <sys/types.h>
+#include <assert.h>
+#include "mm_queue.h"
+#include "mm_mem.h"
+
+#define MM_MIME_LINELEN 998
+#define MM_BASE64_LINELEN 76
+
+TAILQ_HEAD(mm_mimeheaders, mm_mimeheader);
+TAILQ_HEAD(mm_mimeparts, mm_mimepart);
+TAILQ_HEAD(mm_params, mm_param);
+SLIST_HEAD(mm_codecs, mm_codec);
+SLIST_HEAD(mm_warnings, mm_warning);
+
+/*
+ * Parser modes
+ */
+enum mm_parsemodes
+{
+	/** Parse loosely, accept some MIME quirks */
+	MM_PARSE_LOOSE = 0,
+	/** Parse as strict as possible */
+	MM_PARSE_STRICT
+};
+
+/*
+ * Available parser flags
+ */
+enum mm_parseflags
+{
+	MM_PARSE_NONE = (1L << 0),
+	MM_PARSE_STRIPCOMMENTS = (1L << 1)
+};
+
+/*
+ * Enumeration of MIME encodings
+ */
+enum mm_encoding
+{
+	MM_ENCODING_NONE = 0,
+	MM_ENCODING_BASE64,
+	MM_ENCODING_QUOTEDPRINTABLE,
+	MM_ENCODING_UNKNOWN
+};
+
+/*
+ * Message type
+ */
+enum mm_messagetype
+{
+	/** Flat message */
+	MM_MSGTYPE_FLAT = 0,
+	/** Composite message */
+	MM_MSGTYPE_MULTIPART
+};
+
+/*
+ * Enumeration of error categories
+ */
+enum mm_errors
+{
+	MM_ERROR_NONE = 0,
+	MM_ERROR_UNDEF,
+	MM_ERROR_ERRNO,	
+	MM_ERROR_PARSE,		
+	MM_ERROR_MIME,
+	MM_ERROR_CODEC,
+	MM_ERROR_PROGRAM
+};
+
+enum mm_warning_ids
+{
+	MM_WARN_NONE = 0,
+	MM_WARN_PARSE,
+	MM_WARN_MIME,
+	MM_WARN_CODEC
+};
+
+enum mm_addressfields {
+	MM_ADDR_TO = 0,
+	MM_ADDR_CC,
+	MM_ADDR_BCC,
+	MM_ADDR_FROM,
+	MM_ADDR_SENDER,
+	MM_ADDR_REPLY_TO
+};
+
+enum mm_flatten_flags {
+	MM_FLATTEN_NONE = 0,
+	MM_FLATTEN_SKIPENVELOPE = (1L << 1),
+	MM_FLATTEN_OPAQUE = (1L << 2),
+	MM_FLATTEN_NOPREAMBLE = (1L << 3)
+};	
+
+/*
+ * More information about an error
+ */
+struct mm_error_data
+{
+	int error_id;
+	int error_where;
+	int lineno;
+	char error_msg[128];
+};
+
+extern int mm_errno;
+extern struct mm_error_data mm_error;
+
+enum mm_warning_code
+{
+	MM_WARNING_NONE = 0,
+	MM_WARNING_INVHDR,
+};
+
+/*
+ * A parser warning
+ */
+struct mm_warning
+{
+	enum mm_warning_code warning;
+	u_int32_t lineno;
+	SLIST_ENTRY(mm_warning) next;
+};
+
+/*
+ * Representation of a MiniMIME codec object
+ */
+struct mm_codec
+{
+	enum mm_encoding id;
+	char *encoding;
+
+	char *(*encoder)(char *, u_int32_t);
+	char *(*decoder)(char *);
+
+	SLIST_ENTRY(mm_codec) next;
+};
+
+/*
+ * Representation of a MIME Content-Type parameter
+ */
+struct mm_param
+{
+	char *name; 
+	char *value; 
+
+	TAILQ_ENTRY(mm_param) next;
+};
+
+/*
+ * Representation of a mail or MIME header field
+ */
+struct mm_mimeheader
+{
+	char *name; 
+	char *value;
+
+	struct mm_params params;
+
+	TAILQ_ENTRY(mm_mimeheader) next;
+};
+
+/*
+ * Representation of a MIME Content-Type object
+ */
+struct mm_content
+{
+	char *maintype;
+	char *subtype;
+	char *disposition_type;
+
+	struct mm_params type_params;
+	struct mm_params disposition_params;
+
+	char *encstring;
+	enum mm_encoding encoding;
+};
+
+/*
+ * Representation of a MIME part 
+ */
+struct mm_mimepart
+{
+	struct mm_mimeheaders headers;
+	
+	size_t opaque_length;
+	char *opaque_body;
+
+	size_t length;
+	char *body;
+
+	struct mm_content *type;
+
+	TAILQ_ENTRY(mm_mimepart) next;
+};
+
+/*
+ * Represantation of a MiniMIME context
+ */
+struct mm_context
+{
+	struct mm_mimeparts parts;
+	enum mm_messagetype messagetype;
+	struct mm_warnings warnings;
+	struct mm_codecs codecs;
+	char *boundary;
+	char *preamble;
+	size_t max_message_size;
+};
+
+typedef struct mm_context MM_CTX;
+typedef struct mm_context mm_ctx_t;
+
+char *mm_unquote(const char *);
+char *mm_uncomment(const char *);
+char *mm_stripchars(char *, char *);
+char *mm_addchars(char *, char *, u_int16_t);
+int mm_gendate(char **);
+void mm_striptrailing(char **, const char *);
+int mm_mimeutil_genboundary(char *, size_t, char **);
+
+int mm_library_init(void);
+int mm_library_isinitialized(void);
+
+int mm_parse_mem(MM_CTX *, const char *, int, int);
+int mm_parse_file(MM_CTX *, const char *, int, int);
+int mm_parse_fileptr(MM_CTX *, FILE *, int, int);
+
+MM_CTX *mm_context_new(void);
+void mm_context_free(MM_CTX *);
+int mm_context_attachpart(MM_CTX *, struct mm_mimepart *);
+int mm_context_deletepart(MM_CTX *, int, int);
+int mm_context_countparts(MM_CTX *);
+struct mm_mimepart *mm_context_getpart(MM_CTX *, int);
+int mm_context_iscomposite(MM_CTX *);
+int mm_context_haswarnings(MM_CTX *);
+int mm_context_flatten(MM_CTX *, char **, size_t *, int);
+
+int mm_envelope_getheaders(MM_CTX *, char **, size_t *);
+int mm_envelope_setheader(MM_CTX *, const char *, const char *, ...);
+
+struct mm_mimeheader *mm_mimeheader_new(void);
+void mm_mimeheader_free(struct mm_mimeheader *);
+struct mm_mimeheader *mm_mimeheader_generate(const char *, const char *);
+int mm_mimeheader_uncomment(struct mm_mimeheader *);
+int mm_mimeheader_uncommentbyname(struct mm_mimepart *, const char *);
+int mm_mimeheader_uncommentall(struct mm_mimepart *);
+int mm_mimeheader_tostring(struct mm_mimeheader *);
+char *mm_mimeheader_getparambyname(struct mm_mimeheader *hdr, const char *name);
+int mm_mimeheader_attachparam(struct mm_mimeheader *hdr, struct mm_param *param);
+
+struct mm_mimepart *mm_mimepart_new(void);
+void mm_mimepart_free(struct mm_mimepart *);
+int mm_mimepart_attachheader(struct mm_mimepart *, struct mm_mimeheader *);
+int mm_mimepart_countheaders(struct mm_mimepart *part);
+int mm_mimepart_countheaderbyname(struct mm_mimepart *, const char *);
+struct mm_mimeheader *mm_mimepart_getheaderbyname(struct mm_mimepart *, const char *, int);
+const char *mm_mimepart_getheadervalue(struct mm_mimepart *, const char *, int);
+int mm_mimepart_headers_start(struct mm_mimepart *, struct mm_mimeheader **);
+struct mm_mimeheader *mm_mimepart_headers_next(struct mm_mimepart *, struct mm_mimeheader **);
+char *mm_mimepart_decode(struct mm_mimepart *);
+struct mm_content *mm_mimepart_getcontent(struct mm_mimepart *);
+size_t mm_mimepart_getlength(struct mm_mimepart *);
+char *mm_mimepart_getbody(struct mm_mimepart *, int);
+void mm_mimepart_attachcontenttype(struct mm_mimepart *, struct mm_content *);
+int mm_mimepart_setdefaultcontenttype(struct mm_mimepart *, int);
+int mm_mimepart_flatten(struct mm_mimepart *, char **, size_t *, int);
+struct mm_mimepart *mm_mimepart_fromfile(const char *);
+
+struct mm_content *mm_content_new(void);
+void mm_content_free(struct mm_content *);
+int mm_content_attachtypeparam(struct mm_content *, struct mm_param *);
+int mm_content_attachdispositionparam(struct mm_content *, struct mm_param *);
+struct mm_content *mm_content_parse(const char *, int);
+char *mm_content_gettypeparambyname(struct mm_content *, const char *);
+char *mm_content_getdispositionparambyname(struct mm_content *, const char *);
+struct mm_param *mm_content_gettypeparamobjbyname(struct mm_content *, const char *);
+struct mm_param *mm_content_getdispositionparamobjbyname(struct mm_content *, const char *);
+int mm_content_setmaintype(struct mm_content *, char *, int);
+int mm_content_setsubtype(struct mm_content *, char *, int);
+int mm_content_settype(struct mm_content *, const char *, ...);
+int mm_content_setdispositiontype(struct mm_content *ct, char *value, int copy);
+char *mm_content_getmaintype(struct mm_content *);
+char *mm_content_getsubtype(struct mm_content *);
+char *mm_content_gettype(struct mm_content *);
+char *mm_content_getdispositiontype(struct mm_content *ct);
+int mm_content_iscomposite(struct mm_content *);
+int mm_content_isvalidencoding(const char *);
+int mm_content_setencoding(struct mm_content *, const char *);
+char *mm_content_typeparamstostring(struct mm_content *);
+char *mm_content_dispositionparamstostring(struct mm_content *);
+char *mm_content_tostring(struct mm_content *);
+
+struct mm_param *mm_param_new(void);
+void mm_param_free(struct mm_param *);
+
+char *mm_flatten_mimepart(struct mm_mimepart *);
+char *mm_flatten_context(MM_CTX *);
+
+int mm_codec_isregistered(const char *);
+int mm_codec_hasdecoder(const char *);
+int mm_codec_hasencoder(const char *);
+int mm_codec_register(const char *, char *(*encoder)(char *, u_int32_t), char *(*decoder)(char *));
+int mm_codec_unregister(const char *);
+int mm_codec_unregisterall(void);
+void mm_codec_registerdefaultcodecs(void);
+
+char *mm_base64_decode(char *);
+char *mm_base64_encode(char *, u_int32_t);
+
+void mm_error_init(void);
+void mm_error_setmsg(const char *, ...);
+void mm_error_setlineno(int lineno);
+char *mm_error_string(void);
+int mm_error_lineno(void);
+
+void mm_warning_add(MM_CTX *, int, const char *, ...);
+struct mm_warning *mm_warning_next(MM_CTX *, struct mm_warning **);
+
+#ifndef HAVE_STRLCPY
+size_t strlcpy(char *, const char *, size_t);
+#endif /* ! HAVE_STRLCPY */
+#ifndef HAVE_STRLCAT
+size_t strlcat(char *, const char *, size_t);
+#endif /* ! HAVE_STRLCAT */
+
+#define MM_ISINIT() do { \
+	assert(mm_library_isinitialized() == 1); \
+} while (0);
+
+#endif /* ! _MM_H_INCLUDED */
diff --git a/main/minimime/mm_base64.c b/main/minimime/mm_base64.c
new file mode 100644
index 0000000000..86d7f30c86
--- /dev/null
+++ b/main/minimime/mm_base64.c
@@ -0,0 +1,210 @@
+/*
+ * Copyright (C) 2003 Jann Fischer <jfi@openbsd.de>
+ * All rights reserved.
+ *
+ * XXX: This piece of software is not nearly MIME compatible as it should be.
+ *
+ * This is based on third-party code, see the copyright notice below.
+ *
+ */
+
+/* $Id$ */
+
+/***********************************************************
+        Copyright 1998 by Carnegie Mellon University
+
+                      All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Carnegie Mellon
+University not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR
+ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+******************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+
+#define XX 127
+
+static int _mm_base64_decode(char *);
+static char *_mm_base64_encode(char *, u_int32_t);
+
+/*
+ * Tables for encoding/decoding base64
+ */
+static const char basis_64[] =
+   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+static const char index_64[256] = {
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX,
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX,
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,62, XX,XX,XX,63,
+	52,53,54,55, 56,57,58,59, 60,61,XX,XX, XX,XX,XX,XX,
+	XX, 0, 1, 2,  3, 4, 5, 6,  7, 8, 9,10, 11,12,13,14,
+	15,16,17,18, 19,20,21,22, 23,24,25,XX, XX,XX,XX,XX,
+	XX,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
+	41,42,43,44, 45,46,47,48, 49,50,51,XX, XX,XX,XX,XX,
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX,
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX,
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX,
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX,
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX,
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX,
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX,
+	XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX,
+};
+#define CHAR64(c)  (index_64[(unsigned char)(c)])
+
+/*
+ * mm_base64_decode()
+ *
+ * Decodes the data pointed to by 'data' from the BASE64 encoding to the data
+ * format it was encoded from. Returns a pointer to a string on success or
+ * NULL on error. The string returned needs to be freed by the caller at some
+ * later point.
+ *
+ */
+char *
+mm_base64_decode(char *data)
+{
+	char *buf;
+
+	assert(data != NULL);
+
+	buf = mm_stripchars(data, "\r\n");
+	assert(buf != NULL);
+
+	_mm_base64_decode(buf);
+	assert(buf != NULL);
+	return(buf);
+}
+
+/*
+ * mm_base64_encode()
+ *
+ * Encodes the data pointed to by 'data', which is of the length specified in
+ * 'len' to the BASE64 format. Returns a pointer to a string containing the
+ * BASE64 encoding, whose lines are broken at the MIME recommended linelength
+ * of 76 characters. If an error occured, returns NULL. The string returned
+ * needs to be freed by the caller at some later point.
+ *
+ */
+char *
+mm_base64_encode(char *data, u_int32_t len) {
+	char *buf;
+	char *ret;
+
+	assert(data != NULL);
+
+	buf = _mm_base64_encode(data, len);
+	assert(buf != NULL);
+
+	ret = mm_addchars(buf, "\r\n", MM_BASE64_LINELEN);
+	xfree(buf);
+	assert(ret != NULL);
+	return ret;
+}
+
+/*
+ * Decode in-place the base64 data in 'input'.  Returns the length
+ * of the decoded data, or -1 if there was an error.
+ */
+static int
+_mm_base64_decode(char *input)
+{
+	u_int32_t len = 0;
+	unsigned char *output = (unsigned char *)input;
+	int c1, c2, c3, c4;
+
+	while (*input) {
+		c1 = *input++;
+		if (CHAR64(c1) == XX) return -1;
+		c2 = *input++;
+		if (CHAR64(c2) == XX) return -1;
+		c3 = *input++;
+		if (c3 != '=' && CHAR64(c3) == XX) return -1; 
+		c4 = *input++;
+		if (c4 != '=' && CHAR64(c4) == XX) return -1;
+		*output++ = (CHAR64(c1) << 2) | (CHAR64(c2) >> 4);
+		++len;
+		if (c3 == '=') break;
+		*output++ = ((CHAR64(c2) << 4) & 0xf0) | (CHAR64(c3) >> 2);
+		++len;
+		if (c4 == '=') break;
+		*output++ = ((CHAR64(c3) << 6) & 0xc0) | CHAR64(c4);
+		++len;
+	}
+	*output = 0;
+
+	return len;
+}
+
+/*
+ * Encode the given binary string of length 'len' and return Base64
+ * in a char buffer.  It allocates the space for buffer.
+ * caller must free the space.
+ */
+static char *
+_mm_base64_encode(char *data, u_int32_t len)
+{
+	char *buf;
+	u_int32_t buflen;
+	int c1;
+	int c2;
+	int c3;
+	u_int32_t maxbuf;
+
+	buflen = 0;
+
+#ifdef RUBBISH
+	maxbuf = len*4/3 + 1;  /* size after expantion */
+#endif
+	maxbuf = len*2 + 20;  /* size after expantion */
+
+	buf = (char *)xmalloc(maxbuf);
+
+	while (len && buflen < (maxbuf - 6)) {
+
+		c1 = (unsigned char)*data++;
+		buf[buflen++] = basis_64[c1>>2];
+
+		if (--len == 0) c2 = 0;
+		else c2 = (unsigned char)*data++;
+		buf[buflen++] = basis_64[((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)];
+
+		if (len == 0) {
+			buf[buflen++] = '=';
+			buf[buflen++] = '=';
+			break;
+		}
+
+		if (--len == 0) c3 = 0;
+		else c3 = (unsigned char)*data++;
+
+		buf[buflen++] = basis_64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)];
+		if (len == 0) {
+			buf[buflen++] = '=';
+
+			break;
+		}
+
+		--len;
+		buf[buflen++] = basis_64[c3 & 0x3F];
+	}
+
+	buf[buflen]=0;
+	return buf;
+}
diff --git a/main/minimime/mm_codecs.c b/main/minimime/mm_codecs.c
new file mode 100644
index 0000000000..28603e5131
--- /dev/null
+++ b/main/minimime/mm_codecs.c
@@ -0,0 +1,250 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <string.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+#include "mm_util.h"
+
+extern struct mm_codecs codecs;
+
+/** @file mm_codecs.c
+ *
+ * This module contains functions to manipulate MiniMIME codecs
+ *
+ */
+
+/** @defgroup codecs Manipulating MiniMIME codecs */
+
+/** @{
+ * @name Codec manipulation 
+ */ 
+
+/**
+ * Looks up whether a context has an decoder installed for a given encoding
+ *
+ * @param encoding The encoding specifier to look up
+ * @return 1 if a decoder is installed or 0 if not
+ * @ingroup codecs
+ */
+int
+mm_codec_hasdecoder(const char *encoding)
+{
+	struct mm_codec *codec;
+
+	assert(encoding != NULL);
+
+	SLIST_FOREACH(codec, &codecs, next) {
+		assert(codec->encoding != NULL);
+		if (!strcasecmp(codec->encoding, encoding)) {
+			if (codec->decoder != NULL)
+				return 1;
+			else
+				return 0;
+		}
+	}
+
+	return 0;
+}
+
+/**
+ * Looks up whether a context has an encoder installed for a given encoding
+ * 
+ * @param ctx A valid MIME context
+ * @param encoding The encoding specifier to look up
+ * @return 1 if an encoder is installed or 0 if not
+ * @ingroup codecs
+ */
+int
+mm_codec_hasencoder(const char *encoding)
+{
+	struct mm_codec *codec;
+
+	assert(encoding != NULL);
+
+	SLIST_FOREACH(codec, &codecs, next) {
+		assert(codec->encoding != NULL);
+		if (!strcasecmp(codec->encoding, encoding)) {
+			if (codec->encoder != NULL)
+				return 1;
+			else
+				return 0;
+		}
+	}
+
+	return 0;
+}
+
+/**
+ * Looks up whether a codec for a given encoding is installed to a context
+ *
+ * @param encoding The encoding specifier to look up
+ * @return 1 if a codec was found or 0 if not
+ * @ingroup codecs
+ */
+int
+mm_codec_isregistered(const char *encoding)
+{
+	struct mm_codec *codec;
+
+	assert(encoding != NULL);
+
+	SLIST_FOREACH(codec, &codecs, next) {
+		if (!strcasecmp(codec->encoding, encoding)) {
+			return 1;
+		}
+	}
+
+	return 0;
+}
+
+/**
+ * Registers a codec with the MiniMIME library
+ *
+ * @param encoding The encoding specifier for which to register the codec
+ * @param encoder The encoder function for this encoding
+ * @param decoder The decoder function for this encoding
+ * @return 1 if successfull or 0 if not
+ * @ingroup codecs
+ *
+ * This function registers a codec for a given MiniMIME context. The codec
+ * may provide an decoder, an encoder or both (but not none). If there is
+ * a codec already installed for this encoding, the function will puke.
+ */
+int
+mm_codec_register(const char *encoding, 
+    char *(*encoder)(char *data, u_int32_t i),
+    char *(*decoder)(char *data))
+{
+	struct mm_codec *codec;
+
+	assert(encoding != NULL);
+
+	assert(mm_codec_isregistered(encoding) != 1);
+	
+	codec = (struct mm_codec *)xmalloc(sizeof(struct mm_codec));
+
+	codec->encoding = xstrdup(encoding);
+	codec->encoder = encoder;
+	codec->decoder = decoder;
+
+	if (SLIST_EMPTY(&codecs)) {
+		SLIST_INSERT_HEAD(&codecs, codec, next);
+		return 1;
+	} else {
+		struct mm_codec *lcodec, *tcodec;
+		tcodec = NULL;
+		SLIST_FOREACH(lcodec, &codecs, next) {
+			if (lcodec != NULL)
+				tcodec = lcodec;
+		}
+		assert(tcodec != NULL);
+		SLIST_INSERT_AFTER(tcodec, codec, next);
+		return 1;
+	}
+	
+	return 0;
+}
+
+/**
+ * Unregisters a MiniMIME codec 
+ *
+ * @param encoding The encoding specifier which to unregister
+ * @return 0 if unregistered successfully, or -1 if there was no such codec
+ * @ingroup codecs
+ */
+int
+mm_codec_unregister(const char *encoding)
+{
+	struct mm_codec *codec;
+
+	assert(encoding != NULL);
+
+	SLIST_FOREACH(codec, &codecs, next) {
+		if (!strcasecmp(codec->encoding, encoding)) {
+			xfree(codec->encoding);
+			xfree(codec);
+			codec = NULL;
+			return 0;
+		}
+	}
+
+	return -1;
+}
+
+/**
+ * Unregisters all codecs within a context 
+ *
+ * @param ctx A valid MiniMIME context
+ * @return 0 if all codecs were unregistered successfully or -1 if an error
+ *	occured.
+ * @note Foobar
+ */ 
+int
+mm_codec_unregisterall(void) 
+{
+	struct mm_codec *codec;
+
+	SLIST_FOREACH(codec, &codecs, next) {
+		if (mm_codec_unregister(codec->encoding) == -1) {
+			return -1;
+		}
+	}
+
+	return 0;
+}
+
+/**
+ * Registers the default codecs to a MiniMIME context
+ *
+ * This functions registers the codecs for the following encodings to a
+ * MiniMIME context:
+ *
+ *	- Base64
+ *	- (TODO:) Quoted-Printable
+ */
+void
+mm_codec_registerdefaultcodecs(void)
+{
+	mm_codec_register("base64", mm_base64_encode, mm_base64_decode);
+}
+
+
+/** @} */
diff --git a/main/minimime/mm_contenttype.c b/main/minimime/mm_contenttype.c
new file mode 100644
index 0000000000..ff978df85d
--- /dev/null
+++ b/main/minimime/mm_contenttype.c
@@ -0,0 +1,757 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <ctype.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+#include "mm_util.h"
+
+/* This file is documented using Doxygen */
+
+/**
+ * @file mm_contenttype.c 
+ *
+ * This module contains functions for manipulating Content-Type objects.
+ */
+
+/** @defgroup contenttype Accessing and manipulating Content-Type objects */
+
+struct mm_encoding_mappings {
+	const char *idstring;
+	int type;
+};
+
+static struct mm_encoding_mappings mm_content_enctypes[] = {
+	{ "Base64", MM_ENCODING_BASE64 },
+	{ "Quoted-Printable", MM_ENCODING_QUOTEDPRINTABLE },
+	{ NULL, - 1},
+};
+
+static const char *mm_composite_maintypes[] = {
+	"multipart",
+	"message",
+	NULL,
+};
+
+static const char *mm_composite_encodings[] = {
+	"7bit",
+	"8bit",
+	"binary",
+	NULL,
+};		
+
+/** @{
+ * @name Functions for manipulating Content objects
+ */
+
+/**
+ * Creates a new object to hold a Content representation.
+ * The allocated memory must later be freed using mm_content_free()
+ *
+ * @return An object representing a MIME Content-Type
+ * @see mm_content_free
+ * @ingroup contenttype
+ */
+struct mm_content *
+mm_content_new(void)
+{
+	struct mm_content *ct;
+
+	ct = (struct mm_content *)xmalloc(sizeof(struct mm_content));
+
+	ct->maintype = NULL;
+	ct->subtype = NULL;
+
+	TAILQ_INIT(&ct->type_params);
+	TAILQ_INIT(&ct->disposition_params);
+
+	ct->encoding = MM_ENCODING_NONE;
+	ct->encstring = NULL;
+
+	return ct;
+}
+
+/**
+ * Releases all memory associated with an Content object
+ *
+ * @param ct A Content-Type object
+ * @return Nothing
+ * @ingroup contenttype
+ */
+void
+mm_content_free(struct mm_content *ct)
+{
+	struct mm_param *param;
+
+	assert(ct != NULL);
+
+	if (ct->maintype != NULL) {
+		xfree(ct->maintype);
+		ct->maintype = NULL;
+	}
+	if (ct->subtype != NULL) {
+		xfree(ct->subtype);
+		ct->subtype = NULL;
+	}
+	if (ct->encstring != NULL) {
+		xfree(ct->encstring);
+		ct->encstring = NULL;
+	}
+
+	TAILQ_FOREACH(param, &ct->type_params, next) {
+		TAILQ_REMOVE(&ct->type_params, param, next);
+		mm_param_free(param);
+	}	
+	TAILQ_FOREACH(param, &ct->disposition_params, next) {
+		TAILQ_REMOVE(&ct->disposition_params, param, next);
+		mm_param_free(param);
+	}	
+
+	xfree(ct);
+}
+
+/**
+ * Attaches a content-type parameter to a Content object
+ *
+ * @param ct The target Content object
+ * @param param The Content-Type parameter which to attach
+ * @return 0 on success and -1 on failure
+ * @ingroup contenttype
+ */
+int
+mm_content_attachtypeparam(struct mm_content *ct, struct mm_param *param)
+{
+	assert(ct != NULL);
+	assert(param != NULL);
+
+	if (TAILQ_EMPTY(&ct->type_params)) {
+		TAILQ_INSERT_HEAD(&ct->type_params, param, next);
+	} else {
+		TAILQ_INSERT_TAIL(&ct->type_params, param, next);
+	}
+
+	return 0;
+}		
+
+
+/**
+ * Attaches a content-disposition parameter to a Content-Disposition object
+ *
+ * @param ct The target Content object
+ * @param param The Content-Type parameter which to attach
+ * @return 0 on success and -1 on failure
+ * @ingroup contenttype
+ */
+int
+mm_content_attachdispositionparam(struct mm_content *ct, struct mm_param *param)
+{
+	assert(ct != NULL);
+	assert(param != NULL);
+
+	if (TAILQ_EMPTY(&ct->disposition_params)) {
+		TAILQ_INSERT_HEAD(&ct->disposition_params, param, next);
+	} else {
+		TAILQ_INSERT_TAIL(&ct->disposition_params, param, next);
+	}
+
+	return 0;
+}		
+
+
+/**
+ * Gets a Content-Type parameter value from a Content object.
+ *
+ * @param ct the Content object
+ * @param name the name of the parameter to retrieve
+ * @return The value of the parameter on success or a NULL pointer on failure
+ * @ingroup contenttype
+ */
+char *
+mm_content_gettypeparambyname(struct mm_content *ct, const char *name)
+{
+	struct mm_param *param;
+
+	assert(ct != NULL);
+	
+	TAILQ_FOREACH(param, &ct->type_params, next) {
+		if (!strcasecmp(param->name, name)) {
+			return param->value;
+		}
+	}
+
+	return NULL;
+}
+
+/**
+ * Gets a Content-Disposition parameter value from a Content object.
+ *
+ * @param ct the Content object
+ * @param name the name of the parameter to retrieve
+ * @return The value of the parameter on success or a NULL pointer on failure
+ * @ingroup contenttype
+ */
+char *
+mm_content_getdispositionparambyname(struct mm_content *ct, const char *name)
+{
+	struct mm_param *param;
+
+	assert(ct != NULL);
+	
+	TAILQ_FOREACH(param, &ct->disposition_params, next) {
+		if (!strcasecmp(param->name, name)) {
+			return param->value;
+		}
+	}
+
+	return NULL;
+}
+
+struct mm_param *
+mm_content_gettypeparamobjbyname(struct mm_content *ct, const char *name)
+{
+	struct mm_param *param;
+
+	assert(ct != NULL);
+	
+	TAILQ_FOREACH(param, &ct->type_params, next) {
+		if (!strcasecmp(param->name, name)) {
+			return param;
+		}
+	}
+
+	return NULL;
+}
+
+struct mm_param *
+mm_content_getdispositionparamobjbyname(struct mm_content *ct, const char *name)
+{
+	struct mm_param *param;
+
+	assert(ct != NULL);
+	
+	TAILQ_FOREACH(param, &ct->disposition_params, next) {
+		if (!strcasecmp(param->name, name)) {
+			return param;
+		}
+	}
+
+	return NULL;
+}
+
+/**
+ * Sets the MIME main Content-Type for a MIME Content object
+ *
+ * @param ct The MIME Content object
+ * @param value The value which to set the main type to
+ * @param copy Whether to make a copy of the value (original value must be
+ *        freed afterwards to prevent memory leaks).
+ */
+int
+mm_content_setmaintype(struct mm_content *ct, char *value, int copy)
+{
+	assert(ct != NULL);
+	assert(value != NULL);
+
+	if (copy) {
+		/**
+		 * @bug The xfree() call could lead to undesirable results. 
+ 		 * Do we really need it?
+		 */
+		if (ct->maintype != NULL) {
+			xfree(ct->maintype);
+		}
+		ct->maintype = xstrdup(value);
+	} else {
+		ct->maintype = value;
+	}
+
+	return 0;
+}
+
+/**
+ * Retrieves the main MIME Content-Type stored in a Content object
+ *
+ * @param ct A valid Content object
+ * @returns A pointer to the string representing the main type
+ * @ingroup contenttype
+ */
+char *
+mm_content_getmaintype(struct mm_content *ct)
+{
+	assert(ct != NULL);
+	assert(ct->maintype != NULL);
+
+	return ct->maintype;
+}
+
+/**
+ * Sets the MIME Content-Disposition type for a MIME Content object
+ *
+ * @param ct The MIME Content object
+ * @param value The value which to set the main type to
+ * @param copy Whether to make a copy of the value (original value must be
+ *        freed afterwards to prevent memory leaks).
+ */
+int
+mm_content_setdispositiontype(struct mm_content *ct, char *value, int copy)
+{
+	assert(ct != NULL);
+	assert(value != NULL);
+
+	if (copy) {
+		/**
+		 * @bug The xfree() call could lead to undesirable results. 
+ 		 * Do we really need it?
+		 */
+		if (ct->disposition_type != NULL) {
+			xfree(ct->disposition_type);
+		}
+		ct->disposition_type = xstrdup(value);
+	} else {
+		ct->disposition_type = value;
+	}
+
+	return 0;
+}
+
+/**
+ * Retrieves the Content-Disposition MIME type stored in a Content object
+ *
+ * @param ct A valid Content-Type object
+ * @returns A pointer to the string representing the main type
+ * @ingroup contenttype
+ */
+char *
+mm_content_getdispositiontype(struct mm_content *ct)
+{
+	assert(ct != NULL);
+	assert(ct->disposition_type != NULL);
+
+	return ct->disposition_type;
+}
+
+/**
+ * Retrieves the sub MIME Content-Type stored in a Content object
+ *
+ * @param ct A valid Content-Type object
+ * @return A pointer to the string holding the current sub MIME type
+ * @ingroup contenttype
+ */
+char *
+mm_content_getsubtype(struct mm_content *ct)
+{
+	assert(ct != NULL);
+	assert(ct->subtype != NULL);
+
+	return ct->subtype;
+}
+
+/**
+ * Sets the MIME sub Content-Type for a MIME Content object
+ *
+ * @param ct The MIME Content-Type object
+ * @param value The value which to set the sub type to
+ * @param copy Whether to make a copy of the value (original value must be
+ *        freed afterwards to prevent memory leaks).
+ */
+int
+mm_content_setsubtype(struct mm_content *ct, char *value, int copy)
+{
+	assert(ct != NULL);
+	assert(value != NULL);
+
+	if (copy) {
+		/**
+		 * @bug The xfree() call could lead to undesirable results. 
+ 		 * Do we really need it?
+		 */
+		if (ct->subtype != NULL) {
+			xfree(ct->subtype);
+		}
+		ct->subtype = xstrdup(value);
+	} else {
+		ct->subtype = value;
+	}
+
+	return 0;
+}
+
+int
+mm_content_settype(struct mm_content *ct, const char *fmt, ...)
+{
+	char *maint, *subt;
+	char buf[512], *parse;
+	va_list ap;
+	
+	mm_errno = MM_ERROR_NONE;
+	
+	va_start(ap, fmt);
+	/* Make sure no truncation occurs */
+	if (vsnprintf(buf, sizeof buf, fmt, ap) > sizeof buf) {
+		mm_errno = MM_ERROR_ERRNO;
+		mm_error_setmsg("Input string too long");
+		return -1;
+	}
+	va_end(ap);
+
+	parse = buf;
+	maint = strsep(&parse, "/");
+	if (maint == NULL) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("Invalid type specifier: %s", buf);
+		return -1;
+	}
+	ct->maintype = xstrdup(maint);
+
+	subt = strsep(&parse, "");
+	if (subt == NULL) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("Invalid type specifier: %s", buf);
+		return -1;
+	}
+	ct->subtype = xstrdup(subt);
+	
+	return 0;
+}
+
+/**
+ * Checks whether the Content-Type represents a composite message or not
+ *
+ * @param ct A valid Content-Type object
+ * @returns 1 if the Content-Type object represents a composite message or
+ *          0 if not.
+ */
+int
+mm_content_iscomposite(struct mm_content *ct)
+{
+	int i;
+
+	for (i = 0; mm_composite_maintypes[i] != NULL; i++) {
+		if (!strcasecmp(ct->maintype, mm_composite_maintypes[i])) {
+			return 1;
+		}
+	}
+
+	/* Not found */
+	return 0;
+}
+
+/**
+ * Verifies whether a string represents a valid encoding or not.
+ *
+ * @param encoding The string to verify
+ * @return 1 if the encoding string is valid or 0 if not
+ *
+ */
+int
+mm_content_isvalidencoding(const char *encoding)
+{
+	int i;
+	
+	for (i = 0; mm_composite_encodings[i] != NULL; i++) {
+		if (!strcasecmp(encoding, mm_composite_encodings[i])) {
+			return 1;
+		}
+	}
+
+	/* Not found */
+	return 0;
+}
+
+/**
+ * Set the encoding of a MIME entitity according to a mapping table
+ *
+ * @param ct A valid content type object
+ * @param encoding A string representing the content encoding
+ * @return 0 if successfull or -1 if not (i.e. unknown content encoding)
+ */
+int
+mm_content_setencoding(struct mm_content *ct, const char *encoding)
+{
+	int i;
+
+	assert(ct != NULL);
+	assert(encoding != NULL);
+
+	for (i = 0; mm_content_enctypes[i].idstring != NULL; i++) {
+		if (!strcasecmp(mm_content_enctypes[i].idstring, encoding)) {
+			ct->encoding = mm_content_enctypes[i].type;
+			ct->encstring = xstrdup(encoding);
+			return 0;
+		}
+	}
+
+	/* If we didn't find a mapping, set the encoding to unknown */
+	ct->encoding = MM_ENCODING_UNKNOWN;
+	ct->encstring = NULL;
+	return 1;
+}
+
+/**
+ * Gets the numerical ID of a content encoding identifier
+ *
+ * @param ct A valid Content Type object
+ * @param encoding A string representing the content encoding identifier
+ * @return The numerical ID of the content encoding
+ */ 
+int
+mm_content_getencoding(struct mm_content *ct, const char *encoding)
+{
+	int i;
+
+	assert(ct != NULL);
+
+	for (i = 0; mm_content_enctypes[i].idstring != NULL; i++) {
+		if (!strcasecmp(mm_content_enctypes[i].idstring, encoding)) {
+			return mm_content_enctypes[i].type;
+		}
+	}
+
+	/* Not found */
+	return MM_ENCODING_UNKNOWN;
+}
+
+/**
+ * Constructs a MIME conform string of Content-Type parameters.
+ *
+ * @param ct A valid Content Type object
+ * @return A pointer to a string representing the Content-Type parameters
+ *         in MIME terminology, or NULL if either the Content-Type object
+ *         is invalid, has no parameters or no memory could be allocated.
+ *
+ * This function constructs a MIME conform string including all the parameters
+ * associated with the given Content-Type object. It should NOT be used if
+ * you need an opaque copy of the current MIME part (e.g. for PGP purposes).
+ */
+char *
+mm_content_typeparamstostring(struct mm_content *ct)
+{
+	size_t size, new_size;
+	struct mm_param *param;
+	char *param_string, *cur_param;
+	char *buf;
+
+	size = 1;
+	param_string = NULL;
+	cur_param = NULL;
+
+	param_string = (char *) xmalloc(size);
+	*param_string = '\0';
+
+	/* Concatenate all Content-Type parameters attached to the current
+	 * Content-Type object to a single string.
+	 */
+	TAILQ_FOREACH(param, &ct->type_params, next) {
+		if (asprintf(&cur_param, "; %s=\"%s\"", param->name, 
+		    param->value) == -1) {
+			goto cleanup;
+		}
+
+		new_size = size + strlen(cur_param) + 1;
+		
+		if (new_size < 0 || new_size > 1000) {
+			size = 0;
+			goto cleanup;
+		}	
+
+		buf = (char *) xrealloc(param_string, new_size);
+		if (buf == NULL) {
+			size = 0;
+			goto cleanup;
+		}
+
+		param_string = buf;
+		size = new_size;
+		strlcat(param_string, cur_param, size);
+		
+		xfree(cur_param);
+		cur_param = NULL;
+	}
+
+	return param_string;
+
+cleanup:
+	if (param_string != NULL) {
+		xfree(param_string);
+		param_string = NULL;
+	}
+	if (cur_param != NULL) {
+		xfree(cur_param);
+		cur_param = NULL;
+	}	
+	return NULL;
+}
+
+/**
+ * Constructs a MIME conformant string of Content-Disposition parameters.
+ *
+ * @param ct A valid Content object
+ * @return A pointer to a string representing the Content-Disposition parameters
+ *         in MIME terminology, or NULL if either the Content object
+ *         is invalid, has no Disposition parameters or no memory could be allocated.
+ *
+ * This function constructs a MIME conforming string including all the parameters
+ * associated with the given Content-Disposition object. It should NOT be used if
+ * you need an opaque copy of the current MIME part (e.g. for PGP purposes).
+ */
+char *
+mm_content_dispositionparamstostring(struct mm_content *ct)
+{
+	size_t size, new_size;
+	struct mm_param *param;
+	char *param_string, *cur_param;
+	char *buf;
+
+	size = 1;
+	param_string = NULL;
+	cur_param = NULL;
+
+	param_string = (char *) xmalloc(size);
+	*param_string = '\0';
+
+	/* Concatenate all Content-Disposition parameters attached to the current
+	 * Content object to a single string.
+	 */
+	TAILQ_FOREACH(param, &ct->disposition_params, next) {
+		if (asprintf(&cur_param, "; %s=\"%s\"", param->name, 
+		    param->value) == -1) {
+			goto cleanup;
+		}
+
+		new_size = size + strlen(cur_param) + 1;
+		
+		if (new_size < 0 || new_size > 1000) {
+			size = 0;
+			goto cleanup;
+		}	
+
+		buf = (char *) xrealloc(param_string, new_size);
+		if (buf == NULL) {
+			size = 0;
+			goto cleanup;
+		}
+
+		param_string = buf;
+		size = new_size;
+		strlcat(param_string, cur_param, size);
+		
+		xfree(cur_param);
+		cur_param = NULL;
+	}
+
+	return param_string;
+
+cleanup:
+	if (param_string != NULL) {
+		xfree(param_string);
+		param_string = NULL;
+	}
+	if (cur_param != NULL) {
+		xfree(cur_param);
+		cur_param = NULL;
+	}	
+	return NULL;
+}
+
+/**
+ * Creates a Content-Type header according to the object given
+ *
+ * @param ct A valid Content-Type object
+ *
+ */
+char *
+mm_content_tostring(struct mm_content *ct)
+{
+	char *paramstring;
+	char *buf;
+	char *headerstring;
+	size_t size;
+
+	paramstring = NULL;
+	headerstring = NULL;
+	buf = NULL;
+
+	if (ct == NULL) {
+		return NULL;
+	}	
+	if (ct->maintype == NULL || ct->subtype == NULL) {
+		return NULL;
+	}	
+
+	size = strlen(ct->maintype) + strlen(ct->subtype) + 2;
+	headerstring = (char *)xmalloc(size);
+	snprintf(headerstring, size, "%s/%s", ct->maintype, ct->subtype);
+
+	paramstring = mm_content_typeparamstostring(ct);
+	if (paramstring == NULL) {
+		goto cleanup;
+	}
+
+	size += strlen(paramstring) + strlen("Content-Type: ") + 1;
+	buf = (char *)malloc(size);
+	if (buf == NULL) {
+		goto cleanup;
+	}
+
+	snprintf(buf, size, "Content-Type: %s%s", headerstring, paramstring);
+
+	xfree(headerstring);
+	xfree(paramstring);
+
+	headerstring = NULL;
+	paramstring = NULL;
+
+	return buf;
+
+cleanup:
+	if (paramstring != NULL) {
+		xfree(paramstring);
+		paramstring = NULL;
+	}
+	if (headerstring != NULL) {
+		xfree(headerstring);
+		headerstring = NULL;
+	}	
+	if (buf != NULL) {
+		xfree(buf);
+		buf = NULL;
+	}	
+	return NULL;
+}
+
+/** @} */
diff --git a/main/minimime/mm_context.c b/main/minimime/mm_context.c
new file mode 100644
index 0000000000..e655b925aa
--- /dev/null
+++ b/main/minimime/mm_context.c
@@ -0,0 +1,604 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+
+/** @file mm_context.c
+ *
+ * Modules for manipulating MiniMIME contexts
+ */
+
+/** @defgroup context Accessing and manipulating MIME contexts 
+ *
+ * Each message in MiniMIME is represented by a so called ``context''. A
+ * context holds all necessary information given about a MIME message, such
+ * as the envelope, all MIME parts etc.
+ */
+
+/** @{
+ * @name Manipulating MiniMIME contexts
+ */
+
+/**
+ * Creates a new MiniMIME context object. 
+ *
+ * @return a new MiniMIME context object
+ * @see mm_context_free
+ *
+ * This function creates a new MiniMIME context, which will hold a message.
+ * The memory needed is allocated dynamically and should later be free'd
+ * using mm_context_free().
+ *
+ * Before a context can be created, the MiniMIME library needs to be
+ * initialized properly using mm_library_init().
+ *
+ */
+MM_CTX *
+mm_context_new(void)
+{
+	MM_CTX *ctx;
+
+	MM_ISINIT();
+
+	ctx = (MM_CTX *)xmalloc(sizeof(MM_CTX));
+	ctx->messagetype = MM_MSGTYPE_FLAT; /* This is the default */
+	ctx->boundary = NULL;
+	ctx->preamble = xstrdup("This is a message in MIME format, generated "
+	    "by MiniMIME 0.1");
+
+	TAILQ_INIT(&ctx->parts);
+	SLIST_INIT(&ctx->warnings);
+
+	return ctx;
+}
+
+/**
+ * Releases a MiniMIME context object
+ *
+ * @param ctx A valid MiniMIME context
+ * @see mm_context_new
+ *
+ * This function releases all memory associated with MiniMIME context object
+ * that was created using mm_context_new(). It will also release all memory
+ * used for the MIME parts attached, and their specific properties (such as
+ * Content-Type information, headers, and the body data).
+ */
+void
+mm_context_free(MM_CTX *ctx)
+{
+	struct mm_mimepart *part;
+	struct mm_warning *warning, *nxt;
+	
+	assert(ctx != NULL);
+
+	TAILQ_FOREACH(part, &ctx->parts, next) {
+		TAILQ_REMOVE(&ctx->parts, part, next);
+		mm_mimepart_free(part);
+	}
+
+	if (ctx->boundary != NULL) {
+		xfree(ctx->boundary);
+		ctx->boundary = NULL;
+	}
+
+	if (ctx->preamble != NULL) {
+		xfree(ctx->preamble);
+		ctx->preamble = NULL;
+	}
+
+	for (warning = SLIST_FIRST(&ctx->warnings); 
+	    warning != SLIST_END(&ctx->warnings);
+	    warning = nxt) {
+		nxt = SLIST_NEXT(warning, next);
+		SLIST_REMOVE(&ctx->warnings, warning, mm_warning, next);
+		xfree(warning);
+		warning = NULL;
+	}
+
+	xfree(ctx);
+	ctx = NULL;
+}
+
+/**
+ * Attaches a MIME part object to a MiniMIME context.
+ *
+ * @param ctx the MiniMIME context
+ * @param part the MIME part object to attach
+ * @return 0 on success or -1 on failure. Sets mm_errno on failure.
+ *
+ * This function attaches a MIME part to a context, appending it to the end
+ * of the message. 
+ *
+ * The MIME part should be initialized before attaching it using 
+ * mm_mimepart_new().
+ */
+int
+mm_context_attachpart(MM_CTX *ctx, struct mm_mimepart *part)
+{
+	assert(ctx != NULL);
+	assert(part != NULL);
+	
+	if (TAILQ_EMPTY(&ctx->parts)) {
+		TAILQ_INSERT_HEAD(&ctx->parts, part, next);
+	} else {
+		TAILQ_INSERT_TAIL(&ctx->parts, part, next);
+	}
+
+	return 0;
+}
+
+/**
+ * Attaches a MIME part object to a MiniMIME context at a given position
+ *
+ * @param ctx A valid MiniMIME context
+ * @param part The MIME part object to attach
+ * @param pos After which part to attach the object
+ * @return 0 on success or -1 if the given position is invalid
+ * @see mm_context_attachpart
+ *
+ * This function attaches a MIME part object after a given position in the
+ * specified context. If the position is invalid (out of range), the part
+ * will not get attached to the message and the function returns -1. If
+ * the index was in range, the MIME part will get attached after the MIME
+ * part at the given position, moving any possible following MIME parts one
+ * down the hierarchy.
+ */
+int
+mm_context_attachpart_after(MM_CTX *ctx, struct mm_mimepart *part, int pos)
+{
+	struct mm_mimepart *p;
+	int where;
+
+	where = 0;
+	p = NULL;
+
+	TAILQ_FOREACH(part, &ctx->parts, next) {
+		if (where == pos) {
+			p = part;
+		}	
+	}
+
+	if (p == NULL) {
+		return(-1);
+	}
+
+	TAILQ_INSERT_AFTER(&ctx->parts, p, part, next);
+
+	return(0);
+}
+
+/**
+ * Deletes a MIME part object from a MiniMIME context
+ *
+ * @param ctx A valid MiniMIME context object
+ * @param which The number of the MIME part object to delete
+ * @param freemem Whether to free the memory associated with the MIME part
+ *        object
+ * @return 0 on success or -1 on failure. Sets mm_errno on failure.
+ *
+ * This function deletes a MIME part from a given context. The MIME part to
+ * delete is specified as numerical index by the parameter ``which''. If the
+ * parameter ``freemem'' is set to anything greater than 0, the memory that
+ * is associated will be free'd by using mm_mimepart_free(), otherwise the
+ * memory is left untouched (if you still have a pointer to the MIME part
+ * around).
+ */
+int
+mm_context_deletepart(MM_CTX *ctx, int which, int freemem)
+{
+	struct mm_mimepart *part;
+	int cur;
+
+	assert(ctx != NULL);
+	assert(which >= 0);
+
+	cur = 0;
+
+	TAILQ_FOREACH(part, &ctx->parts, next) {
+		if (cur == which) {
+			TAILQ_REMOVE(&ctx->parts, part, next);
+			if (freemem)
+				mm_mimepart_free(part);
+			return 0;
+		}
+		cur++;
+	}
+
+	return -1;
+}
+
+/**
+ * Counts the number of attached MIME part objects in a given MiniMIME context
+ *
+ * @param ctx The MiniMIME context
+ * @returns The number of attached MIME part objects
+ */
+int
+mm_context_countparts(MM_CTX *ctx)
+{
+	int count;
+	struct mm_mimepart *part;
+	
+	assert(ctx != NULL);
+
+	count = 0;
+
+	if (TAILQ_EMPTY(&ctx->parts)) {
+		return 0;
+	} else {
+		TAILQ_FOREACH(part, &ctx->parts, next) {
+			count++;
+		}
+	}
+
+	assert(count > -1);
+
+	return count;
+}
+
+/**
+ * Gets a specified MIME part object from a MimeMIME context
+ *
+ * @param ctx The MiniMIME context
+ * @param which The number of the MIME part object to retrieve
+ * @returns The requested MIME part object on success or a NULL pointer if
+ *          there is no such part.
+ */
+struct mm_mimepart *
+mm_context_getpart(MM_CTX *ctx, int which)
+{
+	struct mm_mimepart *part;
+	int cur;
+	
+	assert(ctx != NULL);
+
+	cur = 0;
+	
+	TAILQ_FOREACH(part, &ctx->parts, next) {
+		if (cur == which) {
+			return part;
+		}
+		cur++;
+	}
+
+	return NULL;
+}
+
+/**
+ * Checks whether a given context represents a composite (multipart) message
+ *
+ * @param ctx A valid MiniMIME context object
+ * @return 1 if the context is a composite message or 0 if it's flat
+ *
+ */
+int
+mm_context_iscomposite(MM_CTX *ctx)
+{
+	if (ctx->messagetype == MM_MSGTYPE_MULTIPART) {
+		return 1;
+	} else {
+		return 0;
+	}
+}
+
+/**
+ * Checks whether there are any warnings associated with a given context
+ *
+ * @param ctx A valid MiniMIME context
+ * @return 1 if there are warnings associated with the context, otherwise 0
+ */
+int
+mm_context_haswarnings(MM_CTX *ctx)
+{
+	if (SLIST_EMPTY(&ctx->warnings)) {
+		return 0;
+	} else {
+		return 1;
+	}
+}
+
+/**
+ * Generates a generic boundary string for a given context
+ *
+ * @param ctx A valid MiniMIME context
+ * @return 0 on success or -1 on failure
+ *
+ * This function generates a default boundary string for the given context.
+ * If there is already a boundary for the context, the memory will be free()'d.
+ */
+int
+mm_context_generateboundary(MM_CTX *ctx)
+{
+	char *boundary;
+	struct mm_mimepart *part;
+	struct mm_param *param;
+	
+	if (mm_mimeutil_genboundary("++MiniMIME++", 20, &boundary) == -1) {
+		return(-1);
+	}	
+
+	if (ctx->boundary != NULL) {
+		xfree(ctx->boundary);
+		ctx->boundary = NULL;
+	}
+	
+	/* If we already have an envelope, make sure that we also justify the
+	 * "boundary" parameter of the envelope.
+	 */
+	part = mm_context_getpart(ctx, 0);
+	if (part == NULL) {
+		return(0);
+	}
+	if (part->type != NULL) {
+		param = mm_content_gettypeparamobjbyname(part->type, "boundary");
+		if (param == NULL) {
+			param = mm_param_new();
+			param->name = xstrdup("boundary");
+			param->value = xstrdup(boundary);
+			mm_content_attachtypeparam(part->type, param);
+		} else {
+			if (param->value != NULL) {
+				xfree(param->value);
+				param->value = NULL;
+			}
+			param->value = xstrdup(boundary);
+		}	
+	}
+
+	ctx->boundary = boundary;
+	return(0);
+}
+
+/**
+ * Sets a preamble for the given MiniMIME context
+ *
+ * @param ctx A valid MiniMIME context
+ * @param preamble The preamble to set
+ * @return 0 on success or -1 on failure
+ *
+ * This function sets the MIME preamble (the text between the end of envelope
+ * headers and the beginning of the first MIME part) for a given context
+ * object. If preamble is a NULL-pointer then the preamble will be deleted,
+ * and the currently associated memory will be free automagically.
+ */
+int
+mm_context_setpreamble(MM_CTX *ctx, char *preamble)
+{
+	if (ctx == NULL)
+		return(-1);
+
+	if (preamble == NULL) {
+		if (ctx->preamble != NULL) {
+			xfree(ctx->preamble);
+		}
+		ctx->preamble = NULL;
+	} else {	
+		ctx->preamble = xstrdup(preamble);
+	}	
+	return(0);
+}
+
+char *
+mm_context_getpreamble(MM_CTX *ctx)
+{
+	if (ctx == NULL)
+		return(NULL);
+
+	return(ctx->preamble);	
+}
+
+/**
+ * Creates an ASCII message of the specified context
+ *
+ * @param ctx A valid MiniMIME context object
+ * @param flat Where to store the message
+ * @param flags Flags that affect the flattening process
+ *
+ * This function ``flattens'' a MiniMIME context, that is, it creates an ASCII
+ * represantation of the message the context contains. The flags can be a
+ * bitwise combination of the following constants:
+ *
+ * - MM_FLATTEN_OPAQUE : use opaque MIME parts when flattening
+ * - MM_FLATTEN_SKIPENVELOPE : do not flatten the envelope part
+ *
+ * Great care is taken to not produce invalid MIME output.
+ */
+int
+mm_context_flatten(MM_CTX *ctx, char **flat, size_t *length, int flags)
+{
+	struct mm_mimepart *part;
+	char *message;
+	char *flatpart;
+	char *buf;
+	char *envelope_headers;
+	size_t message_size;
+	size_t tmp_size;
+	char envelope;
+
+	mm_errno = MM_ERROR_NONE;
+	envelope = 1;
+
+	message = NULL;
+	message_size = 0;
+
+	if (ctx->boundary == NULL) {
+		if (mm_context_iscomposite(ctx)) {
+			mm_context_generateboundary(ctx);
+		}
+	}
+
+	TAILQ_FOREACH(part, &ctx->parts, next) {
+		if (envelope) {
+			if (flags & MM_FLATTEN_SKIPENVELOPE) {
+				envelope = 0;
+				if ((message = (char *) malloc(1)) == NULL) {
+					mm_errno = MM_ERROR_ERRNO;
+					goto cleanup;
+				}
+				*message = '\0';
+				continue;
+			}
+	
+			if (part->type == NULL && mm_context_countparts(ctx) > 1) {
+				if (mm_mimepart_setdefaultcontenttype(part, 1) 
+				    == -1) {
+					goto cleanup;
+				}	
+				if (mm_context_generateboundary(ctx) == -1) {
+					goto cleanup;
+				}	
+				ctx->messagetype = MM_MSGTYPE_MULTIPART;
+			}
+			
+			if (mm_envelope_getheaders(ctx, &envelope_headers,
+			    &tmp_size) == -1) {
+			    	return -1;
+			}
+			
+			message = envelope_headers;
+			message_size = tmp_size;
+			envelope = 0;
+
+			if (ctx->preamble != NULL 
+			    && mm_context_iscomposite(ctx) 
+			    && !(flags & MM_FLATTEN_NOPREAMBLE)) {
+				tmp_size += strlen(ctx->preamble) 
+				    + (strlen("\r\n") * 2);
+				buf = (char *)xrealloc(message, tmp_size);
+				if (buf == NULL) {
+					goto cleanup;
+				}
+				message_size += tmp_size;
+				message = buf;
+				strlcat(message, "\r\n", message_size);
+				strlcat(message, ctx->preamble, message_size);
+				strlcat(message, "\r\n", message_size);
+			}
+		} else {
+			/* Enforce Content-Type if none exist */
+			if (part->type == NULL) {
+				if (mm_mimepart_setdefaultcontenttype(part, 0) 
+				    == -1) {
+					goto cleanup;
+				}	
+			}
+
+			/* Append a boundary if necessary */
+			if (ctx->boundary != NULL) {
+				tmp_size = strlen(ctx->boundary) + 
+				    (strlen("\r\n") * 2) + strlen("--");
+
+				if (tmp_size < 1) {
+					return(-1);
+				}	
+				if (message_size + tmp_size < 1) {
+					return(-1);
+				}
+
+				buf = (char *)xrealloc(message, message_size
+				    + tmp_size);
+				if (buf == NULL) {
+					goto cleanup;
+				}
+				message_size += tmp_size;
+				message = buf;
+				strlcat(message, "\r\n", message_size);
+				strlcat(message, "--", message_size);
+				strlcat(message, ctx->boundary, message_size);
+				strlcat(message, "\r\n", message_size);
+			}
+
+			if (mm_mimepart_flatten(part, &flatpart, &tmp_size, 
+			    (flags & MM_FLATTEN_OPAQUE)) == -1) {
+				goto cleanup;
+			}
+			
+			if (tmp_size < 1) {
+				goto cleanup;
+			}
+			
+			buf = (char *) xrealloc(message, message_size 
+			    + tmp_size);
+			if (buf == NULL) {
+				goto cleanup;
+			}
+			
+			message_size += tmp_size;
+			message = buf;
+			
+			strlcat(message, flatpart, message_size);
+			xfree(flatpart);
+			flatpart = NULL;
+		}	
+	}
+	
+	/* Append end boundary */
+	if (ctx->boundary != NULL && mm_context_iscomposite(ctx)) {
+		tmp_size = strlen(ctx->boundary) + (strlen("\r\n") * 2) 
+		    + (strlen("--") * 2);
+		buf = (char *)xrealloc(message, message_size + tmp_size);
+		if (buf == NULL) {
+			goto cleanup;
+		}
+		
+		message_size += tmp_size;
+		message = buf;
+		if (message[strlen(message)-1] != 13)
+			strlcat(message, "\r", message_size);
+		strlcat(message, "\n", message_size);
+		strlcat(message, "--", message_size);
+		strlcat(message, ctx->boundary, message_size);
+		strlcat(message, "--", message_size);
+		strlcat(message, "\r\n", message_size);
+	}
+
+	*flat = message;
+	*length = message_size;
+
+	return 0;
+
+cleanup:
+	if (message != NULL) {
+		xfree(message);
+		message = NULL;
+	}	
+	return -1;
+}
+
+/** @} */
diff --git a/main/minimime/mm_envelope.c b/main/minimime/mm_envelope.c
new file mode 100644
index 0000000000..e94bc475df
--- /dev/null
+++ b/main/minimime/mm_envelope.c
@@ -0,0 +1,269 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <ctype.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+#include "mm_util.h"
+
+/** @file mm_envelope.c
+ *
+ * This module contains functions for accessing a message's envelope. This
+ * are mainly wrapper functions for easy access.
+ */
+
+/** @defgroup envelope Accessing and manipulating a message's envelope
+ */
+
+/** @{
+ * @name Accessing and manipulating a message's envelope
+ */
+
+/**
+ * Gets an ASCII representation of all envelope headers
+ *
+ * @param ctx A valid MiniMIME context
+ * @param result Where to store the resulting ASCII headers
+ * @param length Where to store the length of the result
+ * @returns 0 on success or -1 on failure.
+ * @note Sets mm_errno on failure
+ *
+ * This is mainly a convinience function. It constructs an ASCII representation
+ * from all of the message's envelope headers and stores the result in headers.
+ * Memory is allocated dynamically, and the total length of the result is
+ * stored in length. This function takes care that the output is MIME conform,
+ * and folds long lines according to the MIME standard at position 78 of the
+ * string. It also nicely formats all MIME related header fields, such as
+ * the Content-Type header.
+ *
+ * Since the memory needed to store the result is allocated dynamically, one
+ * should take care of freeing it again when it's not needed anymore. If an
+ * error occurs, *result will be set to NULL, *length will be set to zero
+ * and mm_errno will be set to a reasonable value.
+ *
+ */
+int
+mm_envelope_getheaders(MM_CTX *ctx, char **result, size_t *length)
+{
+	struct mm_mimepart *part;
+	struct mm_mimeheader *hdr;
+	char *buf, *hdrbuf;
+	size_t headers_length, tmp_length;
+
+	headers_length = 1;
+	buf = NULL;
+
+	part = mm_context_getpart(ctx, 0);
+	if (part == NULL) {
+		return -1;
+	}	
+
+	/* Initialize our buffer */
+	if ((buf = (char *)xmalloc(headers_length)) == NULL) {
+		mm_errno = MM_ERROR_ERRNO;
+		goto cleanup;
+	}	
+	*buf = '\0';
+
+	/* Store each envelope header */
+	TAILQ_FOREACH(hdr, &part->headers, next) {
+		tmp_length = strlen(hdr->name) + strlen(hdr->value) 
+		    + strlen(": \r\n");
+		hdrbuf = (char *) xrealloc(buf, headers_length + tmp_length);
+		if (hdrbuf == NULL) {
+			mm_errno = MM_ERROR_ERRNO;
+			goto cleanup;
+		}
+
+		headers_length += tmp_length;
+		buf = hdrbuf;
+
+		strlcat(buf, hdr->name, headers_length);
+		strlcat(buf, ": ", headers_length);
+		strlcat(buf, hdr->value, headers_length);
+		strlcat(buf, "\r\n", headers_length);
+	}
+
+	/* Construct and store MIME headers */
+	if (part->type != NULL) {
+		char *typebuf;
+		typebuf = mm_content_tostring(part->type);
+		if (typebuf == NULL) {
+			goto cleanup;
+		}
+		tmp_length = strlen(typebuf) + strlen("\r\n");
+
+		hdrbuf = (char *) xrealloc(buf, headers_length + tmp_length);
+		if (hdrbuf == NULL) {
+			mm_errno = MM_ERROR_ERRNO;
+			goto cleanup;
+		}
+
+		headers_length += tmp_length;
+		buf = hdrbuf;
+		
+		strlcat(buf, typebuf, headers_length);
+		strlcat(buf, "\r\n", headers_length);
+	}
+
+	*result = buf;
+	*length = headers_length;
+
+	return 0;
+
+cleanup:
+	if (buf != NULL) {
+		xfree(buf);
+		buf = NULL;
+	}
+	*result = NULL;
+	*length = 0;
+	return -1;
+}
+
+/**
+ * Sets a header field in the envelope
+ *
+ * @param ctx A valid MiniMIME context
+ * @param name The name of the header field to set
+ * @param fmt A format string specifying the value of the header field
+ * @return 0 on success or -1 on failure
+ *
+ * This function generates a new MIME header and attaches it to the first
+ * MIME part (the envelope) found in the given context. If no part is
+ * attached already, the function will return an error. The function will
+ * store a copy of ``name'' as the header's name field, and dynamically
+ * allocate the memory needed to build the format string.
+ */
+int
+mm_envelope_setheader(MM_CTX *ctx, const char *name, const char *fmt, ...)
+{
+	va_list ap;
+	char *buf;
+	struct mm_mimeheader *hdr;
+	struct mm_mimepart *part;
+
+	part = mm_context_getpart(ctx, 0);
+	if (part == NULL) {
+		return(-1);
+	}	
+
+	hdr = mm_mimeheader_new();
+	if (hdr == NULL) {
+		return(-1);
+	}
+
+	hdr->name = xstrdup(name);
+
+	va_start(ap, fmt);
+	if (vasprintf(&buf, fmt, ap) == -1) {
+		goto cleanup;
+	}	
+	va_end(ap);
+
+	hdr->value = buf;
+
+	if (mm_mimepart_attachheader(part, hdr) == -1) {
+		goto cleanup;
+	}	
+
+	return(0);
+
+cleanup:
+	if (hdr != NULL) {
+		if (hdr->name != NULL) {
+			xfree(hdr->name);
+			hdr->name = NULL;
+		}
+		if (hdr->value != NULL) {
+			xfree(hdr->value);
+			hdr->value = NULL;
+		}
+	}	
+	return(-1);
+}
+
+/**
+ * Gets the list of recipients for a MIME message
+ *
+ * @param ctx A valid MiniMIME context
+ * @param result Where to store the result
+ * @param length Where to store the length of the result
+ * @returns 0 on success or -1 on error
+ * @note Sets mm_errno on error
+ *
+ * This functions gets the list of recipients for a given MIME message. It
+ * does so by concatenating the "From" and "Cc" header fields, and storing
+ * the results in recipients. The memory needed to store the result is
+ * allocated dynamically, and the total length of the result is stored in
+ * length.
+ *
+ * One should take care to free() the result once it's not needed anymore.
+ */
+int
+mm_envelope_getrecipients(MM_CTX *ctx, char **result, size_t *length)
+{
+	struct mm_mimepart *part;
+	struct mm_mimeheader *to, *cc;
+	size_t recipients_length;
+
+	part = mm_context_getpart(ctx, 0);
+	if (part == NULL) {
+		return -1;
+	}
+
+	to = mm_mimepart_getheaderbyname(part, "From", 0);
+	cc = mm_mimepart_getheaderbyname(part, "Cc", 0);
+
+	if (to == NULL || cc == NULL) {
+		*result = NULL;
+		*length = 0;
+		return -1;
+	}
+
+	if (to != NULL) {
+		recipients_length += strlen(to->value);
+	}	
+	if (cc != NULL) {
+		recipients_length += strlen(cc->value);
+	}	
+	
+	return 0;
+}
+
+/** @} */
diff --git a/main/minimime/mm_error.c b/main/minimime/mm_error.c
new file mode 100644
index 0000000000..5b27bf724c
--- /dev/null
+++ b/main/minimime/mm_error.c
@@ -0,0 +1,123 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <assert.h>
+#include <errno.h>
+
+#include "mm_internal.h"
+#include "mm_util.h"
+
+/** @file mm_error.c
+ *
+ * This module contains functions for MiniMIME error information/manipulation
+ */
+
+/** @defgroup error MiniMIME error functions */
+
+/**
+ * Initializes the global error object 
+ *
+ * @ingroup error
+ *
+ * This function initializes the global error object mm_error. This must be
+ * done when the library is initialized, and is automatically called from
+ * mm_init_library().
+ */
+void
+mm_error_init(void)
+{
+	mm_error.error_id = 0;
+	mm_error.error_where = 0;
+	mm_error.lineno = 0;
+	memset(&mm_error.error_msg, '\0', sizeof(mm_error.error_msg));
+}
+
+/**
+ * Sets a descriptive error message
+ *
+ * @param fmt The error message as format string
+ * @ingroup error
+ *
+ * This function is called from the various MiniMIME modules in case an
+ * error occured. Should never be called by the user.
+ */
+void
+mm_error_setmsg(const char *fmt, ...)
+{
+	va_list ap;
+
+	va_start(ap, fmt);
+	vsnprintf(mm_error.error_msg, sizeof(mm_error.error_msg), fmt, ap);
+	va_end(ap);
+
+}
+
+void
+mm_error_setlineno(int lineno)
+{
+	mm_error.lineno = lineno;
+}
+
+/**
+ * Retrieves the current error message
+ *
+ * @return The currently set error message
+ * @ingroup error
+ *
+ * This function can be used to retrieve a descriptive error message for the
+ * current error, much like strerror() function of libc. When this function
+ * is called without an error being set, it returns the string "No error".
+ * The string returned does not need to be freed, since it is not dynamically
+ * allocated by the library.
+ */
+char *
+mm_error_string(void)
+{
+	if (mm_errno != MM_ERROR_ERRNO && mm_error.error_msg[0] == '\0') {
+		return "No error";
+	} else if (mm_errno == MM_ERROR_ERRNO) {
+		return strerror(errno);
+	} else {
+		return mm_error.error_msg;
+	}
+}
+
+int
+mm_error_lineno(void)
+{
+	return mm_error.lineno;
+}
diff --git a/main/minimime/mm_header.c b/main/minimime/mm_header.c
new file mode 100644
index 0000000000..827c19cacd
--- /dev/null
+++ b/main/minimime/mm_header.c
@@ -0,0 +1,213 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <ctype.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+#include "mm_util.h"
+
+/** @file mm_header.c
+ *
+ * This module contains functions for manipulating MIME headers
+ */
+
+/**
+ * Creates a new MIME header object
+ *
+ * @return A new and initialized MIME header object
+ * @see mm_mimeheader_free
+ *
+ * This function creates and initializes a new MIME header object, which must
+ * later be freed using mm_mimeheader_free()
+ */
+struct mm_mimeheader *
+mm_mimeheader_new(void)
+{
+	struct mm_mimeheader *header;
+
+	header = (struct mm_mimeheader *)xmalloc(sizeof(struct mm_mimeheader));
+	
+	header->name = NULL;
+	header->value = NULL;
+	TAILQ_INIT(&header->params);
+
+	return header;
+}
+
+/**
+ * Frees a MIME header object
+ *
+ * @param header The MIME header object which to free
+ */
+void
+mm_mimeheader_free(struct mm_mimeheader *header)
+{
+	struct mm_param *param;
+	assert(header != NULL);
+
+	if (header->name != NULL) {
+		xfree(header->name);
+		header->name = NULL;
+	}
+	if (header->value != NULL) {
+		xfree(header->value);
+		header->value = NULL;
+	}
+
+	TAILQ_FOREACH(param, &header->params, next) {
+		TAILQ_REMOVE(&header->params, param, next);
+		mm_param_free(param);
+	}	
+xfree(header);
+	header = NULL;
+}
+
+/**
+ * Creates a new MIME header, but does no checks whatsoever (create as-is)
+ */
+struct mm_mimeheader *
+mm_mimeheader_generate(const char *name, const char *value)
+{
+	struct mm_mimeheader *header;
+
+	header = mm_mimeheader_new();
+
+	header->name = xstrdup(name);
+	header->value = xstrdup(value);
+
+	return header;
+}
+
+/**
+ * Attaches a parameter to a MimeHeader object
+ *
+ * @param hdr The target MimeHeader object
+ * @param param The parameter to attach
+ * @return 0 on success and -1 on failure
+ * @ingroup mimeheader
+ */
+int
+mm_mimeheader_attachparam(struct mm_mimeheader *hdr, struct mm_param *param)
+{
+	assert(hdr != NULL);
+	assert(param != NULL);
+
+	if (TAILQ_EMPTY(&hdr->params)) {
+		TAILQ_INSERT_HEAD(&hdr->params, param, next);
+	} else {
+		TAILQ_INSERT_TAIL(&hdr->params, param, next);
+	}
+
+	return 0;
+}		
+
+
+/**
+ * Gets a parameter value from a MimeHeader object.
+ *
+ * @param hdr the MimeHeader object
+ * @param name the name of the parameter to retrieve
+ * @return The value of the parameter on success or a NULL pointer on failure
+ * @ingroup mimeheader
+ */
+char *
+mm_mimeheader_getparambyname(struct mm_mimeheader *hdr, const char *name)
+{
+	struct mm_param *param;
+
+	assert(hdr != NULL);
+	
+	TAILQ_FOREACH(param, &hdr->params, next) {
+		if (!strcasecmp(param->name, name)) {
+			return param->value;
+		}
+	}
+
+	return NULL;
+}
+
+int
+mm_mimeheader_uncomment(struct mm_mimeheader *header)
+{
+	char *new;
+
+	assert(header != NULL);
+	assert(header->name != NULL);
+	assert(header->value != NULL);
+
+	new = mm_uncomment(header->value);
+	if (new == NULL)
+		return -1;
+
+	xfree(header->value);
+	header->value = new;
+
+	return 0;
+}
+
+int
+mm_mimeheader_uncommentbyname(struct mm_mimepart *part, const char *name)
+{
+	struct mm_mimeheader *header;
+
+	TAILQ_FOREACH(header, &part->headers, next) {
+		if (!strcasecmp(header->name, name)) {
+			return mm_mimeheader_uncomment(header);
+		}
+	}
+
+	/* Not found */
+	return -1;
+}
+
+int
+mm_mimeheader_uncommentall(struct mm_mimepart *part)
+{
+	struct mm_mimeheader *header;
+	int ret, r;
+
+	ret = 0;
+
+	TAILQ_FOREACH(header, &part->headers, next) {
+		if ((r = mm_mimeheader_uncomment(header)) == -1) {
+			ret = -1;
+		}
+	}
+
+	return ret;
+}
diff --git a/main/minimime/mm_init.c b/main/minimime/mm_init.c
new file mode 100644
index 0000000000..2ec37db6b4
--- /dev/null
+++ b/main/minimime/mm_init.c
@@ -0,0 +1,65 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+
+int mm_errno;
+struct mm_error_data mm_error;
+static int mm_initialized;
+struct mm_codecs codecs;
+
+int
+mm_library_init(void)
+{
+	assert(mm_initialized != 1);
+
+	mm_errno = MM_ERROR_NONE;
+	mm_initialized = 1;
+
+	SLIST_INIT(&codecs);
+
+	mm_error_init();
+
+	return 0;
+}
+
+int
+mm_library_isinitialized(void)
+{
+	return mm_initialized;
+}
diff --git a/main/minimime/mm_internal.h b/main/minimime/mm_internal.h
new file mode 100644
index 0000000000..155591487c
--- /dev/null
+++ b/main/minimime/mm_internal.h
@@ -0,0 +1,65 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+
+/** @file mm_internal.h
+ * Data definitions for MiniMIME
+ */
+#ifndef _MM_INTERNAL_H_INCLUDED
+#define _MM_INTERNAL_H_INCLUDED
+
+#include "mm.h"
+
+#define debugp(m, ...) do { \
+	fprintf(stderr, "%s:%d:: ", __FILE__, __LINE__); \
+	fprintf(stderr, m, ## __VA_ARGS__); \
+	fprintf(stderr, "\n"); \
+	fflush(stderr); \
+} while (0); 
+
+/**
+ * @{ 
+ * @name Utility functions
+ */
+#ifndef __HAVE_LEAK_DETECTION
+void *xmalloc(size_t);
+void *xrealloc(void *, size_t);
+void xfree(void *);
+char *xstrdup(const char *);
+#endif
+
+char *xstrsep(char **, const char *);
+
+/* THIS FILE IS INTENTIONALLY LEFT BLANK */
+
+#endif /* ! _MM_INTERNAL_H_INCLUDED */
diff --git a/main/minimime/mm_mem.c b/main/minimime/mm_mem.c
new file mode 100644
index 0000000000..91ad3b987f
--- /dev/null
+++ b/main/minimime/mm_mem.c
@@ -0,0 +1,171 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <sys/types.h>
+#include <sys/param.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <err.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+
+#ifdef __HAVE_LEAK_DETECTION
+#	include "mm_mem.h"
+
+static struct MM_chunks chunks;
+
+void *
+MM_malloc(size_t size, char *filename, int line)
+{
+	struct MM_mem_chunk *chunk;
+	void *pointer;
+
+	pointer = malloc(size);
+	if (pointer == NULL)
+		err(1, "malloc");
+
+	chunk = (struct MM_mem_chunk *)malloc(sizeof(struct MM_mem_chunk));
+	if (chunk == NULL)
+		err(1, "malloc");
+
+	chunk->address = pointer;
+	chunk->size = size;
+	chunk->filename = filename;
+	chunk->line = line;
+
+	TAILQ_INSERT_TAIL(&chunks, chunk, next);
+
+	return pointer;
+}
+
+char *
+MM_strdup(const char *s, char *filename, int line)
+{
+	char *r;
+
+	r = (char *)MM_malloc(strlen(s)+1, filename, line);
+	strlcpy(r, s, strlen(s) + 1);
+	if (strlen(r) != strlen(s)) {
+		debugp("%d:%d", strlen(s), strlen(r));
+	}
+	return r;
+
+}
+
+void *
+MM_realloc(void *p, size_t new_size, char *filename, int line)
+{
+	void *r;
+	void *a;
+	struct MM_mem_chunk *chunk;
+	struct MM_mem_chunk *last;
+	
+	a = p;
+	chunk = NULL;
+	last = NULL;
+
+	assert(new_size > 0);
+
+	TAILQ_FOREACH(chunk, &chunks, next) {
+		if (chunk->address == p) {
+			last = chunk;
+		}
+	}
+
+	if (last == NULL) {
+		debugp("MM_realloc: did not find chunk at %p (%s:%d) "
+		    ", creating new", p, filename, line);
+		return MM_malloc(new_size, filename, line);
+	}
+
+	r = realloc(p, new_size);
+	if (r == NULL)
+		return NULL;
+
+	last->address = r;
+	last->size = new_size;
+	last->filename = filename;
+	last->line = line;
+
+	return r;
+}
+
+void
+MM_free(void *pointer, char *filename, int line, char *name)
+{
+	struct MM_mem_chunk *chunk, *nxt;
+
+	for (chunk = TAILQ_FIRST(&chunks); chunk != TAILQ_END(&chunks);
+	    chunk = nxt) {
+		nxt = TAILQ_NEXT(&chunks, next);
+		if (chunk->address == pointer) {
+			TAILQ_REMOVE(&chunks, chunk, next);
+			free(chunk->address);
+			free(chunk);
+			return;
+		}
+	}
+
+	debugp("FREE: did not find storage %s (at %p), %s:%d", name, pointer,
+	    filename, line);
+}
+
+void
+MM_leakd_flush(void)
+{
+	debugp("flushing memory informations");
+	while (!TAILQ_EMPTY(&chunks))
+		SLIST_REMOVE_HEAD(&chunks, next);
+}
+
+void
+MM_leakd_printallocated(void)
+{
+	struct MM_mem_chunk *chunk;
+	debugp("printing dynamic memory allocations");
+	TAILQ_FOREACH(chunk, &chunks, next) {
+		debugp(" chunk: %p (alloc'ed at %s:%d, size %d)\n", 
+		    chunk->address, chunk->filename, chunk->line, chunk->size);
+	}
+}
+
+void
+MM_leakd_init(void)
+{
+	TAILQ_INIT(&chunks);
+}
+
+#endif /* !__HAVE_LEAK_DETECTOR */
diff --git a/main/minimime/mm_mem.h b/main/minimime/mm_mem.h
new file mode 100644
index 0000000000..5b00e4beea
--- /dev/null
+++ b/main/minimime/mm_mem.h
@@ -0,0 +1,32 @@
+#ifndef __MEM_H
+#define __MEM_H
+
+#ifdef __HAVE_LEAK_DETECTION
+
+#define NAMEOF(v)       #v
+#define xmalloc(x) MM_malloc(x, __FILE__, __LINE__)
+#define xfree(x) MM_free(x, __FILE__, __LINE__, NAMEOF(x))
+#define xstrdup(x) MM_strdup(x, __FILE__, __LINE__)
+#define xrealloc(x, y) MM_realloc(x, y, __FILE__, __LINE__)
+
+TAILQ_HEAD(MM_chunks, MM_mem_chunk);
+
+struct MM_mem_chunk {
+	void *address;
+	const char *filename;
+	u_int32_t line;
+	size_t size;
+	
+	TAILQ_ENTRY(MM_mem_chunk) next;
+};
+
+void *MM_malloc(size_t, char *, int);
+void *MM_realloc(void *, size_t, char *, int);
+void MM_free(void *, char *, int, char *);
+char *MM_strdup(const char *, char *, int);
+void MM_leakd_init(void);
+void MM_leakd_printallocated(void);
+void MM_leakd_flush(void);
+
+#endif /* __HAVE_LEAK_DETECTION */
+#endif /* ! HAVE_MEM_H */
diff --git a/main/minimime/mm_mimepart.c b/main/minimime/mm_mimepart.c
new file mode 100644
index 0000000000..3d22874278
--- /dev/null
+++ b/main/minimime/mm_mimepart.c
@@ -0,0 +1,657 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *	may be used to endorse or promote products derived from this software
+ *	without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <ctype.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+
+/** @file mm_mimepart.c
+ *
+ * This module contains functions for manipulating MIME header objects.
+ */
+
+/** @defgroup mimepart Accessing and manipulating MIME parts 
+ *
+ * MIME parts, also called entities, represent the structure of a MIME
+ * message. ``Normal'' internet messages have only a single part, and
+ * are called ``flat'' messages. Multipart messages have more then one
+ * part, and each MIME part can have it's own subset of headers.
+ *
+ * Provided here are functions to easily access all informations from
+ * a MIME part, including their specific headers and bodies.
+ */
+
+/** @{ 
+ * @name Creating and destroying MIME parts 
+ */
+
+/**
+ * Allocates memory for a new mm_mimepart structure and initializes it.
+ *
+ * @return A pointer to a struct of type mm_mimeheader or NULL on failure
+ * @see mm_mimepart_free
+ * @note The memory must be freed by using mm_mimepart_free() later on.
+ */
+struct mm_mimepart *
+mm_mimepart_new(void)
+{
+	struct mm_mimepart *part;
+
+	part = (struct mm_mimepart *)xmalloc(sizeof(struct mm_mimepart));
+
+	TAILQ_INIT(&part->headers);
+
+	part->opaque_length = 0;
+	part->opaque_body = NULL;
+	
+	part->length = 0;
+	part->body = NULL;
+	
+	part->type = NULL;
+
+	return part;
+}
+
+/**
+ * Creates a MIME part from a file
+ *
+ * @param filename The name of the file to create the MIME part from
+ * @return A pointer to a new MIME part object
+ *
+ * This function creates a new MIME part object from a file. The object should
+ * be freed using mm_mimepart_free() later on. This function does NOT set the
+ * Content-Type and neither does any encoding work.
+ */
+struct mm_mimepart *
+mm_mimepart_fromfile(const char *filename)
+{
+	int fd;
+	char *data;
+	size_t r;
+	struct stat st;
+	struct mm_mimepart *part;
+
+	mm_errno = MM_ERROR_NONE;
+
+	if ((fd = open(filename, O_RDONLY)) == -1) {
+		mm_errno = MM_ERROR_ERRNO;
+		return NULL;
+	}
+
+	if ((stat(filename, &st)) == -1) {
+		mm_errno = MM_ERROR_ERRNO;
+		close(fd);
+		return NULL;
+	}
+
+	data = xmalloc(st.st_size);
+	r = read(fd, data, st.st_size);
+	if (r != st.st_size) {
+		mm_errno = MM_ERROR_ERRNO;
+		close(fd);
+		return(NULL);
+	}
+
+	data[r] = '\0';
+	close(fd);
+
+	part = mm_mimepart_new();
+	part->length = r;
+	part->body = data;
+
+	return part;
+}
+
+
+/**
+ * Frees all memory allocated by a mm_mimepart object.
+ *
+ * @param part A pointer to an allocated mm_mimepart object
+ * @see mm_mimepart_new
+ */
+void
+mm_mimepart_free(struct mm_mimepart *part)
+{
+	struct mm_mimeheader *header;
+
+	assert(part != NULL);
+
+	TAILQ_FOREACH(header, &part->headers, next) {
+		mm_mimeheader_free(header);
+		TAILQ_REMOVE(&part->headers, header, next);
+	}
+
+	if (part->opaque_body != NULL) {
+		xfree(part->opaque_body);
+		part->opaque_body = NULL;
+		part->body = NULL;
+	} else if (part->body != NULL) {
+		xfree(part->body);
+		part->body = NULL;
+	}
+
+	if (part->type != NULL) {
+		mm_content_free(part->type);
+		part->type = NULL;
+	}
+
+	xfree(part);
+	part = NULL;
+}
+
+/** @} */
+
+/** @{ 
+ * @name Accessing the MIME part's mail header
+ */
+
+/**
+ * Attaches a mm_mimeheader object to a MIME part
+ *
+ * @param part A valid MIME part object
+ * @param header A valid MIME header object
+ * @return 0 if successfull or -1 if the header could not be attached
+ */
+int
+mm_mimepart_attachheader(struct mm_mimepart *part, struct mm_mimeheader *header)
+{
+	assert(part != NULL);
+	assert(header != NULL);
+
+	if (TAILQ_EMPTY(&part->headers)) {
+		TAILQ_INSERT_HEAD(&part->headers, header, next);
+	} else {
+		TAILQ_INSERT_TAIL(&part->headers, header, next);
+	}
+
+	return(0);
+}
+
+/**
+ * Retrieves the number of MIME headers available in a MIME part
+ *
+ * @param part A valid MIME part object
+ * @return The number of MIME headers within the MIME part
+ */
+int
+mm_mimepart_countheaders(struct mm_mimepart *part)
+{
+	int found;
+	struct mm_mimeheader *header;
+
+	assert(part != NULL);
+
+	found = 0;
+
+	TAILQ_FOREACH(header, &part->headers, next) {
+		found++;
+	}
+
+	return found;
+}
+
+/**
+ * Retrieves the number of MIME headers with a given name in a MIME part
+ *
+ * @param part A valid MIME part object
+ * @param name The name of the MIME header which to count for
+ * @return The number of MIME headers within the MIME part
+ */
+int
+mm_mimepart_countheaderbyname(struct mm_mimepart *part, const char *name)
+{
+	int found;
+	struct mm_mimeheader *header;
+
+	assert(part != NULL);
+
+	found = 0;
+
+	TAILQ_FOREACH(header, &part->headers, next) {
+		if (strcasecmp(header->name, name) == 0) {
+			found++;
+		}
+	}
+
+	return found;
+}
+
+/**
+ * Get a MIME header object from a MIME part
+ *
+ * @param part A valid MIME part object
+ * @param name The name of the MIME header which to retrieve
+ * @param idx Which header field to get (in case of multiple headers of the
+ *	      same name).
+ * @return A pointer to the requested MIME header on success, or NULL if there
+ *         either isn't a header with the requested name or idx is out of 
+ *         range.
+ */
+struct mm_mimeheader *
+mm_mimepart_getheaderbyname(struct mm_mimepart *part, const char *name, int idx)
+{
+	struct mm_mimeheader *header;
+	int curidx;
+
+	curidx = 0;
+
+	TAILQ_FOREACH(header, &part->headers, next) {
+		if (!strcasecmp(header->name, name)) {
+			if (curidx == idx)
+				return header;
+			else
+				curidx++;
+		}
+	}
+
+	/* Not found */
+	return NULL;
+}
+
+/**
+ * Gets the value of a MIME header object
+ *
+ * @param part A valid MIME part object
+ * @param name The name of the header field to get the value from
+ * @param idx The index of the header field to get, in case there are multiple
+ *            headers with the same name.
+ * @return A pointer to the requested value on success, or NULL if there either
+ *         isn't a header with the requested name or idx is out of range.
+ *
+ */
+const char *
+mm_mimepart_getheadervalue(struct mm_mimepart *part, const char *name, int idx)
+{
+	struct mm_mimeheader *header;
+
+	header = mm_mimepart_getheaderbyname(part, name, idx);
+	if (header == NULL)
+		return NULL;
+	else
+		return header->value;
+}
+
+/**
+ * Initializes a header loop for a given MIME part
+ *
+ * @param part A valid MIME part object
+ * @param id The address of a MIME header object (to allow reentrance)
+ * @return 0 on success or -1 on failure
+ * @see mm_mimepart_headers_next
+ * 
+ * Looping through headers can be done in the following way:
+ *
+ * @code
+ * struct mm_mimeheader *header, *lheader;
+ *
+ * mm_mimepart_headers_start(part, &lheader);
+ *
+ * while ((header = mm_mimepart_headers_next(part, &lheader)) != NULL) {
+ *	printf("%s: %s\n", header->name, header->value);	
+ * }
+ *
+ * @endcode
+ *
+ * For convienience, the macro mm_mimepart_headers_foreach() can be used to
+ * loop through headers in a one-shot manner.
+ */
+int
+mm_mimepart_headers_start(struct mm_mimepart *part, struct mm_mimeheader **id)
+{
+	assert(part != NULL);
+	
+	if (TAILQ_EMPTY(&part->headers)) {
+		return -1;
+	}
+	*id = NULL;
+	return 0;
+}
+
+/**
+ * Returns the next MIME header of a given MIME part object
+ *
+ * @param part A valid MIME part object
+ * @param id A previously initialized MIME header object
+ * @return A pointer to the MIME header object or NULL if end of headers was
+ * 	reached.
+ * @see mm_mimepart_headers_start
+ */
+struct mm_mimeheader *
+mm_mimepart_headers_next(struct mm_mimepart *part, struct mm_mimeheader **id)
+{
+	struct mm_mimeheader *header;
+
+	assert(part != NULL);
+
+	if (*id == NULL) {
+		header = TAILQ_FIRST(&part->headers);
+	} else {
+		header = TAILQ_NEXT(*id, next);
+	}
+	*id = header;
+
+	return header;
+}
+
+/** @} */
+
+/** @{
+ * @name Accessing and manipulating the MIME part's body
+ */
+
+/**
+ * Gets the pointer to the MIME part's body data
+ *
+ * @param part A valid MIME part object
+ * @param opaque Whether to get the opaque part or not
+ * @return A pointer to the MIME part's body
+ * @see mm_mimepart_setbody
+ *
+ */
+char *
+mm_mimepart_getbody(struct mm_mimepart *part, int opaque)
+{
+	assert(part != NULL);
+
+	if (opaque)
+		return part->opaque_body;
+	else	
+		return part->body;
+}
+
+/**
+ * Sets the MIME part's body data
+ *
+ * @param part A valid MIME part object
+ * @param data A pointer to the data which to set
+ * @see mm_mimepart_getbody
+ *
+ * This functions sets the body data for a given MIME part. The string pointed
+ * to by data must be NUL-terminated. The data is copied into the MIME part's
+ * body, and thus, the memory pointed to by data can be freed after the
+ * operation. 
+ */
+void
+mm_mimepart_setbody(struct mm_mimepart *part, const char *data, int opaque)
+{
+	assert(part != NULL);
+	assert(data != NULL);
+
+	if (opaque) {
+		part->opaque_body = xstrdup(data);
+		part->body = part->opaque_body;
+	} else {	
+		part->body = xstrdup(data);
+	}
+	part->length = strlen(data);
+}
+
+/**
+ * Gets the length of a given MIME part object
+ *
+ * @param part A valid MIME part object
+ * @returns The size of the part's body in byte.
+ *
+ * This function returns the total length of the given MIME part's body. The
+ * length does not include the headers of the MIME parts. If the function
+ * returns 0, no body part is set currently.
+ */
+size_t
+mm_mimepart_getlength(struct mm_mimepart *part)
+{
+	assert(part != NULL);
+
+	return part->length;
+}
+
+
+/**
+ * Decodes a MIME part according to it's encoding using MiniMIME codecs
+ *
+ * @param A valid MIME part object
+ * @return 0 if the MIME part could be successfully decoded or -1 if not
+ * @note Sets mm_errno on error
+ *
+ * This function decodes the body of a MIME part with a registered decoder
+ * according to it's Content-Transfer-Encoding header field. 
+ */
+char *
+mm_mimepart_decode(struct mm_mimepart *part)
+{
+	extern struct mm_codecs codecs;
+	struct mm_codec *codec;
+	void *decoded;
+	
+	assert(part != NULL);
+	assert(part->type != NULL);
+
+	decoded = NULL;
+
+	/* No encoding associated */
+	if (part->type->encstring == NULL)
+		return NULL;
+
+	/* Loop through codecs and find a suitable one */
+	SLIST_FOREACH(codec, &codecs, next) {
+		if (!strcasecmp(part->type->encstring, codec->encoding)) {
+			decoded = codec->decoder((char *)part->body);
+			break;
+		}
+	}
+
+	return decoded;
+}
+
+/**
+ * Creates an ASCII representation of the given MIME part
+ *
+ * @param part A valid MIME part object
+ * @param result Where to store the result
+ * @param length Where to store the length of the result
+ * @param opaque Whether to use the opaque MIME part
+ * @returtn 0 on success or -1 on error.
+ * @see mm_context_flatten
+ *
+ * This function creates an ASCII representation of a given MIME part. It will
+ * dynamically allocate the memory needed and stores the result in the memory
+ * region pointed to by result. The length of the result will be stored in
+ * length. If opaque is set to 1, mm_mimepart_flatten will store an opaque
+ * version of the MIME part in result, which means no headers will be created
+ * or sanitized. This is particulary useful if the part is digitally signed by
+ * e.g. PGP, and the signature spans the header fields of the part in question.
+ * 
+ */
+int
+mm_mimepart_flatten(struct mm_mimepart *part, char **result, size_t *length,
+    int opaque)
+{
+	size_t part_length;
+	char *buf;
+	char *ct_hdr;
+
+	*result = NULL;
+	*length = 0;
+	buf = NULL;
+	ct_hdr = NULL;
+	part_length = 0;
+
+	if (opaque && part->opaque_body != NULL) {
+		part_length = strlen(part->opaque_body);
+		*result = xstrdup(part->opaque_body);
+		*length = part_length;
+		return(0);
+	} else {
+		if (part->type == NULL) {
+			return(-1);
+		}	
+		
+		ct_hdr = mm_content_tostring(part->type);
+		if (ct_hdr == NULL) {
+			return(-1);
+		}
+
+		part_length += strlen(ct_hdr) + 2;
+		part_length += strlen("\r\n") * 2;
+		part_length += strlen(part->body);
+	
+		if (part_length < 0) {
+			goto cleanup;
+		}	
+
+		buf = (char *) xmalloc(part_length);
+		if (buf == NULL) {
+			goto cleanup;
+		}
+
+		snprintf(buf, part_length, 
+		    "%s\r\n\r\n%s\r\n",
+		     ct_hdr,
+		     part->body);
+
+		xfree(ct_hdr);
+		ct_hdr = NULL;
+
+		*result = buf;
+		*length = part_length;
+	}
+
+	return(0);
+
+cleanup:
+	if (ct_hdr != NULL) {
+		xfree(ct_hdr);
+		ct_hdr = NULL;
+	}
+	if (buf != NULL) {
+		xfree(buf);
+		buf = NULL;
+	}
+	
+	*result = NULL;
+	*length = 0;
+	
+	return -1;
+}
+
+/**
+ * Sets the default Content-Type for a given MIME part
+ *
+ * @param part A valid MIME part object
+ * @param part Whether the Content-Type should be for composite or not
+ * @return 0 on success or -1 on failure
+ *
+ * This function sets a default Content-Type according to RFC 2045 with a value
+ * of "text/plain; charset="us-ascii"". This function should only be used if
+ * the MIME part in question does not have a valid Content-Type specification.
+ */
+int
+mm_mimepart_setdefaultcontenttype(struct mm_mimepart *part, int composite)
+{
+	struct mm_content *type;
+	struct mm_param *param;
+
+	if (part == NULL) {
+		return(-1);
+	}
+
+	if (part->type != NULL) {
+		mm_content_free(part->type);
+		part->type = NULL;
+	}
+
+	type = mm_content_new();
+	if (composite) {
+		type->maintype = xstrdup("multipart");
+		type->subtype = xstrdup("mixed");
+	} else {
+		type->maintype = xstrdup("text");
+		type->subtype = xstrdup("plain");
+		param = mm_param_new();
+		param->name = xstrdup("charset");
+		param->value = xstrdup("us-ascii");
+		mm_content_attachtypeparam(type, param);
+	}	
+
+	mm_mimepart_attachcontenttype(part, type);
+
+	return (0);
+}
+
+/** @{ 
+ * @name Accessing the MIME part's Content-Type information
+ */
+
+/**
+ * Attaches a context type object to a MIME part
+ *
+ * @param part A valid MIME part object
+ * @param ct The content type object to attach
+ * @return Nothing
+ *
+ * This function attaches a Content-Type object to a MIME part. It does not
+ * care whether the Content-Type suites the actual content in the MIME part,
+ * so the programmer should take care of that.
+ */
+void
+mm_mimepart_attachcontenttype(struct mm_mimepart *part, struct mm_content *ct)
+{
+	part->type = ct;
+}
+
+/**
+ * Gets the Content-Type of a given MIME part object
+ *
+ * @param part A valid MIME part object
+ * @return The Content-Type object of the specified MIME part
+ *
+ * This function returns a pointer to the Content-Type object of the given
+ * MIME part. This pointer might be set to NULL, indicating that there is
+ * no Content-Type object for the given MIME part currently.
+ */
+struct mm_content *
+mm_mimepart_getcontent(struct mm_mimepart *part)
+{
+	assert(part != NULL);
+
+	return part->type;
+}
+
+/** @} */
diff --git a/main/minimime/mm_mimeutil.c b/main/minimime/mm_mimeutil.c
new file mode 100644
index 0000000000..4e52a6acfe
--- /dev/null
+++ b/main/minimime/mm_mimeutil.c
@@ -0,0 +1,136 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2004 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <sys/time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+
+#define MM_DATE_LENGTH 50
+
+static const char boundary_charset[] = 
+    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.=";
+
+/** @file mm_mimeutil.c
+ *
+ * This module contains various MIME related utility functions.
+ */
+
+/** @defgroup mimeutil MIME related utility functions */
+
+/**
+ * Generates an RFC 2822 conform date string
+ *
+ * @param timezone Whether to include timezone information
+ * @returns A pointer to the actual date string
+ * @note The pointer returned must be freed some time
+ *
+ * This function generates an RFC 2822 conform date string to use in message
+ * headers. It allocates memory to hold the string and returns a pointer to
+ * it. The generated date is in the format (example):
+ *
+ *	Thu, 25 December 2003 16:35:22 +0100 (CET)
+ *
+ * This function dynamically allocates memory and returns a pointer to it.
+ * This memory should be released with free() once not needed anymore.
+ */
+int
+mm_mimeutil_gendate(char **result)
+{
+	time_t curtime;
+	struct tm *curtm;
+	
+	if (result != NULL) {
+		curtime = time(NULL);
+		curtm = localtime(&curtime);
+		if ((*result = (char *) malloc(MM_DATE_LENGTH)) == NULL) {
+			return(-1);
+		}	
+		return(strftime(*result, MM_DATE_LENGTH, 
+		    "%a, %d %b %G %T %z (%Z)", curtm));
+	} else {
+		return(-1);
+	}	
+}
+
+
+int
+mm_mimeutil_genboundary(char *prefix, size_t length, char **result)
+{
+	size_t total;
+	size_t preflen;
+	struct timeval curtm;
+	int i;
+	int pos;
+
+	total = 0;
+	preflen = 0;
+
+	if (result == NULL) {
+		return(-1);
+	}	
+	*result = NULL;
+
+	gettimeofday(&curtm, NULL);
+	srandom(curtm.tv_usec);
+	
+	if (prefix != NULL) {
+		total = strlen(prefix);
+		preflen = total;
+	}
+
+	total += length;
+
+	if ((*result = (char *) xmalloc(total + 1)) == NULL) {
+		mm_errno = MM_ERROR_ERRNO;
+		return(-1);
+	}	
+
+	*result = '\0';
+
+	if (prefix != NULL) {
+		strlcat(*result, prefix, total);
+	}
+
+	for (i = 0; i < length - 1; i++) {
+		pos = random() % strlen(boundary_charset);
+		*result[i + preflen] = boundary_charset[pos];
+	}
+	*result[total] = '\0';
+
+	return (0);
+}
diff --git a/main/minimime/mm_param.c b/main/minimime/mm_param.c
new file mode 100644
index 0000000000..8877c3e131
--- /dev/null
+++ b/main/minimime/mm_param.c
@@ -0,0 +1,215 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <string.h>
+#include <ctype.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+#include "mm_util.h"
+
+/**
+ * @file mm_param.c
+ *
+ * Functions to manipulate MIME parameters
+ */
+
+/** @defgroup param Accessing and manipulating MIME parameters */
+
+/** @{ 
+ *
+ * @name Functions for manipulating MIME parameters
+ *
+ * MIME parameters are properties attached to certain MIME headers, such as
+ * Content-Type and Content-Disposition. MIME parameters have a textual
+ * representations as in <i>name=value</i>. They contain important information
+ * about the MIME structure of a message, such as the boundary string used,
+ * which charset was used to encode the message and so on. This module
+ * provides simple to use functions to query or set MIME parameters.
+ *
+ * Each MIME header may hold an arbitrary amount of such parameters, which
+ * are delimeted by each other with a semicolon.
+ */
+
+/**
+ * Creates a new object to hold a MIME parameter. 
+ *
+ * @return An object representing a MIME parameter
+ * @see mm_param_free
+ * @note The allocated memory must later be freed using mm_param_free()
+ */
+struct mm_param *
+mm_param_new(void)
+{
+	struct mm_param *param;
+
+	param = (struct mm_param *)xmalloc(sizeof(struct mm_param));
+	
+	param->name = NULL;
+	param->value = NULL;
+
+	return param;
+}
+
+/**
+ * Releases all memory associated with a MIME parameter object.
+ *
+ * @param param A valid MIME parameter object to be freed
+ * @return Nothing
+ * @see mm_param_new
+ */
+void
+mm_param_free(struct mm_param *param)
+{
+	assert(param != NULL);
+
+	if (param->name != NULL) {
+		xfree(param->name);
+		param->name = NULL;
+	}
+	if (param->value != NULL) {
+		xfree(param->value);
+		param->value = NULL;
+	}
+	xfree(param);
+}
+
+/**
+ * Generates a new Content-Type parameter with the given name and value
+ *
+ * @param name The name of the MIME parameter
+ * @param value The value of the MIME parameter
+ * @returns A new MIME parameter object
+ * @see mm_param_free
+ * @see mm_param_new
+ *
+ * This function generates a new MIME parameter, with the name
+ * and value given as the arguments. The needed memory for the operation
+ * is allocated dynamically. It stores a copy of name and value in the
+ * actual object, so the memory holding the arguments can safely be
+ * freed after successfull return of this function.
+ */
+struct mm_param *
+mm_param_generate(const char *name, const char *value)
+{
+	struct mm_param *param;
+
+	param = mm_param_new();
+
+	param->name = xstrdup(name);
+	param->value = xstrdup(value);
+	
+	return param;
+}
+
+/**
+ * Sets the name of the given MIME parameter
+ *
+ * @param param A valid MIME parameter object
+ * @param name The new name of the parameter
+ * @param copy If set to > 0, copy the value stored in name
+ * @returns The address of the previous name for passing to free()
+ */
+char *
+mm_param_setname(struct mm_param *param, const char *name, int copy)
+{
+	char *retadr;
+	assert(param != NULL);
+
+	retadr = param->name;
+
+	if (copy)
+		param->name = xstrdup(name);
+	else
+		param->name = (char *)name;
+
+	return retadr;	
+}
+
+/**
+ * Sets the value of the given MIME parameter
+ *
+ * @param param A valid MIME parameter object
+ * @param name The new value for the parameter
+ * @param copy If set to > 0, copy the value stored in value
+ * @returns The address of the previous value for passing to free()
+ */
+char *
+mm_param_setvalue(struct mm_param *param, const char *value, int copy)
+{
+	char *retadr;
+	assert(param != NULL);
+
+	retadr = param->value;
+
+	if (copy)
+		param->value = xstrdup(value);
+	else
+		param->value = (char *)value;
+
+	return retadr;	
+}
+
+/**
+ * Gets the name of a MIME parameter object
+ *
+ * @param param A valid MIME parameter object
+ * @returns The name of the MIME parameter
+ */
+const char *
+mm_param_getname(struct mm_param *param)
+{
+	assert(param != NULL);
+	return param->name;
+}
+
+/**
+ * Gets the value of a MIME parameter object
+ *
+ * @param param A valid MIME parameter object
+ * @returns The value of the MIME parameter
+ */
+const char *
+mm_param_getvalue(struct mm_param *param)
+{
+	assert(param != NULL);
+	return param->value;
+}
+
+/** @} */
diff --git a/main/minimime/mm_parse.c b/main/minimime/mm_parse.c
new file mode 100644
index 0000000000..5080f5bc1f
--- /dev/null
+++ b/main/minimime/mm_parse.c
@@ -0,0 +1,181 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <string.h>
+#include <ctype.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+#include "mm_util.h"
+
+#include "mimeparser.h"
+#include "mimeparser.tab.h"
+
+int yyparse (struct parser_state *pstate, void *yyscanner);
+void PARSER_initialize(struct parser_state *, void *);
+void PARSER_setbuffer(const char *);
+void PARSER_setfp(FILE *,void *yyscanner);
+
+/** @file mm_parse.c
+ *
+ * Functions to parse MIME messages
+ */
+
+/**
+ * Parses a NUL-terminated string into a MiniMIME context
+ *
+ * @param ctx A valid MiniMIME context object
+ * @param text The NUL-terminated string to parse
+ * @param parsemode The parsemode
+ * @param flags The flags to pass to the parser
+ * @returns 0 on success or -1 on failure
+ * @note Sets mm_errno if an error occurs
+ *
+ * This function parses a MIME message, stored in the memory region pointed to
+ * by text (must be NUL-terminated) according to the parseflags and stores the
+ * results in the MiniMIME context specified by ctx.
+ *
+ * The following modes can be used to specify how the message should be
+ * parsed:
+ *
+ *	- MM_PARSE_STRICT: Do not tolerate MIME violations
+ *	- MM_PARSE_LOOSE: Tolerate as much MIME violations as possible
+ *
+ * The context needs to be initialized before using mm_context_new() and may
+ * be freed using mm_context_free().
+ */
+int
+mm_parse_mem(MM_CTX *ctx, const char *text, int parsemode, int flags)
+{
+	void *yyscanner;
+	int res;
+	struct parser_state pstate;
+	typedef void *yyscan_t;
+	int mimeparser_yylex_init (yyscan_t* scanner);
+	int mimeparser_yylex_destroy (yyscan_t yyscanner );
+	
+	pstate.ctx = ctx;
+	pstate.parsemode = parsemode;
+
+	mimeparser_yylex_init(&yyscanner);
+	PARSER_initialize(&pstate, yyscanner);
+	
+	PARSER_setbuffer(text);
+	PARSER_setfp(NULL,yyscanner);
+	
+	res =  mimeparser_yyparse(&pstate,yyscanner);
+	mimeparser_yylex_destroy(yyscanner);
+	return res;
+}
+
+/**
+ * Parses a file into a MiniMIME context
+ *
+ * @param ctx A valid MiniMIME context object
+ * @param filename The name of the file to parse
+ * @param parsemode The parsemode
+ * @param flags The flags to pass to the parser
+ * @returns 0 on success or -1 on failure
+ * @note Sets mm_errno if an error occurs
+ *
+ * This function parses a MIME message, stored in the filesystem according to
+ * the parseflags and stores the results in the MiniMIME context specified by 
+ * ctx.
+ *
+ * The following modes can be used to specify how the message should be
+ * parsed:
+ *
+ *	- MM_PARSE_STRICT: Do not tolerate MIME violations
+ *	- MM_PARSE_LOOSE: Tolerate as much MIME violations as possible
+ *
+ * The context needs to be initialized before using mm_context_new() and may
+ * be freed using mm_context_free().
+ */
+typedef void *yyscan_t;
+int
+mm_parse_file(MM_CTX *ctx, const char *filename, int parsemode, int flags)
+{
+	FILE *fp;
+	int res;
+	void *yyscanner;
+	struct parser_state pstate;
+	int mimeparser_yylex_init (yyscan_t* scanner);
+	int mimeparser_yylex_destroy (yyscan_t yyscanner );
+
+	mimeparser_yylex_init(&yyscanner);
+
+	if ((fp = fopen(filename, "r")) == NULL) {
+		mm_errno = MM_ERROR_ERRNO;
+		return -1;
+	}
+
+	PARSER_setfp(fp,yyscanner);
+	PARSER_initialize(&pstate, yyscanner);
+
+	pstate.ctx = ctx;
+	pstate.parsemode = parsemode;
+
+	res = mimeparser_yyparse(&pstate,yyscanner);
+	mimeparser_yylex_destroy(yyscanner);
+	fclose(fp);
+	return res;
+}
+
+int
+mm_parse_fileptr(MM_CTX *ctx, FILE *f, int parsemode, int flags)
+{
+	int res;
+	void *yyscanner;
+	struct parser_state pstate;
+	int mimeparser_yylex_init (yyscan_t* scanner);
+	int mimeparser_yylex_destroy (yyscan_t yyscanner );
+
+	mimeparser_yylex_init(&yyscanner);
+
+	PARSER_setfp(f, yyscanner);
+	PARSER_initialize(&pstate, yyscanner);
+
+	pstate.ctx = ctx;
+	pstate.parsemode = parsemode;
+
+	res = mimeparser_yyparse(&pstate,yyscanner);
+	mimeparser_yylex_destroy(yyscanner);
+
+	return res;
+}
diff --git a/main/minimime/mm_queue.h b/main/minimime/mm_queue.h
new file mode 100644
index 0000000000..893e2fae29
--- /dev/null
+++ b/main/minimime/mm_queue.h
@@ -0,0 +1,508 @@
+/*	$OpenBSD: queue.h,v 1.25 2004/04/08 16:08:21 henning Exp $	*/
+/*	$NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $	*/
+
+/*
+ * Copyright (c) 1991, 1993
+ *	The Regents of the University of California.  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.
+ * 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. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
+ *
+ *	@(#)queue.h	8.5 (Berkeley) 8/20/94
+ */
+
+#ifndef	_SYS_QUEUE_H_
+#define	_SYS_QUEUE_H_
+
+/*
+ * This file defines five types of data structures: singly-linked lists, 
+ * lists, simple queues, tail queues, and circular queues.
+ *
+ *
+ * A singly-linked list is headed by a single forward pointer. The elements
+ * are singly linked for minimum space and pointer manipulation overhead at
+ * the expense of O(n) removal for arbitrary elements. New elements can be
+ * added to the list after an existing element or at the head of the list.
+ * Elements being removed from the head of the list should use the explicit
+ * macro for this purpose for optimum efficiency. A singly-linked list may
+ * only be traversed in the forward direction.  Singly-linked lists are ideal
+ * for applications with large datasets and few or no removals or for
+ * implementing a LIFO queue.
+ *
+ * A list is headed by a single forward pointer (or an array of forward
+ * pointers for a hash table header). The elements are doubly linked
+ * so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before
+ * or after an existing element or at the head of the list. A list
+ * may only be traversed in the forward direction.
+ *
+ * A simple queue is headed by a pair of pointers, one the head of the
+ * list and the other to the tail of the list. The elements are singly
+ * linked to save space, so elements can only be removed from the
+ * head of the list. New elements can be added to the list before or after
+ * an existing element, at the head of the list, or at the end of the
+ * list. A simple queue may only be traversed in the forward direction.
+ *
+ * A tail queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or
+ * after an existing element, at the head of the list, or at the end of
+ * the list. A tail queue may be traversed in either direction.
+ *
+ * A circle queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or after
+ * an existing element, at the head of the list, or at the end of the list.
+ * A circle queue may be traversed in either direction, but has a more
+ * complex end of list detection.
+ *
+ * For details on the use of these macros, see the queue(3) manual page.
+ */
+
+/*
+ * Singly-linked List definitions.
+ */
+#define SLIST_HEAD(name, type)						\
+struct name {								\
+	struct type *slh_first;	/* first element */			\
+}
+ 
+#define	SLIST_HEAD_INITIALIZER(head)					\
+	{ NULL }
+ 
+#define SLIST_ENTRY(type)						\
+struct {								\
+	struct type *sle_next;	/* next element */			\
+}
+ 
+/*
+ * Singly-linked List access methods.
+ */
+#define	SLIST_FIRST(head)	((head)->slh_first)
+#define	SLIST_END(head)		NULL
+#define	SLIST_EMPTY(head)	(SLIST_FIRST(head) == SLIST_END(head))
+#define	SLIST_NEXT(elm, field)	((elm)->field.sle_next)
+
+#define	SLIST_FOREACH(var, head, field)					\
+	for((var) = SLIST_FIRST(head);					\
+	    (var) != SLIST_END(head);					\
+	    (var) = SLIST_NEXT(var, field))
+
+#define	SLIST_FOREACH_PREVPTR(var, varp, head, field)			\
+	for ((varp) = &SLIST_FIRST((head));				\
+	    ((var) = *(varp)) != SLIST_END(head);			\
+	    (varp) = &SLIST_NEXT((var), field))
+
+/*
+ * Singly-linked List functions.
+ */
+#define	SLIST_INIT(head) {						\
+	SLIST_FIRST(head) = SLIST_END(head);				\
+}
+
+#define	SLIST_INSERT_AFTER(slistelm, elm, field) do {			\
+	(elm)->field.sle_next = (slistelm)->field.sle_next;		\
+	(slistelm)->field.sle_next = (elm);				\
+} while (0)
+
+#define	SLIST_INSERT_HEAD(head, elm, field) do {			\
+	(elm)->field.sle_next = (head)->slh_first;			\
+	(head)->slh_first = (elm);					\
+} while (0)
+
+#define	SLIST_REMOVE_NEXT(head, elm, field) do {			\
+	(elm)->field.sle_next = (elm)->field.sle_next->field.sle_next;	\
+} while (0)
+
+#define	SLIST_REMOVE_HEAD(head, field) do {				\
+	(head)->slh_first = (head)->slh_first->field.sle_next;		\
+} while (0)
+
+#define SLIST_REMOVE(head, elm, type, field) do {			\
+	if ((head)->slh_first == (elm)) {				\
+		SLIST_REMOVE_HEAD((head), field);			\
+	}								\
+	else {								\
+		struct type *curelm = (head)->slh_first;		\
+		while( curelm->field.sle_next != (elm) )		\
+			curelm = curelm->field.sle_next;		\
+		curelm->field.sle_next =				\
+		    curelm->field.sle_next->field.sle_next;		\
+	}								\
+} while (0)
+
+/*
+ * List definitions.
+ */
+#define LIST_HEAD(name, type)						\
+struct name {								\
+	struct type *lh_first;	/* first element */			\
+}
+
+#define LIST_HEAD_INITIALIZER(head)					\
+	{ NULL }
+
+#define LIST_ENTRY(type)						\
+struct {								\
+	struct type *le_next;	/* next element */			\
+	struct type **le_prev;	/* address of previous next element */	\
+}
+
+/*
+ * List access methods
+ */
+#define	LIST_FIRST(head)		((head)->lh_first)
+#define	LIST_END(head)			NULL
+#define	LIST_EMPTY(head)		(LIST_FIRST(head) == LIST_END(head))
+#define	LIST_NEXT(elm, field)		((elm)->field.le_next)
+
+#define LIST_FOREACH(var, head, field)					\
+	for((var) = LIST_FIRST(head);					\
+	    (var)!= LIST_END(head);					\
+	    (var) = LIST_NEXT(var, field))
+
+/*
+ * List functions.
+ */
+#define	LIST_INIT(head) do {						\
+	LIST_FIRST(head) = LIST_END(head);				\
+} while (0)
+
+#define LIST_INSERT_AFTER(listelm, elm, field) do {			\
+	if (((elm)->field.le_next = (listelm)->field.le_next) != NULL)	\
+		(listelm)->field.le_next->field.le_prev =		\
+		    &(elm)->field.le_next;				\
+	(listelm)->field.le_next = (elm);				\
+	(elm)->field.le_prev = &(listelm)->field.le_next;		\
+} while (0)
+
+#define	LIST_INSERT_BEFORE(listelm, elm, field) do {			\
+	(elm)->field.le_prev = (listelm)->field.le_prev;		\
+	(elm)->field.le_next = (listelm);				\
+	*(listelm)->field.le_prev = (elm);				\
+	(listelm)->field.le_prev = &(elm)->field.le_next;		\
+} while (0)
+
+#define LIST_INSERT_HEAD(head, elm, field) do {				\
+	if (((elm)->field.le_next = (head)->lh_first) != NULL)		\
+		(head)->lh_first->field.le_prev = &(elm)->field.le_next;\
+	(head)->lh_first = (elm);					\
+	(elm)->field.le_prev = &(head)->lh_first;			\
+} while (0)
+
+#define LIST_REMOVE(elm, field) do {					\
+	if ((elm)->field.le_next != NULL)				\
+		(elm)->field.le_next->field.le_prev =			\
+		    (elm)->field.le_prev;				\
+	*(elm)->field.le_prev = (elm)->field.le_next;			\
+} while (0)
+
+#define LIST_REPLACE(elm, elm2, field) do {				\
+	if (((elm2)->field.le_next = (elm)->field.le_next) != NULL)	\
+		(elm2)->field.le_next->field.le_prev =			\
+		    &(elm2)->field.le_next;				\
+	(elm2)->field.le_prev = (elm)->field.le_prev;			\
+	*(elm2)->field.le_prev = (elm2);				\
+} while (0)
+
+/*
+ * Simple queue definitions.
+ */
+#define SIMPLEQ_HEAD(name, type)					\
+struct name {								\
+	struct type *sqh_first;	/* first element */			\
+	struct type **sqh_last;	/* addr of last next element */		\
+}
+
+#define SIMPLEQ_HEAD_INITIALIZER(head)					\
+	{ NULL, &(head).sqh_first }
+
+#define SIMPLEQ_ENTRY(type)						\
+struct {								\
+	struct type *sqe_next;	/* next element */			\
+}
+
+/*
+ * Simple queue access methods.
+ */
+#define	SIMPLEQ_FIRST(head)	    ((head)->sqh_first)
+#define	SIMPLEQ_END(head)	    NULL
+#define	SIMPLEQ_EMPTY(head)	    (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head))
+#define	SIMPLEQ_NEXT(elm, field)    ((elm)->field.sqe_next)
+
+#define SIMPLEQ_FOREACH(var, head, field)				\
+	for((var) = SIMPLEQ_FIRST(head);				\
+	    (var) != SIMPLEQ_END(head);					\
+	    (var) = SIMPLEQ_NEXT(var, field))
+
+/*
+ * Simple queue functions.
+ */
+#define	SIMPLEQ_INIT(head) do {						\
+	(head)->sqh_first = NULL;					\
+	(head)->sqh_last = &(head)->sqh_first;				\
+} while (0)
+
+#define SIMPLEQ_INSERT_HEAD(head, elm, field) do {			\
+	if (((elm)->field.sqe_next = (head)->sqh_first) == NULL)	\
+		(head)->sqh_last = &(elm)->field.sqe_next;		\
+	(head)->sqh_first = (elm);					\
+} while (0)
+
+#define SIMPLEQ_INSERT_TAIL(head, elm, field) do {			\
+	(elm)->field.sqe_next = NULL;					\
+	*(head)->sqh_last = (elm);					\
+	(head)->sqh_last = &(elm)->field.sqe_next;			\
+} while (0)
+
+#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do {		\
+	if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
+		(head)->sqh_last = &(elm)->field.sqe_next;		\
+	(listelm)->field.sqe_next = (elm);				\
+} while (0)
+
+#define SIMPLEQ_REMOVE_HEAD(head, elm, field) do {			\
+	if (((head)->sqh_first = (elm)->field.sqe_next) == NULL)	\
+		(head)->sqh_last = &(head)->sqh_first;			\
+} while (0)
+
+/*
+ * Tail queue definitions.
+ */
+#define TAILQ_HEAD(name, type)						\
+struct name {								\
+	struct type *tqh_first;	/* first element */			\
+	struct type **tqh_last;	/* addr of last next element */		\
+}
+
+#define TAILQ_HEAD_INITIALIZER(head)					\
+	{ NULL, &(head).tqh_first }
+
+#define TAILQ_ENTRY(type)						\
+struct {								\
+	struct type *tqe_next;	/* next element */			\
+	struct type **tqe_prev;	/* address of previous next element */	\
+}
+
+/* 
+ * tail queue access methods 
+ */
+#define	TAILQ_FIRST(head)		((head)->tqh_first)
+#define	TAILQ_END(head)			NULL
+#define	TAILQ_NEXT(elm, field)		((elm)->field.tqe_next)
+#define TAILQ_LAST(head, headname)					\
+	(*(((struct headname *)((head)->tqh_last))->tqh_last))
+/* XXX */
+#define TAILQ_PREV(elm, headname, field)				\
+	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
+#define	TAILQ_EMPTY(head)						\
+	(TAILQ_FIRST(head) == TAILQ_END(head))
+
+#define TAILQ_FOREACH(var, head, field)					\
+	for((var) = TAILQ_FIRST(head);					\
+	    (var) != TAILQ_END(head);					\
+	    (var) = TAILQ_NEXT(var, field))
+
+#define TAILQ_FOREACH_REVERSE(var, head, headname, field)		\
+	for((var) = TAILQ_LAST(head, headname);				\
+	    (var) != TAILQ_END(head);					\
+	    (var) = TAILQ_PREV(var, headname, field))
+
+/*
+ * Tail queue functions.
+ */
+#define	TAILQ_INIT(head) do {						\
+	(head)->tqh_first = NULL;					\
+	(head)->tqh_last = &(head)->tqh_first;				\
+} while (0)
+
+#define TAILQ_INSERT_HEAD(head, elm, field) do {			\
+	if (((elm)->field.tqe_next = (head)->tqh_first) != NULL)	\
+		(head)->tqh_first->field.tqe_prev =			\
+		    &(elm)->field.tqe_next;				\
+	else								\
+		(head)->tqh_last = &(elm)->field.tqe_next;		\
+	(head)->tqh_first = (elm);					\
+	(elm)->field.tqe_prev = &(head)->tqh_first;			\
+} while (0)
+
+#define TAILQ_INSERT_TAIL(head, elm, field) do {			\
+	(elm)->field.tqe_next = NULL;					\
+	(elm)->field.tqe_prev = (head)->tqh_last;			\
+	*(head)->tqh_last = (elm);					\
+	(head)->tqh_last = &(elm)->field.tqe_next;			\
+} while (0)
+
+#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\
+	if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
+		(elm)->field.tqe_next->field.tqe_prev =			\
+		    &(elm)->field.tqe_next;				\
+	else								\
+		(head)->tqh_last = &(elm)->field.tqe_next;		\
+	(listelm)->field.tqe_next = (elm);				\
+	(elm)->field.tqe_prev = &(listelm)->field.tqe_next;		\
+} while (0)
+
+#define	TAILQ_INSERT_BEFORE(listelm, elm, field) do {			\
+	(elm)->field.tqe_prev = (listelm)->field.tqe_prev;		\
+	(elm)->field.tqe_next = (listelm);				\
+	*(listelm)->field.tqe_prev = (elm);				\
+	(listelm)->field.tqe_prev = &(elm)->field.tqe_next;		\
+} while (0)
+
+#define TAILQ_REMOVE(head, elm, field) do {				\
+	if (((elm)->field.tqe_next) != NULL)				\
+		(elm)->field.tqe_next->field.tqe_prev =			\
+		    (elm)->field.tqe_prev;				\
+	else								\
+		(head)->tqh_last = (elm)->field.tqe_prev;		\
+	*(elm)->field.tqe_prev = (elm)->field.tqe_next;			\
+} while (0)
+
+#define TAILQ_REPLACE(head, elm, elm2, field) do {			\
+	if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != NULL)	\
+		(elm2)->field.tqe_next->field.tqe_prev =		\
+		    &(elm2)->field.tqe_next;				\
+	else								\
+		(head)->tqh_last = &(elm2)->field.tqe_next;		\
+	(elm2)->field.tqe_prev = (elm)->field.tqe_prev;			\
+	*(elm2)->field.tqe_prev = (elm2);				\
+} while (0)
+
+/*
+ * Circular queue definitions.
+ */
+#define CIRCLEQ_HEAD(name, type)					\
+struct name {								\
+	struct type *cqh_first;		/* first element */		\
+	struct type *cqh_last;		/* last element */		\
+}
+
+#define CIRCLEQ_HEAD_INITIALIZER(head)					\
+	{ CIRCLEQ_END(&head), CIRCLEQ_END(&head) }
+
+#define CIRCLEQ_ENTRY(type)						\
+struct {								\
+	struct type *cqe_next;		/* next element */		\
+	struct type *cqe_prev;		/* previous element */		\
+}
+
+/*
+ * Circular queue access methods 
+ */
+#define	CIRCLEQ_FIRST(head)		((head)->cqh_first)
+#define	CIRCLEQ_LAST(head)		((head)->cqh_last)
+#define	CIRCLEQ_END(head)		((void *)(head))
+#define	CIRCLEQ_NEXT(elm, field)	((elm)->field.cqe_next)
+#define	CIRCLEQ_PREV(elm, field)	((elm)->field.cqe_prev)
+#define	CIRCLEQ_EMPTY(head)						\
+	(CIRCLEQ_FIRST(head) == CIRCLEQ_END(head))
+
+#define CIRCLEQ_FOREACH(var, head, field)				\
+	for((var) = CIRCLEQ_FIRST(head);				\
+	    (var) != CIRCLEQ_END(head);					\
+	    (var) = CIRCLEQ_NEXT(var, field))
+
+#define CIRCLEQ_FOREACH_REVERSE(var, head, field)			\
+	for((var) = CIRCLEQ_LAST(head);					\
+	    (var) != CIRCLEQ_END(head);					\
+	    (var) = CIRCLEQ_PREV(var, field))
+
+/*
+ * Circular queue functions.
+ */
+#define	CIRCLEQ_INIT(head) do {						\
+	(head)->cqh_first = CIRCLEQ_END(head);				\
+	(head)->cqh_last = CIRCLEQ_END(head);				\
+} while (0)
+
+#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do {		\
+	(elm)->field.cqe_next = (listelm)->field.cqe_next;		\
+	(elm)->field.cqe_prev = (listelm);				\
+	if ((listelm)->field.cqe_next == CIRCLEQ_END(head))		\
+		(head)->cqh_last = (elm);				\
+	else								\
+		(listelm)->field.cqe_next->field.cqe_prev = (elm);	\
+	(listelm)->field.cqe_next = (elm);				\
+} while (0)
+
+#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do {		\
+	(elm)->field.cqe_next = (listelm);				\
+	(elm)->field.cqe_prev = (listelm)->field.cqe_prev;		\
+	if ((listelm)->field.cqe_prev == CIRCLEQ_END(head))		\
+		(head)->cqh_first = (elm);				\
+	else								\
+		(listelm)->field.cqe_prev->field.cqe_next = (elm);	\
+	(listelm)->field.cqe_prev = (elm);				\
+} while (0)
+
+#define CIRCLEQ_INSERT_HEAD(head, elm, field) do {			\
+	(elm)->field.cqe_next = (head)->cqh_first;			\
+	(elm)->field.cqe_prev = CIRCLEQ_END(head);			\
+	if ((head)->cqh_last == CIRCLEQ_END(head))			\
+		(head)->cqh_last = (elm);				\
+	else								\
+		(head)->cqh_first->field.cqe_prev = (elm);		\
+	(head)->cqh_first = (elm);					\
+} while (0)
+
+#define CIRCLEQ_INSERT_TAIL(head, elm, field) do {			\
+	(elm)->field.cqe_next = CIRCLEQ_END(head);			\
+	(elm)->field.cqe_prev = (head)->cqh_last;			\
+	if ((head)->cqh_first == CIRCLEQ_END(head))			\
+		(head)->cqh_first = (elm);				\
+	else								\
+		(head)->cqh_last->field.cqe_next = (elm);		\
+	(head)->cqh_last = (elm);					\
+} while (0)
+
+#define	CIRCLEQ_REMOVE(head, elm, field) do {				\
+	if ((elm)->field.cqe_next == CIRCLEQ_END(head))			\
+		(head)->cqh_last = (elm)->field.cqe_prev;		\
+	else								\
+		(elm)->field.cqe_next->field.cqe_prev =			\
+		    (elm)->field.cqe_prev;				\
+	if ((elm)->field.cqe_prev == CIRCLEQ_END(head))			\
+		(head)->cqh_first = (elm)->field.cqe_next;		\
+	else								\
+		(elm)->field.cqe_prev->field.cqe_next =			\
+		    (elm)->field.cqe_next;				\
+} while (0)
+
+#define CIRCLEQ_REPLACE(head, elm, elm2, field) do {			\
+	if (((elm2)->field.cqe_next = (elm)->field.cqe_next) ==		\
+	    CIRCLEQ_END(head))						\
+		(head).cqh_last = (elm2);				\
+	else								\
+		(elm2)->field.cqe_next->field.cqe_prev = (elm2);	\
+	if (((elm2)->field.cqe_prev = (elm)->field.cqe_prev) ==		\
+	    CIRCLEQ_END(head))						\
+		(head).cqh_first = (elm2);				\
+	else								\
+		(elm2)->field.cqe_prev->field.cqe_next = (elm2);	\
+} while (0)
+
+#endif	/* !_SYS_QUEUE_H_ */
diff --git a/main/minimime/mm_util.c b/main/minimime/mm_util.c
new file mode 100644
index 0000000000..94150d40ba
--- /dev/null
+++ b/main/minimime/mm_util.c
@@ -0,0 +1,412 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+
+/** @file mm_util.c
+ *
+ * This module contains utility functions for the MiniMIME library
+ */
+
+/** @defgroup util General purpose utility functions */
+
+#ifndef __HAVE_LEAK_DETECTION
+/**
+ * Allocates a block of memory
+ *
+ * @param size The size of the memory region to allocate
+ * @return A pointer to the allocated memory region
+ * @ingroup util
+ *
+ * xmalloc() calls abort() if either the size argument is negative or the
+ * requested memory amount could not be allocated via an assert() call.
+ */
+void *
+xmalloc(size_t size)
+{
+	void *p;
+
+	assert(size > 0);
+	p = malloc(size);
+	assert(p != NULL);
+
+	return p;
+}
+
+/**
+ * realloc() wrapper
+ *
+ * @param p Pointer to a memory region which should be reallocated
+ * @param size The new size of the memory region
+ * @return A pointer to the reallocated memory region
+ * @ingroup util
+ *
+ * xrealloc() is a wrapper around realloc() which calls abort() if either the
+ * size argument is negative or the requested memory amount could not be
+ * allocated.
+ */
+void *
+xrealloc(void *p, size_t size)
+{
+	void *n;
+	
+	assert(size > 0);
+	n = realloc(p, size);
+	assert(n != NULL);
+
+	return n;
+}
+
+char *
+xstrdup(const char *str)
+{
+	char *p;
+
+	assert(str != NULL);
+	p = strdup(str);
+	assert(p != NULL);
+	
+	return p;
+}
+
+void
+xfree(void *p)
+{
+	assert(p != NULL);
+	free(p);
+	p = NULL;
+	assert(p == NULL);
+}
+#endif /* ! __HAVE_LEAK_DETECTION */
+
+/**
+ * Unquotes a string
+ *
+ * @param string The quoted string to unquote
+ * @return A pointer to the unquoted string
+ * @ingroup util
+ *
+ * This function unquotes a string. That is, it returns a pointer to a newly
+ * allocated memory region in which the unquoted string is stored. Only
+ * leading and trailing double-qoutes are removed. The string needs to be
+ * freed when it is not needed anymore.
+ */
+char *
+mm_unquote(const char *string)
+{
+	char *ret;
+
+	if (string[0] != '\"' || string[strlen(string)-1] != '\"')
+		return xstrdup(string);
+
+	ret = xstrdup(string + 1);
+	ret[strlen(ret)-1] = '\0';
+
+	return ret;
+}
+
+
+/**
+ * Removes MIME comments from a string
+ *
+ * @param string The string to uncomment
+ * @return A pointer to the uncommented string or NULL on error. Sets mm_errno.
+ * @ingroup util
+ *
+ * This function removes MIME comments from a string (included in parantheses).
+ * It returns a pointer to a newly allocated memory region in which the
+ * uncommented string is stored. The returned string needs to be freed when
+ * it's not used anymore.
+ */
+char *
+mm_uncomment(const char *string)
+{
+	char *buf, *new, *orig, *token;
+	size_t new_size;
+	int found;
+	int open;
+
+	assert(string != NULL);
+	
+	new_size = strlen(string) + 1;
+	new = NULL;
+	buf = NULL;
+	orig = NULL;
+	found = 0;
+	open = 0;
+	mm_errno = MM_ERROR_NONE;
+
+	buf = xstrdup(string);
+	orig = buf;
+
+	while (*buf != '\0') {
+		if (*buf == '(') {
+			open++;
+			new_size--;
+			found++;
+		} else if (*buf == ')') {
+			open--;
+			new_size--;
+		} else {
+			if (open)
+				new_size--;
+		}
+		buf++;
+	}
+
+	if (open != 0) {
+		mm_errno = MM_ERROR_PARSE;
+		mm_error_setmsg("Uncommenting: parantheses are unbalanced");
+		goto cleanup;
+	}
+
+	if (!found) {
+		new = orig;
+		return orig;
+	}
+
+	new = xmalloc(new_size + 1);
+	*new = '\0';
+	buf = orig;
+	token = buf;
+
+	/* Tokenize our string by parentheses, and copy the portions which are
+	 * not commented to our destination.
+	 */
+	open = 0;
+	while (*buf != '\0') {
+		if (*buf == '(') {
+			if (!open) {
+				*buf = '\0';
+				strlcat(new, token, new_size);
+				token = buf+1;
+			}
+			open++;
+		}
+		if (*buf == ')') {
+			open--;
+			token = buf + 1;
+		}
+		buf++;
+	}
+
+	strlcat(new, token, new_size);
+	
+cleanup:
+	if (orig != NULL) {
+		xfree(orig);
+		orig = NULL;
+	}
+
+	if (mm_errno != MM_ERROR_NONE) {
+		if (new != NULL) {
+			xfree(new);
+			new = NULL;
+		}
+		return NULL;
+	} else {
+		return new;
+	}
+}
+
+/**
+ * separate strings
+ *
+ * @param stringp A pointer to the string being splitted
+ * @param delim The delimeter string
+ * @ingroup util
+ *
+ * This function works similar to strsep(), with the difference that delim is
+ * treated as a whole.
+ */
+char *
+xstrsep(char **stringp, const char *delim)
+{
+	char *p;
+	char *s;
+	char *r;
+
+	if (*stringp == NULL || *stringp == '\0')
+		return NULL;
+
+	p = *stringp;
+
+	if ((s = strstr(p, delim)) == NULL) {
+		r = p;
+		while (*p != '\0')
+			p++;
+		*stringp = NULL;
+		return r;
+	} else {
+		r = p;
+		p += strlen(p) - strlen(s);
+		*p = '\0';
+		*stringp = p + strlen(delim);
+		return r;
+	}
+}
+
+/**
+ * Strips a given character set from a string
+ *
+ * @param input The string which to strip
+ * @param strip The character set to strip off
+ * @return A copy of the original string with all chars stripped
+ * @ingroup util
+ */
+char *
+mm_stripchars(char *input, char *strip)
+{
+	char *output, *orig;
+	int i, j, chars;
+
+	assert(input != NULL);
+	assert(strip != '\0');
+	
+	chars = 0;
+	orig = input;
+
+	while (*orig != '\0') {
+		for (i = 0; i < strlen(strip); i++) {
+			if (*orig == strip[i]) {
+				chars++;
+				break;
+			}
+		}
+		orig++;
+	}
+	
+	/* If we have not found any char in the input, return a dup of the orig
+	   string */
+	if (chars == 0)
+		return(xstrdup(input));
+
+	output = (char *)xmalloc(strlen(input) - chars);
+	orig = output;
+
+	for (i = 0; i < strlen(input); i++) {
+		int stripc;
+		stripc = 0;
+		for (j = 0; j < strlen(strip); j++) {
+			if (input[i] == strip[j]) {
+				stripc = 1;
+				break;
+			}
+		}
+		if (stripc == 0) {
+			*output = input[i];
+			output++;
+		}
+	}
+
+	*output = '\0';
+
+	return(orig);
+}
+
+/**
+ * Adds characters to a string at given positions
+ *
+ * @param input The string to which to add characters
+ * @param add The character string to add
+ * @param linelength The position where to add the character
+ * @return A copy of the string with characters added
+ * @ingroup util
+ *
+ * This function adds the characters add at each linelength positions and
+ * returns this new string.
+ */
+char *
+mm_addchars(char *input, char *add, u_int16_t linelength)
+{
+	u_int32_t len;
+	u_int32_t i;
+	u_int32_t l;
+	u_int32_t j;
+	u_int16_t addcrlf;
+	char *output;
+	char *orig;
+	
+	len = strlen(input);
+	if (len <= linelength)
+		return(xstrdup(input));
+
+	addcrlf = len / linelength;
+
+	output = (char *)xmalloc(len + (addcrlf * strlen(add)));
+	orig = output;
+	
+	for (i = 0, l = 0; i < len; i++, l++) {
+		if (l == linelength) {
+			for (j = 0; j < strlen(add); j++) {
+				*output = add[j];
+				output++;
+			}
+			l = 0;
+		}
+		*output = input[i];
+		output++;
+	}
+
+	*output = '\0';
+	output = orig;
+
+	return(orig);
+}
+
+void
+mm_striptrailing(char **what, const char *charset)
+{
+	size_t eos, i, hit; 
+	char *str;
+
+	str = *what;
+	for (eos = strlen(str)-1; eos >= 0; eos--) { 
+		hit = 0;
+		for (i = 0; i < strlen(charset); i++) { 
+			if (str[eos] == charset[i]) {
+				str[eos] = '\0'; 
+				hit = 1; 
+				break; 
+			} 
+		}
+		if (!hit)
+			break;
+	}
+}
diff --git a/main/minimime/mm_util.h b/main/minimime/mm_util.h
new file mode 100644
index 0000000000..b7058657db
--- /dev/null
+++ b/main/minimime/mm_util.h
@@ -0,0 +1,50 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#ifndef __MM_UTIL_H
+#define __MM_UTIL_H
+
+#define STRIP_TRAILING(str, charset) do { \
+	size_t eos, i, hit; \
+	for (eos = strlen(str); eos > 0; eos--) { \
+		hit = 0; \
+		for (i = 0; i <= strlen(charset); i++) { \
+			if (str[eos] == charset[i]) {\
+				str[eos] = '\0'; \
+				hit = 1; \
+				break; \
+			} \
+		} \
+		if (!hit) \
+			break; \
+	} \
+} while (0);
+
+#endif /* ! __MM_UTIL_H */
diff --git a/main/minimime/mm_warnings.c b/main/minimime/mm_warnings.c
new file mode 100644
index 0000000000..c9b8a7daf3
--- /dev/null
+++ b/main/minimime/mm_warnings.c
@@ -0,0 +1,99 @@
+/*
+ * $Id$
+ *
+ * MiniMIME - a library for handling MIME messages
+ *
+ * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net>
+ * 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.
+ * 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. Neither the name of the author nor the names of the contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``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 JANN FISCHER OR THE VOICES IN HIS HEAD
+ * 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.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <ctype.h>
+#include <assert.h>
+
+#include "mm_internal.h"
+
+/**
+ * Attaches a warning message to a context
+ *
+ * @param ctx A valid MiniMIME context object
+ * @param type The type of the warning
+ * @param fmt The warning message as format string
+ */
+void
+mm_warning_add(MM_CTX *ctx, int type, const char *fmt, ...)
+{
+	struct mm_warning *warning;
+	char buf[1024];
+	va_list ap;
+
+	assert(ctx != NULL);
+
+	va_start(ap, fmt);
+	vsnprintf(buf, sizeof buf, fmt, ap);
+	va_end(ap);
+
+	warning = (struct mm_warning *)xmalloc(sizeof(struct mm_warning));
+	warning->message = xstrdup(buf);
+	warning->type = type;
+
+	if (SLIST_EMPTY(&ctx->warnings)) {
+		SLIST_INSERT_HEAD(&ctx->warnings, warning, next);
+	} else {
+		struct mm_warning *last, *after;
+
+		after = NULL;
+
+		SLIST_FOREACH(last, &ctx->warnings, next) {
+			if (last != NULL) {
+				after = last;
+			}
+		}
+		
+		assert(after != NULL);
+
+		SLIST_INSERT_AFTER(after, warning, next);
+	}
+}
+
+struct mm_warning *
+mm_warning_next(MM_CTX *ctx, struct mm_warning **last)
+{
+	struct mm_warning *warning;
+
+	if (*last == NULL) {
+		warning = SLIST_FIRST(&ctx->warnings);
+	} else {
+		warning = SLIST_NEXT(*last, next);
+	}
+
+	*last = warning;
+	return warning;
+}
diff --git a/main/minimime/mytest_files/ast_postdata b/main/minimime/mytest_files/ast_postdata
new file mode 100644
index 0000000000..c3776c6f46
--- /dev/null
+++ b/main/minimime/mytest_files/ast_postdata
@@ -0,0 +1,38 @@
+MyHeader1: blah1
+MyHeader2: blah2
+MyHeader3: blah3
+MyHeader4: blah4
+Content-Type: multipart/form-data; boundary=---------------------------175757342718946221771693683144
+
+-----------------------------175757342718946221771693683144
+Content-Disposition: form-data; name="MAX_FILE_SIZE"
+
+30000
+-----------------------------175757342718946221771693683144
+Content-Disposition: form-data; name="userfile"; filename="BUGS"
+Content-Type: application/octet-stream
+
+Asterisk Bug Tracking Information
+=================================
+
+To learn about and report Asterisk bugs, please visit
+the official Asterisk Bug Tracker at:
+
+	http://bugs.digium.com
+
+For more information on using the bug tracker, or to
+learn how you can contribute by acting as a bug marshall
+please see:
+
+	http://www.asterisk.org/developers/bug-guidelines
+
+If you would like to submit a feature request, please
+resist the temptation to post it to the bug tracker.
+Feature requests should be posted to the asterisk-dev
+mailing list, located at:
+
+	http://lists.digium.com 
+
+Thank you!
+
+-----------------------------175757342718946221771693683144--
diff --git a/main/minimime/mytest_files/ast_postdata2 b/main/minimime/mytest_files/ast_postdata2
new file mode 100644
index 0000000000000000000000000000000000000000..8f91e7a51b10f3944dd247fc266a7297f078db0a
GIT binary patch
literal 1737
zcmd5+dr%Z)5MLAo(GyciMFPU|Qn)z8gX5LjanX^8%89&^PB@M;xLe^sQNwj2$R?vS
zUuF10^BE|q5Q&ILjOLi41gRIGqG8A?rl@pur#0hDWB$=h(|+^YZ@+!a{`UK0WqO@K
ztuu&}*{BY1OUq0(Xi=4J@JiOFr-_nO234Tj9DSxPNtK=*EPAqdOMSg1{!+2;1b=U_
zuh`F9>Lc|NOZ<E!z7m1G!2ZdV=Ey%6%l>2-qRl{khSs3f>jK;!qo-4)se|3aCr2l|
zrkEm6h*ZSN-7PJB#Af*qI%j66)04HSYWF}l%k_wkEJd5B(&)`Z{-XcrgH?#B=7?no
zFMXmxZ4hM`($%Uo3t?rfHW~gdHfEOv7P)SQ#U56;&675Ka}PJ>4Wdn-oyW~546x<h
zyIdqcLt7J@cw1x>eCfCbxBFDUc2g<u9Qp<9G_K-ZT}xnh<$T^#uY#`%W4O3f1|>Ox
zymx&9?bAeK>Eg-sb!Y(Yj~`73gwA*{$cD=LnXr7+RVr_5#tIv2sHm;RZ!fpOp<*Lf
z*3`k_f-0_xZGa;sL0FypAsmg!<(ecN9P>)%+VBtPJBQb~PLxV@-D*58m`cYRL-EA>
zCOR|vHl9)S=laYpI6LV&pPP9O8r)9ukCKDX2*upwxDJ|{KjEKD`{{gD2466)p^G~{
zMq_0*{k$w4n+xNpMXSWtoM5`7@WsosUFpiKAZ`l{f~$Tmd`;*AzYGU%w*_dw)5_P|
zTH)7*8t$mAfg6Wgu(P<Cc*9Y=Sx`;4mTbi?eG%PG$j9Fz^61V)E#CD?q3)O7<9iNa
zbl*<H_q#Rl;F^Ma8Wr$+od=uBJfL^GfMKlwtnxd#&-_m4J8vLbs|JwGv>VuOQU}?J
ze?Z&iLh3(wANJp~1?>4#9MHUy1~!$jpemCFm9Joj9V=k)Is-qm%m72Oqj;z`3Wmi<
z*-;^dXZ@Xc_*f?x;qHec?Rvne&q#E-HG)R9JV58u_vyJK7tv+!1#;bV7~QfQ;Q6JS
z(0%4j7(Mq8zaXiH7sEF27{~n}9JiE(rqeXmK9R>7OKDuYoINU6k!SrJ6cx^=mrFy?
zD<_7;E61R>CJV-A*r88oG)$P$juK%2_>TV`{cN2<I_err+f3m9;5Y}=Hbda~-5gZh
zL%|gv@hb&Jn)o^LBz+Z4&RveLMr<Zok{(06a!DRC9pzmIAykycq4n!PA&6i_=^_a0
z@a8wxuc0XoQ!#vTHcdSs#)$YhnznifP7eyE8JV{+(%F@iGaFFZV?|MtGK{+70?{sK
zIr<ntjOhT!7PUg0aV^K^*1(&U3wd_ZHb^Lp=eNSENtK_Cb3{dysENZQK_00?gHhd)
zLK>kfYEFic*47HOdpv1w+a-K^wE|L4^>SL42k44hSRW+-EI7*ZB%P41-^v+|r@;`B
z&jwQmWl4)L%Xo?wjL5?Um3t|>I|UaOuB1hcVYoOalin%w#GKi)Xvx|^2v$!&eICo{
zYyH^c>81atjNabz5-aHK-L(;{EjHLa^bCBc2g^c~Ad6Ij+zi<)Go~pmOU*ohMg5Ca
JEfNXr{{WPTU77#@

literal 0
HcmV?d00001

diff --git a/main/minimime/mytest_files/ast_postdata3.gz b/main/minimime/mytest_files/ast_postdata3.gz
new file mode 100644
index 0000000000000000000000000000000000000000..d8d3894ad374775a3384b73b281695c45570b90a
GIT binary patch
literal 526318
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

literal 0
HcmV?d00001

diff --git a/main/minimime/mytest_files/mytest.c b/main/minimime/mytest_files/mytest.c
new file mode 100644
index 0000000000..ccbeddc853
--- /dev/null
+++ b/main/minimime/mytest_files/mytest.c
@@ -0,0 +1,71 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "mm.h"
+
+int main(int argc, char *argv[])
+{
+	const char *filename = "mytest_files/ast_postdata3";
+	MM_CTX *ctx;
+	struct mm_mimepart *part;
+	struct mm_content *cont;
+	
+	int res = 0;
+	const char *disp;
+	int i;
+
+	mm_library_init();
+	mm_codec_registerdefaultcodecs();
+
+	printf("\nThe test should run 2 times with the same results.\n\n");
+
+	for (i = 0; i < 2; i++) {
+		printf("\nTest run #%d ...\n", i + 1);
+
+		if (!(ctx = mm_context_new())) {
+			printf("Failed to create MiniMIME context!\n\n");
+			break;
+		}
+	
+		res = mm_parse_file(ctx, filename, MM_PARSE_LOOSE, 0);
+		if (res == -1) {
+			printf("Error parsing file %s\n\n", filename);
+			mm_context_free(ctx);
+			break;
+		}
+	
+		res = mm_context_countparts(ctx);
+		if (res != 3) {
+			printf("This file should have 3 parts, but parser says %d\n\n", res);
+			res = -1;
+			mm_context_free(ctx);
+			break;
+		}
+	
+		/* Part 2 is the file */
+		if (!(part = mm_context_getpart(ctx, 2))) {
+			printf("Failed to get a reference to part 2 of the MIME data\n\n");
+			res = -1;
+			mm_context_free(ctx);
+			break;
+		}
+	
+		/* This is where the problems are demonstrated. */
+		cont =  mm_mimepart_getcontent(part);
+
+		if ((disp = mm_content_getdispositiontype(cont)))
+			printf("SUCCESS: Got the Content-Disposition: %s\n", disp);
+		else
+			printf("FAILURE: Could not get the Content-Disposition value!\n");
+
+		res = mm_mimepart_getlength(part);
+		if (res == 1279)
+			printf("SUCCESS: Got the correct value for the body length: %d\n\n", res);
+		else
+			printf("FAILURE: The parser says this MIME part has %d length, but it should be 1279\n\n", res);
+
+		mm_context_free(ctx);
+	}
+
+	exit(res);
+}
diff --git a/main/minimime/strlcat.c b/main/minimime/strlcat.c
new file mode 100644
index 0000000000..2d2da0413f
--- /dev/null
+++ b/main/minimime/strlcat.c
@@ -0,0 +1,70 @@
+/*	$OpenBSD: strlcat.c,v 1.9 2003/03/14 14:35:29 millert Exp $	*/
+
+/*
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+ * 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.
+ * 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 without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``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.
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+static char *rcsid = "$OpenBSD: strlcat.c,v 1.9 2003/03/14 14:35:29 millert Exp $";
+#endif /* LIBC_SCCS and not lint */
+
+#include <sys/types.h>
+#include <string.h>
+
+/*
+ * Appends src to string dst of size siz (unlike strncat, siz is the
+ * full size of dst, not space left).  At most siz-1 characters
+ * will be copied.  Always NUL terminates (unless siz <= strlen(dst)).
+ * Returns strlen(src) + MIN(siz, strlen(initial dst)).
+ * If retval >= siz, truncation occurred.
+ */
+size_t
+strlcat(char *dst, const char *src, size_t siz)
+{
+	register char *d = dst;
+	register const char *s = src;
+	register size_t n = siz;
+	size_t dlen;
+
+	/* Find the end of dst and adjust bytes left but don't go past end */
+	while (n-- != 0 && *d != '\0')
+		d++;
+	dlen = d - dst;
+	n = siz - dlen;
+
+	if (n == 0)
+		return(dlen + strlen(s));
+	while (*s != '\0') {
+		if (n != 1) {
+			*d++ = *s;
+			n--;
+		}
+		s++;
+	}
+	*d = '\0';
+
+	return(dlen + (s - src));	/* count does not include NUL */
+}
diff --git a/main/minimime/strlcpy.c b/main/minimime/strlcpy.c
new file mode 100644
index 0000000000..94785a309d
--- /dev/null
+++ b/main/minimime/strlcpy.c
@@ -0,0 +1,66 @@
+/*	$OpenBSD: strlcpy.c,v 1.6 2003/03/14 14:35:29 millert Exp $	*/
+
+/*
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+ * 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.
+ * 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 without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``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.
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+static char *rcsid = "$OpenBSD: strlcpy.c,v 1.6 2003/03/14 14:35:29 millert Exp $";
+#endif /* LIBC_SCCS and not lint */
+
+#include <sys/types.h>
+#include <string.h>
+
+/*
+ * Copy src to string dst of size siz.  At most siz-1 characters
+ * will be copied.  Always NUL terminates (unless siz == 0).
+ * Returns strlen(src); if retval >= siz, truncation occurred.
+ */
+size_t
+strlcpy(char *dst, const char *src, size_t siz)
+{
+	register char *d = dst;
+	register const char *s = src;
+	register size_t n = siz;
+
+	/* Copy as many bytes as will fit */
+	if (n != 0 && --n != 0) {
+		do {
+			if ((*d++ = *s++) == 0)
+				break;
+		} while (--n != 0);
+	}
+
+	/* Not enough room in dst, add NUL and traverse rest of src */
+	if (n == 0) {
+		if (siz != 0)
+			*d = '\0';		/* NUL-terminate dst */
+		while (*s++)
+			;
+	}
+
+	return(s - src - 1);	/* count does not include NUL */
+}
diff --git a/main/minimime/sys/CVS/Entries b/main/minimime/sys/CVS/Entries
new file mode 100644
index 0000000000..138d3a245e
--- /dev/null
+++ b/main/minimime/sys/CVS/Entries
@@ -0,0 +1,2 @@
+/mm_queue.h/1.1.1.1/Mon May  3 22:06:00 2004//
+D
diff --git a/main/minimime/sys/CVS/Repository b/main/minimime/sys/CVS/Repository
new file mode 100644
index 0000000000..b81e7fdb9d
--- /dev/null
+++ b/main/minimime/sys/CVS/Repository
@@ -0,0 +1 @@
+minimime/src/sys
diff --git a/main/minimime/sys/CVS/Root b/main/minimime/sys/CVS/Root
new file mode 100644
index 0000000000..4c379009cb
--- /dev/null
+++ b/main/minimime/sys/CVS/Root
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.minimime.berlios.de:/cvsroot/minimime
diff --git a/main/minimime/sys/mm_queue.h b/main/minimime/sys/mm_queue.h
new file mode 100644
index 0000000000..c85bb240c5
--- /dev/null
+++ b/main/minimime/sys/mm_queue.h
@@ -0,0 +1,503 @@
+/*	$OpenBSD: queue.h,v 1.22 2001/06/23 04:39:35 angelos Exp $	*/
+/*	$NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $	*/
+
+/*
+ * Copyright (c) 1991, 1993
+ *	The Regents of the University of California.  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.
+ * 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. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
+ *
+ *	@(#)queue.h	8.5 (Berkeley) 8/20/94
+ */
+
+#ifndef	_SYS_QUEUE_H_
+#define	_SYS_QUEUE_H_
+
+/*
+ * This file defines five types of data structures: singly-linked lists, 
+ * lists, simple queues, tail queues, and circular queues.
+ *
+ *
+ * A singly-linked list is headed by a single forward pointer. The elements
+ * are singly linked for minimum space and pointer manipulation overhead at
+ * the expense of O(n) removal for arbitrary elements. New elements can be
+ * added to the list after an existing element or at the head of the list.
+ * Elements being removed from the head of the list should use the explicit
+ * macro for this purpose for optimum efficiency. A singly-linked list may
+ * only be traversed in the forward direction.  Singly-linked lists are ideal
+ * for applications with large datasets and few or no removals or for
+ * implementing a LIFO queue.
+ *
+ * A list is headed by a single forward pointer (or an array of forward
+ * pointers for a hash table header). The elements are doubly linked
+ * so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before
+ * or after an existing element or at the head of the list. A list
+ * may only be traversed in the forward direction.
+ *
+ * A simple queue is headed by a pair of pointers, one the head of the
+ * list and the other to the tail of the list. The elements are singly
+ * linked to save space, so elements can only be removed from the
+ * head of the list. New elements can be added to the list before or after
+ * an existing element, at the head of the list, or at the end of the
+ * list. A simple queue may only be traversed in the forward direction.
+ *
+ * A tail queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or
+ * after an existing element, at the head of the list, or at the end of
+ * the list. A tail queue may be traversed in either direction.
+ *
+ * A circle queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or after
+ * an existing element, at the head of the list, or at the end of the list.
+ * A circle queue may be traversed in either direction, but has a more
+ * complex end of list detection.
+ *
+ * For details on the use of these macros, see the queue(3) manual page.
+ */
+
+/*
+ * Singly-linked List definitions.
+ */
+#define SLIST_HEAD(name, type)						\
+struct name {								\
+	struct type *slh_first;	/* first element */			\
+}
+ 
+#define	SLIST_HEAD_INITIALIZER(head)					\
+	{ NULL }
+ 
+#define SLIST_ENTRY(type)						\
+struct {								\
+	struct type *sle_next;	/* next element */			\
+}
+ 
+/*
+ * Singly-linked List access methods.
+ */
+#define	SLIST_FIRST(head)	((head)->slh_first)
+#define	SLIST_END(head)		NULL
+#define	SLIST_EMPTY(head)	(SLIST_FIRST(head) == SLIST_END(head))
+#define	SLIST_NEXT(elm, field)	((elm)->field.sle_next)
+
+#define	SLIST_FOREACH(var, head, field)					\
+	for((var) = SLIST_FIRST(head);					\
+	    (var) != SLIST_END(head);					\
+	    (var) = SLIST_NEXT(var, field))
+
+/*
+ * Singly-linked List functions.
+ */
+#define	SLIST_INIT(head) {						\
+	SLIST_FIRST(head) = SLIST_END(head);				\
+}
+
+#define	SLIST_INSERT_AFTER(slistelm, elm, field) do {			\
+	(elm)->field.sle_next = (slistelm)->field.sle_next;		\
+	(slistelm)->field.sle_next = (elm);				\
+} while (0)
+
+#define	SLIST_INSERT_HEAD(head, elm, field) do {			\
+	(elm)->field.sle_next = (head)->slh_first;			\
+	(head)->slh_first = (elm);					\
+} while (0)
+
+#define	SLIST_REMOVE_HEAD(head, field) do {				\
+	(head)->slh_first = (head)->slh_first->field.sle_next;		\
+} while (0)
+
+#define SLIST_REMOVE(head, elm, type, field) do {			\
+	if ((head)->slh_first == (elm)) {				\
+		SLIST_REMOVE_HEAD((head), field);			\
+	}								\
+	else {								\
+		struct type *curelm = (head)->slh_first;		\
+		while( curelm->field.sle_next != (elm) )		\
+			curelm = curelm->field.sle_next;		\
+		curelm->field.sle_next =				\
+		    curelm->field.sle_next->field.sle_next;		\
+	}								\
+} while (0)
+
+/*
+ * List definitions.
+ */
+#define LIST_HEAD(name, type)						\
+struct name {								\
+	struct type *lh_first;	/* first element */			\
+}
+
+#define LIST_HEAD_INITIALIZER(head)					\
+	{ NULL }
+
+#define LIST_ENTRY(type)						\
+struct {								\
+	struct type *le_next;	/* next element */			\
+	struct type **le_prev;	/* address of previous next element */	\
+}
+
+/*
+ * List access methods
+ */
+#define	LIST_FIRST(head)		((head)->lh_first)
+#define	LIST_END(head)			NULL
+#define	LIST_EMPTY(head)		(LIST_FIRST(head) == LIST_END(head))
+#define	LIST_NEXT(elm, field)		((elm)->field.le_next)
+
+#define LIST_FOREACH(var, head, field)					\
+	for((var) = LIST_FIRST(head);					\
+	    (var)!= LIST_END(head);					\
+	    (var) = LIST_NEXT(var, field))
+
+/*
+ * List functions.
+ */
+#define	LIST_INIT(head) do {						\
+	LIST_FIRST(head) = LIST_END(head);				\
+} while (0)
+
+#define LIST_INSERT_AFTER(listelm, elm, field) do {			\
+	if (((elm)->field.le_next = (listelm)->field.le_next) != NULL)	\
+		(listelm)->field.le_next->field.le_prev =		\
+		    &(elm)->field.le_next;				\
+	(listelm)->field.le_next = (elm);				\
+	(elm)->field.le_prev = &(listelm)->field.le_next;		\
+} while (0)
+
+#define	LIST_INSERT_BEFORE(listelm, elm, field) do {			\
+	(elm)->field.le_prev = (listelm)->field.le_prev;		\
+	(elm)->field.le_next = (listelm);				\
+	*(listelm)->field.le_prev = (elm);				\
+	(listelm)->field.le_prev = &(elm)->field.le_next;		\
+} while (0)
+
+#define LIST_INSERT_HEAD(head, elm, field) do {				\
+	if (((elm)->field.le_next = (head)->lh_first) != NULL)		\
+		(head)->lh_first->field.le_prev = &(elm)->field.le_next;\
+	(head)->lh_first = (elm);					\
+	(elm)->field.le_prev = &(head)->lh_first;			\
+} while (0)
+
+#define LIST_REMOVE(elm, field) do {					\
+	if ((elm)->field.le_next != NULL)				\
+		(elm)->field.le_next->field.le_prev =			\
+		    (elm)->field.le_prev;				\
+	*(elm)->field.le_prev = (elm)->field.le_next;			\
+} while (0)
+
+#define LIST_REPLACE(elm, elm2, field) do {				\
+	if (((elm2)->field.le_next = (elm)->field.le_next) != NULL)	\
+		(elm2)->field.le_next->field.le_prev =			\
+		    &(elm2)->field.le_next;				\
+	(elm2)->field.le_prev = (elm)->field.le_prev;			\
+	*(elm2)->field.le_prev = (elm2);				\
+} while (0)
+
+/*
+ * Simple queue definitions.
+ */
+#define SIMPLEQ_HEAD(name, type)					\
+struct name {								\
+	struct type *sqh_first;	/* first element */			\
+	struct type **sqh_last;	/* addr of last next element */		\
+}
+
+#define SIMPLEQ_HEAD_INITIALIZER(head)					\
+	{ NULL, &(head).sqh_first }
+
+#define SIMPLEQ_ENTRY(type)						\
+struct {								\
+	struct type *sqe_next;	/* next element */			\
+}
+
+/*
+ * Simple queue access methods.
+ */
+#define	SIMPLEQ_FIRST(head)	    ((head)->sqh_first)
+#define	SIMPLEQ_END(head)	    NULL
+#define	SIMPLEQ_EMPTY(head)	    (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head))
+#define	SIMPLEQ_NEXT(elm, field)    ((elm)->field.sqe_next)
+
+#define SIMPLEQ_FOREACH(var, head, field)				\
+	for((var) = SIMPLEQ_FIRST(head);				\
+	    (var) != SIMPLEQ_END(head);					\
+	    (var) = SIMPLEQ_NEXT(var, field))
+
+/*
+ * Simple queue functions.
+ */
+#define	SIMPLEQ_INIT(head) do {						\
+	(head)->sqh_first = NULL;					\
+	(head)->sqh_last = &(head)->sqh_first;				\
+} while (0)
+
+#define SIMPLEQ_INSERT_HEAD(head, elm, field) do {			\
+	if (((elm)->field.sqe_next = (head)->sqh_first) == NULL)	\
+		(head)->sqh_last = &(elm)->field.sqe_next;		\
+	(head)->sqh_first = (elm);					\
+} while (0)
+
+#define SIMPLEQ_INSERT_TAIL(head, elm, field) do {			\
+	(elm)->field.sqe_next = NULL;					\
+	*(head)->sqh_last = (elm);					\
+	(head)->sqh_last = &(elm)->field.sqe_next;			\
+} while (0)
+
+#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do {		\
+	if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
+		(head)->sqh_last = &(elm)->field.sqe_next;		\
+	(listelm)->field.sqe_next = (elm);				\
+} while (0)
+
+#define SIMPLEQ_REMOVE_HEAD(head, elm, field) do {			\
+	if (((head)->sqh_first = (elm)->field.sqe_next) == NULL)	\
+		(head)->sqh_last = &(head)->sqh_first;			\
+} while (0)
+
+/*
+ * Tail queue definitions.
+ */
+#define TAILQ_HEAD(name, type)						\
+struct name {								\
+	struct type *tqh_first;	/* first element */			\
+	struct type **tqh_last;	/* addr of last next element */		\
+}
+
+#define TAILQ_HEAD_INITIALIZER(head)					\
+	{ NULL, &(head).tqh_first }
+
+#define TAILQ_ENTRY(type)						\
+struct {								\
+	struct type *tqe_next;	/* next element */			\
+	struct type **tqe_prev;	/* address of previous next element */	\
+}
+
+/* 
+ * tail queue access methods 
+ */
+#define	TAILQ_FIRST(head)		((head)->tqh_first)
+#define	TAILQ_END(head)			NULL
+#define	TAILQ_NEXT(elm, field)		((elm)->field.tqe_next)
+#define TAILQ_LAST(head, headname)					\
+	(*(((struct headname *)((head)->tqh_last))->tqh_last))
+/* XXX */
+#define TAILQ_PREV(elm, headname, field)				\
+	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
+#define	TAILQ_EMPTY(head)						\
+	(TAILQ_FIRST(head) == TAILQ_END(head))
+
+#define TAILQ_FOREACH(var, head, field)					\
+	for((var) = TAILQ_FIRST(head);					\
+	    (var) != TAILQ_END(head);					\
+	    (var) = TAILQ_NEXT(var, field))
+
+#define TAILQ_FOREACH_REVERSE(var, head, field, headname)		\
+	for((var) = TAILQ_LAST(head, headname);				\
+	    (var) != TAILQ_END(head);					\
+	    (var) = TAILQ_PREV(var, headname, field))
+
+/*
+ * Tail queue functions.
+ */
+#define	TAILQ_INIT(head) do {						\
+	(head)->tqh_first = NULL;					\
+	(head)->tqh_last = &(head)->tqh_first;				\
+} while (0)
+
+#define TAILQ_INSERT_HEAD(head, elm, field) do {			\
+	if (((elm)->field.tqe_next = (head)->tqh_first) != NULL)	\
+		(head)->tqh_first->field.tqe_prev =			\
+		    &(elm)->field.tqe_next;				\
+	else								\
+		(head)->tqh_last = &(elm)->field.tqe_next;		\
+	(head)->tqh_first = (elm);					\
+	(elm)->field.tqe_prev = &(head)->tqh_first;			\
+} while (0)
+
+#define TAILQ_INSERT_TAIL(head, elm, field) do {			\
+	(elm)->field.tqe_next = NULL;					\
+	(elm)->field.tqe_prev = (head)->tqh_last;			\
+	*(head)->tqh_last = (elm);					\
+	(head)->tqh_last = &(elm)->field.tqe_next;			\
+} while (0)
+
+#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\
+	if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
+		(elm)->field.tqe_next->field.tqe_prev =			\
+		    &(elm)->field.tqe_next;				\
+	else								\
+		(head)->tqh_last = &(elm)->field.tqe_next;		\
+	(listelm)->field.tqe_next = (elm);				\
+	(elm)->field.tqe_prev = &(listelm)->field.tqe_next;		\
+} while (0)
+
+#define	TAILQ_INSERT_BEFORE(listelm, elm, field) do {			\
+	(elm)->field.tqe_prev = (listelm)->field.tqe_prev;		\
+	(elm)->field.tqe_next = (listelm);				\
+	*(listelm)->field.tqe_prev = (elm);				\
+	(listelm)->field.tqe_prev = &(elm)->field.tqe_next;		\
+} while (0)
+
+#define TAILQ_REMOVE(head, elm, field) do {				\
+	if (((elm)->field.tqe_next) != NULL)				\
+		(elm)->field.tqe_next->field.tqe_prev =			\
+		    (elm)->field.tqe_prev;				\
+	else								\
+		(head)->tqh_last = (elm)->field.tqe_prev;		\
+	*(elm)->field.tqe_prev = (elm)->field.tqe_next;			\
+} while (0)
+
+#define TAILQ_REPLACE(head, elm, elm2, field) do {			\
+	if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != NULL)	\
+		(elm2)->field.tqe_next->field.tqe_prev =		\
+		    &(elm2)->field.tqe_next;				\
+	else								\
+		(head)->tqh_last = &(elm2)->field.tqe_next;		\
+	(elm2)->field.tqe_prev = (elm)->field.tqe_prev;			\
+	*(elm2)->field.tqe_prev = (elm2);				\
+} while (0)
+
+/*
+ * Circular queue definitions.
+ */
+#define CIRCLEQ_HEAD(name, type)					\
+struct name {								\
+	struct type *cqh_first;		/* first element */		\
+	struct type *cqh_last;		/* last element */		\
+}
+
+#define CIRCLEQ_HEAD_INITIALIZER(head)					\
+	{ CIRCLEQ_END(&head), CIRCLEQ_END(&head) }
+
+#define CIRCLEQ_ENTRY(type)						\
+struct {								\
+	struct type *cqe_next;		/* next element */		\
+	struct type *cqe_prev;		/* previous element */		\
+}
+
+/*
+ * Circular queue access methods 
+ */
+#define	CIRCLEQ_FIRST(head)		((head)->cqh_first)
+#define	CIRCLEQ_LAST(head)		((head)->cqh_last)
+#define	CIRCLEQ_END(head)		((void *)(head))
+#define	CIRCLEQ_NEXT(elm, field)	((elm)->field.cqe_next)
+#define	CIRCLEQ_PREV(elm, field)	((elm)->field.cqe_prev)
+#define	CIRCLEQ_EMPTY(head)						\
+	(CIRCLEQ_FIRST(head) == CIRCLEQ_END(head))
+
+#define CIRCLEQ_FOREACH(var, head, field)				\
+	for((var) = CIRCLEQ_FIRST(head);				\
+	    (var) != CIRCLEQ_END(head);					\
+	    (var) = CIRCLEQ_NEXT(var, field))
+
+#define CIRCLEQ_FOREACH_REVERSE(var, head, field)			\
+	for((var) = CIRCLEQ_LAST(head);					\
+	    (var) != CIRCLEQ_END(head);					\
+	    (var) = CIRCLEQ_PREV(var, field))
+
+/*
+ * Circular queue functions.
+ */
+#define	CIRCLEQ_INIT(head) do {						\
+	(head)->cqh_first = CIRCLEQ_END(head);				\
+	(head)->cqh_last = CIRCLEQ_END(head);				\
+} while (0)
+
+#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do {		\
+	(elm)->field.cqe_next = (listelm)->field.cqe_next;		\
+	(elm)->field.cqe_prev = (listelm);				\
+	if ((listelm)->field.cqe_next == CIRCLEQ_END(head))		\
+		(head)->cqh_last = (elm);				\
+	else								\
+		(listelm)->field.cqe_next->field.cqe_prev = (elm);	\
+	(listelm)->field.cqe_next = (elm);				\
+} while (0)
+
+#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do {		\
+	(elm)->field.cqe_next = (listelm);				\
+	(elm)->field.cqe_prev = (listelm)->field.cqe_prev;		\
+	if ((listelm)->field.cqe_prev == CIRCLEQ_END(head))		\
+		(head)->cqh_first = (elm);				\
+	else								\
+		(listelm)->field.cqe_prev->field.cqe_next = (elm);	\
+	(listelm)->field.cqe_prev = (elm);				\
+} while (0)
+
+#define CIRCLEQ_INSERT_HEAD(head, elm, field) do {			\
+	(elm)->field.cqe_next = (head)->cqh_first;			\
+	(elm)->field.cqe_prev = CIRCLEQ_END(head);			\
+	if ((head)->cqh_last == CIRCLEQ_END(head))			\
+		(head)->cqh_last = (elm);				\
+	else								\
+		(head)->cqh_first->field.cqe_prev = (elm);		\
+	(head)->cqh_first = (elm);					\
+} while (0)
+
+#define CIRCLEQ_INSERT_TAIL(head, elm, field) do {			\
+	(elm)->field.cqe_next = CIRCLEQ_END(head);			\
+	(elm)->field.cqe_prev = (head)->cqh_last;			\
+	if ((head)->cqh_first == CIRCLEQ_END(head))			\
+		(head)->cqh_first = (elm);				\
+	else								\
+		(head)->cqh_last->field.cqe_next = (elm);		\
+	(head)->cqh_last = (elm);					\
+} while (0)
+
+#define	CIRCLEQ_REMOVE(head, elm, field) do {				\
+	if ((elm)->field.cqe_next == CIRCLEQ_END(head))			\
+		(head)->cqh_last = (elm)->field.cqe_prev;		\
+	else								\
+		(elm)->field.cqe_next->field.cqe_prev =			\
+		    (elm)->field.cqe_prev;				\
+	if ((elm)->field.cqe_prev == CIRCLEQ_END(head))			\
+		(head)->cqh_first = (elm)->field.cqe_next;		\
+	else								\
+		(elm)->field.cqe_prev->field.cqe_next =			\
+		    (elm)->field.cqe_next;				\
+} while (0)
+
+#define CIRCLEQ_REPLACE(head, elm, elm2, field) do {			\
+	if (((elm2)->field.cqe_next = (elm)->field.cqe_next) ==		\
+	    CIRCLEQ_END(head))						\
+		(head).cqh_last = (elm2);				\
+	else								\
+		(elm2)->field.cqe_next->field.cqe_prev = (elm2);	\
+	if (((elm2)->field.cqe_prev = (elm)->field.cqe_prev) ==		\
+	    CIRCLEQ_END(head))						\
+		(head).cqh_first = (elm2);				\
+	else								\
+		(elm2)->field.cqe_prev->field.cqe_next = (elm2);	\
+} while (0)
+
+#endif	/* !_SYS_QUEUE_H_ */
diff --git a/main/minimime/test.sh b/main/minimime/test.sh
new file mode 100755
index 0000000000..1beca0b749
--- /dev/null
+++ b/main/minimime/test.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+# MiniMIME test cases
+
+[ ! -x ./tests/parse -o ! -x ./tests/create ] && {
+	echo "You need to compile the test suite first to accomplish tests"
+	exit 1
+}
+
+LD_LIBRARY_PATH=${PWD}
+export LD_LIBRARY_PATH
+
+DIRECTORY=${1:-tests/messages}
+FILES=${2:-"*"}
+
+TESTS=0
+F_ERRORS=0
+F_INVALID=""
+M_ERRORS=0
+M_INVALID=""
+for f in ${DIRECTORY}/${FILES}; do
+	if [ -f "${f}" ]; then
+		TESTS=$((TESTS + 2))
+		echo -n "Running PARSER test for $f (file)... "
+		output=`./tests/parse $f 2>&1`
+		[ $? != 0 ] && {
+			echo "FAILED ($output)"
+			F_ERRORS=$((F_ERRORS + 1))
+			F_INVALID="${F_INVALID} ${f} "
+		} || {
+			echo "PASSED"
+		}
+		echo -n "Running PARSER test for $f (memory)... "
+		output=`./tests/parse -m $f 2>&1`
+		[ $? != 0 ] && {
+			echo "FAILED ($output)"
+			M_ERRORS=$((M_ERRORS + 1))
+			M_INVALID="${M_INVALID} ${f} "
+		} || {
+			echo "PASSED"
+		}
+	fi
+done
+
+echo "Ran a total of ${TESTS} tests"
+
+if [ ${F_ERRORS} -gt 0 ]; then
+	echo "!! ${F_ERRORS} messages had errors in file based parsing"
+	echo "-> ${F_INVALID}"
+fi	
+if [ ${M_ERRORS} -gt 0 ]; then
+	echo "!! ${F_ERRORS} messages had errors in memory based parsing"
+fi	
+
+unset LD_LIBRARY_PATH
diff --git a/main/minimime/test/CVS/Entries b/main/minimime/test/CVS/Entries
new file mode 100644
index 0000000000..1784810501
--- /dev/null
+++ b/main/minimime/test/CVS/Entries
@@ -0,0 +1 @@
+D
diff --git a/main/minimime/test/CVS/Repository b/main/minimime/test/CVS/Repository
new file mode 100644
index 0000000000..c4c9417ccf
--- /dev/null
+++ b/main/minimime/test/CVS/Repository
@@ -0,0 +1 @@
+minimime/src/test
diff --git a/main/minimime/test/CVS/Root b/main/minimime/test/CVS/Root
new file mode 100644
index 0000000000..4c379009cb
--- /dev/null
+++ b/main/minimime/test/CVS/Root
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.minimime.berlios.de:/cvsroot/minimime
diff --git a/main/minimime/tests/CVS/Entries b/main/minimime/tests/CVS/Entries
new file mode 100644
index 0000000000..667ffb1c1f
--- /dev/null
+++ b/main/minimime/tests/CVS/Entries
@@ -0,0 +1,4 @@
+/Makefile/1.1/Wed Jun  9 09:44:47 2004//
+/create.c/1.1/Wed Jun  9 09:44:47 2004//
+/parse.c/1.2/Thu Jun 24 07:25:34 2004//
+D
diff --git a/main/minimime/tests/CVS/Entries.Log b/main/minimime/tests/CVS/Entries.Log
new file mode 100644
index 0000000000..9e493f7214
--- /dev/null
+++ b/main/minimime/tests/CVS/Entries.Log
@@ -0,0 +1 @@
+A D/messages////
diff --git a/main/minimime/tests/CVS/Repository b/main/minimime/tests/CVS/Repository
new file mode 100644
index 0000000000..7a7de87468
--- /dev/null
+++ b/main/minimime/tests/CVS/Repository
@@ -0,0 +1 @@
+minimime/src/tests
diff --git a/main/minimime/tests/CVS/Root b/main/minimime/tests/CVS/Root
new file mode 100644
index 0000000000..4c379009cb
--- /dev/null
+++ b/main/minimime/tests/CVS/Root
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.minimime.berlios.de:/cvsroot/minimime
diff --git a/main/minimime/tests/Makefile b/main/minimime/tests/Makefile
new file mode 100644
index 0000000000..ae460c6b25
--- /dev/null
+++ b/main/minimime/tests/Makefile
@@ -0,0 +1,18 @@
+BINARIES=parse create
+CFLAGS=-Wall -ggdb -g3 -I..
+LDFLAGS=-L..
+LIBS=-lmmime
+CC=gcc
+
+all: parse create
+
+parse: parse.o
+	$(CC) -o parse parse.o $(LDFLAGS) $(LIBS)
+
+create: create.o
+	$(CC) -o create create.o $(LDFLAGS) $(LIBS)
+
+clean:
+	rm -f $(BINARIES)
+	rm -f *.o
+	rm -f *.core
diff --git a/main/minimime/tests/create.c b/main/minimime/tests/create.c
new file mode 100644
index 0000000000..a8ca479f14
--- /dev/null
+++ b/main/minimime/tests/create.c
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2004 Jann Fischer. 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.
+ * 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. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ */
+
+/*
+ * MiniMIME test program - create.c
+ *
+ * Creates a MIME message of the given MIME parts
+ */
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <err.h>
+
+#include "mm.h"
+
+const char *progname;
+
+void
+usage(void)
+{
+	fprintf(stderr,
+	    "MiniMIME test suite\n"
+	    "USAGE: %s <part> [<part_2>[<part_N>[...]]]\n",
+	    progname
+	    );
+}
+
+void
+print_error(void)
+{
+	fprintf(stderr, "ERROR: %s\n", mm_error_string());
+}
+
+int
+main(int argc, char **argv)
+{
+	MM_CTX *ctx;
+	struct mm_mimepart *part;
+	char *data;
+	size_t length;
+	int i;
+	
+	progname = argv[0];
+
+	if (argc < 2) {
+		usage();
+		exit(1);
+	}	
+
+	mm_library_init();
+
+	ctx = mm_context_new();
+
+	part = mm_mimepart_new();
+	mm_context_attachpart(ctx, part);
+	mm_envelope_setheader(ctx, "From", "foo@bar.com");
+
+	for (i=1; i < argc; i++) {
+		part = mm_mimepart_fromfile(argv[i]);
+		if (part == NULL) {
+			print_error();
+			exit(1);
+		}
+		mm_context_attachpart(ctx, part);
+	}
+
+	if (mm_context_flatten(ctx, &data, &length, 0) == -1) {
+		print_error();
+		exit(1);
+	}
+
+	printf("%s", data);
+
+	exit(0);
+}
diff --git a/main/minimime/tests/messages/CVS/Entries b/main/minimime/tests/messages/CVS/Entries
new file mode 100644
index 0000000000..481ac7fda6
--- /dev/null
+++ b/main/minimime/tests/messages/CVS/Entries
@@ -0,0 +1,8 @@
+/test1.txt/1.1/Wed Jun  9 09:44:47 2004//
+/test2.txt/1.1/Wed Jun  9 09:44:47 2004//
+/test3.txt/1.1/Wed Jun  9 09:44:47 2004//
+/test4.txt/1.1/Wed Jun  9 09:44:47 2004//
+/test5.txt/1.1/Wed Jun  9 09:44:47 2004//
+/test6.txt/1.1/Wed Jun  9 09:44:47 2004//
+/test7.txt/1.1/Wed Jun  9 09:44:47 2004//
+D
diff --git a/main/minimime/tests/messages/CVS/Repository b/main/minimime/tests/messages/CVS/Repository
new file mode 100644
index 0000000000..b91caac65f
--- /dev/null
+++ b/main/minimime/tests/messages/CVS/Repository
@@ -0,0 +1 @@
+minimime/src/tests/messages
diff --git a/main/minimime/tests/messages/CVS/Root b/main/minimime/tests/messages/CVS/Root
new file mode 100644
index 0000000000..4c379009cb
--- /dev/null
+++ b/main/minimime/tests/messages/CVS/Root
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.minimime.berlios.de:/cvsroot/minimime
diff --git a/main/minimime/tests/messages/test1.txt b/main/minimime/tests/messages/test1.txt
new file mode 100644
index 0000000000..2c24b1972a
--- /dev/null
+++ b/main/minimime/tests/messages/test1.txt
@@ -0,0 +1,50 @@
+Return-Path: <rezine@hannover.ccc.de>
+X-Original-To: test@mistrust.net
+Delivered-To: rezine@hannover.ccc.de
+Received: from thinktank.niedersachsen.de (thinktank.niedersachsen.de [195.37.192.218])
+	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
+	(Client did not present a certificate)
+	by gost.hannover.ccc.de (Postfix) with ESMTP id 90EDEBBF2
+	for <test@mistrust.net>; Sun, 24 Aug 2003 16:05:29 +0200 (CEST)
+Date: Sun, 24 Aug 2003 15:49:15 +0200
+From: Jann Fischer <rezine@hannover.ccc.de>
+To: test@mistrust.net
+Subject: Test
+Message-Id: <20030824154915.12cb3f85.rezine@hannover.ccc.de>
+Organization: Chaos Computer Club Hannover
+X-Mailer: Who-Cares 5.23
+Mime-Version: 1.0
+Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";
+ boundary="=.2S1ZDSX8ir3lbt"
+
+--=.2S1ZDSX8ir3lbt
+Content-Type: application/pgp-encrypted
+
+Version: 1
+
+--=.2S1ZDSX8ir3lbt
+Content-Type: application/octet-stream
+
+-----BEGIN PGP MESSAGE-----
+Version: GnuPG v1.2.2 (OpenBSD)
+
+hQEOA3TvLJ6KBZLBEAP/cl4DiRH5+8S7/kP2BIVdDavHJ9cwHh8awGoyddhMKPJ3
+2558r8MKT0Etjpo649O5WUvT5Z2Jcp12+dTPlAC1kvoIjNNk8+Oe3JCREz/pXYnm
+5ANSCThVYSS34jppgT3NsqiV8sQK3e+Nq/NY7SoKVAV37L0fU4HHozcDZfXqOLsE
+AJgfxjRjjEazPHmgTTu8Pnt5gmlxyP35Yy0pl+gJmboG3Cn5WBcD/rrQf8oiwrB6
+Vak2Hk9TNU7hDO2IRolz4wUfkId47SK31PdhDLBnNPWn6LNWHd+G4hI97e+xeqLW
+dpG7Li5CdP0gfuHx2ux9Y5buWVVtqPhdDUlRaIBfM7Fu0sENAeREANAtdPHn0yTf
+V4T5NvImY3gXgLST5wNm3Ft+4nIDZrcnSy04x4faTLFBOcY95W0O1omILHyN5Ste
+Le5NhXhQRKyl6ebXtIvEOsJOK4NT6JaUF20l4yvgf0AnetG9Pbzc37mRqmE6Fb8O
+h/De3iqw7dexaQc+LaD3XTmvPyyDK2aI4cXOdc9WOzrWR7+9iEiY32SFsQWMRMZJ
+GdKkGk22K2p7MPFaU3MHQ3Af+WCN4mRW8SurFxH1379Y5e1IPfTeL6OBkj8hHilX
+Y+Y7523ADiStJsONIZPBXJVhZ/VAJ+jL+T1/Xht10VsJcWAY8A9tP+jNgyg8dh+J
+JgWVchQOZipdftYwR7w5GkhL2Nc5NYBJBg4DFd9g2nnwuzaAKYO5kMTzEmm9KOYq
+0DC5ukok4SGDwWPUIogNHmaSnFr723hYuJC7DwSxHXVG3VxxF78u1gzEnImOWRsf
+1RzGb7b8Lf7Rj98H5cNiZ55BXAmidjm7WghCLsT2GvxviqQoRIJ2h/WHM0Bl2v3F
+Dpa3N01p2NIIgQLRoXXyBCZTwGOH4y9nBj5PU7vzzSrMweHHt1BwHXcqItCyWFXX
+2tj4//Dyw3Lw/L5xGxYRP1Q=
+=fSLd
+-----END PGP MESSAGE-----
+
+--=.2S1ZDSX8ir3lbt--
diff --git a/main/minimime/tests/messages/test2.txt b/main/minimime/tests/messages/test2.txt
new file mode 100644
index 0000000000..2c24b1972a
--- /dev/null
+++ b/main/minimime/tests/messages/test2.txt
@@ -0,0 +1,50 @@
+Return-Path: <rezine@hannover.ccc.de>
+X-Original-To: test@mistrust.net
+Delivered-To: rezine@hannover.ccc.de
+Received: from thinktank.niedersachsen.de (thinktank.niedersachsen.de [195.37.192.218])
+	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
+	(Client did not present a certificate)
+	by gost.hannover.ccc.de (Postfix) with ESMTP id 90EDEBBF2
+	for <test@mistrust.net>; Sun, 24 Aug 2003 16:05:29 +0200 (CEST)
+Date: Sun, 24 Aug 2003 15:49:15 +0200
+From: Jann Fischer <rezine@hannover.ccc.de>
+To: test@mistrust.net
+Subject: Test
+Message-Id: <20030824154915.12cb3f85.rezine@hannover.ccc.de>
+Organization: Chaos Computer Club Hannover
+X-Mailer: Who-Cares 5.23
+Mime-Version: 1.0
+Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";
+ boundary="=.2S1ZDSX8ir3lbt"
+
+--=.2S1ZDSX8ir3lbt
+Content-Type: application/pgp-encrypted
+
+Version: 1
+
+--=.2S1ZDSX8ir3lbt
+Content-Type: application/octet-stream
+
+-----BEGIN PGP MESSAGE-----
+Version: GnuPG v1.2.2 (OpenBSD)
+
+hQEOA3TvLJ6KBZLBEAP/cl4DiRH5+8S7/kP2BIVdDavHJ9cwHh8awGoyddhMKPJ3
+2558r8MKT0Etjpo649O5WUvT5Z2Jcp12+dTPlAC1kvoIjNNk8+Oe3JCREz/pXYnm
+5ANSCThVYSS34jppgT3NsqiV8sQK3e+Nq/NY7SoKVAV37L0fU4HHozcDZfXqOLsE
+AJgfxjRjjEazPHmgTTu8Pnt5gmlxyP35Yy0pl+gJmboG3Cn5WBcD/rrQf8oiwrB6
+Vak2Hk9TNU7hDO2IRolz4wUfkId47SK31PdhDLBnNPWn6LNWHd+G4hI97e+xeqLW
+dpG7Li5CdP0gfuHx2ux9Y5buWVVtqPhdDUlRaIBfM7Fu0sENAeREANAtdPHn0yTf
+V4T5NvImY3gXgLST5wNm3Ft+4nIDZrcnSy04x4faTLFBOcY95W0O1omILHyN5Ste
+Le5NhXhQRKyl6ebXtIvEOsJOK4NT6JaUF20l4yvgf0AnetG9Pbzc37mRqmE6Fb8O
+h/De3iqw7dexaQc+LaD3XTmvPyyDK2aI4cXOdc9WOzrWR7+9iEiY32SFsQWMRMZJ
+GdKkGk22K2p7MPFaU3MHQ3Af+WCN4mRW8SurFxH1379Y5e1IPfTeL6OBkj8hHilX
+Y+Y7523ADiStJsONIZPBXJVhZ/VAJ+jL+T1/Xht10VsJcWAY8A9tP+jNgyg8dh+J
+JgWVchQOZipdftYwR7w5GkhL2Nc5NYBJBg4DFd9g2nnwuzaAKYO5kMTzEmm9KOYq
+0DC5ukok4SGDwWPUIogNHmaSnFr723hYuJC7DwSxHXVG3VxxF78u1gzEnImOWRsf
+1RzGb7b8Lf7Rj98H5cNiZ55BXAmidjm7WghCLsT2GvxviqQoRIJ2h/WHM0Bl2v3F
+Dpa3N01p2NIIgQLRoXXyBCZTwGOH4y9nBj5PU7vzzSrMweHHt1BwHXcqItCyWFXX
+2tj4//Dyw3Lw/L5xGxYRP1Q=
+=fSLd
+-----END PGP MESSAGE-----
+
+--=.2S1ZDSX8ir3lbt--
diff --git a/main/minimime/tests/messages/test3.txt b/main/minimime/tests/messages/test3.txt
new file mode 100644
index 0000000000..082b6fb61a
--- /dev/null
+++ b/main/minimime/tests/messages/test3.txt
@@ -0,0 +1,12 @@
+From: Jann Fischer <rezine@criminology.de>
+To: cipherlist <cipherlist@mistrust.net>
+Subject: Foobar
+Date: blahblah
+MIME-Version: 1.0 (MiniMIME)
+Content-Type: multipart/mixed; boundary="abcd"
+
+--abcd
+Content-Type: plain/text;
+
+This is a test :->
+--abcd--
diff --git a/main/minimime/tests/messages/test4.txt b/main/minimime/tests/messages/test4.txt
new file mode 100644
index 0000000000..a08246939d
--- /dev/null
+++ b/main/minimime/tests/messages/test4.txt
@@ -0,0 +1,168 @@
+X-Envelope-From: <511-bounces@hannover.ccc.de>
+X-Envelope-To: <rezine@criminology.de>
+X-Delivery-Time: 1070263752
+Received: from gost.hannover.ccc.de (hannover.ccc.de [62.48.71.164])
+	by mailin.webmailer.de (8.12.10/8.12.10) with ESMTP id hB17TAUR020052
+	for <rezine@criminology.de>; Mon, 1 Dec 2003 08:29:10 +0100 (MET)
+Received: from localhost.hannover.ccc.de (unknown [127.0.0.1])
+	by gost.hannover.ccc.de (Postfix) with ESMTP
+	id 092C8BC81; Mon,  1 Dec 2003 08:29:23 +0100 (CET)
+X-Original-To: 511@hannover.ccc.de
+Delivered-To: 511@hannover.ccc.de
+Received: from sbapp3 (unknown [211.157.36.9])
+	by gost.hannover.ccc.de (Postfix) with ESMTP id 3F93ABC7C
+	for <511@hannover.ccc.de>; Mon,  1 Dec 2003 08:29:12 +0100 (CET)
+From: "Vanessa Lintner" <reply@seekercenter.net>
+To: 511@hannover.ccc.de
+Date: Mon, 1 Dec 2003 15:30:57 +0800
+X-Priority: 3
+X-Library: Indy 8.0.25
+Message-Id: <20031201072912.3F93ABC7C@gost.hannover.ccc.de>
+Subject: [CCC511] http://lists.hannover.ccc.de
+X-BeenThere: 511@hannover.ccc.de
+X-Mailman-Version: 2.1.2
+Precedence: list
+Reply-To: Vanessa Lintner <vanessa@seekercenter.net>,
+        Oeffentliche Mailingliste des C3H <511@hannover.ccc.de>
+List-Id: Oeffentliche Mailingliste des C3H  <511.hannover.ccc.de>
+List-Unsubscribe: <http://hannover.ccc.de/mailman/listinfo/511>,
+	<mailto:511-request@hannover.ccc.de?subject=unsubscribe>
+List-Post: <mailto:511@hannover.ccc.de>
+List-Help: <mailto:511-request@hannover.ccc.de?subject=help>
+List-Subscribe: <http://hannover.ccc.de/mailman/listinfo/511>,
+	<mailto:511-request@hannover.ccc.de?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============14807035762661644=="
+Sender: 511-bounces@hannover.ccc.de
+Errors-To: 511-bounces@hannover.ccc.de
+
+--===============14807035762661644==
+Content-Type: text/html;
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<style type="text/css">
+.stbtm {
+	BACKGROUND-COLOR:#cecbde; BORDER-BOTTOM: #665b8e 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-RIGHT: #665b8e 1px solid; BORDER-TOP: #ffffff 1px solid; COLOR: #000000; FONT-SIZE: 12pt; HEIGHT: 26px; WIDTH: 120px; clip:        rect(   )}
+.stedit {
+	 background-color:#484C68; white-space: nowrap; border: #000000; BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; FONT-SIZE: 10pt; color: #CCCCCC; font-weight: bold}
+
+</style>
+</head>
+<BODY leftMargin=0 onload="" topMargin=0 marginheight="0" marginwidth="0" bgcolor="#FFFFFF">
+  <table border="0" cellspacing="0" cellpadding="0" width="580">
+    <tr> 
+      <td width="20" rowspan="2">&nbsp;</td>
+      <td colspan="3"> 
+        <table border="0" cellspacing="0" cellpadding="0" align="left" width="560">
+          <tr> 
+            <td width="330" height="307"> 
+              <table width="330" border="0" cellspacing="0" cellpadding="0" background="http://www.imagespool.com/skbmp/letter_01.gif" height="307">
+                <tr> 
+                  <td> 
+                    <p> <font face=Arial size=2> </font> <font face=Arial size=2><font face="Verdana, Arial, Helvetica, sans-serif" color="#000000">Hello,<br>
+                      <br>
+                      I have visited <a href='http://lists.hannover.ccc.de'>lists.hannover.ccc.de</a> 
+                      and noticed that your website is not listed on some search 
+                      engines. I am sure that through our service the number of 
+                      people who visit your website will definitely increase. 
+                      <a target=_blank href="http://www.seekercenter.net/index.php">SeekerCenter</a> 
+                      is a unique technology that instantly submits your website 
+                      to over 500,000 search engines and directories -- a really 
+                      low-cost and effective way to advertise your site. For more 
+                      details please go to <a target=_blank href="http://www.seekercenter.net/index.php">SeekerCenter.net</a>.<br>
+                      <br>
+                      Give your website maximum exposure today!<br>
+                      Looking forward to hearing from you.<br>
+                      <br>
+                      </font></font> 
+                    <table border=0 width=100%>
+                      <tr> 
+                        <td width=50%> <font face="Arial" color="#000000" size="2">Best 
+                          Regards,<br>
+                          Vanessa Lintner<br>
+                          Sales &amp; Marketing <br>
+                          <a target=_blank href="http://www.seekercenter.net/index.php">www.SeekerCenter.net</a></font> 
+                  <TD><td width=50%>
+                   <div align="center" valign=middle>
+                   <form target=_blank action=http://www.seekercenter.net method=POST>
+                          <input type="submit" name="Submit" value="Signup Now!!!" class="stbtm">
+                   </form>
+                        </div>
+                  </TD>
+                      </tr>
+                    </table>
+                  </td>
+                </tr>
+              </table>
+            </td>
+            <td width="250" height="64" valign="middle"> 
+              <table width="230" border="0" cellspacing="0" cellpadding="0">
+                <tr> 
+                  <td colspan="3" height="2"></td>
+                </tr>
+                <tr> 
+                  <td colspan="3"><img src="http://report.imagespool.com/report_email.php?s=1&e=511@hannover.ccc.de" border=0 width=0 height=0> 
+                    <p><img src="http://www.imagespool.com/skbmp/letter_04.gif" height="12"></p>
+                  </td>
+                </tr>
+                <tr> 
+                  <td colspan="3"><img src="http://www.imagespool.com/skbmp/letter_05.gif" height="127"><img src="http://ww2.imagespool.com/1/9/b/0r066.jpg" width="177" height="127"><img src="http://www.imagespool.com/skbmp/letter_07.gif" width="33" height="127"></td>
+                </tr>
+                <tr> 
+                  <td colspan="3" height="92" background="http://www.imagespool.com/skbmp/letter_08.gif" valign="bottom"> 
+                    <table width="230" border="0" cellspacing="0" cellpadding="0" height="92">
+                      <tr> 
+                        <td width="36" height="43">&nbsp;</td>
+                        <td width="157" height="43">&nbsp;</td>
+                        <td width="134" height="43">&nbsp;</td>
+                      </tr>
+                      <tr> 
+                        <td width="36" height="2">&nbsp;</td>
+                        <td width="157" height="2">&nbsp;</td>
+                        <td width="134" height="2">&nbsp;</td>
+                      </tr>
+                    </table>
+                  </td>
+                </tr>
+                <tr> </tr>
+              </table>
+            </td>
+          </tr>
+        </table>
+      </td>
+    </tr>
+    <tr> 
+      <td colspan="3"> 
+        <table width="560" border="0" cellspacing="0" cellpadding="1" bordercolor="0">
+          <tr> 
+            <td>&nbsp;</td>
+          </tr>
+          <tr> 
+            <td bgcolor="#EFEFEF"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">You 
+              are receiving this email because you opted-in to receive special 
+              offers through a partner website. If you feel that you received 
+              this email in error or do not wish to receive additional special 
+              offers, please enter your email address here and click the button 
+              of &quot;Remove Me&quot;: <a href="http://www.seekercenter.net/remove.php?email=511@hannover.ccc.de"> 
+              <img src="http://www.imagespool.com/skbmp/removeme.gif" width="73" height="17" border="0"></a> 
+              </font></td>
+          </tr>
+        </table>
+      </td>
+    </tr>
+  </table>
+</body>
+</html>
+
+--===============14807035762661644==
+Content-Type: text/plain; charset="iso-8859-1"
+MIME-Version: 1.0
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: inline
+
+_______________________________________________
+511 mailing list
+511@hannover.ccc.de
+--===============14807035762661644==--
diff --git a/main/minimime/tests/messages/test5.txt b/main/minimime/tests/messages/test5.txt
new file mode 100644
index 0000000000..5e4cdb17df
--- /dev/null
+++ b/main/minimime/tests/messages/test5.txt
@@ -0,0 +1,44 @@
+Return-Path: <rezine@criminology.de>
+X-Original-To: rezine@mistrust.net
+Delivered-To: rezine@hannover.ccc.de
+Received: from thinktank.niedersachsen.de (thinktank.niedersachsen.de [195.37.192.218])
+	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
+	(Client did not present a certificate)
+	by gost.hannover.ccc.de (Postfix) with ESMTP id 79E9BBC7C
+	for <rezine@mistrust.net>; Wed, 24 Dec 2003 13:35:36 +0100 (CET)
+Received: from thinktank.niedersachsen.de (localhost [127.0.0.1])
+	by thinktank.niedersachsen.de (8.12.9/8.12.2) with SMTP id hBOCZBFU029588
+	for <rezine@mistrust.net>; Wed, 24 Dec 2003 13:35:11 +0100 (CET)
+Date: Wed, 24 Dec 2003 13:35:11 +0100
+From: Jann Fischer <rezine@criminology.de>
+To: rezine@mistrust.net
+Subject: Test
+Message-Id: <20031224133511.5f4b6d9b.rezine@criminology.de>
+X-Mailer: Who Cares 5.23
+Mime-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="Multipart_Wed__24_Dec_2003_13:35:11_+0100_00148800"
+
+This is a multi-part message in MIME format.
+
+--Multipart_Wed__24_Dec_2003_13:35:11_+0100_00148800
+Content-Type: text/plain; charset=US-ASCII
+Content-Transfer-Encoding: 7bit
+
+Test
+
+-- 
+Be careful who you follow.
+0x6D839821 | FA8C 3663 9906 D8C3 AC16  F7C4 66E0 F351 6D83 9821
+
+--Multipart_Wed__24_Dec_2003_13:35:11_+0100_00148800
+Content-Type: application/octet-stream;
+ name="bar.c"
+Content-Disposition: attachment;
+ filename="bar.c"
+Content-Transfer-Encoding: base64
+
+I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkCm1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQp7CgkJ
+cHJpbnRmKCIlc1xuIiwgYXJndlswXSk7Cn0K
+
+--Multipart_Wed__24_Dec_2003_13:35:11_+0100_00148800--
diff --git a/main/minimime/tests/messages/test6.txt b/main/minimime/tests/messages/test6.txt
new file mode 100644
index 0000000000..fb4e7a14cd
--- /dev/null
+++ b/main/minimime/tests/messages/test6.txt
@@ -0,0 +1,12 @@
+From: Me
+Date: Foobar
+To: There
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="abcde"
+
+--abcde
+Content-Type: text/plain
+
+Blah blah
+Blah
+--abcde--
diff --git a/main/minimime/tests/messages/test7.txt b/main/minimime/tests/messages/test7.txt
new file mode 100644
index 0000000000..1cda11e3f8
--- /dev/null
+++ b/main/minimime/tests/messages/test7.txt
@@ -0,0 +1,64 @@
+Return-Path: MAILER-DAEMON
+Received: from chaos.verfassungsschutz.de (localhost [IPv6:::1])
+	by chaos.verfassungsschutz.de (8.12.7/8.12.2) with ESMTP id h2EKV1oM031761
+	for <jfi@chaos.verfassungsschutz.de>; Fri, 14 Mar 2003 21:31:18 +0100 (CET)
+Received: from localhost (localhost)
+	by chaos.verfassungsschutz.de (8.12.7/8.12.2/Submit) id h2BNU1vr029177;
+	Wed, 12 Mar 2003 00:35:01 +0100 (CET)
+Date: Wed, 12 Mar 2003 00:35:01 +0100 (CET)
+From: Mail Delivery Subsystem <MAILER-DAEMON@chaos.verfassungsschutz.de>
+Message-Id: <200303112335.h2BNU1vr029177@chaos.verfassungsschutz.de>
+To: jfi@chaos.verfassungsschutz.de
+MIME-Version: 1.0
+Content-Type: multipart/report; report-type=delivery-status;
+	boundary="h2BNU1vr029177.1047425701/chaos.verfassungsschutz.de"
+Subject: Warning: could not send message for past 4 hours
+Auto-Submitted: auto-generated (warning-timeout)
+
+This is a MIME-encapsulated message
+
+--h2BNU1vr029177.1047425701/chaos.verfassungsschutz.de
+
+    **********************************************
+    **      THIS IS A WARNING MESSAGE ONLY      **
+    **  YOU DO NOT NEED TO RESEND YOUR MESSAGE  **
+    **********************************************
+
+The original message was received at Tue, 11 Mar 2003 20:18:36 +0100 (CET)
+from jfi@localhost
+
+   ----- Transcript of session follows -----
+451 4.4.1 reply: read error from localhost
+rezine@kommunism.us... Deferred: Connection timed out with localhost
+Warning: message still undelivered after 4 hours
+Will keep trying until message is 5 days old
+
+--h2BNU1vr029177.1047425701/chaos.verfassungsschutz.de
+Content-Type: message/delivery-status
+
+Reporting-MTA: dns; chaos.verfassungsschutz.de
+Arrival-Date: Tue, 11 Mar 2003 20:18:36 +0100 (CET)
+
+Final-Recipient: RFC822; rezine@kommunism.us
+Action: delayed
+Status: 4.4.2
+Last-Attempt-Date: Wed, 12 Mar 2003 00:35:01 +0100 (CET)
+Will-Retry-Until: Sun, 16 Mar 2003 20:18:36 +0100 (CET)
+
+--h2BNU1vr029177.1047425701/chaos.verfassungsschutz.de
+Content-Type: message/rfc822
+
+Return-Path: <jfi>
+Received: (from jfi@localhost)
+	by chaos.verfassungsschutz.de (8.12.7/8.12.2/Submit) id h2BJIawm025679
+	for rezine@kommunism.us; Tue, 11 Mar 2003 20:18:36 +0100 (CET)
+Date: Tue, 11 Mar 2003 20:18:36 +0100 (CET)
+From: Jann Fischer <jfi>
+Message-Id: <200303111918.h2BJIawm025679@chaos.verfassungsschutz.de>
+To: rezine@kommunism.us
+Subject: Test
+
+Test
+
+--h2BNU1vr029177.1047425701/chaos.verfassungsschutz.de--
+
diff --git a/main/minimime/tests/parse.c b/main/minimime/tests/parse.c
new file mode 100644
index 0000000000..805bd2cb18
--- /dev/null
+++ b/main/minimime/tests/parse.c
@@ -0,0 +1,231 @@
+/*
+ * Copyright (c) 2004 Jann Fischer. 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.
+ * 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. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ */
+
+/*
+ * MiniMIME test program - parse.c
+ *
+ * Parses any given messages
+ */
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <err.h>
+
+#include "mm.h"
+
+const char *progname;
+
+void
+usage(void)
+{
+	fprintf(stderr,
+	    "MiniMIME test suite\n"
+	    "Usage: %s [-m] <filename>\n\n"
+	    "   -m            : use memory based scanning\n\n",
+	    progname
+	);
+	exit(1);
+}
+
+int
+main(int argc, char **argv)
+{
+	MM_CTX *ctx;
+	struct mm_mimeheader *header, *lastheader = NULL;
+	struct mm_mimepart *part;
+	struct mm_content *ct;
+	int parts, i;
+	struct stat st;
+	int fd;
+	char *buf;
+	int scan_mode = 0;
+
+	progname = strdup(argv[0]);
+
+	while ((i = getopt(argc, argv, "m")) != -1) {
+		switch(i) {
+		case 'm':
+			scan_mode = 1;
+			break;
+		default:
+			usage();
+		}
+	}
+
+	argc -= optind;
+	argv += optind;
+
+	if (argc < 1) {
+		usage();
+	}
+	
+#ifdef __HAVE_LEAK_DETECTION
+	/* Initialize memory leak detection if compiled in */
+	MM_leakd_init();
+#endif
+
+	/* Initialize MiniMIME library */
+	mm_library_init();
+
+	/* Register all default codecs (base64/qp) */
+	mm_codec_registerdefaultcodecs();
+
+	do {
+		/* Create a new context */
+		ctx = mm_context_new();
+
+		/* Parse a file into our context */
+		if (scan_mode == 0) {
+			i = mm_parse_file(ctx, argv[0], MM_PARSE_LOOSE, 0);
+		} else {
+			if (stat(argv[0], &st) == -1) {
+				err(1, "stat");
+			}
+	
+			if ((fd = open(argv[0], O_RDONLY)) == -1) {
+				err(1, "open");
+			}
+
+			buf = (char *)malloc(st.st_size);
+			if (buf == NULL) {
+				err(1, "malloc");
+			}	
+
+			if (read(fd, buf, st.st_size) != st.st_size) {
+				err(1, "read");
+			}
+
+			close(fd);
+			buf[st.st_size] = '\0';
+			
+			i = mm_parse_mem(ctx, buf, MM_PARSE_LOOSE, 0);
+		}
+
+		if (i == -1 || mm_errno != MM_ERROR_NONE) {	
+			printf("ERROR: %s at line %d\n", mm_error_string(), mm_error_lineno());
+			exit(1);
+		}
+
+		/* Get the number of MIME parts */
+		parts = mm_context_countparts(ctx);
+		if (parts == 0) {
+			printf("ERROR: got zero MIME parts, huh\n");
+			exit(1);
+		} else {
+			if (mm_context_iscomposite(ctx)) {
+				printf("Got %d MIME parts\n", parts - 1);
+			} else {
+				printf("Flat message (not multipart)\n");
+			}
+		}
+
+		/* Get the main MIME part */
+		part = mm_context_getpart(ctx, 0);
+		if (part == NULL) {
+			fprintf(stderr, "Could not get envelope part\n");
+			exit(1);
+		}
+
+		printf("Printing envelope headers:\n");
+		/* Print all headers */
+		lastheader = NULL;
+		while ((header = mm_mimepart_headers_next(part, &lastheader)) != NULL)
+			printf("%s: %s\n", header->name, header->value);
+
+		printf("%s\n", mm_content_tostring(part->type));
+		printf("\n");
+		
+		ct = part->type;
+		assert(ct != NULL);
+
+		if (mm_context_iscomposite(ctx) == 0) {
+			printf("Printing body part for FLAT message:\n");
+			part = mm_context_getpart(ctx, 0);
+			printf("%s", part->body);
+		}	
+
+		/* Loop through all MIME parts beginning with 1 */
+		for (i = 1; i < mm_context_countparts(ctx); i++) {
+			char *decoded;
+
+			printf("Printing headers for MIME part %d\n", i);
+
+			/* Get the current MIME entity */
+			part = mm_context_getpart(ctx, i);
+			if (part == NULL) {
+				fprintf(stderr, "Should have %d parts but "
+				    "couldn't retrieve part %d",
+				    mm_context_countparts(ctx), i);
+				exit(1);
+			}
+
+			/* Print all headers */
+			lastheader = NULL;
+			while ((header = mm_mimepart_headers_next(part, &lastheader)) != NULL)
+				printf("%s: %s\n", header->name, header->value);
+
+			printf("%s\n", mm_content_tostring(part->type));
+
+			/* Print MIME part body */
+			printf("\nPRINTING MESSAGE BODY (%d):\n%s\n", i, part->opaque_body);
+			decoded = mm_mimepart_decode(part);
+			if (decoded != NULL) {
+				printf("DECODED:\n%s\n", decoded);
+				free(decoded);
+			}
+		}
+		
+		printf("RECONSTRUCTED MESSAGE:\n");
+
+		do {
+			char *env;
+			size_t env_len;
+
+			mm_context_flatten(ctx, &env, &env_len, 0);
+			printf("%s", env);
+			free(env);
+
+		} while (0);	
+
+		mm_context_free(ctx);
+		ctx = NULL;
+
+#ifdef __HAVE_LEAK_DETECTION
+		MM_leakd_printallocated();
+#endif
+
+	} while (0);
+
+	return 0;
+}
diff --git a/main/strcompat.c b/main/strcompat.c
index f6e3bfa072..dbad22b757 100644
--- a/main/strcompat.c
+++ b/main/strcompat.c
@@ -341,3 +341,131 @@ int getloadavg(double *list, int nelem)
 }
 #endif /* linux */
 #endif /* !HAVE_GETLOADAVG */
+
+
+/*
+ * For strlcat()
+ *
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+ * 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.
+ * 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 without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``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.
+ */
+
+/*
+ * Appends src to string dst of size siz (unlike strncat, siz is the
+ * full size of dst, not space left).  At most siz-1 characters
+ * will be copied.  Always NUL terminates (unless siz <= strlen(dst)).
+ * Returns strlen(src) + MIN(siz, strlen(initial dst)).
+ * If retval >= siz, truncation occurred.
+ */
+#ifndef HAVE_STRLCAT
+size_t strlcat(char *dst, const char *src, size_t siz)
+{
+	register char *d = dst;
+	register const char *s = src;
+	register size_t n = siz;
+	size_t dlen;
+
+	/* Find the end of dst and adjust bytes left but don't go past end */
+	while (n-- != 0 && *d != '\0')
+		d++;
+	dlen = d - dst;
+	n = siz - dlen;
+
+	if (n == 0)
+		return dlen + strlen(s);
+
+	while (*s != '\0') {
+		if (n != 1) {
+			*d++ = *s;
+			n--;
+		}
+		s++;
+	}
+	*d = '\0';
+
+	return dlen + (s - src);	/* count does not include NUL */
+}
+#endif /* HAVE_STRLCAT */
+
+/*
+ * For strlcpy()
+ *
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+ * 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.
+ * 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 without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``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.
+ */
+
+/*
+ * Copy src to string dst of size siz.  At most siz-1 characters
+ * will be copied.  Always NUL terminates (unless siz == 0).
+ * Returns strlen(src); if retval >= siz, truncation occurred.
+ */
+#ifndef HAVE_STRLCPY
+size_t strlcpy(char *dst, const char *src, size_t siz)
+{
+	register char *d = dst;
+	register const char *s = src;
+	register size_t n = siz;
+
+	/* Copy as many bytes as will fit */
+	if (n != 0 && --n != 0) {
+		do {
+			if ((*d++ = *s++) == 0)
+				break;
+		} while (--n != 0);
+	}
+
+	/* Not enough room in dst, add NUL and traverse rest of src */
+	if (n == 0) {
+		if (siz != 0)
+			*d = '\0';		/* NUL-terminate dst */
+		while (*s++)
+			;
+	}
+
+	return s - src - 1;	/* count does not include NUL */
+}
+#endif /* HAVE_STRLCPY */
-- 
GitLab