%%
%% This is file `rotchiffre.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% rotchiffre.dtx  (with options: `package')
%% 
%% This is a generated file.
%% 
%% Project: rotchiffre
%% Version: 2010/11/12 v1.0
%% 
%% Copyright (C) 2010 by
%%    Heiko Oberdiek <heiko.oberdiek at googlemail.com>
%% 
%% This work 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. This version of this license is in
%%    http://www.latex-project.org/lppl/lppl-1-3c.txt
%% and the latest version of this license is in
%%    http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
%% 
%% This work has the LPPL maintenance status "maintained".
%% 
%% This Current Maintainer of this work is Heiko Oberdiek.
%% 
%% The Base Interpreter refers to any `TeX-Format',
%% because some files are installed in TDS:tex/generic//.
%% 
%% This work consists of the main source file rotchiffre.dtx
%% and the derived files
%%    rotchiffre.sty, rotchiffre.pdf, rotchiffre.ins, rotchiffre.drv,
%%    rotchiffre-test1.tex, rotchiffre-test2.tex.
%% 
\begingroup\catcode61\catcode48\catcode32=10\relax%
  \catcode13=5 % ^^M
  \endlinechar=13 %
  \catcode35=6 % #
  \catcode39=12 % '
  \catcode44=12 % ,
  \catcode45=12 % -
  \catcode46=12 % .
  \catcode58=12 % :
  \catcode64=11 % @
  \catcode123=1 % {
  \catcode125=2 % }
  \expandafter\let\expandafter\x\csname ver@rotchiffre.sty\endcsname
  \ifx\x\relax % plain-TeX, first loading
  \else
    \def\empty{}%
    \ifx\x\empty % LaTeX, first loading,
      % variable is initialized, but \ProvidesPackage not yet seen
    \else
      \expandafter\ifx\csname PackageInfo\endcsname\relax
        \def\x#1#2{%
          \immediate\write-1{Package #1 Info: #2.}%
        }%
      \else
        \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
      \fi
      \x{rotchiffre}{The package is already loaded}%
      \aftergroup\endinput
    \fi
  \fi
\endgroup%
\begingroup\catcode61\catcode48\catcode32=10\relax%
  \catcode13=5 % ^^M
  \endlinechar=13 %
  \catcode35=6 % #
  \catcode39=12 % '
  \catcode40=12 % (
  \catcode41=12 % )
  \catcode44=12 % ,
  \catcode45=12 % -
  \catcode46=12 % .
  \catcode47=12 % /
  \catcode58=12 % :
  \catcode64=11 % @
  \catcode91=12 % [
  \catcode93=12 % ]
  \catcode123=1 % {
  \catcode125=2 % }
  \expandafter\ifx\csname ProvidesPackage\endcsname\relax
    \def\x#1#2#3[#4]{\endgroup
      \immediate\write-1{Package: #3 #4}%
      \xdef#1{#4}%
    }%
  \else
    \def\x#1#2[#3]{\endgroup
      #2[{#3}]%
      \ifx#1\@undefined
        \xdef#1{#3}%
      \fi
      \ifx#1\relax
        \xdef#1{#3}%
      \fi
    }%
  \fi
\expandafter\x\csname ver@rotchiffre.sty\endcsname
\ProvidesPackage{rotchiffre}%
  [2010/11/12 v1.0 Perform simple rotation ciphers (HO)]%
\begingroup\catcode61\catcode48\catcode32=10\relax%
  \catcode13=5 % ^^M
  \endlinechar=13 %
  \catcode123=1 % {
  \catcode125=2 % }
  \catcode64=11 % @
  \def\x{\endgroup
    \expandafter\edef\csname RotCh@AtEnd\endcsname{%
      \endlinechar=\the\endlinechar\relax
      \catcode13=\the\catcode13\relax
      \catcode32=\the\catcode32\relax
      \catcode35=\the\catcode35\relax
      \catcode61=\the\catcode61\relax
      \catcode64=\the\catcode64\relax
      \catcode123=\the\catcode123\relax
      \catcode125=\the\catcode125\relax
    }%
  }%
\x\catcode61\catcode48\catcode32=10\relax%
\catcode13=5 % ^^M
\endlinechar=13 %
\catcode35=6 % #
\catcode64=11 % @
\catcode123=1 % {
\catcode125=2 % }
\def\TMP@EnsureCode#1#2{%
  \edef\RotCh@AtEnd{%
    \RotCh@AtEnd
    \catcode#1=\the\catcode#1\relax
  }%
  \catcode#1=#2\relax
}
\TMP@EnsureCode{42}{12}% *
\TMP@EnsureCode{43}{12}% +
\TMP@EnsureCode{45}{12}% -
\TMP@EnsureCode{46}{12}% .
\TMP@EnsureCode{47}{12}% /
\TMP@EnsureCode{60}{12}% <
\TMP@EnsureCode{62}{12}% >
\TMP@EnsureCode{91}{12}% [
\TMP@EnsureCode{93}{12}% ]
\TMP@EnsureCode{96}{12}% `
\edef\RotCh@AtEnd{\RotCh@AtEnd\noexpand\endinput}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname RequirePackage\endcsname\relax
  \input infwarerr.sty\relax
  \input ltxcmds.sty\relax
  \input pdfescape.sty\relax
\else
  \RequirePackage{infwarerr}[2010/04/08]%
  \RequirePackage{ltxcmds}[2010/03/01]%
  \RequirePackage{pdfescape}[2010/03/01]%
\fi
\ltx@IfUndefined{protected}{%
  \ltx@IfUndefined{DeclareRobustCommand}{%
    \def\RotCh@temp{\def\EdefRot##1}%
  }{%
    \def\RotCh@temp{\DeclareRobustCommand*\EdefRot[1]}%
  }%
}{%
  \def\RotCh@temp{\protected\def\EdefRot##1}%
}
\RotCh@temp{%
  \RotCh@GetNumber{#1}%
  \ltx@IfUndefined{RotCh@rot@\romannumeral\RotCh@number}{%
    \@PackageError{rotchiffre}{%
      Unknown chiffre ROT\RotCh@number
    }\@ehc
    \EdefSanitize
  }{%
    \RotCh@rot
  }%
}
\ltx@IfUndefined{numexpr}{%
  \def\RotCh@GetNumber#1{%
    \edef\RotCh@number{\number#1}%
  }%
}{%
  \def\RotCh@GetNumber#1{%
    \edef\RotCh@number{\the\numexpr#1\relax}%
  }%
}
\countdef\RotCh@count=255 %
\countdef\RotCh@count@end=2 %
\def\RotCh@RangeIgnore{%
  \RotCh@loop{%
    \lccode\RotCh@count=\ltx@zero
  }%
}
\ltx@IfUndefined{numexpr}{%
  \countdef\RotCh@count@temp=4 %
  \def\RotCh@RangeSet#1{%
    \RotCh@loop{%
       \RotCh@count@temp=\RotCh@count
       \advance\RotCh@count@temp #1 %
       \lccode\RotCh@count=\RotCh@count@temp
    }%
  }%
}{%
  \def\RotCh@RangeSet#1{%
    \RotCh@loop{%
      \lccode\RotCh@count=\numexpr\RotCh@count#1\relax
    }%
  }%
}
\def\RotCh@loop#1#2#3{%
  \RotCh@count=#2 %
  \RotCh@count@end=#3 %
  \def\RotCh@action{#1}%
  \RotCh@@loop
}%
\def\RotCh@@loop{%
  \RotCh@action
  \ifnum\RotCh@count<\RotCh@count@end
    \advance\RotCh@count\ltx@one
    \expandafter\RotCh@@loop
  \fi
}
\def\RotCh@rot@xiii{%
  \RotCh@RangeIgnore{0}{64}%
  \RotCh@RangeSet{+13}{65}{77}%
  \RotCh@RangeSet{-13}{78}{90}%
  \RotCh@RangeIgnore{91}{96}%
  \RotCh@RangeSet{+13}{97}{109}%
  \RotCh@RangeSet{-13}{110}{122}%
  \RotCh@RangeIgnore{123}{255}%
}
\def\RotCh@rot@v{%
  \RotCh@RangeIgnore{0}{47}%
  \RotCh@RangeSet{+5}{48}{52}%
  \RotCh@RangeSet{-5}{53}{57}%
  \RotCh@RangeIgnore{58}{255}%
}
\def\RotCh@rot@xviii{%
  \RotCh@RangeIgnore{0}{47}%
  \RotCh@RangeSet{+25}{48}{57}%
  \RotCh@RangeIgnore{58}{64}%
  \RotCh@RangeSet{+18}{65}{72}%
  \RotCh@RangeSet{-25}{73}{82}%
  \RotCh@RangeSet{-18}{83}{90}%
  \RotCh@RangeIgnore{91}{96}%
  \RotCh@RangeSet{+13}{97}{109}%
  \RotCh@RangeSet{-13}{110}{122}%
  \RotCh@RangeIgnore{123}{255}%
}
\def\RotCh@rot@xlvii{%
  \RotCh@RangeIgnore{0}{32}%
  \RotCh@RangeSet{+47}{33}{79}%
  \RotCh@RangeSet{-47}{80}{126}%
  \RotCh@RangeIgnore{127}{255}%
}
\begingroup
  \catcode0=9 %
  \catcode`\^=7 %
  \catcode`\^^^=12 %
  \def\x{^^^^0000}%
\expandafter\endgroup
\ifx\x\ltx@empty
  \toksdef\RotCh@toks=0 %
  \long\def\RotCh@rot#1#2{%
    \EdefSanitize#1{#2}%
    \begingroup
      \csname RotCh@rot@\romannumeral\RotCh@number\endcsname
      \RotCh@toks={}%
      \expandafter\RotCh@SplitSpace#1 \@nil
    \expandafter\endgroup
    \expandafter\def\expandafter#1\expandafter{%
      \the\RotCh@toks
    }%
  }%
  \def\RotCh@temp#1{%
    \def\RotCh@SplitSpace##1 ##2\@nil{%
      \RotCh@Add##1\relax
      \ifx\relax##2\relax
        \expandafter\ltx@gobble
      \else
        \RotCh@toks\expandafter{\the\RotCh@toks#1}%
        \expandafter\ltx@firstofone
      \fi
      {%
        \RotCh@SplitSpace##2\@nil
      }%
    }%
  }%
  \RotCh@temp{ }%
  \def\RotCh@Add#1{%
    \ifx#1\relax
    \else
      \ifnum`#1>126 %
        \RotCh@toks\expandafter{\the\RotCh@toks#1}%
      \else
        \lowercase{%
          \RotCh@toks\expandafter{\the\RotCh@toks#1}%
        }%
      \fi
      \expandafter\RotCh@Add
    \fi
  }%
\else
  \long\def\RotCh@rot#1#2{%
    \EdefSanitize#1{#2}%
    \begingroup
      \csname RotCh@rot@\romannumeral\RotCh@number\endcsname
    \lowercase\expandafter{\expandafter\endgroup
      \expandafter\def\expandafter#1\expandafter{#1}%
    }%
  }%
\fi
\RotCh@AtEnd%
\endinput
%%
%% End of file `rotchiffre.sty'.
