NAME

groff - a short reference for the GNU roff language

DESCRIPTION

The name groff stands for GNU roff and is the free implementation of the roff type-setting system. See roff(7) for a survey and the background of the groff system.

This document gives only short descriptions of the predefined roff language elements as used in groff. Both the classical features and the groff extensions are provided.

Historically, the roff language was called troff. groff is compatible with the classical system and provides proper extensions. So in GNU, the terms roff, troff, and groff language could be used as synonyms. However troff slightly tends to refer more to the classical aspects, whereas groff emphasizes the GNU extensions, and roff is the general term for the language.

This file is only a short version of the complete documentation that is found in the groff info(1) file, which contains more detailed, actual, and concise information.

The general syntax for writing groff documents is relatively easy, but writing extensions to the roff language can be a bit harder.

The roff language is line-oriented. There are only two kinds of lines, control lines and text lines. The control lines start with a control character, by default a period ".." or a single quote "''"; all other lines are text lines.

Control lines represent commands, optionally with arguments. They have the following syntax. The leading control character can be followed by a command name; arguments, if any, are separated by blanks from the command name and among themselves, for example,

.command_name arg1 arg2

For indentation, any number of space or tab characters can be inserted between the leading control character and the command name, but the control character must be on the first position of the line.

Text lines represent the parts that will be printed. They can be modified by escape sequences, which are recognized by a leading backslash `\\'. These are in-line or even in-word formatting elements or functions. Some of these take arguments separated by single quotes "''", others are regulated by a length encoding introduced by an open parenthesis `((' or enclosed in brackets `[[' and `]]'.

The roff language provides flexible instruments for writing language extension, such as macros. When interpreting macro definitions, the roff system enters a special operating mode, called the copy mode.

The copy mode behavior can be quite tricky, but there are some rules that ensure a safe usage.

1. Printable backslashes must be denoted as
\e. To be more precise, \e represents the current escape character. To get a backslash glyph, use \(rs or \[rs].
2. Double all backslashes.
3. Begin all text lines with the special non-spacing character
\&.

This does not produce the most efficient code, but it should work as a first measure. For better strategies, see the groff info file and groff_tmac(5)

Reading roff source files is easier, just reduce all double backslashes to a single one in all macro definitions.

GROFF ELEMENTS

The roff language elements add formatting information to a text file. The fundamental elements are predefined commands and variables that make roff a full-blown programming language.

There are two kinds of roff commands, possibly with arguments. Requests are written on a line of their own starting with a dot `..' or a "''", whereas Escape sequences are in-line functions and in-word formatting elements starting with a backslash `\\'.

The user can define her own formatting commands using the de request. These commands are called macros, but they are used exactly like requests. Macro packages are pre-defined sets of macros written in the groff language. A user's possibilities to create escape sequences herself is very limited, only special characters can be mapped.

The groff language provides several kinds of variables with different interfaces. There are pre-defined variables, but the user can define her own variables as well.

String variables store character sequences. They are set with the ds request and retrieved by the \* escape sequences. Strings can have variables.

Register variables can store numerical values, numbers with a scale unit, and occasionally string-like objects. They are set with the nr request and retrieved by the \n escape sequences.

Environments allow the user to temporarily store global formatting parameters like line length, font size, etc. for later reuse. This is done by the ev request.

Fonts are identified either by a name or by an internal number. The current font is chosen by the ft request or by the \f escape sequences. Each device has special fonts, but the following fonts are available for all devices. R is the standard font Roman. B is its bold counterpart. The italic font is called I and is available everywhere, but on text devices it is displayed as an underlined Roman font. For the graphical output devices, there exist constant-width pendants of these fonts, CR, CI, and CB. On text devices, all characters have a constant width anyway.

Moreover, there are some advanced roff elements. A diversion stores information into a macro for later usage. A trap is a positional condition like a certain number of lines from page top or in a diversion or in the input. Some action can be prescribed to be run automatically when the condition is met.

More detailed information and examples can be found in the groff info file.

CONTROL CHARACTERS

There is a small set of characters that have a special controlling task in certain conditions.
..
A dot is only special at the beginning of a line or after the condition in the requests if, ie, el, and while. There it is the control character that introduces a request (or macro). The special behavior can be delayed by using the \. escape. By using the cc request, the control character can be set to a different character, making the dot `..' a non-special character.
In all other positions, it just means a dot character.
In text paragraphs, it is advantageous to start each sentence at a line of its own.
''
The single quote has two controlling tasks. At the beginning of a line and in the conditional requests it is the non-breaking control character. That means that it introduces a request like the dot, but with the additional property that this request doesn't cause a linebreak. By using the c2 request, the non-break control character can be set to a different character.
As a second task, it is the most commonly used argument separator in
some functional escape sequences (but any pair of characters not part of the argument will work). In all other positions, it denotes the single quote or apostrophe character. Groff provides a printable representation with the \(cq escape sequence.
""
The double quote is used to enclose arguments in requests, macros, and strings. In the ds and as requests, a leading double quote in the argument will be stripped off, making everything else afterwards the string to be defined (enabling leading whitespace). The escaped double quote \" introduces a comment. Otherwise, it is not special. Groff provides a printable representation with the \(dq escape sequence.
\\
The backslash usually introduces an escape sequence (this can be changed with the ec request). A printed version of the escape character is the \e escape; a backslash glyph can be obtained by \(rs.
((
The open parenthesis is only special in escape sequences when introducing an escape name or argument consisting of exactly two characters. In groff, this behavior can be replaced by the [[]] construct.
[[
The opening bracket is only special in groff escape sequences; there it is used to introduce a long escape name or long escape argument. Otherwise, it is non-special, e.g. in macro calls.
]]
The closing bracket is only special in groff escape sequences; there it terminates a long escape name or long escape argument. Otherwise, it is non-special.
_s_p_a_c_e
Space characters are only functional characters. They separate the arguments in requests, macros, and strings, and the words in text lines. They are subject to groff's horizontal spacing calculations. To get a defined space width, escape sequences like `\\ ' (this is the escape character followed by a space), \|, \^, or \h should be used.
_n_e_w_l_i_n_e In text paragraphs, newlines mostly behave like space characters.
Continuation lines can be specified by an escaped newline, i.e., by specifying a backslash `\\' as the last character of a line.
_t_a_b If a tab character occurs during text the interpreter makes a
horizontal jump to the next pre-defined tab position. There is a sophisticated interface for handling tab positions.

NUMERICAL EXPRESSIONS

A numerical value is a signed or unsigned integer or float with or without an appended scaling indicator. A scaling indicator is a one-character abbreviation for a unit of measurement. A number followed by a scaling indicator signifies a size value. By default, numerical values do not have a scaling indicator, i.e., they are normal numbers.

The roff language defines the following scaling indicators.

c
Centimeter
i
Inch
P
Pica = 1/6 inch
p
Point = 1/72 inch
m
Em = the font size in points (width of letter `m')
M
100th of an Em
n
En = Em/2
u
Basic unit for actual output device
v
Vertical line space in basic units scaled point = 1/_s_i_z_e_s_c_a_l_e of a point (defined in font _D_E_S_C file)
f
Scale by 65536.

Numerical expressions are combinations of the numerical values defined above with the following arithmetical operators already defined in classical troff.

+
Addition
-
Subtraction
*
Multiplication
/
Division
%
Modulo
=
Equals
==
Equals
<
Less than
>
Greater than
<=
Less or equal
>=
Greater or equal
&
Logical and
:
Logical or
!
Logical not
(
Grouping of expressions
)
Close current grouping

Moreover, groff added the following operators for numerical expressions:

_e_1>>??_e_2
The maximum of e1 and e2.
_e_1< The minimum of e1 and e2.
((_c;;_e))
Evaluate e using c as the default scaling indicator.

For details see the groff info file.

CONDITIONS

Conditions occur in tests raised by the if, ie, and the while requests. The following table characterizes the different types of conditions.

N
A numerical expression N yields true if its value is greater than 0.
!N
True if the value of I is 0.
's1's2'
True if string s1 is identical to string s2.
!'s1's2'
True if string s1 is not identical to string s2.
cch
True if there is a character ch available.
dname
True if there is a string, macro, diversion, or request called name.
e
Current page number is even.
o
Current page number is odd.
mname
True if there is a color called name.
n
Formatter is nroff.
rreg
True if there is a register named reg.
t
Formatter is troff.
Ffont
True if there exists a font named font.
Sstyle
True if a style named style has been registered.

REQUESTS

This section provides a short reference for the predefined requests. In groff, request and macro names can be arbitrarily long. No bracketing or marking of long names is needed.

Most requests take one or more arguments. The arguments are separated by space characters (no tabs!); there is no inherent limit for their length or number. An argument can be enclosed by a pair of double quotes. This is very handy if an argument contains space characters, e.g., denotes a single argument.

Some requests have optional arguments with a different behaviour. Not all of these details are outlined here. Refer to the groff info file and groff_diff(7) for all details.

In the following request specifications, most argument names were chosen to be descriptive. Only the following denotations need clarification.

c
denotes a single character.
font
a font either specified as a font name or a font number.
anything
all characters up to the end of the line or within \{ and \}.
n
is a numerical expression that evaluates to an integer value.
N
is an arbitrary numerical expression, signed or unsigned.
±N
has three meanings depending on its sign, described below.

If an expression defined as ±N starts with a `++' sign the resulting value of the expression will be added to an already existing value inherent to the related request, e.g. adding to a number register. If the expression starts with a `--' the value of the expression will be subtracted from the request value.

Without a sign, N replaces the existing value directly. To assign a negative number either prepend 0 or enclose the negative number in parentheses.

Request Short Reference

..
Empty line, ignored. Useful for structuring documents.
..\\"" _a_n_y_t_h_i_n_g
Complete line is a comment.
..aabb _s_t_r_i_n_g
Print string on standard error, exit program.
..aadd
Begin line adjustment for output lines in current adjust mode.
..aadd _c
Start line adjustment in mode c (_c=l,r,b,n).
..aaff _r_e_g_i_s_t_e_r _c
Assign format c to register (_c=l,i,I,a,A).
..aallnn _a_l_i_a_s _r_e_g_i_s_t_e_r
Create alias name for register.
..aallss _a_l_i_a_s _o_b_j_e_c_t
Create alias name for request, string, macro, or diversion object.
..aamm _m_a_c_r_o
Append to macro until .. is encountered.
..aamm _m_a_c_r_o _e_n_d
Append to macro until .end is called.
..aamm11 _m_a_c_r_o
Same as .am but with compatibility mode switched off during macro expansion.
..aamm11 _m_a_c_r_o _e_n_d
Same as .am but with compatibility mode switched off during macro expansion.
..aammii _m_a_c_r_o
Append to a macro whose name is contained in the string register macro until .. is encountered.
..aammii _m_a_c_r_o _e_n_d
Append to a macro indirectly. macro and end are string registers whose contents are interpolated for the macro name and the end macro, respectively.
..aammii11 _m_a_c_r_o
Same as .ami but with compatibility mode switched off during macro expansion.
..aammii11 _m_a_c_r_o _e_n_d
Same as .ami but with compatibility mode switched off during macro expansion.
..aass _s_t_r_i_n_g_v_a_r _a_n_y_t_h_i_n_g
Append anything to stringvar.
..aass11 _s_t_r_i_n_g_v_a_r _a_n_y_t_h_i_n_g
Same as .as but with compatibility mode switched off during string expansion.
..aasscciiiiffyy _d_i_v_e_r_s_i_o_n
Unformat ASCII characters, spaces, and some escape sequences in diversion.
..bbaacckkttrraaccee
Print a backtrace of the input on stderr.
..bbdd _f_o_n_t _N
Embolden font by N-1 units.
..bbdd _S _f_o_n_t _N
Embolden Special Font S when current font is font.
..bbllmm
Unset the blank line macro.
..bbllmm _m_a_c_r_o
Set the blank line macro to macro.
..bbooxx
End current diversion.
..bbooxx _m_a_c_r_o
Divert to macro, omitting a partially filled line.
..bbooxxaa
End current diversion.
..bbooxxaa _m_a_c_r_o
Divert and append to macro, omitting a partially filled line.
..bbpp
Eject current page and begin new page.
..bbpp _±_N
Eject current page; next page number ±N.
..bbrr
Line break.
..bbrrpp
Break and spread output line. Same as \p.
..bbrreeaakk
Break out of a while loop.
..cc22
Reset no-break control character to "''".
..cc22 _c
Set no-break control character to c.
..cccc
Reset control character to `..'.
..cccc _c
Set control character to c.
..ccee
Center the next input line.
..ccee _N
Center following N input lines.
..ccff _f_i_l_e_n_a_m_e
Copy contents of file filename unprocessed to stdout or to the diversion.
..ccffllaaggss _m_o_d_e _c_1 _c_2 _._._.
Treat characters c1, c2, ... according to mode number.
..cchh _t_r_a_p _N
Change trap location to N .
..cchhaarr _c _a_n_y_t_h_i_n_g
Define character c as string anything.
..cchhoopp _o_b_j_e_c_t
Chop the last character off macro, string, or diversion object.
..cclloossee _s_t_r_e_a_m
Close the stream.
..ccoolloorr
Enable colors.
..ccoolloorr _N
If N is zero disable colors, otherwise enable them.
..ccoommppoossiittee _f_r_o_m _t_o
Map glyph name from to glyph name to while constructing a composite glyph name.
..ccoonnttiinnuuee
Finish the current iteration of a while loop.
..ccpp
Enable compatibility mode.
..ccpp _N
If N is zero disable compatibility mode, otherwise enable it.
..ccss _f_o_n_t _N _M
Set constant character width mode for font to N/36 ems with em M.
..ccuu _N
Continuous underline in nroff, like .ul in troff.
..ddaa
End current diversion.
..ddaa _m_a_c_r_o
Divert and append to macro.
..ddee _m_a_c_r_o
Define or redefine macro until .. is encountered.
..ddee _m_a_c_r_o _e_n_d
Define or redefine macro until .end is called.
..ddee11 _m_a_c_r_o
Same as .de but with compatibility mode switched off during macro expansion.
..ddee11 _m_a_c_r_o _e_n_d
Same as .de but with compatibility mode switched off during macro expansion.
..ddeeffccoolloorr _c_o_l_o_r _s_c_h_e_m_e _c_o_m_p_o_n_e_n_t
Define or redefine a color with name color. scheme can be rgb, cym, cymk, gray, or grey. component can be single components specified as fractions in the range 0 to 1 (default scaling indicator ff), as a string of two-digit hexadecimal color components with a leading #, or as a string of four-digit hexadecimal components with two leading #. The color default can't be redefined.
..ddeeii _m_a_c_r_o
Define or redefine a macro whose name is contained in the string register macro until .. is encountered.
..ddeeii _m_a_c_r_o _e_n_d
Define or redefine a macro indirectly. macro and end are string registers whose contents are interpolated for the macro name and the end macro, respectively.
..ddeeii11 _m_a_c_r_o
Same as .dei but with compatibility mode switched off during macro expansion.
..ddeeii11 _m_a_c_r_o _e_n_d
Same as .dei but with compatibility mode switched off during macro expansion.
..ddii
End current diversion.
..ddii _m_a_c_r_o
Divert to macro .
..ddoo _n_a_m_e
Interpret .name with compatibility mode disabled.
..ddss _s_t_r_i_n_g_v_a_r _a_n_y_t_h_i_n_g
Set stringvar to anything.
..ddss11 _s_t_r_i_n_g_v_a_r _a_n_y_t_h_i_n_g
Same as .ds but with compatibility mode switched off during string expansion.
..ddtt _N _t_r_a_p
Set diversion trap to position N (default scaling indicator vv).
..eecc
Reset escape character to `\\'.
..eecc _c
Set escape character to c.
..eeccrr
Restore escape character saved with .ecs.
..eeccss
Save current escape character.
..eell _a_n_y_t_h_i_n_g
Else part for if-else (ie) request.
..eemm _m_a_c_r_o
The macro will be run after the end of input.
..eeoo
Turn off escape character mechanism.
..eevv
Switch to previous environment.
..eevv _e_n_v
Push down environment number or name env and switch to it.
..eevvcc _e_n_v
Copy the contents of environment env to the current environment. No pushing or popping.
..eexx
Exit from roff processing.
..ffaamm
Return to previous font family.
..ffaamm _n_a_m_e
Set the current font family to name.
..ffcc
Disable field mechanism.
..ffcc _a
Set field delimiter to a and pad character to space.
..ffcc _a _b
Set field delimiter to a and pad character to b.
..ffcchhaarr _c _a_n_y_t_h_i_n_g
Define fallback character c as string anything.
..ffccoolloorr
Set fill color to previous fill color.
..ffccoolloorr _c
Set fill color to c.
..ffii
Fill output lines.
..ffll
Flush output buffer.
..ffpp _n _f_o_n_t
Mount font on position n.
..ffpp _n _i_n_t_e_r_n_a_l _e_x_t_e_r_n_a_l
Mount font with long external name to short internal name on position n.
..ffsscchhaarr _f _c _a_n_y_t_h_i_n_g
Define fallback character c for font f as string anything.
..ffssppeecciiaall _f_o_n_t
Reset list of special fonts for font to be empty.
..ffssppeecciiaall _f_o_n_t _s_1 _s_2 _._._.
When the current font is font, then the fonts s1, s2, ... will be special.
..fftt
Return to previous font. Same as \f[] or \fP.
..fftt _f_o_n_t
Change to font name or number font; same as \\ff[[_f_o_n_t]] escape sequence.
..ffttrr _f_o_n_t_1 _f_o_n_t_2
Translate font1 to font2.
..ggccoolloorr
Set glyph color to previous glyph color.
..ggccoolloorr _c
Set glyph color to c.
..hhcc
Remove additional hyphenation indicator character.
..hhcc _c
Set up additional hyphenation indicator character c.
..hhccooddee _c_1 _c_o_d_e_1 _c_2 _c_o_d_e_2 _._._.
Set the hyphenation code of character c1 to code1, that of c2 to code2, etc.
..hhllaa _l_a_n_g
Set the current hyphenation language to lang.
..hhllmm _n
Set the maximum number of consecutive hyphenated lines to n.
..hhppff _f_i_l_e
Read hyphenation patterns from file.
..hhppffaa _f_i_l_e
Append hyphenation patterns from file.
..hhppffccooddee _f_i_l_e
Set input mapping for .hpf.
..hhww _w_o_r_d_s
List of words with exceptional hyphenation.
..hhyy _N
Switch to hyphenation mode N.
..hhyymm _n
Set the hyphenation margin to n (default scaling indicator mm).
..hhyyss _n
Set the hyphenation space to n.
..iiee _c_o_n_d _a_n_y_t_h_i_n_g
If cond then anything else goto .el.
..iiff _c_o_n_d _a_n_y_t_h_i_n_g
If cond then anything; otherwise do nothing.
..iigg
Ignore text until .. is encountered.
..iigg _e_n_d
Ignore text until .end.
..iinn
Change to previous indent value.
..iinn _±_N
Change indent according to ±N (default scaling indicator mm).
..iitt _N _t_r_a_p
Set an input-line count trap for the next N lines.
..iittcc _N _t_r_a_p
Same as .it but count lines interrupted with \c as one line.
..kkeerrnn
Enable pairwise kerning.
..kkeerrnn _n
If n is zero, disable pairwise kerning, otherwise enable it.
..llcc
Remove leader repetition character.
..llcc _c
Set leader repetition character to c.
..lleennggtthh _r_e_g_i_s_t_e_r _a_n_y_t_h_i_n_g
Write the length of the string anything in register.
..lliinneettaabbss
Enable line-tabs mode (i.e., calculate tab positions relative to output line).
..lliinneettaabbss _n
If n is zero, disable line-tabs mode, otherwise enable it.
..llff _N
Set input line number to N.
..llff _N _f_i_l_e
Set input line number to N and filename to file.
..llgg _N
Ligature mode on if N>0.
..llll
Change to previous line length.
..llll _±_N
Set line length according to ±N (default size 6.5ii, default scaling indicator mm).
..llss
Change to the previous value of additional intra-line skip.
..llss _N
Set additional intra-line skip value to N, i.e., N-1 blank lines are inserted after each text output line.
..lltt _±_N
Length of title (default scaling indicator mm).
..mmcc
Margin character off.
..mmcc _c
Print character c after each text line at actual distance from right margin.
..mmcc _c _N
Set margin character to c and distance to N from right margin (default scaling indicator mm).
..mmkk _r_e_g_i_s_t_e_r
Mark current vertical position in register.
..mmssoo _f_i_l_e
The same as the .so request except that file is searched in the tmac directories.
..nnaa
No output-line adjusting.
..nnee
Need a one-line vertical space.
..nnee _N
Need N vertical space (default scaling indicator vv).
..nnff
No filling or adjusting of output-lines.
..nnhh
No hyphenation.
..nnmm
Number mode off.
..nnmm _±_N [_M [_S [_I]]]
In line number mode, set number, multiple, spacing, and indent.
..nnnn
Do not number next line.
..nnnn _N
Do not number next N lines.
..nnoopp _a_n_y_t_h_i_n_g
Always execute anything.
..nnrr _r_e_g_i_s_t_e_r _±_N _M
Define or modify register using ±N with auto-increment M.
..nnrrooffff
Make the built-in condition n true and t false.
..nnss
Turn no-space mode on.
..nnxx
Immediately jump to end of current file.
..nnxx _f_i_l_e_n_a_m_e
Next file.
..ooppeenn _s_t_r_e_a_m _f_i_l_e_n_a_m_e
Open register filename for writing and associate the stream named register stream with it.
..ooppeennaa _s_t_r_e_a_m _f_i_l_e_n_a_m_e
Like .open but append to it.
..ooss
Output vertical distance that was saved by the sv request.
..oouuttppuutt _s_t_r_i_n_g
Emit string directly to intermediate output, allowing leading whitespace if string starts with "" (which will be stripped off).
..ppcc
Reset page number character to `%%'.
..ppcc _c
Page number character.
..ppii _p_r_o_g_r_a_m
Pipe output to program (nroff only).
..ppll
Set page length to default 11ii. The current page length is stored in register .p.
..ppll _±_N
Change page length to ±N (default scaling indicator vv).
..ppmm
Print macro names and sizes (number of blocks of 128 bytes).
..ppmm tt
Print only total of sizes of macros (number of 128 bytes blocks).
..ppnn _±_N
Next page number N.
..ppnnrr
Print the names and contents of all currently defined number registers on stderr.
..ppoo
Change to previous page offset. The current page offset is available in register .o.
..ppoo _±_N
Page offset N.
..ppss
Return to previous point-size.
..ppss _±_N
Point size; same as \\ss[[_±_N]].
..ppssbbbb _f_i_l_e_n_a_m_e
Get the bounding box of a PostScript image filename.
..ppssoo _c_o_m_m_a_n_d
This behaves like the so request except that input comes from the standard output of command.
..ppttrr
Print the names and positions of all traps (not including input line traps and diversion traps) on stderr.
..ppvvss
Change to previous post-vertical line spacing.
..ppvvss _±_N
Change post-vertical line spacing according to ±N (default scaling indicator pp).
..rrcchhaarr _c_1 _c_2 _._._.
Remove the definitions of characters c1, c2, ...
..rrdd _p_r_o_m_p_t
Read insertion.
..rreettuurrnn
Return from a macro.
..rreettuurrnn _a_n_y_t_h_i_n_g
Return twice, namely from the macro at the current level and from the macro one level higher.
..rrffsscchhaarr _f _c_1 _c_2 _._._.
Remove the definitions of characters c1, c2, ... for font f.
..rrjj _n
Right justify the next n input lines.
..rrmm _n_a_m_e
Remove request, macro, or string name.
..rrnn _o_l_d _n_e_w
Rename request, macro, or string old to new.
..rrnnnn _r_e_g_1 _r_e_g_2
Rename register reg1 to reg2.
..rrrr _r_e_g_i_s_t_e_r
Remove register.
..rrss
Restore spacing; turn no-space mode off.
..rrtt _±_N
Return (upward only) to marked vertical place (default scaling indicator vv).
..sscchhaarr _c _a_n_y_t_h_i_n_g
Define global fallback character c as string anything.
..sshhcc
Reset soft hyphen character to \(hy.
..sshhcc _c
Set the soft hyphen character to c.
..sshhiifftt _n
In a macro, shift the arguments by n positions.
..ssiizzeess _s_1 _s_2 _._._. _s_n [[00]] <> SSeett aavvaaiillaabbllee ffoonntt ssiizzeess ssiimmiillaarr ttoo tthhee <>ssiizzeess<> ccoommmmaanndd iinn aa <>DDEESSCC<> ffiillee.. <> ..ssoo _f_i_l_e_n_a_m_e <> IInncclluuddee ssoouurrccee ffiillee.. <> ..sspp <> SSkkiipp oonnee lliinnee vveerrttiiccaallllyy.. <> ..sspp _N <> SSppaaccee vveerrttiiccaall ddiissttaannccee <>NN<> uupp oorr ddoowwnn aaccccoorrddiinngg ttoo ssiiggnn ooff <>NN<> ((ddeeffaauulltt ssccaalliinngg iinnddiiccaattoorr vv)).. <> ..ssppeecciiaall <> RReesseett gglloobbaall lliisstt ooff ssppeecciiaall ffoonnttss ttoo bbee eemmppttyy.. <> ..ssppeecciiaall _s_1 _s_2 _._._. <> FFoonnttss <>ss11<>,, <>ss22<>,, eettcc.. aarree ssppeecciiaall aanndd wwiillll bbee sseeaarrcchheedd ffoorr cchhaarraacctteerrss nnoott iinn tthhee ccuurrrreenntt ffoonntt.. <> ..sspprreeaaddwwaarrnn <> TTooggggllee tthhee sspprreeaadd wwaarrnniinngg oonn aanndd ooffff wwiitthhoouutt cchhaannggiinngg iittss vvaalluuee.. <> ..sspprreeaaddwwaarrnn _l_i_m_i_t <> EEmmiitt aa wwaarrnniinngg iiff eeaacchh ssppaaccee iinn aann oouuttppuutt lliinnee iiss wwiiddeenneedd bbyy <>lliimmiitt<> oorr mmoorree ((ddeeffaauulltt ssccaalliinngg iinnddiiccaattoorr mm)).. <> ..ssss _N <> SSppaaccee--cchhaarraacctteerr ssiizzee sseett ttoo <>NN<>//1122 ooff tthhee ssppaacceewwiiddtthh iinn tthhee ccuurrrreenntt ffoonntt.. <> ..ssss _N _M <> SSppaaccee--cchhaarraacctteerr ssiizzee sseett ttoo <>NN<>//1122 aanndd sseenntteennccee ssppaaccee ssiizzee sseett ttoo <>MM<>//1122 ooff tthhee ssppaacceewwiiddtthh iinn tthhee ccuurrrreenntt ffoonntt ((=1/3 em)).. <> ..ssttyy _n _s_t_y_l_e <> AAssssoocciiaattee <>ssttyyllee<> wwiitthh ffoonntt ppoossiittiioonn <>nn<>.. <> ..ssuubbssttrriinngg _x_x _n_1 _n_2 <> RReeppllaaccee tthhee ssttrriinngg nnaammeedd <>xxxx<> wwiitthh tthhee ssuubbssttrriinngg ddeeffiinneedd bbyy tthhee iinnddiicceess <>nn11<> aanndd <>nn22<>.. <> ..ssvv <> SSaavvee 11vv ooff vveerrttiiccaall ssppaaccee.. <> ..ssvv _N <> SSaavvee tthhee vveerrttiiccaall ddiissttaannccee <>NN<> ffoorr llaatteerr oouuttppuutt wwiitthh ooss rreeqquueesstt.. <> ..ssyy _c_o_m_m_a_n_d_-_l_i_n_e <> EExxeeccuuttee pprrooggrraamm <>ccoommmmaanndd--lliinnee<>.. <> ..ttaa TT _N <> SSeett ttaabbss aafftteerr eevveerryy ppoossiittiioonn tthhaatt iiss aa mmuullttiippllee ooff <>NN<> ((ddeeffaauulltt ssccaalliinngg iinnddiiccaattoorr mm)).. <> ..ttaa _n_1 _n_2 _._._. _n_n TT _r_1 _r_2 _._._. _r_n <> SSeett ttaabbss aatt ppoossiittiioonnss <>nn11<>,, <>nn22<>,, ......,, <>nnnn<>,, tthheenn sseett ttaabbss aatt <>nnnn<>++<>rr11<>,, <>nnnn<>++<>rr22<>,, ......,, <>nnnn<>++<>rrnn<>,, tthheenn aatt <>nnnn<>++<>rrnn<>++<>rr11<>,, <>nnnn<>++<>rrnn<>++<>rr22<>,, ......,, <>nnnn<>++<>rrnn<>++<>rrnn<>,, aanndd ssoo oonn.. <> ..ttcc <> RReemmoovvee ttaabb rreeppiittiioonn cchhaarraacctteerr.. <> ..ttcc _c <> SSeett ttaabb rreeppeettiittiioonn cchhaarraacctteerr ttoo <>cc<>.. <> ..ttii _±_N <> TTeemmppoorraarryy iinnddeenntt nneexxtt lliinnee ((ddeeffaauulltt ssccaalliinngg iinnddiiccaattoorr mm)).. <> ..ttkkff _f_o_n_t _s_1 _n_1 _s_2 _n_2 <> EEnnaabbllee ttrraacckk kkeerrnniinngg ffoorr <>ffoonntt<>.. <> ..ttll ''_l_e_f_t''_c_e_n_t_e_r''_r_i_g_h_t'' <> TThhrreeee--ppaarrtt ttiittllee.. <> ..ttmm _a_n_y_t_h_i_n_g <> PPrriinntt <>aannyytthhiinngg<> oonn tteerrmmiinnaall ((UUNNIIXX ssttaannddaarrdd mmeessssaaggee oouuttppuutt)).. <> ..ttmm11 _a_n_y_t_h_i_n_g <> PPrriinntt <>aannyytthhiinngg<> oonn tteerrmmiinnaall ((UUNNIIXX ssttaannddaarrdd mmeessssaaggee oouuttppuutt)),, aalllloowwiinngg lleeaaddiinngg wwhhiitteessppaaccee iiff <>aannyytthhiinngg<> ssttaarrttss wwiitthh "" ((wwhhiicchh wwiillll bbee ssttrriippppeedd ooffff)).. <> ..ttmmcc _a_n_y_t_h_i_n_g <> SSiimmiillaarr ttoo ..ttmm11 wwiitthhoouutt eemmiittttiinngg aa ffiinnaall nneewwlliinnee.. <> ..ttrr _a_b_c_d_._._. <> TTrraannssllaattee <>aa<> ttoo <>bb<>,, <>cc<> ttoo <>dd<>,, eettcc.. oonn oouuttppuutt.. <> ..ttrrff _f_i_l_e_n_a_m_e <> TTrraannssppaarreennttllyy oouuttppuutt tthhee ccoonntteennttss ooff ffiillee <>ffiilleennaammee<>.. <> ..ttrriinn _a_b_c_d_._._. <> TThhiiss iiss tthhee ssaammee aass tthhee ttrr rreeqquueesstt eexxcceepptt tthhaatt tthhee <>aasscciiiiffyy<> rreeqquueesstt wwiillll uussee tthhee cchhaarraacctteerr ccooddee ((iiff aannyy)) bbeeffoorree tthhee cchhaarraacctteerr ttrraannssllaattiioonn.. <> ..ttrrnntt _a_b_c_d_._._. <> TThhiiss iiss tthhee ssaammee aass tthhee ttrr rreeqquueesstt eexxcceepptt tthhaatt tthhee ttrraannssllaattiioonnss ddoo nnoott aappppllyy ttoo tteexxtt tthhaatt iiss ttrraannssppaarreennttllyy tthhrroouugghhppuutt iinnttoo aa ddiivveerrssiioonn wwiitthh <>\\!!<>.. <> ..ttrrooffff <> MMaakkee tthhee bbuuiilltt--iinn ccoonnddiittiioonn <>tt<> ttrruuee aanndd <>nn<> ffaallssee.. <> ..uuff _f_o_n_t <> UUnnddeerrlliinnee ffoonntt sseett ttoo <>ffoonntt<> ((ttoo bbee sswwiittcchheedd ttoo bbyy <>..uull<>)).. <> ..uull _N <> UUnnddeerrlliinnee ((iittaalliicciizzee iinn ttrrooffff)) <>NN<> iinnppuutt lliinneess.. <> ..uunnffoorrmmaatt _d_i_v_e_r_s_i_o_n <> UUnnffoorrmmaatt ssppaaccee cchhaarraacctteerrss aanndd ttaabbss,, pprreesseerrvviinngg ffoonntt iinnffoorrmmaattiioonn iinn <>ddiivveerrssiioonn<>.. <> ..vvpptt _n <> EEnnaabbllee vveerrttiiccaall ppoossiittiioonn ttrraappss iiff <>nn<> iiss nnoonn--zzeerroo,, ddiissaabbllee tthheemm ootthheerrwwiissee.. <> ..vvss <> CChhaannggee ttoo pprreevviioouuss vveerrttiiccaall bbaassee lliinnee ssppaacciinngg.. <> ..vvss _±_N <> SSeett vveerrttiiccaall bbaassee lliinnee ssppaacciinngg aaccccoorrddiinngg ttoo <>±±NN<> ((ddeeffaauulltt ssccaalliinngg iinnddiiccaattoorr pp)).. DDeeffaauulltt vvaalluuee iiss 1122pp.. <> ..wwaarrnn _n <> SSeett wwaarrnniinnggss ccooddee ttoo <>nn<>.. <> ..wwaarrnnssccaallee _s_i <> SSeett ssccaalliinngg iinnddiiccaattoorr uusseedd iinn wwaarrnniinnggss ttoo <>ssii<>.. <> ..wwhh _N <> RReemmoovvee ((ffiirrsstt)) ttrraapp aatt ppoossiittiioonn <>NN<>.. <> ..wwhh _N _t_r_a_p <> SSeett llooccaattiioonn ttrraapp;; nneeggaattiivvee mmeeaannss ffrroomm ppaaggee bboottttoomm.. <> ..wwhhiillee _c_o_n_d _a_n_y_t_h_i_n_g <> WWhhiillee ccoonnddiittiioonn <>ccoonndd<> iiss ttrruuee,, aacccceepptt <>aannyytthhiinngg<> aass iinnppuutt.. <> ..wwrriittee _s_t_r_e_a_m _a_n_y_t_h_i_n_g <> WWrriittee <>aannyytthhiinngg<> ttoo tthhee ssttrreeaamm nnaammeedd <>ssttrreeaamm<>.. <> ..wwrriitteecc _s_t_r_e_a_m _a_n_y_t_h_i_n_g <> SSiimmiillaarr ttoo ..wwrriittee wwiitthhoouutt eemmiittttiinngg aa ffiinnaall nneewwlliinnee.. <> ..wwrriitteemm _s_t_r_e_a_m _x_x <> WWrriittee ccoonntteennttss ooff mmaaccrroo oorr ssttrriinngg <>xxxx<> ttoo tthhee ssttrreeaamm nnaammeedd <>ssttrreeaamm<>.. <> <> BBeessiiddeess tthheessee ssttaannddaarrdd ggrrooffff rreeqquueessttss,, tthheerree mmiigghhtt bbee ffuurrtthheerr mmaaccrroo ccaallllss.. TThheeyy ccaann oorriiggiinnaattee ffrroomm aa mmaaccrroo ppaacckkaaggee ((sseeee <>rrooffff((77))<> ffoorr aann oovveerrvviieeww)) oorr ffrroomm aa pprreepprroocceessssoorr.. <> PPrreepprroocceessssoorr mmaaccrrooss aarree eeaassyy ttoo bbee rreeccooggnniizzeedd.. TThheeyy eenncclloossee tthheeiirr ccooddee iinnttoo aa ppaaiirr ooff cchhaarraacctteerriissttiicc mmaaccrrooss.. <> <> bbooxx,, cceenntteerr,, ttaabb ((@@));; cc || cc || cc CCffCCBB || CCffCCBB || CCffCCBB.. pprreepprroocceessssoorr@@ssttaarrtt mmaaccrroo@@ eenndd mmaaccrroo == eeqqnn@@..PPSS@@..PPEE ggrraapp@@..GG11@@..GG22 ggrrnn@@..GGSS@@..GGEE ppiicc@@..PPSS@@..PPEE rreeffeerr@@..RR11@@..RR22 ssooeelliimm@@_n_o_n_e_@_n_o_n_e _t_b_l_@_._T_S_@_._T_E _<_/_p_r_e_> _<_p_> _<_h_3 _i_d_=_"_E_S_C_A_P_E _S_E_Q_U_E_N_C_E_S_"_> _E_S_C_A_P_E _S_E_Q_U_E_N_C_E_S _<_/_h_3_> _E_s_c_a_p_e _s_e_q_u_e_n_c_e_s _a_r_e _i_n_-_l_i_n_e _l_a_n_g_u_a_g_e _e_l_e_m_e_n_t_s _u_s_u_a_l_l_y _i_n_t_r_o_d_u_c_e_d _b_y _a _b_a_c_k_s_l_a_s_h `\\' _a_n_d _f_o_l_l_o_w_e_d _b_y _a_n _e_s_c_a_p_e _n_a_m_e _a_n_d _s_o_m_e_t_i_m_e_s _b_y _a _r_e_q_u_i_r_e_d _a_r_g_u_m_e_n_t_. _I_n_p_u_t _p_r_o_c_e_s_s_i_n_g _i_s _c_o_n_t_i_n_u_e_d _d_i_r_e_c_t_l_y _a_f_t_e_r _t_h_e _e_s_c_a_p_e_d _c_h_a_r_a_c_t_e_r _o_r _t_h_e _a_r_g_u_m_e_n_t _r_e_s_p_. _w_i_t_h_o_u_t _a_n _i_n_t_e_r_v_e_n_i_n_g _s_e_p_a_r_a_t_i_o_n _c_h_a_r_a_c_t_e_r_. _S_o _t_h_e_r_e _m_u_s_t _b_e _a _w_a_y _t_o _d_e_t_e_r_m_i_n_e _t_h_e _e_n_d _o_f _t_h_e _e_s_c_a_p_e _n_a_m_e _a_n_d _t_h_e _e_n_d _o_f _t_h_e _a_r_g_u_m_e_n_t_. _<_p_> _T_h_i_s _i_s _d_o_n_e _b_y _e_n_c_l_o_s_i_n_g _n_a_m_e_s _(_e_s_c_a_p_e _n_a_m_e _a_n_d _a_r_g_u_m_e_n_t_s _c_o_n_s_i_s_t_i_n_g _o_f _a _v_a_r_i_a_b_l_e _n_a_m_e_) _b_y _a _p_a_i_r _o_f _b_r_a_c_k_e_t_s _<_b_>_[_<_/_b_>_<_i_>_n_a_m_e_<_/_i_>_] _a_n_d _c_o_n_s_t_a_n_t _a_r_g_u_m_e_n_t_s _(_n_u_m_b_e_r _e_x_p_r_e_s_s_i_o_n_s _a_n_d _c_h_a_r_a_c_t_e_r_s_) _b_y _a_p_o_s_t_r_o_p_h_e_s _(_A_S_C_I_I _0_x_2_7_) _l_i_k_e _<_b_>_'_<_/_b_>_<_i_>_c_o_n_s_t_a_n_t_<_/_i_>_<_b_>_'_<_/_b_>_<_i_>.

There are abbreviations for short names. Two character escape names can be specified by an opening parenthesis like \(xy without a closing counterpart. And all one-character names different from the special characters `[[' and `((' can even be specified without a marker in the form \c.

Constant arguments of length 1 can omit the marker apostrophes, too, but there is no two-character analogue.

While 1-character escape sequences are mainly used for in-line functions and system related tasks, the 2-letter names following the \( construct are used for special characters predefined by the roff system. Escapes sequences with names of more than two characters \\[[_n_a_m_e]] denote user defined named characters (see the char request).

Single Character Escapes

\\"" Beginning of a comment.
Everything up to the end of the line is ignored.
\\## Everything up to and including the next newline is ignored.
This is interpreted in copy mode. This is like \" except that the terminating newline is ignored as well.
\\**_s _T_h_e _s_t_r_i_n_g _s_t_o_r_e_d _i_n _t_h_e _s_t_r_i_n_g _v_a_r_i_a_b_l_e _w_i_t_h _1_-_c_h_a_r_a_c_t_e_r _n_a_m_e _<_d_d_> _<_i_>_s_<_/_i_>_. _<_d_t_> _<_b_>\\**((_s_t _T_h_e _s_t_r_i_n_g _s_t_o_r_e_d _i_n _t_h_e _s_t_r_i_n_g _v_a_r_i_a_b_l_e _w_i_t_h _2_-_c_h_a_r_a_c_t_e_r _n_a_m_e _<_d_d_> _<_i_>_s_t_<_/_i_>_. _<_d_t_> _<_b_>\\**[[_s_t_r_i_n_g_v_a_r _a_r_g_1 _a_r_g_2 _._._.]] _T_h_e _s_t_r_i_n_g _s_t_o_r_e_d _i_n _t_h_e _s_t_r_i_n_g _v_a_r_i_a_b_l_e _w_i_t_h _a_r_b_i_t_r_a_r_y _l_e_n_g_t_h _n_a_m_e _<_d_d_> _<_i_>_s_t_r_i_n_g_v_a_r_<_/_i_>_, _t_a_k_i_n_g _<_i_>_a_r_g_1_<_/_i_>_, _<_i_>_a_r_g_2_<_/_i_>_, _<_i_>_._._._<_/_i_> _a_s _a_r_g_u_m_e_n_t_s_. _<_d_t_> _<_b_>\\$$00 _T_h_e _n_a_m_e _b_y _w_h_i_c_h _t_h_e _c_u_r_r_e_n_t _m_a_c_r_o _w_a_s _i_n_v_o_k_e_d_. _<_d_d_> _T_h_e _a_l_s _r_e_q_u_e_s_t _c_a_n _m_a_k_e _a _m_a_c_r_o _h_a_v_e _m_o_r_e _t_h_a_n _o_n_e _n_a_m_e_. _<_d_t_> _<_b_>\\$$_x _M_a_c_r_o _o_r _s_t_r_i_n_g _a_r_g_u_m_e_n_t _w_i_t_h _1_-_p_l_a_c_e _n_u_m_b_e_r _<_d_d_> _<_i_>_x_<_/_i_>_, _w_h_e_r_e _<_i_>_x_<_/_i_> _i_s _a _d_i_g_i_t _b_e_t_w_e_e_n _1 _a_n_d _9_. _<_d_t_> _<_b_>\\$$((_x_y _M_a_c_r_o _o_r _s_t_r_i_n_g _a_r_g_u_m_e_n_t _w_i_t_h _2_-_d_i_g_i_t _n_u_m_b_e_r _<_d_d_> _<_i_>_x_y_<_/_i_>_. _<_d_t_> _<_b_>\\$$[[_n_e_x_p]] _M_a_c_r_o _o_r _s_t_r_i_n_g _a_r_g_u_m_e_n_t _w_i_t_h _n_u_m_b_e_r _<_d_d_> _<_i_>_n_e_x_p_<_/_i_>_, _w_h_e_r_e _<_i_>_n_e_x_p_<_/_i_> _i_s _a _n_u_m_e_r_i_c_a_l _e_x_p_r_e_s_s_i_o_n _e_v_a_l_u_a_t_i_n_g _t_o _a_n _i_n_t_e_g_e_r _>_=_1_. _<_d_t_> _<_b_>\\$$** _I_n _a _m_a_c_r_o _o_r _s_t_r_i_n_g_, _t_h_e _c_o_n_c_a_t_e_n_a_t_i_o_n _o_f _a_l_l _t_h_e _a_r_g_u_m_e_n_t_s _s_e_p_a_r_a_t_e_d _<_d_d_> _b_y _s_p_a_c_e_s_. _<_d_t_> _<_b_>\\$$@@ _I_n _a _m_a_c_r_o _o_r _s_t_r_i_n_g_, _t_h_e _c_o_n_c_a_t_e_n_a_t_i_o_n _o_f _a_l_l _t_h_e _a_r_g_u_m_e_n_t_s _w_i_t_h _e_a_c_h _<_d_d_> _s_u_r_r_o_u_n_d_e_d _b_y _d_o_u_b_l_e _q_u_o_t_e_s_, _a_n_d _s_e_p_a_r_a_t_e_d _b_y _s_p_a_c_e_s_. _<_d_t_> _<_b_>\\\\ _r_e_d_u_c_e_s _t_o _a _s_i_n_g_l_e _b_a_c_k_s_l_a_s_h_; _u_s_e_f_u_l _t_o _d_e_l_a_y _i_t_s _i_n_t_e_r_p_r_e_t_a_t_i_o_n _a_s _<_d_d_> _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r _i_n _c_o_p_y _m_o_d_e_. _F_o_r _a _p_r_i_n_t_a_b_l_e _b_a_c_k_s_l_a_s_h_, _u_s_e _<_b_>_\_e_<_/_b_>_, _o_r _e_v_e_n _b_e_t_t_e_r _<_b_>_\_[_r_s_]_<_/_b_>_, _t_o _b_e _i_n_d_e_p_e_n_d_e_n_t _f_r_o_m _t_h_e _c_u_r_r_e_n_t _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r_. _<_d_t_> _<_b_>\\'' _T_h_e _a_c_u_t_e _a_c_c_e_n_t _´_; _s_a_m_e _a_s _<_d_d_> _<_b_>_\_(_a_a_<_/_b_>_. _U_n_e_s_c_a_p_e_d_: _a_p_o_s_t_r_o_p_h_e_, _r_i_g_h_t _q_u_o_t_a_t_i_o_n _m_a_r_k_, _s_i_n_g_l_e _q_u_o_t_e _(_A_S_C_I_I _0_x_2_7_)_. _<_d_t_> _<_b_>\\`` _T_h_e _g_r_a_v_e _a_c_c_e_n_t _`_; _s_a_m_e _a_s _<_d_d_> _<_b_>_\_(_g_a_<_/_b_>_. _U_n_e_s_c_a_p_e_d_: _l_e_f_t _q_u_o_t_e_, _b_a_c_k_q_u_o_t_e _(_A_S_C_I_I _0_x_6_0_)_. _<_d_t_> _<_b_>\\-- _T_h_e _- _s_i_g_n _i_n _t_h_e _c_u_r_r_e_n_t _f_o_n_t_. _<_d_d_> _<_d_t_> _<_b_>\\.. _A_n _u_n_i_n_t_e_r_p_r_e_t_e_d _d_o_t _(_p_e_r_i_o_d_)_, _e_v_e_n _a_t _s_t_a_r_t _o_f _l_i_n_e_. _<_d_d_> _<_d_t_> _<_b_>\\%% _D_e_f_a_u_l_t _o_p_t_i_o_n_a_l _h_y_p_h_e_n_a_t_i_o_n _c_h_a_r_a_c_t_e_r_. _<_d_d_> _<_d_t_> _<_b_>\\!! _T_r_a_n_s_p_a_r_e_n_t _l_i_n_e _i_n_d_i_c_a_t_o_r_. _<_d_d_> _<_d_t_> _<_b_>\\??_a_n_y_t_h_i_n_g?? _I_n _a _d_i_v_e_r_s_i_o_n_, _t_h_i_s _w_i_l_l _t_r_a_n_s_p_a_r_e_n_t_l_y _e_m_b_e_d _<_d_d_> _<_i_>_a_n_y_t_h_i_n_g_<_/_i_> _i_n _t_h_e _d_i_v_e_r_s_i_o_n_. _<_i_>_a_n_y_t_h_i_n_g_<_/_i_> _i_s _r_e_a_d _i_n _c_o_p_y _m_o_d_e_. _S_e_e _a_l_s_o _t_h_e _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s _\_! _a_n_d _<_b_>_\_?_<_/_b_>_. _<_d_t_> _<_b_>\\_s_p_a_c_e _U_n_p_a_d_d_a_b_l_e _s_p_a_c_e_-_s_i_z_e _s_p_a_c_e _c_h_a_r_a_c_t_e_r _(_n_o _l_i_n_e _b_r_e_a_k_)_. _<_d_d_> _<_d_t_> _<_b_>\\00 _D_i_g_i_t _w_i_d_t_h_. _<_d_d_> _<_d_t_> _<_b_>\\|| _1_/_6 _e_m _n_a_r_r_o_w _s_p_a_c_e _c_h_a_r_a_c_t_e_r_; _z_e_r_o _w_i_d_t_h _i_n _n_r_o_f_f_. _<_d_d_> _<_d_t_> _<_b_>\\^^ _1_/_1_2 _e_m _h_a_l_f_-_n_a_r_r_o_w _s_p_a_c_e _c_h_a_r_a_c_t_e_r_; _z_e_r_o _w_i_d_t_h _i_n _n_r_o_f_f_. _<_d_d_> _<_d_t_> _<_b_>\\&& _N_o_n_-_p_r_i_n_t_a_b_l_e_, _z_e_r_o _w_i_d_t_h _c_h_a_r_a_c_t_e_r_. _<_d_d_> _<_d_t_> _<_b_>\\)) _L_i_k_e _<_d_d_> _\_& _e_x_c_e_p_t _t_h_a_t _i_t _b_e_h_a_v_e_s _l_i_k_e _a _c_h_a_r_a_c_t_e_r _d_e_c_l_a_r_e_d _w_i_t_h _t_h_e _c_f_l_a_g_s _r_e_q_u_e_s_t _t_o _b_e _t_r_a_n_s_p_a_r_e_n_t _f_o_r _t_h_e _p_u_r_p_o_s_e_s _o_f _e_n_d _o_f _s_e_n_t_e_n_c_e _r_e_c_o_g_n_i_t_i_o_n_. _<_d_t_> _<_b_>\\// _I_n_c_r_e_a_s_e_s _t_h_e _w_i_d_t_h _o_f _t_h_e _p_r_e_c_e_d_i_n_g _c_h_a_r_a_c_t_e_r _s_o _t_h_a_t _t_h_e _s_p_a_c_i_n_g _<_d_d_> _b_e_t_w_e_e_n _t_h_a_t _c_h_a_r_a_c_t_e_r _a_n_d _t_h_e _f_o_l_l_o_w_i_n_g _c_h_a_r_a_c_t_e_r _w_i_l_l _b_e _c_o_r_r_e_c_t _i_f _t_h_e _f_o_l_l_o_w_i_n_g _c_h_a_r_a_c_t_e_r _i_s _a _r_o_m_a_n _c_h_a_r_a_c_t_e_r_. _<_d_t_> _<_b_>\\,, _M_o_d_i_f_i_e_s _t_h_e _s_p_a_c_i_n_g _o_f _t_h_e _f_o_l_l_o_w_i_n_g _c_h_a_r_a_c_t_e_r _s_o _t_h_a_t _t_h_e _s_p_a_c_i_n_g _<_d_d_> _b_e_t_w_e_e_n _t_h_a_t _c_h_a_r_a_c_t_e_r _a_n_d _t_h_e _p_r_e_c_e_d_i_n_g _c_h_a_r_a_c_t_e_r _w_i_l_l _c_o_r_r_e_c_t _i_f _t_h_e _p_r_e_c_e_d_i_n_g _c_h_a_r_a_c_t_e_r _i_s _a _r_o_m_a_n _c_h_a_r_a_c_t_e_r_. _<_d_t_> _<_b_>\\~~ _U_n_b_r_e_a_k_a_b_l_e _s_p_a_c_e _t_h_a_t _s_t_r_e_t_c_h_e_s _l_i_k_e _a _n_o_r_m_a_l _i_n_t_e_r_-_w_o_r_d _s_p_a_c_e _w_h_e_n _a _<_d_d_> _l_i_n_e _i_s _a_d_j_u_s_t_e_d_. _<_d_t_> _<_b_>\\:: _I_n_s_e_r_t_s _a _z_e_r_o_-_w_i_d_t_h _b_r_e_a_k _p_o_i_n_t _(_s_i_m_i_l_a_r _t_o _<_d_d_> _\_% _b_u_t _w_i_t_h_o_u_t _a _s_o_f_t _h_y_p_h_e_n _c_h_a_r_a_c_t_e_r_)_. _<_d_t_> _<_b_>\\_n_e_w_l_i_n_e _I_g_n_o_r_e_d _n_e_w_l_i_n_e_, _f_o_r _c_o_n_t_i_n_u_a_t_i_o_n _l_i_n_e_s_. _<_d_d_> _<_d_t_> _<_b_>\\{{ _B_e_g_i_n _c_o_n_d_i_t_i_o_n_a_l _i_n_p_u_t_. _<_d_d_> _<_d_t_> _<_b_>\\}} _E_n_d _c_o_n_d_i_t_i_o_n_a_l _i_n_p_u_t_. _<_d_d_> _<_d_t_> _<_b_>\\((_s_c _T_h_e _s_p_e_c_i_a_l _c_h_a_r_a_c_t_e_r _w_i_t_h _2_-_c_h_a_r_a_c_t_e_r _n_a_m_e _<_d_d_> _<_i_>_s_c_<_/_i_>_, _s_e_e _s_e_c_t_i_o_n _<_b_>_S_p_e_c_i_a_l _C_h_a_r_a_c_t_e_r_s_<_/_b_>_. _<_d_t_> _<_b_>\\[[_n_a_m_e]] _T_h_e _n_a_m_e_d _c_h_a_r_a_c_t_e_r _(_o_r _r_a_t_h_e_r _g_l_y_p_h_) _w_i_t_h _a_r_b_i_t_r_a_r_y _l_e_n_g_t_h _n_a_m_e _<_d_d_> _<_i_>_n_a_m_e_<_/_i_>_. _<_d_t_> _<_b_>\\[[_c_o_m_p_1 _c_o_m_p_2 _._._.]] _A _c_o_m_p_o_s_i_t_e _g_l_y_p_h _w_i_t_h _c_o_m_p_o_n_e_n_t_s _<_d_d_> _<_i_>_c_o_m_p_1_<_/_i_>_, _<_i_>_c_o_m_p_2_<_/_i_>_, _<_i_>_._._._<_/_i_> _<_d_t_> _<_b_>\\aa _N_o_n_-_i_n_t_e_r_p_r_e_t_e_d _l_e_a_d_e_r _c_h_a_r_a_c_t_e_r_. _<_d_d_> _<_d_t_> _<_b_>\\AA''_a_n_y_t_h_i_n_g'' _I_f _<_d_d_> _<_i_>_a_n_y_t_h_i_n_g_<_/_i_> _i_s _a_c_c_e_p_t_a_b_l_e _a_s _a _n_a_m_e _o_f _a _s_t_r_i_n_g_, _m_a_c_r_o_, _d_i_v_e_r_s_i_o_n_, _r_e_g_i_s_t_e_r_, _e_n_v_i_r_o_n_m_e_n_t _o_r _f_o_n_t _i_t _e_x_p_a_n_d_s _t_o _1_, _a_n_d _t_o _0 _o_t_h_e_r_w_i_s_e_. _<_d_t_> _<_b_>\\bb''_a_b_c_._._.'' _B_r_a_c_k_e_t _b_u_i_l_d_i_n_g _f_u_n_c_t_i_o_n_. _<_d_d_> _<_d_t_> _<_b_>\\BB''_a_n_y_t_h_i_n_g'' _I_f _<_d_d_> _<_i_>_a_n_y_t_h_i_n_g_<_/_i_> _i_s _a_c_c_e_p_t_a_b_l_e _a_s _a _v_a_l_i_d _n_u_m_e_r_i_c _e_x_p_r_e_s_s_i_o_n _i_t _e_x_p_a_n_d_s _t_o _1_, _a_n_d _t_o _0 _o_t_h_e_r_w_i_s_e_. _<_d_t_> _<_b_>\\cc _I_n_t_e_r_r_u_p_t _t_e_x_t _p_r_o_c_e_s_s_i_n_g_. _<_d_d_> _<_d_t_> _<_b_>\\CC''_c_h_a_r'' _T_h_e _c_h_a_r_a_c_t_e_r _c_a_l_l_e_d _<_d_d_> _<_i_>_c_h_a_r_<_/_i_>_; _s_a_m_e _a_s \\[[_c_h_a_r]]_, _b_u_t _c_o_m_p_a_t_i_b_l_e _t_o _o_t_h_e_r _r_o_f_f _v_e_r_s_i_o_n_s_. _<_d_t_> _<_b_>\\dd _F_o_r_w_a_r_d _(_d_o_w_n_) _1_/_2 _e_m _v_e_r_t_i_c_a_l _u_n_i_t _(_1_/_2 _l_i_n_e _i_n _n_r_o_f_f_)_. _<_d_d_> _<_d_t_> _<_b_>\\DD''_c_h_a_r_s_e_q'' _D_r_a_w _a _g_r_a_p_h_i_c_a_l _e_l_e_m_e_n_t _d_e_f_i_n_e_d _b_y _t_h_e _c_h_a_r_a_c_t_e_r_s _i_n _<_d_d_> _<_i_>_c_h_a_r_s_e_q_<_/_i_>_; _s_e_e _g_r_o_f_f _i_n_f_o _f_i_l_e _f_o_r _d_e_t_a_i_l_s_. _<_d_t_> _<_b_>\\ee _P_r_i_n_t_a_b_l_e _v_e_r_s_i_o_n _o_f _t_h_e _c_u_r_r_e_n_t _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r_. _<_d_d_> _<_d_t_> _<_b_>\\EE _E_q_u_i_v_a_l_e_n_t _t_o _a_n _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r_, _b_u_t _i_s _n_o_t _i_n_t_e_r_p_r_e_t_e_d _i_n _c_o_p_y_-_m_o_d_e_. _<_d_d_> _<_d_t_> _<_b_>\\ff_F _C_h_a_n_g_e _t_o _f_o_n_t _w_i_t_h _1_-_c_h_a_r_a_c_t_e_r _n_a_m_e _o_r _1_-_d_i_g_i_t _n_u_m_b_e_r _<_d_d_> _<_i_>_F_<_/_i_>_. _<_d_t_> _<_b_>\\ffPP _S_w_i_t_c_h _b_a_c_k _t_o _p_r_e_v_i_o_u_s _f_o_n_t_. _<_d_d_> _<_d_t_> _<_b_>\\ff((_f_o _C_h_a_n_g_e _t_o _f_o_n_t _w_i_t_h _2_-_c_h_a_r_a_c_t_e_r _n_a_m_e _o_r _2_-_d_i_g_i_t _n_u_m_b_e_r _<_d_d_> _<_i_>_f_o_<_/_i_>_. _<_d_t_> _<_b_>\\ff[[_f_o_n_t]] _C_h_a_n_g_e _t_o _f_o_n_t _w_i_t_h _a_r_b_i_t_r_a_r_y _l_e_n_g_t_h _n_a_m_e _o_r _n_u_m_b_e_r _e_x_p_r_e_s_s_i_o_n _<_d_d_> _<_i_>_f_o_n_t_<_/_i_>_. _<_d_t_> _<_b_>\\ff[[]] _S_w_i_t_c_h _b_a_c_k _t_o _p_r_e_v_i_o_u_s _f_o_n_t_. _<_d_d_> _<_d_t_> _<_b_>\\FF_f _C_h_a_n_g_e _t_o _f_o_n_t _f_a_m_i_l_y _w_i_t_h _1_-_c_h_a_r_a_c_t_e_r _n_a_m_e _<_d_d_> _<_i_>_f_<_/_i_>_. _<_d_t_> _<_b_>\\FF((_f_m _C_h_a_n_g_e _t_o _f_o_n_t _f_a_m_i_l_y _w_i_t_h _2_-_c_h_a_r_a_c_t_e_r _n_a_m_e _<_d_d_> _<_i_>_f_m_<_/_i_>_. _<_d_t_> _<_b_>\\FF[[_f_a_m]] _C_h_a_n_g_e _t_o _f_o_n_t _f_a_m_i_l_y _w_i_t_h _a_r_b_i_t_r_a_r_y _l_e_n_g_t_h _n_a_m_e _<_d_d_> _<_i_>_f_a_m_<_/_i_>_. _<_d_t_> _<_b_>\\FF[[]] _S_w_i_t_c_h _b_a_c_k _t_o _p_r_e_v_i_o_u_s _f_o_n_t _f_a_m_i_l_y_. _<_d_d_> _<_d_t_> _<_b_>\\gg[[_r_e_g]] _R_e_t_u_r_n _f_o_r_m_a_t _o_f _r_e_g_i_s_t_e_r _w_i_t_h _n_a_m_e _<_d_d_> _<_i_>_r_e_g_<_/_i_> _s_u_i_t_a_b_l_e _f_o_r _<_b_>_._a_f_<_/_b_>_. _A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s \\gg((_x_y _a_n_d \\gg_x_. _<_d_t_> _<_b_>\\hh''_N'' _L_o_c_a_l _h_o_r_i_z_o_n_t_a_l _m_o_t_i_o_n_; _m_o_v_e _r_i_g_h_t _<_d_d_> _<_i_>_N_<_/_i_> _(_l_e_f_t _i_f _n_e_g_a_t_i_v_e_)_. _<_d_t_> _<_b_>\\HH''_N'' _S_e_t _h_e_i_g_h_t _o_f _c_u_r_r_e_n_t _f_o_n_t _t_o _<_d_d_> _<_i_>_N_<_/_i_>_. _<_d_t_> _<_b_>\\kk[[_r_e_g]] _M_a_r_k _h_o_r_i_z_o_n_t_a_l _i_n_p_u_t _p_l_a_c_e _i_n _r_e_g_i_s_t_e_r _w_i_t_h _a_r_b_i_t_r_a_r_y _l_e_n_g_t_h _n_a_m_e _<_d_d_> _<_i_>_r_e_g_<_/_i_>_. _A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s \\kk((_x_y _a_n_d \\kk_x_. _<_d_t_> _<_b_>\\ll''_N_c'' _H_o_r_i_z_o_n_t_a_l _l_i_n_e _d_r_a_w_i_n_g _f_u_n_c_t_i_o_n _(_o_p_t_i_o_n_a_l_l_y _u_s_i_n_g _c_h_a_r_a_c_t_e_r _<_d_d_> _<_i_>_c_<_/_i_>_)_. _<_d_t_> _<_b_>\\LL''_N_c'' _V_e_r_t_i_c_a_l _l_i_n_e _d_r_a_w_i_n_g _f_u_n_c_t_i_o_n _(_o_p_t_i_o_n_a_l_l_y _u_s_i_n_g _c_h_a_r_a_c_t_e_r _<_d_d_> _<_i_>_c_<_/_i_>_)_. _<_d_t_> _<_b_>\\mm[[_c_o_l_o_r]] _C_h_a_n_g_e _t_o _c_o_l_o_r _<_d_d_> _<_i_>_c_o_l_o_r_<_/_i_>_. _A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s \\mm((_c_o _a_n_d \\mm_c_. _<_d_t_> _<_b_>\\mm[[]] _S_w_i_t_c_h _b_a_c_k _t_o _p_r_e_v_i_o_u_s _c_o_l_o_r_. _<_d_d_> _<_d_t_> _<_b_>\\MM[[_c_o_l_o_r]] _C_h_a_n_g_e _f_i_l_l_i_n_g _c_o_l_o_r _f_o_r _c_l_o_s_e_d _d_r_a_w_n _o_b_j_e_c_t_s _t_o _c_o_l_o_r _<_d_d_> _<_i_>_c_o_l_o_r_<_/_i_>_. _A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s \\MM((_c_o _a_n_d \\MM_c_. _<_d_t_> _<_b_>\\MM[[]] _S_w_i_t_c_h _t_o _p_r_e_v_i_o_u_s _f_i_l_l _c_o_l_o_r_. _<_d_d_> _<_d_t_> _<_b_>\\nn_r _T_h_e _n_u_m_e_r_i_c_a_l _v_a_l_u_e _s_t_o_r_e_d _i_n _t_h_e _r_e_g_i_s_t_e_r _v_a_r_i_a_b_l_e _w_i_t_h _t_h_e _<_d_d_> _1_-_c_h_a_r_a_c_t_e_r _n_a_m_e _<_i_>_r_<_/_i_>_. _<_d_t_> _<_b_>\\nn((_r_e _T_h_e _n_u_m_e_r_i_c_a_l _v_a_l_u_e _s_t_o_r_e_d _i_n _t_h_e _r_e_g_i_s_t_e_r _v_a_r_i_a_b_l_e _w_i_t_h _t_h_e _<_d_d_> _2_-_c_h_a_r_a_c_t_e_r _n_a_m_e _<_i_>_r_e_<_/_i_>_. _<_d_t_> _<_b_>\\nn[[_r_e_g]] _T_h_e _n_u_m_e_r_i_c_a_l _v_a_l_u_e _s_t_o_r_e_d _i_n _t_h_e _r_e_g_i_s_t_e_r _v_a_r_i_a_b_l_e _w_i_t_h _a_r_b_i_t_r_a_r_y _<_d_d_> _l_e_n_g_t_h _n_a_m_e _<_i_>_r_e_g_<_/_i_>_. _<_d_t_> _<_b_>\\NN''_n'' _T_y_p_e_s_e_t _t_h_e _c_h_a_r_a_c_t_e_r _w_i_t_h _c_o_d_e _<_d_d_> _<_i_>_n_<_/_i_> _i_n _t_h_e _c_u_r_r_e_n_t _f_o_n_t_, _n_o _s_p_e_c_i_a_l _f_o_n_t_s _a_r_e _s_e_a_r_c_h_e_d_. _U_s_e_f_u_l _f_o_r _a_d_d_i_n_g _c_h_a_r_a_c_t_e_r_s _t_o _a _f_o_n_t _u_s_i_n_g _t_h_e _c_h_a_r _r_e_q_u_e_s_t_. _<_d_t_> _<_b_>\\oo''_a_b_c_._._.'' _O_v_e_r_s_t_r_i_k_e _c_h_a_r_a_c_t_e_r_s _<_d_d_> _<_i_>_a_<_/_i_>_, _<_i_>_b_<_/_i_>_, _<_i_>_c_<_/_i_>_, _e_t_c_. _<_d_t_> _<_b_>\\OO_0 _D_i_s_a_b_l_e _g_l_y_p_h _o_u_t_p_u_t_. _<_d_d_> _M_a_i_n_l_y _f_o_r _i_n_t_e_r_n_a_l _u_s_e_. _<_d_t_> _<_b_>\\OO_1 _E_n_a_b_l_e _g_l_y_p_h _o_u_t_p_u_t_. _<_d_d_> _M_a_i_n_l_y _f_o_r _i_n_t_e_r_n_a_l _u_s_e_. _<_d_t_> _<_b_>\\pp _B_r_e_a_k _a_n_d _s_p_r_e_a_d _o_u_t_p_u_t _l_i_n_e_. _<_d_d_> _<_d_t_> _<_b_>\\rr _R_e_v_e_r_s_e _1 _e_m _v_e_r_t_i_c_a_l _m_o_t_i_o_n _(_r_e_v_e_r_s_e _l_i_n_e _i_n _n_r_o_f_f_)_. _<_d_d_> _<_d_t_> _<_b_>\\RR''_n_a_m_e _±_n'' _T_h_e _s_a_m_e _a_s _<_d_d_> _._n_r _<_i_>_n_a_m_e_<_/_i_> _<_i_>_±_n_<_/_i_>_. _<_d_t_> _<_b_>\\ss[[_±_N]] _S_e_t _t_h_e _p_o_i_n_t _s_i_z_e _t_o _<_d_d_> _<_i_>_N_<_/_i_> _s_c_a_l_e_d _p_o_i_n_t_s_. _N_o_t_e _t_h_e _a_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s _<_b_>_\_s_<_/_b_>_<_i_>_±_<_/_i_>_<_b_>_[_<_/_b_>_<_i_>_N_<_/_i_>_]_, _<_b_>_\_s_'_<_/_b_>_<_i_>_±_N_<_/_i_>_'_, _<_b_>_\_s_<_/_b_>_<_i_>_±_<_/_i_>_<_b_>_'_<_/_b_>_<_i_>_N_<_/_i_>_'_, \\ss((_±_x_y_, _<_b_>_\_s_<_/_b_>_<_i_>_±_<_/_i_>_<_b_>_(_<_/_b_>_<_i_>_x_y_, \\ss_±_x_. _S_a_m_e _a_s _p_s _r_e_q_u_e_s_t_. _<_d_t_> _<_b_>\\SS''_N'' _S_l_a_n_t _o_u_t_p_u_t _<_d_d_> _<_i_>_N_<_/_i_> _d_e_g_r_e_e_s_. _<_d_t_> _<_b_>\\tt _N_o_n_-_i_n_t_e_r_p_r_e_t_e_d _h_o_r_i_z_o_n_t_a_l _t_a_b_. _<_d_d_> _<_d_t_> _<_b_>\\uu _R_e_v_e_r_s_e _(_u_p_) _1_/_2 _e_m _v_e_r_t_i_c_a_l _m_o_t_i_o_n _(_1_/_2 _l_i_n_e _i_n _n_r_o_f_f_)_. _<_d_d_> _<_d_t_> _<_b_>\\vv''_N'' _L_o_c_a_l _v_e_r_t_i_c_a_l _m_o_t_i_o_n_; _m_o_v_e _d_o_w_n _<_d_d_> _<_i_>_N_<_/_i_> _(_u_p _i_f _n_e_g_a_t_i_v_e_)_. _<_d_t_> _<_b_>\\VV[[_e_n_v]] _T_h_e _c_o_n_t_e_n_t_s _o_f _t_h_e _e_n_v_i_r_o_n_m_e_n_t _v_a_r_i_a_b_l_e _<_d_d_> _<_i_>_e_n_v_<_/_i_>_. _A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s \\VV((_x_y _a_n_d \\VV_x_. _<_d_t_> _<_b_>\\ww''_s_t_r_i_n_g'' _T_h_e _w_i_d_t_h _o_f _t_h_e _c_h_a_r_a_c_t_e_r _s_e_q_u_e_n_c_e _<_d_d_> _<_i_>_s_t_r_i_n_g_<_/_i_>_. _<_d_t_> _<_b_>\\xx''_N'' _E_x_t_r_a _l_i_n_e_-_s_p_a_c_e _f_u_n_c_t_i_o_n _(_n_e_g_a_t_i_v_e _b_e_f_o_r_e_, _p_o_s_i_t_i_v_e _a_f_t_e_r_)_. _<_d_d_> _<_d_t_> _<_b_>\\XX''_s_t_r_i_n_g'' _O_u_t_p_u_t _<_d_d_> _<_i_>_s_t_r_i_n_g_<_/_i_> _a_s _d_e_v_i_c_e _c_o_n_t_r_o_l _f_u_n_c_t_i_o_n_. _<_d_t_> _<_b_>\\YY[[_n_a_m_e]] _O_u_t_p_u_t _s_t_r_i_n_g _v_a_r_i_a_b_l_e _o_r _m_a_c_r_o _<_d_d_> _<_i_>_n_a_m_e_<_/_i_> _u_n_i_n_t_e_r_p_r_e_t_e_d _a_s _d_e_v_i_c_e _c_o_n_t_r_o_l _f_u_n_c_t_i_o_n_. _A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s \\YY((_x_y _a_n_d \\YY_x_. _<_d_t_> _<_b_>\\zz_c _P_r_i_n_t _<_d_d_> _<_i_>_c_<_/_i_> _w_i_t_h _z_e_r_o _w_i_d_t_h _(_w_i_t_h_o_u_t _s_p_a_c_i_n_g_)_. _<_d_t_> _<_b_>\\ZZ''_a_n_y_t_h_i_n_g'' _P_r_i_n_t _<_d_d_> _<_i_>_a_n_y_t_h_i_n_g_<_/_i_> _a_n_d _t_h_e_n _r_e_s_t_o_r_e _t_h_e _h_o_r_i_z_o_n_t_a_l _a_n_d _v_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n_; _<_i_>_a_n_y_t_h_i_n_g_<_/_i_> _m_a_y _n_o_t _c_o_n_t_a_i_n _t_a_b_s _o_r _l_e_a_d_e_r_s_. _<_/_d_l_> _<_p_> _T_h_e _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s _<_b_>_\_e_<_/_b_>_, _<_b_>_\_._<_/_b_>_, _<_b_>_\_"_<_/_b_>_, _<_b_>_\_$_<_/_b_>_, _<_b_>_\_*_<_/_b_>_, _<_b_>_\_a_<_/_b_>_, _<_b_>_\_n_<_/_b_>_, _<_b_>_\_t_<_/_b_>_, _<_b_>_\_g_<_/_b_>_, _a_n_d \\_n_e_w_l_i_n_e _a_r_e _i_n_t_e_r_p_r_e_t_e_d _i_n _c_o_p_y _m_o_d_e_. _<_p_> _E_s_c_a_p_e _s_e_q_u_e_n_c_e_s _s_t_a_r_t_i_n_g _w_i_t_h _\_( _o_r _\_[ _d_o _n_o_t _r_e_p_r_e_s_e_n_t _s_i_n_g_l_e _c_h_a_r_a_c_t_e_r _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s_, _b_u_t _i_n_t_r_o_d_u_c_e _e_s_c_a_p_e _n_a_m_e_s _w_i_t_h _t_w_o _o_r _m_o_r_e _c_h_a_r_a_c_t_e_r_s_. _<_p_> _I_f _a _b_a_c_k_s_l_a_s_h _i_s _f_o_l_l_o_w_e_d _b_y _a _c_h_a_r_a_c_t_e_r _t_h_a_t _d_o_e_s _n_o_t _c_o_n_s_t_i_t_u_t_e _a _d_e_f_i_n_e_d _e_s_c_a_p_e _s_e_q_u_e_n_c_e _t_h_e _b_a_c_k_s_l_a_s_h _i_s _s_i_l_e_n_t_l_y _i_g_n_o_r_e_d _a_n_d _t_h_e _c_h_a_r_a_c_t_e_r _m_a_p_s _t_o _i_t_s_e_l_f_. _<_h_4 _i_d_=_"_S_p_e_c_i_a_l _C_h_a_r_a_c_t_e_r_s_"_> _S_p_e_c_i_a_l _C_h_a_r_a_c_t_e_r_s _<_/_h_4_> _C_o_m_m_o_n _s_p_e_c_i_a_l _c_h_a_r_a_c_t_e_r_s _a_r_e _p_r_e_d_e_f_i_n_e_d _b_y _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s _o_f _t_h_e _f_o_r_m _<_b_>_\_(_<_/_b_>_<_i_>_x_y_<_/_i_> _w_i_t_h _c_h_a_r_a_c_t_e_r_s _<_i_>_x_<_/_i_> _a_n_d _<_i_>_y_<_/_i_>_. _S_o_m_e _o_f _t_h_e_s_e _e_x_i_s_t _i_n _t_h_e _u_s_u_a_l _f_o_n_t _w_h_i_l_e _m_o_s_t _o_f _t_h_e_m _a_r_e _o_n_l_y _a_v_a_i_l_a_b_l_e _i_n _t_h_e _s_p_e_c_i_a_l _f_o_n_t_. _B_e_l_o_w _y_o_u_'_l_l _f_i_n_d _a _s_e_l_e_c_t_i_o_n _o_f _t_h_e _m_o_s_t _i_m_p_o_r_t_a_n_t _g_l_y_p_h_s_; _a _c_o_m_p_l_e_t_e _l_i_s_t _c_a_n _b_e _f_o_u_n_d _i_n _<_a _h_r_e_f_=_"_._._/_h_t_m_l_7_/_g_r_o_f_f___c_h_a_r_._h_t_m_l_"_>_g_r_o_f_f___c_h_a_r_(_7_)_<_/_a_> _<_p_> _<_d_l _c_o_m_p_a_c_t_> _<_d_t_> _<_b_>\\((bbuu _B_u_l_l_e_t _s_i_g_n _<_d_d_> _<_d_t_> _<_b_>\\((ccoo _C_o_p_y_r_i_g_h_t _<_d_d_> _<_d_t_> _<_b_>\\((cctt _C_e_n_t _<_d_d_> _<_d_t_> _<_b_>\\((dddd _D_o_u_b_l_e _d_a_g_g_e_r _<_d_d_> _<_d_t_> _<_b_>\\((ddee _D_e_g_r_e_e _<_d_d_> _<_d_t_> _<_b_>\\((ddgg _D_a_g_g_e_r _<_d_d_> _<_d_t_> _<_b_>\\((rrss _P_r_i_n_t_a_b_l_e _d_o_u_b_l_e _q_u_o_t_e _<_d_d_> _<_d_t_> _<_b_>\\((eemm _E_m_-_d_a_s_h _<_d_d_> _<_d_t_> _<_b_>\\((hhyy _H_y_p_h_e_n _<_d_d_> _<_d_t_> _<_b_>\\((rrgg _R_e_g_i_s_t_e_r_e_d _s_i_g_n _<_d_d_> _<_d_t_> _<_b_>\\((rrss _P_r_i_n_t_a_b_l_e _b_a_c_k_s_l_a_s_h _c_h_a_r_a_c_t_e_r _<_d_d_> _<_d_t_> _<_b_>\\((sscc _S_e_c_t_i_o_n _s_i_g_n _<_d_d_> _<_d_t_> _<_b_>\\((uull _U_n_d_e_r_l_i_n_e _c_h_a_r_a_c_t_e_r _<_d_d_> _<_d_t_> _<_b_>\\((==== _I_d_e_n_t_i_c_a_l _<_d_d_> _<_d_t_> _<_b_>\\((>>== _L_a_r_g_e_r _o_r _e_q_u_a_l _<_d_d_> _<_d_t_> _<_b_>\\((<<== _L_e_s_s _o_r _e_q_u_a_l _<_d_d_> _<_d_t_> _<_b_>\\((!!== _N_o_t _e_q_u_a_l _<_d_d_> _<_d_t_> _<_b_>\\((-->> _R_i_g_h_t _a_r_r_o_w _<_d_d_> _<_d_t_> _<_b_>\\((<<-- _L_e_f_t _a_r_r_o_w _<_d_d_> _<_d_t_> _<_b_>\\((++-- _P_l_u_s_-_m_i_n_u_s _s_i_g_n _<_d_d_> _<_/_d_l_> _<_h_4 _i_d_=_"_S_t_r_i_n_g_s_"_> _S_t_r_i_n_g_s _<_/_h_4_> _S_t_r_i_n_g_s _a_r_e _d_e_f_i_n_e_d _b_y _t_h_e _d_s _r_e_q_u_e_s_t _a_n_d _c_a_n _b_e _r_e_t_r_i_e_v_e_d _b_y _t_h_e _\_* _e_s_c_a_p_e _s_e_q_u_e_n_c_e_. _<_p_> _S_t_r_i_n_g_s _s_h_a_r_e _t_h_e_i_r _n_a_m_e _s_p_a_c_e _w_i_t_h _m_a_c_r_o_s_. _S_o _s_t_r_i_n_g_s _a_n_d _m_a_c_r_o_s _w_i_t_h_o_u_t _a_r_g_u_m_e_n_t_s _a_r_e _r_o_u_g_h_l_y _e_q_u_i_v_a_l_e_n_t_; _i_t _i_s _p_o_s_s_i_b_l_e _t_o _c_a_l_l _a _s_t_r_i_n_g _l_i_k_e _a _m_a_c_r_o _a_n_d _v_i_c_e_-_v_e_r_s_a_, _b_u_t _t_h_i_s _o_f_t_e_n _l_e_a_d_s _t_o _u_n_p_r_e_d_i_c_t_a_b_l_e _r_e_s_u_l_t_s_. _T_h_e _f_o_l_l_o_w_i_n_g _s_t_r_i_n_g_s _a_r_e _p_r_e_d_e_f_i_n_e_d _i_n _g_r_o_f_f_. _<_d_l _c_o_m_p_a_c_t_> _<_d_t_> \*[..TT]
_T_h_e _n_a_m_e _o_f _t_h_e _c_u_r_r_e_n_t _o_u_t_p_u_t _d_e_v_i_c_e _a_s _s_p_e_c_i_f_i_e_d _b_y _t_h_e --TT _c_o_m_m_a_n_d _l_i_n_e _o_p_t_i_o_n_. _<_/_d_l_> _<_h_3 _i_d_=_"_R_E_G_I_S_T_E_R_S_"_> _R_E_G_I_S_T_E_R_S _<_/_h_3_> _R_e_g_i_s_t_e_r_s _a_r_e _v_a_r_i_a_b_l_e_s _t_h_a_t _s_t_o_r_e _a _v_a_l_u_e_. _I_n _g_r_o_f_f_, _m_o_s_t _r_e_g_i_s_t_e_r_s _s_t_o_r_e _n_u_m_e_r_i_c_a_l _v_a_l_u_e_s _(_s_e_e _s_e_c_t_i_o_n _<_b_>_N_U_M_E_R_I_C_A_L _E_X_P_R_E_S_S_I_O_N_S_<_/_b_> _a_b_o_v_e_)_, _b_u_t _s_o_m_e _c_a_n _a_l_s_o _h_o_l_d _a _s_t_r_i_n_g _v_a_l_u_e_. _<_p_> _E_a_c_h _r_e_g_i_s_t_e_r _i_s _g_i_v_e_n _a _n_a_m_e_. _A_r_b_i_t_r_a_r_y _r_e_g_i_s_t_e_r_s _c_a_n _b_e _d_e_f_i_n_e_d _a_n_d _s_e_t _w_i_t_h _t_h_e _r_e_q_u_e_s_t _n_r _<_i_>_r_e_g_i_s_t_e_r_<_/_i_>_. _<_p_> _T_h_e _v_a_l_u_e _s_t_o_r_e_d _i_n _a _r_e_g_i_s_t_e_r _c_a_n _b_e _r_e_t_r_i_e_v_e_d _b_y _t_h_e _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s _i_n_t_r_o_d_u_c_e_d _b_y _<_b_>_\_n_<_/_b_>_. _<_p_> _M_o_s_t _u_s_e_f_u_l _a_r_e _p_r_e_d_e_f_i_n_e_d _r_e_g_i_s_t_e_r_s_. _I_n _t_h_e _f_o_l_l_o_w_i_n_g _t_h_e _n_o_t_a_t_i_o_n _<_i_>_n_a_m_e_<_/_i_> _i_s _u_s_e_d _t_o _r_e_f_e_r _t_o _a _r_e_g_i_s_t_e_r _c_a_l_l_e_d _r_e_g_i_s_t_e_r _n_a_m_e _t_o _m_a_k_e _c_l_e_a_r _t_h_a_t _w_e _s_p_e_a_k _a_b_o_u_t _r_e_g_i_s_t_e_r_s_. _P_l_e_a_s_e _k_e_e_p _i_n _m_i_n_d _t_h_a_t _t_h_e \\nn[[]] _d_e_c_o_r_a_t_i_o_n _i_s _n_o_t _p_a_r_t _o_f _t_h_e _r_e_g_i_s_t_e_r _n_a_m_e_. _<_h_4 _i_d_=_"_R_e_a_d_-_o_n_l_y _R_e_g_i_s_t_e_r_s_"_> _R_e_a_d_-_o_n_l_y _R_e_g_i_s_t_e_r_s _<_/_h_4_> _T_h_e _f_o_l_l_o_w_i_n_g _r_e_g_i_s_t_e_r_s _h_a_v_e _p_r_e_d_e_f_i_n_e_d _v_a_l_u_e_s _t_h_a_t _s_h_o_u_l_d _n_o_t _b_e _m_o_d_i_f_i_e_d _b_y _t_h_e _u_s_e_r _(_u_s_u_a_l_l_y_, _r_e_g_i_s_t_e_r_s _s_t_a_r_t_i_n_g _w_i_t_h _a _d_o_t _a _r_e_a_d_-_o_n_l_y_)_. _M_o_s_t_l_y_, _t_h_e_y _p_r_o_v_i_d_e _i_n_f_o_r_m_a_t_i_o_n _o_n _t_h_e _c_u_r_r_e_n_t _s_e_t_t_i_n_g_s _o_r _s_t_o_r_e _r_e_s_u_l_t_s _f_r_o_m _r_e_q_u_e_s_t _c_a_l_l_s_. _<_p_> _<_d_l _c_o_m_p_a_c_t_> _<_d_t_> \n[..$$]
_N_u_m_b_e_r _o_f _a_r_g_u_m_e_n_t_s _i_n _t_h_e _c_u_r_r_e_n_t _m_a_c_r_o _o_r _s_t_r_i_n_g_. _<_d_t_> \n[..aa]
_P_o_s_t_-_l_i_n_e _e_x_t_r_a _l_i_n_e_-_s_p_a_c_e _m_o_s_t _r_e_c_e_n_t_l_y _u_t_i_l_i_z_e_d _u_s_i_n_g \\xx''_N''_. _<_d_t_> \n[..AA]
_S_e_t _t_o _1 _i_n _<_b_>_t_r_o_f_f_<_/_b_> _i_f _o_p_t_i_o_n _<_b_>_-_A_<_/_b_> _i_s _u_s_e_d_; _a_l_w_a_y_s _1 _i_n _<_b_>_n_r_o_f_f_<_/_b_>_. _<_d_t_> \n[..cc]
_C_u_r_r_e_n_t _i_n_p_u_t _l_i_n_e _n_u_m_b_e_r_. _<_d_t_> \n[..CC]
_1 _i_f _c_o_m_p_a_t_i_b_i_l_i_t_y _m_o_d_e _i_s _i_n _e_f_f_e_c_t_, _0 _o_t_h_e_r_w_i_s_e_. _<_d_t_> \n[..ccddpp]
_T_h_e _d_e_p_t_h _o_f _t_h_e _l_a_s_t _c_h_a_r_a_c_t_e_r _a_d_d_e_d _t_o _t_h_e _c_u_r_r_e_n_t _e_n_v_i_r_o_n_m_e_n_t_. _I_t _i_s _p_o_s_i_t_i_v_e _i_f _t_h_e _c_h_a_r_a_c_t_e_r _e_x_t_e_n_d_s _b_e_l_o_w _t_h_e _b_a_s_e_l_i_n_e_. _<_d_t_> \n[..ccee]
_T_h_e _n_u_m_b_e_r _o_f _l_i_n_e_s _r_e_m_a_i_n_i_n_g _t_o _b_e _c_e_n_t_e_r_e_d_, _a_s _s_e_t _b_y _t_h_e _c_e _r_e_q_u_e_s_t_. _<_d_t_> \n[..cchhtt]
_T_h_e _h_e_i_g_h_t _o_f _t_h_e _l_a_s_t _c_h_a_r_a_c_t_e_r _a_d_d_e_d _t_o _t_h_e _c_u_r_r_e_n_t _e_n_v_i_r_o_n_m_e_n_t_. _I_t _i_s _p_o_s_i_t_i_v_e _i_f _t_h_e _c_h_a_r_a_c_t_e_r _e_x_t_e_n_d_s _a_b_o_v_e _t_h_e _b_a_s_e_l_i_n_e_. _<_d_t_> \n[..ccoolloorr]
_1 _i_f _c_o_l_o_r_s _a_r_e _e_n_a_b_l_e_d_, _0 _o_t_h_e_r_w_i_s_e_. _<_d_t_> \n[..ccsskk]
_T_h_e _s_k_e_w _o_f _t_h_e _l_a_s_t _c_h_a_r_a_c_t_e_r _a_d_d_e_d _t_o _t_h_e _c_u_r_r_e_n_t _e_n_v_i_r_o_n_m_e_n_t_. _T_h_e _s_k_e_w _o_f _a _c_h_a_r_a_c_t_e_r _i_s _h_o_w _f_a_r _t_o _t_h_e _r_i_g_h_t _o_f _t_h_e _c_e_n_t_e_r _o_f _a _c_h_a_r_a_c_t_e_r _t_h_e _c_e_n_t_e_r _o_f _a_n _a_c_c_e_n_t _o_v_e_r _t_h_a_t _c_h_a_r_a_c_t_e_r _s_h_o_u_l_d _b_e _p_l_a_c_e_d_. _<_d_t_> \n[..dd]
_C_u_r_r_e_n_t _v_e_r_t_i_c_a_l _p_l_a_c_e _i_n _c_u_r_r_e_n_t _d_i_v_e_r_s_i_o_n_; _e_q_u_a_l _t_o _r_e_g_i_s_t_e_r _<_b_>_n_l_<_/_b_>_. _<_d_t_> \n[..eevv]
_T_h_e _n_a_m_e _o_r _n_u_m_b_e_r _o_f _t_h_e _c_u_r_r_e_n_t _e_n_v_i_r_o_n_m_e_n_t _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_. _<_d_t_> \n[..ff]
_C_u_r_r_e_n_t _f_o_n_t _n_u_m_b_e_r_. _<_d_t_> \n[..ffaamm]
_T_h_e _c_u_r_r_e_n_t _f_o_n_t _f_a_m_i_l_y _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_. _<_d_t_> \n[..ffnn]
_T_h_e _c_u_r_r_e_n_t _(_i_n_t_e_r_n_a_l_) _r_e_a_l _f_o_n_t _n_a_m_e _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_. _<_d_t_> \n[..ffpp]
_T_h_e _n_u_m_b_e_r _o_f _t_h_e _n_e_x_t _f_r_e_e _f_o_n_t _p_o_s_i_t_i_o_n_. _<_d_t_> \n[..gg]
_A_l_w_a_y_s _1 _i_n _G_N_U _t_r_o_f_f_. _M_a_c_r_o_s _s_h_o_u_l_d _u_s_e _i_t _t_o _t_e_s_t _i_f _r_u_n_n_i_n_g _u_n_d_e_r _g_r_o_f_f_. _<_d_t_> \n[..hh]
_T_e_x_t _b_a_s_e_-_l_i_n_e _h_i_g_h_-_w_a_t_e_r _m_a_r_k _o_n _c_u_r_r_e_n_t _p_a_g_e _o_r _d_i_v_e_r_s_i_o_n_. _<_d_t_> \n[..HH]
_A_v_a_i_l_a_b_l_e _h_o_r_i_z_o_n_t_a_l _r_e_s_o_l_u_t_i_o_n _i_n _b_a_s_i_c _u_n_i_t_s_. _<_d_t_> \n[..hheeiigghhtt]
_T_h_e _c_u_r_r_e_n_t _f_o_n_t _h_e_i_g_h_t _a_s _s_e_t _w_i_t_h _<_b_>_\_H_<_/_b_>_. _<_d_t_> \n[..hhllaa]
_T_h_e _c_u_r_r_e_n_t _h_y_p_h_e_n_a_t_i_o_n _l_a_n_g_u_a_g_e _a_s _s_e_t _b_y _t_h_e _<_b_>_._h_l_a_<_/_b_> _r_e_q_u_e_s_t_. _<_d_t_> \n[..hhllcc]
_T_h_e _n_u_m_b_e_r _o_f _i_m_m_e_d_i_a_t_e_l_y _p_r_e_c_e_d_i_n_g _c_o_n_s_e_c_u_t_i_v_e _h_y_p_h_e_n_a_t_e_d _l_i_n_e_s_. _<_d_t_> \n[..hhllmm]
_T_h_e _m_a_x_i_m_u_m _a_l_l_o_w_e_d _n_u_m_b_e_r _o_f _c_o_n_s_e_c_u_t_i_v_e _h_y_p_h_e_n_a_t_e_d _l_i_n_e_s_, _a_s _s_e_t _b_y _t_h_e _h_l_m _r_e_q_u_e_s_t_. _<_d_t_> \n[..hhyy]
_T_h_e _c_u_r_r_e_n_t _h_y_p_h_e_n_a_t_i_o_n _f_l_a_g_s _(_a_s _s_e_t _b_y _t_h_e _h_y _r_e_q_u_e_s_t_)_. _<_d_t_> \n[..hhyymm]
_T_h_e _c_u_r_r_e_n_t _h_y_p_h_e_n_a_t_i_o_n _m_a_r_g_i_n _(_a_s _s_e_t _b_y _t_h_e _h_y_m _r_e_q_u_e_s_t_)_. _<_d_t_> \n[..hhyyss]
_T_h_e _c_u_r_r_e_n_t _h_y_p_h_e_n_a_t_i_o_n _s_p_a_c_e _(_a_s _s_e_t _b_y _t_h_e _h_y_s _r_e_q_u_e_s_t_)_. _<_d_t_> \n[..ii]
_C_u_r_r_e_n_t _i_d_e_n_t_. _<_d_t_> \n[..iinn]
_T_h_e _i_n_d_e_n_t _t_h_a_t _a_p_p_l_i_e_s _t_o _t_h_e _c_u_r_r_e_n_t _o_u_t_p_u_t _l_i_n_e_. _<_d_t_> \n[..iinntt]
_P_o_s_i_t_i_v_e _i_f _l_a_s_t _o_u_t_p_u_t _l_i_n_e _c_o_n_t_a_i_n_s _<_b_>_\_c_<_/_b_>_. _<_d_t_> \n[..kkeerrnn]
_1 _i_f _p_a_i_r_w_i_s_e _k_e_r_n_i_n_g _i_s _e_n_a_b_l_e_d_, _0 _o_t_h_e_r_w_i_s_e_. _<_d_t_> \n[..ll]
_C_u_r_r_e_n_t _l_i_n_e _l_e_n_g_t_h_. _<_d_t_> \n[..llgg]
_T_h_e _c_u_r_r_e_n_t _l_i_g_a_t_u_r_e _m_o_d_e _(_a_s _s_e_t _b_y _t_h_e _l_g _r_e_q_u_e_s_t_)_. _<_d_t_> \n[..lliinneettaabbss]
_T_h_e _c_u_r_r_e_n_t _l_i_n_e_-_t_a_b_s _m_o_d_e _(_a_s _s_e_t _b_y _t_h_e _l_i_n_e_t_a_b_s _r_e_q_u_e_s_t_)_. _<_d_t_> \n[..llll]
_T_h_e _l_i_n_e _l_e_n_g_t_h _t_h_a_t _a_p_p_l_i_e_s _t_o _t_h_e _c_u_r_r_e_n_t _o_u_t_p_u_t _l_i_n_e_. _<_d_t_> \n[..lltt]
_T_h_e _t_i_t_l_e _l_e_n_g_t_h _(_a_s _s_e_t _b_y _t_h_e _l_t _r_e_q_u_e_s_t_)_. _<_d_t_> \n[..mm]
_T_h_e _c_u_r_r_e_n_t _d_r_a_w_i_n_g _c_o_l_o_r _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_. _<_d_t_> \n[..MM]
_T_h_e _c_u_r_r_e_n_t _b_a_c_k_g_r_o_u_n_d _c_o_l_o_r _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_. _<_d_t_> \n[..nn]
_L_e_n_g_t_h _o_f _t_e_x_t _p_o_r_t_i_o_n _o_n _p_r_e_v_i_o_u_s _o_u_t_p_u_t _l_i_n_e_. _<_d_t_> \n[..nnee]
_T_h_e _a_m_o_u_n_t _o_f _s_p_a_c_e _t_h_a_t _w_a_s _n_e_e_d_e_d _i_n _t_h_e _l_a_s_t _n_e _r_e_q_u_e_s_t _t_h_a_t _c_a_u_s_e_d _a _t_r_a_p _t_o _b_e _s_p_r_u_n_g_. _U_s_e_f_u_l _i_n _c_o_n_j_u_n_c_t_i_o_n _w_i_t_h _r_e_g_i_s_t_e_r _<_b_>_._t_r_u_n_c_<_/_b_>_. _<_d_t_> \n[..nnss]
_1 _i_f _i_n _n_o_-_s_p_a_c_e _m_o_d_e_, _0 _o_t_h_e_r_w_i_s_e_. _<_d_t_> \n[..oo]
_C_u_r_r_e_n_t _p_a_g_e _o_f_f_s_e_t_. _<_d_t_> \n[..pp]
_C_u_r_r_e_n_t _p_a_g_e _l_e_n_g_t_h_. _<_d_t_> \n[..ppee]
_1 _d_u_r_i_n_g _p_a_g_e _e_j_e_c_t_i_o_n_, _0 _o_t_h_e_r_w_i_s_e_. _<_d_t_> \n[..ppnn]
_T_h_e _n_u_m_b_e_r _o_f _t_h_e _n_e_x_t _p_a_g_e_: _e_i_t_h_e_r _t_h_e _v_a_l_u_e _s_e_t _b_y _a _p_n _r_e_q_u_e_s_t_, _o_r _t_h_e _n_u_m_b_e_r _o_f _t_h_e _c_u_r_r_e_n_t _p_a_g_e _p_l_u_s _1_. _<_d_t_> \n[..ppss]
_T_h_e _c_u_r_r_e_n_t _p_o_i_n_t_s_i_z_e _i_n _s_c_a_l_e_d _p_o_i_n_t_s_. _<_d_t_> \n[..ppssrr]
_T_h_e _l_a_s_t_-_r_e_q_u_e_s_t_e_d _p_o_i_n_t_s_i_z_e _i_n _s_c_a_l_e_d _p_o_i_n_t_s_. _<_d_t_> \n[..ppvvss]
_T_h_e _c_u_r_r_e_n_t _p_o_s_t_-_v_e_r_t_i_c_a_l _l_i_n_e _s_p_a_c_i_n_g_. _<_d_t_> \n[..rrjj]
_T_h_e _n_u_m_b_e_r _o_f _l_i_n_e_s _t_o _b_e _r_i_g_h_t_-_j_u_s_t_i_f_i_e_d _a_s _s_e_t _b_y _t_h_e _r_j _r_e_q_u_e_s_t_. _<_d_t_> \n[..ss]
_C_u_r_r_e_n_t _p_o_i_n_t _s_i_z_e _a_s _a _d_e_c_i_m_a_l _f_r_a_c_t_i_o_n_. _<_d_t_> \n[..ssllaanntt]
_T_h_e _s_l_a_n_t _o_f _t_h_e _c_u_r_r_e_n_t _f_o_n_t _a_s _s_e_t _w_i_t_h _<_b_>_\_S_<_/_b_>_. _<_d_t_> \n[..ssrr]
_T_h_e _l_a_s_t _r_e_q_u_e_s_t_e_d _p_o_i_n_t_s_i_z_e _i_n _p_o_i_n_t_s _a_s _a _d_e_c_i_m_a_l _f_r_a_c_t_i_o_n _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_. _<_d_t_> \n[..ssss]
_T_h_e _v_a_l_u_e _o_f _t_h_e _p_a_r_a_m_e_t_e_r_s _s_e_t _b_y _t_h_e _f_i_r_s_t _a_r_g_u_m_e_n_t _o_f _t_h_e _s_s _r_e_q_u_e_s_t_. _<_d_t_> \n[..ssssss]
_T_h_e _v_a_l_u_e _o_f _t_h_e _p_a_r_a_m_e_t_e_r_s _s_e_t _b_y _t_h_e _s_e_c_o_n_d _a_r_g_u_m_e_n_t _o_f _t_h_e _s_s _r_e_q_u_e_s_t_. _<_d_t_> \n[..ssttyy]
_T_h_e _c_u_r_r_e_n_t _f_o_n_t _s_t_y_l_e _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_. _<_d_t_> \n[..tt]
_D_i_s_t_a_n_c_e _t_o _t_h_e _n_e_x_t _t_r_a_p_. _<_d_t_> \n[..TT]
_S_e_t _t_o _1 _i_f _o_p_t_i_o_n _<_b_>_-_T_<_/_b_> _i_s _u_s_e_d_. _<_d_t_> \n[..ttaabbss]
_A _s_t_r_i_n_g _r_e_p_r_e_s_e_n_t_a_t_i_o_n _o_f _t_h_e _c_u_r_r_e_n_t _t_a_b _s_e_t_t_i_n_g_s _s_u_i_t_a_b_l_e _f_o_r _u_s_e _a_s _a_n _a_r_g_u_m_e_n_t _t_o _t_h_e _t_a _r_e_q_u_e_s_t_. _<_d_t_> \n[..ttrruunncc]
_T_h_e _a_m_o_u_n_t _o_f _v_e_r_t_i_c_a_l _s_p_a_c_e _t_r_u_n_c_a_t_e_d _b_y _t_h_e _m_o_s_t _r_e_c_e_n_t_l_y _s_p_r_u_n_g _v_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n _t_r_a_p_, _o_r_, _i_f _t_h_e _t_r_a_p _w_a_s _s_p_r_u_n_g _b_y _a _n_e _r_e_q_u_e_s_t_, _m_i_n_u_s _t_h_e _a_m_o_u_n_t _o_f _v_e_r_t_i_c_a_l _m_o_t_i_o_n _p_r_o_d_u_c_e_d _b_y _<_b_>_._n_e_<_/_b_>_. _I_n _o_t_h_e_r _w_o_r_d_s_, _a_t _t_h_e _p_o_i_n_t _a _t_r_a_p _i_s _s_p_r_u_n_g_, _i_t _r_e_p_r_e_s_e_n_t_s _t_h_e _d_i_f_f_e_r_e_n_c_e _o_f _w_h_a_t _t_h_e _v_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n _w_o_u_l_d _h_a_v_e _b_e_e_n _b_u_t _f_o_r _t_h_e _t_r_a_p_, _a_n_d _w_h_a_t _t_h_e _v_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n _a_c_t_u_a_l_l_y _i_s_. _U_s_e_f_u_l _i_n _c_o_n_j_u_n_c_t_i_o_n _w_i_t_h _t_h_e _r_e_g_i_s_t_e_r _<_b_>_._n_e_<_/_b_>_. _<_d_t_> \n[..uu]
_E_q_u_a_l _t_o _1 _i_n _f_i_l_l _m_o_d_e _a_n_d _0 _i_n _n_o_f_i_l_l _m_o_d_e_. _<_d_t_> \n[..UU]
_E_q_u_a_l _t_o _1 _i_n _s_a_f_e_r _m_o_d_e _a_n_d _0 _i_n _u_n_s_a_f_e _m_o_d_e_. _<_d_t_> \n[..vv]
_C_u_r_r_e_n_t _v_e_r_t_i_c_a_l _l_i_n_e _s_p_a_c_i_n_g_. _<_d_t_> \n[..VV]
_A_v_a_i_l_a_b_l_e _v_e_r_t_i_c_a_l _r_e_s_o_l_u_t_i_o_n _i_n _b_a_s_i_c _u_n_i_t_s_. _<_d_t_> \n[..vvpptt]
_1 _i_f _v_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n _t_r_a_p_s _a_r_e _e_n_a_b_l_e_d_, _0 _o_t_h_e_r_w_i_s_e_. _<_d_t_> \n[..ww]
_W_i_d_t_h _o_f _p_r_e_v_i_o_u_s _c_h_a_r_a_c_t_e_r_. _<_d_t_> \n[..wwaarrnn]
_T_h_e _s_u_m _o_f _t_h_e _n_u_m_b_e_r _c_o_d_e_s _o_f _t_h_e _c_u_r_r_e_n_t_l_y _e_n_a_b_l_e_d _w_a_r_n_i_n_g_s_. _<_d_t_> \n[..xx]
_T_h_e _m_a_j_o_r _v_e_r_s_i_o_n _n_u_m_b_e_r_. _<_d_t_> \n[..yy]
_T_h_e _m_i_n_o_r _v_e_r_s_i_o_n _n_u_m_b_e_r_. _<_d_t_> \n[..YY]
_T_h_e _r_e_v_i_s_i_o_n _n_u_m_b_e_r _o_f _g_r_o_f_f_. _<_d_t_> \n[..zz]
_N_a_m_e _o_f _c_u_r_r_e_n_t _d_i_v_e_r_s_i_o_n_. _<_/_d_l_> _<_h_4 _i_d_=_"_W_r_i_t_a_b_l_e _R_e_g_i_s_t_e_r_s_"_> _W_r_i_t_a_b_l_e _R_e_g_i_s_t_e_r_s _<_/_h_4_> _T_h_e _f_o_l_l_o_w_i_n_g _r_e_g_i_s_t_e_r_s _c_a_n _b_e _r_e_a_d _a_n_d _w_r_i_t_t_e_n _b_y _t_h_e _u_s_e_r_. _T_h_e_y _h_a_v_e _p_r_e_d_e_f_i_n_e_d _d_e_f_a_u_l_t _v_a_l_u_e_s_, _b_u_t _t_h_e_s_e _c_a_n _b_e _m_o_d_i_f_i_e_d _f_o_r _c_u_s_t_o_m_i_z_i_n_g _a _d_o_c_u_m_e_n_t_. _<_p_> _<_d_l _c_o_m_p_a_c_t_> _<_d_t_> \n[%%]
_C_u_r_r_e_n_t _p_a_g_e _n_u_m_b_e_r_. _<_d_t_> \n[cc..]
_C_u_r_r_e_n_t _i_n_p_u_t _l_i_n_e _n_u_m_b_e_r_. _<_d_t_> \n[cctt]
_C_h_a_r_a_c_t_e_r _t_y_p_e _(_s_e_t _b_y _w_i_d_t_h _f_u_n_c_t_i_o_n _<_b_>_\_w_<_/_b_>_)_. _<_d_t_> \n[ddll]
_M_a_x_i_m_a_l _w_i_d_t_h _o_f _l_a_s_t _c_o_m_p_l_e_t_e_d _d_i_v_e_r_s_i_o_n_. _<_d_t_> \n[ddnn]
_H_e_i_g_h_t _o_f _l_a_s_t _c_o_m_p_l_e_t_e_d _d_i_v_e_r_s_i_o_n_. _<_d_t_> \n[ddww]
_C_u_r_r_e_n_t _d_a_y _o_f _w_e_e_k _(_1_-_7_)_. _<_d_t_> \n[ddyy]
_C_u_r_r_e_n_t _d_a_y _o_f _m_o_n_t_h _(_1_-_3_1_)_. _<_d_t_> \n[hhoouurrss]
_T_h_e _n_u_m_b_e_r _o_f _h_o_u_r_s _p_a_s_t _m_i_d_n_i_g_h_t_. _I_n_i_t_i_a_l_i_z_e_d _a_t _s_t_a_r_t_-_u_p_. _<_d_t_> \n[hhpp]
_C_u_r_r_e_n_t _h_o_r_i_z_o_n_t_a_l _p_o_s_i_t_i_o_n _a_t _i_n_p_u_t _l_i_n_e_. _<_d_t_> \n[llllxx]
_L_o_w_e_r _l_e_f_t _x_-_c_o_o_r_d_i_n_a_t_e _(_i_n _P_o_s_t_S_c_r_i_p_t _u_n_i_t_s_) _o_f _a _g_i_v_e_n _P_o_s_t_S_c_r_i_p_t _i_m_a_g_e _(_s_e_t _b_y _<_b_>_._p_s_b_b_<_/_b_>_)_. _<_d_t_> \n[llllyy]
_L_o_w_e_r _l_e_f_t _y_-_c_o_o_r_d_i_n_a_t_e _(_i_n _P_o_s_t_S_c_r_i_p_t _u_n_i_t_s_) _o_f _a _g_i_v_e_n _P_o_s_t_S_c_r_i_p_t _i_m_a_g_e _(_s_e_t _b_y _<_b_>_._p_s_b_b_<_/_b_>_)_. _<_d_t_> \n[llnn]
_O_u_t_p_u_t _l_i_n_e _n_u_m_b_e_r_. _<_d_t_> \n[mmiinnuutteess]
_T_h_e _n_u_m_b_e_r _o_f _m_i_n_u_t_e_s _a_f_t_e_r _t_h_e _h_o_u_r_. _I_n_i_t_i_a_l_i_z_e_d _a_t _s_t_a_r_t_-_u_p_. _<_d_t_> \n[mmoo]
_C_u_r_r_e_n_t _m_o_n_t_h _(_1_-_1_2_)_. _<_d_t_> \n[nnll]
_V_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n _o_f _l_a_s_t _p_r_i_n_t_e_d _t_e_x_t _b_a_s_e_-_l_i_n_e_. _<_d_t_> \n[rrssbb]
_L_i_k_e _r_e_g_i_s_t_e_r _<_b_>_s_b_<_/_b_>_, _b_u_t _t_a_k_e_s _a_c_c_o_u_n_t _o_f _t_h_e _h_e_i_g_h_t_s _a_n_d _d_e_p_t_h_s _o_f _c_h_a_r_a_c_t_e_r_s_. _<_d_t_> \n[rrsstt]
_L_i_k_e _r_e_g_i_s_t_e_r _<_b_>_s_t_<_/_b_>_, _b_u_t _t_a_k_e_s _a_c_c_o_u_n_t _o_f _t_h_e _h_e_i_g_h_t_s _a_n_d _d_e_p_t_h_s _o_f _c_h_a_r_a_c_t_e_r_s_. _<_d_t_> \n[ssbb]
_D_e_p_t_h _o_f _s_t_r_i_n_g _b_e_l_o_w _b_a_s_e _l_i_n_e _(_g_e_n_e_r_a_t_e_d _b_y _w_i_d_t_h _f_u_n_c_t_i_o_n _<_b_>_\_w_<_/_b_>_)_. _<_d_t_> \n[sseeccoonnddss]
_T_h_e _n_u_m_b_e_r _o_f _s_e_c_o_n_d_s _a_f_t_e_r _t_h_e _m_i_n_u_t_e_. _I_n_i_t_i_a_l_i_z_e_d _a_t _s_t_a_r_t_-_u_p_. _<_d_t_> \n[sskkww]
_R_i_g_h_t _s_k_i_p _w_i_d_t_h _f_r_o_m _t_h_e _c_e_n_t_e_r _o_f _t_h_e _l_a_s_t _c_h_a_r_a_c_t_e_r _i_n _t_h_e _\_w _a_r_g_u_m_e_n_t_. _<_d_t_> \n[sslliimmiitt]
_I_f _g_r_e_a_t_e_r _t_h_a_n _0_, _t_h_e _m_a_x_i_m_u_m _n_u_m_b_e_r _o_f _o_b_j_e_c_t_s _o_n _t_h_e _i_n_p_u_t _s_t_a_c_k_. _I_f _<_=_0 _t_h_e_r_e _i_s _n_o _l_i_m_i_t_, _i_._e_._, _r_e_c_u_r_s_i_o_n _c_a_n _c_o_n_t_i_n_u_e _u_n_t_i_l _v_i_r_t_u_a_l _m_e_m_o_r_y _i_s _e_x_h_a_u_s_t_e_d_. _<_d_t_> \n[sssscc]
_T_h_e _a_m_o_u_n_t _o_f _h_o_r_i_z_o_n_t_a_l _s_p_a_c_e _(_p_o_s_s_i_b_l_y _n_e_g_a_t_i_v_e_) _t_h_a_t _s_h_o_u_l_d _b_e _a_d_d_e_d _t_o _t_h_e _l_a_s_t _c_h_a_r_a_c_t_e_r _b_e_f_o_r_e _a _s_u_b_s_c_r_i_p_t _(_g_e_n_e_r_a_t_e_d _b_y _w_i_d_t_h _f_u_n_c_t_i_o_n _<_b_>_\_w_<_/_b_>_)_. _<_d_t_> \n[sstt]
_H_e_i_g_h_t _o_f _s_t_r_i_n_g _a_b_o_v_e _b_a_s_e _l_i_n_e _(_g_e_n_e_r_a_t_e_d _b_y _w_i_d_t_h _f_u_n_c_t_i_o_n _<_b_>_\_w_<_/_b_>_)_. _<_d_t_> \n[ssyyssttaatt]
_T_h_e _r_e_t_u_r_n _v_a_l_u_e _o_f _t_h_e _<_i_>_s_y_s_t_e_m_(_)_<_/_i_> _f_u_n_c_t_i_o_n _e_x_e_c_u_t_e_d _b_y _t_h_e _l_a_s_t _s_y _r_e_q_u_e_s_t_. _<_d_t_> \n[uurrxx]
_U_p_p_e_r _r_i_g_h_t _x_-_c_o_o_r_d_i_n_a_t_e _(_i_n _P_o_s_t_S_c_r_i_p_t _u_n_i_t_s_) _o_f _a _g_i_v_e_n _P_o_s_t_S_c_r_i_p_t _i_m_a_g_e _(_s_e_t _b_y _<_b_>_._p_s_b_b_<_/_b_>_)_. _<_d_t_> \n[uurryy]
_U_p_p_e_r _r_i_g_h_t _y_-_c_o_o_r_d_i_n_a_t_e _(_i_n _P_o_s_t_S_c_r_i_p_t _u_n_i_t_s_) _o_f _a _g_i_v_e_n _P_o_s_t_S_c_r_i_p_t _i_m_a_g_e _(_s_e_t _b_y _<_b_>_._p_s_b_b_<_/_b_>_)_. _<_d_t_> \n[yyeeaarr]
_T_h_e _c_u_r_r_e_n_t _y_e_a_r _(_y_e_a_r _2_0_0_0 _c_o_m_p_l_i_a_n_t_)_. _<_d_t_> \n[yyrr]
_C_u_r_r_e_n_t _y_e_a_r _m_i_n_u_s _1_9_0_0_. _F_o_r _Y_2_K _c_o_m_p_l_i_a_n_c_e _u_s_e _r_e_g_i_s_t_e_r _y_e_a_r _i_n_s_t_e_a_d_. _<_/_d_l_> _<_h_3 _i_d_=_"_C_O_M_P_A_T_I_B_I_L_I_T_Y_"_> _C_O_M_P_A_T_I_B_I_L_I_T_Y _<_/_h_3_> _T_h_e _d_i_f_f_e_r_e_n_c_e_s _o_f _t_h_e _g_r_o_f_f _l_a_n_g_u_a_g_e _i_n _c_o_m_p_a_r_i_s_o_n _t_o _c_l_a_s_s_i_c_a_l _t_r_o_f_f _a_s _d_e_f_i_n_e_d _b_y _<_i_>_[_C_S_T_R _#_5_4_]_<_/_i_> _a_r_e _d_o_c_u_m_e_n_t_e_d _i_n _<_a _h_r_e_f_=_"_._._/_h_t_m_l_7_/_g_r_o_f_f___d_i_f_f_._h_t_m_l_"_>_g_r_o_f_f___d_i_f_f_(_7_)_<_/_a_> _<_p_> _T_h_e _g_r_o_f_f _s_y_s_t_e_m _p_r_o_v_i_d_e_s _a _c_o_m_p_a_t_i_b_i_l_i_t_y _m_o_d_e_, _s_e_e _<_a _h_r_e_f_=_"_._._/_h_t_m_l_1_/_g_r_o_f_f_._h_t_m_l_"_>_g_r_o_f_f_(_1_)_<_/_a_> _o_n _h_o_w _t_o _i_n_v_o_k_e _t_h_i_s_. _<_h_3 _i_d_=_"_B_U_G_S_"_> _B_U_G_S _<_/_h_3_> _R_e_p_o_r_t _b_u_g_s _t_o _t_h_e _g_r_o_f_f _b_u_g _m_a_i_l_i_n_g _l_i_s_t _<_b_u_g_-_g_r_o_f_f_@_g_n_u_._o_r_g_>_. _I_n_c_l_u_d_e _a _c_o_m_p_l_e_t_e_, _s_e_l_f_-_c_o_n_t_a_i_n_e_d _e_x_a_m_p_l_e _t_h_a_t _w_i_l_l _a_l_l_o_w _t_h_e _b_u_g _t_o _b_e _r_e_p_r_o_d_u_c_e_d_, _a_n_d _s_a_y _w_h_i_c_h _v_e_r_s_i_o_n _o_f _g_r_o_f_f _y_o_u _a_r_e _u_s_i_n_g_. _<_h_3 _i_d_=_"_A_U_T_H_O_R_S_"_> _A_U_T_H_O_R_S _<_/_h_3_> _C_o_p_y_r_i_g_h_t _(_C_) _2_0_0_0_, _2_0_0_1_, _2_0_0_2_, _2_0_0_3_, _2_0_0_4_, _2_0_0_5 _F_r_e_e _S_o_f_t_w_a_r_e _F_o_u_n_d_a_t_i_o_n_, _I_n_c_. _<_p_> _T_h_i_s _d_o_c_u_m_e_n_t _i_s _d_i_s_t_r_i_b_u_t_e_d _u_n_d_e_r _t_h_e _t_e_r_m_s _o_f _t_h_e _F_D_L _(_G_N_U _F_r_e_e _D_o_c_u_m_e_n_t_a_t_i_o_n _L_i_c_e_n_s_e_) _v_e_r_s_i_o_n _1_._1 _o_r _l_a_t_e_r_. _Y_o_u _s_h_o_u_l_d _h_a_v_e _r_e_c_e_i_v_e_d _a _c_o_p_y _o_f _t_h_e _F_D_L _o_n _y_o_u_r _s_y_s_t_e_m_, _i_t _i_s _a_l_s_o _a_v_a_i_l_a_b_l_e _o_n_-_l_i_n_e _a_t _t_h_e _G_N_U _c_o_p_y_l_e_f_t _s_i_t_e _<_h_t_t_p_:_/_/_w_w_w_._g_n_u_._o_r_g_/_c_o_p_y_l_e_f_t_/_f_d_l_._h_t_m_l_>_. _<_p_> _T_h_i_s _d_o_c_u_m_e_n_t _i_s _p_a_r_t _o_f _<_i_>_g_r_o_f_f_<_/_i_>_, _t_h_e _G_N_U _r_o_f_f _d_i_s_t_r_i_b_u_t_i_o_n_. _I_t _w_a_s _w_r_i_t_t_e_n _b_y _B_e_r_n_d _W_a_r_k_e_n _<_b_w_a_r_k_e_n_@_m_a_y_n_._d_e_>_; _i_t _i_s _m_a_i_n_t_a_i_n_e_d _b_y _W_e_r_n_e_r _L_e_m_b_e_r_g _<_w_l_@_g_n_u_._o_r_g_>_. _<_h_3 _i_d_=_"_S_E_E _A_L_S_O_"_> _S_E_E _A_L_S_O _<_/_h_3_> _<_p_> _T_h_e _m_a_i_n _s_o_u_r_c_e _o_f _i_n_f_o_r_m_a_t_i_o_n _f_o_r _t_h_e _g_r_o_f_f _l_a_n_g_u_a_g_e _i_s _t_h_e _<_b_>_g_r_o_f_f_<_/_b_> _<_a _h_r_e_f_=_"_._._/_h_t_m_l_1_/_i_n_f_o_._h_t_m_l_"_>_i_n_f_o_(_1_)_<_/_a_> _f_i_l_e_. _B_e_s_i_d_e_s _t_h_e _g_o_r_y _d_e_t_a_i_l_s_, _i_t _c_o_n_t_a_i_n_s _m_a_n_y _e_x_a_m_p_l_e_s_. _<_d_l _c_o_m_p_a_c_t_> _<_d_t_> _<_a _h_r_e_f_=_"_._._/_h_t_m_l_1_/_g_r_o_f_f_._h_t_m_l_"_>_g_r_o_f_f_(_1_)_<_/_a_> _<_d_d_> _t_h_e _u_s_a_g_e _o_f _t_h_e _g_r_o_f_f _p_r_o_g_r_a_m _a_n_d _p_o_i_n_t_e_r_s _t_o _t_h_e _d_o_c_u_m_e_n_t_a_t_i_o_n _a_n_d _a_v_a_i_l_a_b_i_l_i_t_y _o_f _t_h_e _g_r_o_f_f _s_y_s_t_e_m_. _<_d_t_> _<_a _h_r_e_f_=_"_._._/_h_t_m_l_7_/_g_r_o_f_f___d_i_f_f_._h_t_m_l_"_>_g_r_o_f_f___d_i_f_f_(_7_)_<_/_a_> _<_d_d_> _t_h_e _d_i_f_f_e_r_e_n_c_e_s _o_f _t_h_e _g_r_o_f_f _l_a_n_g_u_a_g_e _a_s _c_o_m_p_a_r_e_d _t_o _c_l_a_s_s_i_c_a_l _r_o_f_f_. _T_h_i_s _i_s _t_h_e _a_u_t_h_o_r_i_t_a_t_i_v_e _d_o_c_u_m_e_n_t _f_o_r _t_h_e _p_r_e_d_e_f_i_n_e_d _l_a_n_g_u_a_g_e _e_l_e_m_e_n_t_s _t_h_a_t _a_r_e _s_p_e_c_i_f_i_c _t_o _g_r_o_f_f_. _<_d_t_> _<_a _h_r_e_f_=_"_._._/_h_t_m_l_7_/_g_r_o_f_f___c_h_a_r_._h_t_m_l_"_>_g_r_o_f_f___c_h_a_r_(_7_)_<_/_a_> _<_d_d_> _t_h_e _p_r_e_d_e_f_i_n_e_d _g_r_o_f_f _c_h_a_r_a_c_t_e_r_s _(_g_l_y_p_h_s_)_. _<_d_t_> _<_a _h_r_e_f_=_"_._._/_h_t_m_l_5_/_g_r_o_f_f___f_o_n_t_._h_t_m_l_"_>_g_r_o_f_f___f_o_n_t_(_5_)_<_/_a_> _<_d_d_> _t_h_e _s_p_e_c_i_f_i_c_a_t_i_o_n _o_f _f_o_n_t_s _a_n_d _t_h_e _D_E_S_C _f_i_l_e_. _<_d_t_> _<_a _h_r_e_f_=_"_._._/_h_t_m_l_7_/_r_o_f_f_._h_t_m_l_"_>_r_o_f_f_(_7_)_<_/_a_> _<_d_d_> _t_h_e _h_i_s_t_o_r_y _o_f _r_o_f_f_, _t_h_e _c_o_m_m_o_n _p_a_r_t_s _s_h_a_r_e_d _b_y _a_l_l _r_o_f_f _s_y_s_t_e_m_s_, _a_n_d _p_o_i_n_t_e_r_s _t_o _f_u_r_t_h_e_r _d_o_c_u_m_e_n_t_a_t_i_o_n_. _<_d_t_> _<_i_>_[_C_S_T_R _#_5_4_]_<_/_i_> _<_d_d_> _N_r_o_f_f_/_T_r_o_f_f _U_s_e_r_'_s _M_a_n_u_a_l _b_y _O_s_a_n_n_a _& _K_e_r_n_i_g_h_a_n _<_h_t_t_p_:_/_/_c_m_._b_e_l_l_-_l_a_b_s_._c_o_m_/_c_m_/_c_s_/_5_4_._p_s_> _-_- _t_h_e _b_i_b_l_e _f_o_r _c_l_a_s_s_i_c_a_l _t_r_o_f_f_. _<_/_b_o_d_y_> _<_/_h_t_m_l_>