  % Handle batch mode
  % to overcome problems with too many open files
  \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
  % Set document class depending on configuration
  \documentclass[twoside]{book}
  %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
  \usepackage{ifthen}
  \ifx\requestedLaTeXdate\undefined
    \usepackage{array}
  \else
    \usepackage{array}[=2016-10-06]
  \fi
  %%
  % Packages required by doxygen
  \usepackage{fixltx2e} % for \textsubscript
  \usepackage{doxygen}
  \usepackage{graphicx}
  \usepackage[utf8]{inputenc}
  \usepackage{makeidx}
  \PassOptionsToPackage{warn}{textcomp}
  \usepackage{textcomp}
  \usepackage[nointegrals]{wasysym}
  \usepackage{ifxetex}
  % NLS support packages
  % Define default fonts
  % Font selection
  \usepackage[T1]{fontenc}
  % set main and monospaced font
  \usepackage[scaled=.90]{helvet}
\usepackage{courier}
\renewcommand{\familydefault}{\sfdefault}
  \usepackage{sectsty}
  \allsectionsfont{%
    \fontseries{bc}\selectfont%
    \color{darkgray}%
  }
  \renewcommand{\DoxyLabelFont}{%
    \fontseries{bc}\selectfont%
    \color{darkgray}%
  }
  \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
   % Arguments of doxygenemoji:
   % 1) ':<text>:' form of the emoji, already LaTeX-escaped
   % 2) file with the name of the emoji without the .png extension
   % in case image exist use this otherwise use the ':<text>:' form
   \newcommand{\doxygenemoji}[2]{%
     \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
   }
  % Page & text layout
  \usepackage{geometry}
  \geometry{%
    a4paper,%
    top=2.5cm,%
    bottom=2.5cm,%
    left=2.5cm,%
    right=2.5cm%
  }
  % Allow a bit of overflow to go unnoticed by other means
  \tolerance=750
  \hfuzz=15pt
  \hbadness=750
  \setlength{\emergencystretch}{15pt}
  \setlength{\parindent}{0cm}
  \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
  \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
  \doxynormalparskip
  % Redefine paragraph/subparagraph environments, using sectsty fonts
  \makeatletter
  \renewcommand{\paragraph}{%
    \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
      \normalfont\normalsize\bfseries\SS@parafont%
    }%
  }
  \renewcommand{\subparagraph}{%
    \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
      \normalfont\normalsize\bfseries\SS@subparafont%
    }%
  }
  \makeatother
  \makeatletter
  \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
  \makeatother
  % Headers & footers
  \usepackage{fancyhdr}
  \pagestyle{fancyplain}
  \renewcommand{\footrulewidth}{0.4pt}
  \fancypagestyle{fancyplain}{
    \fancyhf{}
    \fancyhead[LE, RO]{\bfseries\thepage}
    \fancyhead[LO]{\bfseries\rightmark}
    \fancyhead[RE]{\bfseries\leftmark}
    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
  }
  \fancypagestyle{plain}{
    \fancyhf{}
    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
    \renewcommand{\headrulewidth}{0pt}
  }
  \pagestyle{fancyplain}
  \renewcommand{\chaptermark}[1]{%
    \markboth{#1}{}%
  }
  \renewcommand{\sectionmark}[1]{%
    \markright{\thesection\ #1}%
  }
  % ToC, LoF, LoT, bibliography, and index
  % Indices & bibliography
  \usepackage{natbib}
  \usepackage[titles]{tocloft}
  \setcounter{tocdepth}{3}
  \setcounter{secnumdepth}{5}
  % creating indexes
  \makeindex
  \usepackage{newunicodechar}
  \newunicodechar{⁻}{${}^{-}$}% Superscript minus
  \newunicodechar{²}{${}^{2}$}% Superscript two
  \newunicodechar{³}{${}^{3}$}% Superscript three
  % Hyperlinks
    % Hyperlinks (required, but should be loaded last)
    \ifpdf
      \usepackage[pdftex,pagebackref=true]{hyperref}
    \else
      \ifxetex
        \usepackage[pagebackref=true]{hyperref}
      \else
        \usepackage[ps2pdf,pagebackref=true]{hyperref}
      \fi
    \fi
    \hypersetup{%
      colorlinks=true,%
      linkcolor=blue,%
      citecolor=blue,%
      unicode,%
      pdftitle=Free\+BSD kernel crypto code,%
      pdfsubject=%
    }
  % Custom commands used by the header
  % Custom commands
  \newcommand{\clearemptydoublepage}{%
    \newpage{\pagestyle{empty}\cleardoublepage}%
  }
  % caption style definition
  \usepackage{caption}
  \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
  % in page table of contents
  \usepackage{etoc}
  \etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
  % prevent numbers overlap the titles in toc
  \renewcommand{\numberline}[1]{#1~}
% End of preamble, now comes the document contents
%===== C O N T E N T S =====
\begin{document}
  \raggedbottom
  % Titlepage & ToC
    % To avoid duplicate page anchors due to reuse of same numbers for
    % the index (be it as roman numbers)
    \hypersetup{pageanchor=false,
                bookmarksnumbered=true,
                pdfencoding=unicode
               }
  \pagenumbering{alph}
  \begin{titlepage}
  \vspace*{7cm}
  \begin{center}%
  {\Large Free\+BSD kernel crypto code}\\
  \vspace*{1cm}
  {\large Generated by Doxygen 1.9.3}\\
  \end{center}
  \end{titlepage}
  \clearemptydoublepage
  \pagenumbering{roman}
  \tableofcontents
  \clearemptydoublepage
  \pagenumbering{arabic}
  % re-enable anchors again
  \hypersetup{pageanchor=true}
%--- Begin generated contents ---
\chapter{Free\+BSD kernel crypto code}
\label{index}\hypertarget{index}{}\input{index}
\chapter{Data Structure Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Data Structure Documentation}
\input{dd/d18/union____uint128__val__t}
\input{d7/d32/struct__SIPHASH__CTX}
\input{d8/d11/structAES__key__t}
\input{dd/d8a/structaesni__session}
\input{d2/d26/structaesni__softc}
\input{d8/dfb/structarmv8__crypto__session}
\input{d1/d34/structarmv8__crypto__softc}
\input{d5/d7b/structarmv8__gcm__state}
\input{d7/da3/structblake2__session}
\input{dd/dc4/structblake2__softc}
\input{d5/d95/structblake2b__xform__ctx}
\input{d6/d7c/structblake2s__xform__ctx}
\input{d4/d28/structblocks8}
\input{d2/d2c/structcamellia__ctx}
\input{d9/dad/structccp__completion__ctx}
\input{dc/d0c/structccp__desc}
\input{d6/d20/structccp__error__code}
\input{d1/d25/structccp__queue}
\input{d6/d92/structccp__session}
\input{d3/d7a/structccp__session__blkcipher}
\input{d5/d09/structccp__session__gmac}
\input{d3/d31/structccp__session__hmac}
\input{d6/dba/structccp__softc}
\input{df/d78/structccp__xts__unitsize__map__entry}
\input{dd/dec/structchacha__ctx}
\input{df/d07/structcipherInstance}
\input{d8/dce/structdes__ks__struct}
\input{dd/dc0/unionccp__desc_1_1dword0}
\input{d9/d76/structccp__desc_1_1dword3}
\input{dc/d1b/unionccp__desc_1_1dword4}
\input{d7/de2/unionccp__desc_1_1dword5}
\input{d5/dc5/structccp__desc_1_1dword7}
\input{d3/d53/structkeybuf}
\input{d3/dc1/structkeybuf__ent}
\input{d0/d57/structkeyInstance}
\input{da/d4f/structossl__cipher}
\input{dd/d94/structossl__cipher__context}
\input{dd/d2b/structossl__hash__context}
\input{de/d48/structossl__session}
\input{d1/da3/structossl__session__cipher}
\input{d1/dd9/structossl__session__hash}
\input{de/db0/structossl__softc}
\input{d5/d40/unionpadlock__cw}
\input{d1/dc1/structpadlock__session}
\input{d1/de3/structpadlock__sha__ctx}
\input{dc/dbf/structpadlock__softc}
\input{dc/d26/structpciid}
\input{dc/dee/structpoly1305__context}
\input{d6/d43/structrc4__state}
\input{da/d7c/structrijndael__ctx}
\input{da/de9/structsha1__ctxt}
\input{d0/d5c/structSHA224Context}
\input{dc/d5e/structSHA256Context}
\input{d0/db5/structSHA256state__st}
\input{d4/d27/structSHA384Context}
\input{da/d24/structSHA512Context}
\input{d8/df3/structSHA512state__st}
\input{d4/dde/structSHA__Defn}
\input{d9/d53/structSHA__vectors}
\input{d3/d3f/structSHAstate__st}
\input{db/d1a/structSkein1024__Ctxt__t}
\input{df/de8/structSkein__256__Ctxt__t}
\input{dc/d4e/structSkein__512__Ctxt__t}
\input{d3/d6b/structSkein__Ctxt__Hdr__t}
\chapter{File Documentation}
\input{d3/d1b/aesencdec_8h}
\input{d3/d1b/aesencdec_8h_source}
\input{d3/de7/aesni_8c}
\input{d3/de7/aesni_8c_source}
\input{df/dc3/aesni_8h}
\input{df/dc3/aesni_8h_source}
\input{d0/dd3/aesni__ccm_8c}
\input{d0/dd3/aesni__ccm_8c_source}
\input{d1/dc6/aesni__ghash_8c}
\input{d1/dc6/aesni__ghash_8c_source}
\input{dd/dca/aesni__os_8h}
\input{dd/dca/aesni__os_8h_source}
\input{d8/d25/aesni__wrap_8c}
\input{d8/d25/aesni__wrap_8c_source}
\input{d8/d85/intel__sha1_8c}
\input{d8/d85/intel__sha1_8c_source}
\input{db/d28/intel__sha256_8c}
\input{db/d28/intel__sha256_8c_source}
\input{da/d9c/sha__sse_8h}
\input{da/d9c/sha__sse_8h_source}
\input{d0/d05/armv8__crypto_8c}
\input{d0/d05/armv8__crypto_8c_source}
\input{d3/d0a/armv8__crypto_8h}
\input{d3/d0a/armv8__crypto_8h_source}
\input{d0/de3/armv8__crypto__wrap_8c}
\input{d0/de3/armv8__crypto__wrap_8c_source}
\input{d0/d8d/blake2-sw_8c}
\input{d0/d8d/blake2-sw_8c_source}
\input{da/df1/blake2__cryptodev_8c}
\input{da/df1/blake2__cryptodev_8c_source}
\input{d1/dcb/blake2__kfreebsd_8h}
\input{d1/dcb/blake2__kfreebsd_8h_source}
\input{db/d17/blake2b-avx_8c}
\input{db/d17/blake2b-avx_8c_source}
\input{d1/dc7/blake2b-sse2_8c}
\input{d1/dc7/blake2b-sse2_8c_source}
\input{d6/d3d/blake2b-sse41_8c}
\input{d6/d3d/blake2b-sse41_8c_source}
\input{d7/d27/blake2b-ssse3_8c}
\input{d7/d27/blake2b-ssse3_8c_source}
\input{dd/dac/blake2b-xop_8c}
\input{dd/dac/blake2b-xop_8c_source}
\input{df/ddf/blake2s-avx_8c}
\input{df/ddf/blake2s-avx_8c_source}
\input{dc/d1a/blake2s-sse2_8c}
\input{dc/d1a/blake2s-sse2_8c_source}
\input{d5/dbb/blake2s-sse41_8c}
\input{d5/dbb/blake2s-sse41_8c_source}
\input{de/d59/blake2s-ssse3_8c}
\input{de/d59/blake2s-ssse3_8c_source}
\input{df/d36/blake2s-xop_8c}
\input{df/d36/blake2s-xop_8c_source}
\input{db/d16/config_8h}
\input{db/d16/config_8h_source}
\input{d5/d87/camellia-api_8c}
\input{d5/d87/camellia-api_8c_source}
\input{da/d8e/camellia_8c}
\input{da/d8e/camellia_8c_source}
\input{d7/dec/camellia_8h}
\input{d7/dec/camellia_8h_source}
\input{d2/ddc/ccp_8c}
\input{d2/ddc/ccp_8c_source}
\input{d0/d77/ccp_8h}
\input{d0/d77/ccp_8h_source}
\input{df/df8/ccp__hardware_8c}
\input{df/df8/ccp__hardware_8c_source}
\input{da/d45/ccp__hardware_8h}
\input{da/d45/ccp__hardware_8h_source}
\input{d9/d00/ccp__lsb_8c}
\input{d9/d00/ccp__lsb_8c_source}
\input{d8/d47/ccp__lsb_8h}
\input{d8/d47/ccp__lsb_8h_source}
\input{d0/d30/__chacha_8h}
\input{d0/d30/__chacha_8h_source}
\input{d8/d2c/chacha-sw_8c}
\input{d8/d2c/chacha-sw_8c_source}
\input{d8/d38/chacha_8c}
\input{d8/d38/chacha_8c_source}
\input{de/df3/chacha_8h}
\input{de/df3/chacha_8h_source}
\input{d7/dca/chacha20__poly1305_8c}
\input{d7/dca/chacha20__poly1305_8c_source}
\input{d7/d86/chacha20__poly1305_8h}
\input{d7/d86/chacha20__poly1305_8h_source}
\input{d6/d91/curve25519_8c}
\input{d6/d91/curve25519_8c_source}
\input{d6/d02/curve25519_8h}
\input{d6/d02/curve25519_8h_source}
\input{d9/d65/des_8h}
\input{d9/d65/des_8h_source}
\input{db/d58/des__ecb_8c}
\input{db/d58/des__ecb_8c_source}
\input{d3/d5b/des__enc_8c}
\input{d3/d5b/des__enc_8c_source}
\input{da/d7f/des__locl_8h}
\input{da/d7f/des__locl_8h_source}
\input{d6/da2/des__setkey_8c}
\input{d6/da2/des__setkey_8c_source}
\input{db/daf/podd_8h}
\input{db/daf/podd_8h_source}
\input{de/d2e/sk_8h}
\input{de/d2e/sk_8h_source}
\input{d5/d0a/spr_8h}
\input{d5/d0a/spr_8h_source}
\input{d9/d44/intake_8h}
\input{d9/d44/intake_8h_source}
\input{d9/d86/limits_8h}
\input{d9/d86/limits_8h_source}
\input{d6/dab/randombytes_8c}
\input{d6/dab/randombytes_8c_source}
\input{d4/d14/blake2_2stddef_8h}
\input{d4/d14/blake2_2stddef_8h_source}
\input{d5/dbc/libsodium_2stddef_8h}
\input{d5/dbc/libsodium_2stddef_8h_source}
\input{dc/d6f/armv8_2stdint_8h}
\input{dc/d6f/armv8_2stdint_8h_source}
\input{da/d7b/blake2_2stdint_8h}
\input{da/d7b/blake2_2stdint_8h_source}
\input{dd/dc9/libsodium_2stdint_8h}
\input{dd/dc9/libsodium_2stdint_8h_source}
\input{d3/de0/blake2_2stdio_8h}
\input{d3/de0/blake2_2stdio_8h_source}
\input{d5/d09/libsodium_2stdio_8h}
\input{d5/d09/libsodium_2stdio_8h_source}
\input{da/db7/blake2_2stdlib_8h}
\input{da/db7/blake2_2stdlib_8h_source}
\input{db/d5f/libsodium_2stdlib_8h}
\input{db/d5f/libsodium_2stdlib_8h_source}
\input{d7/d80/blake2_2string_8h}
\input{d7/d80/blake2_2string_8h_source}
\input{d5/d62/libsodium_2string_8h}
\input{d5/d62/libsodium_2string_8h_source}
\input{d3/d91/utils_8c}
\input{d3/d91/utils_8c_source}
\input{d4/d39/arm__arch_8h}
\input{d4/d39/arm__arch_8h_source}
\input{d4/d3c/ossl_8c}
\input{d4/d3c/ossl_8c_source}
\input{d5/dac/ossl_8h}
\input{d5/dac/ossl_8h_source}
\input{df/d36/ossl__aarch64_8c}
\input{df/d36/ossl__aarch64_8c_source}
\input{de/de4/ossl__aarch64_8h}
\input{de/de4/ossl__aarch64_8h_source}
\input{d2/dbb/ossl__aes_8c}
\input{d2/dbb/ossl__aes_8c_source}
\input{d1/dc7/ossl__chacha_8h}
\input{d1/dc7/ossl__chacha_8h_source}
\input{d1/dbd/ossl__chacha20_8c}
\input{d1/dbd/ossl__chacha20_8c_source}
\input{d5/dc0/ossl__cipher_8h}
\input{d5/dc0/ossl__cipher_8h_source}
\input{db/dba/ossl__hash_8h}
\input{db/dba/ossl__hash_8h_source}
\input{d5/d3c/ossl__poly1305_8c}
\input{d5/d3c/ossl__poly1305_8c_source}
\input{d8/de1/ossl__poly1305_8h}
\input{d8/de1/ossl__poly1305_8h_source}
\input{d6/d1f/ossl__sha_8h}
\input{d6/d1f/ossl__sha_8h_source}
\input{d6/d16/ossl__sha1_8c}
\input{d6/d16/ossl__sha1_8c_source}
\input{d1/db1/ossl__sha256_8c}
\input{d1/db1/ossl__sha256_8c_source}
\input{dc/d8b/ossl__sha512_8c}
\input{dc/d8b/ossl__sha512_8c_source}
\input{d9/de5/ossl__x86_8c}
\input{d9/de5/ossl__x86_8c_source}
\input{db/d23/ossl__x86_8h}
\input{db/d23/ossl__x86_8h_source}
\input{df/dff/rc4_8c}
\input{df/dff/rc4_8c_source}
\input{d5/da5/rc4_8h}
\input{d5/da5/rc4_8h_source}
\input{dc/de4/rijndael-alg-fst_8c}
\input{dc/de4/rijndael-alg-fst_8c_source}
\input{db/d1f/rijndael-api-fst_8c}
\input{db/d1f/rijndael-api-fst_8c_source}
\input{de/d94/rijndael-api-fst_8h}
\input{de/d94/rijndael-api-fst_8h_source}
\input{d3/d28/rijndael-api_8c}
\input{d3/d28/rijndael-api_8c_source}
\input{de/dd8/rijndael_8h}
\input{de/dd8/rijndael_8h_source}
\input{d1/d95/rijndael__local_8h}
\input{d1/d95/rijndael__local_8h_source}
\input{d5/d11/test00_8c}
\input{d5/d11/test00_8c_source}
\input{d2/d24/sha1_8c}
\input{d2/d24/sha1_8c_source}
\input{db/db5/sha1_8h}
\input{db/db5/sha1_8h_source}
\input{d3/d51/sha224_8h}
\input{d3/d51/sha224_8h_source}
\input{d5/de3/sha256_8h}
\input{d5/de3/sha256_8h_source}
\input{d5/ddb/sha256c_8c}
\input{d5/ddb/sha256c_8c_source}
\input{d8/dc0/sha256c__arm64_8c}
\input{d8/dc0/sha256c__arm64_8c_source}
\input{dc/d61/sha256c__impl_8h}
\input{dc/d61/sha256c__impl_8h_source}
\input{d5/de0/sha384_8h}
\input{d5/de0/sha384_8h_source}
\input{da/d73/sha512_8h}
\input{da/d73/sha512_8h_source}
\input{df/d9e/sha512c_8c}
\input{df/d9e/sha512c_8c_source}
\input{dd/dca/sha512c__arm64_8c}
\input{dd/dca/sha512c__arm64_8c_source}
\input{d9/d78/sha512c__impl_8h}
\input{d9/d78/sha512c__impl_8h_source}
\input{dc/dcd/sha512t_8h}
\input{dc/dcd/sha512t_8h_source}
\input{dd/d2d/siphash_8c}
\input{dd/d2d/siphash_8c_source}
\input{df/dac/siphash_8h}
\input{df/dac/siphash_8h_source}
\input{d3/d50/siphash__test_8c}
\input{d3/d50/siphash__test_8c_source}
\input{d1/d47/skein_8c}
\input{d1/d47/skein_8c_source}
\input{d6/de6/skein_8h}
\input{d6/de6/skein_8h_source}
\input{df/da5/skein__block_8c}
\input{df/da5/skein__block_8c_source}
\input{db/d96/skein__debug_8c}
\input{db/d96/skein__debug_8c_source}
\input{d0/d86/skein__debug_8h}
\input{d0/d86/skein__debug_8h_source}
\input{de/de8/skein__freebsd_8h}
\input{de/de8/skein__freebsd_8h_source}
\input{d4/df6/skein__iv_8h}
\input{d4/df6/skein__iv_8h_source}
\input{db/d5b/skein__port_8h}
\input{db/d5b/skein__port_8h_source}
\input{d5/d44/padlock_8c}
\input{d5/d44/padlock_8c_source}
\input{de/da1/padlock_8h}
\input{de/da1/padlock_8h_source}
\input{da/d23/padlock__cipher_8c}
\input{da/d23/padlock__cipher_8c_source}
\input{de/dcf/padlock__hash_8c}
\input{de/dcf/padlock__hash_8c_source}
\input{d7/d63/notreviewed_8dox}
%--- End generated contents ---
% Index
  \backmatter
  \newpage
  \phantomsection
  \clearemptydoublepage
  \addcontentsline{toc}{chapter}{\indexname}
  \printindex
% Required for some languages (in combination with latexdocumentpre from the header)
\end{document}
