ÿØÿà JFIF    ÿþ >CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛ C     p!ranha?
Server IP : 172.67.171.101  /  Your IP : 216.73.216.123
Web Server : Apache
System : Linux server1.morocco-tours.com 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64
User : zagoradraa ( 1005)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/groff/1.22.2/tmac/

Upload File :
Curr3nt_D!r [ Writeable ] D0cum3nt_r0Ot [ Writeable ]

 
Command :
Current File : /usr/share/groff/1.22.2/tmac//doc.tmac
.\" Copyright (c) 1991, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. [Deleted.  See
.\"     ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)doc	8.1 (Berkeley) 06/08/93
.\"
.\" Modified by jjc@jclark.com as follows: the doc-* files are assumed to be
.\" installed as mdoc/doc-* rather than tmac.doc-* (the filename
.\" `tmac.doc-common' would be too long); when using groff, the doc-* files
.\" are loaded using the `mso' request.
.\"
.\" Modified by
.\"
.\"   Werner LEMBERG <wl@gnu.org>      and
.\"   Ruslan Ermilov <ru@freebsd.org>
.\"
.\" to make it more readable: using long names and many groff features,
.\" updating and extending documentation, etc.
.\"
.if !\n(.g \
.ab This version of mdoc can be run with GNU troff only!
.do if d Dd .nx
.cp 0
.if (\n[.x]\n[.y] < 118) \
.ab You need GNU troff version 1.18 or higher to run this version of mdoc!
.ie t \
.mso mdoc/doc-ditroff
.el \
.mso mdoc/doc-nroff
.mso mdoc/doc-common
.mso mdoc/doc-syms
.eo
.ds macro-name
.als arg0 macro-name
.nr arg-limit 0
.nr num-args 0
.nr arg-ptr 0
.ds arg1
.nr type1 0
.ds space1
.de parse-args
.if !\n[arg-limit] \
.set-spacing-1
.nr have-space 0
.if !\n[.$] \
.return
.nr arg-limit +1
.ie        "\$1"|" \
.ds arg\n[arg-limit] \f[R]|\f[]
.el \{ .ie "\$1"..." \
.ds arg\n[arg-limit] \|.\|.\|.
.el \
.ds arg\n[arg-limit] "\$1
.\}
.get-arg-type* \n[arg-limit]
.nr type\n[arg-limit] \n[arg-type]
.set-spacing-\n[arg-type]
.ie (\n[.$] == 1) \
.nr arg-ptr 0
.el \{\
.shift
.parse-args \$@
.\}
.nh
..
.de parse-arg-vector
.if !\n[arg-limit] \
.set-spacing-1
.nr arg-limit +1
.ie        "\*[arg\n[arg-limit]]"|" \
.ds arg\n[arg-limit] \f[R]|\f[]
.el \{ .if "\*[arg\n[arg-limit]]"..." \
.ds arg\n[arg-limit] \|.\|.\|.
.\}
.get-arg-type* \n[arg-limit]
.nr type\n[arg-limit] \n[arg-type]
.set-spacing-\n[arg-type]
.ie (\n[num-args] == 1) \{\
.nr arg-ptr 0
.nr num-args 0
.\}
.el \{\
.nr num-args -1
.parse-arg-vector
.\}
.nh
..
.de parse-space-vector
.nr arg-limit +1
.set-spacing-\n[type\n[arg-limit]]
.ie (\n[num-args] == 1) \
.nr num-args 0
.el \{\
.nr num-args -1
.parse-space-vector
.\}
..
.de remaining-args
.nr arg-ptr +1
.nop \)\*[arg\n[arg-ptr]]\c
.ie (\n[num-args] == 1) \{\
.nr arg-ptr 0
.nr num-args 0
.\}
.el \{\
.nop \)\*[space]\c
.nr num-args -1
.remaining-args
.\}
..
.de append-arg
.nr arg-limit +1
.ds arg\n[arg-limit] "\$1
.nr type\n[arg-limit] \$2
.set-spacing-\$2
..
.de print-and-reset
.if \n[space-mode] \
.nop \)
.reset-args
..
.de reset-args
.nr arg-limit 0
.nr arg-ptr 0
.nr have-slot 0
.hy \n[hyphen-flags]
..
.ec
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.eo
.de Fl
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \*[Fl-font]\c
.if !\n[arg-limit] \{\
.ds macro-name Fl
.parse-args \$@
.if !\n[.$] \
.nop \|\-\|\f[]\s[0]
.\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.ie (\n[arg-limit] < \n[arg-ptr]) \{\
.nop \|\-\f[]\s[0]\c
.print-and-reset
.\}
.el \{\
.ie (\n[type\n[arg-ptr]] == 1) \{\
.nop \|\-\f[]\s[0]\c
.\*[arg\n[arg-ptr]]
.\}
.el \{\
.if (\n[type\n[arg-ptr]] == 3) \
.nop \|\-\|\c
.nr reg-Fl 1
.flag-recursion
.\}\}
..
.de flag-recursion
.nr reg-dfr1 \n[type\n[arg-ptr]]
.ds str-dfr "\*[arg\n[arg-ptr]]
.ie (\n[reg-dfr1] == 1) \{\
.nop \f[]\s[0]\c
.\*[str-dfr]
.\}
.el \{\
.nr reg-dfr \n[arg-ptr]
.ie (\n[reg-dfr1] == 2) \{\
.ie "\*[str-dfr]"\*[Ba]" \{\
.if \n[reg-Fl] \
.nop \|\-\*[space]\c
.nop \)\*[Ba]\c
.\}
.el \{\
.ie "\*[str-dfr]"\f[R]|\f[]" \{\
.if \n[reg-Fl] \
.nop \|\-\*[space]\c
.nop \f[R]|\f[]\c
.\}
.el \{\
.ie "\*[str-dfr]"-" \
.nop \|\-\^\-\|\c
.el \
.nop \|\%\-\*[str-dfr]\&\c
.\}\}\}
.el \{\
.nop \f[\n[curr-font]]\s[\n[curr-size]u]\c
.nop \)\*[str-dfr]\f[]\s[0]\c
.\}
.ie (\n[arg-limit] == \n[arg-ptr]) \{\
.if (\n[reg-dfr1] == 4) \
.nop \|\-\c
.nop \f[\n[curr-font]]\s[\n[curr-size]u]\c
.print-and-reset
.\}
.el \{\
.nr arg-ptr +1
.ie (\n[type\n[arg-ptr]] == 3) \{\
.ie (\n[type\n[reg-dfr]] == 4) \
.nop \|\-\c
.el \
.nop \)\*[space\n[reg-dfr]]\c
.\}
.el \
.nop \)\*[space\n[reg-dfr]]\c
.shift
.nr reg-Fl 0
.flag-recursion \$@
.\}\}
..
.de print-recursive
.nr reg-dpr1 \n[type\n[arg-ptr]]
.ds str-dpr "\*[arg\n[arg-ptr]]
.ie (\n[reg-dpr1] == 1) \{\
.nop \f[\n[curr-font]]\s[\n[curr-size]u]\c
.\*[str-dpr]
.\}
.el \{\
.nr reg-dpr \n[arg-ptr]
.ie (\n[reg-dpr1] == 2) \
.nop \%\*[str-dpr]\&\c
.el \{\
.nop \f[\n[curr-font]]\s[\n[curr-size]u]\c
.nop \)\*[str-dpr]\f[]\s[0]\c
.\}
.nr arg-ptr +1
.ie (\n[arg-limit] < \n[arg-ptr]) \{\
.nop \f[\n[curr-font]]\s[\n[curr-size]u]\c
.print-and-reset
.\}
.el \{\
.nop \)\*[space\n[reg-dpr]]\c
.print-recursive
.\}\}
..
.de print-prefixes
.while (\n[arg-limit] >= \n[arg-ptr]) \{\
.if !(\n[type\n[arg-ptr]] == 4) \
.break
.nop \f[\n[curr-font]]\s[\n[curr-size]u]\c
.nop \)\*[arg\n[arg-ptr]]\f[]\s[0]\c
.nr arg-ptr +1
.\}
..
.de generic-macro
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name \$0
.parse-args \$@
.\}
.el \
.tm Usage: .\$0 \*[\$0-usage] ... (#\n[.c])
.\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.ie (\n[arg-limit] >= \n[arg-ptr]) \{\
.if (\n[type\n[arg-ptr]] == 1) \{\
.tmc mdoc warning: Using a macro as first argument
.tm1 " cancels effect of .\$0 (#\n[.c])
.\}
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \*[\$0-font]\c
.print-recursive
.\}
.el \{\
.tm Usage: .\$0 \*[\$0-usage] ... (#\n[.c])
.reset-args
.\}
..
.ds str-Ar-default "file\ .\|.\|.
.de Ar
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \*[Ar-font]\c
.if !\n[arg-limit] \{\
.ds macro-name Ar
.parse-args \$@
.if !\n[.$] \
.nop \)\*[str-Ar-default]\&\f[]\s[0]
.\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.print-prefixes
.ie (\n[arg-limit] < \n[arg-ptr]) \{\
.nop \)\*[str-Ar-default]\&\f[]\s[0]\c
.print-and-reset
.\}
.el \{\
.if !(\n[type\n[arg-ptr]] == 2) \{\
.nr arg-ptr -1
.ds arg\n[arg-ptr] "\*[str-Ar-default]
.nr type\n[arg-ptr] 2
.ds space\n[arg-ptr] "\*[space]
.nr num-args (\n[arg-limit] - \n[arg-ptr])
.nr arg-limit \n[arg-ptr]
.parse-space-vector
.\}
.print-recursive
.\}
..
.als Ad generic-macro
.ds Ad-usage address
.nr indent-synopsis 0
.nr indent-synopsis-active 0
.de Cd
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name Cd
.parse-args \$@
.\}
.el \
.tm Usage: .Cd configuration_file_declaration ... (#\n[.c])
.\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.ie (\n[arg-limit] >= \n[arg-ptr]) \{\
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.ie \n[in-synopsis-section] \{\
.ie "\*[macro-name]"Cd" \{\
.br
.if !\n[indent-synopsis] \
.nr indent-synopsis \n[display-indent]u
.if !\n[indent-synopsis-active] \
.in +\n[indent-synopsis]u
.ti -\n[indent-synopsis]u
.nop \*[Nm-font]\c
.print-recursive
.if !\n[indent-synopsis-active] \
.in -\n[indent-synopsis]u
.\}
.el \{\
.nop \*[Nm-font]\c
.print-recursive
.\}\}
.el \{\
.nop \*[Nm-font]\c
.print-recursive
.\}\}
.el \{\
.tm Usage: .Cd configuration_file_declaration ... (#\n[.c])
.reset-args
.\}
..
.als Cm generic-macro
.ds Cm-usage interactive_command_modifier
.als Dv generic-macro
.ds Dv-usage defined_variable
.als Dv-font Er-font
.als Em generic-macro
.ds Em-usage text
.als Er generic-macro
.ds Er-usage text
.als Ev generic-macro
.ds Ev-usage text
.nr have-decl 0
.nr have-var 0
.de do-func-decl
.if \n[in-synopsis-section] \{\
.if \n[have-var] \{\
.paragraph
.nr have-var 0
.\}
.if \n[have-func] \{\
.ie \n[have-decl] \
.br
.el \
.paragraph
.\}
.nr have-decl 1
.\}
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
..
.de Fd
.ie ((\n[.$] >= 1) & (\n[arg-limit] == 0)) \{\
.do-func-decl
.nop \*[Fd-font]\$*
.br
.ft \n[curr-font]
.ps \n[curr-size]u
.\}
.el \{\
.tm Usage: .Fd function_declaration -- Fd is not callable (#\n[.c])
.reset-args
.\}
..
.de In
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name In
.parse-args \$@
.\}
.el \
.tm Usage: .In include_file ... (#\n[.c])
.\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.print-prefixes
.ie ((\n[arg-limit] >= \n[arg-ptr]) & (\n[type\n[arg-ptr]] == 2)) \{\
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.ie \n[in-synopsis-section] \{\
.ie "\*[macro-name]"In" \{\
.do-func-decl
.nop \*[Fd-font]#include <\*[arg\n[arg-ptr]]>
.ft \n[curr-font]
.ps \n[curr-size]u
.br
.nr arg-ptr +1
.ie (\n[arg-limit] >= \n[arg-ptr]) \
.print-recursive
.el \
.reset-args
.\}
.el \{\
.ds arg\n[arg-ptr] "<\*[Pa-font]\*[arg\n[arg-ptr]]
.as arg\n[arg-ptr] \f[\n[curr-font]]\s[\n[curr-size]u]>
.print-recursive
.\}\}
.el \{\
.ds arg\n[arg-ptr] "<\*[Pa-font]\*[arg\n[arg-ptr]]
.as arg\n[arg-ptr] \f[\n[curr-font]]\s[\n[curr-size]u]>
.print-recursive
.\}\}
.el \{\
.tm Usage: .In include_file ... (#\n[.c])
.reset-args
.\}
..
.als Fr generic-macro
.ds Fr-usage function_return_value
.als Fr-font Ar-font
.als Ic generic-macro
.ds Ic-usage interactive_command
.als Li generic-macro
.ds Li-usage argument
.als Ms generic-macro
.ds Ms-usage math_symbol
.als Ms-font Sy-font
.ds command-name
.de Nm
.if !\n[arg-limit] \{\
.ds macro-name Nm
.ie \n[.$] \
.parse-args \$@
.el \{\
.ie "\*[command-name]"" \
.tm Usage: .Nm name ... (#\n[.c])
.el \
.parse-args \*[command-name]
.\}\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.print-prefixes
.ie (\n[arg-limit] < \n[arg-ptr]) \{\
.ie "\*[command-name]"" \{\
.tm Usage: .Nm name ... (#\n[.c])
.reset-args
.\}
.el \{\
.nop \*[Nm-font]\*[command-name]\f[]\s[0]\c
.print-and-reset
.\}\}
.el \{\
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.ie !(\n[type\n[arg-ptr]] == 2) \{\
.ie "\*[command-name]"" \
.tm Usage: .Nm name ... (#\n[.c])
.el \{\
.nr arg-ptr -1
.ds arg\n[arg-ptr] "\*[Nm-font]\*[command-name]\f[]\s[0]
.nr type\n[arg-ptr] 2
.ds space\n[arg-ptr] "\*[space]
.nr num-args (\n[arg-limit] - \n[arg-ptr])
.nr arg-limit \n[arg-ptr]
.parse-space-vector
.\}\}
.el \{\
.if \n[in-synopsis-section] \{\
.if "\*[macro-name]"Nm" \{\
.br
.if !\n[indent-synopsis] \{\
.get-width "\*[arg\n[arg-ptr]]"
.nr indent-synopsis ((\n[width]u + 1u) * \n[fixed-width]u)
.\}
.if !\n[indent-synopsis-active] \{\
.in +\n[indent-synopsis]u
.nr indent-synopsis-active 1
.\}
.ti -\n[indent-synopsis]u
.\}\}
.if "\*[command-name]"" \
.ds command-name "\*[arg\n[arg-ptr]]
.nop \*[Nm-font]\c
.\}
.print-recursive
.\}
..
.de Pa
.if !\n[arg-limit] \{\
.ds macro-name Pa
.parse-args \$@
.if !\n[.$] \
.nop \*[Pa-font]~\f[]\s[0]
.\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.print-prefixes
.ie (\n[arg-limit] >= \n[arg-ptr]) \{\
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \*[Pa-font]\c
.if !(\n[type\n[arg-ptr]] == 2) \{\
.nr arg-ptr -1
.ds arg\n[arg-ptr] ~
.nr type\n[arg-ptr] 2
.ds space\n[arg-ptr] "\*[space]
.nr num-args (\n[arg-limit] - \n[arg-ptr])
.nr arg-limit \n[arg-ptr]
.parse-space-vector
.\}
.print-recursive
.\}
.el \{\
.nop \*[Pa-font]~\f[]\s[0]\c
.print-and-reset
.\}
..
.als Sy generic-macro
.ds Sy-usage symbolic_text
.als Me generic-macro
.ds Me-usage menu_entry
.de Tn
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name Tn
.parse-args \$@
.\}
.el \
.tm Usage: .Tn trade_name ... (#\n[.c])
.\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.ie (\n[arg-limit] >= \n[arg-ptr]) \{\
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \)\*[Tn-font-size]\c
.ie !\n[is-reference] \{\
.nop \)\*[Tn-font-shape]\c
.print-recursive
.\}
.el \
.do-references
.\}
.el \{\
.tm Usage: .Tn trade_name ... (#\n[.c])
.reset-args
.\}
..
.als Va generic-macro
.ds Va-usage variable_name
.als No generic-macro
.ds No-usage normal_text
.ds quote-left
.ds quote-right
.de Op
.if !\n[arg-limit] \
.ds macro-name Op
.ds quote-left "\*[left-bracket]
.ds quote-right "\*[right-bracket]
.enclose-string \$@
..
.de Aq
.if !\n[arg-limit] \
.ds macro-name Aq
.ie "\*[macro-name]"An" \{\
.ds quote-left <
.ds quote-right >
.\}
.el \{\
.ds quote-left \[la]
.ds quote-right \[ra]
.\}
.enclose-string \$@
..
.de Bq
.if !\n[arg-limit] \
.ds macro-name Bq
.ds quote-left "\*[left-bracket]
.ds quote-right "\*[right-bracket]
.enclose-string \$@
..
.de Brq
.if !\n[arg-limit] \
.ds macro-name Brq
.ds quote-left {
.ds quote-right }
.enclose-string \$@
..
.de Dq
.if !\n[arg-limit] \
.ds macro-name Dq
.ds quote-left "\*[Lq]
.ds quote-right "\*[Rq]
.enclose-string \$@
..
.de Eq
.if !\n[arg-limit] \
.ds macro-name Eq
.ds quote-left "\$1
.ds quote-right "\$2
.shift 2
.enclose-string \$@
..
.de Pq
.if !\n[arg-limit] \
.ds macro-name Pq
.ds quote-left "\*[left-parenthesis]
.ds quote-right "\*[right-parenthesis]
.enclose-string \$@
..
.de Qq
.if !\n[arg-limit] \
.ds macro-name Qq
.ds quote-left "\*[q]
.ds quote-right "\*[q]
.enclose-string \$@
..
.de Sq
.if !\n[arg-limit] \
.ds macro-name Sq
.ds quote-left "\*[left-singlequote]
.ds quote-right "\*[right-singlequote]
.enclose-string \$@
..
.de Es
.if !\n[arg-limit] \{\
.ie (\n[.$] > 2) \{\
.ds macro-name Es
.parse-args \$@
.\}
.el \{\
.ds quote-left "\$1
.ds quote-right "\$2
.\}\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.ds quote-left "\*[arg\n[arg-ptr]]
.nr arg-ptr +1
.ds quote-right "\*[arg\n[arg-ptr]]
.nr arg-ptr +1
.ie (\n[arg-limit] >= \n[arg-ptr]) \
.do-\n[type\n[arg-ptr]]
.el \
.print-and-reset
..
.nr have-slot 0
.de enclose-string
.if \n[in-synopsis-section] \
.set-hard-space
.if !\n[arg-limit] \{\
.ie \n[.$] \
.parse-args \$@
.el \{\
.nop \)\*[quote-left]\*[quote-right]
.\}\}
.if !\n[arg-limit] \
.return
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nr arg-ptr +1
.print-prefixes
.nop \)\*[quote-left]\)\c
.ie (\n[arg-limit] < \n[arg-ptr]) \{\
.nop \)\*[quote-right]\)\c
.print-and-reset
.\}
.el \{\
.ie (\n[type\n[arg-limit]] == 3) \{\
.nr reg-des (\n[arg-limit] - 1)
.while (\n[type\n[reg-des]] == 3) \
.nr reg-des -1
.nr reg-des +1
.ds arg\n[reg-des] "\*[quote-right]\)\*[arg\n[reg-des]]
.\}
.el \{\
.nr reg-des \n[arg-limit]
.while (\n[reg-des] >= \n[arg-ptr]) \{\
.if !\A\*[arg\n[reg-des]] \
.break
.if !d after-\*[arg\n[reg-des]] \
.break
.nr reg-des -1
.\}
.ie (\n[reg-des] == \n[arg-limit]) \
.append-arg "\)\*[quote-right]\)" 3
.el \{\
.ie \n[have-slot] \
.ds arg\n[reg-des] "\*[quote-right]\)\*[arg\n[reg-des]]
.el \{\
.nr reg-des +1
.nr reg-des1 \n[arg-limit]
.nr reg-des2 (\n[arg-limit] + 1)
.while (\n[reg-des1] >= \n[reg-des]) \{\
.rn arg\n[reg-des1] arg\n[reg-des2]
.rnn type\n[reg-des1] type\n[reg-des2]
.rn space\n[reg-des1] space\n[reg-des2]
.nr reg-des1 -1
.nr reg-des2 -1
.\}
.nr arg-limit +1
.ds arg\n[reg-des] "\)\*[quote-right]\)
.nr type\n[reg-des] 3
.nr num-args (\n[arg-limit] - \n[reg-des] + 1)
.nr arg-limit (\n[reg-des] - 1)
.parse-space-vector
.nr have-slot 1
.\}\}\}
.do-\n[type\n[arg-ptr]]
.\}
.if \n[in-synopsis-section] \
.set-soft-space
..
.als En enclose-string
.de Ao
.if !\n[arg-limit] \
.ds macro-name Ao
.ie "\*[macro-name]"An" \
.ds quote-left <
.el \
.ds quote-left \[la]
.enclose-open \$@
..
.de Ac
.if !\n[arg-limit] \
.ds macro-name Ac
.ie "\*[macro-name]"An" \
.ds quote-right >
.el \
.ds quote-right \[ra]
.enclose-close \$@
..
.de Bo
.if !\n[arg-limit] \
.ds macro-name Bo
.ds quote-left "\*[left-bracket]
.enclose-open \$@
..
.de Bc
.if !\n[arg-limit] \
.ds macro-name Bc
.ds quote-right "\*[right-bracket]
.enclose-close \$@
..
.de Bro
.if !\n[arg-limit] \
.ds macro-name Bo
.ds quote-left {
.enclose-open \$@
..
.de Brc
.if !\n[arg-limit] \
.ds macro-name Bc
.ds quote-right }
.enclose-close \$@
..
.de Do
.if !\n[arg-limit] \
.ds macro-name Do
.ds quote-left "\*[Lq]
.enclose-open \$@
..
.de Dc
.if !\n[arg-limit] \
.ds macro-name Dc
.ds quote-right "\*[Rq]
.enclose-close \$@
..
.de Eo
.if !\n[arg-limit] \
.ds macro-name Eo
.ds quote-left "\$1
.shift
.enclose-open \$@
..
.de Ec
.if !\n[arg-limit] \
.ds macro-name Ec
.ds quote-right "\$1
.shift
.enclose-close \$@
..
.de Oo
.if !\n[arg-limit] \
.ds macro-name Oo
.ds quote-left [
.enclose-open \$@
..
.de Oc
.if !\n[arg-limit] \
.ds macro-name Oc
.ds quote-right ]
.enclose-close \$@
..
.de Po
.if !\n[arg-limit] \
.ds macro-name Po
.ds quote-left "\*[left-parenthesis]
.enclose-open \$@
..
.de Pc
.if !\n[arg-limit] \
.ds macro-name Pc
.ds quote-right "\*[right-parenthesis]
.enclose-close \$@
..
.de Qo
.if !\n[arg-limit] \
.ds macro-name Qo
.ds quote-left "\*[q]
.enclose-open \$@
..
.de Qc
.if !\n[arg-limit] \
.ds macro-name Qc
.ds quote-right "\*[q]
.enclose-close \$@
..
.de So
.if !\n[arg-limit] \
.ds macro-name So
.ds quote-left "\*[left-singlequote]
.enclose-open \$@
..
.de Sc
.if !\n[arg-limit] \
.ds macro-name Sc
.ds quote-right "\*[right-singlequote]
.enclose-close \$@
..
.de Xo
.if !\n[arg-limit] \
.ds macro-name Xo
.ds quote-left
.enclose-open \$@
..
.de Xc
.if !\n[arg-limit] \
.ds macro-name Xc
.ds quote-right
.enclose-close \$@
..
.nr nesting-level 0
.nr in-list 0
.de enclose-open
.if !\n[arg-limit] \
.parse-args \$@
.nr arg-ptr +1
.print-prefixes
.nr arg-ptr -1
.nop \)\*[quote-left]\)\c
.box enclosure-box\n[nesting-level]
.ev enclosure-env\n[nesting-level]
.evc 0
.in 0
.nf
.nop \&\c
.nr nesting-level +1
.if \n[arg-limit] \{\
.nr arg-ptr +1
.ie (\n[arg-limit] >= \n[arg-ptr]) \
.print-recursive
.el \
.reset-args
.\}
..
.de enclose-close
.nr nesting-level -1
.br
.ev
.box
.chop enclosure-box\n[nesting-level]
.unformat enclosure-box\n[nesting-level]
.nh
.nop \*[enclosure-box\n[nesting-level]]\c
.nop \)\*[quote-right]\)\c
.if !\n[arg-limit] \{\
.parse-args \$@
.if !\n[.$] \
.print-and-reset
.\}
.if \n[arg-limit] \{\
.ie (\n[arg-limit] > \n[arg-ptr]) \{\
.nop \)\*[space\n[arg-ptr]]\c
.nr arg-ptr +1
.print-recursive
.\}
.el \
.print-and-reset
.\}
.if !"\*[macro-name]"It" \
.if \n[in-list] \
.if !\n[nesting-level] \
.\*[list-type-stack\n[list-depth]]
..
.de Pf
.if !\n[arg-limit] \
.ds macro-name Pf
.ie \n[arg-limit] \{\
.ie ((\n[arg-limit] - \n[arg-ptr]) > 1) \{\
.nr arg-ptr +1
.nop \)\*[arg\n[arg-ptr]]\c
.\}
.el \
.tm mdoc warning: .Pf: trailing prefix (#\n[.c])
.\}
.el \{\
.nop \)\$1\)\c
.shift
.ie \n[.$] \
.parse-args \$@
.el \{\
.tm mdoc warning: .Pf: missing arguments (#\n[.c])
.nop \)
.\}\}
.if \n[arg-limit] \{\
.nr arg-ptr +1
.ie (\n[arg-limit] < \n[arg-ptr]) \
.print-and-reset
.el \
.do-\n[type\n[arg-ptr]]
.\}
..
.de Ns
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name Ns
.parse-args \$@
.\}
.el \
.tm Usage: .Ns must be called with arguments (#\n[.c])
.\}
.if \n[arg-limit] \{\
.nr arg-ptr +1
.ie (\n[arg-limit] >= \n[arg-ptr]) \
.print-recursive
.el \
.reset-args
.\}
..
.de Ap
.ie !\n[arg-limit] \
.tm Usage: `Ap' cannot be first macro on a line (no `.Ap') (#\n[.c])
.el \{\
.nop \)'\)\c
.nr arg-ptr +1
.ie (\n[arg-limit] >= \n[arg-ptr]) \
.print-recursive
.el \
.reset-args
.\}
..
.ds space "\*[soft-space]
.de set-hard-space
.ie "\*[space]"" \
.ds saved-space "\*[hard-space]
.el \
.ds space "\*[hard-space]
..
.de set-soft-space
.ie "\*[space]"" \
.ds saved-space "\*[soft-space]
.el \
.ds space "\*[soft-space]
..
.nr space-mode 1
.ds saved-space "\*[space]
.nr have-space 0
.de Sm
.ie \n[have-space] \
.nr reg-Sm 0
.el \
.nr reg-Sm 1
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name Sm
.parse-args \$@
.\}
.el \{\
.ie \n[space-mode] \{\
.ds saved-space "\*[space]
.ds space
.nr space-mode 0
.\}
.el \{\
.ds space "\*[saved-space]
.nr space-mode 1
.if \n[reg-Sm] \
.if \n[.int] \
.nop \)
.\}
.\}\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.if !d arg\n[arg-ptr] \
.ds arg\n[arg-ptr]
.ie "\*[arg\n[arg-ptr]]"on" \{\
.ds space "\*[saved-space]
.nr space-mode 1
.\}
.el \{\
.ie "\*[arg\n[arg-ptr]]"off" \{\
.ds saved-space "\*[space]
.ds space
.nr space-mode 0
.\}
.el \{\
.nr arg-ptr -1
.ie \n[space-mode] \{\
.ds saved-space "\*[space]
.ds space
.nr space-mode 0
.\}
.el \{\
.ds space "\*[saved-space]
.nr space-mode 1
.\}
.\}\}
.ie \n[space-mode] \{\
.nr num-args (\n[arg-limit] - \n[arg-ptr])
.nr arg-limit \n[arg-ptr]
.if \n[num-args] \
.parse-space-vector
.if \n[reg-Sm] \
.if \n[.int] \
.nop \)
.\}
.el \{\
.nr reg-Sm (\n[arg-ptr] + 1)
.while (\n[reg-Sm] <= \n[arg-limit]) \{\
.ds space\n[reg-Sm]
.nr reg-Sm +1
.\}
.\}
.ie (\n[arg-limit] > \n[arg-ptr]) \{\
.nr arg-ptr +1
.print-recursive
.\}
.el \
.reset-args
..
.nr arg-type 0
.de get-arg-type
.nr arg-type 2
.if ((\n[width] < 4) & \A\$1) \{\
.ie (\n[width] == 1) \{\
.if r punct\$1 \
.nr arg-type \n[punct\$1]
.\}
.el \
.if r \$1 \
.if d \$1 \
.nr arg-type 1
.\}
..
.de get-arg-type*
.nr arg-type 2
.length width "\*[arg\$1]
.if ((\n[width] < 4) & \A\*[arg\$1]) \{\
.ie (\n[width] == 1) \{\
.if r punct\*[arg\$1] \
.nr arg-type \n[punct\*[arg\$1]]
.\}
.el \
.if r \*[arg\$1] \
.if d \*[arg\$1] \
.nr arg-type 1
.\}
..
.de set-spacing-1
.nr reg-dssfm1 \n[\*[arg\n[arg-limit]]]
.ie (\n[reg-dssfm1] == 3) \{\
.if \n[arg-limit] \{\
.nr reg-dssfm (\n[arg-limit] - 1)
.ds space\n[reg-dssfm]
.\}
.ds space\n[arg-limit] "\*[space]
.\}
.el \{\
.ie (\n[reg-dssfm1] == 2) \{\
.if \n[arg-limit] \{\
.nr reg-dssfm (\n[arg-limit] - 1)
.ds space\n[reg-dssfm]
.\}
.ds space\n[arg-limit]
.\}
.el \
.ds space\n[arg-limit]
.\}
..
.de set-spacing-2
.ds space\n[arg-limit] "\*[space]
..
.de set-spacing-3
.if \n[arg-limit] \{\
.nr reg-dssfps (\n[arg-limit] - 1)
.ds space\n[reg-dssfps]
.\}
.ds space\n[arg-limit] "\*[space]
..
.de set-spacing-4
.ds space\n[arg-limit]
..
.de do-1
.\*[arg\n[arg-ptr]]
..
.als do-2 print-recursive
.als do-3 print-recursive
.als do-4 print-recursive
.nr fontmode-depth 0
.nr fontmode-font-stack0 0
.nr fontmode-size-stack0 0
.de Bf
.ds macro-name Bf
.ie \n[.$] \{\
.nr fontmode-depth +1
.nr fontmode-font-stack\n[fontmode-depth] \n[.f]
.nr fontmode-size-stack\n[fontmode-depth] \n[.ps]
.ie        "\$1"Em" \
.nop \*[Em-font]\c
.el \{ .ie "\$1"Li" \
.nop \*[Li-font]\c
.el \{ .ie "\$1"Sy" \
.nop \*[Sy-font]\c
.el \{ .ie "\$1"-emphasis" \
.nop \*[Em-font]\c
.el \{ .ie "\$1"-literal" \
.nop \*[Li-font]\c
.el \{ .ie "\$1"-symbolic" \
.nop \*[Sy-font]\c
.el \{\
.tmc mdoc warning: Unknown keyword `\$1' in .Bf macro
.tm1 " (#\n[.c])
.\}\}\}\}\}\}\}
.el \
.tm Usage: .Bf [Em | -emphasis | Li | -literal | Sy | -symbolic] (#\n[.c])
..
.de Ef
.ds macro-name Ef
.ie \n[fontmode-depth] \{\
.nop \)\f[\n[fontmode-font-stack\n[fontmode-depth]]]\c
.nop \)\s[\n[fontmode-size-stack\n[fontmode-depth]]u]\c
.nr fontmode-font-stack\n[fontmode-depth] 0
.nr curr-font \n[.f]
.nr fontmode-size-stack\n[fontmode-depth] 0
.nr curr-size \n[.ps]
.nr fontmode-depth -1
.\}
.el \
.tm mdoc warning: Extraneous .Ef (#\n[.c])
..
.nr keep-type 0
.de Bk
.ds macro-name Bk
.if \n[keep-type] \
.tm .Bk: nesting keeps not implemented yet. (#\n[.c])
.ie        "\$1"-lines" \{\
.nr keep-type 2
.tm .Bk -lines: Not implemented yet. (#\n[.c])
.\}
.el \{ .ie "\$1"-words" \{\
.nr keep-type 1
.set-hard-space
.\}
.el \{ .ie "\$1"" \{\
.nr keep-type 1
.set-hard-space
.\}
.el \{\
.tm mdoc warning: Unknown keyword `\$1' in .Bk macro (#\n[.c])
.nr keep-type 3
.\}\}\}
..
.de Ek
.ds macro-name Ek
.ie \n[.$] \
.tm Usage: .Ek (does not take arguments) (#\n[.c])
.el \{\
.if !\n[keep-type] \
.tm mdoc warning: .Ek found without .Bk before (#\n[.c])
.ie        (\n[keep-type] == 1) \
.set-soft-space
.el \{ .if (\n[keep-type] == 2) \
.tm .Bk -lines: Not implemented yet. (#\n[.c])
.\}\}
.nr keep-type 0
..
.nr display-depth 0
.nr is-compact 0
.ds display-type-stack0
.nr display-indent-stack0 0
.nr display-ad-stack0 0
.nr display-fi-stack0 0
.nr display-ft-stack0 0
.nr display-ps-stack0 0
.de Bd
.ds macro-name Bd
.if !\n[.$] \{\
.tm1 "Usage: .Bd {-literal | -filled | -ragged | -centered | -unfilled}
.tm1 "           [-offset [string]] [-compact] [-file name] (#\n[.c])
.return
.\}
.nr is-compact 0
.ds display-file
.nr reg-Bd 1
.nr display-depth +1
.nr display-ad-stack\n[display-depth] \n[.j]
.nr display-fi-stack\n[display-depth] \n[.u]
.ie        "\$1"-literal" \{\
.ds display-type-stack\n[display-depth] literal
.nr display-ft-stack\n[display-depth] \n[.f]
.nr display-ps-stack\n[display-depth] \n[.ps]
.ie t \
.ta T 9n
.el \
.ta T 8n
.nf
.\}
.el \{ .ie "\$1"-filled" \{\
.ds display-type-stack\n[display-depth] filled
.ad b
.fi
.\}
.el \{ .ie "\$1"-ragged" \{\
.ds display-type-stack\n[display-depth] ragged
.na
.fi
.\}
.el \{ .ie "\$1"-centered" \{\
.ds display-type-stack\n[display-depth] centered
.ad c
.fi
.\}
.el \{ .ie "\$1"-unfilled" \{\
.ds display-type-stack\n[display-depth] unfilled
.nf
.\}
.el \{\
.tm1 "mdoc warning: Unknown keyword `\$1' (or missing display type)
.tm1 "              in .Bd macro (#\n[.c])
.nr reg-Bd 0
.\}\}\}\}\}
.if \n[reg-Bd] \{\
.shift
.if \n[.$] \
.do-Bd-args \$@
.\}
.if !r display-indent-stack\n[display-depth] \
.nr display-indent-stack\n[display-depth] 0
.if \n[display-indent-stack\n[display-depth]] \
.in +\n[display-indent-stack\n[display-depth]]u
.if !\n[is-compact] \
.sp \n[display-vertical]u
.if "\*[display-type-stack\n[display-depth]]"literal" \
.if t \
.nop \*[Li-font]\c
.if !\n[cR] \
.ne 2v
.if !"\*[display-file]"" \
.so \*[display-file]
.nr is-compact 0
.ds display-file
..
.de do-Bd-args
.nr reg-ddBa 1
.ie        "\$1"-offset" \{\
.nr reg-ddBa 2
.ie        "\$2"left" \
.nr display-indent-stack\n[display-depth] 0
.el \{ .ie "\$2"right" \
.nr display-indent-stack\n[display-depth] (\n[.l]u / 3u)
.el \{ .ie "\$2"center" \
.nr display-indent-stack\n[display-depth] ((\n[.l]u - \n[.i]u) / 4u)
.el \{ .ie "\$2"indent" \
.nr display-indent-stack\n[display-depth] \n[display-indent]u
.el \{ .ie "\$2"indent-two" \
.nr display-indent-stack\n[display-depth] (\n[display-indent]u + \n[display-indent]u)
.el \
.nr reg-ddBa 1
.\}\}\}\}
.if (\n[reg-ddBa] == 1) \{\
.nr reg-ddBa 2
.nr reg-ddBa1 0
.if \B(\$2) \{\
.nr reg-ddBa2 \n[.warn]
.warn (\n[.warn] - (\n[.warn] / 32 % 2 * 32))
.ds str-ddBa "\$2
.substring str-ddBa 0 -2
.if \B(\*[str-ddBa]) \{\
.nr reg-ddBa3 (;(\$2))
.nr reg-ddBa4 (\*[str-ddBa])
.if (\n[reg-ddBa3] == \n[reg-ddBa4]) \
.nr reg-ddBa1 1
.\}
.warn \n[reg-ddBa2]
.\}
.ie \n[reg-ddBa1] \
.nr display-indent-stack\n[display-depth] \$2
.el \{\
.get-width "\$2"
.ie (\n[width] <= 3) \{\
.get-arg-type "\$2"
.ie (\n[arg-type] == 1) \
.nr display-indent-stack\n[display-depth] \n[\$2]
.el \
.nr display-indent-stack\n[display-depth] (\n[width]u * \n[fixed-width]u)
.\}
.el \
.nr display-indent-stack\n[display-depth] (\n[width]u * \n[fixed-width]u)
.\}\}
.\}
.el \{ .ie "\$1"-compact" \
.nr is-compact 1
.el \{ .ie "\$1"-file" \{\
.ie !"\$2"" \{\
.ds display-file "\$2
.nr reg-ddBa 2
.\}
.el \
.tm mdoc warning: .Bd `-file' keyword requires argument (#\n[.c])
.\}
.el \
.tm mdoc warning: Unknown keyword `\$1' in .Bd macro (#\n[.c])
.\}\}
.if (\n[reg-ddBa] < \n[.$]) \{\
.shift \n[reg-ddBa]
.do-Bd-args \$@
.\}
..
.de Ed
.ds macro-name Ed
.br
.if !\n[display-depth] \{\
.tm mdoc warning: Extraneous .Ed (#\n[.c])
.nr display-depth 1
.\}
.if "\*[display-type-stack\n[display-depth]]"literal" \{\
.ft \n[display-ft-stack\n[display-depth]]
.ps \n[display-ps-stack\n[display-depth]]u
.\}
.in -\n[display-indent-stack\n[display-depth]]u
.ie \n[display-fi-stack\n[display-depth]] \
.fi
.el \
.nf
.ad \n[display-ad-stack\n[display-depth]]
.nr display-indent-stack\n[display-depth] 0
.ds display-type-stack\n[display-depth]
.nr display-depth -1
..
.ds list-type-stack1
.nr list-indent-stack1 0
.nr list-have-indent-stack1 0
.de Bl
.if !\n[.$] \{\
.Bl-usage
.return
.\}
.ds macro-name Bl
.nr list-depth +1
.nr arg-ptr 1
.ie        "\$1"-hang" \{\
.ds list-type-stack\n[list-depth] hang-list
.nr list-indent-stack\n[list-depth] 6n
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-tag" \{\
.ds list-type-stack\n[list-depth] tag-list
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-item" \{\
.ds list-type-stack\n[list-depth] item-list
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-enum" \{\
.ds list-type-stack\n[list-depth] enum-list
.nr list-indent-stack\n[list-depth] 3n
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-bullet" \{\
.ds list-type-stack\n[list-depth] bullet-list
.nr list-indent-stack\n[list-depth] 2n
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-dash" \{\
.ds list-type-stack\n[list-depth] dash-list
.nr list-indent-stack\n[list-depth] 2n
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-hyphen" \{\
.ds list-type-stack\n[list-depth] dash-list
.nr list-indent-stack\n[list-depth] 2n
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-inset" \{\
.ds list-type-stack\n[list-depth] inset-list
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-diag" \{\
.ds list-type-stack\n[list-depth] diag-list
.\}
.el \{ .ie "\$1"-ohang" \{\
.ds list-type-stack\n[list-depth] ohang-list
.nr list-have-indent-stack\n[list-depth] 1
.\}
.el \{ .ie "\$1"-column" \{\
.ds list-type-stack\n[list-depth] column-list
.linetabs 1
.\}
.el \{\
.tm1 "mdoc warning: Unknown list type `\$1' (or missing list type)
.tm1 "              in .Bl macro
.tm
.nr arg-ptr 0
.\}\}\}\}\}\}\}\}\}\}\}
.if !\n[arg-ptr] \{\
.Bl-usage
.reset-args
.nr list-depth -1
.return
.\}
.shift
.nr reg-Bl 1
.while (\n[reg-Bl] <= \n[.$]) \{\
.ds arg\n[reg-Bl] "\$[\n[reg-Bl]]
.nr type\n[reg-Bl] 0
.ds space\n[reg-Bl]
.nr reg-Bl +1
.\}
.increment-list-stack
.if \n[.$] \{\
.nr arg-limit \n[.$]
.nr arg-ptr 0
.do-Bl-args
.in +\n[list-offset-stack\n[list-depth]]u
.if "\*[list-type-stack\n[list-depth]]"column-list" \{\
.set-column-tab \n[num-columns]
'      in -\n[column-indent-width]u
.if !\n[compact-list-stack\n[list-depth]] \
.sp \n[display-vertical]u
.nf
.nr num-columns 0
.\}\}
.reset-args
..
.de Bl-usage
.tm1 "Usage: .Bl {-hang | -ohang | -tag | -diag | -inset}
.tm1 "             [-width <string>]
.tm1 "             [-offset <string>] [-compact]
.tm1 "       .Bl -column [-offset <string>] <string1> <string2> ...
.tm1 "       .Bl {-item | -enum [-nested] | -bullet | -hyphen | -dash}
.tm1 "             [-offset <string>] [-compact] (#\n[.c])
..
.de do-Bl-args
.nr arg-ptr +1
.if (\n[arg-limit] < \n[arg-ptr]) \
.return
.nr reg-dBla (\n[arg-ptr] + 1)
.if !d arg\n[reg-dBla] \
.ds arg\n[reg-dBla]
.nr reg-dBla 1
.ie        "\*[arg\n[arg-ptr]]"-compact" \
.nr compact-list-stack\n[list-depth] 1
.el \{ .ie "\*[arg\n[arg-ptr]]"-nested" \{\
.ie (\n[list-depth] > 1) \{\
.nr reg-dBla1 (\n[list-depth] - 1)
.ds tag-prefix-stack\n[list-depth] "\*[tag-prefix-stack\n[reg-dBla1]]
.as tag-prefix-stack\n[list-depth] \n[enum-list-count-stack\n[reg-dBla1]].
.length reg-dBla1 "\*[tag-prefix-stack\n[list-depth]]
.nr list-indent-stack\n[list-depth] +\n[reg-dBla1]n
.\}
.el \
.tm mdoc warning: `-nested' allowed with nested .Bl macros only (#\n[.c])
.\}
.el \{ .ie "\*[arg\n[arg-ptr]]"-width" \{\
.nr arg-ptr +1
.ds tag-width-stack\n[list-depth] TagwidtH
.ds str-dBla "\*[arg\n[arg-ptr]]
.substring str-dBla 0 0
.ie .\*[str-dBla] \{\
.ds str-dBla "\*[arg\n[arg-ptr]]
.substring str-dBla 1
.first-parameter \*[str-dBla]
.get-width "\*[str-dfp]
.get-arg-type "\*[str-dfp]
.ie (\n[arg-type] == 1) \
.nr reg-dBla1 1
.el \
.nr reg-dBla1 0
.\}
.el \
.nr reg-dBla1 0
.ds str-dBla "\*[arg\n[arg-ptr]]
.ie \n[reg-dBla1] \{\
.ds str-dBla \*[arg\n[arg-ptr]]
.save-global-vars
.reset-args
.box box-dBla
.ev env-dBla
.evc 0
.in 0
.nf
.nop \*[str-dBla]
.br
.ev
.box
.restore-global-vars
.get-width \h'\n[dl]u'
.nr list-indent-stack\n[list-depth] (\n[width]u * \n[fixed-width]u)
.\}
.el \{\
.nr reg-dBla1 0
.if \B(\*[str-dBla]) \{\
.nr reg-dBla2 \n[.warn]
.warn (\n[.warn] - (\n[.warn] / 32 % 2 * 32))
.ds str-dBla1 "\*[str-dBla]
.substring str-dBla1 0 -2
.if \B(\*[str-dBla1]) \{\
.nr reg-dBla3 (;(\*[str-dBla]))
.nr reg-dBla4 (\*[str-dBla1])
.if (\n[reg-dBla3] == \n[reg-dBla4]) \
.nr reg-dBla1 1
.\}
.warn \n[reg-dBla2]
.\}
.ie \n[reg-dBla1] \
.nr list-indent-stack\n[list-depth] (\*[str-dBla])
.el \{\
.get-arg-width \n[arg-ptr]
.ie (\n[width] == 2) \{\
.get-arg-type \*[str-dBla]
.ie (\n[arg-type] == 1) \
.nr list-indent-stack\n[list-depth] \n[\*[str-dBla]]
.el \
.nr list-indent-stack\n[list-depth] (\n[width]u * \n[fixed-width]u)
.\}
.el \
.nr list-indent-stack\n[list-depth] (\n[width]u * \n[fixed-width]u)
.\}\}\}
.el \{ .ie "\*[arg\n[arg-ptr]]"-offset" \{\
.nr arg-ptr +1
.ie "\*[arg\n[arg-ptr]]"indent" \
.nr list-offset-stack\n[list-depth] \n[display-indent]u
.el \{\
.ds str-dBla "\*[arg\n[arg-ptr]]
.nr reg-dBla1 0
.if \B(\*[str-dBla]) \{\
.nr reg-dBla2 \n[.warn]
.warn (\n[.warn] - (\n[.warn] / 32 % 2 * 32))
.ds str-dBla1 "\*[str-dBla]
.substring str-dBla1 0 -2
.if \B(\*[str-dBla1]) \{\
.nr reg-dBla3 (;(\*[str-dBla]))
.nr reg-dBla4 (\*[str-dBla1])
.if (\n[reg-dBla3] == \n[reg-dBla4]) \
.nr reg-dBla1 1
.\}
.warn \n[reg-dBla2]
.\}
.ie \n[reg-dBla1] \
.nr list-offset-stack\n[list-depth] \*[str-dBla]
.el \{\
.get-arg-width \n[arg-ptr]
.ie (\n[width] <= 3) \{\
.get-arg-type \*[str-dBla]
.ie (\n[arg-type] == 1) \
.nr list-offset-stack\n[list-depth] \n[\*[str-dBla]]
.el \
.nr list-offset-stack\n[list-depth] (\n[width]u * \n[fixed-width]u)
.\}
.el \
.nr list-offset-stack\n[list-depth] (\n[width]u * \n[fixed-width]u)
.\}\}\}
.el \
.nr reg-dBla 0
.\}\}\}
.if !\n[reg-dBla] \{\
.ie "\*[list-type-stack\n[list-depth]]"column-list" \{\
.nr num-columns +1
.ds str-dBla \*[arg\n[arg-ptr]]
.substring str-dBla 0 0
.ie .\*[str-dBla] \{\
.ds str-dBla "\*[arg\n[arg-ptr]]
.substring str-dBla 1
.first-parameter \*[str-dBla]
.get-width "\*[str-dfp]
.get-arg-type "\*[str-dfp]
.ie (\n[arg-type] == 1) \
.nr reg-dBla1 1
.el \
.nr reg-dBla1 0
.\}
.el \
.nr reg-dBla1 0
.ds str-dBla "\*[arg\n[arg-ptr]]
.ie \n[reg-dBla1] \{\
.ds str-dBla \*[arg\n[arg-ptr]]
.save-global-vars
.reset-args
.box box-dBla
.ev env-dBla
.evc 0
.in 0
.nf
.nop \*[str-dBla]
.br
.ev
.box
.restore-global-vars
.ds arg\n[num-columns] "\h'\n[dl]u'
.\}
.el \
.ds arg\n[num-columns] "\*[arg\n[arg-ptr]]
.\}
.el \{\
.tmc mdoc warning: Unknown keyword `\*[arg\n[arg-ptr]]'
.tm1 " in .Bl macro (#\n[.c])
.\}\}
.if (\n[arg-limit] > \n[arg-ptr]) \
.do-Bl-args
..
.de save-global-vars
.ds macro-name-saved "\*[macro-name]
.nr arg-limit-saved \n[arg-limit]
.nr num-args-saved \n[num-args]
.nr arg-ptr-saved \n[arg-ptr]
.nr reg-dsgv 1
.while (\n[reg-dsgv] <= \n[arg-limit]) \{\
.ds arg\n[reg-dsgv]-saved "\*[arg\n[reg-dsgv]]
.nr type\n[reg-dsgv]-saved \n[type\n[reg-dsgv]]
.ds space\n[reg-dsgv]-saved "\*[space\n[reg-dsgv]]
.nr reg-dsgv +1
.\}
.nr curr-font-saved \n[curr-font]
.nr curr-size-saved \n[curr-size]
.nr in-synopsis-section-saved \n[in-synopsis-section]
.nr in-library-section-saved \n[in-library-section]
.nr indent-synopsis-saved \n[indent-synopsis]
.nr indent-synopsis-active-saved \n[indent-synopsis-active]
.nr have-decl-saved \n[have-decl]
.nr have-var-saved \n[have-var]
.ds command-name-saved "\*[command-name]
.ds quote-left-saved "\*[quote-left]
.ds quote-right-saved "\*[quote-right]
.nr nesting-level-saved \n[nesting-level]
.nr in-list-saved \n[in-list]
.ds space-saved "\*[space]
.ds saved-space-saved "\*[saved-space]
.nr space-mode-saved \n[space-mode]
.nr have-space-saved \n[have-space]
.nr have-slot-saved \n[have-slot]
.nr keep-type-saved \n[keep-type]
.nr display-depth-saved \n[display-depth]
.nr is-compact-saved \n[is-compact]
.nr reg-dsgv 0
.while (\n[reg-dsgv] <= \n[display-depth]) \{\
.ds display-type-stack\n[reg-dsgv]-saved "\*[display-type-stack\n[reg-dsgv]]
.nr display-indent-stack\n[reg-dsgv]-saved \n[display-indent-stack\n[reg-dsgv]]
.nr display-ad-stack\n[reg-dsgv]-saved \n[display-ad-stack\n[reg-dsgv]]
.nr display-fi-stack\n[reg-dsgv]-saved \n[display-fi-stack\n[reg-dsgv]]
.nr display-ft-stack\n[reg-dsgv]-saved \n[display-ft-stack\n[reg-dsgv]]
.nr display-ps-stack\n[reg-dsgv]-saved \n[display-ps-stack\n[reg-dsgv]]
.nr reg-dsgv +1
.\}
.nr fontmode-depth-saved \n[fontmode-depth]
.nr reg-dsgv 1
.while (\n[reg-dsgv] <= \n[fontmode-depth]) \{\
.nr fontmode-font-stack\n[reg-dsgv]-saved \n[fontmode-font-stack\n[reg-dsgv]]
.nr fontmode-size-stack\n[reg-dsgv]-saved \n[fontmode-size-stack\n[reg-dsgv]]
.nr reg-dsgv +1
.\}
.nr list-depth-saved \n[list-depth]
.nr reg-dsgv 1
.while (\n[reg-dsgv] <= \n[list-depth]) \{\
.ds list-type-stack\n[reg-dsgv]-saved "\*[list-type-stack\n[reg-dsgv]]
.nr list-have-indent-stack\n[reg-dsgv]-saved \n[list-have-indent-stack\n[reg-dsgv]]
.nr list-indent-stack\n[reg-dsgv]-saved \n[list-indent-stack\n[reg-dsgv]]
.nr compact-list-stack\n[reg-dsgv]-saved \n[compact-list-stack\n[reg-dsgv]]
.ds tag-prefix-stack\n[reg-dsgv]-saved "\*[tag-prefix-stack\n[reg-dsgv]]
.ds tag-width-stack\n[reg-dsgv]-saved "\*[tag-width-stack\n[reg-dsgv]]
.nr list-offset-stack\n[reg-dsgv]-saved \n[list-offset-stack\n[reg-dsgv]]
.nr enum-list-count-stack\n[reg-dsgv]-saved \n[enum-list-count-stack\n[reg-dsgv]]
.nr reg-dsgv +1
.\}
.ds saved-Pa-font-saved "\*[saved-Pa-font]
.nr curr-type-saved \n[curr-type]
.ds curr-arg-saved "\*[curr-arg]
.nr diag-list-input-line-count-saved \n[diag-list-input-line-count]
.nr num-columns-saved \n[num-columns]
.nr column-indent-width-saved \n[column-indent-width]
.nr is-func-saved \n[is-func]
.nr have-old-func-saved \n[have-old-func]
.nr func-arg-count-saved \n[func-arg-count]
.ds func-arg-saved "\*[func-arg]
.nr num-func-args-saved \n[num-func-args]
.nr func-args-processed-saved \n[func-args-processed]
.nr have-func-saved \n[have-func]
.nr is-reference-saved \n[is-reference]
.nr reference-count-saved \n[reference-count]
.nr author-count-saved \n[author-count]
.nr reg-dsgv 0
.while (\n[reg-dsgv] <= \n[author-count]) \{\
.ds author-name\n[reg-dsgv]-saved "\*[author-name\n[reg-dsgv]]
.nr reg-dsgv +1
.\}
.nr book-count-saved \n[book-count]
.ds book-name-saved "\*[book-name]
.nr date-count-saved \n[date-count]
.ds date-saved "\*[date]
.nr publisher-count-saved \n[publisher-count]
.ds publisher-name-saved "\*[publisher-name]
.nr journal-count-saved \n[journal-count]
.ds journal-name-saved "\*[journal-name]
.nr issue-count-saved \n[issue-count]
.ds issue-name-saved "\*[issue-name]
.nr optional-count-saved \n[optional-count]
.ds optional-string-saved "\*[optional-string]
.nr page-number-count-saved \n[page-number-count]
.ds page-number-string-saved "\*[page-number-string]
.nr corporate-count-saved \n[corporate-count]
.ds corporate-name-saved "\*[corporate-name]
.nr report-count-saved \n[report-count]
.ds report-name-saved "\*[report-name]
.nr reference-title-count-saved \n[reference-title-count]
.ds reference-title-name-saved "\*[reference-title-name]
.ds reference-title-name-for-book-saved "\*[reference-title-name-for-book]
.nr url-count-saved \n[url-count]
.ds url-name-saved "\*[url-name]
.nr volume-count-saved \n[volume-count]
.ds volume-name-saved "\*[volume-name]
.nr have-author-saved \n[have-author]
.ds document-title-saved "\*[document-title]
.ds volume-saved "\*[volume]
.ds section-saved "\*[section]
.ds operating-system-saved "\*[operating-system]
.ds date-string-saved "\*[date-string]
.nr header-space-saved \n[header-space]
.nr footer-space-saved \n[footer-space]
.nr display-vertical-saved \n[display-vertical]
.ds header-string-saved "\*[header-string]
.nr in-see-also-section-saved \n[in-see-also-section]
.nr in-files-section-saved \n[in-files-section]
.nr in-authors-section-saved \n[in-authors-section]
..
.de restore-global-vars
.ds macro-name "\*[macro-name-saved]
.nr arg-limit \n[arg-limit-saved]
.nr num-args \n[num-args-saved]
.nr arg-ptr \n[arg-ptr-saved]
.nr reg-drgv 1
.while (\n[reg-drgv] <= \n[arg-limit]) \{\
.ds arg\n[reg-drgv] "\*[arg\n[reg-drgv]-saved]
.nr type\n[reg-drgv] \n[type\n[reg-drgv]-saved]
.ds space\n[reg-drgv] "\*[space\n[reg-drgv]-saved]
.nr reg-drgv +1
.\}
.nr curr-font \n[curr-font-saved]
.nr curr-size \n[curr-size-saved]
.nr in-synopsis-section \n[in-synopsis-section-saved]
.nr in-library-section \n[in-library-section-saved]
.nr indent-synopsis \n[indent-synopsis-saved]
.nr indent-synopsis-active \n[indent-synopsis-active-saved]
.nr have-decl \n[have-decl-saved]
.nr have-var \n[have-var-saved]
.ds command-name "\*[command-name-saved]
.ds quote-left "\*[quote-left-saved]
.ds quote-right "\*[quote-right-saved]
.nr nesting-level \n[nesting-level-saved]
.nr in-list \n[in-list-saved]
.ds space "\*[space-saved]
.ds saved-space "\*[saved-space-saved]
.nr space-mode \n[space-mode-saved]
.nr have-space \n[have-space-saved]
.nr have-slot \n[have-slot-saved]
.nr keep-type \n[keep-type-saved]
.nr display-depth \n[display-depth-saved]
.nr is-compact \n[is-compact-saved]
.nr reg-drgv 0
.while (\n[reg-drgv] <= \n[display-depth]) \{\
.ds display-type-stack\n[reg-drgv] "\*[display-type-stack\n[reg-drgv]-saved]
.nr display-indent-stack\n[reg-drgv] \n[display-indent-stack\n[reg-drgv]-saved]
.nr display-ad-stack\n[reg-drgv] \n[display-ad-stack\n[reg-drgv]-saved]
.nr display-fi-stack\n[reg-drgv] \n[display-fi-stack\n[reg-drgv]-saved]
.nr display-ft-stack\n[reg-drgv] \n[display-ft-stack\n[reg-drgv]-saved]
.nr display-ps-stack\n[reg-drgv] \n[display-ps-stack\n[reg-drgv]-saved]
.nr reg-drgv +1
.\}
.nr fontmode-depth \n[fontmode-depth-saved]
.nr reg-drgv 1
.while (\n[reg-drgv] <= \n[fontmode-depth]) \{\
.nr fontmode-font-stack\n[reg-drgv] \n[fontmode-font-stack\n[reg-drgv]]-saved
.nr fontmode-size-stack\n[reg-drgv] \n[fontmode-size-stack\n[reg-drgv]]-saved
.nr reg-drgv +1
.\}
.nr list-depth \n[list-depth-saved]
.nr reg-drgv 1
.while (\n[reg-drgv] <= \n[list-depth]) \{\
.ds list-type-stack\n[reg-drgv] "\*[list-type-stack\n[reg-drgv]-saved]
.nr list-have-indent-stack\n[reg-drgv] \n[list-have-indent-stack\n[reg-drgv]-saved]
.nr list-indent-stack\n[reg-drgv] \n[list-indent-stack\n[reg-drgv]-saved]
.nr compact-list-stack\n[reg-drgv] \n[compact-list-stack\n[reg-drgv]-saved]
.ds tag-prefix-stack\n[reg-drgv] "\*[tag-prefix-stack\n[reg-drgv]-saved]
.ds tag-width-stack\n[reg-drgv] "\*[tag-width-stack\n[reg-drgv]-saved]
.nr list-offset-stack\n[reg-drgv] \n[list-offset-stack\n[reg-drgv]-saved]
.nr enum-list-count-stack\n[reg-drgv] \n[enum-list-count-stack\n[reg-drgv]-saved]
.nr reg-drgv +1
.\}
.ds saved-Pa-font "\*[saved-Pa-font-saved]
.nr curr-type \n[curr-type-saved]
.ds curr-arg "\*[curr-arg-saved]
.nr diag-list-input-line-count \n[diag-list-input-line-count-saved]
.nr num-columns \n[num-columns-saved]
.nr column-indent-width \n[column-indent-width-saved]
.nr is-func \n[is-func-saved]
.nr have-old-func \n[have-old-func-saved]
.nr func-arg-count \n[func-arg-count-saved]
.ds func-arg "\*[func-arg-saved]
.nr num-func-args \n[num-func-args-saved]
.nr func-args-processed \n[func-args-processed-saved]
.nr have-func \n[have-func-saved]
.nr is-reference \n[is-reference-saved]
.nr reference-count \n[reference-count-saved]
.nr author-count \n[author-count-saved]
.nr reg-drgv 0
.while (\n[reg-drgv] <= \n[author-count]) \{\
.ds author-name\n[reg-drgv] "\*[author-name\n[reg-drgv]-saved]
.nr reg-drgv +1
.\}
.nr book-count \n[book-count-saved]
.ds book-name "\*[book-name-saved]
.nr date-count \n[date-count-saved]
.ds date "\*[date-saved]
.nr publisher-count \n[publisher-count-saved]
.ds publisher-name "\*[publisher-name-saved]
.nr journal-count \n[journal-count-saved]
.ds journal-name "\*[journal-name-saved]
.nr issue-count \n[issue-count-saved]
.ds issue-name "\*[issue-name-saved]
.nr optional-count \n[optional-count-saved]
.ds optional-string "\*[optional-string-saved]
.nr page-number-count \n[page-number-count-saved]
.ds page-number-string "\*[page-number-string-saved]
.nr corporate-count \n[corporate-count-saved]
.ds corporate-name "\*[corporate-name-saved]
.nr report-count \n[report-count-saved]
.ds report-name "\*[report-name-saved]
.nr reference-title-count \n[reference-title-count-saved]
.ds reference-title-name "\*[reference-title-name-saved]
.ds reference-title-name-for-book "\*[reference-title-name-for-book-saved]
.nr url-count \n[url-count-saved]
.ds url-name "\*[url-name-saved]
.nr volume-count \n[volume-count-saved]
.ds volume-name "\*[volume-name-saved]
.nr have-author \n[have-author-saved]
.ds document-title "\*[document-title-saved]
.ds volume "\*[volume-saved]
.ds section "\*[section-saved]
.ds operating-system "\*[operating-system-saved]
.ds date-string "\*[date-string-saved]
.nr header-space \n[header-space-saved]
.nr footer-space \n[footer-space-saved]
.nr display-vertical \n[display-vertical-saved]
.ds header-string "\*[header-string-saved]
.nr in-see-also-section \n[in-see-also-section-saved]
.nr in-files-section \n[in-files-section-saved]
.nr in-authors-section \n[in-authors-section-saved]
..
.de El
.if \n[.$] \{\
.tm Usage: .El (does not take arguments) (#\n[.c])
.return
.\}
.ds macro-name El
.ds str-El \*[list-type-stack\n[list-depth]]
.ie        "\*[str-El]"diag-list" \
.end-list 0
.el \{ .ie "\*[str-El]"column-list" \
.end-column-list
.el \{ .ie "\*[str-El]"item-list" \
.end-list 0
.el \{ .ie "\*[str-El]"ohang-list" \
.end-list 0
.el \{ .ie "\*[str-El]"inset-list" \
.end-list 0
.el \
.end-list 1
.\}\}\}\}
.br
..
.ds saved-Pa-font
.nr curr-type 0
.ds curr-arg
.nr bullet-list-type 1
.nr column-list-type 0
.nr dash-list-type 1
.nr diag-list-type 0
.nr enum-list-type 1
.nr hang-list-type 2
.nr inset-list-type 2
.nr item-list-type 1
.nr ohang-list-type 2
.nr tag-list-type 2
.de It
.ds str-It \*[list-type-stack\n[list-depth]]
.if "\*[str-It]"" \
.tm mdoc error: .It without preceding .Bl (#\n[.c])
.if \n[nesting-level] \{\
.tmc "mdoc error: .It found in enclosing (e.g. .Ac ... .It ... .Ao)
.tm1 " (#\n[.c])
.\}
.br
.if !\n[cR] \
.ne 3v
.if \n[.$] \{\
.ds macro-name It
.nr reg-It 1
.while (\n[reg-It] <= \n[.$]) \{\
.ds arg\n[reg-It] "\$[\n[reg-It]]
.nr reg-It +1
.\}
.nr num-args \n[.$]
.nr arg-ptr 0
.\}
.nr reg-It \n[\*[str-It]-type]
.if \n[reg-It] \{\
.box item-box\n[list-depth]
.ev item-env\n[list-depth]
.evc 0
.in 0
.nf
.\}
.ie (\n[reg-It] == 1) \{\
.if \n[.$] \{\
.tm1 "mdoc warning: .It macros in lists of type `\*[str-It]'
.tm1 "              don't take arguments (#\n[.c])
.\}\}
.el \{\
.ie \n[.$] \{\
.if (\n[reg-It] == 2) \{\
.parse-arg-vector
.nr in-list 1
.nr arg-ptr 1
.nr curr-type \n[type1]
.ds curr-arg "\*[arg1]
.if \n[in-files-section] \{\
.ds saved-Pa-font "\*[Pa-font]
.if n \
.ds Pa-font "\*[No-font]
.\}
.ie (\n[type1] == 1) \
.\*[arg1]
.el \{\
.nr arg-ptr 1
.print-recursive
.\}\}\}
.el \{\
.tm1 "mdoc warning: .It macros in lists of type `\*[str-It]'
.tm1 "              require arguments (#\n[.c])
.\}
.\}
.if !\n[nesting-level] \
.\*[str-It]
..
.de inset-list
.br
.ev
.box
.unformat item-box\n[list-depth]
.set-vertical-and-indent 0
.br
.nh
.item-box\n[list-depth]
.if \n[in-files-section] \
.if n \
.ds Pa-font "\*[saved-Pa-font]
.nr in-list 0
.reset-args
..
.de hang-list
.br
.ev
.box
.unformat item-box\n[list-depth]
.set-vertical-and-indent 1
.nr reg-dhl (\n[list-indent-stack\n[list-depth]]u + \n[digit-width]u)
.ti -\n[reg-dhl]u
.nh
.ie (\n[dl]u > \n[list-indent-stack\n[list-depth]]u) \
.item-box\n[list-depth]
.el \{\
.chop item-box\n[list-depth]
.nr reg-dhl1 \n[.k]u
.nop \*[item-box\n[list-depth]]\c
.nop \h'|(\n[reg-dhl1]u - \n[.k]u + \n[reg-dhl]u)'\c
.nr have-space 1
.\}
.if \n[in-files-section] \
.if n \
.ds Pa-font "\*[saved-Pa-font]
.nr in-list 0
.reset-args
..
.de ohang-list
.br
.ev
.box
.unformat item-box\n[list-depth]
.set-vertical-and-indent 0
.nh
.item-box\n[list-depth]
.br
.if \n[in-files-section] \
.if n \
.ds Pa-font "\*[saved-Pa-font]
.nr in-list 0
.reset-args
..
.de item-list
.br
.ev
.box
.set-vertical-and-indent 0
.br
.reset-args
..
.nr enum-list-count-stack1 0
.de enum-list
.nr in-list 1
.nr enum-list-count-stack\n[list-depth] +1
.nop \*[tag-prefix-stack\n[list-depth]]\c
.nop \n[enum-list-count-stack\n[list-depth]].\&
.do-list
..
.de bullet-list
.nr in-list 1
.nop \)\*[Sy-font]\[bu]\f[]
.do-list
..
.de dash-list
.nr in-list 1
.nop \)\*[Sy-font]\-\f[]
.do-list
..
.als do-list hang-list
.nr diag-list-input-line-count 0
.de diag-list
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.ie ((\n[.c] - \n[diag-list-input-line-count]) > 1) \{\
.ie !\n[compact-list-stack\n[list-depth]] \
.paragraph
.el \
.br
.\}
.el \
.br
.nr diag-list-input-line-count \n[.c]
.nh
.nop \*[Sy-font]\c
.if \n[num-args] \
.remaining-args
.nop \f[\n[curr-font]]\s[\n[curr-size]u]\*[hard-space]\c
.print-and-reset
..
.de tag-list
.br
.ev
.box
.unformat item-box\n[list-depth]
.box box-dtl
.ev env-dtl
.evc 0
.fi
.ad 0
.in 0
.item-box\n[list-depth]
.br
.ev
.box
.if !"TagwidtH"\*[tag-width-stack\n[list-depth]]" \{\
.if !\n[list-have-indent-stack\n[list-depth]] \{\
.in -(\n[list-indent-stack\n[list-depth]]u + \n[digit-width]u)
.nr list-have-indent-stack\n[list-depth] 1
.\}
.get-tag-width
.\}
.set-vertical-and-indent 1
.nr reg-dtl (\n[list-indent-stack\n[list-depth]]u + \n[digit-width]u)
.ti -\n[reg-dtl]u
.nh
.item-box\n[list-depth]
.ie (\n[dl]u > \n[list-indent-stack\n[list-depth]]u) \
.br
.el \{\
.vpt 0
.br
.sp -1
.vpt 1
.nop \&\c
.nr have-space 1
.\}
.if \n[in-files-section] \
.if n \
.ds Pa-font "\*[saved-Pa-font]
.nr in-list 0
.reset-args
..
.de get-tag-width
.ie (\n[curr-type] == 1) \{\
.ds tag-width-stack\n[list-depth] \*[curr-arg]
.nr list-indent-stack\n[list-depth] \n[\*[curr-arg]]
.\}
.el \{\
.ds tag-width-stack\n[list-depth] No
.nr list-indent-stack\n[list-depth] \n[No]
.\}
..
.de set-vertical-and-indent
.if !\n[compact-list-stack\n[list-depth]] \
.sp \n[display-vertical]u
.if \n[list-have-indent-stack\n[list-depth]] \{\
.nr list-have-indent-stack\n[list-depth] 0
.if \$1 \
.in +(\n[list-indent-stack\n[list-depth]]u + \n[digit-width]u)
.\}
.if !\n[cR] \
.ne 2v
..
.nr list-depth 0
.nr num-columns 0
.nr compact-list-stack1 0
.ds tag-prefix-stack1
.ds tag-width-stack0
.ds tag-width-stack1
.nr list-offset-stack1 0
.de end-list
.if \$1 \
'    in -(\n[list-indent-stack\n[list-depth]]u + \n[digit-width]u)
'  in -\n[list-offset-stack\n[list-depth]]u
.if (\n[list-depth] <= 0) \
.tm mdoc warning: extraneous .El call (#\n[.c])
.decrement-list-stack
.nr list-depth -1
..
.de increment-list-stack
.nr reg-dils (\n[list-depth] + 1)
.nr list-have-indent-stack\n[reg-dils] 0
.nr list-indent-stack\n[reg-dils] 0
.nr list-offset-stack\n[reg-dils] 0
.ds tag-prefix-stack\n[reg-dils]
.ds tag-width-stack\n[reg-dils] \*[tag-width-stack\n[list-depth]]
.ds list-type-stack\n[reg-dils]
.nr compact-list-stack\n[reg-dils] 0
.nr enum-list-count-stack\n[reg-dils] 0
..
.de decrement-list-stack
.ds list-type-stack\n[list-depth]
.nr list-have-indent-stack\n[list-depth] 0
.nr list-indent-stack\n[list-depth] 0
.nr list-offset-stack\n[list-depth] 0
.ds tag-prefix-stack\n[list-depth]
.ds tag-width-stack\n[list-depth]
.nr compact-list-stack\n[list-depth] 0
.nr enum-list-count-stack\n[list-depth] 0
..
.de Xr
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name Xr
.parse-args \$@
.\}
.el \
.Xr-usage
.\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.print-prefixes
.ie (\n[arg-limit] >= \n[arg-ptr]) \{\
.ie (\n[type\n[arg-ptr]] == 2) \{\
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.ds arg\n[arg-ptr] \*[Xr-font]\*[arg\n[arg-ptr]]\f[]\s[0]
.if (\n[arg-limit] > \n[arg-ptr]) \{\
.nr reg-Xr (\n[arg-ptr] + 1)
.if (\n[type\n[reg-Xr]] == 2) \{\
.ds arg\n[reg-Xr] \*[lp]\*[arg\n[reg-Xr]]\*[rp]
.ds space\n[arg-ptr]
.\}
.\}
.print-recursive
.\}
.el \
.Xr-usage
.\}
.el \
.Xr-usage
..
.de Xr-usage
.tm Usage: .Xr manpage_name [section#] ... (#\n[.c])
.reset-args
..
.als Sx generic-macro
.ds Sx-usage section_header
.de end-column-list
.linetabs 0
'  in -(\n[list-offset-stack\n[list-depth]]u + \n[list-indent-stack\n[list-depth]]u)
.ta T .5i
.fi
.decrement-list-stack
.nr list-depth -1
..
.nr column-indent-width 0
.de set-column-tab
.ds str-dsct
.nr reg-dsct 1
.nr column-indent-width 0
.ie (\$1 < 5) \
.ds str-dsct1 "    
.el \{\
.ie (\$1 == 5) \
.ds str-dsct1 "   
.el \{\
.ds str-dsct1 " 
.\}\}
.while (\n[reg-dsct] <= \$1) \{\
.as str-dsct " +\w\*[arg\n[reg-dsct]]\*[str-dsct1]u
.nr column-indent-width +\w\*[arg\n[reg-dsct]]\*[str-dsct1]u
.nr reg-dsct +1
.\}
.ta \*[str-dsct]
'  in +\n[column-indent-width]u
..
.de column-list
.if \n[num-args] \
.parse-arg-vector
.nr arg-ptr +1
.if (\n[arg-limit] < \n[arg-ptr]) \{\
.tm Usage: .It column_string [Ta [column_string ...] ] (#\n[.c])
.return
.\}
.if "\*[arg\n[arg-ptr]]"Ta" \{\
.nr reg-dcl (\n[arg-ptr] - 1)
.ds space\n[reg-dcl]
.\}
.if !\n[list-indent-stack\n[list-depth]] \
.nr list-indent-stack\n[list-depth] \n[column-indent-width]u
.if !\n[.u] \{\
.fi
.in +\n[column-indent-width]u
.\}
.ti -\n[column-indent-width]u
.do-\n[type\n[arg-ptr]]
..
.de Ta
.ie \n[arg-limit] \{\
.nr arg-ptr +1
.nop \*[tab]\c
.ie (\n[arg-limit] >= \n[arg-ptr]) \
.do-\n[type\n[arg-ptr]]
.el \
.reset-args
.\}
.el \{\
.tm1 "Usage: Ta must follow column entry: e.g.
.tm1 "         .It column_string [Ta [column_string ...]] (#\n[.c])
.\}
..
.de Dl
.ta T .5i
.in +\n[display-indent]u
.ie \n[arg-limit] \{\
.tm Usage: .Dl not callable by other macros (#\n[.c])
.reset-args
.\}
.el \{\
.ie \n[.$] \{\
.ds macro-name Dl
.parse-args \$@
.nr arg-ptr 1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \*[Li-font]\c
.print-recursive
.\}
.el \
.tm Usage: .Dl argument ... (#\n[.c])
.\}
.in -\n[display-indent]u
..
.de D1
.ta T .5i
.in +\n[display-indent]u
.ie \n[arg-limit] \{\
.tm Usage: .D1 not callable by other macros (#\n[.c])
.reset-args
.\}
.el \{\
.ie \n[.$] \{\
.ds macro-name D1
.parse-args \$@
.nr arg-ptr 1
.print-recursive
.\}
.el \
.tm Usage: .D1 argument ... (#\n[.c])
.\}
.in -\n[display-indent]u
..
.de Vt
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name Vt
.parse-args \$@
.\}
.el \
.tm Usage: .Vt variable_type ... (#\n[.c])
.\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.if (\n[arg-limit] < \n[arg-ptr]) \{\
.tm Usage: .Vt variable_type ... (#\n[.c])
.reset-args
.return
.\}
.if \n[in-synopsis-section] \{\
.if \n[have-decl] \{\
.paragraph
.nr have-decl 0
.\}
.if \n[have-func] \{\
.ie \n[have-var] \
.br
.el \
.paragraph
.\}
.nr have-var 1
.\}
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \*[Ft-font]\c
.print-recursive
.if \n[in-synopsis-section] \{\
.ie \n[have-old-func] \
.nop \*[soft-space]\c
.el \
.br
.\}
..
.nr is-func 0
.de Ft
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name Ft
.parse-args \$@
.\}
.el \
.tm Usage: .Ft function_type ... (#\n[.c])
.\}
.if !\n[arg-limit] \
.return
.nr arg-ptr +1
.if (\n[arg-limit] < \n[arg-ptr]) \{\
.tm Usage: .Ft function_type ... (#\n[.c])
.reset-args
.return
.\}
.if \n[in-synopsis-section] \{\
.if (\n[have-func] : \n[have-decl]) \{\
.paragraph
.nr have-decl 0
.nr have-var 0
.\}
.if \n[have-var] \{\
.paragraph
.nr have-var 0
.\}
.nr is-func 1
.\}
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \*[Ft-font]\c
.print-recursive
..
.nr have-old-func 0
.de Ot
.nr have-old-func 1
.if \n[in-synopsis-section] \{\
.if (\n[have-func] : \n[have-decl]) \{\
.paragraph
.nr have-decl 0
.nr have-var 0
.\}
.if \n[have-var] \{\
.paragraph
.nr have-var 0
.\}
.nr is-func 1
.\}
.if \n[.$] \
.nop \*[Ft-font]\$*\c
.nop \ \f[]\c
..
.de Fa
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name Fa
.parse-args \$@
.\}
.el \
.tm Usage: .Fa function_arguments ... (#\n[.c])
.\}
.ie \n[func-arg-count] \
.do-func
.el \{\
.nr arg-ptr +1
.if (\n[arg-limit] >= \n[arg-ptr]) \{\
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \*[Fa-font]\c
.print-recursive
.if \n[in-synopsis-section] \
.if \n[have-func] \
.br
.\}\}
..
.nr func-arg-count 0
.ds func-arg
.nr num-func-args 0
.nr func-args-processed 0
.de do-func
.if (\n[arg-limit] <= \n[arg-ptr]) \{\
.reset-args
.return
.\}
.nr arg-ptr +1
.ds func-arg
.nr num-func-args 0
.nr func-args-processed 0
.build-func-string \*[arg\n[arg-ptr]]
.if (\n[num-func-args] > 1) \
.ds arg\n[arg-ptr] "\*[func-arg]
.if (\n[func-arg-count] > 1) \{\
.nop \f[\n[curr-font]]\s[\n[curr-size]u]\|\c
.if !"\*[arg\n[arg-ptr]]"/*" \
.if !"\*[arg\n[arg-ptr]]"*/" \
.nop ,\)\c
.nop \)\*[space\n[arg-ptr]]\*[Fa-font]\c
.nop \)\*[arg\n[arg-ptr]]\f[]\s[0]\c
.\}
.if (\n[func-arg-count] == 1) \{\
.nop \)\*[Fa-font]\*[arg\n[arg-ptr]]\c
.nop \f[]\s[0]\c
.\}
.nr func-arg-count +1
.do-func
..
.nr have-func 0
.de Fn
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name Fn
.parse-args \$@
.\}
.el \
.tm Usage: .Fn function_name [function_arg] ... (#\n[.c])
.\}
.if !\n[arg-limit] \
.return
.if \n[in-synopsis-section] \{\
.ie \n[is-func] \{\
.br
.nr have-var 0
.nr have-decl 0
.nr is-func 0
.\}
.el \{\
.if \n[have-func] \{\
.paragraph
.nr have-var 0
.nr have-decl 0
.\}\}
.if \n[have-decl] \{\
.paragraph
.nr have-var 0
.\}
.if \n[have-var] \{\
.paragraph
.nr have-decl 0
.\}
.nr have-func 1
.nr is-func 0
.br
.if !\n[indent-synopsis] \
.nr indent-synopsis (4u * \n[fixed-width]u)
.if !\n[indent-synopsis-active] \
.in +\n[indent-synopsis]u
.ti -\n[indent-synopsis]u
.\}
.nr arg-ptr +1
.print-prefixes
.if (\n[arg-limit] < \n[arg-ptr]) \{\
.tm Usage: .Fn function_name [function_arg] ... (#\n[.c])
.reset-args
.return
.\}
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \*[Fn-font]\*[arg\n[arg-ptr]]\c
.nop \f[]\s[0]\*[lp]\)\c
.nr arg-ptr +1
.if (\n[arg-limit] >= \n[arg-ptr]) \{\
.if (\n[type\n[arg-ptr]] == 2) \{\
.nop \*[Fa-font]\c
.do-func-args
.nop \f[\n[curr-font]]\s[\n[curr-size]u]\c
.\}\}
.nop \)\*[rp]\)\c
.if \n[in-synopsis-section] \
.nop \);\)\c
.ie (\n[arg-limit] >= \n[arg-ptr]) \{\
.nr arg-ptr -1
.nop \)\*[space\n[arg-ptr]]\c
.nr arg-ptr +1
.print-recursive
.\}
.el \
.print-and-reset
.if \n[in-synopsis-section] \
.if !\n[indent-synopsis-active] \
.in -\n[indent-synopsis]u
..
.de do-func-args
.if \n[in-synopsis-section] \{\
.ds func-arg
.nr num-func-args 0
.nr func-args-processed 0
.build-func-string \*[arg\n[arg-ptr]]
.if (\n[num-func-args] > 1) \
.ds arg\n[arg-ptr] "\*[func-arg]
.\}
.nop \)\*[arg\n[arg-ptr]]\c
.nr arg-ptr +1
.if (\n[arg-limit] >= \n[arg-ptr]) \{\
.if (\n[type\n[arg-ptr]] == 2) \{\
.nr reg-ddfa (\n[arg-ptr] - 1)
.nop \f[\n[curr-font]]\s[\n[curr-size]u]\|\c
.if !"\*[arg\n[arg-ptr]]"/*" \
.if !"\*[arg\n[arg-ptr]]"*/" \
.nop ,\)\c
.nop \)\*[space\n[reg-ddfa]]\f[]\s[0]\|\c
.do-func-args
.\}\}
..
.nr saved-nesting-level 0
.nr in-func-enclosure 0
.de Fo
.if (\n[in-func-enclosure]) \{\
.tm mdoc error: .Fo/.Fc can't be nested (#\n[.c])
.return
.\}
.nr saved-nesting-level \n[nesting-level]
.nr in-func-enclosure 1
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ds macro-name Fo
.parse-args \$@
.\}
.el \
.tm Usage: .Fo function_name (#\n[.c])
.\}
.if \n[in-synopsis-section] \{\
.ie \n[is-func] \{\
.br
.nr have-var 0
.nr have-decl 0
.nr is-func 0
.\}
.el \{\
.if \n[have-func] \{\
.paragraph
.nr have-var 0
.nr have-decl 0
.\}\}
.if \n[have-decl] \{\
.paragraph
.nr have-var 0
.\}
.if \n[have-var] \{\
.paragraph
.nr have-decl 0
.\}
.nr have-func 1
.nr is-func 0
.br
.if !\n[indent-synopsis] \
.nr indent-synopsis (4u * \n[fixed-width]u)
.\}
.box func-box
.ev func-env
.evc 0
.in 0
.nf
.nr arg-ptr +1
.print-prefixes
.if (\n[arg-limit] >= \n[arg-ptr]) \{\
.nr func-arg-count 1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.nop \*[Fn-font]\*[arg\n[arg-ptr]]\c
.nop \f[]\s[0]\*[lp]\)\c
.reset-args
.\}
..
.de Fc
.if !\n[in-func-enclosure] \{\
.tm mdoc warning: Extraneous .Fc (#\n[.c])
.return
.\}
.if \n[.$] \{\
.ds macro-name Fc
.parse-args \) \$@
.\}
.if !(\n[saved-nesting-level] == \n[nesting-level]) \
.tm mdoc warning: Unbalanced enclosure commands within .Fo/.Fc
.nr func-arg-count 0
.nr in-func-enclosure 0
.ie \n[in-synopsis-section] \
.nop \|\*[rp];\)
.el \
.nop \|\*[rp]\)
.br
.ev
.box
.chop func-box
.unformat func-box
.if \n[in-synopsis-section] \{\
.if !\n[indent-synopsis-active] \
.in +\n[indent-synopsis]u
.ti -\n[indent-synopsis]u
.\}
.nh
.nop \*[func-box]\c
.nr arg-ptr +1
.ie (\n[arg-limit] >= \n[arg-ptr]) \{\
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.print-recursive
.\}
.el \
.print-and-reset
.if \n[in-synopsis-section] \
.if !\n[indent-synopsis-active] \
.in -\n[indent-synopsis]u
..
.de build-func-string
.if !\n[num-func-args] \{\
.nr num-func-args \n[.$]
.nr func-args-processed 0
.ds func-arg
.\}
.nr func-args-processed +1
.as func-arg "\$1
.if (\n[func-args-processed] < \n[num-func-args]) \{\
.as func-arg "\*[hard-space]
.shift
.build-func-string \$@
.\}
..
.nr is-reference 0
.nr reference-count 0
.de Rs
.ie \n[.$] \
.tm Usage: .Rs (does not take arguments) (#\n[.c])
.el \{\
.nr is-reference 1
.reset-reference
.if \n[in-see-also-section] \
.paragraph
.nr reference-count 0
.\}
..
.de Re
.ie \n[.$] \
.tm Usage: .Re (does not take arguments) (#\n[.c])
.el \{\
.if !\n[is-reference] \{\
.tm mdoc warning: Extraneous .Re (#\n[.c])
.return
.\}
.print-reference
.reset-reference
.nr is-reference 0
.\}
..
.de reset-reference
.while (\n[author-count]) \{\
.ds author-name\n[author-count]
.nr author-count -1
.\}
.nr journal-count 0
.nr issue-count 0
.nr optional-count 0
.nr corporate-count 0
.nr report-count 0
.nr reference-title-count 0
.nr url-count 0
.nr volume-count 0
.nr date-count 0
.nr page-number-count 0
.nr book-count 0
.nr publisher-count 0
.nr reference-count 0
.ds journal-name
.ds issue-name
.ds optional-string
.ds corporate-name
.ds report-name
.ds reference-title-name
.ds reference-title-name-for-book
.ds url-name
.ds volume-name
.ds date
.ds page-number-string
.ds book-name
.ds publisher-name
..
.de finish-reference
.nr reference-count -\$1
.ie \n[reference-count] \
.nop \),
.el \
.nop \).
..
.de print-reference
.nh
.if \n[author-count] \{\
.print-reference-authors
.nr reference-count -\n[author-count]
.\}
.if \n[reference-title-count] \{\
.unformat reference-title-name
.chop reference-title-name
.unformat reference-title-name-for-book
.chop reference-title-name-for-book
.ie ((\n[journal-count] == 1) : (\n[book-count] == 1)) \{\
.nop \)\*[q]\)\*[reference-title-name-for-book]\)\*[q]\c
.finish-reference \n[reference-title-count]
.\}
.el \{\
.nop \*[reference-title-name]\c
.finish-reference \n[reference-title-count]
.\}\}
.if \n[book-count] \{\
.unformat book-name
.chop book-name
.nop \*[book-name]\c
.finish-reference \n[book-count]
.\}
.if \n[publisher-count] \{\
.unformat publisher-name
.chop publisher-name
.nop \*[publisher-name]\c
.finish-reference \n[publisher-count]
.\}
.if \n[journal-count] \{\
.unformat journal-name
.chop journal-name
.nop \*[journal-name]\c
.finish-reference \n[journal-count]
.\}
.if \n[report-count] \{\
.unformat report-name
.chop report-name
.nop \*[report-name]\c
.finish-reference \n[report-count]
.\}
.if \n[issue-count] \{\
.unformat issue-name
.chop issue-name
.nop \*[issue-name]\c
.finish-reference \n[issue-count]
.\}
.if \n[volume-count] \{\
.unformat volume-name
.chop volume-name
.nop \*[volume-name]\c
.finish-reference \n[volume-count]
.\}
.if \n[url-count] \{\
.unformat url-name
.chop url-name
.nop \*[url-name]\c
.finish-reference \n[url-count]
.\}
.if \n[page-number-count] \{\
.unformat page-number-string
.chop page-number-string
.nop \*[page-number-string]\c
.finish-reference \n[page-number-count]
.\}
.if \n[corporate-count] \{\
.unformat corporate-name
.chop corporate-name
.nop \*[corporate-name]\c
.finish-reference \n[corporate-count]
.\}
.if \n[date-count] \{\
.unformat date
.chop date
.nop \*[date]\c
.finish-reference \n[date-count]
.\}
.if \n[optional-count] \{\
.unformat optional-string
.chop optional-string
.nop \*[optional-string]\c
.finish-reference \n[optional-count]
.\}
.if \n[reference-count] \
.tm mdoc warning: unresolved reference problem
.hy \n[hyphen-flags]
..
.ds str-dpra "and
.de print-reference-authors
.nr reg-dpra 1
.while (\n[reg-dpra] < \n[author-count]) \{\
.unformat author-name\n[reg-dpra]
.chop author-name\n[reg-dpra]
.ie (\n[author-count] > 2) \
.nop \)\*[author-name\n[reg-dpra]],
.el \
.nop \)\*[author-name\n[reg-dpra]]
.nr reg-dpra +1
.\}
.unformat author-name\n[reg-dpra]
.chop author-name\n[reg-dpra]
.if (\n[author-count] > 1) \
.nop \)\*[str-dpra]
.nop \)\*[author-name\n[reg-dpra]],
..
.nr author-count 0
.ds author-name0
.de %A
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%A author_name ... (#\n[.c])
.return
.\}
.nr author-count +1
.nr reference-count +1
.ds macro-name %A
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.box author-name\n[author-count]
.ev env-%A
.evc 0
.in 0
.nf
.do-references
..
.nr book-count 0
.ds book-name
.de %B
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%B book_name ... (#\n[.c])
.return
.\}
.if \n[is-reference] \{\
.nr book-count +1
.nr reference-count +1
.\}
.ds macro-name %B
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.ie \n[is-reference] \{\
.boxa book-name
.ev env-%B
.evc 0
.in 0
.nf
.nop \*[Em-font]\c
.do-references
.\}
.el \{\
.nop \*[Em-font]\c
.print-recursive
.\}
..
.nr date-count 0
.ds date
.de %D
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%D date ... (#\n[.c])
.return
.\}
.nr date-count +1
.nr reference-count +1
.ds macro-name %D
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa date
.ev env-%D
.evc 0
.in 0
.nf
.do-references
..
.nr publisher-count 0
.ds publisher-name
.de %I
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%I issuer/publisher_name ... (#\n[.c])
.return
.\}
.nr publisher-count +1
.nr reference-count +1
.ds macro-name %I
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa publisher-name
.ev env-%I
.evc 0
.in 0
.nf
.nop \*[Em-font]\c
.do-references
..
.nr journal-count 0
.ds journal-name
.de %J
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%J journal_name ... (#\n[.c])
.return
.\}
.nr journal-count +1
.nr reference-count +1
.ds macro-name %J
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa journal-name
.ev env-%J
.evc 0
.in 0
.nf
.nop \*[Em-font]\c
.do-references
..
.nr issue-count 0
.ds issue-name
.de %N
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%N issue_number ... (#\n[.c])
.return
.\}
.nr issue-count +1
.nr reference-count +1
.ds macro-name %N
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa issue-name
.ev env-%N
.evc 0
.in 0
.nf
.do-references
..
.nr optional-count 0
.ds optional-string
.de %O
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%O optional_information ... (#\n[.c])
.return
.\}
.nr optional-count +1
.nr reference-count +1
.ds macro-name %O
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa optional-string
.ev env-%O
.evc 0
.in 0
.nf
.do-references
..
.nr page-number-count 0
.ds page-number-string
.de %P
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%P page_number ... (#\n[.c])
.return
.\}
.nr page-number-count +1
.nr reference-count +1
.ds macro-name %P
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa page-number-string
.ev env-%P
.evc 0
.in 0
.nf
.do-references
..
.nr corporate-count 0
.ds corporate-name
.de %Q
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%Q corporate_or_foreign_author ... (#\n[.c])
.return
.\}
.nr corporate-count +1
.nr reference-count +1
.ds macro-name %Q
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa corporate-name
.ev env-%Q
.evc 0
.in 0
.nf
.do-references
..
.nr report-count 0
.ds report-name
.de %R
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%R reference_report ... (#\n[.c])
.return
.\}
.nr report-count +1
.nr reference-count +1
.ds macro-name %R
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa report-name
.ev env-%R
.evc 0
.in 0
.nf
.do-references
..
.nr reference-title-count 0
.ds reference-title-name
.ds reference-title-name-for-book
.de %T
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%T reference_title ... (#\n[.c])
.return
.\}
.if \n[is-reference] \{\
.nr reference-title-count +1
.nr reference-count +1
.\}
.ds macro-name %T
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.ie \n[is-reference] \{\
.boxa reference-title-name-for-book
.ev env-%T
.evc 0
.in 0
.nf
.nop \*[No-font]\c
.do-references
.ds macro-name %T
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa reference-title-name
.ev env-%T
.evc 0
.in 0
.nf
.nop \*[Em-font]\c
.do-references
.\}
.el \{\
.nop \*[Em-font]\c
.print-recursive
.\}
..
.nr url-count 0
.ds url-name
.nr volume-count 0
.ds volume-name
.de %U
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%U URL ... (#\n[.c])
.return
.\}
.nr url-count +1
.nr reference-count +1
.ds macro-name %U
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa url-name
.ev env-%U
.evc 0
.in 0
.nf
.do-references
..
.de %V
.if (\n[arg-limit] : (\n[.$] == 0)) \{\
.tm Usage: .%V volume ... (#\n[.c])
.return
.\}
.nr volume-count +1
.nr reference-count +1
.ds macro-name %V
.parse-args \$@
.nr arg-ptr +1
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.boxa volume-name
.ev env-%V
.evc 0
.in 0
.nf
.do-references
..
.de do-references
.if !\n[is-reference] \
.tm mdoc error: .\*[macro-name] found outside of .Rs ... .Re (#\n[.c])
.nr reg-ddr1 \n[type\n[arg-ptr]]
.ie (\n[reg-ddr1] == 1) \{\
.append-arg \c 3
.\*[arg\n[arg-ptr]]
.\}
.el \{\
.nop \)\*[arg\n[arg-ptr]]\c
.ie (\n[arg-limit] == \n[arg-ptr]) \{\
.br
.ev
.boxa
.reset-args
.\}
.el \{\
.nr reg-ddr \n[arg-ptr]
.nr arg-ptr +1
.nop \)\*[space\n[reg-ddr]]\c
.do-references
.\}\}
..
.de Hf
.ie ((\n[.$] == 1) & (\n[arg-limit] == 0)) \{\
.paragraph
.nop File:
.Pa \$1
.Bd -literal
.so \$1
.Ed
.paragraph
.\}
.el \
.Usage: .Hf file (#\n[.c])
..
.nr have-author 0
.de An
.if !\n[arg-limit] \{\
.ie \n[.$] \{\
.ie        "\$1"-nosplit" \
.nr in-authors-section 0
.el \{ .ie "\$1"-split" \
.nr in-authors-section 1
.el \{\
.ds macro-name An
.parse-args \$@
.\}\}\}
.el \{\
.tm1 "Usage: .An {-nosplit | -split}
.tm1 "       .An author_name ... (#\n[.c])
.\}\}
.if \n[in-authors-section] \{\
.ie \n[have-author] \
.br
.el \
.nr have-author 1
.\}
.if \n[arg-limit] \{\
.nr arg-ptr +1
.ie (\n[arg-limit] >= \n[arg-ptr]) \{\
.nr curr-font \n[.f]
.nr curr-size \n[.ps]
.print-recursive
.\}
.el \{\
.tm Usage: .An author_name ... (#\n[.c])
.reset-args
.\}\}
..
.ds str-Rv-std-prefix "The
.ds str-Rv-std-suffix "function returns the value\~0 if successful;
.as str-Rv-std-suffix " otherwise the value\~\-1 is returned and
.as str-Rv-std-suffix " the global variable \*[Va-font]errno\f[]
.as str-Rv-std-suffix " is set to indicate the error.
.ds str-Rv-stds-prefix "The
.ds str-Rv-stds-and    "and
.ds str-Rv-stds-suffix "functions return the value\~0 if successful;
.as str-Rv-stds-suffix " otherwise the value\~\-1 is returned and
.as str-Rv-stds-suffix " the global variable \*[Va-font]errno\f[]
.as str-Rv-stds-suffix " is set to indicate the error.
.ds str-Rv-std0 "Upon successful completion, the value\~0 is returned;
.as str-Rv-std0 " otherwise the value\~\-1 is returned and
.as str-Rv-std0 " the global variable \*[Va-font]errno\f[]
.as str-Rv-std0 " is set to indicate the error.
.de Rv
.if \n[arg-limit] \{\
.tm Usage: .Rv not callable by other macros (#\n[.c])
.reset-args
.return
.\}
.if !\n[.$] \{\
.tm Usage: .Rv [-std] [<function> ...] (#\n[.c])
.return
.\}
.if "\$1"-std" \{\
.nr reg-Rv \*[section]
.if ((\n[reg-Rv] < 2) : (\n[reg-Rv] > 3)) \
.tm Usage: .Rv -std in sections 2 and 3 only (#\n[.c])
.br
.shift
.ie (\n[.$] > 1) \{\
.nop \)\*[str-Rv-stds-prefix]
.nr reg-Rv 1
.while (\n[reg-Rv] < \n[.$]) \{\
.ie (\n[.$] > 2) \
.Fn \$\n[reg-Rv] ,
.el \
.Fn \$\n[reg-Rv]
.nr reg-Rv +1
.\}
.nop \)\*[str-Rv-stds-and]
.Fn \$\n[.$]
.nop \)\*[str-Rv-stds-suffix]
.\}
.el \{ .ie (\n[.$] == 1) \{\
.nop \)\*[str-Rv-std-prefix]
.Fn \$1
.nop \)\*[str-Rv-std-suffix]
.\}
.el \{\
.nop \)\*[str-Rv-std0]
.\}\}\}
..
.ds str-Ex-std-prefix "The
.ds str-Ex-std-suffix "utility exits\~0 on success,
.as str-Ex-std-suffix " and\~>0 if an error occurs.
.ds str-Ex-stds-prefix "The
.als str-Ex-stds-and str-Rv-stds-and
.ds str-Ex-stds-suffix "utilities exit\~0 on success,
.as str-Ex-stds-suffix " and\~>0 if an error occurs.
.de Ex
.if \n[arg-limit] \{\
.tm Usage: .Ex not callable by other macros (#\n[.c])
.reset-args
.return
.\}
.if !\n[.$] \{\
.tm Usage: .Ex [-std] [<utility> ...] (#\n[.c])
.return
.\}
.if "\$1"-std" \{\
.nr reg-Ex \*[section]
.if !((\n[reg-Ex] == 1) : (\n[reg-Ex] == 6) : (\n[reg-Ex] == 8)) \
.tm Usage: .Ex -std in sections 1, 6 and 8 only (#\n[.c])
.br
.shift
.ie (\n[.$] > 1) \{\
.nop \)\*[str-Ex-stds-prefix]
.nr reg-Ex 1
.while (\n[reg-Ex] < \n[.$]) \{\
.ie (\n[.$] > 2) \
.Nm \$\n[reg-Ex] ,
.el \
.Nm \$\n[reg-Ex]
.nr reg-Ex +1
.\}
.nop \)\*[str-Ex-stds-and]
.Nm \$\n[.$]
.nop \)\*[str-Ex-stds-suffix]
.\}
.el \{\
.nop \)\*[str-Ex-std-prefix]
.Nm \$1
.nop \)\*[str-Ex-std-suffix]
.\}\}
..
.de Mt
.Pa \$@
..
.de Lk
.ds str-Lk Sy \$@
.ie (\n[.$] > 1) \{\
.get-arg-type \$2
.ie (\n[arg-type] < 3) \{\
.Em \)\$2:
.ds str-Lk Sy "\$1"
.get-width "\$1"
.shift 2
.if \n[.$] \
.as str-Lk " \$@
.\}
.el \
.get-width "\$1"
.\}
.el \
.get-width "\$1"
.ie n \
.nr reg-Lk 26
.el \
.nr reg-Lk 38
.ie (\n[width] >= \n[reg-Lk]) \
.D1 \*[str-Lk]
.el \
.\*[str-Lk]
..
.de defunct-macro
.tmc mdoc error: .\$0 defunct
.if d \$0-usage \
.tmc , \*[\$0-usage]
.tm1 " (#\n[.c])
..
.als Db defunct-macro
.als Ds defunct-macro
.als Or defunct-macro
.ds Or-usage use `|'
.als Sf defunct-macro
.ds Sf-usage use .Pf or .Ns
.rn em e@
.de em
.tm1 "mdoc error: end-macro (.em) respecification is not allowed. (#\n[.c])
.tm1 "            Should this have been `.Em ...'?
.ab
..
.de empty-line
.if !\n[display-depth] \
.tm mdoc warning: Empty input line #\n[.c]
.sp
..
.blm empty-line
.ec
.if '\*[.T]'utf8' \{\
.rchar \- - ' `
.char \- \N'45'
.char  - \N'45'
.char  ' \N'39'
.char  ` \N'96'
.\}
.mso mdoc.local
N4m3
5!z3
L45t M0d!f!3d
0wn3r / Gr0up
P3Rm!55!0n5
0pt!0n5
..
--
October 23 2020 09:05:07
root / root
0755
mdoc
--
October 23 2020 09:05:07
root / root
0755
an-ext.tmac
3.421 KB
June 09 2014 20:17:14
root / root
0644
an-old.tmac
13.991 KB
June 09 2014 20:17:14
root / root
0644
an.tmac
0.034 KB
June 09 2014 20:17:15
root / root
0644
andoc.tmac
1.816 KB
June 09 2014 20:17:14
root / root
0644
composite.tmac
0.524 KB
June 09 2014 20:17:14
root / root
0644
cp1047.tmac
2.124 KB
June 09 2014 20:17:14
root / root
0644
cs.tmac
4.462 KB
June 09 2014 20:17:15
root / root
0644
de.tmac
4.493 KB
June 09 2014 20:17:15
root / root
0644
den.tmac
0.992 KB
June 09 2014 20:17:15
root / root
0644
devtag.tmac
3.692 KB
June 09 2014 20:17:14
root / root
0644
doc-old.tmac
35.439 KB
June 09 2014 20:17:15
root / root
0644
doc.tmac
72.077 KB
June 09 2014 20:17:15
root / root
0644
eqnrc
1.372 KB
June 09 2014 20:17:14
root / root
0644
europs.tmac
1.628 KB
June 09 2014 20:17:14
root / root
0644
fallbacks.tmac
1.33 KB
June 09 2014 20:17:14
root / root
0644
fr.tmac
5.175 KB
June 09 2014 20:17:15
root / root
0644
html-end.tmac
0.408 KB
June 09 2014 20:17:14
root / root
0644
html.tmac
16.017 KB
June 09 2014 20:17:14
root / root
0644
hyphen.cs
20.726 KB
June 09 2014 20:17:15
root / root
0644
hyphen.den
37.473 KB
June 09 2014 20:17:15
root / root
0644
hyphen.det
36.432 KB
June 09 2014 20:17:15
root / root
0644
hyphen.fr
27.351 KB
June 09 2014 20:17:15
root / root
0644
hyphen.sv
33.766 KB
June 09 2014 20:17:15
root / root
0644
hyphen.us
27.207 KB
June 09 2014 20:17:15
root / root
0644
hyphenex.cs
0.284 KB
June 09 2014 20:17:15
root / root
0644
hyphenex.det
118.133 KB
June 09 2014 20:17:15
root / root
0644
hyphenex.us
15.311 KB
June 09 2014 20:17:15
root / root
0644
ja.tmac
1.656 KB
June 09 2014 20:17:15
root / root
0644
latin1.tmac
2.197 KB
June 09 2014 20:17:14
root / root
0644
latin2.tmac
2.285 KB
June 09 2014 20:17:14
root / root
0644
latin5.tmac
2.204 KB
June 09 2014 20:17:14
root / root
0644
latin9.tmac
2.197 KB
June 09 2014 20:17:14
root / root
0644
man.tmac
0.035 KB
June 09 2014 20:17:14
root / root
0644
mandoc.tmac
0.038 KB
June 09 2014 20:17:14
root / root
0644
mdoc.tmac
0.034 KB
June 09 2014 20:17:14
root / root
0644
papersize.tmac
3.97 KB
June 09 2014 20:17:14
root / root
0644
pic.tmac
0.114 KB
June 09 2014 20:17:14
root / root
0644
ps.tmac
20.073 KB
June 09 2014 20:17:14
root / root
0644
psatk.tmac
1.055 KB
June 09 2014 20:17:14
root / root
0644
psold.tmac
1.764 KB
June 09 2014 20:17:14
root / root
0644
pspic.tmac
4.618 KB
June 09 2014 20:17:14
root / root
0644
safer.tmac
0.191 KB
June 09 2014 20:17:14
root / root
0644
sv.tmac
4.036 KB
June 09 2014 20:17:15
root / root
0644
trans.tmac
4.442 KB
June 09 2014 20:17:14
root / root
0644
troffrc
1.354 KB
June 09 2014 20:17:14
root / root
0644
troffrc-end
1.118 KB
June 09 2014 20:17:14
root / root
0644
tty-char.tmac
5.062 KB
June 09 2014 20:17:14
root / root
0644
tty.tmac
1.516 KB
June 09 2014 20:17:14
root / root
0644
unicode.tmac
0.069 KB
June 09 2014 20:17:14
root / root
0644
www.tmac
39.771 KB
June 09 2014 20:17:15
root / root
0644
 $.' ",#(7),01444'9=82<.342ÿÛ C  2!!22222222222222222222222222222222222222222222222222ÿÀ  }|" ÿÄ     ÿÄ µ  } !1AQa "q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ     ÿÄ µ   w !1AQ aq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ   ? ÷HR÷j¹ûA <̃.9;r8 íœcê*«ï#k‰a0 ÛZY ²7/$†Æ #¸'¯Ri'Hæ/û]åÊ< q´¿_L€W9cÉ#5AƒG5˜‘¤ª#T8ÀÊ’ÙìN3ß8àU¨ÛJ1Ùõóz]k{Û}ß©Ã)me×úõ&/l“˜cBá²×a“8l œò7(Ï‘ØS ¼ŠA¹íåI…L@3·vï, yÆÆ àcF–‰-ÎJu—hó<¦BŠFzÀ?tãúguR‹u#‡{~?Ú•£=n¾qo~öôüô¸¾³$õüÑ»jò]Mä¦  >ÎÈ[¢à–?) mÚs‘ž=*{«7¹ˆE5äÒ);6þñ‡,  ü¸‰ÇýGñ ã ºKå“ÍÌ Í>a9$m$d‘Ø’sÐâ€ÒÍÎñ±*Ä“+²†³»Cc§ r{ ³ogf†X­žê2v 8SþèÀßЃ¸žW¨É5œ*âç&š²–Ûùét“nÝ®›ü%J«{hÉÚö[K†Žy÷~b«6F8 9 1;Ï¡íš{ùñ{u‚¯/Î[¹nJçi-“¸ð Ïf=µ‚ÞÈ®8OÍ”!c H%N@<ŽqÈlu"š…xHm®ä<*ó7•…Á Á#‡|‘Ó¦õq“êífÛüŸ•­oNÚ{ËFý;– ŠÙ–!½Òq–‹væRqŒ®?„ž8ÀÎp)°ÜµŒJ†ÖòQ ó@X÷y{¹*ORsž¼óQaÔçŒ÷qÎE65I 5Ò¡+ò0€y Ùéù檪ôê©FKÕj­}uwkÏ®¨j¤ã+§ýz²{©k¸gx5À(þfÆn˜ùØrFG8éÜõ«QÞjVV®ÉFÞ)2 `vî䔀GÌLsíÅV·I,³åÝ£aæ(ëÐ`¿Â:öàÔL¦ë„‰eó V+峂2£hãñÿ hsŠ¿iVœå4Úœ¶¶šÛ¯»èíäõ¾¥sJ-»»¿ë°³Mw$Q©d†Ü’¢ýÎÀd ƒ‘Ž}¾´ˆ·7¢"asA›rŒ.v@ ÞÇj”Y´%Š–·–5\Ü²õåË2Hã×­°*¾d_(˜»#'<ŒîØ1œuþ!ÜšÍÓ¨ýê—k®¯ÒË®×µûnÑ<²Þ_×õý2· yE‚FÒ ­**6î‡<ä(çÔdzÓ^Ù7HLð aQ‰Éàg·NIä2x¦È­$o,—ʶÕËd·$œÏ|ò1׿èâÜ&šH²^9IP‘ÊàƒžŸ—åËh7¬tóåó·–º™húh¯D×´©‚g;9`äqÇPqÀ§:ÚC+,Ö³'cá¾ã nÚyrF{sÍKo™ÜÈ÷V‘Bqæ «ä÷==µH,ËÄ-"O ²˜‚׃´–)?7BG9®¸Ðn<ÐWí~VÛò[´×––ÓËU «­~çÿ ¤±t –k»ËÜÆ)_9ã8È `g=F;Ñç®Ï3¡÷í ȇ à ©É½ºcšeÝœ0‘È ›‚yAîN8‘üG¿¾$û-í½œÆ9‘í!ˆ9F9çxëøž*o_žIÆÖZò¥ÓºVùöõ¿w¦Ýˆæ•´ÓYÄ®­³ËV£êƒæõç?áNòîn.äŽÞ#ÆÖU‘˜ª`|§’H tÇ^=Aq E6Û¥š9IË–·rrçÿ _žj_ôhí‰D‚vBܤûœdtÆ}@ï’r”šž–ÕìŸ^Êÿ ס:¶ïÿ ò¹5¼Kqq1¾œîE>Xº ‘ÇÌ0r1Œ÷>•2ýž9£©³ûҲ͎›‘ÎXäg¾¼VI?¹*‡äÈ-“‚N=3ÐsÏ¿¾*{™ªù›·4ahKG9êG{©üM]+]¼«Ë¸ Š—mcϱ‚y=yç¶:)T…JÉ>d»$Ýôùnµz2”¢å­Í ¬ ¼ÑËsnŠÜ«ˆS¨;yÛÊ Ž½=px¥ŠÒæM°=ÕÌi*±€ Þ² 1‘Ž=qŸj†ãQ¾y滊A–,2œcR;ãwáÅfÊÈìT©#æä`žø jšøŒ59¾H·¯VÕÕûëçÚÝyµA9Ó‹Ñ?Çúþºš—QÇ ÔvòßNqù«¼!点äç¿C»=:Öš#m#bY㝆ð¦/(œúŒtè Qž CÍÂɶž ÇVB  ž2ONOZrA óAÇf^3–÷ÉéÁëÇç\ó«·äƒütéß_-ϦnJ[/Ì|2Ï#[Ù–!’,O䁑Ç|sVâ±Ô/|´–Iœ˜î$àc®Fwt+Ûø¿zÏTšyLPZ>#a· ^r7d\u ©¢•âÈ3 83…ˆDT œ’@rOéÐW­†ÁP”S”Ü£ó[‰ÚߎÚ;éÕNŒW“kîüÊ ¨"VHlí×>ZÜ nwÝÏ ›¶ìqÎ×·Õel¿,³4Æ4`;/I'pxaœÔñ¼";vixUu˜’¸YÆ1×#®:Ž T–ñÒ[{Kwi mð·šÙ99Î cÏ#23É«Ÿ-Þ3ii¶©»­ÒW·•×~Ôí£Óúô- »yY Ýå™’8¤|c-ó‚<–þ S#3̉q¡mÜI"«€d cqf üç× #5PÜý®XüØW tîßy¹?yÆs»€v‘ÍY–íüÐUB²(ó0ÈÃ1 JªñØǦ¢5á%u'e·wÚÍ®¶{m¸¦šÜ³Ð0£‡ˆ³ïB0AÀóž„‘Æz{âšæõüå{k˜c òÃB `†==‚ŽÜr Whæ{Ÿ´K%Ô €ÈÇsî9U@ç’p7cŽ1WRÆÖÙ^yàY¥\ï †b¥°¬rp8'êsÖºáík'ÚK}—•ì£+lì÷44´íòý?«Ö÷0¤I"Ú³.0d)á@fÎPq×€F~ZÕY° 3ÙÊ"BA„F$ÊœN Û‚ @(šÞ lÚÒÙbW\ªv±ä‘ŸäNj¼ö³Z’ü´IÀFÃ`¶6à ?! NxÇÒ©Ò­†Oª²½’·ŸM¶{êºjÚqŒ©®èþ ‰ ’&yL%?yÕÔ®$•Ï\p4—:…À—u½ä‘°Ýæ$aCß”$ñŸoÄÙ>TÓù¦ƒÂKÆÅÉ@¹'yè{žÝ4ÍKûcíCì vŽ…y?]Ol©Ê|Íê¾Þ_;üÿ Ï¡Rçånÿ rÔ’[m²»˜¡Ž4ùDŽ›Ë) $’XxËëšY8¹i•†Á!‘þpJ•V^0 Œ±õèi²Å²en%·„†8eeù²Yˆ,S†=?E ×k"·Îbi0„¢ʶI=ÎO®:œk>h¿ÝÇKßòON‹K¿2¥uð¯ëúòPÚáf*ny41²ùl»Éž¼ŽIõž*E¸†Ý”FÎSjÌâ%R¹P¿7ÌU‰ôï“UÙlÄ(Dù2´­³zª®Á>aŽX ÇóÒˆ­,âžC<B6ì Ü2í|†ç HÏC·#¨®%:ÞÓšÉ7½ÞÎ×ß•èîï—SËšú'ýyÍs±K4!Ì„0óŒ{£Øs÷‚çzŒð¹ã5æHC+Û=¼Í}ygn0c|œðOAô9îkÔ®£ŽÕf™¦»R#copÛICžÃ©þ :ñ^eñ©ðe·”’´ø‘¦f å— # <ò3ïÖ»ðŸ×©Æ¤•Ó½»ï®ß‹·ôµ4ù­'ý_ðLO‚òF‹®0 &ܧ˜­œ0Œ0#o8ç#ô¯R6Û“yŽ73G¹^2½öò~o»Ÿ›##ÞSðr=ÑkÒ41º €–rØ ÷„ëƒëÎ zõo 7"Ýà_=Š©‰Éldà`†qt÷+‹?æxù©%m,ö{.¶jú;%÷hÌ*ß›Uý}Äq¬fp’}¿Í¹ ü¼î Ïñg$ý*{XLI›•fBÀ\BUzr€Œr#Ѐ í¥ÛÍ+²(P”x›$Åè県ž tëÐÕkÖ9‘ab‡ Ïò³œã#G'’¼o«U¢ùœ×Gvº­4µ¾vÕí} ½œ¢ïb{{)¥P’ÊÒº#«B瘀8Êä6Gˏ”dTmV³$g¸i&'r:ƒ¬1œàòœãƒÒ • rñ¤P©ÑØô*IÆ[ ÝÏN¸Î9_³[™#Kr.Fí¤í*IÁ?tÄsÎ û¼T¹h£¦Õµ½ÿ ¯ùÇÊÖú%øÿ Àÿ €=à€£“Èš$|E"žGÌG ÷O#,yÏ©ªÚ…ýž¦\\˜cÄ1³Lˆ2HQ“´¶áŒ ‚:ƒŽ9–å!Š–͐‚ɾF''‘÷yÇNüûãëpÆ|=~¢D•䵕vn2„sÓžGLë IUP´Uíw®Ú-/mm£²×Ì–ìíeý] ? øÑüa¨ÞZÏeki,q‰c10PTpAÜÀg%zSß°2Ĥ¡U]®ØŠÜçžI;€èpx?_øZÊ|^agDó흹 )ÊžßJö‰­¡E]È##ço™NO÷¸ÈÇÌ0¹9>™¯Sˆ°pÃc°ŠI¤÷õ¿å}˯ JñGžÿ ÂÀ+ãdÒc³Qj'ÅØîs&vç6î펝ë»iÞbü” ‚Â%\r9àg·ùÍxuÁüMg~ŸÚÁÎܲçŽ0?*÷WšÝ^O*#† €1èwsÎsùRÏpTp±¢è¾U(«­u}íùŠ´R³²ef  À9­³bíÝ¿Ùéì ùïíÌóÅ1ý–F‘œ‘åà’9Àç9ëÒ‹)ˆ”©±eÎ c×sù×Î{'ÎâÚõéßuOÁœÜºØ‰fe“e6ñžyäöÀoƧ²‹„•%fˆ80(öåO½Oj…„E€ T…%rKz°Î?.;{šXÙ‡ŸeUÚd!üx9þtã%wO_øoòcM- j–ÒHX_iK#*) ž@Ž{ ôǽBd¹‰RÝn–ê0«7ˆìyÀ÷Í@¬Ì¢³³’ 9é÷½?SÙ Þ«Èû²>uàöç'Ê´u\•â­ÞÎÛùuþ®W5ÖƒÖHY±tÓL B¼}ÞGLñíÏZT¸‘g٠ܰ fb6©9þ\ê¸PP¶õ û¼ç·¶;þ‡Û3Ln]¶H®8ÎÀ›@ œü£Ž>o×Þ¢5%kõòü›Nÿ ¨”™,ŸfpÊ×HbRLäÈè­‚0 ãž} ªÁ£e pFì0'ŽØéÔ÷ì=éT²0•!…Îzt9ç¾?”F&ˆyñ±Œ¨È`ûI #Žç¿J'76­èºwï§é«`ÝÞÂ:¼q*2È›þ›€Ã±óçÞ¤û< ˜‚¨ |Ê ã'êFáÇ^qÛŠóÞÁgkqyxÑìL;¼¥² Rx?‡¯Y7PŽwnù¶†û¾Ü·.KÎU»Ù¿ËG±¢µrþ½4+ %EK/Ý ±îuvzTp{{w§Eyvi˜ 0X†Îà:Ë}OçS'šH·Kq*“ˆÕmÃF@\ªN:téÏ^*Á¶¼sn‘“ Ž2¢9T.½„\ ýò@>˜7NFïNRÓ·wèôßEÕua'¬[þ¾cö¡̐Oæ¦âÅŠ². Ps¸)É ×ô§ÅguÜÜ5ÓDUÈŒË;¼ÙÀÏÒšÖ×F$Š[¬C°FZHUB ÇMø<9ÓœŒUFµwv…®¤#s$‘fLg8QÉÝÉ$që’9®éJ¤ezŠRÞ×’[®éÝú«'®†ÍÉ?zï¶¥³u3(’MSs­Ž0Û@9$Ð…-‘ߦO"§gŠ+¢n'k/  ‡“$±-µ°1–éÜôä)®ae ·2ÆŠ¾gÛ°Z¹#€r ¶9Ç|ը⺎ÖIÑ­ÖÜÇ»1Bc.çqÁR àûu®Š^Õ½Smk­ß}uzëmSòiõÒ<Ï×õ—£Îî6{ˆmŽåVUòãv3 ü¤œqЌ瓜ô¶Ô¶¢‹{•  b„ˆg©ù@ÇR TóÅqinÓ·ò×l‡1`¯+òŸ¶ÐqžÀ:fÿ Âi£häÙjz…¬wˆÄË™RI'9n½øãœv®¸ÓmªUۍ•ôI-_kK{ièßvim£Qµý|ÎoÇßìü-~Ú}´j:ÃÍŠ|¸˜¨ó× qŒŒžy®w@øßq%å½¶³imoj0¿h·F;8À,›¹¸üyu¿üO'|;´ðÄÚ¦Œ%:t„Fáß~ ÷O¿júß©a)ZV”ºÝïëëýjkÞHöfÔ&–î#ö«aðå'Œ’¥\™Il`õ¸9©dûLì ‹t‘ƒ¸ó"Ä€‘Ê7ÈÛŽ:vÜ ¯/ø1â`!»Ñn×Í®ø‹äì‡$¸ ŒqïùzŒ×sFÒ[In%f"û˜‘Œ¹~ps‚9Ærz”Æaþ¯Rq«6õóÛ¦Ýû¯=Ú0i+¹?ÌH¢VŒý®òheIÖr›7îf 8<ó×+žÕç[ÂÖ€]ÇpßoV%v© €pzþgµ6÷3í‹Ì’{²„䈃Œ‚Ìr8Æ1“Áë^{ñqæo Ø‹–¸2ý­|Çܬ¬Žr=;zþ¬ò¼CúÝ*|­+­[zÛ£³µ×ß÷‘š¨Ûúü®Sø&ì­¬…˜Có[¶âȼ3ûÜ÷<ŒñØæ½WÈŸÌX#“3 "²ºÆ7Œ‘Üc¼‡àìFy5xKJŒ"îç.r@ï×Þ½Ä-ÿ þ“}ª}’*Þ!,Fm¸Î@†9b?1W{Yæ3„`Ú¼VõŠÚÛ_kùöG.mhÎñ ôíhí§Ô$.ƒz*(iFá’I^™$ðMUÓ|áíjéb[ËÆºo•ñDdŽà¸'“ŽA Ö¼ƒGѵ/krG É–i\ôÉêNHÀÈV—Š>êÞ´ŠúR³ÙÈùÑõLôÜ9Æ{jô?°°Kýš¥WíZ¿V—m6·E}{X~Æ? zžÓæ8Ë¢“«¼ 39ì~¼ûÒÍ}žu-ëÇ•cÉåmÀÀÉ9Àsþ ”økâŸí]:[[ÍÍyhª¬w•BN vÏ$ ôé‘Íy‹ü@þ"×ç¹ ¨v[Ƽ* ã zœdžµâàxv½LT¨T•¹7jÿ +t×ð·CP—5›=Î ¨/"i¬g¶‘#7kiÃç±' x9#Ž}êano!òKD‘ílï”('¿SÔð?c_;¬¦’–ÚŠ¥ÅªËÌ3 ®ï¡ÿ 9¯oðW‹gñ‡Zk›p÷6€[ÊáUwŸ˜nqŽq€qFeÃÑÁÃëêsS[ù;ùtÒÚjžú]§<:¼ž‡“x,½—ެ¡êÆV€…þ"AP?ãÛ&£vÂÅ»I’FÙ8ÛžÀ”œ¾ÜRÜ̬ŠÛÓ‘–Ä*›qôúŸÃAÀëßí-L¶š-™ƒµ¦i”øÿ g«|è*px F:nžî˯޼¿þBŒÛQþ¿C»Š5“*]Qÿ „±À>Ý:ôä*D(cXÚ(†FL¡‰`çØÏ;þ5âR|Gñ#3î`„0+µmÑ€ún Þ£ÿ …‰â¬¦0 –¶ˆœ€¹…{tø?ʯ(_çþ_Š5XY[¡Ù|Q¿ú µŠ2︛sO* Бÿ ×â°<+à›MkÂ÷š…ij ·Ü–ˆ«ò‚?ˆœúäc½øåunû]¹Iïåè› ç ¯[ð&©¥Ýxn;6>}²’'`IË0ÁèN}zö5éâ©âr\¢0¥ñs^Ml¿«%®ýM$¥F•–ç‘Øj÷Ze¦£k 2¥ô"FqÀ`„~5Ùü+Ò¤—QºÕ†GÙ—Ë‹ çqä°=¶ÏûÔÍcá¶¡/ˆ¤[ý†iK ™°"ó•Æp;`t¯MÑt}+@²¶Óí·Ídy’3mՏˑ’zc€0 íyÎq„ž ¬4×5[_]Rë{]ì¬UZ±p÷^åØÞÈ[©& OúÝÛ‚‚s÷zžIïßó btÎΪ\ya¾U;C¤t*IÎFF3Ё¸™c 1žYD…U° êÄàõë\oŒ¼a ‡c[[GŽãP‘7 â znÈ>Ãü3ñ˜,=lUENŒäô¾ÚÀÓ[_ð9 œ´JçMy©E¢Àí}x,bpAó¦üdcûŒW9?Å[Há$¿¹pÄ™#^9O88©zO=«Ë!µÖüY¨³ªÍy9ûÒ1 úôÚ»M?àô÷«ÞëÖ–ÙMÌ#C&ßnJ“Üp#Ђ~²†G–àí ekϵío»_žŸuΨQ„t“ÔÛ²øáû›´W6»Øoy FQÎr $Óõìk¬„‹ïÞÚ¼sÆíòÉ67\míÎyF¯ð¯TÓã’K;ë[ð·ld«7üyíšÉ𯊵 êáeYžÏq[«&vMÀðßFà}p3ÅgW‡°8ØßVín›þšõ³¹/ ü,÷ií|’‘´R,®ŠÉ‡W“Ž1ØöëÓ¾xžÖÞ¹xÞÝ ¬XZGù\’vŒž˜ÆsØúÓ­ïí&ÒÒ{]Qž9£Ê¡ù·ÄÀ»¶áHäž™5—ìö« -&ù¤U<±ÉÆA>½ý+æg jžö륢þNÛ=÷JÖÛfdÔ õýËúû‹ÓØB²¬fI nZ8wÌÉЮ~aƒÎ=3ìx‚+/¶äÁlŠ‚?™Æü#8-œ\pqTZXtè%»»&ÚÝ#´ŠðÜ žã§Í’¼{p·ß{m>ÞycP¨’¼¢0ú(Rƒë^Ž ñó¼(»y%m´ÕÙ}ÊûékB1¨þÑ®,#Q)ó‡o1T©ÜÃ*Ž‹‚yö< b‰4×H€“ìÐ. ¤²9ÌŠ>„Žãøgšñ ¯Š~)¸ßå\ÛÛoBŒa·L²œg$‚Iã¯ZÈ—Æ~%”äë—È8â)Œcƒ‘Âàu9¯b%)ÞS²¿Ïïÿ 4Öºù}Z/[H%¤vÉ#Ì’x§†b © ³´tÜ{gn=iï%õªÇç]ܧ—! åw„SÓp ·VÈÏ¡?5Âcâb¥_ĤŠz¬—nàþÖΟñKÄöJé=ÌWèêT‹¸÷qÎჟ•q’zWUN«N/ØO^Ÿe|í¾©k{üõ4öV^ïù~G¹êzÂèº|·÷×[’Þ31†rpjg·n Æ0Ý}kåË‹‰nîe¹ËÍ+™ÏVbrOç]'‰¼o®xÎh`¹Ç*±ÙÚ!T$d/$žN>¼WqᯅZ9ÑÒO\ÜÛê1o&,-z ~^NCgNÕéá)ÒÊ©7‰¨¯'Õþ¯þ_¿Ehîþóâ €ï¬uÛûý*ÎK9ä.â-öv<²‘×h$àãúW%ö¯~«g-ÕõÀàG~>Zú¾Iš+(šM³ Û#9äl%ðc¬ ûÝ xÖKG´x®|¸¤Ï™O:Ê8Ã’qÉcÔä‚yÇNJyËŒTj¥&µOmztjÿ ?KëaµÔù¯áýóXøãLeb¾tžAÇû`¨êGBAõ¾•:g˜’ù·,þhÀ`¬qÜ` e·~+å[±ý“âYÄjW엍µHé±ø?Nõô>½âX<5 Ç©ÏѼM¶8cܪXŽÉ^r?¼IróÈS•ZmÇ›™5»òÚÚ7ïu«&|·÷•Ά >[©ÞXHeS$Œyà€ ÷ù²:ò2|óãDf? Z¼PD¶ÓßC(xÆ0|©ßR;ôMsÿ µ´ÔVi¬,͹›Ìxâi˜`¹,GAéÇlV§ÄýF×Yø§ê–‘:Ã=ò2³9n±ÉžØÏ@yÎWžæ±Ãàe„ÄÒN ]ïòêìú_Go'¦ŽÑ’_×õЯðR66þ!›ÑÄ gFMÙ— äžäqôÈ;ÿ eX<#%»Aö‰ãR¤ Í”Ž¹È G&¹Ÿƒ&á?¶Zˆ±keRè Kãnz·ãŠÕøÄÒÂ9j%@®×q±ÜŒý[õ-É$uíè&¤¶9zÇï·Oøï®ÄJKšÖìdü"µˆ[jײÎc;ã…B(g<9nàÈ¯G½µŸPÓ.´Éfâ¼FŽP 31 ‘ÏR}<3šä~ Ã2xVöî Dr Ç\›}Ý#S÷ÈÀëŽHÆI®à\OçKuäI¹†ó(”—GWî ñ³¹¸æ2¨›‹ºÚû%¾ýÖ_3ºNú¯ëúì|ÕÅÖ‰}y lM’ZËîTÿ á[ðÐñ/ˆ9Àû ¸ón3 Mòd‘÷ döª^.Êñް›BâîNp>cëÏçÍzïíôÏ YÍ%ª¬·ãÏ-*9Ü­ÂãhéŒc¾dÈêú¼Ë,. VŠ÷çeÿ n/¡¼äãõâ=‹xGQKx”|¹bÌŠD@2Œ 8'Ž àúƒŽ+áDÒ&¡¨"Œ§–Žr22 Ç·s]ŸÄ‹«ð%ÚÄ<¹ä’(×{e›HÀqÁç©Ç½`üŽÚõK饚9ƒÄ±€< –úƒú~ çðñO#­Í%iKKlµ¦¾F)'Iê¬Î+Ç(`ñ¾£œdÈ’` ™ºcßéé^ÿ i¸”Û\ý¡æhÔB«aq¸}ãÀÆ:ÜWƒ|FÛÿ BŒÇÀeaŸ-sÊ€:úW½ÜÝÜ<%$µ†%CóDªÀí%IÈÏʤ…ôäñÞŒ÷‘a0“ôŽÚë¤nŸoW÷0«e¶y'Å»aΗ2r’# Û°A^ý9ÉQÔõ=ù5¬£Öü.(Þ’M$~V«=éSÄFN½®©ÔWô»ÿ þHžkR‹ìÏ+µµžöê;khÚI¤m¨‹Ôš–âÖçJ¾_Z•’6 a”Èô> ÕÉaÕ<%®£2n bQŠå\tÈõUÿ ø»þ‹k15‚ÃuCL$ݹp P1=Oøýs¯^u éEJ”–éêŸê½5ýzy›jÛ³á›Ûkÿ ÚOcn±ÛÏîW;boºz{ãžüVÆ¡a£a5½äÎÂks¸J@?1è¿{$䑐=k”øsÖ^nŒ¦)ÝåXÃíùN1ØõÚOJë–xF÷h¸ Œ"Ž?x䜚ü³ì¨c*Fœ¯i;7~ñí׫Ðó¥Ë»3Ãü púw ‰°<Á%»ñž ÿ P+Û^ ¾Ye£ŽCÄŒ„/>˜>•á¶Ìm~&&À>M[hÈÈÿ [Ž•íd…RO@3^Ç(ʽ*¶ÖQZyßþ 1Vº}Ñç?¼O4Rh6R€ª£í¡ûÙ a‚3ß·Õ ü=mRÍ/µ9¤‚0ÑC¼Iè:cŽsÛ¾™x£ÆÐ¬ªÍöˢ샒W$•€Å{¨ÀPG ÀÀàŸZìÍ1RÉ0´ðxEË9+Éÿ ^rEÕ—±Š„70l¼áË@û.' ¼¹Žz€N3úUÉ<3á×*?²¬‚ä†"Ùc=p íÛ'¡ª1ñ"økJ†HÒ'»Ÿ+ oÏN¬Ã9 dÙãÜדÏâÍ~æc+j·Jzâ7(£ðW]•晍?nê´º6åwéåç÷N•ZŠíž›¬|?Ðõ?Ñ-E…®³ÇV$~X¯/…õ x‘LˆÑÜÚÈ7¦pzãÜüë½ðÄ^õtÝYËÍ7ÉÖÕ8ÏUe# #€r=sU¾/é’E§jRC4mxNÝ´9†íuá»›V‘ ZI€­×cr1Ÿpzsøf»¨åV‹ìû`qËLÊIã?\~¼³áËC©êhªOîO»‘ÃmçÛçút×¢x“Z}?Üê#b-¤X7õ Äò gž zzbº3œm*qvs·M=íúéw}¿&Úª°^Ö×µÏ(ø‡â†Öµƒenñý†×åQáYûœ÷ÇLœôÎNk¡ð‡¼/µ¸n0æÉ0¬ƒ‚üîÉÆvŒw®Sáö”š¯‹-üÕVŠØÙ[$`(9cqƒÔ_@BëqûÙ`Ýæ­0;79È?w<ó |ÙÜkßÌ1±Ëã ¿ìÒ»ðlìï«ÓnªèèrP´NÏš&Žéö Ù¸÷æ°~-_O'‰`°!RÚÚÝ%]Ø%þbß1'¿ÿ X՝áOöÎŒ·‹¬+Åæ*ÛÛ™0¤ƒOÍÔ `u¯¦ÂaèÐÃÓ«‹¨Ô¥µœ¿¯ÉyÅÙ.oÔôŸ Úx&(STðݽ¦õ] ’ÒNóÁäÈùr3í·žÚ[™ƒ¼veÈ÷ÞIõÎGlqÎ=M|«gsªxÅI6 ]Z·Îªä,¨zŒŽÄ~#ØŠúFñiÉqc©éÐD>S딑 GñŽ1éÐ^+ Ëi;Ô„µVÕú»i¯ÈÒ-ZÍ]òܘ®ì` bÛÙ¥_/y(@÷qÐúg Ô÷W0.Ø› 6Ò© r>QƒŒ0+Èîzb¨É+I0TbNñ"$~)ÕÒ6Þ‹{0VÆ27œWWñcÄcX×íôûyKZéðªc'iQ¿¯LaWŠŸS\·Š“źʸ…ôÙÂí|öÀÇåV|!¤ÂGâÛ[[’ï 3OrÙËPY¹=Î1õ5öåTžÑè Ú64/üö?Zëžk}¬¶éào፾á}3“ü]8Éæ¿´n²Žš_6¾pœ)2?úWÓÚ¥¾¨iWúdŽq{*ª1rXŒd…m»‰äcô¯–dâ•ã‘Jº¬§¨#¨® §,df«8ÉÅßN¾hˆ;îÓ=7áùpën®É 6ûJžO2^œÐò JÖø¥²ã›Ò6Ü·‰!wbÍ‚¬O©»õ¬ÿ ƒP=Ä:â¤-&ÙŽ ` È9 r9íϧzë> XÅ7ƒ5X–krÑ¢L 7€ìw}ÑŸNHëŒüþ:2†á¼+u·á÷N/Û'Ðç~ߘô«ëh!ónRéeQ´6QÛÿ èEwëÅÒ|¸Yqó1uêyùzð8 ƒŠù¦Ò;¹ä6öi<'ü³„[íZhu½ ùÍ¡g‚>r¯׊îÌx}bñ2“­k꣧oø~›hTèóËWò4|ki"xßQ˜Ï6øÀLnß‚0 ¹Æ{±–¶Öe#¨27È@^Ìß.1N¾œyç€õ†ñeé·Õã†çQ°€=­Ì©ºB€Ø8<‚ÃSõ®ùcc>×Ú .Fr:žÝGæ=kÁâ,^!Fž ¬,àµ}%¶«îõ¹†"r²ƒGœüYÕd?aÑÍY®49PyU ÷þ!žxÅm|/‚ãNð˜¼PcûTÒ,¹/Ý=FkÏ|u¨¶«â녏{¤m¢]Û¾ïP>®XãÞ½iÓÁ¾ ‰'¬–6ß¼(„ï— í!úÙäzôë^–:œ¨å|,_¿&š×]uÓѵÛô4’j”bž§x‘Æ©ã›á,‚[Ô ÎÞ= ŒËæ ÀùYÁ?ŽïÚ¼?ÁªxºÕÛ,°1¸‘¿ÝäãØ¯v…@¤åq½ºã œàûââ·z8Xýˆþz~—û»™âµj=Ž â~ãáh@'h¼F#·Üp?ŸëQü-løvépx»cŸø…lxâÃûG·‰¶ø”L£©%y?¦úõÆü-Õ¶¥y`Òl7>q’2üA?•F}c‡jB:¸Jÿ +§¹¿¸Q÷°ív=VÑìu[Qml%R7a×IèTõéŽx¬ ?†š7 1†îã-ˆã’L¡lŽ0OÓ=ÅuˆpÇ•¼3ÛùÒ¶W/!|’wŽw^qÔ×Ïaó M8Q¨ãÑ?ëï0IEhÄa¸X•`a ?!ÐñùQ!Rä ÂžqŽžÝO`I0ÿ J“y|ñ!Îã@99>þ8–+éáu…!ù—ä ʰ<÷6’I®z ÅS„¾)Zþ_Öýµ×ËPåOwø÷þ*üïænÖùmØÝûþ¹=>¦½öî×Jh]¼ç&@§nTŒ6IT Àõ^Fxð7Å3!Ö·aÛ$þÿ ¹ã5îIo:ȪmËY[’8ÇӾlj*òû¢¥xõ¾¼ú•åk+\ð¯ HÚoŽl•Ûk,¯ ç²²cõÅ{²Z\ ´ìQ åpzŽ3Ôð}ÿ Jð¯XO¡øÎé€hÙ¥ûLdŒ`““ù6Gá^ÃáÝ^Ë[Ñb¾YåŒÊ»dŽ4 †2§,;ÿ CQÄ´¾°¨c–±”mºV{«ßÕýÄW\ÖŸ‘çŸ,çMRÆí“l-ƒn~ë©ÉÈê Ü?#Ž•¹ðãSÒ¥ÐWNíà½;ãž)™ÎSÈ9cóLj뵿Å«iÍk¨ió­¶X‚7÷ƒ€yãnyÏŽëÞ Öt`×À×V's$È9Ú:ä{wÆEk€«†Çàc—â$éÎ.éí~Ýëk}ÅAÆpörÑ¢‡Šl¡ÑüSs‹¨‰IÝ„óÀ×wñ&eºðf™pŒÆ9gŽTø£lñëÀçŽ NkÊUK0U’p ï^¡ãÈ¥´ø{£ÙHp`’ØåbqÏ©äó^Æ: Ž' ÊóM«õz+ß×ó5Ÿ»('¹­ð¦C„$˜Å¢_ºÈI?»^äã'ñêzž+ë€ñ-½»´}¡Ë*õ?.xÇ^1ŽMyǸ&“—L–îëöâ7…' bqéÎGé]˪â1$o²¸R8Ã`.q€}sÖ¾C9­8cêÆÞíïóòvÓòùœÕfÔÚéýu­èÖ·Ú Å‚_¤³ÜۺƑߝ”àרý:׃xPþÅÕî-/üØmnQìïGΊÙRqê=>¢½õnæ·r!—h`+’;ò3È<“Û©éšóŸx*÷V¹¸×tÈiˆßwiÔÿ |cŒñÏ®3Ö½̰‰Ë Qr©ö½®¼ÛoÑÙZÅÑ«O൯ýw8;k›ÿ x†;ˆJa;‘º9÷÷R+¡ñgŽí|Iáë{ôáo2ʲ9 029ÉÏLí\‰¿¸Ÿb˜ "Bv$£&#ßiê>=ªª©f  ’N ëí>¡N­XW­~5×úíø\‰»½Ï^ø(—wÖú¥¤2íŽÞXæÁ$ °eÈ888^nÝë²ñÝÔ^ ÖÚ9Q~Ëå7ï DC¶ÑµƒsËÇè9®Wáþƒ6‡£´·°2\Ý:ÈÑ?(#¨'$õèGJ¥ñW\ÿ ‰E¶—¸™g˜ÌÀ¹;Pv ú±ÎNs·ëŸ’–"Ž/:té+ûË]öJöÓM»ëø˜*‘•^Uý—êd|‰åñMæÔÝ‹23å™6æHùÛ‚ëüñ^…ñ1¢oêûÑEØ.õ7*ÅHtÎp{g<·Á«+¸c¿¿pÓ¾Æby=8É_ÄsÆk¬ñB\jÞÔì••Ë[9Píb‹Bヅ =9­3§ð§LšÛáÖšÆæXÌÞdÛP.0\ãïÛ0?™úJ¸™Ë ”•œº+=<µI£¦í¯õêt¬d‹T¬P=ËFêT>ÍØØ@Ï9<÷AQÌ×»Õ¡xùk",JÎæù±Éç$œŽŸZWH®¯"·UÌQ ’ÙÈ]ÅXg<ã ߨg3-Üqe€0¢¨*Œ$܃ ’Sû 8㎼_/e'+Ï–-èÓ¶¶Õíß[·ÙÙ½î쏗¼sk%§µxä‰â-pÒeÆCrú ôσžû=”šÅô(QW‚Õd\ƒæ. \àö¹¯F½°³½0M>‘gr÷q+œ¶NïºHO— ¤ ܥݭ”n·J|ÆP6Kµc=Isó}Ò çGš)a=—#vK›åoK§ßóٍ¤¶¿õú…ÄRÚ[Ësöټˏ•Ë ópw®qœŒ·Ø ùÇâ‹ý‡ãKèS&ÞvûD Aù‘É9 ŒîqÅ} $SnIV[]ѐ´Ó}ØÜ¾A Ü|½kÅþÓ|E Mu R¼.I¼¶däò‚ÃkÆ}ðy¹vc iUœZ…­Õõ»z¾÷¿n¦*j-É­/àœHã\y5 Û ß™ó0— äŸnzôã#Ô¯,†¥ÚeÔ÷ÜÅ´„“'c…<íÝ€<·SŠ¥k§Ã¢éÆÆÙna‚8–=«ʪ[Ÿ™°pNî02z“ÔÙ–K8.È’Þî(vƒ2®@ äÈûãçžxäÇf¯ˆu¹yUÕîýWšÙ|›ëÒ%Q^í[æ|éo5ZY•^{96ˆY‚§v*x>âº_|U¹Ö´©tûMÒÂ9PÇ#«£#€ éÉñ‘ƒÍz/‰´-į¹°dd,Б›p03ƒœ{ç9=+ Ûᧇ¬¦[‡‚ê婺¸#±ß=³ý¿•Õµjñ½HÙh›Û[§ÚýÊöô÷{˜?ô÷·Ô.u©–_%còcAÀ˜’ }0x9Î>žñÇáÍ9,ahï¦Ì2òÓ ñÛAäry$V²Nð ]=$Ž ‚#Ù‚1ƒƒødõMax‡ÂÖ^!±KkÛ‘ «“Çó²FN8+ëÎ{Ò¼oí§[«ÕMRoËeç×[_m/¦¦k.kôgŽxsSÓ´ý`êzªÜÜKo‰cPC9ÎY‰#§^üý9¹âïÞx£Ë·Ú`±‰‹¤;³–=ÏaôÕAð‚÷kêÁNBéÎælcõö®£Fð†ô2Ò¬]ßÂK$ÓÜ®•”/ÊHàã$ä ¸÷ëf¹Oµúâ“”’²ø­è´µþöjçNü÷üÌ¿ xNïFÒd»¼·h®îT9ŽAµÖ>qÁçÔœtïÒ»\ȶÎîcÞäîó3¶@#ÉIÎ ÔñW.<´’¥–ÑÑ€ÕšA‚ ;†qÓë‚2q ÒÂó$# Çí‡ !Ë}Õ9ÈÎÑÉã=;ŒÇÎuñ+ÉûÏ¥öíeÙ+$úíÜ娯'+êZH4ƒq¶FV‹gïŒ208ÆÌ)íб>M|÷âÍã¾"iì‹¥£Jd´™OÝç;sÈúr+ÜäˆË)DŒ¥šF°*3Õ”d {zÔwºQ¿·UžÉf†~>I+ŒqÔ`ð3œ“Ü×f]œTÁÔn4“ƒø’Ýßõ_«*5šzGCÊ,þ+ê1ò÷O¶¸cœºb2yÇ;cùÕ£ñh¬›áÑŠr¤ÝäNBk¥—á—†gxšX/쑘hŸ*Tçn =û㦠2|(ð¿e·ºÖ$ ýìŸ!'åΰyîî+×öœ=Y:²¦ÓÞ×iü’—ü -BK™£˜›âÆ¡&véðõ-ûÉY¹=Onj¹ø¯¯yf4·±T Pó`çœ7={×mÃ/ ¢˜ZÚòK…G½¥b„’G AãÜœ*í¯Ã¿ IoæI¦NU8‘RwÈã;·€ Û×ëÒ”1Y •£E»ÿ Oyto¢<£Áö·šï,䉧ûA¼sû»Nò}¹üE{ÜÖªò1’õÞr0â}ÎØ#>à/8ïéÎ~—áÍ#ñÎlí§³2f'h”?C÷YËdð:qëõÓ·‚ïeÄ© ÔÈØÜRL+žAÎ3¼g=åšó³Œt3 ÑQ¦ùRÙßE®¼±w_;þhš’Sirÿ ^ˆã¼iੇ|RòO„m°J/“$·l“ ÇÓ¿ÿ [ÑŠÆ“„†Õø>cFÆ6Ø1ƒ– àz7Ldòxäüwá‹ÝAXùO•Úý’é®ähm­ •NÀ±ÌTÈç ƒ‘I$pGž:‚ÄbêW¢®œ´|­¦­nÍ>¶ÖÏ¢§ÎÜ¢ºö¹•%ÄqL^öÛ KpNA<ã¡ …î==ª¸óffËF‡yÌcÉ ©ç$ð=ñÏ­YþÊ’Ú]—¥‚¬‚eDïÎH>Ÿ_ÌTP™a‰ch['çÆÜò7a‡?w°Ïn§âÎ5”’¨¹uÚÛ|´ÓÓc§{O—ü1•ªxsÃZ…ÊÏy¡Ã3¸Ë2Èé» ‘ƒÎ äžÜðA§cáOéúÛ4ý5-fŒï„ù¬ûô.Ç Üsž•Ò¾•wo<¶Ÿ"¬¡º|£ î2sÇ¡éE²ÉFѱrU°dÜ6œ¨ mc†Îxë׺Þ'0²¡Rr„{j¾í·è›µ÷)º·å–‹î2|I®Y¼ºÍË·–ÃÆà㍣'óÆxƒOÆÞ&>\lóÌxP Xc¸ì Sþ5§qà/ê>#žÞW¸if$\3 ® ûÄ“ùŽÕê¾ð<Ó‹H¶óÏ" å·( á‘€:ã†8Ï=+ꨬUA×ÃËÚT’ÑÞöù¥¢]{»ms¥F0\ÑÕ—ô}&ÛB´ƒOŽÚ+›xíÄÀ1 ,v± žIëíZ0ǧ™3 í2®0ทp9öÝÔž)ÓZËoq/Ú“‘L ²ŒmùŽÓ9§[Û#Ä‘\ÞB¬Çs [;à à«g‚2ôòªœÝV§»·¯/[uó½õÛï¾ /šÍ}öüÿ «=x»HŸÂÞ.™ ÌQùŸh´‘#a$‚'¡u<Š›Æ>2>+ƒLSiöwµFó1!eg`£åœ ÷ëÛö}Á¿ÛVÙêv $¬ƒ|,s÷z€ð΃¨x÷ÅD\ÜŒÞmåÔ„ ˆ o| :{ÇÓ¶–òÁn!´0Ål€, ƒ ( ÛŒŒ c¶rsšæ,4‹MÛOH!@¢ ÇŽ„`å²9ÝÃw;AÍt0®¤¡…¯ØÄ.Àì클ƒ‘ßñ5Í,Óëu-ÈÔc¢KÃÓ£òÖ̺U.õL¯0…%2È—"~x ‚[`có±nHàŽyàö™¥keˆìŒÛFç{(Ø©†`Jã#Žwg<“:ÚÉ;M ^\yhûX‡vB·÷zrF?§BÊÔ/s<ÐÈB)Û± ·ÍÔwç5Âã:så§e{mѤï«Òíh—]Wm4âí¿ùþW4bC3¶ª¾Ùr$ pw`àädzt!yŠI„hÂîàM)!edŒm'æ>Ç?wzºK­ìcŒ´¯Ìq6fp$)ãw¡éUl`µ»ARAˆÝÕgr:äŒgƒéé[Ôö±”iYs5Ýï«ÙG—K=þF’æMG«óÿ `ŠKɦuOQ!ÕåŒ/ÎGÞ`@ËqÕzdõâ«Ê/Ö(ƒK´%ŽbMü åÜŸö—>¤óŒŒV‘°„I¢Yž#™¥ùÏÊ@8 œgqöö5ª4vד[¬(q cò¨À!FGaÁõõ¯?§†¥ÏU½í¿WªZ$úyú½Žz×§Éþ?>Ã×È•6°{™™ŽÙ.$`­ÎUœ…çè ' ¤r$1Ø(y7 ðV<ž:È  ÁÎMw¾Â'Øb§øxb7gãО½óÉÊë²,i„Fȹ£§8ãä½k¹¥¦ê/ç{ïê驪2œ/«ü?¯Ô›ìñÜ$þeýœRIåŒg9Ác’zrrNO bÚi¢ ѺË/$,“ª¯Ýä;Œ× ´<ÛÑn³IvŸb™¥ nm–ÄŸ—nÝÀãŽ3ëÍG,.öó³˜Ù£¹u ÊÌrŠ[<±!@Æ:c9ÅZh ì’M5ÄìÌ-‚¼ëÉùqŽGì9¬á ;¨A-ž—évþÖ–^ON·Ô”ŸEý}ú×PO&e[]ÒG¸˜Ûp ƒÃà/Ë·8ûÀ€1ž@¿ÚB*²­¼ñì8@p™8Q“žÆH'8«I-%¸‚ F»“åó6°Uù|¶Ú¸ã ò^Äw¥ŠÖK–1ÜÝK,Žddlí²0PÀü“×ükG…¯U«·¶–´w¶ŽÍ¾©yÞú[Zös•¯Á[™6° ¨¼ÉVæq·,# ìãï‘×8îry®A››¨,ãc66»Ë´ã'æÉù?t}¢æH--Òá"›|ˆ¬[í  7¶ö#¸9«––‹$,+Ëqœ\Êø c€yê^ݸÄa°«™B-9%«×®‹V´w~vÜTéꢷþ¼ˆ%·¹• ’[xç•÷2gØS?6åÀÚ õ9É#š@÷bT¸º²C*3Bá¤òÎA9 =úU§Ó"2Ãlá0iÝIc‚2Î@%öç94ùô»'»HÄ¥Ô¾@à Tp£šíx:úÊ:5eºßMý×wµ›Ó_+šº3Ýyvÿ "ºÇ<ÂI>Õ 1G·Ë«È«É# àÈÇ øp Jv·šæDûE¿›†Ë’NFr2qŸ½ÇAÜšu•´éí#Ħ8£2”Ú2Ã/€[ÎTr;qŠz*ý’Îþ(≠;¡TÆâ›;ºÿ àçœk‘Þ­8¾Uª¾íé{^×IZéwÓkXÉûÑZo¯_øo×È¡¬ â–ÞR§2„‚Àœü½ùç® SVa†Âüª¼±D‘ŒísŸàä|ä2 æ[‹z”¯s{wn„ÆmáóCO+†GO8Ïeçåº`¯^¼ðG5f{Xžä,k‰<á y™¥voÆ éÛõëI=œ1‹éíÔÀÑ)R#;AÂncäŽ:tÏ#¶TkB.0Œ-ÖÞZÛgumß}fÎJÉ+#2êÔP£žùÈÅi¢%œ3P*Yƒò‚Aì“Ž2r:ƒÐúñi­RUQq‰H9!”={~¼ “JŽV¥»×²m.ÛߺiYl¾òk˜gL³·rT• ’…wHÁ6ä`–Î3ùÌ4Øe³†&òL‘•%clyîAÂäà0 žüç$[3uŘpNOÀÉ=† cï{rYK ååä~FÁ •a»"Lär1Ó¯2Äõæ<™C•.fÕ»è¥~½-¿g½Â4¡{[ør¨¶·Žõäx¥’l®qpwÇ»8ärF \cޏܯÓ-g‚yciÏÀ¾rÎwèØÈ#o°Á9ã5¢šfÔxÞæfGusÏÌJÿ µ×œ/LtãÅT7²¶w,l ɳ;”eúà·¨çîŒsÜgTÃS¦­^ '~‹®›¯+k÷ZÖd©Æ*Ó[Ü«%Œk0ŽXƒ”$k#Ȩ P2bv‘ƒŸáÇ™ÆÕb)m$É*8óLE‘8'–ÜN Úyàúô­+{uº±I'wvš4fÜr íì½=úuú sFlìV$‘ö†Hсù€$§ õ=½¸«Ž] :Ž+•¦ïmRþ½l´îÊT#nkiøÿ _ðÆT¶7Ò½ºÒ£Î¸d\ã8=yãŽÜäR{x]ZâÚé#¸r²#»ÎHÆ6õ ç® ÎFkr;sºÄ.&;só± Ç9êH÷ýSšÕ­tÐU¢-n­ Ì| vqœ„{gŒt§S.P‹’މ_[;m¥Þ­ZýRûÂX{+¥úü¼ú•-àÓ7!„G"“´‹žƒnrYXã¸îp éœ!Ó­oP̏tÑ (‰Þ¹é€sÓ#GLçÕšÑnJý¡!‘Tä#“ß?îýp}xÇ‚I¥Õn#·¸–y'qó@r[ Êô÷<ÔWÃÓ¢áN¥4ԝ’I&ݼ¬¬¼ÞºvéÆ FQV~_ÒüJÖÚt¥¦Xá3BÄP^%ÈÎW-×c¡ú©¤·Iþèk¥š?–UQåIR[’O 5x\ÉhÆI¶K4«2ùªŠŒ<¼óœçØ`u«‚Í.VHä € Ëgfx''9ÆI#±®Z8 sISºku¢ßÞ]úk»Jößl¡B.Ü»ÿ MWe °·Ž%šêɆ¼»Âù³´œ O¿cÐÓÄh©"ÛÜÏ.ÖV ’3nüÄmnq[ŒòznšÖ>J¬òˆæ…qýØP Ž:ä7^0yëWšÍ_79äoaÈ °#q0{ää×mœy”R{vÒÞ¶ÚÏe¥“ÚÆÐ¥Ì®—õýjR •íç›Ìb„+J yÜØÙ•Ç]¿Ôd þËOL²”9-Œ—õÃc'æÝלçÚ²ìejP“½ âù°¨†ðqòädЃÉäÖÜj÷PÇp“ÍšŠå«‘î <iWN­smª»¶vÓz5»ûì:Rs\Ðßôû×uÔÿÙ