<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<modulesynopsis metafile="mod_logio.xml.meta">

<name>mod_logio</name>
<description>Protokollierung der pro Anfrage &uuml;bertragenen 
Bytes</description>
<status>Base</status>
<sourcefile>mod_logio.c</sourcefile>
<identifier>logio_module</identifier>

<summary>

    <p>Mit diesem Modul kann die Anzahl der pro Anfrage und Antwort
    gesendeten und empfangenen Bytes aufgezeichnet werden. Die Werte geben
    die tats&auml;chlich &uuml;ber das Netzwerk &uuml;bertragenen Bytes wieder 
und
    ber&uuml;cksichtigen dabei sowohl die Header
    als auch den Rumpf der Anfragen und Antworten.
    Die Z&auml;hlung erfolgt bei Eingaben vor der SSL-/TLS-Verschl&uuml;sselung 
und
    bei Ausgaben nach der Entschschl&uuml;sselung, so dass der Wert alle 
&Auml;nderungen
    durch die Verschl&uuml;sselung korrekt wieder gibt.</p>

    <p>Dieses Modul setzt das Modul <module>mod_log_config</module>
    voraus.</p>

</summary>

<seealso><module>mod_log_config</module></seealso>
<seealso><a href="../logs.html">Protokolldateien</a></seealso>

<section id="formats">
<title>Angepasste Protokollformate</title>

    <p>Dieses Modul f&uuml;hrt zwei neue Protokollanweisungen ein. Die 
Eigenschaften
    der Anfrage selbst werden mit Hilfe von "<code>%</code>"-Anweisungen
    in der Formatzeichenfolge protokolliert, die wie folgt durch Werte in der
    Protokolldatei ersetzt werden:</p>

    <table border="1" style="zebra">
    <tr><th>Format&nbsp;String</th>
        <th>Beschreibung</th></tr>

    <tr><td><code>%...I</code></td>
        <td>Empfangene Bytes einschlie&szlig;lich Anfrage und Header. Der Wert
        kann nicht null sein.</td></tr>

    <tr><td><code>%...O</code></td>
        <td>Gesendete Bytes einschlie&szlig;lich Antwort und Header. Der Wert 
kann nicht
        null sein.</td></tr>
    </table>

    <p>Normalerweise wird das Modul wie folgt verwendet:</p>

    <dl>
      <dt>Kombiniertes I/O-Protokollformat:</dt>
      <dd><code>"%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\"
      \"%{User-agent}i\" %I %O"</code></dd>
    </dl>
</section>

</modulesynopsis>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<modulesynopsis metafile="mod_log_config.xml.meta">

<name>mod_log_config</name>
<description>Protokollierung von Anfragen an den Server</description>
<status>Base</status>
<sourcefile>mod_log_config.c</sourcefile>
<identifier>log_config_module</identifier>

<summary>
    <p>Dieses Modul bietet viele M&ouml;glichkeiten zur Protokollierung
    von Client-Anfragen. Das Format der Protokollnotizen kann angepasst
    und die Notiz entweder direkt in eine Datei geschrieben oder an ein externes
    Programm &uuml;bergeben werden. Auch eine bedingte Protokollierung ist 
m&ouml;glich,
    so dass bestimmte Anfragen je nach ihren Eigenschaften bei der
    Protokollierung ber&uuml;cksichtigt oder von dieser ausgeschlossen werden
    k&ouml;nnen.</p>

    <p>Das Modul stellt drei Direktiven bereit:
    Mit <directive module="mod_log_config">TransferLog</directive> wird eine
    Protokolldatei angelegt, mit
    <directive module="mod_log_config">LogFormat</directive> wird das
    Format angepasst und mit
    <directive module="mod_log_config">CustomLog</directive> kann beides in
    einem Schritt erfolgen. Die Direktiven <directive>TransferLog</directive> 
und
    <directive>CustomLog</directive> k&ouml;nnen mehrfach f&uuml;r einen Server 
angegeben
    werden, damit Anfragen in mehreren Dateien protokolliert werden.</p>
</summary>
<seealso><a href="../logs.html">Protokolldateien</a></seealso>

<section id="formats"><title>Angepasste Protokollformate</title>

    <p>Das Formatargument f&uuml;r <directive module="mod_log_config"
    >LogFormat</directive> und <directive module="mod_log_config"
    >CustomLog</directive> ist eine Zeichenfolge. Diese Zeichenfolge wird
    f&uuml;r die Protokollierung jeder Anfrage in der Protokolldatei verwendet. 
Sie
    kann Literale und Steuerzeichen im C-Stil enthalten
    ("\n" und "\t" f&uuml;r Zeilenvorschub
    und Tabulator). Einzuf&uuml;genden Anf&uuml;hrungszeichen und Backslashs
    muss ein Backslash vorangestellt werden.</p>

    <p>Die Besonderheiten der Anfrage werden mit Hilfe von
    "<code>%</code>"-Anweisungen in der Zeichenfolge angegeben, die in der 
Datei durch folgende Werte ersetzt werden:</p>

    <table border="1" style="zebra">
    <columnspec><column width=".2"/><column width=".8"/></columnspec>
    <tr><th>Formatzeichenfolge</th>
        <th>Beschreibung</th></tr>

    <tr><td><code>%%</code></td>
        <td>Das Prozentzeichen (<em>Seit Version 2.0.44</em>)</td></tr>

    <tr><td><code>%...a</code></td>
        <td>Remote-IP-Adresse</td></tr>

    <tr><td><code>%...A</code></td>
        <td>Lokale IP-Adresse</td></tr>

    <tr><td><code>%...B</code></td>
        <td>Gesendete Bytes ohne HTTP-Header.</td></tr>

    <tr><td><code>%...b</code></td>
        <td>Gesendete Bytes ohne HTTP-Header. Im CLF-Format, <em>d.h.</em>
        es steht ein '<code>-</code>'-Zeichen anstelle einer 0, wenn kein Byte
    gesendet wurde.</td></tr>

    <tr><td><code>%...{<var>Foobar</var>}C</code></td>
        <td>Der Inhalt des Cookie <var>Foobar</var> in der an den Server
        gesendeten Anfrage.</td></tr>

    <tr><td><code>%...D</code></td>
        <td>Die f&uuml;r die Beantwortung der Anfrage ben&ouml;tigte Zeit in 
Mikrosekunden.</td></tr>

    <tr><td><code>%...{<var>FOOBAR</var>}e</code></td>
        <td>Der Inhalt der Umgebungsvariablen
        <var>FOOBAR</var></td></tr>

    <tr><td><code>%...f</code></td>
        <td>Dateiname</td></tr>

    <tr><td><code>%...h</code></td>
        <td>Remote-Host</td></tr>

    <tr><td><code>%...H</code></td>
        <td>Das Anfrageprotokoll</td></tr>

    <tr><td><code>%...{<var>Foobar</var>}i</code></td>
        <td>Der Inhalt der <code><var>Foobar</var>:</code>-Headerzeile(n)
        in der an den Server gesendeten Anfrage.</td></tr>

    <tr><td><code>%...l</code></td>
        <td>Der Remote-Protokollname (von einer IDENT-Anfrage, falls 
angegeben)</td></tr>

    <tr><td><code>%...m</code></td>
        <td>Die Anfragemethode</td></tr>

    <tr><td><code>%...{<var>Foobar</var>}n</code></td>
        <td>Der Inhalt der Note <var>Foobar</var> von einem anderen
        Modul.</td></tr>

    <tr><td><code>%...{<var>Foobar</var>}o</code></td>
        <td>Der Inhalt der <code><var>Foobar</var>:</code>-Header-Zeile(n)
        der Antwort.</td></tr>

    <tr><td><code>%...p</code></td>
        <td>Der TCP-Port, an den die Antwort des Servers ausgeliefert 
wurde.</td></tr>

    <tr><td><code>%...P</code></td>
        <td>Die Prozess-ID des Kindprozesses, der die Anfrage beantwortet 
hat.</td></tr>

    <tr><td><code>%...{<var>Format</var>}P</code></td>
        <td>Die Prozess-ID oder Thread-ID des Kindprozesses, der die Anfrage
        beantwortet hat.  Zul&auml;ssige Formate sind
        <code>pid</code> und <code>tid</code>.
        (<em>Ab Version 2.0.46</em>)
        </td></tr>

    <tr><td><code>%...q</code></td>
        <td>Die Abfragezeichenfolge (mit vorangestelltem <code>?</code>,
        wenn eine Abfragezeichenfolge vorhanden ist,
        andernfalls eine leere Zeichenfolge).</td></tr>

    <tr><td><code>%...r</code></td>
        <td>Die erste Zeile der Anfrage.</td></tr>

    <tr><td><code>%...s</code></td>
        <td>HTTP-Statuscode. Wurde bei einer Anfrage eine interne Umleitung
        ausgel&ouml;st, enth&auml;lt <code>%s</code> den Status der 
Originalanfrage.
        --- <code>%...&gt;s</code> steht dagegen f&uuml;r den letzten 
Status.</td></tr>

    <tr><td><code>%...t</code></td>
        <td>Die Zeit im Common Log Format (englisches Standardformat)</td></tr>

    <tr><td><code>%...{<var>Format</var>}t</code></td>
        <td>Die Zeit in angegebenen <var>Format</var>. Sie entspricht dem
        Format der <code>strftime(3)</code>-Funktion.
        (M&ouml;glicherweise lokalisiert).</td></tr>

    <tr><td><code>%...T</code></td>
        <td>Die Zeit, die vom Server ben&ouml;tigt wurde, um die Anfrage zu
        beantworten (in Sekunden).</td></tr>

    <tr><td><code>%...u</code></td>
        <td>Die User-ID (vom Authentifizierungsmodul; fehlgeschlagen, wenn
        der R&uuml;ckgabewert 401 vorliegt (<code>%s</code>) )</td></tr>

    <tr><td><code>%...U</code></td>
        <td>Der URL-Pfad der Anfrage
        einschlie&szlig;lich Abfragezeichenfolge.</td></tr>

    <tr><td><code>%...v</code></td>
        <td>Der Name des virtuellen Servers,
        der vom Client angesprochen wurde.</td></tr>

    <tr><td><code>%...V</code></td>
        <td>Der Servername entsprechend der <directive module="core"
        >UseCanonicalName</directive>-Einstellung.</td></tr>

    <tr><td><code>%...X</code></td>
        <td>Der Verbindungsstatus nach Beantwortung der Anfrage:

        <table>
        <columnspec><column width=".2"/><column width=".6"/></columnspec>
        <tr><td><code>X</code> =</td>
            <td>Die Verbindung wurde abgebrochen,
            bevor die Beantwortung erfolgte.</td></tr>
        <tr><td><code>+</code> =</td>
            <td>Die Verbindung kann sich noch im Keep-Alive-Zustand
            befinden, nachdem die Antwort abgeschickt wurde.</td></tr>
        <tr><td><code>-</code> = </td>
            <td>Die Verbindung wird geschlossen, nachdem die Antwort
            gesendet wurde.</td></tr>
        </table>

        <p>(Diese Direktive lautete <code>%...c</code> in sp&auml;teren
        Apache 1.3-Versionen, was aber im Widerspruch zur &auml;lteren
        SSL-Syntax stand
                <code>%...{<var>var</var>}c</code>.)</p></td></tr>

    <tr><td><code>%...I</code></td>
        <td>Empfangene Bytes einschlie&szlig;lich Anfrage und der Header. Der 
Wert
        kann nicht null sein. F&uuml;r diese Anweisung muss
        <module>mod_logio</module> aktiviert werden.</td></tr>

    <tr><td><code>%...O</code></td>
        <td>Gesendete Bytes einschlie&szlig;lich der Header. Der Wert
        kann nicht null sein. F&uuml;r diese Anweisung muss
        <module>mod_logio</module> aktiviert werden.</td></tr>
    </table>

    <p>Die Formatanweisung "<var>...</var>" kann f&uuml;r nichts
    stehen (<code>"%h %u %r %s %b"</code>) oder sie kann Bedingungen
    f&uuml;r den Einschluss eines Elements angeben (sie wird dann durch "-"
    ersetzt, wenn die Bedingung nicht zutrifft). Die Bedingungen sind eine
    Liste von HTTP-Statuscodes, denen ein Ausrufezeichen mit der
    Bedeutung "nicht" vorangestellt werden
    kann. Die Anweisung "%400,501{User-agent}i" protokolliert nur
    <code>User-agent:</code> beim Statuscode 400 und 501 (Bad Request, Not
   Implemented). "%!200,304,302{Referer}i" protokolliert
   <code>Referer:</code> f&uuml;r alle Anfragen, die <em>keinen</em> normalen
   Status zur&uuml;ckliefern.</p>

    <p>In den HTTPD-2.0-Versionen vor 2.0.46 wurden keine Sonderzeichen
    in den Zeichenfolgen <code>%...r</code>, <code>%...i</code> und
    <code>%...o</code> interpretiert, um den Anforderungen des
    Common Log-Format gerecht zu werden. Dadurch konnten Clients
    Sonderzeichen in das Protokoll schreiben, so dass beim Umgang mit
    unbearbeiteten Protokolldateien Vorischt geboten war.</p>

    <p>Aus Sicherheitsgr&uuml;nden werden seit der Version 2.0.46 den nicht
    darstellbaren Zeichen und den Sonderzeichen meist 
    <code>\x<var>hh</var></code>-Sequenzen vorangestellt, wobei
    <var>hh</var> f&uuml;r die hexadezimale Darstellung steht. Ausnahmen von 
dieser
    Regel sind <code>"</code> und <code>\</code>, denen ein Backslash
    vorangestellt wird, sowie alle Leerzeichen, die in der C-Notation 
geschrieben
    werden (<code>\n</code>, <code>\t</code> usw.).</p>

    <p>Einige gebr&auml;uchliche Formatanweisungen sind:</p>

    <dl>
      <dt>Common Log-Format (CLF)</dt>
      <dd><code>"%h %l %u %t \"%r\" %&gt;s %b"</code></dd>

      <dt>Common Log-Format mit virtuellem Host</dt>
      <dd><code>"%v %h %l %u %t \"%r\" %&gt;s %b"</code></dd>

      <dt>Kombiniertes Protokollformat</dt>
      <dd><code>"%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\"
      \"%{User-agent}i\""</code></dd>

      <dt>Referer-Protokollformat</dt>
      <dd><code>"%{Referer}i -&gt; %U"</code></dd>

      <dt>Browser-Protokollformat</dt>
      <dd><code>"%{User-agent}i"</code></dd>
    </dl>

    <p>Das kanonische <directive module="core">ServerName</directive>
    und <directive module="mpm_common">Listen</directive> des Servers,
    der die Anfrage beantwortet, werden f&uuml;r <code>%v</code> beziehungsweise
    <code>%p</code> verwendet. Dies geschieht unabh&auml;ngig von der
    <directive module="core">UseCanonicalName</directive>-Einstellung, weil
    sonst Analyseprogramme den vollst&auml;ndigen
    Vhost-Vergleichsalgorithmus duplizieren m&uuml;ssten, um entscheiden zu 
k&ouml;nnen,
    welcher Host tats&auml;chlich eine Anfrage beantwortet hat.</p>
</section>

<section id="security"><title>Sicherheit</title>
    <p>Unter <a
    href="../misc/security_tips.html#serverroot">Hinweise zur Sicherheit</a>
    finden Sie weitere Einzelheiten dazu, warum Sicherheitsl&uuml;cken entstehen
    k&ouml;nnen, wenn in das Verzeichnis, in welchem die Protokolldateien 
gespeichert
    sind, andere Benutzer als derjenige schreiben d&uuml;rfen, unter dem der 
Server
    gestartet wurde.</p>
</section>

<directivesynopsis>
<name>CookieLog</name>
<description>Die Datei f&uuml;r die Protokollierung der Cookies</description>
<syntax>CookieLog <var>Dateiname</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<compatibility>Diese Direktive ist veraltet.</compatibility>

<usage>
    <p>Die <directive>CookieLog</directive>-Direktive gibt den Namen
    der Datei f&uuml;r die Protokollierung der Cookies an. Der Dateiname wird 
relativ
    zu <directive module="core">ServerRoot</directive> angegeben. Diese
    Direktive wurde nur f&uuml;r die Kompatibilit&auml;t mit 
<code>mod_cookies</code>
    aufgenommen und ist veraltet.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>CustomLog</name>
<description>Dateiname und Format der Protokolldatei</description>
<syntax>CustomLog  <var>Dateiname</var>|<var>Pipe </var>
<var>Format</var>|<var>Nickname</var>
[env=[!]<var>Umgebungsvariable</var>]</syntax>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>

<usage>
    <p>Die <directive>CustomLog</directive>-Direktive protokolliert
    Anfragen an den Server. Die Protokollierung kann im abgebenen Format
    in Abh&auml;ngigkeit von Umgebungsvariablen erfolgen.</p>

    <p>Das erste Argument gibt an, wohin die Protokolleintr&auml;ge geschrieben
    werden. Zwei Angaben sind m&ouml;glich:</p>

    <dl>
      <dt><var>Datei</var></dt>
      <dd>Ein Dateiname relativ zu <directive module="core"
      >ServerRoot</directive>.</dd>

      <dt><var>Pipe</var></dt>
      <dd>Das Pipe-Zeichen "<code>|</code>", auf das der Pfad f&uuml;r das
      Program folgt, welches die Protokollnotiz &uuml;ber seine Standardeingabe
      entgegen nimmt.

      <note type="warning"><title>Achtung:</title>
      <p>Wird ein Programm angegeben, dann wird dieses unter dem Benutzer
      ausgef&uuml;hrt, der den Server gestartet hat. Wurde
      der Server unter <code>root</code>
      gestartet, dann sollte es sich um ein sicheres Programm handeln.</p>
      </note>
      <note type="warning"><title>Hinweis</title>
        <p>Bei der Angabe von Pfadnamen unter anderen Betriebssystemen als
        Unix sollte darauf geachtet werden, dass nur das <code>/</code>-
        Zeichen verwendet wird, selbst wenn das Betriebssystem einen Backslash
        zul&auml;sst. Im Allgemeinen ist es sinnvoll, in den 
Konfigurationsdateien
        immer den normalen Schr&auml;gstrich zu verwenden.</p>
      </note></dd>
    </dl>

    <p>Das zweite Argument gibt an, was in die Protokolldatei geschrieben
    wird. Es kann entweder einen <var>Nickname</var> angeben, der mit einer
    vorangegangenen
    <directive module="mod_log_config">LogFormat</directive>-Anweisung
    definiert wurde, oder es kann eine explizite
    Formatanweisung enthalten, wie sie im
    Abschnitt <a href="#formats">Protokollformate</a> beschrieben wurden.</p>

    <p>Die beiden folgenden Anweisungen f&uuml;hren beispielsweise zum gleichen
     Ergebnis:</p>

    <example>
      # CustomLog mit Nickname<br />
      LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
      CustomLog logs/access_log common<br />
      <br />
      # CustomLog Formatanweisung<br />
      CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"
    </example>

    <p>Das dritte Argument ist optional und legt fest, ob bestimmte Anfragen
    in Abh&auml;ngigkeit vom Vorhandensein einer Variablen in der Serverumgebung
    protokolliert werden. Wurde die angegebene <a href="../env.html">
    Umgebungsvariable</a> f&uuml;r die Anfrage nicht gesetzt (oder ist sie 
infolge einer
    <code>env=!<var>Name</var></code>-Klausel nicht gesetzt), dann wird die
    Anfrage protokolliert.</p>

    <p> Mit den Modulen <module>mod_setenvif</module>
    und/oder <module>mod_rewrite</module> k&ouml;nnen Umgebungsvariablen
    f&uuml;r einzelne Anfragen gesetzt werden. Sollen beispielsweise alle 
Anfragen
    nach GIF-Bildern in einer separaten Datei und nicht in eigentlichen
    Serverprotokoll aufgezeichnet werden, kann dies wie folgt geschehen:</p>
    
    <example>
      SetEnvIf Request_URI \.gif$ gif-image<br />
      CustomLog gif-requests.log common env=gif-image<br />
      CustomLog nongif-requests.log common env=!gif-image
    </example>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>LogFormat</name>
<description>Beschreibt das Format der Protokolldatei</description>
<syntax>LogFormat <var>Format</var>|<var>Nickname</var>
[<var>Nickname</var>]</syntax>
<default>LogFormat "%h %l %u %t \"%r\" %>s %b"</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>

<usage>
    <p>Diese Direktive gibt das Format f&uuml;r die Eintr&auml;ge in einer
    Protokoldatei an.</p>

    <p>F&uuml;r die <directive>LogFormat</directive>-Direktive gibt es zwei
    Varianten. In der ersten Variante wird nur ein Argument angegeben. In diesem
    Fall gibt sie das Format f&uuml;r Protokolle an, die mit sp&auml;teren
    <directive>TransferLog</directive>-Anweisungen definiert werden. Das
   Argument kann ein explizites <var>Format</var> angeben, wie es im Abschnitt
   <a href="#formats">Angepasste Protokollformate</a> aufgef&uuml;hrt wird.
   Alternativ kann ein <var>Nickname</var> angegeben werden, der auf ein
   zuvor mit einer <directive>LogFormat</directive>-Anweisung definiertes
   Format verweist.</p>

    <p>Bei der zweiten Variante verkn&uuml;pft <directive>LogFormat</directive>
    ein angegebenes <var>Format</var> mit einem <var>Nickname</var>. Dieser
    <var>Nickname</var> kann in sp&auml;teren <directive>LogFormat</directive>-
    oder <directive module="mod_log_config">CustomLog</directive>-
    Anweisungen benutzt werden, um eine wiederholte Eingabe der gesamten
    Formatanweisung zu vermeiden. Eine <directive>LogFormat</directive>-
    Direktive, die einen Nickname definiert, <strong>bewirkt weiter
    nichts</strong>, das hei&szlig;t, sie definiert <em>nur</em> den Nickname, 
wendet
    das Format aber selbst nicht an und macht es nicht zur Voreinstellung.
    Daher ber&uuml;hrt sie nachfolgende <directive module="mod_log_config">
    TransferLog</directive>-Direktiven nicht. Au&szlig;erdem ist zu beachten, 
dass
    die <directive>LogFormat</directive>-Anweisung keinen Nickname mit
    einem anderen Nickname definieren kann. Der Nickname darf kein
    Prozentzeichen enthalten(<code>%</code>).</p>

    <example><title>Beispiel</title>
      LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common
    </example>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>TransferLog</name>
<description>Die Position der Protokolldatei</description>
<syntax>TransferLog <var>Datei</var>|<var>Pipe</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>

<usage>
    <p>Diese Direktive &uuml;bernimmt die gleichen Argumente wie die Direktive
    <directive module="mod_log_config">CustomLog</directive> und
    f&uuml;hrt auch zu den gleichen Ergebnissen. Allerdings kann das 
Protokollformat
    nicht explizit angegeben oder eine bedingte Protokollierung 
durchgef&uuml;hrt
    werden. Das Format wird vielmehr von der zuletzt angegebenen
    <directive module="mod_log_config">LogFormat</directive>-Direktive
    festgelegt, die keinen Nickname definiert hat. Wird kein Format angegeben,
    wird das Common Log-Format benutzt.</p>

    <example><title>Beispiel</title>
      LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" 
\"%{User-agent}i\""<br />
      TransferLog logs/access_log
    </example>
</usage>
</directivesynopsis>

</modulesynopsis>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to