From ab64c6117dcacb93c15d613afa01068d7967c170 Mon Sep 17 00:00:00 2001 From: lars Date: Sun, 8 Jan 2006 06:00:22 +0000 Subject: [PATCH] removed previous change from 3.0.1-tag added 3.0.2 release --- ezmlm-web-3.0.1/lang/de.hdf | 2 +- ezmlm-web-3.0.1/lang/en.hdf | 2 +- ezmlm-web-3.0.2/INSTALL | 149 ++ ezmlm-web-3.0.2/INSTALL.clearsilver | 34 + ezmlm-web-3.0.2/README | 303 ++++ ezmlm-web-3.0.2/TODO | 12 + ezmlm-web-3.0.2/UPGRADING | 71 + ezmlm-web-3.0.2/changelog | 109 ++ ezmlm-web-3.0.2/copyright | 30 + ezmlm-web-3.0.2/css/default.css | 325 +++++ .../debian-related/DEBIAN/conffiles | 1 + ezmlm-web-3.0.2/debian-related/DEBIAN/control | 20 + .../debian-related/DEBIAN/postinst | 3 + ezmlm-web-3.0.2/debian-related/DEBIAN/postrm | 3 + ezmlm-web-3.0.2/debian-related/DEBIAN/prerm | 3 + ezmlm-web-3.0.2/debian-related/README.Debian | 54 + .../debian-related/changelog.Debian | 7 + .../debian-related/ezmlm-web-make-suid | 33 + ezmlm-web-3.0.2/debian-related/index.c | 10 + .../debian-related/man/ezmlm-web-make-suid.1 | 25 + ezmlm-web-3.0.2/ezmlm-web-3.0.1.patch | 30 + ezmlm-web-3.0.2/ezmlm-web.cgi | 1270 +++++++++++++++++ ezmlm-web-3.0.2/ezmlmwebrc | 63 + ezmlm-web-3.0.2/htaccess.sample | 7 + ezmlm-web-3.0.2/index.c | 25 + ezmlm-web-3.0.2/lang/de.hdf | 224 +++ ezmlm-web-3.0.2/lang/en.hdf | 224 +++ ezmlm-web-3.0.2/lang/jp.pm | 187 +++ ezmlm-web-3.0.2/scripts/check_languages.sh | 26 + ezmlm-web-3.0.2/scripts/debian.sh | 76 + ezmlm-web-3.0.2/spec/actions-spec.txt | 40 + ezmlm-web-3.0.2/spec/hdf-spec.txt | 47 + ezmlm-web-3.0.2/template/config_admin.cs | 39 + ezmlm-web-3.0.2/template/config_all.cs | 163 +++ ezmlm-web-3.0.2/template/config_archive.cs | 42 + ezmlm-web-3.0.2/template/config_main.cs | 50 + ezmlm-web-3.0.2/template/config_posting.cs | 73 + ezmlm-web-3.0.2/template/config_processing.cs | 65 + .../template/config_subscription.cs | 42 + ezmlm-web-3.0.2/template/footer.cs | 8 + ezmlm-web-3.0.2/template/form_common.cs | 9 + ezmlm-web-3.0.2/template/header.cs | 25 + .../template/help_tag_substitution.cs | 21 + ezmlm-web-3.0.2/template/list_create.cs | 40 + ezmlm-web-3.0.2/template/list_delete.cs | 20 + ezmlm-web-3.0.2/template/list_select.cs | 39 + ezmlm-web-3.0.2/template/macros.cs | 53 + ezmlm-web-3.0.2/template/main.cs | 21 + ezmlm-web-3.0.2/template/modpath_info.cs | 20 + ezmlm-web-3.0.2/template/nav.cs | 73 + ezmlm-web-3.0.2/template/subscribers.cs | 135 ++ ezmlm-web-3.0.2/template/textfile_edit.cs | 25 + ezmlm-web-3.0.2/template/textfiles.cs | 39 + ezmlm-web-3.0.2/webusers.sample | 5 + packages/ezmlm-web-3.0.1.tar.gz | Bin 46958 -> 43617 bytes packages/ezmlm-web-3.0.2.tar.gz | Bin 0 -> 47495 bytes packages/ezmlm-web_3.0-1_all.deb | Bin 43776 -> 43752 bytes packages/ezmlm-web_3.0-2_all.deb | Bin 0 -> 43824 bytes 58 files changed, 4420 insertions(+), 2 deletions(-) create mode 100644 ezmlm-web-3.0.2/INSTALL create mode 100644 ezmlm-web-3.0.2/INSTALL.clearsilver create mode 100644 ezmlm-web-3.0.2/README create mode 100644 ezmlm-web-3.0.2/TODO create mode 100644 ezmlm-web-3.0.2/UPGRADING create mode 100644 ezmlm-web-3.0.2/changelog create mode 100644 ezmlm-web-3.0.2/copyright create mode 100644 ezmlm-web-3.0.2/css/default.css create mode 100644 ezmlm-web-3.0.2/debian-related/DEBIAN/conffiles create mode 100644 ezmlm-web-3.0.2/debian-related/DEBIAN/control create mode 100755 ezmlm-web-3.0.2/debian-related/DEBIAN/postinst create mode 100755 ezmlm-web-3.0.2/debian-related/DEBIAN/postrm create mode 100755 ezmlm-web-3.0.2/debian-related/DEBIAN/prerm create mode 100644 ezmlm-web-3.0.2/debian-related/README.Debian create mode 100644 ezmlm-web-3.0.2/debian-related/changelog.Debian create mode 100755 ezmlm-web-3.0.2/debian-related/ezmlm-web-make-suid create mode 100644 ezmlm-web-3.0.2/debian-related/index.c create mode 100644 ezmlm-web-3.0.2/debian-related/man/ezmlm-web-make-suid.1 create mode 100644 ezmlm-web-3.0.2/ezmlm-web-3.0.1.patch create mode 100755 ezmlm-web-3.0.2/ezmlm-web.cgi create mode 100644 ezmlm-web-3.0.2/ezmlmwebrc create mode 100644 ezmlm-web-3.0.2/htaccess.sample create mode 100644 ezmlm-web-3.0.2/index.c create mode 100644 ezmlm-web-3.0.2/lang/de.hdf create mode 100644 ezmlm-web-3.0.2/lang/en.hdf create mode 100644 ezmlm-web-3.0.2/lang/jp.pm create mode 100755 ezmlm-web-3.0.2/scripts/check_languages.sh create mode 100755 ezmlm-web-3.0.2/scripts/debian.sh create mode 100644 ezmlm-web-3.0.2/spec/actions-spec.txt create mode 100644 ezmlm-web-3.0.2/spec/hdf-spec.txt create mode 100644 ezmlm-web-3.0.2/template/config_admin.cs create mode 100644 ezmlm-web-3.0.2/template/config_all.cs create mode 100644 ezmlm-web-3.0.2/template/config_archive.cs create mode 100644 ezmlm-web-3.0.2/template/config_main.cs create mode 100644 ezmlm-web-3.0.2/template/config_posting.cs create mode 100644 ezmlm-web-3.0.2/template/config_processing.cs create mode 100644 ezmlm-web-3.0.2/template/config_subscription.cs create mode 100644 ezmlm-web-3.0.2/template/footer.cs create mode 100644 ezmlm-web-3.0.2/template/form_common.cs create mode 100644 ezmlm-web-3.0.2/template/header.cs create mode 100644 ezmlm-web-3.0.2/template/help_tag_substitution.cs create mode 100644 ezmlm-web-3.0.2/template/list_create.cs create mode 100644 ezmlm-web-3.0.2/template/list_delete.cs create mode 100644 ezmlm-web-3.0.2/template/list_select.cs create mode 100644 ezmlm-web-3.0.2/template/macros.cs create mode 100644 ezmlm-web-3.0.2/template/main.cs create mode 100644 ezmlm-web-3.0.2/template/modpath_info.cs create mode 100644 ezmlm-web-3.0.2/template/nav.cs create mode 100644 ezmlm-web-3.0.2/template/subscribers.cs create mode 100644 ezmlm-web-3.0.2/template/textfile_edit.cs create mode 100644 ezmlm-web-3.0.2/template/textfiles.cs create mode 100644 ezmlm-web-3.0.2/webusers.sample create mode 100644 packages/ezmlm-web-3.0.2.tar.gz create mode 100644 packages/ezmlm-web_3.0-2_all.deb diff --git a/ezmlm-web-3.0.1/lang/de.hdf b/ezmlm-web-3.0.1/lang/de.hdf index 326f572..2b4b714 100644 --- a/ezmlm-web-3.0.1/lang/de.hdf +++ b/ezmlm-web-3.0.1/lang/de.hdf @@ -123,7 +123,7 @@ Lang { r = Erlaube die Fern-Administration der Liste (für ModeratorInnen) s = Die Einschreibung in die Liste und für die Zusammenfassungen wird moderiert t = Hänge eine Signatur an jede versandte Nachricht - u = Nur Einsendungen von AbonnentInnen werden akzeptiert (für moderierte Listen: akzeptiere alle Einsendungen von AbonnentInnen) + u = Einsendungen von AbonnentInnen werden immer akzeptiert (dies gilt auch für moderierte Listen) w = Entferne den Aufruf von ezmlm-warn aus den Verarbeitungsregeln (für sehr spezielle Konfigurationen) x = Prüfe die MIME-Typen der Anhänge eingehender Nachrichten y = Fordere eine Bestätigung für jede eingesandte Nachricht an diff --git a/ezmlm-web-3.0.1/lang/en.hdf b/ezmlm-web-3.0.1/lang/en.hdf index af1adc2..42926e1 100644 --- a/ezmlm-web-3.0.1/lang/en.hdf +++ b/ezmlm-web-3.0.1/lang/en.hdf @@ -123,7 +123,7 @@ Lang { r = Enable remote administration of the list (for moderators) s = Subscriptions to the main list and the digest list will be moderated t = Add a trailing text to every message - u = Only subscribed users may post messages (for a moderated list: always accept subscribers' postings) + u = Subscribed users may always post messages (even ignoring moderation) w = Remove the ezmlm-warn invocations from the list setup (rarely useful) x = Remove or reject specific mime types in messages y = Request a confirmation mail for every posted message diff --git a/ezmlm-web-3.0.2/INSTALL b/ezmlm-web-3.0.2/INSTALL new file mode 100644 index 0000000..2efc335 --- /dev/null +++ b/ezmlm-web-3.0.2/INSTALL @@ -0,0 +1,149 @@ +The following notes will guide you through the installation of ezmlm-web: + +OVERVIEW: + 0 - important notes + 1 - get it + 2 - install executable + 3 - configuration file + 4 - compile cgi wrapper + 5 - install cgi wrapper + 6 - (optional) configure access control (http authentication) + 7 - css stylesheet file + 8 - final test + + +------------------------------------------------------------------------------ + + +0. IMPORTANT: you need the perl module Mail::Ezmlm and others to use + ezmlm-web! The file README contains the complete list of necessary + modules. + + Additionally (since v3.0) you have to install clearsilver (a templating + engine). See INSTALL.clearsilver for details. + +1. Get ezmlm-web and extract the archive: + tar xzf ezmlm-web-3.x.tar.gz + + +2. Copy ezmlm-web.cgi to some publically readable directory. It does not + have to be in a path accessible to your web server, but any user with a + mailing list must be able to run it (Check the read and execute rights + on both the file and directory). We put our copy in "/usr/local/bin". + + At the top of ezmlm-web.cgi you can will probably have to change the + $ENV{'PATH'} variable. Be careful about what you set as the path. Too + much is a security risk and too little will cause the script to + malfunction. Version 2.0 requires that the following programs be + accessible in your path: mv, rm + + +3. Edit the ezmlmwebrc file and alter the variables to suit your + particular system. + + Be careful about the $LIST_DIR variable. This script assumes that all + users store their mailing lists in the same sub directory of the home + directory (eg ~/lists). You can override this for an individual user + by recompiling the C wrapper to call ezmlm-web.cgi with a -d option. + + Other configurable options are documented in the ezmlmwebrc file + itself. I have tried to keep the amount of information that you need to + supply to a minimum and also make reasonable guesses about default + values. + + The directory containing ezmlm-web's language files should be something + like '/usr/local/share/ezmlm-web/lang': + mkdir -p /usr/local/share/ezmlm-web + cp -r lang /usr/local/share/ezmlm-web + You can change this default location in the ezmlmwebrc file. + Do the same with the template directory (e.g copy it + to /usr/local/share/ezmlm-web/template). Then you also have to + set the appropriate location in the ezmlmwebrc file. + + Finally, copy the ezmlmwebrc file to one of + the following places: + 1) the home directory of the user that runs ezmlm-web.cgi + 2) the directory, that contains your ezmlm-web.cgi file + 3) /etc/ezmlm + (ezmlm-web will look for it in these places in the given order) + + +4. Edit the index.c file and change the path to the path of your copy + of ezmlm-web.cgi. Then compile this file. You can do this by issuing + this command: + gcc -o index.cgi index.c + + +5. For every user/virtual host that needs to manage mailing lists, you + need to create a SUID (user not root!!) copy of index.cgi (see + chmod(1) for details). These need to reside somewhere accessible by + the web server. I suggest that you put them in a sub directory (see + about security) of each user/virtual host's home directory (eg + /home/luser/public_html/ezmlm for Apache on Redhat). + + The copies don't actually have to be called index.cgi, but it is nice + for web servers that can resolve a cgi script as an index page (see the + srm.conf file in Apache). It is important to make sure that whichever + directory you choose to put them can i: Execute CGI Scripts and ii: Be + access controlled (here I mean both web and user access) by some method + (eg .htaccess, access.conf for Apache). + + +6. Install some method of securing access to the page. The following + information is applicable to Apache web servers ... Detailed + information on user authentication can be obtained from the Apache + documentation (http://www.apache.org) and ApacheWeek + (http://www.apacheweek.com/features/userauth) + +6.1 Ensure that your Apache setup will allow .htaccess file to control + access in the directory that contains. This is controlled by the + AllowOverride tag in access.conf. (Also ensure you have the + necessary Apache modules installed) + +6.2 Create a htpasswd file. This is done using the htpasswd command that + comes with Apache. Its command line syntax is; + htpasswd [-c] passwordfile username + + You need to put the passwordfile somewhere that is not accessible by + people through the web, and create an entry for each user you want + to have access ... See the ApacheWeek article for more details. + +6.3 Create a .htaccess file in the directory that contains index.cgi. + Note that using Apache's built in access control, you can only control + access to directories, not individual files, hence the need for a + sub-directory in step 5. + + The format of the .htaccess file should be along the lines of this; + + AuthName EZ Mailing List Manager + AuthType Basic + AuthUserFile /path/to/passwordfile + require valid-user # or require user username + + Again, see the ApacheWeek article for details. + + +7. You should copy the stylesheet file (css/default.css) to a location + of your choice. It has to be accessible by an URL - maybe a place like + "/var/www/ezmlm-web.css" could be appropriate. + Now you may have to change the "HTML_CSS_FILE" setting in your + ezmlmwebrc file. This value is a URL - not the local filename. + + +8. Test the installation with your favourite web browser. You should be + asked for a username and password (supplied in 6.2) and then be presented + with a screen entitled "EZ Mailing List Manger". You can then try to + create and edit mailing lists ... Have Fun :) + + If you do not see a colorful screen, then you did not set the HTML_CSS_FILE + option correctly in ezmlmwebrc. Check it again. + + If anything failes - take a look at the web server's error log + (e.g /var/log/apache/error.log). + + +If you have any problems, then you can: +- take a look at https://systemausfall.org/toolforge/ezmlm-web +- send me an email: ezmlm-web@sumpfralle.de +- subscribe to the mailinglist: ezmlm-web-subscribe@lists.systemausfall.org +- report a bug at https://systemausfall.org/trac/ezmlm-web diff --git a/ezmlm-web-3.0.2/INSTALL.clearsilver b/ezmlm-web-3.0.2/INSTALL.clearsilver new file mode 100644 index 0000000..484bfe0 --- /dev/null +++ b/ezmlm-web-3.0.2/INSTALL.clearsilver @@ -0,0 +1,34 @@ +Short notes on how to install clearsilver for perl: +(you should read it, as step 4 is quite unusual) + +1) download & untar + http://clearsilver.net + + +2) configure + +The following configure options should be sufficient: + ./configure --enable-perl \ + --disable-python \ + --disable-ruby \ + --disable-java \ + --disable-csharp \ + --disable-apache \ + --disable-gettext \ + --disable-remote-debugger + +3) make + + +4) the tricky part :) + +As the installation directory of clearsilver-perl is configured incorrectly, +you should replace the existing SITEPREFIX line in perl/Makefile with the following: + SITEPREFIX = $(PREFIX) +(without the leading white space) + + +5) make install + + +6) done diff --git a/ezmlm-web-3.0.2/README b/ezmlm-web-3.0.2/README new file mode 100644 index 0000000..13b24b4 --- /dev/null +++ b/ezmlm-web-3.0.2/README @@ -0,0 +1,303 @@ +=================== +| ezmlm-web-3.0.1 | +=================== + +If you only want to know how to install ezmlm-web, then you should +read INSTALL. + +Contents +======== + I. Copyright Stuff + II. Some Background + III. Requirements + IV. Files + V. Notes + VI. Multi-level list access + VII. Language Portability +VIII. Bugs && Bug Reports + XI. Acknowledgements + X. Availability + + +I. Copyright Stuff - essentially the FreeBSD licence ... +================== +ezmlm-web - version 3.0.1 - 01/06/02006 + +Copyright (C) 1998, Guy Antony Halse, All Rights Reserved. + +Please send bug reports and comments to ezmlm-web@sumpfralle.de + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +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. + +Neither name Guy Antony Halse nor the names of any contributors may be used +to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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. + + +II. Some Background +=================== +[this text was written by Guy Antony Halse - the original author of ezmlm-web] +The need for ezmlm-web arose from the fact that we host many student +societies on our system. These societies usually have a virtual host for web +and email, which is administered by a computer rep from the society. These +computer reps often have little or no knowledge of Unix and so we needed a +user friendly system that would let the create and maintain mailing lists +(such as members@foo.soc.ru.ac.za, committee@foo.soc.ru.ac.za, etc). + +Since I am never keen to re-invent the wheel, I had a look at Steve Peterson's +script (http://virtation.com/qmail/ml-sub), which allows people to subscribe +and unsubscribe from mailing lists using a form->email gateway. This is fine +for putting on a web page saying "here come and join our mailing list", but +doesn't really allow you to administrate a list. + +Security of mailing lists was a concern, as we really didn't want +unauthorised people to be able to alter some users list. Ezmlm-web itself +implements no security checks (apart from un-tainting input) and so relies +on the web server to do this (re-inventing the wheel again :). We use an +Apache webserver, so one can control access to a directory using a .htaccess +file or in the access.conf file. ApacheWeek have a good article on doing +this at http://www.apacheweek.com/features/userauth. I also give examples +later in this document. + +This version of ezmlm-web is based to a large extent on previous +versions that I have developed. It has however been totally re-written to +make use of the Mail::Ezmlm perl module I wrote. At the same time it was +updated and extended to include the new features of ezmlm-idx. It includes +many new features that have been suggested to me over the last few months, +and hopefully is now useful to a much larger group of people. + +Since 02005 ezmlm-web is maintained by Lars Kruse (ezmlm-web@sumpfralle.de). +Only minor improvements had to be implemented to keep the already fully +functional ezmlm-web up to date. + + +III. Requirements +================= +This version of ezmlm-web requires the following; + +* qmail v1.03 +* ezmlm v0.53 (or ezmlm-idx v0.40) +* clearsilver v0.10.2 (only perl support is necessary) +* Perl v5.004 and the following modules; + + Mail::Ezmlm v0.03 + + Mail::Address v1.15 + + CGI v2.6 + + CGI::Carp v1.06 + + DB_File v1.65 + + Getopt::Std v4.1 + + File::Find v? + + File::Copy v2.02 + +The version number indicates the version of the module that ezmlm-web was +developed with. Earlier versions may work, but then they haven't been +tested. Have a look on http://www.CPAN.org/, http://www.qmail.org/, and +http://www.ezmlm.org/ for anything you are missing. Of course, newer +versions are expected to work as well. + +To install perl modules you may use the cpan command line interface. +Just run "cpan" and type something like "install Mail::Ezmlm". + +You can download clearsilver (a templating engine - it is required since +ezmlm-web v3.0) from http://clearsilver.net. + + +IV. Files +========= +In this distribution you should find the following files; + +README (optional) This file. Provides some background information. + +INSTALL (optional) Notes on installation. + +INSTALL.clearsilver (optional) Notes on the installation of clearsilver. + +CHANGES (optional) The change history. + +UPGRADING (optional) Notes on upgrading ezmlm-web from a previous version. + +TODO (optional) This file is a list of things I intend doing in future + versions of ezmlm-web. + +ezmlm-web.cgi (required) The ezmlm-web cgi script in perl. You will need it :) + +index.c (recommended) A C wrapper to allow ezmlm-web.cgi to run + suid. Not strictly necessary if your setup allows perl scripts + to run suid, but I prefer using wrappers anyway. It needs to + be edited and compiled to suit your system. Not needed to + run ezmlm-web. + +ezmlmwebrc (required) This is the configuration file for ezmlm-web. + All options are explained in this example file. You will need + this file to run ezmlm-web. + +htaccess.sample (recommended) A sample Apache .htaccess file for controlling access to + the mailing lists. If you use another web server, you will + have to work this bit out for yourself. + +webusers.sample (recommended) A sample webusers file for multi-level access control. + +lang (directory, required) It contains the language files. You will need + at least the one, that you have choosen in "ezmlmwebrc" by + the option "HTML_LANGUAGE". + +css (directory, recommended) Here you find available css stylesheet files. + Pick the one you like (for now, there is only one choice :)) and + set it up by pointing the "HTML_CSS_FILE" setting in your + "ezmlmwebrc" to an appropriate URL. + +template (directory, required) The clearsilver template files in this + directory defined the layout of the web interface. You should be able + to adapt them to your needs, if you like. + +spec (directory, optional) Some development specific information. + + +V. Notes +========= +* There is a function to delete mailing lists, but I really don't like the + idea. The only reason I put it in is that bvi@rucus asked for it. + If you set $UNSAFE_RD = 0 (the default) in the config section, the + ezmlm-web won't actually delete the list. In this case it moves the + to . and all the associated .qmail files to a sub-directory called + deleted.qmail/ (In the users home directory. This is by far a safer way + (since you can restore lists) and therefore I recommend it. + +* The HTML interface has been tested using Nutscrape, Internet Exploder, and + Lynx. If anyone uses anything else and has problems, please let me know. + +* I suggest that you make use of custom ezmlmwebrc files rather than using + the -d command line switches - it makes fault diagnosis easier ... + +* Please see the section on languages below. + + +VI. Multi-Level Access +======================= +Ezmlm-web has a multi-level access system. This depends on a file called +webusers being present in $LIST_DIR. If the file is not present, then ANY +valid user has access to all lists. If, however, this file exists a number +of constraints come into place. + +- The webusers file is scanned for either the list name (case insensitive) or + an ALL (case sensitive) entry. +- The list entry (or ALL) is scanned for the current user (as set in + $REMOTE_USER) or an ALL (user) entry. +- If any valid match is made, then the user is allowed to edit the list. + Otherwise the user is politely told to go away ;-) + +If list creation is allowed and the webusers file exists, then the person who +creates the list is the default owner. There is no way to create users +through the web interface, as this depends on your authentication system. + +The format of a webusers file is as follows; + +list1: user1 user2 user3 +ALL: user1 user2 +list2: ALL + +Once this file exists, the ezmlm-web script will allow the list users to +configure their access lists along with any other options. + +You can permit some users to create lists by adding a line similar to the +following to your webusers file: + +ALLOW_CREATE: user2 user3 + +If there is no line starting with "ALLOW_CREATE:" in the webusers file, then +no one will be allowed to create lists. This behaviour is new for ezmlm-web +since version 2.2. To stay compatible to old installations, the commandline +option "-c" for ezmlm-web.cgi will still allow everyone to create lists. The +use of this option is deprecated, since the line "ALLOW_CREATE: ALL" provides +the same effect in a cleaner way. + + +VII. Language Portablity +========================= +One of the great new features of version 2.0 is that it is essentially +language independant. All of the fixed strings, help, etc is defined in the +files of lang directory. Of course you can change them or create a new +translation. + +The language can be selected in ezmlmwebrc with the "HTML_LANGUAGE" option. + +If anyone gets round to writing full templates for languages I would +appreciate it if you would do two things; + +Firstly, make them public and announce them on the ezmlm@lists.cr.yp.to +mailing list so that others may benefit. + +Secondly, please mail me a copy (ezmlm-web@sumpfralle.de) so that I may use +them in any future releases of ezmlm-web. + + +VIII. Bugs && Bug Reports +======================= +I don't know of any bugs, but then this is a rewrite and a first release. It +has been tested reasonably well, but not exhaustively. I know it works on +FreeBSD 4.0-STABLE, FreeBSD 3.4-RELEASE, RedHat 5.1, Redhat 6.0 and Debian +3.0 all using an Apache web server, but I would be interested to know whether +it works on other OSs and with other web servers. + +Please mail bug reports and comments to ezmlm-web@sumpfralle.de. +Or (even better) submit a bug report at https://systemausfall.org/trac/ezmlm-web. +Or subscribe to the ezmlm-web mailinglist: ezmlm-web-subscribe@lists.systemausfall.org. + + +IX. Acknowledgements +=================== +* Guy Antony Halse (guy-ezmlm@rucus.ru.ac.za) - he created ezmlm-web + and maintained it till 02005 +* Keith Burdis (keith@rucus.ru.ac.za) - For constantly bugging me (Guy) and + ensuring that I actually got round to writing some code :) +* Bryan Kilian (bryan@rucus.ru.ac.za) and the administrators of the + Litestep mailing list - For helping beta test and putting up with me (Guy) + pestering them. +* Several societies at Rhodes. For switching to my web interface and so + unknowingly helping to beta test it. +* Barry Irwin (bvi@moria.org) - For trusting me (Guy) and moving the Grahamstown + Foundation over to qmail and ezmlm - yet another beta tester :-) +* David Summers (david@summersoft.fay.ar.us) - For some ideas. And for + offering to make up an RPM version. I hope the offer still exists for + version 2.0 :-) +* Glen Stewart (glen_stewart@associate.com) - For a multitude of ideas. +* Fred Lindberg (lindberg@id.wustl.edu) for his useful posts to the + mailing list, suggestions, help, etc +* Galen Johnson (gjohnson@totalsports.net) - For some ideas on bugfixes. +* Reinin Ooyama (lenin@hasiru.net) - a japanese translation and bugixes for v2.3 +* Henning Rieger (age@systemausfall.org) - he designed most of the new + interface for v3.0 + + +X. Availability +================= +More information on ezmlm-web and developments to ezmlm-web can be found at: +https://systemausfall.org/toolforge/ezmlm-web + +The public subversion repository is at: +https://svn.systemausfall.org/svn/ezmlm-web + +The website of Guy Antony Halse (the author of ezmlm-web) is still at: +http://rucus.ru.ac.za/~guy/ezmlm/ + +The old ftp-archive of ezmlm-web is still available on: +ftp://rucus.ru.ac.za/pub/mail/ezmlm/ diff --git a/ezmlm-web-3.0.2/TODO b/ezmlm-web-3.0.2/TODO new file mode 100644 index 0000000..ed45e42 --- /dev/null +++ b/ezmlm-web-3.0.2/TODO @@ -0,0 +1,12 @@ +"cancel" button during text editing + +restore user input after failed list_create (especially options) + +support for: + * charset + * show log + +allow dynamic addition of user-made config templates (seperate directory, ...) + +language switch support +choose basic/expert to disable questions diff --git a/ezmlm-web-3.0.2/UPGRADING b/ezmlm-web-3.0.2/UPGRADING new file mode 100644 index 0000000..899a05a --- /dev/null +++ b/ezmlm-web-3.0.2/UPGRADING @@ -0,0 +1,71 @@ +This file contains some useful hints for upgrading from a previous version of ezmlm-web. + +############################################################################## + +UPGRADING ezmlm-web 3.0 to ezmlm-web 3.0.1 + +patch /usr/local/bin/ezmlm-web.cgi SYSTEM -> CGI_DIR +to HOME -> CGI_DIR -> SYSTEM + +------------------------------------------------------------------------------ + +UPGRADING ezmlm-web 2.2 to ezmlm-web 2.3 + +1) set the location (URL) of the css file in ezmlmwebrc + +------------------------------------------------------------------------------ + +UPGRADING ezmlm-web 2.1 to ezmlm-web 2.2 + +1) Creating of new lists is now controlled by a line in the webusers file instead +of a commandline switch for ezmlm-web.cgi. + +necessary changes: + - optional: remove switch "-c" when calling ezmlm-web.cgi (take a look at index.c) + - optional: add a line like "ALLOW_CREATE: john, myra" to the webusers file + +2) The location of the webusers file is now defined in ezmlmwebrc. (default: $LIST_DIR/webusers) + +necessary changes: + - optional: add a line like "$WEBUSERS_FILE = /home/ml/webusers" to ezmlmwebrc + +3) A german translation is available. + + - optional: include "lang/de.pm" in ezmlmwebrc (there you can also remove the english definitions) + or copy the new ezmlmwebrc :) + +------------------------------------------------------------------------------ + +UPGRADING ezmlm-web 2.0 to ezmlm-web 2.1 + +There are no major changes that need to be made in order to upgrade. All +that is necessary is to add two new lines to your ezmlmwebrc ... In the top +section of the file add + +$FILE_UPLOAD = 1; + +and in the %HELPER section, you need to add + +addaddressfile => 'or you may enter the filename of a plain text file containing multiple RFC822 email addresses, one per line', + +(or just copy the new ezmlmwebrc :) + +Have a look for these two lines in the new ezmlmwebrc included in this +distribution if you are unsure of how/where to put these. diff --git a/ezmlm-web-3.0.2/changelog b/ezmlm-web-3.0.2/changelog new file mode 100644 index 0000000..b67718b --- /dev/null +++ b/ezmlm-web-3.0.2/changelog @@ -0,0 +1,109 @@ +Version 3.0.2 - 01/08/02006 + * small language fix + +Version 3.0.1 - 01/06/02006 + * allow several special characters in local part of mail address (RFC2822) + +Version 3.0 - 12/25/02005 + * complete interface rewritten for enhanced usability + * suppurt for msgsize, mimereject, trailer + * fixed insecure writing of webusers data + * define a default MAIL_DOMAIN + * changed directory for safely removed mailinglists + * requires the clearsilver template engine + +Version 2.3 - 10/06/02005 + * css styles are used instead of tables + * permission check for upload of files fixed + * removed some taint errors + * file upload typo fixed + * update of webusers file fixed + * moderator unsubscribe fixed + +Version 2.2 - 26/01/02005 (not officially released) + * German translation of the web interface - more translations can be added easily + * changed "ALT"-tags to "TITLE" - most browsers will display the tooltip texts now + * fixed security problems (permissions were not thoroughly checked) + * user-based permission for creating lists (can be set in webusersrc) + * the location of the webusers file is now an option in ezmlmwebrc + +Version 2.1 - 25/09/00 + * Fixed the multiple delete thing - finally! + * Fixed the '-' in username problem - The '-' in hostnames problem is fixed + in the new version of Mail::Ezmlm + * Fixed the '_' in list names problem + * Added support for file uploads of email addresses (multiple subscribe) + * Made error handling more friendly + +Version 2.0 - 01/01/00 + * Rewrote most of the code to take advantage of Mail::Ezmlm + * Made the webuser file more functional (users can alter it) + * Now handles all current, and future command line options + * Changed the colours :) + * Added support for ezmlm-cgi web archives + * Made it -w and use strict clean + * Moved all user config to a separate file + * Fixed the way we worked out list config - now complete + * Allowed a user specific config over-ride ``ezmlmwebrc'' + * Allowed the printing of `nice' usernames (for Rhodes CS Dept) + * Took account of non-standard paths for moderators + * Removed all system() and `` calls from ezmlm-web.cgi + * Made `look and feel' virtually all user configurable + * Added a lot more context sensitive help + * Made ezmlm-web 99% language configurable - but no other templates yet :( + * Added support for creating databases + +Version 1.0.3 - 03/10/98 + * Fixed the alias-alias-alias-list bug in inlocal (bryan@rucus) + * Added a bit of online help + * Fixed the & in list owner (bryan@rucus) + * Added multi-level access to lists (based on idea by Glen Stewart) + +Version 1.0.2 - 28/08/98 + * Fixed the bug introduced in v1.0.1 :( (keith@rucus) + * Fixed the way we recreate config files (noticed by Glen Stewart) + * Made the script check return values of system calls properly + * Fixed some of the taint checking stuff ... reports less in the logs now. + +Version 1.0.1 - 10/08/98 + * Fixed a bug in the way 1.0 re-configured virtual hosts (bryan@rucus) + * Made the script read the /var/qmail/control files instead of explicitly + setting variables (for david@summersoft) + +Version 1.0 - 01/08/98 + * Complete re-write to convert to perl5 and CGI.pm + * Removed a lot of dependancy on the OS. Use builtin functions instead :) + * Added support for ezmlm-idx + * Added a lot more command line option support (-adfgiklmnpqsrstux5) + * Added support for digests and digest subscribers + * Added support for blacklists + * Allowed users to edit the config of existing lists + * Allowed the user to edit headeradd and headerremove as well as mimeremove + * Allowed user to edit any of the files in DIR/text + * Revised interface to make it more user-friendly and ergonomic. + * Changed the background colour for Kether (clb@rucus) *gryn* + * Removed a big bug in the delete_list function that had gone unnoticed. + +Version 0.5 - 12/05/98 (Not Released) + * More bug fixes. Mainly for mathew@graham. + +Version 0.4 - 28/04/98 + * Fixed up virtual domain (inlocal) stuff as spotted by bryan@rucus + * Allowed the list directory to be automatically created if necessary. + +Version 0.3 - 15/04/98 + * Allow list deletion (for balin@moria.org) + * Made changes to allow it to run on RedHat 4.2 as well as FreeBSD 3.0 + * Fixed some minor bugs (cosmetic irritaions really) that people noticed + * Sorted subscribers list into alphabetical order. + * Added command line switch to change list directory (for nxsy@moria.org) + * Wrote some documentation ... + +Version 0.2 - 13/04/98 (Not Released) + * Allow list creation + * Allowed users to edit moderators + +Version 0.1 - 10/04/98 (Not Released) + * University Vac - I was bored and started to play. The first version just + let people play with the subscribers list. No moderators, no nothing. + diff --git a/ezmlm-web-3.0.2/copyright b/ezmlm-web-3.0.2/copyright new file mode 100644 index 0000000..b0af734 --- /dev/null +++ b/ezmlm-web-3.0.2/copyright @@ -0,0 +1,30 @@ +Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved. +Please send bug reports and comments to guy-ezmlm@rucus.ru.ac.za + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +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. + +Neither name Guy Antony Halse nor the names of any contributors +may be used to endorse or promote products derived from this software +without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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. + diff --git a/ezmlm-web-3.0.2/css/default.css b/ezmlm-web-3.0.2/css/default.css new file mode 100644 index 0000000..ca149dd --- /dev/null +++ b/ezmlm-web-3.0.2/css/default.css @@ -0,0 +1,325 @@ +body { + margin: 0; + padding: 0; + font: normal 100% sans-serif; + color: #606760; + } + +font.ez { + font-style: italic; + color: #505050; + } + +font.hint { + font-size: 85%; + } + +font.feature { + font-weight: bold; + } + +#nav_bar { + float: left; + width: 20%; + margin-left: 1%; + margin-right: 1%; + margin-bottom: 1%; + margin-top: 5px; + padding-left: 0.5%; + padding-right: 0.5%; + padding-top: 1.5%; + padding-bottom: 1.5%; + background-color: #c0c0b0; + } + +.nav_group { + margin-top: 1%; + padding-bottom: 1%; + } + +#nav_bar ul { + color: #af8060; + margin: 0; + padding-left: 15px; + list-style: none; + } + +#nav_bar ul li { + margin-top: 0; + /* small space between highest level entries */ + margin-bottom: 5px; + } + +#nav_bar ul li ul li { + /* no space between lower level entries */ + margin-bottom: 0; + } + +#nav_bar li a.nav_active { + color: #fff; + } + +#nav_bar font.no_link { + color: #2f4860; + font-style: italic; + } + +#nav_bar a { + color: #2f4860; + text-decoration: none; + } + +#nav_bar a:hover { + background-color: #d8d8d8; + color: #2f4860; + } + +#main_content { + margin-left: 22%; + padding-left: 3%; + padding-right: 1%; + min-height: 440px; + } + +#main_content li { + list-style: none; + } + +#main_content button { + margin-top: 12px; + } + +#main_content ul { + line-height: 1.8em; + list-style: none; + } + +#main_content ul li ul { + font-size: 85%; + } + +#main_content fieldset { + margin-top: 0.5%; + margin-bottom: 1%; + padding-top: 1%; + padding-bottom: 1.5%; + } + +#main_content fieldset.form form ul { + padding-left: 1%; + } + +#main_content fieldset.form form ul li ul { + padding-left: 3%; + } + +#main_content table.list_select { + table-layout: fixed; + width: 100%; + text-align: left; + line-height: 1.2em; + border-width: 0px; + padding-left: 2%; + padding-right: 0px; + } + +div.formfield { + font-style: normal; + } + +#news { + background: #e8947c; + color: #000000; + margin: 1%; + padding: 5px; + width: 30%; + float: right; + font-size: 80%; + } + +#news font.title { + font-style: italic; + font-size: 110%; + } + +#news ul.changes { + font-size: 90%; + margin-top: 0px; + } + +a:visited { + color: #005040; + } + +#oben { + background-color: #2f4860; + } + +h1.oben { + text-align: left; + border-bottom: solid 2px #ffffff; + padding: 5px; + font-weight: bold; + letter-spacing: -1px; + color: #ffffff; + margin: 0; + } + +#perm_nav { + float: right; + padding-right: 5px; + font-size: 100%; + color: #ffd7f0; + background-color: inherit; + } + +#perm_nav a { + font-weight: bold; + color: #ffffff; + padding-left: 2px; + padding-right: 2px; + text-decoration: none; + } + +#perm_nav a:hover { + color: #ffcc00; + } + +table.subscribers { + border-width: 0; + margin: 0; + padding: 1%; + width: 100%; + } + +tr, td { + margin: 0; + padding: 0; + } + +button { + color: #5e5e5e; + background-color: #d8d8d8; + border: 1px dotted #5e5e5e; + font-size: 90%; + cursor: pointer; + } + +button:hover { + color: #505050; + background-color: #d0d0d0; + border: 1px dotted #ACE149; + font-size: 90%; + cursor: pointer; + } + +.lid { + margin: 0; + padding: 3px; + border-bottom: solid 1px #606070; + background-color: #c0c0b0; + font: bold 100% sans-serif; + letter-spacing: -1px; + color: #ffffff; + } + +#content { + position: absolute; + right: 0px; + width: 85%; + font: normal 82% sans-serif; + background-color: #ffffff; + padding: 2px; + } + +#content h2 { + margin-left: 5px; + margin-right: 5px; + margin-top: 10px; + font-weight: normal; + letter-spacing: -1px; + color: #2f4860; + } + +.push { + margin: 5px; + padding: 0; + } + +.push p { + text-align: justify; + } + +#info_title { + text-align: center; + background-color: #c0c0b0; + margin-top: 5px; + margin-left: 0%; + margin-right: 1%; + margin-bottom: 0.2%; + color: #ffffff; + font-size: 125%; + font-style: italic; + } + +#header { + text-align: right; + background-color: #2f4860; + font-size: 90%; + color: #ffffff; + margin: 0; + top: 0; + width: 100%; + } + +#footer { + text-align: center; + background-color: #2f4860; + font-size: 90%; + color: #ffffff; + margin: 0px; + padding: 3px; + } + +#footer a { + color: #a0d0b0; + } + +#footer a:visited { + color: #a0d0b0; + } + +#main_content div.introduction { + font-size: 80%; + } + +#main_content div.warning, div.error, div.success { + margin-left: 10%; + margin-right: 10%; + margin-top: 2%; + margin-bottom: 3%; + padding: 2%; + text-align: center; + font-style: italic; + font-size: 90%; + } + +#main_content div.success { + background-color: #40d070; + color: #202020; + } + +#main_content div.warning { + background-color: #e0a0a0; + color: #202020; + } + +#main_content div.error { + background-color: #d05050; + color: #202020; + } + +.mail { + font-style: italic; + color: #2f4860; + } diff --git a/ezmlm-web-3.0.2/debian-related/DEBIAN/conffiles b/ezmlm-web-3.0.2/debian-related/DEBIAN/conffiles new file mode 100644 index 0000000..effb258 --- /dev/null +++ b/ezmlm-web-3.0.2/debian-related/DEBIAN/conffiles @@ -0,0 +1 @@ +/etc/ezmlm-web/ezmlmwebrc diff --git a/ezmlm-web-3.0.2/debian-related/DEBIAN/control b/ezmlm-web-3.0.2/debian-related/DEBIAN/control new file mode 100644 index 0000000..23b5225 --- /dev/null +++ b/ezmlm-web-3.0.2/debian-related/DEBIAN/control @@ -0,0 +1,20 @@ +Package: ezmlm-web +Version: 3.0-2 +Section: admin +Priority: extra +Architecture: all +Depends: perl, httpd-cgi +Suggests: qmail-src, bash (>=2.0), gcc +Maintainer: Lars Kruse +Description: Web interface for ezmlm-idx mailing list administration + This web interface allows you to configure every part of an ezmlm-idx + mailing list. + Access control makes it possible, to share the administrative work in a + controlled way. + This package depends on the following programs, that are not part of the main + debian distribution: + * qmail - http://cr.yp.to/qmail.html + * ezmlm-idx - http://ezmlm.org/ + * clearsilver for perl (>= 0.10.2) - http://www.clearsilver.net/downloads/ + * some perl modules (see README) + diff --git a/ezmlm-web-3.0.2/debian-related/DEBIAN/postinst b/ezmlm-web-3.0.2/debian-related/DEBIAN/postinst new file mode 100755 index 0000000..296ef78 --- /dev/null +++ b/ezmlm-web-3.0.2/debian-related/DEBIAN/postinst @@ -0,0 +1,3 @@ +#!/bin/sh + +true diff --git a/ezmlm-web-3.0.2/debian-related/DEBIAN/postrm b/ezmlm-web-3.0.2/debian-related/DEBIAN/postrm new file mode 100755 index 0000000..296ef78 --- /dev/null +++ b/ezmlm-web-3.0.2/debian-related/DEBIAN/postrm @@ -0,0 +1,3 @@ +#!/bin/sh + +true diff --git a/ezmlm-web-3.0.2/debian-related/DEBIAN/prerm b/ezmlm-web-3.0.2/debian-related/DEBIAN/prerm new file mode 100755 index 0000000..296ef78 --- /dev/null +++ b/ezmlm-web-3.0.2/debian-related/DEBIAN/prerm @@ -0,0 +1,3 @@ +#!/bin/sh + +true diff --git a/ezmlm-web-3.0.2/debian-related/README.Debian b/ezmlm-web-3.0.2/debian-related/README.Debian new file mode 100644 index 0000000..4352f6a --- /dev/null +++ b/ezmlm-web-3.0.2/debian-related/README.Debian @@ -0,0 +1,54 @@ +How to use ezmlm-web with debian + +Table of content +1 - install the package +2 - install required additional software +3 - create user-sprecific suid binaries +4 - create a user-specific configuration +5 - access control +6 - testing + +################################################################# + +1) install the package +you surely did this already :) + + +2) install required additional software +Take a look at /usr/share/doc/ezmlm-web/README - section III (Requirements). +If you are able to run /usr/lib/ezmlm-web/ezmlm-web.pl without problems, then +you are ready for the next step. + + +3) create user-specific suid binaries +As perl-suid is considered deprecated, you have to compile a C-wrapper +for every user of your debian system, who wants to manage his mailing +lists with ezmlm-we. +Usually you do this only for your virtual mailing list user. + +to create a wrapper, type the following: + ezmlm-web-make-suid USERNAME DESTINATION_FILE + +e.g: ezmlm-web-make-suid john ~john/public_html/cgi-bin/ezmlm-web + + +4) create a user-specific configuration file (optional) +Copy /usr/share/doc/ezmlm-web/examples/ezmlmwebrc to ~john/.ezmlmwebrc +and change its content according to your setup. + + +5) access control (optional) +configure access control for the fresh cgi binary. Maybe you can +use the htaccess.sample file in /usr/share/doc/ezmlm-web/examples as +a template. + +Now you should create a webusers file to define the permissions of all +possible web users. An example webusers file can be found at +/usr/share/doc/ezmlm-web/examples/webusers.sample. + +See /usr/share/doc/ezmlm-web/README for details about access control. + + +6) testing +Now you can access the ezmlm-web interface by using your web browser. +e.g. point it to http://localhost/~john/cgi-bin/ezmlm-web diff --git a/ezmlm-web-3.0.2/debian-related/changelog.Debian b/ezmlm-web-3.0.2/debian-related/changelog.Debian new file mode 100644 index 0000000..cbe2c1f --- /dev/null +++ b/ezmlm-web-3.0.2/debian-related/changelog.Debian @@ -0,0 +1,7 @@ +ezmlm-web (0.3.0-2) unstable; urgency=low + * small language fix + -- Lars Kruse Sun, 08 Jan 2006 07:18:14 +0100 + +ezmlm-web (0.3.0-1) unstable; urgency=low + * Initial release + -- Lars Kruse Sat, 07 Jan 2006 03:15:42 +0100 diff --git a/ezmlm-web-3.0.2/debian-related/ezmlm-web-make-suid b/ezmlm-web-3.0.2/debian-related/ezmlm-web-make-suid new file mode 100755 index 0000000..8cf5f9c --- /dev/null +++ b/ezmlm-web-3.0.2/debian-related/ezmlm-web-make-suid @@ -0,0 +1,33 @@ +#!/bin/sh +# +# create user-specific suid binaries to call ezmlm-web.cgi +# +# parameters: [USERNAME] DESTINATION_FILE +# e.g.: john ~john/public_html/cgi-bin/ezmlm-web +# only root may choose a USERNAME +# + +set -eu + +C_SOURCE=/usr/share/ezmlm-web/index.c + +which cc >/dev/null || { echo "no compiler (cc) installed - sorry" >&2; exit 1; } + +[ $(id -u) -ne 0 ] && [ $# -ne 1 ] && echo "Syntax (for non-root): $(basename $0) DESTINATION_FILE" >&2 && exit 1 +[ $(id -u) -eq 0 ] && [ $# -gt 2 -o $# -lt 1 ] && echo "Syntax (for root): $(basename $0) [USERNAME] DESTINATION_FILE" >&2 && exit 1 + +if [ $# -eq 1 ] + then EZ_USER=$(id -un) + EZ_FILE=$1 + else EZ_USER=$1 + EZ_FILE=$2 + fi + +cc -o "$EZ_FILE" "$C_SOURCE" +if [ $(id -u) -eq 0 ] + then chown "$EZ_USER". "$EZ_FILE" || { echo "the user '$EZ_USER' does not exist" >&2; rm "$EZ_FILE"; exit 1; } + fi +chmod u+s "$EZ_FILE" + +echo "Successfully created '$EZ_FILE' for user '$EZ_USER'." + diff --git a/ezmlm-web-3.0.2/debian-related/index.c b/ezmlm-web-3.0.2/debian-related/index.c new file mode 100644 index 0000000..0453aaa --- /dev/null +++ b/ezmlm-web-3.0.2/debian-related/index.c @@ -0,0 +1,10 @@ +#include + +/* C wrapper to allow ezmlm-web.cgi to run suid */ +/* Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved */ +/* See the README file in this distribution for copyright information */ + +int main(void) { + /* Change this path to wherever you decided to put ezmlm-web.cgi */ + execv("/usr/lib/ezmlm-web/ezmlm-web.pl"); +} diff --git a/ezmlm-web-3.0.2/debian-related/man/ezmlm-web-make-suid.1 b/ezmlm-web-3.0.2/debian-related/man/ezmlm-web-make-suid.1 new file mode 100644 index 0000000..f79cb4e --- /dev/null +++ b/ezmlm-web-3.0.2/debian-related/man/ezmlm-web-make-suid.1 @@ -0,0 +1,25 @@ +.TH ezmlm-web-make-suid 1 "January 02006" "ezmlm-web" "helper script" +.SH NAME +ezmlm-web-make-suid \- create user-specific suid wrappers for ezmlm-web +.SH SYNOPSIS +.B ezmlm-web-make-suid +[\fIUSERNAME\fR] \fIDESTINATION_FILE\fR +.SH DESCRIPTION +.PP +Create a user-specific suid wrapper for ezmlm-web. This is necessary, as +the mailing lists are usually not owned by the webserver, that executes +the cgi. +.PP +The destination file determines where to put the resulting binary. +.PP +Only root is allowed to choose a username. +.SH EXAMPLES +.PP +ezmlm-web-make-suid john ~john/public_html/ezmlm-web +.SH AUTHOR +Written by Lars Kruse +.SH "REPORTING BUGS" +Report bugs to +.SH COPYRIGHT +Copyright \(co 02006 Lars Kruse + diff --git a/ezmlm-web-3.0.2/ezmlm-web-3.0.1.patch b/ezmlm-web-3.0.2/ezmlm-web-3.0.1.patch new file mode 100644 index 0000000..8db4c09 --- /dev/null +++ b/ezmlm-web-3.0.2/ezmlm-web-3.0.1.patch @@ -0,0 +1,30 @@ +--- ezmlm-web.cgi.orig 2006-01-06 02:46:56.000000000 +0000 ++++ ezmlm-web.cgi 2006-01-06 03:41:11.000000000 +0000 +@@ -720,7 +720,7 @@ + my($fh) = $q->param('mailaddressfile'); + while (<$fh>) { + next if (/^\s*$/ or /^#/); # blank, comments +- if ( /(\w[\-\w_\.]*)@(\w[\-\w_\.]+)/ ) { ++ if ( /(\w[\w\.\!\#\$\%\&\'\`\*\+\-\/\=\?\^\{\|\}\~]*)@(\w[\-\w_\.]+)/) { + chomp(); + push @addresses, "$_"; + } else { +@@ -736,7 +736,7 @@ + $address .= $DEFAULT_HOST if ($q->param('mailaddress_add') =~ /\@$/); + + # untaint +- if ($address =~ m/(\w[\-\w_\.]*)@(\w[\-\w_\.]+)/) { ++ if ($address =~ m/(\w[\w\.\!\#\$\%\&\'\`\*\+\-\/\=\?\^\{\|\}\~]*)@(\w[\-\w_\.]+)/) { + push @addresses, "$address"; + } else { + warn "invalid address to add: $address to $part"; +@@ -752,7 +752,8 @@ + foreach $address (@addresses) { + + ($add) = Mail::Address->parse($address); +- if (($add->address() =~ /^\w[\w_-]*\@/) && !($list->issub($add->address(), $part))) { ++ if (($add->address() =~ m/^(\w[\w\.\!\#\$\%\&\'\`\*\+\-\/\=\?\^\{\|\}\~]*)@(\w[\-\w_\.]+)$/) ++ && !($list->issub($add->address(), $part))) { + # it seems, that we cannot trust the return value of "$list->sub" + $list->sub($add->address(), $part); + if(defined($add->name()) && $PRETTY_NAMES) { diff --git a/ezmlm-web-3.0.2/ezmlm-web.cgi b/ezmlm-web-3.0.2/ezmlm-web.cgi new file mode 100755 index 0000000..030addc --- /dev/null +++ b/ezmlm-web-3.0.2/ezmlm-web.cgi @@ -0,0 +1,1270 @@ +#!/usr/bin/perl +#=========================================================================== +# ezmlm-web.cgi - version 3.0 +# ========================================================================== +# All user configuration happens in the config file ``ezmlmwebrc'' +# POD documentation is at the end of this file +# ========================================================================== + +package ezmlm_web; + +# Modules to include +use strict; +use Getopt::Std; +use ClearSilver; +use Mail::Ezmlm; +use Mail::Address; +use File::Copy; +use DB_File; +use CGI; +use IO::File; +use POSIX qw(tmpnam); +use Encode qw/ from_to /; # add by ooyama for char convert + +# These two are actually included later and are put here so we remember them. +#use File::Find if ($UNSAFE_RM == 1); +#use File::Copy if ($UNSAFE_RM == 0); + + +my $q = new CGI; +$q->import_names('Q'); +use vars qw[$opt_c $opt_d $opt_C]; +getopts('cd:C:'); + +# Suid stuff requires a secure path. +$ENV{'PATH'} = '/bin'; + +# We run suid so we can't use $ENV{'HOME'} and $ENV{'USER'} to determine the +# user. :( Don't alter this line unless you are _sure_ you have to. +my @tmp = getpwuid($>); use vars qw[$USER]; $USER=$tmp[0]; + +# use strict is a good thing++ + +use vars qw[$HOME_DIR]; $HOME_DIR=$tmp[7]; +use vars qw[$DEFAULT_OPTIONS $UNSAFE_RM $ALIAS_USER $LIST_DIR]; +use vars qw[$QMAIL_BASE $PRETTY_NAMES]; +use vars qw[$FILE_UPLOAD $WEBUSERS_FILE $MAIL_DOMAIN $HTML_TITLE]; +use vars qw[$HTML_CSS_FILE $TEMPLATE_DIR $LANGUAGE_DIR $HTML_LANGUAGE]; + +# set default TEXT_ENCODE +use vars qw[$TEXT_ENCODE]; $TEXT_ENCODE='us-ascii'; # by ooyama for multibyte convert support + +# pagedata contains the hdf tree for clearsilver +# pagename refers to the template file that should be used +use vars qw[$DEFAULT_HOST]; +use vars qw[$pagedata $pagename $error $customError $warning $customWarning $success]; + +# Get user configuration stuff +if(defined($opt_C)) { + $opt_C =~ /^([-\w.\/]+)$/; # security check by ooyama + require "$1"; # Command Line +} elsif(-e "$HOME_DIR/.ezmlmwebrc") { + require "$HOME_DIR/.ezmlmwebrc"; # User +} elsif(-e "./ezmlmwebrc") { + require "./ezmlmwebrc"; # Install +} elsif(-e "/etc/ezmlm-web/ezmlmwebrc") { + require "/etc/ezmlm-web/ezmlmwebrc"; # System (new style) +} elsif(-e "/etc/ezmlm/ezmlmwebrc") { + require "/etc/ezmlm/ezmlmwebrc"; # System (old style) +} else { + &fatal_error("Unable to read config file"); +} + +# Allow suid wrapper to over-ride default list directory ... +if(defined($opt_d)) { + $LIST_DIR = $1 if ($opt_d =~ /^([-\@\w.\/]+)$/); +} + +# If WEBUSERS_FILE is not defined in ezmlmwebrc (as before version 2.2), then use former default value for compatibility +if (!defined($WEBUSERS_FILE)) { + $WEBUSERS_FILE = $LIST_DIR . '/webusers' +} + +# check optional stylesheet +$HTML_CSS_FILE = '' unless defined($HTML_CSS_FILE); + +# check template directory +$TEMPLATE_DIR = 'template' unless defined($TEMPLATE_DIR); + +if (defined($MAIL_DOMAIN) && ($MAIL_DOMAIN ne '')) { + $DEFAULT_HOST = $MAIL_DOMAIN; +} else { + # Work out default domain name from qmail (for David Summers) + open (GETHOST, "<$QMAIL_BASE/defaultdomain") || open (GETHOST, "<$QMAIL_BASE/me") || &fatal_error("Unable to read $QMAIL_BASE/me: $!"); + chomp($DEFAULT_HOST = ); + close GETHOST; +} + + +# Untaint form input ... +&untaint; + +my $pagedata = load_hdf(); +my $action = $q->param('action'); + +# check permissions +unless (&check_permission_for_action) { + $pagename = 'list_select'; + $error = 'Forbidden'; +} +# This is where we decide what to do, depending on the form state and the +# users chosen course of action ... +# TODO: unify all these "is list param set?" checks ... +elsif ($action eq '' || $action eq 'list_select') { + # Default action. Present a list of available lists to the user ... + $pagename = 'list_select'; +} elsif ($action eq 'subscribers') { + # display list (or part list) subscribers + if (defined($q->param('list'))) { + $pagename = 'subscribers'; + } else { + $pagename = 'list_select'; + $error = 'ParameterMissing'; + } +} elsif ($action eq 'address_del') { + # Delete a subscriber ... + if (defined($q->param('list'))) { + $success = 'DeleteAddress' if (&delete_address()); + $pagename = 'subscribers'; + } else { + $error = 'ParameterMissing'; + $pagename = 'list_select'; + } +} elsif ($action eq 'address_add') { + # Add a subscriber ... + # no selected addresses -> no error + if (defined($q->param('list'))) { + $success = 'AddAddress' if (&add_address()); + $pagename = 'subscribers'; + } else { + $error = 'ParameterMissing'; + $pagename = 'list_select'; + } +} elsif ($action eq 'list_delete_ask') { + # Confirm list removal + if (defined($q->param('list'))) { + $pagename = 'list_delete'; + } else { + $pagename = 'list_select'; + $error = 'ParameterMissing'; + } +} elsif ($action eq 'list_delete_do') { + # User really wants to delete a list ... + warn "do it"; + if (defined($q->param('list'))) { + $success = 'DeleteList' if (&delete_list()); + } else { + $error = 'ParameterMissing'; + } + $pagename = 'list_select'; +} elsif ($action eq 'list_create_ask') { + # User wants to create a list ... + $pagename = 'list_create'; +} elsif ($action eq 'list_create_do') { + # create the new list + # Message if list creation is unsuccessful ... + if (&create_list()) { + $success = 'CreateList'; + $pagename = 'subscribers'; + } else { + $pagename = 'list_create'; + } +} elsif (($action eq 'config_ask') || ($action eq 'config_do')) { + # User wants to see/change the configuration ... + my $subset = $q->param('config_subset'); + if (defined($q->param('list')) && ($subset ne '')) { + if ($subset =~ m/^RESERVED-([\w_-]*)$/) { + $pagename = $1 + } elsif (($subset =~ /^[\w]*$/) && (-e "$TEMPLATE_DIR/config_$subset" . ".cs")) { + $pagename = 'config_' . $subset; + } else { + $pagename = ''; + } + if ($pagename ne '') { + $success = 'UpdateConfig' if (($action eq 'config_do') && &update_config()); + } else { + $error = 'UnknownConfigPage'; + warn "missing config page: $subset"; + $pagename = 'list_select'; + } + } else { + $error = 'ParameterMissing'; + $pagename = 'list_select'; + } +} elsif ($action eq 'textfiles') { + # Edit DIR/text ... + if (defined($q->param('list'))) { + $pagename = 'textfiles'; + } else { + $error = 'ParameterMissing'; + $pagename = 'list_select'; + } +} elsif ($action eq 'textfile_edit') { + # edit the content of a text file + if (defined($q->param('list')) && defined($q->param('file'))) { + if (! &check_filename($q->param('file'))) { + $error = 'InvalidFileName'; + $pagename = 'textfiles'; + } else { + $pagename = 'textfile_edit'; + } + } else { + $error = 'ParameterMissing'; + $pagename = 'list_select'; + } +} elsif ($action eq 'textfile_save') { + # User wants to save a new version of something in DIR/text ... + if (defined($q->param('list')) && defined($q->param('file')) && defined($q->param('content'))) { + if (! &check_filename($q->param('file'))) { + $error = 'InvalidFileName'; + $pagename = 'textfiles'; + } elsif (&save_text()) { + $pagename = 'textfiles'; + $success = 'SaveFile'; + } else { + $warning = 'SaveFile'; + $pagename = 'textfile_edit'; + } + } else { + $error = 'ParameterMissing'; + if ($q->param('list')) { + $pagename = 'textfiles'; + } else { + $pagename = 'list_select'; + } + } +} else { + $pagename = 'list_select'; + $error = 'UnknownAction'; +} + +# read the current state (after the changes are done) +&set_pagedata(); + +# set default action, if there is no list available and the user is +# allowed to create a new one +if (($action eq '') && (&webauth_create_allowed()) && ($pagedata->getValue('Data.Lists.0','') eq '')) { + $pagename = 'list_create'; +} + +# Print page and exit :) ... +&output_page; +exit; + + +# ========================================================================= + +sub load_hdf { + # initialize the data for clearsilver + my $hdf = ClearSilver::HDF->new(); + + $hdf->readFile($LANGUAGE_DIR . '/' . $HTML_LANGUAGE . '.hdf'); + + # TODO: check for existence + &fatal_error("Template dir ($TEMPLATE_DIR) not found!") unless (-e $TEMPLATE_DIR); + $hdf->setValue("TemplateDir", "$TEMPLATE_DIR/"); + &fatal_error("Language data dir ($LANGUAGE_DIR) not found!") unless (-e $LANGUAGE_DIR); + $hdf->setValue("LanguageDir", "$LANGUAGE_DIR/"); + $hdf->setValue("ScriptName", $ENV{'SCRIPT_NAME'}); + $hdf->setValue("Stylesheet", "$HTML_CSS_FILE"); + $hdf->setValue("Config.PageTitle", "$HTML_TITLE"); + + return $hdf; +} + + +sub output_page { + # Print the page + + $pagedata->setValue('Data.Success', "$success") if (defined($success)); + $pagedata->setValue('Data.Error', "$error") if (defined($error)); + $pagedata->setValue('Data.Warning', "$warning") if (defined($warning)); + $pagedata->setValue('Data.CustomError', "$customError") if (defined($customError)); + $pagedata->setValue('Data.CustomWarning', "$customWarning") if (defined($customWarning)); + + $pagedata->setValue('Data.Action', "$pagename"); + + my $pagefile = $TEMPLATE_DIR . "/main.cs"; + &fatal_error("main template ($pagefile) not found!") unless (-e "$pagefile"); + &fatal_error("sub template ($TEMPLATE_DIR/$pagename.cs) not found!") unless (-e "$TEMPLATE_DIR/$pagename.cs"); + + # print http header + print "Content-Type: text/html; charset=utf-8\n\n"; + + my $cs = ClearSilver::CS->new($pagedata); + + $cs->parseFile($pagefile); + + print $cs->render(); +} + +# --------------------------------------------------------------------------- + +sub set_pagedata_list_of_lists() +{ + my (@files, $i, $num); + + # Read the list directory for mailing lists. + return (0==0) unless (opendir DIR, $LIST_DIR); + + @files = sort grep !/^\./, readdir DIR; + closedir DIR; + + $num = 0; + # Check that they actually are lists and add good ones to pagedata ... + foreach $i (0 .. $#files) { + if ((-e "$LIST_DIR/$files[$i]/lock") && (&webauth($files[$i]))) { + $pagedata->setValue("Data.Lists." . $num, "$files[$i]"); + $num++; + } + } +} + +# --------------------------------------------------------------------------- + +sub set_pagedata() +{ + my ($hostname, $username); + + # read available list of lists + &set_pagedata_list_of_lists(); + + # username and hostname + # Work out if this user has a virtual host and set input accordingly ... + if(-e "$QMAIL_BASE/virtualdomains") { + open(VD, "<$QMAIL_BASE/virtualdomains") || warn "Can't read virtual domains file: $!"; + while() { + last if(($hostname) = /(.+?):$USER/); + } + close VD; + } + if(!defined($hostname)) { + $username = "$USER-" if ($USER ne $ALIAS_USER); + $hostname = $DEFAULT_HOST; + } + $pagedata->setValue("Data.UserName", "$username"); + $pagedata->setValue("Data.HostName", "$hostname"); + + + # modules + # TODO: someone should test, if the mysql support works + $pagedata->setValue("Data.Modules.MySQL", ($Mail::Ezmlm::MYSQL_BASE)? 1 : 0); + + + # permissions + $pagedata->setValue("Data.Permissions.Create", (&webauth_create_allowed)? 1 : 0 ); + $pagedata->setValue("Data.Permissions.FileUpload", ($FILE_UPLOAD)? 1 : 0); + + + # display webuser textfield? + $pagedata->setValue("Data.WebUser.show", (-e "$WEBUSERS_FILE")? 1 : 0); + # default username for webuser file + $pagedata->setValue("Data.WebUser.UserName", $ENV{'REMOTE_USER'}||'ALL'); + + # list specific configuration + if ($q->param('list') ne '' ) + { + &set_pagedata4list(&get_list_part()); + } else { + &set_pagedata4options($DEFAULT_OPTIONS); + } +} + +# --------------------------------------------------------------------------- + +sub set_pagedata4list +{ + my $part_type = shift; + my ($list, $listname, $webusers); + my ($i, $item, @files); + my ($address, $addr_name, %pretty); + + $listname = $q->param('list'); + + if (! -e "$LIST_DIR/$listname/lock" ) { + $warning = 'ListDoesNotExist' if ($warning eq ''); + return; + } + + # Work out the address of this list ... + $list = new Mail::Ezmlm("$LIST_DIR/$listname"); + + $pagedata->setValue("Data.List.Name", "$listname"); + $pagedata->setValue("Data.List.Address", &this_listaddress); + + &set_pagedata4part_list($part_type) if ($part_type ne ''); + + $i = 0; + tie %pretty, "DB_File", "$LIST_DIR/$listname/webnames" if ($PRETTY_NAMES); + foreach $address (sort $list->subscribers($part_type)) { + if ($address ne '') { + $pagedata->setValue("Data.List.Subscribers." . $i . '.address', "$address"); + $addr_name = ($PRETTY_NAMES)? $pretty{$address} : ''; + $pagedata->setValue("Data.List.Subscribers." . $i . '.name', $addr_name); + } + $i++; + } + untie %pretty if ($PRETTY_NAMES); + + $pagedata->setValue("Data.List.hasDenyList", 1) if ($list->isdeny); + $pagedata->setValue("Data.List.hasAllowList", 1) if ($list->isallow); + $pagedata->setValue("Data.List.hasDigestList", 1) if ($list->isdigest); + + # Get the contents of some important files + $item = $list->getpart('prefix'); + $pagedata->setValue("Data.List.Prefix", "$item"); + $item = $list->getpart('headeradd'); + $pagedata->setValue("Data.List.HeaderAdd", "$item"); + $item = $list->getpart('headerremove'); + $pagedata->setValue("Data.List.HeaderRemove", "$item"); + $item = $list->getpart('mimeremove'); + $pagedata->setValue("Data.List.MimeRemove", "$item"); + $item = $list->getpart('mimereject'); + $pagedata->setValue("Data.List.MimeReject", "$item"); + $item = $list->getpart('text/trailer'); + $pagedata->setValue("Data.List.TrailingText", "$item"); + + # read message size limits + $list->getpart('msgsize') =~ m/^\s*(\d+)\s*:\s*(\d+)\s*$/; + $pagedata->setValue("Data.List.MsgSize.Max", "$1"); + $pagedata->setValue("Data.List.MsgSize.Min", "$2"); + + # TODO: this is definitely ugly - create a new sub! + if(open(WEBUSER, "<$WEBUSERS_FILE")) { + while() { + last if (($webusers) = m{^$listname\s*\:\s*(.+)$}); + } + close WEBUSER; + } + # set default if there was no list definition + $webusers ||= $ENV{'REMOTE_USER'} || 'ALL'; + + $pagedata->setValue("Data.List.WebUsers", "$webusers"); + + # get the names of the textfiles of this list + { + my($listDir); + $listDir = $LIST_DIR . '/' . $q->param('list'); + + # Read the list directory for text ... + if (opendir DIR, "$listDir/text") { + @files = grep !/^\./, readdir DIR; + closedir DIR; + $i = 0; + foreach $item (@files) { + $pagedata->setValue("Data.List.Files." . $i, "$item"); + $i++; + } + } else { + $warning = 'TextDirAccessDenied' if ($warning eq '') + } + + # text file specified? + if (($q->param('file') ne '') && ($q->param('file') =~ m/^[\w-]*$/)) { + my ($content); + $content = $list->getpart("text/" . $q->param('file')); + from_to($content,$TEXT_ENCODE,'utf8'); # by ooyama for multibyte + $pagedata->setValue("Data.List.File.Name", $q->param('file')); + $pagedata->setValue("Data.List.File.Content", "$content"); + } + } + &set_pagedata4options($list->getconfig); +} + +# --------------------------------------------------------------------------- + +sub set_pagedata4options { + my($options) = shift; + my($i, $key, $state, $value, $dir_of_list); + + $dir_of_list = $LIST_DIR . '/' . $q->param('list'); + + $i = 0; + $key = lc(substr($options,$i,1)); + # parse the first part of the options string + while ($key =~ m/\w/) { + # scan the first part of the options string for lower case letters + $state = ($options =~ /^\w*$key\w*\s*/); + $pagedata->setValue("Data.List.Options." . $key , ($state)? 1 : 0); + $i++; + $key = lc(substr($options,$i,1)); + } + + # the options "t", "p" and "x" are only used to create a default value + # they have no meaning, so we should adapt them to reality + $pagedata->setValue("Data.List.Options.t" , 1) + if (-e "$dir_of_list/text/trailer"); + $pagedata->setValue("Data.List.Options.f" , 1) + if (-e "$dir_of_list/prefix"); + $pagedata->setValue("Data.List.Options.x" , 1) + if ((-e "$dir_of_list/mimeremove") || (-e "$dir_of_list/mimereject")); + + for ($i=0; $i<9; $i++) { + unless (($i eq 1) || ($i eq 2)) { + $state = ($options =~ /$i (?:'(.+?)')/); + unless ($state) { + if ($i eq 0) { + $value = 'mainlist@' . $DEFAULT_HOST; + } elsif ($i eq 3) { + $value = 'from_address@domain.org'; + } elsif ($i eq 4) { + $value = '-t24 -m30 -k64'; + } elsif ($i eq 5) { + $value = 'owner_address@domain.org'; + } elsif ($i eq 6) { + $value = 'host:port:user:password:database:table'; + } elsif ($i eq 7) { + $value = "$dir_of_list/mod"; + } elsif ($i eq 8) { + $value = "$dir_of_list/mod"; + } + } else { + # use the configured value (extracted by the pattern matching for 'state') + $value = $1; + } + $pagedata->setValue("Data.List.Settings." . $i . ".value", $value); + $pagedata->setValue("Data.List.Settings." . $i . ".state", $state ? 1 : 0); + } + } +} + +# --------------------------------------------------------------------------- + +sub check_filename() +{ + my $filename = shift; + return ($filename =~ m/[^\w-]/) ? (1==0) : (0==0); +} + +# --------------------------------------------------------------------------- + +sub get_list_part +# return the name of the part list (deny, allow, mod, digest or '') +{ + $q->param('part') =~ m/^(allow|deny|digest|mod)$/; + return $1; +} + +# --------------------------------------------------------------------------- + +sub delete_list { + # Delete a list ... + + # Fixes a bug from the previous version ... when the .qmail file has a + # different name to the list. We use outlocal to handle vhosts ... + my ($list, $listaddress, $listadd); + $list = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list')); + if ($listadd = $list->getpart('outlocal')) { + chomp($listadd); + } else { + $listadd = $q->param('list'); + } + $listaddress = $1 if ($listadd =~ /-?(\w+)$/); + + if ($UNSAFE_RM == 0) { + # This doesn't actually delete anything ... It just moves them so that + # they don't show up. That way they can always be recovered by a helpful + # sysadmin should he/she be in the mood :) + + my $SAFE_DIR = "$LIST_DIR/_deleted_lists"; + mkdir "$SAFE_DIR", 0700 if (! -e "$SAFE_DIR"); + + # look for an unused directory name + my $i = 0; + while (-e "$SAFE_DIR/" . $q->param('list') . "-$i") { $i++; } + + $SAFE_DIR .= '/' . $q->param('list') . "-$i"; + + my ($oldfile); $oldfile = "$LIST_DIR/" . $q->param('list'); + unless (move($oldfile, $SAFE_DIR)) { + $warning = 'SafeRemoveRenameDirFailed'; + return (1==0); + } + + unless (opendir(DIR, "$HOME_DIR")) { + $warning = 'DotQmailDirAccessDenied'; + return (1==0); + } + # TODO: this could possibly move some qmail files of other lists - improve it! + my @files = map { "$HOME_DIR/$1" if m{^(\.qmail.+)$} } grep { /^\.qmail-$listaddress/ } readdir DIR; + closedir DIR; + foreach (@files) { + unless (move($_, "$SAFE_DIR")) { + $warning = 'SafeRemoveMoveDotQmailFailed'; + return (1==0); + } + } + warn "List '$oldfile' moved (deleted)"; + } else { + # This, however, does DELETE the list. I don't like the idea, but I was + # asked to include support for it so ... + unless (rmtree("$LIST_DIR/" . $q->param('list'))) { + $warning = 'UnsafeRemoveListDirFailed'; + return (1==0); + } + opendir(DIR, "$HOME_DIR") or &fatal_error("Unable to get directory listing: $!"); + my @files = map { "$HOME_DIR/$1" if m{^(\.qmail.+)$} } grep { /^\.qmail-$listaddress/ } readdir DIR; + closedir DIR; + if (unlink(@files) <= 0) { + $warning = 'UnsafeRemoveDotQmailFailed'; + return (1==0); + } + warn "List '$list->thislist()' deleted"; + } + $q->param(-name=>'list', -values=>''); +} + +# ------------------------------------------------------------------------ +sub untaint { + + $DEFAULT_HOST = $1 if $DEFAULT_HOST =~ /^([\w\d\.-]+)$/; + + # Go through all the CGI input and make sure it is not tainted. Log any + # tainted data that we come accross ... See the perlsec(1) man page ... + + my (@params, $i, $param); + @params = $q->param; + + foreach $i (0 .. $#params) { + my(@values); + next if($params[$i] eq 'mailaddressfile'); + foreach $param ($q->param($params[$i])) { + next if $param eq ''; + if ($param =~ /^([#-\@\w\.\/\[\]\:\n\r\>\< _"']+)$/) { + push @values, $1; + } else { + warn "Tainted input in '$params[$i]': " . $q->param($params[$i]); + } + $q->param(-name=>$params[$i], -values=>\@values); + } + } + + # special stuff + + # check the list name + if (($q->param('list') =~ /[^\w-]/) && ($q->param('action') !~ /^list_create_(do|ask)$/)) { + $warning = 'InvalidListName' if ($warning eq ''); + $q->param(-name=>'list', -values=>''); + } + +} + +# ------------------------------------------------------------------------ + +sub check_permission_for_action { + # test if the user is allowed to modify the choosen list or to create an new one + # the user would still be allowed to fill out the create-form (however he got there), + # but the final creation is omitted + + my $ret; + if ($action eq 'list_create_ask' || $action eq 'list_create_do') { + $ret = &webauth_create_allowed(); + } elsif (defined($q->param('list'))) { + $ret = &webauth($q->param('list')); + } else { + $ret = (0==0); + } + return $ret; +} + +# ------------------------------------------------------------------------ + +sub add_address { + # Add an address to a list .. + + my ($address, $list, $part, @addresses, $fail_count); + $list = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list')); + $part = &get_list_part(); + + $fail_count = 0; + + if (($q->param('mailaddressfile')) && ($FILE_UPLOAD)) { + # Sanity check + my $fileinfo = $q->uploadInfo($q->param('mailaddressfile')); + my $filetype = $fileinfo->{'Content-Type'}; + unless($filetype =~ m{^text/}) { + $warning = 'InvalidFileFormat'; + return (1==0); + } + + # Handle file uploads of addresses + my($fh) = $q->param('mailaddressfile'); + while (<$fh>) { + next if (/^\s*$/ or /^#/); # blank, comments + if ( /(\w[\w\.\!\#\$\%\&\'\`\*\+\-\/\=\?\^\{\|\}\~]*)@(\w[\-\w_\.]+)/) { + chomp(); + push @addresses, "$_"; + } else { + $fail_count++; + } + } + } + + # User typed in an address + if ($q->param('mailaddress_add') ne '') { + + $address = $q->param('mailaddress_add'); + $address .= $DEFAULT_HOST if ($q->param('mailaddress_add') =~ /\@$/); + + # untaint + if ($address =~ m/(\w[\w\.\!\#\$\%\&\'\`\*\+\-\/\=\?\^\{\|\}\~]*)@(\w[\-\w_\.]+)/) { + push @addresses, "$address"; + } else { + warn "invalid address to add: $address to $part"; + $warning = 'AddAddress'; + return (1==0); + } + + } + + my %pretty; + my $add; + tie %pretty, "DB_File", "$LIST_DIR/" . $q->param('list') . "/webnames" if ($PRETTY_NAMES); + foreach $address (@addresses) { + + ($add) = Mail::Address->parse($address); + if (($add->address() =~ m/^(\w[\w\.\!\#\$\%\&\'\`\*\+\-\/\=\?\^\{\|\}\~]*)@(\w[\-\w_\.]+)$/) + && !($list->issub($add->address(), $part))) { + # it seems, that we cannot trust the return value of "$list->sub" + $list->sub($add->address(), $part); + if(defined($add->name()) && $PRETTY_NAMES) { + $pretty{$add->address()} = $add->name(); + } + } else { + $fail_count++; + } + } + untie %pretty if ($PRETTY_NAMES); + if ($fail_count gt 0) { + $warning = 'AddAddress'; + return (1==0); + } else { + return (0==0); + } +} + +# ------------------------------------------------------------------------ + +sub delete_address { + # Delete an address from a list ... + + my ($list, @address); + $list = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list')); + my $part = &get_list_part(); + return (1==0) if ($q->param('mailaddress_del') eq ''); + + @address = $q->param('mailaddress_del'); + + if ($list->unsub(@address, $part) != 1) { + $warning = 'DeleteAddress'; + return (1==0); + } + + if($PRETTY_NAMES) { + my(%pretty, $add); + tie %pretty, "DB_File", "$LIST_DIR/" . $q->param('list') . "/webnames"; + foreach $add (@address) { + delete $pretty{$add}; + } + untie %pretty; + } + +} + +# ------------------------------------------------------------------------ + +sub set_pagedata4part_list { + my($part) = @_; + # Deal with list parts .... + + my ($i, $list, $listaddress,); + + # Work out the address of this list ... + $list = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list')); + $listaddress = &this_listaddress(); + + $pagedata->setValue("Data.List.PartType", "$part"); + + if($part eq 'mod') { + # do we store things in different directories? + my $config = $list->getconfig; + # empty values represent default settings - everything else is considered as evil :) + my($postpath) = $config =~ m{7\s*'([^']+)'}; + my($subpath) = $config =~ m{8\s*'([^']+)'}; + my($remotepath) = $config =~ m{9\s*'([^']+)'}; + + $pagedata->setValue("Data.List.hasPostMod", ($list->ismodpost)? 1 : 0); + $pagedata->setValue("Data.List.PostModPath", "$postpath"); + + $pagedata->setValue("Data.List.hasSubMod", ($list->ismodsub)? 1 : 0); + $pagedata->setValue("Data.List.SubModPath", "$subpath"); + + $pagedata->setValue("Data.List.hasRemoteAdmin", ($list->isremote)? 1 : 0); + $pagedata->setValue("Data.List.RemoteAdminPath", "$remotepath"); + } +} + +# ------------------------------------------------------------------------ + +sub create_list { + # Create a list according to user selections ... + + # Check if the list directory exists and create if necessary ... + unless ((-e $LIST_DIR) || (mkdir $LIST_DIR, 0700)) { + warn "Unable to create directory ($LIST_DIR): $!"; + $warning = 'ListDirAccessDenied'; + return (1==0); + } + + my ($qmail, $listname, $options, $i); + + # Some taint checking ... + $qmail = $1 if $q->param('inlocal') =~ /(?:$USER-)?([^\<\>\\\/\s]+)$/; + $listname = $q->param('list'); + if ($listname =~ m/[^\w\.-]/) { + $warning = 'InvalidListName'; + return (1==0); + } + + # Sanity Checks ... + if ($listname eq '') { + $warning = 'EmptyListName'; + return (1==0); + } + if (($listname =~ m/^ALL$/i) || ($listname =~ m/^ALLOW_CREATE$/i)) { + $warning = 'ReservedListName'; + return (1==0); + } + if ($qmail eq '') { + $warning = 'InvalidLocalPart'; + return (1==0); + } + if (-e "$LIST_DIR/$listname/lock") { + $warning = 'ListNameAlreadyExists'; + return (1==0); + } + if (-e "$HOME_DIR/.qmail-$qmail") { + $warning = 'ListAddressAlreadyExists'; + return (1==0); + } + + $options = &extract_options_from_params(); + + my($list) = new Mail::Ezmlm; + + unless ($list->make(-dir=>"$LIST_DIR/$listname", + -qmail=>"$HOME_DIR/.qmail-$qmail", + -name=>$q->param('inlocal'), + -host=>$q->param('inhost'), + -switches=>$options, + -user=>$USER) + ) { + # fatal error + $customWarning = $list->errmsg(); + return (1==0); + } + + # handle MySQL stuff + if(defined($q->param('setting_state_6')) && $options =~ m/-6\s+/) { + $customWarning = $list->errmsg() unless($list->createsql()); + } + + # no error returned - just a warning + $warning = 'WebUsersUpdate' unless (&update_webusers()); + + return (0==0); +} + +# ------------------------------------------------------------------------ + +sub extract_options_from_params() +{ + # Work out the command line options ... + my ($options, $avail_options, $settings, $avail_settings, $i); + my ($listname, $list, $old_options, $state, $old_key); + + # NOTE: we have to define _every_ (even unchanged) setting + # as ezmlm-make removes any undefined value + + $listname = $q->param('list'); + $list = new Mail::Ezmlm("$LIST_DIR/$listname"); + $old_options = $list->getconfig(); + + ################ options ################ + $i = 0; + $old_key = substr($old_options,$i,1); + $avail_options = $q->param('options_available'); + # parse the first part of the options string + while ($old_key =~ m/\w/) { + # scan the first part of the options string for lower case letters + if ($avail_options =~ m/$old_key/i) { + my $form_var_name = "option_" . lc($old_key); + # this option was visible for the user + if (defined($q->param($form_var_name))) { + $options .= lc($old_key); + } else { + $options .= uc($old_key); + } + } elsif ("cevz" =~ m/$old_key/i) { + # ignore invalid settings (the output of "getconfig" is really weird!) + } else { + # import the previous set option + $options .= $old_key; + } + $i++; + $old_key = substr($old_options,$i,1); + } + + + ############### settings ################ + $avail_settings = $q->param('settings_available'); + for ($i=0; $i<9; $i++) { + if ($avail_settings =~ m/$i/) { + # this setting was visible for the user + $options .= " -$i '" . $q->param("setting_value_$i") . "'" + if (defined($q->param("setting_state_$i"))); + } else { + # import the previous setting + $state = ($old_options =~ /$i (?:'(.+?)')/); + $options .= " -$i '$1'" if ($state); + } + } + + return $options; +} + +# ------------------------------------------------------------------------ + +sub update_config { + # Save the new user entered config ... + + my ($list, $options, @inlocal, @inhost, $dir_of_list); + my ($old_msgsize); + + $list = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list')); + $dir_of_list = $LIST_DIR . '/' . $q->param('list'); + + $options = &extract_options_from_params(); + + # save the settings, that are generally overwritten by ezmlm-make :((( + # good candidates are: msgsize, inhost, inlocal and outhost + # maybe there are some others? + $old_msgsize = $list->getpart('msgsize'); + + # Actually update the list ... + unless($list->update($options)) { + $warning = 'UpdateConfig'; + return (1==0); + } + + # update trailing text + # remove old one if the checkbox was not active + if (defined($q->param('trailing_text'))) { + if (defined($q->param('option_t'))) { + $list->setpart('text/trailer', $q->param('trailing_text')); + } else { + unlink("$dir_of_list/text/trailer"); + } + } + + # update prefix text + # remove old one if the checkbox was not active + if (defined($q->param('prefix'))) { + if (defined($q->param('option_f'))) { + $list->setpart('prefix', $q->param('prefix')) + } else { + unlink("$dir_of_list/prefix"); + } + } + + # update mimeremove + # remove old one if the checkbox was not active + if (defined($q->param('mimeremove'))) { + if (defined($q->param('option_x'))) { + $list->setpart('mimeremove', $q->param('mimeremove')) + } else { + unlink("$dir_of_list/mimeremove"); + } + } + + # update mimereject + # remove old one if the checkbox was not active + if (defined($q->param('mimereject'))) { + if (defined($q->param('option_x'))) { + $list->setpart('mimereject', $q->param('mimereject')) + } else { + unlink("$dir_of_list/mimereject"); + } + } + + # Update headeradd and headerremove if these options were visible + $list->setpart('headeradd', $q->param('headeradd')) + if (defined($q->param('headeradd'))); + $list->setpart('headerremove', $q->param('headerremove')) + if (defined($q->param('headerremove'))); + + if (defined($q->param('msgsize_max_value')) && defined($q->param('msgsize_min_value'))) { + my ($minsize, $maxsize); + $maxsize = (defined($q->param('msgsize_max_state'))) ? + $q->param('msgsize_max_value') : 0; + $minsize = (defined($q->param('msgsize_min_state'))) ? + $q->param('msgsize_min_value') : 0; + $list->setpart('msgsize', "$maxsize:$minsize"); + } else { + # restore the original value, as ezmlm-make always overrides these values :((( + $list->setpart('msgsize', "$old_msgsize"); + } + + unless (&update_webusers()) { + $warning = 'WebUsersUpdate'; + return (1==0); + } + + return (0==0); +} + +# ------------------------------------------------------------------------ + +sub update_webusers { + # replace existing webusers-line or add a new one + + # return if there is no webusers entry + return (0==0) unless defined($q->param('webusers')); + + # Back up web users file + my $temp_file; + my $fh; + # generate a temporary filename (as suggested by the Perl Cookbook) + do { $temp_file = tmpnam() } + until $fh = IO::File->new($temp_file, O_RDWR|O_CREAT|O_EXCL); + close $fh; + unless (open(TMP, ">$temp_file")) { + warn "could not open a temporary file"; + return (1==0);; + } + open(WU, "<$WEBUSERS_FILE"); + while() { print TMP; } + close WU; close TMP; + + my $matched = 0; + my $listname = $q->param('list'); + my $webusers_filtered = $q->param('webusers'); + # remove any insecure characters (e.g. a line break :)) + $webusers_filtered =~ s/[^\w_,-]/ /gs; + open(TMP, "<$temp_file"); + unless (open(WU, ">$WEBUSERS_FILE")) { + warn "the webusers file ($WEBUSERS_FILE) is not writable"; + return (0==1); + } + while() { + if ($_ =~ m/^$listname\s*:/i) { + print WU $listname . ': ' . $webusers_filtered . "\n" if ($matched == 0); + $matched = 1; + } else { + print WU $_; + } + } + # append the line, if there was no matching line found before + print WU $listname . ': ' . $webusers_filtered . "\n" if ($matched == 0); + + close TMP; close WU; + unlink "$temp_file"; +} + +# ------------------------------------------------------------------------ + +sub this_listaddress { + # Work out the address of this list ... Used often so put in its own subroutine ... + + my ($list, $listaddress); + $list = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list')); + chomp($listaddress = $list->getpart('outlocal')); + $listaddress .= '@'; + chomp($listaddress .= $list->getpart('outhost')); + return $listaddress; +} + +# ------------------------------------------------------------------------ + +sub save_text { + # Save new text in DIR/text ... + + my ($list) = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list')); + my ($content) = $q->param('content'); + from_to($content,'utf8',$TEXT_ENCODE); # by ooyama for multibyte + unless ($list->setpart("text/" . $q->param('file'), $content)) { + $warning = 'SaveFile'; + return (1==0); + } +} + +# ------------------------------------------------------------------------ + +sub webauth { + my $listname = shift; + + # Check if webusers file exists - if not, then access is granted + return (0==0) if (! -e "$WEBUSERS_FILE"); + + # if there was no user authentication, then everything is allowed + return (0==0) if ($ENV{'REMOTE_USER'} eq ''); + + # Read authentication level from webusers file. Format of this file is + # somewhat similar to the unix groups file + unless (open (USERS, "<$WEBUSERS_FILE")) { + warn "Unable to read webusers file ($WEBUSERS_FILE): $!"; + $warning = 'WebUsersRead'; + return (1==0); + } + + # TODO: check, why "directly after creating a new list" this does not + # work without the "m" switch for the regexp - very weird! + # the same goes for webauth_create_allowed + # maybe the creating action changed some file access defaults? + while() { + if (/^($listname|ALL):/im) { + # the following line should be synchronized with the webauth_create_allowed sub + if (/^[^:]*:(|.*[\s,])($ENV{'REMOTE_USER'}|ALL)(,|\s|$)/m) { + close USERS; + return (0==0); + } + } + } + close USERS; + return (1==0); +} + +# --------------------------------------------------------------------------- + +sub webauth_create_allowed { + + # Check if we were called with the deprecated argument "-c" (allow to create lists) + return (0==0) if (defined($opt_c)); + + # if there was no user authentication, then everything is allowed + return (0==0) if ($ENV{'REMOTE_USER'} eq ''); + + # Check if webusers file exists - if not, then access is granted + return (0==0) if (! -e "$WEBUSERS_FILE"); + + # Read create-permission from webusers file. + # the special listname "ALLOW_CREATE" controls, who is allowed to do it + unless (open (USERS, "<$WEBUSERS_FILE")) { + warn "Unable to read webusers file ($WEBUSERS_FILE): $!"; + $warning = 'WebUsersRead'; + return (1==0); + } + + while() { + if (/^ALLOW_CREATE:/im) { + # the following line should be synchronized with the webauth sub + if (/[:\s,]($ENV{'REMOTE_USER'}|(ALL))(,|\s|$)/m) { + close USERS; + return (0==0); + } + } + } + close USERS; + return (1==0); +} + +# --------------------------------------------------------------------------- + +sub rmtree { + # A subroutine to recursively delete a directory (like rm -f). + # Based on the one in the perl cookbook :) + + use File::Find qw(finddepth); + File::Find::finddepth sub { + # assume that File::Find::name is secure since it only uses data we pass it + my($name) = $File::Find::name =~ m{^(.+)$}; + + if (!-l && -d _) { + rmdir($name) or warn "couldn't rmdir $name: $!"; + } else { + unlink($name) or warn "couldn't unlink $name: $!"; + } + }, @_; + 1; +} + +# ------------------------------------------------------------------------ + +sub fatal_error() { + my $text = shift; + + print "Content-Type: text/html; charset=utf-8\n\n"; + print "\n"; + print "ezmlm-web\n"; + print "

a fatal error occoured!

\n"; + print "

$text

\n"; + print "

check the error log of your web server for details

\n"; + print "\n"; + die "$text"; +} + +# ------------------------------------------------------------------------ +# End of ezmlm-web.cgi v2.3 +# ------------------------------------------------------------------------ +__END__ + +=head1 NAME + +ezmlm-web - A web configuration interface to ezmlm mailing lists + +=head1 SYNOPSIS + +ezmlm-web [B<-c>] [B<-C> EFE] [B<-d> EFE] + +=head1 DESCRIPTION + +=over 4 + +=item B<-C> Specify an alternate configuration file given as F +If not specified, ezmlm-web checks first in the users home directory, then in +F and then the current directory + +=item B<-d> Specify an alternate directory where lists live. This is now +depreciated in favour of using a custom ezmlmwebrc, but is left for backward +compatibility. + +=back + +=head1 SUID WRAPPER + +C<#include stdio.h> + +C + C + C +C<}> + + +=head1 DOCUMENTATION/CONFIGURATION + + Please refer to the example ezmlmwebrc which is well commented, and + to the README file in this distribution. + +=head1 FILES + +F<~/.ezmlmwebrc> +F +F<./ezmlmwebrc> + +=head1 AUTHOR + + Guy Antony Halse + Lars Kruse + +=head1 BUGS + + None known yet. Please report bugs to the author. + +=head1 S + + ezmlm(5), ezmlm-cgi(1), Mail::Ezmlm(3) + + https://systemausfall.org/toolforge/ezmlm-web + http://rucus.ru.ac.za/~guy/ezmlm/ + http://www.ezmlm.org/ + http://www.qmail.org/ diff --git a/ezmlm-web-3.0.2/ezmlmwebrc b/ezmlm-web-3.0.2/ezmlmwebrc new file mode 100644 index 0000000..7f6d6ac --- /dev/null +++ b/ezmlm-web-3.0.2/ezmlmwebrc @@ -0,0 +1,63 @@ +# Configuration file for ezmlm-web 2.3 +# =========================================================================== + +# This file is not just an ordinary configuration file - it contains valid +# perl statements that are executed just like any other perl script. When +# editing this file, be careful that it is still valid perl when you have +# finished (perl -w ezmlmwebrc ;-) + +# --------------------------------------------------------------------------- + +# Where do we store lists on this server ... Try "$HOME_DIR/lists". +# This directory will automatically be created if needed. +$LIST_DIR = "$HOME_DIR/lists"; + +# Where is the webusers file for access-permissions +# defaults to "$LIST_DIR/webusers" +$WEBUSERS_FILE = "$LIST_DIR/webusers"; + +# Where are the language files +# usually something like /usr/local/share/ezmlm-web/lang +$LANGUAGE_DIR = "/usr/local/share/ezmlm-web/lang"; + +# Where are the template files +# usually something like /usr/local/share/ezmlm-web/template +$TEMPLATE_DIR = "/usr/local/share/ezmlm-web/template"; + +# Safe list deletion? +# 0 = move list to $LIST_DIR/_deleted_lists -> recoverable :) +# 1 = allow user to delete list completely. No backup, therefore no recovery. +$UNSAFE_RM = 0; + +# Who is the qmail alias user on this system (usually alias ;) +$ALIAS_USER = 'alias'; + +# Where do the qmail control files live on this system ... +$QMAIL_BASE = $Mail::Ezmlm::QMAIL_BASE . '/control'; + +# default mailing list domain name (optional) +#$MAIL_DOMAIN = 'lists.someserver.org'; + +# Do we want to allow ``pretty'' names - ie more human readable ones +# This will slow ezmlm-web down a bit for large lists +$PRETTY_NAMES = 1; + +# Do we want to allow the users to be allowed to upload a file containing +# lists of email addresses to subscribe? +$FILE_UPLOAD = 1; + +# What switches to we want ezmlm-web to have on as default. The ezmlm-make +# defaults are aBDFGHIJKLMNOpQRSTUWX (small means enabled, CAPITALS mean +# disabled). The defaults below should be reasonable - I use them ;) +$DEFAULT_OPTIONS = 'aBDFGHiJkLMNOpQRSTUWx'; + +# What is the title of this document? +$HTML_TITLE = "ezmlm-web - a mailinglists' administration interface"; + +# Optional: use a cascading style sheet (css) +# this is a URL - you have to copy the css file to the right location before +$HTML_CSS_FILE = "/ezmlm-web.css"; + +# choose a language (en|de) +$HTML_LANGUAGE = 'en'; + diff --git a/ezmlm-web-3.0.2/htaccess.sample b/ezmlm-web-3.0.2/htaccess.sample new file mode 100644 index 0000000..0599b5b --- /dev/null +++ b/ezmlm-web-3.0.2/htaccess.sample @@ -0,0 +1,7 @@ +#order deny,allow +#deny from all +#allow from .ru.ac.za +AuthName "EZ Mailing List Manager" +AuthType Basic +AuthUserFile /etc/ezmlm/.htusers +require valid-user diff --git a/ezmlm-web-3.0.2/index.c b/ezmlm-web-3.0.2/index.c new file mode 100644 index 0000000..3ba9cc1 --- /dev/null +++ b/ezmlm-web-3.0.2/index.c @@ -0,0 +1,25 @@ +/* $Id: index.c,v 1.2 2000/09/25 18:14:12 guy Exp $ */ + +#include + +/* C wrapper to allow ezmlm-web.cgi to run suid */ +/* Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved */ +/* See the README file in this distribution for copyright information */ + +int main(void) { + /* Change this path to wherever you decided to put ezmlm-web.cgi */ + execv("/usr/local/bin/ezmlm-web.cgi"); + + /* Note that you could also use the following to allow a specific user + to store their mailing lists in a different directory defined by + /tmp/ezmlm-web-demo ... This over-rides the default . */ + + /* Look at the exec(3) man page if you don't understand how the arguments + list below works */ + + /* + char *switches[] = { "ezmlm-web.cgi", "-d", "/tmp/ezmlm-web-demo", NULL }; + execv("/usr/local/bin/ezmlm-web.cgi", switches); + */ + +} diff --git a/ezmlm-web-3.0.2/lang/de.hdf b/ezmlm-web-3.0.2/lang/de.hdf new file mode 100644 index 0000000..326f572 --- /dev/null +++ b/ezmlm-web-3.0.2/lang/de.hdf @@ -0,0 +1,224 @@ +LanguageID = de + +LanguageName = Deutsch + +Lang { + + Menue { + ListCreate = Neue Liste anlegen + ListDelete = Liste löschen + Subscribers = AbonnentInnen + AllowList = Zulassungsliste + DenyList = Ablehnungsliste + DigestList = Zusammenfassung + ModList = ModeratorInnen + ConfigMain = Einstellungen + ConfigSub = Einschreibung + ConfigPost = Einsendung + ConfigAdmin = Administration + ConfigArchive = Archivierung + ConfigProcess = Verarbeitung + ConfigAll = Übersicht + TextFiles = Texte + ListSelect = Auswahl einer Liste + Properties = Eigenschaften von + Help = Hilfe (extern) + } + + + Title { + ConfigMain = Listeneinstellungen + ConfigSub = Einschreibungsregeln + ConfigPosting = Einsendungsregeln + ConfigAdmin = Fern-Administration der Liste + ConfigArchive = Archivierung der Liste + ConfigProcess = Nachrichtenverarbeitung + ConfigAll = Einstellungen im Überblick + SubscriberList = AbonnentInnen der Liste + AllowList = Zugelassene Nutzer + DenyList = Abzuweisende Nutzer + DigestList = EmpfängerInnen von Zusammenfassungen + ModList = ModeratorInnen der Liste + ListCreate = Anlegen einer neuen Liste + ListSelect = Auswählen einer Liste + ListDelete = Löschung von + FileSelect = Auswählen eines Textbausteins + FileEdit = Bearbeitung des Textbausteins + } + + + Buttons { + Create = Erzeuge die Liste + ConfirmDeletion = Lösche die Liste + DeleteAddress = Adresse(n) entfernen + AddAddress = Adresse(n) hinzufügen + UpdateConfiguration = Einstellungen speichern + EditFile = Datei bearbeiten + SaveFile = Datei speichern + } + + + ErrorMessage { + UnknownAction = Diese Aktion ist undefiniert! + ParameterMissing = Diese Aktion benätigt weitere Parameter! + Forbidden = Fehler: dir fehlen die notwendigen Rechte für diese Aktion + InvalidFileName = Der Dateiname ist nicht zulässig. + UnknownConfigPage = Die gähle Konfigurations-Seite existiert nicht! + } + + + WarningMessage { + AddAddress = Mindestens eine Mailadresse konnte nicht hinzugefügt werden! + DeleteAddress = Mindestens eine der angegebenen Adressen konnte nicht entfernt werden! + CreateList = Fehler beim Anlegen der neuen Liste! + DeleteList = Die Löschung der Mailingliste schlug fehl! + UpdateConfig = Beim Speichern der Einstellungen trat ein Fehler auf! + SaveFile = Die Datei konnte nicht gespeichert werden! + ListNameAlreadyExists = Es gibt bereits eine Liste mit diesem Namen. + ListAddressAlreadyExists = Es gibt bereits eine Liste mit dieser Adresse. + ListDoesNotExist = Eine Liste dieses Namens existiert nicht. + ListDirAccessDenied = Fehler beim Zugriff auf das Verzeichnis der Liste + TextDirAccessDenied = Beim Zugriff auf das Text-Verzeichnis der Liste trat ein Fehler auf. + SafeRemoveRenameDirFailed = Das Verschieben der Liste schlug fehl. + DotQmailDirAccessDenied = Fehler beim Zugriff auf das Nutzerverzeichnis des Listenverwalters + SafeRemoveMoveDotQmailFailed = Beim Verschieben der .qmail-Dateien trat ein Fehler auf! + UnsafeRemoveListDirFailed = Fehler beim sicheren Löschen der Mailingliste + UnsafeRemoveDotQmailFailed = Fehler beim Löschen der .qmail-Dateien + InvalidFileFormat = Die gewählte Datei konnte nicht als Textdatei erkannt werden. + WebUsersUpdate = Fehler beim Aktualisieren der Nutzerverwaltungsdatei + WebUsersRead = Fehler beim Lesen der Nutzerverwaltungsdatei + InvalidListName = Der gewählte Listenname enthält unzulässige Zeichen + ReservedListName = Dieser Listenname ist ein reserviertes Wort und kann nicht benutzt werden + EmptyListName = Es wurde kein Name für die Listen angegeben. + InvalidLocalPart = Die gewählte untergeordnete Liste ist ungültig. + } + + + SuccessMessage { + AddAddress = Einschreibung erfolgreich + DeleteAddress = Austragung erfolgreich abgeschlossen + CreateList = Die neue Liste wurde erfolgreich angelegt. + DeleteList = Die Mailingliste wurde gelöscht. + UpdateConfig = Die neuen Einstellungen wurden erfolgreich gespeichert. + SaveFile = Die Datei wurde gespeichert. + } + + + Options { + a = Archiviere Mailinglisten-Mails + b = Nur Moderatoren dürfen auf das Archiv zugreifen + d = Aktiviere die Zusammenfassungsliste + f = Füge ein Präfix zum Betreff der ausgehenden Mails hinzu + g = Verweigere unbekannten NutzerInnen den Zugriff auf das Archiv + h = Bei der Einschreibung in die Liste ist keine Bestätigungsmail erforderlich + i = Indiziere die Nachrichten zur Veröffentlichung im Internet (z.B. mit ezmlm-www) + j = Beim Austragen aus der Liste ist keine Bestätigungsmail erforderlich + k = Beachte die Ablehnungsliste bei der Verarbeitung von Mails + l = Fern-AdministratorInnen (ModeratorInnen) dürfen eine Liste der AbonnentInnen anfordern + m = Alle eingehenden Nachrichten werden moderiert + n = Fern-AdministratorInnen (ModeratorInnen) dürfen Textbausteine per Mail verändern + o = Nur ModeratorInnen dürfen Nachrichten einsenden + p = Die Einschreibung und der Zugriff auf das Archiv sind öffentlich zugänglich + q = Verarbeite auch Anfragen im Mailman-Stil (Kompatibilität) + r = Erlaube die Fern-Administration der Liste (für ModeratorInnen) + s = Die Einschreibung in die Liste und für die Zusammenfassungen wird moderiert + t = Hänge eine Signatur an jede versandte Nachricht + u = Nur Einsendungen von AbonnentInnen werden akzeptiert (für moderierte Listen: akzeptiere alle Einsendungen von AbonnentInnen) + w = Entferne den Aufruf von ezmlm-warn aus den Verarbeitungsregeln (für sehr spezielle Konfigurationen) + x = Prüfe die MIME-Typen der Anhänge eingehender Nachrichten + y = Fordere eine Bestätigung für jede eingesandte Nachricht an + } + + + Settings { + 0 = Diese Liste is nur eine Unterliste + 3 = Definiere die Absender-Adresse ausgehender Mails + 4 = Eigene Einstellungen zum Versand von Zusammenfassungsmails (ezmlm-tstdig) + 5 = Lege die Mailadresse des Verantwortlichen für diese Liste fest + 6 = Verwende eine SQL-Datenbank + 7 = Die Datenbank der Nachrichten-ModeratorInnen befindet sich in einem alternativen Verzeichnis + 8 = Die Datenbank der Einschreibe-ModeratorInnen (und Fern-AdministratorInnen) befindet sich in einem alternativen Verzeichnis + # 9 => not used - it is only an alternative to (8) + } + + + Misc { + HelpLink = Das online-Handbuch von ezmlm-idx + Subscription = Einschreibung + Subscribers = AbonnentInnen + RemoteAdmin = Fern-AdministratorIn + ListName = Name der Liste + ListAddress = Addresse der Liste + ListOptions = Grundlegende Einstellungen + AllowedToEdit = Nutzer, die diese Liste per Web-Interface konfigurieren dürfen: + HeaderRemove = zu entfernende Kopfzeilen + HeaderAdd = hinzuzufügende Kopfzeilen + MimeRemove = Nachrichtenbestandteile dieses Typs werden entfernt + MimeReject = Nachrichten, die einen der folgenden Datentypen enthalten, werden abgewiesen + EditFileInfo { + CommonTags = allgemeine Platzhalter + ListNameLocal = der lokale Teil (vor dem "@") der Listenadresse + ListNameHost = die Domain der Mailadresse + MessageNumber = die Nummer der jeweiligen Nachricht + SubAddress = die Einschribe-Adresse + SubReplyAddress = die Bestätigungsadresse + AcceptanceAddress = die Zustimmungsadresse + RejectionAddress = die Ablehnungsadresse + } + SuggestDefaultPath = Ansonsten musst du diese Mitglieder per Hand verwalten. + PostModPathWarn = Die Nachrichten-ModeratorInnen werden nicht an ihrem üblichen Ort gespeichert. + SubModPathWarn = Die Einschreibe-ModeratorInnen werden nicht an ihrem üblichen Ort gespeichert. + RemoteAdminPathWarn = Die Fern-AdministratorInnen werden nicht an ihrem üblichen Ort gespeichert. + MessageSize.Max = Verweigere die Annahme von Nachrichten, die eine gewisse Größe überschreiten + MessageSize.Min = Verweigere die Annahme von Nachrichten, die eine gewisse Größe unterschreiten + MessageSize.Unit = Bytes + NoFiles = Es befinden sich keine Dateien im Text-Verzeichnis der Mailingliste. + AddSubscriberAddress = Füge eine neue Mailadresse hinzu: + AddSubscriberFile = Importiere eine Datei, die Mailadressen enthält: + SuggestDefaultPath = Es wird empfohlen, das Standard-Verzeichnis zu verwenden. Andernfalls kannst du die ModeratorInnen-Liste nicht mit ezmlm-web verwalten. + FooterText = eine Web-Oberfläche für + NoListsAvailable = Es sind keine passenden Listen vorhanden. + ConfirmDelete = Willst du wirklich diese Liste vollständig löschen? + } + + + Introduction { + ConfigAdmin = Fern-AdministratorInnen sind (per Voreinstellung) auch ModeratorInnen für die Einschreibung und für eingesandte Mails. Sie können berechtigt sein, per Mail Nutzer ein- und auszutragen, sowie Textbausteine zu verändern. + ConfigArchive = Das Mailinglisten-Archiv ist per Mail verfügbar. Außerdem benötigst du ein Archiv, falls du vergangene Mails im Internet zur Verfügung stellen möchtest (z.B. mit ezmlm-www). + ConfigProcess = Die folgenden Regeln werden auf alle Mails angewandt, bevor sie an die AbonnentInnen verteilt werden. + ConfigMain = Hier findest du ein paar allgemeine Einstellungen der Mailingliste, die sich nicht in den themenorientierten Rubriken unterbringen ließen. + ConfigPosting = Die Einsende-Konfiguration bestimmt, wer Nachrichten einsenden darf und welchen Bedingungen die Mails genügen müssen. + ConfigSub = Hier kannst du festlegen, wer sich als Abonnent selbständig eintragen darf und wie der Einschreibungsprozess abläuft. + ConfigAll = Diese Seite enthält alle verfügbaren Optionen auf einen Blick. + ListDelete = Die Mailingliste und alle damit verbundenen Daten werden hiermit vollständig entfernt. + AllowList = An die Adressen der Zulassungsliste werden keine Mails verschickt. Einsendungen von diesen Adressen werden so behandelt, als kämen sie von AbonnentInnen. Üblicherweise solltest du Aliase von AbonnentInnen in die Zulassungsliste eintragen. + DenyList = Falls du Mails von bestimmte Mailadressen verweigern möchtest, dann füge sie einfach zur Ablehnungsliste hinzu Dies kann nützlich sein, um unbeliebte Nutzer auszuschließen oder um störende Abwesenheitsbenachrichtigungen zu verhindern. + DigestList = Einige AbonnentInnen deiner Mailingliste sind möglicherweise nicht an jeder einzelnen Nachricht interessiert, sondern ziehen es vor, stattdessen regelmäßig automatisch erstellte Zusammenfassungen zu erhalten. + ModList = ModeratorInnen (für die Einschreibung von AbonnentInnen und die Einsendungen an die Liste) und Fern-AdministratorInnen können die Kontrolle über viele wichtige Aspekte der Liste übernehmen (falls du sie dementsprechend konfigurierst). + SubscriberList = Die AbonnentInnen der Mailingliste empfangen alle versandten Nachrigten der Liste. Zudem kann es ihnen gestattet sein, Nachrichten direkt oder indirekt zur weiteren Verteilung an die Liste zu senden. Oft ist es anonymen Nutzern gestattet, sich selbständig in die Mailingliste einzuschreiben, ohne die Hilfe eines Administrators in Anspruch nehmen zu müssen. + TextFiles = Das Auswahlfeld beinhaltet die Liste aller verfügbaren Textbausteine im Texte-Verzeichnis der Liste. Diese Textbasuteine werden zur Erstellung der automatischen Antworten der Mailingliste benutzt. + EditTextFile = Passe den Textbaustein an die Erfordernisse der Liste an. Eventuell möchtest du dafür auch einige der reservierten Platzhalter verwenden, die am Ende dieser Seite aufgeführt sind. + } + + Legend { + ConfigAdmin = Fern-Administrations-Rechte + ConfigArchve = Archivierungseinstellungen + ConfigPosting = Einsende-Regeln + ConfigSub = Einschreibungsdetails + ConfigMain = Allgemeine Listen-Einstellungen + ConfigProcess = Verarbeitungsregeln + ConfigAll = Einstellungen + ListCreate = Eigenschaften der neuen Liste + ListDelete = Löschung der Mailingliste + RelevantOptions = Relevante Optionen + MembersList = AbonnentInnen-Verwaltung + MembersAllow = Verwaltung der zulässigen Adressen + MembersDeny = Verwaltung der abzulehnenden Adressen + MembersDigest = Verwaltung der AbonnentInnen der Zusammenfassungen + MembersMod = Verwaltung der ModeratorInnen / AdministratorInnen + TextFiles = Verfügbare Textbausteine + TextFileEdit = Bearbeite einen Textbaustein + TextFileInfo = Nützliche Platzhalter + AvailableLists = Verfügbare Listen + } +} diff --git a/ezmlm-web-3.0.2/lang/en.hdf b/ezmlm-web-3.0.2/lang/en.hdf new file mode 100644 index 0000000..af1adc2 --- /dev/null +++ b/ezmlm-web-3.0.2/lang/en.hdf @@ -0,0 +1,224 @@ +LanguageID = en + +LanguageName = English + +Lang { + + Menue { + ListCreate = Create new list + ListDelete = Delete list + Subscribers = Subscribers + AllowList = allow list + DenyList = deny list + DigestList = digest list + ModList = moderators + ConfigMain = Options + ConfigSub = subscription + ConfigPost = posting + ConfigAdmin = administration + ConfigArchive = archive + ConfigProcess = processing + ConfigAll = overview + TextFiles = Text files + ListSelect = Choose a list + Properties = Properties of + Help = Help (external) + } + + + Title { + ConfigMain = List configuration + ConfigSub = Subscription options + ConfigPosting = Posting options + ConfigAdmin = Remote administration + ConfigArchive = Archive options + ConfigProcess = Message processing + ConfigAll = Complete configuration + SubscriberList = Subscribers of the list + AllowList = Allowed users + DenyList = Blocked users + DigestList = Digest subscribers + ModList = Moderators of the mailinglist + ListCreate = Create a new list + ListSelect = Choose a list + ListDelete = Delete list + FileSelect = Choose a file for editing + FileEdit = Editing file + } + + + Buttons { + Create = Create list + ConfirmDeletion = Delete the list + DeleteAddress = Delete address(es) + AddAddress = Add address(es) + UpdateConfiguration = Update configuration + EditFile = Edit file + SaveFile = Save File + } + + + ErrorMessage { + UnknownAction = this action is undefined + ParameterMissing = this action needs one or more parameters + Forbidden = Error: you are not allowed to do this! + InvalidFileName = The name of the file is invalid! + UnknownConfigPage = The chosen config page is invalid! + } + + + WarningMessage { + AddAddress = Adding of at least one mail address failed! + DeleteAddress = Removal of at least one mail address failed! + CreateList = Creation of new mailing list failed! + DeleteList = Removal of mailing list failed! + UpdateConfig = Update of configuration failed! + SaveFile = The file could not be saved! + ListNameAlreadyExists = There is already a list with this name! + ListAddressAlreadyExists = There is already a list with this address! + ListDoesNotExist = A list with this name does not exist! + ListDirAccessDenied = Unable to access the list's directory + TextDirAccessDenied = Unable to access the list's directory of text files + SafeRemoveRenameDirFailed = Unable to rename list for safe removal + DotQmailDirAccessDenied = Unable to read the mail user's home directory for .qmail files + SafeRemoveMoveDotQmailFailed = Unable to move .qmail files + UnsafeRemoveListDirFailed = Unable to delete list + UnsafeRemoveDotQmailFailed = Unable to delete .qmail files + InvalidFileFormat = The uploaded file must be a text file + WebUsersUpdate = Could not update the webusers file + WebUsersRead = Could not read the webusers file + InvalidListName = The name of the list contains invalid characters + ReservedListName = This listname may not be used as it is reserved for internal purposes + EmptyListName = The name of the list may not be empty + InvalidLocalPart = The local part of the list address is not valid + } + + + SuccessMessage { + AddAddress = The address was added to the list. + DeleteAddress = The address was removed from the list. + CreateList = The new mailing list was successfully created. + DeleteList = The mailing list was successfully removed. + UpdateConfig = The mailing list's configuration was successfully changed. + SaveFile = The file was saved. + } + + + Options { + a = Archive mailing list messages + b = Only moderators are allowed to access the archive + d = Activate the digest list + f = Add a prefix to the subject line of outgoing messages + g = Archive requests from unrecogniced senders are denied + h = Subscriptions do not require confirmation by the user + i = Index mailing list messages for WWW archive access + j = Unsubscribe does not require confirmation + k = Use deny list to prevent some users from posting + l = Remote administrators (moderators) may request a subscriber list + m = All incoming messages are moderated + n = Remote administrators (moderators) may edit text files in DIR/text + o = Only moderators may post + p = Allow subscription and archive retrieval for everyone + q = Process mailman-style requests (to local-request@domain) + r = Enable remote administration of the list (for moderators) + s = Subscriptions to the main list and the digest list will be moderated + t = Add a trailing text to every message + u = Only subscribed users may post messages (for a moderated list: always accept subscribers' postings) + w = Remove the ezmlm-warn invocations from the list setup (rarely useful) + x = Remove or reject specific mime types in messages + y = Request a confirmation mail for every posted message + } + + + Settings { + 0 = Make the list a sublist of list mainlist@host + 3 = Set a custom "From:" header for outgoing messsages + 4 = Define customized setting for digest creation (ezmlm-tstdig) + 5 = Define the email address of the list owner + 6 = Use a SQL database + 7 = Define a custom path to the database for posting moderators + 8 = Define a custom path to the database for remote administrators and subscription moderators + # 9 => not used - it is only an alternative to (8) + } + + + Misc { + HelpLink = The manual page of ezmlm-idx + Subscription = Subscription + Subscribers = subscribers + RemoteAdmin = Remote Admin + ListName = List Name + ListAddress = List Address + ListOptions = Basic List Options + AllowedToEdit = Users allowed to edit this list via web interface: + HeaderRemove = Headers to strip from every outgoing mail + HeaderAdd = Headers to add to all outgoing mail + MimeRemove = Mime types to strip from all outgoing mail + MimeReject = Messages containing any of these mime type will be rejected + EditFileInfo { + CommonTags = common tags + ListNameLocal = The local part of the list name + ListNameHost = The host name of the list name + MessageNumber = Number of the respective message + SubAddress = The subscription address + SubReplyAddress = The address a subscriber must reply to + AcceptanceAddress = The acceptance address + RejectionAddress = The rejection address + } + SuggestDefaultPath = You will have to manage them manually. + PostModPathWarn = Posting moderators are stored in a non-standard location + SubModPathWarn = Subscription moderators are stored in a non-standard location + RemoteAdminPathWarn = Remote administrators are stored in a non-standard location + MessageSize.Max = Reject messages exceeding a specified value + MessageSize.Min = Reject messages smaller than a specified value + MessageSize.Unit = bytes + NoFiles = There are no files in the text directory of the mailinglist. + AddSubscriberAddress = Add a new mail address: + AddSubscriberFile = Upload a file containing mail addresses to be added: + SuggestDefaultPath = It is recommended to use the default path for the moderation database. Otherwise you cannot manage the moderators' list with ezmlm-web. + FooterText = a web interface for + NoListsAvailable = I could not find any accessible list for you. + ConfirmDelete = Do you really want to remove this list completely? + } + + + Introduction { + ConfigAdmin = Remote administrators are (by default) also moderators for subscription and for posting. They may have the permission to (un)subscribe users and to change the text files of the list by sending emails to the mailing list software. + ConfigArchive = The mailing list archive can be accessed by mail. Additionally you will want to create a list archive, if you plan to publish it (e.g. with ezmlm-www). + ConfigProcess = Modify some message properties, before they are distributed to the subscribers. + ConfigMain = Here you find some settings, that did not fit into any other category. + ConfigPosting = The posting configuration determines, who is allowed to send messages to the list and how these mails will be processed. + ConfigSub = Here you may define, who is allowed to subscribe to the list and you can set some details of the subscription process. + ConfigAll = This is the complete list of all available properties of the list. Usually it should be easier to use the topic-based configuration pages, but - of course - this is your choice. + ListDelete = This mailinglist and everything inside of it will be removed completely. + AllowList = Members of the allow list will not receive outgoing mails, but they have the same rights, as normal subscribers. Usually the allow list will contain mail aliases of subscribers. + DenyList = If you want to prevent specific mail addresses from using this list (subscription, posting, ...), then you should add them to the deny list and activate it. This can be useful for annoying people and even for notorious vacation reply users. But since it is fairly easy to fake an mail address, this will not really improve security. + DigestList = Some users of your mailing list may prefer to receive a regular digest instead of all mailing list messages. They will usually not take part in discussions, but aret somehow interested anyway. + ModList = Moderators (for posting or subscription) and remote administrators can be allowed to manage the most important parts of mailing list administration: moderating subscription and posting, changing filtering rules, and managing users. Moderators may even be configured to be the only ones, who are allowed to send mails to the mailing list. + SubscriberList = Subscribers of a mailing list will receive all outgoing message of the list. They may also be allowed to post messages directly or moderated. Usually anonymous users are able to subscribe and unsubscribe without the help of an administrator - but of course, you may configure this to suit your needs. + TextFiles = The selection box contains a list of files available in the DIR/text directory. These files are sent out in response to specfic user requests or as part of all outgoing messages. Edit them as necessary. + EditTextFile = Change this text according to your needs. Maybe you would like to use some of the reserved tags, that are described at the bottom of this page. + } + + Legend { + ConfigAdmin = Remote administrator's permissions + ConfigArchve = Archive configuration + ConfigPosting = Posting rules + ConfigSub = Subscription details + ConfigMain = General list configuration + ConfigProcess = Processing rules + ConfigAll = Available properties + ListCreate = Properties of the new list + ListDelete = Remove this mailinglist + RelevantOptions = Useful settings + MembersList = Manage subscribers + MembersAllow = Manage allowed users + MembersDeny = Manage blocked users + MembersDigest = Manage digest subscribers + MembersMod = Manage moderators and administrators + TextFiles = Available text files + TextFileEdit = Edit content of text file + TextFileInfo = Useful placeholders + AvailableLists = Available lists + } +} diff --git a/ezmlm-web-3.0.2/lang/jp.pm b/ezmlm-web-3.0.2/lang/jp.pm new file mode 100644 index 0000000..522fbad --- /dev/null +++ b/ezmlm-web-3.0.2/lang/jp.pm @@ -0,0 +1,187 @@ +# language-specific definitions for ezmlm-web +# in Japanese + +# The meanings of the various ezmlm-make command line switches. The default +# ones match the ezmlm-idx 0.4 default ezmlmrc ... Alter them to suit your +# own ezmlmrc. Removing options from this list makes them unavailable +# through ezmlm-web - this could be useful for things like -w + +%EZMLM_LABELS = ( +# option => ['Short Name', +# 'Long Help Description'], + + a => ['アーカイブ保存', + 'メッセージをアーカイブする'], + b => ['アーカイブブロック', + 'モデレータのみアーカイブにアクセス可能'], +# c => config. This is implicity called, so is not defined here + d => ['ダイジェスト作成', + 'メッセージのダイジェストリストをセットアップする'], +# e => edit. Also implicity called, so not defined here + f => ['件名にPrefixを付加する', + '件名に指定したPrefix文字を付加する'], + g => ['アーカイブ制限', + '送信者が未登録の場合アーカイブのアクセスを拒否する'], + h => ['登録確認をしない', + 'メールによる登録時に確認メールを送らない'], + i => ['インデックス作成', + 'WWW アーカイブアクセス用インデックスの作成'], + j => ['登録解除確認をしない', + 'メールによる登録解除時に確認メールを送らない'], + k => ['拒否リスト有効', + '拒否リストに登録されたアドレスを拒否する'], + l => ['登録者リスト取出', + '遠隔管理者に登録者リストを送る'], + m => ['投稿の審査', + '全ての投稿メッセージを審査する'], + n => ['テキスト編集', + '遠隔管理者にテキスト編集を許可する'], + o => ['モデレータのみ投稿可', + 'モデレータ以外の投稿を拒否する'], + p => ['公開する', + 'メールによる登録、登録解除などを有効にする'], + q => ['リクエスト形式有効', + 'local-request@host のメールを処理する'], + r => ['遠隔管理', + '遠隔管理を有効にする'], + s => ['登録の審査', + '登録を審査する'], + t => ['Trailerを付加する', + 'メッセージの末尾にTrailerを付加する'], + u => ['登録者のみ投稿可', + '登録者の投稿のみを受け付ける'], +# v => version. I doubt you will really need this ;-) + w => ['警告を出さない', + 'ezmlm-warn(1) の挙動を抑止する'], + x => ['指定mime typeの削除', + '指定したmime typeの貼付ファイルを削除する'], +# y => not used +# z => not used + +# These all take an extra argument, which is the default value to use + + 0 => ['サブリストにする', + '指定したメインリストのサブリストにする', + 'mainlist@host'], +# 1 => not used +# 2 => not used + 3 => ['送信者アドレス固定', + '指定した Fromアドレスに固定する', + 'fromarg'], + 4 => ['ダイジェストオプション', + 'ezmlm-tstdig(1) のオプションを指定する', + '-t24 -m30 -k64'], + 5 => ['オーナーアドレス', + 'リストオーナーのアドレスを指定する', + ''], + 6 => ['SQLデータベース', + 'SQLデータベースへの接続情報', + 'host:port:user:password:datab:table'], + 7 => ['メッセージモデレータのデータベース', + 'メッセージモデレータのデータベースへのフルパス', + '/some/full/path'], + 8 => ['登録モデレータのデータベース', + '登録モデレータのデータベースへのフルパス', + '/some/full/path'], + 9 => ['遠隔管理者データベース', + '遠隔管理者のデータベースへのフルパス', + '/some/full/path'] + +); + +# This list defines most of the context sensitive help in ezmlm-web. What +# isn't defined here is the options, which are defined above ... You can +# alter these if you feel something else would make more sense to your users +# Just be careful of what can fit on a screen! + +%HELPER = ( + + # These should be self explainitory + addaddress => 'RFC822 に準拠したメールアドレスを入れます 例; J Random User ', + addaddressfile => 'または RFC822 に準拠したアドレスを、1行毎に含むテキストファイルを選択します', + moderator => 'モデレータ: 登録や投稿を審査する人のリスト', + deny => '拒絶リスト: メーリングリストへの参加を拒絶する人のリスト', + allow => '許可リスト: メーリングリストへの参加を特に許可する人のリスト', + digest => 'ダイジェストリスト: 全てのメッセージのダイジェストの受け取りを許可された人のリスト', + webarch => 'ウェブベースのアーカイブリストの閲覧', + config => 'メーリングリストの設定の変更', + listname => 'リスト選択時に表示される名前.また、実際に作成されるサブディレクトリの名前.', + listadd => 'メーリングリストの投稿に使用されるアドレス.特殊な場合を除き、- 以前は変更削除しないこと', + webusers => 'NB! 現在は、ここで指定できるユーザーは実在のユーザーに限る. ユーザーの追加は将来の追加課題', + prefix => '件名の先頭に付加される文字列 #で、メッセージ番号がつきます', + headerremove => 'メッセージから取り除くヘッダーを指定する', + headeradd => 'メッセージに追加するヘッダーを指定する', + mimeremove => '指定した mime type の貼付ファイルをメッセージから削除する', + allowedit => 'ユーザー名のカンマ区切りリストまたは、ALL (有効な全てのユーザー)', + mysqlcreate => 'MySQLに必要なテーブルを作成する' + +); + +# This defines the captions of each of the buttons in ezmlm-web, and allows +# you to configure them for your own language or taste. Since these are used +# by the switching algorithm it is important that every button has a unique +# caption - ie we can't have two 'Edit' buttons doing different things. + +%BUTTON = ( + + # These MUST all be unique! + create => '作成', + createlist => 'リスト作成', + edit => '編集', + delete => '削除', + deleteaddress => 'アドレス削除', + addaddress => 'アドレス追加', + moderators => 'モデレータ', + denylist => '拒絶リスト', + allowlist => '許可リスト', + digestsubscribers => 'ダイジェスト登録者', + configuration => '設定', + yes => 'はい', + no => 'いいえ', + updateconfiguration => '設定更新', + edittexts => 'テキスト編集', + editfile => 'ファイル編集', + savefile => 'ファイル保存', + webarchive => 'ウェブアーカイブ', + selectlist => 'リスト選択', + subscribers => '登録者編集', + cancel => 'キャンセル', + resetform => 'リセット', + +); + +# This defines the fixed text strings that are used in ezmlm-web. By editing +# these along with the button labels and help texts, you can convert ezmlm-web +# to another language :-) If anyone gets arround to doing complete templates +# for other languages I would appreciate a copy so that I can include it in +# future releases of ezmlm-web. + +%LANGUAGE = ( + nop => 'Action not yet implemented', + chooselistinfo => "
  • メーリングリストを選択するか、または、 [$BUTTON{'create'}] ボタンを押して作成してください.
  • 変更する場合は、選択して、 [$BUTTON{'edit'}] ボタンを押してください.
  • 削除する場合は、選択して、 [$BUTTON{'delete'}] ボタンを押してください.
", + confirmdelete => '削除確認', # list name + subscribersto => '登録者編集', # list name + subscribers => '登録者', + additionalparts => 'リスト付加情報', + posting => '投稿', + subscription => '登録', + remoteadmin => '遠隔管理', + for => 'for', # as in; moderators for blahlist + createnew => '新規リスト作成', + listname => 'リスト名', + listaddress => 'リストアドレス', + listoptions => 'リストオプション', + allowedtoedit => 'リスト編集許可者', + editconfiguration => 'リスト設定編集', + prefix => '件名に付加する文字 prefix', + headerremove => '削除するヘッダー情報', + headeradd => '追加するヘッダー情報', + mimeremove => '削除する貼付ファイルのmime type', + edittextinfo => "左側にある一覧は、DIR/text の中にあるテキストファイルです.
これらのファイルは、ユーザーのリクエストに対する返信内容,または、配信されるメールに付加される内容です.

このファイルを編集するには, 左の一覧から選択して、 [$BUTTON{'editfile'}] ボタンを押します.

終了または、中止するときは、[$BUTTON{'cancel'}] ボタンを押します.", + editingfile => 'ファイル編集', + editfileinfo => 'マネージ用
<#l#> リスト名
<#A#> 投稿者アドレス
<#R#> 投稿者が返信するアドレス

メッセージ埋め込み用
<#l#> リスト名
<#A#> 受け取りアドレス
<#R#> 拒絶アドレス', + mysqlcreate => '必要ならば MySQL データベースを作成', + +); + +# === Configuration file ends === diff --git a/ezmlm-web-3.0.2/scripts/check_languages.sh b/ezmlm-web-3.0.2/scripts/check_languages.sh new file mode 100755 index 0000000..502dbe9 --- /dev/null +++ b/ezmlm-web-3.0.2/scripts/check_languages.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# compare the defined fields of a language file with the english translation +# +# nice for finding unavailable definitions +# +# Parameter: LANGUAGE +# (e.g. "de") +# + +set -u + +LANG_DIR=$(dirname $0)/../lang +DEFAULT_LANG=en +TMP_FILE1=/tmp/$(basename $0)-$$-1 +TMP_FILE2=/tmp/$(basename $0)-$$-2 + +[ $# -ne 1 ] && echo -e "Syntax: $(basename $0) LANGUAGE\n" >&2 && exit 1 + +grep "=" "$LANG_DIR/${DEFAULT_LANG}.hdf" | grep -v "^[[:space:]]*#" | cut -f 1 -d "=" >"$TMP_FILE1" +grep "=" "$LANG_DIR/${1}.hdf" | grep -v "^[[:space:]]*#" | cut -f 1 -d "=" >"$TMP_FILE2" + +diff -wu "$TMP_FILE1" "$TMP_FILE2" + +rm "$TMP_FILE1" "$TMP_FILE2" + diff --git a/ezmlm-web-3.0.2/scripts/debian.sh b/ezmlm-web-3.0.2/scripts/debian.sh new file mode 100755 index 0000000..96dd2e4 --- /dev/null +++ b/ezmlm-web-3.0.2/scripts/debian.sh @@ -0,0 +1,76 @@ +#!/bin/sh +# +# Copyright (c) 02005 Lars Kruse +# +# License: This script is distributed under the terms of +# the BSD license +# +# build a debian package +# + +set -ue + +######### some settings ########### +ROOT_DIR=$(dirname "$0")/.. +ROOT_DIR=$(cd "$ROOT_DIR"; pwd) + +BUILD_DIR=/tmp/ezmlm-web-build-$$ + +PACKAGE_DIR=$ROOT_DIR/../tags/packages +[ ! -e "$PACKAGE_DIR" ] && PACKAGE_DIR=$ROOT_DIR/../packages +[ ! -e "$PACKAGE_DIR" ] && echo "package dir not found" >&2 && exit 1 + +############# do it ############### + +[ -e "$BUILD_DIR" ] && rm -rf "$BUILD_DIR" + +ACTION=build +[ $# -gt 0 ] && ACTION=$1 && shift + +case "$ACTION" in + build ) + mkdir -p "$BUILD_DIR/usr/share/ezmlm-web" + mkdir -p "$BUILD_DIR/usr/lib/ezmlm-web" + mkdir -p "$BUILD_DIR/usr/bin" + mkdir -p "$BUILD_DIR/usr/share/man/man1" + mkdir -p "$BUILD_DIR/usr/share/doc/ezmlm-web/examples" + mkdir -p "$BUILD_DIR/etc/ezmlm-web" + mkdir -p "$BUILD_DIR/var/www" + svn export "$ROOT_DIR/template" "$BUILD_DIR/usr/share/ezmlm-web/template" >/dev/null + svn export "$ROOT_DIR/css" "$BUILD_DIR/usr/share/ezmlm-web/css" >/dev/null + ln -s /usr/share/ezmlm-web/css/default.css "$BUILD_DIR/var/www/ezmlm-web.css" + svn export "$ROOT_DIR/lang" "$BUILD_DIR/usr/share/ezmlm-web/lang" >/dev/null + cp "$ROOT_DIR/ezmlm-web.cgi" "$BUILD_DIR/usr/lib/ezmlm-web/ezmlm-web.pl" + cp "$ROOT_DIR/debian-related/index.c" "$BUILD_DIR/usr/share/ezmlm-web" + cp "$ROOT_DIR/htaccess.sample" "$BUILD_DIR/usr/share/doc/ezmlm-web/examples" + cp "$ROOT_DIR/webusers.sample" "$BUILD_DIR/usr/share/doc/ezmlm-web/examples" + sed 's#/usr/local/#/usr/#g' "$ROOT_DIR/ezmlmwebrc" | tee "$BUILD_DIR/usr/share/doc/ezmlm-web/examples/ezmlmwebrc" >"$BUILD_DIR/etc/ezmlm-web/ezmlmwebrc" + cp "$ROOT_DIR/README" "$BUILD_DIR/usr/share/doc/ezmlm-web" + cp "$ROOT_DIR/TODO" "$BUILD_DIR/usr/share/doc/ezmlm-web" + cp "$ROOT_DIR/UPGRADING" "$BUILD_DIR/usr/share/doc/ezmlm-web" + cp "$ROOT_DIR/copyright" "$BUILD_DIR/usr/share/doc/ezmlm-web" + cp "$ROOT_DIR/debian-related/README.Debian" "$BUILD_DIR/usr/share/doc/ezmlm-web" + cp "$ROOT_DIR/debian-related/ezmlm-web-make-suid" "$BUILD_DIR/usr/bin" + gzip --best -c "$ROOT_DIR/changelog" \ + >"$BUILD_DIR/usr/share/doc/ezmlm-web/changelog.gz" + gzip --best -c "$ROOT_DIR/debian-related/changelog.Debian" \ + >"$BUILD_DIR/usr/share/doc/ezmlm-web/changelog.Debian.gz" + gzip --best -c "$ROOT_DIR/debian-related/man/ezmlm-web-make-suid.1" \ + >"$BUILD_DIR/usr/share/man/man1/ezmlm-web-make-suid.1.gz" + svn export "$ROOT_DIR/debian-related/DEBIAN" "$BUILD_DIR/DEBIAN" >/dev/null + fakeroot dpkg-deb --build "$BUILD_DIR" "$PACKAGE_DIR" + rm -rf "$BUILD_DIR" + ;; + check ) + PACKAGE_FILE=$(find "$PACKAGE_DIR" -type f -name "ezmlm-web*" | grep "\.deb$" | sort -n | tail -1) + if [ -z "$PACKAGE_FILE" ] + then echo "no debian package found in $PACKAGE_DIR" + else lintian "$PACKAGE_FILE" + fi + ;; + * ) + echo "Syntax: $(basename $0) [ build | check | help ]" + echo + ;; + esac + diff --git a/ezmlm-web-3.0.2/spec/actions-spec.txt b/ezmlm-web-3.0.2/spec/actions-spec.txt new file mode 100644 index 0000000..f5066c9 --- /dev/null +++ b/ezmlm-web-3.0.2/spec/actions-spec.txt @@ -0,0 +1,40 @@ +subscribers + list + [part] +address_add + list + [part] + [mailaddress_add] + [mailaddressfile] +address_del + list + [part] + mailaddress_del +list_select +list_delete_ask + list +list_delete_do + list +list_create_ask +list_create_do + list + inlocal + inhost + [options] + [sql] +config_ask + list + [config_subset] +config_do + list + [config_subset] + [options] +textfiles + list +textfile_edit + list + file +textfile_save + list + file + content diff --git a/ezmlm-web-3.0.2/spec/hdf-spec.txt b/ezmlm-web-3.0.2/spec/hdf-spec.txt new file mode 100644 index 0000000..fc2f4e6 --- /dev/null +++ b/ezmlm-web-3.0.2/spec/hdf-spec.txt @@ -0,0 +1,47 @@ +ScriptName +TemplateDir +LanguageDir +Stylesheet +HelpIconURL +Config.Title + +Data.Action +Data.ErrorMessage +Data.List.Address +Data.List.File.Name +Data.List.File.Content +Data.List.Files.* +Data.List.hasAllowList +Data.List.hasDenyList +Data.List.hasDigestList +Data.List.hasPostMod +Data.List.hasRemoteAdmin +Data.List.hasSubMod +Data.List.HeaderAdd +Data.List.HeaderRemove +Data.List.MimeRemove +Data.List.MimeReject +Data.List.MsgSize.Max +Data.List.MsgSize.Min +Data.List.Name +Data.List.PartType +Data.List.PostModPath +Data.List.Options +Data.List.Options.[0-9] +Data.List.Prefix +Data.List.RemoteAdminPath +Data.List.Settings.[0-9].value +Data.List.Settings.[0-9].state +Data.List.SubModPath +Data.List.Subscribers.* +Data.List.TrailingText +Data.List.WebUsers +Data.Lists.[0-9]+ +Data.ListsCount +Data.HostName +Data.Modules.MySQL +Data.Permissions.Create +Data.Permissions.FileUpload +Data.UserName +Data.WebUser.show +Data.WebUser.UserName diff --git a/ezmlm-web-3.0.2/template/config_admin.cs b/ezmlm-web-3.0.2/template/config_admin.cs new file mode 100644 index 0000000..4827808 --- /dev/null +++ b/ezmlm-web-3.0.2/template/config_admin.cs @@ -0,0 +1,39 @@ +

+

+
+ +
+

+
+ +
+ + +
+ + +
    + + +
  • +
      + +
    • + + +
    • + + +
    • +
  • + +
  • + + + +
  • +
+ +
+
+ diff --git a/ezmlm-web-3.0.2/template/config_all.cs b/ezmlm-web-3.0.2/template/config_all.cs new file mode 100644 index 0000000..938950d --- /dev/null +++ b/ezmlm-web-3.0.2/template/config_all.cs @@ -0,0 +1,163 @@ +
+

+
+ +
+

+
+ +
+ + +
+ + +
    + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • + + + +
  • + + +
  • + + +
  • + + +
  • + + +
  • +
    • +
  • + + +
  • + + +
    • +
  • + + +
  • 0 ?>checked="checked" /> + +
  • +
  • 0 ?>checked="checked" /> + +
  • + + +
  • +
      + +
    • :
      +
    • +
    • :
      +
    • +
  • + + +
  • :
    +
  • + + +
  • :
    +
  • + + + +
  • +

    • +
  • + +
  • + + + +
  • +
+ +
+
+ diff --git a/ezmlm-web-3.0.2/template/config_archive.cs b/ezmlm-web-3.0.2/template/config_archive.cs new file mode 100644 index 0000000..4cc588b --- /dev/null +++ b/ezmlm-web-3.0.2/template/config_archive.cs @@ -0,0 +1,42 @@ +
+

+
+ +
+

+
+ +
+ + +
+ + +
    + + +
  • +
      + +
    • + + +
    • + + +
    • +
  • + + +
  • + +
  • + + + +
  • +
+ +
+
+ diff --git a/ezmlm-web-3.0.2/template/config_main.cs b/ezmlm-web-3.0.2/template/config_main.cs new file mode 100644 index 0000000..af700f3 --- /dev/null +++ b/ezmlm-web-3.0.2/template/config_main.cs @@ -0,0 +1,50 @@ +
+

+
+ +
+

+
+ +
+ + +
+ + +
    + + +
  • + + +
  • + + +
  • + + +
  • + + + +
  • + + + +
  • +

    • +
  • + +
  • + + + +
  • +
+ +
+ +
diff --git a/ezmlm-web-3.0.2/template/config_posting.cs b/ezmlm-web-3.0.2/template/config_posting.cs new file mode 100644 index 0000000..b57740b --- /dev/null +++ b/ezmlm-web-3.0.2/template/config_posting.cs @@ -0,0 +1,73 @@ +
+

+
+ +
+

+
+ +
+ + +
+ + +
    + + +
  • + + +
  • + + +
  • + + +
  • +
      + +
    • + + +
    • +
  • + + +
  • 0 ?>checked="checked" /> + +
  • +
  • 0 ?>checked="checked" /> + +
  • + + +
  • +
      + +
    • :
      +
    • +
  • + +
  • + + + +
  • +
+ +
+ +
diff --git a/ezmlm-web-3.0.2/template/config_processing.cs b/ezmlm-web-3.0.2/template/config_processing.cs new file mode 100644 index 0000000..a888187 --- /dev/null +++ b/ezmlm-web-3.0.2/template/config_processing.cs @@ -0,0 +1,65 @@ +
+

+
+ +
+

+
+ +
+ + +
+ + +
    + + +
  • +
    • +
  • + + +
  • + + +
    • +
  • + + +
  • + + +
  • +
      + +
    • :
      +
    • +
  • + + +
  • :
    +
  • + + +
  • :
    +
  • + +
  • + + + +
  • + +
+
+
+ + diff --git a/ezmlm-web-3.0.2/template/config_subscription.cs b/ezmlm-web-3.0.2/template/config_subscription.cs new file mode 100644 index 0000000..9527f83 --- /dev/null +++ b/ezmlm-web-3.0.2/template/config_subscription.cs @@ -0,0 +1,42 @@ +
+

+
+ +
+

+
+ +
+ + +
+ + +
    + + +
  • + + +
  • + + +
  • + + +
  • +
      + +
    • +
  • + +
  • + + + +
  • +
+ +
+ +
diff --git a/ezmlm-web-3.0.2/template/footer.cs b/ezmlm-web-3.0.2/template/footer.cs new file mode 100644 index 0000000..9f93044 --- /dev/null +++ b/ezmlm-web-3.0.2/template/footer.cs @@ -0,0 +1,8 @@ + + + + + diff --git a/ezmlm-web-3.0.2/template/form_common.cs b/ezmlm-web-3.0.2/template/form_common.cs new file mode 100644 index 0000000..8b633bc --- /dev/null +++ b/ezmlm-web-3.0.2/template/form_common.cs @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/ezmlm-web-3.0.2/template/header.cs b/ezmlm-web-3.0.2/template/header.cs new file mode 100644 index 0000000..9c5c0b4 --- /dev/null +++ b/ezmlm-web-3.0.2/template/header.cs @@ -0,0 +1,25 @@ + + + + + + <?cs var:Config.PageTitle ?> + + + + + + + + + + +
+
+ +
+

ezmlm-web

+
+ diff --git a/ezmlm-web-3.0.2/template/help_tag_substitution.cs b/ezmlm-web-3.0.2/template/help_tag_substitution.cs new file mode 100644 index 0000000..4ebd095 --- /dev/null +++ b/ezmlm-web-3.0.2/template/help_tag_substitution.cs @@ -0,0 +1,21 @@ +
+ + +
    +
    • +
    • <#l#>
    • +
    • <#h#>
    • +
    • <#n#>
    • +
  • +
  • ezmlm-manage
      +
    • <#A#>
    • +
    • <#R#>
    • +
  • +
  • ezmlm-store
      +
    • <#A#>
    • +
    • <#R#>
    • +
  • +
+ +
+ diff --git a/ezmlm-web-3.0.2/template/list_create.cs b/ezmlm-web-3.0.2/template/list_create.cs new file mode 100644 index 0000000..56c7281 --- /dev/null +++ b/ezmlm-web-3.0.2/template/list_create.cs @@ -0,0 +1,40 @@ +
+

+
+ +
+ + +
+
    +
  • +
  • + +
  • + @
  • + + + +
  • + + + +
  • +
  • + + +
+ + + + + + +
+ +
diff --git a/ezmlm-web-3.0.2/template/list_delete.cs b/ezmlm-web-3.0.2/template/list_delete.cs new file mode 100644 index 0000000..a8b0773 --- /dev/null +++ b/ezmlm-web-3.0.2/template/list_delete.cs @@ -0,0 +1,20 @@ +
+

""

+
+ +
+

+
+ +
+ + +

+
+ + + + +
+ +
diff --git a/ezmlm-web-3.0.2/template/list_select.cs b/ezmlm-web-3.0.2/template/list_select.cs new file mode 100644 index 0000000..e765f83 --- /dev/null +++ b/ezmlm-web-3.0.2/template/list_select.cs @@ -0,0 +1,39 @@ +
+

+
+ +
+ + + + + + + + 0 ?> + + + + 0 ?> + + + + + + + + + +
+ + +
+ +

+ + +
+ diff --git a/ezmlm-web-3.0.2/template/macros.cs b/ezmlm-web-3.0.2/template/macros.cs new file mode 100644 index 0000000..dbd5c0e --- /dev/null +++ b/ezmlm-web-3.0.2/template/macros.cs @@ -0,0 +1,53 @@ +checked="checked" /> + unknown option () + +checked="checked" /> + +
unknown setting () + +
+ unknown warning message () +
+ +
+ unknown error message () +
+ +
+ unknown success message () +
+ + limit ?>... diff --git a/ezmlm-web-3.0.2/template/main.cs b/ezmlm-web-3.0.2/template/main.cs new file mode 100644 index 0000000..ecba2c6 --- /dev/null +++ b/ezmlm-web-3.0.2/template/main.cs @@ -0,0 +1,21 @@ + + + + + + + + +
+
-
+ + + + + + +
+ + + diff --git a/ezmlm-web-3.0.2/template/modpath_info.cs b/ezmlm-web-3.0.2/template/modpath_info.cs new file mode 100644 index 0000000..a96cbcc --- /dev/null +++ b/ezmlm-web-3.0.2/template/modpath_info.cs @@ -0,0 +1,20 @@ + + +
+ ().
+
+ + + + +
+ ().
+
+ + + + +
+ ().
+
+ diff --git a/ezmlm-web-3.0.2/template/nav.cs b/ezmlm-web-3.0.2/template/nav.cs new file mode 100644 index 0000000..2264db3 --- /dev/null +++ b/ezmlm-web-3.0.2/template/nav.cs @@ -0,0 +1,73 @@ + + + + diff --git a/ezmlm-web-3.0.2/template/subscribers.cs b/ezmlm-web-3.0.2/template/subscribers.cs new file mode 100644 index 0000000..7b3c705 --- /dev/null +++ b/ezmlm-web-3.0.2/template/subscribers.cs @@ -0,0 +1,135 @@ +
+

+ + + + + + +

+
+ +
+

+ + + + + + +

+
+ + + + + + + + + +
+ + +
+ + + +
    + +
  • +
  • + +
  • + +
  • +
  • + + +
  • + + + + + +
  • +
+
+
+ + + + + + +
+ + + + + + + + + + + 0 ?> + + + + +
+ + + + + +
    + + + 15 ?> + + + + +
  • +
  • +
  • +
  • +
+ + + + + +
    + +
  • +
    • +
  • + +
  • +
    • +
  • + + +
  • +
  • +
+
+
+ +
+ + + diff --git a/ezmlm-web-3.0.2/template/textfile_edit.cs b/ezmlm-web-3.0.2/template/textfile_edit.cs new file mode 100644 index 0000000..2e183e2 --- /dev/null +++ b/ezmlm-web-3.0.2/template/textfile_edit.cs @@ -0,0 +1,25 @@ +
+

""

+
+ +
+ +
+ +
+ + +
+ + + +

+ + + +
+ +
+ + diff --git a/ezmlm-web-3.0.2/template/textfiles.cs b/ezmlm-web-3.0.2/template/textfiles.cs new file mode 100644 index 0000000..255fb0d --- /dev/null +++ b/ezmlm-web-3.0.2/template/textfiles.cs @@ -0,0 +1,39 @@ +
+

+
+ +
+ +
+ +
+ + +
+ + +
    + 0 ?> + + + 15 ?> + + + + +
  • + +
  • + + +
  • +
  • +
+ +
+
+ diff --git a/ezmlm-web-3.0.2/webusers.sample b/ezmlm-web-3.0.2/webusers.sample new file mode 100644 index 0000000..268caa8 --- /dev/null +++ b/ezmlm-web-3.0.2/webusers.sample @@ -0,0 +1,5 @@ +comm: guy arb +users: arb +members: ALL +ALL: root +ALLOW_CREATE: root guy diff --git a/packages/ezmlm-web-3.0.1.tar.gz b/packages/ezmlm-web-3.0.1.tar.gz index d49f88bc8ee49a59ee4bb10df469d2300a8437c4..832077cde2aa727fe13b24e4a9894e702f851413 100644 GIT binary patch literal 43617 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 Jd(HsR0swsK1rq=O literal 46958 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%0AgTU|U`#u+cvZ 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 WchB8(_uM@<_Wb{>IZH4AAOirNMh5Kw diff --git a/packages/ezmlm-web-3.0.2.tar.gz b/packages/ezmlm-web-3.0.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..617c6c74069b2b324c16fd89f4acb6795b24e94f GIT binary patch literal 47495 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

c)+LfP;f<6F4chI|xbK zG@?yPA<#-ShIxO8!YJYHe)PqU@NDOkVGoGiAo75Sl5{bQJKh;8Aps3EW>LlAQ13ty zLDK7Zl>6}1BZ>e8d21>KBgjx?9=F3G-+{Dh{-5BMA0#+W`1+Li=>w2{NW{dMP^>6i zB+Q)IWh|6|;QdeZ{0%h^W*6a@zxY`jpf$iM)K?FxpxWyVMDdf#g9pYOay72Z#$lYFVp?T;mbh z5g1DvekX7TLsTuqcRiqJcu&v`S_5M|4R2VBD}&;* z9R!$K%Eey>^w>g<;_RPTbfvH0|GNyi}i)3$l=`M=6IY*Gn()9;$^D*~P zBZJz|Z}}0d>nW1CWH;po-cOs(uRaH`WAEpI!m(oTlMtLXQ(6(G74q0cl2~2uMgVlO zYP7t}89+KLKg%w2gqtSTA%6nJq+HjLo1aP=AvGFiNjX9KKN%+0!4{I1ej66B>jjP- zl%E7EWgtu!v|{laD17Qs(D4D5Q#J#jO0gol%J$==g7O3J;zKN zunh|L3#DY414%WUoB;kfp>0YOqm^i*bS8K|iHSp?ToD!jt_MPGmn@Jbze~sOZzWt9 zH~MDMK~D63ENn@J#(47L^-I=0@O!;f>701|wiKC^9T~5GGl;{0w8`Eu#_O9yiR+L3 z0mwTZLIDx}5m9z&CkgTc_;1@XcADTxY>_4ekd%N>^u!lGKb7QtFB)W&D=V(QNXt7J zn))1FioB1+?Oo7WzW8$w`y(S%r0o9L z^Z+m12bl~;^&#^IJjmn^sKttV1TZ5Vy9G?1RAAJ`qu~~j8od`r z#))%@Rj?E-(0Wf+^`lRwa82?pUcLfe{>9Iv1Q_9&6CPp3P;@R)OIa?!`ekYj1m#bL zYzn{tV897e3N0gnRAuwB38189+kT`Xinat(9Y%@Z)Qtd>hOj>)WQBOr_A?kJF9#ZM zxbB=_JZn+s9kiCoW2e|Mb4Wu7wv6B*m?Ag$;%7)5;(R+uUZMdcnTfz~z$%rJ5Qc5m z3A0 z5TW7?=d-B_uj_e12tr*z$|_E3cpCXn;SVB=r+9J2!~Ad_EQT?*#HT^AD}+he(j*0n zYrxV6Bt_+$FMzB>Z9=gNuS=}u0cD4g^Y9fo;TK7YuxLNWU7Sr}fIvzJ4ysKg1asds zbu{TK(BoyJQ@wv-IMU9Q49EAfhPt>Pg`ZGLqEnzf!}cJP!+Fe zA=q+c`7No2pX$Tim~17m6Pr&5m8|`O$fa>iE9+B?aH6|izzkfJr(gW2N3_q&+C3`h zfkIM8L=GZQz1tngov=yS2Xf3X(n6G;fnMiyf`W&Nj>u^l$eUuF=Stu(=m#>#fT%IX zKxRp!?UGF`${0L}ffJs{!;&w4KKO*#3)A3XkF3kE<4y<47l!FC9whKS6vzg!BrNRD zBGR8WPcIPKXLuS5^iu6LzoU#7IPx=J)8~|L4e+5(nlQE4zr{Z2M*aj7@0d%X#l-KD zEDhB@0m5i16e{dL9*7N)gU~p{Cq7zVgoh9ZEfkcy!Jx%(CVN%yiywXQ=YY2Ea1df9 zMSy_7>p>o(K#s8wmCxu*%MMp~0u@KF&MYdC9o0{n=Ul@ASrS)RIW(`u;y@iiD!{!< zlC3!RJjcmTdHU(V(CxWc;GOko#0p1aB29R^EynA1XumSm^LS9ojrqTw;XD~P z1{C*Po}eUIEIg={>k6y@vS&hL%%F9KjUrmXGI~m;Fv&iKy?;7j>;**PU${x6 z2MyVKkQojsYo1}{g_Vt^gt^xq@F8R@69(ur7^Cw!CixbX_Y;Pa%oum0Qng^T;aR|% z1bYawbJnJvUIOKh06>odnOqzgp23(*??se*q_bk%qrfoDbf zFW-ER+lpA08FBxE z|CaYZmKRr+ertYVX=QEsx5Ua#4r0{v8-D*|)cUu)Qy+Lue0BqUj9LGc)x}j_|M|7m zMfiJuVPy%||MvdR%YUX{tDgEnH9m8u@!sH8*uSL2cB0rUiTOoX9kJtr#P-by^Ag={ zdFNjDemn#zH$suC((*RA=8oUQn276w<9IM0;nAX*Dso8Y#GG?8>QS@``?ex}deGPw zU2cts3$#h*-z9H<*03aaGcGp!}{LtJpu+)oS7Eo&Opp_4f%0q z0e{42etY0JO*A?bX82P9LzztRGUIuF?e{K8dbyZ-5fB?14h z{La1h+yMW7VS=Kqu$gpS^`5yHN+ljy(Hk@;80oniRWB|s@OylY0j2Sr!a&ukiZD|c z2R5VR2GIHQYB20}M>gAx2WHz2=fZ)-4mH(dZ%w|9dbt9PbXF%n>YjtE*-x#?`%wn0D9@I9sAJ-5B*lQVM$Fp zpZI-IE~5!pl$+K(DMMm6ge`fD{s|kCAc(G1>3ni^^Qkc>6%{0&r&F$b-M*1!zD2>7sxuTK%V;atkwEv1DTl0JhwLE~+`g zz|_>8JI)lSz0Ie@%~h3$^_?2XSCjxeCBT#^%4l1ZSt`@>egkPpC-ML(k3rHrox$HR z&bb^Qb;0w_@&b0^w*|;6pBN2ecObGLoH4WU6w60Jm=YsdLPCRNdTvt~_3=lJ6CI!Kg%rUt`rpFB+CobITU%Vd)&E|}W9xqyuF&Nmv^r{j+xNOHnd4Z; zKBUMoItlLUKannCJZ-~C+|Dr%uKJyrB7 zor);5yh15a`5XsJq_jEMW~eOT7@h6f!_A|e!xJoa&kLNx$NRK#7g&F@Hz%lXe|Y!{r6QodFyW|=Qq;F)$yMe=2uqNQu%*Z<^c_E`Tr|; zPQ%tEp5kKeEI(Km^B~UlF~)1q;UDcV7_5r`Z+&;g!u5%J4s<&KU^X;!~lj`JX_ow^qJk zlxTY{#XD9_qa)E7jPEq;wz$|dNEj!lu%uX|8@lkZ>$L~)@xpHn&ep}^JT}PlE#s$k zv0%K3xIy#PX*d{!J^S4t?5~TJ{<8#JvaR_F4OqRD&86N_?FIXt?uB2Uf_~DWXwqc` zujYJn{#3%Ng44wB{bcoIv$>6aBL$sd7wf5(-S%7aw0b#cpkTz4#e-n;4>ot(C@4ZQ4fLMgX!&!slR;^H?l2(Xlc*1RL2+L_#k z%ggh6p{yQwkw##TRZ<3NPh<6Be!Gmvbp1??VWIMt*Bgzh>FSI`pXL)CyELmp-XMeE zyk+yqg}vji*zY4dt567i`VWsYwJ)zxSx+@*Wiw4s!oCUu@r2U~U`2Xa?z)%Z5GqoD z{)Dn3cTkuMc-{##=}oQABCXFUIXIPN<@p?1x|l~v6&|$wbDAAZHO*_7U#aclUBvbt zfz9B(_4e|b$&FYVF=(KlYSGLpY+sh66Ss`9EZ29 z8P5OH%vQ^1^b+Ik%?y1HqB${WT`43&sf286@y^5l<%=?!H}S}zJHVM1U=d(!QZa+; z&0!Q{{eDQ^&}PqBuxRlzum5@c--!Mjq#IGC)eA3N>Sd{R4G1U)apV7=cg#ir*-W`ySI?5^HFk5cewqq?7jN9QFXf~# zjQfcu^JclGC(-4qRnBS_7FLvp6ubZ7B8V0@l2*h{^nu~YVL3Fa=)3#EMN0(o54DriYmD6#mdTaCFwL#EaR z2acShA0Ec#+md_0ejQidFy5TGvA%?FzgBnCQ*ZU1ZTr0pQ)It1g8tYaIN*@+ zPKV{nyyF;L#_J?7SLP+gX)<5N9Tf^F@2xec6#Ou>FUA@)UnPN0>#_Pt`XC2MSeyP}$wf=_@-;cz*cgAZK5juG# zdwbJ(vjy_Ktb}pE5)eZ7Lqs%6xW%vbF%m=^6J+>eXZAf}=TW~Kx)KX;1WBWENR{|3 zys+Qsa$m*%&z%1&pVu4gW6b$KJc~O2)7l!+|E0B+wOjiCDjp2SiKYlzeNh(k3)T6z zs(A5h)e-8<)^PiK<~U}R1zBY^sX`e>MU1)ST|Dl^Y{p#ycol(K;qm2vlE?%~gXmXC z%CpLVT0D5TwfNTJV#(?Vx>;DPF0N2FE7*BfGU|JVl#7gj5&01E_7f({q;35 zlTOMw#vxHOEJ#8v1BFM&qox~o0~cL4$bJ$t=(?V&I=JkINi|N+ZUK=B>jF9zuNVee zJCUD_i6XKt!YmhfqN0e`-NJU;M|2~gQbz1n3EO-ZX66Q_e=5!V3`0De8W>cD-XqT} z7gN@47y#fWOct8-yO-vQ7B+Vd3uV0HhXGRyhxJ4BJI99NfjEuA3!37E58J5a$FOXd zeE%^Fy8~b59v1=d1dVWnZh)?$ABC_qy_lkzDK>*aDJbg=G!sVQuyY2JrR9=yMVOY+ z3$jD87t<~xG`V_>pnUiJ6+5%*9xfw z?%lVm^YhsDLr&}tE%t^81#$-FH0ftJzB2j?<0`&pm!2)pVkbBTa

Fg7SySS5)%w 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

)*PYMBt-+T)`iCb(j!op( zOwiE3mHEFX0Zo3+^?j@5klAalJq;~Q8h+ZFwfwhpMddwen}1MZ#Im@#S!RPay6yr) ztz~WmX4Wh0c-JZ%z!^HO{|VS!{-RhuTR;hd46dgmMtyCnV*QqSb%Hpp@w)lIZMf!4 zi(YDoDM0W?UQP~Y+zcfD4-HV)_$#ljQuXz609XvSGUc5z{M(x)6+rqga64n7h+w~x zw)-Om*qx!t8!nIv84v+rf>sxEw4iSQ|FBV<5!>tS94>#4s!+Yx`V{hK(VC;*mxZmK z|96{rJ(xGnezKW`f$Dpaf0d9X%rl>{?X$uu?YT@(8 zy5H@Nic!2x=T_8x8snRZJKIUDsEI|T{0Hv6`bn@r4}dR-?N}6)G6=J>+#h?RJ_){g?eJfwvWnf@QG3Ah s`V+Lx3`b=ATr>b-~#2VutvipD4{r?mmNmFgNN~0UK{;S2}=k-tLUHz9wt7M)osXs|paWa88)PHm$ z^fJOPr7mYJZiW^$tYnkG6QI|>w?>b=|39GrB%Lqz`+uDF`cLCD=>IV|7xGf%xQ6{6 zz&@gN%2aDec|1$l1xnxl6&So-K?4rqYbe`^fE``!FXXO+&!WD3E{A$kQ!ztuavUfsNo_=W8@K#s{Z*1cb zUS@cO`n7AydTS{T@(hnDn3Go3Lx!Jl12h)xR!D@cu{X0)*)?<#Rh5HQ&JR`n~M;6zGv4sHZScQ4U_ z@=zP+)JEg9^Xv*iUVVXglDa}@jlHCNK(KEfG-l9>9ly!99!dwq#KA*pvW8ABaNrQ({n^RsyR${I~4R|6%_h zpXWr+qK&E|S1{&ngF!n_QvbI6r{DiS>OUd#p#Px%!1(&NIIjHvK>uXE3i=QF4+H{% zKp+qZ1OkCTAP@-rEnfj5=*O&+F#{R}I5ssgHIq;S83HymlWPMTf5cv+lX$axocMT? zjY}Ak14!sb<2w}QLt+LP4kTbO0x+Z~tulJuUETeN*Y7podkqXml2GA1<^}o^UFE6#6R&i5SM&Ic5pO_k-I#~ZVZv8{qYCBfAe@7x=_v=43F=q&<71QMv0Fs>VEy;~ z=UC0&5LL$tg5!gs9XfLGL}B1qbL_;iJF9`%u>6^3*m5q&plY?{(4qw#u!hY_r-(Do zF=GsiJ5L-Ne}!I!W1|4@M4@29wcXJ7YMp9mdoF=*_kg}&G|n5OZH!U3rBe%Js0XTh zev1ZhWJ9{O9-}N$gDiY;Y*h6v02qWPS~6^Uwc~?rF9-*PMTi|Aj6kneeY+i=wOSIo z4+`m4!>zVFK4`Vuj$O5|_2|Xo=H_M*p%pv615Lb|f2<**1IKK)-3bMEY1*}#bO(hC zz>W{9trv7EFvCF@%jv+U@lG5Rqlo0dv5rIk9XR%uVo^Zz`(-s0ZC}>yi=tROL0>sG z6QgQ5&P=r_tLqi-;?Q7y5GRc-2n;ndF$(3yP~*c8BSa7!bsR_&c+Lu~(xM%NrE}C} zm8HC0R@N2t1V<52HM*0V(P#ixl z#^RPVOviVHSFekf-I9LG+mIvBTMQOqj&>kiFQmoZ05Mn_5f*?B#is2zq9S?TzQj&7 zQS11GZBq&tF;)xLY1g2u#@`??P7B1XrRb`se|v$6?R%TR$rFPB#(`gsj1QiON!^3i zYYNO7K;fOD$5HfUBqDkfwMJpWcN(Ox`(8^}wVDqsmQQ)$#Slgr0t|VS#L^Kdi7di$ zYwAzp#~qgOVqeR6FJuBSI!tLO`WS>Z=GGuy2?othLiS+_b)C`fUUppLgOZ7Xg!v!?93 zIolU+6Ng8!{e`O6YJtwJ28ScQ=&qeue-B35K<$&7r^WlRN+%3GSM>$0)UqQ@5`cb< zdP0{TYjBdF1f}z|0a;yleA22+A08&A2~h}CH%$pm1#Kgsz0ivUP3g2Rgcd5?paPaq zhYS!!j9dP~{_J4?CmG{)_KpH zdY{zb7a=#Kzr{jj(+-ur!OsOFVTz@nzmLufd55GD*r+VrvPi>zq0YzebLYXi(0 ztK!HD9vcCq(E(QnP^)Z_rq<|)mR0pV!lDNf3eJTHau%b^pc<((PI~4!NU5*-!%4&G z52=XW3af#_zU_Y{*R5L1zJ39)f5ZMCA3HLh-v1NjBM1BcP2m5}B4g~Y_iqfb559i{ z{igT)X%FT*{nACbAkd-)FNGR{IAt?wC(p}Ih5(d*gHR1Po*#f9+kz1u0FyGrC_@0V zuSobDg?f%>lp4lKxr^P$kTvkm$n{5!1f;et_}q4O9>dKaqY7Ib+}gGUll%w~e;Ck{ z?iBoaV2x+3aczuuvBqyX___J*f7p1h!|?A<|BoHv^PgD%k4;aHjUVX$8)pCCx=@=D zYN^H8k++L+Sg>MwtXQ5F<%yZ8>6xkWdxT?wxV%*v`Mu;9nY@7(T|0Q)810CpTa)Jk>@`5PS#OA|ooZE4e?8Xi{23#w z8YGZapLIjF3zr>+f19icpG90pD=w7PRuf)bnEclV3)evo89Qd*<-gj>`zZe>j*O3` zju3Q&>TNWBY2O*s&_oLF>F1B0bFE z)Y!ualsp84t7H9O?B>Lij*IMPZxhj|+*djQDw2-7?s}W9{&pyfMBNINm--n z_0@ii`fql9S5;K$y{bhYE38^xfGrftn0V@ACdVMD%-$_`v)~yte@g`OdKZ3Y#7>x6 zJi`MSbd-}wEKumhN3RA5N8;h+n4w4888cQ9~K?L>Uh9Nab;-^|0=ux8{$Z3;qSEy+N2>;s+JJlwMpYC9;r82M* zD59i~P>fBmT_Ne%Ejxq_iYN0I9O(|>z$5f&EX9y5@$+%uM1@%NIrM=~89)jCXoO9I zF+LpeCCC_TbwUtW-B}^8dIpYNl{|QvhZm#b&^T~8|8X1se^F#9R4SF!3grX9!HOaQ z5ce{Mjd`a=(W(E}GS5z$S6Z@y0OXS^Wn4&B{j=!sY~j>KEJWw{`UbICV* zofxckDk^@_eReC?4|_$novoY!x=awfe}8Z1Hw!AN9a?Tx?%On1C?gK!=nnH#(ewQc zn(rY0IbgO2`TyPJ|Je9+`uulndUAU5K>pv@_%APYf1lxB9SVg`7b+GSue=MRqEIhcsY4Gc7WS?_i@ zd#5_PHKAf3is2favYS`B9ZA@)Qm^41A_95skBwTqv(*mo8lgNV{gxdBl<9iPm*~{? zPpc|*f7okUG1LoIu)bS*@dWy(SKPh_y>w_aCpeF`2GXhSxsfU3dKVnqUEdjjbH3M> zerQW|2OtU%XIzhbZyIqJ9vPov^bv&`X8ye8hihAH3T_O- z*B|_#cuV%%VG4V^t~JNSJ|2D7@w?3t+TL!pf7(YCkC@1dKAB@R?$aN4q&g_}h?5m| zO=6Wx-Hpx`o-z&gN7Q{MD}CGs^o}!HJ5p;Fn;~RPD6Vzs>5O-L!kYDY3Hd9_>`sf_f2I7NL2eXg>1@LX^& zfAslv5<+Kw2J7@`A}8%Q;nuIj=RBb$i}UPuCSxEo@s=1IQnkCK@Dh~e{_m53U@-O=xy3ZV2$z;j;S&hC?f@s-V+mWal!(%sQ9 zzB=1CDb3rwyQik*SDQ$)o0XIrzunPsf0ldghK@#;>!Ks26W_E{f=QuYn^#HeB(#~;qMLEYw(=B;5aYwrlkFhAfo88*3-(SFV@P19g{UCIVXulNI z2O@n+#YFR%qWuPbYSNK=6ZpAK0vT9Pph)Z@N;F5^`i~OD?M>DzB$zLGxmnSWe<$7y z!}iSR=;r2TiDKO)&u?JV+j2*3w^{SbhVx(%^-PW4V3JimwYh?M2&N z?{7-jI<@LL=x-zl!g5wDUtq|Uu92x5FgGOrZ@5GIb^mj0{K)iJ=Kd$ve>#Z&zk&C^ z3b~aS@*-uxzymwo7E6SsG-&Dce*n(WrG8+Wp`89etB8!5R?!W1BKFZ2bP8eggSQbd zhyhcwhZs;lJAsH}qiIOd3BzvgTnXsJ>9s+tjIY0j5xjP2a<;IS0s=uLa&>ewe(%e{41A}$!5Ed96d*0-z`|ZlY8NMq`xWMku$bg ziRX>GLz;i00M({GC9M zu;>b;rh)V+nER1WeOWI`jxWg;t_PVfdh_p%?UEb-jh9`(@5gdUe+@ug`X8bXyCpdQ z7%nO3{aUd}IEJ;7G*<=^`ZJ_r2T^u$_jc|J8=UlKJ2Bu z>~6AYEwz^xKvqp9%I^V5J;%WUJZKN%R1OCTk)}&4Q0sR}*%q9Hh1Mc=vxG0Lz~d?w zc>6?PA^Tf0Y$02yM$1vo6?~K@iuq7}&*nk4;5q#{<#r0KS?)Q&`2JkDJYe zFgbeXt~=pyr-`$9mQ9MEsiLa_;&mF%5XJD?pc;IDZ|5Y}&Af2;0B4<%cxj}upZMtR@_ z;-iRpOtVoYSfaqCnQ6ZBYV4G_n@K)O4%D~VVlJdEfV$VF3kOFNNyT|ai!xb`jfOQX zEaPY?O2XGG4VmXah|oYqEU?0gIxaPa(3@6(G|tw z9weg&(0SlU}0l!G*-F4>b<5kq3V<@MkeD+e%Ycn-P2R?yy84B zN!lywa{>sVH}<&hIoR{ZjQx07NyV0Rk?(ckXFE?R?QrdS8xsZh#s2^z?YM*Kzmea8 z+jW!;pHVW6RK=ZC-Ag^^-QNFF^*Q#l{>$X#k<9)7fANF*k2fg)e{T8I+I{Ed1+rve z;N1C>iwmd3U~zQx-icGAqjPI>;@xM~mKMcWsVvrf%MEPY5|%SMI)4_npD<6=HYeyv zZEa=rB7z&k?&{ZKX!I@BLW)!!!>{PSz-P$8bOaG^6ZXSFj5Z_%ytyPUwSmTUMqZG&}p^nJ~+#=RFmDh%ZqK>e>cZ3jwzvd472XRq<269hFgvdni3;Q zu~HhX2Em|6A4W$_qiUO@%oc@X6|c61fc3Q#uOeNxDfB08&`uXzYhy5$@?98+q$fqb z2k@XvJCY1C5`lbfGO)LYt#7{iUx_q~>s13g-v1q&N}vDI`(Fq0|0b^gi3S{AYa}n~ zfA$ADUU)Re0LE6@-d2tJKalM2vQYRKa^)IZc(jADbYPJo$J<9$clw(napuKw7Lp(Z5X|iKxKZU}Z)9_tq?5 z1=yOwBBQ*Zt?=tBGoL7^@J5xH-$DKxf5~0@R{wo$VltEeGj?$Q_a>MB$#lH52Iz55 z@_IBu-zB5dNrHP?F*-Hn#G!(g&>AC1o&TwHorHTZXPGHd36M#r;zEQU>j zrcY+$!`Os4J}B|~dgOnc?EX4pKs)4rPL!u6)A64pM-J-$+}!d%brE3Ss{iW&fA*vH zKf}KHEB`xAe%=3ervl^gQLDa4NH4OeOGrD_{%_~K;a2nL!89!OZ~Ky8K=WIi+K2Hj z^VZ@{12nH^fQ}oT9q$DH{@h3CI2BRu3ezADQYXL!EO#sM#z8+>Wf26=b+!^m;rPM< za@9`II(g9YNrrFsAxP=(1avD8e<*dW>9TzR@Q#c~SlbC=tLvl{2yYj2_HxnV>w@$I zM9XrE6j9U|$pc++ zyz08p)fqb!@aFd&`vcnOLAt}PS5#mQt7r9g0%s=@ANTO-lJv6d{?(Fxf8Q**-WN;y zeXnFsp5Ua3!HUC*^ao`sSB7o{4>*~(Q4;6DOQ5M?wx!nA>bn+qNRFM3$H;wq5_LJ& z6kzNr8>BbVOI%+ zFYnX5x~wjx$8q6Ull;BPe{{Ek2KKtpvMzF+>p}GfX{z8hy@ru#8`a?+NF>QD1r5wM zD=k?UPn7$syPYV!ogHY$7j>Bedel^*?S67#j3H_An)An09tqhN+^1+ccEg?V?M5@q z?kg;ToJ$J8X#$;Ev%WFzD$(`j*ZldNckQ^qXDWlG@8!1L{+Byyf4kFi+wSXI?r5N0 zEw{d>e_hKBL+;CR+gN*le7~0Z;8E>vk80nqDl7K!s5Ulzy^m_&9~E-U729v#r@+l* z+nk5851s;lGd%@P&Q$bhmiAJTwrb+>CRsTTK4FP2bl!fukq55633ij(iI-$#ZOw~L z%2S3_Mn?1ZOejE@f85jTu|z&yG=jqnB(`8xHfy}UQk1%hZrdHa*m&^sCOH2wssQiX z`TzLzkt5mn-w)n@y!p@n&7#eT1E4)QYLB7c@Dm!d*rega;BG(>yrb`;-)Ue=A>p-j z^H%s=9(}TC6n)EKYA`n4x}l|FeSKkOTrk)XIgOBpuduaUe+S>sNMFR*QGcV}Cc+ey z<~||r5?yIxyG>f&_(7_)XO=q%zK)@(KWN%WdEv_?BYa7=0NFBvWFCh6@P$SShVr#j zFdop4X;E)M_le2#iLN;AE&$rwEHe!-W4$ALY1d|1VzqmD(75c;Fv{ad8*ANHrOUeL zxkXG6uTRfQe>&PI8R*kiyAD%rmuW7lF8;oyxfpVFpR-$b(ErhEqx*ROr#vy8egAX% z;Qr4I`7th4@LID1G%Mx>Goz!yRscL(DNK%$cDi-iR%;A2{E)WQ7V_l zhSf{RJp|Qh8d}H4Mel-rnc93jtS%H?@%a*pwnawyfAYw&QNC+*VDeu_{+D?OwtHc) zll?z_WIAR4j~$sh$p3mX#Ua{~Ab#aStMrJ47T8lDprC{BIT`*XalBtpCT;@xSTGu><}8X2}0GA0gPc9B^}x z{m284f8pQ!x#0SF3BwF9(kZVmDK)9>qGUDFZ+4h6B``l&*&ErT`yO@$H8cj;UFvK9 z$*;Rif9)>;HcwUWc|Poc?mswi^%|`X6t@n~&V? zaaD)Jt0?lu#@nosk zfASFzvjDwuX$TrFd9`yG1HDu2Iz!j1cR^4J(pSADkOAyo=s29L3*2qc;S%L{?pU{% z6w@4gP}p@iLYQrdgs@9^ykl|7?G467$05<~7E9lGDe%u->6+R{Ucdqav8 zz@GHT4!$2mIf(y8j{xsa{C8@6ER+9vf8hVUIpV+Pm@)P@{+k$NAL73T{F^@h8$EZO zcMN<`ucE(t6?yUQor+fUU$#O4bY=cs^!{Iv%DW4Aa0~e07VyC>;DcMh2e*K4rdz-V zR}2pldj2B&e^{GmAMgK7Ph{%<9_0VNDg3`BOY7wQa{l5G_QCVhz;AlD4>w@Gf6uo! z^}hC|0M|`htM3MvGrM`}FdUR&IIxjkkN&6Ij_fS%pZ*`4oXXz+KdAqIbL)Q;0bTQd zVrDg;XWmgM&u(C~zltLfxJu42Q*_87^+W@dl@&d5S_F5l({h7iO$Ok-kKhB_HBaEd zmD`Z`;H29KM5$DYkFYRFgl^e)e_F@0sUbXYbl9aD>SUVuePR8@G0sYfAS-;1kEst~ z=Jeij+OnRVtP^-E9wLvTbb9#OndH5Y4{S-_w)R2j~Ac;f!#>4Y3?CRxaNr0t>V=IDU2=z6O2k`7`3se{^~J$TYV9P@#Zb zO7aqd#a}rLFeB{Ha_p+nXR3_<7=6H03&jV7?gq}}jJRX!HlsydT4BeR5$H{cXEigT z;yE>LcF46hE>vJiv5DhZ@TDW`A$+-M*TUwE7%wA0o^KJqnh|5hCq4r-KdN}(oVAjl zg=n%&wJ*lxQn1P;e?nM)sKBK@rQT!7&!SQIU|H1Yd( zym|_3F3{Uj)af|bPeZoqca&-Ma@auAh$oAth+a_Fb7dB+W2Z4fV54sp0dSBbg0@wa zq9Vgh31(Uo$b+T%9ejFLNEhrM@b%w1nxQ?9o*gP05C(9)e-v~KhWI5 zU21pWKSy(5BMgl8T~LoV8VkmYJwAS0h5;sW*qV0)bZe@8I5}C47Ai3UFH#roNwicE zmo!(8=fh<_e+J^q2#2xK9kO+_zri9V`ar(WNw$un&S?hcEt@AUk~_Y~e(yS1iK1Zi zFUB*qFL%*7nrhC_{IL9c#<$K*zd$QPyI~irPVQE}x`p(VJSIaax~> z=hviPRGrH?vUEI8l4?Gv*&8%Fnrd3tu)fmUMQ#Ske?0=5LEiE9$s?vVVr#^Zf#zyy z0i=+fpouE=LWmtr@=y6Tb8M0kr#GmJy`5^zG%eLW+oE&1~3# zjR{d7FlRVbp49sv-@EQ2I1D*4P-u>obkm%LRcokuIq)32CSa?Qq-0^4qF|odc4Qa= z6cpanf3i46O%0*TpiJ$AbI^}|8@gUEMv7~Uu@#Y-SK}dSN9yHVwQIXguyw-pkXAPv zB!hK|rxSdx(Blt#iTrrnSmwtgRjb6g9};|JKk?SZ8zeRJe2St9c?Z~QX; z(`EeGQ}bh!Z|{5j67qaE>P*ne=57-l67A;lk@61q9^2r^UpW?dzncfSDAxC4pzVQx zAU3lqfKVrtN5S$=NLj@StPK;6z#Zc$EOOA#N`P30Yebsk8QX)mYSJ1{e8#G@oRub# zf6(87B&HoyYIlOBxq1nkKH_d})=o>o`@ws(>sxA4cuDF)B<9U_RjJse*D7Z{iv(TD z{W&S+()ew8%WulQ@n}JF4O3OXAT>|(BXm^={+=- z$1E9ZVLXR@CK5)^c-o$eR$wP1=Iz}lV<4Tgj*~z>5{S{l(sAGpl<5LYmM!?FZ(u~( zZr+sECV8Mr^xWG{@eV`o+~n~;2h7dUH!}V^IXQh0|9ykkU%I7ct-eR=-#z|2e?B!) zPSyV$o0^(DsQ-UMe(+qcV>RT$oH#C|TPWxc&hqipvj+ugewdzNw-4=&OltG zf8e;_Uj%rpltZSzrkC3BYyL%lwHmu8@SX7&d`CG<*cZN``s%vVoOHL;=g}o6{Mg3J zocas;Lw~j8)#!8hBEH!JpU266fAEdUfR8=~YzB@eE(1qj;YBg{PTj$ZKBgO}h;8D= zZ2UDBhQbE?TMUo$Cdu z2FKz90eGiDkvryIM2ge#xcZpM!SLNltWRcs7qc;L7v|$2u`?oe#@WO-)f56Peq_?v zd}?pTo6|~fPsKGkY-4QRf6VTUOaCN#B0ExP8LR-pV-`!J ztA;zpw+9IaSPugqgYNu^df6gwp;BUpBxNbW*KrH@E%kLyb{Pv{#-vPY`j&WFY6rq(RkvyrIK@?@1pFGQj*3k8vQ2Li z%2+vGIuaUnVd2q{e}x&)F7JRS3Azq{NWvz~8uU_}<@DQ~nNe@dQ^va>xS7kULa2kjGVXLN}8Op%sWq3U&<8m(qUiU3+rQ~emttOK~$w&pKl`VM#V zX#p($LT!GrX=8XYdH1uT#gEu)+imRN?X-zA4HVrZzydJBq}=*c z=ksn5byrl+f9Y9EXauuQkKt6O)PRPJIgJs#P_cBU?RZuVL=y3K3k-E+Yb#z0=&N(k zdBd<0*Ly(SEJX6@)b@0@6`*gjQ$+D}7lozXOnH*fQC3k1R#GI^K_b=Q6l4fs~v9bh?ChS9}R%$ zUgg+MchQZIHHb}<1t%g37Qgf)Yo(0TUW=14Cog}qoGNpG>fccP*#f-K4>$3wy5vh= zCB3Y=Hm3B$_G&ftbN6`oi!9`I!iGm>rec&D2HMd*AzIds3j)q-xONpV!>bljVOt|P z34NO>HzVlzpg?7dkitC;eQoHw05C7+6N@(4z4zW57dEyaTxL`x^;tkVoR%8S6$KHZonie}DcwxqCnWRrv z&489}{{y0VZzx0nF6I_i=vp)Y@^Y9=*V2Hm+uAKkmfJE5O#2cubi;2I^-vJN3*3A^EXezKq& zPGD1;qP&ZZJ9VI|JifFTB!wzw+jrVx$OnFbHHFbZS|O~9F)SdIszea9W!0|RRVsfL zKzF8yJB>vt9h< zt|s%~1d^2Qkf=9322aDBX9jiUZbTv>tTgtM*u9QA#crg!HH3K%hhoFF&?;r)uWnW43=t=O{G0-L7AeY* zE)!Kz4pA;?X{BssY-hP! ziv5A#BJmLkPZlsFJ9Xe?!L5IL#2*8v=*H)o)d(oK!52V92!G?ZdiBV@9q4V`y1cSc zAACtvcR}HiwWoCtHK((k7H|}H;oo#y;EJ~7Y|>b?BS%K2u^J_*6(e@SrYo}TY;`fE z6Uv`lB_CVE%3x=7Fx#Q!R?{|h^tm|{uM>=)Z0zfgjkX`6ZI!O32pxa!^E$kCO^Y`- z>{^R%j0Qj zjk2qq)Gy3b0V{$>+A~t(@?up=if~z4r2*gj;0ovK#^WVj?64z)`}3&Cqd&V`q$wV=}@$ywfkQX4kja<7~wzVd^w+1dy%cnL&v3 zCNCS8(XMpDI67lkOr^|;;29Jah$L|)4WsO001ko(1%`iS-4MCmW0jA)38)py28fbU z&IuusSX-~j5K0ZtHh|#}{mrJwLFmYM!j+9hq7h&s{=i}z%GRKT*LH?F9OO7m;y^Q+ zAaWz0%H$3kF=Kj2B`&Dc3egAfr?C}FCN_e?qm(|Pq+p@V0UEtgg?4t(@UpbPFjm)O z`VyF#q4ad>(-B3-$D%4ML*Rcf zQy?&=Vcs1Ep7rSb~vmhHp0 zz=?low!)w52rx145uU5Dpv=iF;Pnj@IMt4Chr}DndKa+7k3{d&9&Ran9 z3BGvJ=r~s7)&p;bcs`)^T5jl2=`6yrqgVuS4RJo?Z~$L`bOnDKm6&2b5Vv`O*`*OKYKbV|XNpCZk|9K5tx9|p&v;iDX9_BKkupfdwOJc< z)A6M~ay+cmSpcqY#3%`mS83OT(2eXEGJ%qWPe$HPk;bNPK*TlNTlr|dh_<9kzmi#HlnnHQaU>c zMQGyjpy*W0inJBmW3j$c&V>#o#|{QjFOa$ex>+b0aXz+7o;7SECIARal$A)DI3|pO zDu{gjytM*Wo99>yNJA9&5|yvT1_^(DqbEn{F1oBtz;-3rc%Dy2WaybR5lhxqg-wP{ zlDCe%F13aw10aqK@W~!VER?at2OT=-Yw^l)jy89*1Jc9#Flc})==5uw9}WyVI!G9{ ziEOI;6t8Uh7VY7lDPYRj$=Ho|OBYz&iOx>*hKr2Yb5ZJ6YD8rn&E^2ChAf%5jg`t9Q?1ZkFd$V@ z8DzQ@>8iL{EjN{n+k${K0Ga_3v;YzsBeBI3v`*wk=r$^*N!v=N*qeD2MpF#r#RLQ= zrwUrosi|zxL`kT`xVRJnCewd^=%B#Ne&m1O-!8RVx7>jI@ABA0I{$le?8rg>_l@{D zBpj9SU5s1}@@{Q)8i)sSnlB26P~*PCYFl7u$pZXI0T5}qbRMU~>4wE-KX+@P-HS0d z6e*Mn5P&sOZ7NGy2ZsO_8gC$G;XC7a(ym<;<@>^T{!(ZlZ>DX23t zi-BCb^0jLZzIg4*)7O8lJbvxL&wuZwFK<8dGYBsM?An8mU3>7sYgfKaZGY|BmCvU7 zUAz3~wJQ%Jcl`9TiH$D)WJ-vyW7EtiXRzwZf*RFn{pFI3&*X z>oC%_2S4$>?|kXyPdsvXq&H;%>rBsU4?d-SLAre#+vD$FqhG!dkxs9nL=5ok4mlKY z&6_|M?CXsE_rCr7_9LGLYMrBu8W{I`-~O5HhrX)DO3fi^{qmKl6oj|7d@i8@bE8{fXyado)9-*FJptdoMlq>W4pi?eeEy{?b#gJo@d|KJ`tY z*Y;O`dHa!1WET2abD;r&mmmJ@_9IWE5oj_34D6M!z3}Q&pGG3%44%4n`6Icj_2RV$ zpC(3vK_BLxFF$$(K2iOnHdj6iIA6Q+Nd+q!)Yh{GO#go&@$7?y>9_J(1oME>(=+Dw z%1=L;g#`0gz@ky_H>djQ*MI)CM<2ib33LD5O?#aYPz#}X`sFWua{HlgrN>P*!co+E zf9~3qPXT)oK|YDQJ#TfjXmAp92G-F4w?Fgw?T^2ZVX@0!eeGv|`juxNd*zXj5u-hw z?Ww0{Fj0R?P3)o1z49c=o$cp-@#U|4I}LpMqfcJD3@ARU+GRu{cT01qtL4eZu3dSC zQF!H7pM33$AIk{9EcV$>FwCn@{u0Q&^e~+YMhF%QT3+ce*+pZj?zV603Ap=>%3@_>LAj7kI=;bdx zz5R{v0&-md#JjAM-eqa7$wQmlMSF&H^=G#~19IpmVHo&#QmJj=7#rY|VP$@?AZlKx z62^ZASSk{WkqN8Jl|KvlocrTz7$rX2TO4`uaFs}N`pL%rr;m_ex zJ@k_=Kl8OTi7%?1PkJxP8o>qo--+U40{2&bU7|C*CG6E5g$aL5; zGn&+AmlB_`RUB|sFjP@&aCLo4Sbn3^0#AP!LzFg{x#}QC+qQH(uOdX+%qweM^($n2 z#qwCQk?1}}4hJsQnn(4Tj3t{^AROX0P=T zn3I>#GMAs`UitW>=9e@%*w9;VA=O-GS{YQ}ZS;NpV9w__Xpl-nB>y zgOtmIkJ2xhk#ieeyG%mqCw}3T=YRI)2S2*~)n7_?Lq?gwGlLn7NX@jZAlUT$+6?7R z%urpT7@s40b&_H)tNwPx_BufDTyTHC!%lzjCv$*~Vt{rOGxJ9=B_ziCj)Z2o4s`qP z`8u$CdsY>a4Yd<;853r2&?*#$kFs3UJ~z8Q0iQIfxB-O;FJj8EixtUd=>rSN-rKeRb7XVp0h5!OvrCHRabSQs7&j->} z8k-~d6w9Eym58H^0{$Fr zbMq?{8$beTy%C?v2hyp7>S#Nd^+Y$>(DAR;bk-mLz)~MxIeqGm@o|AZ;0vFB`Qfj| z3P9OR37N6|(O)1d9;}N;#rJ={`|wfm4zXgnHLpcUsN&fDe&;UG^GNYa)(KwUcw9=x z;&BPaSFT-tPISQ_IWSm{fAr!{zWUgwUViQ;P@X>mn0?r^l2bbPwadTu@QAoSo9w3^S8UGp5!iMl+S{QT+H9(@EFmqha8 zXJ38kJLC&JxBZQez5L~0h(3Assc*ja*rymhbssHBIvp*0cKf5Bc)5Pi=qZSFc?Lh9;63qKPk%sFcdYTA4csmg1AVLx`@Qx%S}C zP$==k)F8*UWUvMkNh@lP4TDh58R=8I2& zsrQlsEZ}t%3nZB`Xez3> zg=xWXq6<+ZK!*wq4ov(sQY>UkXYu-Ukf9G~Fp(j&f>4&kD&bWb}a#77wOKR*2 zy^Q8Os(4e#$z1>-)Pp}ywg~8gr@1-iHHB1qJQsf%b&dvYyUA55FU~0={4i1wCr8nR z!lY|>ax1DlbV$oa2TxH|aS<($1w9|mIWFX3()y1?3EIFoAQ!{Lu{WiwbFz9Qj%SL) zn6+!Ucs&^(CBx)2DjLZ}bU0&O)aYW2ala!JaKGs;Y3%XG;NSZeyMlsby_5TE!R9syMvUqVdo=g{lDpL=xeCJG{5rY^8> zT5z7?C41To66yry9Q{PzN+;`RFUi#_pz4X}j z$3D9K?6*ctiT&C~KMh~Ru?6F_IOR=qXNBCcbA(z7sVkpVhvP~;AetirNJD=!XNsU_ z*;|gIh1E^cepe0t%CB7c-U}ZyCjyj>&K0j+ev_HNLtKX>iHPpja=Pd|BVRDFJIlv=@hA6r|CTHo%3M-MrN zZf}G~jh4_rn4%}Q*KA%dme7Bx^Sj*cE4{m4{uHy5BDM+b+=d4eV{qLKh{&!7g>VMD4P8d}CsQ-U`R>G(F3Ff=d zlileO;QXa?^?86Nvjur(E1v6uzqx?_PSpW_PX}L`?zoKr?OvHI20mMHWYbN2X_f?k zPbaXj;zOMwB+G(FHw^WtiPGTnbm7x+pqq441;X*WYSWi?rDIf*Ru#hWOOUIboFd_~ z{Z+EIrJsNs-GRCX@b!Ny(hfVBTH#l}gru~q%`m50xJ(xcpX~&j;N=LgKBUi!lP(uN z4|K#?T6J)M#0H@ol?=C?y3{qpcc>Vy*4~x<(lhXZftXE9~dZ8U*T13twhl|{{% zVJ~{;G>j>K)&l&Hx)S3<`HPTd8ezA1St^cQUC+B_nqd3H_=$h(?eFQpWPyW$h~jJ~ zyhOFZ%=_cBl}nvXX;Y;{qebEx^n9ybzxp`f#q5qNn%*9?F1dG&vj`^d)y?v*SN!CH zIB*j!8AI#FY@S$z9$kt7AK3Ugkv?05=DKulh-K%66&rD~6#l+kkGwaRqc zp2f)L{Y$b#_vn9Qk~NYg$r;;ZvveKPS-!nL4$XLsJ9%=1*;U*Sw!RfC^+?@hQ zhFA9Ef$|HP&jIJr+$m5)!7$w2;!?-C`Z(a*D0L}i4s#F<;yv+Bb2)vbfas96Ep z8kdkXE*;Foa=J@3^^fRO-dK+qr^IqB8@25Jueauc4ygM_18_*1L9fSZ_1+1?5Uj!vzyQoK$3`dDbY?+ zP?8P~b2pZM#}9$W?#0WX zcy@?nQWONn0i-p}@@l+;5ZUa&mtq|OlFz2KpBgcLmiMLnTJOnq>|pJghV=ZJEA`Zs zYHwV9(FsW__Fe5gVblW))IF!+BeC*~qYj$ujZ{NnRX{+)-u6&WWi$~Y@5Y`d(<0Fw zW)BJ~EamE>ga+cy(44kHm{ZkVkLIS75A}2t;~H9})Kw4Z5zVGOYrErSNFePNmsDAe z3e_Bc^<#S-*&bM-jx3<08v_9Y2a&83IjOcg7)cBo*(T)>L{2r9c|VQDDDmz&|LWs- zwsWb|0$~^W5`-vO7oDIXo9KkNglNE~iYoOE5)mJ3#i2TGMUq5-hP*YkgW+bRGUKgE zzJq9u^nc7-wj1+2@#{M2)01HRkco*ip;A(RxJdXIuftrZ3c=f#qWK$c9?Z^1oUcA# z2Wo}bg~n<@7j%1ND26VTPL@bv$MyGAnRwCximPc6Ox?E&6xZ2-A=4HSOvO7;&JkcU zGC;1KW(_CDE7tzpP}08}j(El}M-X_@O|@Lc(2Z-%6I(<}ZxWHE7ay^ruv69Mca4#M z>9kQDNSYvCN&}x(A>*ZYfnq8J!bD4QB!PB8TW!lEPoXr%x#zPZ7B8y_gEeqpp?9s8 z?Ey1bBcU_2n04#S48R#ns)GG$2$L9kr`KwO6H$S!joc8`tM?tNQ{i>*8Q2g*B==La zQ&sD;Q%h_YoM)spGVuVhY5TRr>Y>(uI74v+=8{#r;aXt_T?=u)1c`?C1TD7~8kjIuoV26ILtUg|LRVj`^YSb$EX^0!w%W?vn01?f5sB2c z@J;?x#qdwlK2n43eu*ArTOT(CQHSZS-9Rc zog`gTKQlzU`DA*CA>4gkWa04c5!m~h`{;5(Zy2|D2G+HL`!C*2xrO)BvGLx4{$%a_ zJW?cU@ROCBjzcCYOl#&zHi>I>-R%R>DQr=bnIM0H7V(Sk2-_pN$8|sosx`6Q-YmPhP!#rJF<0jj7f-_4<=$V%)ZC zz5ZD@@LX~iTb%&!XLb~?FWDg&G!m(R41b0sy9$K3`33yvl16lYTHq;eQ85Bg_8=%) z;_8bPCEl0)FylQX>iUbcK_mBIi2O?bb2(<$>lh?k`rmMfXw6*LYJzk_`I@^S(Nnik zxZMp-$+ZgKofRmZ`1Lgy*ydA-1#6aS2D9gkx!3v4>qWqxfi}`%TML5xew@0{7Z~Fa<&$D6vjHkf|XzJp3A+ zGrJL;`}hB-K(~!Y=nkPYy2ta4BjsWC4N|foa%{4`9ergQ*JR(~?JCgaSD#lFppS=2 zct#aK(~;QkWV-tls4(1ahTeoO{6?NKY%(tu&G!IYcJC;#QPW$y}vkmoO*r$ ztJl~0v`Z79ZCSo)W+Yvew5(wfK!S=loXxQ)ypJb;@i{d>hMY~9RHx$G>+lN+#tPm{ zk@x_dgvD_4-Z0SW3TaYIc#;CmHBjjxSyB1%2@orOomgyBI;2`o((5p49=0YY{6&@` zEZU2>i?dG{AdzB$gKiTU!8|ri9b@*I^mv=76763=M+LHCbZnW8#072NyF^bCRY3N1 z>S5-84FmQ})lsRArxRPmtd07!&8{|a4I85;F^MAkq(CN;+uQAGY*NA$6S6vd$^e0X?v4|xoiIzU59GvJR0t?NgJ_-84-}l% zazstbVBVDK+|UMxAwN(#x+IOU1~OY3b&G;#ekP(x3Y_>vorYX}F}y_Tg=KK3Md4%E zag|UfyRiJllLFp{0@VPvgoS znaS6o1eWAUHtHvsc*9(h$V|MSY-#9r2?V3*Q0TJ%c;XeJ1|dAeB^#qJLL$Y%3kByc z3~NkhidVI+K7REpz_wN=^zbD`pn$;pKN49WCz^-Or{9chhaRauLtRv7mX#<_8p}8y z$TC8V!=gu&Bht0l9Hb*y1-N&~vK1SDw#3J8d7XgzU{9}yhHuZ!T-j_9#+pY15>0r0 zEx`M97{4;z^B^3~t@%G^%bbL)#Ok8CXYmA;$YSF`uVf=MkEKhn0;ryejqwGoCIUsa zf@PH2rZB}mmc3sOnR|he_%GZfDn*9kJ*W&j^lF|F#)Xv)l!dum5BZcaP!9%wM29TK z;3F*Z6H?xe6-qo~+>P4R0&Kme%bo6?_e90-t{ANPJ=>vcJ$nuxLk;l`B~q)##yv z=or~GV=1xA!M2Un67whqRc6VmI+mzY8d1}y*H~(OJSdQJ4iOYN^{U%T0-RkLIYq{xvk9m2GISCut zhXwQ}GO~!WZwn-37H$BQX((Q zxyh%ArwLLZQYvaxWYtOfp@Ms2k&%=b+1Cnmny3zbn$5Eh7M#^qNjid=d9%PofqC+# zdA1<`{s-DX7faPW8l(4r{f}~aYGNAie@vIlN5-e8>HbH#Jb7^cXxA{FRu2dG66{t3BdM2ymV$uDYcF=Ph`T#ms6fFC5of@a0Z$vBq+g-e)r3x%Qb1NEzvi?uKRdU7G|v~*=wTq#<@!lN zy1M51R33px#0!-A9dQ6u08^S?{T|xz?AkCWF(Cw^XuRE{AG+SeBs$QPRQ{nRtG0R> zwA~3)QwG3zXY-=0ZVV05wsGu=v1#JgZD(-!sCZMnOJeT-mgSD_#~8TBk4#N<-T(M| za{rG{md9=pQwRHh|AwzW{C{lp4PE~USpSJ}PzeX?|3ADJ3E(Em5&=f@uY!5@6}hhIANeSal)(QoFs~lx#fRc z{n79I>d*%!-~YBlmwx0M<=_AHAMgB~UwY@tZ+!pS4}9y?zx~_4_3MA~?oXaxEC2U@ z_pkra!aqKL`SZVZ;gS2wFa7>u`|rIn^5VBX@|)lNyI=g%NACXJ+6SF)K6lq2|Jl&! zAN=`KpZKXizxwfuN46Wq|LM7Zc*mFj-N@qV^C$kwAOB}@{BYs1=10H((huL$EWYob z{H^x?{NFwNzdrDmkIr2F;eT=8zpno`|64G8_qpGHyZrZl_+Om+iSp+@`(OX)iLZU@ zYmXfLAAaoJTOV(H`QP07>yJMB)vuoZ!;k#I+2;3u`jORNf9$o7ocwF29tFt(pZ_nu@3Ci}`scs*pMLc3|M3r9{f|HK zwg2UR>3&darEpT{(0>;ozf3}b7*P&_kQ~a+#mYlvG@PzpZwk(Lx28{&xYRpADsJ-|MdTR z*8A)4s=oW$zxr12<;VZSeJ}p*-*%q)vw!w~iPb;+*MIu8-+txJe}Cb}{^ak}{@*|S zv;Y13cDMg)UiD_t{}V?h4&?uhmjAf^u{rxj>i@~{gY|!-*I!<=umoH%`UdR(>9Mi$ z!TR4M>)#A5y5>^~=!3nt|HjktpYbvHIk5k3Nc@KmA*g`t2*r5{ho}rby^#nX6b^Bd zT2TsrvI?`Euu18-gY)mvA#4h5s<&kQL282O@B=5Uz^>AtcuS8CM@D6+SZ%b_4Egy4 zeDKNk<-h>lP%Gkx2PKJahW)RLyzkroA1fcp?Ek6q!T!GyKln21jA(SWgymNXw9Yg1 zYm1LzX2k5`Vgdd?Baj04+w#2^POZ$(uFdm*N7(sbqy7cn|MU@j;$QE1&<^{5a&lra zwg2ItgZH0rjQ-Cn37B~FS&Ww^3Wu;l;9mVi#lHD?hoADjAKy;0Tmklo?OOg;s&qUx zrOQnCOq6B2fgn2pK((dsP+k=0`@}WE@u;Q~${NF_mzgavZMgI{_o7Qn_^On|V%n;I zf+rsk;fN#VYfc20Z&L*!K6*$9FrZD$62TKBd>{eKa^s|lmf z@wq8}+fk>&ROyLFBnTxw)bPD5eDG01)=Gt27Z+C75STcgg?uzdPd(BVy&Ds;8@m|A zHYQ{S_{by{N>>jf26!Gf7!45_B!h)p@0~w+esz9j^}^|e#d(t?Q!0PgHNNg#xOHuQ z>D(eH;+{C@=8Ol{EzwV~aq+4!7%5KG@40k2LDMzxovo5M>xqh0UGKCk?yUeODuy&6xyjMt!mYE53$v>ikV^pIVfy^=(Zq&{ z0arQuke3Cp2ZE#qfbCPb^<7J|3yT*{&aNWM-HPtd%*;Fzd}hY@sw57NDu6toe&@5L z{3TunzLiFWL58@Zx8(p)ZzVu;%kUq3J>@V_zl8k38@c594F-QZM_YcAUUkuj_3wXw z+m~Uub@(tr4)_@tdb+OJX<3*%YSm}~J(n1eHa>0lAaU3a_-*2=brleNxKAC+Zz#!9 zxb@u1{My=m7tYQu&EpgIV_nff3iE~!F|%1$A*Z)a+m2_|U<48cO1SeI4oZI2h2&LN z7dr_^RImQd!mWR}_b;43x41kz7h!?#1geK{xP!(io*8^d&)MLse1TpZe0N@|MtBZl zN+I06*2%fkcb{2!$2%97&Mvp#wX(W){@!?8!n!%~nSPK}r7yyFNaQ zPJ&I*pr>~V@G*V9!r?@639#`!_#uBKg(67$>#P^jU-wXlC6L8-(UBX{Va?1YX#u{b z?{#5haSoqQqe3lPg?rR!Cp(Qm+Y#rU>}m^xbR~X##S;5n&_VOWZw}F=15tsA`#f=aSPA1w?2UQx^4}G7TJ5@zsr)6ZHN7GeIepj< zRfmlipgMk4(kB&m2Qk49U-iYeoWKsj|9YLU(DG__-DZ6-LK>P}h!Fjgw(o6lIv=V* zdQr+l!-F4Ya`_z_R_kDO&!m6xA=5)4QuS&Quf~TkNi*DQy^Vd1~k}8ogEp zPN4K{yp0x7HhNmiL>=aGR@&5s%-S?R0iN{avNBCQdP9qCZ-jvNM_PXtd7AXDA##vg zgHP!NL>L-x>IeomacPpqAp7pIob-M6xE_n9?uW_fWAd`>ZYb`Cy0 zySB1$^8DH|eDMDF&#r$K7FNON#;<12-Y4eY4L0)Xs#snT3*f6Q062iZGJAGyVSaT4 z1mCH}^K%Pl?;a5VLY!S*6N?K=3v1A9ZF!`C!)CjQ<PU0GPg1`B^Y?7g!v=6RelEe&ABzZ$GM zLJKGsPK(*OdlnFFZd`yRUtLh_0UxcNKXpctyM)RHv`t!d=IQwN(vG5ch&I7X(p#sp zmEF}vet#WA5lAfx8#PgM7!T6DuYi6J#*9)SM$1RjTS_cEjudu|1?PE<*hKLB@+kPk$$-mSu#-mT7 z{2b{6rZ82DVi=u}E?c!@Jb9!oHE_XfgklW|MMHyvC*RA*P)B48AZgCK_C*rQ0ePq# zP7@X##K1T<2tJGoaqNL9LSCXHS)r+iV-Ny{5lDYEnc;M-yNKRCO9cgS4ImS2~6Hy#5wMcdurCtoFoK_w7!0j7;Ez2kZ7 z!a`#P`iOH_*Bcz$!$E=Lu41SehV7ZrQCt|(Hzh!2ltMA1EvE=R{;*yZ^rmJf5r5|s7r-^<=cT6N>V`? z8e7aq+tCgK>C_9+6Ob682QyD$R&C1adLV`@d;pM%-EoV^dPFnZ1?mlJruOlcc2MwK z9rx97XnG=(_4QE1L>zoqd?c&}vh&PvN!%+rrr;K4+g6nUF&w-ojWI0!awmoF*m8fT zsT#p-%>yN!&{Ck#f)|-SD$NBC9w_Qi5wYDR!Ee=C{i33sD!)80puGPWz>gl1&q}C@s$^4jG=vke`{0T6spL% z6)WIqnxz7Cco7!%Bs6XNa>MpIK|z1@4fJcGG@%;0J6;>id9e`E6VTwg(FU*Z1`mn9 zV1cyc54{4$#b`a$JJ&`4lutvzDDOBZE;fA+uinnGbO_KG4Do3^o3u%RAL^|UuMo!S z?v1{aL^h(_6q)Ez>HvRwwt#(_ z!3fEdCJ?3G!MW4<6h*e_5D019LXk>@_66$BHX_DbEs~Y!Uri-fNlR!}DvK8Eym$IY z$DuAB5=h=<^sPZqAeXk#>{c5R1uXAsuxXoE}pgR|;^qqeo>0lf!6yB<0>lMkr4R<6~823Nap=qR&s=y&yKmOVdLCH8XR{^4m10Y5HvLOC{;35I_}Q52iU8^v6Hd zZsQl-qxHc3742^Fgh0YuzGL&na25sVW^H=@I%zA8&A`9dU_yn08>bM`t|@_)M-q^f zI=&Yl%eqtNX3yez#OQyB`6(^C`WTj@V0=Yr(pP-==Wg+#7pg{b$N9YwEMx#ez2jpH z0`@kb9*Z$P;RVl5F+R?NwW8yoyo|$7hD-`*2%NTxs*7ry6i2It9OFw2APJJs+~ zepMRroQ;W6d6>1XBB%kgx#GTLf$pXI1)$IlTurTj=^9Hb0~OVU?4uA ziVyHh;v7c<0yZfskwal#%LJ@clrIT}VsL^E6NrMT#wBBNx!n+9vnxeB41yF2=qH1V znZ_Pgo^OLT@g;v=aEc$2p7wdeC(m) zGsH&t066j;7EH3T=??}cE*mTnFq+33~wYUqD##bO$B2DZp$lObrI$f}QW zF|eM)fN{B)CDQ^u3XJu9$c9s>U_fh&EO@X4a2jaxVSmtyn989n3v|oy#S8WtV5VE9 z&xm*`w~IUD$QdG2;zo+X>@<)J*&&6dL`6M;*80U}CA%Cp2DG)Oj6k)k5(`9BiTFp+ z$HX#~q@90VK>l1=w6P5wW2=m3@;D*`n#Yw%SEM9V;Gb=B4i3hq{Rn-BsAF$^rbptL zrhrGu7?s08w@A1eMK+12G5<5@bmBN9 zr!8G#f{sY(e3g$^8F3u!oLyblXi`VgR6})<sx1i>Nd-xlm2du3}0Dd2h6pC1pIp zP6dOt?b)%1Hkdeb9mM^tygyn~?3^F~N)2$P+hD@BeH&fg^DB7Zqq9@Gtq=)nLun>6 zXY_y8!Qo;@kKQ1YHMOE!$ZN_}B11e<@3g$}u{)AeNgu0bwL?C1hrdW(kbD_Y@{4E* z*kfQhwP>-tr|_CG!CF*LPlcgVda-a%NgYMS%KEK1abIZ)ZMz$ZHHrPGWuy)UcxbxO zYQqe`$OPSNamoQLHK!M#Ozm(!o6B+x__%+vVc+Fj z;y{g(`pe>if9&@J7?vZyl1)&>D&)BZok}rg6wGLYW&lg&IB|zjF|^~{%`;77p< z-7-|;SXh(7ZaFF@4mwkvu{OP*v>FvPYoHl}=ef8|q6|A)ATocvjdWPm zP#u`hp1rTY*`^d2CY<6Jm*Z%?43I{21ZN~pW98@Ia31VW7Wh~YV~;il6DXDmzj?6s zvT}#Ayj55ajG5Ys7 z{d`z(AH_lD&lTA9y%L% z#2x32D-+&u?m6MWjHiFc)MY?;gjB0>^qGa7-2(H?*J*8q*yYydMuKWHh19(plTZbg z9?|mh03pVxHTHvv-h*06C&pm*D!3d?C!!@2HO(0*sfRUc(eL#+6t|i5dJ3!vb+l@{ zG!ET7L~VrDs@4%!$EhY^mtD1HGbNdh7d4(c2T+&e0?E$emAK}cPTY*v?z0#-kue^MDl zl=jp8lEku;GG-(O#4uBcWvr82W-tLvlZ|FEJHUsl1@uxRnUF+JwtV^A6_2boJr%P7 z@panvgU|u9pG+Z|ZM%cDnAs$CT|l6!$>7EU>MrKSs$be_llf*R9DgWNxG$? zO?Y01P&1(>mFbq3=hlsZ7n3|^CVwpo_%cj1oaDtOR%`_80`D6v@aTBn0}fOVb^R^JDIA;vp%drKi5gTv8`?=;2QONc~T1qVq< z#qiM{4)ablf?+fGH9W>%$A7E;sOxUuYFaJuZa2}#fIhGi>a0N}GN@Zgu3{g&%^<@lG8*9ozt0qDvF5;Rs)<#4 zVG0w=@%@igOp(C{7#r}{g@FIMD+;k-YJ)~mImwu#g&f7m zBB0ZFjI{{n2Y8+hG32PYTmp1%E8M$UX)PO^zJVp$N7W zBa?;Dwh-@kcujoK3h=(4f4hrP83GcIcuJNfEQ(#&nrIF&-YZyR+ZD^+mesNVZwY_h z1$xMa4W%Gh;(n_Qc3wb_nQNnl)0R68ghcb&z$>%>@r-owYLi&8WrKXzhP*2y>Xbl& z9bq?6>a@Hdihp0C^#rttHv~ZkH3Z@jrK6cpo|TJB7;-X8rFyQJgGaBOM$yWo-q40w zoy3q8&J=oR1kZC|jD~Ruk*z#s8G*3Z?1l;^uqhTt2{Z=S4L7R=@Y6I<%mhNi0VtFe z`XubKd5FXD9bP>q44IUcqdyKBL)9qZk2KKHN<>2WrASBueuIj zDCihA2e>f5PhhEgU(_u+SVft9LAiKCl8!mZa8a?6;X*;D?0{UDDGa<7-9zveL;N+s z%R-I^!+)^rUfXi57CKNhzP5n-3g*L_Xxkfv_B0E~K z-O*&o@L1}OV~P3{3dKGB$wwQ^!3^4k!q{+>v6e^^!vijr4n-@W9zFp9H$EI+l^%@h zJQyj@xRg}jJ_&^qtD*nIFrA$Ynsp=w^$~vhD36VCvph(lFlit_(zaoxN0&`sMRjUa zhJS@{HH&9NxdQ~QWo=bBil{G?atu-o8ubwJa4Zz2hSfPB8fb#++C`yao(D#eI5Jr) zAR7;0r4lS@v3lPs5CMNXb@u{dRS3Q4OZ8FQ?nZIRc#=!di$E?3)a8%p9{kYxmBnH0 zBSd%R6S319h4NS$<#9rp-pZjH6?KYZ^MARBO0CwJNBXjj%EHV!38PndtXhE%mW<;8 zt>H5#10aXu+%sPJV5R^bmKPN(@aYk44S^0AsG1KR;3ks&NNfy+=w`=PTU5r}a1tii zE_xoEADTQrK%aC(w6=U}P`kK^dD6~aGgmmyUrC;&A^D6TeZ1Z!F{F+FXGFFp&VTUE zWXVh+Q)_1w^CCuDPF!gxT6@KE6PUIIo-P&~G5uro^|YG=E0h>l=l&0(JQ=OYQoA*n zItCcx<1T&FK({E=DpItO;)_kDi>)ls0ea+KJsR@=xA!IRQB_yt?lw~t>j$+it&hpb z%s^%)2?1<2h)IB8ATbM|Oc*9JFMr9%EXgc{0KvARty`svORKhO)mqo8)GD?Wm#>Q2 zs;rD%N21Y7#CV1?YMdMjm`BfhVc(9lo$Zk zXaDhFE(lZ8s;V_7Sp%YO0-PC=vQ0EBz#WeUlXN$+M2jKW6PO3K%&9%TwA30hrU~2cNW=fU}1m<(ohJYnt!}=^8*m|^e6Zn@)28Vauk+^oi>xnHPT7%PC6352w zKt4LCdFmN#$!q%@`G4tFzNh*B(wQ@@@jqsiP8;L@_sZw9Wo`0~I0i&M^~--y5D437 z27&lgF&M^zK&U|=Y)TLa?NbMVuvvpZXk$Sj#)3eM1%dEVe6!)=e}8$&)L~Da|I?wF;SVX|?twUIIl&k%4bw?PakA*e!Y)L>{uuv@p4 zD$k|+qLAXF&Yx4{X{?}Ped@s!-AI}-og|)j5Hz67C>InZc|nuMm2EnxVoi=ewiytP zL{E`iX%wW7if~RHGk^L-Fdm*_Fwn^(9IxR50T=lZ%}JYCtT4>3WP=lzvxbHS&82#6 zyS*YV8^){bH2lSe$yq7GB^j;&Xc8(wad&cYY{M-KY(>B{hh6l|3z~C1Ysk|NQ;Wg1 z6l`J`0|8T_+FqI?L89*-o0(b<_xi&C9cbUlBfxTxLc&*Whkp!VLlP)LOp$E_B&9(6 z0&YiO<3Tk5)5RosZS6c@4CVsm;!gCL5x#0NhK$KT2KoWMObG*Bd1s5rUD(8LmD>t( z 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 delta 43562 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%0AqeiTN{O_E8SN#L(UjJnD z$_4({*Ie6^KyT7&B>z3uv}@nCUO!NJ=HF8p#H{GPA?5E@qks*WSHn{eoKkgj$OraR zVrXm66-=Qfn)emb2YW3@Sl>vt&z|zkD7KeF?7rwXoyvF2vC_#_BJ93Ujw~uECEUFB z(fwSXQ|^sn;@yOOdBd^}%TcJlvCWfKTU)e9S7+2K`4%$m9>{p(45dvxcRVPY_RSEA zZ;zpxk4MBLX(mQ4bX`dwILqAir3xR^YK74tHPTdz`|c`%YDI|EZ}01^gOBCsjuFWpo^^O; z^;_oqz!#rGXG{4t4cb|&gx2HE6`SQ6L3j_=j{V4z7T9X}EAu@DAaFG5_kHI%mT(&h z@`l8Cs|khXWcmbHCq^F}=nN4Cvo zOV&F{Q2oV>ByWaUjG3(S5Z5Y${;*4K&2e07;R}H^A#Mt#em#TdLWy-p8vmm$^Ua?F zEox(hd@$~xK)w$+-`bx);l1_Tf7Pe9@$_N;{^&L`jd%4EPoYO~?Q&jG&}if> zHS_!vR~jhG^>idaFctF9l27 z&H3=i{}4O+*8BefSU{)0c{Fzl)KD-Ccel9QajrcH_%=#iN}0nPM1y#LPrTh+j-a@P z)8L}jNCO7Ai^AqBHV_acWk5_VR`4xtPmq-K3{!rh9dF9xDvS1`*9R8^?R z%9c&b4w>s(bg9cN^{$*g2qa&xP$|E9`eNLN+6O#xkY>SB_X_IfT7r`C?Rp)FCu&xJ zw#H>7jY|hJv7GKwP5opZ3~XD>1(dgDr9S1=7Z@vG78_aE0A}!iPpNl#^wrIcH{Jt0>%!VZjyb%zvI(c0iDpaDpLbE>%~<|TuE z-E%6tqiTrf#>-ECS^`94^V*XRYPv{GNbxR`A8vkq_XXa_1`t#=l511Y<34@}Ja#`` z2F0^OB$J{bFb*KCX_i;x9fZhM2fh>=2#|a>t^L%9vAi$k*LqK`V+V`NG^FR(T&bt7 zRD0vv3rl!Cs2|(w$o9Yrbz}i0-53ZMIEZAO$Vs)`!AN4z$Tlg5Aabg)%=>9HMu~UN``4bt zvz^PG76`k4(3c=Y$-3wS4cSB|#3e)nHdR!qcaVtqSSt?IaVwG}0yN~UsT~YABb6C% zRq`D~Yoz~U-m=}8=ZRl8NS~er>xWECoC(#6!bQTzcpc_KRS4d`9L?Ww^I (YD- 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

  • I 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 y|5xPYXIbw8;;jDN;I