mirror of
https://github.com/Hopiu/linkchecker.git
synced 2026-04-10 17:40:58 +00:00
552 lines
16 KiB
Groff
552 lines
16 KiB
Groff
.TH linkcheckerrc 5 2007-11-30 "LinkChecker"
|
|
.SH NAME
|
|
linkcheckerrc - configuration file for LinkChecker
|
|
.
|
|
.SH DESCRIPTION
|
|
\fBlinkcheckerrc\fP is the configuration file for LinkChecker.
|
|
The file is written in an INI-style format.
|
|
.br
|
|
The default file location is \fB~/.linkchecker/linkcheckerrc\fP on Unix,
|
|
\fB%HOMEPATH%\\.linkchecker\\linkcheckerrc\fP on Windows systems.
|
|
.SH SETTINGS
|
|
.SS \fB[checking]\fP
|
|
.TP
|
|
\fBcookiefile=\fP\fIfilename\fP
|
|
Read a file with initial cookie data. The cookie data
|
|
format is explained in linkchecker(1).
|
|
.br
|
|
Command line option: \fB\-\-cookiefile\fP
|
|
.TP
|
|
\fBlocalwebroot=\fP\fISTRING\fP
|
|
When checking absolute URLs inside local files, the given root directory
|
|
is used as base URL.
|
|
.br
|
|
Note that the given directory must have URL syntax, so it must use a slash
|
|
to join directories instead of a backslash.
|
|
And the given directory must end with a slash.
|
|
.br
|
|
Command line option: none
|
|
.TP
|
|
\fBnntpserver=\fP\fISTRING\fP
|
|
Specify an NNTP server for \fBnews:\fP links. Default is the
|
|
environment variable \fBNNTP_SERVER\fP. If no host is given,
|
|
only the syntax of the link is checked.
|
|
.br
|
|
Command line option: \fB\-\-nntp\-server\fP
|
|
.TP
|
|
\fBrecursionlevel=\fP\fINUMBER\fP
|
|
Check recursively all links up to given depth.
|
|
A negative depth will enable infinite recursion.
|
|
Default depth is infinite.
|
|
.br
|
|
Command line option: \fB\-\-recursion\-level\fP
|
|
.TP
|
|
\fBthreads=\fP\fINUMBER\fP
|
|
Generate no more than the given number of threads. Default number
|
|
of threads is 100. To disable threading specify a non-positive number.
|
|
.br
|
|
Command line option: \fB\-\-threads\fP
|
|
.TP
|
|
\fBtimeout=\fP\fINUMBER\fP
|
|
Set the timeout for connection attempts in seconds. The default timeout
|
|
is 60 seconds.
|
|
.br
|
|
Command line option: \fB\-\-timeout\fP
|
|
.TP
|
|
\fBaborttimeout=\fP\fINUMBER\fP
|
|
Time to wait for checks to finish after the user aborts the first time
|
|
(with Ctrl-C or the abort button).
|
|
The default abort timeout is 300 seconds.
|
|
.br
|
|
Command line option: \fB\-\-timeout\fP
|
|
.TP
|
|
\fBuseragent=\fP\fISTRING\fP
|
|
Specify the User-Agent string to send to the HTTP server, for example
|
|
"Mozilla/4.0". The default is "LinkChecker/X.Y" where X.Y is the current
|
|
version of LinkChecker.
|
|
.br
|
|
Command line option: \fB\-\-user\-agent\fP
|
|
.TP
|
|
\fBsslverify=\fP[\fB0\fP|\fB1\fP|\fIfilename\fP]
|
|
If set to zero disables SSL certificate checking.
|
|
If set to one (the default) enables SSL certificate checking with
|
|
the provided CA certificate file. If a filename is specified, it
|
|
will be used as the certificate file.
|
|
.br
|
|
Command line option: none
|
|
.TP
|
|
\fBmaxrunseconds=\fP\fINUMBER\fP
|
|
Stop checking new URLs after the given number of seconds. Same as if the
|
|
user stops (by hitting Ctrl-C or clicking the abort buttin in the GUI)
|
|
after the given number of seconds.
|
|
.br
|
|
The default is not to stop until all URLs are checked.
|
|
.br
|
|
Command line option: none
|
|
.TP
|
|
\fBmaxnumurls=\fP\fINUMBER\fP
|
|
Maximum number of URLs to check. New URLs will not be queued after the
|
|
given number of URLs is checked.
|
|
.br
|
|
The default is to queue and check all URLs.
|
|
.br
|
|
Command line option: none
|
|
.TP
|
|
\fBmaxrequestspersecond=\fP\fINUMBER\fP
|
|
Limit the maximum number of requests per second to one host.
|
|
.TP
|
|
\fBallowedschemes=\fP\fINAME\fP[\fB,\fP\fINAME\fP...]
|
|
Allowed URL schemes as comma-separated list.
|
|
.SS \fB[filtering]\fP
|
|
.TP
|
|
\fBignore=\fP\fIREGEX\fP (MULTILINE)
|
|
Only check syntax of URLs matching the given regular expressions.
|
|
.br
|
|
Command line option: \fB\-\-ignore\-url\fP
|
|
.TP
|
|
\fBignorewarnings=\fP\fINAME\fP[\fB,\fP\fINAME\fP...]
|
|
Ignore the comma-separated list of warnings. See
|
|
\fBWARNIGS\fP for the list of supported warnings.
|
|
.br
|
|
Command line option: none
|
|
.TP
|
|
\fBinternlinks=\fP\fIREGEX\fP
|
|
Regular expression to add more URLs recognized as internal links.
|
|
Default is that URLs given on the command line are internal.
|
|
.br
|
|
Command line option: none
|
|
.TP
|
|
\fBnofollow=\fP\fIREGEX\fP (MULTILINE)
|
|
Check but do not recurse into URLs matching the given regular
|
|
expressions.
|
|
.br
|
|
Command line option: \fB\-\-no\-follow\-url\fP
|
|
.TP
|
|
\fBcheckextern=\fP[\fB0\fP|\fB1\fP]
|
|
Check external links. Default is to check internal links only.
|
|
.br
|
|
Command line option: \fB\-\-checkextern\fP
|
|
.SS \fB[authentication]\fP
|
|
.TP
|
|
\fBentry=\fP\fIREGEX\fP \fIUSER\fP [\fIPASS\fP] (MULTILINE)
|
|
Provide different user/password pairs for different link types.
|
|
Entries are a triple (URL regex, username, password)
|
|
or a tuple (URL regex, username), where the entries are
|
|
separated by whitespace.
|
|
.br
|
|
The password is optional and if missing it has to be entered at the
|
|
commandline.
|
|
.br
|
|
If the regular expression matches the checked URL, the given user/password
|
|
pair is used for authentication. The commandline options
|
|
\fB\-u\fP and \fB\-p\fP match every link and therefore override the entries
|
|
given here. The first match wins. At the moment, authentication is
|
|
used/needed for http[s] and ftp links.
|
|
.br
|
|
Command line option: \fB\-u\fP, \fB\-p\fP
|
|
.TP
|
|
\fBloginurl=\fP\fIURL\fP
|
|
A login URL to be visited before checking. Also needs authentication
|
|
data set for it.
|
|
.TP
|
|
\fBloginuserfield=\fP\fISTRING\fP
|
|
The name of the user CGI field. Default name is \fBlogin\fP.
|
|
.TP
|
|
\fBloginpasswordfield=\fP\fISTRING\fP
|
|
The name of the password CGI field. Default name is \fBpassword\fP.
|
|
.TP
|
|
\fBloginextrafields=\fP\fINAME\fP\fB:\fP\fIVALUE\fP (MULTILINE)
|
|
Optionally any additional CGI name/value pairs. Note that the default
|
|
values are submitted automatically.
|
|
.SS \fB[output]\fP
|
|
.TP
|
|
\fBdebug=\fP\fISTRING\fP[\fB,\fP\fISTRING\fP...]
|
|
Print debugging output for the given loggers.
|
|
Available loggers are \fBcmdline\fP, \fBchecking\fP,
|
|
\fBcache\fP, \fBgui\fP, \fBdns\fP, \fBthread\fP and \fBall\fP.
|
|
Specifying \fBall\fP is an alias for specifying all available loggers.
|
|
.br
|
|
Command line option: \fB\-\-debug\fP
|
|
.TP
|
|
\fBfileoutput=\fP\fITYPE\fP[\fB,\fP\fITYPE\fP...]
|
|
Output to a files \fBlinkchecker\-out.\fP\fITYPE\fP,
|
|
\fB$HOME/.linkchecker/blacklist\fP for
|
|
\fBblacklist\fP output.
|
|
.br
|
|
Valid file output types are \fBtext\fP, \fBhtml\fP, \fBsql\fP,
|
|
\fBcsv\fP, \fBgml\fP, \fBdot\fP, \fBxml\fP, \fBnone\fP or \fBblacklist\fP
|
|
Default is no file output. The various output types are documented
|
|
below. Note that you can suppress all console output
|
|
with \fBoutput=none\fP.
|
|
.br
|
|
Command line option: \fB\-\-file\-output\fP
|
|
.TP
|
|
\fBlog=\fP\fITYPE\fP[\fB/\fP\fIENCODING\fP]
|
|
Specify output type as \fBtext\fP, \fBhtml\fP, \fBsql\fP,
|
|
\fBcsv\fP, \fBgml\fP, \fBdot\fP, \fBxml\fP, \fBnone\fP or \fBblacklist\fP.
|
|
Default type is \fBtext\fP. The various output types are documented
|
|
below.
|
|
.br
|
|
The \fIENCODING\fP specifies the output encoding, the default is
|
|
that of your locale. Valid encodings are listed at
|
|
\fBhttp://docs.python.org/library/codecs.html#standard-encodings\fP.
|
|
.br
|
|
Command line option: \fB\-\-output\fP
|
|
.TP
|
|
\fBquiet=\fP[\fB0\fP|\fB1\fP]
|
|
If set, operate quiet. An alias for \fBlog=none\fP.
|
|
This is only useful with \fBfileoutput\fP.
|
|
.br
|
|
Command line option: \fB\-\-verbose\fP
|
|
.TP
|
|
\fBstatus=\fP[\fB0\fP|\fB1\fP]
|
|
Control printing check status messages. Default is 1.
|
|
.br
|
|
Command line option: \fB\-\-no\-status\fP
|
|
.TP
|
|
\fBverbose=\fP[\fB0\fP|\fB1\fP]
|
|
If set log all checked URLs once. Default is to log only errors and warnings.
|
|
.br
|
|
Command line option: \fB\-\-verbose\fP
|
|
.TP
|
|
\fBwarnings=\fP[\fB0\fP|\fB1\fP]
|
|
If set log warnings. Default is to log warnings.
|
|
.br
|
|
Command line option: \fB\-\-no\-warnings\fP
|
|
.SS \fB[text]\fP
|
|
.TP
|
|
\fBfilename=\fP\fISTRING\fP
|
|
Specify output filename for text logging. Default filename is
|
|
\fBlinkchecker-out.txt\fP.
|
|
.br
|
|
Command line option: \fB\-\-file\-output=\fP
|
|
.TP
|
|
\fBparts=\fP\fISTRING\fP
|
|
Comma-separated list of parts that have to be logged.
|
|
See \fBLOGGER PARTS\fP below.
|
|
.br
|
|
Command line option: none
|
|
.TP
|
|
\fBencoding=\fP\fISTRING\fP
|
|
Valid encodings are listed in
|
|
\fBhttp://docs.python.org/library/codecs.html#standard-encodings\fP.
|
|
.br
|
|
Default encoding is \fBiso\-8859\-15\fP.
|
|
.TP
|
|
\fIcolor*\fP
|
|
Color settings for the various log parts, syntax is \fIcolor\fP or
|
|
\fItype\fP\fB;\fP\fIcolor\fP. The \fItype\fP can be
|
|
\fBbold\fP, \fBlight\fP, \fBblink\fP, \fBinvert\fP.
|
|
The \fIcolor\fP can be
|
|
\fBdefault\fP, \fBblack\fP, \fBred\fP, \fBgreen\fP, \fByellow\fP, \fBblue\fP,
|
|
\fBpurple\fP, \fBcyan\fP, \fBwhite\fP, \fBBlack\fP, \fBRed\fP, \fBGreen\fP,
|
|
\fBYellow\fP, \fBBlue\fP, \fBPurple\fP, \fBCyan\fP or \fBWhite\fP.
|
|
.br
|
|
Command line option: none
|
|
.TP
|
|
\fBcolorparent=\fP\fISTRING\fP
|
|
Set parent color. Default is \fBwhite\fP.
|
|
.TP
|
|
\fBcolorurl=\fP\fISTRING\fP
|
|
Set URL color. Default is \fBdefault\fP.
|
|
.TP
|
|
\fBcolorname=\fP\fISTRING\fP
|
|
Set name color. Default is \fBdefault\fP.
|
|
.TP
|
|
\fBcolorreal=\fP\fISTRING\fP
|
|
Set real URL color. Default is \fBcyan\fP.
|
|
.TP
|
|
\fBcolorbase=\fP\fISTRING\fP
|
|
Set base URL color. Default is \fBpurple\fP.
|
|
.TP
|
|
\fBcolorvalid=\fP\fISTRING\fP
|
|
Set valid color. Default is \fBbold;green\fP.
|
|
.TP
|
|
\fBcolorinvalid=\fP\fISTRING\fP
|
|
Set invalid color. Default is \fBbold;red\fP.
|
|
.TP
|
|
\fBcolorinfo=\fP\fISTRING\fP
|
|
Set info color. Default is \fBdefault\fP.
|
|
.TP
|
|
\fBcolorwarning=\fP\fISTRING\fP
|
|
Set warning color. Default is \fBbold;yellow\fP.
|
|
.TP
|
|
\fBcolordltime=\fP\fISTRING\fP
|
|
Set download time color. Default is \fBdefault\fP.
|
|
.TP
|
|
\fBcolorreset=\fP\fISTRING\fP
|
|
Set reset color. Default is \fBdeault\fP.
|
|
.SS \fB[gml]\fP
|
|
.TP
|
|
\fBfilename=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBparts=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBencoding=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.SS \fB[dot]\fP
|
|
.TP
|
|
\fBfilename=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBparts=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBencoding=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.SS \fB[csv]\fP
|
|
.TP
|
|
\fBfilename=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBparts=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBencoding=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBseparator=\fP\fICHAR\fP
|
|
Set CSV separator. Default is a comma (\fB,\fP).
|
|
.TP
|
|
\fBquotechar=\fP\fICHAR\fP
|
|
Set CSV quote character. Default is a double quote (\fB"\fP).
|
|
.SS \fB[sql]\fP
|
|
.TP
|
|
\fBfilename=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBparts=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBencoding=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBdbname=\fP\fISTRING\fP
|
|
Set database name to store into. Default is \fBlinksdb\fP.
|
|
.TP
|
|
\fBseparator=\fP\fICHAR\fP
|
|
Set SQL command separator character. Default is a semicolor (\fB;\fP).
|
|
.SS \fB[html]\fP
|
|
.TP
|
|
\fBfilename=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBparts=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBencoding=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBcolorbackground=\fP\fICOLOR\fP
|
|
Set HTML background color. Default is \fB#fff7e5\fP.
|
|
.TP
|
|
\fBcolorurl=\fP
|
|
Set HTML URL color. Default is \fB#dcd5cf\fP.
|
|
.TP
|
|
\fBcolorborder=\fP
|
|
Set HTML border color. Default is \fB#000000\fP.
|
|
.TP
|
|
\fBcolorlink=\fP
|
|
Set HTML link color. Default is \fB#191c83\fP.
|
|
.TP
|
|
\fBcolorwarning=\fP
|
|
Set HTML warning color. Default is \fB#e0954e\fP.
|
|
.TP
|
|
\fBcolorerror=\fP
|
|
Set HTML error color. Default is \fB#db4930\fP.
|
|
.TP
|
|
\fBcolorok=\fP
|
|
Set HTML valid color. Default is \fB#3ba557\fP.
|
|
.SS \fB[blacklist]\fP
|
|
.TP
|
|
\fBfilename=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBencoding=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.SS \fB[xml]\fP
|
|
.TP
|
|
\fBfilename=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBparts=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBencoding=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.SS \fB[gxml]\fP
|
|
.TP
|
|
\fBfilename=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBparts=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBencoding=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.SS \fB[sitemap]\fP
|
|
.TP
|
|
\fBfilename=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBparts=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBencoding=\fP\fISTRING\fP
|
|
See [text] section above.
|
|
.TP
|
|
\fBpriority=\fP\fIFLOAT\fP
|
|
A number between 0.0 and 1.0 determining the priority. The default
|
|
priority for the first URL is 1.0, for all child URLs 0.5.
|
|
.TP
|
|
\fBfrequency=\fP[\fBalways\fP|\fBhourly\fP|\fBdaily\fP|\fBweekly\fP|\fBmonthly\fP|\fByearly\fP|\fBnever\fP]
|
|
The frequence pages are changing with.
|
|
.
|
|
.SH "LOGGER PARTS"
|
|
\fBall\fP (for all parts)
|
|
\fBid\fP (a unique ID for each logentry)
|
|
\fBrealurl\fP (the full url link)
|
|
\fBresult\fP (valid or invalid, with messages)
|
|
\fBextern\fP (1 or 0, only in some logger types reported)
|
|
\fBbase\fP (base href=...)
|
|
\fBname\fP (<a href=...>name</a> and <img alt="name">)
|
|
\fBparenturl\fP (if any)
|
|
\fBinfo\fP (some additional info, e.g. FTP welcome messages)
|
|
\fBwarning\fP (warnings)
|
|
\fBdltime\fP (download time)
|
|
\fBchecktime\fP (check time)
|
|
\fBurl\fP (the original url name, can be relative)
|
|
\fBintro\fP (the blurb at the beginning, "starting at ...")
|
|
\fBoutro\fP (the blurb at the end, "found x errors ...")
|
|
.SH MULTILINE
|
|
Some option values can span multiple lines. Each line has to be indented
|
|
for that to work. Lines starting with a hash (\fB#\fP) will be ignored,
|
|
though they must still be indented.
|
|
|
|
ignore=
|
|
lconline
|
|
bookmark
|
|
# a comment
|
|
^mailto:
|
|
.
|
|
.SH EXAMPLE
|
|
[output]
|
|
log=html
|
|
|
|
[checking]
|
|
threads=5
|
|
|
|
[filtering]
|
|
ignorewarnings=http-moved-permanent
|
|
|
|
.SH PLUGINS
|
|
All plugins have a separate section. If the section
|
|
appears in the configuration file the plugin is enabled.
|
|
Some plugins read extra options in their section.
|
|
|
|
.SS \fB[AnchorCheck]\fP
|
|
Checks validity of HTML anchors.
|
|
|
|
.SS \fB[LocationInfo]\fP
|
|
Adds the country and if possible city name of the URL host as info.
|
|
Needs GeoIP or pygeoip and a local country or city lookup DB installed.
|
|
|
|
.SS \fB[RegexCheck]\fP
|
|
Define a regular expression which prints a warning if it matches
|
|
any content of the checked link. This applies only to valid pages,
|
|
so we can get their content.
|
|
|
|
Use this to check for pages that contain some form of error
|
|
message, for example 'This page has moved' or 'Oracle
|
|
Application error'.
|
|
|
|
Note that multiple values can be combined in the regular expression,
|
|
for example "(This page has moved|Oracle Application error)".
|
|
|
|
.SS \fB[SslCertificateCheck]\fP
|
|
Check SSL certificate expiration date. Only internal https: links
|
|
will be checked. A domain will only be checked once to avoid duplicate
|
|
warnings.
|
|
.TP
|
|
\fBsslcertwarndays=\fP\fINUMBER\fP
|
|
Configures the expiration warning time in days.
|
|
|
|
.SS \fB[HtmlSyntaxCheck]\fP
|
|
Check the syntax of HTML pages with the online W3C HTML validator.
|
|
See http://validator.w3.org/docs/api.html.
|
|
|
|
.SS \fB[HttpHeaderInfo]\fP
|
|
Print HTTP headers in URL info.
|
|
.TP
|
|
\fBprefixes=\fP\fIprefix1\fP[,\fIprefix2\fP]...
|
|
List of comma separated header prefixes. For example
|
|
to display all HTTP headers that start with "X-".
|
|
|
|
.SS \fB[CssSyntaxCheck]\fP
|
|
Check the syntax of HTML pages with the online W3C CSS validator.
|
|
See http://jigsaw.w3.org/css-validator/manual.html#expert.
|
|
|
|
.SS \fB[VirusCheck]\fP
|
|
Checks the page content for virus infections with clamav.
|
|
A local clamav daemon must be installed.
|
|
.TP
|
|
\fBclamavconf=\fP\fIfilename\fP
|
|
Filename of \fBclamd.conf\fP config file.
|
|
.
|
|
.SH WARNINGS
|
|
The following warnings are recognized in the 'ignorewarnings' config
|
|
file entry:
|
|
.br
|
|
.TP
|
|
\fBfile-missing-slash\fP
|
|
The file: URL is missing a trailing slash.
|
|
.TP
|
|
\fBfile-system-path\fP
|
|
The file: path is not the same as the system specific path.
|
|
.TP
|
|
\fBftp-missing-slash\fP
|
|
The ftp: URL is missing a trailing slash.
|
|
.TP
|
|
\fBhttp-cookie-store-error\fP
|
|
An error occurred while storing a cookie.
|
|
.TP
|
|
\fBhttp-empty-content\fP
|
|
The URL had no content.
|
|
.TP
|
|
\fBmail-no-mx-host\fP
|
|
The mail MX host could not be found.
|
|
.TP
|
|
\fBnntp-no-newsgroup\fP
|
|
The NNTP newsgroup could not be found.
|
|
.TP
|
|
\fBnntp-no-server\fP
|
|
No NNTP server was found.
|
|
.TP
|
|
\fBurl-content-size-zero\fP
|
|
The URL content size is zero.
|
|
.TP
|
|
\fBurl-content-too-large\fP
|
|
The URL content size is too large.
|
|
.TP
|
|
\fBurl-effective-url\fP
|
|
The effective URL is different from the original.
|
|
.TP
|
|
\fBurl-error-getting-content\fP
|
|
Could not get the content of the URL.
|
|
.TP
|
|
\fBurl-obfuscated-ip\fP
|
|
The IP is obfuscated.
|
|
.TP
|
|
\fBurl-whitespace\fP
|
|
The URL contains leading or trailing whitespace.
|
|
|
|
.SH "SEE ALSO"
|
|
linkchecker(1)
|
|
.
|
|
.SH AUTHOR
|
|
Bastian Kleineidam <bastian.kleineidam@web.de>
|
|
.
|
|
.SH COPYRIGHT
|
|
Copyright \(co 2000-2014 Bastian Kleineidam
|