Index: doc/theses/jiada_liang_MMath/.gitignore
===================================================================
--- doc/theses/jiada_liang_MMath/.gitignore	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/.gitignore	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,9 @@
+# Intermediate Results:
+build/
+
+# Final Files:
+*.pdf
+*.ps
+
+# The Makefile here is not generated.
+!Makefile
Index: doc/theses/jiada_liang_MMath/Makefile
===================================================================
--- doc/theses/jiada_liang_MMath/Makefile	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/Makefile	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,69 @@
+# Configuration variables
+
+Build = build
+Figures = figures
+Pictures = pictures
+
+LaTMac = ../../LaTeXmacros
+BibRep = ../../bibliography
+
+TeXSRC = ${wildcard *.tex}
+FigSRC = ${notdir ${wildcard ${Figures}/*.fig}}
+PicSRC = ${notdir ${wildcard ${Pictures}/*.fig}}
+BibSRC = ${wildcard *.bib}
+
+TeXLIB = .:${LaTMac}:${Build}:
+BibLIB = .:${BibRep}:
+
+MAKEFLAGS = --no-print-directory # --silent
+VPATH = ${Build} ${Figures} ${Pictures} # extra search path for file names used in document
+
+DOCUMENT = uw-ethesis.pdf
+BASE = ${basename ${DOCUMENT}}			# remove suffix
+
+# Commands
+
+LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=${Build}
+BibTeX = BIBINPUTS=${BibLIB} && export BIBINPUTS && bibtex
+Glossary = INDEXSTYLE=${Build} makeglossaries-lite
+
+# Rules and Recipes
+
+.PHONY : all clean				# not file names
+.PRECIOUS: %.dvi %.ps # do not delete intermediate files
+.ONESHELL :
+
+all : ${DOCUMENT}
+
+clean :
+	@rm -frv ${DOCUMENT} ${Build}
+
+# File Dependencies
+
+%.dvi : ${TeXSRC} ${FigSRC:%.fig=%.tex} ${PicSRC:%.fig=%.pstex} ${BibSRC} ${BibRep}/pl.bib ${LaTMac}/common.tex Makefile | ${Build}
+	${LaTeX} ${BASE}
+	${BibTeX} ${Build}/${BASE}
+	${LaTeX} ${BASE}
+	# if needed, run latex again to get citations
+	if fgrep -s "LaTeX Warning: Citation" ${basename $@}.log ; then ${LaTeX} ${BASE} ; fi
+	${Glossary} ${Build}/${BASE}
+	${LaTeX} ${BASE}
+
+${Build}:
+	mkdir -p $@
+
+%.pdf : ${Build}/%.ps | ${Build}
+	ps2pdf $<
+
+%.ps : %.dvi | ${Build}
+	dvips $< -o $@
+
+%.tex : %.fig | ${Build}
+	fig2dev -L eepic $< > ${Build}/$@
+
+%.ps : %.fig | ${Build}
+	fig2dev -L ps $< > ${Build}/$@
+
+%.pstex : %.fig | ${Build}
+	fig2dev -L pstex $< > ${Build}/$@
+	fig2dev -L pstex_t -p ${Build}/$@ $< > ${Build}/$@_t
Index: doc/theses/jiada_liang_MMath/background.tex
===================================================================
--- doc/theses/jiada_liang_MMath/background.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/background.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,1 @@
+\chapter{Background}
Index: doc/theses/jiada_liang_MMath/benchmarks.tex
===================================================================
--- doc/theses/jiada_liang_MMath/benchmarks.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/benchmarks.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,2 @@
+\chapter{Benchmarks}
+\label{s:Benchmarks}
Index: doc/theses/jiada_liang_MMath/conclusion.tex
===================================================================
--- doc/theses/jiada_liang_MMath/conclusion.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/conclusion.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,5 @@
+\chapter{Conclusion}
+
+The goal of this thesis is to ...
+
+\section{Future Work}
Index: doc/theses/jiada_liang_MMath/content1.tex
===================================================================
--- doc/theses/jiada_liang_MMath/content1.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/content1.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,8 @@
+\chapter{Content1}
+\label{c:content1}
+
+This chapter ...
+
+\section{Section 1}
+
+\section{Section 2}
Index: doc/theses/jiada_liang_MMath/content2.tex
===================================================================
--- doc/theses/jiada_liang_MMath/content2.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/content2.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,8 @@
+\chapter{Content1}
+\label{c:content1}
+
+This chapter ...
+
+\section{Section 1}
+
+\section{Section 2}
Index: doc/theses/jiada_liang_MMath/glossary.tex
===================================================================
--- doc/theses/jiada_liang_MMath/glossary.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/glossary.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,47 @@
+% % Main glossary entries -- definitions of relevant terminology
+% \newglossaryentry{computer}
+% {
+% name=computer,
+% description={A programmable machine that receives input data,
+%                stores and manipulates the data, and provides
+%                formatted output}
+% }
+
+% % Nomenclature glossary entries -- New definitions, or unusual terminology
+% \newglossary*{nomenclature}{Nomenclature}
+% \newglossaryentry{dingledorf}
+% {
+% type=nomenclature,
+% name=dingledorf,
+% description={A person of supposed average intelligence who makes incredibly brainless misjudgments}
+% }
+
+% % List of Abbreviations (abbreviations type is built in to the glossaries-extra package)
+% \newabbreviation{aaaaz}{AAAAZ}{American Association of Amateur Astronomers and Zoologists}
+
+% % List of Symbols
+% \newglossary*{symbols}{List of Symbols}
+% \newglossaryentry{rvec}
+% {
+% name={$\mathbf{v}$},
+% sort={label},
+% type=symbols,
+% description={Random vector: a location in n-dimensional Cartesian space, where each dimensional component is determined by a random process}
+% }
+
+% Examples from template above
+
+\newabbreviation{foo}{FOO}{\Newterm{Fred Orders Oysters}}
+\newabbreviation{bar}{BAR}{\Newterm{Boys Are Rushed}}
+
+\newglossaryentry{git}{
+name=git,
+first={\Newterm{git}},
+description={is a system that can count the change in your pocket.}
+}
+
+\newglossaryentry{gulp}{
+name={gulp},
+first={\Newterm{gulp}},
+description={a motion made with the mouth.}
+}
Index: doc/theses/jiada_liang_MMath/intro.tex
===================================================================
--- doc/theses/jiada_liang_MMath/intro.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/intro.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,5 @@
+\chapter{Introduction}
+
+Testing glossy abbreviations \gls{foo} and \gls{bar}, and glossy definitions \gls{git} and \gls{gulp}.
+
+And use the glossy abbreviations \gls{foo} and \gls{bar}, and definitions \gls{git} and \gls{gulp} again.
Index: doc/theses/jiada_liang_MMath/performance.tex
===================================================================
--- doc/theses/jiada_liang_MMath/performance.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/performance.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,3 @@
+\chapter{Performance}
+
+If there are any performance experiments.
Index: doc/theses/jiada_liang_MMath/uw-ethesis-frontpgs.tex
===================================================================
--- doc/theses/jiada_liang_MMath/uw-ethesis-frontpgs.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/uw-ethesis-frontpgs.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,197 @@
+% T I T L E   P A G E
+% -------------------
+% Last updated August 16, 2022, by IST-Client Services
+% The title page is counted as page `i' but we need to suppress the
+% page number. Also, we don't want any headers or footers.
+\pagestyle{empty}
+\pagenumbering{roman}
+
+% The contents of the title page are specified in the "titlepage"
+% environment.
+\begin{titlepage}
+        \begin{center}
+        \vspace*{1.0cm}
+
+        \Huge
+        {\bf Enumerated Types in \CFA}
+
+        \vspace*{1.0cm}
+
+        \normalsize
+        by \\
+
+        \vspace*{1.0cm}
+
+        \Large
+        Jiada Liang \\
+
+        \vspace*{3.0cm}
+
+        \normalsize
+        A thesis \\
+        presented to the University of Waterloo \\ 
+        in fulfillment of the \\
+        thesis requirement for the degree of \\
+        Master of Mathematics \\
+        in \\
+        Computer Science \\
+
+        \vspace*{2.0cm}
+
+        Waterloo, Ontario, Canada, \the\year \\
+
+        \vspace*{1.0cm}
+
+        \copyright{} Jiada Liang \the\year \\
+        \end{center}
+\end{titlepage}
+
+% The rest of the front pages should contain no headers and be numbered using Roman numerals starting with `ii'
+\pagestyle{plain}
+\setcounter{page}{2}
+
+\cleardoublepage % Ends the current page and causes all figures and tables that have so far appeared in the input to be printed.
+% In a two-sided printing style, it also makes the next page a right-hand (odd-numbered) page, producing a blank page if necessary.
+\phantomsection    % allows hyperref to link to the correct page
+
+\begin{comment}
+% E X A M I N I N G   C O M M I T T E E (Required for Ph.D. theses only)
+% Remove or comment out the lines below to remove this page
+\addcontentsline{toc}{chapter}{Examining Committee}
+\begin{center}\textbf{Examining Committee Membership}\end{center}
+  \noindent
+The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote.
+  \bigskip
+  
+  \noindent
+\begin{tabbing}
+Internal-External Member: \=  \kill % using longest text to define tab length
+External Examiner: \>  Bruce Bruce \\ 
+\> Professor, Dept. of Philosophy of Zoology, University of Wallamaloo \\
+\end{tabbing} 
+  \bigskip
+  
+  \noindent
+\begin{tabbing}
+Internal-External Member: \=  \kill % using longest text to define tab length
+Supervisor(s): \> Ann Elk \\
+\> Professor, Dept. of Zoology, University of Waterloo \\
+\> Andrea Anaconda \\
+\> Professor Emeritus, Dept. of Zoology, University of Waterloo \\
+\end{tabbing}
+  \bigskip
+  
+  \noindent
+  \begin{tabbing}
+Internal-External Member: \=  \kill % using longest text to define tab length
+Internal Member: \> Pamela Python \\
+\> Professor, Dept. of Zoology, University of Waterloo \\
+\end{tabbing}
+  \bigskip
+  
+  \noindent
+\begin{tabbing}
+Internal-External Member: \=  \kill % using longest text to define tab length
+Internal-External Member: \> Meta Meta \\
+\> Professor, Dept. of Philosophy, University of Waterloo \\
+\end{tabbing}
+  \bigskip
+  
+  \noindent
+\begin{tabbing}
+Internal-External Member: \=  \kill % using longest text to define tab length
+Other Member(s): \> Leeping Fang \\
+\> Professor, Dept. of Fine Art, University of Waterloo \\
+\end{tabbing}
+
+\cleardoublepage
+\end{comment}
+
+% D E C L A R A T I O N   P A G E
+% -------------------------------
+  % The following is a sample Declaration Page as provided by the GSO
+  % December 13th, 2006.  It is designed for an electronic thesis.
+ \addcontentsline{toc}{chapter}{Author's Declaration}
+ \begin{center}\textbf{Author's Declaration}\end{center}
+  
+ \noindent
+I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners.
+
+  \bigskip
+  
+  \noindent
+I understand that my thesis may be made electronically available to the public.
+
+\cleardoublepage
+\phantomsection    % allows hyperref to link to the correct page
+
+% A B S T R A C T
+% ---------------
+\addcontentsline{toc}{chapter}{Abstract}
+\begin{center}\textbf{Abstract}\end{center}
+
+Enumerated type ...
+
+\cleardoublepage
+\phantomsection    % allows hyperref to link to the correct page
+
+% A C K N O W L E D G E M E N T S
+% -------------------------------
+\addcontentsline{toc}{chapter}{Acknowledgements}
+\begin{center}\textbf{Acknowledgements}\end{center}
+
+I would like to thank all the little people who made this thesis possible.
+
+Finally, a special thank you to Huawei Canada for funding this work.
+
+\cleardoublepage
+\phantomsection    % allows hyperref to link to the correct page
+
+\begin{comment}
+% D E D I C A T I O N
+% -------------------
+\addcontentsline{toc}{chapter}{Dedication}
+\begin{center}\textbf{Dedication}\end{center}
+
+This is dedicated to the one I love.
+\cleardoublepage
+\end{comment}
+
+% T A B L E   O F   C O N T E N T S
+% ---------------------------------
+\renewcommand\contentsname{Table of Contents}
+\tableofcontents
+\cleardoublepage
+\phantomsection    % allows hyperref to link to the correct page
+
+% L I S T   O F   F I G U R E S
+% -----------------------------
+\addcontentsline{toc}{chapter}{List of Figures}
+\listoffigures
+\cleardoublepage
+\phantomsection		% allows hyperref to link to the correct page
+
+% L I S T   O F   T A B L E S
+% ---------------------------
+\addcontentsline{toc}{chapter}{List of Tables}
+\listoftables
+\cleardoublepage
+\phantomsection		% allows hyperref to link to the correct page
+
+% L I S T   O F   A B B R E V I A T I O N S
+% ---------------------------
+\renewcommand*{\abbreviationsname}{List of Abbreviations}
+\printglossary[type=abbreviations]
+\cleardoublepage
+\phantomsection		% allows hyperref to link to the correct page
+
+\begin{comment}
+% L I S T   O F   S Y M B O L S
+% ---------------------------
+\printglossary[type=symbols]
+\cleardoublepage
+\phantomsection		% allows hyperref to link to the correct page
+\end{comment}
+
+% Change page numbering back to Arabic numerals
+\pagenumbering{arabic}
Index: doc/theses/jiada_liang_MMath/uw-ethesis.bib
===================================================================
--- doc/theses/jiada_liang_MMath/uw-ethesis.bib	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/uw-ethesis.bib	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,3 @@
+% Bibliography of key references for "LaTeX for Thesis and Large Documents"
+% For use with BibTeX
+
Index: doc/theses/jiada_liang_MMath/uw-ethesis.tex
===================================================================
--- doc/theses/jiada_liang_MMath/uw-ethesis.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
+++ doc/theses/jiada_liang_MMath/uw-ethesis.tex	(revision 18ebc28cba8a18b2ff7556a15e02215d055efd9e)
@@ -0,0 +1,265 @@
+%======================================================================
+% University of Waterloo Thesis Template for LaTeX 
+% Last Updated August 2022
+% by IST Client Services, 
+% University of Waterloo, 200 University Ave. W., Waterloo, Ontario, Canada
+% FOR ASSISTANCE, please send mail to helpdesk@uwaterloo.ca
+
+% DISCLAIMER
+% To the best of our knowledge, this template satisfies the current uWaterloo thesis requirements.
+% However, it is your responsibility to assure that you have met all requirements of the University and your particular department.
+
+% Many thanks for the feedback from many graduates who assisted the development of this template.
+% Also note that there are explanatory comments and tips throughout this template.
+%======================================================================
+% Some important notes on using this template and making it your own...
+
+% The University of Waterloo has required electronic thesis submission since October 2006. 
+% See the uWaterloo thesis regulations at
+% https://uwaterloo.ca/graduate-studies/thesis.
+% This thesis template is geared towards generating a PDF version optimized for viewing on an electronic display, including hyperlinks within the PDF.
+
+% DON'T FORGET TO ADD YOUR OWN NAME AND TITLE in the "hyperref" package configuration below. 
+% Search for: PDFTITLE, PDFAUTHOR, PDFSUBJECT, and PDFKEYWORDS.
+% THIS INFORMATION GETS EMBEDDED IN THE FINAL PDF DOCUMENT.
+% You can view the information if you view properties of the PDF document.
+
+% Many faculties/departments also require one or more printed copies. 
+% This template attempts to satisfy both types of output. 
+% See additional notes below.
+% It is based on the standard "book" document class which provides all necessary sectioning structures and allows multi-part theses.
+
+% If you are using this template in Overleaf (cloud-based collaboration service), then it is automatically processed and previewed for you as you edit.
+
+% For people who prefer to install their own LaTeX distributions on their own computers, and process the source files manually, the following notes provide the sequence of tasks:
+ 
+% E.g. to process a thesis called "mythesis.tex" based on this template, run:
+
+% pdflatex mythesis	-- first pass of the pdflatex processor
+% bibtex mythesis	-- generates bibliography from .bib data file(s)
+% makeindex         -- should be run only if an index is used 
+% pdflatex mythesis	-- fixes numbering in cross-references, bibliographic references, glossaries, index, etc.
+% pdflatex mythesis	-- it takes a couple of passes to completely process all cross-references
+
+% If you use the recommended LaTeX editor, Texmaker, you would open the mythesis.tex file, then click the PDFLaTeX button. Then run BibTeX (under the Tools menu).
+% Then click the PDFLaTeX button two more times. 
+% If you have an index as well,you'll need to run MakeIndex from the Tools menu as well, before running pdflatex
+% the last two times.
+
+% N.B. The "pdftex" program allows graphics in the following formats to be included with the "\includegraphics" command: PNG, PDF, JPEG, TIFF
+% Tip: Generate your figures and photos in the size you want them to appear in your thesis, rather than scaling them with \includegraphics options.
+% Tip: Any drawings you do should be in scalable vector graphic formats: SVG, PNG, WMF, EPS and then converted to PNG or PDF, so they are scalable in the final PDF as well.
+% Tip: Photographs should be cropped and compressed so as not to be too large.
+
+% To create a PDF output that is optimized for double-sided printing: 
+% 1) comment-out the \documentclass statement in the preamble below, and un-comment the second \documentclass line.
+% 2) change the value assigned below to the boolean variable "PrintVersion" from " false" to "true".
+
+%======================================================================
+%   D O C U M E N T   P R E A M B L E
+% Specify the document class, default style attributes, and page dimensions, etc.
+% For hyperlinked PDF, suitable for viewing on a computer, use this:
+\documentclass[letterpaper,12pt,titlepage,oneside,final]{book}
+\usepackage[T1]{fontenc}	% Latin-1 => 256-bit characters, => | not dash, <> not Spanish question marks
+ 
+% For PDF, suitable for double-sided printing, change the PrintVersion variable below to "true" and use this \documentclass line instead of the one above:
+%\documentclass[letterpaper,12pt,titlepage,openright,twoside,final]{book}
+
+% Some LaTeX commands I define for my own nomenclature.
+% If you have to, it's easier to make changes to nomenclature once here than in a million places throughout your thesis!
+\newcommand{\package}[1]{\textbf{#1}} % package names in bold text
+\newcommand{\cmmd}[1]{\textbackslash\texttt{#1}} % command name in tt font 
+\newcommand{\href}[1]{#1} % does nothing, but defines the command so the print-optimized version will ignore \href tags (redefined by hyperref pkg).
+%\newcommand{\texorpdfstring}[2]{#1} % does nothing, but defines the command
+% Anything defined here may be redefined by packages added below...
+
+% This package allows if-then-else control structures.
+\usepackage{ifthen}
+\newboolean{PrintVersion}
+\setboolean{PrintVersion}{false}
+% CHANGE THIS VALUE TO "true" as necessary, to improve printed results for hard copies by overriding some options of the hyperref package, called below.
+
+%\usepackage{nomencl} % For a nomenclature (optional; available from ctan.org)
+\usepackage{amsmath,amssymb,amstext} % Lots of math symbols and environments
+\usepackage{fullpage,times,comment}
+\usepackage{xcolor}
+\usepackage{epic,eepic}
+\usepackage{graphicx}
+\usepackage{tabularx}
+\usepackage[labelformat=simple,aboveskip=0pt,farskip=0pt,font=normalsize]{subfig}
+\renewcommand\thesubfigure{(\alph{subfigure})}
+% cfa macros used in the document
+\input{common}
+%\usepackageinput{common}
+\CFAStyle						% CFA code-style
+\lstset{language=CFA}					% default language
+\lstset{basicstyle=\linespread{0.9}\sf}			% CFA typewriter font
+\newcommand{\newtermFont}{\emph}
+\newcommand{\Newterm}[1]{\newtermFont{#1}}
+%\renewcommand{\newterm}[1]{\newtermFont{#1}}
+\newcommand{\uC}{$\mu$\CC}
+\newcommand{\PAB}[1]{{\color{red}PAB: #1}}
+
+% Hyperlinks make it very easy to navigate an electronic document.
+% In addition, this is where you should specify the thesis title and author as they appear in the properties of the PDF document.
+% Use the "hyperref" package 
+% N.B. HYPERREF MUST BE THE LAST PACKAGE LOADED; ADD ADDITIONAL PKGS ABOVE
+\usepackage{url}
+\usepackage[dvips,pagebackref=true]{hyperref} % with basic options
+%\usepackage[pdftex,pagebackref=true]{hyperref}
+		% N.B. pagebackref=true provides links back from the References to the body text. This can cause trouble for printing.
+\hypersetup{
+    plainpages=false,       % needed if Roman numbers in frontpages
+    unicode=false,          % non-Latin characters in Acrobat's bookmarks
+    pdftoolbar=true,        % show Acrobat's toolbar?
+    pdfmenubar=true,        % show Acrobat's menu?
+    pdffitwindow=false,     % window fit to page when opened
+    pdfstartview={FitH},    % fits the width of the page to the window
+    pdftitle={Type Resolution in \CFA}, % title: CHANGE THIS TEXT!
+    pdfauthor={Jiada Liang},    % author: CHANGE THIS TEXT! and uncomment this line
+    pdfsubject={Cforall},  % subject: CHANGE THIS TEXT! and uncomment this line
+    pdfkeywords={Cforall} {enumerated types} {C language}, % optional list of keywords
+    pdfnewwindow=true,      % links in new window
+    colorlinks=true,        % false: boxed links; true: colored links
+    linkcolor=blue,         % color of internal links
+    citecolor=blue,         % color of links to bibliography
+    filecolor=magenta,      % color of file links
+    urlcolor=blue,          % color of external links
+    breaklinks=true
+}
+\ifthenelse{\boolean{PrintVersion}}{   % for improved print quality, change some hyperref options
+\hypersetup{	% override some previously defined hyperref options
+%    colorlinks,%
+    citecolor=black,%
+    filecolor=black,%
+    linkcolor=black,%
+    urlcolor=black}
+}{} % end of ifthenelse (no else)
+
+\usepackage{breakurl}
+\urlstyle{sf}
+
+\usepackage[automake,toc,abbreviations]{glossaries-extra} % Exception to the rule of hyperref being the last add-on package
+\renewcommand*{\glstextformat}[1]{\textcolor{black}{#1}}
+% If glossaries-extra is not in your LaTeX distribution, get it from CTAN (http://ctan.org/pkg/glossaries-extra), 
+% although it's supposed to be in both the TeX Live and MikTeX distributions. There are also documentation and 
+% installation instructions there.
+
+% Setting up the page margins...
+%\setlength{\textheight}{9in}
+%\setlength{\topmargin}{-0.45in}
+%\setlength{\headsep}{0.25in}
+% uWaterloo thesis requirements specify a minimum of 1 inch (72pt) margin at the
+% top, bottom, and outside page edges and a 1.125 in. (81pt) gutter margin (on binding side). 
+% While this is not an issue for electronic viewing, a PDF may be printed, and so we have the same page layout for both printed and electronic versions, we leave the gutter margin in.
+% Set margins to minimum permitted by uWaterloo thesis regulations:
+\setlength{\marginparwidth}{0pt} % width of margin notes
+% N.B. If margin notes are used, you must adjust \textwidth, \marginparwidth
+% and \marginparsep so that the space left between the margin notes and page
+% edge is less than 15 mm (0.6 in.)
+\setlength{\marginparsep}{0pt} % width of space between body text and margin notes
+\setlength{\evensidemargin}{0.125in} % Adds 1/8 in. to binding side of all 
+% even-numbered pages when the "twoside" printing option is selected
+\setlength{\oddsidemargin}{0.125in} % Adds 1/8 in. to the left of all pages when "oneside" printing is selected, and to the left of all odd-numbered pages when "twoside" printing is selected
+\setlength{\textwidth}{6.375in} % assuming US letter paper (8.5 in. x 11 in.) and side margins as above
+\raggedbottom
+
+% The following statement specifies the amount of space between paragraphs. Other reasonable specifications are \bigskipamount and \smallskipamount.
+\setlength{\parskip}{\medskipamount}
+
+% The following statement controls the line spacing.  
+% The default spacing corresponds to good typographic conventions and only slight changes (e.g., perhaps "1.2"), if any, should be made.
+\renewcommand{\baselinestretch}{1} % this is the default line space setting
+
+% By default, each chapter will start on a recto (right-hand side) page.
+% We also force each section of the front pages to start on a recto page by inserting \cleardoublepage commands.
+% In many cases, this will require that the verso (left-hand) page be blank, and while it should be counted, a page number should not be printed.
+% The following statements ensure a page number is not printed on an otherwise blank verso page.
+\let\origdoublepage\cleardoublepage
+\newcommand{\clearemptydoublepage}{%
+  \clearpage{\pagestyle{empty}\origdoublepage}}
+\let\cleardoublepage\clearemptydoublepage
+
+% Define Glossary terms (This is properly done here, in the preamble and could also be \input{} from a separate file...)
+\usepackage[automake,toc,abbreviations]{glossaries-extra} % Exception to the rule of hyperref being the last add-on package
+\renewcommand*{\glstextformat}[1]{\textcolor{black}{#1}}
+\input{glossary}
+\makeglossaries
+
+%======================================================================
+%   L O G I C A L    D O C U M E N T
+% The logical document contains the main content of your thesis.
+% Being a large document, it is a good idea to divide your thesis into several files, each one containing one chapter or other significant chunk of content, so you can easily shuffle things around later if desired.
+%======================================================================
+\begin{document}
+
+%----------------------------------------------------------------------
+% FRONT MATERIAL
+% title page,declaration, borrowers' page, abstract, acknowledgements,
+% dedication, table of contents, list of tables, list of figures, nomenclature, etc.
+%----------------------------------------------------------------------
+\input{uw-ethesis-frontpgs} 
+
+%----------------------------------------------------------------------
+% MAIN BODY
+% We suggest using a separate file for each chapter of your thesis.
+% Start each chapter file with the \chapter command.
+% Only use \documentclass or \begin{document} and \end{document} commands in this master document.
+% Tip: Putting each sentence on a new line is a way to simplify later editing.
+%----------------------------------------------------------------------
+
+\input{intro}
+\input{background}
+\input{content1}
+\input{content2}
+\input{performance}
+\input{conclusion}
+
+%----------------------------------------------------------------------
+% END MATERIAL
+% Bibliography, Appendices, Index, etc.
+%----------------------------------------------------------------------
+
+% Bibliography
+
+% The following statement selects the style to use for references.  
+% It controls the sort order of the entries in the bibliography and also the formatting for the in-text labels.
+\bibliographystyle{plain}
+% This specifies the location of the file containing the bibliographic information.  
+% It assumes you're using BibTeX to manage your references (if not, why not?).
+\cleardoublepage % This is needed if the "book" document class is used, to place the anchor in the correct page, because the bibliography will start on its own page.
+% Use \clearpage instead if the document class uses the "oneside" argument
+\phantomsection  % With hyperref package, enables hyperlinking from the table of contents to bibliography             
+% The following statement causes the title "References" to be used for the bibliography section:
+\renewcommand*{\bibname}{References}
+
+% Add the References to the Table of Contents
+\addcontentsline{toc}{chapter}{\textbf{References}}
+
+\bibliography{pl,uw-ethesis}
+% Tip: You can create multiple .bib files to organize your references. 
+% Just list them all in the \bibliogaphy command, separated by commas (no spaces).
+
+% The following statement causes the specified references to be added to the bibliography even if they were not cited in the text. 
+% The asterisk is a wildcard that causes all entries in the bibliographic database to be included (optional).
+% \nocite{*}
+%----------------------------------------------------------------------
+
+% Appendices
+
+% The \appendix statement indicates the beginning of the appendices.
+% \appendix
+% Add an un-numbered title page before the appendices and a line in the Table of Contents
+% \chapter*{APPENDICES}
+% \addcontentsline{toc}{chapter}{APPENDICES}
+% Appendices are just more chapters, with different labeling (letters instead of numbers).
+% \input{appendix-matlab_plots.tex}
+
+% GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package)
+% -----------------------------
+\printglossary
+\cleardoublepage
+\phantomsection		% allows hyperref to link to the correct page
+
+%----------------------------------------------------------------------
+\end{document} % end of logical document
