<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                         %
% This file is written by Tanmoy Bhattacharya &lt;tanmoy@qcd.lanl.gov&gt; and   %
% is in the public domain for what it is worth. It inserts \specials that %
% are interpreted by (a) the xhdvi hypertex dvi previewer, (b) nextstep   %
% HyperTeXview.app dvi previewer, and (c) the dvipdf driver               %
% For more info, see http://xxx.lanl.gov/hypertex/                        %
%                or  ftp://xxx.lanl.gov/pub/hypertex/index.html           %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                         %
% Only \hyperdef, \hyperref , \href , and \hname are user callable.       %
% Usage: \hyperdef\TeXcs{category}{name}{text}                            %
% Usage: \href{url}{text}                                                 %
% Usage: \hyperref{filename}{category}{name}{text}                        %
%   or   \hyperref\TeXcs{text}                                            %
%             where \TeXcs has been defined by a hyperdef.                %
%                                                                         %
%        Note: The token following \hyperref is expanded completely first.%
%              Really perverse forms like                                 %
%                \csname perverse\endcsname                               %
%              will give an error                                         %
%                                                                         %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The following might be useful to other macros interfacing in.           %
% Usage: \hyper@nchor{name="#myname" href="#refer"}{text}                 %
% Usage: \hyperlink{target_name}{text}                                    %
% Usage: \hypertarget{myname}{text}                                       %
% In cases where there is a possibility of premature expansion use        %
%     \hyper@\hyperpr@ref instead of \hyperref                            %
% and \hyper@\hyperpr@def instead of \hyperdef                            %
% These macros increase enormously in size when expanded, but the expanded%
% token sequence always ends in \hyperpr@ref and \hyperpr@def respectively%
% Macro writers might want to make use of the macro \hyperv@rsion         %
% which is undefined in version 0 and is the version number otherwise     %
% \hyper@nique is exactly like \hyperdef except no special are written    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Save the current catcode of @ and redefine @ to be a letter
%
\expandafter\edef\csname hypers@fe\endcsname{\catcode
                                             `\noexpand @=\the\catcode`\@}%
\catcode`\@=11
%
% Check if the file is already included
%
% hack to allow \allowoncemore
\ifx\hyper@utoprocess\hyper@ndefined
\else
 \expandafter\hyper@utoprocess\fi
\ifx\hyperd@ne\hyper@ndefined
 \global\let\hyperd@ne=\relax
\else
 \hypers@fe
 \errhelp{hyperbasics.tex needs to be included only once outside
          of any {...} or \begingroup...\endgroup. You have tried to
          include it more than once. If the previous include was indeed
          outside any groupings, continue and all will be well.}%
 \errmessage{Input this file only once!}%
 \expandafter\endinput\fi
%
% Version number
%
\def\hyperv@rsion{9}%
%
% Check and input a previous .hrf file if it exists
%
\newread\hyperf@le
\def\hyperf@lename{\jobname.hrf}%
\immediate\openin\hyperf@le\hyperf@lename\relax
\ifeof\hyperf@le\relax
 \immediate\closein\hyperf@le\relax
\else
 \immediate\closein\hyperf@le\relax
 \input \hyperf@lename
\fi
%
% Open a new .hrf file
%
\newwrite\hyperf@le
\immediate\openout\hyperf@le\hyperf@lename
%%%%
% MAIN SECTION
%%%%
%
% define a token register
%
\newtoks\hypert@ks
%
% Define a convenient macro to hold the character #
%
\edef\hypert@mp{\catcode`\noexpand\%=\the\catcode`\%}
\catcode`\%=12
\def\hyperp@rcent{%}
\hypert@mp
\edef\hypert@mp{\catcode`\noexpand\#=\the\catcode`\#}%
\catcode`\#=12
\def\hyperh@sh{#}%
\hypert@mp
\let\hypert@mp=\relax
\let\hyper@nd=\relax
\def\hyperbl@nk{ }
\def\hyperstr@pquote#1"#2\hyper@nd{% Call \hyperstr@pquote..."\hyper@nd
   #1% #1 can not contain "
   \ifx\hyper@nd#2\hyper@nd% #2 cannot contain \hyper@nd and
                           % must end in " if non-empty
   \else\hyperp@rcent22\hyperstr@pquote#2\hyper@nd\fi}%
\def\hyperstr@pblank#1 #2\hyper@nd{% Call \hyperstr@pblank... \hyper@nd
   #1% #1 cannot contain a space
   \ifx\hyper@nd#2\hyper@nd% #2 canot contain \hyper@nd and
                           % and must end in blank if nonempty
   \else\hyperp@rcent20\hyperstr@pblank#2\hyper@nd\fi}
%
\long\def\hyper@nchor#1#2{\edef\hyperm@cro{html:&lt;A #1&gt;}%
                          \special\expandafter{\hyperm@cro}%
                          {#2}\special{html:&lt;/A&gt;}}%
%
\def\hyper@atm@ning#1-&gt;#2\hyper@nd{#2}
\def\hyperlink{\protect\hyperlink@}
\def\hyperlink@{{\catcode`\#=12 \catcode`\%=12 \catcode`\~=12
                \expandafter}\hyperlink@@}
\def\hyperlink@@#1{\protect\hyperlink@@@{#1}}
\def\hyperlink@@@#1{\edef\hypert@mp{#1}%
               \edef\hypert@mp{\expandafter\hyper@atm@ning\meaning\hypert@mp
                               \hyper@nd}%
               \edef\hypert@mp{\expandafter\hyperstr@pquote%
                               \hypert@mp"\hyper@nd}%
               \edef\hypert@mp{\expandafter\expandafter\expandafter
                               \hyperstr@pblank\expandafter%
                               \hypert@mp\hyperbl@nk\hyper@nd}%
               \hyper@nchor{href=\expandafter"\hypert@mp"}}%
%
\def\hypertarget#1{\edef\hypert@mp{#1}%
               \edef\hypert@mp{\expandafter\hyper@atm@ning\meaning\hypert@mp
                               \hyper@nd}%
               \edef\hypert@mp{\expandafter\hyperstr@pquote%
                               \hypert@mp"\hyper@nd}%
               \edef\hypert@mp{\expandafter\expandafter\expandafter
                               \hyperstr@pblank\expandafter%
                               \hypert@mp\hyperbl@nk\hyper@nd}%
               \hyper@nchor{name=\expandafter"\hypert@mp"}}%
%
\def\hyperref{\afterassignment\hyperr@f\let\hyperp@ram}
\def\hyperr@f{\ifx\hyperp@ram{\iffalse}\fi
               \expandafter\expandafter\expandafter\hyperr@@
               \expandafter{%
              \else
               \iffalse}\fi
               \ifx\hyperp@ram\hyper@ndefined
                 \message{Undefined reference}%
                 \def\hyperp@r@m{{}{undefined}{}}%
               \else
                 \edef\hyperp@r@m{\hyperp@ram}%
               \fi
               \expandafter\expandafter\expandafter\hyperr@@
               \expandafter\hyperp@r@m
              \fi}%
% refer to #1, \hyperh@sh#2.#3 or #1\hyperh@sh#2.#3
% depending on what is blank/nonblank
\def\hyperr@@#1#2#3{\ifx\hyper@ndefined#1\hyper@ndefined
                    \hypert@ks\expandafter{\hyperh@sh#2.#3}%
                    \else
                     \ifx\hyper@ndefined#2#3\hyper@ndefined
                      \hypert@ks{#1}%
                     \else
                      \def\hypert@mp{#1}%
                      \hypert@ks\expandafter\expandafter\expandafter
                      {\expandafter\hypert@mp\hyperh@sh#2.#3}%
                     \fi
                    \fi
                    \expandafter\hyperlink\expandafter{\the\hypert@ks}}%
%
% \def\hyperREF#1{\hyperlink{#1}}% % Disabled as per pg's suggestion
%
\def\hyperdef#1#2#3{{\escapechar=`\\\relax
                     \edef\hypert@mp{\hyperstr@pquote#2.#3"\hyper@nd}%
                     \expandafter\ifx\csname hyperd@\meaning\hypert@mp
                     \endcsname
                     \relax
                     \expandafter\gdef\csname hyperd@\meaning\hypert@mp
                     \endcsname{}%
                     \gdef#1{{}{\hyperstr@pquote#2"\hyper@nd}%
                               {\hyperstr@pquote#3"\hyper@nd}}%
                     \immediate\write\hyperf@le{\def\noexpand#1{{}%
                        {\noexpand\hyperstr@pquote#2"\noexpand\hyper@nd}%
                        {\noexpand\hyperstr@pquote#3"\noexpand\hyper@nd}}}%
                     \xdef\hypert@mp{\global\let\noexpand\hypert@mp=\relax
                                     \noexpand\hypertarget{\hypert@mp}}%
                     \global\hypert@ks={\hypert@mp}%
                     \else
                     \message\expandafter{'\hypert@mp' duplicate}%
                     \global\let\hypert@mp=\relax
                     \global\hypert@ks={\hyperdef{#1}{#2}{#3@}}%
                     \fi}\the\hypert@ks}%

\def\hyper@nique#1#2#3#4{{\escapechar=`\\\relax
                     \edef\hypert@mp{\hyperstr@pquote#2.#3"\hyper@nd}%
                     \expandafter\ifx\csname hyperd@\meaning\hypert@mp
                     \endcsname
                     \relax
                     \gdef#1{{}{\hyperstr@pquote#2"\hyper@nd}%
                               {\hyperstr@pquote#3"\hyper@nd}}%
                     \global\let\hypert@mp=\relax
                     #4%
                     \else
                     \global\let\hypert@mp=\relax
                     \hyper@nique{#1}{#2}{#3@}{#4}%
                     \fi}}%

%%% 
% protection macros
%%%
\ifx\protect\hyper@ndefined\let\protect=\relax\fi
\let\hyper@@@@=\relax
\def\hyper@@{\let\hyper@@@=\relax}%
\hyper@@
\def\hyper@{\relax\let\hyper@@@\noexpand\hyper@\noexpand}%
\def\hyperpr@ref{\hyper@@\hyperref}
\def\hyperpr@def{\hyper@@\hyperdef}

% As per pg's suggestion
\let\href\hyperlink
\let\hname\hypertarget
% Hack to allow auto-processing
\def\allowoncemore{\def\hyper@utopr@cess{\let\hyper@utoprocess=\hyper@ndefined
                                         \hypers@fe\endinput}}%
%
% Restore the catcode of @
%
\hypers@fe
\endinput
% A line after endinput to avoid both msdos gremlins and an incomplete
% last line
</pre></body></html>