%%
%% This is file `amsrefs.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% amsrefs.dtx  (with options: `pkg')
%% 
%%% ====================================================================
%%% @LaTeX-doc-source-file{
%%%   filename  = "amsrefs.dtx",
%%%   version   = "1.01",
%%%   date      = "2000/04/07",
%%%   time      = "14:13:41 EDT",
%%%   author    = "Michael J Downes",
%%%   address   = "American Mathematical Society,
%%%                Publications Technical Group,
%%%                PO Box 6248,
%%%                Providence, RI 02940,
%%%                USA",
%%%   email     = "tech-support@ams.org",
%%%   URL       = "http://www.ams.org/",
%%%   abstract  = "A LaTeX package that permits bibliography style
%%%                to be controlled completely from the LaTeX side
%%%                instead of being determined chiefly by the BibTeX
%%%                style file.",
%%%   checksum  = "13215 2240 8648 73862",
%%%   docstring = "The checksum field, produced by Robert Solovay's
%%%                checksum utility, gives CRC-16 checksum, lines,
%%%                words, and characters.",
%%%  }
%%% ====================================================================
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
%\ProvidesPackage{amsrefs}[2000/04/07 v1.03]
\ProvidesPackage{amsrbeta}[2000/04/07 v1.03]
\begingroup
\edef\c{\number\catcode\string`\`}
\catcode\string`\`=12
\edef\c{%
  \endgroup
  \noexpand\AtEndOfPackage{%
    \catcode\number`\==\number\catcode`\=
    \catcode\number`\:=\number\catcode`\:
    \catcode\number`\`=\c\relax
  }%
  \catcode\number`\`=12
}
\c \catcode`\'12 \catcode`\=12 \catcode`\:12
\let\@xp=\expandafter
\let\@nx=\noexpand
\long\def\@ifempty#1{\@xifempty#1@@..\@nil}
\long\def\@xifempty#1#2@#3#4#5\@nil{%
  \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi}
\long\def\@ifnotempty#1{\@ifempty{#1}{}}
\@ifundefined{@emptytoks}{\csname newtoks\endcsname\@emptytoks}{}
\def\addto@macro#1#2{\@xp\def\@xp#1\@xp{#1#2}}
\let\star@char=*
\def\star@#1#2{%
  \def\star@a##1{#1}\def\star@b{#1{#2}}%
  \futurelet\@let@token\star@test
}
\def\star@test{%
  \ifx\@let@token\star@char \let\star@b\star@a\fi
  \star@b
}
\RequirePackage{ifoption}[2000/02/15]
\DeclareExclusiveOptions{*sorted,*citation-order}
\DeclareExclusiveOptions{alphabetic,author-year,numeric}
\DeclareBooleanOption{short-journals}
\DeclareBooleanOption{short-months}
\DeclareBooleanOption{initials}
\DeclareExclusiveOptions{traditional-quotes,logical-quotes}
\DeclareExclusiveOptions{sorted-cites,non-sorted-cites}
\DeclareExclusiveOptions{non-compressed-cites,compressed-cites}
\DeclareBooleanOption{jpa}
\DeclareBooleanOption{backrefs}
\def\amsrefs@verbose{01}
\DeclareOption{?}{\def\amsrefs@verbose{00}}
\DeclareOption{beta}{}
\ExecuteOptions{numeric,*sorted,traditional-quotes,%
  sorted-cites,compressed-cites}
\ProcessOptions\relax
\ProcessExclusiveOptions
\IfOption{beta}{}{%
  \PackageWarningNoLine{amsrefs}{%
    Option `beta' should be used with this beta release}%
}
%\RequirePackage{rkeyval}[2000/02/02]
\RequirePackage{rkvbeta}[2000/02/02]
\RequirePackage{inicap}[2000/02/02]
\newenvironment{biblist}[1][]{%
  \normalfont \footnotesize \labelsep .5em\relax
  \list{\@biblabel{\thebib}}{%
    \resetbiblist{00}%
    \usecounter{bib}}%
    \sloppy
  \interlinepenalty\@m  \clubpenalty\@M \widowpenalty\clubpenalty
  \frenchspacing
  #1\relax
}{%
  \def\@noitemerr{\@latex@warning{Empty bibliography list}}%
  \endlist
}
\def\@biblabel#1{[#1]}
\newcommand{\resetbiblist}[1]{%
  \settowidth\labelwidth{\@biblabel{#1}}%
  \leftmargin\labelwidth \advance\leftmargin\labelsep
}
\def\bib@start#1{%
  \begingroup
  \let\@elt\relax % work around a LaTeX output routine bug
  \item\leavevmode
}
\def\bib@end{\relax
  \par\endgroup
}
\providecommand{\name}{}
\DefineAdditiveKey{bib}{author}{\name}
\DefineAdditiveKey{bib}{editor}{\name}
\DefineSimpleKey{bib}{title}
\DefineSimpleKey{bib}{subtitle}
\DefineSimpleKey{bib}{booktitle}
\DefineSimpleKey{bib}{series}
\DefineSimpleKey{bib}{conference}
\DefineSimpleKey{bib}{publisher}
\DefineSimpleKey{bib}{organization}
\DefineSimpleKey{bib}{institution}
\DefineSimpleKey{bib}{address}
\DefineSimpleKey{bib}{place}
\DefineSimpleKey{bib}{year}
\DefineSimpleKey{bib}{date}
\DefineSimpleKey{bib}{journal}
\DefineSimpleKey{bib}{volume}
\DefineSimpleKey{bib}{number}
\DefineSimpleKey{bib}{pages}
\DefineSimpleKey{bib}{part}
\DefineAdditiveKey{bib}{isbn}{\isbn}
\DefineSimpleKey{bib}{issn}
\DefineSimpleKey{bib}{doi}
\DefineAdditiveKey{bib}{review}{\review}
\DefineSimpleKey{bib}{status}
\DefineSimpleKey{bib}{eprint}
\DefineSimpleKey{bib}{preprint}
\DefineSimpleKey{bib}{language}
\DefineSimpleKey{bib}{note}
\DefineSimpleKey{bib}{xid}
\DefineSimpleKey{bib}{label}
\DefineSimpleKey{bib}{type}
\DefineSimpleKey{bib}{edition}
\DefineSimpleKey{bib}{setup}
\DefineDummyKey{bib}{transition}
\newcommand{\bib}[3][]{%
  \begingroup
  \toks@{#1}%
  \def\@tempa{#2}%
  \edef\@tempb{%
    \@nx\@bibdef\@xp\@nx\csname setbib@#3\endcsname{\the\toks@}{#3}%
      {\@xp\strip@prefix\meaning\@tempa}%
  }%
  \@tempb
}
\let\biblio@list\@empty
\newcounter{bib}
\def\amsrefs@nocomma{\PackageWarning{amsrefs}{%
  Missing comma: some text might print incorrectly\MessageBreak}}
\def\@bibdef#1#2#3#4{%
  \ifx\relax#1%
    \PackageError{amsrefs}{Undefined entry type: #3}\@ehc
    \let#1\setbib@misc
  \fi
  \RestrictedSetKeys[\amsrefs@nocomma]{bib}%
    {\bib@exec{#4}{\the\rsk@toks}{#1}{#2}\endgroup}%
}
\begingroup \catcode`\'=11
\gdef\bib@field@patches{%
  \let\bib@author\bib'author
  \let\bib@editor\bib'editor
  \let\bib@date\bib'date
  \ifx\bib@date\@empty \let\bib@date\bib'year \fi
  \bib@parsedate
  \let\bib@language\bib'language
  \ifx\bib@language\@empty \let\bib@language\biblanguagedefault \fi
  \ifx\bib'place\@empty \let\bib'place\bib'address\fi
  \bib'setup
}
\endgroup
\def\bib@bibcite#1#2#3{%
  \@cons\biblio@list{{#1}}%
  \if\numeric@refs
    \stepcounter{bib}%
    \protected@edef\@currentlabel{\@nx\@nx\@nx\cite@x{\thebib}{}}%
  \else
    #2% execute definitions locally
    \bib@field@patches
    \def\@currentlabel{\@nx\cite@x{\bib@year}{\bib@author}}%
    \let\name\relax
  \fi
  \protected@edef\@tempa{\protect\bibcite{#1}{\@currentlabel}}%
  \@tempa
}
\def\bib@print#1#2#3#4{%
  \alpha@label{#4}%
  \bib@start{#1}%
  #2\bib@field@patches
  \bib@cite{#1}\kern\@ne sp\relax
  #3%
  \bib@end
}
\let\bib@exec\bib@bibcite
\AtBeginDocument{\let\bib@exec\bib@print}
\IfOption{author-year}{%
  \def\cite@label{%
    \ifx\bib@author\@empty \bib@editor \else \bib@author \fi
  }%
}{%
  \def\cite@label{\@currentlabel}%
}

\IfOption{alphabetic}{%
  \def\alpha@label{\def\thebib}%
}{%
  \let\alpha@label\@gobble
}
\def\bib@cite@check#1#2#3#4#5#6\@nil#7{%
  \ifodd0#2\relax
    \PackageWarning{amsrefs}{%
      Duplicate use of \protect\bib\space key `#7'\MessageBreak}%
  \else
    \@xp\gdef\csname b@#7\endcsname{\citeselect #11{#3}{#4}{#5}}%
  \fi
}
\def\bib@cite#1{%
  \protected@write\@auxout {\def\name{\protect\name}}{%
    \protect\bibcite{#1}{%
      \protect\citeselect 00{\cite@label}{\bib@year}{}}%
  }%
  \@ifundefined{b@#1}{%
    \protected@edef\@tempa{%
      \gdef\@xp\@nx\csname b@#1\endcsname{%
        \protect\citeselect  01{\cite@label}{\bib@year}%
      }%
    }
    \@tempa
  }{%
    \begingroup
    \let\citeselect\bib@cite@check
    \csname b@#1\endcsname 00xxx\@nil{#1}%
    \endgroup
  }%
}
\let\@@testdef\@testdef
\def\@testdef #1{%
  \if b\@car#1x\@nil \@xp\test@bibcite
  \else \@xp\@@testdef
  \fi
  {#1}%
}
\def\test@bibcite#1#2#3{%
  \@xp\@xp\@xp\test@bibcite@a\csname b@#2\endcsname #3\@nil
}
\def\test@bibcite@a#1#2#3#4\citeselect#5#6#7\@nil{%
  \def\reserved@a{#4}\def\reserved@b{#7}%
  \ifx\reserved@a\reserved@b \else\@tempswatrue \fi
}
\def\printbibliography{%
  \bibsection
  \begin{biblist}%
  \let\@elt\bib@print
  \biblio@list
  \end{biblist}%
}
\renewenvironment{thebibliography}[1]{%
  \bibsection
  \biblist[\resetbiblist{#1}]%
}{%
  \endbiblist
}
\providecommand{\bibname}{Bibliography}
\@ifundefined{chapter}{%
  \newcommand{\bibsection}{\section*{\bibname}}%
}{%
  \newcommand{\bibsection}{\chapter*{\bibname}}%
}
\def\SwapBreak#1{%
  \@tempcnta\@MM
  \ifhmode
    \unskip
    \ifnum\lastpenalty=\z@
    \else \@tempcnta\lastpenalty \unpenalty
    \fi
  \fi
  \toks@{#1}%
  \edef\@tempa{%
    \@nx\deferredquoteslogical
    \ifnum\lastkern=\@ne
    \else
      \ifnum\spacefactor=\sfcode\@xp\@xp\@xp`\@xp\@car\string#1)\@nil
      \else \the\toks@
      \fi
    \fi
    \@nx\deferredquotes
    \ifnum\@tempcnta=\@MM \else \penalty\number\@tempcnta\space\fi
    \ifnum\lastkern=\@ne \ignorespaces \fi
  }%
  \@tempa
}
\newcount\series@index
\def\PrintSeries#1#2#3#4#5#6#7#8{%
  \begingroup
  \def\series@add@a{#2}%
  \def\series@add@b{\SwapBreak{#3}#4}%
  \def\series@add@c{\SwapBreak{#5}#6}%
  \def\series@add@d{\SwapBreak{#7}#8}%
  \PrintSeries@a{#1}%
}
\newcommand{\SingularPlural}[2]{#1}
\newcommand{\Plural}{\SingularPlural{}}
\def\PrintSeries@a#1#2#3#4{%
  \series@index\z@ \def#1{\advance\series@index\@ne \@gobble}%
  #3\relax
  \ifnum\series@index=\@ne \let\SingularPlural\@firstoftwo
  \else \let\SingularPlural\@secondoftwo
  \fi
  \chardef\series@total=\series@index \series@index=\z@
  \let#1\series@add
  #2#3#4\relax
  \endgroup
}
\def\series@add#1{%
  \advance\series@index\@ne
  \let\@tempa\relax
  \ifcase\series@index
  \or % material before name 1
    \let\@tempa\series@add@a
  \or % material before name 2
    \ifnum\series@total<\thr@@ \let\@tempa\series@add@b
    \else \let\@tempa\series@add@c
    \fi
  \else % material before name 3, 4, 5, ...
    \ifnum\series@index<\series@total \let\@tempa\series@add@c
    \else \let\@tempa\series@add@d
    \fi
  \fi
  \@tempa{#1}%
}
\def\bib@append#1#2#3{%
  \ifx\@empty#3\relax
  \else
    \ifx\relax#2\errmessage{#3=\relax}\fi
    \@temptokena{\SwapBreak{#1}#2}\toks@\@xp{#3}%
    \edef\@tempa{\the\@temptokena{\the\toks@}}%
    \@xp\@tempa
  \fi
  \relax
}
\let\endbracket\@empty
\let\bracket@stack\@empty
\def\push@bracket#1{%
  \xdef\bracket@stack{#1\bracket@stack}%
}
\def\pop@bracket{\iffalse{\fi
  \@xp\pop@bracket@a\bracket@stack \@empty}}
\def\pop@bracket@a#1{\leavevmode\/\upn{#1}\xdef\bracket@stack{\iffalse}\fi}
\providecommand{\upn}[1]{#1}
\newcommand{\parenthesize}[1]{%
  \leavevmode\push@bracket)\upn{(}#1\pop@bracket
}
\let\deferredquotes\@empty
\IfOption{logical-quotes}{%
  \def\deferredquoteslogical{\deferredquotes}%
}{%
  \let\deferredquoteslogical\relax
}
\newcommand{\bibquotes}[1]{%
  \textquotedblleft#1%
  \gdef\deferredquotes{%
    \global\let\deferredquotes\@empty \textquotedblright
  }%
}
\providecommand{\mdash}{\textemdash}
\providecommand{\ndash}{\textendash}
\providecommand{\MRhref}[1]{}
\@ifundefined{@addpunct}{%
  \def\@addpunct#1{%
    \relax\ifhmode\unskip\ifnum\spacefactor>\@m \else#1\fi\fi
  }
  \def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004%
    \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 }
}{}
\providecommand{\nopunct}{\spacefactor 1005 }
\def\bibspec@scan#1#2#3#4{%
  \toks@\@xp{\the\toks@\bib@append{#1}{#2}}%
  \edef\@tempa{%
    \toks@{\the\toks@ \@xp\@nx\csname bib'#3\endcsname}%
  }%
  \@tempa
  \ifx\@empty#4\@xp\@gobble % end the recursion
  \else \ifx +#4\else\bibspec@scan@error\fi
  \fi
  \bibspec@scan
}
\newcommand{\bibspec}[2]{%
  \toks@\@emptytoks
  \@ifnextchar{+}{\@xp\bibspec@scan\@gobble}{\bibspec@scan}#2%
    \@empty\@empty\@empty\@empty
  \@xp\edef\csname setbib@#1\endcsname{\the\toks@}%
}
\IfOption{initials}{%
  \def\set@forenames#1#2 #3{%
    \ignorespaces#1. \ifx\@empty#3\@xp\@gobbletwo\fi \set@forenames#3%
  }
}{%
  \def\set@forenames{\ignorespaces}
}
\def\uninvertName#1{\rnscan@a#1,,,\@nil}
\def\rnscan@a#1,#2,#3,#4\@nil{%
  \set@forenames#2 \@empty#1\unskip
  \@ifnotempty{#3}{, \ignorespaces #3}}
\def\UninvertedNames{%
  \PrintSeries{\name}%
    {\uninvertName}%
    {}{ and \uninvertName}%
    {,}{ \uninvertName}%
    {,}{ and \uninvertName}%
}
\newcommand{\aulist}[1]{\UninvertedNames{}{#1}{}}
\providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}
\newcommand{\sameauthors}[1]{\bysame}
\def\PreviousAuthors{\relax}
\newcommand{\PrintAuthors}{%
  \ifx\PreviousAuthors\bib@author \@xp\sameauthors
  \else
    \global\let\PreviousAuthors\bib@author
    \@xp\aulist
  \fi
}
\newcommand{\PrintEditorsA}[1]{%
  \UninvertedNames{}{#1}{ (ed\Plural{s}.)}%
}
\newcommand{\PrintEditorsB}[1]{%
  \UninvertedNames{(}{#1}{\SwapBreak{,} ed\Plural{s}.)}%
}
\newcommand{\ReviewList}[1]{%
  \PrintSeries{\review}{}{,}{ }{,}{ }{,}{ }{}{#1}{}%
}
\newcommand{\voltext}{vol.~}
\newcommand{\pptext}[1]{%
  p\pp@scan@a#1@\ndash p@\ndash{\pp@scan#1@-p@-{}\@nil}\@nil.~#1%
}
\def\pp@scan#1-#2@-#3#4\@nil{#3}
\def\pp@scan@a#1\ndash#2@\ndash#3#4\@nil{#3}
\newcommand{\eprintpages}[1]{%
  #1\IfEmptyBibField{eprint}{}{\IfEmptyBibField{journal}{ pp.}{}}%
}
\def\ISSNlookup#1{%
  \@ifnotempty{#1}{%
    \ISSN@lu#1\@nil{#1}%
  }%
}
\def\ISSN@lu#1#2\@nil#3{%
  \def\@tempa{#3}%
  \ifcat A\@nx#1%
    \lowercase{\if#1}#1%
        \def\@tempb##1<#3>##2##3\@nil{\def\@tempc{##2}}%
      \@xp\@tempb\ISSN@list<#3>{}\@nil
      \ifx\@tempc\@empty \arf@unknown{journal}{#3}%
      \else \let\@tempa\@tempc
      \fi
    \fi
  \fi
  \@tempa
}
\def\arf@unknown#1#2{%
  \toks@{#2}%
  \PackageWarning{amsrefs}{Unknown #1 abbreviation '\the\toks@'}%
}
\def\PublisherLookup#1{\Publ@LU#1?\@nil{#1}}
\def\Publ@LU#1#2\@nil#3{%
  \ifcat A\@nx#1%
    \lowercase{\if#1}#1%
      \lowercase{\uppercase{\csname PN}.#3}\endcsname
    \else
      #3%
    \fi
  \fi
}
\def\biblanguageEnglish{English}
\let\biblanguagedefault\biblanguageEnglish
\edef\amsrefs@tmp{\catcode\number`\'=\number\catcode`\'\relax}
\catcode`\'=11
\newcommand{\EnglishInitialCaps}[1]{%
  \ifx\@empty\bib'language \let\bib'language\biblanguagedefault\fi
  \ifx\bib'language\biblanguageEnglish \inicap{#1}\fi
}
\amsrefs@tmp
\def\PrintThesisType#1{%
  \thesis@type#1?\@nil{#1}%
}
\def\thesis@type#1#2\@nil#3{%
  \ifx p#1Ph.D. Thesis%
  \else\ifx m#1Master's Thesis%
  \else #3\fi\fi
}
\newcommand{\BibField}[1]{\csname bib'#1\endcsname}
\newcommand{\IfEmptyBibField}{\rkvIfEmpty{bib}}
\newcommand{\PrintDOI}[1]{%
  DOI #1%
  \IfEmptyBibField{volume}{, (to appear in print)}{}%
}
\def\bib@parsedate{%
  \@xp\bib@parsedate@a\bib@date ---\@nil
}
\let\bib@year\@empty
\let\bib@month\@empty
\let\bib@day\@empty
\begingroup \catcode`\'=11
\gdef\bib@parsedate@a#1-#2-#3-#4\@nil{%
  \def\bib@year{#1}\def\bib@month{#2}\def\bib@day{#3}%
  \ifx\@empty\bib@month \let\bib'date\bib@year
  \else \def\bib'date{#1-#2-#3}%
  \fi
}
\endgroup
\newcommand{\PrintDatePV}[1]{%
  \IfEmptyBibField{doi}{\let\@tempa\PrintDate}{%
    \IfEmptyBibField{volume}{\let\@tempa\PrintDatePosted}{%
      \let\@tempa\PrintDate}}%
  \@tempa{#1}%
}
\newcommand{\PrintDate}[1]{(\print@date)}
\def\print@date{%
  \ifx\bib@month\@empty \else\print@month@day \fi
  \bib@year
}
\def\print@month@day{%
  \ifcase 0\bib@month\ignorespaces
  \or January\or February\or March\or April\or May\or June\or
      July\or August\or September\or October\or November\or December\or
      Winter\or Spring\or Summer\or Fall\else Unknown Month%
  \fi
  \ifx\@empty\bib@day \else \space\number 0\bib@day,\fi
  \space
}
\newcommand{\PrintYear}[1]{\bib@year}
\newcommand{\PrintDatePosted}[1]{\unskip,  posted on \print@date}
\newcommand{\CardinalNumeric}[1]{%
  \number#1\relax
  \if\ifnum#1<14 \ifnum#1>\thr@@ T\else F\fi\else F\fi T%
    th%
  \else
    \@xp\keep@last@digit\@xp#1\number#1\relax
    \ifcase#1th\or st\or nd\or rd\else th\fi
  \fi
}
\def\keep@last@digit#1#2{%
  \ifx\relax#2\@xp\@gobbletwo
  \else #1=#2\relax
  \fi
  \keep@last@digit#1%
}
\newcommand{\PrintEdition}[1]{%
  \afterassignment\print@edition
  \count@ 0#1\relax\@nil
}
\newcommand{\editiontext}{ed.}
\def\print@edition#1#2\@nil{%
  \ifx\relax#1\relax
    \ifnum\count@>\z@ \CardinalNumeric\count@
    \else ??th%
    \fi
    \ \editiontext
  \else \ifnum\count@>\z@\number\count@\fi #1#2\relax
  \fi
}
\newcommand{\intersentencespace}{{\spacefactor3000} }
\newcommand{\eprint}[1]{#1}
\bibspec{article}{%
  +{}{\PrintAuthors}       {author}
  +{,}{ \textit}      {title}
  +{:}{ \textit}      {subtitle}
  +{.}{ }             {part}
  +{,}{ \ISSNlookup}  {journal}
  +{} { \textbf}      {volume}
  +{} { \PrintDatePV} {date}
  +{,}{ \PrintDOI}    {doi}
  +{,}{ \eprint}      {eprint}
  +{} { \parenthesize}{status}
  +{,}{ \eprintpages} {pages}
  +{,}{ }             {note}
  +{.}{}              {transition}
  +{} {\intersentencespace \ReviewList}   {review}
}
\bibspec{book}{%
  +{}{\PrintAuthors}{author}
  +{}{\PrintEditorsA}{editor}
  +{,}{ \textit}{title}
  +{:}{ \textit}{subtitle}
  +{,}{ }{type}
  +{,}{ \EnglishInitialCaps}{booktitle}
  +{,}{ \PrintEdition}{edition}
  +{,}{ }{series}
  +{,}{ vol.~}{volume}
  +{,}{ part~}{part}
  +{,}{ \PublisherLookup}{publisher}
  +{,}{ }{organization}
  +{,}{ }{place}
  +{,}{ }{date}
  +{,}{ ISBN }{isbn}
  +{}{ \parenthesize}{status}
  +{,}{ }{note}
  +{.}{}{transition}
  +{}{\intersentencespace \ReviewList}{review}
}
\bibspec{incollection}{%
  +{}{\PrintAuthors}{author}
  +{,}{ \textit}{title}
  +{:}{ \textit}{subtitle}
  +{,}{ }{type}
  +{,}{ \EnglishInitialCaps}{booktitle}
  +{,}{ \PrintEdition}{edition}
  +{}{ \PrintEditorsB}{editor}
  +{,}{ Proc.\ }{conference}
  +{,}{ }{series}
  +{,}{ vol.~}{volume}
  +{,}{ part~}{part}
  +{,}{ \PublisherLookup}{publisher}
  +{,}{ }{organization}
  +{,}{ }{place}
  +{,}{ }{date}
  +{,}{ \pptext}{pages}
  +{,}{ ISBN }{isbn}
  +{}{ \parenthesize}{status}
  +{,}{ }{note}
  +{.}{}{transition}
  +{}{\intersentencespace \ReviewList}{review}
}
\let\setbib@inproceedings\setbib@incollection
\let\setbib@booktitle\setbib@incollection
\let\setbib@misc\setbib@book
\let\setbib@unpublished\setbib@book
\bibspec{techreport}{%
  +{}{\PrintAuthors}{author}
  +{}{\PrintEditorsA}{editor}
  +{,}{ \textit}{title}
  +{:}{ \textit}{subtitle}
  +{,}{ }{type}
  +{,}{ \EnglishInitialCaps}{booktitle}
  +{,}{ Technical Report }{number}
  +{,}{ }{series}
  +{,}{ vol.~}{volume}
  +{,}{ part~}{part}
  +{,}{ \PublisherLookup}{publisher}
  +{,}{ }{organization}
  +{,}{ }{institution}
  +{,}{ }{place}
  +{,}{ }{date}
  +{,}{ ISBN }{isbn}
  +{,}{ \eprint}      {eprint}
  +{}{ \parenthesize}{status}
  +{,}{ }{note}
  +{.}{}{transition}
  +{}{\intersentencespace \ReviewList}{review}
}
\bibspec{thesis}{%
  +{}{\PrintAuthors}{author}
  +{}{\PrintEditorsA}{editor}
  +{,}{ \textit}{title}
  +{:}{ \textit}{subtitle}
  +{,}{ \PrintThesisType}{type}
  +{,}{ part~}{part}
  +{,}{ }{organization}
  +{,}{ }{institution}
  +{,}{ }{place}
  +{,}{ }{date}
  +{}{ \parenthesize}{status}
  +{,}{ }{note}
  +{.}{}{transition}
  +{}{\intersentencespace \ReviewList}{review}
}
\DeclareRobustCommand{\tsup}[1]{%
  \leavevmode\raise.9ex\hbox{\fontsize\sf@size\z@\selectfont #1}%
}
\DeclareRobustCommand{\tsub}[1]{%
  \leavevmode\lower.6ex\hbox{\fontsize\sf@size\z@\selectfont #1}%
}
\DeclareRobustCommand{\tprime}{\tsup{\usefont{OMS}{cmsy}{m}{n}\char48 }}
\def\citeleft{[}
\def\citeright{]}
\def\citemid{,\penalty9999 \space}
\def\citepunct{,\penalty9999 \hskip.13em plus.1em minus.05em\relax}
\let\citeform\@iden
\def\@citeleft{\citeleft}
\def\citeselect@author#1#2#3#4#5{\UninvertedNames{#3}}
\def\citeselect@authoryear#1#2#3#4#5{\UninvertedNames{#3}, #4}
\def\citeselect@object#1#2#3#4#5{\UninvertedNames{#3} \citeleft#4}
\def\citeselect@year#1#2#3#4#5{#4}
\def\citeselect@key#1#2#3#4#5{#3}
\let\citeselect\citeselect@key
\DeclareRobustCommand{\cite}[1]{\star@{\cite@a\citeselect{#1}}{}}
\def\cite@multiple#1,#2#3\@nil{\ifx\relax#2F\else T\fi T}
\def\MultipleCiteKeyWarning#1{%
  \PackageWarning{amsrefs}{%
    Use of \string\cites\space is recommended\MessageBreak
    instead of \string\cite\space for multiple cites '#1'}%
  \global\let\MultipleCiteKeyWarning\@gobble
}
\def\cite@a#1#2{%
  \begingroup
  \def\@tempa{#2}%
  \toks@{\endgroup \cite@b#1}%
  \edef\@tempa{\the\toks@{\@xp\strip@prefix\meaning\@tempa}}%
  \@tempa
}
\def\cite@b#1#2#3{%
  \if\cite@multiple#2,\relax\@nil
    \MultipleCiteKeyWarning{#2}%
    \cites{#2}%
  \else
    \cite@c#1{#2}{#3}%
  \fi
}
\@ifundefined{@extra@b@citeb}{\let\@extra@b@citeb\@empty}{}
\def\cite@lookup#1{\csname b@#1\@extra@b@citeb\endcsname}
\def\undefined@cite#1{%
  \PackageWarning{amsrefs}{Undefined citation '#1'}%
  \texttt{#1}}
\newcommand{\citedest}[2]{}
\def\cite@c#1#2#3{%
  \begingroup
  \let\citeselect#1\relax
  \@citeleft
  \@xp\@xp\@xp\ifx\cite@lookup{#2}\relax \undefined@cite{#2}%
  \else \cite@lookup{#2}%
  \fi
  \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
  \write\@auxout{\string\citedest{#2}{\thepage}}%
  \@ifnotempty{#3}{\citemid #3}%
  \citeright
  \endgroup
}
\newcommand{\cites}[1]{}
\def\cites#1{\begingroup
  \edef\@tempa{\zap@space#1 \@empty}%
  \edef\@tempa{\@xp\strip@prefix\meaning\@tempa}%
  \edef\@tempa{\endgroup
    \@nx\citelist@a{}{sorted}{%
      \@xp\cites@a\@tempa,{@\csname fi\@car\endcsname},\@nil
    }%
  }%
  \@tempa
}
\def\cites@a#1,{%
  \ifx @#1@\else \@nx\cite@c\@nx\citeselect{#1}{}\fi \cites@a
}
\newcommand{\citelist}{\@ifnextchar <{\citelist@a}{\citelist@a <{sorted}}}%
\def\NonNumericCiteWarning{%
  \PackageWarning{amsrefs}{%
    Unable to confirm that cite keys are numeric: not sorting%
  }%
}
\def\citelist@a#1#2#3{%
  \leavevmode
  \citeleft\nopunct % suppress first \citepunct
  \begingroup
  \def\citeleft{\@addpunct{\citepunct}}\let\citeright\ignorespaces
  \ifx\cite@sorted\relax #3\relax
  \else
    \@xp\ifx\csname cite@#2\endcsname\cite@sorted
      \ifx\citeselect\citeselect@key
        \cite@sorted@s #3\cite@sorted@e
      \else \NonNumericCiteWarning#3\relax
      \fi
    \else #3\relax
    \fi
  \fi
  \endgroup
  \citeright
}
\let\cite@das\@empty
\def\cite@sorted@s{%
  \begingroup \let\cite@print\cite@c
    \let\cite@c\cite@compress
    \begingroup \let\cite@c\cite@sorted \ignorespaces}
\def\cite@sorted@e{%
  \relax \@xp\endgroup\the\cite@toks \last@cite \endgroup
}
\newtoks\cite@toks
\def\cite@sorted#1#2#3{%
  \@tempcnta 0\cite@lookup{#2}\relax % highest number so far
  \cite@toks{\cite@c#1{#2}{#3}}%
  \edef\sort@cite@temp{\the\cite@toks}%
  \let\cite@c\sort@cite@b
  \ignorespaces
}
\def\sort@cite@b#1#2#3{%
  \@tempcntb 0\cite@lookup{#2}\relax
  \ifnum\@tempcntb>\@tempcnta
    \cite@toks\@xp{\the\cite@toks \cite@c#1{#2}{#3}}%
  \else
    \let\cite@c\sort@cite@c \cite@toks\@emptytoks
    \def\@tempb{\cite@toks\@xp{\the\cite@toks\cite@c#1{#2}{#3}}}%
    \sort@cite@temp \@tempb \let\cite@c\sort@cite@b
  \fi
  \edef\sort@cite@temp{\the\cite@toks}%
  \ignorespaces
}
\def\sort@cite@c#1#2#3{%
  \ifnum\@tempcntb<0\cite@lookup{#2}%
    \@tempb \let\@tempb\@empty
  \fi
  \cite@toks\@xp{\the\cite@toks \cite@c#1{#2}{#3}}%
  \ignorespaces
}
\let\last@cite\@empty
\def\cite@compress#1#2#3{%
  \cite@print#1{#2}{#3}\@tempcnta 0\cite@lookup{#2}\relax
  \let\cite@c\cite@compress@a
}
\def\cite@compress@a#1#2#3{%
  \advance\@tempcnta\@ne \@tempcntb 0\cite@lookup{#2}\relax
  \ifnum\@tempcnta=\@tempcntb
    \def\cite@dash{\textendash \nopunct \let\cite@dash\@empty}%
    \def\last@cite{\cite@print#1{#2}{#3}}%
    \let\cite@c\cite@compress@b
  \else
    \cite@print#1{#2}{#3}\@tempcnta\@tempcntb
  \fi
}
\def\cite@compress@b#1#2#3{%
  \advance\@tempcnta\@ne \@tempcntb 0\cite@lookup{#2}\relax
  \ifnum\@tempcnta=\@tempcntb
    \cite@dash
    \def\last@cite{\cite@print#1{#2}{#3}}%
  \else
    \last@cite \let\last@cite\@empty
    \cite@print#1{#2}{#3}\@tempcnta\@tempcntb
    \let\cite@c\cite@compress@a
  \fi
}
\IfOption{unsorted-cites}{\let\cite@sorted\relax}{}
\DeclareRobustCommand{\ycite}[1]{%
  \star@{\cite@a\citeselect@year{#1}}{}%
}
\DeclareRobustCommand{\ycites}{\cites}% not done yet
\DeclareRobustCommand{\ocite}[1]{%
  \star@{\cite@a\citeselect@object{#1}}{}%
}
\DeclareRobustCommand{\ocites}{\cites}% not done yet
\IfOption{author-year}{%
  \let\citeselect\citeselect@authoryear
  \def\citeleft{(}\def\citeright{)}%
  \def\@citeleft{\ifx\citeselect\citeselect@object\else\citeleft\fi}%
  \let\@biblabel\@gobble
}{%
  \let\ycite\cite \let\ocite\cite
  \let\ycites\cites \let\ocites\cites
}
\let\ISSN@list=\@empty
\newcommand{\DefineJournal}[1]{\lowercase{\DefJrn@a{#1}}}
\def\DefJrn@a#1#2#3#4{%
  \def\@tempa##1<#1>##2##3\@nil{%
    \ifx\@empty##3\@empty
    \else
      \PackageWarning{amsrefs}{Redefining journal '#1'->'#2'}%
    \fi
    \toks@{##1<#1>}\@temptokena{##3}%
    \xdef\ISSN@list{%
      \the\toks@\@xp\@nx\csname SN.#2\endcsname\the\@temptokena
    }%
  }%
  \edef\@tempb{%
    \@nx\@xp\@nx\@tempa\@nx\ISSN@list
      <#1>\@xp\@nx\csname SN.#2\endcsname\@nx\@nil
  }%
  \@tempb
  \global\@namedef{SN.#2}{\SerialISSNName{#1}{#3}{#4}}%
  \if\amsrefs@verbose
    \toks@{Journal #1 -> #2 / #3^^J = #4}\typeout{\the\toks@}%
  \fi
}
\newcommand{\SerialName}[3]{#2}
\let\SerialISSNName\SerialName
\newcommand{\DefinePublisher}[1]{%
  \lowercase{\uppercase{\expandafter\DefPub@a\csname PN}.#1}\endcsname{#1}%
}
\def\DefPub@a#1#2#3#4#5{%
  \ifx\relax#1\else
    \PackageWarning{amsrefs}{Redefining publisher '#2'}%
  \fi
  \gdef#1{\PublisherNameAddress{#3}{#4}{#5}}%
  \if\amsrefs@verbose
    \toks@{Publisher #2 -> #3 / #5^^J = #4}\typeout{\the\toks@}%
  \fi
}
\newcommand{\PublisherNameAddress}[3]{%
  #1\IfEmptyBibField{place}{\SwapBreak{,} #3}{}%
}
\IfOption{jpa}{\RequirePackage{amsjpa}[2000/02/02]}{}
\endinput
%%
%% End of file `amsrefs.sty'.
