%%
%% This is file `fontspec.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% fontspec.dtx  (with options: `fontspec')
%% 
%%   ________________________________
%%   The fontspec package for XeLaTeX
%%   (C) 2004, 2005    Will Robertson
%% 
%%   License information appended.
%% 
%% 
\ProvidesPackage{fontspec}[2005/07/15 v1.8a Advanced font selection for XeLaTeX]
\expandafter\ifx\csname XeTeXversion\endcsname\relax
  \@latex@error{^^J
   *************************************************^^J
   *** Sorry!                                       ^^J
   *** The fontspec package only works with XeTeX.  ^^J
   *************************************************}
\fi
\def\zf@enc{U}
\renewcommand\encodingdefault{\zf@enc}
\RequirePackage{keyval}
\newcommand*\fontspec[2][]{%
  \zf@fontspec{#1}{#2}%
  \fontfamily\zf@family\selectfont}
\newcommand*\setromanfont[2][]{%
  \zf@fontspec{#1}{#2}%
  \let\rmdefault\zf@family
  \normalfont}
\newcommand*\setsansfont[2][]{%
  \zf@fontspec{#1}{#2}%
  \let\sfdefault\zf@family
  \normalfont}
\newcommand*\setmonofont[2][]{%
  \zf@fontspec{#1}{#2}%
  \let\ttdefault\zf@family
  \normalfont}
\newcommand*\setmathrm[2][]{%
  \zf@fontspec{#1}{#2}%
  \let\zf@rmmaths\zf@family}
\newcommand*\setboldmathrm[2][]{%
  \zf@fontspec{#1}{#2}%
  \let\zf@rmboldmaths\zf@family}
\newcommand*\setmathsf[2][]{%
  \zf@fontspec{#1}{#2}%
  \let\zf@sfmaths\zf@family}
\newcommand*\setmathtt[2][]{%
  \zf@fontspec{#1}{#2}%
  \let\zf@ttmaths\zf@family}
\@onlypreamble\setmathrm
\@onlypreamble\setboldmathrm
\@onlypreamble\setmathsf
\@onlypreamble\setmathtt
\def\zf@rmmaths{\rmdefault}
\def\zf@sfmaths{\sfdefault}
\def\zf@ttmaths{\ttdefault}
\newcommand*\newfontinstance[1]{%
  \@ifnextchar[{\newfontinstance@i#1}{\newfontinstance@i#1[]}}
\def\newfontinstance@i#1[#2]#3{%
  \zf@fontspec{#2}{#3}%
  \edef\zf@tempinst{\noexpand\fontfamily{\zf@family}\noexpand\selectfont}%
  \let#1\zf@tempinst}
\newcommand*\defaultfontfeatures[1]{\def\zf@default@options{#1}}
\let\zf@default@options\@empty
\newcommand*\addfontfeatures[1]{%
  \let\zf@default@options@old\zf@default@options
  \let\zf@default@options\@empty
  \edef\zf@thisinfo{\csname\f@family\endcsname}%
  \fontspec
    [\expandafter\@firstoftwo\zf@thisinfo, #1]%
    {\expandafter\@secondoftwo\zf@thisinfo}%
  \let\zf@default@options\zf@default@options@old}
\let\addfontfeature\addfontfeatures
\newcounter{newff}
\newcommand*\newfontfeature[2]{%
  \stepcounter{newff}%
  \expandafter\edef\csname +zf-#1\endcsname{+zf-\thenewff}%
  \define@key{zf}{#1}[]{%
    \zf@update@family{\csname +zf-#1\endcsname}%
    \zf@update@ff{#2}}}
\newcommand*\newfeaturecode[3]{%
  \define@key{zf}{#1}[]{\zf@make@feature{#2}{#3}{}}}
\newcommand*\zf@fontspec[2]{%
  \edef\zf@options{#1}%
  \edef\zf@macname{#2}%
  \edef\zf@family{\zap@space #2 \@empty}%
  \zf@set@font@type{#2}%
  \zf@firsttimetrue
    \zf@get@feature@requests
  \zf@firsttimefalse
  \expandafter\ifx\csname\zf@family\endcsname\relax
    \wlog{fontspec: Defining font family for "#2"
          with options [\zf@current@options]}%
    \edef\zf@info{{\zf@current@options}{#2}}%
    \expandafter\let\csname\zf@family\endcsname\zf@info
    \DeclareFontFamily{\zf@enc}{\zf@family}{}%
    \zf@make@font@shapes{#2}{\mddefault}{\updefault}%
    \let\zf@options@old\zf@options
    \def\zf@options{\zf@options@old,\zf@bf@options}%
    \ifx\zf@bf\@empty
      \zf@make@font@shapes[#2]{#2/B}{\bfdefault}{\updefault}%
    \else
      \zf@make@font@shapes\zf@bf\bfdefault\updefault
    \fi
    \let\zf@options\zf@options@old
    \let\zf@options@old\zf@options
    \def\zf@options{\zf@options@old,\zf@it@options}%
    \ifx\zf@it\@empty
      \zf@make@font@shapes[#2]{#2/I}{\mddefault}{\itdefault}%
    \else
      \zf@make@font@shapes\zf@it\mddefault\itdefault
    \fi
    \let\zf@options\zf@options@old
    \let\zf@options@old\zf@options
    \def\zf@options{\zf@options@old,\zf@bfit@options}%
    \ifx\zf@bfit\@empty
      \ifx\zf@bf\@empty
        \ifx\zf@it\@empty
          \zf@make@font@shapes[#2]{#2/BI}{\bfdefault}{\itdefault}%
        \else
          \zf@make@font@shapes[\zf@it]{\zf@it/B}{\bfdefault}{\itdefault}%
        \fi
      \else
        \zf@make@font@shapes[\zf@bf]{\zf@bf/I}{\bfdefault}{\itdefault}%
      \fi
    \else
      \zf@make@font@shapes\zf@bfit\bfdefault\itdefault
    \fi
    \let\zf@options\zf@options@old
  \fi}
\newcommand*\zf@set@font@type[1]{%
  \font\zf@testfont = "#1" at 10pt
  \zf@aatfalse \zf@opentypefalse \zf@mmfalse
  \expandafter\ifnum\XeTeXcountfeatures\zf@testfont > 0
    \zf@aattrue
  \fi
  \expandafter\ifnum\XeTeXOTcountscripts\zf@testfont > 0
    \zf@opentypetrue
  \fi
  \expandafter\ifnum\XeTeXcountvariations\zf@testfont > 0
    \zf@mmtrue
  \fi}
\newif\ifzf@aat \newif\ifzf@opentype \newif\ifzf@mm
\begingroup
  \nfss@catcodes
  \globaldefs=1
  \newcommand*\zf@make@font@shapes[4][]{%
    \ifEqFonts{#1}{#2}\then\else
      \edef\zf@macname{#2}%
      \zf@get@feature@requests
      \ifx\zf@scale\@empty
        \let\zf@scale@str\@empty
      \else
        \edef\zf@scale@str{s*[\zf@scale]}%
      \fi
      \DeclareFontShape{\zf@enc}{\zf@family}{#3}{#4}%
        {<-> \zf@scale@str "#2\zf@suffix:\zf@ff"}{}%
      \zf@test@smallcaps
      \ifx\zf@smallcaps\@empty\else
        \ifx #4\updefault
          \let\zf@scshape\scdefault
        \fi
        \ifx #4\itdefault
          \let\zf@scshape\sidefault
        \fi
        \DeclareFontShape
          {\zf@enc}{\zf@family}{#3}{\zf@scshape}%
          {<-> \zf@scale@str "#2\zf@suffix:\zf@ff\zf@smallcaps"}{}%
      \fi
    \fi}
\endgroup
\newcommand*{\zf@update@family}[1]{%
  \ifzf@firsttime
    \g@addto@macro\zf@family{#1}%
  \fi}
\newif\ifzf@firsttime
\newcommand*\zf@get@feature@requests{%
  \ifzf@firsttime
    \let\zf@scale       \@empty
    \let\zf@suffix      \@empty
    \let\zf@bf          \@empty
    \let\zf@it          \@empty
    \let\zf@bfit        \@empty
    \let\zf@bf@options  \@empty
    \let\zf@it@options  \@empty
    \let\zf@bfit@options\@empty
  \fi
  \let\zf@ff\@empty
  \ifx\zf@default@options\@empty
    \let\zf@current@options\zf@options
  \else
    \edef\zf@current@options{\zf@default@options,\zf@options}%
  \fi
  \edef\zf@process@options
    {\noexpand\setkeys{zf}{\zf@current@options}}%
  \zf@process@options}
\newcommand*\zf@test@smallcaps{%
  \let\zf@smallcaps\@empty
  \ifzf@aat
    \zf@make@aat@feature@string{3}{3}%
    \ifx\zf@thisfontfeature\@empty\else
      \edef\zf@smallcaps{\zf@thisfontfeature;}%
    \fi
  \fi
  \ifzf@opentype
    \font\zf@testfont="\zf@macname" at 10pt
    \count255 = \XeTeXOTcountscripts\zf@testfont
    \ifnum\count255 > 0
      \count255 = 0
      \zf@featurecount = \XeTeXOTcountfeatures\zf@testfont "6C61746E "0
      \loop\ifnum\count255 < \zf@featurecount
        \ifnum\XeTeXOTfeaturetag\zf@testfont "6C61746E "0
          \count255 = "736D6370 % 'smcp'
          \edef\zf@smallcaps{+smcp,}%
          \count255 = \zf@featurecount
        \else
          \advance\count255 by 1
        \fi
      \repeat
    \fi
  \fi}
\newcount\zf@featurecount
\newcommand*\zf@update@ff[1]{%
  \begingroup
    \def\zf@feature@separator{;}%
    \ifzf@opentype
      \def\zf@feature@separator{,}%
    \fi
    \let\@tempa\zf@ff
    \xdef\zf@ff{\@tempa #1\zf@feature@separator}%
  \endgroup}
\newcommand*\zf@make@feature[3]{%
  \ifzf@aat
    \zf@make@aat@feature@string{#1}{#2}%
    \ifx\zf@thisfontfeature\@empty\else
      \zf@update@family{+#1,#2}%
      \zf@update@ff\zf@thisfontfeature
    \fi
  \fi
  \ifzf@opentype
    \zf@update@family{#3}%
    \zf@update@ff{#3}%
  \fi}
\newcommand*\zf@define@font@feature[1]{%
  \define@key{zf}{#1}{{\setkeys{zf@feat@#1}{##1}}}}
\newcommand*\zf@define@feature@option[5]{%
  \define@key{zf@feat@#1}{#2}[]{\zf@make@feature{#3}{#4}{#5}}}
\newcommand*\aliasfeature[2]{%
  \define@key{zf}{#2}{{\setkeys{zf@feat@#1}{##1}}}}
\newcommand*\zf@make@aat@feature@string[2]{%
  \font\zf@fontone="\zf@macname" at 10pt
  \edef\zf@this@featurename{\XeTeXfeaturename\zf@fontone #1}%
  \ifx\zf@this@featurename\@empty
    \let\zf@thisfontfeature\@empty
  \else
    \edef\zf@this@selectionname{\XeTeXselectorname\zf@fontone #1 #2}%
    \ifx\zf@this@selectionname\@empty
      \let\zf@thisfontfeature\@empty
    \else
      \edef\zf@thisfontfeature{%
        \ifnum\XeTeXisexclusivefeature\zf@fontone #1 > 0
          \zf@this@featurename=\zf@this@selectionname
        \else
          \ifodd #2
            \zf@this@featurename=!\zf@this@selectionname
          \else
            \zf@this@featurename=\zf@this@selectionname
          \fi
        \fi}%
    \fi
  \fi}
\let\then\iftrue
\def\ifEqFonts#1#2\then{%
  \ifx#1\@empty\else
    \font\zf@fontone = "#1" at 10pt
    \edef\@tempa{\fontname\zf@fontone}%
  \fi
  \font\zf@fonttwo = "#2" at 10pt
  \edef\@tempb{\fontname\zf@fonttwo}%
  \ifx\@tempa\@tempb}
\define@key{zf}{Bold}{%
  \def\zf@bf{#1}%
  \zf@update@family{bf:\zap@space #1 \@empty}}
\define@key{zf}{Italic}{%
  \def\zf@it{#1}%
  \zf@update@family{it:\zap@space #1 \@empty}}
\define@key{zf}{BoldItalic}{%
  \def\zf@bfit{#1}%
  \zf@update@family{bfit:\zap@space #1 \@empty}}
\define@key{zf}{BoldFont}{%
  \def\zf@bf{#1}%
  \zf@update@family{bf:\zap@space #1 \@empty}}
\define@key{zf}{ItalicFont}{%
  \def\zf@it{#1}%
  \zf@update@family{it:\zap@space #1 \@empty}}
\define@key{zf}{BoldItalicFont}{%
  \def\zf@bfit{#1}%
  \zf@update@family{bfit:\zap@space #1 \@empty}}

\define@key{zf}{BoldFeatures}{%
  \def\zf@bf@options{#1}%
  \zf@update@family{bffeat:\zap@space #1 \@empty}}
\define@key{zf}{ItalicFeatures}{%
  \def\zf@it@options{#1}%
  \zf@update@family{itfeat:\zap@space #1 \@empty}}
\define@key{zf}{BoldItalicFeatures}{%
  \def\zf@bfit@options{#1}%
  \zf@update@family{bfitfeat:\zap@space #1 \@empty}}
\define@key{zf}{Scale}{%
  \zf@update@family{+scale:#1}%
  \edef\zf@scale{#1}}
\define@key{zf}{Colour}{%
  \zf@update@family{+col:#1}%
  \zf@update@ff{color=#1}}
\define@key{zf}{Color}{%
  \zf@update@family{+col:#1}%
  \zf@update@ff{color=#1}}
\define@key{zf}{Mapping}{%
  \zf@update@family{+map:#1}%
  \zf@update@ff{mapping=#1}}
\define@key{zf}{Weight}{%
  \zf@update@family{+weight:#1}%
  \zf@update@ff{weight=#1}}
\define@key{zf}{Width}{%
  \zf@update@family{+width:#1}%
  \zf@update@ff{width=#1}}
\define@key{zf}{OpticalSize}{%
  \ifzf@opentype
    \g@addto@macro\zf@suffix{/S=#1}%
    \zf@update@family{+size:#1}
  \fi
  \ifzf@mm
    \zf@update@family{+size:#1}%
    \zf@update@ff{optical size=#1}
  \fi
  \ifzf@opentype\else
    \ifzf@mm\else
      \ifzf@firsttime
      \PackageWarning{fontspec}{\zf@macname doesn't appear to have an Optical Size axis}
      \fi
    \fi
  \fi}
\define@key{zf}{Script}{\ifzf@opentype\bgroup\setkeys{zf@scpt}{#1}\egroup\fi}
\newcommand*\zf@make@scpt@feature[2]{%
  \define@key{zf@scpt}{#1}[]{%
    \zf@update@family{+scpt:#2}%
    \zf@update@ff{script=#2}}}
\zf@make@scpt@feature{Arabic}{arab}
\zf@make@scpt@feature{Armenian}{armn}
\zf@make@scpt@feature{Balinese}{bali}
\zf@make@scpt@feature{Bengali}{beng}
\zf@make@scpt@feature{Bopomofo}{bopo}
\zf@make@scpt@feature{Braille}{brai}
\zf@make@scpt@feature{Buginese}{bugi}
\zf@make@scpt@feature{Buhid}{buhd}
\zf@make@scpt@feature{Byzantine Music}{byzm}
\zf@make@scpt@feature{Canadian Syllabics}{cans}
\zf@make@scpt@feature{Cherokee}{cher}
\zf@make@scpt@feature{CJK}{hani}
\zf@make@scpt@feature{CJK Ideographic}{hani}
\zf@make@scpt@feature{Coptic}{copt}
\zf@make@scpt@feature{Cypriot Syllabary}{cprt}
\zf@make@scpt@feature{Cyrillic}{cyrl}
\zf@make@scpt@feature{Default}{DFLT}
\zf@make@scpt@feature{Deseret}{dsrt}
\zf@make@scpt@feature{Devanagari}{deva}
\zf@make@scpt@feature{Ethiopic}{ethi}
\zf@make@scpt@feature{Georgian}{geor}
\zf@make@scpt@feature{Glagolitic}{glag}
\zf@make@scpt@feature{Gothic}{goth}
\zf@make@scpt@feature{Greek}{grek}
\zf@make@scpt@feature{Gujarati}{gujr}
\zf@make@scpt@feature{Gurmukhi}{guru}
\zf@make@scpt@feature{Hangul Jamo}{jamo}
\zf@make@scpt@feature{Hangul}{hang}
\zf@make@scpt@feature{Hanunoo}{hano}
\zf@make@scpt@feature{Hebrew}{hebr}
\zf@make@scpt@feature{Hiragana and Katakana}{kana}
\zf@make@scpt@feature{Kana}{kana}
\zf@make@scpt@feature{Javanese}{java}
\zf@make@scpt@feature{Kannada}{knda}
\zf@make@scpt@feature{Kharosthi}{khar}
\zf@make@scpt@feature{Khmer}{khmr}
\zf@make@scpt@feature{Lao}{lao }
\zf@make@scpt@feature{Latin}{latn}
\zf@make@scpt@feature{Limbu}{limb}
\zf@make@scpt@feature{Linear B}{linb}
\zf@make@scpt@feature{Malayalam}{mlym}
\zf@make@scpt@feature{Math}{math}
\zf@make@scpt@feature{Maths}{math}
\zf@make@scpt@feature{Mongolian}{mong}
\zf@make@scpt@feature{Musical Symbols}{musc}
\zf@make@scpt@feature{Myanmar}{mymr}
\zf@make@scpt@feature{N'ko}{nko }
\zf@make@scpt@feature{Ogham}{ogam}
\zf@make@scpt@feature{Old Italic}{ital}
\zf@make@scpt@feature{Old Persian Cuneiform}{xpeo}
\zf@make@scpt@feature{Oriya}{orya}
\zf@make@scpt@feature{Osmanya}{osma}
\zf@make@scpt@feature{Phags-pa}{phag}
\zf@make@scpt@feature{Phoenician}{phnx}
\zf@make@scpt@feature{Runic}{runr}
\zf@make@scpt@feature{Shavian}{shaw}
\zf@make@scpt@feature{Sinhala}{sinh}
\zf@make@scpt@feature{Sumero-Akkadian Cuneiform}{xsux}
\zf@make@scpt@feature{Syloti Nagri}{sylo}
\zf@make@scpt@feature{Syriac}{syrc}
\zf@make@scpt@feature{Tagalog}{tglg}
\zf@make@scpt@feature{Tagbanwa}{tagb}
\zf@make@scpt@feature{Tai Le}{tale}
\zf@make@scpt@feature{Tai Lu}{talu}
\zf@make@scpt@feature{Tamil}{taml}
\zf@make@scpt@feature{Telugu}{telu}
\zf@make@scpt@feature{Thaana}{thaa}
\zf@make@scpt@feature{Thai}{thai}
\zf@make@scpt@feature{Tibetan}{tibt}
\zf@make@scpt@feature{Tifinagh}{tfng}
\zf@make@scpt@feature{Ugaritic Cuneiform}{ugar}
\zf@make@scpt@feature{Yi}{yi  }

\define@key{zf}{Language}{\ifzf@opentype\bgroup\setkeys{zf@lang}{#1}\egroup\fi}
\newcommand*\zf@make@lang@feature[2]{%
  \define@key{zf@lang}{#1}[]{%
    \zf@update@family{+lang:#2}%
    \zf@update@ff{language=#2}}}
\zf@make@lang@feature{Abaza}{ABA}
\zf@make@lang@feature{Abkhazian}{ABK}
\zf@make@lang@feature{Adyghe}{ADY}
\zf@make@lang@feature{Afrikaans}{AFK}
\zf@make@lang@feature{Afar}{AFR}
\zf@make@lang@feature{Agaw}{AGW}
\zf@make@lang@feature{Altai}{ALT}
\zf@make@lang@feature{Amharic}{AMH}
\zf@make@lang@feature{Arabic}{ARA}
\zf@make@lang@feature{Aari}{ARI}
\zf@make@lang@feature{Arakanese}{ARK}
\zf@make@lang@feature{Assamese}{ASM}
\zf@make@lang@feature{Athapaskan}{ATH}
\zf@make@lang@feature{Avar}{AVR}
\zf@make@lang@feature{Awadhi}{AWA}
\zf@make@lang@feature{Aymara}{AYM}
\zf@make@lang@feature{Azeri}{AZE}
\zf@make@lang@feature{Badaga}{BAD}
\zf@make@lang@feature{Baghelkhandi}{BAG}
\zf@make@lang@feature{Balkar}{BAL}
\zf@make@lang@feature{Baule}{BAU}
\zf@make@lang@feature{Berber}{BBR}
\zf@make@lang@feature{Bench}{BCH}
\zf@make@lang@feature{Bible Cree}{BCR}
\zf@make@lang@feature{Belarussian}{BEL}
\zf@make@lang@feature{Bemba}{BEM}
\zf@make@lang@feature{Bengali}{BEN}
\zf@make@lang@feature{Bulgarian}{BGR}
\zf@make@lang@feature{Bhili}{BHI}
\zf@make@lang@feature{Bhojpuri}{BHO}
\zf@make@lang@feature{Bikol}{BIK}
\zf@make@lang@feature{Bilen}{BIL}
\zf@make@lang@feature{Blackfoot}{BKF}
\zf@make@lang@feature{Balochi}{BLI}
\zf@make@lang@feature{Balante}{BLN}
\zf@make@lang@feature{Balti}{BLT}
\zf@make@lang@feature{Bambara}{BMB}
\zf@make@lang@feature{Bamileke}{BML}
\zf@make@lang@feature{Breton}{BRE}
\zf@make@lang@feature{Brahui}{BRH}
\zf@make@lang@feature{Braj Bhasha}{BRI}
\zf@make@lang@feature{Burmese}{BRM}
\zf@make@lang@feature{Bashkir}{BSH}
\zf@make@lang@feature{Beti}{BTI}
\zf@make@lang@feature{Catalan}{CAT}
\zf@make@lang@feature{Cebuano}{CEB}
\zf@make@lang@feature{Chechen}{CHE}
\zf@make@lang@feature{Chaha Gurage}{CHG}
\zf@make@lang@feature{Chattisgarhi}{CHH}
\zf@make@lang@feature{Chichewa}{CHI}
\zf@make@lang@feature{Chukchi}{CHK}
\zf@make@lang@feature{Chipewyan}{CHP}
\zf@make@lang@feature{Cherokee}{CHR}
\zf@make@lang@feature{Chuvash}{CHU}
\zf@make@lang@feature{Comorian}{CMR}
\zf@make@lang@feature{Coptic}{COP}
\zf@make@lang@feature{Cree}{CRE}
\zf@make@lang@feature{Carrier}{CRR}
\zf@make@lang@feature{Crimean Tatar}{CRT}
\zf@make@lang@feature{Church Slavonic}{CSL}
\zf@make@lang@feature{Czech}{CSY}
\zf@make@lang@feature{Danish}{DAN}
\zf@make@lang@feature{Dargwa}{DAR}
\zf@make@lang@feature{Woods Cree}{DCR}
\zf@make@lang@feature{German}{DEU}
\zf@make@lang@feature{Default}{DFLT}
\zf@make@lang@feature{Dogri}{DGR}
\zf@make@lang@feature{Divehi}{DIV}
\zf@make@lang@feature{Djerma}{DJR}
\zf@make@lang@feature{Dangme}{DNG}
\zf@make@lang@feature{Dinka}{DNK}
\zf@make@lang@feature{Dungan}{DUN}
\zf@make@lang@feature{Dzongkha}{DZN}
\zf@make@lang@feature{Ebira}{EBI}
\zf@make@lang@feature{Eastern Cree}{ECR}
\zf@make@lang@feature{Edo}{EDO}
\zf@make@lang@feature{Efik}{EFI}
\zf@make@lang@feature{Greek}{ELL}
\zf@make@lang@feature{English}{ENG}
\zf@make@lang@feature{Erzya}{ERZ}
\zf@make@lang@feature{Spanish}{ESP}
\zf@make@lang@feature{Estonian}{ETI}
\zf@make@lang@feature{Basque}{EUQ}
\zf@make@lang@feature{Evenki}{EVK}
\zf@make@lang@feature{Even}{EVN}
\zf@make@lang@feature{Ewe}{EWE}
\zf@make@lang@feature{French Antillean}{FAN}
\zf@make@lang@feature{Farsi}{FAR}
\zf@make@lang@feature{Finnish}{FIN}
\zf@make@lang@feature{Fijian}{FJI}
\zf@make@lang@feature{Flemish}{FLE}
\zf@make@lang@feature{Forest Nenets}{FNE}
\zf@make@lang@feature{Fon}{FON}
\zf@make@lang@feature{Faroese}{FOS}
\zf@make@lang@feature{French}{FRA}
\zf@make@lang@feature{Frisian}{FRI}
\zf@make@lang@feature{Friulian}{FRL}
\zf@make@lang@feature{Futa}{FTA}
\zf@make@lang@feature{Fulani}{FUL}
\zf@make@lang@feature{Ga}{GAD}
\zf@make@lang@feature{Gaelic}{GAE}
\zf@make@lang@feature{Gagauz}{GAG}
\zf@make@lang@feature{Galician}{GAL}
\zf@make@lang@feature{Garshuni}{GAR}
\zf@make@lang@feature{Garhwali}{GAW}
\zf@make@lang@feature{Ge'ez}{GEZ}
\zf@make@lang@feature{Gilyak}{GIL}
\zf@make@lang@feature{Gumuz}{GMZ}
\zf@make@lang@feature{Gondi}{GON}
\zf@make@lang@feature{Greenlandic}{GRN}
\zf@make@lang@feature{Garo}{GRO}
\zf@make@lang@feature{Guarani}{GUA}
\zf@make@lang@feature{Gujarati}{GUJ}
\zf@make@lang@feature{Haitian}{HAI}
\zf@make@lang@feature{Halam}{HAL}
\zf@make@lang@feature{Harauti}{HAR}
\zf@make@lang@feature{Hausa}{HAU}
\zf@make@lang@feature{Hawaiin}{HAW}
\zf@make@lang@feature{Hammer-Banna}{HBN}
\zf@make@lang@feature{Hiligaynon}{HIL}
\zf@make@lang@feature{Hindi}{HIN}
\zf@make@lang@feature{High Mari}{HMA}
\zf@make@lang@feature{Hindko}{HND}
\zf@make@lang@feature{Ho}{HO}
\zf@make@lang@feature{Harari}{HRI}
\zf@make@lang@feature{Croatian}{HRV}
\zf@make@lang@feature{Hungarian}{HUN}
\zf@make@lang@feature{Armenian}{HYE}
\zf@make@lang@feature{Igbo}{IBO}
\zf@make@lang@feature{Ijo}{IJO}
\zf@make@lang@feature{Ilokano}{ILO}
\zf@make@lang@feature{Indonesian}{IND}
\zf@make@lang@feature{Ingush}{ING}
\zf@make@lang@feature{Inuktitut}{INU}
\zf@make@lang@feature{Irish}{IRI}
\zf@make@lang@feature{Irish Traditional}{IRT}
\zf@make@lang@feature{Icelandic}{ISL}
\zf@make@lang@feature{Inari Sami}{ISM}
\zf@make@lang@feature{Italian}{ITA}
\zf@make@lang@feature{Hebrew}{IWR}
\zf@make@lang@feature{Javanese}{JAV}
\zf@make@lang@feature{Yiddish}{JII}
\zf@make@lang@feature{Japanese}{JAN}
\zf@make@lang@feature{Judezmo}{JUD}
\zf@make@lang@feature{Jula}{JUL}
\zf@make@lang@feature{Kabardian}{KAB}
\zf@make@lang@feature{Kachchi}{KAC}
\zf@make@lang@feature{Kalenjin}{KAL}
\zf@make@lang@feature{Kannada}{KAN}
\zf@make@lang@feature{Karachay}{KAR}
\zf@make@lang@feature{Georgian}{KAT}
\zf@make@lang@feature{Kazakh}{KAZ}
\zf@make@lang@feature{Kebena}{KEB}
\zf@make@lang@feature{Khutsuri Georgian}{KGE}
\zf@make@lang@feature{Khakass}{KHA}
\zf@make@lang@feature{Khanty-Kazim}{KHK}
\zf@make@lang@feature{Khmer}{KHM}
\zf@make@lang@feature{Khanty-Shurishkar}{KHS}
\zf@make@lang@feature{Khanty-Vakhi}{KHV}
\zf@make@lang@feature{Khowar}{KHW}
\zf@make@lang@feature{Kikuyu}{KIK}
\zf@make@lang@feature{Kirghiz}{KIR}
\zf@make@lang@feature{Kisii}{KIS}
\zf@make@lang@feature{Kokni}{KKN}
\zf@make@lang@feature{Kalmyk}{KLM}
\zf@make@lang@feature{Kamba}{KMB}
\zf@make@lang@feature{Kumaoni}{KMN}
\zf@make@lang@feature{Komo}{KMO}
\zf@make@lang@feature{Komso}{KMS}
\zf@make@lang@feature{Kanuri}{KNR}
\zf@make@lang@feature{Kodagu}{KOD}
\zf@make@lang@feature{Korean Old Hangul}{KOH}
\zf@make@lang@feature{Konkani}{KOK}
\zf@make@lang@feature{Kikongo}{KON}
\zf@make@lang@feature{Komi-Permyak}{KOP}
\zf@make@lang@feature{Korean}{KOR}
\zf@make@lang@feature{Komi-Zyrian}{KOZ}
\zf@make@lang@feature{Kpelle}{KPL}
\zf@make@lang@feature{Krio}{KRI}
\zf@make@lang@feature{Karakalpak}{KRK}
\zf@make@lang@feature{Karelian}{KRL}
\zf@make@lang@feature{Karaim}{KRM}
\zf@make@lang@feature{Karen}{KRN}
\zf@make@lang@feature{Koorete}{KRT}
\zf@make@lang@feature{Kashmiri}{KSH}
\zf@make@lang@feature{Khasi}{KSI}
\zf@make@lang@feature{Kildin Sami}{KSM}
\zf@make@lang@feature{Kui}{KUI}
\zf@make@lang@feature{Kulvi}{KUL}
\zf@make@lang@feature{Kumyk}{KUM}
\zf@make@lang@feature{Kurdish}{KUR}
\zf@make@lang@feature{Kurukh}{KUU}
\zf@make@lang@feature{Kuy}{KUY}
\zf@make@lang@feature{Koryak}{KYK}
\zf@make@lang@feature{Ladin}{LAD}
\zf@make@lang@feature{Lahuli}{LAH}
\zf@make@lang@feature{Lak}{LAK}
\zf@make@lang@feature{Lambani}{LAM}
\zf@make@lang@feature{Lao}{LAO}
\zf@make@lang@feature{Latin}{LAT}
\zf@make@lang@feature{Laz}{LAZ}
\zf@make@lang@feature{L-Cree}{LCR}
\zf@make@lang@feature{Ladakhi}{LDK}
\zf@make@lang@feature{Lezgi}{LEZ}
\zf@make@lang@feature{Lingala}{LIN}
\zf@make@lang@feature{Low Mari}{LMA}
\zf@make@lang@feature{Limbu}{LMB}
\zf@make@lang@feature{Lomwe}{LMW}
\zf@make@lang@feature{Lower Sorbian}{LSB}
\zf@make@lang@feature{Lule Sami}{LSM}
\zf@make@lang@feature{Lithuanian}{LTH}
\zf@make@lang@feature{Luba}{LUB}
\zf@make@lang@feature{Luganda}{LUG}
\zf@make@lang@feature{Luhya}{LUH}
\zf@make@lang@feature{Luo}{LUO}
\zf@make@lang@feature{Latvian}{LVI}
\zf@make@lang@feature{Majang}{MAJ}
\zf@make@lang@feature{Makua}{MAK}
\zf@make@lang@feature{Malayalam Traditional}{MAL}
\zf@make@lang@feature{Mansi}{MAN}
\zf@make@lang@feature{Marathi}{MAR}
\zf@make@lang@feature{Marwari}{MAW}
\zf@make@lang@feature{Mbundu}{MBN}
\zf@make@lang@feature{Manchu}{MCH}
\zf@make@lang@feature{Moose Cree}{MCR}
\zf@make@lang@feature{Mende}{MDE}
\zf@make@lang@feature{Me'en}{MEN}
\zf@make@lang@feature{Mizo}{MIZ}
\zf@make@lang@feature{Macedonian}{MKD}
\zf@make@lang@feature{Male}{MLE}
\zf@make@lang@feature{Malagasy}{MLG}
\zf@make@lang@feature{Malinke}{MLN}
\zf@make@lang@feature{Malayalam Reformed}{MLR}
\zf@make@lang@feature{Malay}{MLY}
\zf@make@lang@feature{Mandinka}{MND}
\zf@make@lang@feature{Mongolian}{MNG}
\zf@make@lang@feature{Manipuri}{MNI}
\zf@make@lang@feature{Maninka}{MNK}
\zf@make@lang@feature{Manx Gaelic}{MNX}
\zf@make@lang@feature{Moksha}{MOK}
\zf@make@lang@feature{Moldavian}{MOL}
\zf@make@lang@feature{Mon}{MON}
\zf@make@lang@feature{Moroccan}{MOR}
\zf@make@lang@feature{Maori}{MRI}
\zf@make@lang@feature{Maithili}{MTH}
\zf@make@lang@feature{Maltese}{MTS}
\zf@make@lang@feature{Mundari}{MUN}
\zf@make@lang@feature{Naga-Assamese}{NAG}
\zf@make@lang@feature{Nanai}{NAN}
\zf@make@lang@feature{Naskapi}{NAS}
\zf@make@lang@feature{N-Cree}{NCR}
\zf@make@lang@feature{Ndebele}{NDB}
\zf@make@lang@feature{Ndonga}{NDG}
\zf@make@lang@feature{Nepali}{NEP}
\zf@make@lang@feature{Newari}{NEW}
\zf@make@lang@feature{Nagari}{NGR}
\zf@make@lang@feature{Norway House Cree}{NHC}
\zf@make@lang@feature{Nisi}{NIS}
\zf@make@lang@feature{Niuean}{NIU}
\zf@make@lang@feature{Nkole}{NKL}
\zf@make@lang@feature{N'ko}{NKO}
\zf@make@lang@feature{Dutch}{NLD}
\zf@make@lang@feature{Nogai}{NOG}
\zf@make@lang@feature{Norwegian}{NOR}
\zf@make@lang@feature{Northern Sami}{NSM}
\zf@make@lang@feature{Northern Tai}{NTA}
\zf@make@lang@feature{Esperanto}{NTO}
\zf@make@lang@feature{Nynorsk}{NYN}
\zf@make@lang@feature{Oji-Cree}{OCR}
\zf@make@lang@feature{Ojibway}{OJB}
\zf@make@lang@feature{Oriya}{ORI}
\zf@make@lang@feature{Oromo}{ORO}
\zf@make@lang@feature{Ossetian}{OSS}
\zf@make@lang@feature{Palestinian Aramaic}{PAA}
\zf@make@lang@feature{Pali}{PAL}
\zf@make@lang@feature{Punjabi}{PAN}
\zf@make@lang@feature{Palpa}{PAP}
\zf@make@lang@feature{Pashto}{PAS}
\zf@make@lang@feature{Polytonic Greek}{PGR}
\zf@make@lang@feature{Pilipino}{PIL}
\zf@make@lang@feature{Palaung}{PLG}
\zf@make@lang@feature{Polish}{PLK}
\zf@make@lang@feature{Provencal}{PRO}
\zf@make@lang@feature{Portuguese}{PTG}
\zf@make@lang@feature{Chin}{QIN}
\zf@make@lang@feature{Rajasthani}{RAJ}
\zf@make@lang@feature{R-Cree}{RCR}
\zf@make@lang@feature{Russian Buriat}{RBU}
\zf@make@lang@feature{Riang}{RIA}
\zf@make@lang@feature{Rhaeto-Romanic}{RMS}
\zf@make@lang@feature{Romanian}{ROM}
\zf@make@lang@feature{Romany}{ROY}
\zf@make@lang@feature{Rusyn}{RSY}
\zf@make@lang@feature{Ruanda}{RUA}
\zf@make@lang@feature{Russian}{RUS}
\zf@make@lang@feature{Sadri}{SAD}
\zf@make@lang@feature{Sanskrit}{SAN}
\zf@make@lang@feature{Santali}{SAT}
\zf@make@lang@feature{Sayisi}{SAY}
\zf@make@lang@feature{Sekota}{SEK}
\zf@make@lang@feature{Selkup}{SEL}
\zf@make@lang@feature{Sango}{SGO}
\zf@make@lang@feature{Shan}{SHN}
\zf@make@lang@feature{Sibe}{SIB}
\zf@make@lang@feature{Sidamo}{SID}
\zf@make@lang@feature{Silte Gurage}{SIG}
\zf@make@lang@feature{Skolt Sami}{SKS}
\zf@make@lang@feature{Slovak}{SKY}
\zf@make@lang@feature{Slavey}{SLA}
\zf@make@lang@feature{Slovenian}{SLV}
\zf@make@lang@feature{Somali}{SML}
\zf@make@lang@feature{Samoan}{SMO}
\zf@make@lang@feature{Sena}{SNA}
\zf@make@lang@feature{Sindhi}{SND}
\zf@make@lang@feature{Sinhalese}{SNH}
\zf@make@lang@feature{Soninke}{SNK}
\zf@make@lang@feature{Sodo Gurage}{SOG}
\zf@make@lang@feature{Sotho}{SOT}
\zf@make@lang@feature{Albanian}{SQI}
\zf@make@lang@feature{Serbian}{SRB}
\zf@make@lang@feature{Saraiki}{SRK}
\zf@make@lang@feature{Serer}{SRR}
\zf@make@lang@feature{South Slavey}{SSL}
\zf@make@lang@feature{Southern Sami}{SSM}
\zf@make@lang@feature{Suri}{SUR}
\zf@make@lang@feature{Svan}{SVA}
\zf@make@lang@feature{Swedish}{SVE}
\zf@make@lang@feature{Swadaya Aramaic}{SWA}
\zf@make@lang@feature{Swahili}{SWK}
\zf@make@lang@feature{Swazi}{SWZ}
\zf@make@lang@feature{Sutu}{SXT}
\zf@make@lang@feature{Syriac}{SYR}
\zf@make@lang@feature{Tabasaran}{TAB}
\zf@make@lang@feature{Tajiki}{TAJ}
\zf@make@lang@feature{Tamil}{TAM}
\zf@make@lang@feature{Tatar}{TAT}
\zf@make@lang@feature{TH-Cree}{TCR}
\zf@make@lang@feature{Telugu}{TEL}
\zf@make@lang@feature{Tongan}{TGN}
\zf@make@lang@feature{Tigre}{TGR}
\zf@make@lang@feature{Tigrinya}{TGY}
\zf@make@lang@feature{Thai}{THA}
\zf@make@lang@feature{Tahitian}{THT}
\zf@make@lang@feature{Tibetan}{TIB}
\zf@make@lang@feature{Turkmen}{TKM}
\zf@make@lang@feature{Temne}{TMN}
\zf@make@lang@feature{Tswana}{TNA}
\zf@make@lang@feature{Tundra Nenets}{TNE}
\zf@make@lang@feature{Tonga}{TNG}
\zf@make@lang@feature{Todo}{TOD}
\zf@make@lang@feature{Turkish}{TRK}
\zf@make@lang@feature{Tsonga}{TSG}
\zf@make@lang@feature{Turoyo Aramaic}{TUA}
\zf@make@lang@feature{Tulu}{TUL}
\zf@make@lang@feature{Tuvin}{TUV}
\zf@make@lang@feature{Twi}{TWI}
\zf@make@lang@feature{Udmurt}{UDM}
\zf@make@lang@feature{Ukrainian}{UKR}
\zf@make@lang@feature{Urdu}{URD}
\zf@make@lang@feature{Upper Sorbian}{USB}
\zf@make@lang@feature{Uyghur}{UYG}
\zf@make@lang@feature{Uzbek}{UZB}
\zf@make@lang@feature{Venda}{VEN}
\zf@make@lang@feature{Vietnamese}{VIT}
\zf@make@lang@feature{Wa}{WA}
\zf@make@lang@feature{Wagdi}{WAG}
\zf@make@lang@feature{West-Cree}{WCR}
\zf@make@lang@feature{Welsh}{WEL}
\zf@make@lang@feature{Wolof}{WLF}
\zf@make@lang@feature{Tai Lue}{XBD}
\zf@make@lang@feature{Xhosa}{XHS}
\zf@make@lang@feature{Yakut}{YAK}
\zf@make@lang@feature{Yoruba}{YBA}
\zf@make@lang@feature{Y-Cree}{YCR}
\zf@make@lang@feature{Yi Classic}{YIC}
\zf@make@lang@feature{Yi Modern}{YIM}
\zf@make@lang@feature{Chinese Hong Kong}{ZHH}
\zf@make@lang@feature{Chinese Phonetic}{ZHP}
\zf@make@lang@feature{Chinese Simplified}{ZHS}
\zf@make@lang@feature{Chinese Traditional}{ZHT}
\zf@make@lang@feature{Zande}{ZND}
\zf@make@lang@feature{Zulu}{ZUL}
\zf@define@font@feature{Ligatures}
\zf@define@feature@option{Ligatures}{Required}{1}{0}{+rlig}
\zf@define@feature@option{Ligatures}{NoRequired}     {1}{1} {-rlig}
\zf@define@feature@option{Ligatures}{Common}         {1}{2} {+liga}
\zf@define@feature@option{Ligatures}{NoCommon}       {1}{3} {-liga}
\zf@define@feature@option{Ligatures}{Rare}           {1}{4} {+dlig}
\zf@define@feature@option{Ligatures}{NoRare}         {1}{5} {-dlig}
\zf@define@feature@option{Ligatures}{Discretionary}  {1}{4} {+dlig}
\zf@define@feature@option{Ligatures}{NoDiscretionary}{1}{5} {-dlig}
\zf@define@feature@option{Ligatures}{Contextual}     {}{}   {+clig}
\zf@define@feature@option{Ligatures}{NoContextual}   {}{}   {-clig}
\zf@define@feature@option{Ligatures}{Historical}     {}{}   {+hlig}
\zf@define@feature@option{Ligatures}{NoHistorical}   {}{}   {-hlig}
\zf@define@feature@option{Ligatures}{Logos}          {1}{6} {}
\zf@define@feature@option{Ligatures}{NoLogos}        {1}{7} {}
\zf@define@feature@option{Ligatures}{Rebus}          {1}{8} {}
\zf@define@feature@option{Ligatures}{NoRebus}        {1}{9} {}
\zf@define@feature@option{Ligatures}{Diphthong}      {1}{10}{}
\zf@define@feature@option{Ligatures}{NoDiphthong}    {1}{11}{}
\zf@define@feature@option{Ligatures}{Squared}        {1}{12}{}
\zf@define@feature@option{Ligatures}{NoSquared}      {1}{13}{}
\zf@define@feature@option{Ligatures}{AbbrevSquared}  {1}{14}{}
\zf@define@feature@option{Ligatures}{NoAbbrevSquared}{1}{15}{}
\zf@define@feature@option{Ligatures}{Icelandic}      {1}{32}{}
\zf@define@feature@option{Ligatures}{NoIcelandic}    {1}{33}{}
\zf@define@font@feature{Letters}
\zf@define@feature@option{Letters}{Normal}{3}{0}{}
\zf@define@feature@option{Letters}{Uppercase}{3}{1}{+cpsp}
\zf@define@feature@option{Letters}{Lowercase}{3}{2}{}
\zf@define@feature@option{Letters}{SmallCaps}{3}{3}{+smcp}
\zf@define@feature@option{Letters}{PetiteCaps}{}{}{+pcap}
\zf@define@feature@option{Letters}{SMALLCAPS}{}{}{+c2sc}
\zf@define@feature@option{Letters}{PETITECAPS}{}{}{+c2pc}
\zf@define@feature@option{Letters}{InitialCaps}{3}{4}{}
\zf@define@feature@option{Letters}{Unicase}{}{}{+unic}
\zf@define@font@feature{Numbers}
\zf@define@feature@option{Numbers}{Monospaced}{6}{0}{+tnum}
\zf@define@feature@option{Numbers}{Proportional}{6}{1}{+pnum}
\zf@define@feature@option{Numbers}{Lowercase}{21}{0}{+onum}
\zf@define@feature@option{Numbers}{OldStyle}{21}{0}{+onum}
\zf@define@feature@option{Numbers}{Uppercase}{21}{1}{+lnum}
\zf@define@feature@option{Numbers}{Lining}{21}{1}{+lnum}
\zf@define@feature@option{Numbers}{SlashedZero}{14}{5}{+zero}
\zf@define@feature@option{Numbers}{NoSlashedZero}{14}{4}{-zero}
\zf@define@font@feature{Swashes}
\zf@define@feature@option{Swashes}{Contextual}{}{}{+cswh}
\zf@define@feature@option{Swashes}{WordInitial}{8}{0}{+init}
\zf@define@feature@option{Swashes}{NoWordInitial}{8}{1}{-init}
\zf@define@feature@option{Swashes}{WordFinal}{8}{2}{+fina}
\zf@define@feature@option{Swashes}{NoWordFinal}{8}{3}{-fina}
\zf@define@feature@option{Swashes}{LineInitial}{8}{4}{}
\zf@define@feature@option{Swashes}{NoLineInitial}{8}{5}{}
\zf@define@feature@option{Swashes}{LineFinal}{8}{6}{+falt}
\zf@define@feature@option{Swashes}{NoLineFinal}{8}{7}{-falt}
\zf@define@feature@option{Swashes}{Inner}{8}{8}{}
\zf@define@feature@option{Swashes}{NoInner}{8}{9}{}
\zf@define@font@feature{Diacritics}
\zf@define@feature@option{Diacritics}{Show}{9}{0}{}
\zf@define@feature@option{Diacritics}{Hide}{9}{1}{}
\zf@define@feature@option{Diacritics}{Decompose}{9}{2}{}
\zf@define@font@feature{VerticalPosition}
\zf@define@feature@option{VerticalPosition}{Normal}{10}{0}{}
\zf@define@feature@option{VerticalPosition}{Superior}{10}{1}{+sups}
\zf@define@feature@option{VerticalPosition}{Inferior}{10}{2}{+subs}
\zf@define@feature@option{VerticalPosition}{ScientificInferior}{}{}{+sinf}
\zf@define@feature@option{VerticalPosition}{Ordinal}{10}{3}{+ordn}
\zf@define@feature@option{VerticalPosition}{Numerator}{}{}{+numr}
\zf@define@feature@option{VerticalPosition}{Denominator}{}{}{+dnom}
\zf@define@font@feature{Fractions}
\zf@define@feature@option{Fractions}{On}{11}{1}{+frac}
\zf@define@feature@option{Fractions}{Off}{11}{0}{-frac}
\zf@define@feature@option{Fractions}{Diagonal}{11}{2}{}
\zf@define@feature@option{Fractions}{Alternate}{}{}{+afrc}
\define@key{zf}{Alternate}{\zf@make@feature{17}{#1}{}}
\define@key{zf}{Variant}{\zf@make@feature{18}{#1}{%
  \ifnum #1 > 0
    \ifnum #1 < 100
      \ifnum #1 > 9
        +ss#1%
      \else
        +ss0#1%
      \fi
    \else
      \PackageWarning{fontspec}{OpenType variant number must be
        between 1 and 99 inclusive.}%
    \fi
  \else
    \PackageWarning{fontspec}{OpenType variant number must be between 1
      and 99 inclusive.}%
  \fi}}
\zf@define@font@feature{Style}
\aliasfeature{Style}{StyleOptions}
\zf@define@feature@option{Style}{Alternate}{}{}{+salt}
\zf@define@feature@option{Style}{Italic}{32}{2}{+ital}
\zf@define@feature@option{Style}{Ruby}{28}{2}{+ruby}
\zf@define@feature@option{Style}{Swash}{}{}{+swsh}
\zf@define@feature@option{Style}{Display}{19}{1}{}
\zf@define@feature@option{Style}{Engraved}{19}{2}{}
\zf@define@feature@option{Style}{TitlingCaps}{19}{4}{+titl}
\zf@define@feature@option{Style}{TallCaps}{19}{5}{}
\zf@define@font@feature{CharacterShape}
\zf@define@feature@option{CharacterShape}{Traditional}{20}{0}{+trad}
\zf@define@feature@option{CharacterShape}{Simplified}{20}{1}{+smpl}
\zf@define@feature@option{CharacterShape}{JIS1978}{20}{2}{+jp78}
\zf@define@feature@option{CharacterShape}{JIS1983}{20}{3}{+jp83}
\zf@define@feature@option{CharacterShape}{JIS1990}{20}{4}{+jp90}
\zf@define@feature@option{CharacterShape}{Expert}{20}{10}{+expt}
\zf@define@feature@option{CharacterShape}{NLC}{20}{13}{+nlck}
\zf@define@font@feature{TextSpacing}
\zf@define@feature@option{TextSpacing}{Proportional}{22}{0}{+pwid}
\zf@define@feature@option{TextSpacing}{FullWidth}{22}{1}{+fwid}
\zf@define@feature@option{TextSpacing}{HalfWidth}{22}{2}{+hwid}
\zf@define@feature@option{TextSpacing}{ThirdWidth}{22}{3}{+twid}
\zf@define@feature@option{TextSpacing}{QuarterWidth}{22}{4}{+qwid}
\zf@define@feature@option{TextSpacing}{AlternateProportional}{22}{5}{+palt}
\zf@define@feature@option{TextSpacing}{AlternateHalfWidth}{22}{6}{+halt}
\zf@define@feature@option{TextSpacing}{Default}{22}{7}{}
\zf@define@font@feature{Annotation}
\zf@define@feature@option{Annotation}{Off}{24}{0}{-nalt}
\zf@define@feature@option{Annotation}{On}{}{}{+nalt}
\zf@define@feature@option{Annotation}{Box}{24}{1}{}
\zf@define@feature@option{Annotation}{RoundedBox}{24}{2}{}
\zf@define@feature@option{Annotation}{Circle}{24}{3}{}
\zf@define@feature@option{Annotation}{BlackCircle}{24}{4}{}
\zf@define@feature@option{Annotation}{Parenthesis}{24}{5}{}
\zf@define@feature@option{Annotation}{Period}{24}{6}{}
\zf@define@feature@option{Annotation}{RomanNumerals}{24}{7}{}
\zf@define@feature@option{Annotation}{Diamond}{24}{8}{}
\zf@define@feature@option{Annotation}{BlackSquare}{24}{9}{}
\zf@define@feature@option{Annotation}{BlackRoundSquare}{24}{10}{}
\zf@define@feature@option{Annotation}{DoubleCircle}{24}{11}{}
\providecommand*{\sidefault}{si}
\DeclareRobustCommand{\sishape}{%
  \not@math@alphabet\sishape\relax
  \fontshape\sidefault\selectfont}
\DeclareTextFontCommand{\textsi}{\sishape}
\newcommand*{\zf@merge@shape}[3]{%
  \edef\@tempa{#1}%
  \edef\@tempb{#2}%
  \ifx\f@shape\@tempb
    \expandafter\ifx
    \csname\f@encoding/\f@family/\f@series/#3\endcsname
    \relax\else
      \edef\@tempa{#3}%
    \fi
  \fi
  \fontshape{\@tempa}\selectfont}
\DeclareRobustCommand{\itshape}{%
  \not@math@alphabet\itshape\mathit
  \zf@merge@shape\itdefault\scdefault\sidefault}
\DeclareRobustCommand{\scshape}{%
  \not@math@alphabet\scshape\relax
  \zf@merge@shape\scdefault\itdefault\sidefault}
\DeclareRobustCommand{\upshape}{%
  \not@math@alphabet\upshape\relax
  \zf@merge@shape\updefault\sidefault\scdefault}
\newif\ifzf@math@euler
\newif\ifzf@math@lucida
\newif\ifzf@euler@package@loaded
\@ifpackageloaded{euler}{\zf@euler@package@loadedtrue}
                        {\zf@euler@package@loadedfalse}
\AtBeginDocument{%
  \@ifpackageloaded{euler}{%
    \ifzf@euler@package@loaded
      \zf@math@eulertrue
    \else
      \PackageError{fontspec}{The euler package must be loaded BEFORE fontspec}
        {fontspec only overwrites euler's attempt to\MessageBreak
         define the maths text fonts if fontspec is\MessageBreak
         loaded after euler. Type <return> to proceed\MessageBreak
         with incorrect \protect\mathit, \protect\mathbf, etc}
    \fi}{}
  \@ifpackageloaded{lucbmath}{\zf@math@lucidatrue}{}
  \@ifpackageloaded{lucidabr}{\zf@math@lucidatrue}{}
  \DeclareSymbolFont{legacymaths}{OT1}{cmr}{m}{n}
  \SetSymbolFont{legacymaths}{bold}{OT1}{cmr}{bx}{n}
  \DeclareMathAccent{\acute}   {\mathalpha}{legacymaths}{"13}
  \DeclareMathAccent{\grave}   {\mathalpha}{legacymaths}{"12}
  \DeclareMathAccent{\ddot}    {\mathalpha}{legacymaths}{"7F}
  \DeclareMathAccent{\tilde}   {\mathalpha}{legacymaths}{"7E}
  \DeclareMathAccent{\bar}     {\mathalpha}{legacymaths}{"16}
  \DeclareMathAccent{\breve}   {\mathalpha}{legacymaths}{"15}
  \DeclareMathAccent{\check}   {\mathalpha}{legacymaths}{"14}
  \DeclareMathAccent{\hat}     {\mathalpha}{legacymaths}{"5E} % too bad, euler
  \DeclareMathAccent{\dot}     {\mathalpha}{legacymaths}{"5F}
  \DeclareMathAccent{\mathring}{\mathalpha}{legacymaths}{"17}
  \ifzf@math@euler\else
    \DeclareMathSymbol{!}{\mathclose}{legacymaths}{"21}
    \DeclareMathSymbol{:}{\mathrel}  {legacymaths}{"3A}
    \DeclareMathSymbol{;}{\mathpunct}{legacymaths}{"3B}
    \DeclareMathSymbol{?}{\mathclose}{legacymaths}{"3F}
    \ifzf@math@lucida
      \@ifpackageloaded{amsmath}{}{%
        \DeclareMathSymbol{\colon}{\mathpunct}{legacymaths}{"3A}}
    \else
      \DeclareMathSymbol{0}{\mathalpha}{legacymaths}{`0}
      \DeclareMathSymbol{1}{\mathalpha}{legacymaths}{`1}
      \DeclareMathSymbol{2}{\mathalpha}{legacymaths}{`2}
      \DeclareMathSymbol{3}{\mathalpha}{legacymaths}{`3}
      \DeclareMathSymbol{4}{\mathalpha}{legacymaths}{`4}
      \DeclareMathSymbol{5}{\mathalpha}{legacymaths}{`5}
      \DeclareMathSymbol{6}{\mathalpha}{legacymaths}{`6}
      \DeclareMathSymbol{7}{\mathalpha}{legacymaths}{`7}
      \DeclareMathSymbol{8}{\mathalpha}{legacymaths}{`8}
      \DeclareMathSymbol{9}{\mathalpha}{legacymaths}{`9}
      \DeclareMathSymbol{\Gamma}{\mathalpha}{legacymaths}{"00}
      \DeclareMathSymbol{\Delta}{\mathalpha}{legacymaths}{"01}
      \DeclareMathSymbol{\Theta}{\mathalpha}{legacymaths}{"02}
      \DeclareMathSymbol{\Lambda}{\mathalpha}{legacymaths}{"03}
      \DeclareMathSymbol{\Xi}{\mathalpha}{legacymaths}{"04}
      \DeclareMathSymbol{\Pi}{\mathalpha}{legacymaths}{"05}
      \DeclareMathSymbol{\Sigma}{\mathalpha}{legacymaths}{"06}
      \DeclareMathSymbol{\Upsilon}{\mathalpha}{legacymaths}{"07}
      \DeclareMathSymbol{\Phi}{\mathalpha}{legacymaths}{"08}
      \DeclareMathSymbol{\Psi}{\mathalpha}{legacymaths}{"09}
      \DeclareMathSymbol{\Omega}{\mathalpha}{legacymaths}{"0A}
      \DeclareMathSymbol{+}{\mathbin}{legacymaths}{"2B}
      \DeclareMathSymbol{=}{\mathrel}{legacymaths}{"3D}
      \DeclareMathDelimiter{(}{\mathopen} {legacymaths}{"28}{largesymbols}{"00}
      \DeclareMathDelimiter{)}{\mathclose}{legacymaths}{"29}{largesymbols}{"01}
      \DeclareMathDelimiter{[}{\mathopen} {legacymaths}{"5B}{largesymbols}{"02}
      \DeclareMathDelimiter{]}{\mathclose}{legacymaths}{"5D}{largesymbols}{"03}
      \DeclareMathDelimiter{/}{\mathord}{legacymaths}{"2F}{largesymbols}{"0E}
      \DeclareMathSymbol{\mathdollar}{\mathord}{legacymaths}{"24}
    \fi
  \fi
  \DeclareSymbolFont{operators}\zf@enc\zf@rmmaths\mddefault\updefault
  \SetSymbolFont{operators}{normal}\zf@enc\zf@rmmaths\mddefault\updefault
  \SetMathAlphabet\mathrm{normal}\zf@enc\zf@rmmaths\mddefault\updefault
  \SetMathAlphabet\mathit{normal}\zf@enc\zf@rmmaths\mddefault\itdefault
  \SetMathAlphabet\mathbf{normal}\zf@enc\zf@rmmaths\bfdefault\updefault
  \SetMathAlphabet\mathsf{normal}\zf@enc\zf@sfmaths\mddefault\updefault
  \SetMathAlphabet\mathtt{normal}\zf@enc\zf@ttmaths\mddefault\updefault
  \SetSymbolFont{operators}{bold}\zf@enc\zf@rmmaths\bfdefault\updefault
  \expandafter\ifx\csname zf@rmboldmaths\endcsname\relax
    \SetMathAlphabet\mathrm{bold}\zf@enc\zf@rmmaths\bfdefault\updefault
    \SetMathAlphabet\mathit{bold}\zf@enc\zf@rmmaths\bfdefault\itdefault
  \else
    \SetMathAlphabet\mathrm{bold}\zf@enc\zf@rmboldmaths\mddefault\updefault
    \SetMathAlphabet\mathbf{bold}\zf@enc\zf@rmboldmaths\bfdefault\updefault
    \SetMathAlphabet\mathit{bold}\zf@enc\zf@rmboldmaths\mddefault\itdefault
  \fi
  \SetMathAlphabet\mathsf{bold}\zf@enc\zf@sfmaths\bfdefault\updefault
  \SetMathAlphabet\mathsf{bold}\zf@enc\zf@ttmaths\bfdefault\updefault}
%% 
%% Copyright 2005 by Will Robertson <will@guerilla.net.au>
%% 
%% Distributable under the LaTeX Project Public License,
%% version 1.3a or higher (your choice). The latest version of
%% this license is at: http://www.latex-project.org/lppl.txt
%% 
%% This work is "maintained" (as per LPPL maintenance status)
%% by Will Robertson.
%% 
%% This work consists of the file  fontspec.dtx
%%           and the derived files fontspec.sty and fontspec.pdf.
%% 
%%
%% End of file `fontspec.sty'.
