From 99baacb1f33acaea45b00e6661c29302b01562a6 Mon Sep 17 00:00:00 2001
From: ottjk <joshott16@gmail.com>
Date: Sun, 31 Dec 2023 15:01:25 -0500
Subject: sway and tex

---
 texmf/tex/latex/revtex/ltxgrid.sty | 2754 ++++++++++++++++++++++++++++++++++++
 1 file changed, 2754 insertions(+)
 create mode 100644 texmf/tex/latex/revtex/ltxgrid.sty

(limited to 'texmf/tex/latex/revtex/ltxgrid.sty')

diff --git a/texmf/tex/latex/revtex/ltxgrid.sty b/texmf/tex/latex/revtex/ltxgrid.sty
new file mode 100644
index 0000000..a8dcf78
--- /dev/null
+++ b/texmf/tex/latex/revtex/ltxgrid.sty
@@ -0,0 +1,2754 @@
+%%
+%% This is file `ltxgrid.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ltxgrid.dtx  (with options: `package,kernel')
+%% 
+%% This is a generated file;
+%% altering it directly is inadvisable;
+%% instead, modify the original source file.
+%% See the URL in the file README-LTXGRID.tex.
+%% 
+%% License
+%%    You may distribute this file under the conditions of the
+%%    LaTeX Project Public License 1.3c or later
+%%    (http://www.latex-project.org/lppl.txt).
+%% 
+%%    This file is distributed WITHOUT ANY WARRANTY;
+%%    without even the implied warranty of MERCHANTABILITY
+%%    or FITNESS FOR A PARTICULAR PURPOSE.
+%% 
+%%%  @LaTeX-file{
+%%%     filename        = "ltxgrid.dtx",
+%%%     version         = "4.2e",
+%%%     date            = "2020/10/03",
+%%%     author          = "Arthur Ogawa (mailto:arthur_ogawa at sbcglobal.net),
+%%%                        Phelype Oleinik (mailto:phelype.oleinik at latex-project.org),
+%%%                        commissioned by the American Physical Society.
+%%%                        ",
+%%%     copyright       = "Copyright (C) 1999, 2009 Arthur Ogawa,
+%%%                        distributed under the terms of the
+%%%                        LaTeX Project Public License 1.3c, see
+%%%                        ftp://ctan.tug.org/macros/latex/base/lppl.txt
+%%%                        ",
+%%%     address         = "Arthur Ogawa,
+%%%                        USA",
+%%%     telephone       = "",
+%%%     FAX             = "",
+%%%     email           = "mailto colon arthur_ogawa at sbcglobal.net",
+%%%     codetable       = "ISO/ASCII",
+%%%     keywords        = "latex, page grid, main vertical list",
+%%%     supported       = "yes",
+%%%     abstract        = "package to change page grid, MVL",
+%%%  }
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]%
+\ProvidesFile{%
+ltxgrid%
+.sty%
+}%
+ [2020/10/03 4.2e page grid package (portions licensed from W. E. Baxter web at superscript.com)]% \fileversion
+\def\package@name{ltxgrid}%
+\expandafter\PackageInfo\expandafter{\package@name}{%
+ Page grid for \protect\LaTeXe,
+ by A. Ogawa (arthur_ogawa at sbcglobal.net)%
+}%
+\RequirePackage{ltxutil}%
+\newcounter{linecount}
+\def\loop@line#1#2{%
+ \par
+ \hb@xt@\hsize{%
+  \global\advance#1\@ne
+  \edef\@tempa{\@ifnum{100>#1}{0}{}\@ifnum{10>#1}{0}{}\number#1}%
+  \@tempa\edef\@tempa{\special{line:\@tempa}}\@tempa
+  \vrule depth2.5\p@#2\leaders\hrule\hfil
+ }%
+}%
+\def\lineloop#1{%
+ \loopwhile{\loop@line\c@linecount{}\@ifnum{#1>\c@linecount}}%
+}%
+\def\linefoot#1{%
+ \loop@line\c@linecount{%
+  \footnote{%
+   #1\special{foot:#1}\vrule depth2.5\p@\leaders\hrule\hfill
+  }%
+ }%
+}%
+\let\@@mark\mark
+\let\@@topmark\topmark
+\let\@@firstmark\firstmark
+\let\@@botmark\botmark
+\let\@@splitfirstmark\splitfirstmark
+\let\@@splitbotmark\splitbotmark
+\def\@themark{{}{}{}{}}%
+\def\nul@mark{{}{}{}{}\@@nul}%
+\def\set@mark@netw@#1#2#3#4#5#6#7{\gdef#1{{#6}{#7}{#4}{#5}}\do@mark}%
+\def\set@marktw@#1#2#3#4#5#6{\gdef#1{{#2}{#6}{#4}{#5}}\do@mark}%
+\def\set@markthr@@#1#2#3#4#5#6{\gdef#1{{#2}{#3}{#6}{#5}}\do@mark}%
+\def\get@mark@@ne#1#2#3#4#5\@@nul{#1}%
+\def\get@mark@tw@#1#2#3#4#5\@@nul{#2}%
+\def\get@mark@thr@@#1#2#3#4#5\@@nul{#3}%
+\def\get@mark@f@ur#1#2#3#4#5\@@nul{#4}%
+\def\mark@netw@{\expandafter\set@mark@netw@\expandafter\@themark\@themark}%
+\def\marktw@{\expandafter\set@marktw@\expandafter\@themark\@themark}%
+\def\markthr@@{\expandafter\set@markthr@@\expandafter\@themark\@themark}%
+\def\do@mark{\do@@mark\@themark\nobreak@mark}%
+\def\do@@mark#1{%
+ \begingroup
+  \let@mark
+  \@@mark{#1}%
+ \endgroup
+}%
+\def\let@mark{%
+ \let\protect\@unexpandable@protect
+ \let\label\relax
+ \let\index\relax
+ \let\glossary\relax
+}%
+\def\nobreak@mark{%
+ \@if@sw\if@nobreak\fi{\@ifvmode{\nobreak}{}}{}%
+}%
+\def\mark@envir{\markthr@@}%
+\def\bot@envir{%
+ \expandafter\expandafter
+ \expandafter\get@mark@thr@@
+ \expandafter\@@botmark
+             \nul@mark
+}%
+\def\markboth{\mark@netw@}%
+\def\markright{\marktw@}%
+\def\leftmark{%
+ \expandafter\expandafter
+ \expandafter\get@mark@@ne
+ \expandafter\saved@@botmark
+             \nul@mark
+}%
+\def\rightmark{%
+ \expandafter\expandafter
+ \expandafter\get@mark@tw@
+ \expandafter\saved@@firstmark
+             \nul@mark
+}%
+\let\primitive@output\output
+\long\def\@tempa#1\@@nil{#1}%
+            \toks@
+\expandafter\expandafter
+\expandafter{%
+\expandafter \@tempa
+             \the\primitive@output
+             \@@nil
+             }%
+\newtoks\output@latex
+\output@latex\expandafter{\the\toks@}%
+\let\output\output@latex
+\primitive@output{\dispatch@output}%
+\def\dispatch@output{%
+ \let\par\@@par
+ \expandafter\let\expandafter\output@procedure\csname output@\the\outputpenalty\endcsname
+ \@ifnotrelax\output@procedure{}{%
+  \expandafter\def\expandafter\output@procedure\expandafter{\the\output@latex}%
+ }%
+ \expandafter\@ifx\expandafter{\csname output@-\the\execute@message@pen\endcsname\output@procedure}{%
+  \let\output@procedure\@message@saved
+ }{}%
+ \ltxgrid@info@sw{\class@info{\string\dispatch@output}\say\output@procedure\saythe\holdinginserts}{}%
+ \outputdebug@sw{\output@debug}{}%
+ \output@procedure
+}%
+\def\set@output@procedure#1#2{%
+ \count@\outputpenalty\advance\count@-#2%
+ \expandafter\let\expandafter#1\csname output@\the\count@\endcsname
+}%
+\def\output@debug{%
+ \def\@tempa{\save@message}%
+ \@ifx{\output@procedure\@tempa}{%
+  \true@sw
+ }{%
+  \@ifnum{\outputpenalty=-\save@column@insert@pen}{%
+   \@ifnum{\holdinginserts>\z@}%
+  }{%
+   \false@sw
+  }%
+ }%
+ {}{\output@debug@}%
+}%
+\def\output@debug@{%
+  \saythe\outputpenalty
+  \saythe\interlinepenalty
+  \saythe\brokenpenalty
+  \saythe\clubpenalty
+  \saythe\widowpenalty
+  \saythe\displaywidowpenalty
+  \saythe\predisplaypenalty
+  \saythe\interdisplaylinepenalty
+  \saythe\postdisplaypenalty
+  \saythe\badness
+  \say\thepagegrid
+  \saythe\pagegrid@col
+  \saythe\pagegrid@cur
+  \saythe\insertpenalties
+  \say\@@botmark
+  \saythe\pagegoal
+  \saythe\pagetotal
+  \saythe{\badness\@cclv}%
+  \say\@toplist
+  \say\@botlist
+  \say\@dbltoplist
+  \say\@deferlist
+  \trace@scroll{%
+  \showbox\@cclv
+  \showbox\@cclv@saved
+  \showbox\pagesofar
+  \showbox\csname col@1\endcsname
+  \showbox\footsofar
+  \showbox\footins
+  \showbox\footins@saved
+  \showlists
+  }%
+}%
+\@ifxundefined{\outputdebug@sw}{%
+ \@booleanfalse\outputdebug@sw
+}{}%
+\def\trace@scroll#1{\begingroup\showboxbreadth\maxdimen\showboxdepth\maxdimen\scrollmode#1\endgroup}%
+\def\trace@box#1{\trace@scroll{\showbox#1}}%
+\prepdef\@outputpage{\@outputpage@head}%
+\let\@outputpage@head\@empty
+\appdef\@outputpage{\@outputpage@tail}%
+\let\@outputpage@tail\@empty
+\def\show@box@size#1#2{%
+ \show@box@size@sw{%
+  \begingroup
+   \setbox\z@\vbox{\unvcopy#2\hrule}%
+   \class@info{Show box size: #1^^J%
+    (\the\ht\z@\space X \the\wd\z@)
+    \the\c@page\space\space\the\pagegrid@cur\space\the\pagegrid@col
+   }%
+  \endgroup
+ }{}%
+}%
+\def\show@text@box@size{%
+ \show@box@size{Text column}\@outputbox
+ \tally@box@size@sw{%
+  \@ifdim{\wd\@outputbox>\z@}{%
+   \dimen@\ht\@outputbox\divide\dimen@\@twopowerfourteen
+   \advance\dimen@-\dp\csname box@size@\the\pagegrid@col\endcsname
+   \@ifdim{\dimen@>\z@}{%
+    \advance\dimen@ \ht\csname box@size@\the\pagegrid@col\endcsname
+    \global\ht\csname box@size@\the\pagegrid@col\endcsname\dimen@
+    \show@box@size@sw{%
+     \class@info{Column: \the\dimen@}%
+    }{}%
+   }{}%
+  }{}%
+  \global\dp\csname box@size@\the\pagegrid@col\endcsname\z@
+ }{}%
+}%
+\def\show@pagesofar@size{%
+ \show@box@size{Page so far}\pagesofar
+ \dimen@\ht\pagesofar\divide\dimen@\@twopowerfourteen
+ \global\dp\csname box@size@1\endcsname\dimen@
+ \show@box@size@sw{%
+  \class@info{Pagesofar: \the\dimen@}%
+ }{}%
+}%
+\@booleanfalse\tally@box@size@sw
+\@booleanfalse\show@box@size@sw
+\expandafter\newbox\csname box@size@1\endcsname
+\expandafter\setbox\csname box@size@1\endcsname\hbox{}%
+\expandafter\newbox\csname box@size@2\endcsname
+\expandafter\setbox\csname box@size@2\endcsname\hbox{}%
+\def\total@text{%
+ \@tempdima\the\ht\csname box@size@2\endcsname\divide\@tempdima\@twopowertwo\@tempcnta\@tempdima
+ \@tempdimb\the\ht\csname box@size@1\endcsname\divide\@tempdimb\@twopowertwo\@tempcntb\@tempdimb
+ \class@info{Total text: Column(\the\@tempcnta pt), Page(\the\@tempcntb pt)}%
+}%
+\def\natural@output{\toggle@insert{\output@holding}{\output@moving}}%
+\output@latex{\natural@output}%
+\def\output@holding{%
+ \csname output@init@\bot@envir\endcsname
+ \@if@exceed@pagegoal{\unvcopy\@cclv}{%
+  \setbox\z@\vbox{\unvcopy\@cclv}%
+  \outputdebug@sw{\trace@box\z@}{}%
+  \dimen@\ht\@cclv\advance\dimen@-\ht\z@
+  \dead@cycle@repair\dimen@
+ }{%
+  \dead@cycle
+ }%
+}%
+\def\@if@exceed@pagegoal#1{%
+ \begingroup
+  \setbox\z@\vbox{#1}%
+  \dimen@\ht\z@\advance\dimen@\dp\z@
+  \outputdebug@sw{\saythe\dimen@}{}%
+  \@ifdim{\dimen@>\pagegoal}{%
+   \setbox\z@\vbox{\@@mark{}\unvbox\z@}%
+   \splittopskip\topskip
+   \splitmaxdepth\maxdepth
+   \vbadness\@M
+   \vfuzz\maxdimen
+   \setbox\tw@\vsplit\z@ to\pagegoal
+   \outputdebug@sw{\trace@scroll{\showbox\tw@\showbox\z@}}{}%
+   \setbox\tw@\vbox{\unvbox\tw@}%
+   \@ifdim{\ht\tw@=\z@}{%
+    \ltxgrid@info{Found overly large chunk while preparing to move insertions. Attempting repairs}%
+    \aftergroup\true@sw
+   }{%
+    \aftergroup\false@sw
+   }%
+ }{%
+  \aftergroup\false@sw
+ }%
+ \endgroup
+}%
+\def\output@moving{%
+ \set@top@firstmark
+ \@ifnum{\outputpenalty=\do@newpage@pen}{%
+  \setbox\@cclv\vbox{%
+   \unvbox\@cclv
+   \remove@lastbox
+   \@ifdim{\ht\z@=\ht\@protection@box}{\box\lastbox}{\unskip}%
+  }%
+ }{}%
+ \@cclv@nontrivial@sw{%
+  \expandafter\output@do@prep\csname output@prep@\bot@envir \endcsname
+  \@makecolumn\true@sw
+  \expandafter\output@column@do\csname output@column@\thepagegrid\endcsname
+  \protect@penalty\do@startcolumn@pen
+  \clearpage@sw{%
+   \protect@penalty\do@endpage@pen
+  }{}%
+  \expandafter\let\expandafter\output@post@\csname output@post@\bot@envir \endcsname
+  \outputdebug@sw{\say\output@post@}{}%
+  \@ifx{\output@post@\relax}{\output@post@document}{\output@post@}%
+ }{%
+  \void@cclv
+ }%
+ \set@colht
+ \global\@mparbottom\z@
+ \global\@textfloatsheight\z@
+}%
+\def\output@do@prep#1{%
+ \outputdebug@sw{\class@info{Prep: \string#1}}{}%
+ \@ifx{#1\relax}{\output@prep@document}{#1}%
+}%
+\def\output@column@do#1{%
+  \outputdebug@sw{\class@info{Output column: \string#1}}{}%
+  \@ifx{#1\relax}{\output@column@one}{#1}%
+}%
+\def\void@cclv{\begingroup\setbox\z@\box\@cclv\endgroup}%
+\def\remove@lastbox{\setbox\z@\lastbox}%
+\def\@cclv@nontrivial@sw{%
+ \@ifx@empty\@toplist{%
+  \@ifx@empty\@botlist{%
+   \@ifvoid\footins{%
+    \@ifvoid\@cclv{%
+     \false@sw
+    }{%
+     \setbox\z@\vbox{\unvcopy\@cclv}%
+     \@ifdim{\ht\z@=\topskip}{%
+      \setbox\z@\vbox\bgroup
+       \unvbox\z@
+       \remove@lastbox
+       \dimen@\lastskip\unskip
+       \@ifdim{\ht\z@=\ht\@protection@box}{%
+        \advance\dimen@\ht\z@
+        \@ifdim{\dimen@=\topskip}{%
+         \aftergroup\true@sw
+        }{%
+         \aftergroup\false@sw
+        }%
+       }{%
+        \aftergroup\false@sw
+       }%
+      \egroup
+      {%
+       \false@sw
+      }{%
+       \true@sw
+      }%
+     }{%
+      \@ifdim{\ht\z@=\z@}{%
+       \ltxgrid@info{Found trivial column. Discarding it}%
+       \outputdebug@sw{\trace@box\@cclv}{}%
+       \false@sw
+      }{%
+       \true@sw
+      }%
+     }%
+    }%
+   }{%
+    \true@sw
+   }%
+  }{%
+   \true@sw
+  }%
+ }{%
+  \true@sw
+ }%
+}%
+\def\protect@penalty#1{\protection@box\penalty-#1\relax}%
+\newbox\@protection@box
+\setbox\@protection@box\vbox to1986sp{\vfil}%
+\def\protection@box{\nointerlineskip\copy\@protection@box}%
+\def\dead@cycle@repair#1{%
+ \expandafter\do@@mark
+ \expandafter{%
+              \@@botmark
+             }%
+ \unvbox\@cclv
+ \nointerlineskip
+ \vbox to#1{\vss}%
+ \@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
+}%
+\def\dead@cycle@repair@protected#1{%
+ \expandafter\do@@mark
+ \expandafter{%
+              \@@botmark
+             }%
+ \begingroup
+  \unvbox\@cclv
+  \remove@lastbox
+  \nointerlineskip
+  \advance#1-\ht\@protection@box
+  \vbox to#1{\vss}%
+  \protection@box % Reinsert protection box
+  \@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
+ \endgroup
+}%
+\def\dead@cycle{%
+ \expandafter\do@@mark
+ \expandafter{%
+              \@@botmark
+             }%
+ \unvbox\@cclv
+ \@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
+}%
+\def\output@init@document{%
+ \ltxgrid@info@sw{\class@info{\string\output@init@document}}{}%
+ \global\vsize\vsize
+}%
+\def\output@prep@document{%
+ \ltxgrid@foot@info@sw{\class@info{\string\output@prep@document}\trace@scroll{\showbox\footins\showbox\footsofar}}{}%
+ \@ifvoid\footsofar{%
+ }{%
+  \global\setbox\footins\vbox\bgroup
+   \unvbox\footsofar
+   \@ifvoid\footins{}{%
+    \marry@baselines
+    \unvbox\footins
+   }%
+  \egroup
+  \ltxgrid@foot@info@sw{\trace@box\footins}{}%
+ }%
+}%
+\def\output@post@document{}%
+\let\@opcol\@undefined
+\def\@makecolumn#1{%
+ \ltxgrid@foot@info@sw{\class@info{\string\@makecolumn\string#1}}{}%
+ \setbox\@outputbox\vbox\bgroup
+  \boxmaxdepth\@maxdepth
+  \@tempdima\dp\@cclv
+  \unvbox\@cclv
+  \vskip-\@tempdima
+ \egroup
+ \xdef\@freelist{\@freelist\@midlist}\global\let\@midlist\@empty
+ \show@text@box@size
+ \@combinefloats
+ #1{%
+  \@combineinserts\@outputbox\footins
+ }{%
+  \combine@foot@inserts\footsofar\footins
+ }%
+ \set@adj@colht\dimen@
+ \count@\vbadness
+ \vbadness\@M
+ \setbox\@outputbox\vbox to\dimen@\bgroup
+  \@texttop
+  \dimen@\dp\@outputbox
+  \unvbox\@outputbox
+  \vskip-\dimen@
+  \@textbottom
+ \egroup
+ \vbadness\count@
+ \global\maxdepth\@maxdepth
+}%
+\let\@makespecialcolbox\@undefined
+\def\@combineinserts#1#2{%
+ \ltxgrid@foot@info@sw{\class@info{\string\@combineinserts\string#1\string#2}\trace@box#2}{}%
+ \setbox#1\vbox\bgroup
+  \unvbox#1%
+  \@ifvoid{#2}{}{%
+   \dimen@\ht#2\advance\dimen@\dp#2\advance\dimen@\skip#2%
+   \show@box@size{Combining inserts}#2%
+   \vskip\skip#2%
+   \setbox\z@\vbox{\footnoterule}\dimen@i\ht\z@
+   \color@begingroup
+   \normalcolor
+   \cleaders\box\z@\vskip\dimen@i\kern-\dimen@i
+   \csname combine@insert@\the\pagegrid@col\endcsname#2%
+   \color@endgroup
+   \kern-\dimen@\kern\dimen@
+  }%
+ \egroup
+ \ltxgrid@foot@info@sw{\trace@box#1}{}%
+}%
+\def\combine@insert@tw@#1{%
+ \compose@footnotes@two#1\@ifvbox{#1}{\unvbox}{\box}#1%
+}%
+\def\combine@insert@@ne#1{%
+ \compose@footnotes@one#1\@ifvbox{#1}{\unvbox}{\box}#1%
+}%
+\def\twocolumn@grid@setup{%
+ \expandafter\let\csname combine@insert@1\endcsname\combine@insert@tw@
+ \expandafter\let\csname combine@insert@2\endcsname\combine@insert@@ne
+}%
+\def\onecolumn@grid@setup{%
+ \expandafter\let\csname combine@insert@1\endcsname\combine@insert@@ne
+ \expandafter\let\csname combine@insert@2\endcsname\combine@insert@@ne
+}%
+\let\columngrid@setup\onecolumn@grid@setup
+\columngrid@setup
+\appdef\@floatplacement{%
+ \global\@fpmin\@fpmin
+}%
+\mathchardef\pagebreak@pen=\@M
+\expandafter\let\csname output@-\the\pagebreak@pen\endcsname\relax
+\mathchardef\do@startcolumn@pen=10005
+\@namedef{output@-\the\do@startcolumn@pen}{\do@startcolumn}%
+\def\do@startcolumn{%
+ \setbox\@cclv\vbox{\unvbox\@cclv\remove@lastbox\unskip}%
+ \clearpage@sw{\@clearfloatplacement}{\@floatplacement}%
+ \set@colht
+ \@booleanfalse\pfloat@avail@sw
+ \begingroup
+  \@colht\@colroom
+  \@booleanfalse\float@avail@sw
+  \@tryfcolumn\test@colfloat
+  \float@avail@sw{\aftergroup\@booleantrue\aftergroup\pfloat@avail@sw}{}%
+ \endgroup
+ \fcolmade@sw{%
+  \setbox\@cclv\vbox{\unvbox\@outputbox\unvbox\@cclv}%
+  \outputpenalty-\pagebreak@pen
+  \dead@cycle
+ }{%
+  \begingroup
+   \let\@elt\@scolelt
+   \let\reserved@b\@deferlist\global\let\@deferlist\@empty\reserved@b
+  \endgroup
+  \clearpage@sw{%
+   \outputpenalty\@M
+  }{%
+   \outputpenalty\do@newpage@pen
+  }%
+  \dead@cycle
+ }%
+ \check@deferlist@stuck\do@startcolumn
+ \set@vsize
+}%
+\def\@scolelt#1{\def\@currbox{#1}\@addtonextcol}%
+\def\test@colfloat#1{%
+ \csname @floatselect@sw@\thepagegrid\endcsname#1{}{\@testtrue}%
+ \@if@sw\if@test\fi{}{\aftergroup\@booleantrue\aftergroup\float@avail@sw}%
+}%
+\def\@addtonextcol{%
+ \begingroup
+  \@insertfalse
+  \@setfloattypecounts
+  \csname @floatselect@sw@\thepagegrid\endcsname\@currbox{%
+   \@ifnum{\@fpstype=8 }{}{%
+     \@ifnum{\@fpstype=24 }{}{%
+       \@flsettextmin
+       \@reqcolroom \ht\@currbox
+       \advance \@reqcolroom \@textmin
+       \advance \@reqcolroom \vsize % take into account split insertions
+       \advance \@reqcolroom -\pagegoal
+       \@ifdim{\@colroom>\@reqcolroom}{%
+         \@flsetnum \@colnum
+         \@ifnum{\@colnum>\z@}{%
+            \@bitor\@currtype\@deferlist
+            \@if@sw\if@test\fi{}{%
+              \@addtotoporbot
+            }%
+         }{}%
+       }{}%
+     }%
+   }%
+  }{}%
+  \@if@sw\if@insert\fi{}{%
+    \@cons\@deferlist\@currbox
+  }%
+ \endgroup
+}%
+\mathchardef\do@startpage@pen=10006
+\@namedef{output@-\the\do@startpage@pen}{\do@startpage}%
+\def\do@startpage{%
+ \setbox\@cclv\vbox{\unvbox\@cclv\remove@lastbox\unskip}%
+ \clearpage@sw{\@clearfloatplacement}{\@dblfloatplacement}%
+ \set@colht
+ \@booleanfalse\pfloat@avail@sw
+ \begingroup
+  \@booleanfalse\float@avail@sw
+  \@tryfcolumn\test@dblfloat
+  \float@avail@sw{\aftergroup\@booleantrue\aftergroup\pfloat@avail@sw}{}%
+ \endgroup
+ \fcolmade@sw{%
+  \global\setbox\pagesofar\vbox{\unvbox\pagesofar\unvbox\@outputbox}%
+  \@output@combined@page
+ }{%
+  \begingroup
+   \@booleanfalse\float@avail@sw
+   \let\@elt\@sdblcolelt
+   \let\reserved@b\@deferlist\global\let\@deferlist\@empty\reserved@b
+  \endgroup
+  \@ifdim{\@colht=\textheight}{% No luck...
+   \pfloat@avail@sw{% ...but a float *was* available!
+    \forcefloats@sw{%
+     \ltxgrid@warn{Forced dequeueing of floats stalled}%
+    }{%
+     \ltxgrid@warn{Dequeueing of floats stalled}%
+    }%
+   }{}%
+  }{}%
+  \outputpenalty\@M
+  \dead@cycle
+ }%
+ \check@deferlist@stuck\do@startpage
+ \set@colht
+}%
+\def\@output@combined@page{%
+ \@combinepage\true@sw
+ \@combinedblfloats
+ \@outputpage
+ \global\pagegrid@cur\@ne
+ \protect@penalty\do@startpage@pen
+}%
+\def\@sdblcolelt#1{\def\@currbox{#1}\@addtodblcol}%
+\def\test@dblfloat#1{%
+ \@if@notdblfloat{#1}{\@testtrue}{}%
+ \@if@sw\if@test\fi{}{\aftergroup\@booleantrue\aftergroup\float@avail@sw}%
+}%
+\def\@if@notdblfloat#1{\@ifdim{\wd#1<\textwidth}}%
+\@booleanfalse\forcefloats@sw
+\def\@addtodblcol{%
+ \begingroup
+  \@if@notdblfloat{\@currbox}{%
+   \false@sw
+  }{%
+   \@setfloattypecounts
+   \@getfpsbit \tw@
+   \@bitor \@currtype \@deferlist
+   \@if@sw\if@test\fi{%
+    \false@sw
+   }{%
+    \@ifodd\@tempcnta{%
+     \aftergroup\@booleantrue\aftergroup\float@avail@sw
+     \@flsetnum \@dbltopnum
+     \@ifnum{\@dbltopnum>\z@}{%
+       \@ifdim{\@dbltoproom>\ht\@currbox}{%
+        \true@sw
+       }{%
+        \@ifnum{\@fpstype<\sixt@@n}{%
+         \begingroup
+          \advance \@dbltoproom \@textmin
+          \@ifdim{\@dbltoproom>\ht\@currbox}{%
+           \endgroup\true@sw
+          }{%
+           \endgroup\false@sw
+          }%
+        }{%
+         \false@sw
+        }%
+       }%
+     }{%
+      \false@sw
+     }%
+    }{%
+     \false@sw
+    }%
+   }%
+  }%
+  {%
+   \@tempdima -\ht\@currbox
+   \advance\@tempdima
+    -\@ifx{\@dbltoplist\@empty}{\dbltextfloatsep}{\dblfloatsep}%
+   \global \advance \@dbltoproom \@tempdima
+   \global \advance \@colht \@tempdima
+   \global \advance \@dbltopnum \m@ne
+   \@cons \@dbltoplist \@currbox
+  }{%
+   \@cons \@deferlist \@currbox
+  }%
+ \endgroup
+}%
+\def\@tryfcolumn#1{%
+  \global\@booleanfalse\fcolmade@sw
+  \@ifx@empty\@deferlist{}{%
+    \global\let\@trylist\@deferlist
+    \global\let\@failedlist\@empty
+    \begingroup
+      \dimen@\vsize\advance\dimen@-\pagegoal\@ifdim{\dimen@>\z@}{%
+       \advance\@fpmin-\dimen@
+      }{}%
+      \def\@elt{\@xtryfc#1}\@trylist
+    \endgroup
+    \fcolmade@sw{%
+      \global\setbox\@outputbox\vbox{\vskip \@fptop}%
+      \let \@elt \@wtryfc \@flsucceed
+      \global\setbox\@outputbox\vbox{\unvbox\@outputbox
+        \unskip \vskip \@fpbot
+      }%
+      \let \@elt \relax
+      \xdef\@deferlist{\@failedlist\@flfail}%
+      \xdef\@freelist{\@freelist\@flsucceed}%
+    }{}%
+  }%
+}%
+\def\@wtryfc #1{%
+  \global\setbox\@outputbox\vbox{\unvbox\@outputbox
+    \box #1\vskip\@fpsep
+  }%
+}%
+\def\@xtryfc#1#2{%
+  \@next\reserved@a\@trylist{}{}% trim \@trylist. Ugly!
+  \@currtype \count #2%
+  \divide\@currtype\@xxxii\multiply\@currtype\@xxxii
+  \@bitor \@currtype \@failedlist
+  \@testfp #2%
+  #1#2%
+  \@ifdim{\ht #2>\@colht   }{\@testtrue}{}%
+  \@if@sw\if@test\fi{%
+   \@cons\@failedlist #2%
+  }{%
+   \begingroup
+     \gdef\@flsucceed{\@elt #2}%
+     \global\let\@flfail\@empty
+     \@tempdima\ht #2%
+     \def \@elt {\@ztryfc#1}\@trylist
+     \@ifdim{\@tempdima >\@fpmin}{%
+       \global\@booleantrue\fcolmade@sw
+     }{%
+       \@cons\@failedlist #2%
+     }%
+   \endgroup
+   \fcolmade@sw{%
+     \let \@elt \@gobble
+   }{}%
+  }%
+}%
+\def\@ztryfc #1#2{%
+  \@tempcnta \count#2%
+  \divide\@tempcnta\@xxxii\multiply\@tempcnta\@xxxii
+  \@bitor \@tempcnta {\@failedlist \@flfail}%
+  \@testfp #2%
+  #1#2%
+  \@tempdimb\@tempdima
+  \advance\@tempdimb \ht#2\advance\@tempdimb\@fpsep
+  \@ifdim{\@tempdimb >\@colht}{%
+    \@testtrue
+  }{}%
+  \@if@sw\if@test\fi{%
+    \@cons\@flfail #2%
+  }{%
+    \@cons\@flsucceed #2%
+    \@tempdima\@tempdimb
+  }%
+}%
+\def\newpage@prep{%
+  \if@noskipsec
+    \ifx \@nodocument\relax
+      \leavevmode
+      \global \@noskipsecfalse
+    \fi
+  \fi
+  \if@inlabel
+    \leavevmode
+    \global \@inlabelfalse
+  \fi
+  \if@nobreak \@nobreakfalse \everypar{}\fi
+  \par
+}%
+\def \newpage {%
+ \newpage@prep
+ \do@output@MVL{%
+  \vfil
+  \penalty-\pagebreak@pen
+ }%
+}%
+\def\clearpage{%
+ \newpage@prep
+ \do@output@MVL{%
+  \vfil
+  \penalty-\pagebreak@pen
+  \global\@booleantrue\clearpage@sw
+  \protect@penalty\do@startcolumn@pen
+  \protect@penalty\do@endpage@pen
+ }%
+ \do@output@MVL{%
+  \global\@booleanfalse\clearpage@sw
+ }%
+}%
+\def\cleardoublepage{%
+ \clearpage
+ \@if@sw\if@twoside\fi{%
+  \@ifodd\c@page{}{%
+   \null\clearpage
+  }%
+ }{}%
+}%
+\@booleanfalse\clearpage@sw
+\mathchardef\do@endpage@pen=10007
+\@namedef{output@-\the\do@endpage@pen}{\csname end@column@\thepagegrid\endcsname}%
+\mathchardef\do@newpage@pen=10001
+\expandafter\let\csname output@-\the\do@newpage@pen\endcsname\relax
+\def\@clearfloatplacement{%
+ \global\@topnum     \maxdimen
+ \global\@toproom    \maxdimen
+ \global\@botnum     \maxdimen
+ \global\@botroom    \maxdimen
+ \global\@colnum     \maxdimen
+ \global\@dbltopnum  \maxdimen
+ \global\@dbltoproom \maxdimen
+ \global\@textmin    \z@
+ \global\@fpmin      \z@
+ \let\@testfp\@gobble
+ \appdef\@setfloattypecounts{\@fpstype16\advance\@fpstype\m@ne}%
+}%
+\let\@doclearpage\@undefined
+\let\@makefcolumn\@undefined
+\let\@makecol\@undefined
+\def\clr@top@firstmark{%
+ \global\let\saved@@topmark\@undefined
+ \global\let\saved@@firstmark\@empty
+ \global\let\saved@@botmark\@empty
+}%
+\clr@top@firstmark
+\def\set@top@firstmark{%
+ \@ifxundefined\saved@@topmark{\expandafter\gdef\expandafter\saved@@topmark\expandafter{\@@topmark}}{}%
+ \@if@empty\saved@@firstmark{\expandafter\gdef\expandafter\saved@@firstmark\expandafter{\@@firstmark}}{}%
+ \@if@empty\@@botmark{}{\expandafter\gdef\expandafter\saved@@botmark\expandafter{\@@botmark}}%
+}%
+\appdef\@outputpage@tail{%
+ \clr@top@firstmark
+}%
+\def\@float#1{%
+ \@ifnextchar[{%
+  \@yfloat\width@float{#1}%
+ }{%
+  \@ifxundefined@cs{fps@#1}{}{\expandafter\let\expandafter\fps@\csname fps@#1\endcsname}%
+  \expandafter\@argswap\expandafter{\expandafter[\fps@]}{\@yfloat\width@float{#1}}%
+ }%
+}%
+\def\@dblfloat#1{%
+ \@ifnum{\pagegrid@col=\@ne}{%
+  \@float{#1}%
+ }{%
+  \@ifnextchar[{%
+   \@yfloat\widthd@float{#1}%
+  }{%
+   \@ifxundefined@cs{fpsd@#1}{}{\expandafter\let\expandafter\fpsd@\csname fpsd@#1\endcsname}%
+   \expandafter\@argswap\expandafter{\expandafter[\fpsd@]}{\@yfloat\widthd@float{#1}}%
+  }%
+ }%
+}%
+\def\@yfloat#1#2[#3]{%
+ \@xfloat{#2}[#3]%
+ \hsize#1\linewidth\hsize
+ \let\set@footnotewidth\@empty
+ \minipagefootnote@init
+}%
+\def\fps@{tbp}%
+\def\fpsd@{tp}%
+\def\width@float{\columnwidth}%
+\def\widthd@float{\textwidth}%
+\def\end@float{%
+ \end@@float{%
+  \check@currbox@count
+ }%
+}%
+\def\end@dblfloat{%
+ \@ifnum{\pagegrid@col=\@ne}{%
+  \end@float
+ }{%
+  \end@@float{%
+   \@iffpsbit\@ne{\global\advance\count\@currbox\m@ne}{}%
+   \@iffpsbit\f@ur{\global\advance\count\@currbox-4\relax}{}%
+   \global\wd\@currbox\textwidth % Klootch
+   \check@currbox@count
+  }%
+ }%
+}%
+\def\end@@float#1{%
+ \minipagefootnote@here
+ \@endfloatbox
+ #1%
+ \@ifnum{\@floatpenalty <\z@}{%
+  \@largefloatcheck
+  \@cons\@currlist\@currbox
+  \@ifnum{\@floatpenalty <-\@Mii}{%
+   \do@output@cclv{\@add@float}%
+  }{%
+   \vadjust{\do@output@cclv{\@add@float}}%
+   \@Esphack
+  }%
+ }{}%
+}%
+\newcommand\float@end@float{%
+ \@endfloatbox
+ \global\setbox\@currbox\float@makebox\columnwidth
+ \let\@endfloatbox\relax
+ \end@float
+}%
+\newcommand\float@end@ltx{%
+ \end@@float{%
+  \global\setbox\@currbox\float@makebox\columnwidth
+  \check@currbox@count
+ }%
+}%
+\newcommand\newfloat@float[3]{%
+ \@namedef{ext@#1}{#3} %!
+ \let\float@do=\relax
+ \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
+ \@tempa
+ \floatplacement{#1}{#2}%
+ \@ifundefined{fname@#1}{\floatname{#1}{#1}}{} %!
+ \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
+ \addtocounter{float@type}{\value{float@type}} %!
+ \restylefloat{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname{%
+  \expandafter\noexpand\csname fname@#1\endcsname{} %!
+  \expandafter\noexpand\csname the#1\endcsname
+ }
+ \@ifnextchar[%]
+  {%
+   \float@newx{#1}%
+  }{%
+   \@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}{}%
+  }%
+}%
+\newcommand\newfloat@ltx[3]{%
+ \@namedef{ext@#1}{#3}%
+ \let\float@do=\relax
+ \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
+ \@tempa
+ \floatplacement{#1}{#2}%
+ \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}%
+ \expandafter\edef\csname ftype@#1\expandafter\endcsname\expandafter{\the\c@float@type}%
+ \addtocounter{float@type}{\value{float@type}}%
+ \restylefloat{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname{%
+  \expandafter\noexpand\csname fname@#1\endcsname{}%
+  \expandafter\noexpand\csname the#1\endcsname
+ }
+ \@ifnextchar[%]
+  {%
+   \float@newx{#1}%
+  }{%
+   \@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}{}%
+  }%
+}%
+\appdef\document@inithook{%
+ \@ifxundefined\newfloat{}{%
+  \@ifx{\float@end\float@end@float}{%
+   \@ifx{\newfloat\newfloat@float}{\true@sw}{\false@sw}%
+   }{\false@sw}%
+   {%
+    \class@warn{Repair the float package}%
+    \let\float@end\float@end@ltx
+    \let\newfloat\newfloat@ltx
+   }{%
+    \class@warn{Failed to patch the float package}%
+   }%
+ }%
+}%
+\def\@iffpsbit#1{%
+ \begingroup
+  \@tempcnta\count\@currbox
+  \divide\@tempcnta#1\relax
+  \@ifodd\@tempcnta{\aftergroup\true@sw}{\aftergroup\false@sw}%
+ \endgroup
+}%
+\def\check@currbox@count{%
+ \@ifnum{\count\@currbox>\z@}{%
+  \count@\count\@currbox\divide\count@\sixt@@n\multiply\count@\sixt@@n
+  \@tempcnta\count\@currbox\advance\@tempcnta-\count@
+  \@ifnum{\@tempcnta=\z@}{%
+   \ltxgrid@warn{Float cannot be placed}%
+  }{}%
+  \expandafter\tally@float\expandafter{\@captype}%
+ }{%
+ }%
+}%
+\providecommand\minipagefootnote@init{}%
+\providecommand\minipagefootnote@here{}%
+\providecommand\tally@float[1]{}%
+\let\@specialoutput\@undefined
+\def\@add@float{%
+ \@pageht\ht\@cclv\@pagedp\dp\@cclv
+ \unvbox\@cclv
+ \@next\@currbox\@currlist{%
+  \csname @floatselect@sw@\thepagegrid\endcsname\@currbox{%
+   \@ifnum{\count\@currbox>\z@}{%
+    \advance \@pageht \@pagedp
+    \advance \@pageht \vsize \advance \@pageht -\pagegoal
+    \@addtocurcol
+   }{%
+    \@addmarginpar
+   }%
+  }{%
+   \@resethfps
+   \@cons\@deferlist\@currbox
+  }%
+ }{\@latexbug}%
+ \@ifnum{\outputpenalty<\z@}{%
+  \@if@sw\if@nobreak\fi{%
+   \nobreak
+  }{%
+   \addpenalty \interlinepenalty
+  }%
+ }{}%
+ \set@vsize
+}%
+\let\@reinserts\@undefined
+\def \@addtocurcol {%
+   \@insertfalse
+   \@setfloattypecounts
+   \ifnum \@fpstype=8
+   \else
+     \ifnum \@fpstype=24
+     \else
+       \@flsettextmin
+       \advance \@textmin \@textfloatsheight
+       \@reqcolroom \@pageht
+       \ifdim \@textmin>\@reqcolroom
+         \@reqcolroom \@textmin
+       \fi
+       \advance \@reqcolroom \ht\@currbox
+       \ifdim \@colroom>\@reqcolroom
+         \@flsetnum \@colnum
+         \ifnum \@colnum>\z@
+           \@bitor\@currtype\@deferlist
+           \if@test
+           \else
+             \@bitor\@currtype\@botlist
+             \if@test
+               \@addtobot
+             \else
+               \ifodd \count\@currbox
+                 \advance \@reqcolroom \intextsep
+                 \ifdim \@colroom>\@reqcolroom
+                   \global \advance \@colnum \m@ne
+                   \global \advance \@textfloatsheight \ht\@currbox
+                   \global \advance \@textfloatsheight 2\intextsep
+                   \@cons \@midlist \@currbox
+                   \if@nobreak
+                     \nobreak
+                     \@nobreakfalse
+                     \everypar{}%
+                   \else
+                     \addpenalty \interlinepenalty
+                   \fi
+                   \vskip \intextsep
+                   \unvbox\@currbox %AO
+                   \penalty\interlinepenalty
+                   \vskip\intextsep
+                   \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
+                   \outputpenalty \z@
+                   \@inserttrue
+                 \fi
+               \fi
+               \if@insert
+               \else
+                 \@addtotoporbot
+               \fi
+             \fi
+           \fi
+         \fi
+       \fi
+     \fi
+   \fi
+   \if@insert
+   \else
+     \@resethfps
+     \@cons\@deferlist\@currbox
+   \fi
+}%
+\@twocolumnfalse
+\let\@twocolumntrue\@twocolumnfalse
+\def\@addmarginpar{%
+ \@next\@marbox\@currlist{%
+  \@cons\@freelist\@marbox\@cons\@freelist\@currbox
+ }\@latexbug
+ \setbox\@marbox\hb@xt@\columnwidth{%
+  \csname @addmarginpar@\thepagegrid\endcsname{%
+   \hskip-\marginparsep\hskip-\marginparwidth
+   \box\@currbox
+  }{%
+   \hskip\columnwidth\hskip\marginparsep
+   \box\@marbox
+  }%
+  \hss
+ }%
+ \setbox\z@\box\@currbox
+    \@tempdima\@mparbottom
+    \advance\@tempdima -\@pageht
+    \advance\@tempdima\ht\@marbox
+ \@ifdim{\@tempdima >\z@}{%
+   \@latex@warning@no@line {Marginpar on page \thepage\space moved}%
+ }{%
+   \@tempdima\z@
+ }%
+    \global\@mparbottom\@pageht
+    \global\advance\@mparbottom\@tempdima
+    \global\advance\@mparbottom\dp\@marbox
+    \global\advance\@mparbottom\marginparpush
+    \advance\@tempdima -\ht\@marbox
+    \global\setbox \@marbox
+                   \vbox {\vskip \@tempdima
+                          \box \@marbox}%
+    \global \ht\@marbox \z@
+    \global \dp\@marbox \z@
+    \kern -\@pagedp
+    \nointerlineskip
+  \box\@marbox
+    \nointerlineskip
+    \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}%
+}%
+\newenvironment{turnpage}{%
+ \def\width@float{\textheight}%
+ \def\widthd@float{\textheight}%
+ \appdef\@endfloatbox{%
+  \@ifxundefined\@currbox{%
+   \ltxgrid@warn{Cannot rotate! Not a float}%
+  }{%
+   \setbox\@currbox\vbox to\textwidth{\vfil\unvbox\@currbox\vfil}%
+   \global\setbox\@currbox\vbox{\rotatebox{90}{\box\@currbox}}%
+  }%
+ }%
+}{%
+}%
+\def\rotatebox@dummy#1#2{%
+ \ltxgrid@warn{You must load the graphics or graphicx package in order to use the turnpage environment}%
+ #2%
+}%
+\appdef\document@inithook{%
+ \@ifxundefined\rotatebox{\let\rotatebox\rotatebox@dummy}{}%
+}%
+\@namedef{output@-1073741824}{%
+ \deadcycles\z@
+ \void@cclv
+}%
+\mathchardef\save@column@pen=10016
+\@namedef{output@-\the\save@column@pen}{\save@column}%
+\let \@cclv@saved \@holdpg
+\let \@holdpg \@undefined
+\def\save@column{%
+ \@ifvoid\@cclv@saved{%
+  \set@top@firstmark
+  \global\@topmark@saved\expandafter{\@@topmark}%
+ }{}%
+ \global\setbox\@cclv@saved\vbox{%
+  \@ifvoid\@cclv@saved{}{%
+   \unvbox\@cclv@saved
+   \marry@baselines
+  }%
+  \unvbox\@cclv
+  \lose@breaks
+  \remove@lastbox
+ }%
+}%
+\newtoks\@topmark@saved
+\def\prep@cclv{%
+ \void@cclv
+ \setbox\@cclv\box\@cclv@saved
+ \vbadness\@M
+}%
+\mathchardef\save@column@insert@pen=10017
+\@namedef{output@-\the\save@column@insert@pen}{\toggle@insert{\savecolumn@holding}{\savecolumn@moving}}%
+\def\savecolumn@holding{%
+ \@if@exceed@pagegoal{\unvcopy\@cclv\remove@lastbox}{%
+  \setbox\z@\vbox{\unvcopy\@cclv\remove@lastbox}%
+  \outputdebug@sw{\trace@box\z@}{}%
+  \dimen@\ht\@cclv\advance\dimen@-\ht\z@
+  \dead@cycle@repair@protected\dimen@
+ }{%
+  \dead@cycle
+ }%
+}%
+\def\savecolumn@moving{%
+ \ltxgrid@info@sw{\class@info{\string\savecolumn@moving}}{}%
+ \@cclv@nontrivial@sw{%
+  \save@column
+ }{%
+  \void@cclv
+ }%
+ \@ifvoid\footins{}{%
+  \ltxgrid@foot@info@sw{\class@info{\string\savecolumn@moving}\trace@scroll{\showbox\footins@saved\showbox\footins}}{}%
+  \@ifvoid\footins@saved{%
+   \global\setbox\footins@saved\box\footins
+  }{%
+   \global\setbox\footins@saved\vbox\bgroup
+    \unvbox\footins@saved
+    \marry@baselines
+    \unvbox\footins
+   \egroup
+  }%
+  \ltxgrid@foot@info@sw{\trace@box\footins@saved}{}%
+  \protect@penalty\save@column@insert@pen
+ }%
+}%
+\newbox\footins@saved
+\newbox\footins@recovered
+\newbox\column@recovered
+\mathchardef\save@message@pen=10018
+\@namedef{output@-\the\save@message@pen}{\save@message}%
+\def\save@message{%
+ \void@cclv
+ \toks@\expandafter{\@@firstmark}%
+ \expandafter\gdef\expandafter\@message@saved\expandafter{\the\toks@}%
+ \expandafter\do@@mark\expandafter{\the\@topmark@saved}%
+}%
+\gdef\@message@saved{}%
+\mathchardef\execute@message@pen=10019
+\@namedef{output@-\the\execute@message@pen}{\@message@saved}%
+\def\execute@message{%
+ \@execute@message\save@column@pen
+}%
+\def\execute@message@insert#1{%
+ \@execute@message\save@column@insert@pen{%
+  \setbox \footins \box \footins@saved
+  \ltxgrid@foot@info@sw{\class@info{\string\execute@message@insert}\trace@box\footins}{}%
+  #1%
+ }%
+}%
+\long\def\@execute@message#1#2{%
+ \begingroup
+  \dimen@\prevdepth\@ifdim{\dimen@<\z@}{\dimen@\z@}{}%
+  \setbox\z@\vbox{%
+   \protect@penalty#1%
+   \protection@box
+   \toks@{\prep@cclv#2}%
+   \@@mark{\the\toks@}%
+   \penalty-\save@message@pen
+   \setbox\z@\null\dp\z@\dimen@\ht\z@-\dimen@
+   \nointerlineskip\box\z@
+   \penalty-\execute@message@pen
+  }\unvbox\z@
+ \endgroup
+}%
+\def\do@output@cclv{\execute@message}%
+\def\do@output@MVL#1{%
+ \@ifvmode{%
+  \begingroup\execute@message{\unvbox\@cclv#1}\endgroup
+ }{%
+  \@ifhmode{%
+   \vadjust{\execute@message{\unvbox\@cclv#1}}%
+  }{%
+   \@latexerr{\string\do@output@MVL\space cannot be executed in this mode!}\@eha
+  }%
+ }%
+}%
+\def\lose@breaks{%
+ \loopwhile{%
+  \count@\lastpenalty
+  \@ifnum{\count@=\@M}{%
+   \unpenalty\true@sw
+  }{%
+   \false@sw
+  }%
+ }%
+}%
+\def\removestuff{\do@output@MVL{\unskip\unpenalty}}%
+\def\removephantombox{%
+ \vadjust{%
+  \execute@message{%
+   \unvbox\@cclv
+   \remove@lastbox
+   \unskip
+   \unskip
+   \unpenalty
+   \penalty\predisplaypenalty
+   \vskip\abovedisplayskip
+  }%
+ }%
+}%
+\def\addstuff#1#2{\edef\@tempa{\noexpand\do@output@MVL{\noexpand\@addstuff{#1}{#2}}}\@tempa}%
+\def\@addstuff#1#2{%
+ \skip@\lastskip\unskip
+ \count@\lastpenalty\unpenalty
+ \@if@empty{#1}{}{\penalty#1\relax}%
+ \@ifnum{\count@=\z@}{}{\penalty\count@}%
+ \vskip\skip@
+ \@if@empty{#2}{}{\vskip#2\relax}%
+}%
+\def\replacestuff#1#2{\edef\@tempa{\noexpand\do@output@MVL{\noexpand\@replacestuff{#1}{#2}}}\@tempa}%
+\def\@replacestuff#1#2{%
+ \skip@\lastskip\unskip
+ \count@\lastpenalty\unpenalty
+ \@if@empty{#1}{}{%
+ \@ifnum{\count@>\@M}{}{%
+   \@ifnum{\count@=\z@}{\count@=#1\relax}{%
+    \@ifnum{\count@<#1\relax}{}{%
+     \count@=#1\relax
+    }%
+   }%
+ }%
+ }%
+ \@ifnum{\count@=\z@}{}{\penalty\count@}%
+ \@if@empty{#2}{}{%
+  \@tempskipa#2\relax
+  \@ifdim{\z@>\@tempskipa}{%
+   \advance\skip@-\@tempskipa
+  }{%
+   \@ifdim{\skip@>\@tempskipa}{}{%
+    \skip@\@tempskipa
+   }%
+  }%
+ }%
+ \vskip\skip@
+}%
+\def\move@insertions{\global\holdinginserts\z@}%
+\def\hold@insertions{\global\holdinginserts\@ne}%
+\hold@insertions
+\def\toggle@insert#1#2{%
+ \@ifnum{\holdinginserts>\z@}{\move@insertions#1}{\hold@insertions#2}%
+}%
+\def\do@columngrid#1#2{%
+ \par
+ \expandafter\let\expandafter\@tempa\csname open@column@#1\endcsname
+ \@ifx{\relax\@tempa}{%
+  \ltxgrid@warn{Unknown page grid #1. No action taken}%
+ }{%
+  \do@output@MVL{\start@column{#1}{#2}}%
+ }%
+}%
+\def\start@column#1#2{%
+ \def\@tempa{#1}\@ifx{\@tempa\thepagegrid}{%
+  \ltxgrid@info{Already in page grid \thepagegrid. No action taken}%
+ }{%
+  \expandafter\execute@message@insert
+  \expandafter{%
+               \csname shut@column@\thepagegrid\expandafter\endcsname
+               \csname open@column@#1\endcsname{#2}%
+               \set@vsize
+             }%
+ }%
+}%
+\def\thepagegrid{one}%
+\newbox\pagesofar
+\newbox\footsofar
+\def\combine@foot@inserts#1#2{%
+  \ltxgrid@info@sw{\class@info{\string\combine@foot@inserts\string#1\string#2}}{}%
+  \@ifvoid#1{%
+    \ltxgrid@foot@info@sw{\trace@box#2}{}\global\setbox#1\box#2%
+  }{%
+   \global\setbox#1\vbox\bgroup
+    \ltxgrid@foot@info@sw{\trace@box#1}{}\unvbox#1%
+    \@ifvoid#2{}{%
+     \marry@baselines
+     \ltxgrid@foot@info@sw{\trace@box#2}{}\unvbox#2%
+    }%
+   \egroup
+  }%
+  \ltxgrid@foot@info@sw{\trace@scroll{\showbox#1\showbox#2}}{}%
+}%
+\newcommand\onecolumngrid{\do@columngrid{one}{\@ne}}%
+\let\onecolumn\@undefined
+\def\open@column@one#1{%
+ \ltxgrid@info@sw{\class@info{\string\open@column@one\string#1}}{}%
+ \unvbox\pagesofar
+ \@ifvoid{\footsofar}{}{%
+  \insert\footins\bgroup\unvbox\footsofar\egroup
+  \penalty\z@
+ }%
+ \gdef\thepagegrid{one}%
+ \global\pagegrid@col#1%
+ \global\pagegrid@cur\@ne
+ \global\count\footins\@m
+ \global\divide\count\footins\tw@
+ \set@column@hsize\pagegrid@col
+ \set@colht
+}%
+\def\shut@column@one{%
+ \ltxgrid@info@sw{\class@info{\string\shut@column@one}}{}%
+ \@makecolumn\false@sw
+ \global\setbox\pagesofar\vbox\bgroup
+  \recover@column\@outputbox\footsofar\column@recovered\footins@recovered
+ \egroup
+ \begingroup\setbox\z@\box\@outputbox\endgroup
+ \combine@foot@inserts\footsofar\footins
+ \set@colht
+}%
+\def\float@column@one{%
+ \@makecolumn\true@sw
+ \@outputpage
+}%
+\def\end@column@one{%
+ \unvbox\@cclv\remove@lastbox
+ \protect@penalty\do@newpage@pen
+}%
+\def\output@column@one{%
+ \@outputpage
+}%
+\def\@addmarginpar@one{%
+ \@if@sw\if@mparswitch\fi{%
+  \@ifodd\c@page{\false@sw}{\true@sw}%
+ }{\false@sw}{%
+  \@if@sw\if@reversemargin\fi{\false@sw}{\true@sw}%
+ }{%
+  \@if@sw\if@reversemargin\fi{\true@sw}{\false@sw}%
+ }%
+}%
+\def\@floatselect@sw@one#1{\true@sw}%
+\def\onecolumngrid@push{%
+ \do@output@MVL{%
+  \@ifnum{\pagegrid@col=\@ne}{%
+   \global\let\restorecolumngrid\@empty
+  }{%
+   \xdef\restorecolumngrid{%
+    \noexpand\start@column{\thepagegrid}{\the\pagegrid@col}%
+   }%
+   \start@column{one}{\@ne}%
+  }%
+ }%
+}%
+\def\onecolumngrid@pop{%
+ \do@output@MVL{\restorecolumngrid}%
+}%
+\newcommand\twocolumngrid{\do@columngrid{mlt}{\tw@}}%
+\let\twocolumn\@undefined
+\let\@topnewpage\@undefined
+\def\open@column@mlt#1{%
+ \ltxgrid@info@sw{\class@info{\string\open@column@mlt\string#1}}{}%
+ \@ifvoid{\footsofar}{}{%
+  \insert\footins\bgroup\unvbox\footsofar\egroup
+ }%
+ \gdef\thepagegrid{mlt}%
+ \global\pagegrid@col#1%
+ \global\pagegrid@cur\@ne
+ \global\count\footins\@m
+ \set@column@hsize\pagegrid@col
+ \set@colht
+}%
+\def\shut@column@mlt{%
+ \ltxgrid@info@sw{\class@info{\string\shut@column@mlt}}{}%
+ \@cclv@nontrivial@sw{%
+  \@makecolumn\false@sw
+  \@ifnum{\pagegrid@cur<\pagegrid@col}{%
+   \expandafter\global\expandafter\setbox\csname col@\the\pagegrid@cur\endcsname\box\@outputbox
+   \global\advance\pagegrid@cur\@ne
+  }{}%
+ }{%
+  \void@cclv
+ }%
+ \@ifnum{\pagegrid@cur>\@ne}{%
+  \csname balance@\the\pagegrid@col\endcsname
+  \grid@column\@outputbox{}%
+  \@combinepage\false@sw
+  \@combinedblfloats
+  \global\setbox\pagesofar\box\@outputbox
+  \show@pagesofar@size
+ }{}%
+ \set@colht
+}%
+\def\float@column@mlt{%
+  \@output@combined@page
+}%
+\def\end@column@mlt{%
+ \@ifx@empty\@toplist{%
+  \@ifx@empty\@botlist{%
+   \@ifx@empty\@dbltoplist{%
+    \@ifx@empty\@deferlist{%
+     \@ifnum{\pagegrid@cur=\@ne}{%
+      \false@sw
+     }{%
+      \true@sw
+     }%
+    }{%
+     \true@sw
+    }%
+   }{%
+    \true@sw
+   }%
+  }{%
+   \true@sw
+  }%
+ }{%
+  \true@sw
+ }%
+ % true = kick out a column and try again
+ {%
+  \@cclv@nontrivial@sw{%
+   \unvbox\@cclv\remove@lastbox
+  }{%
+   \unvbox\@cclv\remove@lastbox\unskip\null
+  }%
+  \protect@penalty\do@newpage@pen
+  \protect@penalty\do@endpage@pen
+ }{%
+  \unvbox\@cclv\remove@lastbox
+ }%
+}%
+\def\output@column@mlt{%
+ \@ifnum{\pagegrid@cur<\pagegrid@col}{%
+  \expandafter\global\expandafter\setbox\csname col@\the\pagegrid@cur\endcsname\box\@outputbox
+  \global\advance\pagegrid@cur\@ne
+ }{%
+  \set@adj@colht\dimen@
+  \grid@column\@outputbox{}%
+  \@output@combined@page
+ }%
+}%
+\let\@outputdblcol\@undefined
+\def\@floatselect@sw@mlt#1{\@if@notdblfloat{#1}}%
+\def\@addmarginpar@mlt{% emits a boolean
+ \@ifnum{\pagegrid@cur=\@ne}%
+}%
+\def\set@footnotewidth@one{%
+ \hsize\columnwidth
+ \linewidth\hsize
+}%
+\def\set@footnotewidth@two{\set@footnotewidth@mlt\tw@}%
+\def\set@footnotewidth@mlt#1{%
+ \hsize\textwidth
+ \advance\hsize\columnsep
+ \divide\hsize#1%
+ \advance\hsize-\columnsep
+ \linewidth\hsize
+}%
+\def\compose@footnotes@one#1{%
+ \ltxgrid@foot@info@sw{\class@info{\string\compose@footnotes@one\string#1}\trace@box#1}{}%
+}%
+\let\compose@footnotes\compose@footnotes@one
+\def\compose@footnotes@two#1{%
+ \ltxgrid@foot@info@sw{\class@info{\string\compose@footnotes@two\string#1}\trace@box#1}{}%
+ \setbox\z@\box\@tempboxa
+ \let\recover@column\recover@column@null
+ \let\marry@baselines\@empty
+ \balance@two#1\@tempboxa
+ \global\setbox#1\hbox to\textwidth{\box#1\hfil\box\@tempboxa}%
+ \ltxgrid@foot@info@sw{\trace@box#1}{}%
+}%
+\let\pagegrid@cur\col@number
+\let\col@number\@undefined
+\newcount\pagegrid@col
+\pagegrid@cur\@ne
+\expandafter\let\csname col@\the\pagegrid@cur\endcsname\@leftcolumn
+\let\@leftcolumn\@undefined
+\pagegrid@col\tw@
+\def\pagegrid@init{%
+ \advance\pagegrid@cur\@ne
+ \@ifnum{\pagegrid@cur<\pagegrid@col}{%
+  \csname newbox\expandafter\endcsname\csname  col@\the\pagegrid@cur\endcsname
+  \pagegrid@init
+ }{%
+ }%
+}%
+\appdef\class@documenthook{%
+ \pagegrid@init
+}%
+\def\grid@column#1#2{%
+ \ltxgrid@info@sw{\class@info{\string\grid@column\string#1}}{}%
+ \global\setbox#1\vbox\bgroup
+  \hb@xt@\textwidth\bgroup
+   \vrule\@height\z@\@width\z@\@if@empty{#2}{}{\@depth#2}%
+   \pagegrid@cur\@ne
+   \@ifnum{\pagegrid@cur<\pagegrid@col}{\loopwhile{\append@column@\pagegrid@cur\pagegrid@col}}{}%
+   \box@column#1%
+  \egroup
+  \vskip\z@skip
+ \egroup
+}%
+\def\append@column@#1#2{%
+ \expandafter\box@column\csname col@\the#1\endcsname
+ \hfil\vrule\@width\columnseprule\hfil
+ \advance#1\@ne
+ \@ifnum{#1<#2}%
+}%
+\def\box@column#1{%
+ \ltxgrid@info@sw{\class@info{\string\box@column\string#1}}{}%
+ \raise\topskip
+ \hb@xt@\columnwidth\bgroup
+  \dimen@\ht#1\@ifdim{\dimen@>\@colht}{\dimen@\@colht}{}%
+  \count@\vbadness\vbadness\@M
+  \dimen@ii\vfuzz\vfuzz\maxdimen
+  \ltxgrid@info@sw{\saythe\@colht\saythe\dimen@}{}%
+  \vtop to\dimen@\bgroup
+   \hrule\@height\z@
+   \unvbox#1%
+   \raggedcolumn@skip
+  \egroup
+  \vfuzz\dimen@ii
+  \vbadness\count@
+  \hss
+ \egroup
+}%
+\def\marry@baselines{%
+ \begingroup
+  \setbox\z@\lastbox
+  \@ifvoid{\z@}{%
+   \endgroup
+  }{%
+   \aftergroup\kern
+   \aftergroup-%
+   \expandafter\box\expandafter\z@\expandafter\endgroup\the\dp\z@\relax
+  }%
+ \vskip\marry@skip\relax
+}%
+\gdef\marry@skip{\z@skip}%
+\def\set@marry@skip{%
+ \begingroup
+  \skip@\baselineskip\advance\skip@-\topskip
+  \@ifdim{\skip@>\z@}{%
+   \xdef\marry@skip{\the\skip@}%
+  }{}%
+ \endgroup
+}%
+\appdef\document@inithook{%
+ \@ifxundefined\raggedcolumn@sw{\@booleanfalse\raggedcolumn@sw}{}%
+}%
+\def\raggedcolumn@skip{%
+ \vskip\z@\raggedcolumn@sw{\@plus.0001fil\@minus.0001fil}{}\relax
+}%
+\def\@combinepage#1{%
+ \ltxgrid@foot@info@sw{\class@info{\string\@combinepage\string#1}}{}%
+ \@ifvoid\pagesofar{}{%
+  \setbox\@outputbox\vbox{%
+   \unvbox\pagesofar
+   \marry@baselines
+   \unvbox\@outputbox
+  }%
+ }%
+ #1{%
+  \@ifvoid\footsofar{}{%
+   \show@box@size{Combining page footnotes}\footsofar
+   \setbox\footins\box\footsofar
+   \compose@footnotes
+   \@combineinserts\@outputbox\footins
+  }%
+ }{%
+ }%
+}%
+\def \@cflt{%
+ \let \@elt \@comflelt
+ \setbox\@tempboxa \vbox{}%
+ \@toplist
+ \setbox\@outputbox \vbox{%
+  \boxmaxdepth \maxdepth
+  \unvbox\@tempboxa\unskip
+  \topfigrule\vskip \textfloatsep
+  \unvbox\@outputbox
+ }%
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@toplist}%
+ \global\let\@toplist\@empty
+}%
+\def \@cflb {%
+ \let\@elt\@comflelt
+ \setbox\@tempboxa \vbox{}%
+ \@botlist
+ \setbox\@outputbox \vbox{%
+  \unvbox\@outputbox
+  \vskip \textfloatsep\botfigrule
+  \unvbox\@tempboxa\unskip
+ }%
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@botlist}%
+ \global \let \@botlist\@empty
+}%
+\def\@combinedblfloats{%
+ \@ifx@empty\@dbltoplist{}{%
+  \setbox\@tempboxa\vbox{}%
+  \let\@elt\@comdblflelt\@dbltoplist
+  \let\@elt\relax\xdef\@freelist{\@freelist\@dbltoplist}%
+  \global\let\@dbltoplist\@empty
+  \setbox\@outputbox\vbox{%
+   %\boxmaxdepth\maxdepth   %% probably not needed, CAR
+   \unvbox\@tempboxa\unskip
+   \@ifnum{\@dbltopnum>\m@ne}{\dblfigrule}{}%FIXME: how is \@dbltopnum maintained?
+   \vskip\dbltextfloatsep
+   \unvbox\@outputbox
+  }%
+ }%
+}%
+\def\set@column@hsize#1{%
+ \pagegrid@col#1%
+ \global\columnwidth\textwidth
+ \global\advance\columnwidth\columnsep
+ \global\divide\columnwidth\pagegrid@col
+ \global\advance\columnwidth-\columnsep
+ \global\hsize\columnwidth
+ \global\linewidth\columnwidth
+ \skip@\baselineskip\advance\skip@-\topskip
+ \@ifnum{\pagegrid@col>\@ne}{\set@marry@skip}{}%
+}%
+\def\set@colht{%
+ \set@adj@textheight\@colht
+ \global\let\enlarge@colroom\@empty
+ \set@colroom
+}%
+\def\set@adj@textheight#1{%
+ \ltxgrid@info@sw{\class@info{\string\set@adj@textheight\string#1}\saythe\textheight}{}%
+ #1\textheight
+ \def\@elt{\adj@page#1}%
+ \@booleantrue\firsttime@sw\@dbltoplist
+ \let\@elt\relax
+ \global#1#1\relax
+ \ltxgrid@info@sw{\saythe#1}{}%
+}%
+\def\set@colroom{%
+ \ltxgrid@info@sw{\class@info{\string\set@colroom}}{}%
+ \set@adj@colht\@colroom
+ \@if@empty\enlarge@colroom{}{%
+  \global\advance\@colroom\enlarge@colroom\relax
+  \ltxgrid@info@sw{\saythe\@colroom}{}%
+ }%
+ \@ifdim{\@colroom>\topskip}{}{%
+  \ltxgrid@info{Not enough room: \string\@colroom=\the\@colroom; increasing to \the\topskip}%
+  \@colroom\topskip
+ }%
+ \global\@colroom\@colroom
+ \set@vsize
+}%
+\def\set@vsize{%
+ \global\vsize\@colroom
+ \ltxgrid@info@sw{\class@info{\string\set@vsize\string\vsize=\string\colroom}\saythe\vsize}{}%
+}%
+\def\set@adj@colht#1{%
+ #1\@colht
+ \ltxgrid@info@sw{\class@info{\string\set@adj@colht\string#1-\string\pagesofar}\saythe#1}{}%
+ \@ifvoid\pagesofar{}{%
+  \advance#1-\ht\pagesofar\advance#1-\dp\pagesofar
+  \ltxgrid@info@sw{\class@info{\string\pagesofar}\saythe#1}{}%
+ }%
+ \def\@elt{\adj@column#1}%
+ \@booleantrue\firsttime@sw\@toplist
+ \@booleantrue\firsttime@sw\@botlist
+ \let\@elt\relax
+}%
+\def\adj@column#1#2{%
+ \advance#1-\ht#2%
+ \advance#1-\firsttime@sw{\textfloatsep\@booleanfalse\firsttime@sw}{\floatsep}%
+ \ltxgrid@info@sw{\class@info{\string\adj@column\string#1-\string#2}\saythe#1}{}%
+}%
+\def\adj@page#1#2{%
+ \advance#1-\ht#2%
+ \advance#1-\firsttime@sw{\dbltextfloatsep\@booleanfalse\firsttime@sw}{\dblfloatsep}%
+ \ltxgrid@info@sw{\class@info{\string\adj@page\string#1-\string#2}\saythe#1}{}%
+}%
+\def\set@adj@box#1#2{%
+ \@ifvoid#2{}{%
+  \advance#1-\ht#2\advance#1-\dp#2%
+  \@booleantrue\temp@sw
+  \ltxgrid@foot@info@sw{\class@info{\string\set@adj@box\string#2}\saythe#1}{}%
+ }%
+}%
+\appdef\@outputpage@tail{%
+ \set@colht          % FIXME: needed?
+ \@floatplacement    % FIXME: needed?
+ \@dblfloatplacement % FIXME: needed?
+}%
+\begingroup
+ \catcode`\1=\cat@letter
+ \catcode`\2=\cat@letter
+ \toks@{%
+  \setbox\footins\box\footsofar
+  \balance@two\col@1\@outputbox
+  \global\setbox\col@1\box\col@1
+  \global\setbox\@outputbox\box\@outputbox
+  \combine@foot@inserts\footsofar\footins
+ }%
+ \aftergroup\def\aftergroup\balance@2\expandafter
+\endgroup\expandafter{\the\toks@}%
+\def\balance@two#1#2{%
+ \ltxgrid@info@sw{\class@info{\string\balance@two\string#1\string#2}}{}%
+ \outputdebug@sw{\trace@scroll{\showbox#1\showbox#2}}{}%
+ \setbox\thr@@\copy\footsofar
+ \setbox\@ne\vbox\bgroup
+  \@ifvoid{#1}{}{%
+   \recover@column#1\footsofar\column@recovered\footins@recovered
+   \@ifvoid{#2}{}{\marry@baselines}%
+  }%
+  \@ifvoid{#2}{}{%
+   \recover@column#2\footsofar\column@recovered\footins@recovered
+  }%
+ \egroup
+ \outputdebug@sw{\trace@scroll{\showbox\@ne}}{}%
+ \ltxgrid@foot@info@sw{\trace@scroll{\showbox\footsofar}}{}%
+ \dimen@\ht\@ne\divide\dimen@\tw@
+ \dimen@i\dimen@
+ \vbadness\@M
+ \vfuzz\maxdimen
+ \splittopskip\topskip
+ \loopwhile{%
+  \setbox\z@\copy\@ne\setbox\tw@\vsplit\z@ to\dimen@
+  \remove@depth\z@\remove@depth\tw@
+  \dimen@ii\ht\tw@\advance\dimen@ii-\ht\z@
+  \dimen@i=.5\dimen@i
+  \ltxgrid@info@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
+  \@ifdim{\dimen@ii<.5\p@}{%
+   \@ifdim{\dimen@ii>-.5\p@}%
+  }{%
+   \false@sw
+  }%
+  {%
+   \true@sw
+  }{%
+   \@ifdim{\dimen@i<.5\p@}%
+  }%
+  {%
+   \false@sw
+  }%
+  {%
+   \advance\dimen@\@ifdim{\dimen@ii<\z@}{}{-}\dimen@i
+   \true@sw
+  }%
+ }%
+ \ltxgrid@info@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
+ \@ifdim{\ht\z@=\z@}{%
+  \@ifdim{\ht\tw@=\z@}%
+ }{%
+  \true@sw
+ }%
+ {%
+ }{%
+  \ltxgrid@info{Unsatifactorily balanced columns: giving up}%
+  \setbox\tw@\box#1%
+  \setbox\z@ \box#2%
+  \global\setbox\footsofar\box\thr@@
+ }%
+ \setbox\tw@\vbox{\unvbox\tw@\vskip\z@skip}%
+ \setbox\z@ \vbox{\unvbox\z@ \vskip\z@skip}%
+ \set@colht
+ \dimen@\ht\z@\@ifdim{\dimen@<\ht\tw@}{\dimen@\ht\tw@}{}%
+ \@ifdim{\dimen@>\@colroom}{\dimen@\@colroom}{}%
+ \ltxgrid@info@sw{\saythe{\ht\z@}\saythe{\ht\tw@}\saythe\@colroom\saythe\dimen@}{}%
+ \setbox#1\vbox to\dimen@{\unvbox\tw@\unskip\raggedcolumn@skip}%
+ \setbox#2\vbox to\dimen@{\unvbox\z@ \unskip\raggedcolumn@skip}%
+ \outputdebug@sw{\trace@scroll{\showbox#1\showbox#2}}{}%
+}%
+\def\remove@depth#1{%
+  \setbox#1\vbox\bgroup
+   \unvcopy#1%
+   \setbox\z@\vbox\bgroup
+    \unvbox#1%
+    \setbox\z@\lastbox
+    \aftergroup\kern\aftergroup-\expandafter
+   \egroup
+   \the\dp\z@\relax
+  \egroup
+}%
+\def\recover@column#1#2#3#4{%
+ \ltxgrid@info@sw{\class@info{\string\recover@column\string#1\string#2\string#3\string#4}}{}%
+ \setbox#4\vbox{\unvcopy#1}%
+ \ltxgrid@foot@info@sw{\trace@scroll{\showbox#4}}{}%
+ \dimen@\ht#4%
+ \ltxgrid@foot@info@sw{\saythe\dimen@}{}%
+ \setbox#4\vbox\bgroup
+  \unvbox#4\unskip
+  \dimen@i\lastkern\unkern\advance\dimen@i\lastkern
+  \@ifdim{\dimen@i=\z@}{%
+   \dimen@i\lastkern\unkern
+   \ltxgrid@foot@info@sw{\saythe\dimen@i}{}%
+   \aftergroup\dimen@i
+   \expandafter\egroup\the\dimen@i\relax
+  }{%
+   \egroup
+  }%
+ \@ifdim{\dimen@i<\z@}{%
+  \advance\dimen@\dimen@i
+  \ltxgrid@foot@info@sw{\saythe\dimen@i\saythe\dimen@}{}%
+  \splittopskip\z@skip
+  \global\setbox#3\vsplit#4 to\dimen@
+  \global\setbox#4\vbox{\unvbox#4}%
+  \ltxgrid@foot@info@sw{\trace@scroll{\showbox#1\showbox#2\showbox#3\showbox#4}}{}%
+  \global\setbox#2\vbox\bgroup\unvbox#2\vskip\z@skip\unvbox#4\egroup
+ }{%
+  \setbox#3\box#4%
+  \ltxgrid@foot@info@sw{\trace@scroll{\showbox#1\showbox#2\showbox#3\showbox#4}}{}%
+ }%
+ \unvbox#3%
+ \loopwhile{\dimen@\lastskip\@ifdim{\dimen@>\z@}{\unskip\true@sw}{\false@sw}}%
+}%
+\def\recover@column@null#1#2#3#4{%
+ \unvcopy#1%
+}%
+\rvtx@ifformat@geq{2020-10-01}%
+  {%
+    \AddToHook{begindocument}{%
+      \open@column@one\@ne
+      \set@colht
+      \@floatplacement
+      \@dblfloatplacement
+    }%
+  }{%
+    \prepdef\@begindocumenthook{%
+     \open@column@one\@ne
+     \set@colht
+     \@floatplacement
+     \@dblfloatplacement
+    }%
+  }
+\def\longtable@longtable{%
+ \par
+ \ifx\multicols\@undefined\else\ifnum\col@number>\@ne\@twocolumntrue\fi\fi
+ \if@twocolumn\LT@err{longtable not in 1-column mode}\@ehc\fi
+ \begingroup
+ \@ifnextchar[\LT@array{\LT@array[x]}%
+}%
+\def\longtable@new{%
+ \par
+  \@ifnextchar[\LT@array{\LT@array[x]}%
+}%
+\def\endlongtable@longtable{%
+  \crcr
+  \noalign{%
+    \let\LT@entry\LT@entry@chop
+    \xdef\LT@save@row{\LT@save@row}}%
+  \LT@echunk
+  \LT@start
+  \unvbox\z@
+  \LT@get@widths
+  \if@filesw
+    {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
+      \gdef\expandafter\noexpand
+        \csname LT@\romannumeral\c@LT@tables\endcsname
+          {\LT@save@row}}}%
+  \fi
+  \ifx\LT@save@row\LT@@save@row
+  \else
+    \LT@warn{Column \@width s have changed\MessageBreak
+             in table \thetable}%
+    \LT@final@warn
+  \fi
+  \endgraf\penalty -\LT@end@pen
+  \endgroup
+  \global\@mparbottom\z@
+  \pagegoal\vsize
+  \endgraf\penalty\z@\addvspace\LTpost
+  \ifvoid\footins\else\insert\footins{}\fi
+}%
+\def\endlongtable@new{%
+  \crcr
+  \noalign{%
+   \let\LT@entry\LT@entry@chop
+   \xdef\LT@save@row{\LT@save@row}%
+  }%
+  \LT@echunk
+  \LT@start
+  \unvbox\z@
+  \LT@get@widths
+  \@if@sw\if@filesw\fi{%
+   {%
+    \let\LT@entry\LT@entry@write
+    \immediate\write\@auxout{%
+     \gdef\expandafter\noexpand\csname LT@\romannumeral\c@LT@tables\endcsname
+     {\LT@save@row}%
+    }%
+   }%
+  }{}%
+  \@ifx{\LT@save@row\LT@@save@row}{}{%
+   \LT@warn{%
+    Column \@width s have changed\MessageBreak in table \thetable
+   }\LT@final@warn
+  }%
+  \endgraf
+  \nobreak
+  \box\@ifvoid\LT@lastfoot{\LT@foot}{\LT@lastfoot}%
+ \global\@mparbottom\z@
+ \endgraf
+ \LT@post
+}%
+\def\LT@start@longtable{%
+  \let\LT@start\endgraf
+  \endgraf\penalty\z@\vskip\LTpre
+  \dimen@\pagetotal
+  \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+  \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+  \advance\dimen@ \ht\LT@foot
+  \dimen@ii\vfuzz
+  \vfuzz\maxdimen
+    \setbox\tw@\copy\z@
+    \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
+    \setbox\tw@\vbox{\unvbox\tw@}%
+  \vfuzz\dimen@ii
+  \advance\dimen@ \ht
+        \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
+  \advance\dimen@\dp
+        \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
+  \advance\dimen@ -\pagegoal
+  \ifdim \dimen@>\z@\vfil\break\fi
+      \global\@colroom\@colht
+  \ifvoid\LT@foot\else
+    \advance\vsize-\ht\LT@foot
+    \global\advance\@colroom-\ht\LT@foot
+    \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
+    \maxdepth\z@
+  \fi
+  \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi
+\nobreak
+  \output{\LT@output}%
+}%
+\def\LT@start@new{%
+ \let\LT@start\endgraf
+ \endgraf
+ \markthr@@{}%
+ \LT@pre
+ \@ifvoid\LT@firsthead{\LT@top}{\box\LT@firsthead\nobreak}%
+ \mark@envir{longtable}%
+}%
+\def\LT@end@hd@ft@longtable#1{%
+ \LT@echunk
+ \ifx\LT@start\endgraf
+  \LT@err{Longtable head or foot not at start of table}{Increase LTchunksize}%
+ \fi
+ \setbox#1\box\z@
+ \LT@get@widths\LT@bchunk
+}%
+\def\LT@end@hd@ft@new#1{%
+ \LT@echunk
+ \@ifx{\LT@start\endgraf}{%
+  \LT@err{Longtable head or foot not at start of table}{Increase LTchunksize}%
+ }%
+ \global\setbox#1\box\z@
+ \LT@get@widths
+ \LT@bchunk
+}%
+\def\LT@array@longtable[#1]#2{%
+  \refstepcounter{table}\stepcounter{LT@tables}%
+  \if l#1%
+    \LTleft\z@ \LTright\fill
+  \else\if r#1%
+    \LTleft\fill \LTright\z@
+  \else\if c#1%
+    \LTleft\fill \LTright\fill
+  \fi\fi\fi
+  \let\LT@mcol\multicolumn
+  \let\LT@@tabarray\@tabarray
+  \let\LT@@hl\hline
+  \def\@tabarray{%
+    \let\hline\LT@@hl
+    \LT@@tabarray}%
+  \let\\\LT@tabularcr\let\tabularnewline\\%
+  \def\newpage{\noalign{\break}}%
+  \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
+  \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
+  \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
+  \@tempdima\ht\strutbox
+  \let\@endpbox\LT@endpbox
+  \ifx\extrarowheight\@undefined
+    \let\@acol\@tabacol
+    \let\@classz\@tabclassz \let\@classiv\@tabclassiv
+    \def\@startpbox{\vtop\LT@startpbox}%
+    \let\@@startpbox\@startpbox
+    \let\@@endpbox\@endpbox
+    \let\LT@LL@FM@cr\@tabularcr
+  \else
+    \advance\@tempdima\extrarowheight
+    \col@sep\tabcolsep
+    \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
+  \fi
+  \setbox\@arstrutbox\hbox{\vrule
+    \@height \arraystretch \@tempdima
+    \@depth \arraystretch \dp \strutbox
+    \@width \z@}%
+  \let\@sharp##\let\protect\relax
+   \begingroup
+    \@mkpream{#2}%
+    \xdef\LT@bchunk{%
+       \global\advance\c@LT@chunks\@ne
+       \global\LT@rows\z@\setbox\z@\vbox\bgroup
+       \LT@setprevdepth
+       \tabskip\LTleft \noexpand\halign to\hsize\bgroup
+      \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
+  \endgroup
+  \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
+  \LT@make@row
+  \m@th\let\par\@empty
+  \everycr{}\lineskip\z@\baselineskip\z@
+  \LT@bchunk}%
+\def\LT@LR@l{\LTleft\z@   \LTright\fill}%
+\def\LT@LR@r{\LTleft\fill \LTright\z@  }%
+\def\LT@LR@c{\LTleft\fill \LTright\fill}%
+\def\LT@array@new[#1]#2{%
+ \refstepcounter{table}\stepcounter{LT@tables}%
+ \table@hook
+ \LTleft\fill \LTright\fill
+ \csname LT@LR@#1\endcsname
+ \let\LT@mcol\multicolumn
+ \let\LT@@hl\hline
+ \prepdef\@tabarray{\let\hline\LT@@hl}%
+ \let\\\LT@tabularcr
+ \let\tabularnewline\\%
+ \def\newpage{\noalign{\break}}%
+ \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
+ \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
+ \let\hline\LT@hline
+ \let\kill\LT@kill
+ \let\caption\LT@caption
+ \@tempdima\ht\strutbox
+ \let\@endpbox\LT@endpbox
+ \@ifxundefined\extrarowheight{%
+  \let\@acol\@tabacol
+  \let\@classz\@tabclassz
+  \let\@classiv\@tabclassiv
+  \def\@startpbox{\vtop\LT@startpbox}%
+  \let\@@startpbox\@startpbox
+  \let\@@endpbox\@endpbox
+  \let\LT@LL@FM@cr\@tabularcr@LaTeX
+  \let\@xtabularcr\@xtabularcr@LaTeX
+ }{%
+  \advance\@tempdima\extrarowheight
+  \col@sep\tabcolsep
+  \let\@startpbox\LT@startpbox
+  \let\LT@LL@FM@cr\@arraycr@array
+ }%
+ \let\@acoll\@tabacoll
+ \let\@acolr\@tabacolr
+ \let\@acol\@tabacol
+ \setbox\@arstrutbox\hbox{%
+  \vrule
+  \@height \arraystretch \@tempdima
+  \@depth \arraystretch \dp \strutbox
+  \@width \z@
+ }%
+ \let\@sharp##%
+ \let\protect\relax
+ \begingroup
+  \@mkpream{#2}%
+  \@mkpream@relax
+  \edef\@preamble{\@preamble}%
+  \prepdef\@preamble{%
+   \global\advance\c@LT@chunks\@ne
+   \global\LT@rows\z@
+   \setbox\z@\vbox\bgroup
+    \LT@setprevdepth
+    \tabskip\LTleft
+    \halign to\hsize\bgroup
+     \tabskip\z@
+     \@arstrut
+  }%
+  \appdef\@preamble{%
+     \tabskip\LTright
+     \cr
+  }%
+  \global\let\LT@bchunk\@preamble
+ \endgroup
+ \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
+ \LT@make@row
+ \m@th
+ \let\par\@empty
+ \everycr{}%
+ \lineskip\z@
+ \baselineskip\z@
+ \LT@bchunk
+}%
+\appdef\table@hook{}%
+\def\switch@longtable{%
+ \@ifpackageloaded{longtable}{%
+  \@ifx{\longtable\longtable@longtable}{%
+   \@ifx{\endlongtable\endlongtable@longtable}{%
+    \@ifx{\LT@start\LT@start@longtable}{%
+     \@ifx{\LT@end@hd@ft\LT@end@hd@ft@longtable}{%
+      \@ifx{\LT@array\LT@array@longtable}{%
+       \true@sw
+      }{\false@sw}%
+     }{\false@sw}%
+    }{\false@sw}%
+   }{\false@sw}%
+  }{\false@sw}%
+  {%
+   \class@info{Patching longtable package}%
+  }{%
+   \class@info{Patching unrecognized longtable package. (Proceeding with fingers crossed)}%
+  }%
+  \let\longtable\longtable@new
+  \let\endlongtable\endlongtable@new
+  \let\LT@start\LT@start@new
+  \let\LT@end@hd@ft\LT@end@hd@ft@new
+  \let\LT@array\LT@array@new
+  \newenvironment{longtable*}{%
+   \onecolumngrid@push
+   \longtable
+  }{%
+   \endlongtable
+   \onecolumngrid@pop
+  }%
+ }{}%
+}%
+\def\LT@pre{\penalty\z@\vskip\LTpre}%
+\def\LT@bot{\nobreak\copy\LT@foot\vfil}%
+\def\LT@top{\copy\LT@head\nobreak}%
+\def\LT@post{\penalty\z@\addvspace\LTpost\mark@envir{\curr@envir}}%
+\def\LT@adj{%
+ \setbox\z@\vbox{\null}\dimen@-\ht\z@
+ \setbox\z@\vbox{\unvbox\z@\LT@bot}\advance\dimen@\ht\z@
+ \global\advance\vsize-\dimen@
+}%
+\def\output@init@longtable{\LT@adj}%
+\def\output@prep@longtable{\setbox\@cclv\vbox{\unvbox\@cclv\LT@bot}}%
+\def\output@post@longtable{\LT@top}%
+\let\output@init@theindex\@empty
+\let\output@prep@theindex\@empty
+\def\output@post@theindex{%
+ \@ifodd\c@page{}{%
+  \@ifnum{\pagegrid@cur=\@ne}{%
+  }%
+ }%
+}%
+\def\check@aux{\do@output@MVL{\do@check@aux}}%
+\def\check@deferlist@stuck#1{%
+ \@ifx{\@deferlist@postshipout\@empty}{}{%
+  \@ifx{\@deferlist@postshipout\@deferlist}{%
+   \@fltstk
+   \clearpage@sw{%
+    \ltxgrid@warn{Deferred float stuck during \string\clearpage\space processing}%
+   }{%
+    \force@deferlist@stuck#1%
+   }%
+  }{%
+  }%
+  \global\let\@deferlist@postshipout\@empty
+ }%
+}%
+\def\@fltstk{%
+ \@latex@warning{A float is stuck (cannot be placed without \string\clearpage)}%
+}%
+\appdef\@outputpage@tail{%
+ \global\let\@deferlist@postshipout\@deferlist
+}%
+\def\@next#1#2{%
+ \@ifx{#2\@empty}{\false@sw}{%
+  \expandafter\@xnext#2\@@#1#2%
+  \true@sw
+ }%
+}%
+\def\@xnext\@elt#1#2\@@#3#4{%
+ \def#3{#1}%
+ \gdef#4{#2}%
+ \def\@tempa{#4}\def\@tempb{\@freelist}%
+ \@ifx{\@tempa\@tempb}{%
+  \@ifx{#4\@empty}{%
+   \force@deferlist@empty%{Float register pool exhausted}%
+  }{}%
+ }{}%
+}%
+\def\force@deferlist@stuck#1{%
+ \force@deferlist@sw{%
+  \@booleantrue\clearpage@sw
+  \@booleantrue\forcefloats@sw
+  #1%
+ }{%
+ }%
+}%
+\def\force@deferlist@empty{%
+ \force@deferlist@sw{%
+  \penalty-\pagebreak@pen
+  \protect@penalty\do@forcecolumn@pen
+ }{%
+ }%
+}%
+\@booleanfalse\force@deferlist@sw
+\mathchardef\do@forcecolumn@pen=10009
+\@namedef{output@-\the\do@forcecolumn@pen}{\do@forcecolumn}%
+\def\do@forcecolumn{%
+ \@booleantrue\clearpage@sw
+ \@booleantrue\forcefloats@sw
+ \do@startcolumn
+}%
+\def\enlargethispage{%
+ \@ifstar{%
+  \@enlargethispage{}%
+ }{%
+  \@enlargethispage{}%
+ }%
+}%
+\def\@enlargethispage#1#2{%
+ \begingroup
+  \dimen@#2\relax
+  \edef\@tempa{#1}%
+  \edef\@tempa{\noexpand\@@enlargethispage{\@tempa}{\the\dimen@}}%
+  \expandafter\do@output@MVL\expandafter{\@tempa}%
+ \endgroup
+}%
+\def\@@enlargethispage#1#2{%
+ \def\@tempa{one}%
+ \@ifx{\thepagegrid\@tempa}{%
+  \true@sw
+ }{%
+  \def\@tempa{mlt}%
+  \@ifx{\thepagegrid\@tempa}{%
+   \@ifnum{\pagegrid@cur=\@ne}{%
+    \gdef\enlarge@colroom{#2}%
+    \true@sw
+   }{%
+    \ltxgrid@warn{Too late to enlarge this page; move the command to the first column.}%
+    \false@sw
+   }%
+  }{%
+   \ltxgrid@warn{Unable to enlarge a page of this kind.}%
+   \false@sw
+  }%
+ }%
+ {%
+  \class@info{Enlarging page \thepage\space by #2}%
+  \global\advance\@colroom#2\relax
+  \set@vsize
+ }{%
+ }%
+}%
+\let\enlarge@colroom\@empty
+\let\@kludgeins\@undefined
+\@booleantrue\textheight@sw
+\prepdef\@outputpage@head{%
+ \textheight@sw{%
+  \count@\vbadness\vbadness\@M
+  \dimen@\vfuzz\vfuzz\maxdimen
+  \setbox\@outputbox\vbox to\textheight{\unvbox\@outputbox}%
+  \vfuzz\dimen@
+  \vbadness\count@
+ }{}%
+}%
+\appdef\@outputpage@head{%
+ \@ifx{\LS@rot\@undefined}{}{\LS@rot}%
+}%
+\def\ltxgrid@info{%
+ \ltxgrid@info@sw{\class@info}{\@gobble}%
+}%
+\@booleanfalse\ltxgrid@info@sw
+\def\ltxgrid@warn{%
+ \ltxgrid@warn@sw{\class@warn}{\@gobble}%
+}%
+\@booleantrue\ltxgrid@warn@sw
+\@booleanfalse\ltxgrid@foot@info@sw
+\def\def@next@handler#1#2#3{%
+ \advance#1\@ne\mathchardef#2\the#1%
+ \expandafter\def\csname output@-\the#1\endcsname{#3}%
+}%
+\def\def@line@handler#1#2{%
+ \begingroup
+  \@tempcnta\int@parpenalty
+  \advance\@tempcnta-#1%
+  \aftergroup\def
+  \expandafter\aftergroup\csname output@-\the\@tempcnta\endcsname
+ \endgroup{#2}%
+}%
+\mathchardef\int@parpenalty11012
+\def@line@handler\z@{\@handle@line@ltx{}{}{}}%
+\def@line@handler\@ne{\@handle@line@ltx{}{}{\brokenpenalty@ltx}}%
+\def@line@handler\tw@{\@handle@line@ltx{}{\clubpenalty@ltx}{}}%
+\def@line@handler\thr@@{\@handle@line@ltx{\clubpenalty@ltx}{}{\brokenpenalty@ltx}}%
+\def@line@handler\f@ur{\@handle@line@ltx{\widowpenalty@ltx}{}{}}%
+\def@line@handler{5}{\@handle@line@ltx{\widowpenalty@ltx}{}{\brokenpenalty@ltx}}%
+\def@line@handler{6}{\@handle@line@ltx{\widowpenalty@ltx}{\clubpenalty@ltx}{}}%
+\def@line@handler{7}{\@handle@line@ltx{\widowpenalty@ltx}{\clubpenalty@ltx}{\brokenpenalty@ltx}}%
+\def@line@handler{8}{\@handle@line@ltx{\displaywidowpenalty@ltx}{}{}}%
+\def@line@handler{9}{\@handle@line@ltx{\displaywidowpenalty@ltx}{}{\brokenpenalty@ltx}}%
+\def@line@handler{10}{\@handle@line@ltx{\displaywidowpenalty@ltx}{\clubpenalty@ltx}{}}%
+\def@line@handler{11}{\@handle@line@ltx{\displaywidowpenalty@ltx}{\clubpenalty@ltx}{\brokenpenalty@ltx}}%
+\def\@handle@line@ltx#1#2#3{%
+ \@@handle@line@ltx
+ \@tempcnta\lastpenalty
+ \@tempcntb\interlinepenalty@ltx\relax
+ \@if@empty{#1}{}{\advance\@tempcntb#1\relax}%
+ \@if@empty{#2}{}{\advance\@tempcntb#2\relax}%
+ \@if@empty{#3}{}{\advance\@tempcntb#3\relax}%
+ \penalty\@ifnum{\@tempcnta<\@tempcntb}{\@tempcntb}{\@tempcnta}%
+}%
+\let\@@handle@line@ltx\@empty
+\@tempcnta\int@parpenalty
+\def@next@handler\@tempcnta\int@postparpenalty{\reset@queues@ltx\handle@par@ltx}%
+\def@next@handler\@tempcnta\int@vadjustpenalty{\handle@vadjust@ltx}%
+\def@next@handler\@tempcnta\int@whatsitpenalty{\handle@whatsit@ltx}%
+\def@next@handler\@tempcnta\int@predisplaypenalty{\reset@queues@ltx\@handle@display@ltx{\predisplaypenalty@ltx}}%
+\def@next@handler\@tempcnta\int@interdisplaylinepenalty{\@handle@display@ltx{\interdisplaylinepenalty@ltx}}%
+\def@next@handler\@tempcnta\int@postdisplaypenalty{\@handle@display@ltx{\postdisplaypenalty@ltx}}%
+\def\@handle@display@ltx#1{%
+ \@@handle@display@ltx
+ \@tempcnta\lastpenalty
+ \@tempcntb#1%
+ \penalty\@ifnum{\@tempcnta<\@tempcntb}{\@tempcntb}{\@tempcnta}%
+}%
+\let\@@handle@display@ltx\@empty
+\def\handle@par@ltx{}%
+\def\set@linepenalties{%
+ \expandafter\def\expandafter\interlinepenalty@ltx\expandafter{\the\interlinepenalty}%
+ \interlinepenalty-\int@parpenalty
+ \expandafter\def\expandafter\brokenpenalty@ltx\expandafter{\the\brokenpenalty}%
+ \brokenpenalty\@ne
+ \expandafter\def\expandafter\clubpenalty@ltx\expandafter{\the\clubpenalty}%
+ \clubpenalty\tw@
+ \expandafter\def\expandafter\widowpenalty@ltx\expandafter{\the\widowpenalty}%
+ \widowpenalty\f@ur
+ \expandafter\def\expandafter\displaywidowpenalty@ltx\expandafter{\the\displaywidowpenalty}%
+ \displaywidowpenalty8\relax
+}%
+\def\restore@linepenalties{%
+ \interlinepenalty\interlinepenalty@ltx
+ \brokenpenalty\brokenpenalty@ltx
+ \clubpenalty\clubpenalty@ltx
+ \widowpenalty\widowpenalty@ltx
+ \displaywidowpenalty\displaywidowpenalty@ltx
+ \relax
+}%
+\def\set@displaypenalties#1{%
+ \expandafter\def\expandafter\predisplaypenalty@ltx\expandafter{\the\predisplaypenalty}%
+ \expandafter\def\expandafter\interdisplaylinepenalty@ltx\expandafter{\the\interdisplaylinepenalty}%
+ \expandafter\def\expandafter\postdisplaypenalty@ltx\expandafter{\the\postdisplaypenalty}%
+ \@ifhmode{\predisplaypenalty-\int@predisplaypenalty\relax}{}%
+ #1{\interdisplaylinepenalty-\int@interdisplaylinepenalty\relax}{}%
+ #1{\postdisplaypenalty-\int@postdisplaypenalty\relax}{}%
+}%
+\def\enqueue@whatsit@ltx#1{%
+ \gappdef\g@whatsit@queue{{#1}}%
+ \vadjust{\penalty-\int@whatsitpenalty}%
+}%
+\def\handle@whatsit@ltx{%
+ \unvbox\@cclv
+ \g@pop@ltx\g@whatsit@queue\@tempa
+ \expandafter\do@whatsit\expandafter{\@tempa}%
+}%
+\def\do@whatsit#1{}%
+\def\g@pop@ltx#1#2{%
+ \expandafter\@g@pop@ltx#1{}{}\@@#1#2%
+}%
+\def\@g@pop@ltx#1#2\@@#3#4{%
+ \gdef#3{#2}%
+ \def#4{#1}%
+}%
+\let\vspace@ltx\vspace
+\let\pagebreak@ltx\pagebreak
+\let\nopagebreak@ltx\nopagebreak
+\let\endline@ltx\\
+\let\@arrayparboxrestore@ltx\@arrayparboxrestore
+\def\@tempa#1{%
+\def\@vspace@org ##1{%
+  \ifvmode
+    #1% \vskip #1
+    \vskip\z@skip
+   \else
+     \@bsphack
+     \vadjust{\@restorepar
+              #1% \vskip #1
+              \vskip\z@skip
+              }%
+     \@esphack
+   \fi
+}%
+\def\@vspace@ltx##1{%
+ \@ifvmode{%
+  #1% \vskip #1
+  \vskip\z@skip
+ }{%
+  \@bsphack
+  \ex@vadjust@ltx{%
+   \@restorepar
+   \nobreak
+   #1% \vskip #1
+   \vskip\z@skip
+  }%
+  \@esphack
+ }%
+}%
+\def\@vspacer@org##1{%
+  \ifvmode
+    \dimen@\prevdepth
+    \hrule \@height\z@
+    \nobreak
+    #1%\vskip #1
+    \vskip\z@skip
+    \prevdepth\dimen@
+  \else
+    \@bsphack
+    \vadjust{\@restorepar
+             \hrule \@height\z@
+             \nobreak
+             #1%\vskip #1
+             \vskip\z@skip}%
+    \@esphack
+\fi
+}%
+\def\@vspacer@ltx##1{%
+ \@ifvmode{%
+  \dimen@\prevdepth
+  \hrule\@height\z@
+  \nobreak
+  #1%\vskip#1
+  \vskip\z@skip
+  \prevdepth\dimen@
+ }{%
+  \@bsphack
+  \ex@vadjust@ltx{%
+   \@restorepar
+   \hrule\@height\z@
+   \nobreak
+   #1%\vskip#1
+   \vskip\z@skip
+  }%
+  \@esphack
+ }%
+}%
+}
+\rvtx@ifformat@geq{2020/10/01}%
+  {\@tempa{\@vspace@calcify{#1}}}%
+  {\@tempa{\vskip #1 }}%
+\def\@no@pgbk@org #1[#2]{%
+  \ifvmode
+    \penalty #1\@getpen{#2}%
+  \else
+    \@bsphack
+    \vadjust{\penalty #1\@getpen{#2}}%
+    \@esphack
+  \fi
+}%
+\def\@no@pgbk@ltx#1[#2]{%
+ \@ifvmode{%
+  \penalty#1\@getpen{#2}%
+ }{%
+  \@bsphack
+  \ex@vadjust@ltx{%
+   \penalty#1\@getpen{#2}%
+  }%
+  \@esphack
+ }%
+}%
+\rvtx@ifformat@geq{2020/02/02}%
+{\protected}{\long}\def\end@line@org{%
+ \let\reserved@e\relax
+ \let\reserved@f\relax
+ \@ifstar{%
+  \let\reserved@e\vadjust
+  \let\reserved@f\nobreak
+  \@xnewline
+ }%
+ \@xnewline
+}%
+\rvtx@ifformat@geq{2020/02/02}%
+{\protected}{\long}\def\end@line@ltx{%
+ \let\reserved@e\relax
+ \let\reserved@f\relax
+ \@ifstar{%
+  \let\reserved@e\ex@vadjust@ltx
+  \let\reserved@f\nobreak
+  \@xnewline
+ }{%
+  \@xnewline
+ }%
+}%
+\def\@tempa#1{%
+  \def\@newline@org[##1]{%
+   \let\reserved@e\vadjust
+   \@gnewline{#1}% \vskip#1
+  }%
+  \def\@newline@ltx[##1]{%
+   \let\reserved@e\ex@vadjust@ltx
+   \@gnewline{#1}% \vskip#1
+  }%
+}
+\rvtx@ifformat@geq{2020/10/01}%
+  {\@tempa{\@vspace@calcify{#1}}}%
+  {\@tempa{\vskip #1}}%
+ \@ifx{\@vspace\@vspace@org}{%
+  \@ifx{\@vspacer\@vspacer@org}{%
+   \@ifx{\@no@pgbk\@no@pgbk@org}{%
+    \@ifx{\@newline\@newline@org}{%
+     \expandafter\@ifx\expandafter{%
+       \csname\rvtx@ifformat@geq{2020/02/02}%
+         {\expandafter\@gobble\string\\}%
+         {\expandafter\@gobble\string\\ }\endcsname
+       \end@line@org
+     }{%
+       \true@sw
+     }{\false@sw}%
+    }{\false@sw}%
+   }{\false@sw}%
+  }{\false@sw}%
+ }{\false@sw}%
+ {%
+  \class@info{Overriding \string\@vspace, \string\@vspacer, \string\@no@pgbk, \string\@newline, and \string\\ }%
+  \let\@normalcr\end@line@ltx
+  \expandafter\let
+    \csname\rvtx@ifformat@geq{2020/02/02}%
+      {\expandafter\@gobble\string\\}%
+      {\expandafter\@gobble\string\\ }\endcsname\@normalcr
+  \let\@newline\@newline@ltx
+  \let\@vspace\@vspace@ltx
+  \let\@vspacer\@vspacer@ltx
+  \let\@no@pgbk\@no@pgbk@ltx
+ }{%
+  \class@warn{%
+   Failed to recognize \string\@vspace, \string\@vspacer, \string\@no@pgbk, \string\@newline, and \string\\;
+   no patches applied. Please get a more up-to-date class,
+  }%
+ }%
+\let\ex@vadjust@ltx\vadjust
+\def\enqueue@vadjust@ltx#1{%
+ \gappdef\g@vadjust@queue{{#1}}%
+ \vadjust{\penalty-\int@vadjustpenalty}%
+}%
+\def\handle@vadjust@ltx{%
+ \unvbox\@cclv
+ \g@pop@ltx\g@vadjust@queue\@tempa
+ \expandafter\gappdef\expandafter\g@vadjust@line\expandafter{\@tempa}%
+}%
+\let\g@vadjust@line\@empty
+\def\reset@queues@ltx{%
+ \global\let\g@whatsit@queue\@empty
+ \global\let\g@vadjust@queue\@empty
+}%
+\newcommand\linenomathWithnumbers@LN{%
+  \ifLineNumbers
+    \ifnum\interlinepenalty>-\linenopenaltypar
+      \global\holdinginserts\thr@@
+      \advance\interlinepenalty \linenopenalty
+     \ifhmode
+      \advance\predisplaypenalty \linenopenalty
+     \fi
+      \advance\postdisplaypenalty \linenopenalty
+      \advance\interdisplaylinepenalty \linenopenalty
+    \fi
+  \fi
+  \ignorespaces
+}%
+\newcommand\linenomathNonumbers@LN{%
+  \ifLineNumbers
+    \ifnum\interlinepenalty>-\linenopenaltypar
+      \global\holdinginserts\thr@@
+      \advance\interlinepenalty \linenopenalty
+     \ifhmode
+      \advance\predisplaypenalty \linenopenalty
+     \fi
+    \fi
+  \fi
+  \ignorespaces
+}%
+\def\endlinenomath@LN{%
+  \ifLineNumbers
+   \global\holdinginserts\@LN@outer@holdins
+  \fi
+  \global\@ignoretrue
+}
+\def\linenumberpar@LN{%
+  \ifvmode \@@@par \else
+    \ifinner \@@@par \else
+      \xdef\@LN@outer@holdins{\the\holdinginserts}%
+      \advance \interlinepenalty \linenopenalty
+      \linenoprevgraf \prevgraf
+      \global \holdinginserts \thr@@
+      \@@@par
+      \ifnum\prevgraf>\linenoprevgraf
+        \penalty-\linenopenaltypar
+      \fi
+      \@LN@parpgbrk
+      \global\holdinginserts\@LN@outer@holdins
+      \advance\interlinepenalty -\linenopenalty
+    \fi
+  \fi
+}%
+\appdef\class@documenthook{%
+ \@ifpackageloaded{lineno}{%
+  \@ifx{\linenomathWithnumbers\linenomathWithnumbers@LN}{%
+   \@ifx{\linenomathNonumbers\linenomathNonumbers@LN}{%
+    \@ifx{\endlinenomath\endlinenomath@LN}{%
+     \@ifx{\linenumberpar\linenumberpar@LN}{%
+      \true@sw
+     }{\false@sw}%
+    }{\false@sw}%
+   }{\false@sw}%
+  }{\false@sw}%
+  {%
+   \class@info{Overriding lineo.sty, restoring output routine,}%
+   \let\linenumberpar\linenumberpar@ltx
+   \let\endlinenomath\endlinenomath@ltx
+   \expandafter\let\csname endlinenomath*\endcsname\endlinenomath@ltx
+   \let\linenomathWithnumbers\linenomathWithnumbers@ltx
+   \let\linenomathNonumbers\linenomathNonumbers@ltx
+   \let\ex@vadjust@ltx\ex@vadjust@line
+   \let\@LN@postlabel\enqueue@whatsit@ltx
+   \let\do@whatsit\write@linelabel
+   \let\handle@par@ltx\handle@par@LN
+   \let\@@handle@line@ltx\Make@LineNo@ltx
+   \let\@@handle@display@ltx\Make@LineNo@ltx
+   \output@latex{\natural@output}%
+   \let\vspace\vspace@ltx
+   \let\pagebreak\pagebreak@ltx
+   \let\nopagebreak\nopagebreak@ltx
+   \let\@arrayparboxrestore\@arrayparboxrestore@ltx
+   \let\\\endline@ltx
+   \appdef\set@footnotefont{%
+    \let\par\@@@par
+    \let\@@par\@@@par
+   }%
+   \@if@sw\ifLineNumbers\fi{%
+    \class@info{Reinvoke \string\linenumbers}%
+    \let\@@par\linenumberpar
+    \@ifx{\@par\linenumberpar@LN}{\let\@par\linenumberpar}{}%
+    \@ifx{\par\linenumberpar@LN}{\let\par\linenumberpar}{}%
+   }{%
+    \class@info{Line numbering not turned on yet}%
+   }%
+  }{%
+   \class@warn{Failed to recognize lineno.sty procedures; no patches applied. Please get a more up-to-date class.}%
+  }%
+ }{%
+ }%
+}%
+\def\linenumberpar@ltx{\@ifvmode{\@@@par}{\@linenumberpar}}%
+\def\@linenumberpar{%
+   \linenoprevgraf\prevgraf
+   \set@linepenalties
+   \@@@par
+   \@ifnum{\prevgraf>\linenoprevgraf}{
+    \penalty-\int@postparpenalty
+   }{}%
+   \@LN@parpgbrk
+   \restore@linepenalties
+}%
+\newcommand\linenomathWithnumbers@ltx{\@linenomathnumbers@ltx\true@sw}%
+\newcommand\linenomathNonumbers@ltx{\@linenomathnumbers@ltx\false@sw}%
+\def\@linenomathnumbers@ltx#1{%
+ \@if@sw\ifLineNumbers\fi{%
+   \set@linepenalties
+   \set@displaypenalties#1%
+ }{}%
+ \ignorespaces
+}%
+\def\endlinenomath@ltx{%
+ \global\@ignoretrue
+}%
+\def\handle@par@LN{%
+ \Make@LineNo@ltx
+ \@tempcnta\lastpenalty
+ \@ifnum{\@tempcnta=\z@}{}{%
+  \expandafter\gdef
+  \expandafter\@LN@parpgbrk
+  \expandafter{%
+   \expandafter\penalty
+               \the\@tempcnta
+   \global\let\@LN@parpgbrk\@LN@screenoff@pen
+  }%
+ }%
+}%
+\def\Make@LineNo@ltx{%
+ \@LN@maybe@normalLineNumber
+ \boxmaxdepth\maxdimen\setbox\z@\vbox{\unvbox\@cclv}%
+ \@tempdima\dp\z@
+ \unvbox\z@
+ \sbox\@tempboxa{\hb@xt@\z@{\makeLineNumber}}%
+ \ht\@tempboxa\z@
+ \@LN@depthbox
+ \stepLineNumber
+ \g@vadjust@line
+ \global\let\g@vadjust@line\@empty
+}%
+\def\write@linelabel#1{%
+ \protected@write\@auxout{}{%
+  \string\newlabel{#1}{{\theLineNumber}{\thepage}{}{}{}}%
+ }%
+}%
+\def\ex@vadjust@line{%
+ \@if@sw\ifLineNumbers\fi{\enqueue@vadjust@ltx}{\vadjust}%
+}%
+\endinput
+%%
+%% End of file `ltxgrid.sty'.
-- 
cgit v1.3

