summaryrefslogtreecommitdiff
path: root/support/makeglossariesgui/src/tests
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/makeglossariesgui/src/tests
Initial commit
Diffstat (limited to 'support/makeglossariesgui/src/tests')
-rw-r--r--support/makeglossariesgui/src/tests/basic-sample/basic-sample.tex15
-rw-r--r--support/makeglossariesgui/src/tests/doc-defs/doc-defs.tex15
-rw-r--r--support/makeglossariesgui/src/tests/indexed-too-soon/indexed-too-soon.tex16
-rw-r--r--support/makeglossariesgui/src/tests/missing-printglossary/missing-printglossary.tex13
-rw-r--r--support/makeglossariesgui/src/tests/missing-sort/missing-sort.tex25
-rw-r--r--support/makeglossariesgui/src/tests/missing-sty/missing-sty.tex6
-rw-r--r--support/makeglossariesgui/src/tests/no-glossaries/no-glossaries.tex15
-rw-r--r--support/makeglossariesgui/src/tests/no-makeglossaries/no-makeglossaries.tex13
-rw-r--r--support/makeglossariesgui/src/tests/none-indexed/none-indexed.tex15
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossaries-accsupp.sty813
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossaries-babel.sty297
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossaries-compatible-207.sty328
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossaries-polyglossia.sty188
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossaries.sty4175
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossary-hypernav.sty96
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossary-list.sty104
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossary-long.sty182
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossary-longragged.sty174
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossary-super.sty210
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossary-superragged.sty189
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/glossary-tree.sty264
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/mfirstuc.sty94
-rw-r--r--support/makeglossariesgui/src/tests/old-version-301/old-version-301.tex63
-rw-r--r--support/makeglossariesgui/src/tests/restricted-doc-defs/restricted-doc-defs.tex15
-rw-r--r--support/makeglossariesgui/src/tests/sample-babel/sample-babel.tex16
-rw-r--r--support/makeglossariesgui/src/tests/sample-bib2gls-hybrid/sample-bib2gls-hybrid.tex15
-rw-r--r--support/makeglossariesgui/src/tests/sample-bib2gls/sample-bib2gls.tex13
-rw-r--r--support/makeglossariesgui/src/tests/sample-fragile/sample-fragile.tex23
-rw-r--r--support/makeglossariesgui/src/tests/sample-german/sample-german.tex19
-rw-r--r--support/makeglossariesgui/src/tests/sample-include/gloss.tex5
-rw-r--r--support/makeglossariesgui/src/tests/sample-include/main.tex2
-rw-r--r--support/makeglossariesgui/src/tests/sample-include/sample-include.tex12
-rw-r--r--support/makeglossariesgui/src/tests/sample-latin1/sample-latin1-makeindex.tex16
-rw-r--r--support/makeglossariesgui/src/tests/sample-latin1/sample-latin1.tex16
-rw-r--r--support/makeglossariesgui/src/tests/sample-noidx/sample-noidx.tex15
-rw-r--r--support/makeglossariesgui/src/tests/sample-nonumberlists/sample-nonumberlists-xindy.tex23
-rw-r--r--support/makeglossariesgui/src/tests/sample-nonumberlists/sample-nonumberlists.tex21
-rw-r--r--support/makeglossariesgui/src/tests/unsupported-enc/unsupported-enc.tex18
-rw-r--r--support/makeglossariesgui/src/tests/utf8-label/utf8-label.tex19
-rw-r--r--support/makeglossariesgui/src/tests/working-examples/working-sample-makeindex.tex15
-rw-r--r--support/makeglossariesgui/src/tests/working-examples/working-sample-xindy.tex17
-rw-r--r--support/makeglossariesgui/src/tests/wrong-type/wrong-type.tex15
-rw-r--r--support/makeglossariesgui/src/tests/xindy-english/xindy-english.tex18
-rw-r--r--support/makeglossariesgui/src/tests/xindy-german-xetex/xindy-german-xetex.tex18
-rw-r--r--support/makeglossariesgui/src/tests/xindy-german/xindy-german.tex18
45 files changed, 7659 insertions, 0 deletions
diff --git a/support/makeglossariesgui/src/tests/basic-sample/basic-sample.tex b/support/makeglossariesgui/src/tests/basic-sample/basic-sample.tex
new file mode 100644
index 0000000000..80cb4a4f5c
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/basic-sample/basic-sample.tex
@@ -0,0 +1,15 @@
+\documentclass{article}
+
+\usepackage{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\begin{document}
+A \gls{sample} document.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/doc-defs/doc-defs.tex b/support/makeglossariesgui/src/tests/doc-defs/doc-defs.tex
new file mode 100644
index 0000000000..74ef3d84ae
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/doc-defs/doc-defs.tex
@@ -0,0 +1,15 @@
+\documentclass{article}
+
+\usepackage{glossaries}
+
+\makeglossaries
+
+\begin{document}
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+A \gls{sample} document.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/indexed-too-soon/indexed-too-soon.tex b/support/makeglossariesgui/src/tests/indexed-too-soon/indexed-too-soon.tex
new file mode 100644
index 0000000000..7713084c2a
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/indexed-too-soon/indexed-too-soon.tex
@@ -0,0 +1,16 @@
+\documentclass{article}
+
+\usepackage[debug]{glossaries}
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+\glsaddall
+
+\makeglossaries
+
+\begin{document}
+A sample document with a mistake in it.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/missing-printglossary/missing-printglossary.tex b/support/makeglossariesgui/src/tests/missing-printglossary/missing-printglossary.tex
new file mode 100644
index 0000000000..8c8086e4be
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/missing-printglossary/missing-printglossary.tex
@@ -0,0 +1,13 @@
+\documentclass{article}
+
+\usepackage{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\begin{document}
+A \gls{sample} document.
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/missing-sort/missing-sort.tex b/support/makeglossariesgui/src/tests/missing-sort/missing-sort.tex
new file mode 100644
index 0000000000..b0f89e73bd
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/missing-sort/missing-sort.tex
@@ -0,0 +1,25 @@
+\documentclass{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[xindy]{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\newglossaryentry{S}{name={\S},
+ description={section symbol}}
+
+\newglossaryentry{alpha}{name={\ensuremath{\alpha}},
+ description={alpha}}
+
+\newglossaryentry{beta}{name={$\beta$},text={\beta},
+ description={beta}}
+
+\begin{document}
+Test: \gls{sample}, \gls{S}, $\gls{alpha}$, $\gls{beta}$.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/missing-sty/missing-sty.tex b/support/makeglossariesgui/src/tests/missing-sty/missing-sty.tex
new file mode 100644
index 0000000000..7132d7faec
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/missing-sty/missing-sty.tex
@@ -0,0 +1,6 @@
+\documentclass{article}
+
+\begin{document}
+Test.
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/no-glossaries/no-glossaries.tex b/support/makeglossariesgui/src/tests/no-glossaries/no-glossaries.tex
new file mode 100644
index 0000000000..2feb1acdfc
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/no-glossaries/no-glossaries.tex
@@ -0,0 +1,15 @@
+\documentclass{article}
+
+\usepackage[nomain]{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\begin{document}
+A \gls{sample} document.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/no-makeglossaries/no-makeglossaries.tex b/support/makeglossariesgui/src/tests/no-makeglossaries/no-makeglossaries.tex
new file mode 100644
index 0000000000..abc0046cbf
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/no-makeglossaries/no-makeglossaries.tex
@@ -0,0 +1,13 @@
+\documentclass{article}
+
+\usepackage{glossaries}
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\begin{document}
+A \gls{sample} document.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/none-indexed/none-indexed.tex b/support/makeglossariesgui/src/tests/none-indexed/none-indexed.tex
new file mode 100644
index 0000000000..7128d52075
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/none-indexed/none-indexed.tex
@@ -0,0 +1,15 @@
+\documentclass{article}
+
+\usepackage{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\begin{document}
+A sample document.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossaries-accsupp.sty b/support/makeglossariesgui/src/tests/old-version-301/glossaries-accsupp.sty
new file mode 100644
index 0000000000..574678f709
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossaries-accsupp.sty
@@ -0,0 +1,813 @@
+%%
+%% This is file `glossaries-accsupp.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossaries-accsupp.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossaries-accsupp}[2011/04/02 v3.0 (NLCT)
+ Experimental glossaries accessibility]
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{glossaries}}
+\ProcessOptions
+\RequirePackage{glossaries}
+\RequirePackage{accsupp}
+\define@key{glossentry}{access}{%
+ \def\@glo@access{#1}%
+}
+\define@key{glossentry}{textaccess}{%
+ \def\@glo@textaccess{#1}%
+}
+\define@key{glossentry}{firstaccess}{%
+ \def\@glo@firstaccess{#1}%
+}
+\define@key{glossentry}{pluralaccess}{%
+ \def\@glo@pluralaccess{#1}%
+}
+\define@key{glossentry}{firstpluralaccess}{%
+ \def\@glo@firstpluralaccess{#1}%
+}
+\define@key{glossentry}{symbolaccess}{%
+ \def\@glo@symbolaccess{#1}%
+}
+\define@key{glossentry}{symbolpluralaccess}{%
+ \def\@glo@symbolpluralaccess{#1}%
+}
+\define@key{glossentry}{descriptionaccess}{%
+ \def\@glo@descaccess{#1}%
+}
+\define@key{glossentry}{descriptionpluralaccess}{%
+ \def\@glo@descpluralaccess{#1}%
+}
+\define@key{glossentry}{shortaccess}{%
+ \def\@glo@shortaccess{#1}%
+}
+\define@key{glossentry}{shortpluralaccess}{%
+ \def\@glo@shortpluralaccess{#1}%
+}
+\define@key{glossentry}{longaccess}{%
+ \def\@glo@longaccess{#1}%
+}
+\define@key{glossentry}{longpluralaccess}{%
+ \def\@glo@longpluralaccess{#1}%
+}
+\def\@gls@noaccess{\relax}
+\let\@gls@oldnewglossaryentryprehook\@newglossaryentryprehook
+\renewcommand*{\@newglossaryentryprehook}{%
+ \@gls@oldnewglossaryentryprehook
+ \def\@glo@access{\@glo@symbol}%
+ \def\@glo@textaccess{\@glo@access}%
+ \def\@glo@firstaccess{\@glo@access}%
+ \def\@glo@pluralaccess{\@glo@textaccess}%
+ \def\@glo@firstpluralaccess{\@glo@pluralaccess}%
+ \def\@glo@symbolaccess{\relax}%
+ \def\@glo@symbolpluralaccess{\@glo@symbolaccess}%
+ \def\@glo@descaccess{\relax}%
+ \def\@glo@descpluralaccess{\@glo@descaccess}%
+ \def\@glo@shortaccess{\relax}%
+ \def\@glo@shortpluralaccess{\@glo@shortaccess}%
+ \def\@glo@longaccess{\relax}%
+ \def\@glo@longpluralaccess{\@glo@longaccess}%
+}
+\let\@gls@oldnewglossaryentryposthook\@newglossaryentryposthook
+\renewcommand*{\@newglossaryentryposthook}{%
+ \@gls@oldnewglossaryentryposthook
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @access\endcsname{%
+ \@glo@access}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @textaccess\endcsname{%
+ \@glo@textaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @firstaccess\endcsname{%
+ \@glo@firstaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @pluralaccess\endcsname{%
+ \@glo@pluralaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @firstpluralaccess\endcsname{%
+ \@glo@firstpluralaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @symbolaccess\endcsname{%
+ \@glo@symbolaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @symbolpluralaccess\endcsname{%
+ \@glo@symbolpluralaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @descaccess\endcsname{%
+ \@glo@descaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @descpluralaccess\endcsname{%
+ \@glo@descpluralaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @shortaccess\endcsname{%
+ \@glo@shortaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @shortpluralaccess\endcsname{%
+ \@glo@shortpluralaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @longaccess\endcsname{%
+ \@glo@longaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @longpluralaccess\endcsname{%
+ \@glo@longpluralaccess}%
+}
+\newcommand*{\glsentryaccess}[1]{%
+ \csname glo@#1@access\endcsname
+}
+\newcommand*{\glsentrytextaccess}[1]{%
+ \csname glo@#1@textaccess\endcsname
+}
+\newcommand*{\glsentryfirstaccess}[1]{%
+ \csname glo@#1@firstaccess\endcsname
+}
+\newcommand*{\glsentrypluralaccess}[1]{%
+ \csname glo@#1@pluralaccess\endcsname
+}
+\newcommand*{\glsentryfirstpluralaccess}[1]{%
+ \csname glo@#1@firstpluralaccess\endcsname
+}
+\newcommand*{\glsentrysymbolaccess}[1]{%
+ \csname glo@#1@symbolaccess\endcsname
+}
+\newcommand*{\glsentrysymbolpluralaccess}[1]{%
+ \csname glo@#1@symbolpluralaccess\endcsname
+}
+\newcommand*{\glsentrydescaccess}[1]{%
+ \csname glo@#1@descaccess\endcsname
+}
+\newcommand*{\glsentrydescpluralaccess}[1]{%
+ \csname glo@#1@descaccess\endcsname
+}
+\newcommand*{\glsentryshortaccess}[1]{%
+ \csname glo@#1@shortaccess\endcsname
+}
+\newcommand*{\glsentryshortpluralaccess}[1]{%
+ \csname glo@#1@shortpluralaccess\endcsname
+}
+\newcommand*{\glsentrylongaccess}[1]{%
+ \csname glo@#1@longaccess\endcsname
+}
+\newcommand*{\glsentrylongpluralaccess}[1]{%
+ \csname glo@#1@longpluralaccess\endcsname
+}
+\newcommand*{\glsaccsupp}[2]{%
+ \BeginAccSupp{ActualText=#1}#2\EndAccSupp{}%
+}
+\newcommand*{\xglsaccsupp}[2]{%
+ \protected@edef\@gls@replacementtext{#1}%
+ \expandafter\glsaccsupp\expandafter{\@gls@replacementtext}{#2}%
+}
+\DeclareRobustCommand*{\glsnameaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentryaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glstextaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentrytextaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glspluralaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentrypluralaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glsfirstaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentryfirstaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glsfirstpluralaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentryfirstpluralaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glssymbolaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentrysymbolaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glssymbolpluralaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentrysymbolpluralaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glsdescriptionaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentrydescaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glsdescriptionpluralaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentrydescpluralaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glsshortaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentryshortaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glsshortpluralaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentryshortpluralaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glslongaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentrylongaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glslongpluralaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentrylongpluralaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+\DeclareRobustCommand*{\glsaccessdisplay}[3]{%
+ \@ifundefined{gls#1accessdisplay}%
+ {%
+ \PackageError{glossaries-accsupp}{No accessibility support
+ for key `#1'}{}%
+ }%
+ {%
+ \csname gls#1accessdisplay\endcsname{#2}{#3}%
+ }%
+}
+\def\@gls@#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@gls@link@opts{#1}%
+ \def\@gls@link@label{#2}%
+ \ifglsused{#2}%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @display\endcsname
+ {\glstextaccessdisplay{\glsentrytext{#2}}{#2}}%
+ {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}%
+ {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}%
+ {#3}}%
+ }%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname
+ {\glsfirstaccessdisplay{\glsentryfirst{#2}}{#2}}%
+ {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}%
+ {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}%
+ {#3}}%
+ }%
+ \ifglsused{#2}%
+ {%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+ {%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR\NOT\boolean{glshyperfirst}}%
+ {%
+ \@gls@link[#1,hyper=false]{#2}{\@glo@text}%
+ }%
+ {%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+ }%
+ \glsunset{#2}%
+ }%
+}
+\def\@Gls@#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@gls@link@opts{#1}%
+ \def\@gls@link@label{#2}%
+ \ifglsused{#2}%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @display\endcsname
+ {\glstextaccessdisplay{\Glsentrytext{#2}}{#2}}%
+ {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}%
+ {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}%
+ {#3}}%
+ }%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname
+ {\glsfirstaccessdisplay{\Glsentryfirst{#2}}{#2}}%
+ {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}%
+ {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}%
+ {#3}}%
+ }%
+ \ifglsused{#2}%
+ {%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+ {%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR\NOT\boolean{glshyperfirst}}%
+ {%
+ \@gls@link[#1,hyper=false]{#2}{\@glo@text}%
+ }%
+ {%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+ }%
+ \glsunset{#2}%
+ }%
+}
+\def\@GLS@#1#2[#3]{%
+ \glsdoifexists{#2}{%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@gls@link@opts{#1}%
+ \def\@gls@link@label{#2}%
+ \ifglsused{#2}%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @display\endcsname
+ {\glstextaccessdisplay{\glsentrytext{#2}}{#2}}%
+ {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}%
+ {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}%
+ {#3}}%
+ }%
+ {%
+ \edef\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname
+ {\glsfirstaccessdisplay{\glsentryfirst{#2}}{#2}}%
+ {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}%
+ {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}%
+ {#3}}%
+ }%
+ \ifglsused{#2}%
+ {%
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
+ }%
+ {%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR\NOT\boolean{glshyperfirst}}{%
+ \@gls@link[#1,hyper=false]{#2}{\MakeUppercase{\@glo@text}}%
+ }%
+ {%
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
+ }%
+ }%
+ \glsunset{#2}%
+ }%
+}
+\def\@glspl@#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@gls@link@opts{#1}%
+ \def\@gls@link@label{#2}%
+ \ifglsused{#2}%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @display\endcsname
+ {\glspluralaccessdisplay{\glsentryplural{#2}}{#2}}%
+ {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}%
+ {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}%
+ {#3}}%
+ }%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname
+ {\glsfirstpluralaccessdisplay{\glsentryfirstplural{#2}}{#2}}%
+ {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}%
+ {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}%
+ {#3}}%
+ }%
+ \ifglsused{#2}%
+ {%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+ {%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR\NOT\boolean{glshyperfirst}}%
+ {%
+ \@gls@link[#1,hyper=false]{#2}{\@glo@text}%
+ }%
+ {%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+ }%
+ \glsunset{#2}%
+ }%
+}
+\def\@Glspl@#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@gls@link@opts{#1}%
+ \def\@gls@link@label{#2}%
+ \ifglsused{#2}%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @display\endcsname
+ {\glspluralaccessdisplay{\Glsentryplural{#2}}{#2}}%
+ {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}%
+ {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}%
+ {#3}}%
+ }%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname
+ {\glsfirstpluralaccessdisplay{\Glsentryfirstplural{#2}}{#2}}%
+ {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}%
+ {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}%
+ {#3}}%
+ }%
+ \ifglsused{#2}%
+ {%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+ {%
+ \ifthenelse{\equal{\@glo@type}{\acronymtype}\and
+ \boolean{glsacrfootnote}}%
+ {%
+ \@gls@link[#1,hyper=false]{#2}{\@glo@text}%
+ }%
+ {%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+ }%
+ \glsunset{#2}%
+ }%
+}
+\def\@GLSpl@#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@gls@link@opts{#1}%
+ \def\@gls@link@label{#2}%
+ \ifglsused{#2}%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @display\endcsname
+ {\glspluralaccessdisplay{\glsentryplural{#2}}{#2}}%
+ {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}%
+ {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}%
+ {#3}}%
+ }%
+ {%
+ \def\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname
+ {\glsfirstpluralaccessdisplay{\glsentryfirstplural{#2}}{#2}}%
+ {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}%
+ {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}%
+ {#3}}%
+ }%
+ \ifglsused{#2}%
+ {%
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
+ }%
+ {%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\)\OR\NOT\boolean{glshyperfirst}}%
+ {%
+ \@gls@link[#1,hyper=false]{#2}{\MakeUppercase{\@glo@text}}%
+ }%
+ {%
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
+ }%
+ }%
+ \glsunset{#2}%
+ }%
+}
+\def\@acrshort#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@glo@text{%
+ \glsshortaccessdisplay{\glsentryshort{#2}}{#2}%
+ }%
+ \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}%
+ }%
+}
+\def\@Acrshort#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@glo@text{%
+ \glsshortaccessdisplay{\Glsentryshort{#2}}{#2}%
+ }%
+ \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}%
+ }%
+}
+\def\@ACRshort#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@glo@text{%
+ \glsshortaccessdisplay{\MakeUppercase{\glsentryshort{#2}}}{#2}%
+ }%
+ \@gls@link[#1]{#2}{\acronymfont{\@glo@text#3}}%
+ }%
+}
+\def\@acrlong#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@glo@text{%
+ \glslongaccessdisplay{\glsentrylong{#2}}{#2}%
+ }%
+ \@gls@link[#1]{#2}{\@glo@text#3}%
+ }%
+}
+\def\@Acrlong#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@glo@text{%
+ \glslongaccessdisplay{\Glsentrylong{#2}}{#2}%
+ }%
+ \@gls@link[#1]{#2}{\@glo@text#3}%
+ }%
+}
+\def\@ACRlong#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@glo@text{%
+ \glslongaccessdisplay{\MakeUppercase{\glsentrylong{#2}}}{#2}%
+ }%
+ \@gls@link[#1]{#2}{\@glo@text#3}%
+ }%
+}
+\ifglsxindy
+ \renewcommand*{\@glossaryentryfield}{%
+ \string\\accsuppglossaryentryfield}
+\else
+ \renewcommand*{\@glossaryentryfield}{%
+ \string\accsuppglossaryentryfield}
+\fi
+\ifglsxindy
+ \renewcommand*{\@glossarysubentryfield}{%
+ \string\\accsuppglossarysubentryfield}
+\else
+ \renewcommand*{\@glossarysubentryfield}{%
+ \string\accsuppglossarysubentryfield}
+\fi
+\newcommand*{\accsuppglossaryentryfield}[5]{%
+ \glossaryentryfield{#1}%
+ {\glsnameaccessdisplay{#2}{#1}}%
+ {\glsdescriptionaccessdisplay{#3}{#1}}%
+ {\glssymbolaccessdisplay{#4}{#1}}{#5}%
+}
+\newcommand*{\accsuppglossarysubentryfield}[6]{%
+ \glossaryentryfield{#1}{#2}%
+ {\glsnameaccessdisplay{#3}{#2}}%
+ {\glsdescriptionaccessdisplay{#4}{#2}}%
+ {\glssymbolaccessdisplay{#5}{#2}}{#6}%
+}
+\renewcommand*{\newacronymhook}{%
+ \edef\@gls@keylist{shortaccess=\the\glslongtok,%
+ \the\glskeylisttok}%
+ \expandafter\glskeylisttok\expandafter{\@gls@keylist}%
+}
+\renewcommand*{\DefaultNewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\the\glsshorttok},%
+ description={\the\glslongtok},%
+ descriptionaccess=\relax,
+ text={\the\glsshorttok},%
+ access={\noexpand\@glo@textaccess},%
+ sort={\the\glsshorttok},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ shortaccess={\the\glslongtok},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ descriptionplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ first={\noexpand\glslongaccessdisplay
+ {\the\glslongtok}{\the\glslabeltok}\space
+ (\noexpand\glsshortaccessdisplay
+ {\the\glsshorttok}{\the\glslabeltok})},%
+ plural={\the\glsshorttok\acrpluralsuffix},%
+ firstplural={\noexpand\glslongpluralaccessdisplay
+ {\noexpand\@glo@longpl}{\the\glslabeltok}\space
+ (\noexpand\glsshortpluralaccessdisplay
+ {\noexpand\@glo@shortpl}{\the\glslabeltok})},%
+ firstaccess=\relax,
+ firstpluralaccess=\relax,
+ textaccess={\noexpand\@glo@shortaccess},%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\renewcommand*{\DescriptionFootnoteNewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\noexpand\acronymfont{\the\glsshorttok}},%
+ sort={\the\glsshorttok},%
+ text={\the\glsshorttok},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ shortaccess={\the\glslongtok},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ access={\noexpand\@glo@textaccess},%
+ plural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ symbol={\the\glslongtok},%
+ symbolplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ firstpluralaccess=\relax,
+ textaccess={\noexpand\@glo@shortaccess},%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\renewcommand*{\DescriptionNewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\noexpand
+ \acrnameformat{\the\glsshorttok}{\the\glslongtok}},%
+ access={\noexpand\@glo@textaccess},%
+ sort={\the\glsshorttok},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ shortaccess={\the\glslongtok},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ first={\the\glslongtok},%
+ firstaccess=\relax,
+ firstplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ text={\the\glsshorttok},%
+ textaccess={\the\glslongtok},%
+ plural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ symbol={\noexpand\@glo@text},%
+ symbolaccess={\noexpand\@glo@textaccess},%
+ symbolplural={\noexpand\@glo@plural},%
+ firstpluralaccess=\relax,
+ textaccess={\noexpand\@glo@shortaccess},%
+ \the\glskeylisttok}%
+ }%
+ \@do@newglossaryentry
+}
+\renewcommand*{\FootnoteNewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\noexpand\acronymfont{\the\glsshorttok}},%
+ sort={\the\glsshorttok},%
+ text={\the\glsshorttok},%
+ textaccess={\the\glslongtok},%
+ access={\noexpand\@glo@textaccess},%
+ plural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ description={\the\glslongtok},%
+ descriptionplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\renewcommand*{\SmallNewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\noexpand\acronymfont{\the\glsshorttok}},%
+ access={\noexpand\@glo@symbolaccess},%
+ sort={\the\glsshorttok},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ shortaccess={\the\glslongtok},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ text={\noexpand\@glo@short},%
+ textaccess={\noexpand\@glo@shortaccess},%
+ plural={\noexpand\@glo@shortpl},%
+ first={\the\glslongtok},%
+ firstaccess=\relax,
+ firstplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ description={\noexpand\@glo@first},%
+ descriptionplural={\noexpand\@glo@firstplural},%
+ symbol={\the\glsshorttok},%
+ symbolaccess={\the\glslongtok},%
+ symbolplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+ \newcommand*{\glsshortaccesskey}{\glsshortkey access}%
+ \newcommand*{\glsshortpluralaccesskey}{\glsshortpluralkey access}%
+ \newcommand*{\glslongaccesskey}{\glslongkey access}%
+ \newcommand*{\glslongpluralaccesskey}{\glslongpluralkey access}%
+\newcommand*{\showglonameaccess}[1]{%
+ \expandafter\show\csname glo@#1@textaccess\endcsname
+}
+\newcommand*{\showglotextaccess}[1]{%
+ \expandafter\show\csname glo@#1@textaccess\endcsname
+}
+\newcommand*{\showglopluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@pluralaccess\endcsname
+}
+\newcommand*{\showglofirstaccess}[1]{%
+ \expandafter\show\csname glo@#1@firstaccess\endcsname
+}
+\newcommand*{\showglofirstpluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@firstpluralaccess\endcsname
+}
+\newcommand*{\showglosymbolaccess}[1]{%
+ \expandafter\show\csname glo@#1@symbolaccess\endcsname
+}
+\newcommand*{\showglosymbolpluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@symbolpluralaccess\endcsname
+}
+\newcommand*{\showglodescaccess}[1]{%
+ \expandafter\show\csname glo@#1@descaccess\endcsname
+}
+\newcommand*{\showglodescpluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@descpluralaccess\endcsname
+}
+\newcommand*{\showgloshortaccess}[1]{%
+ \expandafter\show\csname glo@#1@shortaccess\endcsname
+}
+\newcommand*{\showgloshortpluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@shortpluralaccess\endcsname
+}
+\newcommand*{\showglolongaccess}[1]{%
+ \expandafter\show\csname glo@#1@longaccess\endcsname
+}
+\newcommand*{\showglolongpluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@longpluralaccess\endcsname
+}
+\endinput
+%%
+%% End of file `glossaries-accsupp.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossaries-babel.sty b/support/makeglossariesgui/src/tests/old-version-301/glossaries-babel.sty
new file mode 100644
index 0000000000..cb4c936813
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossaries-babel.sty
@@ -0,0 +1,297 @@
+%%
+%% This is file `glossaries-babel.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossaries-babel.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossaries-babel}[2009/04/16 v1.2 (NLCT)]
+\@ifundefined{captionsenglish}{}{%
+ \addto\captionsenglish{%
+ \renewcommand*{\glossaryname}{Glossary}%
+ \renewcommand*{\acronymname}{Acronyms}%
+ \renewcommand*{\entryname}{Notation}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Page List}%
+ \renewcommand*{\glssymbolsgroupname}{Symbols}%
+ \renewcommand*{\glsnumbersgroupname}{Numbers}%
+}%
+}
+\@ifundefined{captionsamerican}{}{%
+ \addto\captionsamerican{%
+ \renewcommand*{\glossaryname}{Glossary}%
+ \renewcommand*{\acronymname}{Acronyms}%
+ \renewcommand*{\entryname}{Notation}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Page List}%
+ \renewcommand*{\glssymbolsgroupname}{Symbols}%
+ \renewcommand*{\glsnumbersgroupname}{Numbers}%
+}%
+}
+\@ifundefined{captionsaustralian}{}{%
+ \addto\captionsaustralian{%
+ \renewcommand*{\glossaryname}{Glossary}%
+ \renewcommand*{\acronymname}{Acronyms}%
+ \renewcommand*{\entryname}{Notation}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Page List}%
+ \renewcommand*{\glssymbolsgroupname}{Symbols}%
+ \renewcommand*{\glsnumbersgroupname}{Numbers}%
+}%
+}
+\@ifundefined{captionsbritish}{}{%
+ \addto\captionsbritish{%
+ \renewcommand*{\glossaryname}{Glossary}%
+ \renewcommand*{\acronymname}{Acronyms}%
+ \renewcommand*{\entryname}{Notation}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Page List}%
+ \renewcommand*{\glssymbolsgroupname}{Symbols}%
+ \renewcommand*{\glsnumbersgroupname}{Numbers}%
+}}%
+\@ifundefined{captionscanadian}{}{%
+ \addto\captionscanadian{%
+ \renewcommand*{\glossaryname}{Glossary}%
+ \renewcommand*{\acronymname}{Acronyms}%
+ \renewcommand*{\entryname}{Notation}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Page List}%
+ \renewcommand*{\glssymbolsgroupname}{Symbols}%
+ \renewcommand*{\glsnumbersgroupname}{Numbers}%
+}%
+}
+\@ifundefined{captionsnewzealand}{}{%
+ \addto\captionsnewzealand{%
+ \renewcommand*{\glossaryname}{Glossary}%
+ \renewcommand*{\acronymname}{Acronyms}%
+ \renewcommand*{\entryname}{Notation}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Page List}%
+ \renewcommand*{\glssymbolsgroupname}{Symbols}%
+ \renewcommand*{\glsnumbersgroupname}{Numbers}%
+}%
+}
+\@ifundefined{captionsUKenglish}{}{%
+ \addto\captionsUKenglish{%
+ \renewcommand*{\glossaryname}{Glossary}%
+ \renewcommand*{\acronymname}{Acronyms}%
+ \renewcommand*{\entryname}{Notation}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Page List}%
+ \renewcommand*{\glssymbolsgroupname}{Symbols}%
+ \renewcommand*{\glsnumbersgroupname}{Numbers}%
+}%
+}
+\@ifundefined{captionsUSenglish}{}{%
+ \addto\captionsUSenglish{%
+ \renewcommand*{\glossaryname}{Glossary}%
+ \renewcommand*{\acronymname}{Acronyms}%
+ \renewcommand*{\entryname}{Notation}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Page List}%
+ \renewcommand*{\glssymbolsgroupname}{Symbols}%
+ \renewcommand*{\glsnumbersgroupname}{Numbers}%
+}%
+}
+\@ifundefined{captionsgerman}{}{%
+ \addto\captionsgerman{%
+ \renewcommand*{\glossaryname}{Glossar}%
+ \renewcommand*{\acronymname}{Akronyme}%
+ \renewcommand*{\entryname}{Bezeichnung}%
+ \renewcommand*{\descriptionname}{Beschreibung}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Seiten}%
+ \renewcommand*{\glssymbolsgroupname}{Symbole}%
+ \renewcommand*{\glsnumbersgroupname}{Zahlen}}
+}
+\@ifundefined{captionsngerman}{}{%
+ \addto\captionsngerman{%
+ \renewcommand*{\glossaryname}{Glossar}%
+ \renewcommand*{\acronymname}{Akronyme}%
+ \renewcommand*{\entryname}{Bezeichnung}%
+ \renewcommand*{\descriptionname}{Beschreibung}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Seiten}%
+ \renewcommand*{\glssymbolsgroupname}{Symbole}%
+ \renewcommand*{\glsnumbersgroupname}{Zahlen}}
+}
+\@ifundefined{captionsitalian}{}{%
+ \addto\captionsitalian{%
+ \renewcommand*{\glossaryname}{Glossario}%
+ \renewcommand*{\acronymname}{Acronimi}%
+ \renewcommand*{\entryname}{Nomenclatura}%
+ \renewcommand*{\descriptionname}{Descrizione}%
+ \renewcommand*{\symbolname}{Simbolo}%
+ \renewcommand*{\pagelistname}{Elenco delle pagine}%
+ \renewcommand*{\glssymbolsgroupname}{Simboli}%
+ \renewcommand*{\glsnumbersgroupname}{Numeri}}
+}
+\@ifundefined{captionsdutch}{}{%
+ \addto\captionsdutch{%
+ \renewcommand*{\glossaryname}{Woordenlijst}%
+ \renewcommand*{\acronymname}{Acroniemen}%
+ \renewcommand*{\entryname}{Benaming}%
+ \renewcommand*{\descriptionname}{Beschrijving}%
+ \renewcommand*{\symbolname}{Symbool}%
+ \renewcommand*{\pagelistname}{Pagina's}%
+ \renewcommand*{\glssymbolsgroupname}{Symbolen}%
+ \renewcommand*{\glsnumbersgroupname}{Cijfers}}
+}
+\@ifundefined{captionsspanish}{}{%
+ \addto\captionsspanish{%
+ \renewcommand*{\glossaryname}{Glosario}%
+ \renewcommand*{\acronymname}{Siglas}%
+ \renewcommand*{\entryname}{Entrada}%
+ \renewcommand*{\descriptionname}{Descripci\'on}%
+ \renewcommand*{\symbolname}{S\'{\i}mbolo}%
+ \renewcommand*{\pagelistname}{Lista de p\'aginas}%
+ \renewcommand*{\glssymbolsgroupname}{S\'{\i}mbolos}%
+ \renewcommand*{\glsnumbersgroupname}{N\'umeros}}
+}
+\@ifundefined{captionsfrench}{}{%
+ \addto\captionsfrench{%
+ \renewcommand*{\glossaryname}{Glossaire}%
+ \renewcommand*{\acronymname}{Acronymes}%
+ \renewcommand*{\entryname}{Terme}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbole}%
+ \renewcommand*{\pagelistname}{Pages}%
+ \renewcommand*{\glssymbolsgroupname}{Symboles}%
+ \renewcommand*{\glsnumbersgroupname}{Nombres}}
+}
+\@ifundefined{captionsfrenchb}{}{%
+ \addto\captionsfrenchb{%
+ \renewcommand*{\glossaryname}{Glossaire}%
+ \renewcommand*{\acronymname}{Acronymes}%
+ \renewcommand*{\entryname}{Terme}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbole}%
+ \renewcommand*{\pagelistname}{Pages}%
+ \renewcommand*{\glssymbolsgroupname}{Symboles}%
+ \renewcommand*{\glsnumbersgroupname}{Nombres}}
+}
+\@ifundefined{captionsfrancais}{}{%
+ \addto\captionsfrancais{%
+ \renewcommand*{\glossaryname}{Glossaire}%
+ \renewcommand*{\acronymname}{Acronymes}%
+ \renewcommand*{\entryname}{Terme}%
+ \renewcommand*{\descriptionname}{Description}%
+ \renewcommand*{\symbolname}{Symbole}%
+ \renewcommand*{\pagelistname}{Pages}%
+ \renewcommand*{\glssymbolsgroupname}{Symboles}%
+ \renewcommand*{\glsnumbersgroupname}{Nombres}}
+}
+\@ifundefined{captionsdanish}{}{%
+ \addto\captionsdanish{%
+ \renewcommand*{\glossaryname}{Ordliste}%
+ \renewcommand*{\acronymname}{Akronymer}%
+ \renewcommand*{\entryname}{Symbolforklaring}%
+ \renewcommand*{\descriptionname}{Beskrivelse}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Side}%
+ \renewcommand*{\glssymbolsgroupname}{Symboler}%
+ \renewcommand*{\glsnumbersgroupname}{Tal}}
+}
+\@ifundefined{captionsirish}{}{%
+ \addto\captionsirish{%
+ \renewcommand*{\glossaryname}{Gluais}%
+ \renewcommand*{\acronymname}{Acrainmneacha}%
+ \renewcommand*{\entryname}{Ciall}%
+ \renewcommand*{\descriptionname}{Tuairisc}%
+ \renewcommand*{\symbolname}{Comhartha}%
+ \renewcommand*{\glssymbolsgroupname}{Comhartha\'{\i}}%
+ \renewcommand*{\pagelistname}{Leathanaigh}%
+ \renewcommand*{\glsnumbersgroupname}{Uimhreacha}}
+}
+\@ifundefined{captionsmagyar}{}{%
+ \addto\captionsmagyar{%
+ \renewcommand*{\glossaryname}{Sz\'ojegyz\'ek}%
+ \renewcommand*{\acronymname}{Bet\H uszavak}%
+ \renewcommand*{\entryname}{Kifejez\'es}%
+ \renewcommand*{\descriptionname}{Magyar\'azat}%
+ \renewcommand*{\symbolname}{Jel\"ol\'es}%
+ \renewcommand*{\pagelistname}{Oldalsz\'am}%
+ \renewcommand*{\glssymbolsgroupname}{Jelek}%
+ \renewcommand*{\glsnumbersgroupname}{Sz\'amjegyek}%
+ }
+}
+\@ifundefined{captionshungarian}{}{%
+ \addto\captionshungarian{%
+ \renewcommand*{\glossaryname}{Sz\'ojegyz\'ek}%
+ \renewcommand*{\acronymname}{Bet\H uszavak}%
+ \renewcommand*{\entryname}{Kifejez\'es}%
+ \renewcommand*{\descriptionname}{Magyar\'azat}%
+ \renewcommand*{\symbolname}{Jel\"ol\'es}%
+ \renewcommand*{\pagelistname}{Oldalsz\'am}%
+ \renewcommand*{\glssymbolsgroupname}{Jelek}%
+ \renewcommand*{\glsnumbersgroupname}{Sz\'amjegyek}%
+ }
+}
+\@ifundefined{captionspolish}{}{%
+ \addto\captionspolish{%
+ \renewcommand*{\glossaryname}{S{\l}ownik termin\'ow}%
+ \renewcommand*{\acronymname}{Skr\'ot}%
+ \renewcommand*{\entryname}{Termin}%
+ \renewcommand*{\descriptionname}{Opis}%
+ \renewcommand*{\symbolname}{Symbol}%
+ \renewcommand*{\pagelistname}{Strony}%
+ \renewcommand*{\glssymbolsgroupname}{Symbole}%
+ \renewcommand*{\glsnumbersgroupname}{Liczby}}
+}
+\@ifundefined{captionsbrazil}{}{%
+ \addto\captionsbrazil{%
+ \renewcommand*{\glossaryname}{Gloss\'ario}%
+ \renewcommand*{\acronymname}{Siglas}%
+ \renewcommand*{\entryname}{Nota\c c\~ao}%
+ \renewcommand*{\descriptionname}{Descri\c c\~ao}%
+ \renewcommand*{\symbolname}{S\'imbolo}%
+ \renewcommand*{\pagelistname}{Lista de P\'aginas}%
+ \renewcommand*{\glssymbolsgroupname}{S\'imbolos}%
+ \renewcommand*{\glsnumbersgroupname}{N\'umeros}%
+ }%
+}
+\endinput
+%%
+%% End of file `glossaries-babel.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossaries-compatible-207.sty b/support/makeglossariesgui/src/tests/old-version-301/glossaries-compatible-207.sty
new file mode 100644
index 0000000000..05bd60a57d
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossaries-compatible-207.sty
@@ -0,0 +1,328 @@
+%%
+%% This is file `glossaries-compatible-207.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossaries-compatible-207.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossaries-compatible-207}[2011/04/02 v1.0 (NLCT)]
+\ifglsxindy
+ \renewcommand*\GlsAddXdyAttribute[1]{%
+ \edef\@xdyattributes{\@xdyattributes ^^J \string"#1\string"}%
+ \expandafter\toks@\expandafter{\@xdylocref}%
+ \edef\@xdylocref{\the\toks@ ^^J%
+ (markup-locref
+ :open \string"\string~n\string\setentrycounter
+ {\noexpand\glscounter}%
+ \expandafter\string\csname#1\endcsname
+ \expandafter\@gobble\string\{\string" ^^J
+ :close \string"\expandafter\@gobble\string\}\string" ^^J
+ :attr \string"#1\string")}}
+\fi
+\renewcommand*\GlsAddXdyCounters[1]{%
+ \GlossariesWarning{\string\GlsAddXdyCounters\space not available
+ in compatibility mode.}%
+}
+ \GlsAddXdyAttribute{glsnumberformat}
+ \GlsAddXdyAttribute{textrm}
+ \GlsAddXdyAttribute{textsf}
+ \GlsAddXdyAttribute{texttt}
+ \GlsAddXdyAttribute{textbf}
+ \GlsAddXdyAttribute{textmd}
+ \GlsAddXdyAttribute{textit}
+ \GlsAddXdyAttribute{textup}
+ \GlsAddXdyAttribute{textsl}
+ \GlsAddXdyAttribute{textsc}
+ \GlsAddXdyAttribute{emph}
+ \GlsAddXdyAttribute{glshypernumber}
+ \GlsAddXdyAttribute{hyperrm}
+ \GlsAddXdyAttribute{hypersf}
+ \GlsAddXdyAttribute{hypertt}
+ \GlsAddXdyAttribute{hyperbf}
+ \GlsAddXdyAttribute{hypermd}
+ \GlsAddXdyAttribute{hyperit}
+ \GlsAddXdyAttribute{hyperup}
+ \GlsAddXdyAttribute{hypersl}
+ \GlsAddXdyAttribute{hypersc}
+ \GlsAddXdyAttribute{hyperemph}
+\ifglsxindy
+ \renewcommand*{\GlsAddXdyLocation}[2]{%
+ \edef\@xdyuserlocationdefs{%
+ \@xdyuserlocationdefs ^^J%
+ (define-location-class \string"#1\string"^^J\space\space
+ \space(#2))
+ }%
+ \edef\@xdyuserlocationnames{%
+ \@xdyuserlocationnames^^J\space\space\space
+ \string"#1\string"}%
+ }
+\fi
+\renewcommand{\@do@wrglossary}[1]{%
+\ifglsxindy
+ \expandafter\@glo@check@mkidxrangechar\@glsnumberformat\@nil
+ \def\@glo@range{}%
+ \expandafter\if\@glo@prefix(\relax
+ \def\@glo@range{:open-range}%
+ \else
+ \expandafter\if\@glo@prefix)\relax
+ \def\@glo@range{:close-range}%
+ \fi
+ \fi
+ \protected@edef\@glslocref{\theglsentrycounter}%
+ \@gls@checkmkidxchars\@glslocref
+ \glossary[\csname glo@#1@type\endcsname]{%
+ (indexentry :tkey (\csname glo@#1@index\endcsname)
+ :locref \string"\@glslocref\string" %
+ :attr \string"\@glo@suffix\string" \@glo@range
+ )
+ }%
+\else
+ \@set@glo@numformat\@glo@numfmt\@gls@counter\@glsnumberformat
+ \glossary[\csname glo@#1@type\endcsname]{%
+ \string\glossaryentry{\csname glo@#1@index\endcsname
+ \@gls@encapchar\@glo@numfmt}{\theglsentrycounter}}%
+\fi
+}
+\def\@set@glo@numformat#1#2#3{%
+ \expandafter\@glo@check@mkidxrangechar#3\@nil
+ \protected@edef#1{%
+ \@glo@prefix setentrycounter[]{#2}%
+ \expandafter\string\csname\@glo@suffix\endcsname
+ }%
+ \@gls@checkmkidxchars#1%
+}
+\ifglsxindy
+ \def\writeist{%
+ \openout\glswrite=\istfilename
+ \write\glswrite{;; xindy style file created by the glossaries
+ package in compatible-2.07 mode}%
+ \write\glswrite{;; for document '\jobname' on
+ \the\year-\the\month-\the\day}%
+ \write\glswrite{^^J; required styles^^J}
+ \@for\@xdystyle:=\@xdyrequiredstyles\do{%
+ \ifx\@xdystyle\@empty
+ \else
+ \protected@write\glswrite{}{(require
+ \string"\@xdystyle.xdy\string")}%
+ \fi
+ }%
+ \write\glswrite{^^J%
+ ; list of allowed attributes (number formats)^^J}%
+ \write\glswrite{(define-attributes ((\@xdyattributes)))}%
+ \write\glswrite{^^J; user defined alphabets^^J}%
+ \write\glswrite{\@xdyuseralphabets}%
+ \write\glswrite{^^J; location class definitions^^J}%
+ \protected@edef\@gls@roman{\@roman{0\string"
+ \string"roman-numbers-lowercase\string" :sep \string"}}%
+ \@onelevel@sanitize\@gls@roman
+ \edef\@tmp{\string" \string"roman-numbers-lowercase\string"
+ :sep \string"}%
+ \@onelevel@sanitize\@tmp
+ \ifx\@tmp\@gls@roman
+ \write\glswrite{(define-location-class
+ \string"roman-page-numbers\string"^^J\space\space\space
+ (\string"roman-numbers-lowercase\string")
+ :min-range-length \@glsminrange)}%
+ \else
+ \write\glswrite{(define-location-class
+ \string"roman-page-numbers\string"^^J\space\space\space
+ (:sep "\@gls@roman")
+ :min-range-length \@glsminrange)}%
+ \fi
+ \write\glswrite{(define-location-class
+ \string"Roman-page-numbers\string"^^J\space\space\space
+ (\string"roman-numbers-uppercase\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{(define-location-class
+ \string"arabic-page-numbers\string"^^J\space\space\space
+ (\string"arabic-numbers\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{(define-location-class
+ \string"alpha-page-numbers\string"^^J\space\space\space
+ (\string"alpha\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{(define-location-class
+ \string"Alpha-page-numbers\string"^^J\space\space\space
+ (\string"ALPHA\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{(define-location-class
+ \string"Appendix-page-numbers\string"^^J\space\space\space
+ (\string"ALPHA\string"
+ :sep \string"\@glsAlphacompositor\string"
+ \string"arabic-numbers\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{(define-location-class
+ \string"arabic-section-numbers\string"^^J\space\space\space
+ (\string"arabic-numbers\string"
+ :sep \string"\glscompositor\string"
+ \string"arabic-numbers\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{^^J; user defined location classes}%
+ \write\glswrite{\@xdyuserlocationdefs}%
+ \write\glswrite{^^J; define cross-reference class^^J}%
+ \write\glswrite{(define-crossref-class \string"see\string"
+ :unverified )}%
+ \write\glswrite{(markup-crossref-list
+ :class \string"see\string"^^J\space\space\space
+ :open \string"\string\glsseeformat\string"
+ :close \string"{}\string")}%
+ \write\glswrite{^^J; define the order of the location classes}%
+ \write\glswrite{(define-location-class-order
+ (\@xdylocationclassorder))}%
+ \write\glswrite{^^J; define the glossary markup^^J}%
+ \write\glswrite{(markup-index^^J\space\space\space
+ :open \string"\string
+ \glossarysection[\string\glossarytoctitle]{\string
+ \glossarytitle}\string\glossarypreamble\string~n\string\begin
+ {theglossary}\string\glossaryheader\string~n\string" ^^J\space
+ \space\space:close \string"\expandafter\@gobble
+ \string\%\string~n\string
+ \end{theglossary}\string\glossarypostamble
+ \string~n\string" ^^J\space\space\space
+ :tree)}%
+ \write\glswrite{(markup-letter-group-list
+ :sep \string"\string\glsgroupskip\string~n\string")}%
+ \write\glswrite{(markup-indexentry
+ :open \string"\string\relax \string\glsresetentrylist
+ \string~n\string")}%
+ \write\glswrite{(markup-locclass-list :open
+ \string"\glsopenbrace\string\glossaryentrynumbers
+ \glsopenbrace\string\relax\space \string"^^J\space\space\space
+ :sep \string", \string"
+ :close \string"\glsclosebrace\glsclosebrace\string")}%
+ \write\glswrite{(markup-locref-list
+ :sep \string"\string\delimN\space\string")}%
+ \write\glswrite{(markup-range
+ :sep \string"\string\delimR\space\string")}%
+ \@onelevel@sanitize\gls@suffixF
+ \@onelevel@sanitize\gls@suffixFF
+ \ifx\gls@suffixF\@empty
+ \else
+ \write\glswrite{(markup-range
+ :close "\gls@suffixF" :length 1 :ignore-end)}%
+ \fi
+ \ifx\gls@suffixFF\@empty
+ \else
+ \write\glswrite{(markup-range
+ :close "\gls@suffixFF" :length 2 :ignore-end)}%
+ \fi
+ \write\glswrite{^^J; define format to use for locations^^J}%
+ \write\glswrite{\@xdylocref}%
+ \write\glswrite{^^J; define letter group list format^^J}%
+ \write\glswrite{(markup-letter-group-list
+ :sep \string"\string\glsgroupskip\string~n\string")}%
+ \write\glswrite{^^J; letter group headings^^J}%
+ \write\glswrite{(markup-letter-group
+ :open-head \string"\string\glsgroupheading
+ \glsopenbrace\string"^^J\space\space\space
+ :close-head \string"\glsclosebrace\string")}%
+ \write\glswrite{^^J; additional letter groups^^J}%
+ \write\glswrite{\@xdylettergroups}%
+ \write\glswrite{^^J; additional sort rules^^J}
+ \write\glswrite{\@xdysortrules}%
+ \noist}
+\else
+ \edef\@gls@actualchar{\string?}
+ \edef\@gls@encapchar{\string|}
+ \edef\@gls@levelchar{\string!}
+ \edef\@gls@quotechar{\string"}
+ \def\writeist{\relax
+ \openout\glswrite=\istfilename
+ \write\glswrite{\expandafter\@gobble\string\% makeindex style file
+ created by the glossaries package}
+ \write\glswrite{\expandafter\@gobble\string\% for document
+ '\jobname' on \the\year-\the\month-\the\day}
+ \write\glswrite{actual '\@gls@actualchar'}
+ \write\glswrite{encap '\@gls@encapchar'}
+ \write\glswrite{level '\@gls@levelchar'}
+ \write\glswrite{quote '\@gls@quotechar'}
+ \write\glswrite{keyword \string"\string\\glossaryentry\string"}
+ \write\glswrite{preamble \string"\string\\glossarysection[\string
+ \\glossarytoctitle]{\string\\glossarytitle}\string
+ \\glossarypreamble\string\n\string\\begin{theglossary}\string
+ \\glossaryheader\string\n\string"}
+ \write\glswrite{postamble \string"\string\%\string\n\string
+ \\end{theglossary}\string\\glossarypostamble\string\n
+ \string"}
+ \write\glswrite{group_skip \string"\string\\glsgroupskip\string\n
+ \string"}
+ \write\glswrite{item_0 \string"\string\%\string\n\string"}
+ \write\glswrite{item_1 \string"\string\%\string\n\string"}
+ \write\glswrite{item_2 \string"\string\%\string\n\string"}
+ \write\glswrite{item_01 \string"\string\%\string\n\string"}
+ \write\glswrite{item_x1
+ \string"\string\\relax \string\\glsresetentrylist\string\n
+ \string"}
+ \write\glswrite{item_12 \string"\string\%\string\n\string"}
+ \write\glswrite{item_x2
+ \string"\string\\relax \string\\glsresetentrylist\string\n
+ \string"}
+ \write\glswrite{delim_0 \string"\string\{\string
+ \\glossaryentrynumbers\string\{\string\\relax \string"}
+ \write\glswrite{delim_1 \string"\string\{\string
+ \\glossaryentrynumbers\string\{\string\\relax \string"}
+ \write\glswrite{delim_2 \string"\string\{\string
+ \\glossaryentrynumbers\string\{\string\\relax \string"}
+ \write\glswrite{delim_t \string"\string\}\string\}\string"}
+ \write\glswrite{delim_n \string"\string\\delimN \string"}
+ \write\glswrite{delim_r \string"\string\\delimR \string"}
+ \write\glswrite{headings_flag 1}
+ \write\glswrite{heading_prefix
+ \string"\string\\glsgroupheading\string\{\string"}
+ \write\glswrite{heading_suffix
+ \string"\string\}\string\\relax
+ \string\\glsresetentrylist \string"}
+ \write\glswrite{symhead_positive \string"glssymbols\string"}
+ \write\glswrite{numhead_positive \string"glsnumbers\string"}
+ \write\glswrite{page_compositor \string"\glscompositor\string"}
+ \@gls@escbsdq\gls@suffixF
+ \@gls@escbsdq\gls@suffixFF
+ \ifx\gls@suffixF\@empty
+ \else
+ \write\glswrite{suffix_2p \string"\gls@suffixF\string"}
+ \fi
+ \ifx\gls@suffixFF\@empty
+ \else
+ \write\glswrite{suffix_3p \string"\gls@suffixFF\string"}
+ \fi
+ \noist
+ }
+\fi
+\renewcommand*{\noist}{\let\writeist\relax}
+\endinput
+%%
+%% End of file `glossaries-compatible-207.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossaries-polyglossia.sty b/support/makeglossariesgui/src/tests/old-version-301/glossaries-polyglossia.sty
new file mode 100644
index 0000000000..a92f5411d5
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossaries-polyglossia.sty
@@ -0,0 +1,188 @@
+%%
+%% This is file `glossaries-polyglossia.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossaries-polyglossia.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossaries-polyglossia}[2009/11/09 v1.0 (NLCT)]
+\@ifundefined{captionsenglish}{}{%
+ \expandafter\toks@\expandafter{\captionsenglish
+ \renewcommand*{\glossaryname}{\textenglish{Glossary}}%
+ \renewcommand*{\acronymname}{\textenglish{Acronyms}}%
+ \renewcommand*{\entryname}{\textenglish{Notation}}%
+ \renewcommand*{\descriptionname}{\textenglish{Description}}%
+ \renewcommand*{\symbolname}{\textenglish{Symbol}}%
+ \renewcommand*{\pagelistname}{\textenglish{Page List}}%
+ \renewcommand*{\glssymbolsgroupname}{\textenglish{Symbols}}%
+ \renewcommand*{\glsnumbersgroupname}{\textenglish{Numbers}}%
+ }%
+ \edef\captionsenglish{\the\toks@}%
+}
+\@ifundefined{captionsgerman}{}{%
+ \expandafter\toks@\expandafter{\captionsgerman
+ \renewcommand*{\glossaryname}{\textgerman{Glossar}}%
+ \renewcommand*{\acronymname}{\textgerman{Akronyme}}%
+ \renewcommand*{\entryname}{\textgerman{Bezeichnung}}%
+ \renewcommand*{\descriptionname}{\textgerman{Beschreibung}}%
+ \renewcommand*{\symbolname}{\textgerman{Symbol}}%
+ \renewcommand*{\pagelistname}{\textgerman{Seiten}}%
+ \renewcommand*{\glssymbolsgroupname}{\textgerman{Symbole}}%
+ \renewcommand*{\glsnumbersgroupname}{\textgerman{Zahlen}}%
+ }%
+ \edef\captionsgerman{\the\toks@}%
+}
+\@ifundefined{captionsitalian}{}{%
+ \expandafter\toks@\expandafter{\captionsitalian
+ \renewcommand*{\glossaryname}{\textitalian{Glossario}}%
+ \renewcommand*{\acronymname}{\textitalian{Acronimi}}%
+ \renewcommand*{\entryname}{\textitalian{Nomenclatura}}%
+ \renewcommand*{\descriptionname}{\textitalian{Descrizione}}%
+ \renewcommand*{\symbolname}{\textitalian{Simbolo}}%
+ \renewcommand*{\pagelistname}{\textitalian{Elenco delle pagine}}%
+ \renewcommand*{\glssymbolsgroupname}{\textitalian{Simboli}}%
+ \renewcommand*{\glsnumbersgroupname}{\textitalian{Numeri}}%
+ }%
+ \edef\captionsitalian{\the\toks@}%
+}
+\@ifundefined{captionsdutch}{}{%
+ \expandafter\toks@\expandafter{\captionsdutch
+ \renewcommand*{\glossaryname}{\textdutch{Woordenlijst}}%
+ \renewcommand*{\acronymname}{\textdutch{Acroniemen}}%
+ \renewcommand*{\entryname}{\textdutch{Benaming}}%
+ \renewcommand*{\descriptionname}{\textdutch{Beschrijving}}%
+ \renewcommand*{\symbolname}{\textdutch{Symbool}}%
+ \renewcommand*{\pagelistname}{\textdutch{Pagina's}}%
+ \renewcommand*{\glssymbolsgroupname}{\textdutch{Symbolen}}%
+ \renewcommand*{\glsnumbersgroupname}{\textdutch{Cijfers}}%
+ }%
+ \edef\captionsdutch{\the\toks@}%
+}
+\@ifundefined{captionsspanish}{}{%
+ \expandafter\toks@\expandafter{\captionsspanish
+ \renewcommand*{\glossaryname}{\textspanish{Glosario}}%
+ \renewcommand*{\acronymname}{\textspanish{Siglas}}%
+ \renewcommand*{\entryname}{\textspanish{Entrada}}%
+ \renewcommand*{\descriptionname}{\textspanish{Descripci\'on}}%
+ \renewcommand*{\symbolname}{\textspanish{S\'{\i}mbolo}}%
+ \renewcommand*{\pagelistname}{\textspanish{Lista de p\'aginas}}%
+ \renewcommand*{\glssymbolsgroupname}{\textspanish{S\'{\i}mbolos}}%
+ \renewcommand*{\glsnumbersgroupname}{\textspanish{N\'umeros}}%
+ }%
+ \edef\captionsspanish{\the\toks@}%
+}
+\@ifundefined{captionsfrench}{}{%
+ \expandafter\toks@\expandafter{\captionsfrench
+ \renewcommand*{\glossaryname}{\textfrench{Glossaire}}%
+ \renewcommand*{\acronymname}{\textfrench{Acronymes}}%
+ \renewcommand*{\entryname}{\textfrench{Terme}}%
+ \renewcommand*{\descriptionname}{\textfrench{Description}}%
+ \renewcommand*{\symbolname}{\textfrench{Symbole}}%
+ \renewcommand*{\pagelistname}{\textfrench{Pages}}%
+ \renewcommand*{\glssymbolsgroupname}{\textfrench{Symboles}}%
+ \renewcommand*{\glsnumbersgroupname}{\textfrench{Nombres}}%
+ }%
+ \edef\captionsfrench{\the\toks@}%
+}
+\@ifundefined{captionsdanish}{}{%
+ \expandafter\toks@\expandafter{\captionsdanish
+ \renewcommand*{\glossaryname}{\textdanish{Ordliste}}%
+ \renewcommand*{\acronymname}{\textdanish{Akronymer}}%
+ \renewcommand*{\entryname}{\textdanish{Symbolforklaring}}%
+ \renewcommand*{\descriptionname}{\textdanish{Beskrivelse}}%
+ \renewcommand*{\symbolname}{\textdanish{Symbol}}%
+ \renewcommand*{\pagelistname}{\textdanish{Side}}%
+ \renewcommand*{\glssymbolsgroupname}{\textdanish{Symboler}}%
+ \renewcommand*{\glsnumbersgroupname}{\textdanish{Tal}}%
+ }%
+ \edef\captionsdanish{\the\toks@}%
+}
+\@ifundefined{captionsirish}{}{%
+ \expandafter\toks@\expandafter{\captionsirish
+ \renewcommand*{\glossaryname}{\textirish{Gluais}}%
+ \renewcommand*{\acronymname}{\textirish{Acrainmneacha}}%
+ \renewcommand*{\entryname}{\textirish{Ciall}}%
+ \renewcommand*{\descriptionname}{\textirish{Tuairisc}}%
+ \renewcommand*{\symbolname}{\textirish{Comhartha}}%
+ \renewcommand*{\glssymbolsgroupname}{\textirish{Comhartha\'{\i}}}%
+ \renewcommand*{\pagelistname}{\textirish{Leathanaigh}}%
+ \renewcommand*{\glsnumbersgroupname}{\textirish{Uimhreacha}}%
+ }%
+ \edef\captionsirish{\the\toks@}%
+}
+\@ifundefined{captionsmagyar}{}{%
+ \expandafter\toks@\expandafter{\captionsmagyar
+ \renewcommand*{\glossaryname}{\textmagyar{Sz\'ojegyz\'ek}}%
+ \renewcommand*{\acronymname}{\textmagyar{Bet\H uszavak}}%
+ \renewcommand*{\entryname}{\textmagyar{Kifejez\'es}}%
+ \renewcommand*{\descriptionname}{\textmagyar{Magyar\'azat}}%
+ \renewcommand*{\symbolname}{\textmagyar{Jel\"ol\'es}}%
+ \renewcommand*{\pagelistname}{\textmagyar{Oldalsz\'am}}%
+ \renewcommand*{\glssymbolsgroupname}{\textmagyar{Jelek}}%
+ \renewcommand*{\glsnumbersgroupname}{\textmagyar{Sz\'amjegyek}}%
+ }%
+ \edef\captionsmagyar{\the\toks@}%
+}
+\@ifundefined{captionspolish}{}{%
+ \expandafter\toks@\expandafter{\captionspolish
+ \renewcommand*{\glossaryname}{\textpolish{S{\l}ownik termin\'ow}}%
+ \renewcommand*{\acronymname}{\textpolish{Skr\'ot}}%
+ \renewcommand*{\entryname}{\textpolish{Termin}}%
+ \renewcommand*{\descriptionname}{\textpolish{Opis}}%
+ \renewcommand*{\symbolname}{\textpolish{Symbol}}%
+ \renewcommand*{\pagelistname}{\textpolish{Strony}}%
+ \renewcommand*{\glssymbolsgroupname}{\textpolish{Symbole}}%
+ \renewcommand*{\glsnumbersgroupname}{\textpolish{Liczby}}%
+ }%
+ \edef\captionspolish{\the\toks@}%
+}
+\@ifundefined{captionsportuges}{}{%
+ \expandafter\toks@\expandafter{\captionsportuges
+ \renewcommand*{\glossaryname}{\textportuges{Gloss\'ario}}%
+ \renewcommand*{\acronymname}{\textportuges{Siglas}}%
+ \renewcommand*{\entryname}{\textportuges{Nota\c c\~ao}}%
+ \renewcommand*{\descriptionname}{\textportuges{Descri\c c\~ao}}%
+ \renewcommand*{\symbolname}{\textportuges{S\'imbolo}}%
+ \renewcommand*{\pagelistname}{\textportuges{Lista de P\'aginas}}%
+ \renewcommand*{\glssymbolsgroupname}{\textportuges{S\'imbolos}}%
+ \renewcommand*{\glsnumbersgroupname}{\textportuges{N\'umeros}}%
+ }%
+ \edef\captionsportuges{\the\toks@}%
+}
+\endinput
+%%
+%% End of file `glossaries-polyglossia.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossaries.sty b/support/makeglossariesgui/src/tests/old-version-301/glossaries.sty
new file mode 100644
index 0000000000..33ad66443e
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossaries.sty
@@ -0,0 +1,4175 @@
+%%
+%% This is file `glossaries.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossaries.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossaries}[2011/04/12 v3.01 (NLCT)]
+\RequirePackage{ifthen}
+\RequirePackage{xkeyval}[2006/11/18]
+\RequirePackage{mfirstuc}
+\RequirePackage{xfor}
+\RequirePackage{amsgen}
+\RequirePackage{etoolbox}
+\define@boolkey{glossaries.sty}[gls]{toc}[true]{}
+\define@boolkey{glossaries.sty}[gls]{numberline}[true]{}
+\ifcsundef{chapter}%
+ {\newcommand*{\@@glossarysec}{section}}%
+ {\newcommand*{\@@glossarysec}{chapter}}
+\define@choicekey{glossaries.sty}{section}{part,chapter,section,%
+subsection,subsubsection,paragraph,subparagraph}[section]{%
+ \renewcommand*{\@@glossarysec}{#1}}
+\newcommand*{\@@glossarysecstar}{*}
+\newcommand*{\@@glossaryseclabel}{}
+\newcommand*{\glsautoprefix}{}
+\define@choicekey{glossaries.sty}{numberedsection}[\val\nr]{%
+false,nolabel,autolabel}[nolabel]{%
+ \ifcase\nr\relax
+ \renewcommand*{\@@glossarysecstar}{*}%
+ \renewcommand*{\@@glossaryseclabel}{}%
+ \or
+ \renewcommand*{\@@glossarysecstar}{}%
+ \renewcommand*{\@@glossaryseclabel}{}%
+ \or
+ \renewcommand*{\@@glossarysecstar}{}%
+ \renewcommand*{\@@glossaryseclabel}{%
+ \label{\glsautoprefix\@glo@type}}%
+ \fi
+}
+\newcommand*{\@glossary@default@style}{list}
+\define@key{glossaries.sty}{style}{%
+\renewcommand*{\@glossary@default@style}{#1}}
+\newcommand*{\glossaryentrynumbers}[1]{#1}
+\DeclareOptionX{nonumberlist}{%
+\renewcommand*{\glossaryentrynumbers}[1]{}}
+\newcommand*\@glo@seeautonumberlist{}
+\DeclareOptionX{seeautonumberlist}{%
+ \renewcommand*{\@glo@seeautonumberlist}{%
+ \def\@glo@prefix{\glsnextpages}%
+ }%
+}
+\newcommand*{\@gls@loadlong}{\RequirePackage{glossary-long}}
+\DeclareOptionX{nolong}{\renewcommand*{\@gls@loadlong}{}}
+\IfFileExists{supertabular.sty}{%
+ \newcommand*{\@gls@loadsuper}{\RequirePackage{glossary-super}}}{%
+ \newcommand*{\@gls@loadsuper}{}}
+\DeclareOptionX{nosuper}{\renewcommand*{\@gls@loadsuper}{}}
+\newcommand*{\@gls@loadlist}{\RequirePackage{glossary-list}}
+\DeclareOptionX{nolist}{\renewcommand*{\@gls@loadlist}{}}
+\newcommand*{\@gls@loadtree}{\RequirePackage{glossary-tree}}
+\DeclareOptionX{notree}{\renewcommand*{\@gls@loadtree}{}}
+\DeclareOptionX{nostyles}{%
+ \renewcommand*{\@gls@loadlong}{}%
+ \renewcommand*{\@gls@loadsuper}{}%
+ \renewcommand*{\@gls@loadlist}{}%
+ \renewcommand*{\@gls@loadtree}{}%
+ \let\@glossary@default@style\relax
+}
+\define@boolkey{glossaries.sty}[gls]{entrycounter}[true]{}
+\glsentrycounterfalse
+\define@key{glossaries.sty}{counterwithin}{%
+ \renewcommand*{\@gls@counterwithin}{#1}%
+ \glsentrycountertrue
+}
+\newcommand*{\@gls@counterwithin}{}
+\define@boolkey{glossaries.sty}[gls]{subentrycounter}[true]{}
+\glssubentrycounterfalse
+\define@choicekey{glossaries.sty}{sort}{standard,def,use}{%
+ \csname @gls@setupsort@#1\endcsname
+}
+\newcommand*{\@gls@setupsort@standard}{%
+ \def\do@glo@storeentry{\@glo@storeentry}%
+ \def\@gls@defsortcount##1{}%
+ \def\@gls@defsort##1##2{%
+ \ifx\@glo@sort\@glsdefaultsort
+ \let\@glo@sort\@glo@name
+ \fi
+ \@onelevel@sanitize\@glo@sort
+ \expandafter\protected@xdef\csname glo@##2@sort\endcsname{\@glo@sort}%
+ }%
+ \def\@gls@setsort##1{}%
+}
+\@gls@setupsort@standard
+\newcommand*\glssortnumberfmt[1]{%
+ \ifnum#1<100000 0\fi
+ \ifnum#1<10000 0\fi
+ \ifnum#1<1000 0\fi
+ \ifnum#1<100 0\fi
+ \ifnum#1<10 0\fi
+ \number#1%
+}
+\newcommand*{\@gls@setupsort@def}{%
+ \def\do@glo@storeentry{\@glo@storeentry}%
+ \def\@gls@defsortcount##1{%
+ \expandafter\global
+ \expandafter\newcount\csname glossary@##1@sortcount\endcsname
+ }%
+ \def\@gls@defsort##1##2{%
+ \expandafter\global\expandafter
+ \advance\csname glossary@##1@sortcount\endcsname by 1\relax
+ \expandafter\protected@xdef\csname glo@##2@sort\endcsname{%
+ \expandafter\glssortnumberfmt
+ {\csname glossary@##1@sortcount\endcsname}}%
+ }%
+ \def\@gls@setsort##1{}%
+}
+\newcommand*{\@gls@setupsort@use}{%
+ \let\do@glo@storeentry\@gobble
+ \def\@gls@defsortcount##1{%
+ \expandafter\global
+ \expandafter\newcount\csname glossary@##1@sortcount\endcsname
+ }%
+ \def\@gls@defsort##1##2{%
+ \expandafter\gdef\csname glo@##2@sort\endcsname{}%
+ }%
+ \def\@gls@setsort##1{%
+ \edef\@glo@parent{\csname glo@##1@parent\endcsname}%
+ \ifx\@glo@parent\@empty
+ \else
+ \expandafter\@gls@setsort\expandafter{\@glo@parent}%
+ \fi
+ \edef\@glo@type{\csname glo@##1@type\endcsname}%
+ \edef\@gls@tmp{\csname glo@##1@sort\endcsname}%
+ \ifx\@gls@tmp\@empty
+ \expandafter\global\expandafter
+ \advance\csname glossary@\@glo@type @sortcount\endcsname by 1\relax
+ \expandafter\protected@xdef\csname glo@##1@sort\endcsname{%
+ \expandafter\glssortnumberfmt
+ {\csname glossary@\@glo@type @sortcount\endcsname}}%
+ \@glo@storeentry{##1}%
+ \fi
+ }%
+}
+\newcommand*{\glsdefmain}{%
+ \newglossary{main}{gls}{glo}{\glossaryname}%
+}
+\newcommand*{\glsdefaulttype}{main}
+\newcommand*{\acronymtype}{\glsdefaulttype}
+\DeclareOptionX{nomain}{%
+ \let\glsdefaulttype\relax
+ \renewcommand*{\glsdefmain}{}%
+}
+\define@boolkey{glossaries.sty}[gls]{acronym}[true]{%
+ \DeclareAcronymList{acronym}%
+}
+\newcommand*{\@glsacronymlists}{}
+\newcommand*{\@addtoacronymlists}[1]{%
+ \ifx\@glsacronymlists\@empty
+ \protected@xdef\@glsacronymlists{#1}%
+ \else
+ \protected@xdef\@glsacronymlists{\@glsacronymlists,#1}%
+ \fi
+}
+\newcommand*{\DeclareAcronymList}[1]{%
+ \glsIfListOfAcronyms{#1}{}{\@addtoacronymlists{#1}}%
+}
+\newcommand{\glsIfListOfAcronyms}[1]{%
+ \edef\@do@gls@islistofacronyms{%
+ \noexpand\@gls@islistofacronyms{#1}{\@glsacronymlists}}%
+ \@do@gls@islistofacronyms
+}
+\newcommand{\@gls@islistofacronyms}[4]{%
+ \def\gls@islistofacronyms##1,#1,##2\end@gls@islistofacronyms{%
+ \def\@before{##1}\def\@after{##2}}%
+ \gls@islistofacronyms,#2,#1,\@nil\end@gls@islistofacronyms
+ \ifx\@after\@nnil
+ #4%
+ \else
+ #3%
+ \fi
+}
+\newif\if@glsisacronymlist
+\newcommand*{\gls@checkisacronymlist}[1]{%
+ \glsIfListOfAcronyms{#1}%
+ {\@glsisacronymlisttrue}{\@glsisacronymlistfalse}%
+}
+\newcommand*{\SetAcronymLists}[1]{%
+ \renewcommand*{\@glsacronymlists}{#1}%
+}
+\define@key{glossaries.sty}{acronymlists}{%
+ \@addtoacronymlists{#1}%
+}
+\newcommand{\glscounter}{page}
+\define@key{glossaries.sty}{counter}{%
+ \renewcommand*{\glscounter}{#1}%
+}
+\newcommand*{\@gls@sanitizedesc}{\@onelevel@sanitize\@glo@desc}
+\newcommand*{\@gls@sanitizename}{\@onelevel@sanitize\@glo@name}
+\newcommand*{\@gls@sanitizesymbol}{\@onelevel@sanitize\@glo@symbol}
+\define@boolkey[gls]{sanitize}{description}[true]{%
+\ifgls@sanitize@description
+ \renewcommand*{\@gls@sanitizedesc}{\@onelevel@sanitize\@glo@desc}%
+\else
+ \renewcommand*{\@gls@sanitizedesc}{}%
+\fi
+}
+\define@boolkey[gls]{sanitize}{name}[true]{%
+\ifgls@sanitize@name
+ \renewcommand*{\@gls@sanitizename}{\@onelevel@sanitize\@glo@name}%
+\else
+ \renewcommand*{\@gls@sanitizename}{}%
+\fi}
+\define@boolkey[gls]{sanitize}{symbol}[true]{%
+\ifgls@sanitize@symbol
+ \renewcommand*{\@gls@sanitizesymbol}{%
+\@onelevel@sanitize\@glo@symbol}%
+\else
+ \renewcommand*{\@gls@sanitizesymbol}{}%
+\fi}
+\define@key{glossaries.sty}{sanitize}[description=true,symbol=true,
+name=true]{%
+\ifthenelse{\equal{#1}{none}}{%
+\renewcommand*{\@gls@sanitizedesc}{}%
+\renewcommand*{\@gls@sanitizename}{}%
+\renewcommand*{\@gls@sanitizesymbol}{}%
+}{\setkeys[gls]{sanitize}{#1}}%
+}
+\define@boolkey{glossaries.sty}[gls]{translate}[true]{}
+\glstranslatefalse
+\@ifpackageloaded{translator}{\glstranslatetrue}{%
+\@ifpackageloaded{babel}{\glstranslatetrue}{%
+\@ifpackageloaded{polyglossia}{\glstranslatetrue}{}}}
+\define@boolkey{glossaries.sty}[gls]{hyperfirst}[true]{}
+\glshyperfirsttrue
+\define@boolkey{glossaries.sty}[glsacr]{footnote}[true]{%
+\ifthenelse{\boolean{glsacrdescription}}{}%
+{\renewcommand*{\@gls@sanitizedesc}{}}%
+}
+\define@boolkey{glossaries.sty}[glsacr]{description}[true]{%
+ \renewcommand*{\@gls@sanitizesymbol}{}%
+}
+\define@boolkey{glossaries.sty}[glsacr]{smallcaps}[true]{%
+ \renewcommand*{\@gls@sanitizesymbol}{}%
+}
+\define@boolkey{glossaries.sty}[glsacr]{smaller}[true]{%
+ \renewcommand*{\@gls@sanitizesymbol}{}%
+}
+\define@boolkey{glossaries.sty}[glsacr]{dua}[true]{%
+ \renewcommand*{\@gls@sanitizesymbol}{}%
+}
+\define@boolkey{glossaries.sty}[glsacr]{shortcuts}[true]{}
+\newcommand*{\glsorder}{word}
+\newcommand*{\@glsorder}[1]{}
+\define@choicekey{glossaries.sty}{order}{word,letter}{%
+ \def\glsorder{#1}}
+\newif\ifglsxindy
+\glsxindyfalse
+\DeclareOptionX{makeindex}{\glsxindyfalse}
+\define@boolkey[gls]{xindy}{glsnumbers}[true]{}
+\gls@xindy@glsnumberstrue
+\def\@xdy@main@language{\rootlanguagename}%
+\define@key[gls]{xindy}{language}{\def\@xdy@main@language{#1}}
+\ifcsundef{inputencodingname}{%
+ \def\gls@codepage{}}{%
+ \def\gls@codepage{\inputencodingname}
+}
+\define@key[gls]{xindy}{codepage}{\def\gls@codepage{#1}}
+\define@key{glossaries.sty}{xindy}[]{%
+ \glsxindytrue
+ \setkeys[gls]{xindy}{#1}%
+}
+\define@boolkey{glossaries.sty}[gls]{savewrites}[true]{}
+\glssavewritesfalse
+\newcommand*{\GlossariesWarning}[1]{%
+ \PackageWarning{glossaries}{#1}%
+}
+\newcommand*{\GlossariesWarningNoLine}[1]{%
+ \PackageWarningNoLine{glossaries}{#1}%
+}
+\DeclareOptionX{nowarn}{%
+ \renewcommand*{\GlossariesWarning}[1]{}%
+ \renewcommand*{\GlossariesWarningNoLine}[1]{}%
+}
+\define@boolkey{glossaries.sty}[gls]{compatible-2.07}[true]{}
+\csname glscompatible-2.07false\endcsname
+\ProcessOptionsX
+\ifglstranslate
+ \@ifpackageloaded{babel}{\IfFileExists{translator.sty}{%
+ \RequirePackage{translator}}{}}{}
+\fi
+\ifthenelse{\equal{\glscounter}{section}}%
+{%
+ \ifcsundef{chapter}{}%
+ {%
+ \let\@gls@old@chapter\@chapter
+ \def\@chapter[#1]#2{\@gls@old@chapter[{#1}]{#2}%
+ \ifcsundef{hyperdef}{}{\hyperdef{section}{\thesection}{}}}%
+ }%
+}%
+{}
+\newcommand*{\@gls@onlypremakeg}{}
+\newcommand*{\@onlypremakeg}[1]{%
+\ifx\@gls@onlypremakeg\@empty
+ \def\@gls@onlypremakeg{#1}%
+\else
+ \expandafter\toks@\expandafter{\@gls@onlypremakeg}%
+ \edef\@gls@onlypremakeg{\the\toks@,\noexpand#1}%
+\fi}
+\newcommand*{\@disable@onlypremakeg}{%
+\@for\@thiscs:=\@gls@onlypremakeg\do{%
+ \expandafter\@disable@premakecs\@thiscs%
+}}
+\newcommand*{\@disable@premakecs}[1]{%
+ \def#1{\PackageError{glossaries}{\string#1\space may only be
+ used before \string\makeglossaries}{You can't use
+ \string#1\space after \string\makeglossaries}}%
+}
+\providecommand*{\glossaryname}{Glossary}
+\providecommand*{\acronymname}{Acronyms}
+\newcommand*{\glssettoctitle}[1]{%
+\def\glossarytoctitle{\csname @glotype@#1@title\endcsname}}
+\providecommand*{\entryname}{Notation}
+\providecommand*{\descriptionname}{Description}
+\providecommand*{\symbolname}{Symbol}
+\providecommand*{\pagelistname}{Page List}
+\providecommand*{\glssymbolsgroupname}{Symbols}
+\providecommand*{\glsnumbersgroupname}{Numbers}
+\newcommand*{\glspluralsuffix}{s}
+\providecommand*{\seename}{see}
+\providecommand*{\andname}{\&}
+\newcommand*{\addglossarytocaptions}[1]{%
+ \ifcsundef{captions#1}{}%
+ {%
+ \expandafter\let\expandafter\@gls@tmp\csname captions#1\endcsname
+ \expandafter\toks@\expandafter{\@gls@tmp
+ \renewcommand*{\glossaryname}{\translate{Glossary}}%
+ }%
+ \expandafter\edef\csname captions#1\endcsname{\the\toks@}%
+ }%
+}
+\ifglstranslate
+ \@ifpackageloaded{translator}{%
+ \usedictionary{glossaries-dictionary}%
+ \addglossarytocaptions{portuges}%
+ \addglossarytocaptions{portuguese}%
+ \addglossarytocaptions{brazil}%
+ \addglossarytocaptions{brazilian}%
+ \addglossarytocaptions{danish}%
+ \addglossarytocaptions{dutch}%
+ \addglossarytocaptions{afrikaans}%
+ \addglossarytocaptions{english}%
+ \addglossarytocaptions{UKenglish}%
+ \addglossarytocaptions{USenglish}%
+ \addglossarytocaptions{american}%
+ \addglossarytocaptions{australian}%
+ \addglossarytocaptions{british}%
+ \addglossarytocaptions{canadian}%
+ \addglossarytocaptions{newzealand}%
+ \addglossarytocaptions{french}%
+ \addglossarytocaptions{frenchb}%
+ \addglossarytocaptions{francais}%
+ \addglossarytocaptions{acadian}%
+ \addglossarytocaptions{canadien}%
+ \addglossarytocaptions{german}%
+ \addglossarytocaptions{germanb}%
+ \addglossarytocaptions{austrian}%
+ \addglossarytocaptions{naustrian}%
+ \addglossarytocaptions{ngerman}%
+ \addglossarytocaptions{irish}%
+ \addglossarytocaptions{italian}%
+ \addglossarytocaptions{magyar}%
+ \addglossarytocaptions{hungarian}%
+ \addglossarytocaptions{polish}%
+ \addglossarytocaptions{spanish}%
+ \renewcommand*{\glssettoctitle}[1]{%
+ \ifthenelse{\equal{#1}{main}}{%
+ \translatelet{\glossarytoctitle}{Glossary}}{%
+ \ifthenelse{\equal{#1}{acronym}}{%
+ \translatelet{\glossarytoctitle}{Acronyms}}{%
+ \def\glossarytoctitle{\csname @glotype@#1@title\endcsname}}}}%
+ \renewcommand*{\glossaryname}{\translate{Glossary}}%
+ \renewcommand*{\acronymname}{\translate{Acronyms}}%
+ \renewcommand*{\entryname}{\translate{Notation (glossaries)}}%
+ \renewcommand*{\descriptionname}{%
+ \translate{Description (glossaries)}}%
+ \renewcommand*{\symbolname}{\translate{Symbol (glossaries)}}%
+ \renewcommand*{\pagelistname}{%
+ \translate{Page List (glossaries)}}%
+ \renewcommand*{\glssymbolsgroupname}{%
+ \translate{Symbols (glossaries)}}%
+ \renewcommand*{\glsnumbersgroupname}{%
+ \translate{Numbers (glossaries)}}%
+ }{%
+ \@ifpackageloaded{babel}%
+ {\RequirePackage{glossaries-babel}}%
+ {%
+ \@ifpackageloaded{polyglossia}{%
+ \RequirePackage{glossaries-polyglossia}}{}%
+ }}
+\fi
+\newcommand*{\glspostdescription}{.}
+\newcommand*{\nopostdesc}{}
+\newcommand*{\@nopostdesc}{%
+ \let\org@glspostdescription\glspostdescription
+ \def\glspostdescription{%
+ \let\glspostdescription\org@glspostdescription}%
+}
+\newcommand{\glspar}{\par}
+\ifglsxindy
+ \newcommand{\setStyleFile}[1]{%
+ \renewcommand{\istfilename}{#1.xdy}}
+\else
+ \newcommand{\setStyleFile}[1]{%
+ \renewcommand{\istfilename}{#1.ist}}
+\fi
+\@onlypremakeg\setStyleFile
+\ifglsxindy
+ \def\istfilename{\jobname.xdy}
+\else
+ \def\istfilename{\jobname.ist}
+\fi
+\newcommand*{\@istfilename}[1]{}
+\newcommand*{\glscompositor}{.}
+\newcommand*{\glsSetCompositor}[1]{%
+ \renewcommand*{\glscompositor}{#1}}
+\@onlypremakeg\glsSetCompositor
+\newcommand*{\@glsAlphacompositor}{\glscompositor}
+\ifglsxindy
+ \newcommand*\glsSetAlphaCompositor[1]{%
+ \renewcommand*\@glsAlphacompositor{#1}}
+\else
+ \newcommand*\glsSetAlphaCompositor[1]{%
+ \glsnoxindywarning\glsSetAlphaCompositor}
+\fi
+\@onlypremakeg\glsSetAlphaCompositor
+\newcommand*{\gls@suffixF}{}
+\newcommand*{\glsSetSuffixF}[1]{%
+ \renewcommand*{\gls@suffixF}{#1}}
+\@onlypremakeg\glsSetSuffixF
+\newcommand*{\gls@suffixFF}{}
+\newcommand*{\glsSetSuffixFF}[1]{%
+ \renewcommand*{\gls@suffixFF}{#1}%
+}
+\ifcsundef{hyperlink}%
+{%
+ \newcommand*{\glsnumberformat}[1]{#1}%
+}%
+{%
+ \newcommand*{\glsnumberformat}[1]{\glshypernumber{#1}}%
+}
+\newcommand{\delimN}{, }
+\newcommand{\delimR}{--}
+\newcommand*{\glossarypreamble}{}
+\newcommand*{\glossarypostamble}{}
+\newcommand*{\glossarysection}[2][\@gls@title]{%
+ \def\@gls@title{#2}%
+ \ifcsundef{phantomsection}%
+ {%
+ \@glossarysection{#1}{#2}%
+ }%
+ {%
+ \@p@glossarysection{#1}{#2}%
+ }%
+ \glossarymark{\glossarytoctitle}%
+}
+\ifcsundef{glossarymark}%
+{%
+ \newcommand{\glossarymark}[1]{\@mkboth{#1}{#1}}
+}%
+{%
+ \GlossariesWarning{overriding \string\glossarymark}%
+ \@ifclassloaded{memoir}%
+ {
+ \renewcommand{\glossarymark}[1]{%
+ \markboth{\memUChead{#1}}{\memUChead{#1}}%
+ }
+ }
+ {
+ \renewcommand{\glossarymark}[1]{\@mkboth{#1}{#1}}
+ }
+}
+\newcommand*{\setglossarysection}[1]{%
+\setkeys{glossaries.sty}{section=#1}}
+\newcommand*{\@glossarysection}[2]{%
+\ifx\@@glossarysecstar\@empty
+ \csname\@@glossarysec\endcsname{#2}%
+\else
+ \csname\@@glossarysec\endcsname*{#2}%
+ \@gls@toc{#1}{\@@glossarysec}%
+\fi
+\@@glossaryseclabel}
+\newcommand*{\@p@glossarysection}[2]{%
+\glsclearpage
+\phantomsection
+\ifx\@@glossarysecstar\@empty
+ \csname\@@glossarysec\endcsname{#2}%
+\else
+ \@gls@toc{#1}{\@@glossarysec}%
+ \csname\@@glossarysec\endcsname*{#2}%
+\fi
+\@@glossaryseclabel}
+\newcommand*{\gls@doclearpage}{%
+ \ifthenelse{\equal{\@@glossarysec}{chapter}}%
+ {%
+ \ifcsundef{cleardoublepage}{\clearpage}{\cleardoublepage}%
+ }%
+ {}%
+}
+\newcommand*{\glsclearpage}{\gls@doclearpage}
+\newcommand*{\@gls@toc}[2]{%
+\ifglstoc
+ \ifglsnumberline
+ \addcontentsline{toc}{#2}{\numberline{}#1}%
+ \else
+ \addcontentsline{toc}{#2}{#1}%
+ \fi
+\fi}
+\newcommand*{\glsnoxindywarning}[1]{%
+ \GlossariesWarning{Not in xindy mode --- ignoring \string#1}%
+}
+\ifglsxindy
+ \edef\@xdyattributes{\string"default\string"}%
+\fi
+\ifglsxindy
+ \edef\@xdyattributelist{}%
+\fi
+\ifglsxindy
+ \def\@xdylocref{}
+\fi
+\newcommand*{\@gls@ifinlist}[4]{%
+ \def\@do@ifinlist##1,#1,##2\end@doifinlist{%
+ \def\@gls@listsuffix{##2}%
+ \ifx\@gls@listsuffix\@empty
+ #4%
+ \else
+ #3%
+ \fi
+ }%
+ \@do@ifinlist,#2,#1,\end@doifinlist
+}
+\ifglsxindy
+ \newcommand*{\@xdycounters}{\glscounter}
+ \newcommand*\GlsAddXdyCounters[1]{%
+ \@for\@gls@ctr:=#1\do{%
+ \edef\@do@addcounter{%
+ \noexpand\@gls@ifinlist{\@gls@ctr}{\@xdycounters}{}%
+ {%
+ \noexpand\edef\noexpand\@xdycounters{\@xdycounters,%
+ \noexpand\@gls@ctr}%
+ }%
+ }%
+ \@do@addcounter
+ }
+ }
+ \@onlypremakeg\GlsAddXdyCounters
+\else
+ \newcommand*\GlsAddXdyCounters[1]{%
+ \glsnoxindywarning\GlsAddXdyAttribute
+ }
+\fi
+\newcommand*\@disabled@glsaddxdycounters{%
+ \PackageError{glossaries}{\string\GlsAddXdyCounters\space
+ can't be used after \string\GlsAddXdyAttribute}{Move all
+ occurrences of \string\GlsAddXdyCounters\space before the first
+ instance of \string\GlsAddXdyAttribute}%
+}
+\ifglsxindy
+ \newcommand*\@glsaddxdyattribute[2]{%
+ \edef\@xdyattributes{\@xdyattributes ^^J \string"#1\string" ^^J
+ \string"#2#1\string"}%
+ \expandafter\toks@\expandafter{\@xdylocref}%
+ \edef\@xdylocref{\the\toks@ ^^J%
+ (markup-locref
+ :open \string"\string~n%
+ \expandafter\string\csname glsX#2X#1\endcsname
+ \string" ^^J
+ :close \string"\string" ^^J
+ :attr \string"#2#1\string")}%
+ \expandafter\gdef\csname glsX#2X#1\endcsname##1##2{%
+ \setentrycounter[##1]{#2}\csname #1\endcsname{##2}%
+ }%
+ }
+ \newcommand*\GlsAddXdyAttribute[1]{%
+ \ifx\@xdyattributelist\@empty
+ \edef\@xdyattributelist{#1}%
+ \else
+ \edef\@xdyattributelist{\@xdyattributelist,#1}%
+ \fi
+ \@for\@this@counter:=\@xdycounters\do{%
+ \protected@edef\gls@do@addxdyattribute{%
+ \noexpand\@glsaddxdyattribute{#1}{\@this@counter}%
+ }
+ \gls@do@addxdyattribute
+ }%
+ \let\GlsAddXdyCounters\@disabled@glsaddxdycounters
+ }
+ \@onlypremakeg\GlsAddXdyAttribute
+\else
+ \newcommand*\GlsAddXdyAttribute[1]{%
+ \glsnoxindywarning\GlsAddXdyAttribute}
+\fi
+\ifglsxindy
+\newcommand*{\@gls@addpredefinedattributes}{%
+ \GlsAddXdyAttribute{glsnumberformat}
+ \GlsAddXdyAttribute{textrm}
+ \GlsAddXdyAttribute{textsf}
+ \GlsAddXdyAttribute{texttt}
+ \GlsAddXdyAttribute{textbf}
+ \GlsAddXdyAttribute{textmd}
+ \GlsAddXdyAttribute{textit}
+ \GlsAddXdyAttribute{textup}
+ \GlsAddXdyAttribute{textsl}
+ \GlsAddXdyAttribute{textsc}
+ \GlsAddXdyAttribute{emph}
+ \GlsAddXdyAttribute{glshypernumber}
+ \GlsAddXdyAttribute{hyperrm}
+ \GlsAddXdyAttribute{hypersf}
+ \GlsAddXdyAttribute{hypertt}
+ \GlsAddXdyAttribute{hyperbf}
+ \GlsAddXdyAttribute{hypermd}
+ \GlsAddXdyAttribute{hyperit}
+ \GlsAddXdyAttribute{hyperup}
+ \GlsAddXdyAttribute{hypersl}
+ \GlsAddXdyAttribute{hypersc}
+ \GlsAddXdyAttribute{hyperemph}
+}
+\else
+ \let\@gls@addpredefinedattributes\relax
+\fi
+\def\@xdyuseralphabets{}
+\ifglsxindy
+ \newcommand*{\GlsAddXdyAlphabet}[2]{%
+ \edef\@xdyuseralphabets{%
+ \@xdyuseralphabets ^^J
+ (define-alphabet "#1" (#2))}}
+\else
+ \newcommand*{\GlsAddXdyAlphabet}[2]{%
+ \glsnoxindywarning\GlsAddXdyAlphabet}
+\fi
+\ifglsxindy
+ \newcommand*{\@gls@xdy@locationlist}{%
+ roman-page-numbers,%
+ Roman-page-numbers,%
+ arabic-page-numbers,%
+ alpha-page-numbers,%
+ Alpha-page-numbers,%
+ Appendix-page-numbers,%
+ arabic-section-numbers%
+ }
+ \protected@edef\@gls@roman{\@roman{0\string"
+ \string"roman-numbers-lowercase\string" :sep \string"}}%
+ \@onelevel@sanitize\@gls@roman
+ \edef\@tmp{\string" \string"roman-numbers-lowercase\string"
+ :sep \string"}%
+ \@onelevel@sanitize\@tmp
+ \ifx\@tmp\@gls@roman
+ \expandafter
+ \edef\csname @gls@xdy@Lclass@roman-page-numbers\endcsname{%
+ \string"roman-numbers-lowercase\string"%
+ }%
+ \else
+ \expandafter
+ \edef\csname @gls@xdy@Lclass@roman-page-numbers\endcsname{
+ :sep \string"\@gls@roman\string"%
+ }%
+ \fi
+ \expandafter\def\csname @gls@xdy@Lclass@Roman-page-numbers\endcsname{%
+ \string"roman-numbers-uppercase\string"%
+ }%
+ \expandafter\def\csname @gls@xdy@Lclass@arabic-page-numbers\endcsname{%
+ \string"arabic-numbers\string"%
+ }%
+ \expandafter\def\csname @gls@xdy@Lclass@alpha-page-numbers\endcsname{%
+ \string"alpha\string"%
+ }%
+ \expandafter\def\csname @gls@xdy@Lclass@Alpha-page-numbers\endcsname{%
+ \string"ALPHA\string"%
+ }%
+ \expandafter\def\csname @gls@xdy@Lclass@Appendix-page-numbers\endcsname{%
+ \string"ALPHA\string"
+ :sep \string"\@glsAlphacompositor\string"
+ \string"arabic-numbers\string"%
+ }
+ \expandafter\def\csname @gls@xdy@Lclass@arabic-section-numbers\endcsname{%
+ \string"arabic-numbers\string"
+ :sep \string"\glscompositor\string"
+ \string"arabic-numbers\string"%
+ }%
+ \def\@xdyuserlocationdefs{}
+ \def\@xdyuserlocationnames{}
+\fi
+\ifglsxindy
+ \newcommand*{\GlsAddXdyLocation}[3][]{%
+ \def\@gls@tmp{#1}%
+ \ifx\@gls@tmp\@empty
+ \edef\@xdyuserlocationdefs{%
+ \@xdyuserlocationdefs ^^J%
+ (define-location-class \string"#2\string"^^J\space\space
+ \space(:sep \string"{}\glsopenbrace\string" #3
+ :sep \string"\glsclosebrace\string"))
+ }%
+ \else
+ \edef\@xdyuserlocationdefs{%
+ \@xdyuserlocationdefs ^^J%
+ (define-location-class \string"#2\string"^^J\space\space
+ \space(:sep "\glsopenbrace"
+ #1
+ :sep "\glsclosebrace\glsopenbrace" #3
+ :sep "\glsclosebrace"))
+ }%
+ \fi
+ \edef\@xdyuserlocationnames{%
+ \@xdyuserlocationnames^^J\space\space\space
+ \string"#1\string"}%
+ }
+ \@onlypremakeg\GlsAddXdyLocation
+\else
+ \newcommand*{\GlsAddXdyLocation}[2]{%
+ \glsnoxindywarning\GlsAddXdyLocation}
+\fi
+\ifglsxindy
+ \edef\@xdylocationclassorder{^^J\space\space\space
+ \string"roman-page-numbers\string"^^J\space\space\space
+ \string"arabic-page-numbers\string"^^J\space\space\space
+ \string"arabic-section-numbers\string"^^J\space\space\space
+ \string"alpha-page-numbers\string"^^J\space\space\space
+ \string"Roman-page-numbers\string"^^J\space\space\space
+ \string"Alpha-page-numbers\string"^^J\space\space\space
+ \string"Appendix-page-numbers\string"
+ \@xdyuserlocationnames^^J\space\space\space
+ \string"see\string"
+ }
+\fi
+\ifglsxindy
+ \newcommand*\GlsSetXdyLocationClassOrder[1]{%
+ \def\@xdylocationclassorder{#1}}
+\else
+ \newcommand*\GlsSetXdyLocationClassOrder[1]{%
+ \glsnoxindywarning\GlsSetXdyLocationClassOrder}
+\fi
+\ifglsxindy
+ \def\@xdysortrules{}
+\fi
+\ifglsxindy
+ \newcommand*\GlsAddSortRule[2]{%
+ \expandafter\toks@\expandafter{\@xdysortrules}%
+ \protected@edef\@xdysortrules{\the\toks@ ^^J
+ (sort-rule \string"#1\string" \string"#2\string")}%
+ }
+\else
+ \newcommand*\GlsAddSortRule[2]{%
+ \glsnoxindywarning\GlsAddSortRule}
+\fi
+\ifglsxindy
+ \def\@xdyrequiredstyles{tex}
+\fi
+\ifglsxindy
+ \newcommand*\GlsAddXdyStyle[1]{%
+ \edef\@xdyrequiredstyles{\@xdyrequiredstyles,#1}}%
+\else
+ \newcommand*\GlsAddXdyStyle[1]{%
+ \glsnoxindywarning\GlsAddXdyStyle}
+\fi
+\ifglsxindy
+ \newcommand*\GlsSetXdyStyles[1]{%
+ \edef\@xdyrequiredstyles{#1}}
+\else
+ \newcommand*\GlsSetXdyStyles[1]{%
+ \glsnoxindywarning\GlsSetXdyStyles}
+\fi
+\ifglsxindy
+ \@ifpackageloaded{babel}{%
+ \def\findrootlanguage{\begingroup
+ \escapechar=-1\relax
+ \edef\languagename{%
+ \expandafter\string\csname\languagename\endcsname}%
+ \def\NeedsTeXFormat##1[##2]{}%
+ \def\ProvidesPackage##1[##2]{}%
+ \let\LdfInit\relax
+ \def\languageattribute##1##2{}%
+ \def\DeclareOption##1##2{%
+ \ifx##1*\expandafter\endinput\else
+ \edef\testlanguage{\expandafter\string\csname##1\endcsname}%
+ \ifx\testlanguage\languagename##2\fi
+ \fi}
+ \def\input##1{\stripldf##1}%
+ \def\stripldf##1.ldf{\gdef\rootlanguagename{##1}}%
+ \@@input babel.sty
+ \endgroup}%
+ }{%
+ \@ifpackageloaded{ngerman}{%
+ \def\findrootlanguage{%
+ \def\rootlanguagename{german}}%
+ }{%
+ \def\findrootlanguage{%
+ \def\rootlanguagename{english}}%
+ }%
+ }%
+\fi
+\def\rootlanguagename{english}
+\def\@xdylanguage#1#2{}
+\ifglsxindy
+ \newcommand*\GlsSetXdyLanguage[2][\glsdefaulttype]{%
+ \ifglossaryexists{#1}{%
+ \expandafter\def\csname @xdy@#1@language\endcsname{#2}%
+ }{%
+ \PackageError{glossaries}{Can't set language type for
+ glossary type `#1' --- no such glossary}{%
+ You have specified a glossary type that doesn't exist}}}
+\else
+ \newcommand*\GlsSetXdyLanguage[2][]{%
+ \glsnoxindywarning\GlsSetXdyLanguage}
+\fi
+\def\@gls@codepage#1#2{}
+\ifglsxindy
+ \newcommand*{\GlsSetXdyCodePage}[1]{%
+ \renewcommand*{\gls@codepage}{#1}%
+ }
+\else
+ \newcommand*{\GlsSetXdyCodePage}[1]{%
+ \glsnoxindywarning\GlsSetXdyCodePage}
+\fi
+\ifglsxindy
+ \ifgls@xindy@glsnumbers
+ \def\@xdylettergroups{(define-letter-group
+ \string"glsnumbers\string"^^J\space\space\space
+ :prefixes (\string"0\string" \string"1\string"
+ \string"2\string" \string"3\string" \string"4\string"
+ \string"5\string" \string"6\string" \string"7\string"
+ \string"8\string" \string"9\string")^^J\space\space\space
+ :before \string"\@glsfirstletter\string")}
+ \else
+ \def\@xdylettergroups{}
+ \fi
+\fi
+ \newcommand*\GlsAddLetterGroup[2]{%
+ \expandafter\toks@\expandafter{\@xdylettergroups}%
+ \protected@edef\@xdylettergroups{\the\toks@^^J%
+ (define-letter-group \string"#1\string"^^J\space\space\space#2)}%
+ }%
+\newcommand*{\forallglossaries}[3][\@glo@types]{%
+ \@for#2:=#1\do{\ifx#2\@empty\else#3\fi}%
+}
+\newcommand*{\forglsentries}[3][\glsdefaulttype]{%
+ \edef\@@glo@list{\csname glolist@#1\endcsname}%
+ \@for#2:=\@@glo@list\do{\ifx#2\@empty\else#3\fi}%
+}
+\newcommand*{\forallglsentries}[3][\@glo@types]{%
+\expandafter\forallglossaries\expandafter[#1]{\@@this@glo@}{%
+\forglsentries[\@@this@glo@]{#2}{#3}}}
+\newcommand{\ifglossaryexists}[3]{%
+ \ifcsundef{@glotype@#1@out}{#3}{#2}%
+}
+\newcommand{\ifglsentryexists}[3]{%
+ \ifcsundef{glo@#1@name}{#3}{#2}%
+}
+\newcommand*{\ifglsused}[3]{\ifthenelse{\boolean{glo@#1@flag}}{#2}{#3}}
+\newcommand{\glsdoifexists}[2]{%
+ \ifglsentryexists{#1}{#2}{%
+ \PackageError{glossaries}{Glossary entry `#1' has not been
+ defined}{You need to define a glossary entry before you
+ can use it.}}%
+}
+\newcommand{\glsdoifnoexists}[2]{%
+ \ifglsentryexists{#1}{%
+ \PackageError{glossaries}{Glossary entry `#1' has already
+ been defined}{}}{#2}%
+}
+\newcommand*{\@glo@types}{,}
+\newcommand*{\newglossary}[5][glg]{%
+\ifglossaryexists{#2}{%
+ \PackageError{glossaries}{Glossary type `#2' already exists}{%
+ You can't define a new glossary called `#2' because it already
+ exists}%
+}{%
+ \ifx\glsdefaulttype\relax
+ \gdef\glsdefaulttype{#2}%
+ \fi
+ \toks@{#2}\edef\@glo@types{\@glo@types\the\toks@,}%
+ \expandafter\gdef\csname glolist@#2\endcsname{,}%
+ \expandafter\def\csname @glotype@#2@in\endcsname{#3}%
+ \expandafter\def\csname @glotype@#2@out\endcsname{#4}%
+ \expandafter\def\csname @glotype@#2@title\endcsname{#5}%
+ \protected@write\@auxout{}{\string\@newglossary{#2}{#1}{#3}{#4}}%
+ \ifcsundef{gls@#2@display}%
+ {%
+ \expandafter\gdef\csname gls@#2@display\endcsname{\glsdisplay}%
+ }%
+ {}%
+ \ifcsundef{gls@#2@displayfirst}%
+ {%
+ \expandafter\gdef\csname gls@#2@displayfirst\endcsname{%
+ \glsdisplayfirst
+ }%
+ }%
+ {}%
+ \@gls@defsortcount{#2}%
+ \@ifnextchar[{\@gls@setcounter{#2}}%
+ {\@gls@setcounter{#2}[\glscounter]}}%
+}
+\newcommand*{\altnewglossary}[3]{%
+ \newglossary[#2-glg]{#1}{#2-gls}{#2-glo}{#3}%
+}
+\@onlypreamble{\newglossary}
+\@onlypremakeg\newglossary
+\newcommand*{\@newglossary}[4]{}
+\def\@gls@setcounter#1[#2]{%
+ \expandafter\def\csname @glotype@#1@counter\endcsname{#2}%
+ \ifglsxindy
+ \GlsAddXdyCounters{#2}%
+ \fi
+}
+\newcommand*{\@gls@getcounter}[1]{%
+\csname @glotype@#1@counter\endcsname}
+\glsdefmain
+\define@key{glossentry}{name}{%
+\def\@glo@name{#1}%
+}
+\define@key{glossentry}{description}{%
+\def\@glo@desc{#1}%
+}
+\define@key{glossentry}{descriptionplural}{%
+\def\@glo@descplural{#1}%
+}
+\define@key{glossentry}{sort}{%
+\def\@glo@sort{#1}}
+\define@key{glossentry}{text}{%
+\def\@glo@text{#1}%
+}
+\define@key{glossentry}{plural}{%
+\def\@glo@plural{#1}%
+}
+\define@key{glossentry}{first}{%
+\def\@glo@first{#1}%
+}
+\define@key{glossentry}{firstplural}{%
+\def\@glo@firstplural{#1}%
+}
+\define@key{glossentry}{symbol}{%
+\def\@glo@symbol{#1}%
+}
+\define@key{glossentry}{symbolplural}{%
+\def\@glo@symbolplural{#1}%
+}
+\define@key{glossentry}{type}{%
+\def\@glo@type{#1}}
+\define@key{glossentry}{counter}{%
+ \ifcsundef{c@#1}%
+ {%
+ \PackageError{glossaries}%
+ {There is no counter called `#1'}%
+ {%
+ The counter key should have the name of a valid counter
+ as its value%
+ }%
+ }%
+ {%
+ \def\@glo@counter{#1}%
+ }%
+}
+\define@key{glossentry}{see}{%
+ \def\@glo@see{#1}%
+ \@glo@seeautonumberlist
+}
+\define@key{glossentry}{parent}{%
+\def\@glo@parent{#1}}
+\define@choicekey{glossentry}{nonumberlist}[\val\nr]{true,false}[true]{%
+ \ifcase\nr\relax
+ \def\@glo@prefix{\glsnonextpages}%
+ \else
+ \def\@glo@prefix{\glsnextpages}%
+ \fi
+}
+\define@key{glossentry}{user1}{%
+ \def\@glo@useri{#1}%
+}
+\define@key{glossentry}{user2}{%
+ \def\@glo@userii{#1}%
+}
+\define@key{glossentry}{user3}{%
+ \def\@glo@useriii{#1}%
+}
+\define@key{glossentry}{user4}{%
+ \def\@glo@useriv{#1}%
+}
+\define@key{glossentry}{user5}{%
+ \def\@glo@userv{#1}%
+}
+\define@key{glossentry}{user6}{%
+ \def\@glo@uservi{#1}%
+}
+\define@key{glossentry}{short}{%
+ \def\@glo@short{#1}%
+}
+\define@key{glossentry}{shortplural}{%
+ \def\@glo@shortpl{#1}%
+}
+\define@key{glossentry}{long}{%
+ \def\@glo@long{#1}%
+}
+\define@key{glossentry}{longplural}{%
+ \def\@glo@longpl{#1}%
+}
+\newcommand*{\@glsnoname}{%
+ \PackageError{glossaries}{name key required in
+ \string\newglossaryentry\space for entry `\@glo@label'}{You
+ haven't specified the entry name}}
+\newcommand*{\@glsdefaultplural}{\@glo@text\glspluralsuffix}
+\newcommand*{\@glsdefaultsort}{\@glo@name}
+\newcount\gls@level
+\newrobustcmd{\newglossaryentry}[2]{%
+\glsdoifnoexists{#1}{%
+\def\@glo@label{#1}%
+\let\@glo@name\@glsnoname
+\def\@glo@desc{\PackageError{glossaries}{description key required in
+\string\newglossaryentry\space for entry `\@glo@label'}{You haven't specified the entry description}}%
+\def\@glo@descplural{\@glo@desc}%
+\def\@glo@type{\glsdefaulttype}%
+\def\@glo@symbol{\relax}%
+\def\@glo@symbolplural{\@glo@symbol}%
+\def\@glo@text{\@glo@name}%
+\let\@glo@plural\@glsdefaultplural
+\let\@glo@first\relax
+\let\@glo@firstplural\relax
+\let\@glo@sort\@glsdefaultsort
+\def\@glo@counter{\@gls@getcounter{\@glo@type}}%
+\def\@glo@see{}%
+\def\@glo@parent{}%
+\def\@glo@prefix{}%
+\def\@glo@useri{}%
+\def\@glo@userii{}%
+\def\@glo@useriii{}%
+\def\@glo@useriv{}%
+\def\@glo@userv{}%
+\def\@glo@uservi{}%
+\def\@glo@short{}%
+\def\@glo@shortpl{}%
+\def\@glo@long{}%
+\def\@glo@longpl{}%
+ \@newglossaryentryprehook
+\setkeys{glossentry}{#2}%
+\ifcsundef{glolist@\@glo@type}%
+{%
+ \PackageError{glossaries}%
+ {Glossary type '\@glo@type' has not been defined}%
+ {You need to define a new glossary type, before making entries
+ in it}%
+}%
+{%
+ \protected@edef\@glolist@{\csname glolist@\@glo@type\endcsname}%
+ \expandafter\xdef\csname glolist@\@glo@type\endcsname{\@glolist@{#1},}%
+}%
+\gls@level=0\relax
+\ifx\@glo@parent\@empty
+ \expandafter\gdef\csname glo@#1@parent\endcsname{}%
+\else
+ \ifthenelse{\equal{#1}{\@glo@parent}}{%
+ \PackageError{glossaries}{Entry `#1' can't be its own parent}{}%
+ \def\@glo@parent{}%
+ \expandafter\gdef\csname glo@#1@parent\endcsname{}%
+ }{%
+ \ifglsentryexists{\@glo@parent}{%
+ \expandafter\xdef\csname glo@#1@parent\endcsname{\@glo@parent}%
+ \gls@level=\csname glo@\@glo@parent @level\endcsname\relax
+ \advance\gls@level by 1\relax
+ \ifx\@glo@name\@glsnoname
+ \expandafter\let\expandafter\@glo@name
+ \csname glo@\@glo@parent @name\endcsname
+ \ifx\@glo@plural\@glsdefaultplural
+ \expandafter\let\expandafter\@glo@plural
+ \csname glo@\@glo@parent @plural\endcsname
+ \fi
+ \fi
+ }{%
+ \PackageError{glossaries}{Invalid parent `\@glo@parent'
+ for entry `#1' - parent doesn't exist}{Parent entries
+ must be defined before their children}%
+ \def\@glo@parent{}%
+ \expandafter\gdef\csname glo@#1@parent\endcsname{}%
+ }%
+ }%
+\fi
+\expandafter\xdef\csname glo@#1@level\endcsname{\number\gls@level}%
+\ifx\relax\@glo@firstplural
+ \ifx\relax\@glo@first
+ \def\@glo@firstplural{\@glo@plural}%
+ \def\@glo@first{\@glo@text}%
+ \else
+ \def\@glo@firstplural{\@glo@first\glspluralsuffix}%
+ \fi
+\else
+ \ifx\relax\@glo@first
+ \def\@glo@first{\@glo@text}%
+ \fi
+\fi
+\expandafter
+ \protected@xdef\csname glo@#1@text\endcsname{\@glo@text}%
+\expandafter
+ \protected@xdef\csname glo@#1@plural\endcsname{\@glo@plural}%
+\expandafter
+ \protected@xdef\csname glo@#1@first\endcsname{\@glo@first}%
+\expandafter
+ \protected@xdef\csname glo@#1@firstpl\endcsname{\@glo@firstplural}%
+\expandafter
+ \protected@xdef\csname glo@#1@type\endcsname{\@glo@type}%
+\expandafter
+ \protected@xdef\csname glo@#1@counter\endcsname{\@glo@counter}%
+\expandafter
+ \protected@xdef\csname glo@#1@useri\endcsname{\@glo@useri}%
+\expandafter
+ \protected@xdef\csname glo@#1@userii\endcsname{\@glo@userii}%
+\expandafter
+ \protected@xdef\csname glo@#1@useriii\endcsname{\@glo@useriii}%
+\expandafter
+ \protected@xdef\csname glo@#1@useriv\endcsname{\@glo@useriv}%
+\expandafter
+ \protected@xdef\csname glo@#1@userv\endcsname{\@glo@userv}%
+\expandafter
+ \protected@xdef\csname glo@#1@uservi\endcsname{\@glo@uservi}%
+\expandafter
+ \protected@xdef\csname glo@#1@short\endcsname{\@glo@short}%
+\expandafter
+ \protected@xdef\csname glo@#1@shortpl\endcsname{\@glo@shortpl}%
+\expandafter
+ \protected@xdef\csname glo@#1@long\endcsname{\@glo@long}%
+\expandafter
+ \protected@xdef\csname glo@#1@longpl\endcsname{\@glo@longpl}%
+\@gls@sanitizename
+\expandafter\protected@xdef\csname glo@#1@name\endcsname{\@glo@name}%
+\def\@glo@@desc{\@glo@first}%
+\ifx\@glo@desc\@glo@@desc
+ \let\@glo@desc\@glo@first
+\fi
+\@gls@sanitizedesc
+\expandafter\protected@xdef\csname glo@#1@desc\endcsname{\@glo@desc}%
+\expandafter\protected@xdef\csname glo@#1@descplural\endcsname{\@glo@descplural}%
+\@gls@defsort{\@glo@type}{#1}%
+\def\@glo@@symbol{\@glo@text}%
+\ifx\@glo@symbol\@glo@@symbol
+ \let\@glo@symbol\@glo@text
+\fi
+\@gls@sanitizesymbol
+\expandafter\protected@xdef\csname glo@#1@symbol\endcsname{\@glo@symbol}%
+\expandafter\protected@xdef\csname glo@#1@symbolplural\endcsname{\@glo@symbolplural}%
+\expandafter\gdef\csname glo@#1@flagfalse\endcsname{%
+\expandafter\global\expandafter
+\let\csname ifglo@#1@flag\endcsname\iffalse}%
+\expandafter\gdef\csname glo@#1@flagtrue\endcsname{%
+\expandafter\global\expandafter
+\let\csname ifglo@#1@flag\endcsname\iftrue}%
+\csname glo@#1@flagfalse\endcsname
+\ifx\@glo@see\@empty
+\else
+ \protected@edef\@do@glssee{%
+ \noexpand\@gls@fixbraces\noexpand\@glo@list\@glo@see
+ \noexpand\@nil
+ \noexpand\expandafter\noexpand\@glssee\noexpand\@glo@list{#1}}%
+ \@do@glssee
+\fi
+}%
+ \do@glo@storeentry{#1}%
+ \@newglossaryentryposthook
+}
+\newcommand*{\@newglossaryentryprehook}{}
+\newcommand*{\@newglossaryentryposthook}{}
+\ifglsxindy
+ \newcommand*{\@glossaryentryfield}{\string\\glossaryentryfield}
+\else
+ \newcommand*{\@glossaryentryfield}{\string\glossaryentryfield}
+\fi
+\ifglsxindy
+ \newcommand*{\@glossarysubentryfield}{%
+ \string\\glossarysubentryfield}
+\else
+ \newcommand*{\@glossarysubentryfield}{%
+ \string\glossarysubentryfield}
+\fi
+\newcommand{\@glo@storeentry}[1]{%
+\protected@edef\@glo@sort{\csname glo@#1@sort\endcsname}%
+\@gls@checkmkidxchars\@glo@sort
+\protected@edef\@@glo@name{\csname glo@#1@name\endcsname}%
+\@gls@checkmkidxchars\@@glo@name
+\ifglsxindy
+ \protected@edef\@glo@name{\string\\glsnamefont{\@@glo@name}}%
+\else
+ \protected@edef\@glo@name{\string\glsnamefont{\@@glo@name}}%
+\fi
+\protected@edef\@glo@desc{\csname glo@#1@desc\endcsname}%
+\@gls@checkmkidxchars\@glo@desc
+\protected@edef\@glo@symbol{\csname glo@#1@symbol\endcsname}%
+\@gls@checkmkidxchars\@glo@symbol
+\@gls@checkmkidxchars\@glo@prefix
+\edef\@glo@parent{\csname glo@#1@parent\endcsname}%
+\ifglsxindy
+ \ifx\@glo@parent\@empty
+ \expandafter\protected@xdef\csname glo@#1@index\endcsname{%
+ (\string"\@glo@sort\string" %
+ \string"\@glo@prefix\@glossaryentryfield{#1}{\@glo@name
+ }{\@glo@desc}{\@glo@symbol}\string") %
+ }%
+ \else
+ \expandafter\protected@xdef\csname glo@#1@index\endcsname{%
+ \csname glo@\@glo@parent @index\endcsname
+ (\string"\@glo@sort\string" %
+ \string"\@glo@prefix\@glossarysubentryfield%
+ {\csname glo@#1@level\endcsname}{#1}{\@glo@name
+ }{\@glo@desc}{\@glo@symbol}\string") %
+ }%
+ \fi
+\else
+ \ifx\@glo@parent\@empty
+ \@onelevel@sanitize\@glo@prefix
+ \expandafter\protected@xdef\csname glo@#1@index\endcsname{%
+ \@glo@sort\@gls@actualchar\@glo@prefix
+ \@glossaryentryfield{#1}{\@glo@name}{\@glo@desc
+ }{\@glo@symbol}%
+ }%
+ \else
+ \expandafter\protected@xdef\csname glo@#1@index\endcsname{%
+ \csname glo@\@glo@parent @index\endcsname\@gls@levelchar
+ \@glo@sort\@gls@actualchar\@glo@prefix
+ \@glossarysubentryfield
+ {\csname glo@#1@level\endcsname}{#1}{\@glo@name}{\@glo@desc
+ }{\@glo@symbol}%
+ }%
+ \fi
+\fi
+}
+\newcommand*{\glsreset}[1]{%
+\glsdoifexists{#1}{%
+\expandafter\global\csname glo@#1@flagfalse\endcsname}}
+\newcommand*{\glslocalreset}[1]{%
+\glsdoifexists{#1}{%
+\expandafter\let\csname ifglo@#1@flag\endcsname\iffalse}}
+\newcommand*{\glsunset}[1]{%
+\glsdoifexists{#1}{%
+\expandafter\global\csname glo@#1@flagtrue\endcsname}}
+\newcommand*{\glslocalunset}[1]{%
+\glsdoifexists{#1}{%
+\expandafter\let\csname ifglo@#1@flag\endcsname\iftrue}}
+\newcommand*{\glsresetall}[1][\@glo@types]{%
+\forallglsentries[#1]{\@glsentry}{%
+\glsreset{\@glsentry}}}
+\newcommand*{\glslocalresetall}[1][\@glo@types]{%
+\forallglsentries[#1]{\@glsentry}{%
+\glslocalreset{\@glsentry}}}
+\newcommand*{\glsunsetall}[1][\@glo@types]{%
+\forallglsentries[#1]{\@glsentry}{%
+\glsunset{\@glsentry}}}
+\newcommand*{\glslocalunsetall}[1][\@glo@types]{%
+\forallglsentries[#1]{\@glsentry}{%
+\glslocalunset{\@glsentry}}}
+\newcommand*{\loadglsentries}[2][\@gls@default]{%
+\let\@gls@default\glsdefaulttype
+\def\glsdefaulttype{#1}\input{#2}%
+\let\glsdefaulttype\@gls@default}
+\@onlypreamble{\loadglsentries}
+\newcommand*{\glstextformat}[1]{#1}
+\newcommand*{\glsdisplayfirst}[4]{#1#4}
+\newcommand*{\glsdisplay}[4]{#1#4}
+\newcommand*{\defglsdisplay}[2][\glsdefaulttype]{%
+\expandafter\def\csname gls@#1@display\endcsname##1##2##3##4{#2}}
+\newcommand*{\defglsdisplayfirst}[2][\glsdefaulttype]{%
+\expandafter\def\csname gls@#1@displayfirst\endcsname##1##2##3##4{#2}}
+\define@key{glslink}{counter}{%
+ \ifcsundef{c@#1}%
+ {%
+ \PackageError{glossaries}%
+ {There is no counter called `#1'}%
+ {%
+ The counter key should have the name of a valid counter
+ as its value%
+ }%
+ }%
+ {%
+ \def\@gls@counter{#1}%
+ }%
+}
+\define@key{glslink}{format}{%
+\def\@glsnumberformat{#1}}
+\define@boolkey{glslink}{hyper}[true]{}
+\newrobustcmd*{\glslink}{%
+\@ifstar\@sgls@link\@gls@@link}
+\newcommand*{\@sgls@link}[1][]{\@gls@@link[hyper=false,#1]}
+\newcommand*{\@gls@@link}[3][]{%
+ \ifglsentryexists{#2}%
+ {%
+ \@gls@link[#1]{#2}{#3}%
+ }{%
+ \PackageError{glossaries}{Glossary entry `#2' has not been
+ defined}{You need to define a glossary entry before you
+ can use it.}%
+ \glstextformat{#3}%
+ }%
+}
+\def\@gls@link[#1]#2#3{%
+ \leavevmode
+ \def\glslabel{#2}%
+ \def\@glsnumberformat{glsnumberformat}%
+ \edef\@gls@counter{\csname glo@#2@counter\endcsname}%
+ \KV@glslink@hypertrue
+ \setkeys{glslink}{#1}%
+ \@gls@saveentrycounter
+ \@gls@setsort{#2}%
+ \@do@wrglossary{#2}%
+ \ifKV@glslink@hyper
+ \@glslink{glo:#2}{\glstextformat{#3}}%
+ \else
+ \glstextformat{#3}\relax
+ \fi
+}
+\newcommand*{\@gls@saveentrycounter}{%
+ \def\@gls@Hcounter{}%
+ \ifthenelse{\equal{\@gls@counter}{equation}}%
+ {
+ \ifcsundef{xatlevel@}%
+ {%
+ \edef\theglsentrycounter{\expandafter\noexpand
+ \csname the\@gls@counter\endcsname}%
+ }%
+ {%
+ \ifx\xatlevel@\@empty
+ \edef\theglsentrycounter{\expandafter\noexpand
+ \csname the\@gls@counter\endcsname}%
+ \else
+ \savecounters@
+ \advance\c@equation by 1\relax
+ \edef\theglsentrycounter{\csname the\@gls@counter\endcsname}%
+ \ifcsundef{theH\@gls@counter}%
+ {%
+ \def\@gls@Hcounter{\theglsentrycounter}%
+ }%
+ {%
+ \def\@gls@Hcounter{\csname theH\@gls@counter\endcsname}%
+ }%
+ \protected@edef\theHglsentrycounter{\@gls@Hcounter}%
+ \restorecounters@
+ \fi
+ }%
+ }%
+ {%
+ \edef\theglsentrycounter{\expandafter\noexpand
+ \csname the\@gls@counter\endcsname}%
+ }%
+ \ifx\@gls@Hcounter\@empty
+ \ifcsundef{theH\@gls@counter}%
+ {%
+ \def\theHglsentrycounter{\theglsentrycounter}%
+ }%
+ {%
+ \protected@edef\theHglsentrycounter{\expandafter\noexpand
+ \csname theH\@gls@counter\endcsname}%
+ }%
+ \fi
+}
+\def\@set@glo@numformat#1#2#3#4{%
+ \expandafter\@glo@check@mkidxrangechar#3\@nil
+ \protected@edef#1{%
+ \@glo@prefix setentrycounter[#4]{#2}%
+ \expandafter\string\csname\@glo@suffix\endcsname
+ }%
+ \@gls@checkmkidxchars#1%
+}
+\def\@glo@check@mkidxrangechar#1#2\@nil{%
+\if#1(\relax
+ \def\@glo@prefix{(}%
+ \if\relax#2\relax
+ \def\@glo@suffix{glsnumberformat}%
+ \else
+ \def\@glo@suffix{#2}%
+ \fi
+\else
+ \if#1)\relax
+ \def\@glo@prefix{)}%
+ \if\relax#2\relax
+ \def\@glo@suffix{glsnumberformat}%
+ \else
+ \def\@glo@suffix{#2}%
+ \fi
+ \else
+ \def\@glo@prefix{}\def\@glo@suffix{#1#2}%
+ \fi
+\fi}
+\newcommand*{\@gls@escbsdq}[1]{%
+ \def\@gls@checkedmkidx{}%
+ \let\gls@xdystring=#1\relax
+ \@onelevel@sanitize\gls@xdystring
+ \edef\do@gls@xdycheckbackslash{%
+ \noexpand\@gls@xdycheckbackslash\gls@xdystring\noexpand\@nil
+ \@backslashchar\@backslashchar\noexpand\null}%
+ \do@gls@xdycheckbackslash
+ \expandafter\@gls@updatechecked\@gls@checkedmkidx{\gls@xdystring}%
+ \def\@gls@checkedmkidx{}%
+ \expandafter\@gls@xdycheckquote\gls@xdystring\@nil""\null
+ \expandafter\@gls@updatechecked\@gls@checkedmkidx{\gls@xdystring}%
+ \let#1=\gls@xdystring
+}
+\newcommand{\@gls@checkmkidxchars}[1]{%
+\ifglsxindy
+ \@gls@escbsdq{#1}%
+\else
+ \def\@gls@checkedmkidx{}%
+ \expandafter\@gls@checkquote#1\@nil""\null
+ \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}%
+ \def\@gls@checkedmkidx{}%
+ \expandafter\@gls@checkescquote#1\@nil\"\"\null
+ \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}%
+ \def\@gls@checkedmkidx{}%
+ \expandafter\@gls@checkescactual#1\@nil\?\?\null
+ \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}%
+ \def\@gls@checkedmkidx{}%
+ \expandafter\@gls@checkactual#1\@nil??\null
+ \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}%
+ \def\@gls@checkedmkidx{}%
+ \expandafter\@gls@checkbar#1\@nil||\null
+ \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}%
+ \def\@gls@checkedmkidx{}%
+ \expandafter\@gls@checkescbar#1\@nil\|\|\null
+ \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}%
+ \def\@gls@checkedmkidx{}%
+ \expandafter\@gls@checklevel#1\@nil!!\null
+ \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}%
+\fi
+}
+\def\@gls@updatechecked#1\@nil#2{\def#2{#1}}
+\newtoks\@gls@tmpb
+\def\@gls@checkquote#1"#2"#3\null{%
+\@gls@tmpb=\expandafter{\@gls@checkedmkidx}%
+\toks@={#1}%
+\ifx\null#2\null
+ \ifx\null#3\null
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}%
+ \def\@@gls@checkquote{\relax}%
+ \else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\@gls@quotechar\@gls@quotechar\@gls@quotechar}%
+ \def\@@gls@checkquote{\@gls@checkquote#3\null}%
+ \fi
+\else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\@gls@quotechar}%
+ \ifx\null#3\null
+ \def\@@gls@checkquote{\@gls@checkquote#2""\null}%
+ \else
+ \def\@@gls@checkquote{\@gls@checkquote#2"#3\null}%
+ \fi
+\fi
+\@@gls@checkquote}
+\def\@gls@checkescquote#1\"#2\"#3\null{%
+\@gls@tmpb=\expandafter{\@gls@checkedmkidx}%
+\toks@={#1}%
+\ifx\null#2\null
+ \ifx\null#3\null
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}%
+ \def\@@gls@checkescquote{\relax}%
+ \else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\string\"\@gls@quotechar
+ \@gls@quotechar\string\"\@gls@quotechar}%
+ \def\@@gls@checkescquote{\@gls@checkescquote#3\null}%
+ \fi
+\else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\string\"\@gls@quotechar}%
+ \ifx\null#3\null
+ \def\@@gls@checkescquote{\@gls@checkescquote#2\"\"\null}%
+ \else
+ \def\@@gls@checkescquote{\@gls@checkescquote#2\"#3\null}%
+ \fi
+\fi
+\@@gls@checkescquote}
+\def\@gls@checkescactual#1\?#2\?#3\null{%
+\@gls@tmpb=\expandafter{\@gls@checkedmkidx}%
+\toks@={#1}%
+\ifx\null#2\null
+ \ifx\null#3\null
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}%
+ \def\@@gls@checkescactual{\relax}%
+ \else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\string\"\@gls@actualchar
+ \@gls@quotechar\string\"\@gls@actualchar}%
+ \def\@@gls@checkescactual{\@gls@checkescactual#3\null}%
+ \fi
+\else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\string\"\@gls@actualchar}%
+ \ifx\null#3\null
+ \def\@@gls@checkescactual{\@gls@checkescactual#2\?\?\null}%
+ \else
+ \def\@@gls@checkescactual{\@gls@checkescactual#2\?#3\null}%
+ \fi
+\fi
+\@@gls@checkescactual}
+\def\@gls@checkescbar#1\|#2\|#3\null{%
+\@gls@tmpb=\expandafter{\@gls@checkedmkidx}%
+\toks@={#1}%
+\ifx\null#2\null
+ \ifx\null#3\null
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}%
+ \def\@@gls@checkescbar{\relax}%
+ \else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\string\"\@gls@encapchar
+ \@gls@quotechar\string\"\@gls@encapchar}%
+ \def\@@gls@checkescbar{\@gls@checkescbar#3\null}%
+ \fi
+\else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\string\"\@gls@encapchar}%
+ \ifx\null#3\null
+ \def\@@gls@checkescbar{\@gls@checkescbar#2\|\|\null}%
+ \else
+ \def\@@gls@checkescbar{\@gls@checkescbar#2\|#3\null}%
+ \fi
+\fi
+\@@gls@checkescbar}
+\def\@gls@checkesclevel#1\!#2\!#3\null{%
+\@gls@tmpb=\expandafter{\@gls@checkedmkidx}%
+\toks@={#1}%
+\ifx\null#2\null
+ \ifx\null#3\null
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}%
+ \def\@@gls@checkesclevel{\relax}%
+ \else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\string\"\@gls@levelchar
+ \@gls@quotechar\string\"\@gls@levelchar}%
+ \def\@@gls@checkesclevel{\@gls@checkesclevel#3\null}%
+ \fi
+\else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\string\"\@gls@levelchar}%
+ \ifx\null#3\null
+ \def\@@gls@checkesclevel{\@gls@checkesclevel#2\!\!\null}%
+ \else
+ \def\@@gls@checkesclevel{\@gls@checkesclevel#2\!#3\null}%
+ \fi
+\fi
+\@@gls@checkesclevel}
+\def\@gls@checkbar#1|#2|#3\null{%
+\@gls@tmpb=\expandafter{\@gls@checkedmkidx}%
+\toks@={#1}%
+\ifx\null#2\null
+ \ifx\null#3\null
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}%
+ \def\@@gls@checkbar{\relax}%
+ \else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\@gls@encapchar\@gls@quotechar\@gls@encapchar}%
+ \def\@@gls@checkbar{\@gls@checkbar#3\null}%
+ \fi
+\else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\@gls@encapchar}%
+ \ifx\null#3\null
+ \def\@@gls@checkbar{\@gls@checkbar#2||\null}%
+ \else
+ \def\@@gls@checkbar{\@gls@checkbar#2|#3\null}%
+ \fi
+\fi
+\@@gls@checkbar}
+\def\@gls@checklevel#1!#2!#3\null{%
+\@gls@tmpb=\expandafter{\@gls@checkedmkidx}%
+\toks@={#1}%
+\ifx\null#2\null
+ \ifx\null#3\null
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}%
+ \def\@@gls@checklevel{\relax}%
+ \else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\@gls@levelchar\@gls@quotechar\@gls@levelchar}%
+ \def\@@gls@checklevel{\@gls@checklevel#3\null}%
+ \fi
+\else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\@gls@levelchar}%
+ \ifx\null#3\null
+ \def\@@gls@checklevel{\@gls@checklevel#2!!\null}%
+ \else
+ \def\@@gls@checklevel{\@gls@checklevel#2!#3\null}%
+ \fi
+\fi
+\@@gls@checklevel}
+\def\@gls@checkactual#1?#2?#3\null{%
+\@gls@tmpb=\expandafter{\@gls@checkedmkidx}%
+\toks@={#1}%
+\ifx\null#2\null
+ \ifx\null#3\null
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}%
+ \def\@@gls@checkactual{\relax}%
+ \else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\@gls@actualchar\@gls@quotechar\@gls@actualchar}%
+ \def\@@gls@checkactual{\@gls@checkactual#3\null}%
+ \fi
+\else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@gls@quotechar\@gls@actualchar}%
+ \ifx\null#3\null
+ \def\@@gls@checkactual{\@gls@checkactual#2??\null}%
+ \else
+ \def\@@gls@checkactual{\@gls@checkactual#2?#3\null}%
+ \fi
+\fi
+\@@gls@checkactual}
+\def\@gls@xdycheckquote#1"#2"#3\null{%
+\@gls@tmpb=\expandafter{\@gls@checkedmkidx}%
+\toks@={#1}%
+\ifx\null#2\null
+ \ifx\null#3\null
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}%
+ \def\@@gls@xdycheckquote{\relax}%
+ \else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \string\"\string\"}%
+ \def\@@gls@xdycheckquote{\@gls@xdycheckquote#3\null}%
+ \fi
+\else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \string\"}%
+ \ifx\null#3\null
+ \def\@@gls@xdycheckquote{\@gls@xdycheckquote#2""\null}%
+ \else
+ \def\@@gls@xdycheckquote{\@gls@xdycheckquote#2"#3\null}%
+ \fi
+\fi
+\@@gls@xdycheckquote
+}
+\edef\def@gls@xdycheckbackslash{%
+ \noexpand\def\noexpand\@gls@xdycheckbackslash##1\@backslashchar
+ ##2\@backslashchar##3\noexpand\null{%
+ \noexpand\@gls@tmpb=\noexpand\expandafter
+ {\noexpand\@gls@checkedmkidx}%
+ \noexpand\toks@={##1}%
+ \noexpand\ifx\noexpand\null##2\noexpand\null
+ \noexpand\ifx\noexpand\null##3\noexpand\null
+ \noexpand\edef\noexpand\@gls@checkedmkidx{%
+ \noexpand\the\noexpand\@gls@tmpb\noexpand\the\noexpand\toks@}%
+ \noexpand\def\noexpand\@@gls@xdycheckbackslash{\relax}%
+ \noexpand\else
+ \noexpand\edef\noexpand\@gls@checkedmkidx{%
+ \noexpand\the\noexpand\@gls@tmpb\noexpand\the\noexpand\toks@
+ \@backslashchar\@backslashchar\@backslashchar\@backslashchar}%
+ \noexpand\def\noexpand\@@gls@xdycheckbackslash{%
+ \noexpand\@gls@xdycheckbackslash##3\noexpand\null}%
+ \noexpand\fi
+ \noexpand\else
+ \noexpand\edef\noexpand\@gls@checkedmkidx{%
+ \noexpand\the\noexpand\@gls@tmpb\noexpand\the\noexpand\toks@
+ \@backslashchar\@backslashchar}%
+ \noexpand\ifx\noexpand\null##3\noexpand\null
+ \noexpand\def\noexpand\@@gls@xdycheckbackslash{%
+ \noexpand\@gls@xdycheckbackslash##2\@backslashchar
+ \@backslashchar\noexpand\null}%
+ \noexpand\else
+ \noexpand\def\noexpand\@@gls@xdycheckbackslash{%
+ \noexpand\@gls@xdycheckbackslash##2\@backslashchar
+ ##3\noexpand\null}%
+ \noexpand\fi
+ \noexpand\fi
+ \noexpand\@@gls@xdycheckbackslash
+ }%
+}
+\def@gls@xdycheckbackslash
+\ifcsundef{hyperlink}%
+{%
+ \gdef\@glslink#1#2{#2}%
+}%
+{%
+ \gdef\@glslink#1#2{\hyperlink{#1}{#2}}%
+}
+\newlength\gls@tmplen
+\ifcsundef{hypertarget}%
+{%
+ \gdef\@glstarget#1#2{#2}%
+}%
+{%
+ \gdef\@glstarget#1#2{%
+ \settoheight{\gls@tmplen}{#2}%
+ \raisebox{\gls@tmplen}{\hypertarget{#1}{}}#2%
+ }%
+}
+\newcommand{\glsdisablehyper}{%
+\renewcommand*\@glslink[2]{##2}%
+\renewcommand*\@glstarget[2]{##2}}
+\newcommand{\glsenablehyper}{%
+\renewcommand*\@glslink[2]{\hyperlink{##1}{##2}}%
+\renewcommand*\@glstarget[2]{%
+ \settoheight{\gls@tmplen}{##2}%
+ \raisebox{\gls@tmplen}{\hypertarget{##1}{}}##2}}
+\newrobustcmd*{\gls}{\@ifstar\@sgls\@gls}
+\newcommand*{\@sgls}[1][]{\@gls[hyper=false,#1]}
+\newcommand*{\@gls}[2][]{%
+\new@ifnextchar[{\@gls@{#1}{#2}}{\@gls@{#1}{#2}[]}}
+\def\@gls@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\def\@gls@link@opts{#1}%
+\def\@gls@link@label{#2}%
+\ifglsused{#2}%
+{%
+ \def\@glo@text{%
+ \csname gls@\@glo@type @display\endcsname
+ {\glsentrytext{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}}%
+}%
+{%
+ \def\@glo@text{%
+ \csname gls@\@glo@type @displayfirst\endcsname
+ {\glsentryfirst{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}}%
+}%
+\ifglsused{#2}{%
+ \@gls@link[#1]{#2}{\@glo@text}%
+}{%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR \NOT\boolean{glshyperfirst}}{%
+ \@gls@link[#1,hyper=false]{#2}{\@glo@text}%
+ }{%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+}%
+\glsunset{#2}}%
+}
+\newrobustcmd*{\Gls}{\@ifstar\@sGls\@Gls}
+\newcommand*{\@sGls}[1][]{\@Gls[hyper=false,#1]}
+\newcommand*{\@Gls}[2][]{%
+\new@ifnextchar[{\@Gls@{#1}{#2}}{\@Gls@{#1}{#2}[]}}
+\def\@Gls@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\def\@gls@link@opts{#1}%
+\def\@gls@link@label{#2}%
+\def\glslabel{#2}%
+\ifglsused{#2}%
+{%
+ \protected@edef\@glo@text{%
+ \csname gls@\@glo@type @display\endcsname
+ {\glsentrytext{#2}}{\glsentrydesc{#2}}%
+ {\glsentrysymbol{#2}}{#3}}%
+}%
+{%
+ \protected@edef\@glo@text{%
+ \csname gls@\@glo@type @displayfirst\endcsname
+ {\glsentryfirst{#2}}{\glsentrydesc{#2}}%
+ {\glsentrysymbol{#2}}{#3}}%
+}%
+\ifglsused{#2}{%
+ \@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}}%
+}{%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR \NOT\boolean{glshyperfirst}}{%
+ \@gls@link[#1,hyper=false]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}}%
+ }{%
+ \@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}}%
+ }%
+}%
+\glsunset{#2}}%
+}
+\newrobustcmd*{\GLS}{\@ifstar\@sGLS\@GLS}
+\newcommand*{\@sGLS}[1][]{\@GLS[hyper=false,#1]}
+\newcommand*{\@GLS}[2][]{%
+\new@ifnextchar[{\@GLS@{#1}{#2}}{\@GLS@{#1}{#2}[]}}
+\def\@GLS@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\def\@gls@link@opts{#1}%
+\def\@gls@link@label{#2}%
+\ifglsused{#2}{\def\@glo@text{%
+\csname gls@\@glo@type @display\endcsname
+{\glsentrytext{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}}}{%
+\def\@glo@text{%
+\csname gls@\@glo@type @displayfirst\endcsname
+{\glsentryfirst{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}}}%
+\ifglsused{#2}{%
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
+}{%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR \NOT\boolean{glshyperfirst}}{%
+ \@gls@link[#1,hyper=false]{#2}{\MakeUppercase{\@glo@text}}%
+ }{%
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
+ }%
+}%
+\glsunset{#2}}%
+}
+\newrobustcmd*{\glspl}{\@ifstar\@sglspl\@glspl}
+\newcommand*{\@sglspl}[1][]{\@glspl[hyper=false,#1]}
+\newcommand*{\@glspl}[2][]{%
+\new@ifnextchar[{\@glspl@{#1}{#2}}{\@glspl@{#1}{#2}[]}}
+\def\@glspl@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\def\@gls@link@opts{#1}%
+\def\@gls@link@label{#2}%
+\ifglsused{#2}%
+{%
+ \def\@glo@text{%
+ \csname gls@\@glo@type @display\endcsname
+ {\glsentryplural{#2}}{\glsentrydescplural{#2}}%
+ {\glsentrysymbolplural{#2}}{#3}}%
+}%
+{%
+ \def\@glo@text{%
+ \csname gls@\@glo@type @displayfirst\endcsname
+ {\glsentryfirstplural{#2}}{\glsentrydescplural{#2}}%
+ {\glsentrysymbolplural{#2}}{#3}}%
+}%
+\ifglsused{#2}{%
+ \@gls@link[#1]{#2}{\@glo@text}%
+}{%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR \NOT\boolean{glshyperfirst}}{%
+ \@gls@link[#1,hyper=false]{#2}{\@glo@text}%
+ }{%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+}%
+\glsunset{#2}}%
+}
+\newrobustcmd*{\Glspl}{\@ifstar\@sGlspl\@Glspl}
+\newcommand*{\@sGlspl}[1][]{\@Glspl[hyper=false,#1]}
+\newcommand*{\@Glspl}[2][]{%
+\new@ifnextchar[{\@Glspl@{#1}{#2}}{\@Glspl@{#1}{#2}[]}}
+\def\@Glspl@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\def\@gls@link@opts{#1}%
+\def\@gls@link@label{#2}%
+\def\glslabel{#2}%
+\ifglsused{#2}%
+{%
+ \protected@edef\@glo@text{%
+ \csname gls@\@glo@type @display\endcsname
+ {\glsentryplural{#2}}{\glsentrydescplural{#2}}%
+ {\glsentrysymbolplural{#2}}{#3}}%
+}%
+{%
+ \protected@edef\@glo@text{%
+ \csname gls@\@glo@type @displayfirst\endcsname
+ {\glsentryfirstplural{#2}}{\glsentrydescplural{#2}}%
+ {\glsentrysymbolplural{#2}}{#3}}%
+}%
+\ifglsused{#2}{%
+ \@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}}%
+}{%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR \NOT\boolean{glshyperfirst}}{%
+ \@gls@link[#1,hyper=false]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}}%
+ }{%
+ \@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}}%
+ }%
+}%
+\glsunset{#2}}%
+}
+\newrobustcmd*{\GLSpl}{\@ifstar\@sGLSpl\@GLSpl}
+\newcommand*{\@sGLSpl}[1][]{\@GLSpl[hyper=false,#1]}
+\newcommand*{\@GLSpl}[2][]{%
+\new@ifnextchar[{\@GLSpl@{#1}{#2}}{\@GLSpl@{#1}{#2}[]}}
+\def\@GLSpl@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\def\@gls@link@opts{#1}%
+\def\@gls@link@label{#2}%
+\ifglsused{#2}{\def\@glo@text{%
+\csname gls@\@glo@type @display\endcsname
+{\glsentryplural{#2}}{\glsentrydescplural{#2}}{%
+\glsentrysymbolplural{#2}}{#3}}}{%
+\def\@glo@text{%
+\csname gls@\@glo@type @displayfirst\endcsname
+{\glsentryfirstplural{#2}}{\glsentrydescplural{#2}}{%
+\glsentrysymbolplural{#2}}{#3}}}%
+\ifglsused{#2}{%
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
+}{%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR \NOT\boolean{glshyperfirst}}{%
+ \@gls@link[#1,hyper=false]{#2}{\MakeUppercase{\@glo@text}}%
+ }{%
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
+ }%
+}%
+\glsunset{#2}}%
+}
+\newrobustcmd*{\glsdisp}{\@ifstar\@sglsdisp\@glsdisp}
+\newcommand*{\@sglsdisp}[1][]{\@glsdisp[hyper=false,#1]}
+\newcommand*{\@glsdisp}[3][]{%
+ \glsdoifexists{#2}{%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \def\@gls@link@opts{#1}%
+ \def\@gls@link@label{#2}%
+ \ifglsused{#2}%
+ {%
+ \def\@glo@text{%
+ \csname gls@\@glo@type @display\endcsname
+ {#3}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{}}%
+ }%
+ {%
+ \def\@glo@text{%
+ \csname gls@\@glo@type @displayfirst\endcsname
+ {#3}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{}}%
+ }%
+ \ifglsused{#2}%
+ {%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+ {%
+ \gls@checkisacronymlist\@glo@type
+ \ifthenelse{\(\boolean{@glsisacronymlist}\AND
+ \boolean{glsacrfootnote}\) \OR \NOT\boolean{glshyperfirst}}%
+ {%
+ \@gls@link[#1,hyper=false]{#2}{\@glo@text}%
+ }%
+ {%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ }%
+ }%
+ \glsunset{#2}%
+ }%
+}
+\newrobustcmd*{\glstext}{\@ifstar\@sglstext\@glstext}
+\newcommand*{\@sglstext}[1][]{\@glstext[hyper=false,#1]}
+\newcommand*{\@glstext}[2][]{%
+\new@ifnextchar[{\@glstext@{#1}{#2}}{\@glstext@{#1}{#2}[]}}
+\def\@glstext@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrytext{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\GLStext}{\@ifstar\@sGLStext\@GLStext}
+\newcommand*{\@sGLStext}[1][]{\@GLStext[hyper=false,#1]}
+\newcommand*{\@GLStext}[2][]{%
+\new@ifnextchar[{\@GLStext@{#1}{#2}}{\@GLStext@{#1}{#2}[]}}
+\def\@GLStext@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrytext{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\Glstext}{\@ifstar\@sGlstext\@Glstext}
+\newcommand*{\@sGlstext}[1][]{\@Glstext[hyper=false,#1]}
+\newcommand*{\@Glstext}[2][]{%
+\new@ifnextchar[{\@Glstext@{#1}{#2}}{\@Glstext@{#1}{#2}[]}}
+\def\@Glstext@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrytext{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\glsfirst}{\@ifstar\@sglsfirst\@glsfirst}
+\newcommand*{\@sglsfirst}[1][]{\@glsfirst[hyper=false,#1]}
+\newcommand*{\@glsfirst}[2][]{%
+\new@ifnextchar[{\@glsfirst@{#1}{#2}}{\@glsfirst@{#1}{#2}[]}}
+\def\@glsfirst@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryfirst{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsfirst}{\@ifstar\@sGlsfirst\@Glsfirst}
+\newcommand*{\@sGlsfirst}[1][]{\@Glsfirst[hyper=false,#1]}
+\newcommand*{\@Glsfirst}[2][]{%
+\new@ifnextchar[{\@Glsfirst@{#1}{#2}}{\@Glsfirst@{#1}{#2}[]}}
+\def\@Glsfirst@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryfirst{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSfirst}{\@ifstar\@sGLSfirst\@GLSfirst}
+\newcommand*{\@sGLSfirst}[1][]{\@GLSfirst[hyper=false,#1]}
+\newcommand*{\@GLSfirst}[2][]{%
+\new@ifnextchar[{\@GLSfirst@{#1}{#2}}{\@GLSfirst@{#1}{#2}[]}}
+\def\@GLSfirst@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryfirst{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsplural}{\@ifstar\@sglsplural\@glsplural}
+\newcommand*{\@sglsplural}[1][]{\@glsplural[hyper=false,#1]}
+\newcommand*{\@glsplural}[2][]{%
+\new@ifnextchar[{\@glsplural@{#1}{#2}}{\@glsplural@{#1}{#2}[]}}
+\def\@glsplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryplural{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsplural}{\@ifstar\@sGlsplural\@Glsplural}
+\newcommand*{\@sGlsplural}[1][]{\@Glsplural[hyper=false,#1]}
+\newcommand*{\@Glsplural}[2][]{%
+\new@ifnextchar[{\@Glsplural@{#1}{#2}}{\@Glsplural@{#1}{#2}[]}}
+\def\@Glsplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryplural{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSplural}{\@ifstar\@sGLSplural\@GLSplural}
+\newcommand*{\@sGLSplural}[1][]{\@GLSplural[hyper=false,#1]}
+\newcommand*{\@GLSplural}[2][]{%
+\new@ifnextchar[{\@GLSplural@{#1}{#2}}{\@GLSplural@{#1}{#2}[]}}
+\def\@GLSplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryplural{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsfirstplural}{\@ifstar\@sglsfirstplural\@glsfirstplural}
+\newcommand*{\@sglsfirstplural}[1][]{\@glsfirstplural[hyper=false,#1]}
+\newcommand*{\@glsfirstplural}[2][]{%
+\new@ifnextchar[{\@glsfirstplural@{#1}{#2}}{\@glsfirstplural@{#1}{#2}[]}}
+\def\@glsfirstplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryfirstplural{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsfirstplural}{\@ifstar\@sGlsfirstplural\@Glsfirstplural}
+\newcommand*{\@sGlsfirstplural}[1][]{\@Glsfirstplural[hyper=false,#1]}
+\newcommand*{\@Glsfirstplural}[2][]{%
+\new@ifnextchar[{\@Glsfirstplural@{#1}{#2}}{\@Glsfirstplural@{#1}{#2}[]}}
+\def\@Glsfirstplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryfirstplural{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSfirstplural}{\@ifstar\@sGLSfirstplural\@GLSfirstplural}
+\newcommand*{\@sGLSfirstplural}[1][]{\@GLSfirstplural[hyper=false,#1]}
+\newcommand*{\@GLSfirstplural}[2][]{%
+\new@ifnextchar[{\@GLSfirstplural@{#1}{#2}}{\@GLSfirstplural@{#1}{#2}[]}}
+\def\@GLSfirstplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryfirstplural{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsname}{\@ifstar\@sglsname\@glsname}
+\newcommand*{\@sglsname}[1][]{\@glsname[hyper=false,#1]}
+\newcommand*{\@glsname}[2][]{%
+\new@ifnextchar[{\@glsname@{#1}{#2}}{\@glsname@{#1}{#2}[]}}
+\def\@glsname@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryname{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsname}{\@ifstar\@sGlsname\@Glsname}
+\newcommand*{\@sGlsname}[1][]{\@Glsname[hyper=false,#1]}
+\newcommand*{\@Glsname}[2][]{%
+\new@ifnextchar[{\@Glsname@{#1}{#2}}{\@Glsname@{#1}{#2}[]}}
+\def\@Glsname@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryname{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSname}{\@ifstar\@sGLSname\@GLSname}
+\newcommand*{\@sGLSname}[1][]{\@GLSname[hyper=false,#1]}
+\newcommand*{\@GLSname}[2][]{%
+\new@ifnextchar[{\@GLSname@{#1}{#2}}{\@GLSname@{#1}{#2}[]}}
+\def\@GLSname@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryname{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsdesc}{\@ifstar\@sglsdesc\@glsdesc}
+\newcommand*{\@sglsdesc}[1][]{\@glsdesc[hyper=false,#1]}
+\newcommand*{\@glsdesc}[2][]{%
+\new@ifnextchar[{\@glsdesc@{#1}{#2}}{\@glsdesc@{#1}{#2}[]}}
+\def\@glsdesc@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrydesc{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsdesc}{\@ifstar\@sGlsdesc\@Glsdesc}
+\newcommand*{\@sGlsdesc}[1][]{\@Glsdesc[hyper=false,#1]}
+\newcommand*{\@Glsdesc}[2][]{%
+\new@ifnextchar[{\@Glsdesc@{#1}{#2}}{\@Glsdesc@{#1}{#2}[]}}
+\def\@Glsdesc@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrydesc{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSdesc}{\@ifstar\@sGLSdesc\@GLSdesc}
+\newcommand*{\@sGLSdesc}[1][]{\@GLSdesc[hyper=false,#1]}
+\newcommand*{\@GLSdesc}[2][]{%
+\new@ifnextchar[{\@GLSdesc@{#1}{#2}}{\@GLSdesc@{#1}{#2}[]}}
+\def\@GLSdesc@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrydesc{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsdescplural}{\@ifstar\@sglsdescplural\@glsdescplural}
+\newcommand*{\@sglsdescplural}[1][]{\@glsdescplural[hyper=false,#1]}
+\newcommand*{\@glsdescplural}[2][]{%
+\new@ifnextchar[{\@glsdescplural@{#1}{#2}}{\@glsdescplural@{#1}{#2}[]}}
+\def\@glsdescplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrydescplural{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsdescplural}{\@ifstar\@sGlsdescplural\@Glsdescplural}
+\newcommand*{\@sGlsdescplural}[1][]{\@Glsdescplural[hyper=false,#1]}
+\newcommand*{\@Glsdescplural}[2][]{%
+\new@ifnextchar[{\@Glsdescplural@{#1}{#2}}{\@Glsdescplural@{#1}{#2}[]}}
+\def\@Glsdescplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrydescplural{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSdescplural}{\@ifstar\@sGLSdescplural\@GLSdescplural}
+\newcommand*{\@sGLSdescplural}[1][]{\@GLSdescplural[hyper=false,#1]}
+\newcommand*{\@GLSdescplural}[2][]{%
+\new@ifnextchar[{\@GLSdescplural@{#1}{#2}}{\@GLSdescplural@{#1}{#2}[]}}
+\def\@GLSdescplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrydescplural{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glssymbol}{\@ifstar\@sglssymbol\@glssymbol}
+\newcommand*{\@sglssymbol}[1][]{\@glssymbol[hyper=false,#1]}
+\newcommand*{\@glssymbol}[2][]{%
+\new@ifnextchar[{\@glssymbol@{#1}{#2}}{\@glssymbol@{#1}{#2}[]}}
+\def\@glssymbol@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrysymbol{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glssymbol}{\@ifstar\@sGlssymbol\@Glssymbol}
+\newcommand*{\@sGlssymbol}[1][]{\@Glssymbol[hyper=false,#1]}
+\newcommand*{\@Glssymbol}[2][]{%
+\new@ifnextchar[{\@Glssymbol@{#1}{#2}}{\@Glssymbol@{#1}{#2}[]}}
+\def\@Glssymbol@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrysymbol{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSsymbol}{\@ifstar\@sGLSsymbol\@GLSsymbol}
+\newcommand*{\@sGLSsymbol}[1][]{\@GLSsymbol[hyper=false,#1]}
+\newcommand*{\@GLSsymbol}[2][]{%
+\new@ifnextchar[{\@GLSsymbol@{#1}{#2}}{\@GLSsymbol@{#1}{#2}[]}}
+\def\@GLSsymbol@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrysymbol{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glssymbolplural}{\@ifstar\@sglssymbolplural\@glssymbolplural}
+\newcommand*{\@sglssymbolplural}[1][]{\@glssymbolplural[hyper=false,#1]}
+\newcommand*{\@glssymbolplural}[2][]{%
+\new@ifnextchar[{\@glssymbolplural@{#1}{#2}}{\@glssymbolplural@{#1}{#2}[]}}
+\def\@glssymbolplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrysymbolplural{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glssymbolplural}{\@ifstar\@sGlssymbolplural\@Glssymbolplural}
+\newcommand*{\@sGlssymbolplural}[1][]{\@Glssymbolplural[hyper=false,#1]}
+\newcommand*{\@Glssymbolplural}[2][]{%
+\new@ifnextchar[{\@Glssymbolplural@{#1}{#2}}{\@Glssymbolplural@{#1}{#2}[]}}
+\def\@Glssymbolplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrysymbolplural{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSsymbolplural}{\@ifstar\@sGLSsymbolplural\@GLSsymbolplural}
+\newcommand*{\@sGLSsymbolplural}[1][]{\@GLSsymbolplural[hyper=false,#1]}
+\newcommand*{\@GLSsymbolplural}[2][]{%
+\new@ifnextchar[{\@GLSsymbolplural@{#1}{#2}}{\@GLSsymbolplural@{#1}{#2}[]}}
+\def\@GLSsymbolplural@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentrysymbolplural{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsuseri}{\@ifstar\@sglsuseri\@glsuseri}
+\newcommand*{\@sglsuseri}[1][]{\@glsuseri[hyper=false,#1]}
+\newcommand*{\@glsuseri}[2][]{%
+\new@ifnextchar[{\@glsuseri@{#1}{#2}}{\@glsuseri@{#1}{#2}[]}}
+\def\@glsuseri@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuseri{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsuseri}{\@ifstar\@sGlsuseri\@Glsuseri}
+\newcommand*{\@sGlsuseri}[1][]{\@Glsuseri[hyper=false,#1]}
+\newcommand*{\@Glsuseri}[2][]{%
+\new@ifnextchar[{\@Glsuseri@{#1}{#2}}{\@Glsuseri@{#1}{#2}[]}}
+\def\@Glsuseri@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuseri{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSuseri}{\@ifstar\@sGLSuseri\@GLSuseri}
+\newcommand*{\@sGLSuseri}[1][]{\@GLSuseri[hyper=false,#1]}
+\newcommand*{\@GLSuseri}[2][]{%
+\new@ifnextchar[{\@GLSuseri@{#1}{#2}}{\@GLSuseri@{#1}{#2}[]}}
+\def\@GLSuseri@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuseri{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsuserii}{\@ifstar\@sglsuserii\@glsuserii}
+\newcommand*{\@sglsuserii}[1][]{\@glsuserii[hyper=false,#1]}
+\newcommand*{\@glsuserii}[2][]{%
+\new@ifnextchar[{\@glsuserii@{#1}{#2}}{\@glsuserii@{#1}{#2}[]}}
+\def\@glsuserii@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuserii{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsuserii}{\@ifstar\@sGlsuserii\@Glsuserii}
+\newcommand*{\@sGlsuserii}[1][]{\@Glsuserii[hyper=false,#1]}
+\newcommand*{\@Glsuserii}[2][]{%
+\new@ifnextchar[{\@Glsuserii@{#1}{#2}}{\@Glsuserii@{#1}{#2}[]}}
+\def\@Glsuserii@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuserii{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSuserii}{\@ifstar\@sGLSuserii\@GLSuserii}
+\newcommand*{\@sGLSuserii}[1][]{\@GLSuserii[hyper=false,#1]}
+\newcommand*{\@GLSuserii}[2][]{%
+\new@ifnextchar[{\@GLSuserii@{#1}{#2}}{\@GLSuserii@{#1}{#2}[]}}
+\def\@GLSuserii@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuserii{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsuseriii}{\@ifstar\@sglsuseriii\@glsuseriii}
+\newcommand*{\@sglsuseriii}[1][]{\@glsuseriii[hyper=false,#1]}
+\newcommand*{\@glsuseriii}[2][]{%
+\new@ifnextchar[{\@glsuseriii@{#1}{#2}}{\@glsuseriii@{#1}{#2}[]}}
+\def\@glsuseriii@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuseriii{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsuseriii}{\@ifstar\@sGlsuseriii\@Glsuseriii}
+\newcommand*{\@sGlsuseriii}[1][]{\@Glsuseriii[hyper=false,#1]}
+\newcommand*{\@Glsuseriii}[2][]{%
+\new@ifnextchar[{\@Glsuseriii@{#1}{#2}}{\@Glsuseriii@{#1}{#2}[]}}
+\def\@Glsuseriii@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuseriii{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSuseriii}{\@ifstar\@sGLSuseriii\@GLSuseriii}
+\newcommand*{\@sGLSuseriii}[1][]{\@GLSuseriii[hyper=false,#1]}
+\newcommand*{\@GLSuseriii}[2][]{%
+\new@ifnextchar[{\@GLSuseriii@{#1}{#2}}{\@GLSuseriii@{#1}{#2}[]}}
+\def\@GLSuseriii@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuseriii{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsuseriv}{\@ifstar\@sglsuseriv\@glsuseriv}
+\newcommand*{\@sglsuseriv}[1][]{\@glsuseriv[hyper=false,#1]}
+\newcommand*{\@glsuseriv}[2][]{%
+\new@ifnextchar[{\@glsuseriv@{#1}{#2}}{\@glsuseriv@{#1}{#2}[]}}
+\def\@glsuseriv@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuseriv{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsuseriv}{\@ifstar\@sGlsuseriv\@Glsuseriv}
+\newcommand*{\@sGlsuseriv}[1][]{\@Glsuseriv[hyper=false,#1]}
+\newcommand*{\@Glsuseriv}[2][]{%
+\new@ifnextchar[{\@Glsuseriv@{#1}{#2}}{\@Glsuseriv@{#1}{#2}[]}}
+\def\@Glsuseriv@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuseriv{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSuseriv}{\@ifstar\@sGLSuseriv\@GLSuseriv}
+\newcommand*{\@sGLSuseriv}[1][]{\@GLSuseriv[hyper=false,#1]}
+\newcommand*{\@GLSuseriv}[2][]{%
+\new@ifnextchar[{\@GLSuseriv@{#1}{#2}}{\@GLSuseriv@{#1}{#2}[]}}
+\def\@GLSuseriv@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuseriv{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsuserv}{\@ifstar\@sglsuserv\@glsuserv}
+\newcommand*{\@sglsuserv}[1][]{\@glsuserv[hyper=false,#1]}
+\newcommand*{\@glsuserv}[2][]{%
+\new@ifnextchar[{\@glsuserv@{#1}{#2}}{\@glsuserv@{#1}{#2}[]}}
+\def\@glsuserv@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuserv{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsuserv}{\@ifstar\@sGlsuserv\@Glsuserv}
+\newcommand*{\@sGlsuserv}[1][]{\@Glsuserv[hyper=false,#1]}
+\newcommand*{\@Glsuserv}[2][]{%
+\new@ifnextchar[{\@Glsuserv@{#1}{#2}}{\@Glsuserv@{#1}{#2}[]}}
+\def\@Glsuserv@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuserv{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSuserv}{\@ifstar\@sGLSuserv\@GLSuserv}
+\newcommand*{\@sGLSuserv}[1][]{\@GLSuserv[hyper=false,#1]}
+\newcommand*{\@GLSuserv}[2][]{%
+\new@ifnextchar[{\@GLSuserv@{#1}{#2}}{\@GLSuserv@{#1}{#2}[]}}
+\def\@GLSuserv@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuserv{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\glsuservi}{\@ifstar\@sglsuservi\@glsuservi}
+\newcommand*{\@sglsuservi}[1][]{\@glsuservi[hyper=false,#1]}
+\newcommand*{\@glsuservi}[2][]{%
+\new@ifnextchar[{\@glsuservi@{#1}{#2}}{\@glsuservi@{#1}{#2}[]}}
+\def\@glsuservi@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuservi{#2}}%
+\@gls@link[#1]{#2}{\@glo@text#3}%
+}%
+}
+\newrobustcmd*{\Glsuservi}{\@ifstar\@sGlsuservi\@Glsuservi}
+\newcommand*{\@sGlsuservi}[1][]{\@Glsuservi[hyper=false,#1]}
+\newcommand*{\@Glsuservi}[2][]{%
+\new@ifnextchar[{\@Glsuservi@{#1}{#2}}{\@Glsuservi@{#1}{#2}[]}}
+\def\@Glsuservi@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuservi{#2}}%
+\@gls@link[#1]{#2}{%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3}%
+}%
+}
+\newrobustcmd*{\GLSuservi}{\@ifstar\@sGLSuservi\@GLSuservi}
+\newcommand*{\@sGLSuservi}[1][]{\@GLSuservi[hyper=false,#1]}
+\newcommand*{\@GLSuservi}[2][]{%
+\new@ifnextchar[{\@GLSuservi@{#1}{#2}}{\@GLSuservi@{#1}{#2}[]}}
+\def\@GLSuservi@#1#2[#3]{%
+\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}%
+\protected@edef\@glo@text{\glsentryuservi{#2}}%
+\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+}%
+}
+\newrobustcmd*{\acrshort}{\@ifstar\s@acrshort\ns@acrshort}
+\newcommand*{\s@acrshort}[2][]{%
+ \new@ifnextchar[{\@acrshort{hyper=false,#1}{#2}}%
+ {\@acrshort{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@acrshort}[2][]{%
+ \new@ifnextchar[{\@acrshort{#1}{#2}}{\@acrshort{#1}{#2}[]}%
+}
+\def\@acrshort#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentryshort{#2}}%
+ \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}%
+ }%
+}
+\newrobustcmd*{\Acrshort}{\@ifstar\s@Acrshort\ns@Acrshort}
+\newcommand*{\s@Acrshort}[2][]{%
+ \new@ifnextchar[{\@Acrshort{hyper=false,#1}{#2}}%
+ {\@Acrshort{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@Acrshort}[2][]{%
+ \new@ifnextchar[{\@Acrshort{#1}{#2}}{\@Acrshort{#1}{#2}[]}%
+}
+\def\@Acrshort#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentryshort{#2}}%
+ \@gls@link[#1]{#2}%
+ {%
+ \acronymfont{\expandafter\makefirstuc\expandafter{\@glo@text}}#3%
+ }%
+ }%
+}
+\newrobustcmd*{\ACRshort}{\@ifstar\s@ACRshort\ns@ACRshort}
+\newcommand*{\s@ACRshort}[2][]{%
+ \new@ifnextchar[{\@ACRshort{hyper=false,#1}{#2}}%
+ {\@ACRshort{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@ACRshort}[2][]{%
+ \new@ifnextchar[{\@ACRshort{#1}{#2}}{\@ACRshort{#1}{#2}[]}%
+}
+\def\@ACRshort#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentryshort{#2}}%
+ \@gls@link[#1]{#2}{\acronymfont{\MakeUppercase{\@glo@text#3}}}%
+ }%
+}
+\newrobustcmd*{\acrshortpl}{\@ifstar\s@acrshortpl\ns@acrshortpl}
+\newcommand*{\s@acrshortpl}[2][]{%
+ \new@ifnextchar[{\@acrshortpl{hyper=false,#1}{#2}}%
+ {\@acrshortpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@acrshortpl}[2][]{%
+ \new@ifnextchar[{\@acrshortpl{#1}{#2}}{\@acrshortpl{#1}{#2}[]}%
+}
+\def\@acrshortpl#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentryshortpl{#2}}%
+ \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}%
+ }%
+}
+\newrobustcmd*{\Acrshortpl}{\@ifstar\s@Acrshortpl\ns@Acrshortpl}
+\newcommand*{\s@Acrshortpl}[2][]{%
+ \new@ifnextchar[{\@Acrshortpl{hyper=false,#1}{#2}}%
+ {\@Acrshortpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@Acrshortpl}[2][]{%
+ \new@ifnextchar[{\@Acrshortpl{#1}{#2}}{\@Acrshortpl{#1}{#2}[]}%
+}
+\def\@Acrshortpl#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentryshortpl{#2}}%
+ \@gls@link[#1]{#2}%
+ {%
+ \acronymfont{\expandafter\makefirstuc\expandafter{\@glo@text}}#3%
+ }%
+ }%
+}
+\newrobustcmd*{\ACRshortpl}{\@ifstar\s@ACRshortpl\ns@ACRshortpl}
+\newcommand*{\s@ACRshortpl}[2][]{%
+ \new@ifnextchar[{\@ACRshortpl{hyper=false,#1}{#2}}%
+ {\@ACRshortpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@ACRshortpl}[2][]{%
+ \new@ifnextchar[{\@ACRshortpl{#1}{#2}}{\@ACRshortpl{#1}{#2}[]}%
+}
+\def\@ACRshortpl#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentryshortpl{#2}}%
+ \@gls@link[#1]{#2}{\acronymfont{\MakeUppercase{\@glo@text#3}}}%
+ }%
+}
+\newrobustcmd*{\acrlong}{\@ifstar\s@acrlong\ns@acrlong}
+\newcommand*{\s@acrlong}[2][]{%
+ \new@ifnextchar[{\@acrlong{hyper=false,#1}{#2}}%
+ {\@acrlong{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@acrlong}[2][]{%
+ \new@ifnextchar[{\@acrlong{#1}{#2}}{\@acrlong{#1}{#2}[]}%
+}
+\def\@acrlong#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentrylong{#2}}%
+ \@gls@link[#1]{#2}{\@glo@text#3}%
+ }%
+}
+\newrobustcmd*{\Acrlong}{\@ifstar\s@Acrlong\ns@Acrlong}
+\newcommand*{\s@Acrlong}[2][]{%
+ \new@ifnextchar[{\@Acrlong{hyper=false,#1}{#2}}%
+ {\@Acrlong{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@Acrlong}[2][]{%
+ \new@ifnextchar[{\@Acrlong{#1}{#2}}{\@Acrlong{#1}{#2}[]}%
+}
+\def\@Acrlong#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentrylong{#2}}%
+ \@gls@link[#1]{#2}%
+ {%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3%
+ }%
+ }%
+}
+\newrobustcmd*{\ACRlong}{\@ifstar\s@ACRlong\ns@ACRlong}
+\newcommand*{\s@ACRlong}[2][]{%
+ \new@ifnextchar[{\@ACRlong{hyper=false,#1}{#2}}%
+ {\@ACRlong{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@ACRlong}[2][]{%
+ \new@ifnextchar[{\@ACRlong{#1}{#2}}{\@ACRlong{#1}{#2}[]}%
+}
+\def\@ACRlong#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentrylong{#2}}%
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+ }%
+}
+\newrobustcmd*{\acrlongpl}{\@ifstar\s@acrlongpl\ns@acrlongpl}
+\newcommand*{\s@acrlongpl}[2][]{%
+ \new@ifnextchar[{\@acrlongpl{hyper=false,#1}{#2}}%
+ {\@acrlongpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@acrlongpl}[2][]{%
+ \new@ifnextchar[{\@acrlongpl{#1}{#2}}{\@acrlongpl{#1}{#2}[]}%
+}
+\def\@acrlongpl#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentrylongpl{#2}}%
+ \@gls@link[#1]{#2}{\@glo@text#3}%
+ }%
+}
+\newrobustcmd*{\Acrlongpl}{\@ifstar\s@Acrlongpl\ns@Acrlongpl}
+\newcommand*{\s@Acrlongpl}[2][]{%
+ \new@ifnextchar[{\@Acrlongpl{hyper=false#1}{#2}}%
+ {\@Acrlongpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@Acrlongpl}[2][]{%
+ \new@ifnextchar[{\@Acrlongpl{#1}{#2}}{\@Acrlongpl{#1}{#2}[]}%
+}
+\def\@Acrlongpl#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentrylongpl{#2}}%
+ \@gls@link[#1]{#2}%
+ {%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3%
+ }%
+ }%
+}
+\newrobustcmd*{\ACRlongpl}{\@ifstar\s@ACRlongpl\ns@ACRlongpl}
+\newcommand*{\s@ACRlongpl}[2][]{%
+ \new@ifnextchar[{\@ACRlongpl{hyper=false,#1}{#2}}%
+ {\@ACRlongpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*{\ns@ACRlongpl}[2][]{%
+ \new@ifnextchar[{\@ACRlongpl{#1}{#2}}{\@ACRlongpl{#1}{#2}[]}%
+}
+\def\@ACRlongpl#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \edef\@glo@type{\glsentrytype{#2}}%
+ \protected@edef\@glo@text{\glsentrylongpl{#2}}%
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+ }%
+}
+\newcommand*{\glsentryname}[1]{\csname glo@#1@name\endcsname}
+\newcommand*{\Glsentryname}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@name\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentrydesc}[1]{\csname glo@#1@desc\endcsname}
+\newcommand*{\Glsentrydesc}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@desc\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentrydescplural}[1]{%
+\csname glo@#1@descplural\endcsname}
+\newcommand*{\Glsentrydescplural}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@descplural\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentrytext}[1]{\csname glo@#1@text\endcsname}
+\newcommand*{\Glsentrytext}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@text\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryplural}[1]{\csname glo@#1@plural\endcsname}
+\newcommand*{\Glsentryplural}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@plural\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentrysymbol}[1]{\csname glo@#1@symbol\endcsname}
+\newcommand*{\Glsentrysymbol}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@symbol\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentrysymbolplural}[1]{%
+\csname glo@#1@symbolplural\endcsname}
+\newcommand*{\Glsentrysymbolplural}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@symbolplural\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryfirst}[1]{\csname glo@#1@first\endcsname}
+\newcommand*{\Glsentryfirst}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@first\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryfirstplural}[1]{%
+\csname glo@#1@firstpl\endcsname}
+\newcommand*{\Glsentryfirstplural}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@firstpl\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentrytype}[1]{\csname glo@#1@type\endcsname}
+\newcommand*{\glsentrysort}[1]{\csname glo@#1@sort\endcsname}
+\newcommand*{\glsentryuseri}[1]{\csname glo@#1@useri\endcsname}
+\newcommand*{\Glsentryuseri}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@useri\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryuserii}[1]{\csname glo@#1@userii\endcsname}
+\newcommand*{\Glsentryuserii}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@userii\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryuseriii}[1]{\csname glo@#1@useriii\endcsname}
+\newcommand*{\Glsentryuseriii}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@useriii\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryuseriv}[1]{\csname glo@#1@useriv\endcsname}
+\newcommand*{\Glsentryuseriv}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@useriv\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryuserv}[1]{\csname glo@#1@userv\endcsname}
+\newcommand*{\Glsentryuserv}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@userv\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryuservi}[1]{\csname glo@#1@uservi\endcsname}
+\newcommand*{\Glsentryuservi}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@uservi\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryshort}[1]{\csname glo@#1@short\endcsname}
+\newcommand*{\Glsentryshort}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@short\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryshortpl}[1]{\csname glo@#1@shortpl\endcsname}
+\newcommand*{\Glsentryshortpl}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@shortpl\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentrylong}[1]{\csname glo@#1@long\endcsname}
+\newcommand*{\Glsentrylong}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@long\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentrylongpl}[1]{\csname glo@#1@longpl\endcsname}
+\newcommand*{\Glsentrylongpl}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@longpl\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+\newcommand*{\glsentryfull}[1]{%
+ \glsentrylong{#1}\space(\glsentryshort{#1})%
+}
+\newcommand*{\Glsentryfull}[1]{%
+ \Glsentrylong{#1}\space(\glsentryshortpl{#1})%
+}
+\newcommand*{\glsentryfullpl}[1]{%
+ \glsentrylongpl{#1}\space(\glsentryshort{#1})%
+}
+\newcommand*{\Glsentryfullpl}[1]{%
+ \Glsentrylongpl{#1}\space(\glsentryshortpl{#1})%
+}
+\newcommand*{\glshyperlink}[2][\glsentrytext{\@glo@label}]{%
+\def\@glo@label{#2}%
+\@glslink{glo:#2}{#1}}
+\define@key{glossadd}{counter}{\def\@gls@counter{#1}}
+\define@key{glossadd}{format}{\def\@glsnumberformat{#1}}
+\define@key{glossadd}{types}{\def\@glo@type{#1}}
+\newrobustcmd*{\glsadd}[2][]{%
+ \glsdoifexists{#2}%
+ {%
+ \def\@glsnumberformat{glsnumberformat}%
+ \edef\@gls@counter{\csname glo@#2@counter\endcsname}%
+ \setkeys{glossadd}{#1}%
+ \@gls@saveentrycounter
+ \@do@wrglossary{#2}%
+ }%
+}
+\newrobustcmd*{\glsaddall}[1][]{%
+\edef\@glo@type{\@glo@types}%
+\setkeys{glossadd}{#1}%
+\forallglsentries[\@glo@type]{\@glo@entry}{%
+\glsadd[#1]{\@glo@entry}}%
+}
+\edef\glsopenbrace{\expandafter\@gobble\string\{}
+\edef\glsclosebrace{\expandafter\@gobble\string\}}
+\edef\glsquote#1{\string"#1\string"}
+\ifglsxindy
+ \newcommand*{\@glsfirstletter}{A}
+\fi
+\ifglsxindy
+ \newcommand*{\GlsSetXdyFirstLetterAfterDigits}[1]{%
+ \renewcommand*{\@glsfirstletter}{#1}}
+\else
+ \newcommand*{\GlsSetXdyFirstLetterAfterDigits}[1]{%
+ \glsnoxindywarning\GlsSetXdyFirstLetterAfterDigits}
+\fi
+\newcommand*{\@glsminrange}{2}
+\ifglsxindy
+ \newcommand*{\GlsSetXdyMinRangeLength}[1]{%
+ \renewcommand*{\@glsminrange}{#1}}
+\else
+ \newcommand*{\GlsSetXdyMinRangeLength}[1]{%
+ \glsnoxindywarning\GlsSetXdyMinRangeLength}
+\fi
+
+\ifglsxindy
+ \def\writeist{%
+ \@gls@addpredefinedattributes
+ \openout\glswrite=\istfilename
+ \write\glswrite{;; xindy style file created by the glossaries
+ package}%
+ \write\glswrite{;; for document '\jobname' on
+ \the\year-\the\month-\the\day}%
+ \write\glswrite{^^J; required styles^^J}
+ \@for\@xdystyle:=\@xdyrequiredstyles\do{%
+ \ifx\@xdystyle\@empty
+ \else
+ \protected@write\glswrite{}{(require
+ \string"\@xdystyle.xdy\string")}%
+ \fi
+ }%
+ \write\glswrite{^^J%
+ ; list of allowed attributes (number formats)^^J}%
+ \write\glswrite{(define-attributes ((\@xdyattributes)))}%
+ \write\glswrite{^^J; user defined alphabets^^J}%
+ \write\glswrite{\@xdyuseralphabets}%
+ \write\glswrite{^^J; location class definitions^^J}%
+ \@for\@gls@classI:=\@gls@xdy@locationlist\do{%
+ \protected@write\glswrite{}{(define-location-class
+ \string"\@gls@classI\string"^^J\space\space\space
+ (
+ :sep "{}{"
+ \csname @gls@xdy@Lclass@\@gls@classI\endcsname\space
+ :sep "}"
+ )
+ ^^J\space\space\space
+ :min-range-length \@glsminrange^^J%
+ )
+ }%
+ {%
+ \@for\@gls@classII:=\@gls@xdy@locationlist\do{%
+ \protected@write\glswrite{}{(define-location-class
+ \string"\@gls@classII-\@gls@classI\string"
+ ^^J\space\space\space
+ (
+ :sep "{"
+ \csname @gls@xdy@Lclass@\@gls@classII\endcsname\space
+ :sep "}{"
+ \csname @gls@xdy@Lclass@\@gls@classI\endcsname\space
+ :sep "}"
+ )
+ ^^J\space\space\space
+ :min-range-length \@glsminrange^^J%
+ )
+ }%
+ }%
+ }%
+ }%
+ \write\glswrite{^^J; user defined location classes}%
+ \write\glswrite{\@xdyuserlocationdefs}%
+ \write\glswrite{^^J; define cross-reference class^^J}%
+ \write\glswrite{(define-crossref-class \string"see\string"
+ :unverified )}%
+ \write\glswrite{(markup-crossref-list
+ :class \string"see\string"^^J\space\space\space
+ :open \string"\string\glsseeformat\string"
+ :close \string"{}\string")}%
+ \write\glswrite{^^J; define the order of the location classes}%
+ \write\glswrite{(define-location-class-order
+ (\@xdylocationclassorder))}%
+ \write\glswrite{^^J; define the glossary markup^^J}%
+ \write\glswrite{(markup-index^^J\space\space\space
+ :open \string"\string
+ \glossarysection[\string\glossarytoctitle]{\string
+ \glossarytitle}\string\glossarypreamble}%
+ \@for\@this@ctr:=\@xdycounters\do{%
+ {%
+ \@for\@this@attr:=\@xdyattributelist\do{%
+ \protected@write\glswrite{}{\string\providecommand*%
+ \expandafter\string
+ \csname glsX\@this@ctr X\@this@attr\endcsname[2]%
+ {%
+ \string\setentrycounter
+ [\expandafter\@gobble\string\#1]{\@this@ctr}%
+ \expandafter\string
+ \csname\@this@attr\endcsname
+ {\expandafter\@gobble\string\#2}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ \write\glswrite{%
+ \string\begin
+ {theglossary}\string\glossaryheader\string~n\string" ^^J\space
+ \space\space:close \string"\expandafter\@gobble
+ \string\%\string~n\string
+ \end{theglossary}\string\glossarypostamble
+ \string~n\string" ^^J\space\space\space
+ :tree)}%
+ \write\glswrite{(markup-letter-group-list
+ :sep \string"\string\glsgroupskip\string~n\string")}%
+ \write\glswrite{(markup-indexentry
+ :open \string"\string\relax \string\glsresetentrylist
+ \string~n\string")}%
+ \write\glswrite{(markup-locclass-list :open
+ \string"\glsopenbrace\string\glossaryentrynumbers
+ \glsopenbrace\string\relax\space \string"^^J\space\space\space
+ :sep \string", \string"
+ :close \string"\glsclosebrace\glsclosebrace\string")}%
+ \write\glswrite{(markup-locref-list
+ :sep \string"\string\delimN\space\string")}%
+ \write\glswrite{(markup-range
+ :sep \string"\string\delimR\space\string")}%
+ \@onelevel@sanitize\gls@suffixF
+ \@onelevel@sanitize\gls@suffixFF
+ \ifx\gls@suffixF\@empty
+ \else
+ \write\glswrite{(markup-range
+ :close "\gls@suffixF" :length 1 :ignore-end)}%
+ \fi
+ \ifx\gls@suffixFF\@empty
+ \else
+ \write\glswrite{(markup-range
+ :close "\gls@suffixFF" :length 2 :ignore-end)}%
+ \fi
+ \write\glswrite{^^J; define format to use for locations^^J}%
+ \write\glswrite{\@xdylocref}%
+ \write\glswrite{^^J; define letter group list format^^J}%
+ \write\glswrite{(markup-letter-group-list
+ :sep \string"\string\glsgroupskip\string~n\string")}%
+ \write\glswrite{^^J; letter group headings^^J}%
+ \write\glswrite{(markup-letter-group
+ :open-head \string"\string\glsgroupheading
+ \glsopenbrace\string"^^J\space\space\space
+ :close-head \string"\glsclosebrace\string")}%
+ \write\glswrite{^^J; additional letter groups^^J}%
+ \write\glswrite{\@xdylettergroups}%
+ \write\glswrite{^^J; additional sort rules^^J}
+ \write\glswrite{\@xdysortrules}%
+ \closeout\glswrite
+ \let\writeist\relax
+ }
+\else
+ \edef\@gls@actualchar{\string?}
+ \edef\@gls@encapchar{\string|}
+ \edef\@gls@levelchar{\string!}
+ \edef\@gls@quotechar{\string"}
+ \def\writeist{\relax
+ \openout\glswrite=\istfilename
+ \write\glswrite{\expandafter\@gobble\string\% makeindex style file
+ created by the glossaries package}
+ \write\glswrite{\expandafter\@gobble\string\% for document
+ '\jobname' on \the\year-\the\month-\the\day}
+ \write\glswrite{actual '\@gls@actualchar'}
+ \write\glswrite{encap '\@gls@encapchar'}
+ \write\glswrite{level '\@gls@levelchar'}
+ \write\glswrite{quote '\@gls@quotechar'}
+ \write\glswrite{keyword \string"\string\\glossaryentry\string"}
+ \write\glswrite{preamble \string"\string\\glossarysection[\string
+ \\glossarytoctitle]{\string\\glossarytitle}\string
+ \\glossarypreamble\string\n\string\\begin{theglossary}\string
+ \\glossaryheader\string\n\string"}
+ \write\glswrite{postamble \string"\string\%\string\n\string
+ \\end{theglossary}\string\\glossarypostamble\string\n
+ \string"}
+ \write\glswrite{group_skip \string"\string\\glsgroupskip\string\n
+ \string"}
+ \write\glswrite{item_0 \string"\string\%\string\n\string"}
+ \write\glswrite{item_1 \string"\string\%\string\n\string"}
+ \write\glswrite{item_2 \string"\string\%\string\n\string"}
+ \write\glswrite{item_01 \string"\string\%\string\n\string"}
+ \write\glswrite{item_x1
+ \string"\string\\relax \string\\glsresetentrylist\string\n
+ \string"}
+ \write\glswrite{item_12 \string"\string\%\string\n\string"}
+ \write\glswrite{item_x2
+ \string"\string\\relax \string\\glsresetentrylist\string\n
+ \string"}
+ \write\glswrite{delim_0 \string"\string\{\string
+ \\glossaryentrynumbers\string\{\string\\relax \string"}
+ \write\glswrite{delim_1 \string"\string\{\string
+ \\glossaryentrynumbers\string\{\string\\relax \string"}
+ \write\glswrite{delim_2 \string"\string\{\string
+ \\glossaryentrynumbers\string\{\string\\relax \string"}
+ \write\glswrite{delim_t \string"\string\}\string\}\string"}
+ \write\glswrite{delim_n \string"\string\\delimN \string"}
+ \write\glswrite{delim_r \string"\string\\delimR \string"}
+ \write\glswrite{headings_flag 1}
+ \write\glswrite{heading_prefix
+ \string"\string\\glsgroupheading\string\{\string"}
+ \write\glswrite{heading_suffix
+ \string"\string\}\string\\relax
+ \string\\glsresetentrylist \string"}
+ \write\glswrite{symhead_positive \string"glssymbols\string"}
+ \write\glswrite{numhead_positive \string"glsnumbers\string"}
+ \write\glswrite{page_compositor \string"\glscompositor\string"}
+ \@gls@escbsdq\gls@suffixF
+ \@gls@escbsdq\gls@suffixFF
+ \ifx\gls@suffixF\@empty
+ \else
+ \write\glswrite{suffix_2p \string"\gls@suffixF\string"}
+ \fi
+ \ifx\gls@suffixFF\@empty
+ \else
+ \write\glswrite{suffix_3p \string"\gls@suffixFF\string"}
+ \fi
+ \closeout\glswrite
+ \let\writeist\relax
+ }
+\fi
+\newcommand{\noist}{%
+ \@gls@addpredefinedattributes
+ \let\writeist\relax
+}
+\newcommand*{\@makeglossary}[1]{%
+ \ifglossaryexists{#1}%
+ {%
+ \ifglssavewrites
+ \expandafter\newtoks\csname glo@#1@filetok\endcsname
+ \else
+ \expandafter\newwrite\csname glo@#1@file\endcsname
+ \expandafter\@glsopenfile\csname glo@#1@file\endcsname{#1}%
+ \fi
+ \@gls@renewglossary
+ \writeist
+ }%
+ {%
+ \PackageError{glossaries}%
+ {Glossary type `#1' not defined}%
+ {New glossaries must be defined before using \string\makeglossary}%
+ }%
+}
+\newcommand*{\@glsopenfile}[2]{%
+ \immediate\openout#1=\jobname.\csname @glotype@#2@out\endcsname
+ \PackageInfo{glossaries}{Writing glossary file
+ \jobname.\csname @glotype@#2@out\endcsname}%
+}
+\newcommand*{\warn@nomakeglossaries}{%
+ \GlossariesWarningNoLine{\string\makeglossaries\space
+ hasn't been used,^^Jthe glossaries will not be updated}%
+}
+\newcommand*{\makeglossaries}{%
+ \protected@write\@auxout{}{\string\@istfilename{\istfilename}}%
+ \protected@write\@auxout{}{\string\@glsorder{\glsorder}}
+ \@for\@glo@type:=\@glo@types\do{%
+ \ifthenelse{\equal{\@glo@type}{}}{}{%
+ \@makeglossary{\@glo@type}}%
+ }%
+ \renewcommand*\newglossary[4][]{%
+ \PackageError{glossaries}{New glossaries
+ must be created before \string\makeglossaries}{You need
+ to move \string\makeglossaries\space after all your
+ \string\newglossary\space commands}}%
+ \let\@makeglossary\relax
+ \let\makeglossary\relax
+ \let\makeglossaries\relax
+ \@disable@onlypremakeg
+ \let\warn@nomakeglossaries\relax
+}
+\let\makeglossary\makeglossaries
+\AtEndDocument{%
+ \warn@nomakeglossaries
+ \warn@noprintglossary
+}
+\newwrite\glswrite
+\def\istfile{\glswrite}
+\AtEndDocument{%
+ \glswritefiles
+}
+\ifglssavewrites
+ \newcommand*{\glswritefiles}{%
+ \forallglossaries{\@glo@type}{%
+ \edef\gls@tmp{\expandafter\the\csname glo@\@glo@type
+@filetok\endcsname}%
+ \ifx\gls@tmp\@empty
+ \ifx\@glo@type\glsdefaulttype
+ \GlossariesWarningNoLine{Glossary `\@glo@type' has no
+ entries.^^JRemember to use package option `nomain' if
+you
+ don't want to^^Juse the main glossary}%
+ \else
+ \GlossariesWarningNoLine{Glossary `\@glo@type' has no
+ entries}%
+ \fi
+ \else
+ \@glsopenfile{\glswrite}{\@glo@type}%
+ \immediate\write\glswrite{%
+ \expandafter\the\csname glo@\@glo@type
+@filetok\endcsname}%
+ \immediate\closeout\glswrite
+ \fi
+ }%
+ }
+\else
+ \let\glswritefiles\relax
+\fi
+\renewcommand*{\glossary}[1][\glsdefaulttype]{%
+\@glossary[#1]}
+\def\@glossary[#1]{\index}
+\newcommand{\@gls@renewglossary}{%
+ \gdef\@glossary[##1]{\@bsphack\begingroup\@wrglossary{##1}}%
+ \let\@gls@renewglossary\@empty
+}
+\renewcommand*{\@wrglossary}[2]{%
+ \ifglssavewrites
+ \protected@edef\@gls@tmp{\the\csname glo@#1@filetok\endcsname#2}%
+ \expandafter\global\expandafter\csname glo@#1@filetok\endcsname
+ \expandafter{\@gls@tmp^^J}%
+ \else
+ \expandafter\protected@write\csname glo@#1@file\endcsname{}{#2}%
+ \fi
+ \endgroup\@esphack
+}
+\newcommand{\@do@wrglossary}[1]{%
+ \protected@edef\@glslocref{\theglsentrycounter}%
+ \@gls@checkmkidxchars\@glslocref
+ \expandafter\ifx\theHglsentrycounter\theglsentrycounter
+ \def\@glo@counterprefix{}%
+ \else
+ \protected@edef\@glsHlocref{\theHglsentrycounter}%
+ \@gls@checkmkidxchars\@glsHlocref
+ \edef\@do@gls@getcounterprefix{\noexpand\@gls@getcounterprefix
+ {\@glslocref}{\@glsHlocref}%
+ }%
+ \@do@gls@getcounterprefix
+ \fi
+\ifglsxindy
+ \expandafter\@glo@check@mkidxrangechar\@glsnumberformat\@nil
+ \def\@glo@range{}%
+ \expandafter\if\@glo@prefix(\relax
+ \def\@glo@range{:open-range}%
+ \else
+ \expandafter\if\@glo@prefix)\relax
+ \def\@glo@range{:close-range}%
+ \fi
+ \fi
+ \glossary[\csname glo@#1@type\endcsname]{%
+ (indexentry :tkey (\csname glo@#1@index\endcsname)
+ :locref \string"{\@glo@counterprefix}{\@glslocref}\string" %
+ :attr \string"\@gls@counter\@glo@suffix\string"
+ \@glo@range
+ )
+ }%
+\else
+ \@set@glo@numformat{\@glo@numfmt}{\@gls@counter}{\@glsnumberformat}%
+ {\@glo@counterprefix}%
+ \glossary[\csname glo@#1@type\endcsname]{%
+ \string\glossaryentry{\csname glo@#1@index\endcsname
+ \@gls@encapchar\@glo@numfmt}{\theglsentrycounter}}%
+\fi
+}
+\newcommand*\@gls@getcounterprefix[2]{%
+ \edef\@gls@thisloc{#1}\edef\@gls@thisHloc{#2}%
+ \ifx\@gls@thisloc\@gls@thisHloc
+ \def\@glo@counterprefix{}%
+ \else
+ \def\@gls@get@counterprefix##1.#1##2\end@getprefix{%
+ \def\@glo@tmp{##2}%
+ \ifx\@glo@tmp\@empty
+ \def\@glo@counterprefix{}%
+ \else
+ \def\@glo@counterprefix{##1}%
+ \fi
+ }%
+ \@gls@get@counterprefix#2.#1\end@getprefix
+ \fi
+}
+\newcommand{\@do@seeglossary}[2]{%
+\def\@gls@xref{#2}%
+\@onelevel@sanitize\@gls@xref
+\@gls@checkmkidxchars\@gls@xref
+\ifglsxindy
+ \glossary[\csname glo@#1@type\endcsname]{%
+ (indexentry
+ :tkey (\csname glo@#1@index\endcsname)
+ :xref (\string"\@gls@xref\string")
+ :attr \string"see\string"
+ )
+ }%
+\else
+ \glossary[\csname glo@#1@type\endcsname]{%
+ \string\glossaryentry{\csname glo@#1@index\endcsname
+ \@gls@encapchar glsseeformat\@gls@xref}{Z}}%
+\fi
+}
+\def\@gls@fixbraces#1#2#3\@nil{%
+ \ifx#2[\relax
+ \def#1{#2#3}%
+ \else
+ \def#1{{#2#3}}%
+ \fi
+}
+\newcommand*{\glssee}[3][\seename]{%
+ \@do@seeglossary{#2}{[#1]{#3}}}
+\newcommand*{\@glssee}[3][\seename]{%
+ \glssee[#1]{#3}{#2}}
+\newcommand*{\glsseeformat}[3][\seename]{\emph{#1} \glsseelist{#2}}
+\newcommand*{\glsseelist}[1]{%
+ \let\@gls@dolast\relax
+ \let\@gls@donext\relax
+ \@for\@gls@thislabel:=#1\do{%
+ \ifx\@xfor@nextelement\@nnil
+ \@gls@dolast
+ \else
+ \@gls@donext
+ \fi
+ \glsseeitem{\@gls@thislabel}%
+ \let\@gls@dolast\glsseelastsep
+ \let\@gls@donext\glsseesep
+ }%
+}
+\newcommand*{\glsseelastsep}{\space\andname\space}
+\newcommand*{\glsseesep}{, }
+\newcommand*{\glsseeitem}[1]{\glshyperlink[\glsseeitemformat{#1}]{#1}}
+\newcommand*{\glsseeitemformat}[1]{\glsentrytext{#1}}
+\def\warn@noprintglossary{\GlossariesWarningNoLine{No
+ \string\printglossary\space or \string\printglossaries\space
+ found.^^JThis document will not have a glossary}}
+\ifcsundef{printglossary}{}%
+{%
+ \GlossariesWarning{Overriding \string\printglossary}%
+ \undef\printglossary
+}
+\newcommand*{\printglossary}[1][type=\glsdefaulttype]{%
+ \ifglsxindy\findrootlanguage\fi
+ \def\@glo@type{\glsdefaulttype}%
+ \def\glossarytitle{\csname @glotype@\@glo@type @title\endcsname}%
+ \let\org@glossarytitle\glossarytitle
+ \def\@glossarystyle{}%
+ \def\gls@dotoctitle{\glssettoctitle{\@glo@type}}%
+ \let\@org@glossaryentrynumbers\glossaryentrynumbers
+ \bgroup
+ \setkeys{printgloss}{#1}%
+ \ifx\glossarytitle\org@glossarytitle
+ \else
+ \expandafter\let\csname @glotype@\@glo@type @title\endcsname
+ \glossarytitle
+ \fi
+ \let\currentglossary\@glo@type
+ \let\org@glossaryentrynumbers\glossaryentrynumbers
+ \let\glsnonextpages\@glsnonextpages
+ \let\glsnextpages\@glsnextpages
+ \let\nopostdesc\@nopostdesc
+ \gls@dotoctitle
+ \@glossarystyle
+ \makeatletter
+ \@input@{\jobname.\csname @glotype@\@glo@type @in\endcsname}%
+\IfFileExists{\jobname.\csname @glotype@\@glo@type @in\endcsname}{}%
+{\null}%
+ \ifglsxindy
+ \ifcsundef{@xdy@\@glo@type @language}%
+ {%
+ \protected@write\@auxout{}{%
+ \string\@xdylanguage{\@glo@type}{\@xdy@main@language}}%
+ }%
+ {%
+ \protected@write\@auxout{}{%
+ \string\@xdylanguage{\@glo@type}{\csname @xdy@\@glo@type
+ @language\endcsname}}%
+ }%
+ \protected@write\@auxout{}{%
+ \string\@gls@codepage{\@glo@type}{\gls@codepage}}%
+ \fi
+ \egroup
+ \global\let\glossaryentrynumbers\@org@glossaryentrynumbers
+ \global\let\warn@noprintglossary\relax
+}
+\newcommand*{\printglossaries}{%
+\forallglossaries{\@@glo@type}{\printglossary[type=\@@glo@type]}}
+\define@key{printgloss}{type}{\def\@glo@type{#1}}
+\define@key{printgloss}{title}{\def\glossarytitle{#1}}
+\define@key{printgloss}{toctitle}{\def\glossarytoctitle{#1}%
+\let\gls@dotoctitle\relax
+}
+\define@key{printgloss}{style}{%
+ \ifcsundef{@glsstyle@#1}%
+ {%
+ \PackageError{glossaries}%
+ {Glossary style `#1' undefined}{}%
+ }%
+ {%
+ \def\@glossarystyle{\csname @glsstyle@#1\endcsname}%
+ }%
+}
+\define@choicekey{printgloss}{numberedsection}[\val\nr]{%
+false,nolabel,autolabel}[nolabel]{%
+\ifcase\nr\relax
+ \renewcommand*{\@@glossarysecstar}{*}%
+ \renewcommand*{\@@glossaryseclabel}{}%
+\or
+ \renewcommand*{\@@glossarysecstar}{}%
+ \renewcommand*{\@@glossaryseclabel}{}%
+\or
+ \renewcommand*{\@@glossarysecstar}{}%
+ \renewcommand*{\@@glossaryseclabel}{\label{\glsautoprefix\@glo@type}}%
+\fi}
+\define@boolkey{printgloss}[gls]{nonumberlist}[true]{%
+\ifglsnonumberlist
+ \def\glossaryentrynumbers##1{}%
+\else
+ \def\glossaryentrynumbers##1{##1}%
+\fi}
+\newcommand*{\@glsnonextpages}{%
+ \gdef\glossaryentrynumbers##1{%
+ \glsresetentrylist}}
+\newcommand*{\@glsnextpages}{%
+ \gdef\glossaryentrynumbers##1{%
+ ##1\glsresetentrylist}}
+\newcommand*{\glsresetentrylist}{%
+ \global\let\glossaryentrynumbers\org@glossaryentrynumbers}
+\newcommand*{\glsnonextpages}{}
+\newcommand*{\glsnextpages}{}
+\ifglsentrycounter
+ \ifx\@gls@counterwithin\@empty
+ \newcounter{glossaryentry}
+ \else
+ \newcounter{glossaryentry}[\@gls@counterwithin]
+ \fi
+ \def\theHglossaryentry{\currentglossary.\theglossaryentry}
+\fi
+\ifglssubentrycounter
+ \ifglsentrycounter
+ \newcounter{glossarysubentry}[glossaryentry]
+ \else
+ \newcounter{glossarysubentry}
+ \fi
+ \def\theHglossarysubentry{\currentglssubentry.\theglossarysubentry}
+\fi
+\ifglssubentrycounter
+ \newcommand*{\glsresetsubentrycounter}{%
+ \setcounter{glossarysubentry}{0}%
+ }
+\else
+ \newcommand*{\glsresetsubentrycounter}{}
+\fi
+\ifglsentrycounter
+ \newcommand*{\glsstepentry}[1]{%
+ \refstepcounter{glossaryentry}%
+ \label{glsentry-#1}%
+ }
+\else
+ \newcommand*{\glsstepentry}[1]{}
+\fi
+\ifglssubentrycounter
+ \newcommand*{\glsstepsubentry}[1]{%
+ \def\currentglssubentry{#1}%
+ \refstepcounter{glossarysubentry}%
+ \label{glsentry-#1}%
+ }
+\else
+ \newcommand*{\glsstepsubentry}[1]{}
+\fi
+\ifglsentrycounter
+ \newcommand*{\glsrefentry}[1]{\ref{glsentry-#1}}
+\else
+ \ifglssubentrycounter
+ \newcommand*{\glsrefentry}[1]{\ref{glsentry-#1}}
+ \else
+ \newcommand*{\glsrefentry}[1]{\gls{#1}}
+ \fi
+\fi
+\ifglsentrycounter
+ \newcommand*{\glsentrycounterlabel}{\theglossaryentry.\space}
+\else
+ \newcommand*{\glsentrycounterlabel}{}
+\fi
+\ifglssubentrycounter
+ \newcommand*{\glssubentrycounterlabel}{\theglossarysubentry)\space}
+\else
+ \newcommand*{\glssubentrycounterlabel}{}
+\fi
+\ifglsentrycounter
+ \newcommand*{\glsentryitem}[1]{%
+ \glsstepentry{#1}\glsentrycounterlabel
+ }
+\else
+ \newcommand*{\glsentryitem}[1]{\glsresetsubentrycounter}
+\fi
+\ifglssubentrycounter
+ \newcommand*{\glssubentryitem}[1]{%
+ \glsstepsubentry{#1}\glssubentrycounterlabel
+ }
+\else
+ \newcommand*{\glssubentryitem}[1]{}
+\fi
+\ifcsundef{theglossary}%
+{%
+ \newenvironment{theglossary}{}{}%
+}%
+{%
+ \GlossariesWarning{overriding `theglossary' environment}%
+ \renewenvironment{theglossary}{}{}%
+}
+\newcommand*{\glossaryheader}{}
+\newcommand*{\glstarget}[2]{\@glstarget{glo:#1}{#2}}
+\newcommand*{\glossaryentryfield}[5]{%
+\noindent\textbf{\glstarget{#1}{#2}} #4 #3. #5\par}
+\newcommand*{\glossarysubentryfield}[6]{%
+\glstarget{#2}{\strut}#4. #6\par}
+\newcommand*{\glsgroupskip}{}
+\newcommand*{\glsgroupheading}[1]{}
+\newcommand*{\glsgetgrouptitle}[1]{%
+ \ifcsundef{#1groupname}{#1}{\csname #1groupname\endcsname}%
+}
+\newcommand*{\glsgetgrouplabel}[1]{%
+\ifthenelse{\equals{#1}{\glssymbolsgroupname}}{glssymbols}{%
+\ifthenelse{\equals{#1}{\glsnumbersgroupname}}{glsnumbers}{#1}}}
+\newcommand*{\setentrycounter}[2][]{%
+ \def\@glo@counterprefix{#1}%
+ \ifx\@glo@counterprefix\@empty
+ \def\@glo@counterprefix{.}%
+ \else
+ \def\@glo@counterprefix{.#1.}%
+ \fi
+ \def\glsentrycounter{#2}%
+}
+\newcommand*{\glossarystyle}[1]{%
+ \ifcsundef{@glsstyle@#1}%
+ {%
+ \PackageError{glossaries}{Glossary style `#1' undefined}{}%
+ }%
+ {%
+ \csname @glsstyle@#1\endcsname
+ }%
+}
+\newcommand{\newglossarystyle}[2]{%
+ \ifcsundef{@glsstyle@#1}%
+ {%
+ \expandafter\def\csname @glsstyle@#1\endcsname{#2}%
+ }%
+ {%
+ \PackageError{glossaries}{Glossary style `#1' is already defined}{}%
+ }%
+}
+\newcommand*{\glsnamefont}[1]{#1}
+\ifcsundef{hyperlink}%
+{%
+ \def\glshypernumber#1{#1}%
+}%
+{%
+ \def\glshypernumber#1{\@glshypernumber#1\nohyperpage{}\@nil}
+}
+\def\@glshypernumber#1\nohyperpage#2#3\@nil{%
+ \ifx\\#1\\%
+ \else
+ \@delimR#1\delimR\delimR\\%
+ \fi
+ \ifx\\#2\\%
+ \else
+ #2%
+ \fi
+ \ifx\\#3\\%
+ \else
+ \@glshypernumber#3\@nil
+ \fi
+}
+\def\@delimR#1\delimR #2\delimR #3\\{%
+\ifx\\#2\\%
+ \@delimN{#1}%
+\else
+ \@gls@numberlink{#1}\delimR\@gls@numberlink{#2}%
+\fi}
+\def\@delimN#1{\@@delimN#1\delimN \delimN\\}
+\def\@@delimN#1\delimN #2\delimN#3\\{%
+\ifx\\#3\\%
+ \@gls@numberlink{#1}%
+\else
+ \@gls@numberlink{#1}\delimN\@gls@numberlink{#2}%
+\fi
+}
+\def\@gls@numberlink#1{%
+\begingroup
+ \toks@={}%
+ \@gls@removespaces#1 \@nil
+\endgroup}
+\def\@gls@removespaces#1 #2\@nil{%
+ \toks@=\expandafter{\the\toks@#1}%
+ \ifx\\#2\\%
+ \edef\x{\the\toks@}%
+ \ifx\x\empty
+ \else
+ \hyperlink{\glsentrycounter\@glo@counterprefix\the\toks@}%
+ {\the\toks@}%
+ \fi
+ \else
+ \@gls@ReturnAfterFi{%
+ \@gls@removespaces#2\@nil
+ }%
+ \fi
+}
+\long\def\@gls@ReturnAfterFi#1\fi{\fi#1}
+\newcommand*{\hyperrm}[1]{\textrm{\glshypernumber{#1}}}
+\newcommand*{\hypersf}[1]{\textsf{\glshypernumber{#1}}}
+\newcommand*{\hypertt}[1]{\texttt{\glshypernumber{#1}}}
+\newcommand*{\hyperbf}[1]{\textbf{\glshypernumber{#1}}}
+\newcommand*{\hypermd}[1]{\textmd{\glshypernumber{#1}}}
+\newcommand*{\hyperit}[1]{\textit{\glshypernumber{#1}}}
+\newcommand*{\hypersl}[1]{\textsl{\glshypernumber{#1}}}
+\newcommand*{\hyperup}[1]{\textup{\glshypernumber{#1}}}
+\newcommand*{\hypersc}[1]{\textsc{\glshypernumber{#1}}}
+\newcommand*{\hyperemph}[1]{\emph{\glshypernumber{#1}}}
+\ifglsacronym
+ \newglossary[alg]{acronym}{acr}{acn}{\acronymname}
+ \renewcommand*{\acronymtype}{acronym}
+\fi
+\newcommand{\oldacronym}[4][\gls@label]{%
+ \def\gls@label{#2}%
+ \newacronym[#4]{#1}{#2}{#3}%
+ \ifcsundef{xspace}%
+ {%
+ \expandafter\edef\csname#1\endcsname{%
+ \noexpand\@ifstar{\noexpand\Gls{#1}}{\noexpand\gls{#1}}%
+ }%
+ }%
+ {%
+ \expandafter\edef\csname#1\endcsname{%
+ \noexpand\@ifstar{\noexpand\Gls{#1}\noexpand\xspace}{%
+ \noexpand\gls{#1}\noexpand\xspace}%
+ }%
+ }%
+}
+ \newcommand{\newacronym}[4][]{}
+\newcommand*{\acrpluralsuffix}{\glspluralsuffix}
+\newcommand*{\glsshortkey}{short}
+\newcommand*{\glsshortpluralkey}{shortplural}
+\newcommand*{\glslongkey}{long}
+\newcommand*{\glslongpluralkey}{longplural}
+\newrobustcmd*{\acrfull}{%
+ \@ifstar\s@acrfull\ns@acrfull
+}
+\newcommand*\s@acrfull[2][]{%
+ \new@ifnextchar[{\@acrfull{hyper=false,#1}{#2}}%
+ {\@acrfull{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@acrfull[2][]{%
+ \new@ifnextchar[{\@acrfull{#1}{#2}}%
+ {\@acrfull{#1}{#2}[]}%
+}
+\def\@acrfull#1#2[#3]{%
+ \acrlinkfullformat{\@acrlong}{\@acrshort}{#1}{#2}{#3}%
+}
+\newcommand{\acrlinkfullformat}[5]{%
+ \acrfullformat{#1{#3}{#4}[#5]}{#2{#3}{#4}[]}%
+}
+\newcommand{\acrfullformat}[2]{#1\space(#2)}
+\newrobustcmd*{\Acrfull}{%
+ \@ifstar\s@Acrfull\ns@Acrfull
+}
+\newcommand*\s@Acrfull[2][]{%
+ \new@ifnextchar[{\@Acrfull{hyper=false,#1}{#2}}%
+ {\@Acrfull{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@Acrfull[2][]{%
+ \new@ifnextchar[{\@Acrfull{#1}{#2}}%
+ {\@Acrfull{#1}{#2}[]}%
+}
+\def\@Acrfull#1#2[#3]{%
+ \acrlinkfullformat{\@Acrlong}{\@acrshort}{#1}{#2}{#3}%
+}
+\newrobustcmd*{\ACRfull}{%
+ \@ifstar\s@ACRfull\ns@ACRfull
+}
+\newcommand*\s@ACRfull[2][]{%
+ \new@ifnextchar[{\@ACRfull{hyper=false,#1}{#2}}%
+ {\@ACRfull{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@ACRfull[2][]{%
+ \new@ifnextchar[{\@ACRfull{#1}{#2}}%
+ {\@ACRfull{#1}{#2}[]}%
+}
+\def\@ACRfull#1#2[#3]{%
+ \acrlinkfullformat{\@ACRlong}{\@ACRshort}{#1}{#2}{#3}%
+}
+\newrobustcmd*{\acrfullpl}{%
+ \@ifstar\s@acrfullpl\ns@acrfullpl
+}
+\newcommand*\s@acrfullpl[2][]{%
+ \new@ifnextchar[{\@acrfullpl{hyper=false,#1}{#2}}%
+ {\@acrfullpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@acrfullpl[2][]{%
+ \new@ifnextchar[{\@acrfullpl{#1}{#2}}%
+ {\@acrfullpl{#1}{#2}[]}%
+}
+\def\@acrfullpl#1#2[#3]{%
+ \acrlinkfullformat{\@acrlongpl}{\@acrshortpl}{#1}{#2}{#3}%
+}
+\newrobustcmd*{\Acrfullpl}{%
+ \@ifstar\s@Acrfullpl\ns@Acrfullpl
+}
+\newcommand*\s@Acrfullpl[2][]{%
+ \new@ifnextchar[{\@Acrfullpl{hyper=false,#1}{#2}}%
+ {\@Acrfullpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@Acrfullpl[2][]{%
+ \new@ifnextchar[{\@Acrfullpl{#1}{#2}}%
+ {\@Acrfullpl{#1}{#2}[]}%
+}
+\def\@Acrfullpl#1#2[#3]{%
+ \acrlinkfullformat{\@Acrlongpl}{\@acrshortpl}{#1}{#2}{#3}%
+}
+\newrobustcmd*{\ACRfullpl}{%
+ \@ifstar\s@ACRfullpl\ns@ACRfullpl
+}
+\newcommand*\s@ACRfullpl[2][]{%
+ \new@ifnextchar[{\@ACRfullpl{hyper=false,#1}{#2}}%
+ {\@ACRfullpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@ACRfullpl[2][]{%
+ \new@ifnextchar[{\@ACRfullpl{#1}{#2}}%
+ {\@ACRfullpl{#1}{#2}[]}%
+}
+\def\@ACRfullpl#1#2[#3]{%
+ \acrlinkfullformat{\@ACRlongpl}{\@ACRshortpl}{#1}{#2}{#3}%
+}
+\newcommand{\acronymfont}[1]{#1}
+\newcommand{\firstacronymfont}[1]{\acronymfont{#1}}
+\newcommand*{\acrnameformat}[2]{\acronymfont{#1}}
+\newtoks\glskeylisttok
+\newtoks\glslabeltok
+\newtoks\glsshorttok
+\newtoks\glslongtok
+\newcommand*{\newacronymhook}{}
+\newcommand*{\SetDefaultAcronymDisplayStyle}[1]{%
+ \defglsdisplay[#1]{##1##4}%
+ \defglsdisplayfirst[#1]{##1##4}%
+}
+\newcommand*{\DefaultNewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\the\glsshorttok},%
+ sort={\the\glsshorttok},%
+ text={\the\glsshorttok},%
+ first={\acrfullformat{\the\glslongtok}{\the\glsshorttok}},%
+ plural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ firstplural={\acrfullformat{\noexpand\@glo@longpl}%
+ {\noexpand\@glo@shortpl}},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ description={\the\glslongtok},%
+ descriptionplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\newcommand*{\SetDefaultAcronymStyle}{%
+ \@for\@gls@type:=\@glsacronymlists\do{%
+ \SetDefaultAcronymDisplayStyle{\@gls@type}%
+ }%
+ \renewcommand{\newacronym}[4][]{%
+ \ifx\@glsacronymlists\@empty
+ \def\@glo@type{\acronymtype}%
+ \setkeys{glossentry}{##1}%
+ \DeclareAcronymList{\@glo@type}%
+ \SetDefaultAcronymDisplayStyle{\@glo@type}%
+ \fi
+ \glskeylisttok{##1}%
+ \glslabeltok{##2}%
+ \glsshorttok{##3}%
+ \glslongtok{##4}%
+ \newacronymhook
+ \DefaultNewAcronymDef
+ }%
+ \renewcommand*{\acrpluralsuffix}{\glspluralsuffix}%
+}
+\newcommand*{\acrfootnote}[3]{\acrlinkfootnote{#1}{#2}{#3}}
+\newcommand*{\acrlinkfootnote}[3]{%
+ \footnote{\glslink[#1]{#2}{#3}}%
+}
+\newcommand*{\acrnolinkfootnote}[3]{%
+ \footnote{#3}%
+}
+\newcommand*{\SetDescriptionFootnoteAcronymDisplayStyle}[1]{%
+ \defglsdisplayfirst[#1]{%
+ \firstacronymfont{##1}##4%
+ \expandafter\protect\expandafter\acrfootnote\expandafter
+ {\@gls@link@opts}{\@gls@link@label}{##3}
+ }%
+ \defglsdisplay[#1]{\acronymfont{##1}##4}%
+}
+\newcommand*{\DescriptionFootnoteNewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\noexpand\acronymfont{\the\glsshorttok}},%
+ sort={\the\glsshorttok},%
+ text={\the\glsshorttok},%
+ plural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ symbol={\the\glslongtok},%
+ symbolplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\newcommand*{\SetDescriptionFootnoteAcronymStyle}{%
+ \renewcommand{\newacronym}[4][]{%
+ \ifx\@glsacronymlists\@empty
+ \def\@glo@type{\acronymtype}%
+ \setkeys{glossentry}{##1}%
+ \DeclareAcronymList{\@glo@type}%
+ \SetDescriptionFootnoteAcronymDisplayStyle{\@glo@type}%
+ \fi
+ \glskeylisttok{##1}%
+ \glslabeltok{##2}%
+ \glsshorttok{##3}%
+ \glslongtok{##4}%
+ \newacronymhook
+ \DescriptionFootnoteNewAcronymDef
+ }%
+ \@for\@gls@type:=\@glsacronymlists\do{%
+ \SetDescriptionFootnoteAcronymDisplayStyle{\@gls@type}%
+ }%
+ \ifglsacrsmallcaps
+ \renewcommand*{\acronymfont}[1]{\textsc{##1}}%
+ \renewcommand*{\acrpluralsuffix}{%
+ \textup{\glspluralsuffix}}%
+ \else
+ \ifglsacrsmaller
+ \renewcommand*{\acronymfont}[1]{\textsmaller{##1}}%
+ \fi
+ \fi
+ \ifglsacrdua
+ \PackageError{glossaries}{Option clash: `footnote' and `dua'
+ can't both be set}{}%
+ \fi
+}%
+\newcommand*{\SetDescriptionDUAAcronymDisplayStyle}[1]{%
+ \defglsdisplay[#1]{##1##4}%
+ \defglsdisplayfirst[#1]{##1##4}%
+}
+\newcommand*{\DescriptionDUANewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\the\glslongtok},%
+ sort={\the\glslongtok},
+ text={\the\glslongtok},%
+ plural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ symbol={\the\glsshorttok},%
+ symbolplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\newcommand*{\SetDescriptionDUAAcronymStyle}{%
+ \ifglsacrsmallcaps
+ \PackageError{glossaries}{Option clash: `smallcaps' and `dua'
+ can't both be set}{}%
+ \else
+ \ifglsacrsmaller
+ \PackageError{glossaries}{Option clash: `smaller' and `dua'
+ can't both be set}{}%
+ \fi
+ \fi
+ \renewcommand{\newacronym}[4][]{%
+ \ifx\@glsacronymlists\@empty
+ \def\@glo@type{\acronymtype}%
+ \setkeys{glossentry}{##1}%
+ \DeclareAcronymList{\@glo@type}%
+ \SetDescriptionDUAAcronymDisplayStyle{\@glo@type}%
+ \fi
+ \glskeylisttok{##1}%
+ \glslabeltok{##2}%
+ \glsshorttok{##3}%
+ \glslongtok{##4}%
+ \newacronymhook
+ \DescriptionDUANewAcronymDef
+ }%
+ \@for\@gls@type:=\@glsacronymlists\do{%
+ \SetDescriptionDUAAcronymDisplayStyle{\@gls@type}%
+ }%
+}%
+\newcommand*{\SetDescriptionAcronymDisplayStyle}[1]{%
+ \defglsdisplayfirst[#1]{%
+ ##1##4 (\firstacronymfont{##3})}%
+ \defglsdisplay[#1]{\acronymfont{##1}##4}%
+}
+\newcommand*{\DescriptionNewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\noexpand
+ \acrnameformat{\the\glsshorttok}{\the\glslongtok}},%
+ sort={\the\glsshorttok},%
+ first={\the\glslongtok},%
+ firstplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ text={\the\glsshorttok},%
+ plural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ symbol={\noexpand\@glo@text},%
+ symbolplural={\noexpand\@glo@plural},%
+ \the\glskeylisttok}%
+ }%
+ \@do@newglossaryentry
+}
+\newcommand*{\SetDescriptionAcronymStyle}{%
+ \renewcommand{\newacronym}[4][]{%
+ \ifx\@glsacronymlists\@empty
+ \def\@glo@type{\acronymtype}%
+ \setkeys{glossentry}{##1}%
+ \DeclareAcronymList{\@glo@type}%
+ \SetDescriptionAcronymDisplayStyle{\@glo@type}%
+ \fi
+ \glskeylisttok{##1}%
+ \glslabeltok{##2}%
+ \glsshorttok{##3}%
+ \glslongtok{##4}%
+ \newacronymhook
+ \DescriptionNewAcronymDef
+ }%
+ \@for\@gls@type:=\@glsacronymlists\do{%
+ \SetDescriptionAcronymDisplayStyle{\@gls@type}%
+ }%
+ \ifglsacrsmallcaps
+ \renewcommand{\acronymfont}[1]{\textsc{##1}}
+ \renewcommand*{\acrpluralsuffix}{%
+ \textup{\glspluralsuffix}}%
+ \else
+ \ifglsacrsmaller
+ \renewcommand*{\acronymfont}[1]{\textsmaller{##1}}%
+ \fi
+ \fi
+}%
+\newcommand*{\SetFootnoteAcronymDisplayStyle}[1]{%
+ \defglsdisplayfirst[#1]{%
+ \firstacronymfont{##1}##4%
+ \expandafter\protect\expandafter\acrfootnote\expandafter
+ {\@gls@link@opts}{\@gls@link@label}{##2}%
+ }%
+ \defglsdisplay[#1]{\acronymfont{##1}##4}%
+}
+\newcommand*{\FootnoteNewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\noexpand\acronymfont{\the\glsshorttok}},%
+ sort={\the\glsshorttok},%
+ text={\the\glsshorttok},%
+ plural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ description={\the\glslongtok},%
+ descriptionplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\newcommand*{\SetFootnoteAcronymStyle}{%
+ \renewcommand{\newacronym}[4][]{%
+ \ifx\@glsacronymlists\@empty
+ \def\@glo@type{\acronymtype}%
+ \setkeys{glossentry}{##1}%
+ \DeclareAcronymList{\@glo@type}%
+ \SetFootnoteAcronymDisplayStyle{\@glo@type}%
+ \fi
+ \glskeylisttok{##1}%
+ \glslabeltok{##2}%
+ \glsshorttok{##3}%
+ \glslongtok{##4}%
+ \newacronymhook
+ \FootnoteNewAcronymDef
+ }%
+ \@for\@gls@type:=\@glsacronymlists\do{%
+ \SetFootnoteAcronymDisplayStyle{\@gls@type}%
+ }%
+ \ifglsacrsmallcaps
+ \renewcommand*{\acronymfont}[1]{\textsc{##1}}%
+ \renewcommand*{\acrpluralsuffix}{%
+ \textup{\glspluralsuffix}}%
+ \else
+ \ifglsacrsmaller
+ \renewcommand*{\acronymfont}[1]{\textsmaller{##1}}%
+ \fi
+ \fi
+ \ifglsacrdua
+ \PackageError{glossaries}{Option clash: `footnote' and `dua'
+ can't both be set}{}%
+ \fi
+}%
+\newcommand*{\SetSmallAcronymDisplayStyle}[1]{%
+ \defglsdisplayfirst[#1]{##1##4 (\firstacronymfont{##3})}
+ \defglsdisplay[#1]{\acronymfont{##1}##4}%
+}
+\newcommand*{\SmallNewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\noexpand\acronymfont{\the\glsshorttok}},%
+ sort={\the\glsshorttok},%
+ text={\noexpand\@glo@symbol},%
+ plural={\noexpand\@glo@symbolplural},%
+ first={\the\glslongtok},%
+ firstplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ description={\noexpand\@glo@first},%
+ descriptionplural={\noexpand\@glo@firstplural},%
+ symbol={\the\glsshorttok},%
+ symbolplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\newcommand*{\SetSmallAcronymStyle}{%
+ \renewcommand{\newacronym}[4][]{%
+ \ifx\@glsacronymlists\@empty
+ \def\@glo@type{\acronymtype}%
+ \setkeys{glossentry}{##1}%
+ \DeclareAcronymList{\@glo@type}%
+ \SetSmallAcronymDisplayStyle{\@glo@type}%
+ \fi
+ \glskeylisttok{##1}%
+ \glslabeltok{##2}%
+ \glsshorttok{##3}%
+ \glslongtok{##4}%
+ \newacronymhook
+ \SmallNewAcronymDef
+ }%
+ \@for\@gls@type:=\@glsacronymlists\do{%
+ \SetSmallAcronymDisplayStyle{\@gls@type}%
+ }%
+ \ifglsacrsmallcaps
+ \renewcommand*{\acronymfont}[1]{\textsc{##1}}
+ \renewcommand*{\acrpluralsuffix}{%
+ \textup{\glspluralsuffix}}%
+ \else
+ \renewcommand*{\acronymfont}[1]{\textsmaller{##1}}
+ \fi
+ \ifglsacrdua
+ \ifglsacrsmallcaps
+ \PackageError{glossaries}{Option clash: `smallcaps' and `dua'
+ can't both be set}{}%
+ \else
+ \PackageError{glossaries}{Option clash: `smaller' and `dua'
+ can't both be set}{}%
+ \fi
+ \fi
+}%
+\newcommand*{\SetDUADisplayStyle}[1]{%
+ \defglsdisplay[#1]{##1##4}%
+ \defglsdisplayfirst[#1]{##1##4}%
+}
+\newcommand*{\DUANewAcronymDef}{%
+ \edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\the\glsshorttok},%
+ text={\the\glslongtok},%
+ plural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ description={\the\glslongtok},%
+ symbol={\the\glsshorttok},%
+ symbolplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\newcommand*{\SetDUAStyle}{%
+ \renewcommand{\newacronym}[4][]{%
+ \ifx\@glsacronymlists\@empty
+ \def\@glo@type{\acronymtype}%
+ \setkeys{glossentry}{##1}%
+ \DeclareAcronymList{\@glo@type}%
+ \SetDUADisplayStyle{\@glo@type}%
+ \fi
+ \glskeylisttok{##1}%
+ \glslabeltok{##2}%
+ \glsshorttok{##3}%
+ \glslongtok{##4}%
+ \newacronymhook
+ \DUANewAcronymDef
+ }%
+ \@for\@gls@type:=\@glsacronymlists\do{%
+ \SetDUADisplayStyle{\@gls@type}%
+ }%
+}
+\newcommand*{\SetAcronymStyle}{%
+ \SetDefaultAcronymStyle
+ \ifglsacrdescription
+ \ifglsacrfootnote
+ \SetDescriptionFootnoteAcronymStyle
+ \else
+ \ifglsacrdua
+ \SetDescriptionDUAAcronymStyle
+ \else
+ \SetDescriptionAcronymStyle
+ \fi
+ \fi
+ \else
+ \ifglsacrfootnote
+ \SetFootnoteAcronymStyle
+ \else
+ \ifthenelse{\boolean{glsacrsmallcaps}\OR
+ \boolean{glsacrsmaller}}%
+ {%
+ \SetSmallAcronymStyle
+ }%
+ {%
+ \ifglsacrdua
+ \SetDUAStyle
+ \fi
+ }%
+ \fi
+ \fi
+}
+\SetAcronymStyle
+\newcommand*{\SetCustomDisplayStyle}[1]{%
+ \defglsdisplay[#1]{##1##4}%
+ \defglsdisplayfirst[#1]{##1##4}%
+}
+\newcommand*{\CustomAcronymFields}{%
+ name={\the\glsshorttok},%
+ description={\the\glslongtok},%
+ first={\noexpand\acrfullformat{\the\glslongtok}{\the\glsshorttok}},%
+ firstplural={\noexpand\acrfullformat
+ {\the\glslongtok\noexpand\acrpluralsuffix}{\the\glsshorttok}}%
+ text={\the\glsshorttok},%
+ plural={\the\glsshorttok\noexpand\acrpluralsuffix}%
+}
+\newcommand*{\CustomNewAcronymDef}{%
+ \protected@edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ user1={\the\glsshorttok},%
+ user2={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ user3={\the\glslongtok},%
+ user4={\the\glslongtok\noexpand\acrpluralsuffix},%
+ \CustomAcronymFields,%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\newcommand*{\SetCustomStyle}{%
+ \renewcommand{\newacronym}[4][]{%
+ \ifx\@glsacronymlists\@empty
+ \def\@glo@type{\acronymtype}%
+ \setkeys{glossentry}{##1}%
+ \DeclareAcronymList{\@glo@type}%
+ \SetCustomDisplayStyle{\@glo@type}%
+ \fi
+ \glskeylisttok{##1}%
+ \glslabeltok{##2}%
+ \glsshorttok{##3}%
+ \glslongtok{##4}%
+ \newacronymhook
+ \CustomNewAcronymDef
+ }%
+ \@for\@gls@type:=\@glsacronymlists\do{%
+ \SetCustomDisplayStyle{\@gls@type}%
+ }%
+}
+\newcommand*{\DefineAcronymSynonyms}{%
+ \let\acs\acrshort
+ \let\Acs\Acrshort
+ \let\acsp\acrshortpl
+ \let\Acsp\Acrshortpl
+ \let\acl\acrlong
+ \let\aclp\acrlongpl
+ \let\Acl\Acrlong
+ \let\Aclp\Acrlongpl
+ \let\acf\acrfull
+ \let\acfp\acrfullpl
+ \let\Acf\Acrfull
+ \let\Acfp\Acrfullpl
+ \let\ac\gls
+ \let\Ac\Gls
+ \let\acp\glspl
+ \let\Acp\Glspl
+}
+\ifglsacrshortcuts
+ \DefineAcronymSynonyms
+\fi
+\RequirePackage{glossary-hypernav}
+\@gls@loadlist
+\@gls@loadlong
+\@gls@loadsuper
+\@gls@loadtree
+\ifx\@glossary@default@style\relax
+\else
+ \glossarystyle{\@glossary@default@style}
+\fi
+\newcommand*{\showgloparent}[1]{%
+ \expandafter\show\csname glo@#1@parent\endcsname
+}
+\newcommand*{\showglolevel}[1]{%
+ \expandafter\show\csname glo@#1@level\endcsname
+}
+\newcommand*{\showglotext}[1]{%
+ \expandafter\show\csname glo@#1@text\endcsname
+}
+\newcommand*{\showgloplural}[1]{%
+ \expandafter\show\csname glo@#1@plural\endcsname
+}
+\newcommand*{\showglofirst}[1]{%
+ \expandafter\show\csname glo@#1@first\endcsname
+}
+\newcommand*{\showglofirstpl}[1]{%
+ \expandafter\show\csname glo@#1@firstpl\endcsname
+}
+\newcommand*{\showglotype}[1]{%
+ \expandafter\show\csname glo@#1@type\endcsname
+}
+\newcommand*{\showglocounter}[1]{%
+ \expandafter\show\csname glo@#1@counter\endcsname
+}
+\newcommand*{\showglouseri}[1]{%
+ \expandafter\show\csname glo@#1@useri\endcsname
+}
+\newcommand*{\showglouserii}[1]{%
+ \expandafter\show\csname glo@#1@userii\endcsname
+}
+\newcommand*{\showglouseriii}[1]{%
+ \expandafter\show\csname glo@#1@useriii\endcsname
+}
+\newcommand*{\showglouseriv}[1]{%
+ \expandafter\show\csname glo@#1@useriv\endcsname
+}
+\newcommand*{\showglouserv}[1]{%
+ \expandafter\show\csname glo@#1@userv\endcsname
+}
+\newcommand*{\showglouservi}[1]{%
+ \expandafter\show\csname glo@#1@uservi\endcsname
+}
+\newcommand*{\showgloname}[1]{%
+ \expandafter\show\csname glo@#1@name\endcsname
+}
+\newcommand*{\showglodesc}[1]{%
+ \expandafter\show\csname glo@#1@desc\endcsname
+}
+\newcommand*{\showglodescplural}[1]{%
+ \expandafter\show\csname glo@#1@descplural\endcsname
+}
+\newcommand*{\showglosort}[1]{%
+ \expandafter\show\csname glo@#1@sort\endcsname
+}
+\newcommand*{\showglosymbol}[1]{%
+ \expandafter\show\csname glo@#1@symbol\endcsname
+}
+\newcommand*{\showglosymbolplural}[1]{%
+ \expandafter\show\csname glo@#1@symbolplural\endcsname
+}
+\newcommand*{\showgloindex}[1]{%
+ \expandafter\show\csname glo@#1@index\endcsname
+}
+\newcommand*{\showgloflag}[1]{%
+ \expandafter\show\csname ifglo@#1@flag\endcsname
+}
+\newcommand*{\showacronymlists}{%
+ \show\@glsacronymlists
+}
+\newcommand*{\showglossaries}{%
+ \show\@glo@types
+}
+\newcommand*{\showglossaryin}[1]{%
+ \expandafter\show\csname @glotype@#1@in\endcsname
+}
+\newcommand*{\showglossaryout}[1]{%
+ \expandafter\show\csname @glotype@#1@out\endcsname
+}
+\newcommand*{\showglossarytitle}[1]{%
+ \expandafter\show\csname @glotype@#1@title\endcsname
+}
+\newcommand*{\showglossarycounter}[1]{%
+ \expandafter\show\csname @glotype@#1@counter\endcsname
+}
+\newcommand*{\showglossaryentries}[1]{%
+ \expandafter\show\csname @glolist@#1\endcsname
+}
+\csname ifglscompatible-2.07\endcsname
+ \RequirePackage{glossaries-compatible-207}
+\fi
+\endinput
+%%
+%% End of file `glossaries.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossary-hypernav.sty b/support/makeglossariesgui/src/tests/old-version-301/glossary-hypernav.sty
new file mode 100644
index 0000000000..3483dd5d9e
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossary-hypernav.sty
@@ -0,0 +1,96 @@
+%%
+%% This is file `glossary-hypernav.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossary-hypernav.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\ProvidesPackage{glossary-hypernav}[2007/07/04 v1.01 (NLCT)]
+\newcommand*{\glsnavhyperlink}[3][\@glo@type]{%
+ \edef\gls@grplabel{#2}\protected@edef\@gls@grptitle{#3}%
+ \@glslink{glsn:#1@#2}{#3}}
+\newcommand*{\glsnavhypertarget}[3][\@glo@type]{%
+ \protected@write\@auxout{}{\string\@gls@hypergroup{#1}{#2}}%
+ \@glstarget{glsn:#1@#2}{#3}%
+ \expandafter\let
+ \expandafter\@gls@list\csname @gls@hypergrouplist@#1\endcsname
+ \@for\@gls@elem:=\@gls@list\do{%
+ \ifthenelse{\equal{\@gls@elem}{#2}}{\@endfortrue}{}}%
+ \if@endfor
+ \else
+ \GlossariesWarningNoLine{Navigation panel
+ for glossary type `#1'^^Jmissing group `#2'}%
+ \gdef\gls@hypergrouprerun{%
+ \GlossariesWarningNoLine{Navigation panel
+ has changed. Rerun LaTeX}}%
+ \fi
+}
+\let\gls@hypergrouprerun\relax
+\AtEndDocument{\gls@hypergrouprerun}
+\newcommand*{\@gls@hypergroup}[2]{%
+\@ifundefined{@gls@hypergrouplist@#1}{%
+ \expandafter\xdef\csname @gls@hypergrouplist@#1\endcsname{#2}%
+}{%
+ \expandafter\let\expandafter\@gls@tmp
+ \csname @gls@hypergrouplist@#1\endcsname
+ \expandafter\xdef\csname @gls@hypergrouplist@#1\endcsname{%
+ \@gls@tmp,#2}%
+}%
+}
+\newcommand*{\glsnavigation}{%
+\def\@gls@between{}%
+\@ifundefined{@gls@hypergrouplist@\@glo@type}{%
+ \def\@gls@list{}%
+}{%
+ \expandafter\let\expandafter\@gls@list
+ \csname @gls@hypergrouplist@\@glo@type\endcsname
+}%
+\@for\@gls@tmp:=\@gls@list\do{%
+ \@gls@between
+ \glsnavhyperlink{\@gls@tmp}{\glsgetgrouptitle{\@gls@tmp}}%
+ \let\@gls@between\glshypernavsep%
+}%
+}
+\newcommand*{\glshypernavsep}{\space\textbar\space}
+\newcommand*{\glssymbolnav}{%
+\glsnavhyperlink{glssymbols}{\glsgetgrouptitle{glssymbols}}%
+\glshypernavsep
+\glsnavhyperlink{glsnumbers}{\glsgetgrouptitle{glsnumbers}}%
+\glshypernavsep
+}
+\endinput
+%%
+%% End of file `glossary-hypernav.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossary-list.sty b/support/makeglossariesgui/src/tests/old-version-301/glossary-list.sty
new file mode 100644
index 0000000000..8b773da64a
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossary-list.sty
@@ -0,0 +1,104 @@
+%%
+%% This is file `glossary-list.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossary-list.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\ProvidesPackage{glossary-list}[2011/03/28 v3.0 (NLCT)]
+\newglossarystyle{list}{%
+ \renewenvironment{theglossary}%
+ {\begin{description}}{\end{description}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \item[\glsentryitem{##1}\glstarget{##1}{##2}]
+ ##3\glspostdescription\space ##5}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6.}%
+ \renewcommand*{\glsgroupskip}{\indexspace}%
+}
+\newglossarystyle{listgroup}{%
+ \glossarystyle{list}%
+ \renewcommand*{\glsgroupheading}[1]{\item[\glsgetgrouptitle{##1}]}}
+\newglossarystyle{listhypergroup}{%
+ \glossarystyle{list}%
+ \renewcommand*{\glossaryheader}{%
+ \item[\glsnavigation]}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item[\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}]}}
+\newglossarystyle{altlist}{%
+ \glossarystyle{list}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \item[\glsentryitem{##1}\glstarget{##1}{##2}]\mbox{}\newline
+ ##3\glspostdescription\space ##5}%
+ \renewcommand{\glossarysubentryfield}[6]{%
+ \par
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6}%
+}
+\newglossarystyle{altlistgroup}{%
+ \glossarystyle{altlist}%
+ \renewcommand*{\glsgroupheading}[1]{\item[\glsgetgrouptitle{##1}]}}
+\newglossarystyle{altlisthypergroup}{%
+ \glossarystyle{altlist}%
+ \renewcommand*{\glossaryheader}{%
+ \item[\glsnavigation]}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item[\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}]}}
+\newglossarystyle{listdotted}{%
+ \glossarystyle{list}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \item[]\makebox[\glslistdottedwidth][l]{%
+ \glsentryitem{##1}\glstarget{##1}{##2}%
+ \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}##3}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ \item[]\makebox[\glslistdottedwidth][l]{%
+ \glssubentryitem{##2}%
+ \glstarget{##2}{##3}%
+ \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}##4}%
+}
+\newlength\glslistdottedwidth
+\setlength{\glslistdottedwidth}{.5\hsize}
+\newglossarystyle{sublistdotted}{%
+ \glossarystyle{listdotted}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \item[\glsentryitem{##1}\glstarget{##1}{##2}]}%
+}
+\endinput
+%%
+%% End of file `glossary-list.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossary-long.sty b/support/makeglossariesgui/src/tests/old-version-301/glossary-long.sty
new file mode 100644
index 0000000000..756eef5dcb
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossary-long.sty
@@ -0,0 +1,182 @@
+%%
+%% This is file `glossary-long.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossary-long.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\ProvidesPackage{glossary-long}[2011/03/28 v3.0 (NLCT)]
+\RequirePackage{longtable}
+\@ifundefined{glsdescwidth}{%
+ \newlength\glsdescwidth
+ \setlength{\glsdescwidth}{0.6\hsize}
+}{}
+\@ifundefined{glspagelistwidth}{%
+ \newlength\glspagelistwidth
+ \setlength{\glspagelistwidth}{0.1\hsize}
+}{}
+\newglossarystyle{long}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{lp{\glsdescwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}%
+ \renewcommand*{\glsgroupskip}{ & \\}%
+}
+\newglossarystyle{longborder}{%
+ \glossarystyle{long}%
+ \renewenvironment{theglossary}{%
+ \begin{longtable}{|l|p{\glsdescwidth}|}}{\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\hline\endhead\hline\endfoot}%
+}
+\newglossarystyle{longheader}{%
+ \glossarystyle{long}%
+ \renewcommand*{\glossaryheader}{%
+ \bfseries \entryname & \bfseries \descriptionname\\\endhead}%
+}
+\newglossarystyle{longheaderborder}{%
+ \glossarystyle{longborder}%
+ \renewcommand*{\glossaryheader}{%
+ \hline\bfseries \entryname & \bfseries \descriptionname\\\hline
+ \endhead
+ \hline\endfoot}%
+}
+\newglossarystyle{long3col}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{lp{\glsdescwidth}p{\glspagelistwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\\}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##6\\}%
+ \renewcommand*{\glsgroupskip}{ & &\\}%
+}
+\newglossarystyle{long3colborder}{%
+ \glossarystyle{long3col}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{|l|p{\glsdescwidth}|p{\glspagelistwidth}|}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\hline\endhead\hline\endfoot}%
+}
+\newglossarystyle{long3colheader}{%
+ \glossarystyle{long3col}%
+ \renewcommand*{\glossaryheader}{%
+ \bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\pagelistname\\\endhead}%
+}
+\newglossarystyle{long3colheaderborder}{%
+ \glossarystyle{long3colborder}%
+ \renewcommand*{\glossaryheader}{%
+ \hline
+ \bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\pagelistname\\\hline\endhead
+ \hline\endfoot}%
+}
+\newglossarystyle{long4col}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{llll}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\\}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##5 & ##6\\}%
+ \renewcommand*{\glsgroupskip}{ & & &\\}%
+}
+\newglossarystyle{long4colheader}{%
+ \glossarystyle{long4col}%
+ \renewcommand*{\glossaryheader}{%
+ \bfseries\entryname&\bfseries\descriptionname&
+ \bfseries \symbolname&
+ \bfseries\pagelistname\\\endhead}%
+}
+\newglossarystyle{long4colborder}{%
+ \glossarystyle{long4col}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{|l|l|l|l|}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\hline\endhead\hline\endfoot}%
+}
+\newglossarystyle{long4colheaderborder}{%
+ \glossarystyle{long4col}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{|l|l|l|l|}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{%
+ \hline\bfseries\entryname&\bfseries\descriptionname&
+ \bfseries \symbolname&
+ \bfseries\pagelistname\\\hline\endhead\hline\endfoot}%
+}
+\newglossarystyle{altlong4col}{%
+ \glossarystyle{long4col}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{lp{\glsdescwidth}lp{\glspagelistwidth}}}%
+ {\end{longtable}}%
+}
+\newglossarystyle{altlong4colheader}{%
+ \glossarystyle{long4colheader}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{lp{\glsdescwidth}lp{\glspagelistwidth}}}%
+ {\end{longtable}}%
+}
+\newglossarystyle{altlong4colborder}{%
+ \glossarystyle{long4colborder}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{|l|p{\glsdescwidth}|l|p{\glspagelistwidth}|}}%
+ {\end{longtable}}%
+}
+\newglossarystyle{altlong4colheaderborder}{%
+ \glossarystyle{long4colheaderborder}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{|l|p{\glsdescwidth}|l|p{\glspagelistwidth}|}}%
+ {\end{longtable}}%
+}
+\endinput
+%%
+%% End of file `glossary-long.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossary-longragged.sty b/support/makeglossariesgui/src/tests/old-version-301/glossary-longragged.sty
new file mode 100644
index 0000000000..a05e4bd1a2
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossary-longragged.sty
@@ -0,0 +1,174 @@
+%%
+%% This is file `glossary-longragged.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossary-longragged.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\ProvidesPackage{glossary-longragged}[2011/03/28 v3.0 (NLCT)]
+\RequirePackage{array}
+\RequirePackage{longtable}
+\@ifundefined{glsdescwidth}{%
+ \newlength\glsdescwidth
+ \setlength{\glsdescwidth}{0.6\hsize}
+}{}
+\@ifundefined{glspagelistwidth}{%
+ \newlength\glspagelistwidth
+ \setlength{\glspagelistwidth}{0.1\hsize}
+}{}
+\newglossarystyle{longragged}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{l>{\raggedright}p{\glsdescwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5%
+ \tabularnewline}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6%
+ \tabularnewline}%
+ \renewcommand*{\glsgroupskip}{ & \tabularnewline}%
+}
+\newglossarystyle{longraggedborder}{%
+ \glossarystyle{longragged}%
+ \renewenvironment{theglossary}{%
+ \begin{longtable}{|l|>{\raggedright}p{\glsdescwidth}|}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\hline\endhead\hline\endfoot}%
+}
+\newglossarystyle{longraggedheader}{%
+ \glossarystyle{longragged}%
+ \renewcommand*{\glossaryheader}{%
+ \bfseries \entryname & \bfseries \descriptionname
+ \tabularnewline\endhead}%
+}
+\newglossarystyle{longraggedheaderborder}{%
+ \glossarystyle{longraggedborder}%
+ \renewcommand*{\glossaryheader}{%
+ \hline\bfseries \entryname & \bfseries \descriptionname
+ \tabularnewline\hline
+ \endhead
+ \hline\endfoot}%
+}
+\newglossarystyle{longragged3col}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{l>{\raggedright}p{\glsdescwidth}%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\tabularnewline}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##6\tabularnewline}%
+ \renewcommand*{\glsgroupskip}{ & &\tabularnewline}%
+}
+\newglossarystyle{longragged3colborder}{%
+ \glossarystyle{longragged3col}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{|l|>{\raggedright}p{\glsdescwidth}|%
+ >{\raggedright}p{\glspagelistwidth}|}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\hline\endhead\hline\endfoot}%
+}
+\newglossarystyle{longragged3colheader}{%
+ \glossarystyle{longragged3col}%
+ \renewcommand*{\glossaryheader}{%
+ \bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\pagelistname\tabularnewline\endhead}%
+}
+\newglossarystyle{longragged3colheaderborder}{%
+ \glossarystyle{longragged3colborder}%
+ \renewcommand*{\glossaryheader}{%
+ \hline
+ \bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\pagelistname\tabularnewline\hline\endhead
+ \hline\endfoot}%
+}
+\newglossarystyle{altlongragged4col}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{l>{\raggedright}p{\glsdescwidth}l%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\tabularnewline}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##5 & ##6\tabularnewline}%
+ \renewcommand*{\glsgroupskip}{ & & &\tabularnewline}%
+}
+\newglossarystyle{altlongragged4colheader}{%
+ \glossarystyle{altlongragged4col}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{l>{\raggedright}p{\glsdescwidth}l%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{%
+ \bfseries\entryname&\bfseries\descriptionname&
+ \bfseries \symbolname&
+ \bfseries\pagelistname\tabularnewline\endhead}%
+}
+\newglossarystyle{altlongragged4colborder}{%
+ \glossarystyle{altlongragged4col}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{|l|>{\raggedright}p{\glsdescwidth}|l|%
+ >{\raggedright}p{\glspagelistwidth}|}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\hline\endhead\hline\endfoot}%
+}
+\newglossarystyle{altlongragged4colheaderborder}{%
+ \glossarystyle{altlongragged4col}%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{|l|>{\raggedright}p{\glsdescwidth}|l|%
+ >{\raggedright}p{\glspagelistwidth}|}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{%
+ \hline\bfseries\entryname&\bfseries\descriptionname&
+ \bfseries \symbolname&
+ \bfseries\pagelistname\tabularnewline\hline\endhead
+ \hline\endfoot}%
+}
+\endinput
+%%
+%% End of file `glossary-longragged.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossary-super.sty b/support/makeglossariesgui/src/tests/old-version-301/glossary-super.sty
new file mode 100644
index 0000000000..7831f9b008
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossary-super.sty
@@ -0,0 +1,210 @@
+%%
+%% This is file `glossary-super.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossary-super.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\ProvidesPackage{glossary-super}[2011/03/28 v3.0 (NLCT)]
+\RequirePackage{supertabular}
+\@ifundefined{glsdescwidth}{%
+ \newlength\glsdescwidth
+ \setlength{\glsdescwidth}{0.6\hsize}
+}{}
+\@ifundefined{glspagelistwidth}{%
+ \newlength\glspagelistwidth
+ \setlength{\glspagelistwidth}{0.1\hsize}
+}{}
+\newglossarystyle{super}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{lp{\glsdescwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}%
+ \renewcommand*{\glsgroupskip}{ & \\}%
+}
+\newglossarystyle{superborder}{%
+ \glossarystyle{super}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline}\tabletail{\hline}%
+ \begin{supertabular}{|l|p{\glsdescwidth}|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{superheader}{%
+ \glossarystyle{super}%
+\renewenvironment{theglossary}%
+ {\tablehead{\bfseries \entryname & \bfseries \descriptionname\\}%
+ \tabletail{}%
+ \begin{supertabular}{lp{\glsdescwidth}}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{superheaderborder}{%
+ \glossarystyle{super}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline\bfseries \entryname &
+ \bfseries \descriptionname\\\hline}%
+ \tabletail{\hline}
+ \begin{supertabular}{|l|p{\glsdescwidth}|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{super3col}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{lp{\glsdescwidth}p{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\\}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##6\\}%
+ \renewcommand*{\glsgroupskip}{ & &\\}%
+}
+\newglossarystyle{super3colborder}{%
+ \glossarystyle{super3col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline}\tabletail{\hline}%
+ \begin{supertabular}{|l|p{\glsdescwidth}|p{\glspagelistwidth}|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{super3colheader}{%
+ \glossarystyle{super3col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\pagelistname\\}\tabletail{}%
+ \begin{supertabular}{lp{\glsdescwidth}p{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{super3colheaderborder}{%
+ \glossarystyle{super3colborder}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline
+ \bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\pagelistname\\\hline}%
+ \tabletail{\hline}%
+ \begin{supertabular}{|l|p{\glsdescwidth}|p{\glspagelistwidth}|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{super4col}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{llll}}{%
+ \end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\\}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##5 & ##6\\}%
+ \renewcommand*{\glsgroupskip}{ & & &\\}%
+}
+\newglossarystyle{super4colheader}{%
+ \glossarystyle{super4col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\symbolname &
+ \bfseries\pagelistname\\}%
+ \tabletail{}%
+ \begin{supertabular}{llll}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{super4colborder}{%
+ \glossarystyle{super4col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline}\tabletail{\hline}%
+ \begin{supertabular}{|l|l|l|l|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{super4colheaderborder}{%
+ \glossarystyle{super4col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline\bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\symbolname &
+ \bfseries\pagelistname\\\hline}\tabletail{\hline}%
+ \begin{supertabular}{|l|l|l|l|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{altsuper4col}{%
+ \glossarystyle{super4col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{lp{\glsdescwidth}lp{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{altsuper4colheader}{%
+ \glossarystyle{super4colheader}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\symbolname &
+ \bfseries\pagelistname\\}\tabletail{}%
+ \begin{supertabular}{lp{\glsdescwidth}lp{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{altsuper4colborder}{%
+ \glossarystyle{super4colborder}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline}\tabletail{\hline}%
+ \begin{supertabular}%
+ {|l|p{\glsdescwidth}|l|p{\glspagelistwidth}|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{altsuper4colheaderborder}{%
+ \glossarystyle{super4colheaderborder}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline
+ \bfseries\entryname &
+ \bfseries\descriptionname &
+ \bfseries\symbolname &
+ \bfseries\pagelistname\\\hline}%
+ \tabletail{\hline}%
+ \begin{supertabular}%
+ {|l|p{\glsdescwidth}|l|p{\glspagelistwidth}|}}%
+ {\end{supertabular}}%
+}
+\endinput
+%%
+%% End of file `glossary-super.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossary-superragged.sty b/support/makeglossariesgui/src/tests/old-version-301/glossary-superragged.sty
new file mode 100644
index 0000000000..2c02e10e42
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossary-superragged.sty
@@ -0,0 +1,189 @@
+%%
+%% This is file `glossary-superragged.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossary-superragged.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\ProvidesPackage{glossary-superragged}[2011/03/28 v3.0 (NLCT)]
+\RequirePackage{array}
+\RequirePackage{supertabular}
+\@ifundefined{glsdescwidth}{%
+ \newlength\glsdescwidth
+ \setlength{\glsdescwidth}{0.6\hsize}
+}{}
+\@ifundefined{glspagelistwidth}{%
+ \newlength\glspagelistwidth
+ \setlength{\glspagelistwidth}{0.1\hsize}
+}{}
+\newglossarystyle{superragged}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5%
+ \tabularnewline}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6%
+ \tabularnewline}%
+ \renewcommand*{\glsgroupskip}{ & \tabularnewline}%
+}
+\newglossarystyle{superraggedborder}{%
+ \glossarystyle{superragged}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline}\tabletail{\hline}%
+ \begin{supertabular}{|l|>{\raggedright}p{\glsdescwidth}|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{superraggedheader}{%
+ \glossarystyle{superragged}%
+\renewenvironment{theglossary}%
+ {\tablehead{\bfseries \entryname & \bfseries \descriptionname
+ \tabularnewline}%
+ \tabletail{}%
+ \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{superraggedheaderborder}{%
+ \glossarystyle{superragged}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline\bfseries \entryname &
+ \bfseries \descriptionname\tabularnewline\hline}%
+ \tabletail{\hline}
+ \begin{supertabular}{|l|>{\raggedright}p{\glsdescwidth}|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{superragged3col}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\tabularnewline}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##6\tabularnewline}%
+ \renewcommand*{\glsgroupskip}{ & &\tabularnewline}%
+}
+\newglossarystyle{superragged3colborder}{%
+ \glossarystyle{superragged3col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline}\tabletail{\hline}%
+ \begin{supertabular}{|l|>{\raggedright}p{\glsdescwidth}|%
+ >{\raggedright}p{\glspagelistwidth}|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{superragged3colheader}{%
+ \glossarystyle{superragged3col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\pagelistname\tabularnewline}\tabletail{}%
+ \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{superragged3colheaderborder}{%
+ \glossarystyle{superragged3colborder}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline
+ \bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\pagelistname\tabularnewline\hline}%
+ \tabletail{\hline}%
+ \begin{supertabular}{|l|>{\raggedright}p{\glsdescwidth}|%
+ >{\raggedright}p{\glspagelistwidth}|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{altsuperragged4col}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}l%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossaryentryfield}[5]{%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\tabularnewline}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##5 & ##6\tabularnewline}%
+ \renewcommand*{\glsgroupskip}{ & & &\tabularnewline}%
+}
+\newglossarystyle{altsuperragged4colheader}{%
+ \glossarystyle{altsuperragged4col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\bfseries\entryname&\bfseries\descriptionname&
+ \bfseries\symbolname &
+ \bfseries\pagelistname\tabularnewline}\tabletail{}%
+ \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}l%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{altsuperragged4colborder}{%
+ \glossarystyle{altsuper4col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline}\tabletail{\hline}%
+ \begin{supertabular}%
+ {|l|>{\raggedright}p{\glsdescwidth}|l|%
+ >{\raggedright}p{\glspagelistwidth}|}}%
+ {\end{supertabular}}%
+}
+\newglossarystyle{altsuperragged4colheaderborder}{%
+ \glossarystyle{altsuperragged4col}%
+ \renewenvironment{theglossary}%
+ {\tablehead{\hline
+ \bfseries\entryname &
+ \bfseries\descriptionname &
+ \bfseries\symbolname &
+ \bfseries\pagelistname\tabularnewline\hline}%
+ \tabletail{\hline}%
+ \begin{supertabular}%
+ {|l|>{\raggedright}p{\glsdescwidth}|l|%
+ >{\raggedright}p{\glspagelistwidth}|}}%
+ {\end{supertabular}}%
+}
+\endinput
+%%
+%% End of file `glossary-superragged.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/glossary-tree.sty b/support/makeglossariesgui/src/tests/old-version-301/glossary-tree.sty
new file mode 100644
index 0000000000..490ad13ea6
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/glossary-tree.sty
@@ -0,0 +1,264 @@
+%%
+%% This is file `glossary-tree.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `glossary-tree.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\ProvidesPackage{glossary-tree}[2011/03/28 v3.0 (NLCT)]
+\newglossarystyle{index}{%
+ \renewenvironment{theglossary}%
+ {\setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ \let\item\@idxitem}%
+ {}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+\renewcommand*{\glossaryentryfield}[5]{%
+\item\glsentryitem{##1}\textbf{\glstarget{##1}{##2}}%
+ \ifx\relax##4\relax
+ \else
+ \space(##4)%
+ \fi
+ \space ##3\glspostdescription \space ##5}%
+ \renewcommand*{\glossarysubentryfield}[6]{%
+ \ifcase##1\relax
+ % level 0
+ \item
+ \or
+ % level 1
+ \subitem
+ \glssubentryitem{##2}%
+ \else
+ % all other levels
+ \subsubitem
+ \fi
+ \textbf{\glstarget{##2}{##3}}%
+ \ifx\relax##5\relax
+ \else
+ \space(##5)%
+ \fi
+ \space##4\glspostdescription\space ##6}%
+ \renewcommand*{\glsgroupskip}{\indexspace}}
+\newglossarystyle{indexgroup}{%
+ \glossarystyle{index}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item\textbf{\glsgetgrouptitle{##1}}\indexspace}%
+}
+\newglossarystyle{indexhypergroup}{%
+ \glossarystyle{index}%
+ \renewcommand*{\glossaryheader}{%
+ \item\textbf{\glsnavigation}\indexspace}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item\textbf{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \indexspace}%
+}
+\newglossarystyle{tree}{%
+ \renewenvironment{theglossary}%
+ {\setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}}%
+ {}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossaryentryfield}[5]{%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}%
+ \ifx\relax##4\relax
+ \else
+ \space(##4)%
+ \fi
+ \space ##3\glspostdescription \space ##5\par}%
+ \renewcommand{\glossarysubentryfield}[6]{%
+ \hangindent##1\glstreeindent\relax
+ \parindent##1\glstreeindent\relax
+ \ifnum##1=1\relax
+ \glssubentryitem{##2}%
+ \fi
+ \textbf{\glstarget{##2}{##3}}%
+ \ifx\relax##5\relax
+ \else
+ \space(##5)%
+ \fi
+ \space##4\glspostdescription\space ##6\par}%
+ \renewcommand*{\glsgroupskip}{\indexspace}}
+\newglossarystyle{treegroup}{%
+ \glossarystyle{tree}%
+ \renewcommand{\glsgroupheading}[1]{\par
+ \noindent\textbf{\glsgetgrouptitle{##1}}\par\indexspace}%
+}
+\newglossarystyle{treehypergroup}{%
+ \glossarystyle{tree}%
+ \renewcommand*{\glossaryheader}{%
+ \par\noindent\textbf{\glsnavigation}\par\indexspace}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par\noindent
+ \textbf{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}\par
+ \indexspace}%
+}
+\newlength\glstreeindent
+\setlength{\glstreeindent}{10pt}
+\newglossarystyle{treenoname}{%
+ \renewenvironment{theglossary}%
+ {\setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}}%
+ {}%
+ \renewcommand*{\glossaryheader}{}%
+\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossaryentryfield}[5]{%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}%
+ \ifx\relax##4\relax
+ \else
+ \space(##4)%
+ \fi
+ \space ##3\glspostdescription \space ##5\par}%
+ \renewcommand{\glossarysubentryfield}[6]{%
+ \hangindent##1\glstreeindent\relax
+ \parindent##1\glstreeindent\relax
+ \ifnum##1=1\relax
+ \glssubentryitem{##2}%
+ \fi
+ \glstarget{##2}{\strut}%
+ ##4\glspostdescription\space ##6\par}%
+ \renewcommand*{\glsgroupskip}{\indexspace}%
+}
+\newglossarystyle{treenonamegroup}{%
+ \glossarystyle{treenoname}%
+ \renewcommand{\glsgroupheading}[1]{\par
+ \noindent\textbf{\glsgetgrouptitle{##1}}\par\indexspace}%
+}
+\newglossarystyle{treenonamehypergroup}{%
+ \glossarystyle{treenoname}%
+ \renewcommand*{\glossaryheader}{%
+ \par\noindent\textbf{\glsnavigation}\par\indexspace}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par\noindent
+ \textbf{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}\par
+ \indexspace}%
+}
+\newcommand*{\glssetwidest}[2][0]{%
+ \expandafter\def\csname @glswidestname\romannumeral#1\endcsname{%
+ #2}%
+}
+\newcommand*{\@glswidestname}{}
+\newglossarystyle{alttree}{%
+ \renewenvironment{theglossary}%
+ {\def\@gls@prevlevel{-1}%
+ \mbox{}\par}%
+ {\par}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossaryentryfield}[5]{%
+ \ifnum\@gls@prevlevel=0\relax
+ \else
+ \settowidth{\glstreeindent}{\textbf{\@glswidestname\space}}%
+ \hangindent\glstreeindent
+ \parindent\glstreeindent
+ \fi
+ \makebox[0pt][r]{\makebox[\glstreeindent][l]{%
+ \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}}}%
+ \ifx\relax##4\relax
+ \else
+ (##4)\space
+ \fi
+ ##3\glspostdescription \space ##5\par
+ \def\@gls@prevlevel{0}%
+ }%
+ \renewcommand{\glossarysubentryfield}[6]{%
+ \ifnum##1=1\relax
+ \glssubentryitem{##2}%
+ \fi
+ \ifnum\@gls@prevlevel=##1\relax
+ \else
+ \@ifundefined{@glswidestname\romannumeral##1}{%
+ \settowidth{\gls@tmplen}{\textbf{\@glswidestname\space}}}{%
+ \settowidth{\gls@tmplen}{\textbf{%
+ \csname @glswidestname\romannumeral##1\endcsname\space}}}%
+ \ifnum\@gls@prevlevel<##1\relax
+ \setlength\glstreeindent\gls@tmplen
+ \addtolength\glstreeindent\parindent
+ \parindent\glstreeindent
+ \else
+ \@ifundefined{@glswidestname\romannumeral\@gls@prevlevel}{%
+ \settowidth{\glstreeindent}{\textbf{%
+ \@glswidestname\space}}}{%
+ \settowidth{\glstreeindent}{\textbf{%
+ \csname @glswidestname\romannumeral\@gls@prevlevel
+ \endcsname\space}}}%
+ \addtolength\parindent{-\glstreeindent}%
+ \setlength\glstreeindent\parindent
+ \fi
+ \fi
+ \hangindent\glstreeindent
+ \makebox[0pt][r]{\makebox[\gls@tmplen][l]{%
+ \textbf{\glstarget{##2}{##3}}}}%
+ \ifx##5\relax\relax
+ \else
+ (##5)\space
+ \fi
+ ##4\glspostdescription\space ##6\par
+ \def\@gls@prevlevel{##1}%
+ }%
+ \renewcommand*{\glsgroupskip}{\indexspace}%
+}
+\newglossarystyle{alttreegroup}{%
+ \glossarystyle{alttree}%
+ \renewcommand{\glsgroupheading}[1]{\par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \textbf{\glsgetgrouptitle{##1}}\par\indexspace}%
+}
+\newglossarystyle{alttreehypergroup}{%
+ \glossarystyle{alttree}%
+ \renewcommand*{\glossaryheader}{%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \textbf{\glsnavigation}\par\indexspace}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \textbf{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}\par
+ \indexspace}}
+\endinput
+%%
+%% End of file `glossary-tree.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/mfirstuc.sty b/support/makeglossariesgui/src/tests/old-version-301/mfirstuc.sty
new file mode 100644
index 0000000000..15f7333030
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/mfirstuc.sty
@@ -0,0 +1,94 @@
+%%
+%% This is file `mfirstuc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries.dtx (with options: `mfirstuc.sty,package')
+%%
+%% glossaries.dtx
+%% Copyright 2011 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license of (at your option) any later version.
+%% 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'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl.
+%%
+%% \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 \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{mfirstuc}[2011/04/02 v1.05 (NLCT)]
+\newif\if@glscs
+\newtoks\@glsmfirst
+\newtoks\@glsmrest
+\def\makefirstuc#1{%
+ \def\gls@argi{#1}%
+ \ifx\gls@argi\@empty
+ \else
+ \def\@gls@tmp{\ #1}%
+ \@onelevel@sanitize\@gls@tmp
+ \expandafter\@gls@checkcs\@gls@tmp\relax\relax
+ \if@glscs
+ \@gls@getbody #1{}\@nil
+ \ifx\@gls@rest\@empty
+ \glsmakefirstuc{#1}%
+ \else
+ \expandafter\@gls@split\@gls@rest\@nil
+ \ifx\@gls@first\@empty
+ \glsmakefirstuc{#1}%
+ \else
+ \expandafter\@glsmfirst\expandafter{\@gls@first}%
+ \expandafter\@glsmrest\expandafter{\@gls@rest}%
+ \edef\@gls@domfirstuc{\noexpand\@gls@body
+ {\noexpand\glsmakefirstuc\the\@glsmfirst}%
+ \the\@glsmrest}%
+ \@gls@domfirstuc
+ \fi
+ \fi
+ \else
+ \glsmakefirstuc{#1}%
+ \fi
+ \fi
+}
+\def\@gls@split#1#2\@nil{%
+ \def\@gls@first{#1}\def\@gls@rest{#2}%
+}
+\def\@gls@checkcs#1 #2#3\relax{%
+ \def\@gls@argi{#1}\def\@gls@argii{#2}%
+ \ifx\@gls@argi\@gls@argii
+ \@glscstrue
+ \else
+ \@glscsfalse
+ \fi
+}
+\def\@gls@makefirstuc#1{\MakeUppercase #1}
+\newcommand*{\glsmakefirstuc}[1]{\@gls@makefirstuc{#1}}
+\def\@gls@getbody#1#{\def\@gls@body{#1}\@gls@gobbletonil}
+\def\@gls@gobbletonil#1\@nil{\def\@gls@rest{#1}}
+\newcommand*{\xmakefirstuc}[1]{%
+\expandafter\makefirstuc\expandafter{#1}}
+\endinput
+%%
+%% End of file `mfirstuc.sty'.
diff --git a/support/makeglossariesgui/src/tests/old-version-301/old-version-301.tex b/support/makeglossariesgui/src/tests/old-version-301/old-version-301.tex
new file mode 100644
index 0000000000..b31bc39392
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/old-version-301/old-version-301.tex
@@ -0,0 +1,63 @@
+%\documentclass{article}
+\documentclass{beamer}
+
+\usepackage[automake,style=tree]{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\newglossaryentry{another}{name={another sample},
+ description={another example}}
+
+\newglossaryentry{long-sample}{name={long sample},
+ description={Lorem ipsum dolor sit amet, consectetuer
+ adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
+ adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu
+ libero, nonummy eget, consectetuer id, vulputate a, magna. Donec
+ vehicula augue eu neque. Pellentesque habitant morbi tristique
+ senectus et netus et malesuada fames ac turpis egestas. Mauris ut
+ leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum
+urna
+ fringilla ultrices. Phasellus eu tellus sit amet tortor gravida
+ placerat. Integer sapien est, iaculis in, pretium quis, viverra
+ac,
+ nunc. Praesent eget sem vel leo ultrices bibendum. Aenean
+faucibus.
+ Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla.
+ Curabitur auctor semper nulla. Donec varius orci eget risus. Duis
+ nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis
+ eget orci sit amet orci dignissim rutrum. Nam dui ligula,
+fringilla a, euismod sodales,
+ sollicitudin vel, wisi. Morbi auctor lorem non justo. Nam lacus
+ libero, pretium at, lobortis vitae, ultricies et, tellus. Donec
+ aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna,
+ vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit
+ mollis. Suspendisse ut massa. Cras nec ante. Pellentesque a nulla.
+ Cum sociis natoque penatibus et magnis dis parturient montes,
+ nascetur ridiculus mus. Aliquam tincidunt urna. Nulla ullamcorper
+ vestibulum turpis. Pellentesque cursus luctus mauris. Nulla
+malesuada porttitor diam. Donec felis
+ erat, congue non, volutpat at, tincidunt tristique, libero.
+Vivamus
+ viverra fermentum felis. Donec nonummy pellentesque ante.
+Phasellus
+ adipiscing semper elit. Proin fermentum massa ac quam. Sed diam
+ turpis, molestie vitae, placerat a, molestie nec, leo. Maecenas
+ lacinia. Nam ipsum ligula, eleifend at, accumsan nec, suscipit a,
+ ipsum. Morbi blandit ligula feugiat magna. Nunc eleifend consequat
+ lorem. Sed lacinia nulla vitae enim. Pellentesque tincidunt purus
+ vel magna. Integer non enim. Praesent euismod nunc eu purus. Donec
+ bibendum quam in tellus. Nullam cursus pulvinar lectus. Donec et
+mi.
+ Nam vulputate metus eu enim. Vestibulum pellentesque felis eu
+ massa.}}
+
+\begin{document}
+A \gls{sample} document with a \gls{long-sample}.
+\Gls{another}.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/restricted-doc-defs/restricted-doc-defs.tex b/support/makeglossariesgui/src/tests/restricted-doc-defs/restricted-doc-defs.tex
new file mode 100644
index 0000000000..b0c84cb90d
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/restricted-doc-defs/restricted-doc-defs.tex
@@ -0,0 +1,15 @@
+\documentclass{article}
+
+\usepackage[docdef=restricted]{glossaries-extra}
+
+\makeglossaries
+
+\begin{document}
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+A \gls{sample} document.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-babel/sample-babel.tex b/support/makeglossariesgui/src/tests/sample-babel/sample-babel.tex
new file mode 100644
index 0000000000..53b251a54b
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-babel/sample-babel.tex
@@ -0,0 +1,16 @@
+\documentclass{article}
+
+\usepackage[interlingua]{babel}
+\usepackage{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\begin{document}
+A \gls{sample} document.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-bib2gls-hybrid/sample-bib2gls-hybrid.tex b/support/makeglossariesgui/src/tests/sample-bib2gls-hybrid/sample-bib2gls-hybrid.tex
new file mode 100644
index 0000000000..959712a085
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-bib2gls-hybrid/sample-bib2gls-hybrid.tex
@@ -0,0 +1,15 @@
+\documentclass{article}
+
+\usepackage[record=alsoindex]{glossaries-extra}
+
+\makeglossaries
+
+\GlsXtrLoadResources[src=example-glossaries-brief]
+
+\begin{document}
+
+\gls{lorem}.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-bib2gls/sample-bib2gls.tex b/support/makeglossariesgui/src/tests/sample-bib2gls/sample-bib2gls.tex
new file mode 100644
index 0000000000..79b4aab5a9
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-bib2gls/sample-bib2gls.tex
@@ -0,0 +1,13 @@
+\documentclass{article}
+
+\usepackage[record]{glossaries-extra}
+
+\GlsXtrLoadResources[src=example-glossaries-brief]
+
+\begin{document}
+
+\gls{lorem}.
+
+\printunsrtglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-fragile/sample-fragile.tex b/support/makeglossariesgui/src/tests/sample-fragile/sample-fragile.tex
new file mode 100644
index 0000000000..67d07f1d63
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-fragile/sample-fragile.tex
@@ -0,0 +1,23 @@
+\batchmode
+\documentclass{beamer}
+
+\usepackage{glossaries}
+
+%\glsnoexpandfields
+
+\makeglossaries
+
+\newglossaryentry{sample}{name=sample,first={\textit{sample}},
+ description={an example}}
+
+\begin{document}
+
+\begin{frame}
+\gls{sample}
+\end{frame}
+
+\begin{frame}
+\printglossary
+\end{frame}
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-german/sample-german.tex b/support/makeglossariesgui/src/tests/sample-german/sample-german.tex
new file mode 100644
index 0000000000..83ae53abca
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-german/sample-german.tex
@@ -0,0 +1,19 @@
+\documentclass{article}
+
+\usepackage[ngerman]{babel}
+\usepackage{glossaries}
+
+\GlsSetQuote{+}% requires glossaries v4.24
+
+\makeglossaries
+
+\newglossaryentry{Uberlingen}{name={{\"U}berlingen},
+ sort={"Uberlingen},
+ description={a place}}
+
+\begin{document}
+
+\gls{Uberlingen}
+
+\printglossaries
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-include/gloss.tex b/support/makeglossariesgui/src/tests/sample-include/gloss.tex
new file mode 100644
index 0000000000..4a2d0681e5
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-include/gloss.tex
@@ -0,0 +1,5 @@
+\makeglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
diff --git a/support/makeglossariesgui/src/tests/sample-include/main.tex b/support/makeglossariesgui/src/tests/sample-include/main.tex
new file mode 100644
index 0000000000..1d4df60998
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-include/main.tex
@@ -0,0 +1,2 @@
+A \gls{sample} document.
+
diff --git a/support/makeglossariesgui/src/tests/sample-include/sample-include.tex b/support/makeglossariesgui/src/tests/sample-include/sample-include.tex
new file mode 100644
index 0000000000..177f901a1a
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-include/sample-include.tex
@@ -0,0 +1,12 @@
+\documentclass{article}
+
+\usepackage{glossaries}
+
+\include{gloss}
+
+\begin{document}
+\include{main}
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-latin1/sample-latin1-makeindex.tex b/support/makeglossariesgui/src/tests/sample-latin1/sample-latin1-makeindex.tex
new file mode 100644
index 0000000000..784195827a
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-latin1/sample-latin1-makeindex.tex
@@ -0,0 +1,16 @@
+\documentclass{article}
+
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage[portuguese]{babel}
+\usepackage{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{tomorrow}{name={amanhã},description={tomorrow}}
+
+\begin{document}
+\gls{tomorrow}
+
+\printglossary
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-latin1/sample-latin1.tex b/support/makeglossariesgui/src/tests/sample-latin1/sample-latin1.tex
new file mode 100644
index 0000000000..2053a64311
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-latin1/sample-latin1.tex
@@ -0,0 +1,16 @@
+\documentclass{article}
+
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage[portuguese]{babel}
+\usepackage[xindy]{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{tomorrow}{name={amanhã},description={tomorrow}}
+
+\begin{document}
+\gls{tomorrow}
+
+\printglossary
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-noidx/sample-noidx.tex b/support/makeglossariesgui/src/tests/sample-noidx/sample-noidx.tex
new file mode 100644
index 0000000000..cd105dc306
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-noidx/sample-noidx.tex
@@ -0,0 +1,15 @@
+\documentclass{article}
+
+\usepackage{glossaries}
+
+\makenoidxglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\begin{document}
+A \gls{sample} document.
+
+\printnoidxglossary
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-nonumberlists/sample-nonumberlists-xindy.tex b/support/makeglossariesgui/src/tests/sample-nonumberlists/sample-nonumberlists-xindy.tex
new file mode 100644
index 0000000000..fd0a275d79
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-nonumberlists/sample-nonumberlists-xindy.tex
@@ -0,0 +1,23 @@
+% arara: pdflatex
+% arara: makeglossaries
+% arara: pdflatex
+\documentclass{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[xindy]{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample1}{name={sample1},description={first example}}
+\newglossaryentry{sample2}{name={sample2},description={second example},
+nonumberlist}
+\newglossaryentry{sample3}{name={sample3},description={third example},
+nonumberlist=false
+}
+
+\begin{document}
+\gls{sample1}, \gls{sample2} and \gls{sample3}.
+
+\printglossaries
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/sample-nonumberlists/sample-nonumberlists.tex b/support/makeglossariesgui/src/tests/sample-nonumberlists/sample-nonumberlists.tex
new file mode 100644
index 0000000000..c341ec2301
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/sample-nonumberlists/sample-nonumberlists.tex
@@ -0,0 +1,21 @@
+% arara: pdflatex
+% arara: makeglossaries
+% arara: pdflatex
+\documentclass{article}
+
+\usepackage{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample1}{name={sample1},description={first example}}
+\newglossaryentry{sample2}{name={sample2},description={second example},
+nonumberlist}
+\newglossaryentry{sample3}{name={sample3},description={third example},
+nonumberlist=false
+}
+
+\begin{document}
+\gls{sample1}, \gls{sample2} and \gls{sample3}.
+
+\printglossaries
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/unsupported-enc/unsupported-enc.tex b/support/makeglossariesgui/src/tests/unsupported-enc/unsupported-enc.tex
new file mode 100644
index 0000000000..c1d321b3ea
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/unsupported-enc/unsupported-enc.tex
@@ -0,0 +1,18 @@
+\documentclass{article}
+
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+
+% makeindex doesn't support UTF-8, so this will break
+\usepackage[style=indexgroup]{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{elite}{name={élite},description={select group}}
+
+\begin{document}
+\gls{elite}
+
+\printglossary
+\end{document}
+
diff --git a/support/makeglossariesgui/src/tests/utf8-label/utf8-label.tex b/support/makeglossariesgui/src/tests/utf8-label/utf8-label.tex
new file mode 100644
index 0000000000..f3f7bebc26
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/utf8-label/utf8-label.tex
@@ -0,0 +1,19 @@
+\batchmode
+\documentclass{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[xindy]{glossaries}
+
+\makeglossaries
+
+% This will fail:
+\newglossaryentry{Ãœberlingen}{name={Ãœberlingen},
+ description={a place}}
+
+\begin{document}
+
+\gls{Ãœberlingen}
+
+\printglossaries
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/working-examples/working-sample-makeindex.tex b/support/makeglossariesgui/src/tests/working-examples/working-sample-makeindex.tex
new file mode 100644
index 0000000000..f1a3a6c453
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/working-examples/working-sample-makeindex.tex
@@ -0,0 +1,15 @@
+\documentclass{article}
+
+\usepackage[colorlinks]{hyperref}
+\usepackage[acronym]{glossaries}
+
+\makeglossaries
+
+\loadglsentries{example-glossaries-brief}
+\loadglsentries[acronym]{example-glossaries-acronym}
+
+\begin{document}
+\glsaddall
+
+\printglossaries
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/working-examples/working-sample-xindy.tex b/support/makeglossariesgui/src/tests/working-examples/working-sample-xindy.tex
new file mode 100644
index 0000000000..a77c6e5d71
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/working-examples/working-sample-xindy.tex
@@ -0,0 +1,17 @@
+\documentclass{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[colorlinks]{hyperref}
+\usepackage[acronym,xindy]{glossaries}
+
+\makeglossaries
+
+\loadglsentries{example-glossaries-brief}
+\loadglsentries[acronym]{example-glossaries-acronym}
+
+\begin{document}
+\glsaddall
+
+\printglossaries
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/wrong-type/wrong-type.tex b/support/makeglossariesgui/src/tests/wrong-type/wrong-type.tex
new file mode 100644
index 0000000000..8ed0605c00
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/wrong-type/wrong-type.tex
@@ -0,0 +1,15 @@
+\documentclass{article}
+
+\usepackage{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\begin{document}
+A \gls{sample} document.
+
+\printglossary[type=acronym]
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/xindy-english/xindy-english.tex b/support/makeglossariesgui/src/tests/xindy-english/xindy-english.tex
new file mode 100644
index 0000000000..5d2cdf8bbb
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/xindy-english/xindy-english.tex
@@ -0,0 +1,18 @@
+\documentclass{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[english]{babel}
+\usepackage[xindy,automake]{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{sample}{name={sample},
+ description={an example}}
+
+\begin{document}
+A \gls{sample} document.
+
+\printglossaries
+
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/xindy-german-xetex/xindy-german-xetex.tex b/support/makeglossariesgui/src/tests/xindy-german-xetex/xindy-german-xetex.tex
new file mode 100644
index 0000000000..9fc8912dfe
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/xindy-german-xetex/xindy-german-xetex.tex
@@ -0,0 +1,18 @@
+\documentclass{article}
+
+\usepackage{fontspec}
+\usepackage{polyglossia}
+\setmainlanguage[spelling=new]{german}
+\usepackage[xindy]{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{Ãœberlingen}{name={Ãœberlingen},
+ description={a place}}
+
+\begin{document}
+
+\gls{Ãœberlingen}
+
+\printglossaries
+\end{document}
diff --git a/support/makeglossariesgui/src/tests/xindy-german/xindy-german.tex b/support/makeglossariesgui/src/tests/xindy-german/xindy-german.tex
new file mode 100644
index 0000000000..f66b60eb34
--- /dev/null
+++ b/support/makeglossariesgui/src/tests/xindy-german/xindy-german.tex
@@ -0,0 +1,18 @@
+\documentclass{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[ngerman]{babel}
+\usepackage[xindy,automake]{glossaries}
+
+\makeglossaries
+
+\newglossaryentry{Uberlingen}{name={{Ü}berlingen},
+ description={a place}}
+
+\begin{document}
+
+\gls{Uberlingen}
+
+\printglossaries
+\end{document}