% \iffalse meta-comment
%
% Copyright (C) 2019-2025
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
% This file is part of the LaTeX base system.
% -------------------------------------------
%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
%    https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 or later.
%
% This file has the LPPL maintenance status "maintained".
%
% The list of all files belonging to the LaTeX base distribution is
% given in the file `manifest.txt'. See also `legal.txt' for additional
% information.
%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
%
% \fi
% \iffalse
%%% From File: ltfssaxes.dtx
%% Copyright (C) 2019-2020 Frank Mittelbach (initial implementation)
%
%<*driver>
% \fi
%
%
\ProvidesFile{ltfssaxes.dtx}
             [2025/06/23 v1.0l LaTeX Kernel (NFSS Axes handing)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
\DocInput{ltfssaxes.dtx}
\end{document}
%</driver>
% \fi
%
%
%
%
% \GetFileInfo{ltfssaxes.dtx}
% \title{A new font selection scheme for \TeX{} macro packages\\
%        (Axes Handling)\thanks
%       {This file has version number
%       \fileversion\ dated \filedate}}
%
% \author{Frank Mittelbach}
%
% \MaintainedByLaTeXTeam{latex}
% \maketitle
%
% This file contains the implementation for handling extra axes
% by splitting the series and the shape values into sub-categories.
% See other parts of the \LaTeX\ distribution, or \emph{The
% \LaTeX\ Companion} for higher level documentation of the
% \LaTeX\ Font Selection Scheme.
%
%
%
% \MaybeStop{}
%
% \changes{v1.0h}{2020/12/04}{Reorganized the rollback data}
%
%    \begin{macrocode}
%<2ekernel>\message{NFSS axes,}
%    \end{macrocode}
%    
% Everything in the this file got introduced 2020/02/02, so we use large rollback
% chunks, only interrupted if necessary.
%    \begin{macrocode}
%<*2ekernel|latexrelease>
%    \end{macrocode}
%
%    \begin{macrocode}
%<latexrelease>\IncludeInRelease{2025/06/01}%
%<latexrelease>   {\DeclareFontSeriesChangeRule}{Series change rules}%
%    \end{macrocode}
%
%
%
% \section{Changing the font series}
%
% In the original NFSS implementation the series was a single
% attribute stored in \cs{f@series} and so one always had to specify
% both weight and width together. This meant that it was impossible to
% typeset a paragraph in a condensed font and inside have a few words
% in bold weight (but still condensed) without doing this manually by
% requesting \verb=\fontseries{bc}\selectfont=.
%
% The new implementation now works differently, by looking at both the
% current value of \cs{f@series} and the requested new series; these
% are then used to select a new series value. Thus, if the
% current series is \texttt{c} and we ask for \texttt{b} we now get
% \texttt{bc}.
%
% This is done by consulting a simple lookup table. This table is
% configurable (though most likely that flexibility will seldom if
% ever be needed). Adding or changing entries in this table is done
% with \cs{DeclareFontSeriesChangeRule}.
%
% \subsection{The series lookup table}
%
%
%  \begin{macro}{\DeclareFontSeriesChangeRule}
%    The macro \cs{DeclareFontSeriesChangeRule} defines entries in a simple
%    database (implemented as a set of commands) that define mappings
%    from the current series and a requested new series to a result series
%    (and additionally offers an alternative if the desired one is 
%    unavailable):
%    \begin{itemize}
%    \item[\texttt{\#1}] current \cs{f@series}
%    \item[\texttt{\#2}] requested new series
%    \item[\texttt{\#3}] result (provided this series exists in the given font family)
%    \item[\texttt{\#4}] alternative result (if \texttt{\#3} does not exist)
%    \end{itemize}
%    If an \texttt{.fd} file has its own substitution rules then
%    \texttt{\#3} exist and thus \texttt{\#4} is not applied.
%
%    If there is no matching database entry, or if neither the result
%    nor the alternative result exists in this font family, then the requested
%    new series is used (which then may trigger substitutions later on).
%    \begin{macrocode}
\def\DeclareFontSeriesChangeRule#1#2#3#4{%
  \@namedef{series@#1@#2}{{#3}{#4}}}
%    \end{macrocode}
%  \end{macro}
%
% \subsection{Mapping rules for series changes}
%
% The rules set up use explicit series values not \cs{..default}
% indirections; my current feeling is that this is in fact better.
%
% With 9~weight values (from \texttt{ul} to \texttt{ub}) and 9~width values
% (from \texttt{uc} to \texttt{ux}), this table is now rather large
% (far more than 1000~entries), but, on the other hand, the table
% doesn't change and accessing rules is fast when using a table implemented
% in this way.
%
% We could alternatively split the axis and maintain weight and width
% separately, but that would take more processing time and would not
% allow for setting up explicit exceptions nicely (not sure that this
% would ever get used though).
%
% Design considerations for mapping entries:
% \begin{itemize}
% \item
%
%    We make \texttt{m} reset both weight and width (as this is
%    how it always worked). To reset just the width \texttt{?m} is
%    provided and to reset just the weight \texttt{m?}\ is provided.
%
% \item
%
%    We support ``\texttt{m}\meta{width}'' and
%    ``\meta{weight}\texttt{m}'', e.g., \texttt{mec} to mean ``go to
%    medium weight and extra-condensed width''. At the end of the
%    process we automatically drop any leftover \texttt{m} in the
%    series name (unless it is just a single \texttt{m}).
%
% \item
%
%    If there is no table entry then the requested series is used
%    unconditionally. This means that we usually do not need entries
%    where the second argument (the requested series) and the third argument
%    (the result series) are identical (unless we want to use the fourth
%    argument to specify an alternative result series). In particular,
%    this means:
%    \begin{itemize}
%    \item
%
%      Any request for \texttt{m} needs no entry, i.e., there are no entries
%      which have \texttt{m} as the second argument.
%
%    \item
%
%       Any request to set both weight and width (e.g., \texttt{sbx} or
%       \texttt{ulc}) needs no entry. For that reason, there are no entries
%       which have a weight+width as second argument (except for cases
%       involving \texttt{bx}, see below). In particular, this is also true
%       for cases involving \texttt{m}, e.g., \texttt{bm} (bold medium width)
%       which automatically gets reduced to \texttt{b}, or \texttt{mc}
%      (medium weight condensed) which becomes \texttt{c} as a result.
%
%       There is one exception: we do have rules for a request for
%       \texttt{bx}; this is because the Computer Modern fonts (or related
%       families like Latin Modern) need \texttt{bx} as their bold series
%       default (\cs{bfdefault}),
%       since they only have a \texttt{b} series for a
%       restricted set of font faces. Many other font families have only
%       \texttt{b} but no \texttt{bx}, so we have explicit rules
%       that fall back from \texttt{bx} to \texttt{b}.
%    \end{itemize}
%
% \item
%
%    For each combination of a non-\texttt{m} \meta{weight} and a
%    non-\texttt{m} \meta{width}, there are 19~entries which have
%    ``\meta{weight}\meta{width}'' as first argument: 8~of them have
%    the weight values from \texttt{ul} to \texttt{ub} except \texttt{m} as
%    second argument, another 8~have the width values from \texttt{uc}
%    to \texttt{ux} except \texttt{m} as second argument, and (further down
%    in this file) there is one entry which has \texttt{bx} as second
%    argument and two further entries which have \texttt{m?}\ and
%    \texttt{?m} as second argument. Rules which have \texttt{m} or a
%    weight+width (other than \texttt{bx}) as second argument aren't needed
%    (see above).
%
% \item
%
%    For each non-\texttt{m} \meta{weight}, there are at least 11~entries
%    which have ``\meta{weight}'' as first argument: 8~of them have the
%    width values from \texttt{uc} to \texttt{ux} except \texttt{m} as
%    second argument, and (further down in this file) there is one entry
%    which has \texttt{bx} as second argument and two further entries
%    which have \texttt{m?}\ and \texttt{?m} as second argument. Rules
%    which have a single weight value as second argument aren't needed
%    because the second and third arguments would then be identical. In
%    some cases, there are extra rules which make use of the fourth
%    argument to specify an alternative result series.
%
% \item
%
%    Similarily, for each non-\texttt{m} \meta{width}, there are at least
%    11~entries which have ``\meta{width}'' as first argument: 8~of them
%    have the weight values from \texttt{ul} to \texttt{ub} except
%    \texttt{m} as second argument, and (further down in this file) there
%    is one entry which has \texttt{bx} as second argument and two
%    further entries which have \texttt{m?}\ and \texttt{?m} as second
%    argument. Rules which have a single width value as second argument
%    aren't needed because the second and third arguments would then be
%    identical. In some cases, there are extra rules which make use of the
%    fourth argument to specify an alternative result series.
%
% \item
%
%    Only a few entries have ``alternative'' values.
%
%    The idea is that you don't want the normal substitution to kick
%    in because that would reset the shape first and it may be better
%    to stay with \texttt{b} when a change to \texttt{c} is requested
%    and \texttt{bc} doesn't exist, than to go to first change the
%    shape to \texttt{n} and then find that \texttt{bc/n} doesn't
%    exist either and thus ending up with \texttt{m/n}.
%
%    We do this, for example, when \texttt{sb}, \texttt{eb}, or
%    \texttt{ub} is requested but can't be fulfilled. In that case it
%    is better to try to stay with some sort of bold rather than
%    ending up with \texttt{m}. There are some other cases where an
%    ``alternative'' value is specified; these are explained below in
%    the appropriate places.
%
% \end{itemize}
%
% \changes{1.0k}{2024/12/13}{Minor modifications to a few
%   \cs{DeclareFontSeriesChangeRule} entries (gh/1583)}
% \changes{1.0k}{2024/12/13}{Add numerous \cs{DeclareFontSeriesChangeRule}
%   entries to support the full range of weights (from \texttt{ul} to
%   \texttt{ub}) and widths (from \texttt{uc} to \texttt{ux}) (gh/1583)}
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {uluc}{ul} {uluc} {}
\DeclareFontSeriesChangeRule {uluc}{el} {eluc} {}
\DeclareFontSeriesChangeRule {uluc}{l}  {luc}  {}
\DeclareFontSeriesChangeRule {uluc}{sl} {sluc} {}
\DeclareFontSeriesChangeRule {uluc}{sb} {sbuc} {buc}
\DeclareFontSeriesChangeRule {uluc}{b}  {buc}  {}
\DeclareFontSeriesChangeRule {uluc}{eb} {ebuc} {buc}
\DeclareFontSeriesChangeRule {uluc}{ub} {ubuc} {buc}
\DeclareFontSeriesChangeRule {uluc}{uc} {uluc} {}
\DeclareFontSeriesChangeRule {uluc}{ec} {ulec} {}
\DeclareFontSeriesChangeRule {uluc}{c}  {ulc}  {}
\DeclareFontSeriesChangeRule {uluc}{sc} {ulsc} {}
\DeclareFontSeriesChangeRule {uluc}{sx} {ulsx} {}
\DeclareFontSeriesChangeRule {uluc}{x}  {ulx}  {}
\DeclareFontSeriesChangeRule {uluc}{ex} {ulex} {}
\DeclareFontSeriesChangeRule {uluc}{ux} {ulux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ulec}{ul} {ulec} {}
\DeclareFontSeriesChangeRule {ulec}{el} {elec} {}
\DeclareFontSeriesChangeRule {ulec}{l}  {lec}  {}
\DeclareFontSeriesChangeRule {ulec}{sl} {slec} {}
\DeclareFontSeriesChangeRule {ulec}{sb} {sbec} {bec}
\DeclareFontSeriesChangeRule {ulec}{b}  {bec}  {}
\DeclareFontSeriesChangeRule {ulec}{eb} {ebec} {bec}
\DeclareFontSeriesChangeRule {ulec}{ub} {ubec} {bec}
\DeclareFontSeriesChangeRule {ulec}{uc} {uluc} {}
\DeclareFontSeriesChangeRule {ulec}{ec} {ulec} {}
\DeclareFontSeriesChangeRule {ulec}{c}  {ulc}  {}
\DeclareFontSeriesChangeRule {ulec}{sc} {ulsc} {}
\DeclareFontSeriesChangeRule {ulec}{sx} {ulsx} {}
\DeclareFontSeriesChangeRule {ulec}{x}  {ulx}  {}
\DeclareFontSeriesChangeRule {ulec}{ex} {ulex} {}
\DeclareFontSeriesChangeRule {ulec}{ux} {ulux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ulc}{ul}  {ulc}  {}
\DeclareFontSeriesChangeRule {ulc}{el}  {elc}  {}
\DeclareFontSeriesChangeRule {ulc}{l}   {lc}   {}
\DeclareFontSeriesChangeRule {ulc}{sl}  {slc}  {}
\DeclareFontSeriesChangeRule {ulc}{sb}  {sbc}  {bc}
\DeclareFontSeriesChangeRule {ulc}{b}   {bc}   {}
\DeclareFontSeriesChangeRule {ulc}{eb}  {ebc}  {bc}
\DeclareFontSeriesChangeRule {ulc}{ub}  {ubc}  {bc}
\DeclareFontSeriesChangeRule {ulc}{uc}  {uluc} {}
\DeclareFontSeriesChangeRule {ulc}{ec}  {ulec} {}
\DeclareFontSeriesChangeRule {ulc}{c}   {ulc}  {}
\DeclareFontSeriesChangeRule {ulc}{sc}  {ulsc} {}
\DeclareFontSeriesChangeRule {ulc}{sx}  {ulsx} {}
\DeclareFontSeriesChangeRule {ulc}{x}   {ulx}  {}
\DeclareFontSeriesChangeRule {ulc}{ex}  {ulex} {}
\DeclareFontSeriesChangeRule {ulc}{ux}  {ulux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ulsc}{ul} {ulsc} {}
\DeclareFontSeriesChangeRule {ulsc}{el} {elsc} {}
\DeclareFontSeriesChangeRule {ulsc}{l}  {lsc}  {}
\DeclareFontSeriesChangeRule {ulsc}{sl} {slsc} {}
\DeclareFontSeriesChangeRule {ulsc}{sb} {sbsc} {bsc}
\DeclareFontSeriesChangeRule {ulsc}{b}  {bsc}  {}
\DeclareFontSeriesChangeRule {ulsc}{eb} {ebsc} {bsc}
\DeclareFontSeriesChangeRule {ulsc}{ub} {ubsc} {bsc}
\DeclareFontSeriesChangeRule {ulsc}{uc} {uluc} {}
\DeclareFontSeriesChangeRule {ulsc}{ec} {ulec} {}
\DeclareFontSeriesChangeRule {ulsc}{c}  {ulc}  {}
\DeclareFontSeriesChangeRule {ulsc}{sc} {ulsc} {}
\DeclareFontSeriesChangeRule {ulsc}{sx} {ulsx} {}
\DeclareFontSeriesChangeRule {ulsc}{x}  {ulx}  {}
\DeclareFontSeriesChangeRule {ulsc}{ex} {ulex} {}
\DeclareFontSeriesChangeRule {ulsc}{ux} {ulux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ul}{uc}   {uluc} {}
\DeclareFontSeriesChangeRule {ul}{ec}   {ulec} {}
\DeclareFontSeriesChangeRule {ul}{c}    {ulc}  {}
\DeclareFontSeriesChangeRule {ul}{sc}   {ulsc} {}
\DeclareFontSeriesChangeRule {ul}{sx}   {ulsx} {}
\DeclareFontSeriesChangeRule {ul}{x}    {ulx}  {}
\DeclareFontSeriesChangeRule {ul}{ex}   {ulex} {}
\DeclareFontSeriesChangeRule {ul}{ux}   {ulux} {}
\DeclareFontSeriesChangeRule {ul}{sb}   {sb}   {b}
\DeclareFontSeriesChangeRule {ul}{eb}   {eb}   {b}
\DeclareFontSeriesChangeRule {ul}{ub}   {ub}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ulsx}{ul} {ulsx} {}
\DeclareFontSeriesChangeRule {ulsx}{el} {elsx} {}
\DeclareFontSeriesChangeRule {ulsx}{l}  {lsx}  {}
\DeclareFontSeriesChangeRule {ulsx}{sl} {slsx} {}
\DeclareFontSeriesChangeRule {ulsx}{sb} {sbsx} {bsx}
\DeclareFontSeriesChangeRule {ulsx}{b}  {bsx}  {}
\DeclareFontSeriesChangeRule {ulsx}{eb} {ebsx} {bsx}
\DeclareFontSeriesChangeRule {ulsx}{ub} {ubsx} {bsx}
\DeclareFontSeriesChangeRule {ulsx}{uc} {uluc} {}
\DeclareFontSeriesChangeRule {ulsx}{ec} {ulec} {}
\DeclareFontSeriesChangeRule {ulsx}{c}  {ulc}  {}
\DeclareFontSeriesChangeRule {ulsx}{sc} {ulsc} {}
\DeclareFontSeriesChangeRule {ulsx}{sx} {ulsx} {}
\DeclareFontSeriesChangeRule {ulsx}{x}  {ulx}  {}
\DeclareFontSeriesChangeRule {ulsx}{ex} {ulex} {}
\DeclareFontSeriesChangeRule {ulsx}{ux} {ulux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ulx}{ul}  {ulx}  {}
\DeclareFontSeriesChangeRule {ulx}{el}  {elx}  {}
\DeclareFontSeriesChangeRule {ulx}{l}   {lx}   {}
\DeclareFontSeriesChangeRule {ulx}{sl}  {slx}  {}
\DeclareFontSeriesChangeRule {ulx}{sb}  {sbx}  {bx}
\DeclareFontSeriesChangeRule {ulx}{b}   {bx}   {}
\DeclareFontSeriesChangeRule {ulx}{eb}  {ebx}  {bx}
\DeclareFontSeriesChangeRule {ulx}{ub}  {ubx}  {bx}
\DeclareFontSeriesChangeRule {ulx}{uc}  {uluc} {}
\DeclareFontSeriesChangeRule {ulx}{ec}  {ulec} {}
\DeclareFontSeriesChangeRule {ulx}{c}   {ulc}  {}
\DeclareFontSeriesChangeRule {ulx}{sc}  {ulsc} {}
\DeclareFontSeriesChangeRule {ulx}{sx}  {ulsx} {}
\DeclareFontSeriesChangeRule {ulx}{x}   {ulx}  {}
\DeclareFontSeriesChangeRule {ulx}{ex}  {ulex} {}
\DeclareFontSeriesChangeRule {ulx}{ux}  {ulux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ulex}{ul} {ulex} {}
\DeclareFontSeriesChangeRule {ulex}{el} {elex} {}
\DeclareFontSeriesChangeRule {ulex}{l}  {lex}  {}
\DeclareFontSeriesChangeRule {ulex}{sl} {slex} {}
\DeclareFontSeriesChangeRule {ulex}{sb} {sbex} {bex}
\DeclareFontSeriesChangeRule {ulex}{b}  {bex}  {}
\DeclareFontSeriesChangeRule {ulex}{eb} {ebex} {bex}
\DeclareFontSeriesChangeRule {ulex}{ub} {ubex} {bex}
\DeclareFontSeriesChangeRule {ulex}{uc} {uluc} {}
\DeclareFontSeriesChangeRule {ulex}{ec} {ulec} {}
\DeclareFontSeriesChangeRule {ulex}{c}  {ulc}  {}
\DeclareFontSeriesChangeRule {ulex}{sc} {ulsc} {}
\DeclareFontSeriesChangeRule {ulex}{sx} {ulsx} {}
\DeclareFontSeriesChangeRule {ulex}{x}  {ulx}  {}
\DeclareFontSeriesChangeRule {ulex}{ex} {ulex} {}
\DeclareFontSeriesChangeRule {ulex}{ux} {ulux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ulux}{ul} {ulux} {}
\DeclareFontSeriesChangeRule {ulux}{el} {elux} {}
\DeclareFontSeriesChangeRule {ulux}{l}  {lux}  {}
\DeclareFontSeriesChangeRule {ulux}{sl} {slux} {}
\DeclareFontSeriesChangeRule {ulux}{sb} {sbux} {bux}
\DeclareFontSeriesChangeRule {ulux}{b}  {bux}  {}
\DeclareFontSeriesChangeRule {ulux}{eb} {ebux} {bux}
\DeclareFontSeriesChangeRule {ulux}{ub} {ubux} {bux}
\DeclareFontSeriesChangeRule {ulux}{uc} {uluc} {}
\DeclareFontSeriesChangeRule {ulux}{ec} {ulec} {}
\DeclareFontSeriesChangeRule {ulux}{c}  {ulc}  {}
\DeclareFontSeriesChangeRule {ulux}{sc} {ulsc} {}
\DeclareFontSeriesChangeRule {ulux}{sx} {ulsx} {}
\DeclareFontSeriesChangeRule {ulux}{x}  {ulx}  {}
\DeclareFontSeriesChangeRule {ulux}{ex} {ulex} {}
\DeclareFontSeriesChangeRule {ulux}{ux} {ulux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {eluc}{ul} {uluc} {}
\DeclareFontSeriesChangeRule {eluc}{el} {eluc} {}
\DeclareFontSeriesChangeRule {eluc}{l}  {luc}  {}
\DeclareFontSeriesChangeRule {eluc}{sl} {sluc} {}
\DeclareFontSeriesChangeRule {eluc}{sb} {sbuc} {buc}
\DeclareFontSeriesChangeRule {eluc}{b}  {buc}  {}
\DeclareFontSeriesChangeRule {eluc}{eb} {ebuc} {buc}
\DeclareFontSeriesChangeRule {eluc}{ub} {ubuc} {buc}
\DeclareFontSeriesChangeRule {eluc}{uc} {eluc} {}
\DeclareFontSeriesChangeRule {eluc}{ec} {elec} {}
\DeclareFontSeriesChangeRule {eluc}{c}  {elc}  {}
\DeclareFontSeriesChangeRule {eluc}{sc} {elsc} {}
\DeclareFontSeriesChangeRule {eluc}{sx} {elsx} {}
\DeclareFontSeriesChangeRule {eluc}{x}  {elx}  {}
\DeclareFontSeriesChangeRule {eluc}{ex} {elex} {}
\DeclareFontSeriesChangeRule {eluc}{ux} {elux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {elec}{ul} {ulec} {}
\DeclareFontSeriesChangeRule {elec}{el} {elec} {}
\DeclareFontSeriesChangeRule {elec}{l}  {lec}  {}
\DeclareFontSeriesChangeRule {elec}{sl} {slec} {}
\DeclareFontSeriesChangeRule {elec}{sb} {sbec} {bec}
\DeclareFontSeriesChangeRule {elec}{b}  {bec}  {}
\DeclareFontSeriesChangeRule {elec}{eb} {ebec} {bec}
\DeclareFontSeriesChangeRule {elec}{ub} {ubec} {bec}
\DeclareFontSeriesChangeRule {elec}{uc} {eluc} {}
\DeclareFontSeriesChangeRule {elec}{ec} {elec} {}
\DeclareFontSeriesChangeRule {elec}{c}  {elc}  {}
\DeclareFontSeriesChangeRule {elec}{sc} {elsc} {}
\DeclareFontSeriesChangeRule {elec}{sx} {elsx} {}
\DeclareFontSeriesChangeRule {elec}{x}  {elx}  {}
\DeclareFontSeriesChangeRule {elec}{ex} {elex} {}
\DeclareFontSeriesChangeRule {elec}{ux} {elux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {elc}{ul}  {ulc}  {}
\DeclareFontSeriesChangeRule {elc}{el}  {elc}  {}
\DeclareFontSeriesChangeRule {elc}{l}   {lc}   {}
\DeclareFontSeriesChangeRule {elc}{sl}  {slc}  {}
\DeclareFontSeriesChangeRule {elc}{sb}  {sbc}  {bc}
\DeclareFontSeriesChangeRule {elc}{b}   {bc}   {}
\DeclareFontSeriesChangeRule {elc}{eb}  {ebc}  {bc}
\DeclareFontSeriesChangeRule {elc}{ub}  {ubc}  {bc}
\DeclareFontSeriesChangeRule {elc}{uc}  {eluc} {}
\DeclareFontSeriesChangeRule {elc}{ec}  {elec} {}
\DeclareFontSeriesChangeRule {elc}{c}   {elc}  {}
\DeclareFontSeriesChangeRule {elc}{sc}  {elsc} {}
\DeclareFontSeriesChangeRule {elc}{sx}  {elsx} {}
\DeclareFontSeriesChangeRule {elc}{x}   {elx}  {}
\DeclareFontSeriesChangeRule {elc}{ex}  {elex} {}
\DeclareFontSeriesChangeRule {elc}{ux}  {elux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {elsc}{ul} {ulsc} {}
\DeclareFontSeriesChangeRule {elsc}{el} {elsc} {}
\DeclareFontSeriesChangeRule {elsc}{l}  {lsc}  {}
\DeclareFontSeriesChangeRule {elsc}{sl} {slsc} {}
\DeclareFontSeriesChangeRule {elsc}{sb} {sbsc} {bsc}
\DeclareFontSeriesChangeRule {elsc}{b}  {bsc}  {}
\DeclareFontSeriesChangeRule {elsc}{eb} {ebsc} {bsc}
\DeclareFontSeriesChangeRule {elsc}{ub} {ubsc} {bsc}
\DeclareFontSeriesChangeRule {elsc}{uc} {eluc} {}
\DeclareFontSeriesChangeRule {elsc}{ec} {elec} {}
\DeclareFontSeriesChangeRule {elsc}{c}  {elc}  {}
\DeclareFontSeriesChangeRule {elsc}{sc} {elsc} {}
\DeclareFontSeriesChangeRule {elsc}{sx} {elsx} {}
\DeclareFontSeriesChangeRule {elsc}{x}  {elx}  {}
\DeclareFontSeriesChangeRule {elsc}{ex} {elex} {}
\DeclareFontSeriesChangeRule {elsc}{ux} {elux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {el}{uc}   {eluc} {}
\DeclareFontSeriesChangeRule {el}{ec}   {elec} {}
\DeclareFontSeriesChangeRule {el}{c}    {elc}  {}
\DeclareFontSeriesChangeRule {el}{sc}   {elsc} {}
\DeclareFontSeriesChangeRule {el}{sx}   {elsx} {}
\DeclareFontSeriesChangeRule {el}{x}    {elx}  {}
\DeclareFontSeriesChangeRule {el}{ex}   {elex} {}
\DeclareFontSeriesChangeRule {el}{ux}   {elux} {}
\DeclareFontSeriesChangeRule {el}{sb}   {sb}   {b}
\DeclareFontSeriesChangeRule {el}{eb}   {eb}   {b}
\DeclareFontSeriesChangeRule {el}{ub}   {ub}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {elsx}{ul} {ulsx} {}
\DeclareFontSeriesChangeRule {elsx}{el} {elsx} {}
\DeclareFontSeriesChangeRule {elsx}{l}  {lsx}  {}
\DeclareFontSeriesChangeRule {elsx}{sl} {slsx} {}
\DeclareFontSeriesChangeRule {elsx}{sb} {sbsx} {bsx}
\DeclareFontSeriesChangeRule {elsx}{b}  {bsx}  {}
\DeclareFontSeriesChangeRule {elsx}{eb} {ebsx} {bsx}
\DeclareFontSeriesChangeRule {elsx}{ub} {ubsx} {bsx}
\DeclareFontSeriesChangeRule {elsx}{uc} {eluc} {}
\DeclareFontSeriesChangeRule {elsx}{ec} {elec} {}
\DeclareFontSeriesChangeRule {elsx}{c}  {elc}  {}
\DeclareFontSeriesChangeRule {elsx}{sc} {elsc} {}
\DeclareFontSeriesChangeRule {elsx}{sx} {elsx} {}
\DeclareFontSeriesChangeRule {elsx}{x}  {elx}  {}
\DeclareFontSeriesChangeRule {elsx}{ex} {elex} {}
\DeclareFontSeriesChangeRule {elsx}{ux} {elux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {elx}{ul}  {ulx}  {}
\DeclareFontSeriesChangeRule {elx}{el}  {elx}  {}
\DeclareFontSeriesChangeRule {elx}{l}   {lx}   {}
\DeclareFontSeriesChangeRule {elx}{sl}  {slx}  {}
\DeclareFontSeriesChangeRule {elx}{sb}  {sbx}  {bx}
\DeclareFontSeriesChangeRule {elx}{b}   {bx}   {}
\DeclareFontSeriesChangeRule {elx}{eb}  {ebx}  {bx}
\DeclareFontSeriesChangeRule {elx}{ub}  {ubx}  {bx}
\DeclareFontSeriesChangeRule {elx}{uc}  {eluc} {}
\DeclareFontSeriesChangeRule {elx}{ec}  {elec} {}
\DeclareFontSeriesChangeRule {elx}{c}   {elc}  {}
\DeclareFontSeriesChangeRule {elx}{sc}  {elsc} {}
\DeclareFontSeriesChangeRule {elx}{sx}  {elsx} {}
\DeclareFontSeriesChangeRule {elx}{x}   {elx}  {}
\DeclareFontSeriesChangeRule {elx}{ex}  {elex} {}
\DeclareFontSeriesChangeRule {elx}{ux}  {elux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {elex}{ul} {ulex} {}
\DeclareFontSeriesChangeRule {elex}{el} {elex} {}
\DeclareFontSeriesChangeRule {elex}{l}  {lex}  {}
\DeclareFontSeriesChangeRule {elex}{sl} {slex} {}
\DeclareFontSeriesChangeRule {elex}{sb} {sbex} {bex}
\DeclareFontSeriesChangeRule {elex}{b}  {bex}  {}
\DeclareFontSeriesChangeRule {elex}{eb} {ebex} {bex}
\DeclareFontSeriesChangeRule {elex}{ub} {ubex} {bex}
\DeclareFontSeriesChangeRule {elex}{uc} {eluc} {}
\DeclareFontSeriesChangeRule {elex}{ec} {elec} {}
\DeclareFontSeriesChangeRule {elex}{c}  {elc}  {}
\DeclareFontSeriesChangeRule {elex}{sc} {elsc} {}
\DeclareFontSeriesChangeRule {elex}{sx} {elsx} {}
\DeclareFontSeriesChangeRule {elex}{x}  {elx}  {}
\DeclareFontSeriesChangeRule {elex}{ex} {elex} {}
\DeclareFontSeriesChangeRule {elex}{ux} {elux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {elux}{ul} {ulux} {}
\DeclareFontSeriesChangeRule {elux}{el} {elux} {}
\DeclareFontSeriesChangeRule {elux}{l}  {lux}  {}
\DeclareFontSeriesChangeRule {elux}{sl} {slux} {}
\DeclareFontSeriesChangeRule {elux}{sb} {sbux} {bux}
\DeclareFontSeriesChangeRule {elux}{b}  {bux}  {}
\DeclareFontSeriesChangeRule {elux}{eb} {ebux} {bux}
\DeclareFontSeriesChangeRule {elux}{ub} {ubux} {bux}
\DeclareFontSeriesChangeRule {elux}{uc} {eluc} {}
\DeclareFontSeriesChangeRule {elux}{ec} {elec} {}
\DeclareFontSeriesChangeRule {elux}{c}  {elc}  {}
\DeclareFontSeriesChangeRule {elux}{sc} {elsc} {}
\DeclareFontSeriesChangeRule {elux}{sx} {elsx} {}
\DeclareFontSeriesChangeRule {elux}{x}  {elx}  {}
\DeclareFontSeriesChangeRule {elux}{ex} {elex} {}
\DeclareFontSeriesChangeRule {elux}{ux} {elux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {luc}{ul}  {uluc} {}
\DeclareFontSeriesChangeRule {luc}{el}  {eluc} {}
\DeclareFontSeriesChangeRule {luc}{l}   {luc}  {}
\DeclareFontSeriesChangeRule {luc}{sl}  {sluc} {}
\DeclareFontSeriesChangeRule {luc}{sb}  {sbuc} {buc}
\DeclareFontSeriesChangeRule {luc}{b}   {buc}  {}
\DeclareFontSeriesChangeRule {luc}{eb}  {ebuc} {buc}
\DeclareFontSeriesChangeRule {luc}{ub}  {ubuc} {buc}
\DeclareFontSeriesChangeRule {luc}{uc}  {luc}  {}
\DeclareFontSeriesChangeRule {luc}{ec}  {lec}  {}
\DeclareFontSeriesChangeRule {luc}{c}   {lc}   {}
\DeclareFontSeriesChangeRule {luc}{sc}  {lsc}  {}
\DeclareFontSeriesChangeRule {luc}{sx}  {lsx}  {}
\DeclareFontSeriesChangeRule {luc}{x}   {lx}   {}
\DeclareFontSeriesChangeRule {luc}{ex}  {lex}  {}
\DeclareFontSeriesChangeRule {luc}{ux}  {lux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {lec}{ul}  {ulec} {}
\DeclareFontSeriesChangeRule {lec}{el}  {elec} {}
\DeclareFontSeriesChangeRule {lec}{l}   {lec}  {}
\DeclareFontSeriesChangeRule {lec}{sl}  {slec} {}
\DeclareFontSeriesChangeRule {lec}{sb}  {sbec} {bec}
\DeclareFontSeriesChangeRule {lec}{b}   {bec}  {}
\DeclareFontSeriesChangeRule {lec}{eb}  {ebec} {bec}
\DeclareFontSeriesChangeRule {lec}{ub}  {ubec} {bec}
\DeclareFontSeriesChangeRule {lec}{uc}  {luc}  {}
\DeclareFontSeriesChangeRule {lec}{ec}  {lec}  {}
\DeclareFontSeriesChangeRule {lec}{c}   {lc}   {}
\DeclareFontSeriesChangeRule {lec}{sc}  {lsc}  {}
\DeclareFontSeriesChangeRule {lec}{sx}  {lsx}  {}
\DeclareFontSeriesChangeRule {lec}{x}   {lx}   {}
\DeclareFontSeriesChangeRule {lec}{ex}  {lex}  {}
\DeclareFontSeriesChangeRule {lec}{ux}  {lux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {lc}{ul}   {ulc}  {}
\DeclareFontSeriesChangeRule {lc}{el}   {elc}  {}
\DeclareFontSeriesChangeRule {lc}{l}    {lc}   {}
\DeclareFontSeriesChangeRule {lc}{sl}   {slc}  {}
\DeclareFontSeriesChangeRule {lc}{sb}   {sbc}  {bc}
\DeclareFontSeriesChangeRule {lc}{b}    {bc}   {}
\DeclareFontSeriesChangeRule {lc}{eb}   {ebc}  {bc}
\DeclareFontSeriesChangeRule {lc}{ub}   {ubc}  {bc}
\DeclareFontSeriesChangeRule {lc}{uc}   {luc}  {}
\DeclareFontSeriesChangeRule {lc}{ec}   {lec}  {}
\DeclareFontSeriesChangeRule {lc}{c}    {lc}   {}
\DeclareFontSeriesChangeRule {lc}{sc}   {lsc}  {}
\DeclareFontSeriesChangeRule {lc}{sx}   {lsx}  {}
\DeclareFontSeriesChangeRule {lc}{x}    {lx}   {}
\DeclareFontSeriesChangeRule {lc}{ex}   {lex}  {}
\DeclareFontSeriesChangeRule {lc}{ux}   {lux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {lsc}{ul}  {ulsc} {}
\DeclareFontSeriesChangeRule {lsc}{el}  {elsc} {}
\DeclareFontSeriesChangeRule {lsc}{l}   {lsc}  {}
\DeclareFontSeriesChangeRule {lsc}{sl}  {slsc} {}
\DeclareFontSeriesChangeRule {lsc}{sb}  {sbsc} {bsc}
\DeclareFontSeriesChangeRule {lsc}{b}   {bsc}  {}
\DeclareFontSeriesChangeRule {lsc}{eb}  {ebsc} {bsc}
\DeclareFontSeriesChangeRule {lsc}{ub}  {ubsc} {bsc}
\DeclareFontSeriesChangeRule {lsc}{uc}  {luc}  {}
\DeclareFontSeriesChangeRule {lsc}{ec}  {lec}  {}
\DeclareFontSeriesChangeRule {lsc}{c}   {lc}   {}
\DeclareFontSeriesChangeRule {lsc}{sc}  {lsc}  {}
\DeclareFontSeriesChangeRule {lsc}{sx}  {lsx}  {}
\DeclareFontSeriesChangeRule {lsc}{x}   {lx}   {}
\DeclareFontSeriesChangeRule {lsc}{ex}  {lex}  {}
\DeclareFontSeriesChangeRule {lsc}{ux}  {lux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {l}{uc}    {luc}  {}
\DeclareFontSeriesChangeRule {l}{ec}    {lec}  {}
\DeclareFontSeriesChangeRule {l}{c}     {lc}   {}
\DeclareFontSeriesChangeRule {l}{sc}    {lsc}  {}
\DeclareFontSeriesChangeRule {l}{sx}    {lsx}  {}
\DeclareFontSeriesChangeRule {l}{x}     {lx}   {}
\DeclareFontSeriesChangeRule {l}{ex}    {lex}  {}
\DeclareFontSeriesChangeRule {l}{ux}    {lux}  {}
\DeclareFontSeriesChangeRule {l}{sb}    {sb}   {b}
\DeclareFontSeriesChangeRule {l}{eb}    {eb}   {b}
\DeclareFontSeriesChangeRule {l}{ub}    {ub}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {lsx}{ul}  {ulsx} {}
\DeclareFontSeriesChangeRule {lsx}{el}  {elsx} {}
\DeclareFontSeriesChangeRule {lsx}{l}   {lsx}  {}
\DeclareFontSeriesChangeRule {lsx}{sl}  {slsx} {}
\DeclareFontSeriesChangeRule {lsx}{sb}  {sbsx} {bsx}
\DeclareFontSeriesChangeRule {lsx}{b}   {bsx}  {}
\DeclareFontSeriesChangeRule {lsx}{eb}  {ebsx} {bsx}
\DeclareFontSeriesChangeRule {lsx}{ub}  {ubsx} {bsx}
\DeclareFontSeriesChangeRule {lsx}{uc}  {luc}  {}
\DeclareFontSeriesChangeRule {lsx}{ec}  {lec}  {}
\DeclareFontSeriesChangeRule {lsx}{c}   {lc}   {}
\DeclareFontSeriesChangeRule {lsx}{sc}  {lsc}  {}
\DeclareFontSeriesChangeRule {lsx}{sx}  {lsx}  {}
\DeclareFontSeriesChangeRule {lsx}{x}   {lx}   {}
\DeclareFontSeriesChangeRule {lsx}{ex}  {lex}  {}
\DeclareFontSeriesChangeRule {lsx}{ux}  {lux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {lx}{ul}   {ulx}  {}
\DeclareFontSeriesChangeRule {lx}{el}   {elx}  {}
\DeclareFontSeriesChangeRule {lx}{l}    {lx}   {}
\DeclareFontSeriesChangeRule {lx}{sl}   {slx}  {}
\DeclareFontSeriesChangeRule {lx}{sb}   {sbx}  {bx}
\DeclareFontSeriesChangeRule {lx}{b}    {bx}   {}
\DeclareFontSeriesChangeRule {lx}{eb}   {ebx}  {bx}
\DeclareFontSeriesChangeRule {lx}{ub}   {ubx}  {bx}
\DeclareFontSeriesChangeRule {lx}{uc}   {luc}  {}
\DeclareFontSeriesChangeRule {lx}{ec}   {lec}  {}
\DeclareFontSeriesChangeRule {lx}{c}    {lc}   {}
\DeclareFontSeriesChangeRule {lx}{sc}   {lsc}  {}
\DeclareFontSeriesChangeRule {lx}{sx}   {lsx}  {}
\DeclareFontSeriesChangeRule {lx}{x}    {lx}   {}
\DeclareFontSeriesChangeRule {lx}{ex}   {lex}  {}
\DeclareFontSeriesChangeRule {lx}{ux}   {lux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {lex}{ul}  {ulex} {}
\DeclareFontSeriesChangeRule {lex}{el}  {elex} {}
\DeclareFontSeriesChangeRule {lex}{l}   {lex}  {}
\DeclareFontSeriesChangeRule {lex}{sl}  {slex} {}
\DeclareFontSeriesChangeRule {lex}{sb}  {sbex} {bex}
\DeclareFontSeriesChangeRule {lex}{b}   {bex}  {}
\DeclareFontSeriesChangeRule {lex}{eb}  {ebex} {bex}
\DeclareFontSeriesChangeRule {lex}{ub}  {ubex} {bex}
\DeclareFontSeriesChangeRule {lex}{uc}  {luc}  {}
\DeclareFontSeriesChangeRule {lex}{ec}  {lec}  {}
\DeclareFontSeriesChangeRule {lex}{c}   {lc}   {}
\DeclareFontSeriesChangeRule {lex}{sc}  {lsc}  {}
\DeclareFontSeriesChangeRule {lex}{sx}  {lsx}  {}
\DeclareFontSeriesChangeRule {lex}{x}   {lx}   {}
\DeclareFontSeriesChangeRule {lex}{ex}  {lex}  {}
\DeclareFontSeriesChangeRule {lex}{ux}  {lux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {lux}{ul}  {ulux} {}
\DeclareFontSeriesChangeRule {lux}{el}  {elux} {}
\DeclareFontSeriesChangeRule {lux}{l}   {lux}  {}
\DeclareFontSeriesChangeRule {lux}{sl}  {slux} {}
\DeclareFontSeriesChangeRule {lux}{sb}  {sbux} {bux}
\DeclareFontSeriesChangeRule {lux}{b}   {bux}  {}
\DeclareFontSeriesChangeRule {lux}{eb}  {ebux} {bux}
\DeclareFontSeriesChangeRule {lux}{ub}  {ubux} {bux}
\DeclareFontSeriesChangeRule {lux}{uc}  {luc}  {}
\DeclareFontSeriesChangeRule {lux}{ec}  {lec}  {}
\DeclareFontSeriesChangeRule {lux}{c}   {lc}   {}
\DeclareFontSeriesChangeRule {lux}{sc}  {lsc}  {}
\DeclareFontSeriesChangeRule {lux}{sx}  {lsx}  {}
\DeclareFontSeriesChangeRule {lux}{x}   {lx}   {}
\DeclareFontSeriesChangeRule {lux}{ex}  {lex}  {}
\DeclareFontSeriesChangeRule {lux}{ux}  {lux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sluc}{ul} {uluc} {}
\DeclareFontSeriesChangeRule {sluc}{el} {eluc} {}
\DeclareFontSeriesChangeRule {sluc}{l}  {luc}  {}
\DeclareFontSeriesChangeRule {sluc}{sl} {sluc} {}
\DeclareFontSeriesChangeRule {sluc}{sb} {sbuc} {buc}
\DeclareFontSeriesChangeRule {sluc}{b}  {buc}  {}
\DeclareFontSeriesChangeRule {sluc}{eb} {ebuc} {buc}
\DeclareFontSeriesChangeRule {sluc}{ub} {ubuc} {buc}
\DeclareFontSeriesChangeRule {sluc}{uc} {sluc} {}
\DeclareFontSeriesChangeRule {sluc}{ec} {slec} {}
\DeclareFontSeriesChangeRule {sluc}{c}  {slc}  {}
\DeclareFontSeriesChangeRule {sluc}{sc} {slsc} {}
\DeclareFontSeriesChangeRule {sluc}{sx} {slsx} {}
\DeclareFontSeriesChangeRule {sluc}{x}  {slx}  {}
\DeclareFontSeriesChangeRule {sluc}{ex} {slex} {}
\DeclareFontSeriesChangeRule {sluc}{ux} {slux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {slec}{ul} {ulec} {}
\DeclareFontSeriesChangeRule {slec}{el} {elec} {}
\DeclareFontSeriesChangeRule {slec}{l}  {lec}  {}
\DeclareFontSeriesChangeRule {slec}{sl} {slec} {}
\DeclareFontSeriesChangeRule {slec}{sb} {sbec} {bec}
\DeclareFontSeriesChangeRule {slec}{b}  {bec}  {}
\DeclareFontSeriesChangeRule {slec}{eb} {ebec} {bec}
\DeclareFontSeriesChangeRule {slec}{ub} {ubec} {bec}
\DeclareFontSeriesChangeRule {slec}{uc} {sluc} {}
\DeclareFontSeriesChangeRule {slec}{ec} {slec} {}
\DeclareFontSeriesChangeRule {slec}{c}  {slc}  {}
\DeclareFontSeriesChangeRule {slec}{sc} {slsc} {}
\DeclareFontSeriesChangeRule {slec}{sx} {slsx} {}
\DeclareFontSeriesChangeRule {slec}{x}  {slx}  {}
\DeclareFontSeriesChangeRule {slec}{ex} {slex} {}
\DeclareFontSeriesChangeRule {slec}{ux} {slux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {slc}{ul}  {ulc}  {}
\DeclareFontSeriesChangeRule {slc}{el}  {elc}  {}
\DeclareFontSeriesChangeRule {slc}{l}   {lc}   {}
\DeclareFontSeriesChangeRule {slc}{sl}  {slc}  {}
\DeclareFontSeriesChangeRule {slc}{sb}  {sbc}  {bc}
\DeclareFontSeriesChangeRule {slc}{b}   {bc}   {}
\DeclareFontSeriesChangeRule {slc}{eb}  {ebc}  {bc}
\DeclareFontSeriesChangeRule {slc}{ub}  {ubc}  {bc}
\DeclareFontSeriesChangeRule {slc}{uc}  {sluc} {}
\DeclareFontSeriesChangeRule {slc}{ec}  {slec} {}
\DeclareFontSeriesChangeRule {slc}{c}   {slc}  {}
\DeclareFontSeriesChangeRule {slc}{sc}  {slsc} {}
\DeclareFontSeriesChangeRule {slc}{sx}  {slsx} {}
\DeclareFontSeriesChangeRule {slc}{x}   {slx}  {}
\DeclareFontSeriesChangeRule {slc}{ex}  {slex} {}
\DeclareFontSeriesChangeRule {slc}{ux}  {slux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {slsc}{ul} {ulsc} {}
\DeclareFontSeriesChangeRule {slsc}{el} {elsc} {}
\DeclareFontSeriesChangeRule {slsc}{l}  {lsc}  {}
\DeclareFontSeriesChangeRule {slsc}{sl} {slsc} {}
\DeclareFontSeriesChangeRule {slsc}{sb} {sbsc} {bsc}
\DeclareFontSeriesChangeRule {slsc}{b}  {bsc}  {}
\DeclareFontSeriesChangeRule {slsc}{eb} {ebsc} {bsc}
\DeclareFontSeriesChangeRule {slsc}{ub} {ubsc} {bsc}
\DeclareFontSeriesChangeRule {slsc}{uc} {sluc} {}
\DeclareFontSeriesChangeRule {slsc}{ec} {slec} {}
\DeclareFontSeriesChangeRule {slsc}{c}  {slc}  {}
\DeclareFontSeriesChangeRule {slsc}{sc} {slsc} {}
\DeclareFontSeriesChangeRule {slsc}{sx} {slsx} {}
\DeclareFontSeriesChangeRule {slsc}{x}  {slx}  {}
\DeclareFontSeriesChangeRule {slsc}{ex} {slex} {}
\DeclareFontSeriesChangeRule {slsc}{ux} {slux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sl}{uc}   {sluc} {}
\DeclareFontSeriesChangeRule {sl}{ec}   {slec} {}
\DeclareFontSeriesChangeRule {sl}{c}    {slc}  {}
\DeclareFontSeriesChangeRule {sl}{sc}   {slsc} {}
\DeclareFontSeriesChangeRule {sl}{sx}   {slsx} {}
\DeclareFontSeriesChangeRule {sl}{x}    {slx}  {}
\DeclareFontSeriesChangeRule {sl}{ex}   {slex} {}
\DeclareFontSeriesChangeRule {sl}{ux}   {slux} {}
\DeclareFontSeriesChangeRule {sl}{sb}   {sb}   {b}
\DeclareFontSeriesChangeRule {sl}{eb}   {eb}   {b}
\DeclareFontSeriesChangeRule {sl}{ub}   {ub}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {slsx}{ul} {ulsx} {}
\DeclareFontSeriesChangeRule {slsx}{el} {elsx} {}
\DeclareFontSeriesChangeRule {slsx}{l}  {lsx}  {}
\DeclareFontSeriesChangeRule {slsx}{sl} {slsx} {}
\DeclareFontSeriesChangeRule {slsx}{sb} {sbsx} {bsx}
\DeclareFontSeriesChangeRule {slsx}{b}  {bsx}  {}
\DeclareFontSeriesChangeRule {slsx}{eb} {ebsx} {bsx}
\DeclareFontSeriesChangeRule {slsx}{ub} {ubsx} {bsx}
\DeclareFontSeriesChangeRule {slsx}{uc} {sluc} {}
\DeclareFontSeriesChangeRule {slsx}{ec} {slec} {}
\DeclareFontSeriesChangeRule {slsx}{c}  {slc}  {}
\DeclareFontSeriesChangeRule {slsx}{sc} {slsc} {}
\DeclareFontSeriesChangeRule {slsx}{sx} {slsx} {}
\DeclareFontSeriesChangeRule {slsx}{x}  {slx}  {}
\DeclareFontSeriesChangeRule {slsx}{ex} {slex} {}
\DeclareFontSeriesChangeRule {slsx}{ux} {slux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {slx}{ul}  {ulx}  {}
\DeclareFontSeriesChangeRule {slx}{el}  {elx}  {}
\DeclareFontSeriesChangeRule {slx}{l}   {lx}   {}
\DeclareFontSeriesChangeRule {slx}{sl}  {slx}  {}
\DeclareFontSeriesChangeRule {slx}{sb}  {sbx}  {bx}
\DeclareFontSeriesChangeRule {slx}{b}   {bx}   {}
\DeclareFontSeriesChangeRule {slx}{eb}  {ebx}  {bx}
\DeclareFontSeriesChangeRule {slx}{ub}  {ubx}  {bx}
\DeclareFontSeriesChangeRule {slx}{uc}  {sluc} {}
\DeclareFontSeriesChangeRule {slx}{ec}  {slec} {}
\DeclareFontSeriesChangeRule {slx}{c}   {slc}  {}
\DeclareFontSeriesChangeRule {slx}{sc}  {slsc} {}
\DeclareFontSeriesChangeRule {slx}{sx}  {slsx} {}
\DeclareFontSeriesChangeRule {slx}{x}   {slx}  {}
\DeclareFontSeriesChangeRule {slx}{ex}  {slex} {}
\DeclareFontSeriesChangeRule {slx}{ux}  {slux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {slex}{ul} {ulex} {}
\DeclareFontSeriesChangeRule {slex}{el} {elex} {}
\DeclareFontSeriesChangeRule {slex}{l}  {lex}  {}
\DeclareFontSeriesChangeRule {slex}{sl} {slex} {}
\DeclareFontSeriesChangeRule {slex}{sb} {sbex} {bex}
\DeclareFontSeriesChangeRule {slex}{b}  {bex}  {}
\DeclareFontSeriesChangeRule {slex}{eb} {ebex} {bex}
\DeclareFontSeriesChangeRule {slex}{ub} {ubex} {bex}
\DeclareFontSeriesChangeRule {slex}{uc} {sluc} {}
\DeclareFontSeriesChangeRule {slex}{ec} {slec} {}
\DeclareFontSeriesChangeRule {slex}{c}  {slc}  {}
\DeclareFontSeriesChangeRule {slex}{sc} {slsc} {}
\DeclareFontSeriesChangeRule {slex}{sx} {slsx} {}
\DeclareFontSeriesChangeRule {slex}{x}  {slx}  {}
\DeclareFontSeriesChangeRule {slex}{ex} {slex} {}
\DeclareFontSeriesChangeRule {slex}{ux} {slux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {slux}{ul} {ulux} {}
\DeclareFontSeriesChangeRule {slux}{el} {elux} {}
\DeclareFontSeriesChangeRule {slux}{l}  {lux}  {}
\DeclareFontSeriesChangeRule {slux}{sl} {slux} {}
\DeclareFontSeriesChangeRule {slux}{sb} {sbux} {bux}
\DeclareFontSeriesChangeRule {slux}{b}  {bux}  {}
\DeclareFontSeriesChangeRule {slux}{eb} {ebux} {bux}
\DeclareFontSeriesChangeRule {slux}{ub} {ubux} {bux}
\DeclareFontSeriesChangeRule {slux}{uc} {sluc} {}
\DeclareFontSeriesChangeRule {slux}{ec} {slec} {}
\DeclareFontSeriesChangeRule {slux}{c}  {slc}  {}
\DeclareFontSeriesChangeRule {slux}{sc} {slsc} {}
\DeclareFontSeriesChangeRule {slux}{sx} {slsx} {}
\DeclareFontSeriesChangeRule {slux}{x}  {slx}  {}
\DeclareFontSeriesChangeRule {slux}{ex} {slex} {}
\DeclareFontSeriesChangeRule {slux}{ux} {slux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {uc}{ul}   {uluc} {}
\DeclareFontSeriesChangeRule {uc}{el}   {eluc} {}
\DeclareFontSeriesChangeRule {uc}{l}    {luc}  {}
\DeclareFontSeriesChangeRule {uc}{sl}   {sluc} {}
\DeclareFontSeriesChangeRule {uc}{sb}   {sbuc} {buc}
\DeclareFontSeriesChangeRule {uc}{b}    {buc}  {}
\DeclareFontSeriesChangeRule {uc}{eb}   {ebuc} {buc}
\DeclareFontSeriesChangeRule {uc}{ub}   {ubuc} {buc}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ec}{ul}   {ulec} {}
\DeclareFontSeriesChangeRule {ec}{el}   {elec} {}
\DeclareFontSeriesChangeRule {ec}{l}    {lec}  {}
\DeclareFontSeriesChangeRule {ec}{sl}   {slec} {}
\DeclareFontSeriesChangeRule {ec}{sb}   {sbec} {bec}
\DeclareFontSeriesChangeRule {ec}{b}    {bec}  {}
\DeclareFontSeriesChangeRule {ec}{eb}   {ebec} {bec}
\DeclareFontSeriesChangeRule {ec}{ub}   {ubec} {bec}
%    \end{macrocode}
%
%    There are a number of font families that implement condensed
%    series, but often only \texttt{c} and \texttt{bc}. Therefore, if
%    we see a weight or width change request that can't be fulfilled
%    we try to stay with \texttt{c} or \texttt{bc}.
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {c}{ul}    {ulc}  {c}
\DeclareFontSeriesChangeRule {c}{el}    {elc}  {c}
\DeclareFontSeriesChangeRule {c}{l}     {lc}   {c}
\DeclareFontSeriesChangeRule {c}{sl}    {slc}  {c}
\DeclareFontSeriesChangeRule {c}{sb}    {sbc}  {bc}
\DeclareFontSeriesChangeRule {c}{b}     {bc}   {}
\DeclareFontSeriesChangeRule {c}{eb}    {ebc}  {bc}
\DeclareFontSeriesChangeRule {c}{ub}    {ubc}  {bc}
\DeclareFontSeriesChangeRule {c}{uc}    {uc}   {c}
\DeclareFontSeriesChangeRule {c}{ec}    {ec}   {c}
\DeclareFontSeriesChangeRule {c}{sc}    {sc}   {c}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sc}{ul}   {ulsc} {}
\DeclareFontSeriesChangeRule {sc}{el}   {elsc} {}
\DeclareFontSeriesChangeRule {sc}{l}    {lsc}  {}
\DeclareFontSeriesChangeRule {sc}{sl}   {slsc} {}
\DeclareFontSeriesChangeRule {sc}{sb}   {sbsc} {bsc}
\DeclareFontSeriesChangeRule {sc}{b}    {bsc}  {}
\DeclareFontSeriesChangeRule {sc}{eb}   {ebsc} {bsc}
\DeclareFontSeriesChangeRule {sc}{ub}   {ubsc} {bsc}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {m}{sb}    {sb}   {b}
\DeclareFontSeriesChangeRule {m}{eb}    {eb}   {b}
\DeclareFontSeriesChangeRule {m}{ub}    {ub}   {b}
%    \end{macrocode}
%
%    This special rule normally does nothing since nearly every font
%    implements the \texttt{b} bold series. The exception are Computer
%    Modern and Latin Modern and fonts based on them. They usually
%    only have \texttt{bx}, but then they normally provide an
%    \texttt{.fd} file declaration mapping from \texttt{b} to
%    \texttt{bx} and thus pretend that \texttt{b} exists. But in case
%    any of them does not, we offer an alternative result and switch
%    to \texttt{bx} if \texttt{b} can't be found.
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {m}{b}     {b}    {bx}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sx}{ul}   {ulsx} {}
\DeclareFontSeriesChangeRule {sx}{el}   {elsx} {}
\DeclareFontSeriesChangeRule {sx}{l}    {lsx}  {}
\DeclareFontSeriesChangeRule {sx}{sl}   {slsx} {}
\DeclareFontSeriesChangeRule {sx}{sb}   {sbsx} {bsx}
\DeclareFontSeriesChangeRule {sx}{b}    {bsx}  {}
\DeclareFontSeriesChangeRule {sx}{eb}   {ebsx} {bsx}
\DeclareFontSeriesChangeRule {sx}{ub}   {ubsx} {bsx}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {x}{ul}    {ulx}  {}
\DeclareFontSeriesChangeRule {x}{el}    {elx}  {}
\DeclareFontSeriesChangeRule {x}{l}     {lx}   {}
\DeclareFontSeriesChangeRule {x}{sl}    {slx}  {}
\DeclareFontSeriesChangeRule {x}{sb}    {sbx}  {bx}
\DeclareFontSeriesChangeRule {x}{b}     {bx}   {}
\DeclareFontSeriesChangeRule {x}{eb}    {ebx}  {bx}
\DeclareFontSeriesChangeRule {x}{ub}    {ubx}  {bx}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ex}{ul}   {ulex} {}
\DeclareFontSeriesChangeRule {ex}{el}   {elex} {}
\DeclareFontSeriesChangeRule {ex}{l}    {lex}  {}
\DeclareFontSeriesChangeRule {ex}{sl}   {slex} {}
\DeclareFontSeriesChangeRule {ex}{sb}   {sbex} {bex}
\DeclareFontSeriesChangeRule {ex}{b}    {bex}  {}
\DeclareFontSeriesChangeRule {ex}{eb}   {ebex} {bex}
\DeclareFontSeriesChangeRule {ex}{ub}   {ubex} {bex}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ux}{ul}   {ulux} {}
\DeclareFontSeriesChangeRule {ux}{el}   {elux} {}
\DeclareFontSeriesChangeRule {ux}{l}    {lux}  {}
\DeclareFontSeriesChangeRule {ux}{sl}   {slux} {}
\DeclareFontSeriesChangeRule {ux}{sb}   {sbux} {bux}
\DeclareFontSeriesChangeRule {ux}{b}    {bux}  {}
\DeclareFontSeriesChangeRule {ux}{eb}   {ebux} {bux}
\DeclareFontSeriesChangeRule {ux}{ub}   {ubux} {bux}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbuc}{ul} {uluc} {}
\DeclareFontSeriesChangeRule {sbuc}{el} {eluc} {}
\DeclareFontSeriesChangeRule {sbuc}{l}  {luc}  {}
\DeclareFontSeriesChangeRule {sbuc}{sl} {sluc} {}
\DeclareFontSeriesChangeRule {sbuc}{sb} {sbuc} {}
\DeclareFontSeriesChangeRule {sbuc}{b}  {buc}  {}
\DeclareFontSeriesChangeRule {sbuc}{eb} {ebuc} {buc}
\DeclareFontSeriesChangeRule {sbuc}{ub} {ubuc} {buc}
\DeclareFontSeriesChangeRule {sbuc}{uc} {sbuc} {}
\DeclareFontSeriesChangeRule {sbuc}{ec} {sbec} {}
\DeclareFontSeriesChangeRule {sbuc}{c}  {sbc}  {}
\DeclareFontSeriesChangeRule {sbuc}{sc} {sbsc} {}
\DeclareFontSeriesChangeRule {sbuc}{sx} {sbsx} {}
\DeclareFontSeriesChangeRule {sbuc}{x}  {sbx}  {}
\DeclareFontSeriesChangeRule {sbuc}{ex} {sbex} {}
\DeclareFontSeriesChangeRule {sbuc}{ux} {sbux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbec}{ul} {ulec} {}
\DeclareFontSeriesChangeRule {sbec}{el} {elec} {}
\DeclareFontSeriesChangeRule {sbec}{l}  {lec}  {}
\DeclareFontSeriesChangeRule {sbec}{sl} {slec} {}
\DeclareFontSeriesChangeRule {sbec}{sb} {sbec} {}
\DeclareFontSeriesChangeRule {sbec}{b}  {bec}  {}
\DeclareFontSeriesChangeRule {sbec}{eb} {ebec} {bec}
\DeclareFontSeriesChangeRule {sbec}{ub} {ubec} {bec}
\DeclareFontSeriesChangeRule {sbec}{uc} {sbuc} {}
\DeclareFontSeriesChangeRule {sbec}{ec} {sbec} {}
\DeclareFontSeriesChangeRule {sbec}{c}  {sbc}  {}
\DeclareFontSeriesChangeRule {sbec}{sc} {sbsc} {}
\DeclareFontSeriesChangeRule {sbec}{sx} {sbsx} {}
\DeclareFontSeriesChangeRule {sbec}{x}  {sbx}  {}
\DeclareFontSeriesChangeRule {sbec}{ex} {sbex} {}
\DeclareFontSeriesChangeRule {sbec}{ux} {sbux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbc}{ul}  {ulc}  {}
\DeclareFontSeriesChangeRule {sbc}{el}  {elc}  {}
\DeclareFontSeriesChangeRule {sbc}{l}   {lc}   {}
\DeclareFontSeriesChangeRule {sbc}{sl}  {slc}  {}
\DeclareFontSeriesChangeRule {sbc}{sb}  {sbc}  {}
\DeclareFontSeriesChangeRule {sbc}{b}   {bc}   {}
\DeclareFontSeriesChangeRule {sbc}{eb}  {ebc}  {bc}
\DeclareFontSeriesChangeRule {sbc}{ub}  {ubc}  {bc}
\DeclareFontSeriesChangeRule {sbc}{uc}  {sbuc} {}
\DeclareFontSeriesChangeRule {sbc}{ec}  {sbec} {}
\DeclareFontSeriesChangeRule {sbc}{c}   {sbc}  {}
\DeclareFontSeriesChangeRule {sbc}{sc}  {sbsc} {}
\DeclareFontSeriesChangeRule {sbc}{sx}  {sbsx} {}
\DeclareFontSeriesChangeRule {sbc}{x}   {sbx}  {}
\DeclareFontSeriesChangeRule {sbc}{ex}  {sbex} {}
\DeclareFontSeriesChangeRule {sbc}{ux}  {sbux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbsc}{ul} {ulsc} {}
\DeclareFontSeriesChangeRule {sbsc}{el} {elsc} {}
\DeclareFontSeriesChangeRule {sbsc}{l}  {lsc}  {}
\DeclareFontSeriesChangeRule {sbsc}{sl} {slsc} {}
\DeclareFontSeriesChangeRule {sbsc}{sb} {sbsc} {}
\DeclareFontSeriesChangeRule {sbsc}{b}  {bsc}  {}
\DeclareFontSeriesChangeRule {sbsc}{eb} {ebsc} {bsc}
\DeclareFontSeriesChangeRule {sbsc}{ub} {ubsc} {bsc}
\DeclareFontSeriesChangeRule {sbsc}{uc} {sbuc} {}
\DeclareFontSeriesChangeRule {sbsc}{ec} {sbec} {}
\DeclareFontSeriesChangeRule {sbsc}{c}  {sbc}  {}
\DeclareFontSeriesChangeRule {sbsc}{sc} {sbsc} {}
\DeclareFontSeriesChangeRule {sbsc}{sx} {sbsx} {}
\DeclareFontSeriesChangeRule {sbsc}{x}  {sbx}  {}
\DeclareFontSeriesChangeRule {sbsc}{ex} {sbex} {}
\DeclareFontSeriesChangeRule {sbsc}{ux} {sbux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sb}{uc}   {sbuc} {}
\DeclareFontSeriesChangeRule {sb}{ec}   {sbec} {}
\DeclareFontSeriesChangeRule {sb}{c}    {sbc}  {}
\DeclareFontSeriesChangeRule {sb}{sc}   {sbsc} {}
\DeclareFontSeriesChangeRule {sb}{sx}   {sbsx} {}
\DeclareFontSeriesChangeRule {sb}{x}    {sbx}  {}
\DeclareFontSeriesChangeRule {sb}{ex}   {sbex} {}
\DeclareFontSeriesChangeRule {sb}{ux}   {sbux} {}
\DeclareFontSeriesChangeRule {sb}{eb}   {eb}   {b}
\DeclareFontSeriesChangeRule {sb}{ub}   {ub}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbsx}{ul} {ulsx} {}
\DeclareFontSeriesChangeRule {sbsx}{el} {elsx} {}
\DeclareFontSeriesChangeRule {sbsx}{l}  {lsx}  {}
\DeclareFontSeriesChangeRule {sbsx}{sl} {slsx} {}
\DeclareFontSeriesChangeRule {sbsx}{sb} {sbsx} {}
\DeclareFontSeriesChangeRule {sbsx}{b}  {bsx}  {}
\DeclareFontSeriesChangeRule {sbsx}{eb} {ebsx} {bsx}
\DeclareFontSeriesChangeRule {sbsx}{ub} {ubsx} {bsx}
\DeclareFontSeriesChangeRule {sbsx}{uc} {sbuc} {}
\DeclareFontSeriesChangeRule {sbsx}{ec} {sbec} {}
\DeclareFontSeriesChangeRule {sbsx}{c}  {sbc}  {}
\DeclareFontSeriesChangeRule {sbsx}{sc} {sbsc} {}
\DeclareFontSeriesChangeRule {sbsx}{sx} {sbsx} {}
\DeclareFontSeriesChangeRule {sbsx}{x}  {sbx}  {}
\DeclareFontSeriesChangeRule {sbsx}{ex} {sbex} {}
\DeclareFontSeriesChangeRule {sbsx}{ux} {sbux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbx}{ul}  {ulx}  {}
\DeclareFontSeriesChangeRule {sbx}{el}  {elx}  {}
\DeclareFontSeriesChangeRule {sbx}{l}   {lx}   {}
\DeclareFontSeriesChangeRule {sbx}{sl}  {slx}  {}
\DeclareFontSeriesChangeRule {sbx}{sb}  {sbx}  {}
\DeclareFontSeriesChangeRule {sbx}{b}   {bx}   {}
\DeclareFontSeriesChangeRule {sbx}{eb}  {ebx}  {bx}
\DeclareFontSeriesChangeRule {sbx}{ub}  {ubx}  {bx}
\DeclareFontSeriesChangeRule {sbx}{uc}  {sbuc} {}
\DeclareFontSeriesChangeRule {sbx}{ec}  {sbec} {}
\DeclareFontSeriesChangeRule {sbx}{c}   {sbc}  {}
\DeclareFontSeriesChangeRule {sbx}{sc}  {sbsc} {}
\DeclareFontSeriesChangeRule {sbx}{sx}  {sbsx} {}
\DeclareFontSeriesChangeRule {sbx}{x}   {sbx}  {}
\DeclareFontSeriesChangeRule {sbx}{ex}  {sbex} {}
\DeclareFontSeriesChangeRule {sbx}{ux}  {sbux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbex}{ul} {ulex} {}
\DeclareFontSeriesChangeRule {sbex}{el} {elex} {}
\DeclareFontSeriesChangeRule {sbex}{l}  {lex}  {}
\DeclareFontSeriesChangeRule {sbex}{sl} {slex} {}
\DeclareFontSeriesChangeRule {sbex}{sb} {sbex} {}
\DeclareFontSeriesChangeRule {sbex}{b}  {bex}  {}
\DeclareFontSeriesChangeRule {sbex}{eb} {ebex} {bex}
\DeclareFontSeriesChangeRule {sbex}{ub} {ubex} {bex}
\DeclareFontSeriesChangeRule {sbex}{uc} {sbuc} {}
\DeclareFontSeriesChangeRule {sbex}{ec} {sbec} {}
\DeclareFontSeriesChangeRule {sbex}{c}  {sbc}  {}
\DeclareFontSeriesChangeRule {sbex}{sc} {sbsc} {}
\DeclareFontSeriesChangeRule {sbex}{sx} {sbsx} {}
\DeclareFontSeriesChangeRule {sbex}{x}  {sbx}  {}
\DeclareFontSeriesChangeRule {sbex}{ex} {sbex} {}
\DeclareFontSeriesChangeRule {sbex}{ux} {sbux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbux}{ul} {ulux} {}
\DeclareFontSeriesChangeRule {sbux}{el} {elux} {}
\DeclareFontSeriesChangeRule {sbux}{l}  {lux}  {}
\DeclareFontSeriesChangeRule {sbux}{sl} {slux} {}
\DeclareFontSeriesChangeRule {sbux}{sb} {sbux} {}
\DeclareFontSeriesChangeRule {sbux}{b}  {bux}  {}
\DeclareFontSeriesChangeRule {sbux}{eb} {ebux} {bux}
\DeclareFontSeriesChangeRule {sbux}{ub} {ubux} {bux}
\DeclareFontSeriesChangeRule {sbux}{uc} {sbuc} {}
\DeclareFontSeriesChangeRule {sbux}{ec} {sbec} {}
\DeclareFontSeriesChangeRule {sbux}{c}  {sbc}  {}
\DeclareFontSeriesChangeRule {sbux}{sc} {sbsc} {}
\DeclareFontSeriesChangeRule {sbux}{sx} {sbsx} {}
\DeclareFontSeriesChangeRule {sbux}{x}  {sbx}  {}
\DeclareFontSeriesChangeRule {sbux}{ex} {sbex} {}
\DeclareFontSeriesChangeRule {sbux}{ux} {sbux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {buc}{ul}  {uluc} {}
\DeclareFontSeriesChangeRule {buc}{el}  {eluc} {}
\DeclareFontSeriesChangeRule {buc}{l}   {luc}  {}
\DeclareFontSeriesChangeRule {buc}{sl}  {sluc} {}
\DeclareFontSeriesChangeRule {buc}{sb}  {sbuc} {buc}
\DeclareFontSeriesChangeRule {buc}{b}   {buc}  {}
\DeclareFontSeriesChangeRule {buc}{eb}  {ebuc} {buc}
\DeclareFontSeriesChangeRule {buc}{ub}  {ubuc} {buc}
\DeclareFontSeriesChangeRule {buc}{uc}  {buc}  {}
\DeclareFontSeriesChangeRule {buc}{ec}  {bec}  {}
\DeclareFontSeriesChangeRule {buc}{c}   {bc}   {}
\DeclareFontSeriesChangeRule {buc}{sc}  {bsc}  {}
\DeclareFontSeriesChangeRule {buc}{sx}  {bsx}  {}
\DeclareFontSeriesChangeRule {buc}{x}   {bx}   {}
\DeclareFontSeriesChangeRule {buc}{ex}  {bex}  {}
\DeclareFontSeriesChangeRule {buc}{ux}  {bux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {bec}{ul}  {ulec} {}
\DeclareFontSeriesChangeRule {bec}{el}  {elec} {}
\DeclareFontSeriesChangeRule {bec}{l}   {lec}  {}
\DeclareFontSeriesChangeRule {bec}{sl}  {slec} {}
\DeclareFontSeriesChangeRule {bec}{sb}  {sbec} {bec}
\DeclareFontSeriesChangeRule {bec}{b}   {bec}  {}
\DeclareFontSeriesChangeRule {bec}{eb}  {ebec} {bec}
\DeclareFontSeriesChangeRule {bec}{ub}  {ubec} {bec}
\DeclareFontSeriesChangeRule {bec}{uc}  {buc}  {}
\DeclareFontSeriesChangeRule {bec}{ec}  {bec}  {}
\DeclareFontSeriesChangeRule {bec}{c}   {bc}   {}
\DeclareFontSeriesChangeRule {bec}{sc}  {bsc}  {}
\DeclareFontSeriesChangeRule {bec}{sx}  {bsx}  {}
\DeclareFontSeriesChangeRule {bec}{x}   {bx}   {}
\DeclareFontSeriesChangeRule {bec}{ex}  {bex}  {}
\DeclareFontSeriesChangeRule {bec}{ux}  {bux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {bc}{ul}   {ulc}  {}
\DeclareFontSeriesChangeRule {bc}{el}   {elc}  {}
\DeclareFontSeriesChangeRule {bc}{l}    {lc}   {}
\DeclareFontSeriesChangeRule {bc}{sl}   {slc}  {}
\DeclareFontSeriesChangeRule {bc}{sb}   {sbc}  {bc}
\DeclareFontSeriesChangeRule {bc}{b}    {bc}   {}
\DeclareFontSeriesChangeRule {bc}{eb}   {ebc}  {bc}
\DeclareFontSeriesChangeRule {bc}{ub}   {ubc}  {bc}
\DeclareFontSeriesChangeRule {bc}{uc}   {buc}  {}
\DeclareFontSeriesChangeRule {bc}{ec}   {bec}  {}
\DeclareFontSeriesChangeRule {bc}{c}    {bc}   {}
\DeclareFontSeriesChangeRule {bc}{sc}   {bsc}  {}
\DeclareFontSeriesChangeRule {bc}{sx}   {bsx}  {}
\DeclareFontSeriesChangeRule {bc}{x}    {bx}   {}
\DeclareFontSeriesChangeRule {bc}{ex}   {bex}  {}
\DeclareFontSeriesChangeRule {bc}{ux}   {bux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {bsc}{ul}  {ulsc} {}
\DeclareFontSeriesChangeRule {bsc}{el}  {elsc} {}
\DeclareFontSeriesChangeRule {bsc}{l}   {lsc}  {}
\DeclareFontSeriesChangeRule {bsc}{sl}  {slsc} {}
\DeclareFontSeriesChangeRule {bsc}{sb}  {sbsc} {bsc}
\DeclareFontSeriesChangeRule {bsc}{b}   {bsc}  {}
\DeclareFontSeriesChangeRule {bsc}{eb}  {ebsc} {bsc}
\DeclareFontSeriesChangeRule {bsc}{ub}  {ubsc} {bsc}
\DeclareFontSeriesChangeRule {bsc}{uc}  {buc}  {}
\DeclareFontSeriesChangeRule {bsc}{ec}  {bec}  {}
\DeclareFontSeriesChangeRule {bsc}{c}   {bc}   {}
\DeclareFontSeriesChangeRule {bsc}{sc}  {bsc}  {}
\DeclareFontSeriesChangeRule {bsc}{sx}  {bsx}  {}
\DeclareFontSeriesChangeRule {bsc}{x}   {bx}   {}
\DeclareFontSeriesChangeRule {bsc}{ex}  {bex}  {}
\DeclareFontSeriesChangeRule {bsc}{ux}  {bux}  {}
%    \end{macrocode}
%
%    If we are in \texttt{b} and a width change is requested that
%    leads to a missing font face we stay in \texttt{b} because then the
%    font family probably doesn't implement width changes at all.
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {b}{uc}    {buc}  {b}
\DeclareFontSeriesChangeRule {b}{ec}    {bec}  {b}
\DeclareFontSeriesChangeRule {b}{c}     {bc}   {b}
\DeclareFontSeriesChangeRule {b}{sc}    {bsc}  {b}
\DeclareFontSeriesChangeRule {b}{sx}    {bsx}  {b}
\DeclareFontSeriesChangeRule {b}{x}     {bx}   {b}
\DeclareFontSeriesChangeRule {b}{ex}    {bex}  {b}
\DeclareFontSeriesChangeRule {b}{ux}    {bux}  {b}
\DeclareFontSeriesChangeRule {b}{sb}    {sb}   {b}
\DeclareFontSeriesChangeRule {b}{eb}    {eb}   {b}
\DeclareFontSeriesChangeRule {b}{ub}    {ub}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {bsx}{ul}  {ulsx} {}
\DeclareFontSeriesChangeRule {bsx}{el}  {elsx} {}
\DeclareFontSeriesChangeRule {bsx}{l}   {lsx}  {}
\DeclareFontSeriesChangeRule {bsx}{sl}  {slsx} {}
\DeclareFontSeriesChangeRule {bsx}{sb}  {sbsx} {bsx}
\DeclareFontSeriesChangeRule {bsx}{b}   {bsx}  {}
\DeclareFontSeriesChangeRule {bsx}{eb}  {ebsx} {bsx}
\DeclareFontSeriesChangeRule {bsx}{ub}  {ubsx} {bsx}
\DeclareFontSeriesChangeRule {bsx}{uc}  {buc}  {}
\DeclareFontSeriesChangeRule {bsx}{ec}  {bec}  {}
\DeclareFontSeriesChangeRule {bsx}{c}   {bc}   {}
\DeclareFontSeriesChangeRule {bsx}{sc}  {bsc}  {}
\DeclareFontSeriesChangeRule {bsx}{sx}  {bsx}  {}
\DeclareFontSeriesChangeRule {bsx}{x}   {bx}   {}
\DeclareFontSeriesChangeRule {bsx}{ex}  {bex}  {}
\DeclareFontSeriesChangeRule {bsx}{ux}  {bux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {bx}{ul}   {ulx}  {}
\DeclareFontSeriesChangeRule {bx}{el}   {elx}  {}
\DeclareFontSeriesChangeRule {bx}{l}    {lx}   {}
\DeclareFontSeriesChangeRule {bx}{sl}   {slx}  {}
\DeclareFontSeriesChangeRule {bx}{sb}   {sbx}  {bx}
\DeclareFontSeriesChangeRule {bx}{b}    {bx}   {}
\DeclareFontSeriesChangeRule {bx}{eb}   {ebx}  {bx}
\DeclareFontSeriesChangeRule {bx}{ub}   {ubx}  {bx}
\DeclareFontSeriesChangeRule {bx}{uc}   {buc}  {}
\DeclareFontSeriesChangeRule {bx}{ec}   {bec}  {}
\DeclareFontSeriesChangeRule {bx}{c}    {bc}   {}
\DeclareFontSeriesChangeRule {bx}{sc}   {bsc}  {}
\DeclareFontSeriesChangeRule {bx}{sx}   {bsx}  {}
\DeclareFontSeriesChangeRule {bx}{x}    {bx}   {}
\DeclareFontSeriesChangeRule {bx}{ex}   {bex}  {}
\DeclareFontSeriesChangeRule {bx}{ux}   {bux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {bex}{ul}  {ulex} {}
\DeclareFontSeriesChangeRule {bex}{el}  {elex} {}
\DeclareFontSeriesChangeRule {bex}{l}   {lex}  {}
\DeclareFontSeriesChangeRule {bex}{sl}  {slex} {}
\DeclareFontSeriesChangeRule {bex}{sb}  {sbex} {bex}
\DeclareFontSeriesChangeRule {bex}{b}   {bex}  {}
\DeclareFontSeriesChangeRule {bex}{eb}  {ebex} {bex}
\DeclareFontSeriesChangeRule {bex}{ub}  {ubex} {bex}
\DeclareFontSeriesChangeRule {bex}{uc}  {buc}  {}
\DeclareFontSeriesChangeRule {bex}{ec}  {bec}  {}
\DeclareFontSeriesChangeRule {bex}{c}   {bc}   {}
\DeclareFontSeriesChangeRule {bex}{sc}  {bsc}  {}
\DeclareFontSeriesChangeRule {bex}{sx}  {bsx}  {}
\DeclareFontSeriesChangeRule {bex}{x}   {bx}   {}
\DeclareFontSeriesChangeRule {bex}{ex}  {bex}  {}
\DeclareFontSeriesChangeRule {bex}{ux}  {bux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {bux}{ul}  {ulux} {}
\DeclareFontSeriesChangeRule {bux}{el}  {elux} {}
\DeclareFontSeriesChangeRule {bux}{l}   {lux}  {}
\DeclareFontSeriesChangeRule {bux}{sl}  {slux} {}
\DeclareFontSeriesChangeRule {bux}{sb}  {sbux} {bux}
\DeclareFontSeriesChangeRule {bux}{b}   {bux}  {}
\DeclareFontSeriesChangeRule {bux}{eb}  {ebux} {bux}
\DeclareFontSeriesChangeRule {bux}{ub}  {ubux} {bux}
\DeclareFontSeriesChangeRule {bux}{uc}  {buc}  {}
\DeclareFontSeriesChangeRule {bux}{ec}  {bec}  {}
\DeclareFontSeriesChangeRule {bux}{c}   {bc}   {}
\DeclareFontSeriesChangeRule {bux}{sc}  {bsc}  {}
\DeclareFontSeriesChangeRule {bux}{sx}  {bsx}  {}
\DeclareFontSeriesChangeRule {bux}{x}   {bx}   {}
\DeclareFontSeriesChangeRule {bux}{ex}  {bex}  {}
\DeclareFontSeriesChangeRule {bux}{ux}  {bux}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebuc}{ul} {uluc} {}
\DeclareFontSeriesChangeRule {ebuc}{el} {eluc} {}
\DeclareFontSeriesChangeRule {ebuc}{l}  {luc}  {}
\DeclareFontSeriesChangeRule {ebuc}{sl} {sluc} {}
\DeclareFontSeriesChangeRule {ebuc}{sb} {sbuc} {buc}
\DeclareFontSeriesChangeRule {ebuc}{b}  {buc}  {}
\DeclareFontSeriesChangeRule {ebuc}{eb} {ebuc} {}
%    \end{macrocode}
%
%    In the following rule, we use \texttt{eb} instead of \texttt{b}
%    in the fourth argument, since \texttt{eb} is a better
%    approximation to \texttt{ub} than \texttt{b} and \texttt{ebuc}
%    is already in the first argument and therefore this font face probably
%    actually exists. A similar consideration also applies to some other rules
%    in the following.
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebuc}{ub} {ubuc} {ebuc}
\DeclareFontSeriesChangeRule {ebuc}{uc} {ebuc} {}
\DeclareFontSeriesChangeRule {ebuc}{ec} {ebec} {}
\DeclareFontSeriesChangeRule {ebuc}{c}  {ebc}  {}
\DeclareFontSeriesChangeRule {ebuc}{sc} {ebsc} {}
\DeclareFontSeriesChangeRule {ebuc}{sx} {ebsx} {}
\DeclareFontSeriesChangeRule {ebuc}{x}  {ebx}  {}
\DeclareFontSeriesChangeRule {ebuc}{ex} {ebex} {}
\DeclareFontSeriesChangeRule {ebuc}{ux} {ebux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebec}{ul} {ulec} {}
\DeclareFontSeriesChangeRule {ebec}{el} {elec} {}
\DeclareFontSeriesChangeRule {ebec}{l}  {lec}  {}
\DeclareFontSeriesChangeRule {ebec}{sl} {slec} {}
\DeclareFontSeriesChangeRule {ebec}{sb} {sbec} {bec}
\DeclareFontSeriesChangeRule {ebec}{b}  {bec}  {}
\DeclareFontSeriesChangeRule {ebec}{eb} {ebec} {}
\DeclareFontSeriesChangeRule {ebec}{ub} {ubec} {ebec}
\DeclareFontSeriesChangeRule {ebec}{uc} {ebuc} {}
\DeclareFontSeriesChangeRule {ebec}{ec} {ebec} {}
\DeclareFontSeriesChangeRule {ebec}{c}  {ebc}  {}
\DeclareFontSeriesChangeRule {ebec}{sc} {ebsc} {}
\DeclareFontSeriesChangeRule {ebec}{sx} {ebsx} {}
\DeclareFontSeriesChangeRule {ebec}{x}  {ebx}  {}
\DeclareFontSeriesChangeRule {ebec}{ex} {ebex} {}
\DeclareFontSeriesChangeRule {ebec}{ux} {ebux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebc}{ul}  {ulc}  {}
\DeclareFontSeriesChangeRule {ebc}{el}  {elc}  {}
\DeclareFontSeriesChangeRule {ebc}{l}   {lc}   {}
\DeclareFontSeriesChangeRule {ebc}{sl}  {slc}  {}
\DeclareFontSeriesChangeRule {ebc}{sb}  {sbc}  {bc}
\DeclareFontSeriesChangeRule {ebc}{b}   {bc}   {}
\DeclareFontSeriesChangeRule {ebc}{eb}  {ebc}  {}
\DeclareFontSeriesChangeRule {ebc}{ub}  {ubc}  {ebc}
\DeclareFontSeriesChangeRule {ebc}{uc}  {ebuc} {}
\DeclareFontSeriesChangeRule {ebc}{ec}  {ebec} {}
\DeclareFontSeriesChangeRule {ebc}{c}   {ebc}  {}
\DeclareFontSeriesChangeRule {ebc}{sc}  {ebsc} {}
\DeclareFontSeriesChangeRule {ebc}{sx}  {ebsx} {}
\DeclareFontSeriesChangeRule {ebc}{x}   {ebx}  {}
\DeclareFontSeriesChangeRule {ebc}{ex}  {ebex} {}
\DeclareFontSeriesChangeRule {ebc}{ux}  {ebux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebsc}{ul} {ulsc} {}
\DeclareFontSeriesChangeRule {ebsc}{el} {elsc} {}
\DeclareFontSeriesChangeRule {ebsc}{l}  {lsc}  {}
\DeclareFontSeriesChangeRule {ebsc}{sl} {slsc} {}
\DeclareFontSeriesChangeRule {ebsc}{sb} {sbsc} {bsc}
\DeclareFontSeriesChangeRule {ebsc}{b}  {bsc}  {}
\DeclareFontSeriesChangeRule {ebsc}{eb} {ebsc} {}
\DeclareFontSeriesChangeRule {ebsc}{ub} {ubsc} {ebsc}
\DeclareFontSeriesChangeRule {ebsc}{uc} {ebuc} {}
\DeclareFontSeriesChangeRule {ebsc}{ec} {ebec} {}
\DeclareFontSeriesChangeRule {ebsc}{c}  {ebc}  {}
\DeclareFontSeriesChangeRule {ebsc}{sc} {ebsc} {}
\DeclareFontSeriesChangeRule {ebsc}{sx} {ebsx} {}
\DeclareFontSeriesChangeRule {ebsc}{x}  {ebx}  {}
\DeclareFontSeriesChangeRule {ebsc}{ex} {ebex} {}
\DeclareFontSeriesChangeRule {ebsc}{ux} {ebux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {eb}{uc}   {ebuc} {}
\DeclareFontSeriesChangeRule {eb}{ec}   {ebec} {}
\DeclareFontSeriesChangeRule {eb}{c}    {ebc}  {}
\DeclareFontSeriesChangeRule {eb}{sc}   {ebsc} {}
\DeclareFontSeriesChangeRule {eb}{sx}   {ebsx} {}
\DeclareFontSeriesChangeRule {eb}{x}    {ebx}  {}
\DeclareFontSeriesChangeRule {eb}{ex}   {ebex} {}
\DeclareFontSeriesChangeRule {eb}{ux}   {ebux} {}
\DeclareFontSeriesChangeRule {eb}{sb}   {sb}   {b}
\DeclareFontSeriesChangeRule {eb}{ub}   {ub}   {eb}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebsx}{ul} {ulsx} {}
\DeclareFontSeriesChangeRule {ebsx}{el} {elsx} {}
\DeclareFontSeriesChangeRule {ebsx}{l}  {lsx}  {}
\DeclareFontSeriesChangeRule {ebsx}{sl} {slsx} {}
\DeclareFontSeriesChangeRule {ebsx}{sb} {sbsx} {bsx}
\DeclareFontSeriesChangeRule {ebsx}{b}  {bsx}  {}
\DeclareFontSeriesChangeRule {ebsx}{eb} {ebsx} {}
\DeclareFontSeriesChangeRule {ebsx}{ub} {ubsx} {ebsx}
\DeclareFontSeriesChangeRule {ebsx}{uc} {ebuc} {}
\DeclareFontSeriesChangeRule {ebsx}{ec} {ebec} {}
\DeclareFontSeriesChangeRule {ebsx}{c}  {ebc}  {}
\DeclareFontSeriesChangeRule {ebsx}{sc} {ebsc} {}
\DeclareFontSeriesChangeRule {ebsx}{sx} {ebsx} {}
\DeclareFontSeriesChangeRule {ebsx}{x}  {ebx}  {}
\DeclareFontSeriesChangeRule {ebsx}{ex} {ebex} {}
\DeclareFontSeriesChangeRule {ebsx}{ux} {ebux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebx}{ul}  {ulx}  {}
\DeclareFontSeriesChangeRule {ebx}{el}  {elx}  {}
\DeclareFontSeriesChangeRule {ebx}{l}   {lx}   {}
\DeclareFontSeriesChangeRule {ebx}{sl}  {slx}  {}
\DeclareFontSeriesChangeRule {ebx}{sb}  {sbx}  {bx}
\DeclareFontSeriesChangeRule {ebx}{b}   {bx}   {}
\DeclareFontSeriesChangeRule {ebx}{eb}  {ebx}  {}
\DeclareFontSeriesChangeRule {ebx}{ub}  {ubx}  {ebx}
\DeclareFontSeriesChangeRule {ebx}{uc}  {ebuc} {}
\DeclareFontSeriesChangeRule {ebx}{ec}  {ebec} {}
\DeclareFontSeriesChangeRule {ebx}{c}   {ebc}  {}
\DeclareFontSeriesChangeRule {ebx}{sc}  {ebsc} {}
\DeclareFontSeriesChangeRule {ebx}{sx}  {ebsx} {}
\DeclareFontSeriesChangeRule {ebx}{x}   {ebx}  {}
\DeclareFontSeriesChangeRule {ebx}{ex}  {ebex} {}
\DeclareFontSeriesChangeRule {ebx}{ux}  {ebux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebex}{ul} {ulex} {}
\DeclareFontSeriesChangeRule {ebex}{el} {elex} {}
\DeclareFontSeriesChangeRule {ebex}{l}  {lex}  {}
\DeclareFontSeriesChangeRule {ebex}{sl} {slex} {}
\DeclareFontSeriesChangeRule {ebex}{sb} {sbex} {bex}
\DeclareFontSeriesChangeRule {ebex}{b}  {bex}  {}
\DeclareFontSeriesChangeRule {ebex}{eb} {ebex} {}
\DeclareFontSeriesChangeRule {ebex}{ub} {ubex} {ebex}
\DeclareFontSeriesChangeRule {ebex}{uc} {ebuc} {}
\DeclareFontSeriesChangeRule {ebex}{ec} {ebec} {}
\DeclareFontSeriesChangeRule {ebex}{c}  {ebc}  {}
\DeclareFontSeriesChangeRule {ebex}{sc} {ebsc} {}
\DeclareFontSeriesChangeRule {ebex}{sx} {ebsx} {}
\DeclareFontSeriesChangeRule {ebex}{x}  {ebx}  {}
\DeclareFontSeriesChangeRule {ebex}{ex} {ebex} {}
\DeclareFontSeriesChangeRule {ebex}{ux} {ebux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebux}{ul} {ulux} {}
\DeclareFontSeriesChangeRule {ebux}{el} {elux} {}
\DeclareFontSeriesChangeRule {ebux}{l}  {lux}  {}
\DeclareFontSeriesChangeRule {ebux}{sl} {slux} {}
\DeclareFontSeriesChangeRule {ebux}{sb} {sbux} {bux}
\DeclareFontSeriesChangeRule {ebux}{b}  {bux}  {}
\DeclareFontSeriesChangeRule {ebux}{eb} {ebux} {}
\DeclareFontSeriesChangeRule {ebux}{ub} {ubux} {ebux}
\DeclareFontSeriesChangeRule {ebux}{uc} {ebuc} {}
\DeclareFontSeriesChangeRule {ebux}{ec} {ebec} {}
\DeclareFontSeriesChangeRule {ebux}{c}  {ebc}  {}
\DeclareFontSeriesChangeRule {ebux}{sc} {ebsc} {}
\DeclareFontSeriesChangeRule {ebux}{sx} {ebsx} {}
\DeclareFontSeriesChangeRule {ebux}{x}  {ebx}  {}
\DeclareFontSeriesChangeRule {ebux}{ex} {ebex} {}
\DeclareFontSeriesChangeRule {ebux}{ux} {ebux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubuc}{ul} {uluc} {}
\DeclareFontSeriesChangeRule {ubuc}{el} {eluc} {}
\DeclareFontSeriesChangeRule {ubuc}{l}  {luc}  {}
\DeclareFontSeriesChangeRule {ubuc}{sl} {sluc} {}
\DeclareFontSeriesChangeRule {ubuc}{sb} {sbuc} {buc}
\DeclareFontSeriesChangeRule {ubuc}{b}  {buc}  {}
\DeclareFontSeriesChangeRule {ubuc}{eb} {ebuc} {ubuc}
\DeclareFontSeriesChangeRule {ubuc}{ub} {ubuc} {}
\DeclareFontSeriesChangeRule {ubuc}{uc} {ubuc} {}
\DeclareFontSeriesChangeRule {ubuc}{ec} {ubec} {}
\DeclareFontSeriesChangeRule {ubuc}{c}  {ubc}  {}
\DeclareFontSeriesChangeRule {ubuc}{sc} {ubsc} {}
\DeclareFontSeriesChangeRule {ubuc}{sx} {ubsx} {}
\DeclareFontSeriesChangeRule {ubuc}{x}  {ubx}  {}
\DeclareFontSeriesChangeRule {ubuc}{ex} {ubex} {}
\DeclareFontSeriesChangeRule {ubuc}{ux} {ubux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubec}{ul} {ulec} {}
\DeclareFontSeriesChangeRule {ubec}{el} {elec} {}
\DeclareFontSeriesChangeRule {ubec}{l}  {lec}  {}
\DeclareFontSeriesChangeRule {ubec}{sl} {slec} {}
\DeclareFontSeriesChangeRule {ubec}{sb} {sbec} {bec}
\DeclareFontSeriesChangeRule {ubec}{b}  {bec}  {}
\DeclareFontSeriesChangeRule {ubec}{eb} {ebec} {ubec}
\DeclareFontSeriesChangeRule {ubec}{ub} {ubec} {}
\DeclareFontSeriesChangeRule {ubec}{uc} {ubuc} {}
\DeclareFontSeriesChangeRule {ubec}{ec} {ubec} {}
\DeclareFontSeriesChangeRule {ubec}{c}  {ubc}  {}
\DeclareFontSeriesChangeRule {ubec}{sc} {ubsc} {}
\DeclareFontSeriesChangeRule {ubec}{sx} {ubsx} {}
\DeclareFontSeriesChangeRule {ubec}{x}  {ubx}  {}
\DeclareFontSeriesChangeRule {ubec}{ex} {ubex} {}
\DeclareFontSeriesChangeRule {ubec}{ux} {ubux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubc}{ul}  {ulc}  {}
\DeclareFontSeriesChangeRule {ubc}{el}  {elc}  {}
\DeclareFontSeriesChangeRule {ubc}{l}   {lc}   {}
\DeclareFontSeriesChangeRule {ubc}{sl}  {slc}  {}
\DeclareFontSeriesChangeRule {ubc}{sb}  {sbc}  {bc}
\DeclareFontSeriesChangeRule {ubc}{b}   {bc}   {}
\DeclareFontSeriesChangeRule {ubc}{eb}  {ebc}  {ubc}
\DeclareFontSeriesChangeRule {ubc}{ub}  {ubc}  {}
\DeclareFontSeriesChangeRule {ubc}{uc}  {ubuc} {}
\DeclareFontSeriesChangeRule {ubc}{ec}  {ubec} {}
\DeclareFontSeriesChangeRule {ubc}{c}   {ubc}  {}
\DeclareFontSeriesChangeRule {ubc}{sc}  {ubsc} {}
\DeclareFontSeriesChangeRule {ubc}{sx}  {ubsx} {}
\DeclareFontSeriesChangeRule {ubc}{x}   {ubx}  {}
\DeclareFontSeriesChangeRule {ubc}{ex}  {ubex} {}
\DeclareFontSeriesChangeRule {ubc}{ux}  {ubux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubsc}{ul} {ulsc} {}
\DeclareFontSeriesChangeRule {ubsc}{el} {elsc} {}
\DeclareFontSeriesChangeRule {ubsc}{l}  {lsc}  {}
\DeclareFontSeriesChangeRule {ubsc}{sl} {slsc} {}
\DeclareFontSeriesChangeRule {ubsc}{sb} {sbsc} {bsc}
\DeclareFontSeriesChangeRule {ubsc}{b}  {bsc}  {}
\DeclareFontSeriesChangeRule {ubsc}{eb} {ebsc} {ubsc}
\DeclareFontSeriesChangeRule {ubsc}{ub} {ubsc} {}
\DeclareFontSeriesChangeRule {ubsc}{uc} {ubuc} {}
\DeclareFontSeriesChangeRule {ubsc}{ec} {ubec} {}
\DeclareFontSeriesChangeRule {ubsc}{c}  {ubc}  {}
\DeclareFontSeriesChangeRule {ubsc}{sc} {ubsc} {}
\DeclareFontSeriesChangeRule {ubsc}{sx} {ubsx} {}
\DeclareFontSeriesChangeRule {ubsc}{x}  {ubx}  {}
\DeclareFontSeriesChangeRule {ubsc}{ex} {ubex} {}
\DeclareFontSeriesChangeRule {ubsc}{ux} {ubux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ub}{uc}   {ubuc} {}
\DeclareFontSeriesChangeRule {ub}{ec}   {ubec} {}
\DeclareFontSeriesChangeRule {ub}{c}    {ubc}  {}
\DeclareFontSeriesChangeRule {ub}{sc}   {ubsc} {}
\DeclareFontSeriesChangeRule {ub}{sx}   {ubsx} {}
\DeclareFontSeriesChangeRule {ub}{x}    {ubx}  {}
\DeclareFontSeriesChangeRule {ub}{ex}   {ubex} {}
\DeclareFontSeriesChangeRule {ub}{ux}   {ubux} {}
\DeclareFontSeriesChangeRule {ub}{sb}   {sb}   {b}
\DeclareFontSeriesChangeRule {ub}{eb}   {eb}   {ub}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubsx}{ul} {ulsx} {}
\DeclareFontSeriesChangeRule {ubsx}{el} {elsx} {}
\DeclareFontSeriesChangeRule {ubsx}{l}  {lsx}  {}
\DeclareFontSeriesChangeRule {ubsx}{sl} {slsx} {}
\DeclareFontSeriesChangeRule {ubsx}{sb} {sbsx} {bsx}
\DeclareFontSeriesChangeRule {ubsx}{b}  {bsx}  {}
\DeclareFontSeriesChangeRule {ubsx}{eb} {ebsx} {ubsx}
\DeclareFontSeriesChangeRule {ubsx}{ub} {ubsx} {}
\DeclareFontSeriesChangeRule {ubsx}{uc} {ubuc} {}
\DeclareFontSeriesChangeRule {ubsx}{ec} {ubec} {}
\DeclareFontSeriesChangeRule {ubsx}{c}  {ubc}  {}
\DeclareFontSeriesChangeRule {ubsx}{sc} {ubsc} {}
\DeclareFontSeriesChangeRule {ubsx}{sx} {ubsx} {}
\DeclareFontSeriesChangeRule {ubsx}{x}  {ubx}  {}
\DeclareFontSeriesChangeRule {ubsx}{ex} {ubex} {}
\DeclareFontSeriesChangeRule {ubsx}{ux} {ubux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubx}{ul}  {ulx}  {}
\DeclareFontSeriesChangeRule {ubx}{el}  {elx}  {}
\DeclareFontSeriesChangeRule {ubx}{l}   {lx}   {}
\DeclareFontSeriesChangeRule {ubx}{sl}  {slx}  {}
\DeclareFontSeriesChangeRule {ubx}{sb}  {sbx}  {bx}
\DeclareFontSeriesChangeRule {ubx}{b}   {bx}   {}
\DeclareFontSeriesChangeRule {ubx}{eb}  {ebx}  {ubx}
\DeclareFontSeriesChangeRule {ubx}{ub}  {ubx}  {}
\DeclareFontSeriesChangeRule {ubx}{uc}  {ubuc} {}
\DeclareFontSeriesChangeRule {ubx}{ec}  {ubec} {}
\DeclareFontSeriesChangeRule {ubx}{c}   {ubc}  {}
\DeclareFontSeriesChangeRule {ubx}{sc}  {ubsc} {}
\DeclareFontSeriesChangeRule {ubx}{sx}  {ubsx} {}
\DeclareFontSeriesChangeRule {ubx}{x}   {ubx}  {}
\DeclareFontSeriesChangeRule {ubx}{ex}  {ubex} {}
\DeclareFontSeriesChangeRule {ubx}{ux}  {ubux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubex}{ul} {ulex} {}
\DeclareFontSeriesChangeRule {ubex}{el} {elex} {}
\DeclareFontSeriesChangeRule {ubex}{l}  {lex}  {}
\DeclareFontSeriesChangeRule {ubex}{sl} {slex} {}
\DeclareFontSeriesChangeRule {ubex}{sb} {sbex} {bex}
\DeclareFontSeriesChangeRule {ubex}{b}  {bex}  {}
\DeclareFontSeriesChangeRule {ubex}{eb} {ebex} {ubex}
\DeclareFontSeriesChangeRule {ubex}{ub} {ubex} {}
\DeclareFontSeriesChangeRule {ubex}{uc} {ubuc} {}
\DeclareFontSeriesChangeRule {ubex}{ec} {ubec} {}
\DeclareFontSeriesChangeRule {ubex}{c}  {ubc}  {}
\DeclareFontSeriesChangeRule {ubex}{sc} {ubsc} {}
\DeclareFontSeriesChangeRule {ubex}{sx} {ubsx} {}
\DeclareFontSeriesChangeRule {ubex}{x}  {ubx}  {}
\DeclareFontSeriesChangeRule {ubex}{ex} {ubex} {}
\DeclareFontSeriesChangeRule {ubex}{ux} {ubux} {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubux}{ul} {ulux} {}
\DeclareFontSeriesChangeRule {ubux}{el} {elux} {}
\DeclareFontSeriesChangeRule {ubux}{l}  {lux}  {}
\DeclareFontSeriesChangeRule {ubux}{sl} {slux} {}
\DeclareFontSeriesChangeRule {ubux}{sb} {sbux} {bux}
\DeclareFontSeriesChangeRule {ubux}{b}  {bux}  {}
\DeclareFontSeriesChangeRule {ubux}{eb} {ebux} {ubux}
\DeclareFontSeriesChangeRule {ubux}{ub} {ubux} {}
\DeclareFontSeriesChangeRule {ubux}{uc} {ubuc} {}
\DeclareFontSeriesChangeRule {ubux}{ec} {ubec} {}
\DeclareFontSeriesChangeRule {ubux}{c}  {ubc}  {}
\DeclareFontSeriesChangeRule {ubux}{sc} {ubsc} {}
\DeclareFontSeriesChangeRule {ubux}{sx} {ubsx} {}
\DeclareFontSeriesChangeRule {ubux}{x}  {ubx}  {}
\DeclareFontSeriesChangeRule {ubux}{ex} {ubex} {}
\DeclareFontSeriesChangeRule {ubux}{ux} {ubux} {}
%    \end{macrocode}
%
%    Special rules for \texttt{lm} etc.\ aren't needed because if
%    \texttt{lm} is requested, it will be used if there is no rule, and
%    that is then reduced to \texttt{l} automatically. Same for \texttt{mc}
%    and friends.
%
%    The following entries handle a request for \texttt{bx} and fall
%    back to \texttt{b} if that can't be fulfilled.
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {uluc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ulec}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ulc}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {ulsc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ul}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {ulsx}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ulx}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {ulex}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ulux}{bx} {bx}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {eluc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {elec}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {elc}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {elsc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {el}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {elsx}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {elx}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {elex}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {elux}{bx} {bx}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {luc}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {lec}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {lc}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {lsc}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {l}{bx}    {bx}   {b}
\DeclareFontSeriesChangeRule {lsx}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {lx}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {lex}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {lux}{bx}  {bx}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sluc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {slec}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {slc}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {slsc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {sl}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {slsx}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {slx}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {slex}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {slux}{bx} {bx}   {b}
%    \end{macrocode}
%
% \changes{1.0l}{2025/06/23}{Improve the order of the
%   \cs{DeclareFontSeriesChangeRule} entries (gh/1727)}
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {uc}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {ec}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {c}{bx}    {bx}   {b}
\DeclareFontSeriesChangeRule {sc}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {m}{bx}    {bx}   {b}
\DeclareFontSeriesChangeRule {sx}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {x}{bx}    {bx}   {b}
\DeclareFontSeriesChangeRule {ex}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {ux}{bx}   {bx}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbuc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {sbec}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {sbc}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {sbsc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {sb}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {sbsx}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {sbx}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {sbex}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {sbux}{bx} {bx}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {buc}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {bec}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {bc}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {bsc}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {b}{bx}    {bx}   {b}
\DeclareFontSeriesChangeRule {bsx}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {bx}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {bex}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {bux}{bx}  {bx}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebuc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ebec}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ebc}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {ebsc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {eb}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {ebsx}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ebx}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {ebex}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ebux}{bx} {bx}   {b}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubuc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ubec}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ubc}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {ubsc}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ub}{bx}   {bx}   {b}
\DeclareFontSeriesChangeRule {ubsx}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ubx}{bx}  {bx}   {b}
\DeclareFontSeriesChangeRule {ubex}{bx} {bx}   {b}
\DeclareFontSeriesChangeRule {ubux}{bx} {bx}   {b}
%    \end{macrocode}
%
%    Here are the special rules for \texttt{m?}. We offer \texttt{m} as
%    alternative result series for all entries where this is not already the
%    result series, because otherwise, if the result series does not exist,
%    \texttt{m?}\ would be tried as the series value, which cannot work. (Of
%    course, this does not help if the \texttt{m} series does not exist
%    either, but this should only affect very few fonts.)
% \changes{1.0l}{2025/06/23}{Offer \texttt{m} as alternative result series for
%   some \cs{DeclareFontSeriesChangeRule} entries (gh/1727)}
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {uluc}{m?} {uc}   {m}
\DeclareFontSeriesChangeRule {ulec}{m?} {ec}   {m}
\DeclareFontSeriesChangeRule {ulc}{m?}  {c}    {m}
\DeclareFontSeriesChangeRule {ulsc}{m?} {sc}   {m}
\DeclareFontSeriesChangeRule {ul}{m?}   {m}    {}
\DeclareFontSeriesChangeRule {ulsx}{m?} {sx}   {m}
\DeclareFontSeriesChangeRule {ulx}{m?}  {x}    {m}
\DeclareFontSeriesChangeRule {ulex}{m?} {ex}   {m}
\DeclareFontSeriesChangeRule {ulux}{m?} {ux}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {eluc}{m?} {uc}   {m}
\DeclareFontSeriesChangeRule {elec}{m?} {ec}   {m}
\DeclareFontSeriesChangeRule {elc}{m?}  {c}    {m}
\DeclareFontSeriesChangeRule {elsc}{m?} {sc}   {m}
\DeclareFontSeriesChangeRule {el}{m?}   {m}    {}
\DeclareFontSeriesChangeRule {elsx}{m?} {sx}   {m}
\DeclareFontSeriesChangeRule {elx}{m?}  {x}    {m}
\DeclareFontSeriesChangeRule {elex}{m?} {ex}   {m}
\DeclareFontSeriesChangeRule {elux}{m?} {ux}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {luc}{m?}  {uc}   {m}
\DeclareFontSeriesChangeRule {lec}{m?}  {ec}   {m}
\DeclareFontSeriesChangeRule {lc}{m?}   {c}    {m}
\DeclareFontSeriesChangeRule {lsc}{m?}  {sc}   {m}
\DeclareFontSeriesChangeRule {l}{m?}    {m}    {}
\DeclareFontSeriesChangeRule {lsx}{m?}  {sx}   {m}
\DeclareFontSeriesChangeRule {lx}{m?}   {x}    {m}
\DeclareFontSeriesChangeRule {lex}{m?}  {ex}   {m}
\DeclareFontSeriesChangeRule {lux}{m?}  {ux}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sluc}{m?} {uc}   {m}
\DeclareFontSeriesChangeRule {slec}{m?} {ec}   {m}
\DeclareFontSeriesChangeRule {slc}{m?}  {c}    {m}
\DeclareFontSeriesChangeRule {slsc}{m?} {sc}   {m}
\DeclareFontSeriesChangeRule {sl}{m?}   {m}    {}
\DeclareFontSeriesChangeRule {slsx}{m?} {sx}   {m}
\DeclareFontSeriesChangeRule {slx}{m?}  {x}    {m}
\DeclareFontSeriesChangeRule {slex}{m?} {ex}   {m}
\DeclareFontSeriesChangeRule {slux}{m?} {ux}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {uc}{m?}   {uc}   {m}
\DeclareFontSeriesChangeRule {ec}{m?}   {ec}   {m}
\DeclareFontSeriesChangeRule {c}{m?}    {c}    {m}
\DeclareFontSeriesChangeRule {sc}{m?}   {sc}   {m}
\DeclareFontSeriesChangeRule {m}{m?}    {m}    {}
\DeclareFontSeriesChangeRule {sx}{m?}   {sx}   {m}
\DeclareFontSeriesChangeRule {x}{m?}    {x}    {m}
\DeclareFontSeriesChangeRule {ex}{m?}   {ex}   {m}
\DeclareFontSeriesChangeRule {ux}{m?}   {ux}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbuc}{m?} {uc}   {m}
\DeclareFontSeriesChangeRule {sbec}{m?} {ec}   {m}
\DeclareFontSeriesChangeRule {sbc}{m?}  {c}    {m}
\DeclareFontSeriesChangeRule {sbsc}{m?} {sc}   {m}
\DeclareFontSeriesChangeRule {sb}{m?}   {m}    {}
\DeclareFontSeriesChangeRule {sbsx}{m?} {sx}   {m}
\DeclareFontSeriesChangeRule {sbx}{m?}  {x}    {m}
\DeclareFontSeriesChangeRule {sbex}{m?} {ex}   {m}
\DeclareFontSeriesChangeRule {sbux}{m?} {ux}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {buc}{m?}  {uc}   {m}
\DeclareFontSeriesChangeRule {bec}{m?}  {ec}   {m}
\DeclareFontSeriesChangeRule {bc}{m?}   {c}    {m}
\DeclareFontSeriesChangeRule {bsc}{m?}  {sc}   {m}
\DeclareFontSeriesChangeRule {b}{m?}    {m}    {}
\DeclareFontSeriesChangeRule {bsx}{m?}  {sx}   {m}
\DeclareFontSeriesChangeRule {bx}{m?}   {x}    {m}
\DeclareFontSeriesChangeRule {bex}{m?}  {ex}   {m}
\DeclareFontSeriesChangeRule {bux}{m?}  {ux}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebuc}{m?} {uc}   {m}
\DeclareFontSeriesChangeRule {ebec}{m?} {ec}   {m}
\DeclareFontSeriesChangeRule {ebc}{m?}  {c}    {m}
\DeclareFontSeriesChangeRule {ebsc}{m?} {sc}   {m}
\DeclareFontSeriesChangeRule {eb}{m?}   {m}    {}
\DeclareFontSeriesChangeRule {ebsx}{m?} {sx}   {m}
\DeclareFontSeriesChangeRule {ebx}{m?}  {x}    {m}
\DeclareFontSeriesChangeRule {ebex}{m?} {ex}   {m}
\DeclareFontSeriesChangeRule {ebux}{m?} {ux}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubuc}{m?} {uc}   {m}
\DeclareFontSeriesChangeRule {ubec}{m?} {ec}   {m}
\DeclareFontSeriesChangeRule {ubc}{m?}  {c}    {m}
\DeclareFontSeriesChangeRule {ubsc}{m?} {sc}   {m}
\DeclareFontSeriesChangeRule {ub}{m?}   {m}    {}
\DeclareFontSeriesChangeRule {ubsx}{m?} {sx}   {m}
\DeclareFontSeriesChangeRule {ubx}{m?}  {x}    {m}
\DeclareFontSeriesChangeRule {ubex}{m?} {ex}   {m}
\DeclareFontSeriesChangeRule {ubux}{m?} {ux}   {m}
%    \end{macrocode}
%
%    And here are the special rules for \texttt{?m}. Again, we offer
%    \texttt{m} as alternative result series for all entries where this is not
%    already the result series.
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {uluc}{?m} {ul}   {m}
\DeclareFontSeriesChangeRule {ulec}{?m} {ul}   {m}
\DeclareFontSeriesChangeRule {ulc}{?m}  {ul}   {m}
\DeclareFontSeriesChangeRule {ulsc}{?m} {ul}   {m}
\DeclareFontSeriesChangeRule {ul}{?m}   {ul}   {m}
\DeclareFontSeriesChangeRule {ulsx}{?m} {ul}   {m}
\DeclareFontSeriesChangeRule {ulx}{?m}  {ul}   {m}
\DeclareFontSeriesChangeRule {ulex}{?m} {ul}   {m}
\DeclareFontSeriesChangeRule {ulux}{?m} {ul}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {eluc}{?m} {el}   {m}
\DeclareFontSeriesChangeRule {elec}{?m} {el}   {m}
\DeclareFontSeriesChangeRule {elc}{?m}  {el}   {m}
\DeclareFontSeriesChangeRule {elsc}{?m} {el}   {m}
\DeclareFontSeriesChangeRule {el}{?m}   {el}   {m}
\DeclareFontSeriesChangeRule {elsx}{?m} {el}   {m}
\DeclareFontSeriesChangeRule {elx}{?m}  {el}   {m}
\DeclareFontSeriesChangeRule {elex}{?m} {el}   {m}
\DeclareFontSeriesChangeRule {elux}{?m} {el}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {luc}{?m}  {l}    {m}
\DeclareFontSeriesChangeRule {lec}{?m}  {l}    {m}
\DeclareFontSeriesChangeRule {lc}{?m}   {l}    {m}
\DeclareFontSeriesChangeRule {lsc}{?m}  {l}    {m}
\DeclareFontSeriesChangeRule {l}{?m}    {l}    {m}
\DeclareFontSeriesChangeRule {lsx}{?m}  {l}    {m}
\DeclareFontSeriesChangeRule {lx}{?m}   {l}    {m}
\DeclareFontSeriesChangeRule {lex}{?m}  {l}    {m}
\DeclareFontSeriesChangeRule {lux}{?m}  {l}    {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sluc}{?m} {sl}   {m}
\DeclareFontSeriesChangeRule {slec}{?m} {sl}   {m}
\DeclareFontSeriesChangeRule {slc}{?m}  {sl}   {m}
\DeclareFontSeriesChangeRule {slsc}{?m} {sl}   {m}
\DeclareFontSeriesChangeRule {sl}{?m}   {sl}   {m}
\DeclareFontSeriesChangeRule {slsx}{?m} {sl}   {m}
\DeclareFontSeriesChangeRule {slx}{?m}  {sl}   {m}
\DeclareFontSeriesChangeRule {slex}{?m} {sl}   {m}
\DeclareFontSeriesChangeRule {slux}{?m} {sl}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {uc}{?m}   {m}    {}
\DeclareFontSeriesChangeRule {ec}{?m}   {m}    {}
\DeclareFontSeriesChangeRule {c}{?m}    {m}    {}
\DeclareFontSeriesChangeRule {sc}{?m}   {m}    {}
\DeclareFontSeriesChangeRule {m}{?m}    {m}    {}
\DeclareFontSeriesChangeRule {sx}{?m}   {m}    {}
\DeclareFontSeriesChangeRule {x}{?m}    {m}    {}
\DeclareFontSeriesChangeRule {ex}{?m}   {m}    {}
\DeclareFontSeriesChangeRule {ux}{?m}   {m}    {}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {sbuc}{?m} {sb}   {m}
\DeclareFontSeriesChangeRule {sbec}{?m} {sb}   {m}
\DeclareFontSeriesChangeRule {sbc}{?m}  {sb}   {m}
\DeclareFontSeriesChangeRule {sbsc}{?m} {sb}   {m}
\DeclareFontSeriesChangeRule {sb}{?m}   {sb}   {m}
\DeclareFontSeriesChangeRule {sbsx}{?m} {sb}   {m}
\DeclareFontSeriesChangeRule {sbx}{?m}  {sb}   {m}
\DeclareFontSeriesChangeRule {sbex}{?m} {sb}   {m}
\DeclareFontSeriesChangeRule {sbux}{?m} {sb}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {buc}{?m}  {b}    {m}
\DeclareFontSeriesChangeRule {bec}{?m}  {b}    {m}
\DeclareFontSeriesChangeRule {bc}{?m}   {b}    {m}
\DeclareFontSeriesChangeRule {bsc}{?m}  {b}    {m}
\DeclareFontSeriesChangeRule {b}{?m}    {b}    {m}
\DeclareFontSeriesChangeRule {bsx}{?m}  {b}    {m}
\DeclareFontSeriesChangeRule {bx}{?m}   {b}    {m}
\DeclareFontSeriesChangeRule {bex}{?m}  {b}    {m}
\DeclareFontSeriesChangeRule {bux}{?m}  {b}    {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ebuc}{?m} {eb}   {m}
\DeclareFontSeriesChangeRule {ebec}{?m} {eb}   {m}
\DeclareFontSeriesChangeRule {ebc}{?m}  {eb}   {m}
\DeclareFontSeriesChangeRule {ebsc}{?m} {eb}   {m}
\DeclareFontSeriesChangeRule {eb}{?m}   {eb}   {m}
\DeclareFontSeriesChangeRule {ebsx}{?m} {eb}   {m}
\DeclareFontSeriesChangeRule {ebx}{?m}  {eb}   {m}
\DeclareFontSeriesChangeRule {ebex}{?m} {eb}   {m}
\DeclareFontSeriesChangeRule {ebux}{?m} {eb}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
\DeclareFontSeriesChangeRule {ubuc}{?m} {ub}   {m}
\DeclareFontSeriesChangeRule {ubec}{?m} {ub}   {m}
\DeclareFontSeriesChangeRule {ubc}{?m}  {ub}   {m}
\DeclareFontSeriesChangeRule {ubsc}{?m} {ub}   {m}
\DeclareFontSeriesChangeRule {ub}{?m}   {ub}   {m}
\DeclareFontSeriesChangeRule {ubsx}{?m} {ub}   {m}
\DeclareFontSeriesChangeRule {ubx}{?m}  {ub}   {m}
\DeclareFontSeriesChangeRule {ubex}{?m} {ub}   {m}
\DeclareFontSeriesChangeRule {ubux}{?m} {ub}   {m}
%    \end{macrocode}
%
%    \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%
% Supporting rollback \ldots
%    \begin{macrocode}
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<latexrelease>   {\DeclareFontSeriesChangeRule}{Series change rules}%
%    \end{macrocode}
%    The next definition is only needed if somebody rolls forward from a
%    release older than 2020-02-02 but not to the latest version but
%    one before 2025-06-01. Pretty unlikely, but \ldots.
%    \begin{macrocode}
%<latexrelease>
%<latexrelease>\def\DeclareFontSeriesChangeRule#1#2#3#4{%
%<latexrelease>  \@namedef{series@#1@#2}{{#3}{#4}}}
%<latexrelease>
%    \end{macrocode}
%    The huge set of declarations below are those from 2020-02-02 plus
%    all from above that were newly added (but now with empty result
%    and alternative result arguments). To compile this list I sorted
%    both together and then dropped entries appearing twice. This is
%    why the sorting is now different from the one above.
%    \begin{macrocode}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{b}{bc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{c}{bc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{eb}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{ec}{bec} {bc}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{el}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{ex}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{l}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{sb}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{sc}{bsc} {bc}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{sl}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{sx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{ub}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{uc}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{ul}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{ux}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bc}{x}{bx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bec}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bex}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsc}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bsx}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {buc}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bux}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{b}{bx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{c}  {bc}  {bx}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{eb}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{ec}  {bec}  {bx}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{el}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{ex}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{l}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{sb} {sbx} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{sc}  {bsc}  {bx}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{sl}{slx}  {}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{sx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{ub}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{uc}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{ul}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{ux}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {bx}{x}{bx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{bx} {bx}  {b}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{c}  {bc}  {b}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{eb}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{ec}  {bec}  {b}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{ex}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{sb} {sb}  {b}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{sc}  {bsc}  {b}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{sx}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{ub}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{uc}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{ux}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {b}{x}  {bx}  {b}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{bx} {bx}  {b}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{b}{bc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{eb}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{ec}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{el}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{l}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{sb}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{sc}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{sl}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{ub}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{uc}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {c}{x}{x}{m}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{b}{bc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{c}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{eb}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{ec}{ebec}{ebc}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{el}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{l}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{sb}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{sc}{ebsc}{ebc}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{sl}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{ub}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{ul}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebc}{x}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebec}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebex}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebsx}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebuc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebux}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{b}{bx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{c}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{eb}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{ec}{ebec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{el}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{l}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{sb}{sbx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{sc}{ebsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{sl}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{ub}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{ul}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ebx}{x}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{c}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{ec}{ebec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{ex}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{sb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{sc}{ebsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{sx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{ub}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{uc}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{ux}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eb}{x}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ec}{bx} {bx}  {b}
%<latexrelease>\DeclareFontSeriesChangeRule {ec}{b}{bec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ec}{eb}{ebec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ec}{el}{elec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ec}{l}{lec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ec}{sb}{sbec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ec}{sl}{slec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ec}{ub}{ubec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ec}{x}{x}{m}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{b}{bc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{c}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{eb}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{ec}{elec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{el}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{l}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{sb}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{sc}{elsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{sl}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{ub}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{ul}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elc}{x}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elec}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elex}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elsx}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {eluc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elux}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{b}{bx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{c}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{eb}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{ec}{elec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{el}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{l}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{sb}{sbx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{sc}{elsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{sl}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{ub}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{ul}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {elx}{x}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{c}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{eb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{ec}{elec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{ex}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{sb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{sc}{elsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{sx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{ub}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{uc}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{ux}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {el}{x}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{b}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{eb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{el}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{l}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{sb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{sl}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{ub}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ex}{ul}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{b}{bc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{c}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{eb}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{ec}{lec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{el}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{ex}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{l}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{sb}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{sc}{lsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{sl}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{sx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{ub}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{uc}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{ul}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{ux}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lc}{x}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lec}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lex}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsc}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lsx}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {luc}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{b}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{c}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{eb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{ec}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{el}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{l}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{sb}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{sc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{sl}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{ub}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{ul}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lux}{x}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{b}{bx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{c}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{eb}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{ec}{lec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{el}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{ex}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{l}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{sb}{sbx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{sc}{lsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{sl}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{sx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{ub}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{uc}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{ul}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{ux}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {lx}{x}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{b}  {b}   {bx}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{c}  {lc}  {l}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{eb}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{ec}  {lec}  {l}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{ex}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{sb} {sb}  {b}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{sc}  {lsc}  {l}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{sx}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{ub}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{uc}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{ux}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {l}{x}  {lx}  {l}
%<latexrelease>\DeclareFontSeriesChangeRule {m}{bx} {bx} {b}
%<latexrelease>\DeclareFontSeriesChangeRule {m}{c}  {c}  {m}
%<latexrelease>\DeclareFontSeriesChangeRule {m}{l}  {l}  {m}
%<latexrelease>\DeclareFontSeriesChangeRule {m}{sc}  {sc}  {m}
%<latexrelease>\DeclareFontSeriesChangeRule {m}{x}  {x}  {m}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{b}{bc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{c}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{eb}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{ec}{sbec}{sbc}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{el}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{l}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{sb}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{sc}{sbsc}{sbc}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{sl}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{ub}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{ul}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbc}{x}{sbx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbec}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbex}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbsx}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbuc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbux}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{b}{bx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{c}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{eb}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{ec}{sbec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{el}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{l}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{sb}{sbx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{sc}{sbsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{sl}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{ub}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{ul}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sbx}{x}{sbx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{c}  {sbc} {bc}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{eb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{ec}  {sbec} {sbc}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{ex}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{sc}  {sbsc} {sbc}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{sx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{ub}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{uc}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{ux}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sb}{x}  {sbx} {bx}
%<latexrelease>\DeclareFontSeriesChangeRule {sc}{bx} {bx}  {b}
%<latexrelease>\DeclareFontSeriesChangeRule {sc}{b}{bsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sc}{eb}{ebsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sc}{el}{elsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sc}{l}{lsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sc}{sb}{sbsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sc}{sl}{slsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sc}{ub}{ubsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sc}{x}{x}{m}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{b}{bc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{c}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{eb}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{ec}{slec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{el}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{l}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{sb}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{sc}{slsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{sl}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{ub}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{ul}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slc}{x}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slec}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slex}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slsx}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sluc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slux}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{b}{bx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{c}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{eb}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{ec}{slec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{el}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{l}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{sb}{sbx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{sc}{slsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{sl}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{ub}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{ul}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {slx}{x}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{c}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{eb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{ec}{slec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{ex}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{sb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{sc}{slsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{sx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{ub}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{uc}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{ux}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sl}{x}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{b}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{eb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{el}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{l}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{sb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{sl}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{ub}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {sx}{ul}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{b}{bc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{c}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{eb}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{ec}{ubec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{el}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{l}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{sb}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{sc}{ubsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{sl}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{ub}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{ul}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubc}{x}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubec}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubex}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubsx}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubuc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubux}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{b}{bx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{c}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{eb}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{ec}{ubec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{el}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{l}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{sb}{sbx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{sc}{ubsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{sl}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{ub}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{ul}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ubx}{x}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{c}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{eb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{ec}{ubec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{ex}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{sb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{sc}{ubsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{sx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{uc}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{ux}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ub}{x}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{b}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{eb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{el}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{l}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{sb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{sl}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{ub}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uc}{ul}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{b}{bc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{c}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{eb}{ebc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{ec}{ulec}{ulc}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{el}{elc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{l}{lc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{sb}{sbc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{sc}{ulsc}{ulc}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{sl}{slc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{ub}{ubc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{ul}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulc}{x}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulec}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulex}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulsx}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {uluc}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{bx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{b}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{c}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{eb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{ec} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{el} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{ex} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{l}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{sb} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{sc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{sl} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{sx} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{ub} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{uc} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{ul} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{ux} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulux}{x}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{bx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{b}{bx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{c}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{eb}{ebx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{ec}{ulec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{el}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{ex}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{l}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{sb}{sbx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{sc}{ulsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{sl}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{sx}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{ub}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{uc}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{ul}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{ux}  {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ulx}{x}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{c}{ulc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{eb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{ec}{ulec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{ex}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{sb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{sc}{ulsc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{sx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{ub}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{uc}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{ux}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ul}{x}{ulx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{?m} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{bx}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{b}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{eb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{el}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{l}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{m?} {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{sb}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{sl}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{ub}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {ux}{ul}   {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {x}{bx}    {} {}
%<latexrelease>\DeclareFontSeriesChangeRule {x}{c}{c}{}
%<latexrelease>\DeclareFontSeriesChangeRule {x}{ec}{ec}{}
%<latexrelease>\DeclareFontSeriesChangeRule {x}{el}{elx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {x}{l}{lx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {x}{sc}{sc}{}
%<latexrelease>\DeclareFontSeriesChangeRule {x}{sl}{slx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {x}{ub}{ubx}{}
%<latexrelease>\DeclareFontSeriesChangeRule {x}{ul}{ulx}{}
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%    \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease>   {\DeclareFontSeriesChangeRule}{Series change rules}%
%<latexrelease>
%<latexrelease>\let\DeclareFontSeriesChangeRule\@undefined
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%
%
%
%
% \subsection{Changing to a new series}
%
%
%    \begin{macrocode}
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2021/06/01}%
%<latexrelease>                 {\fontseries}{delay fontseries update}%
%    \end{macrocode}
%
%
%  \begin{macro}{\fontseries}
%    The \cs{fontseries} command takes one argument which is the requested new
%    font series. In the original implementation it simply saved the
%    expanded value in \cs{f@series}. Now we do a bit more processing
%    and look up the final value in the font series data base. This is
%    done by \cs{merge@font@series}. But the lookup should be done
%    within the target family and call to \cs{fontseries} might be
%    followed by a \cs{fontfamily} call. So we delay the processing to
%    \cs{selectfont} and only record the necessary action in
%    \cs{delayed@f@adjustment}.
% \changes{v1.0c}{2020/02/10}{Switch \cs{if@forced@series} added}
% \changes{v1.0h}{2020/12/04}{Distangle series and shape update (gh/444)}
%    \begin{macrocode}
\DeclareRobustCommand\fontseries[1]{\@forced@seriesfalse
    \expandafter\def\expandafter\delayed@f@adjustment\expandafter
        {\delayed@f@adjustment\delayed@merge@font@series{#1}}}
%    \end{macrocode}
%  \end{macro}
%
%
%  \begin{macro}{\delayed@f@adjustment}
%    The macro holding the delayed action(s) for use in \cs{selectfont}.
%    \begin{macrocode}
\let\delayed@f@adjustment\@empty
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fontseriesforce}
%    To change unconditionally to a new series you can use
%    \cs{fontseriesforce}. Of course, if the series doesn't exist for
%    the current family substitution still happens, but there is not
%    dependency on the current series.
% \changes{v1.0c}{2020/02/10}{Switch \cs{if@forced@series} added}
%    \begin{macrocode}
\DeclareRobustCommand\fontseriesforce[1]{\@forced@seriestrue
    \expandafter\def\expandafter\delayed@f@adjustment\expandafter
      {\delayed@f@adjustment\edef\f@series{#1}}}
%    \end{macrocode}
%  \end{macro}
%
%
%
%  \begin{macro}{\if@forced@series}
%    If the series gets forced we need to know that fact later on.
% \changes{v1.0c}{2020/02/10}{Switch \cs{if@forced@series} added}
%    \begin{macrocode}
\newif\if@forced@series
%    \end{macrocode}
%  \end{macro}
%
%
%    \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%    \begin{macrocode}
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<latexrelease>                 {\fontseries}{delay fontseries update}%
%<latexrelease>
%<latexrelease>\DeclareRobustCommand\fontseries[1]{\@forced@seriesfalse
%<latexrelease>                                    \merge@font@series{#1}}
%<latexrelease>\DeclareRobustCommand\fontseriesforce[1]{\@forced@seriestrue
%<latexrelease>                                         \edef\f@series{#1}}
%<latexrelease>\let\delayed@f@adjustment\@undefined
%<latexrelease>
%    \end{macrocode}
%    For a roll forward we may have to define \cs{if@forced@series}
%    but this needs doing in a way that \TeX{} doesn't see it when
%    skipping over conditionals.
% \changes{v1.0i}{2021/03/18}
%         {Fix rollforward definition.}
%    \begin{macrocode}
%<latexrelease>\expandafter\newif\csname if@forced@series\endcsname
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%    \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease>                 {\fontseries}{delay fontseries update}%
%<latexrelease>
%<latexrelease>\DeclareRobustCommand\fontseries[1]{\edef\f@series{#1}}
%<latexrelease>\let\fontseriesforce\@undefined
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%
%
%    \begin{macrocode}
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<latexrelease>   {\merge@font@series}{Merge series values}%
%    \end{macrocode}
%
%
%  \begin{macro}{\merge@font@series}
%    We look up the data base value by expanding the right command
%    twice. If no such value exist then the result will be \cs{relax}
%    otherwise it will be the two brace groups: the desired result and
%    the alternate result. The first case means that the third
%    argument to \cs{merge@font@series} will be empty.
%    \begin{macrocode}
\def\merge@font@series#1{%
  \expandafter\expandafter\expandafter
  \merge@font@series@
    \csname series@\f@series @#1\endcsname
    {#1}%
    \@nil
}
%    \end{macrocode}
%  \end{macro}
%
%
%
%  \begin{macro}{\merge@font@series@}
%    This now defines the new \cs{f@series}:
%    \begin{macrocode}
\def\merge@font@series@#1#2#3\@nil{%
%    \end{macrocode}
%    If the third argument is empty there is no database entry for the
%    combination and the second argument holds the new series so we
%    return that.
%
%    Originally the test was simply \verb=\ifx!#3!= but that actually
%    dies if \texttt{\#3} starts with a conditional and in the
%    definition of \cs{AmSfont} that is actually the case.
%    \begin{macrocode}
%\ifcat\expandafter X\detokenize{#1}X%
  \def\reserved@a{#3}%
  \ifx\reserved@a\@empty
    \set@target@series{#2}%
  \else
%    \end{macrocode}
%    Otherwise we check if the desired result for the series
%    (\texttt{\#1}) exists for the font family and the current shape.
%    All this happens inside \cs{selectfont} which has already taken care to load
%    the \texttt{.fd}, file if necessary.
%    \begin{macrocode}
    \edef\reserved@a{\f@encoding /\f@family /#1/\f@shape}%
     \ifcsname \reserved@a \endcsname
%    \end{macrocode}
%     If the desired result is available then we use that. However, we
%    do need some post-processing because we need to drop surplus
%    \texttt{m}s due to the way naming convention was designed in the
%    '90s (sigh).
%    \begin{macrocode}
       \set@target@series{#1}%
%    \end{macrocode}
%    If not, then we try the alternate result (\texttt{\#2}).
%    \begin{macrocode}
    \else
       \ifcsname \f@encoding /\f@family /#2/\f@shape \endcsname
%    \end{macrocode}
%    If the alternate result exist we use that and also issue a
%    warning (or rather a log entry) that we didn't managed to change
%    to the desired font.
%    \begin{macrocode}
         \set@target@series{#2}%
         \@font@shape@subst@warning
%    \end{macrocode}
%    If that doesn't exist either, then we use the requested series unmodified
%    (again with a warning).
%    \begin{macrocode}
       \else
         \set@target@series{#3}%
         \@font@shape@subst@warning
       \fi
    \fi
  \fi
}
%    \end{macrocode}
%    It is possible that the previous font and the new one are
%    actually identical (and the font was not found because it still
%    needs loading) in which case a warning would look rather odd. So
%    we make a quick check for that (which is the reason why we
%    defined \cs{@reserveda} above instead of doing inline testing
%    inside \cs{ifcsname}).
%    \begin{macrocode}
\def\@font@shape@subst@warning{%
   \edef\reserved@b{\curr@fontshape}%
   \ifx\reserved@a\reserved@b \else
     \@font@warning{Font shape `\reserved@a' undefined\MessageBreak
                    using `\reserved@b' instead}%
   \fi
}
%    \end{macrocode}
%  \end{macro}
%
%
%
%  \begin{macro}{\merge@font@series@without@substitution,
%                \merge@font@series@without@substitution@,
%                \delayed@merge@font@series}
%
% \changes{v1.0h}{2020/12/22}{Distangle series and shape update (gh/444)}
%
%    \cs{merge@font@series@without@substitution} works like
%    \cs{merge@font@series}, i.e., it looks up the combination in the
%    rule base and if there exists an entry it uses it and if not it
%    uses the new series value. However, it doesn't check if there is
%    actually a font face with the new series value as
%    \cs{merge@font@series} does. This simplified command is used in
%    \cs{selectfont} at a point where other font attributes are not
%    yet updated so that checking the font face might result incorrect
%    in substitutions.
%
%    \begin{macrocode}
\def\merge@font@series@without@substitution#1{%
  \expandafter\expandafter\expandafter
  \merge@font@series@without@substitution@
    \csname series@\f@series @#1\endcsname
    {#1}%
    \@nil
}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\merge@font@series@without@substitution@#1#2#3\@nil{%
  \def\reserved@a{#3}%
  \ifx\reserved@a\@empty
    \set@target@series{#2}%
  \else
    \set@target@series{#1}%
  \fi
}
%    \end{macrocode}
%  \end{macro}
%
%
%
%  \begin{macro}{\delayed@merge@font@series}
%
%    When we delay the merge action in \cs{fontseries} we first
%    attempt to use merging without substitution. If that results in a
%    non-existing font face the merge is redone in \cs{selectfont}
%    using a version with substitution. See \cs{selectfont} for details.
%
% \changes{v1.0h}{2020/12/22}{Distangle series and shape update
%    (gh/444)}
%    \begin{macrocode}
\let\delayed@merge@font@series\merge@font@series@without@substitution
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\maybe@load@fontshape}
%    A small helper that we use a couple of times: try loading a
%    fontshape (in a group because \cs{try@load@fontshape} normalizes
%    catcodes and we also want to change \cs{typeout} so that it
%    doesn't report missing \texttt{.fd} files on the terminal).
%    \begin{macrocode}
\def\maybe@load@fontshape{%
  \begingroup
    \let \typeout \@font@info
    \try@load@fontshape
  \endgroup}
%    \end{macrocode}
%  \end{macro}
%
%
%
%  \begin{macro}{\set@target@series}
%
%    Finally the code for normalizing the \cs{f@series} value.
%
%    The combined series value determined by the mapping may still
%    contain an \texttt{m} that we have to remove (as the \texttt{.fd}
%    files use \texttt{c} not \texttt{mc} to denote a medium weight
%    condensed series, etc.). We do this in all branches above because a user
%    might have written
%\begin{verbatim}
%    \DeclareFontSeriesChangeRule {m}{sc}{msc}{mc}
%\end{verbatim}
%    instead of using \texttt{sc} and \texttt{c} as needed in the
%    \texttt{.fd} file.
%    \begin{macrocode}
\def\set@target@series#1{%
%    \end{macrocode}
%    We need to \cs{edef} the argument first in case it starts with a
%    conditional. Then we check (and perhaps drop) an ``m'' from the
%    value and assign the result to \cs{f@series}.
% \changes{v1.0d}{2020/02/27}{Drop ``m'' only in a specific set of values (gh/293)}
%    \begin{macrocode}
    \edef\f@series{#1}%
    \series@maybe@drop@one@m\f@series\f@series
}
%    \end{macrocode}
%  \end{macro}
%    
%  \begin{macro}{\series@maybe@drop@one@m}
%    If the series value is in NFSS notation then it should not
%    contain any ``m'' unless it is just an ``m'' by it own. So we
%    need to drop surplus ``m''s. But we better don't do this for full
%    names, such as ``\texttt{semibold}'' as used by
%    \texttt{autoinst}, for example. So we test against the possible
%    explicit values that should drop an ``m''.
%    After that we assign the result to \verb=#2= for further use.
% \changes{v1.0d}{2020/02/27}{Drop ``m'' in certain values from a
%    fixed list (gh/293)}
%    \begin{macrocode}
\def\series@maybe@drop@one@m#1{%
  \expandafter\series@maybe@drop@one@m@x\expandafter{#1}}
%    \end{macrocode}
%    
%    \begin{macrocode}

\def\series@maybe@drop@one@m@x#1#2{%
%    \end{macrocode}
%    The code below is an inline version of the \cs{in@} macro without
%    the group, so that it works in \cs{accent}.
%    \begin{macrocode}
  \def\in@@##1,#1,{}%
  \series@check@toks\expandafter{\in@@
    ,ulm,elm,lm,slm,mm,sbm,bm,ebm,ubm,muc,mec,mc,msc,msx,mx,mex,mux,{}{},#1,}%
  \edef\in@@{\the\series@check@toks}%
  \ifx\in@@\@empty
%    \end{macrocode}
%    The default definition for \cs{bfdefault} etc is actually
%    \texttt{b\cs{@empty}} so that we can detect if the user has
%    changed the default. However that means a) the above test will
%    definitely fail (maybe something to change) and b) we better use
%    \cs{edef} on the next line to get rid of it as otherwise the test
%    against \verb=#2= (e.g., \cs{bfdef@ult}) will fail in other places.
% \changes{v1.0e}{2020/05/19}{Need to use \cs{edef} (gh/336)}
%    \begin{macrocode}
    \edef#2{#1}%
  \else
    \edef#2{\expandafter\series@drop@one@m #1m\series@drop@one@m}%
  \fi
}
%    \end{macrocode}
%    As a precaution we use a private toks register not \cs{toks@} as
%    that is no longer hidden inside the group.
%    \begin{macrocode}
\newtoks\series@check@toks
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\series@drop@one@m}
%    Drop up to two \texttt{m}s but keep one if that makes the series
%    value empty. Actually, with the current implementation we know
%    that there is at least one in the series value itself and we
%    added one after it, so all we have to do is now returning
%    \verb=#1#2= and dropping the rest.
%    \begin{macrocode}
\def\series@drop@one@m#1m#2m#3\series@drop@one@m{%
%  \ifx\relax#1#2\relax m\else#1#2\fi
   #1#2%
}
%    \end{macrocode}
%  \end{macro}
%
%
%
% Supporting rollback \ldots
%    \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease>   {\merge@font@series}{Merge series values}%
%<latexrelease>
%<latexrelease>\let\merge@font@series\@undefined
%<latexrelease>\let\merge@font@series@\@undefined
%<latexrelease>\let\@font@shape@subst@warning\@undefined
%<latexrelease>\let\merge@font@series@without@substitution\@undefined
%<latexrelease>\let\merge@font@series@without@substitution@\@undefined
%<latexrelease>\let\delayed@merge@font@series\@undefined
%<latexrelease>\let\maybe@load@fontshape\@undefined
%<latexrelease>\let\set@target@series\@undefined
%<latexrelease>\let\series@maybe@drop@one@m\@undefined
%<latexrelease>\let\series@drop@one@m\@undefined
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}




% \section{Changing the shape}
%
%    Shapes are also split in two axes (though it could be more if
%    that is desirable), essentially building in an ``sc''
%    axis.
%
% \changes{v1.0k}{2024/12/11}{Reorganized the rollback data}
%
%    \begin{macrocode}
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<latexrelease>   {\ulcshape}{Font shape change rules}%
%    \end{macrocode}
%
%
%
%  \begin{macro}{\DeclareFontShapeChangeRule}
%    The database for shapes is done in exactly the same way, only
%    that it is much smaller and we usually have no alternative shape
%    (or rather it is empty thus not used).
%    \begin{macrocode}
\def\DeclareFontShapeChangeRule #1#2#3#4{%
  \@namedef{shape@#1@#2}{{#3}{#4}}}
%    \end{macrocode}
%  \end{macro}
%
%
%    There is kind of the same problem with returning back from
%    \texttt{sc} to normal. It sort of needs its own letter.  In
%    \texttt{fontspec} this was solved by the first time \cs{upshape} changes
%    \texttt{it} or \texttt{sl} back (so only \texttt{sc} remains) and
%    second time it changes then \texttt{sc} back to normal.  Maybe
%    that's not a bad way to handle it, but decided for a slightly
%    different approach: \texttt{n} always returns to ``normal'', ie
%    resets everything and \texttt{up} changes italic or slanted to
%    upright and \texttt{ulc} undoes small caps.
%
%    So we now offer \cs{normalshape} (using \cs{shapedefault}) which
%    is normally the same as calling both \cs{ulcshape} and
%    \cs{upshape}, only more efficient.
%
%
%  \begin{macro}{\ulcshape}
%  \begin{macro}{\textulc}
%  \begin{macro}{\ulcdefault}
%    To request going back to upper/lowercase we need a new
%    command. It uses \texttt{ulc} as shape name but this shape is
%    virtual, i.e., it doesn't exist as a real shape, it is only used
%    as part of the database table entries and thus only appears in
%    the second argument there (but not in the first).
%    \begin{macrocode}
\DeclareRobustCommand\ulcshape
        {\not@math@alphabet\ulcshape\relax
         \fontshape\ulcdefault\selectfont}
\let\ulcdefault\@undefined      % for rollback
\newcommand\ulcdefault{ulc}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\swshape}
%  \begin{macro}{\textsw}
%  \begin{macro}{\swdefault}
%    New command to select a swash shape.  The standard rules put this
%    in the same category as italics or slanted, i.e., if you ask for
%    it then italics are undone. One could provide more complicated
%    rules so that \texttt{it} + \texttt{sw} becomes \texttt{swit} but
%    given that there are only very few fonts that have swash letters
%    that level of flexibility (these days) would be just resulting in
%    a lot of combinations that do not exist.
%    \begin{macrocode}
\DeclareRobustCommand\swshape
        {\not@math@alphabet\swshape\relax
         \fontshape\swdefault\selectfont}
\let\swdefault\@undefined      % for rollback
\newcommand\swdefault{sw}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%
%
%  \begin{macro}{\sscshape}
%  \begin{macro}{\textssc}
%  \begin{macro}{\sscdefault}
%    
%    New commands to select spaced small capitals. There isn't a
%    single free font that supports it. However, some commercial ones
%    do, so we offer it. It is also possible to produce spaced small
%    capitals from normal small capitals in OTF fonts using
%    \texttt{otftotfm} with calls such as
%\begin{verbatim}
%  otftotfm -e TEXMF/fonts/enc/dvips/base/texnansx.enc \
%    SourceSerifPro-Regular.otf -fkern -fliga --feature=smcp \
%    --letterspacing=80 SourceSerifPro-Regular-ssc-LY1
%\end{verbatim}
%
%    Michael Ummels kindly prepared the necessary rules for
%    \texttt{ssc} ages ago, but until recently they managed to hide
%    deep down in my inbox. I finally got around to integrating them
%    (with a few changes) and I also took the opportunity to
%    rationalize (a bit) the rules for the only other uncommon shape,
%    \texttt{sw}.
%    \begin{macrocode}
\DeclareRobustCommand\sscshape
        {\not@math@alphabet\sscshape\relax
         \fontshape\sscdefault\selectfont}
\let\sscdefault\@undefined      % for rollback
\newcommand\sscdefault{ssc}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%
% Supporting rollback \ldots
%    \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease>   {\ulcshape}{Font shape change rules}%
%<latexrelease>
%<latexrelease>\let\DeclareFontShapeChangeRule\@undefined
%<latexrelease>\let\ulcshape\@undefined
%<latexrelease>\let\ulcdefault\@undefined
%<latexrelease>\let\swshape\@undefined
%<latexrelease>\let\swdefault\@undefined
%<latexrelease>\let\sscshape\@undefined
%<latexrelease>\let\sscdefault\@undefined
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
%    \end{macrocode}
%
%
% \subsection{Mapping rules for shape combinations}
%
%    Many of the entries are commented out as we will get that result
%    without any entry.
%    \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2025/06/01}%
%<latexrelease>     {\DeclareFontShapeChangeRule}{Rules for ssc and sw}%
%
% \DeclareFontShapeChangeRule {n}{n}   {n}   {}
\DeclareFontShapeChangeRule {n}{it}  {it}  {sl}
\DeclareFontShapeChangeRule {n}{sl}  {sl}  {it}
%    \end{macrocode}
%    If \texttt{sw} is requested but not available (not many font
%    families offer it) we try to fallback to \texttt{it} instead of
%    \texttt{sw}. That isn't always perfect, because some swash shapes
%    are actually upright, but it is only a fallback and most of the
%    time it would be better than \texttt{n}.
% \changes{v1.0k}{2024/12/11}{Rationalize \texttt{sw} shape change
%    rules (gh/1581)}
%    \begin{macrocode}
\DeclareFontShapeChangeRule {n}{sw}  {sw}  {it}
% \DeclareFontShapeChangeRule {n}{sc}  {sc}  {}
\DeclareFontShapeChangeRule {n}{ulc} {n}   {}
\DeclareFontShapeChangeRule {n}{up}  {n}   {}
%    \end{macrocode}
%    For the \texttt{ssc} shape we make the following general
%    assumptions: if \texttt{ssc}\meta{X} exists then
%    \texttt{sc}\meta{X} and \meta{X} also exist in the font.  If the
%    \texttt{ssc}\meta{X} shape doesn't exist but the user had asked
%    for \texttt{ssc} we try to replace it by \texttt{sc} because we
%    then assume that the current font family simply doesn't have any
%    \texttt{ssc} shapes.  However, if we are already in some
%    \texttt{ssc} shape and a shape change is requested we know that at
%    least some \texttt{ssc} shapes exist for the current font family,
%    so rather than falling back to some \texttt{sc} shape we try to stay
%    within \texttt{ssc} shapes in a fallback situation.
% \changes{v1.0k}{2024/12/11}{Add \texttt{ssc} shape change
%    rules (gh/1581)}
%    \begin{macrocode}
\DeclareFontShapeChangeRule {n}{ssc} {ssc} {sc}
%    \end{macrocode}
%
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {it}{n}   {n}     {}
% \DeclareFontShapeChangeRule {it}{it}  {it}    {}
\DeclareFontShapeChangeRule {it}{sl}  {sl}    {it}
\DeclareFontShapeChangeRule {it}{sw}  {sw}    {it}
%    \end{macrocode}
%    If neither \texttt{scit} nor \texttt{scsl} exist then \texttt{sc}
%    will be used as a fallback albeit with a log entry, so except for
%    the latter there will be no change for CM or Latin Modern fonts.
%    \begin{macrocode}
\DeclareFontShapeChangeRule {it}{sc}  {scit}  {scsl}
\DeclareFontShapeChangeRule {it}{ulc} {it}    {}
\DeclareFontShapeChangeRule {it}{up}  {n}     {}
\DeclareFontShapeChangeRule {it}{ssc} {sscit} {scit} 
%    \end{macrocode}
%
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {sl}{n}   {n}     {}
\DeclareFontShapeChangeRule {sl}{it}  {it}    {sl}
% \DeclareFontShapeChangeRule {sl}{sl}  {sl}    {}
\DeclareFontShapeChangeRule {sl}{sw}  {sw}    {it}
\DeclareFontShapeChangeRule {sl}{sc}  {scsl}  {scit}
\DeclareFontShapeChangeRule {sl}{ulc} {sl}    {}
\DeclareFontShapeChangeRule {sl}{up}  {n}     {}
\DeclareFontShapeChangeRule {sl}{ssc} {sscsl} {scsl}
%    \end{macrocode}
%
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {sc}{n}   {n}     {}
\DeclareFontShapeChangeRule {sc}{it}  {scit}  {scsl}
\DeclareFontShapeChangeRule {sc}{sl}  {scsl}  {scit}
\DeclareFontShapeChangeRule {sc}{sw}  {scsw}  {scit}
% \DeclareFontShapeChangeRule {sc}{sc}  {sc}    {}
\DeclareFontShapeChangeRule {sc}{ulc}  {n}    {}
%    \end{macrocode}
%
%    The next rule might be a bit surprising, and rightly so.
%    It would be more correct if \texttt{sc}
%    were not affected by \texttt{up}, so that it
%    remains \texttt{sc} as shown in the commented out rule. However,
%    for nearly three decades commands such as \cs{upshape} or
%    \cs{textup} changed small caps back to the ``normal'' shape. So
%    for backward compatibility we keep that behavior.
%
%    As a result you are currently typesetting in \texttt{scit} or
%    \texttt{scsl} using \cs{upshape} twice will return you to the
%    normal shape too, the first will change to \texttt{sc} and the
%    second (because of the rule below) change that to
%    \texttt{n}. This is the way \texttt{fontspec} implemented its
%    version on this interface, so this rule means we are also
%    compatible with the way \texttt{fontspec} behaved. Still it
%    remains an oddity which I would rather liked to have avoided.
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {sc}{up} {sc}     {}
\DeclareFontShapeChangeRule {sc}{up} {n}     {}
% \DeclareFontShapeChangeRule {sc}{ssc}  {ssc}  {}
%    \end{macrocode}
%
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {scit}{n}   {n}    {}
\DeclareFontShapeChangeRule {scit}{it}  {scit}  {}
\DeclareFontShapeChangeRule {scit}{sl}  {scsl}  {scit}
\DeclareFontShapeChangeRule {scit}{sw}  {scsw}  {scit}
\DeclareFontShapeChangeRule {scit}{sc}  {scit}  {}
\DeclareFontShapeChangeRule {scit}{ulc} {it}    {}
%    \end{macrocode}
%    The next rule assumes that if \texttt{scit} exists then
%    \texttt{it} exists as well. If not, the mechanism will save
%    \texttt{ulc} in \cs{f@series}, which most certainly doesn't
%    exist. So when a font is later selected that would result in a
%    substitution (so no harm done really). Alternatively, we could in
%    this case use \texttt{n} as alternative, which may be a bit
%    faster, but such a  setup would be so weird in the first place
%    that this isn't worth the effort.
%    \begin{macrocode}
\DeclareFontShapeChangeRule {scit}{up}  {sc}    {}
\DeclareFontShapeChangeRule {scit}{ssc} {sscit} {scit}
%    \end{macrocode}
%    
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {scsl}{n}   {n}     {}
\DeclareFontShapeChangeRule {scsl}{it}  {scit}  {scsl}
\DeclareFontShapeChangeRule {scsl}{sl}  {scsl}  {}
\DeclareFontShapeChangeRule {scsl}{sw}  {scsw}  {scsl}
\DeclareFontShapeChangeRule {scsl}{sc}  {scsl}  {}
\DeclareFontShapeChangeRule {scsl}{ulc} {sl}    {}
\DeclareFontShapeChangeRule {scsl}{up}  {sc}    {}
\DeclareFontShapeChangeRule {scsl}{ssc} {sscsl} {scsl}
%    \end{macrocode}
%
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {scsw}{n}   {n}     {}
\DeclareFontShapeChangeRule {scsw}{it}  {scit}  {scsw}
\DeclareFontShapeChangeRule {scsw}{sl}  {scsl}  {}
\DeclareFontShapeChangeRule {scsw}{sw}  {scsw}  {}
\DeclareFontShapeChangeRule {scsw}{sc}  {scsw}  {}
\DeclareFontShapeChangeRule {scsw}{ulc} {sw}    {}
\DeclareFontShapeChangeRule {scsw}{up}  {sc}    {}
\DeclareFontShapeChangeRule {scsw}{ssc} {sscsw} {scsw}
%    \end{macrocode}
%
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {sw}{n}   {n}     {}
% \DeclareFontShapeChangeRule {sw}{it}  {it}    {}
% \DeclareFontShapeChangeRule {sw}{sl}  {sl}    {}
% \DeclareFontShapeChangeRule {sw}{sw}  {sw}    {}
\DeclareFontShapeChangeRule {sw}{sc}  {scsw}  {scit}
\DeclareFontShapeChangeRule {sw}{ulc} {sw}    {}
\DeclareFontShapeChangeRule {sw}{up}  {n}     {}
\DeclareFontShapeChangeRule {sw}{ssc} {sscsw} {scsw}
%    \end{macrocode}
%    
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {ssc}{n}   {n}      {}
\DeclareFontShapeChangeRule {ssc}{it}  {sscit}  {sscsl}
\DeclareFontShapeChangeRule {ssc}{sl}  {sscsl}  {sscit}
\DeclareFontShapeChangeRule {ssc}{sw}  {sscsw}  {sscit}
\DeclareFontShapeChangeRule {ssc}{sc}  {sc}     {}
% \DeclareFontShapeChangeRule {ssc}{ssc}  {ssc}   {}
\DeclareFontShapeChangeRule {ssc}{ulc} {n}      {}
%    \end{macrocode}
%    We implement the same logic as for \texttt{sc}, see above. The
%    \texttt{ssc} shape doesn't have to care about 30 years of history,
%    but it would be surprising if \cs{sscshape}\cs{upshape} did not
%    work like \cs{scshape}\cs{upshape}.
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {ssc}{up} {ssc}     {}
\DeclareFontShapeChangeRule {ssc}{up}  {n}      {}
%    \end{macrocode}
%
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {sscit}{n}    {n}     {}
\DeclareFontShapeChangeRule {sscit}{it}   {sscit} {}
\DeclareFontShapeChangeRule {sscit}{sl}   {sscsl} {sscit}
\DeclareFontShapeChangeRule {sscit}{sw}   {sscsw} {sscit}
\DeclareFontShapeChangeRule {sscit}{ssc}  {sscit} {}
\DeclareFontShapeChangeRule {sscit}{sc}   {scit}  {}
\DeclareFontShapeChangeRule {sscit}{ulc}  {it}    {}
\DeclareFontShapeChangeRule {sscit}{up}   {ssc}   {}
%    \end{macrocode}
%
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {sscsl}{n}   {n}      {}
\DeclareFontShapeChangeRule {sscsl}{it}  {sscit}  {sscsl}
\DeclareFontShapeChangeRule {sscsl}{sl}  {sscsl}  {}
\DeclareFontShapeChangeRule {sscsl}{sw}  {sscsw}  {sscit}
\DeclareFontShapeChangeRule {sscsl}{sc}  {scsl}   {}
\DeclareFontShapeChangeRule {sscsl}{ulc} {sl}     {}
\DeclareFontShapeChangeRule {sscsl}{up}  {ssc}    {}
%    \end{macrocode}
%
%    \begin{macrocode}
% \DeclareFontShapeChangeRule {sscsw}{n}   {n}      {}
\DeclareFontShapeChangeRule {sscsw}{it}   {sscit} {sscsl}
\DeclareFontShapeChangeRule {sscsw}{sl}   {sscsl} {sscit}
\DeclareFontShapeChangeRule {sscsw}{sw}   {sscsw} {}
\DeclareFontShapeChangeRule {sscsw}{ssc}  {sscsw} {}
\DeclareFontShapeChangeRule {sscsw}{sc}   {scsw}  {scit}
\DeclareFontShapeChangeRule {sscsw}{ulc}  {sw}    {it}
\DeclareFontShapeChangeRule {sscsw}{up}   {ssc}   {}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%    
%    \begin{macrocode}
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<latexrelease>      {\DeclareFontShapeChangeRule}{Rules for ssc and sw}%
%<latexrelease>
%<latexrelease>\DeclareFontShapeChangeRule {n}{it}  {it}  {sl}
%<latexrelease>\DeclareFontShapeChangeRule {n}{sl}  {sl}  {it}
%<latexrelease>\DeclareFontShapeChangeRule {n}{ulc} {n}   {}
%<latexrelease>\DeclareFontShapeChangeRule {n}{up} {n}    {}
%<latexrelease>\DeclareFontShapeChangeRule {it}{sl}  {sl}    {it}
%<latexrelease>\DeclareFontShapeChangeRule {it}{sc}  {scit}  {scsl}
%<latexrelease>\DeclareFontShapeChangeRule {it}{ulc} {it}    {}
%<latexrelease>\DeclareFontShapeChangeRule {it}{up} {n}      {}
%<latexrelease>\DeclareFontShapeChangeRule {sl}{it}  {it}    {sl}
%<latexrelease>\DeclareFontShapeChangeRule {sl}{sc}  {scsl}  {scit}
%<latexrelease>\DeclareFontShapeChangeRule {sl}{ulc} {sl}    {}
%<latexrelease>\DeclareFontShapeChangeRule {sl}{up} {n}      {}
%<latexrelease>\DeclareFontShapeChangeRule {sc}{it}  {scit}  {scsl}
%<latexrelease>\DeclareFontShapeChangeRule {sc}{sl}  {scsl}  {scit}
%<latexrelease>\DeclareFontShapeChangeRule {sc}{sw}  {scsw}  {sw}
%<latexrelease>\DeclareFontShapeChangeRule {sc}{ulc} {n}     {}
%<latexrelease>\DeclareFontShapeChangeRule {sc}{up} {n}     {}
%<latexrelease>\DeclareFontShapeChangeRule {scit}{it}  {scit}  {}
%<latexrelease>\DeclareFontShapeChangeRule {scit}{sl}  {scsl}  {scit}
%<latexrelease>\DeclareFontShapeChangeRule {scit}{sw}  {scsw}  {sc}    % or scit?
%<latexrelease>\DeclareFontShapeChangeRule {scit}{sc}  {scit}  {}
%<latexrelease>\DeclareFontShapeChangeRule {scit}{ulc} {it}    {}
%<latexrelease>\DeclareFontShapeChangeRule {scit}{up} {sc}     {}
%<latexrelease>\DeclareFontShapeChangeRule {scsl}{it}  {scit}  {scsl}
%<latexrelease>\DeclareFontShapeChangeRule {scsl}{sl}  {scsl}  {}
%<latexrelease>\DeclareFontShapeChangeRule {scsl}{sw}  {scsw}  {sc}    % or scsl?
%<latexrelease>\DeclareFontShapeChangeRule {scsl}{sc}  {scsl}  {}
%<latexrelease>\DeclareFontShapeChangeRule {scsl}{ulc} {sl}    {}
%<latexrelease>\DeclareFontShapeChangeRule {scsl}{up}   {sc}   {}
%<latexrelease>\DeclareFontShapeChangeRule {scsw}{it}  {scit}  {scsw}
%<latexrelease>\DeclareFontShapeChangeRule {scsw}{sl}  {scsl}  {}
%<latexrelease>\DeclareFontShapeChangeRule {scsw}{sw}  {scsw}  {}
%<latexrelease>\DeclareFontShapeChangeRule {scsw}{sc}  {scsw}  {}
%<latexrelease>\DeclareFontShapeChangeRule {scsw}{ulc} {sw}    {}
%<latexrelease>\DeclareFontShapeChangeRule {scsw}{up} {sc}     {}
%<latexrelease>\DeclareFontShapeChangeRule {sw}{sc}  {scsw}  {}
%<latexrelease>\DeclareFontShapeChangeRule {sw}{ulc} {sw}    {}
%<latexrelease>\DeclareFontShapeChangeRule {sw}{up} {n}      {}
%<latexrelease>
%    \end{macrocode}
%    In 2022-02-02 the \texttt{ssc} shape had no rules, so
%    that any use of it would have resulted in just switching to
%    that shape or switching away from it; so we mimic that by
%    providing the corresponding trivial rules to overrule those
%    from above when we roll back.
%    \begin{macrocode}
%<latexrelease>\DeclareFontShapeChangeRule {n}{ssc}   {ssc} {}
%<latexrelease>\DeclareFontShapeChangeRule {it}{ssc}  {ssc} {}
%<latexrelease>\DeclareFontShapeChangeRule {sl}{ssc}  {ssc} {}
%<latexrelease>\DeclareFontShapeChangeRule {sw}{ssc}  {ssc} {}
%<latexrelease>
%<latexrelease>\DeclareFontShapeChangeRule {scit}{ssc}{ssc} {}
%<latexrelease>\DeclareFontShapeChangeRule {scsl}{ssc}{ssc} {}
%<latexrelease>\DeclareFontShapeChangeRule {scsw}{ssc}{ssc} {}
%<latexrelease>
%<latexrelease>\DeclareFontShapeChangeRule {ssc}{it}  {it} {}
%<latexrelease>\DeclareFontShapeChangeRule {ssc}{sl}  {sl} {}
%<latexrelease>\DeclareFontShapeChangeRule {ssc}{sw}  {sw} {}
%<latexrelease>\DeclareFontShapeChangeRule {ssc}{sc}  {sc} {}
%<latexrelease>\DeclareFontShapeChangeRule {ssc}{ulc} {n}  {}
%<latexrelease>\DeclareFontShapeChangeRule {ssc}{up}  {n}  {}
%<latexrelease>
%<latexrelease>\DeclareFontShapeChangeRule {sscit}{it}   {it} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscit}{sl}   {sl} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscit}{sw}   {sw} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscit}{ssc}  {ssc}{}
%<latexrelease>\DeclareFontShapeChangeRule {sscit}{sc}   {sc} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscit}{ulc}  {n}  {}
%<latexrelease>\DeclareFontShapeChangeRule {sscit}{up}   {ssc}{}
%<latexrelease>
%<latexrelease>\DeclareFontShapeChangeRule {sscsl}{it}  {it} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscsl}{sl}  {sl} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscsl}{sw}  {sw} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscsl}{sc}  {sc} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscsl}{ulc} {n}  {}
%<latexrelease>\DeclareFontShapeChangeRule {sscsl}{up}  {ssc}{}
%<latexrelease>
%<latexrelease>\DeclareFontShapeChangeRule {sscsw}{it}   {it} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscsw}{sl}   {sl} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscsw}{sw}   {sw} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscsw}{ssc}  {ssc}{}
%<latexrelease>\DeclareFontShapeChangeRule {sscsw}{sc}   {sc} {}
%<latexrelease>\DeclareFontShapeChangeRule {sscsw}{ulc}  {n}  {}
%<latexrelease>\DeclareFontShapeChangeRule {sscsw}{up}   {ssc}{}
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%    Before 2020-02-02 we don't really care about any existing shape
%    change rules since the mechanism isn't used.
%    \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease>      {\DeclareFontShapeChangeRule}{Rules for ssc and sw}%
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%




% \subsection{Changing to a new shape}
%
%
%    \begin{macrocode}
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2021/06/01}%
%<latexrelease>   {\fontshape}{Font shape change}%
%    \end{macrocode}
%
%
%
%  \begin{macro}{\fontshape}
%    Again the \cs{fontshape} now has to do a lookup to get to its new
%    value in \cs{f@shape}. The method is exactly the same as in
%    \cs{fontseries}.
% \changes{v1.0h}{2020/12/04}{Distangle series and shape update (gh/444)}
%    \begin{macrocode}
\DeclareRobustCommand\fontshape[1]
   {\expandafter\def\expandafter\delayed@f@adjustment\expandafter
        {\delayed@f@adjustment\delayed@merge@font@shape{#1}}}
%    \end{macrocode}
%  \end{macro}
%
%
%  \begin{macro}{\fontshapeforce}
%    The unconditional version:
%
% \changes{v1.0h}{2020/12/04}{Distangle series and shape update (gh/444)}
%    \begin{macrocode}
\DeclareRobustCommand\fontshapeforce[1]
   {\expandafter\def\expandafter\delayed@f@adjustment\expandafter
        {\delayed@f@adjustment\edef\f@shape{#1}}}
%    \end{macrocode}
%  \end{macro}
%
%
% Supporting rollback \ldots
%    \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<latexrelease>   {\fontshape}{Font shape change}%
%<latexrelease>
%<latexrelease>\DeclareRobustCommand\fontshape[1]{\merge@font@shape{#1}}
%<latexrelease>\DeclareRobustCommand\fontshapeforce[1]{\edef\f@shape{#1}}
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%    \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease>   {\fontshape}{Font shape change}%
%<latexrelease>
%<latexrelease>\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}}
%<latexrelease>\let\fontshapeforce\@undefined
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%





%    \begin{macrocode}
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<latexrelease>   {\merge@font@shape}{Font shape change rules}%
%    \end{macrocode}
%
%
%
%  \begin{macro}{\merge@font@shape}
%    Look up the database entry (if existing) and act accordingly.
%    \begin{macrocode}
\def\merge@font@shape#1{%
  \expandafter\expandafter\expandafter
  \merge@font@shape@
    \csname shape@\f@shape @#1\endcsname
    {#1}%
    \@nil
}
%    \end{macrocode}
%  \end{macro}
%

%  \begin{macro}{\merge@font@shape@}
%    Same game now, except that we look at shapes not series values
%    and we can set the shape without the complication of dropping
%    ``m''s from the name as we had to for the series.
%    \begin{macrocode}
\def\merge@font@shape@#1#2#3\@nil{%
  \def\reserved@a{#3}%
  \ifx\reserved@a\@empty
    \edef\f@shape{#2}%
  \else
%    \end{macrocode}
%    \cs{reserved@a} is used in \cs{@font@shape@subst@warning} so we
%    have to define it in addition to do the \cs{ifcsname} test
%    \begin{macrocode}
    \edef\reserved@a{\f@encoding /\f@family /\f@series/#1}%
    \ifcsname \reserved@a\endcsname
       \edef\f@shape{#1}%
    \else
       \ifcsname \f@encoding /\f@family /\f@series/#2\endcsname
         \edef\f@shape{#2}%
         \@font@shape@subst@warning
       \else
         \edef\f@shape{#3}%
         \@font@shape@subst@warning
       \fi
    \fi
  \fi
}
%    \end{macrocode}
%  \end{macro}
%
%
%  \begin{macro}{\merge@font@shape@without@substitution,
%                \merge@font@shape@without@substitution@,
%                \delayed@merge@font@shape}
%    See definition of \cs{selectfont} for how these macros are used.
% \changes{v1.0h}{2020/12/22}{Distangle series and shape update (gh/444)}
%    \begin{macrocode}
\def\merge@font@shape@without@substitution#1{%
  \expandafter\expandafter\expandafter
  \merge@font@shape@without@substitution@
    \csname shape@\f@shape @#1\endcsname
    {#1}%
    \@nil
}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\merge@font@shape@without@substitution@#1#2#3\@nil{%
  \def\reserved@a{#3}%
  \ifx\reserved@a\@empty
    \edef\f@shape{#2}%
  \else
    \edef\f@shape{#1}%
  \fi
}
%    \end{macrocode}
%    
%    \begin{macrocode}
\let\delayed@merge@font@shape\merge@font@shape@without@substitution
%    \end{macrocode}
%  \end{macro}
%
%
%
%  \begin{macro}{\normalshape}
%
%    \cs{normalshape} resets both sub-axes if the default rules are used.
%    \begin{macrocode}
\protected\def\normalshape
    {\not@math@alphabet\normalshape\relax
      \fontshape\shapedefault\selectfont}%
%    \end{macrocode}
%  \end{macro}
%
%
%
%
% \section{Make sure we win \ldots}
%
%    This code implements one aspect of what the package \textsf{fontaxes}
%    provide. So its redefinitions for the various shape commands,
%    such as \cs{itshape} should no longer happen. We therefore force
%    the standard definitions at \cs{AtBeginDocument} (later when this
%    is defined). Once
%    \texttt{fontaxes} is no longer doing such redefinitions that could
%    be taken out again.
%
%    We use a separate macro so that we can easily disable this (in
%    case of rollback).
%
%  \begin{macro}{\reinstall@nfss@defs}
%
%    I use \cs{protected} here not \cs{DeclareRobustCommand} to avoid
%    extra status lines.
%    \begin{macrocode}
\def\reinstall@nfss@defs{%
  \protected\def\upshape
          {\not@math@alphabet\upshape\relax
           \fontshape\updefault\selectfont}%
  \protected\def\slshape
          {\not@math@alphabet\slshape\relax
           \fontshape\sldefault\selectfont}%
  \protected\def\scshape
          {\not@math@alphabet\scshape\relax
           \fontshape\scdefault\selectfont}%
  \protected\def\itshape
          {\not@math@alphabet\itshape\mathit
           \fontshape\itdefault\selectfont}%
  \protected\def\ulcshape
          {\not@math@alphabet\ulcshape\relax
           \fontshape{ulc}\selectfont}%
  \protected\def\swshape
          {\not@math@alphabet\swshape\relax
           \fontshape\swdefault\selectfont}%
  \protected\def\sscshape
          {\not@math@alphabet\sscshape\relax
           \fontshape\sscdefault\selectfont}%
}
%    \end{macrocode}
%  \end{macro}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Supporting rollback \ldots
%    \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease>   {\merge@font@shape}{Font shape change rules}%
%<latexrelease>
%<latexrelease>\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}}
%<latexrelease>\let\fontshapeforce\@undefined
%<latexrelease>
%<latexrelease>\let\merge@font@shape\@undefined
%<latexrelease>\let\merge@font@shape@\@undefined
%<latexrelease>
%<latexrelease>\let\merge@font@shape@without@substitution\@undefined
%<latexrelease>\let\merge@font@shape@without@substitution@\@undefined
%<latexrelease>\let\delayed@merge@font@shape\@undefined
%<latexrelease>
%<latexrelease>\let\normalshape\@undefined
%<latexrelease>
%    \end{macrocode}
%    This is always called in \cs{document} so don't make it undefined.
%    \begin{macrocode}
%<latexrelease>
%<latexrelease>\let\reinstall@nfss@defs\relax
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%
%
%    This initializes the 2020/02/02 extensions to NFSS after any changes
%    in the preamble. 
% \changes{v1.0g}{2020/08/21}{Integration of new hook management interface}
%    \begin{macrocode}
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease>                 {\reinstall@nfss@defs}{NFSS series init}%
\g@addto@macro\@kernel@after@begindocument@before
              {\reinstall@nfss@defs\init@series@setup}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%    The initialization was introduced in 2020/02/02 but 
%    \begin{macrocode}
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<latexrelease>                 {\reinstall@nfss@defs}{NFSS series init}%
%<latexrelease>\AtBeginDocument{\reinstall@nfss@defs\init@series@setup}
%<latexrelease>\EndIncludeInRelease
%    \end{macrocode}
%
%    \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease>                 {\reinstall@nfss@defs}{NFSS series init}%
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
%</2ekernel>
%    \end{macrocode}
%
% \Finale
%
