%%
%% This is file `msg.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% msg.dtx  (with options: `code')
%% 
%%    File is part of the "msg" package for LaTeX
%%    which is designed to localize any LaTeX package
%%    or document class.
%% 
\iffalse checksum part
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%      checksum        = "32817 1583 6882 65979"
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fi
\def\fileversion{V0.50}\def\filedate{2006/11/09}%
\ifx\issuemsg\undefined\else\expandafter\endinput\fi%
\ifnum\catcode`\@=11\else\expandafter\catcode`\@=11\fi%
\ifx\kbencoding\undefined% If we don't have any keyboard reencoding
  \ifx\LdfInit\@undefined% we need at least inputenc package.
       \RequirePackage{inputenc}% Usually, load that package.
  \else% But with Babel, dont use \usepackage or such,
       \let\@msg@tempa\@currname% Save current package name.
       \xdef\@currname{inputenc}% set package req.
       \@@input inputenc.sty% and input it now.
       \makeatletter%
       \let\@currname\@msg@tempa% Reset original package name.
  \fi%
  \let\@previeg\empty% We have no encoding at this time.
\fi%
\IfFileExists{msg-msg.tex}{}{%
              \message{msg: ERROR, file msg-msg.tex is missing}\stop%
                            }%
\ifx\issuemsgio\undefined\let\issuemsgio\typeout\fi%
\def\@msg@tempa{dummy}%
\def\@msg@tempb{nohyphenation}%
\def\@msg@tempc{english}% Default language for msg package.
\ifx\languagename\@msg@tempa\else%
 \ifx\languagename\@msg@tempb\else%
  \ifx\languagename\@msg@tempc\let\msg@languagename\undefined\else
   \ifx\languagename\undefined\let\msg@languagename\undefined%
    \else\edef\msg@languagename{\languagename}% Set it for now.
   \fi%
  \fi%
 \fi%
\fi%
\def\packagewarningheader#1{Package #1 Warning: }%
\renewcommand{\PackageWarning}[2]{\GenericWarning{(#1)%
                                  \@spaces\@spaces\@spaces\@spaces}%
                                  {\packagewarningheader{#1}#2}%
                                 }
\edef\@msg@code@ast{\the\catcode`\*}% Save the current catcode of ``*''.
\def\issuemsg{\@ifnextchar[{\i@suemsg}{\i@suemsg[\issuemsgio]}%]
             }%
\def\issuemsgx{\@ifnextchar[{\i@suemsgx}{\i@suemsgx[\issuemsgio]}%]
             }%
\let\@msgalspace\space%
\def\@msgalign#1{\ifx\empty#1\else\expandafter\@msgalign@%
                                  \expandafter#1\fi}%
\def\@msgalign@#1{\ifx\void#1\else\expandafter\@msgalign@@%
                                  \expandafter#1\fi}%
\def\@msgalign@@#1{\ifx\protect#1\expandafter\@msgalign@@@%
                   \else\expandafter\@msgalign@@@@%
                   \fi}%
\def\@msgalign@@@{\@msgalign}%
\def\@msgalign@@@@{\@msgalspace\@msgalign}%
\let\msg@cmd\relax%
\def\i@suemsg{\let\msg@cmd\issuemsg\i@suemsgx}%
\def\i@suemsgx[#1]#2(#3){\@ifnextchar[{\i@@uemsg[#1]#2(#3)}%]
                                     {\i@@uemsg[#1]#2(#3)[]}%
                       }%
\let\if@msg@pkg@error\iffalse% Defaultly, not an error macro message.
\def\i@@uemsg[#1]#2(#3)[#4]{%
                    \def\@argmsg{#4}%
                    \def\@msg@iocmd{#1}%
                    \def\@msg@txt{%
                                  \themsg\themsgi\themsgii\themsgiii%
                                 }%
      \let\@msg@MBori\MessageBreak%
      \ifx\MessageBreak\relax%
          \def\MessageBreak{^^J\expandafter\@msgalign\msg@header\void}%
      \fi%
                    \let\@msg@txt@\empty%
                    \def\@msg@tempb##1##2/{\let\@msg@tempb=##1}%
                    \def\@msg@tempa{\let\if@msg@pkg@error\iftrue}%
                    \@msg@tempb#1/% \PackageError is a special case with
                    \ifx\@msg@tempb\PackageError% package name and msg+help.
                          \@msg@tempa% Keep it in mind for \@msgparts.
                    \fi%
                    \ifx\@msg@tempb\ClassError% The same for \ClassError.
                          \@msg@tempa%
                    \fi%
                    \ifx\undefined#1\retrievemsg2(msg)%
                          \PackageWarning{msg}\@msg@txt%
                    \else\retrievemsg#2(#3)[#4]%
                        \ifx\kbencoding\undefined% Expand text now if
                          \edef\@msg@txt{\@msg@txt}% output encoding is
                          \edef\@msg@txt@{\@msg@txt@}% not available.
                        \fi%
                        \@relaxORgobble\@msg@iocmd{\@msg@txt}{\@msg@txt@}%
%%%             \csname @originalkbe\endcsname% Get back encoding if necessary.
                    \fi%
              \let\MessageBreak\@msg@MBori%
              }%
      \def\getmsg#1(#2){\@ifnextchar[{\g@tmsg#1(#2)}{\g@tmsg#1(#2)[]}%]
                       }%
      \def\g@tmsg#1(#2)[#3]{\retrievemsg{#1}(#2)[#3]\@relaxORgobble%
                            \themsg}%
 \newif\if@msg@more%
 \def\@msglineparse#1#2\void{\def\@msg@tempa{\msg}%
                             \def\@msg@tempb{#1}%
                             \ifx\@msg@tempa\@msg@tempb%
                                   \@msg@tempf% Execute the previous line.
                                   \def\@msg@tempf{}% Start a new one.
                                   \if@msg@more% Continue line feed.
                                    \def\@msg@tempf{\protect#1#2}%
                                   \fi%
                             \else%
                                  \let\msgheaderOLD\msgheader%
                                  \let\msgtrailerOLD\msgtrailer%
                                  \let\msgencodingOLD\msgencoding%
                                  \let\spaceOLD\space%
                       \let\UTFviii@two@octetsOLD\UTFviii@two@octets%
                       \let\UTFviii@two@octetsOLD\UTFviii@two@octets%
                       \let\UTFviii@four@octetsOLD\UTFviii@four@octets%
                       \let\UTFviii@two@octets\string% If utf8 was loaded then
                       \let\UTFviii@three@octets\string% nullify it until
                       \let\UTFviii@four@octets\string% necessary.
                                  \def\msgheader{\protect\msgheader}%
                                  \def\msgtrailer{\protect\msgtrailer}%
                                  \def\msgencoding{\protect\msgencoding}%
                                  \def\space{\noexpand\space}%
                             \def\help{\protect\helpi}%
                             \protected@edef\@msg@tempf{\@msg@tempf\@msgline}%
                       \let\UTFviii@two@octets\UTFviii@two@octetsOLD%
                       \let\UTFviii@two@octets\UTFviii@two@octetsOLD%
                       \let\UTFviii@four@octets\UTFviii@four@octetsOLD%
                                  \let\space\spaceOLD%
                                  \let\msgheader\msgheaderOLD%
                                  \let\msgtrailer\msgtrailerOLD%
                                  \let\msgencoding\msgencodingOLD%
                                  \let\spaceOLD\undefined%
                                  \let\msgheaderOLD\undefined%
                                  \let\msgtrailerOLD\undefined%
                                  \let\msgencodingOLD\undefined%
                             \fi%
                            }%
 \let\endinputORI\endinput% Save \endinput for any use in an alone \msgencoding
 \newread\@inputmsg% We'll need it at least for the banner message.
 \def\@@input@msg@filename{% Doing nearly like \@@input\msg@filename
                           \openin\@inputmsg=\msg@filename\@msg@moretrue%
                           \let\msgparti\relax%
                           \let\msgpartii\relax%
                           \let\msgpartiii\relax%
                           \def\@msg@tempf{}%
                           \let\endinputORI\endinput%
                           \let\endinput\undefined% To avoid redef info msg.
                           \DeclareRobustCommand*{\endinput}{\@msg@morefalse%
                                                 }%
                           \let\reserved@a\@gobble% Clean remaining code.
                           \loop\catcode`\#=\active%
                              \endlinechar=-1%
                              \read\@inputmsg to \@msgline%
                              \endlinechar`\^^M%
                              \catcode`\#=6%
                              \ifx\@msgline\empty\else%
                                \expandafter\@msglineparse\@msgline\void%
                              \fi%
                              \ifeof\@inputmsg\@msg@morefalse\fi%
                           \if@msg@more\repeat%
                           \closein\@inputmsg\@msg@tempf%
                           \catcode`\#=6%
                           \let\endinput\endinputORI%
                          }%
\def\@msginput@usual{\let\endinputORI\endinput\@@input\msg@filename}%
 \def\retrievemsg#1(#2){\catcode`\*=\@msg@code@ast%
                        \@ifnextchar[{\r@trievemsg#1(#2)}%]
                                     {\r@trievemsg#1(#2)[]}%
                       }%
 \let\msg@empty\empty%
 \let\if@msgnext\iffalse% Set no request for all messages.
 \def\r@trievemsg#1(#2)[#3]{\def\@argmsg{#3}%
              \let\msg@header\empty\let\msg@trailer\empty%
              \xdef\msgid{#1}%
              \def\@msg@pkg{#2}% Prevent from empty file:
              \let\themsg\msg@empty%
              \if@msgnext\let\help\helpi\fi%
              \let\themsgi\empty%
              \let\themsgii\empty%
              \let\themsgiii\empty%
              \let\@relaxORgobble\relax%
              \edef\@msg@tempd{\@msg@pkg-msg.tex}%
              \ifx\msg@languagename\undefined%
                 \ifx\languagename\undefined\else% Get current language.
                       \let\msg@input@lang\languagename%
                 \fi% If no current language, use msg's language.
              \else\let\msg@input@lang\msg@languagename%
              \fi%
              \csname msg@MPC\endcsname% req. when ltxdoc
              \ifx\msg@input@lang\undefined%
                  \let\msg@filename\@msg@tempd%
              \else%
                  \edef\@msg@tempc{\msg@input@lang\string_\@msg@tempd}%
                  \IfFileExists\@msg@tempc{\let\msg@filename\@msg@tempc}%
                                      {\let\msg@filename\@msg@tempd}%
              \fi%
              \edef\msg@inputlineno{the\inputlineno}%
              \makeatletter%
              \let\@msg@gobble@space\relax% Case \msgheader in 1st line.
              \let\reserved@a\@gobble% Avoid runaway.
              \bgroup\@@input@msg@filename\relax\egroup%
              \let\msg@cmd\relax%
              \csname msg@MPI\endcsname% req. when ltxdoc
              \ifx\themsg\empty% Unusual end of file reached.
                   \def\@msg@tempa{\let\msg@empty\relax% to avoid loop.
                               \r@trievemsg6(msg)[]%
                               }%
                   \expandafter\@msg@tempa%
              \fi%
              \ifx\themsg\msg@empty%
                   \PackageError{msg}%
                       {\string\msg{*} not found in \msg@filename}%
                       {please reinstall the msg package}%
              \fi%
              \let\if@msg@pkg@error\iffalse% Reset for next msg request.
              \catcode`\*=\@msg@code@ast% Reset catcode too.
                           }%
\catcode`\#=\active\def\set@argmsg{\def#1{\@argmsg}}%
\catcode`\#=6%
\def\msg{\let\@msg@gobble@space\@gobble% Should apply after firs call.
         \@ifstar{\def\@msgskip{^^J}\@msg}{\def\@msgskip{}\@msg}}%
\long\def\@msg#1{\def\@msg@tempc{#1}\catcode`\#=\active%
                 \def\@msg@tempd##1##2\void{\def\@msg@tempd{##2}%
                                            \let\@msg@tempe\empty%
                                            \ifx\@msg@tempd\empty%
                                             \def\@msg@tempe{##1}%
                                            \fi}%
                 \@msg@tempd#1\void\relax% \@msg@tempe is the first #1 token.
                 \let\themsgi\empty% We need to clean any
                 \let\themsgii\empty% previous read
                 \let\themsgiii\empty% message parts.
                 \set@argmsg\@msg@%
                }%
\def\@gobble@help#1#2{\@msgparts}% Case 2 lines \msg with \read
\long\def\@msg@#1{\def\@msg@tempd{% but not \input.
                           \ifx\@msginput@usual\@@input@msg@filename%
                               \def\space{\noexpand\space}%
                               \protected@edef\msg@header{\msg@header}%
                               \protected@edef\msg@trailer{\msg@trailer}%
                            \else%
                               \edef\msg@header{\msg@header}%
                               \edef\msg@trailer{\msg@trailer}%
                            \fi%
                            \edef\space{ }%
                            \protected@xdef\themsg{%
                                       \@msgskip\msg@header#1\msg@trailer}%
                            \def\space{ }%
                                  }%
            \catcode`\#=6\let\@msg@tempb\relax%
            \def\@msg@tempb{\@ne\tw@\thr@@\sixt@@n\@cclv}%
            \ifx\msgid\@msg@tempb% Check for any next message request.
                 \global\let\msgid\@msg@tempc%
            \else%
                 \ifx\msgid\@msg@tempc% Check for the previous id.
                      \if@msgnext\def\msgid{\@ne\tw@\thr@@\sixt@@n\@cclv}%
                      \fi%
                 \fi%
            \fi%
            \ifx\msgid\@msg@tempc% Check for the "id".
                  \let\@msgparts@ORnot\@msgparts@%
                  \def\@msg@tempb{\endinput}%
                  \if@msg@pkg@error%
                     \let\help\@firstofone%
                     \def\@msgparts@ORnot{\endinput\def\@msg@txt@}%
                  \fi%
                  \def\@msg@tempf{}%
                  \expandafter\@msg@tempd%
            \else\expandafter%
                  \ifx\@msg@tempe*\let\@msgparts@ORnot\@msgparts@%
                      \def\@msg@tempb{\endinput\@msg@tempd%
                      \PackageWarningNoLine{msg}{\themsg%
                                           \themsgi\themsgii\themsgiii}%
                      \global\let\@relaxORgobble\@gobble}%
                  \else\let\@msgparts@ORnot\@gobble%
                  \fi%
            \fi%
            \catcode`\#=\active
            \@ifnextchar\protect{\expandafter\@gobble@help}{\@msgparts}%
                 }%
\long\def\@msgparts#1{\def\@msg@tempc{\catcode`\#=6%
                                      \def\@msg@tempb{\issuemsg[%
                                           \PackageError{\@msg@pkg}]{7}(msg)%
                                            \endinput}%
                                      \expandafter\@msg@tempb%
                                      }%
         \ifx\msg#1% When #1 is \msg it's sure the previous \msg
             \@msg@tempc% didn't provided the correct arguments.
         \else%
          \ifx\msgheader#1\@msg@tempc% ditto for \msgheader
          \else%
           \ifx\msgtrailer#1\@msg@tempc% ditto for \msgtrailer
           \else%
            \ifx\msgencoding#1\@msg@tempc% ditto for \msgencoding
            \else%
            \@msgparts@ORnot{#1}%
            \fi%
           \fi%
          \fi%
         \fi%
         \@ifnextchar\space{\@gobble}{}% Gobble any superfluous blank.
                     }%
\long\def\@msgparts@#1{\long\def\msgparti##1{\xdef\themsgi{##1}}%
                       \long\def\help##1{\xdef\themsgi{\space help=##1}}%
                       \long\def\helpi##1{\xdef\themsgi{\space help=##1}}%
                       \long\def\msgpartii##1{\xdef\themsgii{##1}}%
                       \long\def\msgpartiii##1{\xdef\themsgiii{##1}}%
                       #1\catcode`\#=6\expandafter\@msg@tempb%
                      }%
\let\@msgencoding\@gobble% Nearly null macro until \AtBeginDocument,
\def\msgencoding#1{\ifx\empty#1\else% just disactive 8bits chars.
                    \let\iterateORI\iterate%
                    \def\@msg@encoding{#1}%
                    \ifx\msg@cmd\issuemsg% If there is not output encoding:
                      \ifx\kbencoding\undefined%\inputencoding{ascii}%
                      \def\@msgenc@loop##1##2{\@tempcnta`##1\relax%
                                              \loop\catcode\@tempcnta=11%
                                               \ifnum\@tempcnta<`##2\relax%
                                               \advance\@tempcnta\@ne%
                                              \repeat}%
                      \@msgenc@loop\^^A\^^H%
                      \@msgenc@loop\^^K\^^K%
                      \@msgenc@loop\^^N\^^_%
                      \@msgenc@loop\^^?\^^ff% 128-255
%%%                     \global\let\@originalkbe\relax%
                      \else%
%%%                     \xdef\@originalkbe{\noexpand\kbencoding{\@kbencoding}}%
                        \let\languagename\msg@languagename%
                        \let\msgidORI\msgid% Save current msgid because
                        \kbencoding{#1}%  it may issue any message.
                        \let\msgid\msgidORI% Now reset it.
                        \@msg@moretrue% Continue file reading.
                      \fi%
                    \else\let\@latex@infoORI\@latex@info%
                         \let\@latex@info\@gobble%
                         \let\endinputBACK\endinput%
                         \let\endinput\endinputORI%
                         \let\msgidORI\msgid% Save current msgid because
                         \@msgencoding{#1}% it may issue any message.
                         \let\msgid\msgidORI% Now reset it.
                         \let\endinput\endinputBACK%
                         \let\@latex@info\@latex@infoORI%
                    \fi\makeatletter%
                    \let\iterate\iterateORI%
                   \fi%
                  }%
\let\@msg@encoding\empty% Unknown current encoding.
\ifx\kbencoding\undefined%
    \AtBeginDocument{\let\@msgencoding\inputencoding}%
    \let\inputencodingORI\inputencoding% Save \inputencoding code
    \def\inputencoding#1{\def\@ieg{#1}\let\exec@ieg\relax% Avoid
                         \ifx\@ieg\@previeg\else% to load twice
                              \def\@previeg{#1}% the same encoding file.
                              \def\exec@ieg{\inputencodingORI\@ieg}%
                         \fi%
                         \exec@ieg%
                        }%
\else%
    \AtBeginDocument{\let\@msgencoding\kbencoding}%
\fi%
\def\msgheader#1{\let\reserved@a\relax%
                 \def\msg@header{#1}\protect\@msgHTsptoken}%
\def\msgtrailer#1{\let\reserved@a\relax%
                  \def\msg@trailer{#1}\protect\@msgHTsptoken}%
\def\@msgHTsptoken{\@ifnextchar\@sptoken{\@msg@gobble@space%
                                         \let\@msg@gobble@space\@gobble}%
                                        {\let\@msg@gobble@space\@gobble}%
                  }%
  \def\issueallmsg{\bgroup\let\@@input@msg@filename\@msginput@usual%
                   \let\msg@cmd\issuemsg%
                   \@ifnextchar[{\i@sueallmsg}{\i@sueallmsg[\issuemsgio]}%]
                  }%
  \def\i@sueallmsg[#1]{\let\@msg@iocmdn#1\i@@ueallmsg}%
  \def\i@@ueallmsg(#1){\def\next{\i@@@eallmsg(#1)}%
                       \long\def\help##1{\xdef\themsgi{\space help=##1}}%
                       \let\if@msgnext\iftrue% begin/continue loop.
              \def\msgid{\@ne\tw@\thr@@\sixt@@n\@cclv}% Set next one wanted.
              \let\prev@msgid\msgid% Save previous id.
                       \i@@@eallmsg(#1)% Go for looping.
                       \let\if@msgnext\iffalse%
                      }%
  \def\i@@@eallmsg(#1){\def\@tempa{\i@@uemsg[\@msg@iocmdn]}%
                       \let\themsg\empty%
                       \expandafter\@tempa\expandafter{\msgid}(#1)[]% Get it.
                       \def\@tempa{\let\if@msgnext\iffalse}%
                       \ifx\prev@msgid\msgid%
                           \@tempa%
                           \let\@@input@msg@filename\@msginput@usual%
                           \issuemsg[\PackageError{msg}]{12}(msg)%
                           \expandafter\stop%
                       \fi%
                       \let\prev@msgid\msgid% Save previous id.
                       \def\@tempa{*}% Check if last one.
                       \ifx\msgid\@tempa%
                            \let\next\egroup% This is the end.
                       \fi%
                       \let\msg@cmd\issuemsg%
                       \next%
                      }%
\ifx\intern@lc@llfrom\undefined% Options aren't declared for internal/kernel calls
  \DeclareOption{message}{\let\issuemsgio\message}% TeX cs.
  \DeclareOption{wlog}{\let\issuemsgio\wlog}% Plain TeX cs.
  \DeclareOption{typeout}{\let\issuemsgio\typeout}% LaTeX cs.
  \DeclareOption{kbtypeout}{\let\issuemsgio\kbtypeout}% Keyboard cs.
\fi%
\ifx\intern@lc@llfrom\undefined% Options aren't declared for internal/kernel calls
  \DeclareOption{tracefiles}{\let\@@input@msg@filename\@msginput@usual}%
\fi%
\ifx\intern@lc@llfrom\undefined% Options aren't declared for internal/kernel calls
  \DeclareOption{noop}{\def\@@input@msg@filename{\xdef\themsg{0}%
            \xdef\themsgi{\string<msg noop\string>\space\msgid}%
                                                }%
                      }%
\fi%
\edef\nativelanguage{french}% This is my native language.
\let\on@lineORI\on@line%
\let\pwhORI\packagewarningheader%
\ifx\intern@lc@llfrom\undefined% Options aren't declared for internal/kernel calls
  \DeclareOption{french}{% Mostly a testing option
                         % or have msg's messages in French.
                         \@msgINfrench}%
\fi%
\def\@msgINfrench{%
     \def\on@line{ (voir le source, ligne \the\inputlineno)}%
     \def\packagewarningheader##1{Extension ##1 : ATTENTION, }%
     \def\msg@languagename{french}}%
\edef\@msg@tempa{french}\ifx\languagename\@msg@tempa\@msgINfrench\fi%
\ifx\intern@lc@llfrom\undefined% Options aren't declared for internal/kernel calls
  \DeclareOption*{% Once a language is provided we should
     \let\on@line\on@lineORI% reset to default.
     \let\packagewarningheader\pwhORI%
     \def\@msg@tempa{native}%
     \ifx\@msg@tempa\CurrentOption%
      \let\msg@languagename\nativelanguage%
     \else%
     \expandafter%
     \ifx\csname l@\CurrentOption\endcsname\relax%
          \def\@msg@tempa{\retrievemsg3(msg)\PackageWarningNoLine{msg}%
                     {\themsg\themsgi\themsgii\themsgiii}}%
     \else\def\@msg@tempa{\edef\msg@languagename{\CurrentOption}}%
     \fi\@msg@tempa%
   \fi%
               }%
\fi%
\ifx\intern@lc@llfrom\undefined% No process of options for internal/kernel calls
  \ProcessOptions% Process options
\fi%
\bgroup% Protect from any setting.
\retrievemsg1(msg)%
\csname msg@MPC\endcsname% required when ltxdoc
\ProvidesPackage{msg}[\themsg]% Issue that message in log file with
\def\@msg@tempa{\retrievemsg{11}(msg)\wlog{\themsg}}% options messages.
\ifx\@@input@msg@filename\@msginput@usual\expandafter\@msg@tempa\fi%
\egroup%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~
%%   And any code from 128 to 255
%%  }
%%
\endinput
%%
%% End of file `msg.sty'.
