\begin{filecontents*}{cc.cls}
%%
%% This is file `cc.cls',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cccls,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\providecommand\ignorespacesafterend{\@ignoretrue}
\newif\ifclass
\ifx\@currext\@clsextension\classtrue\else\classfalse\fi
\ifclass\expandafter\ProvidesClass\else\expandafter\ProvidesPackage\fi
{\ifclass cc\else cc-cls\fi}
[% CC MAIN DATE AND VERSION ON NEXT LINE
2016/03/01 v2.25f
computational complexity
\ifclass document class\else package\fi]
\RequirePackage{ccaux}
\DeclareOption{localnumbering}{\@longarticletrue}
\DeclareOption{globalnumbering}{\@longarticlefalse}
\DeclareOption{longarticle}{\@longarticletrue}
\DeclareOption{shortarticle}{\@longarticlefalse}
\DeclareOption{cclayout}{\@cclayouttrue}
\DeclareOption{nocclayout}{\@cclayoutfalse}
\DeclareOption{prefixes}{%
  \PassOptionsToPackage{\CurrentOption}{relabel}}
\DeclareOption{noprefixes}{%
  \ExecuteOptions{notheoremitemprefixes}%
  \PassOptionsToPackage{\CurrentOption,nobare}{relabel}}
\DeclareOption{bare}{\PassOptionsToPackage{\CurrentOption}{relabel}}
\DeclareOption{nobare}{\PassOptionsToPackage{\CurrentOption}{relabel}}
\DeclareOption{multilingual}{\ExecuteOptions{T1,latin1,babel}}
\DeclareOption{nomultilingual}{\ExecuteOptions{OT1,nolatin1,nobabel}}
\DeclareOption{T1}{\@Tonetrue}
\DeclareOption{OT1}{\@Tonefalse}
\DeclareOption{latin1}{\@latintrue\@utfviiifalse}
\DeclareOption{nolatin1}{\@latinfalse}
\DeclareOption{utf8}{\@utfviiitrue\@latinfalse}
\DeclareOption{noutf8}{\@utfviiifalse}
\DeclareOption{noinputenc}{\@latinfalse\@utfviiifalse}
\DeclareOption{babel}{\@babeltrue}
\DeclareOption{nobabel}{\@babelfalse}
\DeclareOption{ams}{\@amstrue}
\DeclareOption{noams}{\@amsfalse}
\DeclareOption{autotitle}{\@autotitletrue}
\DeclareOption{noautotitle}{\@autotitlefalse}
\DeclareOption{ccsectioning}{\@ccsectioningtrue}
\DeclareOption{noccsectioning}{\@ccsectioningfalse}
\DeclareOption{natbib}{\@natbibtrue\@cccitefalse}
\DeclareOption{nonatbib}{\@natbibfalse\@cccitefalse}
\DeclareOption{cccite}{\@natbibfalse\@cccitetrue}
\DeclareOption{nocccite}{\@natbibfalse\@cccitefalse}
\DeclareOption{manualbibliography}{\@manualbibliographytrue}
\DeclareOption{twocolumnbibliography}{\@twocolumnbibliographytrue}
\DeclareOption{onecolumnbibliography}{\@twocolumnbibliographyfalse}
\DeclareOption{twocolumnendtitle}{\@twocolumnendtitletrue}
\DeclareOption{onecolumnendtitle}{\@twocolumnendtitlefalse}
\DeclareOption{nosort}{%
  \def\@natbibsort{}}
\DeclareOption{sort}{%
  \def\@natbibsort{\PassOptionsToPackage{sort}{natbib}}}
\DeclareOption{compress}{%
  \def\@natbibsort{\PassOptionsToPackage{compress}{natbib}}}
\DeclareOption{sort&compress}{%
  \def\@natbibsort{\PassOptionsToPackage{sort&compress}{natbib}}}
\DeclareOption{cctheorems}{\@cctheoremstrue\@standardtheoremstrue}
\DeclareOption{cctheorems+separatelycounted}{%
  \@cctheoremstrue\@standardtheoremsfalse}
\DeclareOption{nocctheorems}{\@cctheoremsfalse}
\DeclareOption{separateequationcounting}{\@ccnosepeqncntfalse}
\DeclareOption{noseparateequationcounting}{\@ccnosepeqncnttrue}
\DeclareOption{ccalgorithms}{\@ccalgotrue}
\DeclareOption{noccalgorithms}{\@ccalgofalse}
\DeclareOption{theoremitemprefixes}{%
  \PassOptionsToPackage{\CurrentOption}{ccthm}}
\DeclareOption{notheoremitemprefixes}{%
  \PassOptionsToPackage{\CurrentOption}{ccthm}}
\DeclareOption{enhancedprefixes}{% old
  \PassOptionsToPackage{theoremitemprefixes}{ccthm}}
\DeclareOption{standardprefixes}{% old
  \PassOptionsToPackage{notheoremitemprefixes}{ccthm}}
\DeclareOption{ccpublish}{\@ccpublishtrue}
\DeclareOption{noccpublish}{\@ccpublishfalse\ExecuteOptions{textarea=none}}
\DeclareOption{textarea=full}{\@textareaversion\m@ne}
\DeclareOption{textarea=none}{\@textareaversion\z@}
\DeclareOption{textarea=cc1}{\@textareaversion\@ne}
\DeclareOption{textarea=cc2}{\@textareaversion\tw@}
\DeclareOption{textarea=cc}{\@cctextareatrue}
\DeclareOption{cctextarea}{\@cctextareatrue}
\DeclareOption{nocctextarea}{\@cctextareafalse}
\DeclareOption{noothermargins}{\@marginmode\m@ne}
\DeclareOption{classicalmargins}{\@marginmode\z@}
\DeclareOption{printmargins}{\@marginmode\@ne}
\DeclareOption{balancedmargins}{\@marginmode\tw@}
\DeclareOption{10pt}{\def\@ccptsize{10}}
\DeclareOption{11pt}{\def\@ccptsize{11}}
\DeclareOption{12pt}{\def\@ccptsize{12}}
\DeclareOption{a4paper}{\@cctextareafalse%
  \PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{a5paper}{\@cctextareafalse%
  \PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{b5paper}{\@cctextareafalse%
  \PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{letterpaper}{\@cctextareafalse%
  \PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{legalpaper}{\@cctextareafalse%
  \PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{executivepaper}{\@cctextareafalse%
  \PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{landscape}{\@cctextareafalse%
  \PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{oneside}{\@twosidefalse}
\DeclareOption{twoside}{\@twosidetrue}
\DeclareOption{leqno}{%
  \PassOptionsToClass{\CurrentOption}{article}%
  \PassOptionsToPackage{\CurrentOption}{amsmath}%
  }
\DeclareOption{reqno}{%
  \PassOptionsToClass{\CurrentOption}{article}%
  \PassOptionsToPackage{\CurrentOption}{amsmath}%
  }
\DeclareOption*{\OptionNotUsed
  \PassOptionsToClass{\CurrentOption}{article}}
\ifclass
\ExecuteOptions{a4paper,12pt,cctextarea,twoside,%
  OT1,nolatin1,nobabel,%
  localnumbering,bare,%
  leqno,ams,ccpublish,cclayout,autotitle,ccsectioning,%
  onecolumnbibliography,twocolumnendtitle,natbib,sort&compress,%
  cctheorems,theoremitemprefixes,noseparateequationcounting,%
  ccalgorithms}
\else
\ExecuteOptions{a4paper,12pt,nocctextarea,balancedmargins,twoside,%
  OT1,nolatin1,nobabel,%
  localnumbering,bare,%
  leqno,ams,noccpublish,nocclayout,noautotitle,ccsectioning,%
  onecolumnbibliography,twocolumnendtitle,natbib,sort&compress,%
  cctheorems,theoremitemprefixes,noseparateequationcounting,%
  ccalgorithms}
\fi
\ProcessOptions*
\PassOptionsToClass{\@ccptsize pt}{article}
\if@twoside
\PassOptionsToClass{twoside}{article}
\else
\PassOptionsToClass{oneside}{article}
\fi
\let\@ccptsize\@undefined
\@natbibsort
\let\@natbibsort\@undefined
\if@standardtheorems\else
    \ClassWarning{cc}{You are using the non documented
      feature\MessageBreak
      cctheorems+separatelycounted.\MessageBreak
      It is recommended not to use this.}
\fi
\newcommand{\cc}{\textsf{computational complexity}}
\ifclass
\LoadClass{article}[1999/01/07 v1.4a]
\fi
\if@Tone
\RequirePackage[T1]{fontenc}
\fi
\@pass@ptions\@pkgextension{}{german}
\global\expandafter\let\csname ver@german.\@pkgextension\endcsname\@empty
\if@babel
\RequirePackage{babel}[2008/07/06 v3.8l]
\fi
\if@utfviii
\RequirePackage[utf8]{inputenc}[2008/03/30 v1.1d]
\else\if@latin
\RequirePackage[latin1]{inputenc}[2008/03/30 v1.1d]
\fi\fi
\if@ams
\RequirePackage{amsmath}[2000/01/15 v2.05]% 1997/03/20 v1.2d
\RequirePackage{amsfonts}[1997/09/17 v2.2e]
\RequirePackage{amssymb}[1996/11/03 v2.2b]
\else
\newcommand{\numberwithin}[3][\arabic]{%
  \@ifundefined{c@#2}{\@nocounterr{#2}}{%
    \@ifundefined{c@#3}{\@nocnterr{#3}}{%
      \@addtoreset{#2}{#3}%
      \expandafter\xdef\csname the#2\endcsname{%
        \expandafter\noexpand\csname the#3\endcsname%
        .\noexpand#1{#2}}}}%
}
\let\@ifempty\cc@ifempty
\let\@ifnotempty\cc@ifnotempty
\let\bigstar\bullet
\let\lozenge\circ
\def\square{{\fboxsep.3em{\vbox{\hbox{\fbox{}}\vskip0pt}}}}%
\let\text\mbox
\fi
\RequirePackage{url}[2006/04/12  ver 3.3]
\expandafter\def\expandafter\UrlSpecials\expandafter{%
  \UrlSpecials\do\%{}}
\providecommand{\email}{\begingroup\urlstyle{tt}\Url}
\providecommand{\homepage}{\begingroup\scriptsize\urlstyle{tt}\Url}
\providecommand{\ixpt}{\@setfontsize\ixpt\@ixpt{11}}
\newcommand{\xptsfbx}{%
  \@setfontsize\xpt\@xpt{12}\usefont{OT1}{cmss}{bx}{n}}
\DeclareTextFontCommand{\textsfbx}{\usefont{OT1}{cmss}{bx}{n}}
\if@cclayout
\RequirePackage{cclayout}
\else
\newskip\headerindent \headerindent=10mm
\newdimen\headrulewidth \headrulewidth.4pt
\def\cctitlehead{}
\def\ccauthorhead{}
\let\ps@ccfirst\ps@empty
\def\ps@cc{\let\@mkboth\markboth
     \def\@oddhead{\vbox{\hbox to\textwidth{\reset@font\strut
         \null
         \hfil
         {\small\cctitlehead}%
         \hbox to\headerindent{\hfil\thepage}%
         }%
       \if@ccpublish\else
       \kern2.6\p@
       \hrule\@height\headrulewidth\kern-\headrulewidth
       \kern-2.6\p@
       \fi
       \vskip\z@
       }%
     }%
     \def\@oddfoot{}
     \def\@evenhead{\vbox{\hbox to\textwidth{\reset@font\strut
         \hbox to\headerindent{\thepage\hfil}%
         {\small\ccauthorhead}%
         \hfil
         \null
         }%
       \if@ccpublish\else
       \kern2.6\p@
       \hrule\@height\headrulewidth\kern-\headrulewidth
       \kern-2.6\p@
       \fi
       \vskip\z@
       }%
     }%
     \let\@evenfoot\@oddfoot
     }
\fi%@cclayout
\if@ccsectioning
\def\@seccntformat#1{\csname the#1\endcsname.\enskip}
\renewcommand{\section}{\@startsection{section}{1}{\z@}%
  {-2.9ex\@plus-.5ex\@minus-.2ex}%
  {1.5ex\@plus.5ex\@minus.2ex}%
  {\normalfont\large\bfseries\centering}}
\def\opt@fullstop#1{#1{\has@fullstop#1.\@@@
\if@tempswa\else
\has@exlamationmark#1!\@@@
\if@tempswa\else
\has@questionmark#1?\@@@
\if@tempswa\else
.\fi
\fi
\fi}}
\def\has@fullstop#1.#2\@@@{\@ifempty{#2}{\@tempswafalse}{\@tempswatrue}}
\def\has@exlamationmark#1!#2\@@@{\@ifempty{#2}{\@tempswafalse}{\@tempswatrue}}
\def\has@questionmark#1?#2\@@@{\@ifempty{#2}{\@tempswafalse}{\@tempswatrue}}
\def\dot@sect#1#2#3#4#5#6[#7]#8{%
  \let\@sect\ccorg@sect\let\@ssect\ccorg@ssect
  \@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{\opt@fullstop{#8}}}
\def\dot@ssect#1#2#3#4#5{%
  \let\@sect\ccorg@sect\let\@ssect\ccorg@ssect
  \@ssect{#1}{#2}{#3}{#4}{\opt@fullstop{#5}}}
\def\add@dot{%
  \let\ccorg@sect\@sect\let\ccorg@ssect\@ssect
  \let\@sect\dot@sect\let\@ssect\dot@ssect}
\renewcommand{\subsection}{%
  \add@dot
  \@startsection{subsection}{2}{\z@}%
  {2.33ex\@plus.5ex\@minus.2ex}% was 12pt +-
  {-1em}%
  {\normalfont\normalsize\bfseries}}
\renewcommand{\subsubsection}{%
  \add@dot
  \@startsection{subsubsection}{3}{\z@}%
  {1.55ex\@plus.5ex\@minus.2ex}% was 8pt +-
  {-1em}%
  {\normalfont\normalsize\bfseries}}
\fi%@ccsectioning
\if@natbib
\RequirePackage{cc2cite}
\if@manualbibliography
\bibstyle@plain%\bibpunct{[}{]}{;}{n}{}{,}
\fi
\else%@natbib
\if@cccite
\RequirePackage{cccite}
\renewcommand{\thebibliography}[1]{%
  \condbreak{8ex}%
  \section*{\refname
    \addcontentsline{toc}{section}{\refname}%
    \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
  \vskip-\lastskip
  \list{[\@arabic\c@enumiv] }%
  {%
    \labelwidth\z@
    \labelsep\z@
    \leftmargin\z@
    \@openbib@code
    \usecounter{enumiv}%
    \let\p@enumiv\@empty
    \renewcommand\theenumiv{\@arabic\c@enumiv}%
    }%
  \sloppy
  \clubpenalty4000
  \@clubpenalty \clubpenalty
  \widowpenalty4000
  \sfcode`\.\@m
  \bibfont}
\let\bibfont\small
\CheckCommand*\@bibitem[1]{\item\if@filesw \immediate\write\@auxout
  {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces}
\def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
  {\string\bibcite{#1}{[\the\value{\@listctr}]}}\fi\ignorespaces}
\else
  \relax
\fi%@cccite
\fi%@natbib
\if@twocolumnbibliography
\RequirePackage{multicol}
\newenvironment{nthebibliography}{%
  \footnotesize
  \let\bibfont\footnotesize
  \let\section\subsubsection
  \begin{multicols}2
    \othebibliography}
  {%
    \vfill\vfill\vfill\vfill
    \endothebibliography
  \end{multicols}}
\AtBeginDocument{%
  \let\othebibliography\thebibliography
  \let\endothebibliography\endthebibliography
  \let\thebibliography\nthebibliography
  \let\endthebibliography\endnthebibliography}
\fi
\RequirePackage{ccref}
\if@cctheorems
\RequirePackage{ccthm}
\RequirePackage{ccproof}
\fi
\if@ccalgo
\RequirePackage{ccalgo}
\fi
\let\orig@newtheorem\newtheorem
\def\newtheorem{%
  \ClassWarning{cc}{You should not use newtheorem.\MessageBreak
    See Section 3.1 of the documentation.}%
  \orig@newtheorem}
\babel\def\ccacknowledgementsname{Acknowledgements}[%
  german=Danksagung,french=Remerciements]
\newif\if@ccack \@ccacktrue% usually acknowledgements are not required
\AtEndDocument{%
  \if@ccack\else
  \ClassError{cc}{Missing acknowledgements}
        {You must use either\MessageBreak
          \protect\begin{acknowledge} ... \protect\end{acknowledge}\MessageBreak
          or \protect\noacknowledge.}%
  \fi
}
\newenvironment{acknowledge}{%
  \section*{\ccacknowledgementsname}%
  \addcontentsline{toc}{section}{\ccacknowledgementsname}%
}{%
  \noacknowledge
}
\newcommand{\noacknowledge}{%
  \ifKV@ccsps@openaccess\if@ccack\else%
  \noindent{\small\@octxt\par}%
  \fi\fi%
  \global\@ccacktrue
}%
\def\@octxt{}%
\def\openchoicetext#1{\gdef\@octxt{\paragraph{Open Access.} #1}}%
\openchoicetext{This article is distributed under the terms of the
  Creative Commons Attribution Noncommercial License which permits any
  noncommercial use, distribution, and reproduction in any medium,
  provided the original author(s) and source are credited.}%
\def\labelitemi{$\circ$}
\def\footnoterule{\kern-3\p@\hrule\@width18mm\kern 2.6\p@}
\let\ccorg@include\include
\newwarning{warn@include}{Note that \protect\include\space is equivalent
  to \protect\input\space.}
\renewcommand{\include}{%
  \if@ccpublish
    \ccClassWarning{warn@include}%
    \let\next\input
  \else
    \let\next\ccorg@include
  \fi
  \next}
\endinput
%%
%% End of file `cc.cls'.
\end{filecontents*}
\begin{filecontents*}{cc-cls.sty}
%%
%% This is file `cc-cls.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `ccsty,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\input{cc.cls}
\endinput
%%
%% End of file `cc-cls.sty'.
\end{filecontents*}
\begin{filecontents*}{cc2cite.sty}
%%
%% This is file `cc2cite.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cc2cite,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{cc2cite}[2000/02/29 v2.05 cc2 cite helper package]
\RequirePackage{natbib}[2010/09/13 8.31b]
\bibpunct{(}{)}{;}{a}{}{,}
\newcommand{\bibstyle@cc}{\bibpunct{(}{)}{;}{a}{}{,}}
\expandafter\def\csname bibstyle@cc2\endcsname{%
  \bibpunct{(}{)}{;}{a}{}{,}}
\let\bibfont\small
\bibhang\z@
\providecommand{\newwarning}[2]{%
  \expandafter\gdef\csname cc@warn@#1\endcsname{#2}}
\providecommand{\ccClassWarning}[1]{%
  \ClassWarning{cc}{\csname cc@warn@#1\endcsname}}
\newwarning{old@citemul}{%
    The command \protect\citemul\space is obsolete.
    Use \protect\citet\space instead.\MessageBreak
    Please read the documentation
    of the package `natbib.sty'}
\newwarning{old@parencite}{%
    The command \protect\parencite\space is obsolete.
    Use \protect\citep\space instead.\MessageBreak
    Please read the documentation
    of the package `natbib.sty'}
\newwarning{old@shortcite}{%
    The command \protect\shortcite\space is obsolete.
    Use \protect\citealt\space instead.\MessageBreak
    Please read the documentation
    of the package `natbib.sty'}
\def\citemul{\ccClassWarning{old@citemul}\citet}
\def\parencite{\ccClassWarning{old@parencite}\citep}
\def\shortcite{\ccClassWarning{old@shortcite}\citealt}
\RequirePackage{ccdbs}
\DefaultBibliographyStyle{cc2}
\endinput
%%
%% End of file `cc2cite.sty'.
\end{filecontents*}
\begin{filecontents*}{cc4amsart.sty}
%%
%% This is file `cc4amsart.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cc4amsart,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{cc4amsart}[2009/12/22 v2.05b
         computational complexity, adaptions to amsart.
         Michael Nuesken, Bonn.]
\RequirePackage{ccaux}
\RequirePackage{ccreltx}
\PassOptionsToPackage{bare}{relabel}
\RequirePackage{thcc}
\gdef\theorem@headerfont{\bfseries}
\@longarticletrue
\RequirePackage{ccthm}
\babel\def\ccacknowledgementsname{Acknowledgements}[%
  german=Danksagung,french=Remerciements]
\newenvironment{acknowledge}{\section*{\ccacknowledgementsname}}{}
\RequirePackage{relabel}
\RequirePackage{cc2cite}
\RequirePackage{ccqed}
\AtBeginDocument{\@adjustnumbering}
\endinput
%%
%% End of file `cc4amsart.sty'.
\end{filecontents*}
\begin{filecontents*}{cc4apjrnl.sty}
%%
%% This is file `cc4apjrnl.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cc4apjrnl,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{cc4apjrnl}[2002/01/08 v2.05
         computational complexity, adaptions to apjrnl.
         Michael Nuesken, Bonn.]
\let\answer\relax
\let\endanswer\relax
\RequirePackage{amsmath}[1997/03/20 v1.2d]
\RequirePackage{amsfonts}[1997/09/17 v2.2e]
\RequirePackage{amssymb}[1996/11/03 v2.2b]
\RequirePackage{ccaux}
\RequirePackage{ccreltx}% deactivate amsthm.sty and reactive LaTeX's definitions.
\@longarticletrue
\@adjustnumbering
\let\theorem@style\@undefined
\RequirePackage{ccthm}
\RequirePackage{ccqed}
\let\proof\@undefined
\let\endproof\@undefined
\RequirePackage{ccproof}
\RequirePackage{cc2cite}
\RequirePackage{url}[1999/03/02 ver 1.4]
\expandafter\def\expandafter\UrlSpecials\expandafter{%
  \UrlSpecials\do\%{}}
\providecommand{\email}{\begingroup\urlstyle{tt}\Url}
\providecommand{\homepage}{\begingroup\scriptsize\urlstyle{tt}\Url}
\gdef\theorem@headerfont{\scshape\null\hskip\parindent}
\gdef\Proof{\textit{Proof}}
\renewcommand{\qedsymbol}{\rule{2pt}{4pt}}
\endinput
%%
%% End of file `cc4apjrnl.sty'.
\end{filecontents*}
\begin{filecontents*}{cc4elsart.sty}
%%
%% This is file `cc4elsart.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cc4elsart,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{cc4elsart}[2009/12/22 v2.05b
         computational complexity, adaptions to elsart.
         Michael Nuesken, Bonn.]
\RequirePackage{ccaux}
\RequirePackage{ccreltx}
\PassOptionsToPackage{bare}{relabel}
\RequirePackage{thcc}
\@longarticletrue
\let\claim\relax
\let\fact\relax
\let\note\relax
\let\proof\relax\let\endproof\relax
\RequirePackage{ccthm}
\RequirePackage{ccproof}
\RequirePackage{ccqed}
\babel\def\ccacknowledgementsname{Acknowledgements}[%
  german=Danksagung,french=Remerciements]
\newenvironment{acknowledge}{\section*{\ccacknowledgementsname}}{}
\RequirePackage{relabel}
\babel\def\partname{Part}[german=Teil,french=\protect\@Fpt partie]
\defprefix{part}{\partname~}
\babel\def\chaptername{Chapter}[german=Kapitel,french=Chapitre]
\defprefix{chapter}{\chaptername~}
\babel\def\sectionname{Section}[german=Abschnitt,french=Section]
\defprefix{section}{\sectionname~}
\babel\def\subsectionname{Section}[german=Abschnitt,french=Section]
\defprefix{subsection}{\subsectionname~}
\babel\def\subsubsectionname{Section}[german=Abschnitt,french=Section]
\defprefix{subsubsection}{\subsubsectionname~}
\let\ccorg@appendix\appendix
\babel\def\appendixname{Appendix}[german=Anhang,french=Annexe]
\def\appendix{%
  \defprefix{section}{\appendixname~}%
  \defprefix{subsection}{\appendixname~}%
  \defprefix{subsubsection}{\appendixname~}%
  \ccorg@appendix}
\defprefix{equation}#1{(#1)}
\babel\def\figurename{Figure}[german=Figur,french={\scshape Figure}]
\defprefix{figure}{\figurename~}
\babel\def\tablename{Table}[german=Tafel,french={\scshape Table}]
\defprefix{table}{\tablename~}
\RequirePackage{amsmath}[2000/01/15 v2.05]% 1997/03/20 v1.2d
\RequirePackage{amsfonts}[1997/09/17 v2.2e]
\RequirePackage{amssymb}[1996/11/03 v2.2b]
\numberallwithin{section}
\AtBeginDocument{\@adjustnumbering}
\endinput
%%
%% End of file `cc4elsart.sty'.
\end{filecontents*}
\begin{filecontents*}{cc4jT.sty}
%%
%% This is file `cc4jT.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cc4jT,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{cc4jT}[2002/01/08 v2.05
         computational complexity, adaptions to jT which uses amsart.
         Michael Nuesken, Bonn.]
\RequirePackage{ccaux}
\RequirePackage{ccreltx}
\PassOptionsToPackage{bare}{relabel}
\RequirePackage{thcc}
\gdef\theorem@headerfont{\bfseries}
\@longarticletrue
\let\proof\relax\let\endproof\relax
\RequirePackage{ccthm}
\RequirePackage{ccproof}
\RequirePackage{ccqed}
\babel\def\ccacknowledgementsname{Acknowledgements}[%
  german=Danksagung,french=Remerciements]
\newenvironment{acknowledge}{\section*{\ccacknowledgementsname}}{}
\RequirePackage{relabel}
\babel\def\partname{Part}[german=Teil,french=\protect\@Fpt partie]
\defprefix{part}{\partname~}
\babel\def\chaptername{Chapter}[german=Kapitel,french=Chapitre]
\defprefix{chapter}{\chaptername~}
\babel\def\sectionname{Section}[german=Abschnitt,french=Section]
\defprefix{section}{\sectionname~}
\babel\def\subsectionname{Section}[german=Abschnitt,french=Section]
\defprefix{subsection}{\subsectionname~}
\babel\def\subsubsectionname{Section}[german=Abschnitt,french=Section]
\defprefix{subsubsection}{\subsubsectionname~}
\let\ccorg@appendix\appendix
\babel\def\appendixname{Appendix}[german=Anhang,french=Annexe]
\def\appendix{%
  \defprefix{section}{\appendixname~}%
  \defprefix{subsection}{\appendixname~}%
  \defprefix{subsubsection}{\appendixname~}%
  \ccorg@appendix}
\defprefix{equation}#1{(#1)}
\babel\def\figurename{Figure}[german=Figur,french={\scshape Figure}]
\defprefix{figure}{\figurename~}
\babel\def\tablename{Table}[german=Tafel,french={\scshape Table}]
\defprefix{table}{\tablename~}
\numberallwithin{section}
\AtBeginDocument{\@adjustnumbering}
\RequirePackage{cc2cite}
\RequirePackage{url}
\endinput
%%
%% End of file `cc4jT.sty'.
\end{filecontents*}
\begin{filecontents*}{cc4llncs.sty}
%%
%% This is file `cc4llncs.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cc4llncs,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{cc4llncs}[2002/10/01 v2.05
         computational complexity, adaptions to llncs.
         Michael Nuesken, Bonn.]
\let\claim\relax \let\endclaim\relax
\let\conjecture\relax \let\endconjecture\relax
\let\corollary\relax \let\endcorollary\relax
\let\counterexample\relax \let\endcounterexample\relax
\let\definition\relax \let\enddefinition\relax
\let\exercise\relax \let\endexercise\relax
\let\fact\relax \let\endfact\relax
\let\hypothesis\relax \let\endhypothesis\relax
\let\lemma\relax \let\endlemma\relax
\let\notation\relax \let\endnotation\relax
\let\note\relax \let\endnote\relax
\let\observation\relax \let\endobservation\relax
\let\open\relax \let\endopen\relax
\let\openquestion\relax \let\endopenquestion\relax
\let\problem\relax \let\endproblem\relax
\let\proposition\relax \let\endproposition\relax
\let\question\relax \let\endquestion\relax
\let\remark\relax \let\endremark\relax
\let\result\relax \let\endresult\relax
\let\theorem\relax \let\endtheorem\relax
\let\thesis\relax \let\endthesis\relax
\let\warning\relax \let\endwarning\relax
\let\example\relax \let\endexample\relax
\let\proof\relax \let\endproof\relax
\RequirePackage{amsmath}[1997/03/20 v1.2d]
\RequirePackage{amsfonts}[1997/09/17 v2.2e]
\RequirePackage{amssymb}[1996/11/03 v2.2b]
\RequirePackage{ccaux}
\@longarticletrue
\RequirePackage{ccreltx}
\RequirePackage{ccref}
\RequirePackage{ccthm,ccproof}
\theoremheaderfont{\upshape\bfseries}
\RequirePackage{ccalgo}
\let\origthebibliography\thebibliography
\let\origendthebibliography\endthebibliography
\let\citeauthoryear\relax
\RequirePackage{cc2cite}
\let\thebibliography\origthebibliography
\let\endthebibliography\origendthebibliography
\RequirePackage{url}[1999/03/02 ver 1.4]
\expandafter\def\expandafter\UrlSpecials\expandafter{%
  \UrlSpecials\do\%{}}
\providecommand{\email}{\begingroup\urlstyle{tt}\Url}
\providecommand{\homepage}{\begingroup\scriptsize\urlstyle{tt}\Url}
\def\condbreak#1{%
  \vskip 0pt plus #1%
  \pagebreak[3]%
  \vskip 0pt plus -#1%
  \relax}
\endinput
%%
%% End of file `cc4llncs.sty'.
\end{filecontents*}
\begin{filecontents*}{cc4siamltex.sty}
%%
%% This is file `cc4siamltex.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cc4siamltex,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{cc4siamltex}[2002/05/22 v2.05
         computational complexity, adaptions to siamltex.
         Michael Nuesken, Bonn.]

\let\theorem\relax
\let\endtheorem\relax
\let\lemma\relax
\let\endlemma\relax
\let\corollary\relax
\let\endcorollary\relax
\let\proposition\relax
\let\endproposition\relax
\let\definition\relax
\let\enddefinition\relax
\let\proof\relax
\let\endproof\relax

\RequirePackage{amsmath}
\RequirePackage{amsfonts}
\RequirePackage{amssymb}
\RequirePackage{ccaux}
\RequirePackage{ccreltx}
\RequirePackage{ccthm}
\RequirePackage{relabel}
\RequirePackage{cc2cite}
\RequirePackage{ccproof}
\renewcommand{\Proof}{\textit{Proof}}
\renewcommand{\qedsymbol}{\vbox{\hrule height0.6pt\hbox{%
      \vrule height1.3ex width0.6pt\hskip0.8ex
      \vrule width0.6pt}\hrule height0.6pt
    }}
\RequirePackage{ccalgo}
\babel\def\ccacknowledgementsname{Acknowledgements}[%
  german=Danksagung,french=Remerciements]
\newenvironment{acknowledge}{\section*{\ccacknowledgementsname}}{}
\RequirePackage{url}[1999/03/02 ver 1.4]
\expandafter\def\expandafter\UrlSpecials\expandafter{%
  \UrlSpecials\do\%{}}
\providecommand{\email}{\begingroup\urlstyle{tt}\Url}
\providecommand{\homepage}{\begingroup\scriptsize\urlstyle{tt}\Url}
\endinput
%%
%% End of file `cc4siamltex.sty'.
\end{filecontents*}
\begin{filecontents*}{cc4svjour.sty}
%%
%% This is file `cc4svjour.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cc4svjour,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{cc4svjour}[2010/10/14 v2.15
         computational complexity, adaptions to svjour3.
         Michael Nuesken, Bonn.]
\RequirePackage{ccaux}
\RequirePackage{cc2cite}
\RequirePackage{ccreltx}
\PassOptionsToPackage{bare}{relabel}
\RequirePackage{thcc}
\gdef\theorem@headerfont{\bfseries}
%% Deactivate svjour3's theorem definitions:
\let\claim\relax \let\endclaim\relax
\let\conjecture\relax \let\endconjecture\relax
\let\corollary\relax \let\endcorollary\relax
\let\counterexample\relax \let\endcounterexample\relax
\let\definition\relax \let\enddefinition\relax
\let\exercise\relax \let\endexercise\relax
\let\fact\relax \let\endfact\relax
\let\hypothesis\relax \let\endhypothesis\relax
\let\lemma\relax \let\endlemma\relax
\let\notation\relax \let\endnotation\relax
\let\note\relax \let\endnote\relax
\let\observation\relax \let\endobservation\relax
\let\open\relax \let\endopen\relax
\let\openquestion\relax \let\endopenquestion\relax
\let\problem\relax \let\endproblem\relax
\let\proposition\relax \let\endproposition\relax
\let\question\relax \let\endquestion\relax
\let\remark\relax \let\endremark\relax
\let\result\relax \let\endresult\relax
\let\theorem\relax \let\endtheorem\relax
\let\thesis\relax \let\endthesis\relax
\let\warning\relax \let\endwarning\relax
\let\example\relax \let\endexample\relax
\@longarticletrue
\RequirePackage{ccthm}
\babel\def\ccacknowledgementsname{Acknowledgements}[%
  german=Danksagung,french=Remerciements]
\newenvironment{acknowledge}{\section*{\ccacknowledgementsname}}{}
\RequirePackage{relabel}
\RequirePackage{cc2cite}
\RequirePackage{ccqed}
\RequirePackage{amsmath}
\RequirePackage{amsfonts}
\RequirePackage{amssymb}
\RequirePackage{url}
\providecommand{\homepage}{\begingroup\scriptsize\urlstyle{tt}\Url}
\AtBeginDocument{\@adjustnumbering}
\endinput
%%
%% End of file `cc4svjour.sty'.
\end{filecontents*}
\begin{filecontents*}{ccalgo.sty}
%%
%% This is file `ccalgo.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `ccalgo,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{ccalgo}[2012/06/22 v2.25
  algorithm environment for cc.  Michael Nuesken, Bonn.]
\let\namedalgorithm\@undefined
\let\endnamedalgorithm\@undefined
\let\algorithm\@undefined
\let\endalgorithm\@undefined
{\def\algonumerate@item[#1]{%
  \if@noparitem
    \@donoparitem
  \else
    \if@inlabel
      \indent \par
    \fi
    \ifhmode
      \unskip\unskip \par
    \fi
    \if@newlist
      \if@nobreak
        \@nbitem
      \else
        \addpenalty\@beginparpenalty
        \addvspace\@topsep
        \addvspace{-\parskip}%
      \fi
    \else
      \addpenalty\@itempenalty
      \addvspace\itemsep
    \fi
    \global\@inlabeltrue
  \fi
  \everypar{%
    \@minipagefalse
    \global\@newlistfalse
    \if@inlabel
      \global\@inlabelfalse
      {\setbox\z@\lastbox
       \ifvoid\z@
         \kern-\itemindent
       \fi}%
      \box\@labels
      \penalty\z@
    \fi
    \if@nobreak
      \@nobreakfalse
      \clubpenalty \@M
    \else
      \clubpenalty \@clubpenalty
      \everypar{}%
    \fi}%
  \if@noitemarg
    \@noitemargfalse
    \if@nmbrlist
      \refstepcounter\@listctr
    \fi
  \fi
  \sbox\@tempboxa{\makelabel{#1}}%
  \global\setbox\@labels\hbox{%
    \unhbox\@labels
    \hskip \itemindent
    \hskip -\labelwidth
    \hskip -\labelsep
    \ifdim \wd\@tempboxa >\labelwidth
      \box\@tempboxa
    \else
      \hbox to\labelwidth {\unhbox\@tempboxa}%
    \fi
    \hskip \labelsep}%
  \ignorespaces}
\ifx\algonumerate@item\@item\else
\PackageWarningNoLine{ccalgo}{%
  Command \protect\@item\space  has changed.\MessageBreak
  Check if current package is valid}
\fi}
\RequirePackage{ccaux}
\RequirePackage{theorem}[1995/11/23 v2.2c]
\RequirePackage{thcc}
\RequirePackage{relabel}
\def\list@parshape{%
  \parshape \@ne \@totalleftmargin \linewidth}
\newdimen\reinit@list@last
\def\reinit@list#1{%
  \advance\itemindent\reinit@list@last
  \advance\@totalleftmargin-\reinit@list@last
  \advance\linewidth\reinit@list@last
  \global\reinit@list@last#1\relax
  \ifdim\reinit@list@last>\algonumerate@maxindent
  \global\reinit@list@last\algonumerate@maxindent\fi
  \advance\itemindent-\reinit@list@last
  \advance\@totalleftmargin\reinit@list@last
  \advance\linewidth-\reinit@list@last
  \list@parshape}
\def\reinit@list@label{%
  \reinit@list{\wd\@tempboxa}%
  }
\newcommand{\makealgolabel}[1]{#1.}
\newcommand{\makeoptalgolabel}[1]{(#1)}
\let\makeoptalgocurrentlabel\makeoptalgolabel
\newcounter{algonumerate}
\defprefix{algonumerate}{}
\newcount\algonumerate@items
\renewcommand{\thealgonumerate}{%
  \expandafter\ifnum\value{algonumerate}<\@ne
  \algonumfield%
  \else
  \arabic{algonumerate}\fi}%
\def\algonumfield{\ignorespaces
  \ifx\@algonumfield\relax\else
  \expandafter\@algonumfield\csname c@algonumerate\endcsname\fi
  \unskip}
\newif\if@speciallabel
\newcommand{\labelalgonumerate}{%
  \count@\value{algonumerate}%
  \ifnum\count@<\z@
  \algonumfield%
  \else
  \makealgolabel{\thealgonumerate}%
  \fi
  }%
\newdimen\algo@labelsep
\newdimen\steplabelwidth
\newtoks\AtNextItem
\newtoks\AtNextNumberedItem
\newif\if@noitemargcopy
\let\orig@item\item
\def\item{\@ifnextchar[{\@noitemargcopyfalse\orig@item}{\@noitemargcopytrue\orig@item}}
\newcount\last@algolabeltype
\newcount\this@algolabeltype
\newcommand{\algonumerate@label}[1]{%
  \expandafter\count@\value{algonumerate}%
  \if@noitemargcopy
    \ifnum\count@<\z@
      \let\next\algonumerate@labelautomatic
      \global\last@algolabeltype\this@algolabeltype
      \global\this@algolabeltype\m@ne
    \else
      \let\next\algonumerate@labelnumber
      \global\last@algolabeltype\this@algolabeltype
      \global\this@algolabeltype\@ne
    \fi
  \else
    \def\@tempa{#1}%
    \ifx\@tempa\@empty
      \let\next\algonumerate@labelempty
      \global\last@algolabeltype\this@algolabeltype
      \global\this@algolabeltype\tw@
    \else
      \let\next\algonumerate@labelexplicit
      \global\last@algolabeltype\this@algolabeltype
      \global\this@algolabeltype\z@
    \fi
  \fi\next{#1}}
\newcommand{\algonumerate@makelabelexplicit}[1]{%
  #1:\hskip\algo@labelsep%
}
\newcommand{\algonumerate@makelabelempty}[1]{%
  \hskip\steplabelwidth\hskip\algo@labelsep%
}
\newcommand{\algonumerate@makelabelautomatic}[1]{%
  #1:\hskip\algo@labelsep%
}
\newcommand{\algonumerate@makelabelnumber}[1]{%
  \hb@xt@\steplabelwidth{\hss
      #1%
  }\hskip\algo@labelsep%
}
\newcommand{\algonumerate@postprocess}[1]{%
    \expandafter\count@\value{algonumerate}%
    \ifnum\last@algolabeltype<\@ne
    \ifnum\this@algolabeltype=\@ne
    \medskip
    \fi
    \fi
    #1%
    \global\let\latest@item@currentlabel\@currentlabel
    \global\let\latest@item@bare@currentlabel\@bare@currentlabel
    \ifnum\count@=\m@ne
    \stepcounter{algonumerate}%
    \fi
    \global\@speciallabeltrue
    \the\AtNextItem \global\AtNextItem{}%
    \ifnum\this@algolabeltype=\@ne
    \the\AtNextNumberedItem \global\AtNextNumberedItem{}%
    \fi
    \reinit@list@label
}
\newcommand{\algonumerate@labelexplicit}[1]{% For algorithm i/o
  \algonumerate@makelabelexplicit{#1}%
  \global\let\algonumerate@global\global
  \gdef\global{\algonumerate@global\let\global\algonumerate@global
    \algonumerate@postprocess{%
      \protected@edef\@currentlabel{\csname p@\@listctr\endcsname
        {\makeoptalgocurrentlabel{#1}}}%
      \protected@edef\@bare@currentlabel{#1}%
    }%
    \global}%
}
\newcommand{\algonumerate@labelempty}[1]{% For algorithm i/o
  \algonumerate@makelabelempty{}%
  \global\let\algonumerate@global\global
  \gdef\global{\algonumerate@global\let\global\algonumerate@global
    \algonumerate@postprocess{}%
    \global}%
}
\newcommand{\algonumerate@labelautomatic}[1]{% For algorithm steps
  \algonumerate@makelabelautomatic{#1}%
  \global\let\algonumerate@global\global
  \gdef\global{\algonumerate@global\let\global\algonumerate@global
    \algonumerate@postprocess{%
      \protected@edef\@currentlabel{\csname p@\@listctr\endcsname
        {\makeoptalgocurrentlabel{#1}}}%
      \protected@edef\@bare@currentlabel{#1}%
    }%
    \global}%
}
\newcommand{\algonumerate@labelnumber}[1]{% For algorithm steps
  \algonumerate@makelabelnumber{#1}%
  \global\let\algonumerate@global\global
  \gdef\global{\algonumerate@global\let\global\algonumerate@global
    \algonumerate@postprocess{}%
    \global}%
}
\newdimen\algonumerate@maxindent
\newdimen\@algolongestlabel
\AtBeginDocument{\ifdim\algonumerate@maxindent=\z@
  \algonumerate@maxindent.2\textwidth\fi}
\def\algonumerateinit#1{%
  \setcounter{algonumerate}{-1}%
  \this@algolabeltype=\@M
  \@algolongestlabel\z@
  \def\@algonumfield{}%
  \let\ccorg@or\or\let\or\relax
  \algonumerate@items\z@
  \@for\@tempa:=#1\do{%
    \advance\algonumerate@items\@ne
    \@temptokena\expandafter{\@tempa}%
    \toks@\expandafter{\@algonumfield}%
    \edef\@algonumfield{\the\@temptokena\or\the\toks@}%
    \setbox\@tempboxa\hbox{\algonumerate@makelabelautomatic{\the\toks@}}%
    \ifdim\wd\@tempboxa>\@algolongestlabel\relax
    \@algolongestlabel\wd\@tempboxa\fi
    }%
  \let\or\ccorg@or
  \toks@\expandafter{\@algonumfield}%
  \edef\@algonumfield##1{\noexpand\ifcase-##1\noexpand\or
    \the\toks@\noexpand\fi}%
  }
\newenvironment{algonumerate}{%
  \if@inlabel~\fi\par
  \list{\labelalgonumerate}{%
    \usecounter{algonumerate}%
    \let\makelabel\algonumerate@label
    \parsep\z@%
    \topsep\z@%
    \itemsep\z@%
    \parskip\z@%
    \leftmargin\labelsep
    \algo@labelsep\z@
    \settowidth\steplabelwidth{\makealgolabel{99}}%
    \labelwidth\z@
    \global\reinit@list@last\z@
    }%
  \setcounter{algonumerate}{-\algonumerate@items}%
  \ifnum\algonumerate@items>\z@
  \addtocounter{algonumerate}\m@ne
  \fi
  \setcounter{block@cnt}\z@
  \let\step\algo@step
  \let\block\algo@block
  \let\endblock\endalgo@block
  \let\range\algo@range
  \let\endrange\endalgo@range
  \let\indention\algo@indention
  \let\endindention\endalgo@indention
  \let\body\algo@block
  \let\endbody\endalgo@block
  \let\meta\algo@meta
  \let\endmeta\endalgo@meta
  \def\skipremainingspecialitems{\setcounter{algonumerate}{0}}%
  }{%
  \endlist\vskip\topskip}
\newdimen\blockindent \blockindent\parindent
\newcounter{block@cnt}
\newcommand{\nextblock}{%
  \stepcounter{block@cnt}\edef\currentblock{\the\c@block@cnt}%
  }
\newif\if@trivialrange
\newcommand{\refsetrange}[2]{%
  {\shortlabeltrue
    \let\index\relax
    \let\@tempa\relax
    \protected@edef\@tempa{%
      \csname r@\the\algorithmmasterkey-#1\endcsname}%
    \let\@tempc\relax
    \protected@edef\@tempc{%
      \csname r@\the\algorithmmasterkey-#2\endcsname}%
    \ifx\@tempa\@tempc\global\@trivialrangetrue
    \else\global\@trivialrangefalse\fi
    }%
  \if@trivialrange
  \protected@edef\@currentlabel{}%
  \else
  \protected@edef\@currentlabel{%
    \csname p@\@listctr\endcsname{%
    \protect\short\protect\ref{\the\algorithmmasterkey-#1}%
    --%
    \protect\short\protect\ref{\the\algorithmmasterkey-#2}%
    }}%
  \fi
  \protected@edef\@bare@currentlabel{%
    \protect\bare\protect\ref{\the\algorithmmasterkey-#1}%
    --%
    \protect\bare\protect\ref{\the\algorithmmasterkey-#2}%
    }%
  }
\newenvironment{algo@range}{%
  \par
  \stepcounter{block@cnt}\edef\block@{\the\c@block@cnt}%
  \refsetrange{bob\block@}{eob\block@}%
  \AtNextNumberedItem{\algolabel{bob\block@}}%
  }{%
  \algolabel{eob\block@}%
  \par
  \global\let\algo@block@currentlabel\@currentlabel
  \global\let\algo@block@bare@currentlabel\@bare@currentlabel
  \aftergroup\algo@endrange@aftergroup
  }
\def\algo@endrange@aftergroup{%
  \let\@currentlabel\latest@item@currentlabel
  \let\@bare@currentlabel\latest@item@bare@currentlabel
  }
\newdimen\indention@reinit@list@last
\newenvironment{algo@indention}{%
  \par
  \indention@reinit@list@last\reinit@list@last
  \advance\leftmargin\blockindent
  \advance\labelsep\blockindent
  \advance\@totalleftmargin\blockindent
  \advance\linewidth-\blockindent
  \def\algo@indention@undo{%
    \reinit@list{\indention@reinit@list@last}%
    \advance\leftmargin-\blockindent
    \advance\labelsep-\blockindent
    \advance\@totalleftmargin-\blockindent
    \advance\linewidth\blockindent
    }
  \list@parshape
  }{%
  \par
  \algo@indention@undo
  \list@parshape
  \aftergroup\list@parshape
  \global\let\algo@block@currentlabel\@currentlabel
  \global\let\algo@block@bare@currentlabel\@bare@currentlabel
  \aftergroup\algo@endrange@aftergroup
  }
\newif\ifindented@block
\newenvironment{algo@block}{%
  \algo@indention
  \algo@range}{%
  \endalgo@range
  \endalgo@indention
  }
\newdimen\meta@indent
\newenvironment{algo@meta}{%
  \@newlistfalse
  \vskip\topskip
  \par
  \meta@indent\@totalleftmargin
  \advance\labelsep-\meta@indent
  \advance\@totalleftmargin-\meta@indent
  \advance\linewidth\meta@indent
  \advance\leftmargin-\meta@indent
  \list@parshape
  }{%
  \vskip\topskip
  \par
  \advance\labelsep\meta@indent
  \advance\@totalleftmargin\meta@indent
  \advance\linewidth-\meta@indent
  \advance\leftmargin\meta@indent
  \aftergroup\list@parshape
  }
\newcommand{\algo@step}[2][]{%
  \expandafter\ifnum\value{algonumerate}<\m@ne
  \PackageError{ccalgo}{Missing \protect\item}{}%
  \fi
  \cc@ifempty{#1}{\item}{\item[#1]}%
  \def\@tempa{#2}\ifx\@tempa\@empty\else\algolabel{#2}\fi%
  }
\newtoks\algotitle
\theorembodyfont{}%
\theoremstyle{ccalgonn}
\newtheorem{named@lg@r@thm*}{\the\algotitle}
\defprefix{named@lg@r@thm*}#1{\the\algotitle}
\theoremstyle{ccalgo}
\providecommand{\cc@thmcnter}{equation}
\newtheorem{named@lg@r@thm}[\cc@thmcnter]{\the\algotitle}
\defprefix{named@lg@r@thm}#1{\the\algotitle~#1}
%%% \ifx\c@namedth@@r@m\@undefined\else
%%% \let\c@named@lg@r@thm\c@namedth@@r@m
%%% \let\thenamed@lg@r@thm\thenamedth@@r@m
%%% \fi
\babel\def\babelInput{Input}[german=Eingabe,french=Entr\'ee]
\babel\def\babelOutput{Output}[german=Ausgabe,french=Sortie]
\babel\def\babelstep{step}[german=Schritt,french=pas]%% ??? pas?
\babel\def\babelStep{Step}[german=Schritt,french=Pas]%% ??? pas?
\newtoks\algorithmmasterkey
\newenvironment{namedalgorithm}[1]{%
  \pagebreak[3]%
  \defprefix{\cc@thmcnter}##1{\the\algotitle~##1}%
  \def\algo@theorem{named@lg@r@thm}%
  \algotitle{#1}%
  \n@medalgorithm}
{\endalgonumerate\csname end\algo@theorem\endcsname}
\newenvironment{namedalgorithm*}[1]{%
  \defprefix{\cc@thmcnter}##1{\the\algotitle}%
  \def\algo@theorem{named@lg@r@thm*}%
  \algotitle{#1}%
  \n@medalgorithm}
{\endalgonumerate\csname end\algo@theorem\endcsname}
\newcommand{\n@medalgorithm}[1][\babelInput,\protect\babelOutput]{%
  \algonumerateinit{#1}%
  \n@m@d@lgorithmgetlongestlabel}
\newcommand{\n@m@d@lgorithmgetlongestlabel}[1][]{%
  \def\@tempa{#1}%
  \ifx\@tempa\@empty\else
    \setbox\@tempboxa\hbox{\algonumerate@makelabel{#1}}%
    \ifdim\wd\@tempboxa>\@algolongestlabel\relax
    \@algolongestlabel\wd\@tempboxa\fi
  \fi
  \n@m@d@lgorithmgetmasterkey
}
\newcommand{\n@m@d@lgorithmgetmasterkey}[1]{%
  \algorithmmasterkey{#1}%
  \edef\@tempa{\the\algorithmmasterkey}\ifx\@tempa\@empty
  \PackageError{ccalgo}{Empty key for algorithm like environment}{}\fi%
  \n@m@d@lgorithm
}
\newcommand{\n@m@d@lgorithm}[1][]{%
  \def\@tempa{#1}%
  \ifx\@tempa\@empty\csname\algo@theorem\endcsname
  \else\csname\algo@theorem\endcsname[#1]\fi%
  \label{\the\algorithmmasterkey}%
  \defprefix{equation}##1{(##1)}% reset equation prefix
  \algo@keywords
  \defprefix{algonumerate}{%
    \Iflabelchanged{\algo@theorem}{\uselabel{\algo@theorem} %
      \ifnum\c@algonumerate>\z@ \babelstep~\fi}}%
  \algonumerate
  }%
\def\algolabel#1{\label{\the\algorithmmasterkey-#1}}%
\newcommand{\stepref}[2]{\babelStep~\short\ref{#1-#2} in \whole\ref{#1}}
\newcommand{\newalgorithm}[2]{%
  \def\newalgo@name{#1}%
  \def\newalgo@title{#2}%
  \n@walgorithm}
\newcommand{\n@walgorithm}[1][\babelInput,\protect\babelOutput]{%
  \protected@edef\@tempa{%
    \noexpand\newenvironment{\newalgo@name}%
    {\noexpand\namedalgorithm{\newalgo@title}[\noexpand#1]}%
    {\noexpand\endnamedalgorithm}%
    \noexpand\newenvironment{\newalgo@name*}%
    {\noexpand\csname namedalgorithm*\endcsname
      {\newalgo@title}[\noexpand#1]}%
    {\noexpand\csname endnamedalgorithm*\endcsname}%
    }\@tempa
  }
\babel\def\algorithmname{Algorithm}[%
  german=Algorithmus,french=Algorithme]
\newalgorithm{algorithm}{\protect\algorithmname}
\def\algo@keywords{%
  \def\keyword##1{\textsf{##1} \ignorespaces}%
  \babel\def\FOR{\keyword{For}}[german=\keyword{F{\"{u}}r}]%
  \babel\def\DO{\keyword{do}}[german=\keyword{erledige}]%
  \babel\def\endFOR{}[]%
  \babel\def\WHILE{\keyword{While}}[german=\keyword{Solange}]%
  \babel\def\endWHILE{}[]%
  \babel\def\REPEAT{\keyword{Repeat}}[german=\keyword{Wiederhole}]%
  \babel\def\UNTIL{\keyword{Until}}[german=\keyword{Bis}]%
  \babel\def\IF{\keyword{If}}[german=\keyword{Falls}]%
  \babel\def\THEN{\keyword{then}}[german=\keyword{dann}]%
  \babel\def\ELIF{\keyword{Else if}}[german=\keyword{Sonst wenn}]%
  \babel\def\ELSE{\keyword{Else}}[german=\keyword{Sonst}]%
  \babel\def\endIF{}[]%
  \babel\def\CALL{\keyword{Call}}[german=\keyword{Rufe}]%
  \babel\def\RETURN{\keyword{Return}}[german=\keyword{Antworte}]%
  \def\@tempa{nohyphenation}\ifx\languagename\@tempa\else%
  \expandafter\selectlanguage\expandafter{\languagename}\fi%
  \def\COMMENT##1{$\{$ ##1 $\}$}%
  }
\newcommand{\optitem}[1]{%
  \cc@ifempty{#1}{\if@inlabel\par\else\item\fi}{\item[#1]}%
  }
\newcommand{\algoprettify}[3]{%
  \setbox2\hbox{#1}%
  \setbox4\hbox{#2}%
  \setbox6\hbox{#3}%
  \setbox0\hbox{\unhcopy2\unhcopy4{ }\unhcopy6}%
  \ifdim\wd0<\linewidth
  \unhbox0
  \else
  \dimen0=\linewidth \advance\dimen0 by -\wd2
  \unhbox2\parbox[t]{\dimen0}{#2\strut}\par\list@parshape\unhbox6
  \fi
  }
\newenvironment{ifblock}[2][]
{%
  \optitem{#1}%
  \nextblock
  \algolabel{if\currentblock}%
  \algoprettify{\IF}{#2}{\THEN}
  \indention
  \refsetrange{if\currentblock}{endif\currentblock}%
  }
{%
  \algolabel{endif\currentblock}%
  \endindention}
\newenvironment{elifblock}[2][]{%
  \optitem{#1}%
  \nextblock
  \algoprettify{\ELIF}{#2}{\THEN}
  \algolabel{elif\currentblock}%
  \indention
  \refsetrange{elif\currentblock}{endelif\currentblock}%
  }{%
  \algolabel{endelif\currentblock}%
  \endindention}
\newenvironment{elseblock}[1][]{%
  \optitem{#1}%
  \nextblock
  \ELSE%
  \algolabel{else\currentblock}%
  \indention
  \refsetrange{else\currentblock}{endelse\currentblock}%
  }{%
  \algolabel{endelse\currentblock}%
  \endindention}
\newenvironment{forblock}[2][]{%
  \optitem{#1}%
  \nextblock
  \algoprettify{\FOR}{#2}{%
    \DO \short\ref{\the\algorithmmasterkey-body\currentblock}}%
  \algolabel{for\currentblock}%
  \block\algolabel{body\currentblock}%
  \refsetrange{for\currentblock}{endfor\currentblock}%
  }{%
  \algolabel{endfor\currentblock}%
  \endblock}
\newenvironment{whileblock}[2][]{%
  \optitem{#1}%
  \nextblock
  \algoprettify{\WHILE}{#2}{%
    \DO \short\ref{\the\algorithmmasterkey-body\currentblock}}%
  \algolabel{while\currentblock}%
  \block
  \algolabel{body\currentblock}%
  \refsetrange{while\currentblock}{endwhile\currentblock}%
  }{%
  \algolabel{endwhile\currentblock}%
  \endblock}
\newenvironment{untilblock}[2][]{%
  \optitem{#1}%
  \nextblock
  \algoprettify{\UNTIL}{#2}{%
    \DO \short\ref{\the\algorithmmasterkey-body\currentblock}}%
  \algolabel{until\currentblock}%
  \block
  \algolabel{body\currentblock}%
  \refsetrange{until\currentblock}{enduntil\currentblock}%
  }{%
  \algolabel{enduntil\currentblock}%
  \endblock}
\newenvironment{blockuntil}[2][]{%
  \optitem{#1}%
  \nextblock
  \def\repeat@cond{#2}%
  \REPEAT \short\ref{\the\algorithmmasterkey-body\currentblock}%
  \algolabel{repeat\currentblock}%
  \block
    \algolabel{body\currentblock}%
    \refsetrange{repeat\currentblock}{endrepeat\currentblock}%
    }{%
  \endblock
\item
  \algolabel{endrepeat\currentblock}%
  \algoprettify{\UNTIL}{\repeat@cond}{}}
\newenvironment{blockwhile}[2][]{%
  \optitem{#1}%
  \nextblock
  \def\repeat@cond{#2}%
  \REPEAT \short\ref{\the\algorithmmasterkey-body\currentblock}%
  \algolabel{repeat\currentblock}%
  \block
    \algolabel{body\currentblock}%
    \refsetrange{repeat\currentblock}{endrepeat\currentblock}%
    }{%
  \endblock
\item
  \algolabel{endrepeat\currentblock}%
  \algoprettify{\WHILE}{\repeat@cond}{}}
\endinput
%%
%% End of file `ccalgo.sty'.
\end{filecontents*}
\begin{filecontents*}{ccaux.sty}
%%
%% This is file `ccaux.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `ccaux,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{ccaux}[2008/03/18 v2.08
         computational complexity, auxiliaries.
         Michael Nuesken, Bonn.]
\newif\if@longarticle \@longarticletrue
\newif\if@cclayout \@cclayouttrue
\newif\if@Tone \@Tonetrue
\newif\if@latin \@latintrue
\newif\if@utfviii \@utfviiifalse
\newif\if@babel \@babelfalse
\newif\if@ams \@amstrue
\newif\if@autotitle \@autotitletrue
\newif\if@ccsectioning \@ccsectioningtrue
\newif\if@cccite \@cccitefalse
\newif\if@natbib \@natbibtrue
\newif\if@manualbibliography \@manualbibliographyfalse
\newif\if@twocolumnbibliography \@twocolumnbibliographyfalse
\newif\if@twocolumnendtitle \@twocolumnendtitletrue
\newif\if@cctheorems \@cctheoremstrue
\newif\if@standardtheorems \@standardtheoremstrue
\newif\if@ccnosepeqncnt \@ccnosepeqncnttrue
\newif\if@ccalgo \@ccalgotrue
\newif\if@theoremitemprefixes \@theoremitemprefixestrue
\newif\if@ccpublish \@ccpublishfalse
\newcount\@textareaversion
\expandafter\def\csname if@cctextarea\endcsname{\ifnum\@textareaversion>0}
\def\@cctextareafalse{\@textareaversion\z@}
\def\@cctextareatrue{\@textareaversion\tw@}
\@cctextareatrue
\newcount\@marginmode \@marginmode\m@ne
\def\numberallwithin#1{\gdef\cc@numberingtoplevel{#1}}
\def\@adjustnumbering{%
  \if@longarticle
  \numberwithin{equation}\cc@numberingtoplevel
  \numberwithin{figure}\cc@numberingtoplevel
  \numberwithin{table}\cc@numberingtoplevel
  \if@cctheorems\if@standardtheorems\else
    \numberwithin{answer}\cc@numberingtoplevel
    \numberwithin{assumption}\cc@numberingtoplevel
    \numberwithin{claim}\cc@numberingtoplevel
    \numberwithin{conjecture}\cc@numberingtoplevel
    \numberwithin{convention}\cc@numberingtoplevel
    \numberwithin{corollary}\cc@numberingtoplevel
    \numberwithin{counterexample}\cc@numberingtoplevel
    \numberwithin{definition}\cc@numberingtoplevel
    \numberwithin{exercise}\cc@numberingtoplevel
    \numberwithin{fact}\cc@numberingtoplevel
    \numberwithin{hypothesis}\cc@numberingtoplevel
    \numberwithin{lemma}\cc@numberingtoplevel
    \numberwithin{notation}\cc@numberingtoplevel
    \numberwithin{note}\cc@numberingtoplevel
    \numberwithin{observation}\cc@numberingtoplevel
    \numberwithin{open}\cc@numberingtoplevel
    \numberwithin{openquestion}\cc@numberingtoplevel
    \numberwithin{problem}\cc@numberingtoplevel
    \numberwithin{proposition}\cc@numberingtoplevel
    \numberwithin{question}\cc@numberingtoplevel
    \numberwithin{remark}\cc@numberingtoplevel
    \numberwithin{result}\cc@numberingtoplevel
    \numberwithin{theorem}\cc@numberingtoplevel
    \numberwithin{thesis}\cc@numberingtoplevel
    \numberwithin{warning}\cc@numberingtoplevel
    \numberwithin{exampleexample}\cc@numberingtoplevel
  \fi\fi
\fi}
\numberallwithin{section}% redo this in the preamble, if necessary
\newcommand{\newwarning}[2]{%
  \expandafter\gdef\csname cc@warn@#1\endcsname{#2}%
  \expandafter\def\csname cc@warncount@#1\endcsname{0}}
\newcommand{\ccClassWarning}[1]{%
  \@ifundefined{cc@warn@#1}{%
    \ClassWarning{cc}{Undefined warning.\MessageBreak
      This should never occur.
      Please inform nuesken@bit.uni-bonn.de .}%
    }{}%
  \expandafter\ifcase\csname cc@warncount@#1\endcsname\relax
  \ClassWarning{cc}{\csname cc@warn@#1\endcsname.\MessageBreak
    Possible further occurencies of this warning will be\MessageBreak
    collected until the end of the document.\MessageBreak
    This one was}%
  \or
  \AtEndDocument{%
    \ClassWarningNoLine{cc}{Repeated warning collected \csname
      cc@warncount@#1\endcsname\space times:\MessageBreak
      \csname cc@warn@#1\endcsname}%
    }%
  \else
  \fi
  \expandafter\count@=0\csname cc@warncount@#1\endcsname\relax
  \advance\count@\@ne
  \expandafter\xdef\csname cc@warncount@#1\endcsname{\the\count@}%
  }
\newcommand{\cc@addto}[2]{%
  \expandafter\ccaddto\expandafter{\csname
  cc@\string#1\endcsname}{#2}{#1}}
\providecommand{\addto}[2]{%
  \expandafter\ccaddto\expandafter{\csname
  cc@\string#1\endcsname}{#2}{#1}}
\newcommand{\ccaddto}[3]{%
  \ifx#1\@undefined
    \gdef#1{#2}%
    \AtBeginDocument{\expandafter\ccaddtonow\expandafter{#1}#3}%
  \else
    \ifx#1\relax
      \gdef#1{#2}%
      \AtBeginDocument{\expandafter\ccaddtonow\expandafter{#1}#3}%
    \else
      {\toks@\expandafter{#1#2}%
        \xdef#1{\the\toks@}}%
    \fi
  \fi
}
\newcommand{\ccaddtoINDOC}[3]{%
  \ifx#1\@undefined
    \gdef#1{#2}%
  \else
    \ifx#1\relax
      \gdef#1{#2}%
    \else
      {\toks@\expandafter{#1#2}%
        \xdef#1{\the\toks@}}%
    \fi
  \fi
}
\AtBeginDocument{\global\let\ccaddto\ccaddtoINDOC}
\newcommand{\ccaddtonow}[2]{%
  \ifx#2\@undefined
    \gdef#2{#1}%
  \else
    \ifx#2\relax
      \gdef#2{#1}%
    \else
      {\toks@\expandafter{#2#1}%
        \xdef#2{\the\toks@}}%
    \fi
  \fi
}
\long\def\cc@ifempty#1{\cc@xifempty#1@@..\@nil}
\long\def\cc@xifempty#1#2@#3#4#5\@nil{%
  \ifx#3#4\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
\long\def\cc@ifnotempty#1{\cc@ifempty{#1}{}}
\def\babel\def#1#2{%
  \@ifnextchar[{\n@wbabel{#1}{#2}}{\n@wbabel{#1}{#2}[]}}
\def\n@wbabel#1#2[#3]{%
  \def#1{#2}%
  \cc@ifnotempty{#2}{\cc@addto\captionsenglish{\def#1{#2}}}%
  \babeladdtranslations#1{#3}%
}
\def\b@beladdlang#1=#2=#3\@@@#4{%
  \cc@ifnotempty{#2}{%
    \expandafter\cc@addto\csname captions#1\endcsname{\def#4{#2}}%
  }%
}
\def\babeladdtranslations#1#2{%
  \@for\@tempa:=#2\do{\expandafter\b@beladdlang\@tempa==\@@@#1}%
}
\def\condbreak#1{%
  \vskip 0pt plus #1%
  \pagebreak[3]%
  \vskip 0pt plus -#1%
  \relax}
\let\ccorg@enumerate\enumerate
\def\enumerate{\@ifstar{\count251\c@enumi
        \count252\c@enumii
        \count253\c@enumiii
        \count254\c@enumiv
        \ccorg@enumerate
        \c@enumi\count251
        \c@enumii\count252
        \c@enumiii\count253
        \c@enumiv\count254}%
        {\ccorg@enumerate}}
\endinput
%%
%% End of file `ccaux.sty'.
\end{filecontents*}
\begin{filecontents*}{cccite.sty}
%%
%% This is file `cccite.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cccite,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{cccite}[2000/02/29 v2.05 cc cite helper package]
\PackageWarningNoLine{cccite}{%
  The package cccite is obsolete.\MessageBreak
  Better use cc2cite.
  }
\RequirePackage{ccdbs}
\DefaultBibliographyStyle{cc}
\let\ccorg@cite\cite
\let\ccorg@@cite\@cite
\def\@citeseppen{-5}
\def\@cite#1#2{{#1\if@tempswa , #2\fi}}
\def\cite#1{\def\citeauthoryear##1##2{##1\ (##2)}\@citex{#1}}
\def\citeauthor#1{\def\citeauthoryear##1##2{##1}\@citex{#1}}
\def\citeyear#1{\def\citeauthoryear##1##2{##2}\@citex{#1}}
\def\shortcite#1{\def\citeauthoryear##1##2{##1\ ##2}\@citex{#1}}
\def\parencite#1{\def\citeauthoryear##1##2{(##1\ ##2)}\@citex{#1}}
\def\citemul#1{\@mcite #1\@\@}
\def\@mcite#1,#2\@\@{\citeauthor{#1}\hskip3pt(\citeyear{#1,#2})}
\def\@citex#1{\@tempswafalse%
 \if@filesw\immediate\write\@auxout{\string\citation{#1}}\fi
  \def\@citea{}\@cite{\@for\@citeb:=#1\do
    {\@citea\def\@citea{,\penalty\@citeseppen\ }\@ifundefined
       {b@\@citeb}{{\bf ?}\@warning
       {Citation `\@citeb' on page \thepage \space undefined}}%
{\csname b@\@citeb\endcsname}}}{}}
\let\ccorg@cite\cite
\newcommand{\citet}{\let\which@cite\ccorg@cite\cc@citea}
\let\cite\citet
\newcommand{\citep}{\let\which@cite\parencite\cc@citea}
\newcommand{\citealt}{\let\which@cite\shortcite\cc@citea}
\newcommand{\citealp}{\let\which@cite\shortcite\cc@citea}
\newcommand{\citetext}[1]{(#1)}
\newcommand{\@citeyearpar}[1]{\citetext{\citeyear{#1}}}
\newcommand{\citeyearpar}{\let\which@cite\@citeyearpar\cc@citea}
\let\ccorg@citeauthor\citeauthor
\renewcommand{\citeauthor}{\let\which@cite\ccorg@citeauthor\cc@citea}
\newcommand{\citefullauthor}{\citeauthor*}
\newcommand{\Citet}{\let\which@cite\cite\cc@citea}
\newcommand{\Citep}{\let\which@cite\parencite\cc@citea}
\newcommand{\Citealt}{\let\which@cite\shortcite\cc@citea}
\newcommand{\Citealp}{\let\which@cite\shortcite\cc@citea}
\newwarning{poormancitea}{%
  This is only a poor (wo)man's version of this command.\MessageBreak
  Please use the package  natbib.sty  for full features.\MessageBreak
  Drop the document class option  cccite }
\newcommand{\cc@citea}{%
  \ccClassWarning{poormancitea}%
  \@tempswafalse\@ifstar{\cc@cite@st}{\cc@citeb}}
\def\cc@cite@st{\@tempswatrue\cc@citeb}
\newcommand{\cc@citeb}[1][]{\def\cc@cite@a{#1}\cc@citec}
\newcommand{\cc@citec}[1][]{\def\cc@cite@b{#1}\which@cite}
\def\@biblabel#1{%
  \def\citename##1{##1}% for authordate bib styles
  }
\newcounter{NAT@ctr}
\def\NAT@noname{{}}
\let\ccorg@lbibitem\@lbibitem
\def\@lbibitem[#1]#2{%
  \let\citeauthoryear\bib@citeauthoryear
  \if@filesw\@tempswatrue\else\@tempswafalse\fi\@fileswfalse
  \ccorg@lbibitem[#1]{#2}%
  \if@tempswa\@fileswtrue\fi
  \NAT@ifcmd#1(@)(@)\@nil{#2}\ignorespaces}
\newcommand\NAT@ifcmd{\futurelet\NAT@temp\NAT@ifxcmd}
\newcommand\NAT@ifxcmd{%
  \ifx\NAT@temp\relax\else\expandafter\NAT@bare\fi}
\def\NAT@bare#1(#2)#3(@)#4\@nil#5{%
  \if @#2
  \expandafter\NAT@apalk#1, , \@nil{#5}\else
  \stepcounter{NAT@ctr}%
  \cc@wrout{\arabic {NAT@ctr}}{#2}{#1}{#3}{#5}
\fi
}
\newcommand\NAT@apalk{}
\def\NAT@apalk#1, #2, #3\@nil#4{\if\relax#2\relax
  \global\NAT@stdbsttrue
  \cc@wrout{#1}{}{}{}{#4}\else
  \stepcounter{NAT@ctr}%
  \cc@wrout{\arabic {NAT@ctr}}{#2}{#1}{}{#4}\fi}
\newcommand\citeauthoryear{}
\def\bib@citeauthoryear#1#2#3(@)(@)\@nil#4{%
  \stepcounter{NAT@ctr}\if\relax#3\relax
   \cc@wrout{\arabic {NAT@ctr}}{#2}{#1}{}{#4}\else
   \cc@wrout{\arabic {NAT@ctr}}{#3}{#2}{#1}{#4}\fi}
\newcommand\citestarts{\NAT@open}
\newcommand\citeends{\NAT@close}
\newcommand\betweenauthors{and}
\newcommand\astroncite{}
\def\astroncite#1#2(@)(@)\@nil#3{\stepcounter{NAT@ctr}\cc@wrout{\arabic
{NAT@ctr}}{#2}{#1}{}{#3}}
\newcommand\citename{}
\def\citename#1#2(@)(@)\@nil#3{\expandafter\NAT@apalk#1#2, \@nil{#3}}
\newcommand\harvarditem[4][]%
    {\if\relax#1\relax\bibitem[#2(#3)]{#4}\else
        \bibitem[#1(#3)#2]{#4}\fi }
\newcommand\harvardleft{\NAT@open}
\newcommand\harvardright{\NAT@close}
\newcommand\harvardyearleft{\NAT@open}
\newcommand\harvardyearright{\NAT@close}
\AtBeginDocument{\providecommand{\harvardand}{and}}
\newcommand\harvardurl[1]{\textbf{URL:} \textit{#1}}
\newcommand\cc@wrout[5]{%
  \if@filesw
  {\let\protect\noexpand\let~\relax
    \immediate
    \write\@auxout{\string\bibcite{#5}%
      {\protect\citeauthoryear{#3}{#2}}}}\fi
  \ignorespaces}
\endinput
%%
%% End of file `cccite.sty'.
\end{filecontents*}
\begin{filecontents*}{ccdbs.sty}
%%
%% This is file `ccdbs.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `ccdbs,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{ccdbs}[2000/02/20 v2.05 bibliography helper package]
\let\ccorg@bibliographystyle\bibliographystyle
\newif\if@bibstylemissing \@bibstylemissingtrue
\def\bibliographystyle{\@bibstylemissingfalse
  \gdef\bibliographystyle##1{%
    \PackageWarning{ccdbs}{\protect\bibliographystyle\space can be
      used only before \protect\bibliography!}}%
  \ccorg@bibliographystyle}
\let\ccorg@bibliography\bibliography
\def\bibliography{%
  \if@bibstylemissing
  \bibliographystyle{\bibstyle@default}%
  \fi
  \ccorg@bibliography}
\newcommand{\DefaultBibliographyStyle}[1]{%
  \def\bibstyle@default{#1}}
\DefaultBibliographyStyle{plain}
\endinput
%%
%% End of file `ccdbs.sty'.
\end{filecontents*}
\begin{filecontents*}{cclayout.sty}
%%
%% This is file `cclayout.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cclayout,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{cclayout}[2012/06/22 v2.25 cclayout. MNuesken]
\let\@contact\relax
\newcommand{\contact}[1]{\gdef\@contact{#1}}
\AtBeginDocument{\if@ccpublish
  \@ifundefined{@contact}{%
    \ClassWarningNoLine{cc}{Who is the contact author?\MessageBreak
      Use \protect\contact\space in the preamble!}%
    }{}%
  \fi}
\let\@received\relax
\newcommand{\received}[1]{\gdef\@received{#1}}
\AtBeginDocument{\if@ccpublish
  \@ifundefined{@received}{%
    \ClassWarningNoLine{cc}{Missing submission/received date.\MessageBreak
      Use \protect\received\space in the preamble.}{}%
    }{}%
  \fi}
\def\submitted{\received}
\let\@titlehead\relax
\newcommand{\titlehead}[1]{\gdef\@titlehead{#1}}
\let\@authorhead\@undefined
\newcommand{\authorhead}[1]{\gdef\@authorhead{#1}}
\let\@authorlist\@undefined
\newcommand{\authorlist}[1]{\gdef\@authorlist{#1}}
\let\abstract\@undefined\let\endabstract\@undefined
\babel\def\ccabstractname{Abstract}[%
  german=Zusammenfassung,french=R\'esum\'e]
\RequirePackage{environ}[2008/06/18]
\def\@abstract@macro{}
\long\def\for@cc@abstract#1{%
  \gdef\@abstract@macro{\begin{@abstr}{\ccabstractname}#1\end{@abstr}}}
\newenvironment{abstract}{\Collect@Body\for@cc@abstract}{}
\newcommand{\Abstract}{\for@cc@abstract}
\babel\def\cckeywordsname{Keywords}[%
  german=Stichworte,french=Mot-cl\'e]
\def\@keywords@macro{}
\long\def\for@cc@keywords#1{%
  \gdef\@keywords@macro{\begin{@abstr}{\cckeywordsname}#1\end{@abstr}}}
\newenvironment{keywords}{\Collect@Body\for@cc@keywords}{}
\babel\def\ccsubjectclassificationname{Subject classification}[%
  german=Klassifizierung,french=Classification de suj\`et]
\def\@subject@macro{}
\long\def\for@cc@subject#1{%
  \gdef\@subject@macro{\begin{@abstr}{\ccsubjectclassificationname}
      #1
    \end{@abstr}}}
\newenvironment{subject}{\Collect@Body\for@cc@subject}{}
\newdimen\@abstrwidth
\newbox\@abstr@box
\newenvironment{@abstr}[1]{%
  \setbox\@abstr@box\vbox\bgroup%
  \@parboxrestore
  \ifdim\@abstrwidth>\hsize\@abstrwidth\hsize\fi
  \leftmargin.5\hsize \advance\leftmargin-.5\@abstrwidth
  \rightmargin\leftmargin
  \@trivlist\@newlistfalse\global\@inlabeltrue
  \advance\linewidth -\rightmargin
  \advance\linewidth -\leftmargin
  \advance\@totalleftmargin \leftmargin
  \parshape \@ne \@totalleftmargin \linewidth
  \small
  \def\@listi{\leftmargin\leftmargini
              \topsep 2\p@ \@plus2\p@ \@minus1\p@
              \parsep 1\p@
              \itemsep \parsep}%
  \def\@listii{\leftmargin\leftmarginii
              \labelwidth\leftmarginii
              \advance\labelwidth-\labelsep
              \topsep 0\p@ \@plus1\p@
              \parsep 1\p@
              \itemsep \parsep}%
  \let\@listiii\@toodeep
  \let\@listiv\@toodeep
  \let\@listv\@toodeep
  \let\@listvi\@toodeep
  \textbf{#1. }\ignorespaces}
{%
  \par
  \egroup
  \leavevmode\unvbox\@abstr@box
  \ignorespacesafterend}
\newif\if@abstractoptional
\if@ccpublish\@abstractoptionalfalse\else\@abstractoptionaltrue\fi
\newcommand{\noabstract}{\ClassWarning{cc}{You are using a non
    documented feature}\@abstractoptionaltrue}
\newif\if@keywordsoptional
\if@ccpublish\@keywordsoptionalfalse\else\@keywordsoptionaltrue\fi
\newcommand{\nokeywords}{\ClassWarning{cc}{You are using a non
    documented feature}\@keywordsoptionaltrue}
\newif\if@subjectoptional
\if@ccpublish\@subjectoptionalfalse\else\@subjectoptionaltrue\fi
\newcommand{\nosubject}{\ClassWarning{cc}{You are using a non
    documented feature}\@subjectoptionaltrue}
\def\@subtitle{}
\newcommand{\subtitle}[1]{\def\@subtitle{#1}}
\def\@version{}
\newcommand{\version}[1]{\def\@version{#1}}
\AtBeginDocument{\addtocounter{section}{-1}\refstepcounter{section}}%
\AtEndDocument{\hrule height0pt\label{ccenddocument}}%
\def\@ccunknown{??}
\def\@ccfirst{1}%
\let\@cclast\@ccunknown%
\let\@ccnumberofpages\@ccunknown%
\long\def\cc@secondoffive#1#2#3#4#5{#2}
\AtBeginDocument{%
  \@ifundefined{r@ccenddocument}{}{%
    \@tempcnta\@ne
    \advance\@tempcnta-\@ccfirst
    \protected@xdef\@cclast{\csname r@ccenddocument\endcsname}%
    \xdef\@cclast{\expandafter\cc@secondoffive\@cclast{}{}{}{}{}}%
    \advance\@tempcnta\@cclast%
    \xdef\@ccnumberofpages{\the\@tempcnta}%
  }%
}
\def\@cctxt{}
\newif\if@cchead
\newcommand{\noccpublish}[1]{%
  \global\@ccpublishfalse
  \global\@abstractoptionaltrue% Abstract optional
  \global\@keywordsoptionaltrue% Keywords optional
  \global\@subjectoptionaltrue% Subject class. optional
  \global\@ccheadfalse
  \gdef\@cctxt{#1}%
  }
\newcommand{\ccpublish}[4]{% Deprecated since 2011/07/25
  \global\@ccpublishtrue
  \global\@abstractoptionalfalse% Abstract required
  \global\@keywordsoptionalfalse% Keywords required
  \global\@subjectoptionalfalse% Subject class. required
  \global\@ccheadtrue
  \gdef\@ccyear{#1}%
  \gdef\@ccvolume{#2}%
  \gdef\@ccissue{#3}%
  \gdef\@ccfirst{#4}%
  \gdef\@cctxt{cc \textbf{#2} (#1)}%
  \global\@autotitletrue
  \AtBeginDocument{\addtocounter{section}{-1}\refstepcounter{section}}%
  }
\RequirePackage{xkeyval}[2008/08/13]
\def\cc@fixlencountdown#1{%
  \@tfor\@x:=#1\do{\advance\@tempcnta\m@ne}}
\def\cc@fixelendef#1#2#3#4{%
 \@tempcnta#1%
 \edef\@tempa{#4}\expandafter\cc@fixlencountdown\expandafter{\@tempa}%
 \gdef#3{}\relax
 \@whilenum\@tempcnta>\z@\do{%
    \expandafter\gdef\expandafter#3\expandafter{#3#2}%
    \advance\@tempcnta\m@ne}%
 \expandafter\gdef\expandafter#3\expandafter{#3#4}%
}
\def\cc@fixelen#1#2#3{%
  \@tempcnta#1
  \edef\@tempa{#3}\expandafter\cc@fixlencountdown\expandafter{\@tempa}%
  \@whilenum\@tempcnta>\z@\do{%
    #2%
    \advance\@tempcnta\m@ne}%
  \edef\@tempa{\noexpand\cc@fixelena#3\noexpand\@@@}\@tempa%
}
\def\cc@fixelena#1\@@@{%
  \@tfor\@x:=#1\do{%
    \advance\@tempcnta\@ne
    \ifnum\@tempcnta>\z@\@x\fi
  }%
}
\define@boolkey{ccsps}{sps}[true]{}%
\define@key{ccsps}{journal}[cc]{\gdef\@journalname{#1}}%
\define@key{ccsps}{journalnumber}[37]{\gdef\@journalnumber{#1}}%
\define@key{ccsps}{submitted}[??dd Month yyyy??]{%
  \gdef\@received{#1}%
  \gdef\received##1{\ClassWarning{cc}
    {Received/submitted date (##1) override!\MessageBreak
      Using \@received.}}}
\define@boolkey{ccsps}{revisionstage}[true]{%
}
\define@key{ccsps}{DOImsnr}[??]{% manuscript number
  \gdef\@DOImsnr{#1}}
\define@boolkey{ccsps}{TYPESET}[true]{%
  \ifKV@ccsps@TYPESET\let\TYPESET=Y\else\let\TYPESET=N\fi}
\define@boolkey{ccsps}{DISK}[true]{%
  \ifKV@ccsps@DISK\let\DISK=Y\else\let\DISK=N\fi}
\define@boolkey{ccsps}{LE}[true]{%
  \ifKV@ccsps@LE\let\LE=Y\else\let\LE=N\fi}
\define@boolkey{ccsps}{CP}[true]{%
  \ifKV@ccsps@CP\let\CP=Y\else\let\CP=N\fi}
\define@key{ccsps}{draftcopy}[Uncorrected proof]{% watermark text
  \gdef\cc@watermarktext{#1}}
\define@boolkey{ccsps}{helperstrip}[true]{}%
\define@boolkey{ccsps}{grid}[true]{}
\define@boolkey{ccsps}{issuestage}[true]{%
}
\define@boolkey{ccsps}{openaccess}[true]{%
}
\define@boolkey{ccsps}{stageaccess}[true]{% Deprecated.
    \setkeys{ccsps}{openaccess=#1}}
\define@key{ccsps}{year}[????]{\gdef\@ccyear{#1}}
\define@key{ccsps}{volume}[??]{\gdef\@ccvolume{#1}}
\define@key{ccsps}{issue}[??]{\gdef\@ccissue{#1}}%
\define@key{ccsps}{firstpage}[1]{%
  \gdef\@ccfirst{#1}%
  \@tempcnta4\@tfor\@x:=#1\do{\advance\@tempcnta\m@ne}%
  \ifcase\@tempcnta\gdef\@ccfirstiv{#1}%
  \or\gdef\@ccfirstiv{0#1}%
  \or\gdef\@ccfirstiv{00#1}%
  \or\gdef\@ccfirstiv{000#1}%
  \else\ClassError{cc}{First page number too big.}{%
    The number of the first page cannot be larger than 9999.
  }\fi
}
\define@key{ccsps}{copyholder}[\default@copyholder]{\gdef\@copyholdername{#1}}
\def\default@copyholder{%
  \ifKV@ccsps@openaccess The Author(s)
  \else Springer Basel AG\fi}
\define@key{ccsps}{doisuffix}[????-?]{%
  \cc@fixelendef50\@doiinfo{\@journalnumber}%
  \xdef\@doiinfo{%
    10.1007/s\@doiinfo-%
    \noexpand\cc@fixelen30{\noexpand\@ccyear}-%
    #1}}
\define@key{ccsps}{doi}{\gdef\@doiinfo{#1}}
\define@key{ccsps}{onlinedate}[??dd Month yyyy??]{\gdef\@onlinedate{#1}}
\define@key{ccsps}{onlinefirstyear}[\the\year]{\gdef\@ccyear{#1}}
\define@key{ccsps}{coveryear}[\@ccyear]{\gdef\@coveryear{#1}}
\define@boolkey{ccsps}{pdfpage}[true]{%
}
\define@boolkey{ccsps}{xlink}[true]{}
\setkeys{ccsps}{
  sps=false,
  journal={cc}, journalnumber=37,
  grid=false,
  TYPESET=false,
  DISK=false,
  LE=false,
  CP=false,
  DOImsnr,
  openaccess=false,
  revisionstage=false,
  helperstrip=false,
  issuestage=false,
  copyholder,
  year,volume,issue,firstpage,
  onlinefirstyear,coveryear,doisuffix,onlinedate,
  draftcopy
}
\newcommand{\ccsps}[1]{%
  \if@cctextarea\else\ClassError{cc}{Wrong textarea chosen}
  {Remove any textarea or noccpublish option from documentclass.}\fi
  \global\@ccpublishtrue
  \global\@abstractoptionalfalse% Abstract required
  \global\@keywordsoptionalfalse% Keywords required
  \global\@subjectoptionalfalse% Subject class. required
  \global\@ccackfalse% Acknowledgements required
  \global\@ccheadtrue
  \global\@autotitletrue
  \setkeys{ccsps}{sps,#1}
  \gdef\@cctxt{cc \textbf{\@ccvolume} (\@ccyear)}%
  \RequirePackage[mathlines]{lineno}[2005/11/02]
  \ifKV@ccsps@pdfpage
  \setkeys{ccsps}{helperstrip=false}%
  \nolinenumbers
  \else
  \setkeys{ccsps}{helperstrip=true}%
  \RequirePackage[conditional,draft]{draftcopy}
  \draftcopyPageTransform{155 75 translate 65 rotate}
  \draftcopyName{\cc@watermarktext}{75}
  \linenumbers
  \fi
  \RequirePackage[%dvips,
    bookmarks=\ifKV@ccsps@xlink true\else false\fi,
    breaklinks=true,
    colorlinks=\ifKV@ccsps@xlink true\else false\fi,
    linkcolor=\ifKV@ccsps@xlink blue\else black\fi,
    unicode]{hyperref}[2011/04/17 v6.82g]%
  \AtBeginDocument{\init@bare}
  \RequirePackage{breakcites}%
  \RequirePackage{breakurl}[2009/01/24 v1.30]%
  \def\l@title##1{\@dottedtocline{-1}{0pt}{0pt}{{\large\textbf{##1}}}}%
  \let\l@title\l@part
  \ifKV@ccsps@xlink%
  \def\@urlcolor{blue}
  \def\@citecolor{blue}
  \def\externalref##1##2{\hyperimage{##1}{##2}}%
  \def\DOIexternalref##1##2{\hyperimage{##1}{##2}}%
  \InputIfFileExists{bookmarkgreeks.tex}{}{}%
  \else
  \def\@urlcolor{black}%
  \def\@citecolor{black}
  \def\externalref##1##2{##2}%
  \def\DOIexternalref##1##2{##2}%
  \fi%
  \ifKV@ccsps@grid
  \overfullrule=6pt
  \let\twidth\textwidth
  \let\theight\textheight
  \else\overfullrule=0pt\fi
  \InputIfFileExists{JS_info.tex}{}{}%
}
\def\printed@issn{1016-3328}%
\def\electronic@issn{1420-8954}%
\newcommand{\printed}{\let\issn\printed@issn}
\newcommand{\electronic}{\let\issn\electronic@issn}
\printed
\@onlypreamble\ccpublish
\@onlypreamble\ccsps
\@onlypreamble\electronic
\@onlypreamble\printed
\def\extractnamesfr@m@author{%
  \@ifundefined{@authorlist}{%
    \let\and\ignorespaces
    \let\latest@name\relax
    \count@\z@
    \expandafter\extract@names\@author\and\and\@nil}{%
    \@authorlist
    }
  }
\def\extract@names#1\and#2\@nil{%
  \cc@ifempty{#1}{%
    \unskip\if\and\relax\else
    \ifnum\count@>\tw@\authorlastsepmany\else\authorlastsep\fi
    \fi\latest@name
    \let\next\gobble@nil}%
  {%
    \unskip\and\latest@name
    \ifx\latest@name\relax\else\let\and\authorsep\fi
    \extract@name#1\\\@nil
    \let\next\extract@names}%
  \next#2\@nil}
\def\gobble@nil#1\@nil{}
\def\extract@name#1\\#2\@nil{\advance\count@\@ne\def\latest@name{#1}}
\babel\def\ccAND{and}[german=und,french=et]
\def\authorsep{,\penalty-5\ }
\def\authorlastsep{\penalty-5\ \ccAND{} }
\def\authorlastsepmany{,\penalty-5\ \ccAND{} }
\newtoks\latest@lastname
\newtoks\@firstname
\let\@firstlastname\@temptokena
\def\extractauthorheadfr@m@author{%
  {%
    \let\and\@empty
    \latest@lastname{}%
    \toks@{}%
    \count@\m@ne
    \expandafter\extract@lastnames\@author\and\and\@nil
    \ifnum\count@<2
    \xdef\@authorhead{\the\@firstname}
    \else\ifnum\count@<4
    \xdef\@authorhead{\the\toks@}%
    \else
    \xdef\@authorhead{\the\@firstlastname\noexpand\textit{ et al.}}%
    \fi\fi
    }%
  \setbox0\hbox{\small\let\thanks\@gobble\@authorhead}%
  \ifdim\wd0>.7\textwidth
  \ClassWarningNoLine{cc}{Authorhead too long. Use
    \protect\authorhead\space to specify\MessageBreak a shortened
    author list for the headings!}%
  \fi
  }
\def\extract@lastnames#1\and#2\@nil{%
  \advance\count@\@ne
  \cc@ifempty{#1}{%
    \expandafter\cc@ifempty\expandafter{\the\toks@}{%
      \edef\@tempa{\the\latest@lastname}%
      }{%
      \edef\@tempa{\the\toks@\authorheadlastsep\the\latest@lastname}%
      }%
    \toks@\expandafter{\@tempa}%
    \let\next\gobble@nil
    }{%
    \expandafter\cc@ifempty\expandafter{\the\toks@}{%
      \edef\@tempa{\the\latest@lastname}%
      }{%
      \edef\@tempa{\the\toks@\authorheadsep\the\latest@lastname}%
      }%
    \toks@\expandafter{\@tempa}%
    \extract@lastname#1\\\@nil
    \let\next\extract@lastnames}%
  \ifnum\count@=\@ne\@firstlastname\expandafter{\the\toks@}\fi
  \next#2\@nil}
\def\gobble@nil#1\@nil{}
\def\extract@lastname#1\\#2\@nil{%
  \ifnum\count@=\z@\@firstname{#1}\fi
  \extract@lastname@#1 \@nil}
\def\extract@lastname@#1 #2\@nil{%
  \cc@ifempty{#2}{\latest@lastname{#1}}{\extract@lastname@#2\@nil}}
\def\authorheadsep{, }
\def\authorheadlastsep{ \& }
\def\authorheadlastsepmany{ \& }
\let\@author\relax
\AtBeginDocument{%
  \@ifundefined{@author}{\if@ccpublish
    \ClassError{cc}{No \protect\author\space given}{Define an author
      list in the preamble by \protect\author{...}}%
    \else
    \ClassWarningNoLine{cc}{No \protect\author\space given}%
    \fi}{}
  \@ifundefined{@authorhead}{\extractauthorheadfr@m@author}{}}
\let\@title\relax
\AtBeginDocument{%
  \@ifundefined{@title}{\if@ccpublish
    \ClassError{cc}{No \protect\title\space given}{Define a title in
      the preamble by \protect\title{...}}%
    \else
    \ClassWarningNoLine{cc}{No \protect\title\space given}%
    \fi}{}
  \setbox0\hbox{\small\let\thanks\@gobble
    \@ifundefined{@titlehead}{\let\\\ \@title}{\@titlehead}}%
  \ifdim\wd0>.7\textwidth
  \ClassError{cc}{Title too long for running head.\MessageBreak
    Use \protect\titlehead\space to specify\MessageBreak a shortened
      title for the headings!}{}%
  \fi}
\def\extractaffilsfr@om@author{%
  \parindent\z@
  \init@affils
    \expandafter\extract@affils\@author\and\and\@nil
    \if@oddaffil\else\even@sep\even@post\fi
}
\def\init@affils{%
  \let\and\relax
  \global\@oddaffiltrue
  }
\def\extract@affils#1\and#2\@nil{%
  \cc@ifempty{#1}{\let\next\gobble@nil}{%
    \extract@affil#1\\\@nil
    \let\next\extract@affils}%
  \next#2\@nil}
\def\extract@affil#1\\#2\@nil{%
  \affilpre
  \def\currentaddress{\otheraddress
    Current address of \textsc{\ignorespaces#1}:\\}%
  \begin{@ffiliation}
    \textsc{\ignorespaces#1}\\#2
  \end{@ffiliation}
  \affilpost}
\newcommand{\otheraddress}{\end{@ffiliation}\affilsep
  \begin{@ffiliation}}
\def\odd@pre{\par\begin{tabular}{@{}ll@{}}}%
\def\odd@sep{&}%
\def\odd@post{&}%
\def\even@pre{}%
\def\even@sep{\end{tabular}\par\begin{tabular}{@{}ll@{}}}%
\def\even@post{\end{tabular}}%
\newif\if@oddaffil
\def\affilpre{\if@oddaffil\odd@pre\else\even@pre\fi}
\def\affilsep{%
  \if@oddaffil\odd@sep\@oddaffilfalse
  \else\even@sep\@oddaffiltrue
  \fi
  }
\def\affilpost{\if@oddaffil\odd@post\global\@oddaffilfalse
  \else\even@post\global\@oddaffiltrue\fi}
\if@twocolumnendtitle
\newenvironment{@ffiliation}
               {%
                 \minipage[t]{.48\hsize}
                 \dimen@\hsize \advance\dimen@ -1.5em
                 \everypar{\parshape 2 \z@ \hsize 1.5em \dimen@}%
                 \def\\{\unskip\par}%
                 }
               {\strut\par\medskip\endminipage}
\else
\def\affilpre{\par}
\def\affilpost{\par}
\def\affilsep{\par}
\newenvironment{@ffiliation}
               {%
                 \minipage[t]{\hsize}\footnotesize
                 \dimen@\hsize \advance\dimen@ -1.5em
                 \everypar{\parshape 2 \z@ \hsize 1.5em \dimen@}%
                 \def\\{\unskip\par}%
                 }
               {\endminipage\bigskip}
\fi
\ifcase\@textareaversion
\@abstrwidth0.85\textwidth
\or% version 1, used until June 2011
\textwidth=141mm
\@abstrwidth=120mm
\textheight=200mm
\topmargin=0mm
\oddsidemargin=12mm
\evensidemargin=12mm
\marginparwidth=25mm
\headheight=1.25\headheight
\ifnum\@marginmode<\z@\@marginmode\z@\fi
\or% version 2, used since July 2011
\paperwidth=155mm
\paperheight=235mm
\topmargin=-9.6mm
\textheight=45.5pc
\textwidth=119mm
\@abstrwidth=\textwidth
\oddsidemargin=-7.6mm% should be 18mm, will be calculated acc.to \@marginmode
\evensidemargin=-7.6mm% should be 18mm, will be calculated acc.to \@marginmode
\marginparwidth=10mm% will be adapted below
\headheight=1.25\headheight
\ifnum\@marginmode<\z@\@marginmode\tw@\fi% use balanced margins
\else% version negative or larger than max: emptypage
\newdimen\allsidemargin \allsidemargin=.5in
\textwidth=\paperwidth
\advance\textwidth-2\allsidemargin% margin left/right
\marginparsep=1pt
\topmargin-1in
\advance\topmargin\allsidemargin
\textheight=\paperheight
\advance\textheight-\allsidemargin
\advance\textheight-\headheight
\advance\textheight-\headsep
\advance\textheight-\footskip
\advance\textheight-\allsidemargin
\@marginmode\tw@
\sloppy
\@abstrwidth0.85\textwidth
\fi
\newdimen\cc@topmargin \cc@topmargin\topmargin
\newdimen\cc@textwidth \cc@textwidth\textwidth
\newdimen\cc@textheight \cc@textheight\textheight
\AtBeginDocument{%
  {\if@ccpublish
    \@tempswafalse
    \ifnum\@textareaversion>0
       \ifdim\topmargin=\cc@topmargin\relax\else\@tempswatrue\fi
       \ifdim\textwidth=\cc@textwidth\relax\else\@tempswatrue\fi
       \ifdim\textheight=\cc@textheight\relax\else\@tempswatrue\fi
    \fi
    \if@tempswa
      \ClassError{cc}{FATAL ERROR! For publishing in cc the page and text
        dimension must not be manipulated. Remove any packages that
        modify the text or page dimensions. In particular: remove the
        packages^^J
        fullpage.sty,^^J
        a4wide.sty,^^J
        geometry.sty,^^J
        vmargin.sty,^^J
        typearea.sty}{}%
      \aftergroup\endinput
    \fi
  \fi}%
}
\typeout{Now adjusting margins: \the\@marginmode.}
\ifcase\@marginmode
\AtEndOfClass{%
\oddsidemargin\paperwidth
\advance\oddsidemargin-2in
\advance\oddsidemargin-\textwidth
\advance\oddsidemargin-\evensidemargin}
\or
\AtEndOfClass{%
\oddsidemargin\paperwidth
\advance\oddsidemargin-2in
\advance\oddsidemargin-\textwidth
\evensidemargin=5mm
\advance\oddsidemargin-\evensidemargin}
\or
\AtEndOfClass{%
\oddsidemargin\paperwidth
\advance\oddsidemargin-2in
\advance\oddsidemargin-\textwidth
\oddsidemargin.5\oddsidemargin
\evensidemargin\oddsidemargin}
\fi
\AtEndOfClass{%
  \marginparwidth1in
  \advance\marginparwidth-5mm
  \advance\marginparwidth-2\marginparsep
  \ifdim\evensidemargin<\oddsidemargin
  \advance\marginparwidth\evensidemargin
  \else
  \advance\marginparwidth\oddsidemargin
  \fi
}
\newskip\headerindent \headerindent=10mm
\newdimen\headrulewidth \headrulewidth.4pt
\def\ps@cc{\let\@mkboth\markboth
     \let\@oddfoot\@empty
     \let\@evenfoot\@empty
     \let\@oddhead\@empty
     \let\@evenhead\@empty
     \if@ccpublish
       \ps@ccfirst
       \def\@oddfoot{%
         \ifKV@ccsps@helperstrip%
           \begin{picture}(0,0)%
             \put(340,3){{\stripbox}}%
             \put(10,-5){{\tiny Produced with: \texttt{\csname ver@cc.cls\endcsname}}}%
           \end{picture}%
         \fi
       }%
       \let\@evenfoot\@oddfoot
     \fi
     \expandafter\def\expandafter\@oddhead\expandafter{\@oddhead
        \vbox{\hbox to\textwidth{\reset@font\strut
         {\small\@cctxt}%
         \hfil
         {\small
           \@ifundefined{@titlehead}{%
             \let\\\ %
             \@title
             }{%
             \@titlehead
             }}%
         \hbox to\headerindent{\hfil\thepage}%
         }%
       \if@ccpublish\else
       \kern2.6\p@
       \hrule\@height\headrulewidth\kern-\headrulewidth
       \kern-2.6\p@
       \fi
       \vskip\z@
       }%
     }%
     \expandafter\def\expandafter\@evenhead\expandafter{\@evenhead
        \vbox{\hbox to\textwidth{\reset@font\strut
         \hbox to\headerindent{\thepage\hfil}%
         {\small\@authorhead}%
         \hfil
         {\small\@cctxt}%
         }%
       \if@ccpublish\else
       \kern2.6\p@
       \hrule\@height\headrulewidth\kern-\headrulewidth
       \kern-2.6\p@
       \fi
       \vskip\z@
       }%
     }%
     }
\RequirePackage{graphics}[2009/02/05 v1.0o]
\RequirePackage{xcolor}[2007/01/21 v2.11]%
\IfFileExists{Birkh_logo_2010_sps.eps}{%
  \def\birklogo{\bgroup\includegraphics{Birkh_logo_2010_sps.eps}\egroup}
}{%
  \def\birklogo{{\ixpt Birkh{\"{a}}user}}
}
\IfFileExists{dummy_sps.eps}{%
  \def\spslogo{\bgroup\includegraphics{dummy_sps.eps}\egroup}
}{%
  \def\spslogo{{\ixpt Springer Publishing}}
}
\def\ps@ccfirst{%
  \def\@oddfoot{%
    \if@ccpublish
      \ifKV@ccsps@revisionstage%
        \begin{picture}(0,0)%
          \put(0,15){{\smash{\raisebox{-2.25pt}{\spslogo}}}}%
        \end{picture}%
      \fi%
      \ifKV@ccsps@sps
      \begin{picture}(0,0)%
        \put(289.5,15){{\birklogo}}%
      \end{picture}%
      \fi
      \ifKV@ccsps@helperstrip%
      \begin{picture}(0,0)%
        \put(340,3){{\stripbox}}%
        \put(10,-5){{\tiny Produced with: \texttt{\csname ver@cc.cls\endcsname}}}%
      \end{picture}%
      \fi
    \fi}%
  \let\@evenfoot\@oddfoot
  \def\@oddhead{%
    \ifKV@ccsps@grid
      \hbox to\z@{%
        \vbox to\z@{%
          \hsize\twidth
          \vskip\headsep
          \fboxrule=.25pt
          \fboxsep=-.25pt
          \textcolor{lightgray}{%
             \fbox{\vbox to\theight{\hbox to\twidth{\hss}\vss}}%
          }%
          \vss
      }%
      \hss
    }%
    \fi
    \hss
  }%
  \let\@evenhead\@oddhead
}
\AtEndOfClass{\pagestyle{cc}}
\AtEndOfClass{%
  \AtBeginDocument{\@onlypreamble{\author{\if@autotitle\maketitle\fi}}}
  \AtEndDocument{\if@autotitle\makeendtitle\fi}
}
\def\stripbox{\kern -11.7cm%
  {}{%
    \raisebox{.8mm}{%
      \tiny
      \fboxsep1mm\framebox{%
        Journal: {\bf \@journalname}\enspace
        Article No.: {\bf \@DOImsnr}\enspace
        \fboxsep.2mm\fbox{%
          \ifx Y\TYPESET{$\checkmark$}\else{\phantom{$\checkmark$}}\fi
        }~TYPESET\enspace
        \fbox{%
          \ifx Y\DISK{$\checkmark$}\else{\phantom{$\checkmark$}}\fi
        }~DISK\enspace
        \fbox{%
          \ifx Y\LE{$\checkmark$}\else{\phantom{$\checkmark$}}\fi
        }~LE\enspace
        \fbox{%
          \ifx Y\CP{$\checkmark$}\else{\phantom{$\checkmark$}}\fi
        }~CP\enspace
        Disp.: \textbf{\the\year/\the\month/\the\day}\enspace
        Pages: \textbf{\@ccnumberofpages}
      }%
    }%
  }%
} %%
\def\vertrulea{\rule[-7.583pt]{0pt}{7.583pt}}
\def\vertruleb{\rule{2.25pt}{10.2pt}}
\newtoks\cite@hook
\newcommand{\maketitleheadA}{% version before 2011 (Birkh^^e4user)
    \hbox to\textwidth{%
      \vbox to\z@{\vss
        \baselineskip=12pt%
        \halign{\ixpt##\hfil\cr
          comput. complex.~\textbf{\@ccvolume}~(\@ccyear),
          \thepage\ -- \@cclast\cr
          \issn/\expandafter\@gobbletwo\@ccyear%
          /\cc@fixelen20\@ccissue\relax
          \cc@fixelen40\@ccfirst\relax
          --\@ccnumberofpages\
          \$ 1.50+0.20/0\cr}}\hss
      \vbox to\z@{\vss
        \offinterlineskip%
        \halign{##&##\hfil\cr
          \vertrulea&\ixpt
          \copyright{} Birkh{\"{a}}user Verlag, Basel \@ccyear\cr
          \noalign{\hrule}
          \vertruleb\hskip1mm&%
          \vbox to\z@{\vbox to\z@{\vss
              \hbox{\xptsfbx computational complexity}}\vss}%
          \cr}}}\vskip47.333pt
}
\newcommand{\maketitleheadSPS}{% version since 2011 (Springer)
  \hbox to\textwidth{%
    \vbox to\z@{\vss
      \baselineskip=12pt%
      \halign{%
        \ixpt##\hfil\cr
        comput. complex.%
        \ifKV@ccsps@issuestage%
        ~\textbf{\@ccvolume}~(\@ccyear),~\@ccfirst\ -- \@cclast
        \fi\cr
        \ifKV@ccsps@openaccess
        \copyright{} \@copyholdername\ \@ccyear.
        This article is published\cr with open access
        at Springerlink.com\cr
        \else\copyright{} \@copyholdername\ \@ccyear\cr\fi
        \ifKV@ccsps@issuestage
        {\printed@issn/\cc@fixelen20\@coveryear/%
          \cc@fixelen20\@ccissue%
          \cc@fixelen40\@ccfirst%
          -% MN2011/07/27: use + instead?
          \@ccnumberofpages}\cr
        {{\it published online}\ \@onlinedate}\cr
        \else\relax\fi
        DOI \@doiinfo\cr}
    }\hss
    \vbox to\z@{\vss
      \offinterlineskip%
      \halign{##&##\hfil\cr
        \vertrulea&\ixpt\cr
        \noalign{\hrule}
        \vertruleb\hskip1mm&%
        \vbox to\z@{\vbox to\z@{\vss
            \hbox{\xptsfbx computational complexity}}\vss}%
        \cr}}}\vskip47.333pt
}
\def\l@title#1#2{}% Usually ignore title entries.
\def\@@today{\today}% for comparison
\renewcommand{\maketitle}{%
  \global\@topnum\z@   % Prevents figures from going at top of page.
  \cite@hook{}%
  \thispagestyle{ccfirst}
  \if@cchead
  \ifnum\@textareaversion=\tw@\vspace*{15pt}\fi
  \vbox to\z@{\vss
    \setcounter{page}{\@ccfirst}%
    \ifcase\@textareaversion\maketitleheadSPS
    \or\maketitleheadA
    \or\maketitleheadSPS
    \else\maketitleheadSPS
    \fi
    }%
  \fi
  \hrule\@height\z@
  \vskip2.2ex% 4.0mm
  \relax
  \begin{center}
    \if@ccpublish
      \renewcommand{\footnote}[1]{\protect\ClassWarningNoLine{cc}{%
          There are no footnotes allowed in title or author.\MessageBreak
          Your command is ignored.\MessageBreak
          Think about moving your remark to the acknowledgements}}%
      \let\thanks\footnote
    \else
      \renewcommand{\footnote}[1]{\protect\ClassWarningNoLine{cc}{%
          In title or author \string\footnote\space does not work.\MessageBreak
          Avoid footnotes or use \string\thanks}}%
      \def\thefootnote{\@fnsymbol\c@footnote}%
      \def\@makefnmark{%
        \rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
      \long\def\@makefntext##1{\parindent 1em\noindent
        \hb@xt@1.8em{%
          \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
    \fi
    {%
      \Large\bfseries
      \def\\{\penalty-\@M}%
      \expandafter\MakeUppercase\expandafter{\@title}%
      \addcontentsline{toc}{title}{\@title}%
      \par
      }%
    \@ifundefined{@subtitle}{}{{%
        \large\itshape
        \@subtitle
        \par
        }}
    \@ifundefined{@version}{}{{%
        \large\itshape
        \@version
        \par
        }}
    \bigskip
    \vskip1.21ex% 2.2mm
    \vskip\z@
    {%
      \large\scshape
      \extractnamesfr@m@author
      \par
      }%
    \ifKV@ccsps@sps%\if@ccpublish
    \ifx\@date\@@today\else
    \ClassWarningNoLine{cc}{Date ignored! (\@date)}%
    \fi
    \else{%
      \vskip1ex
      \large\@date\par
      }\fi
    \def\@tempa{\vskip5.5ex\let\@tempa\relax}%
    \ifx\@abstract@macro\@empty
      \if@abstractoptional
      \ClassWarningNoLine{cc}{Missing abstract}%
      \else
      \ClassError{cc}{Missing abstract}
      {Define abstract in the preamble using
        \protect\begin{abstract} ... \protect\end{abstract}.}%
      \fi
    \else
      \@tempa\@abstract@macro\par
    \fi
    \ifx\@keywords@macro\@empty
      \if@keywordsoptional
      \ClassWarningNoLine{cc}{Missing keywords}%
      \else
      \ClassError{cc}{Missing keywords}
      {Define keywords in the preamble using
        \protect\begin{keywords} ... \protect\end{keywords}.}%
      \fi
    \else
      \@tempa\@keywords@macro\par
    \fi
    \ifx\@subject@macro\@empty
      \if@subjectoptional
      \ClassWarningNoLine{cc}{Missing subject classification}%
      \else
      \ClassError{cc}{Missing subject}
      {Define subject in the preamble using
        \protect\begin{subject} ... \protect\end{subject}.}%
      \fi
    \else
      \@tempa\@subject@macro\par
    \fi
    \@thanks
    \ifx\@tempa\relax\vskip3ex\fi
  \end{center}
  \setcounter{footnote}{0}%
  \global\let\maketitle\relax
  \global\let\thanks\@gobble
  \global\let\@thanks\relax
  \global\let\author\@notprerr
  \global\let\title\@notprerr
  \global\let\abstract\@notprerr
  \global\let\Abstract\@notprerr
  \global\let\keywords\@notprerr
  \global\let\subject\@notprerr
  \global\let\titlehead\@notprerr
  \global\let\authorhead\@notprerr
  \global\let\received\@notprerr
  \vskip\z@
  \par\@afterindentfalse\@afterheading
  }
\let\@maketitle\@undefined
\let\and\@undefined
\babel\def\ManuscriptReceived{Manuscript received }[%
  german=Manuskript erhalten: ,%
  french=Manuscrit re\c{c}u: ]
\newcommand{\makeendtitle}{%
  \par
  \parindent\z@
  \bigskip
  \@ifundefined{@received}{}{%
    \noindent{\small
      \ManuscriptReceived\@received
      \par}%
    \medskip
    }%
  {\small
    \extractaffilsfr@om@author
    }%
  \gdef\makeendtitle{\ClassWarning{cc}{\protect\makeendtitle\space
      multiply used!}}%
  }
\endinput
%%
%% End of file `cclayout.sty'.
\end{filecontents*}
\begin{filecontents*}{ccproof.sty}
%%
%% This is file `ccproof.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `ccproof,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\ProvidesPackage{ccproof}[2000/02/29 v2.05
  proof environments for cc.  Michael Nuesken, Bonn.]
\RequirePackage{theorem}[1995/11/23 v2.2c]
\RequirePackage{thcc}
\RequirePackage{ccqed}
\newcommand{\Qed}{\@qedtrue\qed}%
\newtoks\everyproof \everyproof{}
\theoremstyle{ccproof}
\theorembodyfont{}
\newtoks\prooftitle
\newtheorem{pr@@f}{\the\prooftitle}
\newenvironment{namedproof}[2][\qedsymbol]{%
  \save@set@qed
  \prooftitle{#2}%
  \def\@tempa{#1}%
  \def\@tempc{\qedsymbol}%
  \ifx\@tempa\@tempc\relax\else\let\qedsymbol\@tempa\fi%
  \the\everyproof \pr@@f
  }{%
  \qed\restore@qed
  \endpr@@f}
\babel\def\Proof{Proof}[german=Beweis,french=Preuve]
\newenvironment{proof}{\namedproof{\Proof}}{\endnamedproof}
\endinput
%%
%% End of file `ccproof.sty'.
\end{filecontents*}
\begin{filecontents*}{ccqed.sty}
%%
%% This is file `ccqed.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `ccqed,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\ProvidesPackage{ccqed}[2014/07/08 v2.25d
  right-justified end-of-proof mark,
  based on Paul Taylor's QED.sty of 24 June 1995]
\def\qed{\protect\@qed{$\qedsymbol$}}
\def\qedsymbol{\square}
\newif\ifAutoQED\AutoQEDfalse
\def\parag@pushright#1{{%
    \parfillskip\z@
    \widowpenalty\@M
    \displaywidowpenalty\@M
    \finalhyphendemerits\z@
    \hbox@pushright
    #1%
    \par}}%
\def\hbox@pushright{%
    \unskip
    \nobreak
    \hfil
    \penalty50
    \hskip.2em
    \null
    \hfill
}%
\def\vbox@pushright#1{\expandafter\message %  (2 Jan 1994)
  {QED.sty could be improved in this case
    (line \the\inputlineno): please ask}%
  \page@pushright{#1}}%
\newif\if@qed\@qedfalse
\def\save@set@qed{\let\saved@ifqed\if@qed\global\@qedtrue}%
\def\restore@qed{\global\let\if@qed\saved@ifqed}
\def\@qed#1{\check@pt@fm@thm
\if@qed
     \global\@qedfalse\pushright{#1}%
\else\ifhmode\ifinner\else\par\fi\fi%
\fi}
\def\@pushright#1{%
  \ifvmode
       \ifinner\vbox@pushright{#1}%
       \else   \page@pushright{#1}%
       \fi
  \else\ifmmode\maths@pushright{\hbox{#1}}%
       \else\ifinner\hbox@pushright{#1}%
            \else\parag@pushright{#1}%
  \fi  \fi  \fi
}
\def\maths@pushright#1{%
  \ifinner
     \hbox@pushright{#1}%
  \else
     \eqno#1%
     \def\]{$$\ignorespaces}%
  \fi
}%
\def\page@pushright#1{% 18 Jan 1994
  \skip@\lastskip
  \ifdim\skip@>\z@
    \unskip
  \else\skip@\z@\relax
  \fi
  \dimen@\baselineskip
  \advance\dimen@-\prevdepth
  \nobreak
  \nointerlineskip
  \hbox to\hsize{%
    \setbox\z@\null
    \ifdim\dimen@>\z@\ht\z@\dimen@\fi
    \box\z@
    \hfill
    #1}%
  \vskip\skip@
}%
\let\nonqed@thm\@thm
\let\nonqed@endthm\@endtheorem
\def\@thm{\save@set@qed\nonqed@thm}
\def\@endtheorem{\ifAutoQED\qed\fi\restore@qed\nonqed@endthm}
\newbox\qed@box
\def\WillHandleQED{\relax
  \ifx\HandleQED\nohandle@qed
    \def\pushright{\global\setbox\qed@box\hbox}%
    \let\QEDbox\qed@box
    \def\HandleQED{\unhbox\QEDbox}%
    \aftergroup\check@handle@qed
  \else
    \let\QEDbox\voidb@x
  \fi
  }
\def\nohandle@qed{%
\errhelp{One of them is missing: see QED.sty.}%
\errmessage{This environment uses \string\WillHandleQED\space and
\string\HandleQED\space incorrectly}}
\def\check@handle@qed{\relax
\ifvoid\qed@box\else\expandafter\nohandle@qed\fi}
\def\UnHandleQED{%
\let\HandleQED\nohandle@qed
\let\QEDbox\voidb@x
\def\pushright{\protect\@pushright}}%
\UnHandleQED
\ifx\theorem@style\undefined
   \def\check@pt@fm@thm{\relax
     \ifx\square\undefined
       \gdef\square{\bigcirc
          \errhelp={Anonymous ftp e-math.ams.com /ams/amsfonts}%
          \errmessage{\string\square\space is an AMS symbol}%
          \global\let\square\bigcirc}%
     \fi
      \ifx\theorem@style\undefined
          \global\let\check@pt@fm@thm\relax
      \else
        \errhelp={The macros \@thm and \@endtheorem
          need to be re-defined.}%
        \errmessage{QED.sty must be loaded AFTER theorem.sty but
          before using \string\newtheorem}%
      \fi
      \global\let\check@pt@fm@thm\relax
      }%
\else
   \def\check@pt@fm@thm{%
      \ifx\square\undefined
         \def\square{\bigcirc
         \errhelp={Anonymous ftp e-math.ams.com /ams/amsfonts}%
         \errmessage{\string\square\space is an AMS symbol}%
         \global\let\square\bigcirc}%
      \fi
      \global\let\check@pt@fm@thm\relax
      }%
\fi
\DeclareOption{auto-QED}{\AutoQEDtrue}%
\DeclareOption{explicit-QED}{\AutoQEDfalse}%
\DeclareOption{black-square}{\def\qedsymbol{\blacksquare}}%
\DeclareOption{open-square}{\def\qedsymbol{\square}}%
\ProcessOptions*
\newif\if@resettagsleft@
\let\standardqed\qed
\def\rescueqed{\qquad\qedsymbol\vphantom{\standardqed}}
\def\eqnoqed{\eqno\hbox{\standardqed}}%\vphantom{\standardqed}}
\let\ccorg@eqnnum\@eqnnum
\let\ccorg@nonumber\nonumber
\def\eqnarrayqed{%
  \global\@eqnswtrue
  \global\let\nonumber\relax
  \addtocounter{equation}\m@ne
  \gdef\@eqnnum{\llap{$\qedsymbol$\vphantom{\standardqed}}%
    \global\let\nonumber\ccorg@nonumber
    \global\let\@eqnnum\ccorg@eqnnum}}
\def\tagqed{\tag*{\iftagsleft@
    \hskip\displaywidth\llap{$\qedsymbol$}\hskip-\displaywidth%
    \else$\qedsymbol$\fi}\vphantom{\standardqed}}
\def\simpletagqed{\iftagsleft@\global\@resettagsleft@true\fi
  \global\tagsleft@false
  \tag*{$\qedsymbol$}\vphantom{\standardqed}}
\def\aftersplitqed{\global\let\endsplit\@endsplit}
\let\ccorg@endsplit\endsplit
\def\@endsplit{\ccorg@endsplit\qed\global\let\endsplit\ccorg@endsplit}%
\def\noqed{}
\def\@ifcurrenv#1#2{\def\@tempa{#1}\ifx\@tempa\@currenvir\relax
  \let\next#2\fi}
\renewenvironment{displaymath}{$$}{$$\@ignoretrue}
\renewcommand{\[}{\begin{displaymath}}
\renewcommand{\]}{\end{displaymath}}
\if@ams
\def\qed{%
  \if@resettagsleft@
    \global\tagsleft@true
    \global\@resettagsleft@false
  \fi
  \let\next\standardqed
  \@ifcurrenv{displaymath}\eqnoqed
  \@ifcurrenv{equation}\noqed
  \@ifcurrenv{eqnarray}\noqed
  \@ifcurrenv{eqnarray*}\eqnarrayqed
  \@ifcurrenv{equation*}\tagqed
  \@ifcurrenv{split}\aftersplitqed
  \@ifcurrenv{multline}\noqed
  \@ifcurrenv{multline*}\simpletagqed
  \@ifcurrenv{gather}\noqed
  \@ifcurrenv{gather*}\tagqed
  \@ifcurrenv{align}\noqed
  \@ifcurrenv{align*}\tagqed
  \@ifcurrenv{alignat}\noqed
  \@ifcurrenv{alignat*}\tagqed
  \next}
\else
\def\qed{%
  \let\next\standardqed
  \@ifcurrenv{displaymath}\eqnoqed
  \@ifcurrenv{equation}\noqed
  \@ifcurrenv{eqnarray}\noqed
  \@ifcurrenv{eqnarray*}\eqnarrayqed
  \next}
\fi
\endinput
%%
%% End of file `ccqed.sty'.
\end{filecontents*}
\begin{filecontents*}{ccref.sty}
%%
%% This is file `ccref.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `ccref,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\RequirePackage{relabel}[1998/09/07 v1.01]
\let\nref\ref
\babel\def\partname{Part}[german=Teil,french=\protect\@Fpt partie]
\defprefix{part}{\partname~}
\babel\def\chaptername{Chapter}[german=Kapitel,french=Chapitre]
\defprefix{chapter}{\chaptername~}
\babel\def\sectionname{Section}[german=Abschnitt,french=Section]
\defprefix{section}{\sectionname~}
\babel\def\subsectionname{Section}[german=Abschnitt,french=Section]
\defprefix{subsection}{\subsectionname~}
\babel\def\subsubsectionname{Section}[german=Abschnitt,french=Section]
\defprefix{subsubsection}{\subsubsectionname~}
\let\ccorg@appendix\appendix
\babel\def\appendixname{Appendix}[german=Anhang,french=Annexe]
\def\appendix{%
  \defprefix{section}{\appendixname~}%
  \defprefix{subsection}{\appendixname~}%
  \defprefix{subsubsection}{\appendixname~}%
  \ccorg@appendix}
\defprefix{equation}#1{(#1)}
\babel\def\figurename{Figure}[german=Figur,french={\scshape Figure}]
\defprefix{figure}{\figurename~}
\babel\def\tablename{Table}[german=Tafel,french={\scshape Table}]
\defprefix{table}{\tablename~}
\numberallwithin{section}
\AtBeginDocument{\@adjustnumbering}
\endinput
%%
%% End of file `ccref.sty'.
\end{filecontents*}
\begin{filecontents*}{ccreltx.sty}
%%
%% This is file `ccreltx.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `ccreltx,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{ccreltx}[2002/05/22 v2.05
         computational complexity, reactivate ltthm.
         Michael Nuesken, Bonn.]
\def\newtheorem#1{%
  \@ifnextchar[{\@othm{#1}}{\@nthm{#1}}}
\def\@nthm#1#2{%
  \@ifnextchar[{\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}}
\def\@xnthm#1#2[#3]{%
  \expandafter\@ifdefinable\csname #1\endcsname
    {\@definecounter{#1}\@newctr{#1}[#3]%
     \expandafter\xdef\csname the#1\endcsname{%
       \expandafter\noexpand\csname the#3\endcsname \@thmcountersep
          \@thmcounter{#1}}%
     \global\@namedef{#1}{\@thm{#1}{#2}}%
     \global\@namedef{end#1}{\@endtheorem}}}
\def\@ynthm#1#2{%
  \expandafter\@ifdefinable\csname #1\endcsname
    {\@definecounter{#1}%
     \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
     \global\@namedef{#1}{\@thm{#1}{#2}}%
     \global\@namedef{end#1}{\@endtheorem}}}
\def\@othm#1[#2]#3{%
  \@ifundefined{c@#2}{\@nocounterr{#2}}%
    {\expandafter\@ifdefinable\csname #1\endcsname
    {\global\@namedef{the#1}{\@nameuse{the#2}}%
  \global\@namedef{#1}{\@thm{#2}{#3}}%
  \global\@namedef{end#1}{\@endtheorem}}}}
\def\@thm#1#2{%
  \refstepcounter{#1}%
  \@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
\def\@xthm#1#2{%
  \@begintheorem{#2}{\csname the#1\endcsname}\ignorespaces}
\def\@ythm#1#2[#3]{%
  \@opargbegintheorem{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
\def\@thmcounter#1{\noexpand\arabic{#1}}
\def\@thmcountersep{.}
\def\@begintheorem#1#2{\trivlist
   \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
\def\@opargbegintheorem#1#2#3{\trivlist
      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
\def\@endtheorem{\endtrivlist}
\endinput
%%
%% End of file `ccreltx.sty'.
\end{filecontents*}
\begin{filecontents*}{ccthm.sty}
%%
%% This is file `ccthm.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `ccthm,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\ProvidesPackage{ccthm}[2014/07/08 v2.25d
  theorem environments for cc.  Michael Nuesken, Bonn.]
\newif\if@theoremitemprefixes
\DeclareOption{theoremitemprefixes}{\@theoremitemprefixestrue}
\DeclareOption{notheoremitemprefixes}{\@theoremitemprefixesfalse}
\ExecuteOptions{theoremitemprefixes}
\ProcessOptions*
\RequirePackage{theorem}[1995/11/23 v2.2c]
\RequirePackage{thcc}
\RequirePackage{relabel}
\newtoks\everytheorem
\everytheorem{}
\if@theoremitemprefixes
\def\EnumerationInTheorems#1{%
  \let\@thm@currentlabel\@empty
  \let\@thm@bare@currentlabel\@empty
  \let\@@refstepcounter\refstepcounter
  \def\refstepcounter##1{%
    \let\refstepcounter\@@refstepcounter
    \let\@@refstepcounter\@undefined
    \refstepcounter{##1}%
    \let\@thm@currentlabel\@currentlabel
    \protected@edef\@thm@bare@currentlabel{{\csname the##1\endcsname}}%
    }%
  \def\theenumi{\@roman\c@enumi}%
  \def\labelenumi{(\theenumi)}%
  \defprefix{enumi}##1{%
    \protect\protect\protect\@@conduselabel
    {{\protect\csname the#1\endcsname}}%
    {\@thm@bare@currentlabel}{\@thm@currentlabel}%
    (##1)}%
  \defprefix{enumii}##1{%
    \protect\protect\protect\@@conduselabel
    {{\protect\csname the#1\endcsname}}%
    {\@thm@bare@currentlabel}{\@thm@currentlabel}%
    (\theenumi.##1)}%
  \def\theenumiii{\@arabic\c@enumiii}%
  \def\labelenumiii{(\theenumiii)}%
  \defprefix{enumiii}##1{%
    \protect\protect\protect\@@conduselabel
    {{\protect\csname the#1\endcsname}}%
    {\@thm@bare@currentlabel}{\@thm@currentlabel}%
    (\theenumi.\theenumii.##1)}%
  \defprefix{enumiv}##1{%
    \protect\protect\protect\@@conduselabel
    {{\protect\csname the#1\endcsname}}%
    {\@thm@bare@currentlabel}{\@thm@currentlabel}%
    (\theenumi.\theenumii.\theenumiii##1)}%
  }
\else
\def\EnumerationInTheorems#1{%
  \def\theenumi{\@roman\c@enumi}%
  \def\labelenumi{(\theenumi)}%
  \defprefix{enumi}##1{(##1)}%
  \defprefix{enumii}##1{(\theenumi.##1)}%
  \def\theenumiii{\@arabic\c@enumiii}%
  \def\labelenumiii{(\theenumiii)}%
  \defprefix{enumiii}##1{(\theenumi.\theenumii.##1)}%
  \defprefix{enumiv}##1{(\theenumi.\theenumii.\theenumiii##1)}%
  }
\fi
\def\reset@prefixrefstepcounter#1{%
  \let\refstepcounter\cc@normal@refstepcounter% Put refstepcounter back to normal
  \refstepcounter{#1}% do normal operation
  \defprefix{equation}##1{(##1)}% reset equation prefix
}
\def\theorempreamblenn\@thm#1#2{%
  \defprefix{#1}##1{#2}%
  \let\cc@normal@refstepcounter\refstepcounter
  \let\refstepcounter\reset@prefixrefstepcounter
  \EnumerationInTheorems{#1}%
  \pagebreak[3]\relax
  \the\everytheorem
  \@thm{#1}{#2}}
\theorem@bodyfont{\theorempreamblenn}
\theoremstyle{ccnn}
\newtoks\theoremtitle
\newtheorem{namedth@@r@m*}{\the\theoremtitle}
\newenvironment{namedtheorem*}[1]{%
  \theoremtitle{#1}\csname namedth@@r@m*\endcsname}
{\csname endnamedth@@r@m*\endcsname}
\babel\def\Answer{Answer}[german=Antwort,french=Reponse]
\newtheorem{answer*}[namedth@@r@m*]{\Answer}%
\babel\def\Assumption{Assumption}[german=Annahme,french=Assomption]
\newtheorem{assumption*}[namedth@@r@m*]{\Assumption}
\babel\def\Claim{Claim}[german=Behauptung,french=Proposition]
\newtheorem{claim*}[namedth@@r@m*]{\Claim}
\babel\def\Conjecture{Conjecture}[german=Vermutung,french=Conjecture]
\newtheorem{conjecture*}[namedth@@r@m*]{\Conjecture}
\babel\def\Convention{Convention}[german=Vereinbarung,french=Convention]
\newtheorem{convention*}[namedth@@r@m*]{\Convention}%
\babel\def\Corollary{Corollary}[german=Korollar,french=Corollaire]
\newtheorem{corollary*}[namedth@@r@m*]{\Corollary}
\babel\def\Counterexample{Counterexample}[%
  german=Gegenbeispiel,french=Contre-exemple]
\newtheorem{counterexample*}[namedth@@r@m*]{\Counterexample}%
\babel\def\Definition{Definition}[german=Definition,french=D\'efinition]
\newtheorem{definition*}[namedth@@r@m*]{\Definition}
\babel\def\Exercise{Exercise}[german=Aufgabe,french=Exercice]
\newtheorem{exercise*}[namedth@@r@m*]{\Exercise}
\babel\def\Fact{Fact}[german=Fakt,french=Fait]
\newtheorem{fact*}[namedth@@r@m*]{\Fact}
\babel\def\Hypothesis{Hypothesis}[german=Hypothese,french=Hypoth\`ese]
\newtheorem{hypothesis*}[namedth@@r@m*]{\Hypothesis}
\babel\def\Lemma{Lemma}[german=Lemma,french=Lemme]
\newtheorem{lemma*}[namedth@@r@m*]{\Lemma}
\babel\def\Notation{Notation}[german=Notation,french=Notation]
\newtheorem{notation*}[namedth@@r@m*]{\Notation}
\babel\def\Note{Note}[german=Notiz,french=Note]
\newtheorem{note*}[namedth@@r@m*]{\Note}
\babel\def\Observation{Observation}[%
  german=Beobachtung,french=Observation]
\newtheorem{observation*}[namedth@@r@m*]{\Observation}
\babel\def\OpenQuestion{Open Question}[%
  german=Offene Frage,french=Question ouverte]
\newtheorem{open*}[namedth@@r@m*]{\OpenQuestion}
\newtheorem{openquestion*}[namedth@@r@m*]{\OpenQuestion}
\babel\def\Problem{Problem}[german=Problem,french=Probl\`eme]
\newtheorem{problem*}[namedth@@r@m*]{\Problem}
\babel\def\Proposition{Proposition}[%
  german=Behauptung,french=Proposition]
\newtheorem{proposition*}[namedth@@r@m*]{\Proposition}
\babel\def\Question{Question}[german=Frage,french=Question]
\newtheorem{question*}[namedth@@r@m*]{\Question}%
\babel\def\Remark{Remark}[german=Bemerkung,french=Remarque]
\newtheorem{remark*}[namedth@@r@m*]{\Remark}
\babel\def\Result{Result}[german=Ergebnis,french=R\'esultat]
\newtheorem{result*}[namedth@@r@m*]{\Result}
\babel\def\Theorem{Theorem}[german=Satz,french=Th\'eor\`eme]
\newtheorem{theorem*}[namedth@@r@m*]{\Theorem}
\babel\def\Thesis{Thesis}[german=These,french=Th\`ese]
\newtheorem{thesis*}[namedth@@r@m*]{\Thesis}%
\babel\def\Warning{Warning}[german=Warnung,french=Alerte]
\newtheorem{warning*}[namedth@@r@m*]{\Warning}%
\babel\def\Example{Example}[german=Beispiel,french=Exemple]
\newenvironment{example*}[1][]{%
  \cc@ifempty{#1}
  {\csname namedtheorem*\endcsname{\Example}}%
  {\csname namedtheorem*\endcsname{\Example}[#1]}%
  \upshape
  \let\qedsymbol\eoesymbol
  }
{\qed\csname endnamedtheorem*\endcsname}
\def\theorempreamble\@thm#1#2{%
  \defprefix{#1}##1{#2~##1}%
  \let\cc@normal@refstepcounter\refstepcounter
  \let\refstepcounter\reset@prefixrefstepcounter
  \EnumerationInTheorems{#1}%
  \pagebreak[3]\relax
  \the\everytheorem
  \@thm{#1}{#2}}
\theorem@bodyfont{\theorempreamble}
\theoremstyle{cc}
\if@ccnosepeqncnt
%%% \let\c@namedth@@r@m\c@equation
%%% \def\thenamedth@@r@m{\theequation}
\def\cc@thmcnter{equation}
\newtheorem{namedth@@r@m}[\cc@thmcnter]{\the\theoremtitle}
\else
\newtheorem{namedth@@r@m}{\the\theoremtitle}
\def\cc@thmcnter{namedth@@r@m}
\fi
\newenvironment{namedtheorem}[1]
  {\theoremtitle{#1}\namedth@@r@m}
  {\endnamedth@@r@m}
\if@standardtheorems
\newtheorem{answer}[\cc@thmcnter]{\Answer}
\newtheorem{assumption}[\cc@thmcnter]{\Assumption}
\newtheorem{claim}[\cc@thmcnter]{\Claim}
\newtheorem{conjecture}[\cc@thmcnter]{\Conjecture}
\newtheorem{convention}[\cc@thmcnter]{\Convention}
\newtheorem{corollary}[\cc@thmcnter]{\Corollary}
\newtheorem{counterexample}[\cc@thmcnter]{\Counterexample}
\newtheorem{definition}[\cc@thmcnter]{\Definition}
\newtheorem{exercise}[\cc@thmcnter]{\Exercise}
\newtheorem{fact}[\cc@thmcnter]{\Fact}
\newtheorem{hypothesis}[\cc@thmcnter]{\Hypothesis}
\newtheorem{lemma}[\cc@thmcnter]{\Lemma}
\newtheorem{notation}[\cc@thmcnter]{\Notation}
\newtheorem{note}[\cc@thmcnter]{\Note}
\newtheorem{observation}[\cc@thmcnter]{\Observation}
\newtheorem{open}[\cc@thmcnter]{\OpenQuestion}
\newtheorem{openquestion}[\cc@thmcnter]{\OpenQuestion}
\newtheorem{problem}[\cc@thmcnter]{\Problem}
\newtheorem{proposition}[\cc@thmcnter]{\Proposition}
\newtheorem{question}[\cc@thmcnter]{\Question}
\newtheorem{remark}[\cc@thmcnter]{\Remark}
\newtheorem{result}[\cc@thmcnter]{\Result}
\newtheorem{theorem}[\cc@thmcnter]{\Theorem}
\newtheorem{thesis}[\cc@thmcnter]{\Thesis}
\newtheorem{warning}[\cc@thmcnter]{\Warning}
\newenvironment{example}[1][]{%
  \cc@ifempty{#1}
  {\namedtheorem{\Example}}%
  {\namedtheorem{\Example}[#1]}%
  \upshape
  \let\qedsymbol\eoesymbol
  }
{\qed\endnamedtheorem}
\else
\newtheorem{answer}{\Answer}
\newtheorem{assumption}{\Assumption}
\newtheorem{claim}{\Claim}
\newtheorem{conjecture}{\Conjecture}
\newtheorem{convention}{\Convention}
\newtheorem{corollary}{\Corollary}
\newtheorem{counterexample}{\Counterexample}
\newtheorem{definition}{\Definition}
\newtheorem{exercise}{\Exercise}
\newtheorem{fact}{\Fact}
\newtheorem{hypothesis}{\Hypothesis}
\newtheorem{lemma}{\Lemma}
\newtheorem{notation}{\Notation}
\newtheorem{note}{\Note}
\newtheorem{observation}{\Observation}
\newtheorem{open}{\OpenQuestion}
\newtheorem{openquestion}{\OpenQuestion}
\newtheorem{problem}{\Problem}
\newtheorem{proposition}{\Proposition}
\newtheorem{question}{\Question}
\newtheorem{remark}{\Remark}
\newtheorem{result}{\Result}
\newtheorem{theorem}{\Theorem}
\newtheorem{thesis}{\Thesis}
\newtheorem{warning}{\Warning}
\newtheorem{exampleexample}{\Example}
\newenvironment{example}{%
  \exampleexample%
  \upshape
  \let\qedsymbol\eoesymbol
  }
{\qed\endexampleexample}
\fi
\babel\def\ccContinued{continued}[%
  german=fortgesetzt,french=continu\'e(e)]
\newenvironment{continued}[1]{%
  \csname namedtheorem*\endcsname{\ref{#1} \ccContinued}%
  }{\csname endnamedtheorem*\endcsname}
\newenvironment{contexample}[1]{%
  \csname namedtheorem*\endcsname{\ref{#1} \ccContinued}%
  \upshape
  \let\qedsymbol\eoesymbol
  }
{\qed\csname endnamedtheorem*\endcsname}
\newcommand{\eoesymbol}{\lozenge}
\endinput
%%
%% End of file `ccthm.sty'.
\end{filecontents*}
\begin{filecontents*}{develop.sty}
% \iffalse meta-comment
%
% Copyright 1998, 2005, Michael Nüsken
% 
% develop.sty
% 30-jul-98 ... build from drafting.sty, ported to LateX2e,
%               extracted best things ...
% 14-dec-98 ... added \pagestyle-change for signdraft
% 05-feb-99 ... now \ifshowlabels may be used for a `local' control
% 25-may-99 ... added \oopscomment
% 27-oct-99 ... Added \showlabelsfalse to \showoopslist.
% 05-apr-00 ... Replaced several \gray commands by \begingray...\endgray
%               so that there is no additional group. 
% 12-apr-00 ... Changed \begingray...\endgray due to missing "color
%               pop"'s reported by dvips
% 15-dec-00 ... added \invisoops, \todo, \invistodo. \oopscomment
%               gives \gray now.
% 19-dec-00 ... added environment draft which disappers in final. But
%               we need the package skipenv now.
% 20-dec-00 ... added changed \@setref, shows labelname if \ref missing.
% 01-sep-09 ... corrected a small error in \thispagestyle
%
% drafting.sty
% 25-mar-92 ... first things
% 06-apr-92 ... more facilities
% 25-aug-92 ... repaired
% 07-apr-94 ... repaired \skipenv; changed \label,\ref,\pageref
%       Remark: \onlysections does not work. I don't know why.
% 17-jun-96 ... changed \showlabels, added \dotproofs
% 04-oct-96 ... some small changes (using PSTricks, using \gray now)
% 18-jun-97 ... added \showcommas
% 29-apr-98 ... changed display of \ref, \pageref and \cite under
%               \showlabels
% 22-sep-99 ... some extra options and updates
%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3a
% 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.3a or later is part of all distributions of LaTeX 
% version 1999/12/01 or later.
%
% -----------------------------------------------------------
% 
%<*chartab>
%\fi
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
% \iffalse meta-comment
%</chartab>
% \fi


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{develop}[2009/09/22 v1.02 develop MNuesken]

\newif\ifdraft
\DeclareOption{draft}{\drafttrue}
\DeclareOption{final}{\draftfalse
  \oopslistfalse
  \showlabelsfalse
  \signdraftfalse
  \showcommasfalse
}

\newif\ifoopslist
\newif\ifoops \oopsfalse
\DeclareOption{oopslist}{\oopslisttrue}
\DeclareOption{nooopslist}{\oopslistfalse}

\newif\ifshowlabels
\DeclareOption{dontshowlabels}{\showlabelsfalse}
\DeclareOption{showlabels}{\showlabelstrue}
\DeclareOption{nolabels}{\showlabelsfalse}
\DeclareOption{labels}{\showlabelstrue}

\newif\ifpstrickslabels \pstrickslabelsfalse
\DeclareOption{nopstrickslabels}{\pstrickslabelsfalse}
\DeclareOption{pstrickslabels}{\pstrickslabelstrue}

\newif\ifleftflag \leftflagtrue
\newif\ifrightflag \rightflagtrue
\DeclareOption{hiderightflag}{\rightflagfalse}
\DeclareOption{hideleftflag}{\leftflagfalse}
\DeclareOption{hideflags}{\rightflagfalse\leftflagfalse}
\DeclareOption{showflags}{\rightflagtrue\leftflagtrue}

\newif\ifsigndraft
\DeclareOption{signdraft}{\signdrafttrue}
\DeclareOption{dontsigndraft}{\signdraftfalse}

\newif\ifshowcommas
\DeclareOption{showcommas}{\showcommastrue}
\DeclareOption{dontshowcommas}{\showcommasfalse}

\newif\ifdraftpagenumbering
\DeclareOption{draftpagenumbering}{\draftpagenumberingtrue}
\DeclareOption{finalpagenumbering}{\draftpagenumberingfalse}

\ExecuteOptions{final,nooopslist,labels,signdraft,dontshowcommas,finalpagenumbering}
\ProcessOptions

%%% Moved that to the Option "final"... so you can turn it on!
%%% \ifdraft\else
%%%   \oopslistfalse
%%%   \showlabelsfalse
%%%   \signdraftfalse
%%%   \showcommasfalse
%%% \fi

\ifpstrickslabels
\RequirePackage{pst-node}
\fi

% Provide a macro for writing \gray !
\@ifundefined{gray}{%
  \RequirePackage{color}%
  \definecolor{mediumgray}{gray}{0.5}%
  \definecolor{mediumblack}{gray}{0.1}%
  \providecommand{\gray}{\color{mediumgray}}%
  \providecommand{\black}{\color{mediumblack}}%
  }{}%
\def\begingray{\begingroup\leavevmode\gray{}}
\def\endgray{\endgroup}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%  Commands to display labels ...
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\developInfo#1#2{}%
\newif\ifwas@inlabel
\def\Fbox#1{{\fboxsep1pt\fbox{\tiny\tt #1}}}
\ifpstrickslabels
\newpsstyle{leftflag}{linewidth=.4pt,linecolor=black}
\newcounter{flag}
\def\leftflag#1{%
  \@bsphack% space hack
  %%% \typeout{LEFTFLAG #1}%
  \def\next{\do@leftflagmargin{#1}}%
  \if@inlabel
  \def\next{\global\setbox\@labels\hbox{%
      \unhbox\@labels
      \do@leftflagimmediate{#1}}}%
  \else
  \ifvmode\ifinner\else
  \edef\next{\everypar{\the\everypar
      \noexpand\do@leftflagimmediate{#1}}}%
  \fi\fi
  \fi
  %%% \show\next
  \next
  \@esphack}
\def\do@leftflagmargin#1{%
  \stepcounter{flag}%
  \rnode[t]{T\theflag}{}%
  \marginpar{\rnode[t]{M\theflag}{\Fbox{%
        \parbox[t]{\marginparwidth}{%
          #1 =\whole\ref{#1}%
        }%
      }}%
    \ncbar[style=leftflag,
    angleA=90,armA=.3\baselineskip,
    angleB=90]{M\theflag}{T\theflag}%
  }%
}
\def\do@leftflagimmediate#1{%
  \stepcounter{flag}%
  \rnode[t]{T\theflag}{}%
  \rput[br](0,.7\baselineskip){%
    \rnode[br]{M\theflag}{\Fbox{%
%%%       \parbox[t]{\marginparwidth}{%
          #1% =\whole\ref{#1}%
%%%         }%
      }}}%
  \ncangle[style=leftflag,
    angleA=-90,armA=0mm,
    angleB=90,armB=.7\baselineskip]{M\theflag}{T\theflag}%
}
\let\rightflag\leftflag
\else
\expandafter\ifx\csname rput\endcsname\relax
%%% Defs if PSTricks is NOT loaded.
\def\leftflag#1{%
    \if@inlabel
      \developInfo{develop}{leftflag #1 in label}%
      \global\setbox\@labels\hbox{%
        \unhbox\@labels
        \makebox(0,0){%
          \lower-2\baselineskip\hbox{%
            \llap{%
              \Fbox{#1}%
              }%
            \hskip-.4pt%
            \vrule depth.6\baselineskip
            }%
          }}%
    \else\ifvmode
      \ifinner\else
        \developInfo{develop}{leftflag #1 vmode outer}%
        \marginpar{\rlap{%
          \Fbox{#1}%
          }%
        }%
      \fi
    \else
      \@bsphack
      \developInfo{develop}{leftflag #1 hmode}%
      \makebox(0,0){%
        \lower-2\baselineskip\hbox{%
          \llap{%
            \Fbox{#1}%
          }%
          \hskip-.4pt%
          \vrule depth.6\baselineskip
        }%
      }%
      \@esphack
    \fi\fi
    }
\def\rightflag#1{%
    \if@inlabel
      \developInfo{develop}{rightflag #1 in label}%
      \global\setbox\@labels\hbox{%
        \unhbox\@labels
        \makebox(0,0){%
          \lower-2\baselineskip\hbox{%
            \rlap{%
              \Fbox{#1}%
              }%
            \hskip-.4pt%
            \vrule depth.6\baselineskip
            }%
          }}%
    \else\ifvmode
      \ifinner\else
        \developInfo{develop}{rightflag #1 vmode outer}%
        \marginpar{\rlap{%
          \Fbox{#1}%
          }%
        }%
      \fi
    \else
      \@bsphack
      \developInfo{develop}{rightflag #1 hmode}%
      \makebox(0,0){%
        \lower-2\baselineskip\hbox{%
          \rlap{%
            \Fbox{#1}%
          }%
          \hskip-.4pt%
          \vrule depth.6\baselineskip
        }%
      }%
      \@esphack
    \fi\fi
    }
\else
%%% Defs of \labelflag and \bibflag if PSTricks IS loaded.
\typeout{Using PSTricks ...}
\def\leftflag#1{%
    \if@inlabel
      \developInfo{develop}{leftflag #1 in label}%
      \global\setbox\@labels\hbox{%
        \unhbox\@labels
        \makebox(0,0){%
          \lower-1.8\baselineskip\hbox{\gray%
            \psset{framesep=.4pt,border=0pt}\rput*[r]{0}{%
              \Fbox{#1}%
              }%
            \hskip-.4pt%
            \vrule depth.8\baselineskip
            }%
          }%
        }%
    \else\ifvmode
      \ifinner\else
        \developInfo{develop}{leftflag #1 vmode outer}%
        \marginpar{{\gray\Fbox{#1}}}%
      \fi
    \else
      \@bsphack
      \developInfo{develop}{leftflag #1 hmode}%
      \makebox(0,0){%
        \lower-1.8\baselineskip\hbox{\gray%
          \psset{framesep=.4pt,border=0pt}\rput*[r]{0}{%
            \Fbox{#1}%
            }%
          \hskip-.4pt%
          \vrule depth.8\baselineskip
          }%
        }%
      \@esphack
      \ifwas@inlabel\ignorespaces\fi
    \fi\fi
    }
\def\rightflag#1{%
    \if@inlabel
      \developInfo{develop}{rightflag #1 in label}%
      \global\setbox\@labels\hbox{%
        \unhbox\@labels
        \makebox(0,0){%
          \lower-1.8\baselineskip\hbox{\gray%
            \psset{framesep=.4pt,border=0pt}\rput*[l]{0}{%
              \Fbox{#1}%
              }%
            \hskip-.4pt%
            \vrule depth.8\baselineskip
            }%
          }%
        }%
    \else\ifvmode
      \ifinner\else
        \developInfo{develop}{rightflag #1 vmode outer}%
        \marginpar{{\gray\Fbox{#1}}}%
      \fi
    \else
      \@bsphack
      \developInfo{develop}{rightflag #1 hmode}%
      \makebox(0,0){%
        \lower-1.8\baselineskip\hbox{\gray%
          \psset{framesep=.4pt,border=0pt}\rput*[l]{0}{%
            \Fbox{#1}%
          }%
          \hskip-.4pt%
          \vrule depth.8\baselineskip
        }%
      }%
      \@esphack
    \fi\fi
    }
\fi
\fi

\ifleftflag\else\def\leftflag#1{}\fi
\ifrightflag\else\def\rightflag#1{}\fi

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%  Show labels and references ...
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\let\@@label\label
\let\@@ref\ref
\let\@@pageref\pageref
\let\@@cite\cite
\let\@@bibitem\@bibitem
\let\@@lbibitem\@lbibitem

\newif\ifshowrefs \showrefsfalse
\newif\ifshowcites \showcitesfalse
% \def\ifshowcites{\ifshowrefs}
% \let\showcitestrue\showrefstrue
% \let\showcitesfalse\showrefsfalse
\ifshowlabels
  \showrefstrue
  \showcitestrue

  \def\@@@label{\protect\@@@@label}
  \def\@@@@label#1{\@@label{#1}\ifshowlabels\leftflag{#1}\fi}
  \def\@@@ref{\protect\@@@@ref}
  \def\@@@@ref#1{\ifshowrefs\expandafter\begingray\fi\ifshowrefs\leavevmode\rightflag{#1}\fi\@@ref{#1}\ifshowrefs\expandafter\endgray\fi}
  \def\@@@pageref{\protect\@@@@pageref}
  \def\@@@@pageref#1{\ifshowrefs\leavevmode\rightflag{#1}\fi
    {{\gray{\@@pageref{#1}}}}}
  %%\def\@@@@cite#1#2{\ifshowrefs\rightflag{#1}\fi{{\gray{\@@cite{#1}{#2}}}}}
  \def\@@@cite{\@ifnextchar[{\@@@citea}{\@@@citeb}}
  \def\@@@citea[#1]#2{\ifshowcites\expandafter\begingray\fi\ifshowcites\rightflag{#2}\fi\@@cite[#1]{#2}\ifshowcites\expandafter\endgray\fi}
  \def\@@@citeb#1{\ifshowcites\expandafter\begingray\fi\ifshowcites\rightflag{#1}\fi\@@cite{#1}\ifshowcites\expandafter\endgray\fi}
  %%\@ifundefined{c@#2}{{\gray{\tt #1/#2}}}{}% Need to emulate \cite
  %%instead of \@cite to get the original label ...
  \def\@@@citex[#1][#2]#3{\ifshowcites\expandafter\begingray\fi\ifshowcites\rightflag{#3}\fi\@@citex[#1][#2]{#3}\ifshowcites\expandafter\endgray\fi}
  \def\@@@bibitem#1{%
    \@@bibitem{#1}\ifshowlabels\leavevmode\rightflag{#1}\ignorespaces\fi}
  \def\@@@lbibitem[#1]#2{%
    \@@lbibitem[#1]{#2}\ifshowlabels\leavevmode\rightflag{#2}\ignorespaces\fi}
  \def\@@@citedata{\protect\@@@@citedata}
  \def\@@@@citedata#1{\ifshowcites\expandafter\begingray\fi\ifshowcites\leavevmode\rightflag{#1}\fi\@@citedata{#1}\ifshowcites\expandafter\endgray\fi}

  \long\def\@gobblethree#1#2#3{}
  \def\@@@setref#1#2#3{%
    \ifx#1\relax
    \protect\G@refundefinedtrue
    \nfss@text{\reset@font\bfseries ?\texttt{\expandafter\@gobblethree\string#1}?}%
    \@latex@warning{Reference `#3' on page \thepage \space
      undefined}%
    \else
    \expandafter#2#1\null
    \fi}
  
  \AtBeginDocument{%
    \let\@@label\label          \let\label\@@@label
    \let\@@ref\ref              \let\ref\@@@ref
    \let\@@pageref\pageref      \let\pageref\@@@pageref
    \let\@setref\@@@setref
    %%\let\@@cite\cite            \let\cite\@@@cite
    %%\let\@cite\@@@@cite
    \@ifpackageloaded{natbib}{%
      \let\@@citex\@citex         \let\@citex\@@@citex
      }{%
      \let\@@cite\cite            \let\cite\@@@cite
      }
    \let\@@bibitem\@bibitem     \let\@bibitem\@@@bibitem
    \let\@@lbibitem\@lbibitem   \let\@lbibitem\@@@lbibitem
    \let\@@citedata\@citedata   \let\@citedata\@@@citedata
    }
  \@ifundefined{everyproof}{}{%
    \everyproof\expandafter{\the\everyproof
      \def\@itemlabel{\rlap{$\circ$}\hskip-\labelsep\hskip\parindent}%
      }%
    }%
\fi

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%  Show commas ...
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\ifshowcommas
  {%
    \uccode`\~`\,
    \uppercase{\gdef~}{%
      \ifmmode,\else\smash{\textbf{\huge ,}}\fi
      }}%
  \AtBeginDocument{\catcode`\,\active}%
\fi

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%  Now: time display ...
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% From now.sty 25-oct-91
% A macro for time display

% Calculate hour and minute and define macro \now for time.
\newcount\hour      \hour\time\divide\hour60
\newcount\minute    \minute-\hour\multiply\minute60\advance\minute\time
\def\now{$\ifnum\hour<10 0\fi\the\hour
  ^{\underline{\ifnum\minute<10 0\fi\the\minute}}$}

% End now.sty

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%  Sign draft ...
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
\newtoks\draftsignature \draftsignature{Entwurf}
\ifsigndraft
  \PackageInfo{develop}{%
    Signdraft enabled. %
    Use \string\draftsignature=\string{Bla\string} to change it.}
  \gdef\draft@oddfoot{\rm\footnotesize
    \the\draftsignature
    \hfil
    \thepage
    \hfil
    \LaTeXe(\texttt{\draft@filename}): \today, \now
    }
  \gdef\draft@evenfoot{\rm\footnotesize
    \LaTeXe(\texttt{\draft@filename}): \today, \now
    \hfil
    \thepage
    \hfil
    \the\draftsignature
    }
  \global\let\@oddfoot\draft@oddfoot
  \global\let\@evenfoot\draft@evenfoot
  %% TODO: Modify \pagestyle
  \let\@@pagestyle\pagestyle
  \def\pagestyle#1{\@@pagestyle{#1}%
    \let\@oddfoot\draft@oddfoot
    \let\@evenfoot\draft@evenfoot}
  \let\@@thispagestyle\thispagestyle
  \def\thispagestyle#1{%
    \expandafter\gdef\csname ps@@@#1\endcsname{%
      \@nameuse{ps@#1}%
      \let\@oddfoot\draft@oddfoot
      \let\@evenfoot\draft@evenfoot
      }%
    \@@thispagestyle{@@#1}%
    }
  %%
  \let\draft@include\include
  \let\draft@filename\jobname
  \def\draft@register#1{%
    \gdef\draft@filename{}%
    \@tfor\draft@x:=#1\do{%
      \xdef\draft@filename{\draft@filename\noexpand\string\draft@x}%
      }%
    }
  \def\include#1{%
    \draft@register{#1}%
%    %Starting \texttt{\draft@filename}\dots
%     \addtocontents{toc}{\protect\ifdrafttoc
%       \texttt{\draft@filename}\dots\par
%       \protect\fi}%
    \draft@include{#1}%
%     \addtocontents{toc}{\protect\ifdrafttoc
%       \dots\texttt{\draft@filename}\par
%       \protect\fi}%
%    %Ending \texttt{\draft@filename}.
%     \clearpage
    \global\let\draft@filename\jobname}

\fi

 
\def\draftpagenumbering#1{%
  \global\c@page \@ne \gdef\thepage{\csname @#1\endcsname
    \c@page
    \protect\ifsigndraft
    \protect\rlap{(\protect\texttt{\draft@filename})}%
    \protect\fi}}

\ifsigndraft
\ifdraftpagenumbering
  \let\pagenumbering\draftpagenumbering
  \pagenumbering{arabic}
\fi
\fi

\newif\ifdrafttoc \drafttocfalse
\def\drafttableofcontents{\drafttoctrue\tableofcontents\drafttocfalse}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%  Oopsing ...
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\ifdraft
  \let\oops@label\label
  \PackageInfo{develop}{%
    While in draft mode, you can use \string\oops\string{bla\string}
    to mark critical points in your text (with comment bla). If you
    use the option oopslist, then a list of all these is appended to
    your document.}
  \addtocounter{section}{-1}\refstepcounter{section}%
  \global\let\oopsnewline\cl@@ckpt% Bei includes NICHT den fehlenden ...
  \newcounter{oops}[section]
  \global\let\cl@@ckpt\oopsnewline% ... Teil in der Zählung für oops
                                  % berücksichtigen.
  \def\theoops{\thesection.\arabic{oops}}
  \newtoks\oopslist \oopslist{\@gobble}
  \def\oopsnewline{,\\}
  \let\oopschar\bigstar
  \newcommand{\genericoops}[1]{%
    \ifmmode
      \oopschar\text{?`}\oopschar#1\oopschar?\oopschar%
      \@temptokena{$#1$}%
    \else
      $\oopschar$?`$\oopschar$#1$\oopschar$?$\oopschar$%
      \@temptokena{#1}%
    \fi%
    \oopstrue
    \addtocounter{oops}{1}%
    \edef\@tempa{%
      \noexpand\protect\noexpand\oops@label{oops\theoops}%
      \noexpand\expandafter
      \noexpand\global
      \noexpand\expandafter
      \noexpand\oopslist
      \noexpand\expandafter
      {\noexpand\the\noexpand\oopslist
        \noexpand\oopsnewline
        \relax
        $\oopschar$\theoops:\noexpand\pageref{oops\theoops} %
        \expandafter\the\@temptokena\unskip
      }%
    }%
    \@tempa\relax
  }%
  \newcommand{\oops}{\let\oopschar\bigstar\genericoops}
  \newcommand{\invisoops}[1]{\let\oopschar\clubsuit
    \genericoops{\oopscomment{#1}}}
  \newcommand\oopscomment[1]{{\gray #1}}%
  \newcommand\showoopslist{%
    \ifoops
    \section*{Oopslist}
    \addcontentsline{toc}{section}{Oopslist}%
    {\showrefsfalse\showcitesfalse
      \the\oopslist.
      \par}
    \fi
    }
  \ifoopslist
    \AtEndDocument{\showoopslist}
  \fi
  \newenvironment{draft}
  {\par\noindent$\oopschar$?`$\oopschar$\gray\small}
  {\black$\oopschar$?$\oopschar$\par\ignorespacesafterend}
\else
  \newcommand\genericoops[1]{%
    \ifmmode
      \oopschar\oopschar\oopschar\text{?`}\oopschar#1\oopschar?\oopschar%
    \else
      $\oopschar\oopschar\oopschar$?`$\oopschar$#1$\oopschar$?$\oopschar$%
    \fi%
    \PackageError{develop}{%
      You used \string\oops, which is reserved for drafts.}{%
      Decide your remark.^^JIn a final version, all \string\oops-es
      should be decided.}}
  \newcommand\showoopslist{\PackageError{develop}{%
      You used \string\showoopslist, which is reserved for drafts.}{}}
  \newcommand\oopscomment[1]{}%
  \newcommand{\oops}{\let\oopschar\bigstar\genericoops}
  \newcommand{\invisoops}[1]{}
  %%
  \RequirePackage{skipenv}
  \newenvironment{draft}{}{}
  \skipenv{draft}
\fi
\AtBeginDocument{%
  \providecommand{\todo}{\protect\oops}
  \providecommand{\mtodo}[1]{\marginpar{\tiny\todo{#1}}}
  \providecommand{\invistodo}{\protect\invisoops}
  \providecommand{\text}{\mbox}
  }

\endinput

To upload the package go to <http://dante.ctan.org/upload> and enter:

Name of your contribution
Develop toolkit

Your name
Michael Nüsken

Your email
nuesken@bit.uni-bonn.de

Summary description
This collects a set of macros useful during the development of articles.

Suggested CTAN directory
macros/latex/contrib/gamma

Short description for announcement.
-----------------------------------------------------------------------------
The LaTeX2e class develop collects a set of macros useful during the
development of articles.

The author is Michael Nüsken.
The package is Copyright (c) 1998-2010 Michael Nüsken.

Present version <see above>.
Differences to previous version: ???
-----------------------------------------------------------------------------

Indicate the license.
tpye=Free, LaTeX Project

Input your file's name on your computer.

Submit
\end{filecontents*}
\begin{filecontents*}{relabel.sty}
%%
%% This is file `relabel.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `relabel,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%% Copyright (C) 1998 Michael N\"{u}sken, all rights reserved.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{relabel}[2014/07/08 v1.02 Relabel. MNuesken]
\newif\if@prefixes
\DeclareOption{prefixes}{\@prefixestrue}
\DeclareOption{noprefixes}{\@prefixesfalse}
\newif\if@bare
\DeclareOption{bare}{\@baretrue}
\DeclareOption{nobare}{\@barefalse}
\ExecuteOptions{prefixes,nobare}
\ProcessOptions*
\newcommand*{\Label}[2]{\modify{#2}\label{#1}\revert}
\newcommand*{\modify}[1]{\@bsphack%
  \global\let\revert@currentlabel\@currentlabel
  \global\let\revert@bare@currentlabel\@bare@currentlabel
  \def\@tempb##1{#1}
  \protected@edef\@currentlabel{\@tempb{\@currentlabel}}%
  \@esphack}
\newcommand*{\revert}{\@bsphack
  \global\let\@currentlabel\revert@currentlabel
  \global\let\@bare@currentlabel\revert@bare@currentlabel
  \@esphack}
\let\revert@currentlabel\relax
\let\revert@bare@currentlabel\relax
\newcommand*{\setcurrentlabel}[1]{%
  \protected@edef\@currentlabel{#1}%
  \let\@bare@currentlabel\@currentlabel}
\newcommand*{\defprefix}[1]{\if@prefixes
  \def\next{\expandafter\def\csname p\string @#1\endcsname}%
  \else\def\next{\def\next}\fi\next}
\newcommand*{\useprefix}[1]{\csname p\string @#1\endcsname}
\newcommand*{\uselabel}[1]{\csname p\string @#1\expandafter
  \endcsname\csname the#1\endcsname}
\def\defprefixcond#1#2{\defprefix{#1}{\conduselabel{#2}}}
\newcommand*{\Iflabelchanged}[2]{%
  \protect\protect\protect\@@conduselabel
  {{\protect\csname the#1\endcsname}}%
  {{\csname the#1\endcsname}}%
  {#2}%
  }
\def\conduselabel#1{% obsolete
  \protect\protect\protect\@@conduselabel
  {{\protect\csname the#1\endcsname}}%
  {{\csname the#1\endcsname}}%
  {\csname p\string @#1\endcsname{\csname the#1\endcsname}}%
  }%
\def\@@conduselabel#1#2#3{{%
    \let\protect\relax
    \edef\@tempa{#1}%
    \edef\@tempc{#2}%
    \ifx\@tempa\@tempc\relax\@condlabelfalse\else\@condlabeltrue\fi
    \iflonglabel\@condlabeltrue\fi
    \ifshortlabel\@condlabelfalse\fi
    \if@condlabel #3\fi
    }}
\newif\if@condlabel
\newif\iflonglabel  \longlabelfalse
\newif\ifshortlabel \shortlabelfalse
\def\short\ref#1{{\shortlabeltrue\ref{#1}}}
\def\whole\ref#1{{\longlabeltrue\ref{#1}}}
\def\quiet\ref#1{\vphantom{\ref{#1}}}
\CheckCommand*\refstepcounter[1]{\stepcounter{#1}%
     \protected@edef\@currentlabel
        {\csname p@#1\endcsname\csname the#1\endcsname}%
}
\def\refstepcounter#1{\stepcounter{#1}%
    \protected@edef\@currentlabel
       {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
    \protected@edef\@bare@currentlabel
       {\csname the#1\endcsname}%
}
\if@bare
\def\relabel@label#1{\ifx\@currentlabel\@bare@currentlabel\else
  {\let\@currentlabel\@bare@currentlabel\relabel@olabel{bare@#1}}%
  \fi\relabel@olabel{#1}}
\def\init@bare{\if@bare\let\relabel@olabel\label\let\label\relabel@label\fi}
\AtBeginDocument{\init@bare}%
\def\bare\ref#1{\@ifundefined{r@bare@#1}{\ref{#1}}{\ref{bare@#1}}}
\else
\def\bare{\PackageWarning{relabel}{\string\bare\space disabled! (Use
    option bare to enable it.)}}
\def\init@bare{}
\fi
\let\@bare@currentlabel\@currentlabel
\endinput
%%
%% End of file `relabel.sty'.
\end{filecontents*}
\begin{filecontents*}{thcc.sty}
%%
%% This is file `thcc.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `thcc,chartab')
%% 
%% Copyright 2000-2016
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{thcc}[2012/06/22 v2.25
         computational complexity, theorem layouts.
         Michael Nuesken, Bonn.]
\RequirePackage{theorem}[1995/11/23 v2.2c]
\def\cc@forbiddenpackage{2010/10/26 Forbidden by cc.cls/thcc.sty. Not loaded!}
\expandafter\global\expandafter\let\csname ver@amsthm.sty\endcsname\cc@forbiddenpackage
\expandafter\global\expandafter\let\csname ver@apthm.sty\endcsname\cc@forbiddenpackage
\let\orig@ifpackageloaded\@ifpackageloaded
\def\@ifpackageloaded#1{%
  \expandafter\ifx\csname ver@#1.\@pkgextension\endcsname\cc@forbiddenpackage
    \expandafter\@secondoftwo% consider it as not loaded
  \else
    \gdef\cc@reserved{\orig@ifpackageloaded{#1}}\expandafter\cc@reserved%
  \fi}
\def\activate@shortcite{}
\AtBeginDocument{%
  \@ifpackageloaded{cccite}{%
    \def\activate@shortcite{\let\cite\shortcite}
  }{}%
  \@ifpackageloaded{natbib}{%
    \def\activate@shortcite{%
      \let\cite\citealt
      \let\citet\citealt
      \let\citep\citealp
    }%
  }{}%
  \if@manualbibliography\def\activate@shortcite{}\fi
}
\newskip\postthmcmtskip
\postthmcmtskip .5em plus .5em
\def\th@cc{%
  \normalfont\slshape
  \def\@begintheorem##1##2{\item
    [\hskip\labelsep \theorem@headerfont ##1\ ##2.]}%
  \def\@opargbegintheorem##1##2##3{\item
    [\hskip\labelsep \theorem@headerfont ##1\ ##2]%
    {\normalfont({\activate@shortcite{}##3}).}\hskip\postthmcmtskip}%
  }
\def\th@ccnn{%
  \normalfont\slshape
  \def\@begintheorem##1##2{\item
    [\hskip\labelsep \theorem@headerfont ##1.]}%
  \def\@opargbegintheorem##1##2##3{\item
    [\hskip\labelsep \theorem@headerfont ##1]%
    {\normalfont({\activate@shortcite{}##3}).}\hskip\postthmcmtskip}%
  }
\newskip\postprfcmtskip
\postprfcmtskip .5em plus 1em
\def\th@ccproof{%
  \normalfont\upshape
  \def\@begintheorem##1##2{\item
    [\hskip\labelsep \theorem@headerfont ##1.\ \ ]%
    \itemindent\labelsep}%
  \def\@opargbegintheorem##1##2##3{\item
    [\hskip\labelsep \theorem@headerfont ##1]%
    {\normalfont({\activate@shortcite{}##3}).}\hskip\postprfcmtskip
    \itemindent\labelsep}%
  }
\def\th@ccalgo{%
  \normalfont\upshape
  \def\@begintheorem##1##2{\item
    [\hskip\labelsep \theorem@headerfont ##1\ ##2.]}%
  \def\@opargbegintheorem##1##2##3{\item
    [\hskip\labelsep \theorem@headerfont ##1\ ##2.]
    {\normalfont##3.\par}}%
  }
\def\th@ccalgonn{%
  \normalfont\upshape
  \def\@begintheorem##1##2{\item
    [\hskip\labelsep \theorem@headerfont ##1.]}%
  \def\@opargbegintheorem##1##2##3{\item
    [\hskip\labelsep \theorem@headerfont ##1.] {\normalfont##3.\par}}%
  }
\gdef\theorem@headerfont{\scshape}
\endinput
%%
%% End of file `thcc.sty'.
\end{filecontents*}
\begin{filecontents*}{cc.bst}
% File name: cc.bst
%
% cc.bst style file for BibTeX.
% February 6, 1996
% This style file provides the following citation facilities:
% Usage in Tex    Output:
% file:
% \cite           Cook (1990)
% \citeauthor     Cook
% \citeyear       1990
% \citemul        Cook (1990, 1991a, 1991b)
% \shortcite      Cook 1990
% \parencite      (Cook 1990)
% \nocite

% It was prepared by modifying previous style files.
% Here are acknowledgements:
%>  BibTeX `named' style file for BibTeX version 0.99c, LaTeX version 2.09
%>  Place it in a file called named.bst in the BibTeX search path.  (Placing it
%>  in the same directory as the LaTeX document should also work.)
%>  Support for named citations is provided by named.sty

%>  This version was made by modifying the master file made by
%>  Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU)

%>  Copyright (C) 1985, all rights reserved.
%>  Modifications Copyright 1988, Peter F. Patel-Schneider
%>  Copying of this file is authorized only if either
%>  (1) you make absolutely no changes to your copy, including name, or
%>  (2) if you do make changes, you name it something other than
%>  btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
%>  This restriction helps ensure that all standard styles are identical.

%>  There are undoubtably bugs in this style.  If you make bug fixes,
%>  improvements, etc.  please let me know.  My e-mail address is:
%>      pfps@research.att.com

ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
  }
  {}
  { label extra.label sort.label }

INTEGERS { output.state before.all mid.sentence after.sentence after.block }

FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
}

STRINGS { mode s t }

%FUNCTION {message}
%{
%  duplicate$ top$
%}

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}

FUNCTION {output.check}
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'output.nonnull
  if$
}

FUNCTION {output.bibitem}
{ newline$

  "\bibitem[" write$
  label write$
  "]{" write$

  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
}

FUNCTION {fin.entry}
{ add.period$
  write$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}

FUNCTION {semi.block}
{  %%%%"semi.block" top$
   mid.sentence 'output.state :=
}

%FUNCTION {semi.block}
%{ output.state mid.sentence =
%    'skip$
%    { after.block 'output.state := }
%  if$
%}

FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
        'skip$
        { after.sentence 'output.state := }
      if$
    }
  if$
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}

FUNCTION {new.block.checka}
{ empty$
    'skip$
    'new.block
  if$
}

FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}

FUNCTION {new.semiblock.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'semi.block
  if$
}

FUNCTION {new.sentence.checka}
{ empty$
    'skip$
    'new.sentence
  if$
}

FUNCTION {new.sentence.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.sentence
  if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}

FUNCTION {emphasize}
{ duplicate$ empty$
    { pop$ "" }
    { "{\sl " swap$ * "}" * }
  if$
}

FUNCTION {bold}
{ duplicate$ empty$
    { pop$ "" }
    { "{\bf " swap$ * "}" * }
  if$
}

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  "{\sc " *
  numnames 'namesleft :=
    { namesleft #0 > }

    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=

      nameptr #1 >
        { namesleft #1 >
            { ", " * t * }
            { numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                { " et~al." * }
                { " and " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
  "}" *
}

FUNCTION {format.authors}
{ author empty$
    { "" }
    { author format.names }
  if$
}

FUNCTION {format.editors}
{ editor empty$
    { "" }
    { "ed.\ "
      editor format.names *
    }
  if$
}

FUNCTION {format.editors.reverse}
{ editor empty$
    { "" }
    { editor format.names
      ", ed." *
    }
  if$
}

FUNCTION {format.editors.simple}
{ editor empty$
    { "" }
    { editor format.names }
  if$
}

FUNCTION {format.title}
{ title empty$
    { "" }

    { title "t" change.case$ }

  if$
}

FUNCTION {n.dashify}
{ 't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
        { t #1 #2 substring$ "--" = not
            { "--" *
              t #2 global.max$ substring$ 't :=
            }
            {   { t #1 #1 substring$ "-" = }
                { "-" *
                  t #2 global.max$ substring$ 't :=
                }
              while$
            }
          if$
        }
        { t #1 #1 substring$ *
          t #2 global.max$ substring$ 't :=
        }
      if$
    }
  while$
}

FUNCTION {format.date}
{ year empty$
    { month empty$
        { "" }
%       { "there's a month but no year in " cite$ * warning$
%         month
%       }
        { }
      if$
    }
%    { month empty$
%        {year extra.label * }
%       { month " " * year * extra.label *}
%      if$
%    }
    { year extra.label * }
  if$
}

FUNCTION {format.btitle}
{ title emphasize
}

FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$ * *
}

FUNCTION {either.or.check}
{ empty$
    'pop$
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  if$
}

%FUNCTION {format.bvolume}
%{ volume empty$
%    { "" }
%    { series empty$
%       'skip$
%       {series emphasize ",\ vol.\ " * volume *}
%      if$
%      "volume and number" number either.or.check
%    }
%  if$
%}
%FUNCTION {format.bvolume}
%{ volume empty$
%    { "" }
%    { series empty$
%       'skip$
%       {series emphasize "\ " * volume bold *}
%      if$
%     "volume and number" number either.or.check
%    }
%  if$
%}
FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { "vol." volume tie.or.space.connect
      series empty$
        'skip$
        { " of " * series emphasize * }
      if$
      "volume and number" number either.or.check
    }
 if$
}

%FUNCTION {format.number.series}
%{ volume empty$
%    { number empty$
%       { series field.or.null }
%       { output.state mid.sentence =
%           { "number" }
%           { "Number" }
%         if$
%         number tie.or.space.connect
%         series empty$
%           { "there's a number but no series in " cite$ * warning$ }
%           { " in " * series * }
%         if$
%       }
%      if$
%    }
%    { "" }
%  if$
%}
FUNCTION {format.number.series}
{ volume empty$
    { number empty$
        { series field.or.null }
        { series empty$
            { "there's a number but no series in " cite$ * warning$ }
            { series "\ " * number bold * }
          if$
        }
      if$
    }
    { "" }
  if$
}

FUNCTION {format.edition}
{ edition empty$
    { "" }
    { output.state mid.sentence =
        { edition "l" change.case$ " edition" * }
        { edition "t" change.case$ " edition" * }
      if$
    }
  if$
}

INTEGERS { multiresult }

FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
        { #1 'multiresult := }
        { t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}

FUNCTION {format.pages}
{ pages empty$
    { "" }
    { pages multi.page.check
        { pages n.dashify }
        { "p." pages tie.or.space.connect }
      if$
    }
  if$
}


FUNCTION {format.vol.num.year}
{ volume field.or.null bold
  number empty$
    'skip$
    { "(" number * ")\," * *
      volume empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
    }
  if$
  year empty$
    'skip$
    { "\ (" * format.date * ")" * }
  if$
}


FUNCTION {format.vol.num.pages}
{ volume field.or.null bold
  number empty$
    'skip$
    { "(" number * ")" * *
      volume empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ",\, pp.\, " * pages n.dashify * }
      if$
    }
  if$
}

FUNCTION {format.chapter.pages}
{ chapter empty$
    'format.pages
    { type empty$
        { "chapter" }
        { type "l" change.case$ }
      if$
      chapter tie.or.space.connect
      pages empty$
        'skip$
        { ", " * format.pages * }
      if$
    }
  if$
}


FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
    { "" }
    { editor empty$
        { "In " booktitle emphasize * }
        { "In " booktitle emphasize * ", " * format.editors * }
      if$
    }
  if$
}

FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
  month empty$ year empty$ note empty$
  and and and and and

  key empty$ not and

    { "all relevant fields are empty in " cite$ * warning$ }
    'skip$
  if$
}

FUNCTION {format.publisher.address}
{ address empty$
    'publisher
    { publisher ", " * address * }
  if$
}

FUNCTION {format.thesis.type}
{ type empty$
    'skip$
    { pop$
      type "t" change.case$
    }
  if$
}

FUNCTION {format.tr.number}
{ type empty$
    { "Technical Report" }
    'type
  if$
  number empty$
    { "t" change.case$ }
    { number tie.or.space.connect }
  if$
}

FUNCTION {format.article.crossref}
{ key empty$
    { journal empty$
        { "need key or journal for " cite$ * " to crossref " * crossref *
          warning$
          ""
        }
        { "In {\em " journal * "\/}" * }
      if$
    }
    { "In " key * }
  if$
  " \shortcite{" * crossref * "}" *
}

FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
  editor num.names$ duplicate$
  #2 >
    { pop$ " et~al." * }
    { #2 <
        'skip$
        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            { " et~al." * }
            { " and " * editor #2 "{vv~}{ll}" format.name$ * }
          if$
        }
      if$
    }
  if$
}

FUNCTION {format.book.crossref}
{ volume empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      "In "
    }
    { "Volume" volume tie.or.space.connect
      " of " *
    }
  if$
  editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
        { series empty$
            { "need editor, key, or series for " cite$ * " to crossref " *
              crossref * warning$
              "" *
            }
            { "{\em " * series * "\/}" * }
          if$
        }
        { key * }
      if$
    }
    { format.crossref.editor * }
  if$
  " \shortcite{" * crossref * "}" *
}

FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
        { booktitle empty$
            { "need editor, key, or booktitle for " cite$ * " to crossref " *
              crossref * warning$
              ""
            }
            { "In {\em " booktitle * "\/}" * }
          if$
        }
        { "In " key * }
      if$
    }
    { "In " format.crossref.editor * }
  if$
  " \shortcite{" * crossref * "}" *
}

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  semi.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal emphasize "\ " * format.vol.num.year * "journal" output.check
      format.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors.simple "author and editor" output.check }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  semi.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      new.block
      format.number.series output
      new.sentence
      format.publisher.address "publisher" output.check
    }
    { new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

FUNCTION {booklet}
{ output.bibitem
  format.authors output
  semi.block
  format.title "title" output.check
  howpublished address new.block.checkb
  howpublished output
  address output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {inbook}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  semi.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      format.chapter.pages "chapter and pages" output.check
      new.block
      format.number.series output
      new.sentence
      format.publisher.address "publisher" output.check
    }
    { format.chapter.pages "chapter and pages" output.check
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

FUNCTION {incollection}
{ output.bibitem
  format.authors "author" output.check
  semi.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      format.chapter.pages output
      new.sentence
      format.publisher.address "publisher" output.check
      format.edition output
      format.date "year" output.check
    }
    { format.incoll.inproc.crossref output.nonnull
      format.chapter.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  semi.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      address empty$
        { organization publisher new.sentence.checkb
          organization output
          publisher output
          format.date output
        }
        { address output.nonnull
          format.date output
          organization output
          publisher output
        }
      if$
      format.pages output
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {conference} { inproceedings }

FUNCTION {manual}
{ output.bibitem
  author empty$
    { organization empty$
        'skip$
        { organization output.nonnull
          address output
        }
      if$
    }
    { format.authors output.nonnull }
  if$
  semi.block
  format.btitle "title" output.check
  author empty$
    { organization empty$
        { address new.block.checka
          address output
        }
        'skip$
      if$
    }
    { organization address new.block.checkb
      organization output
      address output
    }
  if$
  format.edition output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
  format.authors "author" output.check
  semi.block
  format.title "title" output.check
  new.block
  "Master's thesis" format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

FUNCTION {misc}
{ output.bibitem
  format.authors "author" output.check
  title howpublished new.semiblock.checkb
  format.title output
  howpublished new.block.checka
  howpublished output
  format.date output
  new.block
  note output
  fin.entry
  empty.misc.check
}

FUNCTION {phdthesis}
{ output.bibitem
  format.authors "author" output.check
  semi.block
  format.btitle "title" output.check
  new.block
  "PhD thesis" format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

FUNCTION {proceedings}
{ output.bibitem
  editor empty$
    { organization output }
%    { format.editors output.nonnull }
    { format.editors.reverse output.nonnull }
  if$
  semi.block
  format.btitle "title" output.check
  format.bvolume output
  format.number.series output
  address empty$
    { editor empty$
        { publisher new.sentence.checka }
        { organization publisher new.sentence.checkb
          organization output
        }
      if$
      publisher output
      format.date "year" output.check
    }
    { address output.nonnull
      format.date "year" output.check
      new.sentence
      editor empty$
        'skip$
        { organization output }
      if$
      publisher output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  semi.block
  format.title "title" output.check
  new.block
  format.tr.number output.nonnull
  institution "institution" output.check
  address output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

FUNCTION {unpublished}
{ output.bibitem
  format.authors "author" output.check
  semi.block
  format.title "title" output.check
  new.block
  note "note" output.check
  format.date output
  fin.entry
}

FUNCTION {default.type} { misc }


MACRO {jan} {"January"}
MACRO {feb} {"February"}
MACRO {mar} {"March"}
MACRO {apr} {"April"}
MACRO {may} {"May"}
MACRO {jun} {"June"}
MACRO {jul} {"July"}
MACRO {aug} {"August"}
MACRO {sep} {"September"}
MACRO {oct} {"October"}
MACRO {nov} {"November"}
MACRO {dec} {"December"}



READ

FUNCTION {sortify}
{ purify$
  "l" change.case$
}

INTEGERS { len }

FUNCTION {chop.word}
{ 's :=
  'len :=
  s #1 len substring$ =
    { s len #1 + global.max$ substring$ }
    's
  if$
}

INTEGERS { et.al.char.used }

FUNCTION {initialize.et.al.char.used}
{ #0 'et.al.char.used :=
}

EXECUTE {initialize.et.al.char.used}

FUNCTION {format.lab.names}
{
  's :=
  s num.names$ 'numnames :=

  mode "cite" =
    { numnames #1 =
      { s #1 "{vv }{ll}" format.name$ }
      { numnames #2 =
          { s #1 "{vv }{ll }\& " format.name$ s #2 "{vv }{ll}" format.name$ * }
          { s #1 "{vv }{ll }\bgroup \em et al.\egroup " format.name$ }
        if$
      }
    if$
    }
    { numnames #1 =
      { s #1 "{ll}" format.name$ }
      { numnames #2 =
          { s #1 "{ll }\& " format.name$ s #2 "{ll}" format.name$ * }
          { s #1 "{ll }\bgroup \em et al.\egroup " format.name$ }
        if$
      }
    if$
    }
    if$
}

FUNCTION {author.key.label}
{ author empty$
    { key empty$

        { cite$ #1 #3 substring$ }

        { key }
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {author.editor.key.label}
{ author empty$
    { editor empty$
        { key empty$

            { cite$ #1 #3 substring$ }

            { key }
          if$
        }
        { editor format.lab.names }
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {author.key.organization.label}
{ author empty$
    { key empty$
        { organization empty$

            { cite$ #1 #3 substring$ }

            { "The " #4 organization chop.word #3 text.prefix$ }
          if$
        }
        { key }
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {editor.key.organization.label}
{ editor empty$
    { key empty$
        { organization empty$

            { cite$ #1 #3 substring$ }

            { "The " #4 organization chop.word #3 text.prefix$ }
          if$
        }
        { key }
      if$
    }
    { editor format.lab.names }
  if$
}

FUNCTION {calc.label}
{
  "cite" 'mode :=
  type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.label
    { type$ "proceedings" =
        'editor.key.organization.label
        { type$ "manual" =
            'author.key.organization.label
            'author.key.label
          if$
        }
      if$
    }
  if$

  "\protect\citeauthoryear{" swap$ * "}{" *
  year field.or.null purify$ *  % CHANGED - pfps - 15 Feb 1989
  'label :=

  "sort" 'mode :=
  type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.label
    { type$ "proceedings" =
        'editor.key.organization.label
        { type$ "manual" =
            'author.key.organization.label
            'author.key.label
          if$
        }
      if$
    }
  if$
  "      " *
  year field.or.null purify$ *
  sortify 'sort.label :=
}

FUNCTION {sort.format.names}
{ 's :=
  #1 'nameptr :=
  ""
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { nameptr #1 >
        { "   " * }
        'skip$
      if$

      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=

      nameptr numnames = t "others" = and
        { "et al" * }
        { t sortify * }
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {sort.format.title}
{ 't :=
  "A " #2
    "An " #3
      "The " #4 t chop.word
    chop.word
  chop.word
  sortify
  #1 global.max$ substring$
}

FUNCTION {author.sort}
{ author empty$
    { key empty$
        { "to sort, need author or key in " cite$ * warning$
          ""
        }
        { key sortify }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {author.editor.sort}
{ author empty$
    { editor empty$
        { key empty$
            { "to sort, need author, editor, or key in " cite$ * warning$
              ""
            }
            { key sortify }
          if$
        }
        { editor sort.format.names }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {author.organization.sort}
{ author empty$
    { organization empty$
        { key empty$
            { "to sort, need author, organization, or key in " cite$ * warning$
              ""
            }
            { key sortify }
          if$
        }
        { "The " #4 organization chop.word sortify }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {editor.organization.sort}
{ editor empty$
    { organization empty$
        { key empty$
            { "to sort, need editor, organization, or key in " cite$ * warning$
              ""
            }
            { key sortify }
          if$
        }
        { "The " #4 organization chop.word sortify }
      if$
    }
    { editor sort.format.names }
  if$
}

FUNCTION {presort}

{ calc.label
  sort.label

  "    "
  *
  type$ "book" =

  type$ "inbook" =
  or
    'author.editor.sort
    { type$ "proceedings" =
        'editor.organization.sort
        { type$ "manual" =
            'author.organization.sort
            'author.sort
          if$
        }
      if$
    }
  if$

  *

  "    "
  *
  year field.or.null sortify
  *
  "    "
  *
  cite$
  *
  "    "
  *
  title field.or.null
  sort.format.title
  *
  #1 entry.max$ substring$
  'sort.key$ :=
}

ITERATE {presort}

SORT

STRINGS { longest.label last.sort.label next.extra }

INTEGERS { longest.label.width last.extra.num }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
  #0 int.to.chr$ 'last.sort.label :=
  "" 'next.extra :=
  #0 'longest.label.width :=
  #0 'last.extra.num :=
}

FUNCTION {forward.pass}
{ last.sort.label sort.label =
    { last.extra.num #1 + 'last.extra.num :=
      last.extra.num int.to.chr$ 'extra.label :=
    }
    { "a" chr.to.int$ 'last.extra.num :=
      "" 'extra.label :=
      sort.label 'last.sort.label :=
    }
  if$
}

FUNCTION {reverse.pass}
{ next.extra "b" =
    { "a" 'extra.label := }
    'skip$
  if$
  label extra.label * "}" * 'label :=   % CHANGED - pfps 15 Feb 1989
  label width$ longest.label.width >
    { label 'longest.label :=
      label width$ 'longest.label.width :=
    }
    'skip$
  if$
  extra.label 'next.extra :=
}

EXECUTE {initialize.longest.label}

ITERATE {forward.pass}

REVERSE {reverse.pass}

FUNCTION {begin.bib}

{ et.al.char.used
    { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
    'skip$
  if$
  preamble$ empty$

    'skip$
    { preamble$ write$ newline$ }
  if$

  "\begin{thebibliography}{}\small" write$ newline$

}

EXECUTE {begin.bib}

EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}

EXECUTE {end.bib}
\end{filecontents*}
\begin{filecontents*}{cc2.bst}
%%
%% This is file `cc2.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% merlin.mbs  (with options: `,ay,nat,lang,vonx,ed-au,nmft,nmft-sc,nmfted,nmand-rm,dt-beg,yr-par,note-yr,atit-u,vol-bf,volp-com,pgsep-s,jnm-x,pg-bk,isbn,issn,url,url-blk,edpar,edby,edbyy,ppx,ord,amper,and-xcom,etal-it,nfss')
%% ----------------------------------------
%% *** bst for computational complexity with natbib.sty ***
%%
%% Copyright 1994-2007 Patrick W Daly
 % ===============================================================
 % IMPORTANT NOTICE:
 % This bibliographic style (bst) file has been generated from one or
 % more master bibliographic style (mbs) files, listed above.
 %
 % This generated file can be redistributed and/or modified under the terms
 % of the LaTeX Project Public License Distributed from CTAN
 % archives in directory macros/latex/base/lppl.txt; either
 % version 1 of the License, or any later version.
 % ===============================================================
 % Name and version information of the main mbs file:
 % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)]
 %   For use with BibTeX version 0.99a or later
 %-------------------------------------------------------------------
 % This bibliography style file is intended for texts in ENGLISH
 % This is an author-year citation style bibliography. As such, it is
 % non-standard LaTeX, and requires a special package file to function properly.
 % Such a package is    natbib.sty   by Patrick W. Daly
 % The form of the \bibitem entries is
 %   \bibitem[Jones et al.(1990)]{key}...
 %   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
 % The essential feature is that the label (the part in brackets) consists
 % of the author names, as they should appear in the citation, with the year
 % in parentheses following. There must be no space before the opening
 % parenthesis!
 % With natbib v5.3, a full list of authors may also follow the year.
 % In natbib.sty, it is possible to define the type of enclosures that is
 % really wanted (brackets or parentheses), but in either case, there must
 % be parentheses in the label.
 % The \cite command functions as follows:
 %   \citet{key} ==>>                Jones et al. (1990)
 %   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
 %   \citep{key} ==>>                (Jones et al., 1990)
 %   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
 %   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
 %   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
 %   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., p. 32)
 %   \citeauthor{key} ==>>           Jones et al.
 %   \citeauthor*{key} ==>>          Jones, Baker, and Smith
 %   \citeyear{key} ==>>             1990
 %---------------------------------------------------------------------

ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    eid
    howpublished
    institution
    isbn
    issn
    journal
    key
    language
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    url
    volume
    year
  }
  {}
  { label extra.label sort.label short.list }
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
}
STRINGS { s t}
FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}
FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}
FUNCTION {output.check}
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'output.nonnull
  if$
}
FUNCTION {fin.entry}
{ add.period$
  write$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}
FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
        'skip$
        { after.sentence 'output.state := }
      if$
    }
  if$
}
FUNCTION {add.blank}
{  " " * before.all 'output.state :=
}

FUNCTION {date.block}
{
  new.block
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}
FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}
FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}
FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}
FUNCTION {emphasize}
{ duplicate$ empty$
    { pop$ "" }
    { "\emph{" swap$ * "}" * }
  if$
}
FUNCTION {bolden}
{ duplicate$ empty$
    { pop$ "" }
    { "\textbf{" swap$ * "}" * }
  if$
}
FUNCTION {scaps}
{ duplicate$ empty$
    { pop$ "" }
    { "\textsc{" swap$ * "}" * }
  if$
}
FUNCTION {bib.name.font}
{ scaps }
FUNCTION {bib.fname.font}
{ bib.name.font }
FUNCTION {tie.or.space.prefix}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$
}

FUNCTION {capitalize}
{ "u" change.case$ "t" change.case$ }

FUNCTION {space.word}
{ " " swap$ * " " * }
 % Here are the language-specific definitions for explicit words.
 % Each function has a name bbl.xxx where xxx is the English word.
 % The language selected here is ENGLISH
FUNCTION {bbl.and}
{ "and"}

FUNCTION {bbl.etal}
{ "et~al." }

FUNCTION {bbl.editors}
{ "editors" }

FUNCTION {bbl.editor}
{ "editor" }

FUNCTION {bbl.edby}
{ "edited by" }

FUNCTION {bbl.edition}
{ "edition" }

FUNCTION {bbl.volume}
{ "volume" }

FUNCTION {bbl.of}
{ "of" }

FUNCTION {bbl.number}
{ "number" }

FUNCTION {bbl.nr}
{ "no." }

FUNCTION {bbl.in}
{ "in" }

FUNCTION {bbl.pages}
{ "" }

FUNCTION {bbl.page}
{ "" }

FUNCTION {bbl.chapter}
{ "chapter" }

FUNCTION {bbl.techrep}
{ "Technical Report" }

FUNCTION {bbl.mthesis}
{ "Master's thesis" }

FUNCTION {bbl.phdthesis}
{ "Ph.D. thesis" }

FUNCTION {bbl.first}
{ "1st" }

FUNCTION {bbl.second}
{ "2nd" }

FUNCTION {bbl.third}
{ "3rd" }

FUNCTION {bbl.fourth}
{ "4th" }

FUNCTION {bbl.fifth}
{ "5th" }

FUNCTION {bbl.st}
{ "st" }

FUNCTION {bbl.nd}
{ "nd" }

FUNCTION {bbl.rd}
{ "rd" }

FUNCTION {bbl.th}
{ "th" }

MACRO {jan} {"January"}

MACRO {feb} {"February"}

MACRO {mar} {"March"}

MACRO {apr} {"April"}

MACRO {may} {"May"}

MACRO {jun} {"June"}

MACRO {jul} {"July"}

MACRO {aug} {"August"}

MACRO {sep} {"September"}

MACRO {oct} {"October"}

MACRO {nov} {"November"}

MACRO {dec} {"December"}

FUNCTION {eng.ord}
{ duplicate$ "1" swap$ *
  #-2 #1 substring$ "1" =
     { bbl.th * }
     { duplicate$ #-1 #1 substring$
       duplicate$ "1" =
         { pop$ bbl.st * }
         { duplicate$ "2" =
             { pop$ bbl.nd * }
             { "3" =
                 { bbl.rd * }
                 { bbl.th * }
               if$
             }
           if$
          }
       if$
     }
   if$
}

MACRO {acmcs} {"ACM Computing Surveys"}

MACRO {acta} {"Acta Informatica"}

MACRO {cacm} {"Communications of the ACM"}

MACRO {ibmjrd} {"IBM Journal of Research and Development"}

MACRO {ibmsj} {"IBM Systems Journal"}

MACRO {ieeese} {"IEEE Transactions on Software Engineering"}

MACRO {ieeetc} {"IEEE Transactions on Computers"}

MACRO {ieeetcad}
 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}

MACRO {ipl} {"Information Processing Letters"}

MACRO {jacm} {"Journal of the ACM"}

MACRO {jcss} {"Journal of Computer and System Sciences"}

MACRO {scp} {"Science of Computer Programming"}

MACRO {sicomp} {"SIAM Journal on Computing"}

MACRO {tocs} {"ACM Transactions on Computer Systems"}

MACRO {tods} {"ACM Transactions on Database Systems"}

MACRO {tog} {"ACM Transactions on Graphics"}

MACRO {toms} {"ACM Transactions on Mathematical Software"}

MACRO {toois} {"ACM Transactions on Office Information Systems"}

MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}

MACRO {tcs} {"Theoretical Computer Science"}
FUNCTION {bibinfo.check}
{ swap$
  duplicate$ missing$
    {
      pop$ pop$
      ""
    }
    { duplicate$ empty$
        {
          swap$ pop$
        }
        { swap$
          pop$
        }
      if$
    }
  if$
}
FUNCTION {bibinfo.warn}
{ swap$
  duplicate$ missing$
    {
      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
      ""
    }
    { duplicate$ empty$
        {
          swap$ "empty " swap$ * " in " * cite$ * warning$
        }
        { swap$
          pop$
        }
      if$
    }
  if$
}
FUNCTION {format.url}
{ url empty$
    { "" }
    { "\urlprefix\url{" url * "}" * }
  if$
}

INTEGERS { nameptr namesleft numnames }


STRINGS  { bibinfo}

FUNCTION {format.names}
{ 'bibinfo :=
  duplicate$ empty$ 'skip$ {
  's :=
  "" 't :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{ff~}{vv~}{ll}{, jj}"
      format.name$
      bib.name.font
      bibinfo bibinfo.check
      't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                {
                  " " * bbl.etal emphasize *
                }
                {
                  "\&"
                  space.word * t *
                }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
  } if$
}
FUNCTION {format.names.ed}
{
  format.names
}
FUNCTION {format.key}
{ empty$
    { key field.or.null }
    { "" }
  if$
}

FUNCTION {format.authors}
{ author "author" format.names
}
FUNCTION {get.bbl.editor}
{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }

FUNCTION {format.editors}
{ editor "editor" format.names duplicate$ empty$ 'skip$
    {
      " " *
      get.bbl.editor
   "(" swap$ * ")" *
      *
    }
  if$
}
FUNCTION {format.book.pages}
{ pages "pages" bibinfo.check
  duplicate$ empty$ 'skip$
    { " " * bbl.pages * }
  if$
}
FUNCTION {format.isbn}
{ isbn "isbn" bibinfo.check
  duplicate$ empty$ 'skip$
    {
      new.block
      "ISBN " swap$ *
    }
  if$
}

FUNCTION {format.issn}
{ issn "issn" bibinfo.check
  duplicate$ empty$ 'skip$
    {
      new.block
      "ISSN " swap$ *
    }
  if$
}

FUNCTION {select.language}
{ duplicate$ empty$
    'pop$
    { language empty$
        'skip$
        { "{\selectlanguage{" language * "}" * swap$ * "}" * }
      if$
    }
    if$
}

FUNCTION {format.note}
{
 note empty$
    { "" }
    { note #1 #1 substring$
      duplicate$ "{" =
        'skip$
        { output.state mid.sentence =
          { "l" }
          { "u" }
        if$
        change.case$
        }
      if$
      note #2 global.max$ substring$ * "note" bibinfo.check
    }
  if$
}

FUNCTION {format.title}
{ title
  "title" bibinfo.check
  duplicate$ empty$ 'skip$
    {
      select.language
    }
  if$
}
FUNCTION {format.full.names}
{'s :=
 "" 't :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv~}{ll}" format.name$
      't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                {
                  " " * bbl.etal emphasize *
                }
                {
                  "\&"
                  space.word * t *
                }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {author.editor.key.full}
{ author empty$
    { editor empty$
        { key empty$
            { cite$ #1 #3 substring$ }
            'key
          if$
        }
        { editor format.full.names }
      if$
    }
    { author format.full.names }
  if$
}

FUNCTION {author.key.full}
{ author empty$
    { key empty$
         { cite$ #1 #3 substring$ }
          'key
      if$
    }
    { author format.full.names }
  if$
}

FUNCTION {editor.key.full}
{ editor empty$
    { key empty$
         { cite$ #1 #3 substring$ }
          'key
      if$
    }
    { editor format.full.names }
  if$
}

FUNCTION {make.full.names}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.full
    { type$ "proceedings" =
        'editor.key.full
        'author.key.full
      if$
    }
  if$
}

FUNCTION {output.bibitem}
{ newline$
  "\bibitem[{" write$
  label write$
  ")" make.full.names duplicate$ short.list =
     { pop$ }
     { * }
   if$
  "}]{" * write$
  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
}

FUNCTION {if.digit}
{ duplicate$ "0" =
  swap$ duplicate$ "1" =
  swap$ duplicate$ "2" =
  swap$ duplicate$ "3" =
  swap$ duplicate$ "4" =
  swap$ duplicate$ "5" =
  swap$ duplicate$ "6" =
  swap$ duplicate$ "7" =
  swap$ duplicate$ "8" =
  swap$ "9" = or or or or or or or or or
}
FUNCTION {n.separate}
{ 't :=
  ""
  #0 'numnames :=
  { t empty$ not }
  { t #-1 #1 substring$ if.digit
      { numnames #1 + 'numnames := }
      { #0 'numnames := }
    if$
    t #-1 #1 substring$ swap$ *
    t #-2 global.max$ substring$ 't :=
    numnames #5 =
      { duplicate$ #1 #2 substring$ swap$
        #3 global.max$ substring$
        "\," swap$ * *
      }
      'skip$
    if$
  }
  while$
}
FUNCTION {n.dashify}
{
  n.separate
  't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
        { t #1 #2 substring$ "--" = not
            { "--" *
              t #2 global.max$ substring$ 't :=
            }
            {   { t #1 #1 substring$ "-" = }
                { "-" *
                  t #2 global.max$ substring$ 't :=
                }
              while$
            }
          if$
        }
        { t #1 #1 substring$ *
          t #2 global.max$ substring$ 't :=
        }
      if$
    }
  while$
}

FUNCTION {word.in}
{ bbl.in capitalize
  " " * }

FUNCTION {format.date}
{ year "year" bibinfo.check duplicate$ empty$
    {
      "empty year in " cite$ * "; set to ????" * warning$
       pop$ "????"
    }
    'skip$
  if$
  extra.label *
  before.all 'output.state :=
  " (" swap$ * ")" *
}
FUNCTION {format.btitle}
{ title "title" bibinfo.check
  duplicate$ empty$ 'skip$
    {
      emphasize
      select.language
    }
  if$
}
FUNCTION {either.or.check}
{ empty$
    'pop$
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  if$
}
FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { bbl.volume volume tie.or.space.prefix
      "volume" bibinfo.check * *
      series "series" bibinfo.check
      duplicate$ empty$ 'pop$
        { swap$ bbl.of space.word * swap$
          emphasize * }
      if$
      "volume and number" number either.or.check
    }
  if$
}
FUNCTION {format.number.series}
{ volume empty$
    { number empty$
        { series field.or.null }
        { output.state mid.sentence =
            { bbl.number }
            { bbl.number capitalize }
          if$
          number tie.or.space.prefix "number" bibinfo.check * *
          series empty$
            { "there's a number but no series in " cite$ * warning$ }
            { bbl.in space.word *
              series "series" bibinfo.check *
            }
          if$
        }
      if$
    }
    { "" }
  if$
}
FUNCTION {is.num}
{ chr.to.int$
  duplicate$ "0" chr.to.int$ < not
  swap$ "9" chr.to.int$ > not and
}

FUNCTION {extract.num}
{ duplicate$ 't :=
  "" 's :=
  { t empty$ not }
  { t #1 #1 substring$
    t #2 global.max$ substring$ 't :=
    duplicate$ is.num
      { s swap$ * 's := }
      { pop$ "" 't := }
    if$
  }
  while$
  s empty$
    'skip$
    { pop$ s }
  if$
}

FUNCTION {convert.edition}
{ extract.num "l" change.case$ 's :=
  s "first" = s "1" = or
    { bbl.first 't := }
    { s "second" = s "2" = or
        { bbl.second 't := }
        { s "third" = s "3" = or
            { bbl.third 't := }
            { s "fourth" = s "4" = or
                { bbl.fourth 't := }
                { s "fifth" = s "5" = or
                    { bbl.fifth 't := }
                    { s #1 #1 substring$ is.num
                        { s eng.ord 't := }
                        { edition 't := }
                      if$
                    }
                  if$
                }
              if$
            }
          if$
        }
      if$
    }
  if$
  t
}

FUNCTION {format.edition}
{ edition duplicate$ empty$ 'skip$
    {
      convert.edition
      output.state mid.sentence =
        { "l" }
        { "t" }
      if$ change.case$
      "edition" bibinfo.check
      " " * bbl.edition *
    }
  if$
}
INTEGERS { multiresult }
FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
        { #1 'multiresult := }
        { t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}
FUNCTION {format.pages}
{ pages duplicate$ empty$ 'skip$
    { duplicate$ multi.page.check
        {
          n.dashify
        }
        {
        }
      if$
      "pages" bibinfo.check
    }
  if$
}
FUNCTION {format.journal.pages}
{ pages duplicate$ empty$ 'pop$
    { swap$ duplicate$ empty$
        { pop$ pop$ format.pages }
        {
          ", " *
          swap$
          n.dashify
          "pages" bibinfo.check
          *
        }
      if$
    }
  if$
}
FUNCTION {format.journal.eid}
{ eid "eid" bibinfo.check
  duplicate$ empty$ 'pop$
    { swap$ duplicate$ empty$ 'skip$
      {
          ", " *
      }
      if$
      swap$ *
    }
  if$
}
FUNCTION {format.vol.num.pages}
{ volume field.or.null
  duplicate$ empty$ 'skip$
    {
      "volume" bibinfo.check
    }
  if$
  bolden
  number "number" bibinfo.check duplicate$ empty$ 'skip$
    {
      swap$ duplicate$ empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
      swap$
      "(" swap$ * ")" *
    }
  if$ *
  eid empty$
    { format.journal.pages }
    { format.journal.eid }
  if$
}

FUNCTION {format.chapter.pages}
{ chapter empty$
    'format.pages
    { type empty$
        { bbl.chapter }
        { type "l" change.case$
          "type" bibinfo.check
        }
      if$
      chapter tie.or.space.prefix
      "chapter" bibinfo.check
      * *
      pages empty$
        'skip$
        { ", " * format.pages * }
      if$
    }
  if$
}

FUNCTION {format.booktitle}
{
  booktitle "booktitle" bibinfo.check
  emphasize
}
FUNCTION {format.in.ed.booktitle}
{ format.booktitle duplicate$ empty$ 'skip$
    {
      editor "editor" format.names.ed duplicate$ empty$ 'pop$
        {
          get.bbl.editor
          swap$ "," *
          " " * swap$ *
          swap$
          "," *
          " " * swap$
          * }
      if$
      word.in swap$ *
    }
  if$
}
FUNCTION {format.thesis.type}
{ type duplicate$ empty$
    'pop$
    { swap$ pop$
      "t" change.case$ "type" bibinfo.check
    }
  if$
}
FUNCTION {format.tr.number}
{ number "number" bibinfo.check
  type duplicate$ empty$
    { pop$ bbl.techrep }
    'skip$
  if$
  "type" bibinfo.check
  swap$ duplicate$ empty$
    { pop$ "t" change.case$ }
    { tie.or.space.prefix * * }
  if$
}
FUNCTION {format.article.crossref}
{
  word.in
  " \cite{" * crossref * "}" *
}
FUNCTION {format.book.crossref}
{ volume duplicate$ empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      pop$ word.in
    }
    { bbl.volume
      capitalize
      swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
    }
  if$
  " \cite{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
{
  word.in
  " \cite{" * crossref * "}" *
}
FUNCTION {format.org.or.pub}
{ 't :=
  ""
  address empty$ t empty$ and
    'skip$
    {
      t empty$
        { address "address" bibinfo.check *
        }
        { t *
          address empty$
            'skip$
            { ", " * address "address" bibinfo.check * }
          if$
        }
      if$
    }
  if$
}
FUNCTION {format.publisher.address}
{ publisher "publisher" bibinfo.warn format.org.or.pub
}

FUNCTION {format.organization.address}
{ organization "organization" bibinfo.check format.org.or.pub
}

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  new.block
  crossref missing$
    {
      journal
      "journal" bibinfo.check
      emphasize
      "journal" output.check
      add.blank
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  format.issn output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}
FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  format.date "year" output.check
  date.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      new.block
      format.number.series output
      new.sentence
      format.publisher.address output
    }
    {
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.isbn output
  format.book.pages output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}
FUNCTION {booklet}
{ output.bibitem
  format.authors output
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  new.block
  howpublished "howpublished" bibinfo.check output
  address "address" bibinfo.check output
  format.isbn output
  format.book.pages output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {inbook}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  format.date "year" output.check
  date.block
  format.btitle "title" output.check
  crossref missing$
    {
      format.bvolume output
      format.chapter.pages "chapter and pages" output.check
      new.block
      format.number.series output
      new.sentence
      format.publisher.address output
    }
    {
      format.chapter.pages "chapter and pages" output.check
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  crossref missing$
    { format.isbn output }
    'skip$
  if$
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {incollection}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      format.chapter.pages output
      new.sentence
      format.publisher.address output
      format.edition output
      format.isbn output
    }
    { format.incoll.inproc.crossref output.nonnull
      format.chapter.pages output
    }
  if$
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      format.pages output
      new.sentence
      publisher empty$
        { format.organization.address output }
        { organization "organization" bibinfo.check output
          format.publisher.address output
        }
      if$
      format.isbn output
      format.issn output
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
  format.authors output
  author format.key output
  format.date "year" output.check
  date.block
  format.btitle "title" output.check
  organization address new.block.checkb
  organization "organization" bibinfo.check output
  address "address" bibinfo.check output
  format.edition output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.btitle
  "title" output.check
  new.block
  bbl.mthesis format.thesis.type output.nonnull
  school "school" bibinfo.warn output
  address "address" bibinfo.check output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {misc}
{ output.bibitem
  format.authors output
  author format.key output
  format.date "year" output.check
  date.block
  format.title output
  new.block
  howpublished "howpublished" bibinfo.check output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}
FUNCTION {phdthesis}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.btitle
  "title" output.check
  new.block
  bbl.phdthesis format.thesis.type output.nonnull
  school "school" bibinfo.warn output
  address "address" bibinfo.check output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {proceedings}
{ output.bibitem
  format.editors output
  editor format.key output
  format.date "year" output.check
  date.block
  format.btitle "title" output.check
  format.bvolume output
  format.number.series output
  new.sentence
  publisher empty$
    { format.organization.address output }
    { organization "organization" bibinfo.check output
      format.publisher.address output
    }
  if$
  format.isbn output
  format.issn output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title
  "title" output.check
  new.block
  format.tr.number output.nonnull
  institution "institution" bibinfo.warn output
  address "address" bibinfo.check output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {unpublished}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  new.block
  format.url output
  new.block
  format.note "note" output.check
  fin.entry
}

FUNCTION {default.type} { misc }
READ
FUNCTION {sortify}
{ purify$
  "l" change.case$
}
INTEGERS { len }
FUNCTION {chop.word}
{ 's :=
  'len :=
  s #1 len substring$ =
    { s len #1 + global.max$ substring$ }
    's
  if$
}
FUNCTION {format.lab.names}
{ 's :=
  "" 't :=
  s #1 "{vv~}{ll}" format.name$
  s num.names$ duplicate$
  #2 >
    { pop$
      " " * bbl.etal emphasize *
    }
    { #2 <
        'skip$
        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            {
              " " * bbl.etal emphasize *
            }
            { " \& " * s #2 "{vv~}{ll}" format.name$
              * }
          if$
        }
      if$
    }
  if$
}

FUNCTION {author.key.label}
{ author empty$
    { key empty$
        { cite$ #1 #3 substring$ }
        'key
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {author.editor.key.label}
{ author empty$
    { editor empty$
        { key empty$
            { cite$ #1 #3 substring$ }
            'key
          if$
        }
        { editor format.lab.names }
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {editor.key.label}
{ editor empty$
    { key empty$
        { cite$ #1 #3 substring$ }
        'key
      if$
    }
    { editor format.lab.names }
  if$
}

FUNCTION {calc.short.authors}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.label
    { type$ "proceedings" =
        'editor.key.label
        'author.key.label
      if$
    }
  if$
  'short.list :=
}

FUNCTION {calc.label}
{ calc.short.authors
  short.list
  "("
  *
  year duplicate$ empty$
     { pop$ "????" }
     'skip$
  if$
  *
  'label :=
}

FUNCTION {sort.format.names}
{ 's :=
  #1 'nameptr :=
  ""
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{ll{ }}{  ff{ }}{  jj{ }}"
      format.name$ 't :=
      nameptr #1 >
        {
          "   "  *
          namesleft #1 = t "others" = and
            { "zzzzz" * }
            { t sortify * }
          if$
        }
        { t sortify * }
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {sort.format.title}
{ 't :=
  "A " #2
    "An " #3
      "The " #4 t chop.word
    chop.word
  chop.word
  sortify
  #1 global.max$ substring$
}
FUNCTION {author.sort}
{ author empty$
    { key empty$
        { "to sort, need author or key in " cite$ * warning$
          ""
        }
        { key sortify }
      if$
    }
    { author sort.format.names }
  if$
}
FUNCTION {author.editor.sort}
{ author empty$
    { editor empty$
        { key empty$
            { "to sort, need author, editor, or key in " cite$ * warning$
              ""
            }
            { key sortify }
          if$
        }
        { editor sort.format.names }
      if$
    }
    { author sort.format.names }
  if$
}
FUNCTION {editor.sort}
{ editor empty$
    { key empty$
        { "to sort, need editor or key in " cite$ * warning$
          ""
        }
        { key sortify }
      if$
    }
    { editor sort.format.names }
  if$
}
FUNCTION {presort}
{ calc.label
  label sortify
  "    "
  *
  type$ "book" =
  type$ "inbook" =
  or
    'author.editor.sort
    { type$ "proceedings" =
        'editor.sort
        'author.sort
      if$
    }
  if$
  #1 entry.max$ substring$
  'sort.label :=
  sort.label
  *
  "    "
  *
  title field.or.null
  sort.format.title
  *
  #1 entry.max$ substring$
  'sort.key$ :=
}

ITERATE {presort}
SORT
STRINGS { last.label next.extra }
INTEGERS { last.extra.num number.label }
FUNCTION {initialize.extra.label.stuff}
{ #0 int.to.chr$ 'last.label :=
  "" 'next.extra :=
  #0 'last.extra.num :=
  #0 'number.label :=
}
FUNCTION {forward.pass}
{ last.label label =
    { last.extra.num #1 + 'last.extra.num :=
      last.extra.num int.to.chr$ 'extra.label :=
    }
    { "a" chr.to.int$ 'last.extra.num :=
      "" 'extra.label :=
      label 'last.label :=
    }
  if$
  number.label #1 + 'number.label :=
}
FUNCTION {reverse.pass}
{ next.extra "b" =
    { "a" 'extra.label := }
    'skip$
  if$
  extra.label 'next.extra :=
  extra.label
  duplicate$ empty$
    'skip$
    { "{\natexlab{" swap$ * "}}" * }
  if$
  'extra.label :=
  label extra.label * 'label :=
}
EXECUTE {initialize.extra.label.stuff}
ITERATE {forward.pass}
REVERSE {reverse.pass}
FUNCTION {bib.sort.order}
{ sort.label
  "    "
  *
  year field.or.null sortify
  *
  "    "
  *
  title field.or.null
  sort.format.title
  *
  #1 entry.max$ substring$
  'sort.key$ :=
}
ITERATE {bib.sort.order}
SORT
FUNCTION {begin.bib}
{ preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
  write$ newline$
  "\providecommand{\natexlab}[1]{#1}"
  write$ newline$
  "\providecommand{\url}[1]{\texttt{#1}}"
  write$ newline$
  "\providecommand{\urlprefix}{URL }"
  write$ newline$
  "\providecommand{\selectlanguage}[1]{\relax}"
  write$ newline$
}
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}
EXECUTE {end.bib}
%% End of customized bst file
%%
%% End of file `cc2.bst'.
\end{filecontents*}
