%%
%% This is file `pdfmark.def',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% hyperref.dtx  (with options: `pdfmark,pdfmarkbase,pdfform,outlines')
%% 
%% Copyright
%% 1995-2001 Sebastian Rahtz, with portions written by David Carlisle and Heiko Oberdiek,
%% 2001-2015 Heiko Oberdiek.
%% 2016-2019 Oberdiek Package Support Group
%% 2019-2022 LaTeX Project
%%      https://github.com/latex3/hyperref/issues
%% 
%% This file is part of the `Hyperref Bundle'.
%% -------------------------------------------
%% 
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%   http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%% 
%% This work has the LPPL maintenance status `maintained'.
%% 
%% The Current Maintainer of this work is the LaTeX Project.
%% 
%% The list of all files belonging to the `Hyperref Bundle' is
%% given in the file `manifest.txt'.
%% 
%% File: hyperref.dtx
\ProvidesFile{pdfmark.def}
  [2023-02-07 v7.00v %
  Hyperref definitions for pdfmark specials]
\Hy@VersionCheck{pdfmark.def}
\begingroup
  \@ifundefined{headerps@out}{}{%
    \toks@\expandafter{\Hy@FirstPageHook}%
    \xdef\Hy@FirstPageHook{%
      \noexpand\headerps@out{%
        systemdict /pdfmark known%
        {%
          userdict /?pdfmark systemdict /exec get put%
        }{%
          userdict /?pdfmark systemdict /pop get put %
          userdict /pdfmark systemdict /cleartomark get put%
        }%
        ifelse%
      }%
      \the\toks@
    }%
  }%
\endgroup
\def\Hy@PutCatalog#1{%
  \pdfmark{pdfmark=/PUT,Raw={\string{Catalog\string} <<#1>>}}%
}
\ifHy@pdfpagelabels
  \def\HyPL@StorePageLabel#1{%
    \if@filesw
      \begingroup
        \edef\Hy@tempa{\the\Hy@abspage<<#1>>}%
        \immediate\write\@mainaux{%
          \string\HyPL@Entry{\Hy@tempa}%
        }%
      \endgroup
    \fi
  }%
  \Hy@AtBeginDocument{%
    \if@filesw
      \immediate\write\@mainaux{%
        \string\providecommand\string*\string\HyPL@Entry[1]{}%
      }%
    \fi
    \ifx\HyPL@Labels\@empty
      \Hy@WarningNoLine{Rerun to get /PageLabels entry}%
    \else
      \HyPL@SetPageLabels
    \fi
    \let\HyPL@Entry\@gobble
  }%
  \def\HyPL@Entry#1{%
    \expandafter\gdef\expandafter\HyPL@Labels\expandafter{%
      \HyPL@Labels
      #1%
    }%
  }%
\fi
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdf@escapestring\endcsname\relax
  \begingroup
    \catcode`\|=0 %
    \@makeother\\%
  |@firstofone{|endgroup
    |def|Hy@pstringdef#1#2{%
      |begingroup
        |edef~{|string~}%
        |xdef|Hy@gtemp{#2}%
      |endgroup
      |let#1|Hy@gtemp
      |@onelevel@sanitize#1%
      |edef#1{|expandafter|Hy@ExchangeBackslash#1\|@nil}%
      |edef#1{|expandafter|Hy@ExchangeLeftParenthesis#1(|@nil}%
      |edef#1{|expandafter|Hy@ExchangeRightParenthesis#1)|@nil}%
    }%
    |def|Hy@ExchangeBackslash#1\#2|@nil{%
      #1%
      |ifx|\#2|\%%
      |else
        \\%
        |ltx@ReturnAfterFi{%
          |Hy@ExchangeBackslash#2|@nil
        }%
      |fi
    }%
  }%
  \def\Hy@ExchangeLeftParenthesis#1(#2\@nil{%
    #1%
    \ifx\\#2\\%
    \else
      \@backslashchar(%
      \ltx@ReturnAfterFi{%
        \Hy@ExchangeLeftParenthesis#2\@nil
      }%
    \fi
  }%
  \def\Hy@ExchangeRightParenthesis#1)#2\@nil{%
    #1%
    \ifx\\#2\\%
    \else
      \@backslashchar)%
      \ltx@ReturnAfterFi{%
        \Hy@ExchangeRightParenthesis#2\@nil
      }%
    \fi
  }%
\else
  \def\Hy@pstringdef#1#2{%
    \begingroup
      \edef~{\string~}%
      \xdef\Hy@gtemp{\pdf@escapestring{#2}}%
    \endgroup
    \let#1\Hy@gtemp
  }%
\fi
\def\Hy@DistillerDestFix{%
  \begingroup
    \let\x\literalps@out
    \ifnum \@ifundefined{OpMode}{0}{%
           \@ifundefined{gexmode}{0}{%
           \ifnum\gexmode>0 \OpMode\else 0\fi
           }}>1 %
      \def\x##1{%
        \immediate\special{!=##1}%
      }%
    \fi
    \x{%
      /product where{%
        pop %
        product(Distiller)search{%
          pop pop pop %
          version(.)search{%
            exch pop exch pop%
            (3011)eq{%
              gsave %
              newpath 0 0 moveto closepath clip%
              /Courier findfont 10 scalefont setfont %
              72 72 moveto(.)show %
              grestore%
            }if%
          }{pop}ifelse%
        }{pop}ifelse%
      }if%
    }%
  \endgroup
}
\Hy@breaklinks@unsupported
\def\HyPat@ObjRef{%
  \{[^{}]+\}%
}
\Hy@WrapperDef\hyper@anchor#1{%
  \Hy@SaveLastskip
  \Hy@VerboseAnchor{#1}%
  \begingroup
    \pdfmark[\anchor@spot]{%
      pdfmark=/DEST,%
      linktype=anchor,%
      View=/\@pdfview \@pdfviewparams,%
      DestAnchor={#1}%
    }%
  \endgroup
  \Hy@RestoreLastskip
}
\ltx@IfUndefined{hyper@anchorstart}{}{\endinput}
\Hy@WrapperDef\hyper@anchorstart#1{%
  \Hy@SaveLastskip
  \Hy@VerboseAnchor{#1}%
  \literalps@out{H.S}%
  \Hy@AllowHyphens
  \xdef\hyper@currentanchor{#1}%
  \Hy@activeanchortrue
}
\def\hyper@anchorend{%
  \literalps@out{\strip@pt@and@otherjunk\baselineskip\space H.A}%
  \pdfmark{%
    pdfmark=/DEST,%
    linktype=anchor,%
    View=/\@pdfview \@pdfviewparams,%
    DestAnchor=\hyper@currentanchor,%
  }%
  \Hy@activeanchorfalse
  \Hy@RestoreLastskip
}
\def\hyper@linkstart#1#2{%
  \Hy@VerboseLinkStart{#1}{#2}%
  \ifHy@breaklinks
  \else
    \leavevmode
    \ifmmode
      \def\Hy@LinkMath{$}%
    \else
      \let\Hy@LinkMath\ltx@empty
    \fi
    \Hy@SaveSpaceFactor
    \hbox\bgroup
    \Hy@RestoreSpaceFactor
    \Hy@LinkMath
  \fi
  \expandafter\Hy@colorlink\csname @#1color\endcsname
  \literalps@out{H.S}%
  \Hy@AllowHyphens
  \xdef\hyper@currentanchor{#2}%
  \gdef\hyper@currentlinktype{#1}%
}
\def\hyper@linkend{%
  \literalps@out{\strip@pt@and@otherjunk\baselineskip\space H.L}%
  \ltx@IfUndefined{@\hyper@currentlinktype bordercolor}{%
    \let\Hy@tempcolor\relax
  }{%
    \edef\Hy@tempcolor{%
      \csname @\hyper@currentlinktype bordercolor\endcsname
    }%
  }%
  \pdfmark{%
    pdfmark=/ANN,%
    linktype=link,%
    Subtype=/Link,%
    PDFAFlags=4,%
    Dest=\hyper@currentanchor,%
    AcroHighlight=\@pdfhighlight,%
    Border=\@pdfborder,%
    BorderStyle=\@pdfborderstyle,%
    Color=\Hy@tempcolor,%
    Raw=H.B%
  }%
  \Hy@endcolorlink
  \ifHy@breaklinks
  \else
    \Hy@LinkMath
    \Hy@SaveSpaceFactor
    \egroup
    \Hy@RestoreSpaceFactor
  \fi
}
\begingroup
  \catcode`P=12 %
  \catcode`T=12 %
  \lowercase{\endgroup
  \gdef\rem@ptetc#1.#2PT#3!{#1\ifnum#2>\z@.#2\fi}%
}
\def\strip@pt@and@otherjunk#1{\expandafter\rem@ptetc\the#1!}
\def\hyper@pagetransition{%
  \ifx\@pdfpagetransition\relax
  \else
    \ifx\@pdfpagetransition\@empty
      % 1. Does an old entry have to be deleted?
      % 2. If 1=yes, how to delete?
    \else
      \pdfmark{%
        pdfmark=/PUT,%
        Raw={%
          \string{ThisPage\string}%
          <</Trans << /S /\@pdfpagetransition\space >> >>%
        }%
      }%
    \fi
  \fi
}
\def\hyper@pageduration{%
  \ifx\@pdfpageduration\relax
  \else
    \ifx\@pdfpageduration\@empty
      % 1. Does an old entry have to be deleted?
      % 2. If 1=yes, how to delete?
    \else
      \pdfmark{%
        pdfmark=/PUT,%
        Raw={%
          \string{ThisPage\string}%
          <</Dur \@pdfpageduration>>%
        }%
      }%
    \fi
  \fi
}
\g@addto@macro\Hy@EveryPageBoxHook{%
  \hyper@pagetransition
  \hyper@pageduration
}
\def\hyper@image#1#2{%
  \hyper@linkurl{#2}{#1}%
}
\def\Hy@undefinedname{UNDEFINED}
\def\hyper@link#1#2#3{%
  \Hy@VerboseLinkStart{#1}{#2}%
  \ltx@IfUndefined{@#1bordercolor}{%
    \let\Hy@tempcolor\relax
  }{%
    \edef\Hy@tempcolor{\csname @#1bordercolor\endcsname}%
  }%
  \begingroup
    \protected@edef\Hy@testname{#2}%
    \ifx\Hy@testname\@empty
      \Hy@Warning{%
        Empty destination name,\MessageBreak
        using `\Hy@undefinedname'%
      }%
      \let\Hy@testname\Hy@undefinedname
    \fi
    \pdfmark[{#3}]{%
      Color=\Hy@tempcolor,%
      linktype={#1},%
      AcroHighlight=\@pdfhighlight,%
      Border=\@pdfborder,%
      BorderStyle=\@pdfborderstyle,%
      pdfmark=/ANN,%
      Subtype=/Link,%
      PDFAFlags=4,%
      Dest=\Hy@testname
    }%
  \endgroup
}
\newtoks\pdf@docset
\def\PDF@FinishDoc{%
  \Hy@UseMaketitleInfos
  \HyInfo@GenerateAddons
  \let\Hy@temp\@empty
  \ifx\@pdfcreationdate\@empty
  \else
    \def\Hy@temp{CreationDate=\@pdfcreationdate,}%
  \fi
  \ifx\@pdfmoddate\@empty
  \else
    \expandafter\def\expandafter\Hy@temp\expandafter{%
      \Hy@temp
      ModDate=\@pdfmoddate,%
    }%
  \fi
  \ifx\@pdfproducer\relax
  \else
    \expandafter\def\expandafter\Hy@temp\expandafter{%
      \Hy@temp
      Producer=\@pdfproducer,%
    }%
  \fi
  \expandafter
  \pdfmark\expandafter{%
    \Hy@temp
    pdfmark=/DOCINFO,%
    Title=\@pdftitle,%
    Subject=\@pdfsubject,%
    Creator=\@pdfcreator,%
    Author=\@pdfauthor,%
    Keywords=\@pdfkeywords,%
    Trapped=\@pdftrapped
  }%
  \ifx\HyInfo@Addons\@empty
  \else
    \pdfmark{%
      pdfmark=/DOCINFO,%
      Raw={\HyInfo@Addons}%
    }%
  \fi
  \Hy@DisableOption{pdfauthor}%
  \Hy@DisableOption{pdftitle}%
  \Hy@DisableOption{pdfsubject}%
  \Hy@DisableOption{pdfcreator}%
  \Hy@DisableOption{addtopdfcreator}%
  \Hy@DisableOption{pdfcreationdate}%
  \Hy@DisableOption{pdfcreationdate}%
  \Hy@DisableOption{pdfmoddate}%
  \Hy@DisableOption{pdfproducer}%
  \Hy@DisableOption{pdfkeywords}%
  \Hy@DisableOption{pdftrapped}%
  \Hy@DisableOption{pdfinfo}%
}
\def\PDF@SetupDoc{%
  \def\Hy@temp{}%
  \ifx\@pdfstartpage\@empty
  \else
    \ifx\@pdfstartview\@empty
    \else
      \edef\Hy@temp{%
        ,Page=\@pdfstartpage
        ,View=\@pdfstartview
      }%
    \fi
  \fi
  \edef\Hy@temp{%
    \noexpand\pdfmark{%
      pdfmark=/DOCVIEW,%
      PageMode=/\@pdfpagemode
      \Hy@temp
    }%
  }%
  \Hy@temp
  \ifx\@pdfpagescrop\@empty
  \else
    \pdfmark{pdfmark=/PAGES,CropBox=\@pdfpagescrop}%
  \fi
  \edef\Hy@temp{%
    \ifHy@pdftoolbar\else /HideToolbar true\fi
    \ifHy@pdfmenubar\else /HideMenubar true\fi
    \ifHy@pdfwindowui\else /HideWindowUI true\fi
    \ifHy@pdffitwindow /FitWindow true\fi
    \ifHy@pdfcenterwindow /CenterWindow true\fi
    \ifHy@pdfdisplaydoctitle /DisplayDocTitle true\fi
    \Hy@UseNameKey{NonFullScreenPageMode}\@pdfnonfullscreenpagemode
    \Hy@UseNameKey{Direction}\@pdfdirection
    \Hy@UseNameKey{ViewArea}\@pdfviewarea
    \Hy@UseNameKey{ViewClip}\@pdfviewclip
    \Hy@UseNameKey{PrintArea}\@pdfprintarea
    \Hy@UseNameKey{PrintClip}\@pdfprintclip
    \Hy@UseNameKey{PrintScaling}\@pdfprintscaling
    \Hy@UseNameKey{Duplex}\@pdfduplex
    \ifx\@pdfpicktraybypdfsize\@empty
    \else
      /PickTrayByPDFSize \@pdfpicktraybypdfsize
    \fi
    \ifx\@pdfprintpagerange\@empty
    \else
      /PrintPageRange[\@pdfprintpagerange]%
    \fi
    \ifx\@pdfnumcopies\@empty
    \else
      /NumCopies \@pdfnumcopies
    \fi
  }%
  \Hy@pstringdef\Hy@pstringB{\@baseurl}%
  \pdfmark{%
    pdfmark=/PUT,%
    Raw={%
      \string{Catalog\string}<<%
        \ifx\Hy@temp\@empty
        \else
          /ViewerPreferences<<\Hy@temp>>%
        \fi
        \Hy@UseNameKey{PageLayout}\@pdfpagelayout
        \ifx\@pdflang\relax
        \else
          /Lang(\@pdflang)%
        \fi
        \ifx\@baseurl\@empty
        \else
          /URI<</Base(\Hy@pstringB)>>%
        \fi
      >>%
    }%
  }%
}
\newif\ifHy@pdfmarkerror
\def\pdfmark{\@ifnextchar[{\pdfmark@}{\pdfmark@[]}}
\def\pdfmark@[#1]#2{%
  \Hy@pdfmarkerrorfalse
  \edef\@processme{\noexpand\pdf@toks={\the\pdf@defaulttoks}}%
  \@processme
  \let\pdf@type\relax
  \let\pdf@objdef\ltx@empty
  \kvsetkeys{PDF}{#2}%
  \ifHy@pdfmarkerror
  \else
    \ifx\pdf@type\relax
       \Hy@WarningNoLine{no pdfmark type specified in #2!!}%
       \ifx\\#1\\%
       \else
         \pdf@rect{#1}%
       \fi
    \else
       \ifx\\#1\\%
         \literalps@out{%
           [%
           \ifx\pdf@objdef\ltx@empty
           \else
             /_objdef\string{\pdf@objdef\string}%
           \fi
           \the\pdf@toks\space\pdf@type\space pdfmark%
         }%
       \else
         \ltx@IfUndefined{@\pdf@linktype color}{%
           \Hy@colorlink\@linkcolor
         }{%
           \expandafter\Hy@colorlink
                       \csname @\pdf@linktype color\endcsname
         }%
         \pdf@rect{#1}%
         \literalps@out{%
           [%
           \ifx\pdf@objdef\ltx@empty
           \else
             /_objdef\string{\pdf@objdef\string}%
           \fi
           \the\pdf@toks\space\pdf@type\space pdfmark%
         }%
         \Hy@endcolorlink
       \fi
    \fi
  \fi
}
\newsavebox{\pdf@box}
\providecommand*{\Hy@setouterhbox}{\sbox}
\providecommand*{\Hy@breaklinksunhbox}{\unhbox}
\def\Hy@DEST{/DEST}
\def\pdf@rect#1{%
  \begingroup
    \chardef\x=1 %
    \def\Hy@temp{#1}%
    \ifx\Hy@temp\ltx@empty
      \chardef\x=0 %
    \else
      \def\y{\anchor@spot}%
      \ifx\Hy@temp\y
        \def\y{\relax}%
        \ifx\anchor@spot\y
          \chardef\x=0 %
        \fi
      \fi
    \fi
  \expandafter\endgroup
  \ifcase\x
    \literalps@out{H.S}%
    \literalps@out{H.R}%
  \else
    \leavevmode
    \Hy@SaveSpaceFactor
    \ifmmode
      \def\Hy@LinkMath{$}%
    \else
      \let\Hy@LinkMath\ltx@empty
    \fi
    \ifHy@breaklinks
      \Hy@setouterhbox\pdf@box{%
        \Hy@RestoreSpaceFactor
        \Hy@LinkMath
        \Hy@AllowHyphens#1\Hy@xspace@end
        \Hy@LinkMath
        \Hy@SaveSpaceFactor
      }%
    \else
      \sbox\pdf@box{%
        \Hy@RestoreSpaceFactor
        \Hy@LinkMath
        #1\Hy@xspace@end
        \Hy@LinkMath
        \Hy@SaveSpaceFactor
      }%
    \fi
    \dimen@\ht\pdf@box
    \ifdim\dp\pdf@box=\z@
      \literalps@out{H.S}%
    \else
      \lower\dp\pdf@box\hbox{\literalps@out{H.S}}%
    \fi
    \ifHy@breaklinks
      \ifhmode
        \Hy@breaklinksunhbox\pdf@box
      \else
        \box\pdf@box
      \fi
    \else
      \expandafter\box\pdf@box
    \fi
    \ifdim\dimen@=\z@
      \literalps@out{H.R}%
    \else
      \raise\dimen@\hbox{\literalps@out{H.R}}%
    \fi
    \Hy@RestoreSpaceFactor
  \fi
  \ifx\pdf@type\Hy@DEST
  \else
    \pdf@addtoksx{H.B}%
  \fi
}
\newtoks\pdf@toks
\newtoks\pdf@defaulttoks
\pdf@defaulttoks={}%
\def\pdf@addtoks#1#2{%
  \edef\@processme{\pdf@toks{\the\pdf@toks/#2 #1}}%
  \@processme
}
\def\pdf@addtoksx#1{%
  \edef\@processme{\pdf@toks{\the\pdf@toks\space #1}}%
  \@processme
}
\def\PDFdefaults#1{%
  \pdf@defaulttoks={#1}%
}
\define@key{PDF}{pdfmark}{\def\pdf@type{#1}}
\define@key{PDF}{linktype}{\def\pdf@linktype{#1}}
\def\pdf@linktype{link}
\define@key{PDF}{objdef}{\edef\pdf@objdef{#1}}
\let\pdf@objdef\ltx@empty
\define@key{PDF}{Raw}{\pdf@addtoksx{#1}}
\define@key{PDF}{Action}{\pdf@addtoks{#1}{Action}}
\define@key{PDF}{Border}{%
  \edef\Hy@temp{#1}%
  \ifx\Hy@temp\@empty
  \else
    \pdf@addtoks{[#1]\Hy@BorderArrayPatch}{Border}% hash-ok
  \fi
}
\let\Hy@BorderArrayPatch\@empty
\define@key{PDF}{BorderStyle}{%
  \edef\Hy@temp{#1}%
  \ifx\Hy@temp\@empty
  \else
    \pdf@addtoks{<<#1>>}{BS}%
  \fi
}
\define@key{PDF}{Color}{%
  \ifx\relax#1\relax
  \else
    \pdf@addtoks{[#1]}{Color}% hash-ok
  \fi
}
\define@key{PDF}{Contents}{\pdf@addtoks{(#1)}{Contents}}
\define@key{PDF}{Count}{\pdf@addtoks{#1}{Count}}
\define@key{PDF}{CropBox}{\pdf@addtoks{[#1]}{CropBox}}% hash-ok
\define@key{PDF}{DOSFile}{\pdf@addtoks{(#1)}{DOSFile}}
\define@key{PDF}{DataSource}{\pdf@addtoks{(#1)}{DataSource}}
\define@key{PDF}{Dest}{%
  \Hy@pstringdef\Hy@pstringDest{\HyperDestNameFilter{#1}}%
  \ifx\Hy@pstringDest\@empty
    \Hy@pdfmarkerrortrue
    \Hy@Warning{Destination with empty name ignored}%
  \else
    \pdf@addtoks{(\Hy@pstringDest) cvn}{Dest}%
  \fi
}
\define@key{PDF}{DestAnchor}{%
  \Hy@pstringdef\Hy@pstringDest{\HyperDestNameFilter{#1}}%
  \ifx\Hy@pstringDest\@empty
    \Hy@pdfmarkerrortrue
    \Hy@Warning{Destination with empty name ignored}%
  \else
    \pdf@addtoks{(\Hy@pstringDest) cvn}{Dest}%
  \fi
}
\define@key{PDF}{Dir}{\pdf@addtoks{(#1)}{Dir}}
\define@key{PDF}{File}{\pdf@addtoks{(#1)}{File}}
\define@key{PDF}{Flags}{\pdf@addtoks{#1}{Flags}}
\define@key{PDF}{PDFAFlags}{%
  \ifHy@pdfa
    \pdf@addtoks{#1}{F}%
  \fi
}
\define@key{PDF}{AcroHighlight}{%
  \begingroup
    \edef\x{#1}%
  \expandafter\endgroup\ifx\x\@empty
  \else
    \pdf@addtoks{#1}{H}%
  \fi
}
\define@key{PDF}{ID}{\pdf@addtoks{[#1]}{ID}}% hash-ok
\define@key{PDF}{MacFile}{\pdf@addtoks{(#1)}{MacFile}}
\define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}}
\define@key{PDF}{Op}{\pdf@addtoks{(#1)}{Op}}
\define@key{PDF}{Open}{\pdf@addtoks{#1}{Open}}
\define@key{PDF}{Page}{\pdf@addtoks{#1}{Page}}
\define@key{PDF}{PageMode}{\pdf@addtoks{#1}{PageMode}}
\define@key{PDF}{Params}{\pdf@addtoks{(#1)}{Params}}
\define@key{PDF}{Rect}{\pdf@addtoks{[#1]}{Rect}}% hash-ok
\define@key{PDF}{SrcPg}{\pdf@addtoks{#1}{SrcPg}}
\define@key{PDF}{Subtype}{\pdf@addtoks{#1}{Subtype}}
\define@key{PDF}{Title}{\pdf@addtoks{(#1)}{Title}}
\define@key{PDF}{Unix}{\pdf@addtoks{(#1)}{Unix}}
\define@key{PDF}{UnixFile}{\pdf@addtoks{(#1)}{UnixFile}}
\define@key{PDF}{View}{\pdf@addtoks{[#1]}{View}}% hash-ok
\define@key{PDF}{WinFile}{\pdf@addtoks{(#1)}{WinFile}}
\define@key{PDF}{Author}{\pdf@addtoks{(#1)}{Author}}
\define@key{PDF}{Creator}{\pdf@addtoks{(#1)}{Creator}}
\define@key{PDF}{CreationDate}{\pdf@addtoks{(#1)}{CreationDate}}
\define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}}
\define@key{PDF}{Producer}{\pdf@addtoks{(#1)}{Producer}}
\define@key{PDF}{Subject}{\pdf@addtoks{(#1)}{Subject}}
\define@key{PDF}{Keywords}{\pdf@addtoks{(#1)}{Keywords}}
\define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}}
\define@key{PDF}{Base}{\pdf@addtoks{(#1)}{Base}}
\define@key{PDF}{URI}{\pdf@addtoks{#1}{URI}}
\define@key{PDF}{Trapped}{%
  \edef\Hy@temp{#1}%
  \ifx\Hy@temp\@empty
  \else
    \pdf@addtoks{/#1}{Trapped}%
  \fi
}

\def\Acrobatmenu#1#2{%
  \EdefEscapeName\Hy@temp@menu{#1}%
  \Hy@Acrobatmenu{#1}{#2}{%
    \pdfmark[{#2}]{%
      linktype=menu,%
      pdfmark=/ANN,%
      AcroHighlight=\@pdfhighlight,%
      Border=\@pdfborder,%
      BorderStyle=\@pdfborderstyle,%
      Color=\@menubordercolor,%
      Action={<</Subtype/Named/N/\Hy@temp@menu>>},%
      Subtype=/Link,%
      PDFAFlags=4%
    }%
  }%
}
\def\PDFNextPage{\@ifnextchar[{\PDFNextPage@}{\PDFNextPage@[]}}
\def\PDFNextPage@[#1]#2{%
  \pdfmark[{#2}]{%
    #1,%
    Border=\@pdfborder,%
    BorderStyle=\@pdfborderstyle,%
    Color=.2 .1 .5,%
    pdfmark=/ANN,%
    Subtype=/Link,%
    PDFAFlags=4,%
    Page=/Next%
  }%
}
\def\PDFPreviousPage{%
  \@ifnextchar[{\PDFPreviousPage@}{\PDFPreviousPage@[]}%
}
\def\PDFPreviousPage@[#1]#2{%
  \pdfmark[{#2}]{%
    #1,%
    Border=\@pdfborder,%
    BorderStyle=\@pdfborderstyle,%
    Color=.4 .4 .1,%
    pdfmark=/ANN,%
    Subtype=/Link,%
    PDFAFlags=4,%
    Page=/Prev%
  }%
}
\def\PDFOpen#1{%
  \pdfmark{#1,pdfmark=/DOCVIEW}%
}
\def\hyper@linkurl#1#2{%
  \begingroup
    \Hy@pstringdef\Hy@pstringURI{#2}%
    \hyper@chars
    \leavevmode
    \pdfmark[{#1}]{%
      pdfmark=/ANN,%
      linktype=url,%
      AcroHighlight=\@pdfhighlight,%
      Border=\@pdfborder,%
      BorderStyle=\@pdfborderstyle,%
      Color=\@urlbordercolor,%
      Action={<<%
        /Subtype/URI%
        /URI(\Hy@pstringURI)%
        \ifHy@href@ismap
          /IsMap true%
        \fi
      >>},%
      Subtype=/Link,%
      PDFAFlags=4%
    }%
  \endgroup
}
\def\hyper@linkfile#1#2#3{%
  \begingroup
    \def\Hy@pstringF{#2}%
    \Hy@CleanupFile\Hy@pstringF
    \Hy@pstringdef\Hy@pstringF\Hy@pstringF
    \Hy@pstringdef\Hy@pstringD{#3}%
    \Hy@MakeRemoteAction
    \leavevmode
    \pdfmark[{#1}]{%
      pdfmark=/ANN,%
      Subtype=/Link,%
      PDFAFlags=4,%
      AcroHighlight=\@pdfhighlight,%
      Border=\@pdfborder,%
      BorderStyle=\@pdfborderstyle,%
      linktype=file,%
      Color=\@filebordercolor,%
      Action={%
        <<%
          /S/GoToR%
          \Hy@SetNewWindow
          /F(\Hy@pstringF)%
          /D%
          \ifx\\#3\\%
            [\Hy@href@page\@pdfremotestartview]%
          \else
            (\Hy@pstringD)cvn%
          \fi
          \Hy@href@nextactionraw
        >>%
      }%
    }%
  \endgroup
}
\def\@hyper@launch run:#1\\#2#3{%
  \begingroup
    \Hy@pstringdef\Hy@pstringF{#1}%
    \Hy@pstringdef\Hy@pstringP{#3}%
    \leavevmode
    \pdfmark[{#2}]{%
      pdfmark=/ANN,%
      Subtype=/Link,%
      PDFAFlags=4,%
      AcroHighlight=\@pdfhighlight,%
      Border=\@pdfborder,%
      BorderStyle=\@pdfborderstyle,%
      linktype=run,%
      Color=\@runbordercolor,%
      Action={%
        <<%
          /S/Launch%
          \Hy@SetNewWindow
          /F(\Hy@pstringF)%
          \ifx\\#3\\%
          \else
            /Win<</P(\Hy@pstringP)/F(\Hy@pstringF)>>%
          \fi
          \Hy@href@nextactionraw
        >>%
      }%
    }%
  \endgroup
}
\long\def\@Form[#1]{%
\g@addto@macro\Hy@FirstPageHook{%
  \headerps@out{%
[%
  /_objdef{pdfDocEncoding}%
  /type/dict%
/OBJ pdfmark%
[%
  {pdfDocEncoding}%
  <<%
    /Type/Encoding%
    /Differences[%
      24/breve/caron/circumflex/dotaccent/hungarumlaut/ogonek/ring%
        /tilde %
      39/quotesingle %
      96/grave %
      128/bullet/dagger/daggerdbl/ellipsis/emdash/endash/florin%
         /fraction/guilsinglleft/guilsinglright/minus/perthousand%
         /quotedblbase/quotedblleft/quotedblright/quoteleft%
         /quoteright/quotesinglbase/trademark/fi/fl/Lslash/OE/Scaron%
         /Ydieresis/Zcaron/dotlessi/lslash/oe/scaron/zcaron %
      160/Euro %
      164/currency %
      166/brokenbar %
      168/dieresis/copyright/ordfeminine %
      172/logicalnot/.notdef/registered/macron/degree/plusminus%
         /twosuperior/threesuperior/acute/mu %
      183/periodcentered/cedilla/onesuperior/ordmasculine %
      188/onequarter/onehalf/threequarters %
      192/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE%
         /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave%
         /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute%
         /Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave%
         /Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls%
         /agrave/aacute/acircumflex/atilde/adieresis/aring/ae%
         /ccedilla/egrave/eacute/ecircumflex/edieresis/igrave%
         /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute%
         /ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute%
         /ucircumflex/udieresis/yacute/thorn/ydieresis%
    ]%
  >>%
/PUT pdfmark%
[%
   /_objdef{ZaDb}%
   /type/dict%
/OBJ pdfmark%
[%
  {ZaDb}%
  <<%
    /Type/Font%
    /Subtype/Type1%
    /Name/ZaDb%
    /BaseFont/ZapfDingbats%
  >>%
/PUT pdfmark%
[%
  /_objdef{Helv}%
  /type/dict%
/OBJ pdfmark%
[%
  {Helv}%
  <<%
    /Type/Font%
    /Subtype/Type1%
    /Name/Helv%
    /BaseFont/Helvetica%
    /Encoding{pdfDocEncoding}%
  >>%
/PUT pdfmark%
[%
  /_objdef{aform}%
  /type/dict%
/OBJ pdfmark%
[%
  /_objdef{afields}%
  /type/array%
/OBJ pdfmark%
[%
  /_objdef{corder}%
  /type/array%
/OBJ pdfmark%
{%
  [%
    /BBox[0 0 100 100]%
    /_objdef{Check}%
  /BP pdfmark %
  1 0 0 setrgbcolor%
  /ZapfDingbats 80 selectfont %
  20 20 moveto%
  (4)show%
  [/EP pdfmark%
  [%
    /BBox[0 0 100 100]%
    /_objdef{Cross}%
  /BP pdfmark %
  1 0 0 setrgbcolor%
  /ZapfDingbats 80 selectfont %
  20 20 moveto%
  (8)show%
  [/EP pdfmark%
  [%
    /BBox[0 0 250 100]%
    /_objdef{Submit}%
  /BP pdfmark %
  0.6 setgray %
  0 0 250 100 rectfill %
  1 setgray %
  2 2 moveto %
  2 98 lineto %
  248 98 lineto %
  246 96 lineto %
  4 96 lineto %
  4 4 lineto %
  fill %
  0.34 setgray %
  248 98 moveto %
  248 2 lineto %
  2 2 lineto %
  4 4 lineto %
  246 4 lineto %
  246 96 lineto %
  fill%
  /Helvetica 76 selectfont %
  0 setgray %
  8 22.5 moveto%
  (Submit)show%
  [/EP pdfmark%
  [%
    /BBox[0 0 250 100]%
    /_objdef{SubmitP}%
  /BP pdfmark %
  0.6 setgray %
  0 0 250 100 rectfill %
  0.34 setgray %
  2 2 moveto %
  2 98 lineto %
  248 98 lineto %
  246 96 lineto %
  4 96 lineto %
  4 4 lineto %
  fill %
  1 setgray %
  248 98 moveto %
  248 2 lineto %
  2 2 lineto %
  4 4 lineto %
  246 4 lineto %
  246 96 lineto %
  fill%
  /Helvetica 76 selectfont %
  0 setgray %
   10 20.5 moveto%
  (Submit)show%
  [/EP pdfmark%
} ?pdfmark%
[%
  {aform}%
  <<%
    /Fields{afields}%
    /DR<<%
      /Font<<%
        /ZaDb{ZaDb}%
        /Helv{Helv}%
      >>%
    >>%
    /DA(/Helv 10 Tf 0 g)%
    /CO{corder}%
    \ifHy@pdfa
    \else
      \ifHyField@NeedAppearances
        /NeedAppearances true%
      \fi
    \fi
  >>%
/PUT pdfmark%
[%
  {Catalog}%
  <<%
    /AcroForm{aform}%
  >>%
/PUT pdfmark%
}}%
  \kvsetkeys{Form}{#1}%
}
\let\@endForm\ltx@empty
\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum
  \Hy@Message{Sorry, pdfmark drivers do not support FORM gauges}%
}
\newcount\HyField@AnnotCount
\HyField@AnnotCount=\z@
\def\HyField@AdvanceAnnotCount{%
  \global\advance\HyField@AnnotCount\@ne
}
\def\HyField@TheAnnotCount{%
  \the\HyField@AnnotCount
}
\edef\Fld@pageobjref{/P\string{ThisPage\string}}
\def\HyField@AddToFields#1{%
  \pdfmark{%
    pdfmark=/APPEND,%
    Raw={%
      \string{afields\string}%
      \string{#1\HyField@TheAnnotCount\string}%
    }%
  }%
  \ifx\Fld@calculate@code\ltx@empty
  \else
    \pdfmark{%
      pdfmark=/APPEND,%
      Raw={%
        \string{corder\string}%
        \string{#1\HyField@TheAnnotCount\string}%
      }%
    }%
  \fi
}
\def\@TextField[#1]#2{% parameters, label
  \def\Fld@name{#2}%
  \let\Fld@default\ltx@empty
  \let\Fld@value\@empty
  \def\Fld@width{\DefaultWidthofText}%
  \def\Fld@height{%
    \ifFld@multiline
      \DefaultHeightofTextMultiline
    \else
      \DefaultHeightofText
    \fi
  }%
  \begingroup
    \expandafter\HyField@SetKeys\expandafter{%
      \DefaultOptionsofText,#1%
    }%
    \HyField@FlagsText
    \ifFld@hidden\def\Fld@width{1sp}\fi
    \ifx\Fld@value\@empty\def\Fld@value{\Fld@default}\fi
    \HyField@AdvanceAnnotCount
    \LayoutTextField{#2}{%
      \leavevmode
      \Hy@escapeform\PDFForm@Text
      \pdfmark[\MakeTextField{\Fld@width}{\Fld@height}]{%
        pdfmark=/ANN,%
        objdef=text\HyField@TheAnnotCount,%
        Raw={\PDFForm@Text}%
      }%
    }%
    \HyField@AddToFields{text}%
  \endgroup
}
\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices
  \def\Fld@name{#2}%
  \let\Fld@default\relax
  \let\Fld@value\relax
  \def\Fld@width{\DefaultWidthofChoiceMenu}%
  \def\Fld@height{\DefaultHeightofChoiceMenu}%
  \begingroup
    \Fld@menulength=0 %
    \@tempdima\z@
    \@for\@curropt:=#3\do{%
      \expandafter\Fld@checkequals\@curropt==\\%
      \Hy@StepCount\Fld@menulength
      \settowidth{\@tempdimb}{\@currDisplay}%
      \ifdim\@tempdimb>\@tempdima\@tempdima\@tempdimb\fi
    }%
    \advance\@tempdima by 15\p@
    \begingroup
      \HyField@SetKeys{#1}%
    \edef\x{\endgroup
      \noexpand\expandafter
      \noexpand\HyField@SetKeys
      \noexpand\expandafter{%
        \expandafter\noexpand\csname DefaultOptionsof%
          \ifFld@radio
            Radio%
          \else
            \ifFld@combo
              \ifFld@popdown
                PopdownBox%
              \else
                ComboBox%
              \fi
            \else
              ListBox%
            \fi
          \fi
        \endcsname
      }%
    }\x
    \HyField@SetKeys{#1}%
    \ifFld@hidden\def\Fld@width{1sp}\fi
    \ifx\Fld@value\relax
      \let\Fld@value\Fld@default
    \fi
    \LayoutChoiceField{#2}{%
      \ifFld@radio
        \HyField@FlagsRadioButton
        \@@Radio{#3}%
      \else
        \begingroup
          \HyField@FlagsChoice
          \ifdim\Fld@width<\@tempdima
            \ifdim\@tempdima<1cm\@tempdima1cm\fi
            \edef\Fld@width{\the\@tempdima}%
          \fi
          \ifFld@combo
          \else
            \@tempdima=\the\Fld@menulength\Fld@charsize
            \advance\@tempdima by \Fld@borderwidth bp %
            \advance\@tempdima by \Fld@borderwidth bp %
            \edef\Fld@height{\the\@tempdima}%
          \fi
          \@@Listbox{#3}%
        \endgroup
      \fi
    }%
  \endgroup
}
\def\@@Radio#1{%
  \Fld@listcount=0 %
  \EdefEscapeName\Fld@default{\Fld@default}%
  \@for\@curropt:=#1\do{%
    \expandafter\Fld@checkequals\@curropt==\\%
    \EdefEscapeName\@currValue{\@currValue}%
    \Hy@StepCount\Fld@listcount
    \@currDisplay\space
    \Hy@escapeform\PDFForm@Radio
    \ifnum\Fld@listcount=1 %
      \HyField@AdvanceAnnotCount
    \fi
    \pdfmark[\MakeRadioField{\Fld@width}{\Fld@height}]{%
      pdfmark=/ANN,%
      objdef=\ifnum\Fld@listcount=1 radio\HyField@TheAnnotCount\fi,%
      Raw={%
        \PDFForm@Radio /AP <</N <</\@currValue\space {Check}>> >>%
      }%
    } % deliberate space between radio buttons
    \ifnum\Fld@listcount=1 %
      \HyField@AddToFields{radio}%
    \fi
  }%
}
\newcount\Fld@listcount
\def\@@Listbox#1{%
  \HyField@PDFChoices{#1}%
  \Hy@escapeform\PDFForm@List
  \HyField@AdvanceAnnotCount
  \pdfmark[\MakeChoiceField{\Fld@width}{\Fld@height}]{%
    pdfmark=/ANN,%
    objdef=list\HyField@TheAnnotCount,%
    Raw={\PDFForm@List}%
  }%
  \HyField@AddToFields{list}%
}
\def\@PushButton[#1]#2{% parameters, label
  \def\Fld@name{#2}%
  \begingroup
    \expandafter\HyField@SetKeys\expandafter{%
      \DefaultOptionsofPushButton,#1%
    }%
    \ifHy@pdfa
      \Hy@Error{%
        PDF/A: Push button with JavaScript is prohibited%
      }\@ehc
      \LayoutPushButtonField{%
        \leavevmode
        \MakeButtonField{#2}%
      }%
    \else
      \HyField@FlagsPushButton
      \ifFld@hidden\def\Fld@width{1sp}\fi
      \HyField@AdvanceAnnotCount
      \LayoutPushButtonField{%
        \leavevmode
        \Hy@escapeform\PDFForm@Push
        \pdfmark[\MakeButtonField{#2}]{%
          pdfmark=/ANN,%
          objdef=push\HyField@TheAnnotCount,%
          Raw={\PDFForm@Push}%
        }%
      }%
      \HyField@AddToFields{push}%
    \fi
  \endgroup
}
\def\@Submit[#1]#2{%
  \def\Fld@width{\DefaultWidthofSubmit}%
  \def\Fld@height{\DefaultHeightofSubmit}%
  \begingroup
    \expandafter\HyField@SetKeys\expandafter{%
      \DefaultOptionsofSubmit,#1%
    }%
    \HyField@FlagsPushButton
    \HyField@FlagsSubmit
    \ifFld@hidden\def\Fld@width{1sp}\fi
    \Hy@escapeform\PDFForm@Submit
    \HyField@AdvanceAnnotCount
    \pdfmark[\MakeButtonField{#2}]{%
      pdfmark=/ANN,%
      objdef=submit\HyField@TheAnnotCount,%
      Raw={\PDFForm@Submit /AP<</N{Submit}/D{SubmitP}>>}%
    }%
    \HyField@AddToFields{submit}%
  \endgroup
}
\def\@Reset[#1]#2{%
  \def\Fld@width{\DefaultWidthofReset}%
  \def\Fld@height{\DefaultHeightofReset}%
  \begingroup
    \expandafter\HyField@SetKeys\expandafter{%
      \DefaultOptionsofReset,#1%
    }%
    \leavevmode
    \ifHy@pdfa
      \Hy@Error{%
        PDF/A: Reset action is prohibited%
      }\@ehc
      \MakeButtonField{#2}%
    \else
      \HyField@FlagsPushButton
      \ifFld@hidden\def\Fld@width{1sp}\fi
      \Hy@escapeform\PDFForm@Reset
      \HyField@AdvanceAnnotCount
      \pdfmark[\MakeButtonField{#2}]{%
        pdfmark=/ANN,%
        objdef=reset\HyField@TheAnnotCount,%
        Raw={\PDFForm@Reset}%
      }%
      \HyField@AddToFields{reset}%
    \fi
  \endgroup
}%
\def\@CheckBox[#1]#2{% parameters, label
  \def\Fld@name{#2}%
  \def\Fld@default{0}%
  \begingroup
    \def\Fld@width{\DefaultWidthofCheckBox}%
    \def\Fld@height{\DefaultHeightofCheckBox}%
    \expandafter\HyField@SetKeys\expandafter{%
      \DefaultOptionsofCheckBox,#1%
    }%
    \HyField@FlagsCheckBox
    \ifFld@hidden\def\Fld@width{1sp}\fi
    \HyField@AdvanceAnnotCount
    \LayoutCheckField{#2}{%
      \leavevmode
      \Hy@escapeform\PDFForm@Check
      \pdfmark[\MakeCheckField{\Fld@width}{\Fld@height}]{%
        pdfmark=/ANN,%
        objdef=check\HyField@TheAnnotCount,%
        Raw={\PDFForm@Check}%
      }%
    }%
    \HyField@AddToFields{check}%
  \endgroup
}
\providecommand*{\Fld@pageobjref}{}
\@ifundefined{pdf@escapestring}
 {%
  \let\Hy@escapestring\@firstofone
  \def\Hy@escapeform#1{%
    \ifHy@pdfescapeform
      \def\Hy@escapestring##1{%
        \noexpand\Hy@escapestring{\noexpand##1}%
      }%
      \edef\Hy@temp{#1}%
      \expandafter\Hy@@escapeform\Hy@temp\Hy@escapestring{}\@nil
      \def\Hy@escapestring##1{%
        \@ifundefined{Hy@esc@\string##1}{%
          ##1%
          \ThisShouldNotHappen
        }{%
          \csname Hy@esc@\string##1\endcsname
        }%
      }%
    \else
      \let\Hy@escapestring\@firstofone
    \fi
  }%
  \def\Hy@@escapeform#1\Hy@escapestring#2#3\@nil{%
    \ifx\\#3\\%
    \else
      \expandafter
      \Hy@pstringdef\csname Hy@esc@\string#2\endcsname{#2}%
      \ltx@ReturnAfterFi{%
        \Hy@@escapeform#3\@nil
      }%
    \fi
  }%
 }{%
  \def\Hy@escapeform#1{%
    \ifHy@pdfescapeform
      \let\Hy@escapestring\pdfescapestring
    \else
      \let\Hy@escapestring\@firstofone
    \fi
  }%
  \Hy@escapeform{}%
 }
\def\PDFForm@Name{%
  \PDFForm@@Name\Fld@name
  \ifx\Fld@altname\relax
  \else
    \PDFForm@@Name\Fld@altname
  \fi
  \ifx\Fld@mappingname\relax
  \else
    \PDFForm@@Name\Fld@mappingname
  \fi
}
\def\PDFForm@@Name#1{%
  \begingroup
    \ifnum\Hy@pdf@majorminor@version<105 % implementation note 117, PDF spec 1.7
      \ifHy@unicode
        \Hy@unicodefalse
      \fi
    \fi
    \pdfstringdef\Hy@gtemp#1%
  \endgroup
  \let#1\Hy@gtemp
}
\def\Fld@@additionalactions{%
  \ifx\Fld@keystroke@code\@empty
  \else
    /K<</S/JavaScript/JS(\Hy@escapestring{\Fld@keystroke@code})>>%
  \fi
  \ifx\Fld@format@code\@empty
  \else
    /F<</S/JavaScript/JS(\Hy@escapestring{\Fld@format@code})>>%
  \fi
  \ifx\Fld@validate@code\@empty
  \else
    /V<</S/JavaScript/JS(\Hy@escapestring{\Fld@validate@code})>>%
  \fi
  \ifx\Fld@calculate@code\@empty
  \else
    /C<</S/JavaScript/JS(\Hy@escapestring{\Fld@calculate@code})>>%
  \fi
  \ifx\Fld@onfocus@code\@empty
  \else
    /Fo<</S/JavaScript/JS(\Hy@escapestring{\Fld@onfocus@code})>>%
  \fi
  \ifx\Fld@onblur@code\@empty
  \else
    /Bl<</S/JavaScript/JS(\Hy@escapestring{\Fld@onblur@code})>>%
  \fi
  \ifx\Fld@onmousedown@code\@empty
  \else
    /D<</S/JavaScript/JS(\Hy@escapestring{\Fld@onmousedown@code})>>%
  \fi
  \ifx\Fld@onmouseup@code\@empty
  \else
    /U<</S/JavaScript/JS(\Hy@escapestring{\Fld@onmouseup@code})>>%
  \fi
  \ifx\Fld@onenter@code\@empty
  \else
    /E<</S/JavaScript/JS(\Hy@escapestring{\Fld@onenter@code})>>%
  \fi
  \ifx\Fld@onexit@code\@empty
  \else
    /X<</S/JavaScript/JS(\Hy@escapestring{\Fld@onexit@code})>>%
  \fi
}
\def\Fld@additionalactions{%
  \if-\Fld@@additionalactions-%
  \else
    \ifHy@pdfa
    \else
      /AA<<\Fld@@additionalactions>>%
    \fi
  \fi
}
\def\Fld@annotnames{%
  /T(\Fld@name)%
  \ifx\Fld@altname\relax
  \else
    /TU(\Fld@altname)%
  \fi
  \ifx\Fld@mappingname\relax
  \else
    /TM(\Fld@mappingname)%
  \fi
}
\def\PDFForm@Check{%
  /Subtype/Widget%
  \Fld@annotflags
  \Fld@pageobjref
  \Fld@annotnames
  /FT/Btn%
  \Fld@flags
  /Q \Fld@align
  /BS<</W \Fld@borderwidth /S/\Fld@borderstyle>>%
  /AP<< /N <</Yes<<>>>> >>  %new string /Yes is from below
  /MK<<%
    \ifnum\Fld@rotation=\z@
    \else
      /R \Fld@rotation
    \fi
    \ifx\Fld@bordercolor\relax
    \else
      /BC[\Fld@bordercolor]%
    \fi
    \ifx\Fld@bcolor\relax
    \else
      /BG[\Fld@bcolor]%
    \fi
    /CA(\Hy@escapestring{\Fld@cbsymbol})%
  >>%
  /DA(/ZaDb \strip@pt\Fld@charsize\space Tf%
      \ifx\Fld@color\@empty\else\space\Fld@color\fi)%
  /H/P%
  \ifFld@checked /V/Yes/AS/Yes\else /V/Off/AS/Off\fi
  \Fld@additionalactions
}
\ifHy@pdfa
\else
  \def\PDFForm@Push{%
    /Subtype/Widget%
    \Fld@annotflags
    \Fld@pageobjref
    \Fld@annotnames
    /FT/Btn%
    \Fld@flags
    /H/P%
    /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
    \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
            \ifx\Fld@bordercolor\relax\else 1\fi
            \space
    \else
      /MK<<%
        \ifnum\Fld@rotation=\z@
        \else
          /R \Fld@rotation
        \fi
        \ifx\Fld@bordercolor\relax
        \else
          /BC[\Fld@bordercolor]%
        \fi
      >>%
    \fi
    /A<</S/JavaScript/JS(\Hy@escapestring{\Fld@onclick@code})>>%
    \Fld@additionalactions
  }%
\fi
\def\PDFForm@List{%
  /Subtype/Widget%
  \Fld@annotflags
  \Fld@pageobjref
  \Fld@annotnames
  /FT/Ch%
  \Fld@flags
  /Q \Fld@align
  /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
  \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
          \ifx\Fld@bordercolor\relax\else 1\fi
          \ifx\fld@bcolor\relax     \else 1\fi
          \space
  \else
    /MK<<%
      \ifnum\Fld@rotation=\z@
      \else
        /R \Fld@rotation
      \fi
      \ifx\Fld@bordercolor\relax
      \else
        /BC[\Fld@bordercolor]%
      \fi
      \ifx\Fld@bcolor\relax
      \else
        /BG[\Fld@bcolor]%
      \fi
    >>%
  \fi
  /DA(/Helv \strip@pt\Fld@charsize\space Tf%
      \ifx\Fld@color\@empty\else\space\Fld@color\fi)%
  \Fld@choices
  \Fld@additionalactions
}
\def\PDFForm@Radio{%
  /Subtype/Widget%
  \Fld@annotflags
  \Fld@pageobjref
  \Fld@annotnames
  /FT/Btn%
  \Fld@flags
  /H/P%
  /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
  /MK<<%
    \ifnum\Fld@rotation=\z@
    \else
      /R \Fld@rotation
    \fi
    \ifx\Fld@bordercolor\relax
    \else
      /BC[\Fld@bordercolor]%
    \fi
    \ifx\Fld@bcolor\relax
    \else
      /BG[\Fld@bcolor]%
    \fi
    /CA(\Hy@escapestring{\Fld@radiosymbol})%
  >>%
  /DA(/ZaDb \strip@pt\Fld@charsize\space Tf%
      \ifx\Fld@color\@empty\else\space\Fld@color\fi)%
  \ifx\Fld@default\@empty
    /V/Off%
    /DV/Off%
  \else
   /V/\Fld@default
   /DV/\Fld@default
  \fi
  \Fld@additionalactions
}
\def\PDFForm@Text{%
  /Subtype/Widget%
  \Fld@annotflags
  \Fld@pageobjref
  \Fld@annotnames
  /FT/Tx%
  \Fld@flags
  /Q \Fld@align
  /BS<</W \Fld@borderwidth\space /S /\Fld@borderstyle>>%
  \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
          \ifx\Fld@bordercolor\relax\else 1\fi
          \ifx\Fld@bcolor\relax     \else 1\fi
          \space
  \else
    /MK<<%
      \ifnum\Fld@rotation=\z@
      \else
        /R \Fld@rotation
      \fi
      \ifx\Fld@bordercolor\relax
      \else
        /BC[\Fld@bordercolor]%
      \fi
      \ifx\Fld@bcolor\relax
      \else
        /BG[\Fld@bcolor]%
      \fi
    >>%
  \fi
  /DA(/Helv \strip@pt\Fld@charsize\space Tf%
      \ifx\Fld@color\@empty\else\space\Fld@color\fi)%
  /DV(\Hy@escapestring{\Fld@default})%
  /V(\Hy@escapestring{\Fld@value})%
  \Fld@additionalactions
  \ifnum\Fld@maxlen>\z@/MaxLen \Fld@maxlen \fi
}
\def\PDFForm@Submit{%
  /Subtype/Widget%
  \Fld@annotflags
  \Fld@pageobjref
  \Fld@annotnames
  /FT/Btn%
  \Fld@flags
  /H/P%
  /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
  \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
          \ifx\Fld@bordercolor\relax\else 1\fi
          \space
  \else
    /MK<<%
      \ifnum\Fld@rotation=\z@
      \else
        /R \Fld@rotation
      \fi
      \ifx\Fld@bordercolor\relax
      \else
        /BC[\Fld@bordercolor]%
      \fi
    >>%
  \fi
  /A<<%
    /S/SubmitForm%
    /F<<%
      /FS/URL%
      /F(\Hy@escapestring{\Form@action})%
    >>%
    \Fld@submitflags
  >>%
  \Fld@additionalactions
}
\ifHy@pdfa
\else
  \def\PDFForm@Reset{%
    /Subtype/Widget%
    \Fld@annotflags
    \Fld@pageobjref
    \Fld@annotnames
    /FT/Btn%
    \Fld@flags
    /H/P%
    /DA(/Helv \strip@pt\Fld@charsize\space Tf 0 0 1 rg)%
    \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
            \ifx\Fld@bordercolor\relax\else 1\fi
            \space
    \else
      /MK<<%
        \ifnum\Fld@rotation=\z@
        \else
          /R \Fld@rotation
        \fi
        \ifx\Fld@bordercolor\relax
        \else
          /BC[\Fld@bordercolor]%
        \fi
      >>%
    \fi
    /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
    /A<</S/ResetForm>>%
    \Fld@additionalactions
  }%
\fi
\def\Hy@writebookmark#1#2#3#4#5{%
    % section number, text, label, level, file
  \ifx\WriteBookmarks\relax%
  \else
    \ifnum#4>\Hy@bookmarksdepth\relax
    \else
      \@@writetorep{#1}{#2}{#3}{#4}{#5}%
    \fi
  \fi
}
\def\Hy@currentbookmarklevel{0}
\def\Hy@numberline#1{#1 }
\def\@@writetorep#1#2#3#4#5{%
  \begingroup
    \edef\Hy@tempa{#5}%
    \ifx\Hy@tempa\Hy@bookmarkstype
      \edef\Hy@level{#4}%
      \ifx\Hy@levelcheck Y%
        \@tempcnta\Hy@level\relax
        \advance\@tempcnta by -1 %
        \ifnum\Hy@currentbookmarklevel<\@tempcnta
          \advance\@tempcnta by -\Hy@currentbookmarklevel\relax
          \advance\@tempcnta by 1 %
          \Hy@Warning{%
            Difference (\the\@tempcnta) between bookmark levels is %
            greater \MessageBreak than one, level fixed%
          }%
          \@tempcnta\Hy@currentbookmarklevel
          \advance\@tempcnta by 1 %
          \edef\Hy@level{\the\@tempcnta}%
        \fi
      \else
        \global\let\Hy@levelcheck Y%
      \fi
      \global\let\Hy@currentbookmarklevel\Hy@level
      \@tempcnta\Hy@level\relax
      \expandafter\xdef\csname Parent\Hy@level\endcsname{#3}%
      \advance\@tempcnta by -1 %
      \edef\Hy@tempa{#3}%
      \edef\Hy@tempb{\csname Parent\the\@tempcnta\endcsname}%
      \ifx\Hy@tempa\Hy@tempb
        \Hy@Warning{%
          The anchor of a bookmark and its parent's must not%
          \MessageBreak be the same. Added a new anchor%
        }%
        \phantomsection
      \fi
      \ifHy@bookmarksnumbered
        \let\numberline\Hy@numberline
        \let\booknumberline\Hy@numberline
        \let\partnumberline\Hy@numberline
        \let\chapternumberline\Hy@numberline
      \else
        \let\numberline\@gobble
        \let\booknumberline\@gobble
        \let\partnumberline\@gobble
        \let\chapternumberline\@gobble
      \fi
      \pdfstringdef\Hy@tempa{#2}%
      \HyPsd@SanitizeForOutFile\Hy@tempa
      \if@filesw
        \stepcounter{bookmark@seq@number}%
        \@ifundefined{@outlinefile}{%
        }{%
          \protected@write\@outlinefile{}{%
            \protect\BOOKMARK
              [\Hy@level][\@bookmarkopenstatus{\Hy@level}]{#3}%
              {\Hy@tempa}{\Hy@tempb}%
              \@percentchar\space\thebookmark@seq@number
          }%
        }%
      \fi
    \fi
  \endgroup
}
\newcounter{bookmark@seq@number}
\begingroup
  \lccode`(=`{%
  \lccode`)=`}%
  \lccode`1=\z@
  \lccode`2=\z@
  \lccode`3=\z@
  \lccode`5=\z@
  \lccode`7=\z@
  \lccode`\#=\z@
  \lccode`\`=\z@
  \lccode`\{=\z@
  \lccode`\}=\z@
\lowercase{%
  \endgroup
  \def\HyPsd@SanitizeForOutFile#1{%
    \@onelevel@sanitize\Hy@tempa
    \escapechar`\\%
    \edef\Hy@tempa{%
      \expandafter\HyPsd@SanitizeOut@BraceLeft\Hy@tempa(\@nil
    }%
    \edef\Hy@tempa{%
      \expandafter\HyPsd@SanitizeOut@BraceRight\Hy@tempa)\@nil
    }%
  }%
  \def\HyPsd@SanitizeOut@BraceLeft#1(#2\@nil{%
    #1%
    \ifx\\#2\\%
      \expandafter\ltx@gobble
    \else
      \expandafter\ltx@firstofone
    \fi
    {%
      \string\173%
      \HyPsd@SanitizeOut@BraceLeft#2\@nil
    }%
  }%
  \def\HyPsd@SanitizeOut@BraceRight#1)#2\@nil{%
    #1%
    \ifx\\#2\\%
      \expandafter\ltx@gobble
    \else
      \expandafter\ltx@firstofone
    \fi
    {%
      \string\175%
      \HyPsd@SanitizeOut@BraceRight#2\@nil
    }%
  }%
}
\newcommand{\currentpdfbookmark}{%
  \pdfbookmark[\Hy@currentbookmarklevel]%
}
\newcommand{\subpdfbookmark}{%
  \@tempcnta\Hy@currentbookmarklevel
  \Hy@StepCount\@tempcnta
  \expandafter\pdfbookmark\expandafter[\the\@tempcnta]%
}
\newcommand{\belowpdfbookmark}[2]{%
  \@tempcnta\Hy@currentbookmarklevel
  \Hy@StepCount\@tempcnta
  \expandafter\pdfbookmark\expandafter[\the\@tempcnta]{#1}{#2}%
  \advance\@tempcnta by -1 %
  \xdef\Hy@currentbookmarklevel{\the\@tempcnta}%
}
\renewcommand\pdfbookmark[3][0]{%
  \Hy@writebookmark{}{#2}{#3.#1}{#1}{toc}%
  \hyper@anchorstart{#3.#1}\hyper@anchorend
}
\def\BOOKMARK{%
  \@ifnextchar[{\@BOOKMARK}{\@@BOOKMARK[1][-]}%
}
\def\@BOOKMARK[#1]{%
  \@ifnextchar[{\@@BOOKMARK[{#1}]}{\@@BOOKMARK[{#1}][-]}%
}
\RequirePackage{rerunfilecheck}[2009/12/10]
\def\Hy@OutlineRerunCheck{%
  \RerunFileCheck{\jobname.out}{%
    \immediate\closeout\@outlinefile
  }{%
    Rerun to get outlines right\MessageBreak
    or use package `bookmark'%
  }%
}
\def\ReadBookmarks{%
  \pdf@ifdraftmode{}{%
    \begingroup
      \def\do##1{%
        \ifnum\catcode`##1=\active
          \@makeother##1%
        \else
          \ifnum\catcode`##1=6 %
            \@makeother##1%
          \fi
        \fi
      }%
      \dospecials
      \Hy@safe@activestrue
      \escapechar=`\\%
      \def\@@BOOKMARK[##1][##2]##3##4##5{%
        \calc@bm@number{##5}%
      }%
      \InputIfFileExists{\jobname.out}{}{}%
      \ifx\WriteBookmarks\relax
        \global\let\WriteBookmarks\relax
      \fi
      \def\@@BOOKMARK[##1][##2]##3##4##5{%
        \def\Hy@temp{##4}%
        \pdfmark{%
          pdfmark=/OUT,%
          Count={##2\check@bm@number{##3}},%
          Dest={##3},%
          Title=\expandafter\strip@prefix\meaning\Hy@temp
        }%
      }%
      \begingroup
        \def\WriteBookmarks{0}%
        \InputIfFileExists{\jobname.out}{}{}%
      \endgroup
      %{\escapechar\m@ne\InputIfFileExists{\jobname.out}{}{}}%
    \endgroup
  }%
  \ifx\WriteBookmarks\relax
  \else
    \if@filesw
      \newwrite\@outlinefile
      \Hy@OutlineRerunCheck
      \immediate\openout\@outlinefile=\jobname.out\relax
    \fi
  \fi
}
\def\check@bm@number#1{%
  \expandafter\ifx\csname B_#1\endcsname\relax
    0%
  \else
    \csname B_#1\endcsname
  \fi
}
\def\calc@bm@number#1{%
  \@tempcnta=\check@bm@number{#1}\relax
  \advance\@tempcnta by 1 %
  \expandafter\xdef\csname B_#1\endcsname{\the\@tempcnta}%
}
\ifHy@implicit
\else
  \expandafter\endinput
\fi
\newlength\Hy@SectionHShift
\def\Hy@SectionAnchorHref#1{%
  \ifx\protect\@typeset@protect
    \Hy@@SectionAnchor{#1}%
  \fi
}
\DeclareRobustCommand*{\Hy@@SectionAnchor}[1]{%
  \leavevmode
  \hbox to 0pt{%
    \kern-\Hy@SectionHShift
    \Hy@raisedlink{%
      \hyper@anchorstart{#1}\hyper@anchorend
    }%
    \hss
  }%
}
\@ifundefined{hyper@nopatch@sectioning}
{
\let\H@old@ssect\@ssect
\def\@ssect#1#2#3#4#5{%
  \Hy@MakeCurrentHrefAuto{section*}%
  \setlength{\Hy@SectionHShift}{#1}%
  \begingroup
    \toks@{\H@old@ssect{#1}{#2}{#3}{#4}}%
    \toks\tw@\expandafter{%
      \expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}%
      #5%
    }%
  \edef\x{\endgroup
    \the\toks@{\the\toks\tw@}%
  }\x
}
\let\H@old@schapter\@schapter
\def\@schapter#1{%
  \begingroup
    \let\@mkboth\@gobbletwo
    \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}%
    \Hy@raisedlink{%
      \hyper@anchorstart{\@currentHref}\hyper@anchorend
    }%
  \endgroup
  \H@old@schapter{#1}%
}
\ltx@IfUndefined{@chapter}{}{%
  \let\Hy@org@chapter\@chapter
  \def\@chapter{%
    \def\Hy@next{%
      \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}%
      \Hy@raisedlink{%
        \hyper@anchorstart{\@currentHref}\hyper@anchorend
      }%
    }%
    \ifnum\c@secnumdepth>\m@ne
      \ltx@IfUndefined{if@mainmatter}%
      \iftrue{\csname if@mainmatter\endcsname}%
        \let\Hy@next\relax
      \fi
    \fi
    \Hy@next
    \Hy@org@chapter
  }%
}
\let\H@old@part\@part
\@ifundefined{chapter}
  {\let\Hy@secnum@part\z@}
  {\let\Hy@secnum@part\m@ne}
\def\@part{%
  \ifnum\Hy@secnum@part>\c@secnumdepth
    \phantomsection
  \fi
  \H@old@part
}
\let\H@old@spart\@spart
\def\@spart#1{%
  \Hy@MakeCurrentHrefAuto{part*}%
  \Hy@raisedlink{%
    \hyper@anchorstart{\@currentHref}\hyper@anchorend
  }%
  \H@old@spart{#1}%
}
\let\H@old@sect\@sect
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum #2>\c@secnumdepth
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  {%
    \Hy@MakeCurrentHrefAuto{section*}%
    \setlength{\Hy@SectionHShift}{#3}%
    \begingroup
      \toks@{\H@old@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]}%
      \toks\tw@\expandafter{%
        \expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}%
        #8%
      }%
    \edef\x{\endgroup
      \the\toks@{\the\toks\tw@}%
    }\x
  }{%
    \H@old@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}%
  }%
}
}{}
\expandafter\def\csname Parent-4\endcsname{}
\expandafter\def\csname Parent-3\endcsname{}
\expandafter\def\csname Parent-2\endcsname{}
\expandafter\def\csname Parent-1\endcsname{}
\expandafter\def\csname Parent0\endcsname{}
\expandafter\def\csname Parent1\endcsname{}
\expandafter\def\csname Parent2\endcsname{}
\expandafter\def\csname Parent3\endcsname{}
\expandafter\def\csname Parent4\endcsname{}
\endinput
%%
%% End of file `pdfmark.def'.
