From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 systems/knuth/local/lib/amstex.tex | 1797 ++++++++++++++++++++++++++++++++++++
 1 file changed, 1797 insertions(+)
 create mode 100644 systems/knuth/local/lib/amstex.tex

(limited to 'systems/knuth/local/lib/amstex.tex')

diff --git a/systems/knuth/local/lib/amstex.tex b/systems/knuth/local/lib/amstex.tex
new file mode 100644
index 0000000000..96502696d6
--- /dev/null
+++ b/systems/knuth/local/lib/amstex.tex
@@ -0,0 +1,1797 @@
+%% @texfile{
+%%     filename="amstex.tex",
+%%     version="2.1",
+%%     date="5-APR-1991",
+%%     filetype="AMS-TeX: documentstyle",
+%%     copyright="Copyright (C) American Mathematical Society,
+%%            all rights reserved.  Copying of this file is
+%%            authorized only if either:
+%%            (1) you make absolutely no changes to your copy
+%%                including name; OR
+%%            (2) if you do make changes, you first rename it to some
+%%                other name.",
+%%     author="American Mathematical Society",
+%%     address="American Mathematical Society,
+%%            Technical Support Group,
+%%            P. O. Box 6248,
+%%            Providence, RI 02940,
+%%            USA",
+%%     telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%%     email="Internet: Tech-Support@Math.AMS.com",
+%%     codetable="ISO/ASCII",
+%%     checksumtype="line count",
+%%     checksum="1797",
+%%     keywords="amstex, ams-tex, tex",
+%%     abstract="This file contains the AMS-TeX Version 2.1 macro
+%%            package.  It is intended to be used in conjunction with
+%%            plain TeX. The macros defined herein are chiefly oriented
+%%            to the construction of mathematical formulas, both display
+%%            and nondisplay, using AMS conventions for fonts, spacing,
+%%            and other details."
+%%     }
+\def\fmtname{AmS-TeX}
+\let\plainfmtversion\fmtversion
+\def\fmtversion{2.1}
+\catcode`\@=11
+\ifx\amstexloaded@\relax\catcode`\@=\active
+  \endinput\else\let\amstexloaded@\relax\fi
+\newlinechar=`\^^J
+\def\W@{\immediate\write\sixt@@n}
+\def\CR@{\W@{^^J\fmtname - Version \fmtversion^^J%
+COPYRIGHT 1985, 1990, 1991 - AMERICAN MATHEMATICAL SOCIETY^^J%
+Use of this macro package is not restricted provided^^J%
+each use is acknowledged upon publication.^^J}}
+\CR@ \everyjob{\CR@}
+\message{Loading definitions for}
+\message{misc utility macros,}
+\toksdef\toks@@=2
+\long\def\rightappend@#1\to#2{\toks@{\\{#1}}\toks@@
+ =\expandafter{#2}\xdef#2{\the\toks@@\the\toks@}\toks@{}\toks@@{}}
+\def\alloclist@{}
+\newif\ifalloc@
+\def\showallocations{{\def\\{\immediate\write\m@ne}\alloclist@}\alloc@true}
+\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
+ \ch@ck#1#4#2\allocationnumber=\count1#1
+ \global#3#5=\allocationnumber
+ \edef\next@{\string#5=\string#2\the\allocationnumber}%
+ \expandafter\rightappend@\next@\to\alloclist@}
+\newcount\count@@
+\newcount\count@@@
+\def\FN@{\futurelet\next}
+\def\DN@{\def\next@}
+\def\DNii@{\def\nextii@}
+\def\RIfM@{\relax\ifmmode}
+\def\RIfMIfI@{\relax\ifmmode\ifinner}
+\def\setboxz@h{\setbox\z@\hbox}
+\def\wdz@{\wd\z@}
+\def\boxz@{\box\z@}
+\def\setbox@ne{\setbox\@ne}
+\def\wd@ne{\wd\@ne}
+\def\iterate{\body\expandafter\iterate\else\fi}
+\def\err@#1{\errmessage{AmS-TeX error: #1}}
+\newhelp\defaulthelp@{Sorry, I already gave what help I could...^^J
+Maybe you should try asking a human?^^J
+An error might have occurred before I noticed any problems.^^J
+``If all else fails, read the instructions.''}
+\def\Err@{\errhelp\defaulthelp@\err@}
+\def\eat@#1{}
+\def\in@#1#2{\def\in@@##1#1##2##3\in@@{\ifx\in@##2\in@false\else\in@true\fi}%
+ \in@@#2#1\in@\in@@}
+\newif\ifin@
+\def\space@.{\futurelet\space@\relax}
+\space@. %
+\newhelp\athelp@
+{Only certain combinations beginning with @ make sense to me.^^J
+Perhaps you wanted \string\@\space for a printed @?^^J
+I've ignored the character or group after @.}
+{\catcode`\~=\active % just in case
+ \lccode`\~=`\@ \lowercase{\gdef~{\FN@\at@}}}
+\def\at@{\let\next@\at@@
+ \ifcat\noexpand\next a\else\ifcat\noexpand\next0\else
+ \ifcat\noexpand\next\relax\else
+   \let\next\at@@@\fi\fi\fi
+ \next@}
+\def\at@@#1{\expandafter
+ \ifx\csname\space @\string#1\endcsname\relax
+  \expandafter\at@@@ \else
+  \csname\space @\string#1\expandafter\endcsname\fi}
+\def\at@@@#1{\errhelp\athelp@ \err@{\Invalid@@ @}}%%
+\def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname}%%
+\newhelp\defahelp@{If you typed \string\define\space cs instead of
+\string\define\string\cs\space^^J
+I've substituted an inaccessible control sequence so that your^^J
+definition will be completed without mixing me up too badly.^^J
+If you typed \string\define{\string\cs} the inaccessible control sequence^^J
+was defined to be \string\cs, and the rest of your^^J
+definition appears as input.}
+\newhelp\defbhelp@{I've ignored your definition, because it might^^J
+conflict with other uses that are important to me.}
+\def\define{\FN@\define@}
+\def\define@{\ifcat\noexpand\next\relax
+ \expandafter\define@@\else\errhelp\defahelp@                               %1
+ \err@{\string\define\space must be followed by a control
+ sequence}\expandafter\def\expandafter\nextii@\fi}                          %2
+\def\undefined@@@@@@@@@@{}
+\def\preloaded@@@@@@@@@@{}
+\def\next@@@@@@@@@@{}
+\def\define@@#1{\ifx#1\relax\errhelp\defbhelp@                              %1
+ \err@{\string#1\space is already defined}\DN@{\DNii@}\else
+ \expandafter\ifx\csname\expandafter\eat@\string                            %2
+ #1@@@@@@@@@@\endcsname\undefined@@@@@@@@@@\errhelp\defbhelp@
+ \err@{\string#1\space can't be defined}\DN@{\DNii@}\else
+ \expandafter\ifx\csname\expandafter\eat@\string#1\endcsname\relax          %3
+ \global\let#1\undefined\DN@{\def#1}\else\errhelp\defbhelp@
+ \err@{\string#1\space is already defined}\DN@{\DNii@}\fi
+ \fi\fi\next@}
+\let\redefine\def
+\def\predefine#1#2{\let#1#2}
+\def\undefine#1{\let#1\undefined}
+\message{page layout,}
+\newdimen\captionwidth@
+\captionwidth@\hsize
+\advance\captionwidth@-1.5in
+\def\pagewidth#1{\hsize#1\relax
+ \captionwidth@\hsize\advance\captionwidth@-1.5in}
+\def\pageheight#1{\vsize#1\relax}
+\def\hcorrection#1{\advance\hoffset#1\relax}
+\def\vcorrection#1{\advance\voffset#1\relax}
+\message{accents/punctuation,}
+\def\tie{\unskip\nobreak\ }
+\let\graveaccent\`
+\let\acuteaccent\'
+\let\tildeaccent\~
+\let\hataccent\^
+\let\underscore\_
+\let\B\=
+\let\D\.
+\let\ic@\/
+\def\/{\unskip\ic@}
+\def\textfonti{\the\textfont\@ne}
+\def\t#1#2{{\edef\next@{\the\font}\textfonti\accent"7F \next@#1#2}}
+\def~{\unskip\nobreak\ \ignorespaces}
+\def\.{.\spacefactor\@m}
+\atdef@;{\leavevmode\null;}
+\atdef@:{\leavevmode\null:}
+\atdef@?{\leavevmode\null?}
+\edef\@{\string @}
+\def\relaxnext@{\let\next\relax}
+\atdef@-{\relaxnext@\leavevmode
+ \DN@{\ifx\next-\DN@-{\FN@\nextii@}\else
+  \DN@{\leavevmode\hbox{-}}\fi\next@}%
+ \DNii@{\ifx\next-\DN@-{\leavevmode\hbox{---}}\else
+  \DN@{\leavevmode\hbox{--}}\fi\next@}%
+ \FN@\next@}
+\def\srdr@{\kern.16667em}
+\def\drsr@{\kern.02778em}
+\def\sldl@{\drsr@}
+\def\dlsl@{\srdr@}
+\atdef@"{\unskip\relaxnext@
+ \DN@{\ifx\next\space@\DN@. {\FN@\nextii@}\else
+  \DN@.{\FN@\nextii@}\fi\next@.}%
+ \DNii@{\ifx\next`\DN@`{\FN@\nextiii@}\else
+  \ifx\next\lq\DN@\lq{\FN@\nextiii@}\else
+  \DN@####1{\FN@\nextiv@}\fi\fi\next@}%
+ \def\nextiii@{\ifx\next`\DN@`{\sldl@``}\else\ifx\next\lq
+  \DN@\lq{\sldl@``}\else\DN@{\dlsl@`}\fi\fi\next@}%
+ \def\nextiv@{\ifx\next'\DN@'{\srdr@''}\else
+  \ifx\next\rq\DN@\rq{\srdr@''}\else\DN@{\drsr@'}\fi\fi\next@}%
+ \FN@\next@}
+\def\flushpar{\par\noindent}
+\def\textfontii{\the\textfont\tw@}
+\def\lbrace@{\delimiter"4266308 }
+\def\rbrace@{\delimiter"5267309 }
+\def\{{\RIfM@\lbrace@\else{\textfontii f}\spacefactor\@m\fi}
+\def\}{\RIfM@\rbrace@\else
+ \let\@sf\empty\ifhmode\edef\@sf{\spacefactor\the\spacefactor}\fi
+ {\textfontii g}\@sf\relax\fi}
+\let\lbrace\{
+\let\rbrace\}
+\def\AmSTeX{{\textfontii A\kern-.1667em%
+  \lower.5ex\hbox{M}\kern-.125emS}-\TeX}
+\message{line and page breaks,}
+\def\vmodeerr@#1{\Err@{\string#1\space not allowed between paragraphs}}
+\def\mathmodeerr@#1{\Err@{\string#1\space not allowed in math mode}}
+\def\linebreak{\RIfM@\mathmodeerr@\linebreak\else
+ \ifhmode\unskip\unkern\break\else\vmodeerr@\linebreak\fi\fi}
+\def\slash{\unskip/\penalty\exhyphenpenalty}
+\newskip\saveskip@
+\def\allowlinebreak{\RIfM@\mathmodeerr@\allowlinebreak\else
+ \ifhmode\saveskip@\lastskip\unskip
+ \allowbreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi
+ \else\vmodeerr@\allowlinebreak\fi\fi}
+\def\nolinebreak{\RIfM@\mathmodeerr@\nolinebreak\else
+ \ifhmode\saveskip@\lastskip\unskip
+ \nobreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi
+ \else\vmodeerr@\nolinebreak\fi\fi}
+\def\newline{\relaxnext@
+ \DN@{\RIfM@\expandafter\mathmodeerr@\expandafter\newline\else
+  \ifhmode\ifx\next\par\else
+  \expandafter\unskip\expandafter\null\expandafter\hfill\expandafter\break\fi
+  \else
+  \expandafter\vmodeerr@\expandafter\newline\fi\fi}%
+ \FN@\next@}
+\def\dmatherr@#1{\Err@{\string#1\space not allowed in display math mode}}
+\def\nondmatherr@#1{\Err@{\string#1\space not allowed in non-display math
+ mode}}
+\def\onlydmatherr@#1{\Err@{\string#1\space allowed only in display math mode}}
+\def\nonmatherr@#1{\Err@{\string#1\space allowed only in math mode}}
+\def\mathbreak{\RIfMIfI@\break\else
+ \dmatherr@\mathbreak\fi\else\nonmatherr@\mathbreak\fi}
+\def\nomathbreak{\RIfMIfI@\nobreak\else
+ \dmatherr@\nomathbreak\fi\else\nonmatherr@\nomathbreak\fi}
+\def\allowmathbreak{\RIfMIfI@\allowbreak\else
+ \dmatherr@\allowmathbreak\fi\else\nonmatherr@\allowmathbreak\fi}
+\def\pagebreak{\RIfM@
+ \ifinner\nondmatherr@\pagebreak\else\postdisplaypenalty-\@M\fi
+ \else\ifvmode\removelastskip\break\else\vadjust{\break}\fi\fi}
+\def\nopagebreak{\RIfM@
+ \ifinner\nondmatherr@\nopagebreak\else\postdisplaypenalty\@M\fi
+ \else\ifvmode\nobreak\else\vadjust{\nobreak}\fi\fi}
+\def\nonvmodeerr@#1{\Err@{\string#1\space not allowed within a paragraph
+ or in math}}
+\def\vnonvmode@#1#2{\relaxnext@\DNii@{\ifx\next\par\DN@{#1}\else
+ \DN@{#2}\fi\next@}%
+ \ifvmode\DN@{#1}\else
+ \DN@{\FN@\nextii@}\fi\next@}
+\def\newpage{\vnonvmode@{\vfill\break}{\nonvmodeerr@\newpage}}
+\def\smallpagebreak{\vnonvmode@\smallbreak{\nonvmodeerr@\smallpagebreak}}
+\def\medpagebreak{\vnonvmode@\medbreak{\nonvmodeerr@\medpagebreak}}
+\def\bigpagebreak{\vnonvmode@\bigbreak{\nonvmodeerr@\bigpagebreak}}
+\def\NoBlackBoxes{\global\overfullrule\z@}
+\def\BlackBoxes{\global\overfullrule5\p@}
+\def\Invalid@#1{\def#1{\Err@{\Invalid@@\string#1}}}
+\def\Invalid@@{Invalid use of }
+\message{figures,}
+\Invalid@\caption
+\Invalid@\captionwidth
+\newdimen\smallcaptionwidth@
+\def\topspace{\mid@false\ins@}
+\def\midspace{\mid@true\ins@}
+\newif\ifmid@
+\def\captionfont@{}
+\def\ins@#1{\relaxnext@\allowbreak
+ \smallcaptionwidth@\captionwidth@\gdef\thespace@{#1}%
+ \DN@{\ifx\next\space@\DN@. {\FN@\nextii@}\else
+  \DN@.{\FN@\nextii@}\fi\next@.}%
+ \DNii@{\ifx\next\caption\DN@\caption{\FN@\nextiii@}%
+  \else\let\next@\nextiv@\fi\next@}%
+ \def\nextiv@{\vnonvmode@
+  {\ifmid@\expandafter\midinsert\else\expandafter\topinsert\fi
+   \vbox to\thespace@{}\endinsert}
+  {\ifmid@\nonvmodeerr@\midspace\else\nonvmodeerr@\topspace\fi}}%
+ \def\nextiii@{\ifx\next\captionwidth\expandafter\nextv@
+  \else\expandafter\nextvi@\fi}%
+ \def\nextv@\captionwidth##1##2{\smallcaptionwidth@##1\relax\nextvi@{##2}}%
+ \def\nextvi@##1{\def\thecaption@{\captionfont@##1}%
+  \DN@{\ifx\next\space@\DN@. {\FN@\nextvii@}\else
+   \DN@.{\FN@\nextvii@}\fi\next@.}%
+  \FN@\next@}%
+ \def\nextvii@{\vnonvmode@
+  {\ifmid@\expandafter\midinsert\else
+  \expandafter\topinsert\fi\vbox to\thespace@{}\nobreak\smallskip
+  \setboxz@h{\noindent\ignorespaces\thecaption@\unskip}%
+  \ifdim\wdz@>\smallcaptionwidth@\centerline{\vbox{\hsize\smallcaptionwidth@
+   \noindent\ignorespaces\thecaption@\unskip}}%
+  \else\centerline{\boxz@}\fi\endinsert}
+  {\ifmid@\nonvmodeerr@\midspace
+  \else\nonvmodeerr@\topspace\fi}}%
+ \FN@\next@}
+\message{comments,}
+\def\newcodes@{\catcode`\\12\catcode`\{12\catcode`\}12\catcode`\#12%
+ \catcode`\%12\relax}
+\def\oldcodes@{\catcode`\\0\catcode`\{1\catcode`\}2\catcode`\#6%
+ \catcode`\%14\relax}
+\def\comment{\newcodes@\endlinechar=10 \comment@}
+{\lccode`\0=`\\
+\lowercase{\gdef\comment@#1^^J{\comment@@#10endcomment\comment@@@}%
+\gdef\comment@@#10endcomment{\FN@\comment@@@}%
+\gdef\comment@@@#1\comment@@@{\ifx\next\comment@@@\let\next\comment@
+ \else\def\next{\oldcodes@\endlinechar=`\^^M\relax}%
+ \fi\next}}}
+\def\pr@m@s{\ifx'\next\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@}
+\def\prime{{\null\prime@\null}}
+\mathchardef\prime@="0230
+\let\dsize\displaystyle
+\let\tsize\textstyle
+\let\ssize\scriptstyle
+\let\sssize\scriptscriptstyle
+\message{math spacing,}
+\def\,{\RIfM@\mskip\thinmuskip\relax\else\kern.16667em\fi}
+\def\!{\RIfM@\mskip-\thinmuskip\relax\else\kern-.16667em\fi}
+\let\thinspace\,
+\let\negthinspace\!
+\def\medspace{\RIfM@\mskip\medmuskip\relax\else\kern.222222em\fi}
+\def\negmedspace{\RIfM@\mskip-\medmuskip\relax\else\kern-.222222em\fi}
+\def\thickspace{\RIfM@\mskip\thickmuskip\relax\else\kern.27777em\fi}
+\let\;\thickspace
+\def\negthickspace{\RIfM@\mskip-\thickmuskip\relax\else
+ \kern-.27777em\fi}
+\atdef@,{\RIfM@\mskip.1\thinmuskip\else\leavevmode\null,\fi}
+\atdef@!{\RIfM@\mskip-.1\thinmuskip\else\leavevmode\null!\fi}
+\atdef@.{\RIfM@&&\else\leavevmode.\spacefactor3000 \fi}
+\def\and{\DOTSB\;\mathchar"3026 \;}
+\def\implies{\DOTSB\;\Longrightarrow\;}
+\def\impliedby{\DOTSB\;\Longleftarrow\;}
+\message{fractions,}
+\def\frac#1#2{{#1\over#2}}
+\def\dfrac#1#2{{\displaystyle{#1\over#2}}}
+\def\tfrac#1#2{{\textstyle{#1\over#2}}}
+\newdimen\ex@
+\ex@.2326ex
+\Invalid@\thickness
+\def\thickfrac{\relaxnext@
+ \DN@{\ifx\next\thickness\let\next@\nextii@\else
+ \DN@{\nextii@\thickness1}\fi\next@}%
+ \DNii@\thickness##1##2##3{{##2\above##1\ex@##3}}%
+ \FN@\next@}
+\def\fracwithdelims#1#2#3#4{{#3\overwithdelims#1#2#4}}
+\def\thickfracwithdelims#1#2{\relaxnext@\def\ldelim@{#1}\def\rdelim@{#2}%
+ \DN@{\ifx\next\thickness\let\next@\nextii@\else
+ \DN@{\nextii@\thickness1}\fi\next@}%
+ \DNii@\thickness##1##2##3{{##2\abovewithdelims
+ \ldelim@\rdelim@##1\ex@##3}}%
+ \FN@\next@}
+\def\binom#1#2{{#1\choose#2}}
+\def\dbinom#1#2{{\displaystyle{#1\choose#2}}}
+\def\tbinom#1#2{{\textstyle{#1\choose#2}}}
+\def\:{\nobreak\hskip.1111em\mathpunct{}\nonscript\mkern-\thinmuskip{:}\hskip
+ .3333emplus.0555em\relax}
+\def\snug{\unskip\kern-\mathsurround}
+\message{smash commands,}
+\def\topsmash{\top@true\bot@false\smash@}
+\def\botsmash{\top@false\bot@true\smash@}
+\newif\iftop@
+\newif\ifbot@
+\def\smash{\top@true\bot@true\smash@}
+\def\smash@{\RIfM@\expandafter\mathpalette\expandafter\mathsm@sh\else
+ \expandafter\makesm@sh\fi}
+\def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\leavevmode\boxz@}
+\message{large operator symbols,}
+\def\LimitsOnSums{\global\let\slimits@\displaylimits}
+\def\NoLimitsOnSums{\global\let\slimits@\nolimits}
+\LimitsOnSums
+\mathchardef\coprod@="1360       \def\coprod{\DOTSB\coprod@\slimits@}
+\mathchardef\bigvee@="1357       \def\bigvee{\DOTSB\bigvee@\slimits@}
+\mathchardef\bigwedge@="1356     \def\bigwedge{\DOTSB\bigwedge@\slimits@}
+\mathchardef\biguplus@="1355     \def\biguplus{\DOTSB\biguplus@\slimits@}
+\mathchardef\bigcap@="1354       \def\bigcap{\DOTSB\bigcap@\slimits@}
+\mathchardef\bigcup@="1353       \def\bigcup{\DOTSB\bigcup@\slimits@}
+\mathchardef\prod@="1351         \def\prod{\DOTSB\prod@\slimits@}
+\mathchardef\sum@="1350          \def\sum{\DOTSB\sum@\slimits@}
+\mathchardef\bigotimes@="134E    \def\bigotimes{\DOTSB\bigotimes@\slimits@}
+\mathchardef\bigoplus@="134C     \def\bigoplus{\DOTSB\bigoplus@\slimits@}
+\mathchardef\bigodot@="134A      \def\bigodot{\DOTSB\bigodot@\slimits@}
+\mathchardef\bigsqcup@="1346     \def\bigsqcup{\DOTSB\bigsqcup@\slimits@}
+\message{integrals,}
+\def\LimitsOnInts{\global\let\ilimits@\displaylimits}
+\def\NoLimitsOnInts{\global\let\ilimits@\nolimits}
+\NoLimitsOnInts
+\def\int{\DOTSI\intop\ilimits@}
+\def\oint{\DOTSI\ointop\ilimits@}
+\def\intic@{\mathchoice{\hskip.5em}{\hskip.4em}{\hskip.4em}{\hskip.4em}}
+\def\negintic@{\mathchoice
+ {\hskip-.5em}{\hskip-.4em}{\hskip-.4em}{\hskip-.4em}}
+\def\intkern@{\mathchoice{\!\!\!}{\!\!}{\!\!}{\!\!}}
+\def\intdots@{\mathchoice{\plaincdots@}
+ {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}
+ {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}
+ {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
+\newcount\intno@
+\def\iint{\DOTSI\intno@\tw@\FN@\ints@}
+\def\iiint{\DOTSI\intno@\thr@@\FN@\ints@}
+\def\iiiint{\DOTSI\intno@4 \FN@\ints@}
+\def\idotsint{\DOTSI\intno@\z@\FN@\ints@}
+\def\ints@{\findlimits@\ints@@}
+\newif\iflimtoken@
+\newif\iflimits@
+\def\findlimits@{\limtoken@true\ifx\next\limits\limits@true
+ \else\ifx\next\nolimits\limits@false\else
+ \limtoken@false\ifx\ilimits@\nolimits\limits@false\else
+ \ifinner\limits@false\else\limits@true\fi\fi\fi\fi}
+\def\multint@{\int\ifnum\intno@=\z@\intdots@                                %1
+ \else\intkern@\fi                                                          %2
+ \ifnum\intno@>\tw@\int\intkern@\fi                                         %3
+ \ifnum\intno@>\thr@@\int\intkern@\fi                                       %4
+ \int}                                                                      %5
+\def\multintlimits@{\intop\ifnum\intno@=\z@\intdots@\else\intkern@\fi
+ \ifnum\intno@>\tw@\intop\intkern@\fi
+ \ifnum\intno@>\thr@@\intop\intkern@\fi\intop}
+\def\ints@@{\iflimtoken@                                                    %1
+ \def\ints@@@{\iflimits@\negintic@\mathop{\intic@\multintlimits@}\limits    %2
+  \else\multint@\nolimits\fi                                                %3
+  \eat@}                                                                    %4
+ \else                                                                      %5
+ \def\ints@@@{\iflimits@\negintic@
+  \mathop{\intic@\multintlimits@}\limits\else
+  \multint@\nolimits\fi}\fi\ints@@@}
+\def\LimitsOnNames{\global\let\nlimits@\displaylimits}
+\def\NoLimitsOnNames{\global\let\nlimits@\nolimits@}
+\LimitsOnNames
+\def\nolimits@{\relaxnext@
+ \DN@{\ifx\next\limits\DN@\limits{\nolimits}\else
+  \let\next@\nolimits\fi\next@}%
+ \FN@\next@}
+\message{operator names,}
+\def\newmcodes@{\mathcode`\'"27\mathcode`\*"2A\mathcode`\."613A%
+ \mathcode`\-"2D\mathcode`\/"2F\mathcode`\:"603A }
+\def\operatorname#1{\mathop{\newmcodes@\kern\z@\fam\z@#1}\nolimits@}
+\def\operatornamewithlimits#1{\mathop{\newmcodes@\kern\z@\fam\z@#1}\nlimits@}
+\def\qopname@#1{\mathop{\fam\z@#1}\nolimits@}
+\def\qopnamewl@#1{\mathop{\fam\z@#1}\nlimits@}
+\def\arccos{\qopname@{arccos}}
+\def\arcsin{\qopname@{arcsin}}
+\def\arctan{\qopname@{arctan}}
+\def\arg{\qopname@{arg}}
+\def\cos{\qopname@{cos}}
+\def\cosh{\qopname@{cosh}}
+\def\cot{\qopname@{cot}}
+\def\coth{\qopname@{coth}}
+\def\csc{\qopname@{csc}}
+\def\deg{\qopname@{deg}}
+\def\det{\qopnamewl@{det}}
+\def\dim{\qopname@{dim}}
+\def\exp{\qopname@{exp}}
+\def\gcd{\qopnamewl@{gcd}}
+\def\hom{\qopname@{hom}}
+\def\inf{\qopnamewl@{inf}}
+\def\injlim{\qopnamewl@{inj\,lim}}
+\def\ker{\qopname@{ker}}
+\def\lg{\qopname@{lg}}
+\def\lim{\qopnamewl@{lim}}
+\def\liminf{\qopnamewl@{lim\,inf}}
+\def\limsup{\qopnamewl@{lim\,sup}}
+\def\ln{\qopname@{ln}}
+\def\log{\qopname@{log}}
+\def\max{\qopnamewl@{max}}
+\def\min{\qopnamewl@{min}}
+\def\Pr{\qopnamewl@{Pr}}
+\def\projlim{\qopnamewl@{proj\,lim}}
+\def\sec{\qopname@{sec}}
+\def\sin{\qopname@{sin}}
+\def\sinh{\qopname@{sinh}}
+\def\sup{\qopnamewl@{sup}}
+\def\tan{\qopname@{tan}}
+\def\tanh{\qopname@{tanh}}
+\def\varinjlim{\mathop{\vtop{\ialign{##\crcr
+ \hfil\rm lim\hfil\crcr\noalign{\nointerlineskip}\rightarrowfill\crcr
+ \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
+\def\varprojlim{\mathop{\vtop{\ialign{##\crcr
+ \hfil\rm lim\hfil\crcr\noalign{\nointerlineskip}\leftarrowfill\crcr
+ \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
+\def\varliminf{\mathop{\underline{\vrule height\z@ depth.2exwidth\z@
+ \hbox{\rm lim}}}}
+\def\varlimsup{\mathop{\overline{\hbox{\rm lim}}}}
+\newdimen\buffer@
+\buffer@\fontdimen13 \tenex
+\newdimen\buffer
+\buffer\buffer@
+\def\ChangeBuffer#1{\fontdimen13 \tenex#1\relax
+ \global\buffer\fontdimen13 \tenex}
+\def\ResetBuffer{\fontdimen13 \tenex\buffer@\global\buffer\buffer@}
+\def\shave#1{\mathop{\hbox{$\m@th\fontdimen13 \tenex\z@                     %1
+ \displaystyle{#1}$}}\fontdimen13 \tenex\buffer}
+\def\topshave#1{\mathop{\topsmash{\displaystyle{#1}}\vphantom{\shave{#1}}}}
+\def\botshave#1{\mathop{\botsmash{\displaystyle{#1}}\vphantom{\shave{#1}}}}
+\message{multilevel sub/superscripts,}
+\Invalid@\\
+\def\Let@{\relax\iffalse{\fi\let\\=\cr\iffalse}\fi}
+\Invalid@\vspace
+\def\vspace@{\def\vspace##1{\crcr\noalign{\vskip##1\relax}}}
+\def\multilimits@{\bgroup\vspace@\Let@
+ \baselineskip\fontdimen10 \scriptfont\tw@
+ \advance\baselineskip\fontdimen12 \scriptfont\tw@
+ \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
+ \lineskiplimit\lineskip
+ \vbox\bgroup\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil\crcr}
+\def\Sb{_\multilimits@}
+\def\endSb{\crcr\egroup\egroup\egroup}
+\def\Sp{^\multilimits@}
+\let\endSp\endSb
+\def\spreadlines#1{\RIfMIfI@\onlydmatherr@\spreadlines\else
+ \openup#1\relax\fi\else\onlydmatherr@\spreadlines\fi}
+\def\Mathstrut@{\copy\Mathstrutbox@}
+\newbox\Mathstrutbox@
+\setbox\Mathstrutbox@\null
+\setboxz@h{$\m@th($}
+\ht\Mathstrutbox@\ht\z@
+\dp\Mathstrutbox@\dp\z@
+\message{matrices,}
+\newdimen\spreadmlines@
+\def\spreadmatrixlines#1{\RIfMIfI@
+ \onlydmatherr@\spreadmatrixlines\else
+ \spreadmlines@#1\relax\fi\else\onlydmatherr@\spreadmatrixlines\fi}
+\def\matrix{\null\,\vcenter\bgroup\Let@\vspace@
+ \normalbaselines\openup\spreadmlines@\ialign
+ \bgroup\hfil$\m@th##$\hfil&&\quad\hfil$\m@th##$\hfil\crcr
+ \Mathstrut@\crcr\noalign{\kern-\baselineskip}}
+\def\endmatrix{\crcr\Mathstrut@\crcr\noalign{\kern-\baselineskip}\egroup
+ \egroup\,}
+\def\format{\crcr\egroup\iffalse{\fi\ifnum`}=0 \fi\format@}
+\newtoks\hashtoks@
+\hashtoks@{#}
+\def\format@#1\\{\def\preamble@{#1}%
+ \def\l{$\m@th\the\hashtoks@$\hfil}%
+ \def\c{\hfil$\m@th\the\hashtoks@$\hfil}%
+ \def\r{\hfil$\m@th\the\hashtoks@$}%
+ \edef\preamble@@{\preamble@}\ifnum`{=0 \fi\iffalse}\fi
+ \ialign\bgroup\span\preamble@@\crcr}
+\def\smallmatrix{\null\,\vcenter\bgroup\vspace@\Let@
+ \baselineskip9\ex@\lineskip\ex@
+ \ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil&&\thickspace\hfil
+ $\m@th\scriptstyle{##}$\hfil\crcr}
+\def\endsmallmatrix{\crcr\egroup\egroup\,}
+\def\pmatrix{\left(\matrix}
+\def\endpmatrix{\endmatrix\right)}
+\def\bmatrix{\left[\matrix}
+\def\endbmatrix{\endmatrix\right]}
+\def\vmatrix{\left|\matrix}
+\def\endvmatrix{\endmatrix\right|}
+\def\Vmatrix{\left\|\matrix}
+\def\endVmatrix{\endmatrix\right\|}
+\def\hdots{\mathinner{\ldotp\ldotp\ldotp}}
+\newmuskip\dotsspace@
+\dotsspace@1.5mu
+\def\strip@#1 {#1}
+\def\spacehdots#1\for#2{\multispan{#2}\xleaders
+ \hbox{$\m@th\mkern\strip@#1 \dotsspace@.\mkern\strip@#1 \dotsspace@$}\hfill}
+\def\hdotsfor#1{\spacehdots\@ne\for{#1}}
+\def\multispan@#1{\omit\mscount#1\unskip\loop\ifnum\mscount>\@ne\sp@n\repeat}
+\def\spaceinnerhdots#1\for#2\after#3{\multispan@{\strip@#2 }#3\xleaders
+ \hbox{$\m@th\mkern\strip@#1 \dotsspace@.\mkern\strip@#1 \dotsspace@$}\hfill}
+\def\innerhdotsfor#1\after#2{\spaceinnerhdots\@ne\for#1\after{#2}}
+\def\cases{\bgroup\spreadmlines@\jot\left\{\,\matrix\format\l&\quad\l\\}
+\def\endcases{\endmatrix\right.\egroup}
+\message{multiline displays,}
+\newif\ifinany@
+\newif\ifinalign@
+\newif\ifingather@
+\def\strut@{\copy\strutbox@}
+\newbox\strutbox@
+\setbox\strutbox@\hbox{\vrule height8\p@ depth3\p@ width\z@}
+\def\topaligned{\null\,\vtop\aligned@}
+\def\botaligned{\null\,\vbox\aligned@}
+\def\aligned{\null\,\vcenter\aligned@}
+\def\aligned@{\bgroup\vspace@\Let@
+ \ifinany@\else\openup\jot\fi\ialign
+ \bgroup\hfil\strut@$\m@th\displaystyle{##}$&
+ $\m@th\displaystyle{{}##}$\hfil\crcr}
+\def\endaligned{\crcr\egroup\egroup}
+\let\endtopaligned\endaligned
+\let\endbotaligned\endaligned
+\def\alignedat#1{\null\,\vcenter\bgroup\doat@{#1}\vspace@\Let@
+ \ifinany@\else\openup\jot\fi\ialign\bgroup\span\preamble@@\crcr}
+\newcount\atcount@
+\def\doat@#1{\toks@{\hfil\strut@$\m@th
+ \displaystyle{\the\hashtoks@}$&$\m@th\displaystyle
+ {{}\the\hashtoks@}$\hfil}%                                                 %1
+ \atcount@#1\relax\advance\atcount@\m@ne                                    %2
+ \loop\ifnum\atcount@>\z@\toks@=\expandafter{\the\toks@&\hfil$\m@th
+ \displaystyle{\the\hashtoks@}$&$\m@th
+ \displaystyle{{}\the\hashtoks@}$\hfil}\advance
+  \atcount@\m@ne\repeat                                                     %3
+ \xdef\preamble@{\the\toks@}\xdef\preamble@@{\preamble@}}
+\let\endalignedat\endaligned
+\def\gathered{\null\,\vcenter\bgroup\vspace@\Let@
+ \ifinany@\else\openup\jot\fi\ialign
+ \bgroup\hfil\strut@$\m@th\displaystyle{##}$\hfil\crcr}
+\def\endgathered{\crcr\egroup\egroup}
+\newif\iftagsleft@
+\def\TagsOnLeft{\global\tagsleft@true}
+\def\TagsOnRight{\global\tagsleft@false}
+\TagsOnLeft
+\newif\ifmathtags@
+\def\TagsAsMath{\global\mathtags@true}
+\def\TagsAsText{\global\mathtags@false}
+\TagsAsText
+\def\tagform@#1{\hbox{\rm(\ignorespaces#1\unskip)}}
+\def\thetag{\leavevmode\tagform@}
+\def\tag#1$${\iftagsleft@\leqno\else\eqno\fi                                %1
+ \maketag@#1\maketag@                                                       %2
+ $$}                                                                        %3
+\def\maketag@{\FN@\maketag@@}
+\def\maketag@@{\ifx\next"\expandafter\maketag@@@\else\expandafter\maketag@@@@
+ \fi}
+\def\maketag@@@"#1"#2\maketag@{\hbox{\rm#1}}                                %1
+\def\maketag@@@@#1\maketag@{\ifmathtags@\tagform@{$\m@th#1$}\else
+ \tagform@{#1}\fi}
+\interdisplaylinepenalty\@M
+\def\allowdisplaybreaks{\RIfMIfI@
+ \onlydmatherr@\allowdisplaybreaks\else
+ \interdisplaylinepenalty\z@\fi\else\onlydmatherr@\allowdisplaybreaks\fi}
+\Invalid@\allowdisplaybreak
+\Invalid@\displaybreak
+\Invalid@\intertext
+\def\allowdisplaybreak@{\def\allowdisplaybreak{\crcr\noalign{\allowbreak}}}
+\def\displaybreak@{\def\displaybreak{\crcr\noalign{\break}}}
+\def\intertext@{\def\intertext##1{\crcr\noalign{%
+ \penalty\postdisplaypenalty \vskip\belowdisplayskip
+ \vbox{\normalbaselines\noindent##1}%
+ \penalty\predisplaypenalty \vskip\abovedisplayskip}}}
+\newskip\centering@
+\centering@\z@ plus\@m\p@
+\def\align{\relax\ifingather@\DN@{\csname align (in
+  \string\gather)\endcsname}\else
+ \ifmmode\ifinner\DN@{\onlydmatherr@\align}\else
+  \let\next@\align@\fi
+ \else\DN@{\onlydmatherr@\align}\fi\fi\next@}
+\newhelp\andhelp@
+{An extra & here is so disastrous that you should probably exit^^J
+and fix things up.}
+\newif\iftag@
+\newcount\and@
+\def\align@{\inalign@true\inany@true
+ \vspace@\allowdisplaybreak@\displaybreak@\intertext@
+ \def\tag{\global\tag@true\ifnum\and@=\z@\DN@{&&}\else
+          \DN@{&}\fi\next@}%
+ \iftagsleft@\DN@{\csname align \endcsname}\else
+  \DN@{\csname align \space\endcsname}\fi\next@}
+\def\Tag@{\iftag@\else\errhelp\andhelp@\err@{Extra & on this line}\fi}
+\newdimen\lwidth@
+\newdimen\rwidth@
+\newdimen\maxlwidth@
+\newdimen\maxrwidth@
+\newdimen\totwidth@
+\def\measure@#1\endalign{\lwidth@\z@\rwidth@\z@\maxlwidth@\z@\maxrwidth@\z@
+ \global\and@\z@                                                            %1
+ \setbox@ne\vbox                                                            %2
+  {\everycr{\noalign{\global\tag@false\global\and@\z@}}\Let@                %3
+  \halign{\setboxz@h{$\m@th\displaystyle{\@lign##}$}%                       %4
+   \global\lwidth@\wdz@                                                     %5
+   \ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi                  %6
+   \global\advance\and@\@ne                                                 %7
+   &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}\global\rwidth@\wdz@        %8
+   \ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi                  %9
+   \global\advance\and@\@ne                                                %10
+   &\Tag@
+   \eat@{##}\crcr#1\crcr}}%                                                %11
+ \totwidth@\maxlwidth@\advance\totwidth@\maxrwidth@}                       %12
+\def\displ@y@{\global\dt@ptrue\openup\jot
+ \everycr{\noalign{\global\tag@false\global\and@\z@\ifdt@p\global\dt@pfalse
+ \vskip-\lineskiplimit\vskip\normallineskiplimit\else
+ \penalty\interdisplaylinepenalty\fi}}}
+\def\black@#1{\noalign{\ifdim#1>\displaywidth
+ \dimen@\prevdepth\nointerlineskip                                          %1
+ \vskip-\ht\strutbox@\vskip-\dp\strutbox@                                   %2
+ \vbox{\noindent\hbox to#1{\strut@\hfill}}%                                 %3
+ \prevdepth\dimen@                                                          %4
+ \fi}}
+\expandafter\def\csname align \space\endcsname#1\endalign
+ {\measure@#1\endalign\global\and@\z@                                       %1
+ \ifingather@\everycr{\noalign{\global\and@\z@}}\else\displ@y@\fi           %2
+ \Let@\tabskip\centering@                                                   %3
+ \halign to\displaywidth
+  {\hfil\strut@\setboxz@h{$\m@th\displaystyle{\@lign##}$}%                  %4
+  \global\lwidth@\wdz@\boxz@\global\advance\and@\@ne                        %5
+  \tabskip\z@skip                                                           %6
+  &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%                            %7
+  \global\rwidth@\wdz@\boxz@\hfill\global\advance\and@\@ne                  %8
+  \tabskip\centering@                                                       %9
+  &\setboxz@h{\@lign\strut@\maketag@##\maketag@}%                          %10
+  \dimen@\displaywidth\advance\dimen@-\totwidth@
+  \divide\dimen@\tw@\advance\dimen@\maxrwidth@\advance\dimen@-\rwidth@     %11
+  \ifdim\dimen@<\tw@\wdz@\llap{\vtop{\normalbaselines\null\boxz@}}%        %12
+  \else\llap{\boxz@}\fi                                                    %13
+  \tabskip\z@skip                                                          %14
+  \crcr#1\crcr                                                             %15
+  \black@\totwidth@}}                                                      %16
+\newdimen\lineht@
+\expandafter\def\csname align \endcsname#1\endalign{\measure@#1\endalign
+ \global\and@\z@
+ \ifdim\totwidth@>\displaywidth\let\displaywidth@\totwidth@\else
+  \let\displaywidth@\displaywidth\fi                                        %1
+ \ifingather@\everycr{\noalign{\global\and@\z@}}\else\displ@y@\fi
+ \Let@\tabskip\centering@\halign to\displaywidth
+  {\hfil\strut@\setboxz@h{$\m@th\displaystyle{\@lign##}$}%
+  \global\lwidth@\wdz@\global\lineht@\ht\z@                                 %2
+  \boxz@\global\advance\and@\@ne
+  \tabskip\z@skip&\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
+  \global\rwidth@\wdz@\ifdim\ht\z@>\lineht@\global\lineht@\ht\z@\fi         %3
+  \boxz@\hfil\global\advance\and@\@ne
+  \tabskip\centering@&\kern-\displaywidth@                                  %4
+  \setboxz@h{\@lign\strut@\maketag@##\maketag@}%
+  \dimen@\displaywidth\advance\dimen@-\totwidth@
+  \divide\dimen@\tw@\advance\dimen@\maxlwidth@\advance\dimen@-\lwidth@
+  \ifdim\dimen@<\tw@\wdz@
+   \rlap{\vbox{\normalbaselines\boxz@\vbox to\lineht@{}}}\else
+   \rlap{\boxz@}\fi
+  \tabskip\displaywidth@\crcr#1\crcr\black@\totwidth@}}
+\expandafter\def\csname align (in \string\gather)\endcsname
+  #1\endalign{\vcenter{\align@#1\endalign}}
+\Invalid@\endalign
+\newif\ifxat@
+\def\alignat{\RIfMIfI@\DN@{\onlydmatherr@\alignat}\else
+ \DN@{\csname alignat \endcsname}\fi\else
+ \DN@{\onlydmatherr@\alignat}\fi\next@}
+\newif\ifmeasuring@
+\newbox\savealignat@
+\expandafter\def\csname alignat \endcsname#1#2\endalignat                   %1
+ {\inany@true\xat@false
+ \def\tag{\global\tag@true\count@#1\relax\multiply\count@\tw@
+  \xdef\tag@{}\loop\ifnum\count@>\and@\xdef\tag@{&\tag@}\advance\count@\m@ne
+  \repeat\tag@}%
+ \vspace@\allowdisplaybreak@\displaybreak@\intertext@
+ \displ@y@\measuring@true                                                   %2
+ \setbox\savealignat@\hbox{$\m@th\displaystyle\Let@
+  \attag@{#1}%                                                              %3
+  \vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
+ \measuring@false                                                           %4
+ \Let@\attag@{#1}%                                                          %5
+ \tabskip\centering@\halign to\displaywidth
+  {\span\preamble@@\crcr#2\crcr                                             %6
+  \black@{\wd\savealignat@}}}                                               %7
+\Invalid@\endalignat
+\def\xalignat{\RIfMIfI@
+ \DN@{\onlydmatherr@\xalignat}\else
+ \DN@{\csname xalignat \endcsname}\fi\else
+ \DN@{\onlydmatherr@\xalignat}\fi\next@}
+\expandafter\def\csname xalignat \endcsname#1#2\endxalignat
+ {\inany@true\xat@true
+ \def\tag{\global\tag@true\def\tag@{}\count@#1\relax\multiply\count@\tw@
+  \loop\ifnum\count@>\and@\xdef\tag@{&\tag@}\advance\count@\m@ne\repeat\tag@}%
+ \vspace@\allowdisplaybreak@\displaybreak@\intertext@
+ \displ@y@\measuring@true\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@
+ \attag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
+ \measuring@false\Let@
+ \attag@{#1}\tabskip\centering@\halign to\displaywidth
+ {\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}}
+\def\attag@#1{\let\Maketag@\maketag@\let\TAG@\Tag@                          %1
+ \let\Tag@=0\let\maketag@=0%                                                %2
+ \ifmeasuring@\def\llap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}%
+  \def\rlap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}\else
+  \let\llap@\llap\let\rlap@\rlap\fi                                         %3
+ \toks@{\hfil\strut@$\m@th\displaystyle{\@lign\the\hashtoks@}$\tabskip\z@skip
+  \global\advance\and@\@ne&$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil
+  \ifxat@\tabskip\centering@\fi\global\advance\and@\@ne}%                   %4
+ \iftagsleft@
+  \toks@@{\tabskip\centering@&\Tag@\kern-\displaywidth
+   \rlap@{\@lign\maketag@\the\hashtoks@\maketag@}%
+   \global\advance\and@\@ne\tabskip\displaywidth}\else
+  \toks@@{\tabskip\centering@&\Tag@\llap@{\@lign\maketag@
+   \the\hashtoks@\maketag@}\global\advance\and@\@ne\tabskip\z@skip}\fi      %5
+ \atcount@#1\relax\advance\atcount@\m@ne
+ \loop\ifnum\atcount@>\z@
+ \toks@=\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\@lign
+  \the\hashtoks@}$\global\advance\and@\@ne
+  \tabskip\z@skip&$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil\ifxat@
+  \tabskip\centering@\fi\global\advance\and@\@ne}\advance\atcount@\m@ne
+ \repeat                                                                    %6
+ \xdef\preamble@{\the\toks@\the\toks@@}%                                    %7
+ \xdef\preamble@@{\preamble@}%                                              %8
+ \let\maketag@\Maketag@\let\Tag@\TAG@}                                      %9
+\Invalid@\endxalignat
+\def\xxalignat{\RIfMIfI@
+ \DN@{\onlydmatherr@\xxalignat}\else\DN@{\csname xxalignat
+  \endcsname}\fi\else
+ \DN@{\onlydmatherr@\xxalignat}\fi\next@}
+\expandafter\def\csname xxalignat \endcsname#1#2\endxxalignat{\inany@true
+ \vspace@\allowdisplaybreak@\displaybreak@\intertext@
+ \displ@y\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@
+ \xxattag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
+ \Let@\xxattag@{#1}\tabskip\z@skip\halign to\displaywidth
+ {\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}}
+\def\xxattag@#1{\toks@{\tabskip\z@skip\hfil\strut@
+ $\m@th\displaystyle{\the\hashtoks@}$&%
+ $\m@th\displaystyle{{}\the\hashtoks@}$\hfil\tabskip\centering@&}%
+ \atcount@#1\relax\advance\atcount@\m@ne\loop\ifnum\atcount@>\z@
+ \toks@=\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\the\hashtoks@}$%
+  \tabskip\z@skip&$\m@th\displaystyle{{}\the\hashtoks@}$\hfil
+  \tabskip\centering@}\advance\atcount@\m@ne\repeat
+ \xdef\preamble@{\the\toks@\tabskip\z@skip}\xdef\preamble@@{\preamble@}}
+\Invalid@\endxxalignat
+\newdimen\gwidth@
+\newdimen\gmaxwidth@
+\def\gmeasure@#1\endgather{\gwidth@\z@\gmaxwidth@\z@\setbox@ne\vbox{\Let@
+ \halign{\setboxz@h{$\m@th\displaystyle{##}$}\global\gwidth@\wdz@
+ \ifdim\gwidth@>\gmaxwidth@\global\gmaxwidth@\gwidth@\fi
+ &\eat@{##}\crcr#1\crcr}}}
+\def\gather{\RIfMIfI@\DN@{\onlydmatherr@\gather}\else
+ \ingather@true\inany@true\def\tag{&}%
+ \vspace@\allowdisplaybreak@\displaybreak@\intertext@
+ \displ@y\Let@
+ \iftagsleft@\DN@{\csname gather \endcsname}\else
+  \DN@{\csname gather \space\endcsname}\fi\fi
+ \else\DN@{\onlydmatherr@\gather}\fi\next@}
+\expandafter\def\csname gather \space\endcsname#1\endgather
+ {\gmeasure@#1\endgather\tabskip\centering@
+ \halign to\displaywidth{\hfil\strut@\setboxz@h{$\m@th\displaystyle{##}$}%
+ \global\gwidth@\wdz@\boxz@\hfil&
+ \setboxz@h{\strut@{\maketag@##\maketag@}}%
+ \dimen@\displaywidth\advance\dimen@-\gwidth@
+ \ifdim\dimen@>\tw@\wdz@\llap{\boxz@}\else
+ \llap{\vtop{\normalbaselines\null\boxz@}}\fi
+ \tabskip\z@skip\crcr#1\crcr\black@\gmaxwidth@}}
+\newdimen\glineht@
+\expandafter\def\csname gather \endcsname#1\endgather{\gmeasure@#1\endgather
+ \ifdim\gmaxwidth@>\displaywidth\let\gdisplaywidth@\gmaxwidth@\else
+ \let\gdisplaywidth@\displaywidth\fi\tabskip\centering@\halign to\displaywidth
+ {\hfil\strut@\setboxz@h{$\m@th\displaystyle{##}$}%
+ \global\gwidth@\wdz@\global\glineht@\ht\z@\boxz@\hfil&\kern-\gdisplaywidth@
+ \setboxz@h{\strut@{\maketag@##\maketag@}}%
+ \dimen@\displaywidth\advance\dimen@-\gwidth@
+ \ifdim\dimen@>\tw@\wdz@\rlap{\boxz@}\else
+ \rlap{\vbox{\normalbaselines\boxz@\vbox to\glineht@{}}}\fi
+ \tabskip\gdisplaywidth@\crcr#1\crcr\black@\gmaxwidth@}}
+\newif\ifctagsplit@
+\def\CenteredTagsOnSplits{\global\ctagsplit@true}
+\def\TopOrBottomTagsOnSplits{\global\ctagsplit@false}
+\TopOrBottomTagsOnSplits
+\def\split{\relax\ifinany@\let\next@\insplit@\else
+ \ifmmode\ifinner\def\next@{\onlydmatherr@\split}\else
+ \let\next@\outsplit@\fi\else
+ \def\next@{\onlydmatherr@\split}\fi\fi\next@}
+\def\insplit@{\global\setbox\z@\vbox\bgroup\vspace@\Let@\ialign\bgroup
+ \hfil\strut@$\m@th\displaystyle{##}$&$\m@th\displaystyle{{}##}$\hfill\crcr}
+\def\endsplit{\crcr\egroup\egroup\iftagsleft@\expandafter\lendsplit@\else
+ \expandafter\rendsplit@\fi}
+\def\rendsplit@{\global\setbox9 \vbox
+ {\unvcopy\z@\global\setbox8 \lastbox\unskip}%                              %1
+ \setbox@ne\hbox{\unhcopy8 \unskip\global\setbox\tw@\lastbox
+ \unskip\global\setbox\thr@@\lastbox}%                                      %2
+ \global\setbox7 \hbox{\unhbox\tw@\unskip}%                                 %3
+ \ifinalign@\ifctagsplit@                                                   %4
+  \gdef\split@{\hbox to\wd\thr@@{}&
+   \vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}}%                              %5
+ \else\gdef\split@{&\vbox{\moveleft\wd\thr@@\box9}\crcr
+  \box\thr@@&\box7}\fi                                                      %6
+ \else                                                                      %7
+  \ifctagsplit@\gdef\split@{\vcenter{\boxz@}}\else
+  \gdef\split@{\box9\crcr\hbox{\box\thr@@\box7}}\fi
+ \fi
+ \split@}                                                                   %8
+\def\lendsplit@{\global\setbox9\vtop{\unvcopy\z@}%                          %1
+ \setbox@ne\vbox{\unvcopy\z@\global\setbox8\lastbox}%                       %2
+ \setbox@ne\hbox{\unhcopy8\unskip\setbox\tw@\lastbox
+  \unskip\global\setbox\thr@@\lastbox}%                                     %3
+ \ifinalign@\ifctagsplit@                                                   %4
+  \gdef\split@{\hbox to\wd\thr@@{}&
+  \vcenter{\vbox{\moveleft\wd\thr@@\box9}}}%                                %5
+  \else                                                                     %6
+  \gdef\split@{\hbox to\wd\thr@@{}&\vbox{\moveleft\wd\thr@@\box9}}\fi
+ \else
+  \ifctagsplit@\gdef\split@{\vcenter{\box9}}\else
+  \gdef\split@{\box9}\fi
+ \fi\split@}
+\def\outsplit@#1$${\align\insplit@#1\endalign$$}
+\newdimen\multlinegap@
+\multlinegap@1em
+\newdimen\multlinetaggap@
+\multlinetaggap@1em
+\def\MultlineGap#1{\global\multlinegap@#1\relax}
+\def\multlinegap#1{\RIfMIfI@\onlydmatherr@\multlinegap\else
+ \multlinegap@#1\relax\fi\else\onlydmatherr@\multlinegap\fi}
+\def\nomultlinegap{\multlinegap{\z@}}
+\def\multline{\RIfMIfI@
+ \DN@{\onlydmatherr@\multline}\else
+ \DN@{\multline@}\fi\else
+ \DN@{\onlydmatherr@\multline}\fi\next@}
+\newif\iftagin@
+\def\tagin@#1{\tagin@false\in@\tag{#1}\ifin@\tagin@true\fi}
+\def\multline@#1$${\inany@true\vspace@\allowdisplaybreak@\displaybreak@
+ \tagin@{#1}\iftagsleft@\DN@{\multline@l#1$$}\else
+ \DN@{\multline@r#1$$}\fi\next@}
+\newdimen\mwidth@
+\def\rmmeasure@#1\endmultline{%
+ \def\shoveleft##1{##1}\def\shoveright##1{##1}%                             %1
+ \setbox@ne\vbox{\Let@\halign{\setboxz@h
+  {$\m@th\@lign\displaystyle{}##$}\global\mwidth@\wdz@
+  \crcr#1\crcr}}}
+\newdimen\mlineht@
+\newif\ifzerocr@
+\newif\ifonecr@
+\def\lmmeasure@#1\endmultline{\global\zerocr@true\global\onecr@false
+ \everycr{\noalign{\ifonecr@\global\onecr@false\fi
+  \ifzerocr@\global\zerocr@false\global\onecr@true\fi}}%                    %1
+  \def\shoveleft##1{##1}\def\shoveright##1{##1}%
+ \setbox@ne\vbox{\Let@\halign{\setboxz@h
+  {$\m@th\@lign\displaystyle{}##$}\ifonecr@\global\mwidth@\wdz@
+  \global\mlineht@\ht\z@\fi\crcr#1\crcr}}}
+\newbox\mtagbox@
+\newdimen\ltwidth@
+\newdimen\rtwidth@
+\def\multline@l#1$${\iftagin@\DN@{\lmultline@@#1$$}\else
+ \DN@{\setbox\mtagbox@\null\ltwidth@\z@\rtwidth@\z@
+  \lmultline@@@#1$$}\fi\next@}
+\def\lmultline@@#1\endmultline\tag#2$${%
+ \setbox\mtagbox@\hbox{\maketag@#2\maketag@}%                               %1
+ \lmmeasure@#1\endmultline\dimen@\mwidth@\advance\dimen@\wd\mtagbox@
+ \advance\dimen@\multlinetaggap@                                            %2
+ \ifdim\dimen@>\displaywidth\ltwidth@\z@\else\ltwidth@\wd\mtagbox@\fi       %3
+ \lmultline@@@#1\endmultline$$}
+\def\lmultline@@@{\displ@y
+ \def\shoveright##1{##1\hfilneg\hskip\multlinegap@}%
+ \def\shoveleft##1{\setboxz@h{$\m@th\displaystyle{}##1$}%
+  \setbox@ne\hbox{$\m@th\displaystyle##1$}%
+  \hfilneg
+  \iftagin@
+   \ifdim\ltwidth@>\z@\hskip\ltwidth@\hskip\multlinetaggap@\fi
+  \else\hskip\multlinegap@\fi\hskip.5\wd@ne\hskip-.5\wdz@##1}%              %1
+  \halign\bgroup\Let@\hbox to\displaywidth
+   {\strut@$\m@th\displaystyle\hfil{}##\hfil$}\crcr
+   \hfilneg                                                                 %2
+   \iftagin@                                                                %3
+    \ifdim\ltwidth@>\z@                                                     %4
+     \box\mtagbox@\hskip\multlinetaggap@                                    %5
+    \else
+     \rlap{\vbox{\normalbaselines\hbox{\strut@\box\mtagbox@}%
+     \vbox to\mlineht@{}}}\fi                                               %6
+   \else\hskip\multlinegap@\fi}                                             %7
+\def\multline@r#1$${\iftagin@\DN@{\rmultline@@#1$$}\else
+ \DN@{\setbox\mtagbox@\null\ltwidth@\z@\rtwidth@\z@
+  \rmultline@@@#1$$}\fi\next@}
+\def\rmultline@@#1\endmultline\tag#2$${\ltwidth@\z@
+ \setbox\mtagbox@\hbox{\maketag@#2\maketag@}%
+ \rmmeasure@#1\endmultline\dimen@\mwidth@\advance\dimen@\wd\mtagbox@
+ \advance\dimen@\multlinetaggap@
+ \ifdim\dimen@>\displaywidth\rtwidth@\z@\else\rtwidth@\wd\mtagbox@\fi
+ \rmultline@@@#1\endmultline$$}
+\def\rmultline@@@{\displ@y
+ \def\shoveright##1{##1\hfilneg\iftagin@\ifdim\rtwidth@>\z@
+  \hskip\rtwidth@\hskip\multlinetaggap@\fi\else\hskip\multlinegap@\fi}%
+ \def\shoveleft##1{\setboxz@h{$\m@th\displaystyle{}##1$}%
+  \setbox@ne\hbox{$\m@th\displaystyle##1$}%
+  \hfilneg\hskip\multlinegap@\hskip.5\wd@ne\hskip-.5\wdz@##1}%
+ \halign\bgroup\Let@\hbox to\displaywidth
+  {\strut@$\m@th\displaystyle\hfil{}##\hfil$}\crcr
+ \hfilneg\hskip\multlinegap@}
+\def\endmultline{\iftagsleft@\expandafter\lendmultline@\else
+ \expandafter\rendmultline@\fi}
+\def\lendmultline@{\hfilneg\hskip\multlinegap@\crcr\egroup}
+\def\rendmultline@{\iftagin@                                                %1
+ \ifdim\rtwidth@>\z@                                                        %2
+  \hskip\multlinetaggap@\box\mtagbox@                                       %3
+ \else\llap{\vtop{\normalbaselines\null\hbox{\strut@\box\mtagbox@}}}\fi     %4
+ \else\hskip\multlinegap@\fi                                                %5
+ \hfilneg\crcr\egroup}
+\def\bmod{\mskip-\medmuskip\mkern5mu\mathbin{\fam\z@ mod}\penalty900
+ \mkern5mu\mskip-\medmuskip}
+\def\pmod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi
+ ({\fam\z@ mod}\,\,#1)}
+\def\pod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi(#1)}
+\def\mod#1{\allowbreak\ifinner\mkern12mu\else\mkern18mu\fi{\fam\z@ mod}\,\,#1}
+\message{continued fractions,}
+\newcount\cfraccount@
+\def\cfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut
+ \iffalse{\fi\def\\{\over\displaystyle}\iffalse}\fi}
+\def\lcfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut
+ \iffalse{\fi\def\\{\hfill\over\displaystyle}\iffalse}\fi}
+\def\rcfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut\hfill
+ \iffalse{\fi\def\\{\over\displaystyle}\iffalse}\fi}
+\def\gloop@#1\repeat{\gdef\body{#1}\iterate}
+\def\endcfrac{\gloop@\ifnum\cfraccount@>\z@\global\advance\cfraccount@\m@ne
+ \egroup\hskip-\nulldelimiterspace\egroup\repeat}
+\message{compound symbols,}
+\def\binrel@#1{\setboxz@h{\thinmuskip0mu
+  \medmuskip\m@ne mu\thickmuskip\@ne mu$#1\m@th$}%
+ \setbox@ne\hbox{\thinmuskip0mu\medmuskip\m@ne mu\thickmuskip
+  \@ne mu${}#1{}\m@th$}%
+ \setbox\tw@\hbox{\hskip\wd@ne\hskip-\wdz@}}
+\def\overset#1\to#2{\binrel@{#2}\ifdim\wd\tw@<\z@
+ \mathbin{\mathop{\kern\z@#2}\limits^{#1}}\else\ifdim\wd\tw@>\z@
+ \mathrel{\mathop{\kern\z@#2}\limits^{#1}}\else
+ {\mathop{\kern\z@#2}\limits^{#1}}{}\fi\fi}
+\def\underset#1\to#2{\binrel@{#2}\ifdim\wd\tw@<\z@
+ \mathbin{\mathop{\kern\z@#2}\limits_{#1}}\else\ifdim\wd\tw@>\z@
+ \mathrel{\mathop{\kern\z@#2}\limits_{#1}}\else
+ {\mathop{\kern\z@#2}\limits_{#1}}{}\fi\fi}
+\def\oversetbrace#1\to#2{\overbrace{#2}^{#1}}
+\def\undersetbrace#1\to#2{\underbrace{#2}_{#1}}
+\def\sideset#1\and#2\to#3{%
+ \setbox@ne\hbox{$\dsize{\vphantom{#3}}#1{#3}\m@th$}%
+ \setbox\tw@\hbox{$\dsize{#3}#2\m@th$}%
+ \hskip\wd@ne\hskip-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wd@ne
+  {\vphantom{#3}}#1{#3}#2}}
+\def\rightarrowfill@#1{\setboxz@h{$#1-\m@th$}\ht\z@\z@
+  $#1\m@th\copy\z@\mkern-6mu\cleaders
+  \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
+  \mkern-6mu\mathord\rightarrow$}
+\def\leftarrowfill@#1{\setboxz@h{$#1-\m@th$}\ht\z@\z@
+  $#1\m@th\mathord\leftarrow\mkern-6mu\cleaders
+  \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill
+  \mkern-6mu\box\z@$}
+\def\leftrightarrowfill@#1{\setboxz@h{$#1-\m@th$}\ht\z@\z@
+  $#1\m@th\mathord\leftarrow\mkern-6mu\cleaders
+  \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
+  \mkern-6mu\mathord\rightarrow$}
+\def\overrightarrow{\mathpalette\overrightarrow@}
+\def\overrightarrow@#1#2{\vbox{\ialign{##\crcr\rightarrowfill@#1\crcr
+ \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}
+\let\overarrow\overrightarrow
+\def\overleftarrow{\mathpalette\overleftarrow@}
+\def\overleftarrow@#1#2{\vbox{\ialign{##\crcr\leftarrowfill@#1\crcr
+ \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}
+\def\overleftrightarrow{\mathpalette\overleftrightarrow@}
+\def\overleftrightarrow@#1#2{\vbox{\ialign{##\crcr\leftrightarrowfill@#1\crcr
+ \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}
+\def\underrightarrow{\mathpalette\underrightarrow@}
+\def\underrightarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr
+ \noalign{\nointerlineskip}\rightarrowfill@#1\crcr}}}
+\let\underarrow\underrightarrow
+\def\underleftarrow{\mathpalette\underleftarrow@}
+\def\underleftarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr
+ \noalign{\nointerlineskip}\leftarrowfill@#1\crcr}}}
+\def\underleftrightarrow{\mathpalette\underleftrightarrow@}
+\def\underleftrightarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr
+ \noalign{\nointerlineskip}\leftrightarrowfill@#1\crcr}}}
+\message{various kinds of dots,}
+\let\DOTSI\relax
+\let\DOTSB\relax
+\let\DOTSX\relax
+\newif\ifmath@
+{\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h
+ \uppercase{\gdef\math@#1#2#3#4#5#6\math@{\global\math@false\ifx 7#1\ifx 8#2%
+ \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\global\math@true\fi\fi\fi\fi\fi}}}
+\newif\ifmathch@
+{\uccode`7=`c \uccode`8=`h \uccode`9=`\"
+ \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\global\mathch@false
+  \ifx 7#1\ifx 8#2\ifx 9#5\global\mathch@true\xdef\meaning@{9#6}\fi\fi\fi}}}
+\newcount\classnum@
+\def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096
+ \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or
+ \gdef\thedots@{\dotsb@}\fi}
+\newif\ifmathbin@
+{\uccode`4=`b \uccode`5=`i \uccode`6=`n
+ \uppercase{\gdef\mathbin@#1#2#3{\relaxnext@
+  \DNii@##1\mathbin@{\ifx\space@\next\global\mathbin@true\fi}%
+ \global\mathbin@false\DN@##1\mathbin@{}%
+ \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
+\newif\ifmathrel@
+{\uccode`4=`r \uccode`5=`e \uccode`6=`l
+ \uppercase{\gdef\mathrel@#1#2#3{\relaxnext@
+  \DNii@##1\mathrel@{\ifx\space@\next\global\mathrel@true\fi}%
+ \global\mathrel@false\DN@##1\mathrel@{}%
+ \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
+\newif\ifmacro@
+{\uccode`5=`m \uccode`6=`a \uccode`7=`c
+ \uppercase{\gdef\macro@#1#2#3#4\macro@{\global\macro@false
+  \ifx 5#1\ifx 6#2\ifx 7#3\global\macro@true
+  \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}}
+\def\macro@@#1->#2\macro@@{#2}
+\newif\ifDOTS@
+\newcount\DOTSCASE@
+{\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S
+ \uppercase{\gdef\DOTS@#1#2#3#4#5{\global\DOTS@false\DN@##1\DOTS@{}%
+  \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next@\DOTS@@\fi\fi\fi\fi\fi
+  \next@}}}
+{\uccode`3=`B \uccode`4=`I \uccode`5=`X
+ \uppercase{\gdef\DOTS@@#1{\relaxnext@
+  \DNii@##1\DOTS@{\ifx\space@\next\global\DOTS@true\fi}%
+  \DN@{\FN@\nextii@}%
+  \ifx 3#1\global\DOTSCASE@\z@\else
+  \ifx 4#1\global\DOTSCASE@\@ne\else
+  \ifx 5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}%
+  \fi\fi\fi\next@}}}
+\newif\ifnot@
+{\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t
+ \uppercase{\gdef\not@#1#2#3#4{\relaxnext@
+  \DNii@##1\not@{\ifx\space@\next\global\not@true\fi}%
+ \global\not@false\DN@##1\not@{}%
+ \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi
+ \fi\next@}}}
+\newif\ifkeybin@
+\def\keybin@{\keybin@true
+ \ifx\next+\else\ifx\next=\else\ifx\next<\else\ifx\next>\else\ifx\next-\else
+ \ifx\next*\else\ifx\next:\else\keybin@false\fi\fi\fi\fi\fi\fi\fi}
+\def\dots{\RIfM@\expandafter\mdots@\else\expandafter\tdots@\fi}
+\def\tdots@{\unskip\relaxnext@
+ \DN@{$\m@th\mathinner{\ldotp\ldotp\ldotp}\,
+   \ifx\next,\,$\else\ifx\next.\,$\else\ifx\next;\,$\else\ifx\next:\,$\else
+   \ifx\next?\,$\else\ifx\next!\,$\else$ \fi\fi\fi\fi\fi\fi}%
+ \ \FN@\next@}
+\def\mdots@{\FN@\mdots@@}
+\def\mdots@@{\gdef\thedots@{\dotso@}%                                       %1
+ \ifx\next\boldkey\gdef\thedots@\boldkey{\boldkeydots@}\else                %2
+ \ifx\next\boldsymbol\gdef\thedots@\boldsymbol{\boldsymboldots@}\else       %3
+ \ifx,\next\gdef\thedots@{\dotsc}%                                          %4
+ \else\ifx\not\next\gdef\thedots@{\dotsb@}%                                 %5
+ \else\keybin@
+ \ifkeybin@\gdef\thedots@{\dotsb@}%                                         %6
+ \else\xdef\meaning@{\meaning\next..........}\xdef\meaning@@{\meaning@}%    %7
+  \expandafter\math@\meaning@\math@
+  \ifmath@
+   \expandafter\mathch@\meaning@\mathch@
+   \ifmathch@\expandafter\getmathch@\meaning@\getmathch@\fi                 %8
+  \else\expandafter\macro@\meaning@@\macro@                                 %9
+  \ifmacro@                                                                %10
+   \expandafter\not@\meaning@\not@\ifnot@\gdef\thedots@{\dotsb@}%          %11
+  \else\expandafter\DOTS@\meaning@\DOTS@
+  \ifDOTS@
+   \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}%
+    \or\gdef\thedots@{\dotsi}\else\fi                                      %12
+  \else\expandafter\math@\meaning@\math@                                   %13
+  \ifmath@\expandafter\mathbin@\meaning@\mathbin@
+  \ifmathbin@\gdef\thedots@{\dotsb@}%                                      %14
+  \else\expandafter\mathrel@\meaning@\mathrel@
+  \ifmathrel@\gdef\thedots@{\dotsb@}%                                      %15
+  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \thedots@}
+\def\plainldots@{\mathinner{\ldotp\ldotp\ldotp}}
+\def\plaincdots@{\mathinner{\cdotp\cdotp\cdotp}}
+\def\dotsi{\!\plaincdots@}
+\let\dotsb@\plaincdots@
+\newif\ifextra@
+\newif\ifrightdelim@
+\def\rightdelim@{\global\rightdelim@true                                    %1
+ \ifx\next)\else                                                            %2
+ \ifx\next]\else
+ \ifx\next\rbrack\else
+ \ifx\next\}\else
+ \ifx\next\rbrace\else
+ \ifx\next\rangle\else
+ \ifx\next\rceil\else
+ \ifx\next\rfloor\else
+ \ifx\next\rgroup\else
+ \ifx\next\rmoustache\else
+ \ifx\next\right\else
+ \ifx\next\bigr\else
+ \ifx\next\biggr\else
+ \ifx\next\Bigr\else                                                        %3
+ \ifx\next\Biggr\else\global\rightdelim@false
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\extra@{%
+ \global\extra@false\rightdelim@\ifrightdelim@\global\extra@true            %1
+ \else\ifx\next$\global\extra@true                                          %2
+ \else\xdef\meaning@{\meaning\next..........}%                              %3
+ \expandafter\macro@\meaning@\macro@\ifmacro@                               %4
+ \expandafter\DOTS@\meaning@\DOTS@
+ \ifDOTS@
+ \ifnum\DOTSCASE@=\tw@\global\extra@true                                    %5
+ \fi\fi\fi\fi\fi}
+\newif\ifbold@
+\def\dotso@{\relaxnext@
+ \ifbold@
+  \let\next\delayed@
+  \DNii@{\extra@\plainldots@\ifextra@\,\fi}%
+ \else
+  \DNii@{\DN@{\extra@\plainldots@\ifextra@\,\fi}\FN@\next@}%
+ \fi
+ \nextii@}
+\def\extrap@#1{%
+ \ifx\next,\DN@{#1\,}\else
+ \ifx\next;\DN@{#1\,}\else
+ \ifx\next.\DN@{#1\,}\else\extra@
+ \ifextra@\DN@{#1\,}\else
+ \let\next@#1\fi\fi\fi\fi\next@}
+\def\ldots{\DN@{\extrap@\plainldots@}%
+ \FN@\next@}
+\def\cdots{\DN@{\extrap@\plaincdots@}%
+ \FN@\next@}
+\let\dotso\ldots
+\let\dotsb\cdots
+\let\dotsm\dotsb
+\def\dotsc{\relaxnext@
+ \DN@{\ifx\next;\plainldots@\,\else
+  \ifx\next.\plainldots@\,\else\extra@\plainldots@
+  \ifextra@\,\fi\fi\fi}%
+ \FN@\next@}
+\def\cdot{\mathchar"2201 }
+\def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}
+\def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}
+\def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}
+\def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}
+\def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}
+\def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}
+\def\mapsto{\DOTSB\mapstochar\rightarrow}
+\def\longmapsto{\DOTSB\mapstochar\longrightarrow}
+\def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow}
+\def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook}
+\def\doteq{\DOTSB\buildrel\textstyle.\over=}
+\def\iff{\DOTSB\;\Longleftrightarrow\;}
+\message{special superscripts,}
+\def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
+ \hbox{\rm...}\vss}}}}
+\def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
+ \hbox{\rm....}\vss}}}}
+\def\sphat{^{\mathchoice{}{}%
+ {\,\,\botsmash{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}%
+ {\,\botsmash{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}}
+\def\spcheck{^\vee}
+\def\sptilde{^\sim}
+\def\spacute{^{\!\botsmash{\hbox{\lower\@ne ex\hbox{\'{}}}}}}
+\def\spgrave{^{\mathchoice{}{}{}{\!}%
+ \botsmash{\hbox{\lower\@ne ex\hbox{\`{}}}}}}
+\def\spdot{^{\hbox{\raise\ex@\hbox{\rm.}}}}
+\def\spddot{^{\hbox{\raise\ex@\hbox{\rm..}}}}
+\def\spdddot{^{\hbox{\raise\ex@\hbox{\rm...}}}}
+\def\spddddot{^{\hbox{\raise\ex@\hbox{\rm....}}}}
+\def\spbreve{^{\!\botsmash{\hbox{\lower4\ex@\hbox{\u{}}}}}}
+\def\spbar{^-}
+\def\spvec{^\rightarrow}
+\message{\string\text,}
+\def\textonlyfont@#1#2{\def#1{\RIfM@
+ \Err@{Use \string#1\space only in text}\else#2\fi}}
+\textonlyfont@\rm\tenrm
+\textonlyfont@\it\tenit
+\textonlyfont@\sl\tensl
+\textonlyfont@\bf\tenbf
+\def\oldnos#1{\RIfM@{\mathcode`\,="013B \fam\@ne#1}\else
+ \leavevmode\hbox{$\m@th\mathcode`\,="013B \fam\@ne#1$}\fi}
+\def\text{\RIfM@\expandafter\text@\else\expandafter\text@@\fi}
+\def\text@@#1{\leavevmode\hbox{#1}}
+\def\mathhexbox@#1#2#3{\text{$\m@th\mathchar"#1#2#3$}}
+\def\dag{{\mathhexbox@279}}
+\def\ddag{{\mathhexbox@27A}}
+\def\S{{\mathhexbox@278}}
+\def\P{{\mathhexbox@27B}}
+\newif\iffirstchoice@
+\firstchoice@true
+\def\text@#1{\mathchoice
+ {\hbox{\everymath{\displaystyle}\def\textfonti{\the\textfont\@ne}%
+  \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}}
+ {\hbox{\firstchoice@false
+  \everymath{\textstyle}\def\textfonti{\the\textfont\@ne}%
+  \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}}
+ {\hbox{\firstchoice@false
+  \everymath{\scriptstyle}\def\textfonti{\the\scriptfont\@ne}%
+  \def\textfontii{\the\scriptfont\tw@}\textdef@@ S\rm#1}}
+ {\hbox{\firstchoice@false
+  \everymath{\scriptscriptstyle}\def\textfonti
+  {\the\scriptscriptfont\@ne}%
+  \def\textfontii{\the\scriptscriptfont\tw@}\textdef@@ s\rm#1}}}
+\def\textdef@@#1{\textdef@#1\rm\textdef@#1\bf\textdef@#1\sl\textdef@#1\it}
+\def\rmfam{0}
+\def\textdef@#1#2{%
+ \DN@{\csname\expandafter\eat@\string#2fam\endcsname}%
+ \if S#1\edef#2{\the\scriptfont\next@\relax}%
+ \else\if s#1\edef#2{\the\scriptscriptfont\next@\relax}%
+ \else\edef#2{\the\textfont\next@\relax}\fi\fi}
+\scriptfont\itfam\tenit \scriptscriptfont\itfam\tenit
+\scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl
+\newif\iftopfolded@
+\newif\ifbotfolded@
+\def\topfoldedtext{\topfolded@true\botfolded@false\foldedtext@}
+\def\botfoldedtext{\botfolded@true\topfolded@false\foldedtext@}
+\def\foldedtext{\topfolded@false\botfolded@false\foldedtext@}
+\Invalid@\foldedwidth
+\def\foldedtext@{\relaxnext@
+ \DN@{\ifx\next\foldedwidth\let\next@\nextii@\else
+  \DN@{\nextii@\foldedwidth{.3\hsize}}\fi\next@}%
+ \DNii@\foldedwidth##1##2{\setbox\z@\vbox
+  {\normalbaselines\hsize##1\relax
+  \tolerance1600 \noindent\ignorespaces##2}\ifbotfolded@\boxz@\else
+  \iftopfolded@\vtop{\unvbox\z@}\else\vcenter{\boxz@}\fi\fi}%
+ \FN@\next@}
+\message{math font commands,}
+\def\bold{\RIfM@\expandafter\bold@\else
+ \expandafter\nonmatherr@\expandafter\bold\fi}
+\def\bold@#1{{\bold@@{#1}}}
+\def\bold@@#1{\fam\bffam\relax#1}
+\def\slanted{\RIfM@\expandafter\slanted@\else
+ \expandafter\nonmatherr@\expandafter\slanted\fi}
+\def\slanted@#1{{\slanted@@{#1}}}
+\def\slanted@@#1{\fam\slfam\relax#1}
+\def\roman{\RIfM@\expandafter\roman@\else
+ \expandafter\nonmatherr@\expandafter\roman\fi}
+\def\roman@#1{{\roman@@{#1}}}
+\def\roman@@#1{\fam\rmfam\relax#1}
+\def\italic{\RIfM@\expandafter\italic@\else
+ \expandafter\nonmatherr@\expandafter\italic\fi}
+\def\italic@#1{{\italic@@{#1}}}
+\def\italic@@#1{\fam\itfam\relax#1}
+\def\Cal{\RIfM@\expandafter\Cal@\else
+ \expandafter\nonmatherr@\expandafter\Cal\fi}
+\def\Cal@#1{{\Cal@@{#1}}}
+\def\Cal@@#1{\noaccents@\fam\tw@#1}
+\mathchardef\Gamma="0000
+\mathchardef\Delta="0001
+\mathchardef\Theta="0002
+\mathchardef\Lambda="0003
+\mathchardef\Xi="0004
+\mathchardef\Pi="0005
+\mathchardef\Sigma="0006
+\mathchardef\Upsilon="0007
+\mathchardef\Phi="0008
+\mathchardef\Psi="0009
+\mathchardef\Omega="000A
+\mathchardef\varGamma="0100
+\mathchardef\varDelta="0101
+\mathchardef\varTheta="0102
+\mathchardef\varLambda="0103
+\mathchardef\varXi="0104
+\mathchardef\varPi="0105
+\mathchardef\varSigma="0106
+\mathchardef\varUpsilon="0107
+\mathchardef\varPhi="0108
+\mathchardef\varPsi="0109
+\mathchardef\varOmega="010A
+\let\alloc@@\alloc@
+\def\hexnumber@#1{\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
+ 9\or A\or B\or C\or D\or E\or F\fi}
+\def\loadmsam{%
+ \font@\tenmsa=msam10
+ \font@\sevenmsa=msam7
+ \font@\fivemsa=msam5
+ \alloc@@8\fam\chardef\sixt@@n\msafam
+ \textfont\msafam=\tenmsa
+ \scriptfont\msafam=\sevenmsa
+ \scriptscriptfont\msafam=\fivemsa
+ \edef\next{\hexnumber@\msafam}%
+ \mathchardef\dabar@"0\next39
+ \edef\dashrightarrow{\mathrel{\dabar@\dabar@\mathchar"0\next4B}}%
+ \edef\dashleftarrow{\mathrel{\mathchar"0\next4C\dabar@\dabar@}}%
+ \let\dasharrow\dashrightarrow
+ \edef\ulcorner{\delimiter"4\next70\next70 }%
+ \edef\urcorner{\delimiter"5\next71\next71 }%
+ \edef\llcorner{\delimiter"4\next78\next78 }%
+ \edef\lrcorner{\delimiter"5\next79\next79 }%
+ \edef\yen{{\noexpand\mathhexbox@\next55}}%
+ \edef\checkmark{{\noexpand\mathhexbox@\next58}}%
+ \edef\circledR{{\noexpand\mathhexbox@\next72}}%
+ \edef\maltese{{\noexpand\mathhexbox@\next7A}}%
+ \global\let\loadmsam\empty}%
+\def\loadmsbm{%
+ \font@\tenmsb=msbm10 \font@\sevenmsb=msbm7 \font@\fivemsb=msbm5
+ \alloc@@8\fam\chardef\sixt@@n\msbfam
+ \textfont\msbfam=\tenmsb
+ \scriptfont\msbfam=\sevenmsb \scriptscriptfont\msbfam=\fivemsb
+ \global\let\loadmsbm\empty
+ }
+\def\widehat#1{\ifx\undefined\msbfam \DN@{362}%
+  \else \setboxz@h{$\m@th#1$}%
+    \edef\next@{\ifdim\wdz@>\tw@ em%
+        \hexnumber@\msbfam 5B%
+      \else 362\fi}\fi
+  \mathaccent"0\next@{#1}}
+\def\widetilde#1{\ifx\undefined\msbfam \DN@{365}%
+  \else \setboxz@h{$\m@th#1$}%
+    \edef\next@{\ifdim\wdz@>\tw@ em%
+        \hexnumber@\msbfam 5D%
+      \else 365\fi}\fi
+  \mathaccent"0\next@{#1}}
+\message{\string\newsymbol,}
+\def\newsymbol#1#2#3#4#5{\define#1{}%
+  \count@#2\relax \advance\count@\m@ne % to push case 0 to the \else clause
+ \ifcase\count@
+   \ifx\undefined\msafam\loadmsam\fi \let\next@\msafam
+ \or \ifx\undefined\msbfam\loadmsbm\fi \let\next@\msbfam
+ \else  \Err@{\Invalid@@\string\newsymbol}\let\next@\tw@\fi
+ \mathchardef#1="#3\hexnumber@\next@#4#5\space}
+\def\UseAMSsymbols{\loadmsam\loadmsbm \input amssym.tex }
+\def\Bbb{\RIfM@\expandafter\Bbb@\else
+ \expandafter\nonmatherr@\expandafter\Bbb\fi}
+\def\Bbb@#1{{\Bbb@@{#1}}}
+\def\Bbb@@#1{\noaccents@\fam\msbfam\relax#1}
+\message{bold Greek and bold symbols,}
+\def\loadbold{%
+ \font@\tencmmib=cmmib10 \font@\sevencmmib=cmmib7 \font@\fivecmmib=cmmib5
+ \skewchar\tencmmib'177 \skewchar\sevencmmib'177 \skewchar\fivecmmib'177
+ \alloc@@8\fam\chardef\sixt@@n\cmmibfam
+ \textfont\cmmibfam\tencmmib
+ \scriptfont\cmmibfam\sevencmmib \scriptscriptfont\cmmibfam\fivecmmib
+ \font@\tencmbsy=cmbsy10 \font@\sevencmbsy=cmbsy7 \font@\fivecmbsy=cmbsy5
+ \skewchar\tencmbsy'60 \skewchar\sevencmbsy'60 \skewchar\fivecmbsy'60
+ \alloc@@8\fam\chardef\sixt@@n\cmbsyfam
+ \textfont\cmbsyfam\tencmbsy
+ \scriptfont\cmbsyfam\sevencmbsy \scriptscriptfont\cmbsyfam\fivecmbsy
+ \let\loadbold\empty
+}
+\def\boldnotloaded#1{\Err@{\ifcase#1\or First\else Second\fi
+       bold symbol font not loaded}}
+\def\mathchari@#1#2#3{\ifx\undefined\cmmibfam
+    \boldnotloaded@\@ne
+  \else\mathchar"#1\hexnumber@\cmmibfam#2#3\space \fi}
+\def\mathcharii@#1#2#3{\ifx\undefined\cmbsyfam
+    \boldnotloaded\tw@
+  \else \mathchar"#1\hexnumber@\cmbsyfam#2#3\space\fi}
+\edef\bffam@{\hexnumber@\bffam}
+\def\boldkey#1{\ifcat\noexpand#1A%
+  \ifx\undefined\cmmibfam \boldnotloaded\@ne
+  \else {\fam\cmmibfam#1}\fi
+ \else
+ \ifx#1!\mathchar"5\bffam@21 \else
+ \ifx#1(\mathchar"4\bffam@28 \else\ifx#1)\mathchar"5\bffam@29 \else
+ \ifx#1+\mathchar"2\bffam@2B \else\ifx#1:\mathchar"3\bffam@3A \else
+ \ifx#1;\mathchar"6\bffam@3B \else\ifx#1=\mathchar"3\bffam@3D \else
+ \ifx#1?\mathchar"5\bffam@3F \else\ifx#1[\mathchar"4\bffam@5B \else
+ \ifx#1]\mathchar"5\bffam@5D \else
+ \ifx#1,\mathchari@63B \else
+ \ifx#1-\mathcharii@200 \else
+ \ifx#1.\mathchari@03A \else
+ \ifx#1/\mathchari@03D \else
+ \ifx#1<\mathchari@33C \else
+ \ifx#1>\mathchari@33E \else
+ \ifx#1*\mathcharii@203 \else
+ \ifx#1|\mathcharii@06A \else
+ \ifx#10\bold0\else\ifx#11\bold1\else\ifx#12\bold2\else\ifx#13\bold3\else
+ \ifx#14\bold4\else\ifx#15\bold5\else\ifx#16\bold6\else\ifx#17\bold7\else
+ \ifx#18\bold8\else\ifx#19\bold9\else
+  \Err@{\string\boldkey\space can't be used with #1}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\boldsymbol#1{%
+ \DN@{\Err@{You can't use \string\boldsymbol\space with \string#1}#1}%
+ \ifcat\noexpand#1A%
+   \let\next@\relax
+   \ifx\undefined\cmmibfam \boldnotloaded\@ne
+   \else {\fam\cmmibfam#1}\fi
+ \else
+  \xdef\meaning@{\meaning#1.........}%
+  \expandafter\math@\meaning@\math@
+  \ifmath@
+   \expandafter\mathch@\meaning@\mathch@
+   \ifmathch@
+    \expandafter\boldsymbol@@\meaning@\boldsymbol@@
+   \fi
+  \else
+   \expandafter\macro@\meaning@\macro@
+   \expandafter\delim@\meaning@\delim@
+   \ifdelim@
+    \expandafter\delim@@\meaning@\delim@@
+   \else
+    \boldsymbol@{#1}%
+   \fi
+  \fi
+ \fi
+ \next@}
+\def\mathhexboxii@#1#2{\ifx\undefined\cmbsyfam
+    \boldnotloaded\tw@
+  \else \mathhexbox@{\hexnumber@\cmbsyfam}{#1}{#2}\fi}
+\def\boldsymbol@#1{\let\next@\relax\let\next#1%
+ \ifx\next\cdot\mathcharii@201 \else
+ \ifx\next\prime{{\null\mathcharii@030 \null}}\else
+ \ifx\next\lbrack\mathchar"4\bffam@5B \else
+ \ifx\next\rbrack\mathchar"5\bffam@5D \else
+ \ifx\next\{\mathcharii@466 \else
+ \ifx\next\lbrace\mathcharii@466 \else
+ \ifx\next\}\mathcharii@567 \else
+ \ifx\next\rbrace\mathcharii@567 \else
+ \ifx\next\surd{{\mathcharii@170}}\else
+ \ifx\next\S{{\mathhexboxii@78}}\else
+ \ifx\next\P{{\mathhexboxii@7B}}\else
+ \ifx\next\dag{{\mathhexboxii@79}}\else
+ \ifx\next\ddag{{\mathhexboxii@7A}}\else
+ \DN@{\Err@{You can't use \string\boldsymbol\space with \string#1}#1}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\boldsymbol@@#1.#2\boldsymbol@@{\classnum@#1 \count@@@\classnum@        %1
+ \divide\classnum@4096 \count@\classnum@                                    %2
+ \multiply\count@4096 \advance\count@@@-\count@ \count@@\count@@@           %3
+ \divide\count@@@\@cclvi \count@\count@@                                    %4
+ \multiply\count@@@\@cclvi \advance\count@@-\count@@@                       %5
+ \divide\count@@@\@cclvi                                                    %6
+ \multiply\classnum@4096 \advance\classnum@\count@@                         %7
+ \ifnum\count@@@=\z@                                                        %8
+  \count@"\bffam@ \multiply\count@\@cclvi
+  \advance\classnum@\count@
+  \DN@{\mathchar\number\classnum@}%
+ \else
+  \ifnum\count@@@=\@ne                                                      %9
+   \ifx\undefined\cmmibfam \DN@{\boldnotloaded\@ne}%
+   \else \count@\cmmibfam \multiply\count@\@cclvi
+     \advance\classnum@\count@
+     \DN@{\mathchar\number\classnum@}\fi
+  \else
+   \ifnum\count@@@=\tw@                                                    %10
+     \ifx\undefined\cmbsyfam
+       \DN@{\boldnotloaded\tw@}%
+     \else
+       \count@\cmbsyfam \multiply\count@\@cclvi
+       \advance\classnum@\count@
+       \DN@{\mathchar\number\classnum@}%
+     \fi
+  \fi
+ \fi
+\fi}
+\newif\ifdelim@
+\newcount\delimcount@
+{\uccode`6=`\\ \uccode`7=`d \uccode`8=`e \uccode`9=`l
+ \uppercase{\gdef\delim@#1#2#3#4#5\delim@
+  {\delim@false\ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\delim@true
+   \xdef\meaning@{#5}\fi\fi\fi\fi}}}
+\def\delim@@#1"#2#3#4#5#6\delim@@{\if#32%
+\let\next@\relax
+ \ifx\undefined\cmbsyfam \boldnotloaded\@ne
+ \else \mathcharii@#2#4#5\space \fi\fi}
+\def\vert{\delimiter"026A30C }
+\def\Vert{\delimiter"026B30D }
+\let\|\Vert
+\def\backslash{\delimiter"026E30F }
+\def\boldkeydots@#1{\bold@true\let\next=#1\let\delayed@=#1\mdots@@
+ \boldkey#1\bold@false}  % = required!
+\def\boldsymboldots@#1{\bold@true\let\next#1\let\delayed@#1\mdots@@
+ \boldsymbol#1\bold@false}
+\message{Euler fonts,}
+\def\loadeufm{\loadmathfont{eufm}}
+\def\loadeufb{\loadmathfont{eufb}}
+\def\loadeusm{\loadmathfont{eusm}}
+\def\loadeusb{\loadmathfont{eusb}}
+\def\loadeurm{\loadmathfont{eurm}}
+\def\loadeurb{\loadmathfont{eurb}}
+\def\frak{\mathfont@\frak}
+\def\frakfam{\eufmfam}
+\let\goth\frak
+\def\loadmathfont#1{% 
+   \expandafter\font@\csname ten#1\endcsname=#110
+   \expandafter\font@\csname seven#1\endcsname=#17
+   \expandafter\font@\csname five#1\endcsname=#15
+   \edef\next{\noexpand\alloc@@8\fam\chardef\sixt@@n
+     \expandafter\noexpand\csname#1fam\endcsname}%
+   \next
+   \textfont\csname#1fam\endcsname \csname ten#1\endcsname
+   \scriptfont\csname#1fam\endcsname \csname seven#1\endcsname
+   \scriptscriptfont\csname#1fam\endcsname \csname five#1\endcsname
+   \expandafter\def\csname #1\expandafter\endcsname\expandafter{%
+      \expandafter\mathfont@\csname#1\endcsname}%
+ \expandafter\gdef\csname load#1\endcsname{}%
+}
+\def\mathfont@#1{\RIfM@\expandafter\mathfont@@\expandafter#1\else
+  \expandafter\nonmatherr@\expandafter#1\fi}
+\def\mathfont@@#1#2{{\mathfont@@@#1{#2}}}
+\def\mathfont@@@#1#2{\noaccents@
+   \fam\csname\expandafter\eat@\string#1fam\endcsname
+   \relax#2}
+\message{math accents,}
+\def\accentclass@{7}
+\def\noaccents@{\def\accentclass@{0}}
+\def\makeacc@#1#2{\def#1{\mathaccent"\accentclass@#2 }}
+\makeacc@\hat{05E}
+\makeacc@\check{014}
+\makeacc@\tilde{07E}
+\makeacc@\acute{013}
+\makeacc@\grave{012}
+\makeacc@\dot{05F}
+\makeacc@\ddot{07F}
+\makeacc@\breve{015}
+\makeacc@\bar{016}
+\def\vec{\mathaccent"017E }
+\newcount\skewcharcount@
+\newcount\familycount@
+\def\theskewchar@{\familycount@\@ne
+ \global\skewcharcount@\the\skewchar\textfont\@ne                           %1
+ \ifnum\fam>\m@ne\ifnum\fam<16
+  \global\familycount@\the\fam\relax
+  \global\skewcharcount@\the\skewchar\textfont\the\fam\relax\fi\fi          %2
+ \ifnum\skewcharcount@>\m@ne
+  \ifnum\skewcharcount@<128
+  \multiply\familycount@256
+  \global\advance\skewcharcount@\familycount@
+  \global\advance\skewcharcount@28672
+  \mathchar\skewcharcount@\else
+  \global\skewcharcount@\m@ne\fi\else
+ \global\skewcharcount@\m@ne\fi}                                            %3
+\newcount\pointcount@
+\def\getpoints@#1.#2\getpoints@{\pointcount@#1 }
+\newdimen\accentdimen@
+\newcount\accentmu@
+\def\dimentomu@{\multiply\accentdimen@ 100
+ \expandafter\getpoints@\the\accentdimen@\getpoints@
+ \multiply\pointcount@18
+ \divide\pointcount@\@m
+ \global\accentmu@\pointcount@}
+\def\Makeacc@#1#2{\def#1{\RIfM@\DN@{\mathaccent@
+ {"\accentclass@#2 }}\else\DN@{\nonmatherr@{#1}}\fi\next@}}
+\def\unbracefonts@{\let\Cal@\Cal@@\let\roman@\roman@@\let\bold@\bold@@
+ \let\slanted@\slanted@@}
+\def\mathaccent@#1#2{\ifnum\fam=\m@ne\xdef\thefam@{1}\else
+ \xdef\thefam@{\the\fam}\fi                                                 %1
+ \accentdimen@\z@                                                           %2
+ \setboxz@h{\unbracefonts@$\m@th\fam\thefam@\relax#2$}%                     %3
+ \ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}%                            %4
+  \setbox@ne\hbox{\unbracefonts@$\m@th\fam\thefam@\relax#2\theskewchar@$}% %5a
+  \setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else
+   \mathchar\skewcharcount@\fi$}%                                          %5b
+  \global\accentdimen@\wd@ne\global\advance\accentdimen@-\wdz@
+  \global\advance\accentdimen@-\wd\tw@                                     %5c
+  \global\multiply\accentdimen@\tw@
+  \dimentomu@\global\advance\accentmu@\@ne                                 %5d
+ \else\DN@{{\mathaccent#1{#2\mkern\accentmu@ mu}%
+    \mkern-\accentmu@ mu}{}}\fi                                             %6
+ \next@}\Makeacc@\Hat{05E}
+\Makeacc@\Check{014}
+\Makeacc@\Tilde{07E}
+\Makeacc@\Acute{013}
+\Makeacc@\Grave{012}
+\Makeacc@\Dot{05F}
+\Makeacc@\Ddot{07F}
+\Makeacc@\Breve{015}
+\Makeacc@\Bar{016}
+\def\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else
+ \DN@{\nonmatherr@\Vec}\fi\next@}
+\def\accentedsymbol#1#2{\csname newbox\expandafter\endcsname
+  \csname\expandafter\eat@\string#1@box\endcsname
+ \expandafter\setbox\csname\expandafter\eat@
+  \string#1@box\endcsname\hbox{$\m@th#2$}\define
+  #1{\copy\csname\expandafter\eat@\string#1@box\endcsname{}}}
+\message{roots,}
+\def\sqrt#1{\radical"270370 {#1}}
+\let\underline@\underline
+\let\overline@\overline
+\def\underline#1{\underline@{#1}}
+\def\overline#1{\overline@{#1}}
+\Invalid@\leftroot
+\Invalid@\uproot
+\newcount\uproot@
+\newcount\leftroot@
+\def\root{\relaxnext@
+  \DN@{\ifx\next\uproot\let\next@\nextii@\else
+   \ifx\next\leftroot\let\next@\nextiii@\else
+   \let\next@\plainroot@\fi\fi\next@}%
+  \DNii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}%
+  \def\nextiv@{\ifx\next\space@\DN@. {\FN@\nextv@}\else
+   \DN@.{\FN@\nextv@}\fi\next@.}%
+  \def\nextv@{\ifx\next\leftroot\let\next@\nextvi@\else
+   \let\next@\plainroot@\fi\next@}%
+  \def\nextvi@\leftroot##1{\leftroot@##1\relax\plainroot@}%
+   \def\nextiii@\leftroot##1{\leftroot@##1\relax\FN@\nextvii@}%
+  \def\nextvii@{\ifx\next\space@
+   \DN@. {\FN@\nextviii@}\else
+   \DN@.{\FN@\nextviii@}\fi\next@.}%
+  \def\nextviii@{\ifx\next\uproot\let\next@\nextix@\else
+   \let\next@\plainroot@\fi\next@}%
+  \def\nextix@\uproot##1{\uproot@##1\relax\plainroot@}%
+  \bgroup\uproot@\z@\leftroot@\z@\FN@\next@}
+\def\plainroot@#1\of#2{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
+ \mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}
+ {\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}
+\def\r@@t#1#2{\setboxz@h{$\m@th#1\sqrt{#2}$}%
+ \dimen@\ht\z@\advance\dimen@-\dp\z@
+ \setbox@ne\hbox{$\m@th#1\mskip\uproot@ mu$}\advance\dimen@ 1.667\wd@ne
+ \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox
+ \mkern-10mu\mkern\leftroot@ mu\boxz@}
+\def\boxed#1{\setboxz@h{$\m@th\displaystyle{#1}$}\dimen@.4\ex@
+ \advance\dimen@3\ex@\advance\dimen@\dp\z@
+ \hbox{\lower\dimen@\hbox{%
+ \vbox{\hrule height.4\ex@
+ \hbox{\vrule width.4\ex@\hskip3\ex@\vbox{\vskip3\ex@\boxz@\vskip3\ex@}%
+ \hskip3\ex@\vrule width.4\ex@}\hrule height.4\ex@}%
+ }}}
+\message{commutative diagrams,}
+\let\ampersand@\relax
+\newdimen\minaw@
+\minaw@11.11128\ex@
+\newdimen\minCDaw@
+\minCDaw@2.5pc
+\def\minCDarrowwidth#1{\RIfMIfI@\onlydmatherr@\minCDarrowwidth
+ \else\minCDaw@#1\relax\fi\else\onlydmatherr@\minCDarrowwidth\fi}
+\newif\ifCD@
+\def\CD{\bgroup\vspace@\relax\iffalse{\fi\let\ampersand@&\iffalse}\fi
+ \CD@true\vcenter\bgroup\Let@\tabskip\z@skip\baselineskip20\ex@
+ \lineskip3\ex@\lineskiplimit3\ex@\halign\bgroup
+ &\hfill$\m@th##$\hfill\crcr}
+\def\endCD{\crcr\egroup\egroup\egroup}
+\newdimen\bigaw@
+\atdef@>#1>#2>{\ampersand@                                                  %1
+ \setboxz@h{$\m@th\ssize\;{#1}\;\;$}%                                       %2
+ \setbox@ne\hbox{$\m@th\ssize\;{#2}\;\;$}%                                  %3
+ \setbox\tw@\hbox{$\m@th#2$}%                                               %4
+ \ifCD@\global\bigaw@\minCDaw@\else\global\bigaw@\minaw@\fi                 %5
+ \ifdim\wdz@>\bigaw@\global\bigaw@\wdz@\fi
+ \ifdim\wd@ne>\bigaw@\global\bigaw@\wd@ne\fi                                %6
+ \ifCD@\enskip\fi                                                           %7
+ \ifdim\wd\tw@>\z@
+  \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}%
+    \limits^{#1}_{#2}}%                                                     %8
+ \else\mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}%
+    \limits^{#1}}\fi                                                        %9
+ \ifCD@\enskip\fi                                                          %10
+ \ampersand@}                                                              %11
+\atdef@<#1<#2<{\ampersand@\setboxz@h{$\m@th\ssize\;\;{#1}\;$}%
+ \setbox@ne\hbox{$\m@th\ssize\;\;{#2}\;$}\setbox\tw@\hbox{$\m@th#2$}%
+ \ifCD@\global\bigaw@\minCDaw@\else\global\bigaw@\minaw@\fi
+ \ifdim\wdz@>\bigaw@\global\bigaw@\wdz@\fi
+ \ifdim\wd@ne>\bigaw@\global\bigaw@\wd@ne\fi
+ \ifCD@\enskip\fi
+ \ifdim\wd\tw@>\z@
+  \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}%
+       \limits^{#1}_{#2}}\else
+  \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}%
+       \limits^{#1}}\fi
+ \ifCD@\enskip\fi\ampersand@}
+\begingroup
+ \catcode`\~=\active \lccode`\~=`\@
+ \lowercase{%
+  \global\atdef@)#1)#2){~>#1>#2>}
+  \global\atdef@(#1(#2({~<#1<#2<}}
+\endgroup
+\atdef@ A#1A#2A{\llap{$\m@th\vcenter{\hbox
+ {$\ssize#1$}}$}\Big\uparrow\rlap{$\m@th\vcenter{\hbox{$\ssize#2$}}$}&&}
+\atdef@ V#1V#2V{\llap{$\m@th\vcenter{\hbox
+ {$\ssize#1$}}$}\Big\downarrow\rlap{$\m@th\vcenter{\hbox{$\ssize#2$}}$}&&}
+\atdef@={&\enskip\mathrel
+ {\vbox{\hrule width\minCDaw@\vskip3\ex@\hrule width
+ \minCDaw@}}\enskip&}
+\atdef@|{\Big\Vert&&}
+\atdef@\vert{\Big\Vert&&}
+\def\pretend#1\haswidth#2{\setboxz@h{$\m@th\scriptstyle{#2}$}\hbox
+ to\wdz@{\hfill$\m@th\scriptstyle{#1}$\hfill}}
+\message{poor man's bold,}
+\def\pmb{\RIfM@\expandafter\mathpalette\expandafter\pmb@\else
+ \expandafter\pmb@@\fi}
+\def\pmb@@#1{\leavevmode\setboxz@h{#1}%
+   \dimen@-\wdz@
+   \kern-.5\ex@\copy\z@
+   \kern\dimen@\kern.25\ex@\raise.4\ex@\copy\z@
+   \kern\dimen@\kern.25\ex@\box\z@
+}
+\def\binrel@@#1{\ifdim\wd2<\z@\mathbin{#1}\else\ifdim\wd\tw@>\z@
+ \mathrel{#1}\else{#1}\fi\fi}
+\newdimen\pmbraise@
+%      Note: because of the use of \mathpalette, if \pmb@ is
+%      applied to a single math italic character (or a single
+%      character from some other slanted math font), the italic
+%      correction will be added.  This will cause subscripts
+%      to fall too far away from the character in some
+%      cases, e.g., $\pmb{T}_1$ or $\pmb{\Cal T}_1$.
+\def\pmb@#1#2{\setbox\thr@@\hbox{$\m@th#1{#2}$}%
+ \setbox4\hbox{$\m@th#1\mkern.5mu$}\pmbraise@\wd4\relax
+ \binrel@{#2}%
+ \dimen@-\wd\thr@@
+   \binrel@@{%
+   \mkern-.8mu\copy\thr@@
+   \kern\dimen@\mkern.4mu\raise\pmbraise@\copy\thr@@
+   \kern\dimen@\mkern.4mu\box\thr@@
+}}
+\def\documentstyle#1{\W@{}\input #1.sty\relax}
+\message{syntax check,}
+\font\dummyft@=dummy
+\fontdimen1 \dummyft@=\z@
+\fontdimen2 \dummyft@=\z@
+\fontdimen3 \dummyft@=\z@
+\fontdimen4 \dummyft@=\z@
+\fontdimen5 \dummyft@=\z@
+\fontdimen6 \dummyft@=\z@
+\fontdimen7 \dummyft@=\z@
+\fontdimen8 \dummyft@=\z@
+\fontdimen9 \dummyft@=\z@
+\fontdimen10 \dummyft@=\z@
+\fontdimen11 \dummyft@=\z@
+\fontdimen12 \dummyft@=\z@
+\fontdimen13 \dummyft@=\z@
+\fontdimen14 \dummyft@=\z@
+\fontdimen15 \dummyft@=\z@
+\fontdimen16 \dummyft@=\z@
+\fontdimen17 \dummyft@=\z@
+\fontdimen18 \dummyft@=\z@
+\fontdimen19 \dummyft@=\z@
+\fontdimen20 \dummyft@=\z@
+\fontdimen21 \dummyft@=\z@
+\fontdimen22 \dummyft@=\z@
+\def\fontlist@{\\{\tenrm}\\{\sevenrm}\\{\fiverm}\\{\teni}\\{\seveni}%
+ \\{\fivei}\\{\tensy}\\{\sevensy}\\{\fivesy}\\{\tenex}\\{\tenbf}\\{\sevenbf}%
+ \\{\fivebf}\\{\tensl}\\{\tenit}}
+\def\font@#1=#2 {\rightappend@#1\to\fontlist@\font#1=#2 }
+\def\dodummy@{{\def\\##1{\global\let##1\dummyft@}\fontlist@}}
+\def\nopages@{\output{\setbox\z@\box\@cclv \deadcycles\z@}%
+ \alloc@5\toks\toksdef\@cclvi\output}
+\let\galleys\nopages@
+\newif\ifsyntax@
+\newcount\countxviii@
+\def\syntax{\syntax@true\dodummy@\countxviii@\count18
+ \loop\ifnum\countxviii@>\m@ne\textfont\countxviii@=\dummyft@
+ \scriptfont\countxviii@=\dummyft@\scriptscriptfont\countxviii@=\dummyft@
+ \advance\countxviii@\m@ne\repeat                                           %1
+ \dummyft@\tracinglostchars\z@\nopages@\frenchspacing\hbadness\@M}
+\def\first@#1#2\end{#1}
+\def\printoptions{\W@{Do you want S(yntax check),
+  G(alleys) or P(ages)?}%
+ \message{Type S, G or P, followed by <return>: }%
+ \begingroup % to localize the following change to \endlinechar:
+ \endlinechar\m@ne % to prevent a space or \par in \ans@ from ^^M
+ \read\m@ne to\ans@
+%  Define \ans@ to uppercase itself, and default to P if the user
+%  just pressed <return>.
+ \edef\ans@{\uppercase{\def\noexpand\ans@{%
+   \expandafter\first@\ans@ P\end}}}%
+%  Cast the new definition of \ans@ outside the group
+ \expandafter\endgroup\ans@
+ \if\ans@ P% fine, no action needs to be taken
+ \else \if\ans@ S\syntax
+ \else \if\ans@ G\galleys
+ \else\message{? Unknown option: \ans@; using the `pages' option.}%
+ \fi\fi\fi}
+\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
+ \ch@ck#1#4#2\allocationnumber=\count1#1
+ \global#3#5=\allocationnumber
+ \ifalloc@\wlog{\string#5=\string#2\the\allocationnumber}\fi}
+\def\document{\def\alloclist@{}\def\fontlist@{}}
+\let\enddocument\bye
+\let\plainproclaim\proclaim
+\let\plainfootnote\footnote
+\let\proclaim\undefined
+\let\footnote\undefined
+\let\=\undefined
+\let\>\undefined
+\let\cal\undefined
+\let\mit\undefined
+\let\oldstyle\undefined
+\catcode`\@=\active
+\message{... finished}
+\endinput
-- 
cgit v1.2.3

