summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vu-cs-standard-thesis/0_frontmatter/Icon♪0
-rw-r--r--vu-cs-standard-thesis/0_frontmatter/abstract.tex27
-rw-r--r--vu-cs-standard-thesis/0_frontmatter/acknowledgement.tex13
-rw-r--r--vu-cs-standard-thesis/0_frontmatter/dedication.tex9
-rw-r--r--vu-cs-standard-thesis/0_frontmatter/figures/Icon♪0
-rw-r--r--vu-cs-standard-thesis/0_frontmatter/figures/uva_logo.jpgbin0 -> 23359 bytes
-rw-r--r--vu-cs-standard-thesis/0_frontmatter/figures/vu-griffioen.pdf1004
-rw-r--r--vu-cs-standard-thesis/0_frontmatter/glossary.tex21
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/CUEDbiblio.bst1141
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/CUEDthesisPSnPDF.texshop1
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/Icon♪0
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/PhDbiblio-bold.bst1141
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/PhDbiblio-case.bst1132
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/PhDbiblio-url.bst1447
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/PhDbiblio-url2.bst1448
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/PhDthesisPSnPDF.cls409
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/elsarticle-num.bst1507
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/jmb.bst1533
-rw-r--r--vu-cs-standard-thesis/Latex/Classes/urlbst676
-rw-r--r--vu-cs-standard-thesis/Latex/Icon♪0
-rw-r--r--vu-cs-standard-thesis/Latex/Macros/Icon♪0
-rw-r--r--vu-cs-standard-thesis/Latex/Macros/MacroFile1.tex73
-rw-r--r--vu-cs-standard-thesis/Latex/StyleFiles/Icon♪0
-rw-r--r--vu-cs-standard-thesis/Latex/StyleFiles/watermark.sty87
-rw-r--r--vu-cs-standard-thesis/Latex/latex_intro.pdfbin0 -> 2171118 bytes
-rw-r--r--vu-cs-standard-thesis/booktabs.sty182
-rw-r--r--vu-cs-standard-thesis/caption.sty693
-rw-r--r--vu-cs-standard-thesis/fancyhdr.sty485
-rw-r--r--vu-cs-standard-thesis/footmisc.sty866
-rw-r--r--vu-cs-standard-thesis/listings.sty2237
-rw-r--r--vu-cs-standard-thesis/natbib.sty724
-rw-r--r--vu-cs-standard-thesis/nomencl.sty192
-rw-r--r--vu-cs-standard-thesis/references.bib7
-rw-r--r--vu-cs-standard-thesis/rotating.sty199
-rw-r--r--vu-cs-standard-thesis/sections/appendix.tex16
-rw-r--r--vu-cs-standard-thesis/sections/background.tex10
-rw-r--r--vu-cs-standard-thesis/sections/conclusion.tex11
-rw-r--r--vu-cs-standard-thesis/sections/design.tex11
-rw-r--r--vu-cs-standard-thesis/sections/discussion.tex10
-rw-r--r--vu-cs-standard-thesis/sections/evaluation.tex13
-rw-r--r--vu-cs-standard-thesis/sections/implementation.tex13
-rw-r--r--vu-cs-standard-thesis/sections/intro.tex12
-rw-r--r--vu-cs-standard-thesis/sections/overview.tex13
-rw-r--r--vu-cs-standard-thesis/sections/related.tex10
-rw-r--r--vu-cs-standard-thesis/sections/threats.tex9
-rw-r--r--vu-cs-standard-thesis/setspace.sty546
-rw-r--r--vu-cs-standard-thesis/subfigure.sty218
-rw-r--r--vu-cs-standard-thesis/thesis.tex293
-rw-r--r--vu-cs-standard-thesis/tocbibind.sty328
-rw-r--r--vu-cs-standard-thesis/vmargin.sty576
50 files changed, 19343 insertions, 0 deletions
diff --git a/vu-cs-standard-thesis/0_frontmatter/Icon♪ b/vu-cs-standard-thesis/0_frontmatter/Icon♪
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vu-cs-standard-thesis/0_frontmatter/Icon♪
diff --git a/vu-cs-standard-thesis/0_frontmatter/abstract.tex b/vu-cs-standard-thesis/0_frontmatter/abstract.tex
new file mode 100644
index 0000000..63e5e13
--- /dev/null
+++ b/vu-cs-standard-thesis/0_frontmatter/abstract.tex
@@ -0,0 +1,27 @@
+
+% Thesis Abstract -----------------------------------------------------
+
+
+%\begin{abstractslong} %uncommenting this line, gives a different abstract heading
+\begin{abstracts} %this creates the heading for the abstract page
+
+\noindent \textit{Context}.
+\todo{at the end}
+
+\noindent \textit{Goal}.
+\todo{at the end}
+
+\noindent \textit{Method}.
+\todo{at the end}
+
+\noindent \textit{Results}.
+\todo{at the end}
+
+\noindent \textit{Conclusions}.
+\todo{at the end}
+
+\end{abstracts}
+%\end{abstractlongs}
+
+
+% ----------------------------------------------------------------------
diff --git a/vu-cs-standard-thesis/0_frontmatter/acknowledgement.tex b/vu-cs-standard-thesis/0_frontmatter/acknowledgement.tex
new file mode 100644
index 0000000..4efb21e
--- /dev/null
+++ b/vu-cs-standard-thesis/0_frontmatter/acknowledgement.tex
@@ -0,0 +1,13 @@
+% Thesis Acknowledgements ------------------------------------------------
+
+
+%\begin{acknowledgementslong} %uncommenting this line, gives a different acknowledgements heading
+%\begin{acknowledgements} %this creates the heading for the acknowlegments
+
+
+%\end{acknowledgements}
+%\end{acknowledgmentslong}
+
+% ------------------------------------------------------------------------
+
+
diff --git a/vu-cs-standard-thesis/0_frontmatter/dedication.tex b/vu-cs-standard-thesis/0_frontmatter/dedication.tex
new file mode 100644
index 0000000..9bc75a8
--- /dev/null
+++ b/vu-cs-standard-thesis/0_frontmatter/dedication.tex
@@ -0,0 +1,9 @@
+% Thesis Dedication ---------------------------------------------------
+
+%\begin{dedication} %this creates the heading for the dedication page
+
+%To ...
+
+%\end{dedication}
+
+% ---------------------------------------------------------------------- \ No newline at end of file
diff --git a/vu-cs-standard-thesis/0_frontmatter/figures/Icon♪ b/vu-cs-standard-thesis/0_frontmatter/figures/Icon♪
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vu-cs-standard-thesis/0_frontmatter/figures/Icon♪
diff --git a/vu-cs-standard-thesis/0_frontmatter/figures/uva_logo.jpg b/vu-cs-standard-thesis/0_frontmatter/figures/uva_logo.jpg
new file mode 100644
index 0000000..63d1731
--- /dev/null
+++ b/vu-cs-standard-thesis/0_frontmatter/figures/uva_logo.jpg
Binary files differ
diff --git a/vu-cs-standard-thesis/0_frontmatter/figures/vu-griffioen.pdf b/vu-cs-standard-thesis/0_frontmatter/figures/vu-griffioen.pdf
new file mode 100644
index 0000000..61d384e
--- /dev/null
+++ b/vu-cs-standard-thesis/0_frontmatter/figures/vu-griffioen.pdf
@@ -0,0 +1,1004 @@
+%PDF-1.3 %
+1 0 obj <</Metadata 2 0 R/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <</Length 36517/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">VUlogo_NL_Wit_FC</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">
+ <xmp:MetadataDate>2011-01-12T18:22:35+01:00</xmp:MetadataDate>
+ <xmp:ModifyDate>2011-01-12T18:22:35+01:00</xmp:ModifyDate>
+ <xmp:CreateDate>2011-01-12T18:22:35+01:00</xmp:CreateDate>
+ <xmp:CreatorTool>Adobe Illustrator CS5</xmp:CreatorTool>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>76</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgATAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FUDpmuaPqjXC6dew3bWr+ncCFw/Bj0Bp8ssyYZwriBFtWLPDJfCQa50jsrbXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8V/Oj&#xA;8ypvWl8r6PNxRQU1W4Q7knrApHQD9v8A4Hxr0HZWgFeJMe79f6nle2+0zZwwP9b9X6/l3pr+Qr2S&#xA;6Zf29naOQhia71RzRZpmBPoolNlhXvy3rWgrlPbIPECT7h5d/wAXJ9nzHgkIjuuXee74fjm9VzSv&#xA;QuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvlrz7/AM5F/mt5U846t5fkg00iwuGS&#xA;F2t5eTwt8cLmko3aNlOBXs/5J/mNP598kx6reiJNVt55LbUI4QVQOp5oVVixAaN179a4VZ9iqXeZ&#xA;NctNB8v6jrV3/vPp1vLcyDoWEaluI92IoMVeD/kv+eX5lefPPMGj3cGnx6XFFLc6hJDBIrrEg4qF&#xA;ZpWALSug3HTFU2/P786vN/kHzDpun6HHZvBd2n1iU3UTyNz9Vk2Kum1FxVMf+cevza80fmD+n/07&#xA;Hap+jPqn1b6rG8dfrHr8+XJ5K/3S0xV7Firxj/nIP83/ADV+X91okWhR2rrqKXDT/Wo3kIMRjC8e&#xA;Lx0+2a4qnP5BfmR5g8++WdQ1PW0t0uLW9NtGLVGjXgIkfcMz71c98VZf588yDy75Vv8AVFI+sInp&#xA;2oNDWaQ8E2PXiTyPsMytHg8XKI9OvucPX6nwcMp9envfLOph0uDHIxe4X4rqRiSxmf4n5E91J4n3&#xA;Fc7GHLyfPsoqW/Pr730d+Ten6lZeRbQXxH+kO09rEFVSkDgcAeIFSxBep3+LOV7UnGWY8PTY+97j&#xA;sXHOOnHF13Hu/G/xZrJJHFG0kjBI0BZ3YgKANyST0zXgXydoTW5eXeb/AM9tI09ntPL8Q1O6FQbp&#xA;qrbKfalGk+ig8Dm403Y8pb5PSO7r+x0Gs7fhDbH6j39P2/jd5e/5n+cbnV4dRu7+SdoHEkNoJGgt&#xA;uSmqh44THyX5nfuc3A7PxCJiBV9eZ+10B7VzmYmZXXTkPkKe3eQ9V/MHVzHqWsjTY9HnjYxJaEyS&#xA;s1aLxZXkj4ihr8ROc9rMeCHphxcfm9XoM2pyerJwcB7uf3kJr571fWdH8tXOq6Skcs9kUlmhlUsG&#xA;gDUkpQrQhTyr7ZTo8UMmQRlyP3uRr808WIzhuY/d1SLzD5+vljvrnQ/SkstP0mPUZZZFLVlumBt4&#xA;9mFP3YZj9GZODRR2E+cp18uf2uJqO0Jeo46MY4+L4n6fs3S/RfzE8xXei+Y7xjaXkelWa3FpqFvF&#xA;KkRnaMu0Lq7HkU2rxP68ty6HHGcBuOI0Qe7vacHaOWUMkvTIQjYIBq6uvgm5846t+kfKtvxi9PWt&#xA;Omu7v4TUSR2yyrw+LYcj3rlH5WPDkP8AMkAPnTeNbPiwjb95Ek/6W9lD8t/N2s+ZEiubzUrJyY3e&#xA;402C3kSaOjlFJkaRlp3+z3yWv0sMWwjL33sx7M1s84uUo+cQNxv32z3NY7h2KuxV2KuxV2KuxV2K&#xA;uxV2Kvl7/nL7yh6Oo6R5tgSkd0h0+9YbfvY6yQk+JZOY/wBjgVJf+cTvOB0zzvc+XZ3pa67CTCpO&#xA;wurYGRfYco+Y9zTFX13hV4X/AM5aebv0b5Ks/LsD0uNcn5TqP+Wa1IdvlWUx/ccVUf8AnEfyiLHy&#xA;lf8AmaZKT6xP6Ns3/LvakqSPDlKXB/1RirCP+cwv+Uz0T/tnH/k++Aqnf/OGX/TYf9u7/saxCvpb&#xA;Cr5h/wCcyv8Ae/yr/wAYrz/iUOAqyX/nD7/lBNZ/7ajf9Q8WFU//AOcgNTEFtoNm6iSCS4kupoia&#xA;chbhVCn5iVhm77Fx2ZnrVfP+x5v2iy0IRqxd/L+14dSe5uRzastw9TJI1AWdqFmY+/UnOi2A9zym&#xA;8j5l9PaRqXlfyj5BsJmvlk0u3hAiuRUmeRiXb01O5LvyIXt8hnIZceTPnIr1E/J73Dkw6bTRPF6A&#xA;OfefL3vF/O35kal5plZbiR7LQ1YehpcLD1Jab8pW6fSagfsq1Cc3+k0McI23n3/qeX13actQdzWP&#xA;+aOvv/G3QHdiMYvdQmjs7C1LO20dtbIzyOaCtacnc7V32HagzOJERZPzdaBKZEYjfuA/B/Gz1D8t&#xA;vyq1hNShuvMOh27WBqzfXJCZBsePCBGK/apUSjNPru0YcJGOR4vL9f6nf9mdk5BMSywHD5/qH++e&#xA;4wwxQxJDCixxRgLHGgCqqjYAAbAZzpJJsvWRiAKHJZdW0F1azWtwgkgnRopYz0ZHBVgfmDhjIxII&#xA;5hE4CQIPIsO0r8sLXT/KGqeXVv3lfUyfUvnQc1UKqRpx5bhFTbfM/J2gZZY5K+no6zD2WIYJYuK+&#xA;Pr93ybk/LSJG1NLG/NraavYizvrURBkaZU4LcL8S8Wp1HffANffDxCzGVg307knswAy4ZcMZxoiu&#xA;v85Ss/KGuyeYtKluxDDpegWU1jZypIXluPUjEIkdOKiP4BUjkd8lPVQGOVXxTkCfLqwx6LJ4kDKh&#xA;DFEgb7nau7bZHeT/ACdrflyK2sjrxu9JtVdUsTaRxn4yWr6oZn2Zq5XqtVDLZ4Kket/obNDocmCo&#xA;+JxQHThA+3myzMF2bsVdirsVdirsVdirsVdirsVYb+cHk8ebfy71jSETneeibiw8frFv+8jA/wBf&#xA;jw+RxV8J6BrN5omt2GsWZ43Wn3EdzDvQFomDUNOxpQ+2BX6I6Jq1nrGj2WrWbc7S/gjuYG/yJVDC&#xA;vvvvhV8afn35huvOX5vXGnWFZ0spY9G06JTUNKr8XoOlWndh8qYFfYflXy/beXfLWmaHbGsOnW0d&#xA;uHpTmUUBnPu7VY4VfMf/ADmF/wApnon/AGzj/wAn3wFU7/5wy/6bD/t3f9jWIV9LYVfMP/OZX+9/&#xA;lX/jFef8ShwFWS/84ff8oJrP/bUb/qHiwqjf+cjI2E+gy/sMtyo+YMR/jnQdhnafw/S8t7SDeH+d&#xA;+hgGt+RdV0jRNP1m7nh+q6jCstsgLmSjKrBSoUgVDkjem29DQZtMWrjOZgAbiXS59BPFjjkJHDMW&#xA;O/8AH6kF5j8x3OsSW8K8otM0+MW+m2daiOJQBU0pykelXbufamTwYBCz/FLcn8fY16nUnIR/NiKi&#xA;O4fr7yk5BBodj3y9xWf/AJZ+VdZ8wSy2cOp32kWfp+rLJbxOIZQG48XkV41LmppUHbNbr9RDEATG&#xA;Mj583cdl6XJmJiJShHy5H42N3tPlH8vdI8s3E13b3F1eXs6enLcXUvMlag0CgKvVR1qffOf1Otnm&#xA;ABAAHc9To+zoYJGQMjI9SWUZhuwY7+YWv33l/wAoX+r2IQ3Vt6PpiUFk/eTpGagFf2XPfMrRYY5c&#xA;ojLkb+5wu0dRLDhlOPMV94CB8y+bNU03XNSsbdYjDaeX7nVoi6kt9Yhk4qCQR8FOo/HLcGmjOEZH&#xA;rkEfg06nWThklEVUcRn8QfuSfy1+Z97rEmgWkkUdvqNzcvb6vbspBC/V2miliBOyyAAivv8APL9R&#xA;2eMfGecQLj86IPucfSdqnLwCqkTUh/m2CPItaf8AmHr3PR7y+WAaVe6pdaXduiMrI4JW2IYsQKmv&#xA;KvhhnoYeoRviERIfpWHaOS4GVcEpyif97+1T1z8xtZt3juop7ey0i61SawtruWB7ikNsgV5uMbqX&#xA;5TBgKU2GHDoYHaiZiINXW56fJjqO05x9ViMDMxBIvYddj3teYvzC1TTE0QxavZNa6lDdTSanJZzK&#xA;h9H+7VYPULryPw9eu+ODQxnxXE3EjbiHXzpGp7SljGOpR4ZiR4uE9OW135Naj5+81w6R5bub1YtE&#xA;h1WN21DU3tnuY4ZK/uF4c14CVfi+Inr7HGGixGUwPXw8hdX3/JcnaGYQxmVYxO7lV13ddr/HJOI9&#xA;f8yX3mhdCsdQs1jXSob834t2nSWRn4OUUTJRGrVfiNPfKDhxxxcchL6yKuv0OR+ZyzzDHGUa8MSu&#xA;rvetvVyY/D5886t+X195ta5sy1tJ6KWYtXFT9Yji5GT1vBztxzJlo8PjjFR3635HycSPaGc6U57j&#xA;t04fMDnxJnced9Ui0e0v7HVbXVUu9WttNMq2UtqIxICZBxklYsaFaHp8+1Q0ceMxlExqBl9QP6G0&#xA;9oS4IyjKMxLII/SY138z7lePVvPD+dpPLH6Ush6dh+kPrf1F9/3oi9P0/rP+VWvL6MgceHwfE4Zf&#xA;VVcXl/VbRm1Hj+FxR+nivhPfX85nua127sVdirsVdir4P/PPyh/hb8zNXso04WV2/wBfsR0Ho3JL&#xA;8V9kk5oP9XAr2H8lPzaj0r8j9fN1KDfeU1f6mrmvJbsn6oprX/j4Zk9lphVgP/OMvlWTzF+Zy6vd&#xA;gywaKjX00jb8rhyUh5E9+TF/9jgV9m4VfJ//ADmED/jLQzTY6cQD8p3wFU5/5wyIr5wFdz+jtv8A&#xA;pKxCvpfCr5f/AOcyXQ6l5WQH41hu2I9i8QH6jgKsn/5w+/5QTWf+2o3/AFDxYVeifmh5R/xFZaSg&#xA;Qv8AV9RtxccftC2ncRTU+VVP0ZsOz9T4Rl5xPzHJ1Xauj8aMPKYv3HYvOvOsqeddbAubyy8v6RpM&#xA;Usdo11KvqyNyK0ESmp+KMA8KhNxUsCubXSD8vDYSnKXOv1/i/du6bXH81k3MccIXVnf5fDpy9+yX&#xA;aPpX5W/UE02XzDJFrNw6evqqQSCBVJo8EfqKhQNXeRgP+BJU25cmp4uIQ9I6Xv7/ANn6XHw4dHwC&#xA;Jyes85Ua92/3/osMo8oad5b8r63qkkvlzU3t7AUOtXSpcIiKTzlVRHFxWgryj5njvtvmJqZ5M0Ig&#xA;Tjcv4Rt8OZ+2t3P0ePFp8kycc6j/ABHf3nkPsvZ7Ejo6K6EMjAFWG4IO4IzQEPTgt4q7FUt8yaDZ&#xA;6/ol3pF4WW3u1CsyGjKVYOrD5MoOXYMxxTExzDRqdPHNjMJcikFt+XsrNqM2q6xNqN5e6dJpEU7R&#xA;RxelayVJARNmau/I5ky1o2EYiIEuL3lw4dnH1GczKUoGF0BUVVPy40ePW9E1mKR0vNGt1tiwApcL&#xA;HF6SGT/KUdx8uwwHXzMJQPKRv3b2yj2ZjE4TH1QFe/at1sv5cabL5Tu/LslzIYrq5e7W54r6kcjS&#xA;CQce21KfLEa6QyjJXIUsuzYSwnESaJu/jbd1+Xtu2laHY6ffSWD6C3O1uUjjdmkK0Z2VwUqxJY7d&#xA;TjHWninKQ4uPmsuzhwQjE8Ph8uSpL5FF9e2F3rWoyapJZRXUDiSKKNZY7tPTZWWIKBxHSgwDWcII&#xA;gOG67+iZaATlGWSRlw8XdvxCuiCb8vtXTy+mgW3mOZNMWOS3eOa2hnZoH6JyahBUEhSO3yGWDWw4&#xA;+MwHFz5kbtUuzp+EMUch4OW4B27ky0HyNp+i6rDf2s8jehp0elpE9CCkbh/UJ/mY/RlObWSyRMSO&#xA;cuJvwaCOOYkCdocCCT8tbFfJF15TF5L9XupfWa54rzB9ZZaAdOqUyw6+RzDLW4/VTUOzIjTnBZo9&#xA;fjatdeStR1CCCLV9dnvxbXlvfW5aC3i4tblqr+6VKh+e9elNsjHVxgSYQAuJHM9feznoZTA45mXD&#xA;ISGwHK+4JknlmBPN8nmX1mM8ll9QNvQcAvqCTnXrWq0yo6g+F4dbcVt40w8bxb34eH7bTnMdyXYq&#xA;7FXYq7FXz/8A85deUPrnlzTfNMCVm0uX6reMP+We4PwM3ssoAH+vir5YivLqK3nt4pWSC5Ci4iBI&#xA;Vwjcl5DvRtxgV9if84teUf0L+XI1WZON5r8xuSSKN9XirHAp9tmcf62FXseKvAf+ctvJV9qfl/TP&#xA;M1lEZf0M0kV+qCpFvPxKyn/JR0of9avQYq8Z/In80rf8v/NctxqEbyaNqUQt74RDk8ZVuUcyrUcu&#xA;BqCPAmm+BX1Sfz0/KUaf9fPma09GlfTBczdK/wBwF9Wv+xwq+T/zw/MqHz95zOoWSPHpNlCLTT1k&#xA;FHZFYs0rLvQuzfcBgV9Pf846eULzyz+WNnFfRNBe6nLJqM8LAhk9YKkYYHofSjQkdsKs68zwNP5c&#xA;1OJWKs1rLxIZk3CEgFkowBpQ07ZdpzWSJ8w0aqJOKQH80vmPTfLeq6zrOlRahILGPWzSyvZkPpMF&#xA;JjCxqgp1XiqbDp0BGdfkzxxwkY78HMPBYtNPJkiJenxORPLu2+4D3dFXzB5F1PTfMOqaRbo9w+np&#xA;9YiHE+pNbkqBIiivKgerU6UPhkcOrjPHGZ24tviy1GgnDLKAF8O/vH4P3vXvKGi3WveSorbTfMEq&#xA;aDeQ/V7qzmgEtxD8PGeCG4ZlonVV5I1B0OaPVZRjzXKHrBsG9j3Ej+x6XR4JZtOBDIfDkKIqyO8A&#xA;93QbF6TDFHDCkMY4xxqERfBVFAM1JNm3eAUKC/Al2KoTVtTttL0u71G5NILSJ5pPEhBWg9z0GTxY&#xA;zOQiOZa8uUY4GR5AW8+0T8wPMUvlrzJ+kxDHr+kWwvIRGo9P0p4RLGONTUodm+7Npm0WMZIcN8Ej&#xA;XyLptP2hlOLJx14kBfzFj9qV3f5t68vk6ynhWMeYUupIdVUx1SOKF1QtxrtyNxEAfGtMvj2ZDxSD&#xA;9FbfH+wuNk7YyDACK8QSPFtyA/tj9qe3fmnzC3nm40S41OLQY+SrpMU9p60d4jgfEJ2eMc+WwUf6&#xA;u5zGjp8fgiYjx/zt64fg5k9Xl/MHGZDH/NuNiXxsb/2c1TSbzz1debdU0OTXLf09JW2keUWIrMs6&#xA;8ytPV+CnStTgywwxxRnwn1X/ABcq+DLDk1Es08ZmPRw/w87379kn8seevMep+XL3V5NXja8tdPvb&#xA;t9NGnSIimBXWMi6Lek3xcWKj5djl2o0eOGQR4djKIvi7/Lm42l1+XJiMzIWIyPDwHpderl3NeXfz&#xA;F8y31pq8q3UGow2OhvqMl1HbtD9WvjGWW2arFZKcTuOtPamHPoccTEUY3Ph53ce9Gn7SyzEzYkI4&#xA;+K6qpfzfNHWXm7zjYWvlnVdTuLW/0vzDNBbzRJAYJreS5WqFCruHAoa/D298qnpsUjOMQYygCedg&#xA;03Q1meAxzkYyhkIHKiL+O6JsPzC1CXz/APo6b0h5evJbiw06UU5m6tFQuzNX7LOWRfHIz0URg4h9&#xA;YAJ9xZ4+0ZHU8Brw5Exj741f27BK7b80tZiTzLb3qI1/bsw8vRqgBlBuXs1BFfi4Sha+O+XS7Oge&#xA;Aj6T9Xy4vuaI9qzHiCQ9Q+jz9XD97NPy/wBbvtc8oadql+VN3crIZSg4rVZXQUHyXNfrcMceUxjy&#xA;H6nZ9naiWbBGcuZv7yGQ5iua7FXYq7FXYqlXmry5YeZfLmo6Df1FrqMDQO605IWHwutajkjUYe4x&#xA;V4n/ANCd+Vf+r/ff8i4f6YFe8aZp1ppmm2mm2aenaWUMdvbx/wAscShEG3gBhVE4qtliimieGZFk&#xA;ikUpJG4DKysKFWB2IIxV4f5z/wCcT/JusXUt5oF7LoE0p5NbBBcWoJNTwjLRulfZ6DsMVYb/ANCc&#xA;a16tD5ltvSr9v6tJyp/q86fjgpXoP5f/APOMXkvyxeRalqkz+YNRhPKL6xGsdqjDcMIAX5MP8tyP&#xA;auFXseKpV5l0W71nTHsLfUZNOSYMlw8SRuzxOpVk/eA8a16rQ5fp8oxy4iOJx9TgOWHCJGN86rkg&#xA;LvyTbz3Giql3JDpeiNDJbaaqRlDLbVEbmQr6gNDuK0NMsjqyBLb1Tvf3/Y0T0EZGG54MdVHzHI3z&#xA;U7byVdQ3V7qT61cT63cxJb22pyRQFreFG5FI4+HpfH+1Vd/nkpasECPCBAb1vufvRHQkSM+MnIRX&#xA;FQ2HkKrfqmvlzQoNC0iHToZHn9Mu8txJ9uSSRy7u3uWbKM+Y5JmR2cnTacYoCAN+ffaZ5S3uxV2K&#xA;pX5i0GDXdPXT7mRltDNFLcxKARKkTh/SavRWKitMuwZjjlxDnXy82jU6cZY8MvpsX51vSQX/AOVu&#xA;gy3Us+m00lLmymsLuC2jUJJHNuGI/mVqH3pmVDtGYFS9VSBFuHk7KxmRMfRcTE11Bde/lV5fuI9R&#xA;KSSw3WpxW0FxOOJotq8b/AtNjIYV5b4w7RmDHuiSfnf3WjJ2Tilxc7mAD8K++t0Rq3ke61fVLafU&#xA;tZmuNMtLwX0Gm+jAvGRCSiesF9QoK0p3HfIY9YIRIjECRFXZ+5nm0ByTBlMmMZcQjQ5++rpNLDy5&#xA;BZ+Y9U1xZmaXVEgSSEgcU+rrxBU9d8pnnMscYV9N/a5GPTCGWWS9519iQaX+XV9p+iPoKeYLh9Ge&#xA;3ubY2Zt7cClyrgn1AvqfC8nP7Xt0zJya6Mp8fAOOwbs9HExdmmGPw+M8FEVQ635X1tfJ+WdkBH9V&#xA;vpbZm0r9DX3FVK3MQg9FJHU/toNwfYDpiNeeov18Q8t7Sey49CR6OA/0hVb+YW2P5aCH9Hi91m5v&#xA;otHUfom3dIo4oJFWkcpVFHqMmxXkcZ6+7qIHF9XmjH2ZXDxTlIQ+kbUO4+dOk/KbyyNKsrazQWmp&#xA;WLwzRavGi/WGlhNebk/a5Hcj+mI7SycRJ3ib9PRT2Rh4IiPplGjxdbCIT8tdB+t2d5M0kt1YzXc8&#xA;D/CATdyNJRxQ19Nnqm4yJ186IHIgfZ+tn/JuPijI84mR/wBMb+zonHlfQIfL+g2mjwytPFaBgsrg&#xA;Bjzdn3A2/azH1GY5ZmZ2tydJphhxiANgfrtNcpch2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv/2Q==</xmpGImg:image>
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
+ xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#">
+ <xmpMM:InstanceID>uuid:41a47aa5-a1d4-f44d-ac80-eb30b96069bb</xmpMM:InstanceID>
+ <xmpMM:DocumentID>xmp.did:00945102202068118C14A1540B7FBEB3</xmpMM:DocumentID>
+ <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID>
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DerivedFrom rdf:parseType="Resource">
+ <stRef:instanceID>uuid:2812ac19-44ea-ea41-89c4-55b896f46a57</stRef:instanceID>
+ <stRef:documentID>xmp.did:FB7F11740720681188C6B5EE3D81CA80</stRef:documentID>
+ <stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID>
+ <stRef:renditionClass>proof:pdf</stRef:renditionClass>
+ </xmpMM:DerivedFrom>
+ <xmpMM:History>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:D27F11740720681191099C3B601C4548</stEvt:instanceID>
+ <stEvt:when>2008-04-17T14:19:15+05:30</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F97F1174072068118D4ED246B3ADB1C6</stEvt:instanceID>
+ <stEvt:when>2008-05-15T16:23:06-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FA7F1174072068118D4ED246B3ADB1C6</stEvt:instanceID>
+ <stEvt:when>2008-05-15T17:10:45-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:EF7F117407206811A46CA4519D24356B</stEvt:instanceID>
+ <stEvt:when>2008-05-15T22:53:33-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F07F117407206811A46CA4519D24356B</stEvt:instanceID>
+ <stEvt:when>2008-05-15T23:07:07-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F77F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
+ <stEvt:when>2008-05-16T10:35:43-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F97F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
+ <stEvt:when>2008-05-16T10:40:59-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/vnd.adobe.illustrator to &lt;unknown&gt;</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FA7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
+ <stEvt:when>2008-05-16T11:26:55-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FB7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
+ <stEvt:when>2008-05-16T11:29:01-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FC7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
+ <stEvt:when>2008-05-16T11:29:20-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FD7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
+ <stEvt:when>2008-05-16T11:30:54-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FE7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
+ <stEvt:when>2008-05-16T11:31:22-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:B233668C16206811BDDDFD38D0CF24DD</stEvt:instanceID>
+ <stEvt:when>2008-05-16T12:23:46-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:B333668C16206811BDDDFD38D0CF24DD</stEvt:instanceID>
+ <stEvt:when>2008-05-16T13:27:54-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:B433668C16206811BDDDFD38D0CF24DD</stEvt:instanceID>
+ <stEvt:when>2008-05-16T13:46:13-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F77F11740720681197C1BF14D1759E83</stEvt:instanceID>
+ <stEvt:when>2008-05-16T15:47:57-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F87F11740720681197C1BF14D1759E83</stEvt:instanceID>
+ <stEvt:when>2008-05-16T15:51:06-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F97F11740720681197C1BF14D1759E83</stEvt:instanceID>
+ <stEvt:when>2008-05-16T15:52:22-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FA7F117407206811B628E3BF27C8C41B</stEvt:instanceID>
+ <stEvt:when>2008-05-22T13:28:01-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FF7F117407206811B628E3BF27C8C41B</stEvt:instanceID>
+ <stEvt:when>2008-05-22T16:23:53-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:07C3BD25102DDD1181B594070CEB88D9</stEvt:instanceID>
+ <stEvt:when>2008-05-28T16:45:26-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>converted</stEvt:action>
+ <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F87F1174072068119098B097FDA39BEF</stEvt:instanceID>
+ <stEvt:when>2008-06-02T13:25:25-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F77F117407206811BB1DBF8F242B6F84</stEvt:instanceID>
+ <stEvt:when>2008-06-09T14:58:36-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F97F117407206811ACAFB8DA80854E76</stEvt:instanceID>
+ <stEvt:when>2008-06-11T14:31:27-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:0180117407206811834383CD3A8D2303</stEvt:instanceID>
+ <stEvt:when>2008-06-11T22:37:35-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:F77F117407206811818C85DF6A1A75C3</stEvt:instanceID>
+ <stEvt:when>2008-06-27T14:40:42-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>
+ <rdf:Bag>
+ <rdf:li>/</rdf:li>
+ </rdf:Bag>
+ </stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:0680117407206811A12490AADA3FBECC</stEvt:instanceID>
+ <stEvt:when>2010-09-09T10:05:46+02:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:0780117407206811A12490AADA3FBECC</stEvt:instanceID>
+ <stEvt:when>2010-09-09T10:07:07+02:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:FB7F11740720681188C6B5EE3D81CA80</stEvt:instanceID>
+ <stEvt:when>2010-11-19T11:54:42+01:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS5</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:00945102202068118C14A1540B7FBEB3</stEvt:instanceID>
+ <stEvt:when>2011-01-12T18:22:31+01:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS5</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpMM:History>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/">
+ <illustrator:StartupProfile>Print</illustrator:StartupProfile>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/">
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>74.250076</stDim:w>
+ <stDim:h>22.056535</stDim:h>
+ <stDim:unit>Millimeters</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ <xmpG:Colorants>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>White</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>Black</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>100.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=100 M=30 Y=0 K=0</xmpG:swatchName>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:tint>100.000000</xmpG:tint>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:cyan>100.000000</xmpG:cyan>
+ <xmpG:magenta>30.000002</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpG:Colorants>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Producer>Adobe PDF library 9.90</pdf:Producer>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?> endstream endobj 3 0 obj <</Count 1/Kids[5 0 R]/Type/Pages>> endobj 5 0 obj <</ArtBox[0.0 0.0 210.473 62.5225]/BleedBox[0.0 0.0 210.473 62.5225]/Contents 6 0 R/LastModified(D:20110112182235+01'00')/MediaBox[0.0 0.0 210.473 62.5225]/Parent 3 0 R/PieceInfo<</Illustrator 7 0 R>>/Resources<</ExtGState<</GS0 8 0 R>>/Properties<</MC0<</Color[20224 32768 65535]/Dimmed false/Editable true/Preview true/Printed true/Title(Layer 1)/Visible true>>>>>>/Thumb 9 0 R/TrimBox[0.0 0.0 210.473 62.5225]/Type/Page>> endobj 6 0 obj <</Filter/FlateDecode/Length 5405>>stream
+HlW˪d ߯8?PSv0^xm 6 )CɗO_/\?\_rV65/?}îreez{)~]7︭[qVv~#v#Kn~fzO_u_޵h/ݣU[S޸j^{䁳LsYwvMŶ9kڼR6ץIPrlH];y{?| ] {!q-ck}^g݊x]PږbroxG~Eoku-m2"0aYi ܆]& Xq~`qX0tޯ~O +C76n_6JTr CLQ_-WBW 
+33E*]0
+%<QJ%Tև|D2$=Ůuc
+]djCδ(XKc|+v+NJ, =Rr?Yaۧ>" 8]Fn+^#OzW6AcL4SXjr#E^
+ĵXΟM<huiAN 04+lm֍f H: $hKAֲYxePIEjkUo9hft=Əhj` Dlg#⠕@ q~x׈B8M-
+x& toꎢY,0D_Dc :f?Q6x+zxéw"\_Ht&g̰kP8v`Ͻ[`9Cs7Vړ U>9O
+!\>5zhjL#sq:$p9$EL6H% Cj4*d˦&[]xs3uH}p沸}ewѻ&GU-m [bCh9:ԚǐvkD !D-FКZSQZ!DnuP !71>r{VY7,.G8c(kEq^m[lFDپNoZW)͎V?-)Ho״et)f2V@[{E
+45nĦ\X+'ʫ]IR8S_1sL==[k*H<K.R۝ʣ?Lh/!G("8F,yVhqzy9V.u
+50>2N"MkH5!p_Mưgpe8M[3]5qE25/E.B31.n]0@zQm MJ4GKa W)
+ߨ
+-U(1qb
+дM;v ]
+7G+ ȳ}dj=zJ^YMug}+bM^"nOww@#>tbEhݼ*
+Kbf?sQ] 0tRg~?`
+-+N_ ,ڱ%yE.|fh!4uUg~U`D:Mh  쇶ۡx.\!_*SVx.xq?\U.5ޓ QB' }}S+%IHKjN Qzvq`DQ/1XƇgtP,LYrCJXG9;x"w
+pO^EB@ &M*{ҷfRq )-&;§V~?
+K*[k]%Vy ȹS^Ns 7 8sytrImw`~!S"WU=
+Wɠ/{>JrHz+6lޏ
+MJ;ph&\봖FPT zǹ
+@T&{Nx2;m?ղ]ղЩ u\zۖCh8N=M_|v@(Sdܫb4nR
+N,]`;-8|y[;5 /U'7uGG&Gfd%޶t×]nI~O X%!CR
+u(aǛ&BdR"vY
+dILD4K1/`IMsQ<N)9YGD@tI.oeD()#S2b)#J^ݥ3ґҲl)?4) hc?DkNɇj2&so[rRI'z"IO$'2\e+D-& kDǽГ~艐`I;夝zb sQM9#F7TADAwez4zs&W`O1)1'ߏ9֯LKf)Gfm*[2,CQW!!Kz"WGSY8ze$52OjWġ1*#\WgKYiKH8[1fF±,"BFM
+8;U<*_%FIJ#QjDOHr31YoNr!n"SLbJE;$%LdL,i/TkG'*p=r<&%,(]+fk=0F3F3aE
+2"ck[*rG?EVoa$u)Y/(5]Mg[^osX**!0gt\OT~> endstream endobj 10 0 obj [/Indexed/DeviceRGB 255 11 0 R] endobj 11 0 obj <</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 8 0 obj <</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>> endobj 7 0 obj <</LastModified(D:20110112182235+01'00')/Private 12 0 R>> endobj 12 0 obj <</AIMetaData 13 0 R/AIPDFPrivateData1 14 0 R/AIPDFPrivateData10 15 0 R/AIPDFPrivateData2 16 0 R/AIPDFPrivateData3 17 0 R/AIPDFPrivateData4 18 0 R/AIPDFPrivateData5 19 0 R/AIPDFPrivateData6 20 0 R/AIPDFPrivateData7 21 0 R/AIPDFPrivateData8 22 0 R/AIPDFPrivateData9 23 0 R/ContainerVersion 9/CreatorVersion 15/NumBlock 10/RoundtripVersion 15>> endobj 13 0 obj <</Length 1039>>stream
+%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.0.0 %%For: (Rob Vonk) () %%Title: (VUlogo_NL_Wit_FC.ai) %%CreationDate: 12-01-11 18:22 %%Canvassize: 16383 %%BoundingBox: 306 271 518 334 %%HiResBoundingBox: 306.9697 271.2461 517.4424 333.7686 %%DocumentProcessColors: Cyan Magenta Black %AI5_FileFormat 11.0 %AI12_BuildNumber: 399 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 0.3 0 0 (C=100 M=30 Y=0 K=0) %%+ 1 1 1 1 ([Registration]) %AI3_Cropmarks: 306.9697 271.2461 517.4424 333.7686 %AI3_TemplateBox: 421.5 296.7813 421.5 296.7813 %AI3_TileBox: 16.2061 -3.49219 808.2061 608.5073 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 1 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: 268.7666 381.5146 5.7832 1355 712 18 1 0 43 174 0 0 0 1 1 1 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:0 0 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 14 0 obj <</Length 5470>>stream
+%%BoundingBox: 306 271 518 334 %%HiResBoundingBox: 306.9697 271.2461 517.4424 333.7686 %AI7_Thumbnail: 128 40 8 %%BeginData: 5320 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FDFCFFFDBCFF8485FD7DFF841414FD7CFF7E140DA9FD7BFFA9140E %3D5AFD7AFFA8140D140D14A9FD79FF610E140E14A9FD0CFFAFA9FD40FFA8 %FFA8A8A8FD0BFFA8FFA8FFFFFFA8A8A8FD09FFA8A8A8FD06FFAF0D140E14 %0DA9FD0AFF84360E85A9AFA9FFFFFFA9FFFFFFA9AF84FFFFFFA9FFA9FFA8 %A9A9FD29FF7DF827F827A8FD09FFA827F827A8FF7D27262727FD07FFA827 %F82752FD05FF5A1414140E1484FD08FFA914140E1414140E61FFFFFFAF14 %FF8461363614FF5A85A937A9145AA9FD29FF7D27F827F8A8FD09FF7DF827 %27FFFFA8F827F827A8FD06FFA8F827F87DFD04FFA81414140D1414FD07FF %A8140D140D140D1436A9A8FFFFFFA814A86084365A14A85A7EAF0EAF0EA9 %A8FD2AFF2727262752FD09FF5227F8A8FFFF7D27262727FD07FFA8272627 %52FD04FFAF14360E140E61FD06FF84140E1414140E140E85FD06FF5A3636 %FF361436FF3685AF37A91484FD2BFF7DF827F827A8FD07FFA827F827A8FF %FFA8F827F827A8FD06FFA8F827F87DFD04FF361414140D1414FD05FF1414 %14360E140E1436A9FD07FFAF0D60FF367E14845A84FF14AF0EA9A8FD2AFF %A827F827F8A8FD07FF7DF82752FFFFFF7D27F82727FD07FFA827F8277DFD %04FF3614140E140EA9FFFFFFAF1414143614140E141461FD09FF85A9FF84 %FF858584A95A36AF855A85FD2BFF2727F82727FD07FF2727F8A8FFFFFFA8 %F827F827A8FD07FFF827F87DFD04FF0E140D140D14A8FFFF850D1414140D %140D140E6084FD11FFA861A8FD2FFF7DF8272627A8FD05FFA827F827FD04 %FF7D27F82727FD07FFA827F8277DFFFFFFAF140EFD041485FFA90E141414 %0E14143D84FD46FFA827F827F87DFD05FF7DF82752FD04FFA8F827F827FD %08FFF827F87DFFFFFFAF0E140D140E145AAF0E140D140E140D3636360E14 %84FD44FF4B27F8274BFD05FF2727F8A8FD04FF7D27F82727FD07FFA827F8 %2752FFFFFFA9140E140E1414850E140E140E140E140E14148584FD09FF5A %FF84AF8585FF85AF858461FFFF7E855A85A9613685FF6136AF84855A6136 %855A6184AF5A85366160FD13FF7DF827F827A8FFFFFFA827F827A8FD04FF %A8F827F827A8FD06FFA8F827F87DFD04FF0D14148514140E140D140D140D %140D147EFD0BFFA814FF845A850DA936AF14850DAF845A1485A9A90E850E %A90DA9FF365AFF0E85A81484FF5A36FF1436FD14FFA827F827267DFFFFFF %7DF82752FD05FF7D27262727FD07FFA827262752FD04FF140E85FF611414 %0E1414140EFD0414AFFD0CFF14FF84858514143DA93DA9855A61A9611485 %A9141485FF6114FF3685FF14A9FF1437A9A936FF3685FD15FF5227F82727 %FFFFFF2727F8A8FD05FFA8F827F827A8FD06FFA8F827F87DFD04FF1414A9 %FF0D140E140E140D1436AFAFFD0DFFA914A9605A85845A0DFF14A9A81414 %FF1485FFA9146114FFFF36145A5AFF0EA9FF14A8FF5A36FF3636FD15FFA8 %F827F827A8FFA827F827FD06FF7D27F82727FD07FFA827F8277DFD04FF61 %14FF84140E1484A90E6184FD11FF5A3614FF84A9FF36A985A9FF1485FF61 %14618561FF3D846114A984A9FF3DA9FF14615A855AFF5A85FD15FFA827F8 %27F87DFF7DF82752FD06FFA8F827F827A8FD07FFF827F87DFD04FF848484 %1436A97EFFA9FF84365AFD11FFA8FFFFFFA9FFFFFFA9FD07FFA8FFFFFFA9 %FFA9FD05FFA9FFFFFFA8FD1CFF5227F82727FF272726A8FD06FFA127F827 %27FD07FFA827F8277DFD05FFA96136AF8461141484AF14855AFD4DFFA8F8 %27F8275227F827FD07FFA8F827F827A8FD06FFA8F827F87DFD05FFA93614 %0D140D140E145AFFFF6084FD4CFFA827F827F827F82752FD07FFA827F827 %F8A8FD06FF7D27F8277DFD05FF84140E140E140E140E365A8536FD10FF85 %A9FFA9A9FFFF84FF84858485848584855AA9A98584FFA9855AAFFFFF84FF %FFA984FFA985FD19FF5227F827F827F8A8FD08FF2727F82727FD05FFA827 %F827F8A8FD05FFA90D140D855A140D1484AF5AAFFD10FF0D5AFF360DFF5A %14841484A97E145AA90E85A86014365A850E850DAFFF1436FF3614FF360D %FD19FFA82627F8272627FD09FFA82627F827277DA8CA7D27F827267DFD06 %FFA9141414FFFF0E611414FD12FF846114FF6014843D14FF1485FFFF14FF %FF145AFF843614AF6061FF615AA93637FF850E851436FD19FFA827F827F8 %2752FD0AFF7DF827F827F827F827F827F827A8FD06FFA914FF1485FF5A36 %FF14A9FD11FF363614848536145A36FFFF0E61FF14A8FF0E85FF850E14A9 %8536FF366136360D8584360D6114FD1AFF5227F827F8A8FD0BFFA82727F8 %27F827F827F876A8FD06FFAF14AFAF36848514AF8437FD11FFA936FF6036 %5A8536A936AF84365AFF14AFFF1460A9368584365A145A368461AF851485 %85368436FD1BFF7DA87DA8A8FD0DFF7D7D5252275252A8FD08FF8485FFAF %84FF84A9FF8584FD11FFA8AFFFFF84A9A8FFFFA9A88584FFFFA9A9FF8485 %84A9A8FF84A97E85A9FFA8FFFFA9A8FFFFFF84FDFCFFFDFCFFFDFCFFFDFC %FFFD1AFFFF %%EndData endstream endobj 15 0 obj <</Filter[/FlateDecode]/Length 11724>>stream
+HWv@aHH(cHD28si}[39ӭjut8('b^&վ~fލ7V`xL2)F 6 b`[8r[dx8*y*rL$+T)x}:36%r8!<$vLWyDn(V\bԹV VA2IL=SƒOVұﴵH5Yi`'cGS3My԰I8$
+?@δ(C$ҍ$ď& 榄y[
+bhPpU"A༯=.@S!ANwOiM
+`Ѩ;:Ia<ԲY|pݎ?Q1󖘿?0fC`9Rn0 ]0c십OYw4M0x+&(H[ x!)_TR]-1*`,vsvq}[cRG}L|Kcn~5L]@
+8%|pVNw7ݸ([ h-@:/ogQsW=䪖A.৪P-2(bمpWL> CeMnjhH |b0/&/3^D$5włT¨.OO*{a䠙^{95$㩰M(s
+:m3hʘ8»!EM1!{Sa>\o1[}yyPУ
+)>(
+pJq|i&5 M1icc]Dv+䊾O
+rƢu&Miq7Ԅ]܍D3j";kceU6-]E}QAtǙ`@Jͨyw r}-!Vp1kd#K
+F:H4}I˵E-NqY]Y"E#l6=ChN*г9"l@L2dSo'綉=$Ƥibjȗ˗-Gy@EpOlsXӪeWҘrv<o?H×6.B<W֦<vCK=(
+uJ[rS^zl-<d6jgS׳wUd7tG#ڍ7
+}8Z_|Z'X:Ao+ n!M`?Gnx| 8
+܀6<*l,laFpH{
+0CncDt0`ƎR ]SӬ0& b=i~JEhb5FnꡑQpy3t*Gʗ)XKbLFKZN;*?&|CzqZ'c8WUߩeU
+qƯIFh{H!3I4eGjkvaEx!LAMa*xcbˌJ'FP`w
+u]yR̖T)Oe/^^7т@mM-ˎVBk#{R T\UL:#(;īRֿ#\V u*,EqU!yfP*
+QzYӾCj/;eKۣ/믦)3<d $T&HF;;QAS[O'pR'hc+: TA8a\+C
+S~
+OPS!
+@fy/{!t"X/Q!ˏ*
+BB<>BbE'8Fc0Nx"9p' s Qp/o|"'9}}fRRo8KiU1u \h
+$Af_wU, Wa4>G*=2x_W C)À~לpw\(8׫Y^3}?D2d>L_^̽DCfGX9}ݟr== UJ6^G
+r06R)D=)Mkk{VB{}%aϡ5 #l>SfkÌyb*G.5D'=l]͜X\MEO˦=% &pe#nUr?BϚMN_E-DrLIH?Rx7t8gܩLɧ챠C9-q*f>ۑIWT ${ gMMz1NQcrm|
+ h'!0ׁk=S0wZqzpwR Tǣ?zG|ZcoV J֏+KݍeͮtoYK*b\ckͧWmMގҫS @i
+Yz'ixElXeu>='*<?ηsD 8/asϱĵZ~V9 =Se^quPd+c9.}ΦW:J&Ua״Jtg!b_ye(m)R/?EbAv7ۂXfu0^3. o&O87<Nڿ{/1yq5ƥƅғN,jLN
+R/8CJ!FVa,M$BTRBH r
+,9! aT;TbD, CQH~QC\
+YQ{&xBdr(g(K˕L9ɔ Hx A&\(ޘD>` D
+vkoos\܇41Bkz A͵9@;S4^DBYnmS>5\kH9 {߅-^qB^0]=J
+e>D`Jq)1ZBĉD‹i@W1'ҽe;^M<5i| <to>eϣ'^|>uްaŌkjzz >#ؠcyhx5~3"zsiWPe Ws-[1rY}2#ޘ vEפ#dJzjR(gƦA~R{{c?\B5Im% r": uRȐ@(d_Hj7m'ŋW.U!gTV]Z.,PU&.A\aއeC}Z=KПpQE+`Ҽx!5ŦNQ2mirm>*U):|>oj;e`+}Ү;5j9;'nxp; U0jn#\:i!Lu !
+2'{JFdr4=֨u纡R+ {"Ԧv<m 5ոly`b<*$DfXA"L3a_.lt< @k:u?*w}TbijY wz:*WoWٺ&ode7
+} +
+Džj v"o=JxKQv
+4g>>i36X"de %E}FNгA*߱d׭!Ia9u<\krijs7#;7E7Ԝ+%-E`3>K=
+$Wc{SDOH{&r+ C 0W珺 T^so r^ޠC-*锫@1Kc*CL"3$-2>$7CHeF3 eslO4'LJuZc<kST$ֺEx6񯏍]aoY |\_A趰tCO\<P3ic:}6: 8Ra!jv'M$aG7.9Z_Ov{uaxߨhLKqt3%-fvX/)7~<+nTXpr(Oz%Ծ^8P]7a[ղdچ4b&g+ŶKO̙ȱy}tX=Q $#ܷPDn羶
+SOp<T`17IdVrZlԸ֝Tmt( *KU}BU%'q==4 m\ȞL{[F=t4H`+sj
+tƖ>`pIZJVB&=y V yT9zZk+C,A-GRjNvN*DġykmxSP8 VtU- yĿClÆtȪ1P[ xҒhtIu>0@rZ!`vu{#m)HbZ8x_"%QoNSKʆRJ,cY8C0GwCP^}9c4*&#I PyR 93<I` W@qj:VF꼸VJ]J^N6T KX'5*Q#
+Q<95@.-LkR{xE8N(oBۍՕSgY䔔^w2k'8 G+ϸ:54mBjjזp~mlOt8-loczWWۚtk/o(\>+Kmy߰mm ?o}O&S)-/vb߼gg'R+viGV]a'9IcW
+F3M#1eC]>Ѿ;,1=Q _[4xϮpjC}+NGNbD˵|;|~;~7fev1c )3B@h{I4r-r$/Q6HFH kE 3<?U 5/h)3\{zgzIDzPCMs!5J%
+z M!(ZX8Rdo/!|"NDbU
+W]̬564,z"4!JSzո]9Rqᴩ~Ժ
+$&2-t{ n6"ջ*~u rSZv#7b?el
+i/etڸ.Ը"=N]R0?lx#i;OQd '-;&`釽/z2 EncJc3A&ϢTQ6.6r٪1o \o=ԇd
+Uh+~Y ]VkΚ1")疷Rs+Z1[!"L ^r9dބ5u"6&qQiwoqԵTH,VN;ڀ|0c7r8JLc,)E lm4CX2*%ՒwSӾK5xЅd"b'Q3GB WX)S9ƞH)uhsҙKTgZ3MPvP*t6cuC֬ⱲGt;KtZ(/W lXN6Wd ˌiɒ`tJyb= 2
+jZKdCZ~7[mÃcQiTPMikAVWnj,*f+هwMnE\]C@S#O 椏b%ƥn֑nlƐ5 Es2v?ңݖo
+Hn:`S vMڍb`j-=$ˇۋS}H,(oɬ`X٪OorUwGàLzYT7]~?/<G꺚y=XM'AV([a?rsE;+fe_שhKrVi*TrC]3j7pʍփ8bL¼Quuy]]尚We%=ˮѓt]I9^d+ʹ~rʣiz[gonrBXzsYOOhW+<(Vr.[k2p8|g/dy8..|5"\>ne#"}qFV bk3cD vTТp#n&-N蛪̃czuخz}YlY5'4OwY}$v3ش+ roy^M^^V3FGJQa+*Q.bA[X0*Qg]K#ȅuq]'͓髺CGԄ~3_xj8`fY/+ٰZ(,[)zxKC_w{0&<>Et6c[tۛsEC)+ o?;Z.4 뻋b"k۪s:1m?=?}]Ok>nzf߳aj;˯ࣵu#"7n0?ZG,l_7<=le_Mv^Vռ3Yo}sq'oݕ+t`+g>nW߭Xy\rիj_|[}֜7> iōS'Kv{/?3({||O H^:]2[3z4Q~D5S3 #aqselk|c2E8=5 t;XθT;C\p,cU .`@$i;֟8f ܱ8ϙ.v'ɞy*@ޒO5@[f37ٹGNϧO*6-U4ô5r:bÉ'Mƃͺ] '!Zv")+քqb2V7*q{|&tw-.42 xtQK, v$υl5GcC}jrx bք7+mHl呞#<!̑N+c
+H"KI&Jw%&@@$ 0b)(VYIll,L܉ (
+1( Ml 7LOp⏰YmJZHsԄ17ăX
+G*REl
+t' 'AL:j9!6"'Hof[ek!55}MY++-{z&1P3U3ğ!2UU2*FibgВa<ߠC&(]yN]H#/M%?E7I(wtj{lwpz0Mk7rcLZe3鍏JjLa(8ߞݍl`$lbˍŧo&M>qIG 9q9{Ug"/W!ͯm:2[3z4Qd p !yA6Nɽ>) ߄l7ɝ3^8I/ȣ =/Xj{xơz{!{:d~16_헤iޝېjCCNu ?i›)<;'X1" $isR_  ;v~?@3'ka2$fxz
+kؽV*fJ9N9(DzarOV|S>oo] ]AmA@>..Ecdsfg(!/N5iDC&|9! ?H&1.,D@@:Տ\wg&b͎A!lDYYEcn f^L,˲cw`˔HɒΩCB1rCNF0Eˆ*^Mv*eINpy!QHB'd͋[Yb[na&m;Ghc:t'⏷K]Iz5~-YDDRg8 ܊Yս*fvZUjEQɊE>'b"^4^(UҰ B )t! a 
+D>pqj7IU/8lNq4dЃA&IϜT;#Cu'd|- =RO'FsU̦">F޳9TBZ֭?BN7L.ݨ|m7amЭ@ߎzFw-!şs{*ͺs9eoPkעgɷUrjJ2EމYJmgeϪM""蕔gvgΊ*ϣ*Z-2[ Dq$c١+inHbZ3Vt{ AZ-L7q\:Z+Q'8
+s@1)7 I‚_nv9Ch8A굤q@?.iNٚ- uB uƂlPUjQGecB([,% a,U5H8X8 8CIhFPUyӲPtD͝ao6?;4kHֲd./+H)( y]8Lu-)/٫ {U5yk$g,$att-!+-]+qr 6oJi* Z݅q(] HN\ V9?mmAc{rۯ}r/ˁ˲+eJD/&E" 56h7J#e`.wF괵[iøa8r;!-aT*}.^X.ܗ ߌB]Wy^nHv" c8ߐONX7G</6pfLEWf3; B(>H/C>|#QaJޗ?g9?,s_GkG䧚K֏K^)z@t>DIi"sJWDvsnR=j_k&3&Kgq lG=oT?ړh 'ԨKV Ŭ؎sTuKi{@7"% 9CfHN 08~!W
+Lě Yb-(I>GO= :e5ʫX(zu~ 9w
+oA@D@SEAQfQ; Y❖ .SQ*K2J+:LGxtl#!E>"촗FI7c\CJ7CN> O
+!dB*Ba)pJ94dA`;#oA)p
+n)p 1[$,ۈ#`pΕ9ҟ vl8/O
+<} BA "(}plX
+l73c `:g(Fǐ  ܔ˭1Wq>j[cƎ=}˝{72z8v@he;ѱg&7{Nݭ=f:_=7^El}vOa
+{FLLD0G,e2PR2gBBeJ=J_83cdcZ:o6 gw-$ gf譇9TE 
+Pv1~QKHk!>Z1,J>jQ5qa;,g:fQ5YPYNN훎*zPѹQMG盒7-ͽFlnvgz|5f[u!gsϩunʝ7pi.-8qH?܈=K0g!;ǠGO~;moq .g``+
+ʜ⟌*
+F.-QTW=GVy'CT
+7YAhvc@Q%'9Uj3* tQ¬R?
+ސf[:p{j_,"v%!ݗp8nO# .L)#c_ju(zhTԇ/A[k
+C[4Дu1oPwib2|h
+!:4dFyhXh5,4g.k)VL, E߂qF!zY) PU!h!r 4@Fgԩ'誃Z謆*讄A lz N5@g;k"(e p3j88 u p3Z8X a9 "3G*EH
+͠}7;w rxH5, gBTxJ}J}J}J}_a<GM
+$t- 6BaPL"@R'݈PҳӕlNvm`tuxl45't)&&qW:
+'Z qhGD>>11
+Y#61gHov^o{&'#['mKR8C0Eis AW R(g0?.o_~FncQ ;x ")d(JYEF/LsxIfgUeD{//k~E_*~$Gr~$7o(gK (IAQ2Bf3@vRT4 $ UHw HY4m;hCŠPaP$Q4ųI4ˠ.6@5*TFucQ3JvAfC(g(o2w(w( @4'7cC{0c0q0 0 BIà <lCp4gp8X [`벡X5j{2Ī -Ub7KQ=Uiz]!0+Ef>!!V
+32Jsg&0+%rH ?"cF3c˸̜Rsevz/EvQ]UOtb#T.sMQ~?=9A2$Us;E>#%=ci2$"D͔MCNX
+c: ā|O  i_C[\=`˅jYl1"l 2 =}61^:tCÌ5>='OKXB3>g.)c }\R5"7ibg;*gv54JpI: ^qi+<=tښc䯕'PrXǒ%K61fvt$MFW$xr\&buvQ}hS':AU֨D
+ I_<w:ȥ_2FF3c8ffr5I_;%3<;н٩=N=toyv!
+r,8$ B,^yh҆2Jq虓yCYЇ/=F9|E=Z_ToE*x_kp\IǴA_e*ԭ u4$j˭Pcc)Q(z<F=u+Es=kE]tJ#'(ʀζC/‹Y8a6ka1U Y(p9u|#h~2݃A_nc0_
+)b8*66C33Nqgb+FhfmŌ9$ƹz^ |Cg8M
+wx<×7Z-g4y^/._dEx!Evxf&iZƯ*
+]1P^j3 h g!#(,F0!9r+
+MNI+n\UʓEi]|Bl_>ɈhlY81VP: )U9jN_/@u3)kӽT7YQ-I!\w}W^|}_ (F1]ҎG )A aG'NrF\OW!`|O%=ۗjѫ=<UoQ]x4Nn':mf :1כc񰃀߰-[3ifkuv6PR 5A)Y[\@oGq4ng?/slJ4k?yw~_Ӊlq#X+̋_%,!
+TS0BXÆ`,'^kl@yOo%"[I`U:}H"Ql.k"E%0,04ꪣ#+GDJ"E$Y&:QNRvՒRRk&*h֍uSdF=f>սF]? HNy\Rd $ZIE0X'$:Y$=ol2 He e$I)IIvuS+'k'-'ˇX?QAa$fTie$]%ʪUF,(Jo I]xrAo|5tٻy;~~\toz4a]׍bƂaI9mٲ;$>yY@N :fub<
+X85%ɂ]B^^Þ Z,}~
+p b"OvUVKyv64ڛvV-]jk>W.{]qP#x|׉eW n+f_|o QߋE&NAZ.IG4jScj ΚfguY1f:M4FL官EQUuU5DVvB5 U1< <pT '#N3R9JZULqEEQ5Œ-%%9cCcnՃgJ4e(Ls⸙kL6eD7nb(t$B =k}L?_<2JJBΐGxTզJ&y΂n褅NJ\EzRQxI$Ⱦ! 6(=c«C Np`@jT2L*XuXUb)'CW)8g1uy2M,S1:aB5㚒٦tc5̥qI
+4zŘKP`pd<FAdeTT6K9 #j\ì& Z'YasŕꍚȐ}ۢCDc·L8STgҦ.BNgi&1i#
+"S^PjOD/5 '_|}'Oҏ?lTUд3G1CuQ;7ۺ6N5d;W?(#PMٝ &+;!5;;n;\aL7Ї_='^S??⫝*TxB('|*ɶ)b<[p:r}mieqo]#uUPDD)JA͍I2pg薁g>7ftD[uMbːEu ӱ&zqh]TnL1ӲܐI*L
+?ƹ{%50ijarh_|comj^m?ܨVd|FFadѼJ0,MS79_8o)6X&2G<=:#z/V
+HˎܶЛMW .AAVY "p8)R{ iI꧊2La CC)]ptPAɏ~>BWAj'yaq/Py6AMKChxE(AC4BS7y )א,XtP2C4BM4Fr85ZmFy(Jˮw9Vcd9:8v#dPIb,QH$HI5EUD"c1clhZw!ϡ*<[!|(@ԝ<p6vWMkLOSIh^m=~uQQ+<i.^G3kwש3ݿ<d / m8ٛl*<')Ƿ~zW_?y/t᷷O>KGqtD .Us"o"#I㢄R|*6.' e93,fVDA.tͻL{Jq%=2ա­Γ<}y#GR9sZDdIrTJ!hA%իQKEc:=eh$`&+:0?
+lo;ΡF(
+m eXr,#1TqZzY77yԞҵ]wkvNaJt|Uu᪛:x]֗7uek_|_! b~4@hseb,c=jk/HVA6: [PW/XWz@ƙX@uZ6Ѱm-o 8
+nܻ\&@
+D(ñ:
+#<E*,ҢJhC@r'J/}!s({E+?%W($]_p;_A  FFdiF 1@,m 6ނ
+uzz_ڇ1G N
+NN鿊{?|ESgS_s7NSu2)g_7+=n<~f%v-A<_O/_^*/oN?חz [Q^ō) t95Ñ+ߗg#r zOj\y͙Q _(_U8oqa?jnmKm2f*HiPN.,ǁU3*UŪ/&ds7:R݌YX͆G|aE6J[c#c):]As΍dXEWn_-Hn7: QQ_7` ꇋ䛓w&12)ZkFޔi1ŖΆheY}gnLvJ]}1mVm]\vzbgM8eCj٨]| t4v38*(MQ"1烫J: `qxe6gR5M{ MꩅڥEPqL(5ʋ׃`9G&G,FPǯ.㢹19(߈*41B=c0-IL@:
+݈x,e I9pFviaцjAē,Y Xk@"ļr y/>X!wYS(з NӾ6Tk
+]RQ6^9(eGGpWR0ʱOH?$Jl{(nK.LJZϝ&Y\uvlr~s򍳇׋M!8J6'[MhsyQXM0EF
+ )< A`tq3@Y?G9k{l1 HӶ/E9Gz̄łս%gĮz80f8G?W7zk1 o߽lo?^^MM+vLSmX,)$T*:݂X>~S zasVZ|=< Xq͆o763û lAm Kq͢iԾ#k-VF|jt,,~wT WU:+5u O#p`4"jU<.33HST KrŰd,[K%5 $)$A8]TQ6V7S elEVXm :|Sw-;ֿMz7JY6G"դO\J&&\jM@xڄ`zL7c[ n's^x>qK_O?o.' ^>TP4g| ӯ7ݽ߫ЇΣ}-fדƝ/:m
+[i%^E;sUG"@K)ͧ>xS!d:2bKW<92'@/m+k
+(e>3&ղ˱ƮBc5bq[vzZJn*9xnaξK/LcgkcQ N{ôՏtt/'`D"|l`]l;[-]! h{냙/G8qeZ{BWJLJ\
+p[>rNҡb:`##n+FK71{O/6Sq4Ԁ
+>! f`?hL7Ԟ-mx($(zcPtD$()}jDoEO ^Nxij3&ȺX|@^=<xO%TzY>+ Sh +OlNPU4+zkζۼ@
+G]]_\xs-LC.>{< Ox>~?#NCo-ds@ -p$8vu`) pxs)XbMF;(:6Zܟ33KFCc%P%qF6"V
+vKi6K|]P)Vύi~} l!m9HC
+ȘEҡ^/(.[4
+zqu&8J$~Dk#/Ӟ /2blՒNWli<`(F@1a,Inn^1`cu+o}i4N+U:,fӃP/9W7sT< el*|Ȩ4Mƈ' 40ϭ} D1FX81|3x2m Y^C9Q&3Nc"vslI=ƹz :NmutП~/Yk_"oU0>H>-rg=3ɒ ZR!/BK!՟t;i$6:ɿuV xc ?}ṫ}+pG;Zq7fyGqDE>!_!{r"*^G>/_=K^-#\>>Uo(oM*SgutVU z |7;,unlZswGB[ Zo_!%k X 09l4 o??Ӿvӫ ֔Q[](
+z/Igİ'@dpf݇Ա`x?Eg!MkSf;e7`%(AVV% -|{
+< bdhէl -Iu7ӈ5ʁSTjܳU<#X
+l
+.o\uMaLUuu'df~{nho0SY1}ܖ(? 'ٔYt[ɏ.{g׍k`6O  94+7EaUC zU[IKg
+7673s~
+P$L@ c)`XՠWf'VOnx5'l4МUFbjNNgX`gV1y?|aM) ͎yl]^>m_Yxu=!3B?͇8y[kI1JKFyb`-рxNJ2mWdk
+o*V[ڳJ+9tf@=u g7
+LDR-lxV՘$i:"f6@eO엣m\k(p61TwY7覬e#;_58bKj^_,AT{ǿr،kA^uOr4
+e4sLx(C-%ك\
+gR {]66me=&إbĭ)gKY 䐐vVk
+RVjr?3O oE1ħ\
+=W+ڼ)qGazzl[HSP*3) sD
+8.fpw*ڣ/~f@8xSkZǃ[uT6Cב!z5ǭe9岉\v]xd%zi{Mrh<=L&G6rm[&(tɕkC[L-GE<+B 0N,\䀡򨓩]
+5NߖqV{~ٻ ͵ɨO26IRgtfnWf$
+J F#4.ߍ\;v8Sjo r˸]y
+/fR͖-DA&n{
+Tf V3u=̢J2iAQ/1HWZ"(Q`3eoa(Yo K#.v}t|*Nfb SyiJ9#[>v@rIv 2޶)i4R e
+Z@ xuV $=/ 2R*ϖ3kY%Zh[>EmF@
+Fsp>1EVsb7|f
+mgl$'f5GZ][>Y5 35n}qv}#ojyTτ5A+rjd@AWd W 2*CS(_Bg%L`K |eâgo~5˗_?w?\_|^
+~ o
+Hq4,M6|3i_C:b<'~4]L߁?4V#*7S践=o_sLȚ+Bn,a=|(}y.'s~iӫuwM a4cí=ecߠ%43,[ t3i_0[
+IQ F#<r*K0R
+s
+ؔ@v{u)~
+D1nR
+
+*&K jE2#trne _ЫqeT>XNkM%_y|&]YiFBȃ^q,rL2Lϧc\\%ܪ
+jҌ
+!({Ͷ:W|1{'_
+,͜șWW*5XH{.8Vue8 lͦehˏ>/믿o}?}B_!|˷/w| Ͼ_~ky^OVYY P+'F~o~7/%E\M[
+z!1L_>F0pv /:s,%z =!a]z7|#^dk_v.ݚ/cďj\Z}wй\ R&gȭ>fEj(S0?_YN|`{6hs ^9Swir /pӿ?j~g|Fh(Ȼ\BAZjm
+,
+bAsU36u]I$< /S;ٳ=#|W1ֹĆ+L&eRL 13AT<8 lKS{
+3\e`w,k3*jUgf\36q'&w%
+IB<.X
+.(Ï4)N401%}\= bg"D Fq&= A
+?b)ۑAO#rK#%~K!j;AmCqukZք%P}KƄzgnqqy.fR1Zbb2
+04n
+y yqS_TNVWNvN;(<
+O\M+o\Hț;-(w;|oA?]tنa{h6+wd/<ͱ>O'A<f PC$a`c8B?D}<;? _XKwF_ bw-:Gg+Q*#C˾|`hl<~/tge Njm[.hgW+ګi[#؊|H6t>А>$Rgm2]\ʐLE( Q|㞧t5a24ނ!oeU|N[
+g3UM"F5ḬeO$ٛL]gSGڥa^YNkp "smks#Np
+0Ł!*h-GV}bQ1:Í0TOر({7H }b%Q+Յc؄9ڲ]ASmW* Qz3. H䱘s=b);OI M>[ TJIrCTFuS. a^ w,jcg (h |bXT'ph @Mkw,f+DNt!N_.ǴHi6Reb<jczc7DchTl??^,92z 1;0b~ތr&v3G,: oO"kVzݵS>~~1gϝF_k7NHI,T+<b1Fܘ 3~%"{򮂬 ~ C&;.T%
+wqqI;}
+%d~Uظ=헩\Wkԕ_%|Z[HO곅 QNU6y9oNG4\̙\0)vci>Cq2rWC9!#w6Ω1^(RZ~8ˋi+T'99éDֽ@6 $薲SB.x~iL90;`$?$G
+!Gt5Xob_͆(.\@'V @5.pаbu?ִT/l k'FBbhD#x<c# ٩09YA)#d-ٚ$zz"qgGK5'>Ե> X5-1ؒWU%>T|&\g244͐xAK&@:&ܰ"ىcanV gk@ظa )enBop./cIL
+p%qV*|U\O\~Ha;>0Q GlsfY l\r,Oߕٶs;45QjCOh71!KPΘGd\:<TvMQض%]bb k MdVHt!R6l=6?*h>4d,0Ho,|~2m#&O+sh B(O,t6
+'v`K=7B*^y3d]2+ $K7$Tj
+k]_l
+H__ _=n[a˒e2v%c%Pc$5 y-9}ϣ#˶,}ZK:t4!3joR@:ƣ"n+,`-]`>$7`aD [:!GTiBHA[9(b>C<R<,mKhS-0TrmGAbvrIJ+<Ecz=z`@9fr եJ10K \2\UXs=Cm&q~0
+sJaidb>Vu9(,p>ɚ<n0vu]8! af"B3e%QpQPn0 _;/n)^~1J@#Z{ͺ2̭e,š0~4ljxzYA֣cؖ@K'M)1ZPF,`_i:0(+WP6Hoa+ײpPvAn^wX!XiVH$ <`njX
+?|ٗԓmK5[X %"<ۡ9`luxm]t0ؙ-&p/3.Hl#ZԜVnbohN; neB!7y(,7zp '_'%m5(SMmᠶּך j/ͲA7'u=.ڻCCDžz
+Vy!sm Bj`a ^9"۬t5ftXRL3|ժs54k`+c XV&ɪ7}A
+s슷]-Itq$ Nٸ* n :_8F*}S5
+i࢚}=uHdRnKzc~lr:Djz^N5:dRy)$PFylu1L «BM<8D_jjϓ㹜Wxtue:%@/a68$r]v;.* 0l0p3*Guc#$ PjIˌ@X|],UhCUڟVH|ynh1~?65c0yA*PHZO-ig+j1>^.zgs!g\ vahbml:$|0%DŽn>n
+{g/~+Ƿ_??~|<៿>}*~ L/>?>=3</*szߌFqwIU1in5S5$O_W=7rbDSRZvW~dl-ݕXG ,,F39[j~^u W]늬5<@O_2NÅM
+tW~4Ċh_ Hp0{
+_o?ܶe} _}[i~MlRO ڠ?ܨfYbEGSb̈́1wuyEn=;|cs;m哺@r[
+BPi'c|et9{!5r^Dzi!H_J©xHbdɽ'i4}lse@
+Hd7o<Jj/UhB ڶeH}ao \BԞ(ඹb\ 3.q KlZb*+ޡn0
+-_xSVP
+AU+׽(f,qCC xͯ6 )M{ӽQqwb=MuHGM:Kt^8^đv8tqw>i0E :tj*[A?G+fEQ2u6 CJz>ßGq)I2,ʇ60R0VPŴ\dH}mj )l4p.pSb6v=r#Hg \|*HN\e 1Pv";}Mx!J6q lv e-%yâX8pF! aIc1
+l
+Ң`;D(Mqz
+v9oj@qriAe; Nz
+7[ƐݠnhPLpLA8R" P_/Fkh~#:z='aRpѪhdՅէMC,v j ST-lsqbٟg'$ <,]u2`3Tis/? tke6qQl.4%B &I[F|Z{GLe7veD;8^qj>ͭPX
+?:vÜ]N Ḩ MfKYZ9>G,}1@aJrE\ 1|a[TOꑃ`ivʖR *9Q]"{kJcW3(X+t)TGF*foy\qp<rO7Yl% #1%m5RMP{9tA5׶&?EVĂERrبw@\LQ.[/5SWI68Nj5C;R=-?NW klU݄7tH5_4Z$ $RJz(?k-*yz(.u0j,a~zZ
+ߊ~>g,_[܀^߉S)A6u d{b,A'( BޟpB@^ r?pe/ oea, ZJx87\qdp)][_5匬jRvxIpP.m܌.!N,ClfUHh6Vv*q`ÌP5.>n%@tfa~l` RA4m).q?̜}kb'p-|lnlnq&˄";a\_#PuG s!4zaʄ*;XfO6~[>jSobcm$2Tdj}-8mu|0p-~چ(48eG8Xtj|z
+Yv`,MArVx2ڥ-<NVEO2$ e3җӖCgΛkrPE[$E;"=-&QL-Ƕ$=r:XZdIjܬ^'QkP{qN9=$XpYepI<ĈbMZ&.Òӄk=GL說>BVeSk0/@c"_y6Аkҹ`#
+PhnI7V9~ܰOdZ ܓvLj!']+[Vۗ.Q(?:,ȄD_S d(_Lb}`}v]΀3XjU*vl&8N1! K|EҸ7<*v ΂uꦙY02`}6^?2:#SN쬖BMh<m-uVbymk#:n
+ | nga}B,#Hѡ:崵/.cK/4:$-TZ0洣ڄ
+m0(< 3 Նfl?a岒\䩬to i6cv%LVX 5 %$Bpc66J`Ju*7ӥnv!|`A}]het[UM5`*-.|0ըC8ȮU$%)c=̼ɉ*Һc^K $*mPmrM6iȾា r~ׁ*lì狪#zTԶ LީV\*C8m!AB~ǸL
+1Awp$79LqQpГ xm_Bj@UUR\-x}BϜ66[u>"M4ⶒvx8ZLBC8 4-qp Ts&_7 LdIMevfgj0BGگ"*%O܂ 1Bp˂P kN|XuQ ;?
+V0 RY0̈́` gYU՗'ȑ!۵{z*2B']GlP
+P{vO)
+j(y1h_&mP,ahIstƷn| ;PU{ m(43
+MXa*Y!]PXRjAn2/r[Z8.!UFN v[~0Vw3(6/.'ÆLxt<)<_Z25"`K3@1Ht TCՎ:2 D*H!1\jvFk]4*Q&4A澶(EQ ,R#ޓU Z~B'F P3sNM̈́?|07* Z}*h?}0m5u[L'0v4c* QAPMƎiacp*3
+*:n-XbJâpfF~0c?dD5 ˊ'[8a.6yKCR{<Ue#z gL(C%6ŭ$(i*RВsB@WʸåoPr0X
+`^*pSB.RFE U7;(qIR-ÑcÞ"TI3JT&l^TqKU/1wd8fԐWG+,|6@Q%װ3h.
+{%pcMɄ=d4Q 7C.̅_WG{4U`U3PJBA[KK<;8 uz)&[uZ)i $@Xʧ7ZI Y38gO@1 R 'lQZY0AR YE(.jᩘ'$W>06@Bt%i7yԜib„,6(kΠ3~F4]dx<l*! и~&:#t`jpX\R`$]wh. KbR]x/s:>x^`p:@}qؒe]@b8A#EB4=^jcF֤yd}}B}I AX<Z5n-[fk|j4w͛XTϝVI=@n4kR=&]
+{vfb8eCb?LUnwFRLm6Ñ3Z fDVXU$_^Ü痏N`j؄d؎aU.E]G@Rz
+c,WZėxh>+Xfb%QX,)mƆzev vFQuDZ5 ʩ+Y 8liI=WЀȩ`K+sY@V(^zf'L۝Ij(&lcT񭼝>\&焳z6l.plՊilVQv'eaqgpOV4M9Ny08;(UV*;8l\Xz#i'{yH{lKvȣVJJr@}ݛF)2k`:F.ڛQCd`1 He! .66 X#h'6hGl;\0ׅKTĜnffd'cPgmjв ,0J*70<C X*}ucRA)v,Pd2PNdVvik4 ͕;@M+Dċ'do@-K⍽c:kf]IY>f2?"&@'ҹ4~@X]ZcCv7,S
+MB"o pZ6gF.W@M,^bGQ7'8ӢҹJluD[&ɨ&z޻
+Mˈf";jItw 1< +d#el%P Ns!s]cS1ue~.WFC-݌ȠZjN} XLr Y|z"Ix{ƴ=[ؽz7.82&mY] h˧uֹ@;z#EE5.SWeq̓បyY6!V7NO_]pD)3}B+xL^aZ)M,W,8n؝a6r7{2%#xv{{|uMA'?kӿW<W{uo3x_oOx!1?mᗧᣛߍ_\/.WN/n>;]]|lzB>Bx
+B\=_0<#N:ݾ'
+EksԒ {:_i{Zಌu7oEJ~R ٯkzon7m%OwM^$ N9A*Qo3xL}c lztr{޳Z[$tmKgDK
+
+
+y#.P }7 M;} vz JqHrrS6ҲB +]CI B,+2sr֟id$
+9:QpkZ*Kh?wCh
+iQ>w: 58UQ,eۅvƣC,y~XG1auE|V'|Xv} ޯCֆPh(kX0 e f1ەABv }dX4 KR泷K(Zs:EG>VS︕aYIY"7K#q
+
+h<Xb{dd߁a4~"kC]g\oö[Öz2hL175 s(K9bQu-+5|R=q-*L"RRYmd_yvm(2D-3j͍H/ Q%iMbѼdv]ZG˟dzG(%c- $RDo"FR)a я
+MAWFinU ʎqyҐݤHJF$*͎Vy2LWP8K~hPObu
+i 󯰚g/|jX KW4scvɁtFFP`[^zKߣG)fTd-aCm 鶄@.Pk! ,Rž} gCGߟ2AN"]k:EQ
+e;
+nwK/\Hu3Ǘծ<`4,ېVߣG)fg2a<@-!3SU C
+HasڸA_v&;@S(&3M)Օ%_YJv
+Bdzg©:`"*]oҮ/UU'X| Z4$x,cx<]]P (Q@ųGu5/W
+%[oAx@4OR3y@\Xo'Ħ)'r$lir/sQu[]VxL`'8UVB$ASC얓@|Zr0ahS/"096y~[2!pC'l:_-Wft4 \7|xJ(\҆}Ω4hpPn롺BDP kS}EվnN'B4TV+#gqlZ:1u>|
+6v @ᤒ
+%[oM8eI1cԹB.yս7&Zn3::JV̈́a0]P^ck" kS}<lO%}W-.^C79Z :tc&t|C_}T2Sz(!ݥx,8%{ܡ)xX C!jٕ*NT/t^S TY DWF%vwJ& U'0϶7*
+/WSЦ W&IdTbfquHWP.ApU%927;qs'^崻0ݝw'2E{o]qcZ _{[PiU_\;{&UL_GJrav,jfM#uy +z5U ;1 ;ã2{[ iʉ ė܄3!4 7@:`"*(:fRa)3?<*Xf_=sI %"5 *Ra?ܷx\m
+
+Qio4{d&qFj=
+1eV@=N\Xh}Y$z]}TP\V.V*NT} ð:`"8}zkR$*aUxտ\ޣM 1<@u"#0*4ݬ?X`FJ4R=3<NO.JwR7VRkS *yhIT`/{wkY\s,+jM+q859~cy(޿EtHOGIbzs
+ոpY8pm{jRQ<#9*6_}ȇ'&6񵉯M|?7 P1R^5MMSNH&ߡv
+υ<S rFkFEgJ:U
+uWt~4CqU|Ǎ&{iV8 -nδ - 9aW^!U=ƞ.;(@6B Rz-#S('-˻HB^Ɨk4KD׬BCׄTy Gj<4$KEgW}{A*CA8Aտ4uNG,iĦeG1*\G7[&/R
+jE='D"j$:FƵ tK"٬ȵ#.cʮL 25@\ d؝G݉<
+HWmSH*ZyK Ruu
+]͒TD&y[p:6VߡQBu˺b* 1i.TU;9fۿYBIp=+Y;b:tӴhW9*6Iˤ̲s]"N^Mm-yXq4n27V2M.'ETECd\xD IqTFB)[JF Z%jh*,)z[:,:)*̌]5u ͭ_Y-l;"j+̝ʤ
+$!ЀR.%btQȤVe(\S~_3
+A
+m_l{:^HNET 8T|xՠ}0N.HN^;%T
+7r dYB{qz!T[AgwT9S!bʼnjɰ7#5%\|NSS 8@V@K^@dP*-wP؍.NիGP; EQ
+<Kc/;)G"PMN<'Z:ǬOձ8Y+?})Y([O>J3y{Y>p&Ǩwo
+^YJ눆20 ղVZ @kb6P.5(bP
+ܭ*!i\
+S(wIxʱE "~ }i ʃ:0ȏT\qƋ|(PP QO 7
+3eO]fi1?; 'ߓx&ԭ+C̥1YJc)t߁Daj2JS^S}z*8鮧7)f7)c{ߤ)g!( U %[j
+m]gPj
+ Ebf_H^"rgf[.\FGպ ]4!?ϫ^wuyi]"EHd"+B[F6
+Dx=lQ
+0~PtaRxf_:t }Б N+/9 x"J0}.x8ģ4Kl<۾w+&9W\V~K˵mp$Zz/=Ge˙L\m-I7_!ܢĨ !Z
+Eɣ}-^_j~>Kazu0p56NN^I "To?-_ZMǗOF/zat~qNoqXO7wC9h>l}X8:ЧjdMqYWj%CH8xt`gR|,bp] eM~0TWic,
+07l(ȡe!Dl 2PRpoP=~A'JtYb=
+萐H3y"D{+h"#!(Z'uV׏>Ml{har=%(2u
+k1 EJ"&6bi\훦S'+Ie
+У<1$̧&~6Ӊ-~'>٩w KP q*4%:fم`vԂjQ.a;RP9M0?>Y^9>[O=m|ڔN >knGSʹGEAފ_r'$v77ETME}͆$ ,a(:K˒w$<Đ AƓ킪f5@Urte |i_hVj#ۀ+B 'e
+@]TLIL1rSwVekKv,,f_Z+ޚl,BQV)R`jF~>9y߂J)2PiVR7'Q
+h쩇NQ)ڻ<`y/PJa V
+ ;F 6PH1=B~2h:F[ƚdJn(}5q%XP
+q긫J\
+%]kתu}^JT3Hc*63yLiZцJbkj]W4;M~o3u}!`P'iʶL@ ]M3%cZ/q̩|æF5!ngyQ
+>sfb+">> Yrt4Ȅ6*kA1/4u@#\QQ󾽠B6rQB3c!lީ(odƪpiT!BV2tU„T K$k^hlK`ñM
+"K k`g?seVxg_僗_^g8'/~7?nV o#KybϮ7o'X_wi뫷w1gWoiЏ5ۺG?'\޿Y.7o/߼;+.x"bPGX:l/n?((k@C.5]7aOZA=#ĔW
+Ec*D; UfpɶA/pTBA\4ҙe6\J;UջbR8V }Ee']7whVFi#E=xj;y.@!6h4ٹقiQ] LCtak&k˫}>h aC.hҬfw-Ll)|ZDq )/+2h`tX0'xn?
+Bj +>gL}ɷ&vّ:{N-dZKvٜd3O[jV_udKZ:ZU5dRy֙ 6$VEQyl*| 2{qΞ8u_mv51x+yF|f$FFo7I
+%(I&G
+s]<84aP&qSiR.zUфdtGg7ErjYs?$aD>Z2BE*+/l~}qYvK?hB//óKٓ?~swxy?]{;.#kϮ7o'x_w~L\rqCT?[zX$O~Ŝ?>vq=ys}9y^
+wNڙNr_z|B}EEZkƝ:g-c _X %čI.WT$\c|LM[{7I+ݓZJ{0W]pފ gZXJlI X?fȊk'j IB jU3]''dv
+Tښ#EnZ3Oߜ͑?@VZ&SMKbc7w՛OI^m RJ!fuT7kR"9 â`Ql^b93۟8K_VLK{W,`L*Ҕ}Y9sC a,UB9 b\%ڋ&`(IR63{m]]1/ւU|$(jO.[#1Yh)g\NB .i-\,{2ح\[*+YOW+IQNvwVSC+-zհe*_SgAOS߭;0mEJ6FvyuC]fݳFKucj1jn@*@:)@\~#F+w//׸oJ3&+&t$+-4/l1|EJaW{쮃gfaFeCfki!YkLۀ}5I
+̀}?-G=x
+_ (?
+O` 1ނ,c|De* k!ռnӞ<Sσ> %h jl$5?@æN^Iݸ
+>ޠE"mxnw)GÇWX/oΩ>O|fv"OW?b>qIڹs_ۇ~_ŋ4zl]iG/z7c뿕b9.^7E!F9Ty`6yhKsF4K
+2vP%뼎o8\z$]ʱ*U էl3Y?S=~mc)EK*[Ut;[D‹R1K)j-+zyZofzl)oP^78@eEF9[|vj-8U92^^ў%(J5%D?
+MDgbVEs9Tj4nWY1sJ.Esi,ky5떚^:ҟe!hE*^
+o~ش0Zi mIh\<?oJ&IA!0a9`)CzkD1Cu*2eɱi,MPvlJkmΛF6Zo2u1e#uΔ_$i40 њ|KZrDe&WoцiH8] f
+ugKSk^.7ul ׫uq-ovm3^i HGCkPOn(x+&`h7bP-R>F`%4T&6}btj(#GپuhjPDlGGKp3Kf XRφ+gQKnS1ZvW,UwV;'
+M
+ڐKO}%ͱX0Ea|x:XYYُI ig^(dN27[0 ߐsDI Aq;ܗFw;|[CUðC~zHiܴFH_ )CdQ3ĥi蟑ϚK49҉Dlh)J;YՍnM BpmUۈK/e$[UwafkZG"v/c8 M\02b!T8_aR"({gÓ&mѩI1ͨۡ&5gxG; $$CV zb<5y)$_`\6&(mބ d݁dQV&x"}گL46B 'u:ѣž& 8hۛw)5u(f޲6K4yф /_Χ"!6Qk9GQiL lQ- kKC߷>VtrL'v5# -$! J=bݓzxȃ*=\8CCc^bN\&EO3ԡA^'pl LYp0MUSޛ! ^tû#*IR3:]`Q4'(+Ŕ\~z6Y88T_;DqN>zwl;M,(R (ּk#]n2Tޠ*rqp: fZ
+x=)2^Z~ŎNϵl0eR~Ě:uB 
+^mm-i|akN`=Om<F 3Ȃڝ
+d=5t>0KAd86cIc6I9DPΑgy5.rsBFdԇ 숪LGOgM$tφ# *4"+j}.ʥx-y,zA%>Y8=O"K*81DB*0$df8jsZU@ 6Rtv O%;56PD #%dNRnՐ $o`9.gh 3D-3mct
+$N,JhÌFjqE告8uy2ߚRk
+0tk $}@´un=P r 3!Q9)~3
+PĄ;8%齍bRɧ@
+?ٻ/]V"7glQϒ֫zTC3<{}ܳR2_L֯}.&b҂E5TծA0й;?ADiWƋ(=s?hwƘa\h(Alo<̎k2$7`nK,yS9myB/U[E` _'ظP`E3ǰB(H; OͨIQ3p ď |Vٌ&J FcMN䮺v2|M*ĝMjnMH8ժ9ϻ/yLJ&O\RsHN8Aʄ ZHb?$G#';J}M@\J
+Y-H4 *2o`2(}I(]R">(eYpcB(Y8gZov}q;e:COxg5rJv<pVr3{kn:؛( &:po+mFR fR;U̯Bys. @&L47Y[>R@9qLs
+ؚ/;1?UN[vBV$/Zъo^c7)Oc~<3vqrN_ֆf
+yD &}ITA ؿE$5՛7<ݪV7`w̒V-ggНlRl|3'
+/s+
+4ɐ¾X
+z4%gyT_t #=lCC FJhsƯs*uvY[ ҆`y X7W9=~eX!n 
+%<U$z4m4L.FR O)悌f?AE4u!;<C]ӧ|( vo9Ըb KTRFl8xĨF\6Gn99ΉJmk=qR~g( dbE[
+
+蜐V['<KG76nd(kԪ))q¤F0R,)Ƚ*TWlRy<[b4 >x?iB>|(lTd GG'~2
+ܻ͐m[ i7EBS^LKw &DMӅ8rw-ζ
+ԍA;D#lp1la5w9PF0w
+g"zDeؓkԮw[w#TZۏ-xUGVsZнiƮMS0 u`cqʲ+ lRYzj]磼0r\k`zY۶1
+Jr^-u5Mَˇ+s!Gpp(;ϥ_ExFVY Ȍp5m /ÊNg+CosܳFg/쫢*3:\NI,=crC~Uh;=M iu q $vk
+(FÝ8ǕVYK8*(f,eBxR%hA_?,*}Y>"҅A^@ ٭%F_>-qzGt甎dcm1j3+@rpf
+rQoxYom;ʼQCFD?D!㾑סр)Z09__~=s!gΙ]%՚m՚.
+ipCw?ҧ\KѬ{{0
+Hş`ޡ/'IN !&LB9F. $zd68v.J2b>Ӌi\rn둋u ~͒ޟ<fVTꨩckb5(:1K/5\^zUϩY0c<һn <qmy>khaC1ry]ocTKrgS\z}?^٦fu1y1<xj壯% '?g.ozLwƊһM~ߤ;߻\޾՛'Z{7&#//N=ξC=JO |;<lWo(<h5V!q2KzpjkJLM˵QmƬ%]N\m-2H%tI##!,ޯ!%\;G-ԛlՎ#0"CI.EfsVkZ]pkD|#DlZG[)y8(m$i_r#ChǨB"ljB3鮩H䣱:J>rgS/tNĢֆV.Ys֘ j{ɻ7Wa
+0u/ 2VYtL+۰Ň0
+VDR
+Jt,3(tѻs#5P2*.mr;2w?%+M e;-iLnnZ;Vu5+0ðv.Ś~ D|InTOC<>+O?qorVGϻH/Xd ^^+Dޭ+K4
+k
+vo$XSfN_7m> h"/鎾j_M+q*@Y;QC
+$bˣ3$iSKgL2UL2@^_U5nJUA>[*ʊZI&(e~OJvsKf
+@+HrB%xC(SĄ'h ='}%xkWqљ() ‘.C-i&@
+A]oS"{uV%/+Wʗ]|Ir=IM
+Y{BZ*%CwLd!-Jь>Bb'EΚ%Dpw41'["fȀ?)wHhbj wZ&: "dRV UEtDjBJ BUp;5#7*!1h7_~xRMEAH4+`ISϚn|[-ᓪJ[IJQ)lDEPis6&6fiҍSo+ =tnz7>ӣ'/m6}r/߿w{|oZϞ__޼zm_{<g3IQ>WĘv4rߣG>w?#:ӘWB^P.Au9H#}0xiH ؆0 K1d/+k\s'a K%$K(&l52!,ٚ%KMuJe;|=q$dM.̈́j(`Ƕd,KJ
+h`qA1Dt]cČ{nIJXoc郙j!"ƌB#Y1(3
+]Yi1iUS҈HR{\9?1$
+XDrߚ0]\u}Jx u<DɕE-hҁ!Fj-ٯ{_dI@ oJsRD9eNT[z,Vr mJ#Xz0 %xv變4ⵙǽOF *8\l<t$'ј<ݔtVOjeo7Wpw}%9Eq kWjւ7<\'#[l72cy<1sB?@2d4ah$}ZcI8}޿~dMVՔð:d٧0ERyQ^OODԨtQYs;MțYӊDK#֣\dskb1q}tҖ8PfԜЄ#[k,ʝQ?)va@"7? j=]IҞ an.ߊVlՈ;,mL)XVL
+h B$Ҳߙ^&ԷJ4mSשۣ\#@%t:TՙL:yr(w.0Q;5| $#BΏbV[KxT|^E m{;¯rl?_`k ].4ڪF&<3jϥDZ{#Zq;S,)ct ͌Ȼ?.x` @xzEp @
+}S`W'uM%<>z2SRl:GKLf,߈TF";O`{hl<lqJR3wٍCk|HHW \miQIRHkg@X^ n飴+Od/xnpkjTGiei +Pm
+e҉-Zd%@["Іc:6!ٶPnxXJ =[>Q;HCpQ~y?u[k*8p~:[ڲ
+QPaE-xxۋF]%KڗSגIzƐUɭħOGvЬS,NmG S1 nB"(1h`=@Ӭ׼ {DTDjqw|o"B@~"" HqJU3n (PDzZA`('B$2XvQaupщgQMmˊ&ʿi B04VXm2`36\O/osT@9b5 ԝ+{>S 
+>U i*e $;pXʃ+,D6 tT#,
+?8T_ݶRBx={Zrw-|uu萣W;f5DF&n{B"{U Ԝ%m>ߎ,):
+ ?i6h4W s}A3%c%|
+^Fm#a=p>oj*ξ+<U<AZxW&fQKu5AZ)-y'+YiWV ߦVIy !%̬K+D_%_Yz3b~wއnwόR1"ɏ
+QdnJ\b0Шj'm^dhQYB~SPPRs¥XW) |vB+>NGZSqhooyFӵ!i_s&c\ٶKbBO
+(sCCW7 ^z$4[Tcu}HQKZ
+`/*8d/jB9ϛDLyP`T$ fjc#\*Xn#_WT <; +5\5 IfQ-ٓJrکtV`d{zHZmA r"(}Ha<P#i
+ΡдblitX3߷u1]E?,ٳ72SJSRGwʄVbP!m+q)gI[{uKZ3n؈YNTR icq "_F ʀ꤈*
+a|FbW4.sn3#$Xm U‰ay
+̒_4DJ2<jw>u?9!m&t[׬ȼjGnvIuT4<H
+yMjt*^ /[Pȿ,N u\d<a^w1CWFT OFMu3]HNzslTv7E VWn) p -gwP<ד& =B
+/HXRPY\%cpu(h "e[-NSM+* y\`z}QYO|"@ۙtKW&]K)jWմGђeR?,Ӹ-rBYQն T8c>kRozTPT+9U;( ss3PCuVpy>O*rT)I4*.QX߲\WQD5L,-:n"(j4tR@=)@w[ -k1
+Grh`xqqQ:\C\eu@ VGL]h6#Ƌ`(CڏOfŬ=ۭ"γ9zWK"ZzP'ϠDy+U"9A ؘp}dlIMEB
+OrKEvdN}Z$Z䞞*?:Z:z:iz]0$Z;"hc#Ž)dcߟ0xwHlA!iQ0ORq_$C!v
+ 9wnVd_ZݖLB7s5Qtg=rIi
+Ҫ'-4mj#O[5zuh[sQ<. !q5׃HYB`uO2Bzmi 6z`*21z
+l|Vwxljnx*4rHPPHFff"]L&rMg V.R .Ds\gLL)c!mrGg)ŌNS_.Ae^ooa " i chQa Mo>"D:ЭNi:uMA!=4Sy1%$ⰓĊ`v#FVdeH-`퓻IMج i/ihB5vUK@,*WsX!hbBi| FJAaqWm~`w%6}zb&i}-!4{
+ՎA{GzQܞ[Iܼ-O1Ȥ6y;~I*f
+p;&WnSrMO]n{[]if$U)bL^27NM:1T$ދq w:<t/Od!L|
+M:
+縸ŠHqe[CHK4Ͽe:̈́6zu&wެd~LÏ j2&3LPu%WEBR+cJY O4Ԋ&)WE޻{>x<5(2x1e":2!!Bdho& z
+63Gۉr_<J,hB]74}s+
+Q'h
+:$BMxMr7.&[1T4ei%DMйv)8e;/[3.FkKZ;R*l{M"@4n@ @͎}2|e"u|TZի8|aMz d"!a"W*Wʘl.94{tjJT ژVU A:OjaS[薥hI%7 Bl>s#&cT|6¹`J
+a"Mn9{dCbf*D{O<uE\0Q@#k f!]c@,k D9cxpu:+5Jx :PK ڧ xSc<u#/@4h9<Vc(:r,̸$64lDq ''q˔T$g;U
+G27X8
+@wii,~tcbBʐO`
+Vd'7' _N*LM ^]L& GrIyJrOw˝8<~i..&BJ${JbW 4}ڣZ%:,gY42qwpbx` DLQߋ,z,qjOKb:7}rcb( "yʁ5! j"&=j
+gQGCe@4>*ZwOT$_wwة,&rh,x&T/{sP?̳JOY F[p,t;jr2ma 21P=8
+XL#b#N<8 z_2BnֻG3q70(YN Ae@${|ɗM $=6]!8ĭ4^JQ\{Z<0ܑ,1eB! ,j9*=uc=?zh>
+|GʇӬ82M y% U D-)&#3BF & _>rWd$]f&(uIrlqǒwE)h/F
+Vj5C
+toW Q]n~^0f`!AMu;i/`IipF.nJ"06 P,;ޛ 8G =qVԀ~gG/=| 0:5iUO7uyZCņzΣ_(<r|>gh)s_[T M2 caHqD˴Nˑ'$ON3&3$`=a"}f(`J5 z>a ROeY2a6KAm%_yF:!I/n7It&,و隉Tr~Kt/(;:r|^nx<o\7FTbRbB ]e565 eMS|KҲ#aTF;3{D@ .Fl`M"E*;]){.qOܗ-E$X{fw#(>f$/p[>B6%hsUOB%t% {)`e'-}ne<gT$ޏ^=qbNJޛp% eBlD}NK#4y<rOA֭)9V+=Ki/0RĘu]BS~-Z$OI[QoN] chJ|ڞgșƓi3ww_<h%׃FBR3;4|=UƦ
+>10Uף?O В GL
+$pa@ H)h'Gk>3QP;oЋg|~hyH{OI/fvcH4;N^byS-Bxh%w~-WWpB 3E"JZ9HIؤK?@Cŵ9!+,w:0?U\MluSۉKó|o@&Z
+_
+*P/=0sc"[3ʺnf`}({ѩѢ&#*c:ry
+(`b3j\di{ޝ#Qq~u[8ުyd%]lQ+Df@eBs.rDp\[BOuV|/wlwi,C&+~)P<|rR,%r'.ytnSڷ %zn>{%yDG9Fh%r=8=!y! s7s{G)k9G5C:usb1ЖPog*Xƺ8xE>B|n-N`]W躈أh}%G0uU>#jNHYD'
+K5O:ݦ$H*EJéE̓1o>VUp{ϑ_WVǙMm\D?NT;/@[ώSpLͪߦ9cMּqo<<<󜈨* ?%D cӻ뿰]&C~gm]&7H" ǽoJD=$qNչ$e,iX ]P(
+oA縏561{xt#Qg[j*sHj)"B£9Ud@"Xaut ^,IbRKFޙY#Rj~麠`dsxjFhK|BިgX)`8y4o0Q5i4:`3|s6">
+ |`|E'L`Bf ȰFУ'j:JxNd%ϥy:ѳ%EnL”{y<BV&zESYy\* nk(+{d}?&+m XQ s7Z9-u'g`%_M ]e- A>ŚSq'g:>\[K#T":6̯6='
+tFYԔS):caN: V,[ ctūe!8=<*/XBfe±1TNb&ѭ+@-AEE V<MaΪu5=7%dA<Z::kxF<sKDvA⻭gUDDy܃H[R2h{D5\Fjm@_ Eϛd(ہ 8I(Y:ʔ!HK9,6@Xs4;w$cAګR$ CWˆ`;0PFGb>! )ZVmtN'j[m1c
+:Nﶫ&;bp{9$+&_aȜ")xbR2)v!Nm
+6xC/z>̳>vI_#sbi}ŰD:0d@i-qRP6D H؎n3,*  ˝BX
+ĝ7B"WfO.ۻC?vQzv9z><u)W~Kl5uaYBI5TQ*e
+?W|vŚ-բ~M\4&2;oo7kY˛9~&l/'#M?
+W9}A?fʖ\tJ QhZi%z(R![3J0~JmxX۸guhO<Icoev/W5;7'rq ^?̠Y?א40e@O#
+ǿb U-Nl~Ӊ7 aBG+fʪ
+V A~h]|NX!<HN4YN
+,-+8RBM[>CX>Eѣك+y#\ o~G1%%
+:ȏ 
+}T6 r*)Tn*rlOO$t_VXPdJ֘o6C0!x/bP cgU,0g9MW,,fCwZ\(*!iJBzhIXYA+F'spt-BN
+aäGii; )$^WBJhE`crjM\^lSdc}|њ@fqJ]ąk %fP2$TRa9u2H҇$?X$nFf:f~q}_̉X4$<u#P9k$@|B;p?aTA%(aTj`8+H d8uZ/Qk:?"D#x.(ԔiVeu "P҈A* DL))6\ox S%7"ڈ'(}:_}aytp0,AZzFs$`x:͕OҏdX ,
+18/w
+]Jb}!<x{~dއL|&"۞q--ba Yoyiw&¦Bt3ߑ8C#;Nuf#CoKi*)m r>9 5H
+Zto!RH[v#x @ѝ
+U> 6I !hm +m -x
+Zд:+ӡ\#q=ǽ"0G{`xBd0:sS4
+țl`M̉)*H֚MAJH˵_xNڶ|w"Γ2/[Ζ[N(1]s# IR-ݿ5pnx0ѼBƃ7.Qam) ~Fu+d \qR'Flx3ahkv׼L+96eGJ"f(ti,)0 c4gu^i/IaA-H
+-BGuj|#\(@q]h+RnHj˓@G\?T,@p5 ^%5GP[*#ûXxt۷$'I(u0Y-wg9tՅڋ\Oʞ kMѥQ_o~Cp2SUjsXTsc1b}8l5wY~D,!ߺ6Ͳ.~?inuٱk?==n7/lwfQlv~w$b茗Tn~eԮe9;Z/h¾ݍWk] ˲ۺn~-pf"%qfxW[Sn+UvZ5ua c9;T5;oo7kY9Y?n?gռiSM)&/@CQJOAGQC@ИBVcc@MRi{ !G&"d hcoF"
+>C*%mtdMaj1h7U}(X[1%Xh
+2 qُ4V}e$4h==^ rAq9lBPz\ .mQ)vQҞhرz',Q b9* 8$[8i1 [boJʴtwւ'l3.Z4BQ 4X5=qm` f@y"&Cx ׆tT_e#G>;ZO['
+*n\h`/vHw-8M&>߄ s:('@xtlio19 wN`ɑ,.#p$f
+wr&B.J׾aEw"Dkl0"K& =!o d*@#Zԁ0P}7bqknxK9'hبqۯq3b81
+%Qo"YHd(]ltX "8$H:
+o \,3H(Q<R= +R<& 1b;1P41h;M2"Tx<rM^UҮNvڤ~օjђեu47PM68@X(&N̶<^Y"xLO3dy ':ko&'=˜72p@.͗'$q 0c{U+b!K<5B, l
+'^†\]D\QD3p,-M8M\.&aBvW̎vT9#
+ȡW&ۊ"x?g5qF8 4}YX^㴙0kAx܏#Юz$<0@--#9x nlUOwz
+kܼb9[86XHqMFIw䂑ЌHX=0 qKwpi0r#ef*ިeon ʻ>rHoV{th ?ӳ_;Еc=)~Li˜SbXܛ)։RkG
+Qp,9š(Nj# P0+T yrkg8&/d$B8뗓Noȼ!櫐Vɲ)*vJqIy&Ek1jpU36ǐZyPLԸ9bɓX.lQ"182x`B^Ӽ.RN{>+?xÛ7˳WXۯ~/?]>_~W+o/?^pΝf?^_~E7& q +􀕔NP|{y~կXrc}w}uqW|l;?Xbu͏wz_kۻO2(u}w<"Z?O2ˇ&"Ȍ EBʬAHhhN@sa _]'+eQ4v)
+,9cIbRz̜Gh|
+S#&R;JL[ǹy҃ۚ
+bxiFh72RQ a+ 1͑
+$\7-'*mpQe5(ArnZZT&)aAw<z>@(ԳRH <d@iB0qGDLa%FIQf0f {3!<A;6JIڶm j/% Ǥ! @bi.6l;O[ &8.C3ۋa#C]
+&
+8%
+ P#rº"CO[H!Pb4sS78.)\iɝ'#Ƒ'T m6 L8Pfzr
+یLa_\3Wi3=m6[~8btEGz3JҜM.b̗OufY=M_d:kcu8ûYZ^rҋSx~<Ln>$;g׼gG̭,Nۙ8fmil\_cK>E0Y` z%]I cG75;&a4;{Pw6uu\߬K8%Y>
+ `l}vw{Əew|ǭY?V݁cyʴ]1:SI轶=[<h.Lͱ ^tyLhpQ77WRrBTUPՔ؆FV @`Ljd !1Xl
+tƚQ"l^#-T$d^
+C:[h}HGG+Z{"דK)d,:~2~~L8Mxt93"6pĨhS_=l8__3xŭ]ͯ\ޢfAj9W;"5ɐ˥.q/;YEԯ('}ϯ[Kqjb8"ۺPKp];o1I9?Wn{G; cV\9:k|:yCg1C%ApnP 2XAn%N,L%?)Kp@AI^]Nmgwd==ѶrSǾ~e1>vqi\_ʈ+Uk V8}֧2  )|"v e\J\tݻZ}V9lƵ#0"DFGŶ]h\E-m;=Wz!z҉JII2
+ȻS:oe ,><\D/EHE϶HԆh=z?T5݁xm忲d0 n.JfLg4&'Eܻ;YzPl?nN(B(HXپKoȶxWqda+{ccgld@T|?sd:}R@h9?$NOy+mi S޴`H=ԗ9?3Cs͟ ]ʗp"8&Un ^䑊D="
+HWmOҶ;Om-HWW4:U.̿y)Bn:>9s #+Ӱпa􀰅DF00?c rt~F)ϡ'\顧O-B0R'd-JO7#{o
+'9x)GOLPX*9ɋsFM^I| NE6z %Ak`5Tk5L:̫I=y߽yikSW:j2X,AեbniUy:˾ϧuNV_ !/Û+3tLu)z ,8еE`x&C?ACyOEd fú.(ur\l@k.&@O4l\j-XNeEQ2;VQ&mx(tv>K ]!Zq,駱Ӽ֧Q8H*D>d7I䧰uA^ٺrjn,q$+Ixc-Ks1ӓRVR@0ϐL$k B2Yx3f|Sr
+䵇k泥A,GPYZof> \[?MmY\H0Jٲ]JRʖ~x[V"/cmm L-Gc @-,0 )'!&PD{x(tvK ]!˭Zր,駱ӜQ80D>d7IKv 9a$/Vۿտ6n%ue,a%CPl.ȤJa?R!H慌d3h: 64T-*߿-CUfi 1` %X$-.6׽,0se )˖RjX|߲)}kk3ءV8Vra NouO7BlPܚm 8ɒN9i`S=Ё LxJ}h~0ZjukBEb &IMIBpc@5*'$a?R!H慌d3: 6gZkOGX*5Z5|05unxR\\"Q-ۥ>*l%yJev͘s± Wmb
+]zjRCmWHskV5$;f4iN@R2* ux=:fv>*֭ m[Osc6n$$+$dŘU D>6_3$ZüvE'aC3S`fB%M^{V~>r U5a.N:]][K}T/Eˊev }ba NoqO6Bl'Pؚm 0ɒN9 }S=Ё@S&xP%ӼaMZ>qg[XGEպmQi_pֿ4Cu)G0ol}wi.NzR*@@
+Hc/da^Af;0ks/k[T@&=\+Ͽ? b9Z~c0k0Bs± $u1#6ٲ]JȖ~xZV/cMmj|\pj-m'dw7'Nj@KOMZj
+ m׊ɶƘd|'Lߜ?©@RQ&xP%3a NZ?[Y1sQnBh[՚+=j&IMI$l]n][%0ϐL$k B2YxP-*`m` R-M)aGPL>#X*sS0ܟ̃@٪x7A\$]XkV#, 20N^;zIᦃ=y߽yikSyدK/=
+"OgTn)܊ $exswN.v;Eoᕅx ݘd#y(o{ZVa 3Gw*v1!2tK`<u>s&+Mm@W'+1M"PSjBv[󵢵&YfI57yOp:KxP%a\NZ.?gE6h.{%ʩfX܃nN*oRBɌ( l2SbLp)K,d@۴?ȀM$=*e`QV uvGEcˠQ]m2t.=_l2Te.վ
+9%XL7& z0 1u@qB'r<yU~ٔ1J2aA5آ++ g\&$;qVt8>Us^^F k-oC qU?ն;(MI{Hd!8SM(inYKAVaI~ iɱvfg+%xEr _mkKWv`8RƧ]'-"l[TIAm-7vF7^$ǝ$ߞD|,.q~S~Fy] /OK`á3ה׿?eWRfqxۓ%.6rqxQ'^Ǭ=uL'˓JW) 'ʢIf#Zx0f=NU R^KѪZ):~E|AEAXo*O-=Q7<J=7rd]cA6
+pa4|o2ߛgo2˚!>}˹K 56= /w~&#M-'kf-A& eA-9!qL01
+1,`bGpPk.13$'G(;@A0 J1a
+S{D\Ax
+aD\
+\vD~p&JG OtjWF=jCN5=~:`o"}27 uC~O>Z snVh}0uhHժV@Un>ۦU˦fYLJ}j\Zf@9Lb;c4)}8Z*@z-o~~?vbL#yj4XmMS Mro! Kxj,NB_ o!V\$7AA|3>- `G+ؠz2Z͚UJK{N{Q\Ҁg$U+4PĜFO[$]twMDTS>_Q,ˆtT|e̲Wtbj^F\IGճB)@Z6
+.t] }8^~ХZm~Wئ^uC-uRfkZ+}u_4U)dUpa]-תz_ #F"\~YXSSӀ & -5yv ]8ٸ ݕR I^M|nL%GU U]yH|ę3ՊY3e[3툺a2#a,<󑝖z8N<ê[ڒ2ZUEXZPsPkQ59?4D8.Y3@?"Ҳ9;ObSF>P8h Ml¼,BV!rCjKgbF]AqTlRT6plՔ̔*8C^#;G%HuWV]ǡ+/A
+iMSޮ.L1[e^&m0ChgNPnDnZ 0\Kk7vi'3+O>1)sr9\ȣ<NJqQtK+"tqsaM
+za J*9{9ϷO7DG59b
+݋Gb+,˅UAt
+c Lq*`ҮDD!W>TnJYMr6jq۫RAH&rEO<Hq#L waߘ+(_UC_[dN2Uو$#JT(=eJBo
+B/X$# G4]aC ::|"e"wF;bPcL OQ9JS:gxd-e%&ڿ&B ֍@8=He9ožK_)1]FOVTQc&_XQ٩f,?řy1CwT ^´0<={#ߢw^sdH"!~S*ajfhGovk GK7]DYߥ!"D,k@>6'~+RD 7b,raz|ܺ<L1XV_u7v ,uuKrʁL9+wfd,,e/8qb~E[o hApac`HH()"bjkqXt iT4e(X:a )9RǰvSd>JMtMS & âX6|m|*폨;D~t2ieh\Zu}
+D*fe}۟FÐGS ;ٰ76H1JIjKof uabєq`'G0۬NTʳ/ H:|">ϏǏFѲ`vfnI[sI)YwD }K72lNJo6\gzz-q~][)N#\F-a
+ xM60^e2K qqD@Tgy4Ź9~
+D%|VZH~ovyEhy8jkLu-%M|pdN*|DҠbG5&.y>Z(֣R##p:g+PWƦ}n"v2|y#E͕!BsCl Q9g\R*mY8qh?Ī7*P_׷'tʵBeU@JYې%_^PI Qp؛( ʠ-_q l13_>^X]3;G|SGR&4*<+"w}Տ\%.Blzt}
+~NV&"c X̎Kz$=]iX2& Wkl , RENhRnWPS8eשIdה\!mK_0oX'r~~䰁x2Q̔@>&1V%'R1%C0 vh{2\L]jzy5֫fTy_O(ngK;- s("Y>U>RWd
+<EGeQ_
+$hQ(tp@SN `+66wpI1%LQKݞ|d6>t@+!s.O{;<ꦦ]6*f;Zt5,bՓƣz#flUY?gxa4U.bt;|mzWҩWn#.7V|k[2ikT/jo+r,5O]Z"e)2_蔌":qau϶ :q`[n >pB<3 am߰0XF}:\&8l 4EOBR&
+;~ +-ut+!*b^4mz,=%Z,Awsp
+ qϿ*1DS\UBWgSM|X@>LL* Ų\4l}2-Tp[6M4 `b.%-=䒝?nH7%mMىD37/5fBRljc_lQkvPbĝ8%!8޺/.(?M$:j]ڑWAn}wp--O*.MXeQv`XK3-Ou3]՘}d]@zxx`{.(@` ՛"a)."L:q?#Ghma
+]:](k,zKLg-Rп<B>CϥsJoԯ]֣
+8߂jqzQ0)y<(Ngd]q8<%??
+ E|%,2>x]6018>Kπ
+F"jYQ]*}i=b1|TabR>($ۿL/21|psH;(TwkxoAN
+ 6Pjg5[SVQqی=A@U BD;x\@0ʋ[(ەtwWг/" "y11~x}Afa,YTZHDUXr.z}޾ P5iO0Q8ފ$2{
+!Um2lMY0M 48%m
+H~:ǯ{
+@**?+O▽(<^,.pb$ף CsbB Q֜zb4TqITp*ܗ($!Ufـex ^VM,Ut-FΟ7' Pĝ/6UU<]ĉ/b *Jٝk5!ƻY5(ٲ;̫eEr+/AQy].I[4tMnKޘο +c~ OϠ<f$AX*hn")"uiL['8ۀ
+ޢmh^oC VU؈O"gc_s ]6ğef˱mUOnq?@D+3<#lxYa0J4UP
+IXga~'I
+k-2gfpWTFhleU|/#e f o . +f*Np@B|?a2ŽX /͐Gjޥdžcg9.ܬ??HqoǃaF1{4sڅp93?4$;Ώ=>WB)}{Bi jb3Jn +X!˅״RH5r8}Tل'/7_))蔨}k'P^
+Ei'ؓrVHIcKFdJ~P "Fn9_.-qm^c(w
+ט)w waEB_akU6tXB?:Wk j#sɏW)g mGK.o Zv+(UD=J[C;rџ-ޱA98!9W5{Nt*j]621r%4 y1|7y\uk4IiP]43m+_
+( M?/P7eϘ-#F(
+ƆNqMu;rPFM內[uk{CPp<:GBA
+OHu9<FB3{ YeWKoe=nq> {L8?_unQ9Jz|ں+ Vgp[β\\ӎsLx$|ғ`QmDA椛G梐n8Zt}JT!9j&_#uvngKH./]DWԭ{&n۸@LCJ>Uu~-7gߵ:sގ2xs=>$[qpA~>ޒ:CZ`vH6zn%4'`igF20nnW>_UVUTVWhVfdfD$3FF@nS?v dOӽ
+ӿbn}{*u K 2e$XiCi*O.dys(5Yep䅸#ssmOrhu+]b'M=Mz h~ۼ=]
+[.l%lTtP<ܬAY mcL:ݓh,O /<ᕤ>ZyvibPJsZj3|ץ"@o^(kCzW mR0VPe1l,?bIЈMVh"Q÷>2wt^OGt BV(Fm4e[>~VF˸-Dt9.~zh.茣 <:G+˲#x
+1p 6KĞT|X@)[S`2DEs^]RYaCcܙy/7S<
+9y{P/ř3.5̶ ԕ>ɤ2yYu>I-rW<{ȕ
+ X(+vvJq7J(xjaqvO@fT pT*F[uelϠz"MOiՋ]JSnXYj?@s4HA/nTW9Oh6U[|.EǪh:{CxTXNC|Ud7u3ӌ>VA|d3QV:v#|Nx-MuwۗEZ^<stٜx݃
+t4;B
+APLݣjޑ@G/J},GU?6ל'
+rMQNSvq(B}=ؠW|4I[#"Ta |1 IU`Jr+bvRԉ:ln&+t\0P>wc(O֪W{iP' ?ꈕdc6T턘%Π8G;*MƏfQ _Z!0_p!
+2%l@)mEZc=f+=$9Ul[,䅉x[  |!X$*O"b( C(JE
+ P/J/#ޠ J IR#fj %P|žO P=>t+{RU. YT]M:åz1nIු,IWoɅwY~;ٻ^&3A/8$i/gk&),xS`ۜ1X-К /`/ѓB4!ޖфhPp!9!mr.2"7q06i|pU4_f4 G*#L2|LvqK |$^ r%Z%yZ}K:h+kIئ[b,MƊ_NAi@La2݉v2Ae'rOSG7
+-%T58rE*i. If0Š1+F\n@kzD.& ILd4K4%9QjzBJyŊ.t%e ^+
+.@E1!3AQC1ld3İ&£E_`{{ xwU
+scgh0S .Ov(H['CƋHcvVzNP1F佚L5nj,Цl,R!TjJ&#i> \6j}CǟMӻbXq׉Ǚ=} u4uYe4P,rIUP ׌"]GQ$5Dd49E+&7͑IbqAdu>Zȍ-U[ត{T9e\(>SRx}OSX1ez:2L?o[\Xx'ð~ cb:ilgWL*X㲚b6sP3pt/!>P1
++ɝ~Fc"3Od
++"V:
+Sau*<-_+^1R%q=8|dc|[іJ"%:'+VܨH7ފOVn[}!#I"f0'+ EW|^Aܖc-ʘ-ym9,!a1A0:
+ա tCnPINf-ry /8M鮞#EmhѤ=lM(`.J(:Cד&+K(ZR͐[pg-形=
+i@;7<G0K/9U8uNwNl Vh*L9L#X>5pz0Pv(쾢lhJFe޶D[#*;$۔c$լ&i#m?pQL8ߊVe᷋[;V)}D$' Af&˄g46& v+1IlXpKuc$ rG}E;yW4PWHiR4.[r^s\]{o S۪ Y.H1`xς!PT xxZ=xqP
+u#/"ķ;J(z M$o7&PMA/B}/4UNv{$S5RI}iVq%2ajRL]2` =7F!9wyX%蝓OL(VIV+C]uVXj.|1ynR.֜-X8p|uyhu: Y8̭NaӁ?ET>MVJ/>x)Qd9OS0/$ls+5h4dž·3)%إJMqDuʷi@t
+r<Ȧ,N_atap9ͮ#B/)A_ڝ Tjt(Ns,͑SM98mrt[P+q7d3!uwLwZȩKR>D {)ߥ;4ypbk<S#l '[g< I_t~2Pț Sw3~zvqg~3TDy z ׼!NU!6*?ߑ 0!ԐSjY'mv4-5W^}|x,bͻǐTooO2a4磿캛0/AsKH R>
+rJYZbO!)1ٜu /EI$~?2iyioGQ_+R?Trk_rًpf?7';ϊDr kffT~~,BWL=x?n
+N𱟝9#wx.qoOvf2UA}1d[8 ~]R4)5*݊xݑPyAV.
++T˧(NNJ1R7>7_݁w;٪*I.zuB`t?ð.P+jK92Wz</B"PE Vu ).
+FB
+MG
+;Hb!(b#,əu[ 1XlͦR{PxR񏢟{ҺP9*# EbqT M.H] wõf-ݾ <Kd3->
+oY[onw,FzmMDo/"oJcV+R[?J25uh45#?X8|a>fI4['ᖓepIl8?)/؝& 9B(Mf`Xdw5f0Ϻs>-¼u*s)"Zĥmq=-6\buAyWbX1t=.ߖCOK_9-xB0rpwi#4])ƙD\uI%ʏ0(֯_}@k/f/1>
+db$>[5?w+Oy[bd<Π l+֬Uۛ?Tĥ<T)3,D9sIV@7%XwqY_[`ٹKv;W5w=ϫ[Z12Mk7c( Tul
+<S.mV'
+0000000016 00000 n
+0000000076 00000 n
+0000036670 00000 n
+0000000000 00000 f
+0000036721 00000 n
+0000037161 00000 n
+0000043552 00000 n
+0000043440 00000 n
+0000042635 00000 n
+0000042879 00000 n
+0000042927 00000 n
+0000043625 00000 n
+0000043984 00000 n
+0000045074 00000 n
+0000050595 00000 n
+0000062392 00000 n
+0000075904 00000 n
+0000094670 00000 n
+0000104683 00000 n
+0000108192 00000 n
+0000125156 00000 n
+0000147607 00000 n
+0000159314 00000 n
+0000172362 00000 n
+trailer <</Size 25/Root 1 0 R/Info 24 0 R/ID[<FC794AA98B87424CB2E97C518380ED21><AE105AD1585C4AF798F36273F70973BE>]>> startxref 172542 %%EOF \ No newline at end of file
diff --git a/vu-cs-standard-thesis/0_frontmatter/glossary.tex b/vu-cs-standard-thesis/0_frontmatter/glossary.tex
new file mode 100644
index 0000000..91df2b6
--- /dev/null
+++ b/vu-cs-standard-thesis/0_frontmatter/glossary.tex
@@ -0,0 +1,21 @@
+% this file is called up by thesis.tex
+% content in this file will be fed into the main document
+
+% Glossary entries are defined with the command \nomenclature{1}{2}
+% 1 = Entry name, e.g. abbreviation; 2 = Explanation
+% You can place all explanations in this separate file or declare them in the middle of the text. Either way they will be collected in the glossary.
+
+% required to print nomenclature name to page header
+%\markboth{\MakeUppercase{\nomname}}{\MakeUppercase{\nomname}}
+
+
+% ----------------------- contents from here ------------------------
+
+
+%\nomenclature{LSY}{ehbfuefebbfbjkjkebfjbfbfw}
+%\nomenclature{DEPC}{diethyl-pyro-carbonate; used to remove RNA-degrading enzymes (RNAases) from water and laboratory utensils}
+%\nomenclature{DMSO}{dimethyl sulfoxide; organic solvent, readily passes through skin, cryoprotectant in cell culture}
+%\nomenclature{EDTA}{Ethylene-diamine-tetraacetic acid; a chelating (two-pronged) molecule used to sequester most divalent (or trivalent) metal ions, such as calcium (Ca$^{2+}$) and magnesium (Mg$^{2+}$), copper (Cu$^{2+}$), or iron (Fe$^{2+}$ / Fe$^{3+}$)}
+
+
+
diff --git a/vu-cs-standard-thesis/Latex/Classes/CUEDbiblio.bst b/vu-cs-standard-thesis/Latex/Classes/CUEDbiblio.bst
new file mode 100644
index 0000000..17569e7
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/CUEDbiblio.bst
@@ -0,0 +1,1141 @@
+% BibTeX standard bibliography style `plain'
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1985, all rights reserved.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {scapify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\sc " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {boldify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bf " swap$ * "}" * }
+ if$
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names scapify }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { editor format.names scapify
+ editor num.names$ #1 >
+ { ", editors" * }
+ { ", editor" * }
+ if$
+ }
+ if$
+}
+
+% this changes the case; very bad for abbreviations like DNA, RNA
+%FUNCTION {format.title}
+%{ title empty$
+% { "" }
+% { title "t" change.case$ }
+% if$
+%}
+
+FUNCTION {format.title}
+{ title boldify
+}
+
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { "" volume boldify tie.or.space.connect
+ series empty$
+ 'skip$
+ { " of " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "number" }
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { "pages" pages n.dashify tie.or.space.connect }
+ { "page" pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null boldify
+ number empty$
+ 'skip$
+ { "(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { "chapter" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "In " booktitle emphasize * }
+ { "In " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "In {\em " journal * "\/}" * }
+ if$
+ }
+ { "In " key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$
+ #2 >
+ { pop$ " et~al." * }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "In "
+ }
+ { "Volume" volume tie.or.space.connect
+ " of " *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "In {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "In " key * }
+ if$
+ }
+ { "In " format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+ format.vol.num.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ address empty$
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {dphilthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "DPhil thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { "et al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
diff --git a/vu-cs-standard-thesis/Latex/Classes/CUEDthesisPSnPDF.texshop b/vu-cs-standard-thesis/Latex/Classes/CUEDthesisPSnPDF.texshop
new file mode 100644
index 0000000..9d1eb9f
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/CUEDthesisPSnPDF.texshop
@@ -0,0 +1 @@
+../../thesis.tex \ No newline at end of file
diff --git a/vu-cs-standard-thesis/Latex/Classes/Icon♪ b/vu-cs-standard-thesis/Latex/Classes/Icon♪
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/Icon♪
diff --git a/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-bold.bst b/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-bold.bst
new file mode 100644
index 0000000..17569e7
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-bold.bst
@@ -0,0 +1,1141 @@
+% BibTeX standard bibliography style `plain'
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1985, all rights reserved.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {scapify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\sc " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {boldify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bf " swap$ * "}" * }
+ if$
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names scapify }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { editor format.names scapify
+ editor num.names$ #1 >
+ { ", editors" * }
+ { ", editor" * }
+ if$
+ }
+ if$
+}
+
+% this changes the case; very bad for abbreviations like DNA, RNA
+%FUNCTION {format.title}
+%{ title empty$
+% { "" }
+% { title "t" change.case$ }
+% if$
+%}
+
+FUNCTION {format.title}
+{ title boldify
+}
+
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { "" volume boldify tie.or.space.connect
+ series empty$
+ 'skip$
+ { " of " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "number" }
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { "pages" pages n.dashify tie.or.space.connect }
+ { "page" pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null boldify
+ number empty$
+ 'skip$
+ { "(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { "chapter" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "In " booktitle emphasize * }
+ { "In " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "In {\em " journal * "\/}" * }
+ if$
+ }
+ { "In " key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$
+ #2 >
+ { pop$ " et~al." * }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "In "
+ }
+ { "Volume" volume tie.or.space.connect
+ " of " *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "In {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "In " key * }
+ if$
+ }
+ { "In " format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+ format.vol.num.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ address empty$
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {dphilthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "DPhil thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { "et al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
diff --git a/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-case.bst b/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-case.bst
new file mode 100644
index 0000000..9c6dc7e
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-case.bst
@@ -0,0 +1,1132 @@
+% BibTeX standard bibliography style `plain'
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1985, all rights reserved.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {scapify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\sc " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {boldify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bf " swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names scapify }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { editor format.names scapify
+ editor num.names$ #1 >
+ { ", editors" * }
+ { ", editor" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { "" volume boldify tie.or.space.connect
+ series empty$
+ 'skip$
+ { " of " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "number" }
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { "pages" pages n.dashify tie.or.space.connect }
+ { "page" pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null boldify
+ number empty$
+ 'skip$
+ { "(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { "chapter" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "In " booktitle emphasize * }
+ { "In " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "In {\em " journal * "\/}" * }
+ if$
+ }
+ { "In " key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$
+ #2 >
+ { pop$ " et~al." * }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "In "
+ }
+ { "Volume" volume tie.or.space.connect
+ " of " *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "In {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "In " key * }
+ if$
+ }
+ { "In " format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+ format.vol.num.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ address empty$
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {dphilthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "DPhil thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { "et al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
diff --git a/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-url.bst b/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-url.bst
new file mode 100644
index 0000000..96dbe54
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-url.bst
@@ -0,0 +1,1447 @@
+%%% Modification of BibTeX style file CUEDbiblio.bst
+%%% ... by urlbst, version 0.6 (marked with "% urlbst")
+%%% See <http://purl.org/nxg/dist/urlbst>
+%%% Added webpage entry type, and url and lastchecked fields.
+%%% Original headers follow...
+
+% BibTeX standard bibliography style `plain'
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1985, all rights reserved.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ eprint % urlbst
+ doi % urlbst
+ url % urlbst
+ lastchecked % urlbst
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl openinlinelink closeinlinelink } % urlbst...
+INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver }
+% Following constants may be adjusted by hand, if desired
+FUNCTION {init.urlbst.variables}
+{
+ "Available from: " 'urlintro := % prefix before URL
+ "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+ "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+ "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
+ "doi:" 'doiprefix := % text prefix printed before DOI ref
+ #0 'addeprints := % 0=no eprints; 1=include eprints
+ #0 'adddoiresolver := % 0=no DOI resolver; 1=include it
+ #0 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
+ #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
+ % the following are internal state variables, not config constants
+ #0 'makeinlinelink := % state variable managed by setup.inlinelink
+ "" 'openinlinelink := % ditto
+ "" 'closeinlinelink := % ditto
+}
+INTEGERS {
+ bracket.state
+ outside.brackets
+ open.brackets
+ within.brackets
+ close.brackets
+}
+% ...urlbst to here
+FUNCTION {init.state.consts}
+{ #0 'outside.brackets := % urlbst
+ #1 'open.brackets :=
+ #2 'within.brackets :=
+ #3 'close.brackets :=
+
+ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+% urlbst
+FUNCTION {output.nonnull.original}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+% urlbst...
+% The following three functions are for handling inlinelink. They wrap
+% a block of text which is potentially output with write$ by multiple
+% other functions, so we don't know the content a priori.
+% They communicate between each other using the variables makeinlinelink
+% (which is true if a link should be made), and closeinlinelink (which holds
+% the string which should close any current link. They can be called
+% at any time, but start.inlinelink will be a no-op unless something has
+% previously set makeinlinelink true, and the two ...end.inlinelink functions
+% will only do their stuff if start.inlinelink has previously set
+% closeinlinelink to be non-empty.
+FUNCTION {setup.inlinelink}
+{ makeinlinelink
+ { hrefform #1 = % hypertex
+ { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
+ "\special {html:</a>}" 'closeinlinelink :=
+ }
+ { hrefform #2 = % hyperref
+ { "\href{" url * "}{" * 'openinlinelink :=
+ "}" 'closeinlinelink :=
+ }
+ 'skip$
+ if$ % hrefform #2 =
+ }
+ if$ % hrefform #1 =
+ #0 'makeinlinelink :=
+ }
+ 'skip$
+ if$ % makeinlinelink
+}
+FUNCTION {add.inlinelink}
+{ openinlinelink empty$
+ 'skip$
+ { openinlinelink swap$ * closeinlinelink *
+ "" 'openinlinelink :=
+ }
+ if$
+}
+FUNCTION {output.nonnull}
+{ % Save the thing we've been asked to output
+ 's :=
+ % If the bracket-state is close.brackets, then add a close-bracket to
+ % what is currently at the top of the stack, and set bracket.state
+ % to outside.brackets
+ bracket.state close.brackets =
+ { "]" *
+ outside.brackets 'bracket.state :=
+ }
+ 'skip$
+ if$
+ bracket.state outside.brackets =
+ { % We're outside all brackets -- this is the normal situation.
+ % Write out what's currently at the top of the stack, using the
+ % original output.nonnull function.
+ s
+ add.inlinelink
+ output.nonnull.original % invoke the original output.nonnull
+ }
+ { % Still in brackets. Add open-bracket or (continuation) comma, add the
+ % new text (in s) to the top of the stack, and move to the close-brackets
+ % state, ready for next time (unless inbrackets resets it). If we come
+ % into this branch, then output.state is carefully undisturbed.
+ bracket.state open.brackets =
+ { " [" * }
+ { ", " * } % bracket.state will be within.brackets
+ if$
+ s *
+ close.brackets 'bracket.state :=
+ }
+ if$
+}
+
+% Call this function just before adding something which should be presented in
+% brackets. bracket.state is handled specially within output.nonnull.
+FUNCTION {inbrackets}
+{ bracket.state close.brackets =
+ { within.brackets 'bracket.state := } % reset the state: not open nor closed
+ { open.brackets 'bracket.state := }
+ if$
+}
+
+FUNCTION {format.lastchecked}
+{ lastchecked empty$
+ { "" }
+ { inbrackets "cited " lastchecked * }
+ if$
+}
+% ...urlbst to here
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem.original}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry.original}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {scapify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\sc " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {boldify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bf " swap$ * "}" * }
+ if$
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names scapify }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { editor format.names scapify
+ editor num.names$ #1 >
+ { ", editors" * }
+ { ", editor" * }
+ if$
+ }
+ if$
+}
+
+% this changes the case; very bad for abbreviations like DNA, RNA
+%FUNCTION {format.title}
+%{ title empty$
+% { "" }
+% { title "t" change.case$ }
+% if$
+%}
+
+FUNCTION {format.title}
+{ title boldify
+}
+
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { "" volume boldify tie.or.space.connect
+ series empty$
+ 'skip$
+ { " of " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "number" }
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { "pages" pages n.dashify tie.or.space.connect }
+ { "page" pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null boldify
+ number empty$
+ 'skip$
+ { "(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { "chapter" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "In " booktitle emphasize * }
+ { "In " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "In {\em " journal * "\/}" * }
+ if$
+ }
+ { "In " key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$
+ #2 >
+ { pop$ " et~al." * }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "In "
+ }
+ { "Volume" volume tie.or.space.connect
+ " of " *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "In {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "In " key * }
+ if$
+ }
+ { "In " format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+% urlbst...
+% Functions for making hypertext links.
+% In all cases, the stack has (link-text href-url)
+%
+% make 'null' specials
+FUNCTION {make.href.null}
+{
+ pop$
+}
+% make hypertex specials
+FUNCTION {make.href.hypertex}
+{
+ "\special {html:<a href=" quote$ *
+ swap$ * quote$ * "> }" * swap$ *
+ "\special {html:</a>}" *
+}
+% make hyperref specials
+FUNCTION {make.href.hyperref}
+{
+ "\href {" swap$ * "} {\path{" * swap$ * "}}" *
+}
+FUNCTION {make.href}
+{ hrefform #2 =
+ 'make.href.hyperref % hrefform = 2
+ { hrefform #1 =
+ 'make.href.hypertex % hrefform = 1
+ 'make.href.null % hrefform = 0 (or anything else)
+ if$
+ }
+ if$
+}
+
+% If inlinelinks is true, then format.url should be a no-op, since it's
+% (a) redundant, and (b) could end up as a link-within-a-link.
+FUNCTION {format.url}
+{ inlinelinks #1 = url empty$ or
+ { "" }
+ { hrefform #1 =
+ { % special case -- add HyperTeX specials
+ urlintro "\url{" url * "}" * url make.href.hypertex * }
+ { urlintro "\url{" * url * "}" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.eprint}
+{ eprint empty$
+ { "" }
+ { eprintprefix eprint * eprinturl eprint * make.href }
+ if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$
+ { "" }
+ { doiprefix doi * doiurl doi * make.href }
+ if$
+}
+
+% Output a URL. We can't use the more normal idiom (something like
+% `format.url output'), because the `inbrackets' within
+% format.lastchecked applies to everything between calls to `output',
+% so that `format.url format.lastchecked * output' ends up with both
+% the URL and the lastchecked in brackets.
+FUNCTION {output.url}
+{ url empty$
+ 'skip$
+ { new.block
+ format.url output
+ format.lastchecked output
+ }
+ if$
+}
+
+FUNCTION {output.web.refs}
+{
+ new.block
+ output.url
+ addeprints eprint empty$ not and
+ { format.eprint output.nonnull }
+ 'skip$
+ if$
+ adddoiresolver doi empty$ not and
+ { format.doi output.nonnull }
+ 'skip$
+ if$
+}
+
+% Wrapper for output.bibitem.original.
+% If the URL field is not empty, set makeinlinelink to be true,
+% so that an inline link will be started at the next opportunity
+FUNCTION {output.bibitem}
+{ outside.brackets 'bracket.state :=
+ output.bibitem.original
+ inlinelinks url empty$ not and
+ { #1 'makeinlinelink := }
+ { #0 'makeinlinelink := }
+ if$
+}
+
+% Wrapper for fin.entry.original
+FUNCTION {fin.entry}
+{ output.web.refs % urlbst
+ makeinlinelink % ooops, it appears we didn't have a title for inlinelink
+ { setup.inlinelink % add some artificial link text here, as a fallback
+ "[link]" output.nonnull }
+ 'skip$
+ if$
+ bracket.state close.brackets = % urlbst
+ { "]" * }
+ 'skip$
+ if$
+ fin.entry.original
+}
+
+% Webpage entry type.
+% Title and url fields required;
+% author, note, year, month, and lastchecked fields optional
+% See references
+% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm
+% http://www.classroom.net/classroom/CitingNetResources.html
+% http://neal.ctstateu.edu/history/cite.html
+% http://www.cas.usf.edu/english/walker/mla.html
+% for citation formats for web pages.
+FUNCTION {webpage}
+{ output.bibitem
+ author empty$
+ { editor empty$
+ 'skip$ % author and editor both optional
+ { format.editors output.nonnull }
+ if$
+ }
+ { editor empty$
+ { format.authors output.nonnull }
+ { "can't use both author and editor fields in " cite$ * warning$ }
+ if$
+ }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$
+ format.title "title" output.check
+ inbrackets "online" output
+ new.block
+ year empty$
+ 'skip$
+ { format.date "year" output.check }
+ if$
+ % We don't need to output the URL details ('lastchecked' and 'url'),
+ % because fin.entry does that for us, using output.web.refs. The only
+ % reason we would want to put them here is if we were to decide that
+ % they should go in front of the rather miscellaneous information in 'note'.
+ new.block
+ note output
+ fin.entry
+}
+% ...urlbst to here
+
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+ format.vol.num.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ address empty$
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {dphilthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ new.block
+ "DPhil thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { "et al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.urlbst.variables}
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
diff --git a/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-url2.bst b/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-url2.bst
new file mode 100644
index 0000000..90e11a5
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/PhDbiblio-url2.bst
@@ -0,0 +1,1448 @@
+%%% Modification of BibTeX style file CUEDbiblio.bst
+%%% ... by urlbst, version 0.6 (marked with "% urlbst")
+%%% See <http://purl.org/nxg/dist/urlbst>
+%%% Added webpage entry type, and url and lastchecked fields.
+%%% Added hyperref support.
+%%% Original headers follow...
+
+% BibTeX standard bibliography style `plain'
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1985, all rights reserved.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ eprint % urlbst
+ doi % urlbst
+ url % urlbst
+ lastchecked % urlbst
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl openinlinelink closeinlinelink } % urlbst...
+INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver }
+% Following constants may be adjusted by hand, if desired
+FUNCTION {init.urlbst.variables}
+{
+ "Available from: " 'urlintro := % prefix before URL
+ "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+ "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+ "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
+ "doi:" 'doiprefix := % text prefix printed before DOI ref
+ #0 'addeprints := % 0=no eprints; 1=include eprints
+ #0 'adddoiresolver := % 0=no DOI resolver; 1=include it
+ #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
+ #1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
+ % the following are internal state variables, not config constants
+ #0 'makeinlinelink := % state variable managed by setup.inlinelink
+ "" 'openinlinelink := % ditto
+ "" 'closeinlinelink := % ditto
+}
+INTEGERS {
+ bracket.state
+ outside.brackets
+ open.brackets
+ within.brackets
+ close.brackets
+}
+% ...urlbst to here
+FUNCTION {init.state.consts}
+{ #0 'outside.brackets := % urlbst
+ #1 'open.brackets :=
+ #2 'within.brackets :=
+ #3 'close.brackets :=
+
+ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+% urlbst
+FUNCTION {output.nonnull.original}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+% urlbst...
+% The following three functions are for handling inlinelink. They wrap
+% a block of text which is potentially output with write$ by multiple
+% other functions, so we don't know the content a priori.
+% They communicate between each other using the variables makeinlinelink
+% (which is true if a link should be made), and closeinlinelink (which holds
+% the string which should close any current link. They can be called
+% at any time, but start.inlinelink will be a no-op unless something has
+% previously set makeinlinelink true, and the two ...end.inlinelink functions
+% will only do their stuff if start.inlinelink has previously set
+% closeinlinelink to be non-empty.
+FUNCTION {setup.inlinelink}
+{ makeinlinelink
+ { hrefform #1 = % hypertex
+ { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
+ "\special {html:</a>}" 'closeinlinelink :=
+ }
+ { hrefform #2 = % hyperref
+ { "\href{" url * "}{" * 'openinlinelink :=
+ "}" 'closeinlinelink :=
+ }
+ 'skip$
+ if$ % hrefform #2 =
+ }
+ if$ % hrefform #1 =
+ #0 'makeinlinelink :=
+ }
+ 'skip$
+ if$ % makeinlinelink
+}
+FUNCTION {add.inlinelink}
+{ openinlinelink empty$
+ 'skip$
+ { openinlinelink swap$ * closeinlinelink *
+ "" 'openinlinelink :=
+ }
+ if$
+}
+FUNCTION {output.nonnull}
+{ % Save the thing we've been asked to output
+ 's :=
+ % If the bracket-state is close.brackets, then add a close-bracket to
+ % what is currently at the top of the stack, and set bracket.state
+ % to outside.brackets
+ bracket.state close.brackets =
+ { "]" *
+ outside.brackets 'bracket.state :=
+ }
+ 'skip$
+ if$
+ bracket.state outside.brackets =
+ { % We're outside all brackets -- this is the normal situation.
+ % Write out what's currently at the top of the stack, using the
+ % original output.nonnull function.
+ s
+ add.inlinelink
+ output.nonnull.original % invoke the original output.nonnull
+ }
+ { % Still in brackets. Add open-bracket or (continuation) comma, add the
+ % new text (in s) to the top of the stack, and move to the close-brackets
+ % state, ready for next time (unless inbrackets resets it). If we come
+ % into this branch, then output.state is carefully undisturbed.
+ bracket.state open.brackets =
+ { " [" * }
+ { ", " * } % bracket.state will be within.brackets
+ if$
+ s *
+ close.brackets 'bracket.state :=
+ }
+ if$
+}
+
+% Call this function just before adding something which should be presented in
+% brackets. bracket.state is handled specially within output.nonnull.
+FUNCTION {inbrackets}
+{ bracket.state close.brackets =
+ { within.brackets 'bracket.state := } % reset the state: not open nor closed
+ { open.brackets 'bracket.state := }
+ if$
+}
+
+FUNCTION {format.lastchecked}
+{ lastchecked empty$
+ { "" }
+ { inbrackets "cited " lastchecked * }
+ if$
+}
+% ...urlbst to here
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem.original}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry.original}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {scapify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\sc " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {boldify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bf " swap$ * "}" * }
+ if$
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names scapify }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { editor format.names scapify
+ editor num.names$ #1 >
+ { ", editors" * }
+ { ", editor" * }
+ if$
+ }
+ if$
+}
+
+% this changes the case; very bad for abbreviations like DNA, RNA
+%FUNCTION {format.title}
+%{ title empty$
+% { "" }
+% { title "t" change.case$ }
+% if$
+%}
+
+FUNCTION {format.title}
+{ title boldify
+}
+
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { "" volume boldify tie.or.space.connect
+ series empty$
+ 'skip$
+ { " of " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "number" }
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { "pages" pages n.dashify tie.or.space.connect }
+ { "page" pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null boldify
+ number empty$
+ 'skip$
+ { "(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { "chapter" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "In " booktitle emphasize * }
+ { "In " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "In {\em " journal * "\/}" * }
+ if$
+ }
+ { "In " key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$
+ #2 >
+ { pop$ " et~al." * }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "In "
+ }
+ { "Volume" volume tie.or.space.connect
+ " of " *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "In {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "In " key * }
+ if$
+ }
+ { "In " format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+% urlbst...
+% Functions for making hypertext links.
+% In all cases, the stack has (link-text href-url)
+%
+% make 'null' specials
+FUNCTION {make.href.null}
+{
+ pop$
+}
+% make hypertex specials
+FUNCTION {make.href.hypertex}
+{
+ "\special {html:<a href=" quote$ *
+ swap$ * quote$ * "> }" * swap$ *
+ "\special {html:</a>}" *
+}
+% make hyperref specials
+FUNCTION {make.href.hyperref}
+{
+ "\href {" swap$ * "} {\path{" * swap$ * "}}" *
+}
+FUNCTION {make.href}
+{ hrefform #2 =
+ 'make.href.hyperref % hrefform = 2
+ { hrefform #1 =
+ 'make.href.hypertex % hrefform = 1
+ 'make.href.null % hrefform = 0 (or anything else)
+ if$
+ }
+ if$
+}
+
+% If inlinelinks is true, then format.url should be a no-op, since it's
+% (a) redundant, and (b) could end up as a link-within-a-link.
+FUNCTION {format.url}
+{ inlinelinks #1 = url empty$ or
+ { "" }
+ { hrefform #1 =
+ { % special case -- add HyperTeX specials
+ urlintro "\url{" url * "}" * url make.href.hypertex * }
+ { urlintro "\url{" * url * "}" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.eprint}
+{ eprint empty$
+ { "" }
+ { eprintprefix eprint * eprinturl eprint * make.href }
+ if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$
+ { "" }
+ { doiprefix doi * doiurl doi * make.href }
+ if$
+}
+
+% Output a URL. We can't use the more normal idiom (something like
+% `format.url output'), because the `inbrackets' within
+% format.lastchecked applies to everything between calls to `output',
+% so that `format.url format.lastchecked * output' ends up with both
+% the URL and the lastchecked in brackets.
+FUNCTION {output.url}
+{ url empty$
+ 'skip$
+ { new.block
+ format.url output
+ format.lastchecked output
+ }
+ if$
+}
+
+FUNCTION {output.web.refs}
+{
+ new.block
+ output.url
+ addeprints eprint empty$ not and
+ { format.eprint output.nonnull }
+ 'skip$
+ if$
+ adddoiresolver doi empty$ not and
+ { format.doi output.nonnull }
+ 'skip$
+ if$
+}
+
+% Wrapper for output.bibitem.original.
+% If the URL field is not empty, set makeinlinelink to be true,
+% so that an inline link will be started at the next opportunity
+FUNCTION {output.bibitem}
+{ outside.brackets 'bracket.state :=
+ output.bibitem.original
+ inlinelinks url empty$ not and
+ { #1 'makeinlinelink := }
+ { #0 'makeinlinelink := }
+ if$
+}
+
+% Wrapper for fin.entry.original
+FUNCTION {fin.entry}
+{ output.web.refs % urlbst
+ makeinlinelink % ooops, it appears we didn't have a title for inlinelink
+ { setup.inlinelink % add some artificial link text here, as a fallback
+ "[link]" output.nonnull }
+ 'skip$
+ if$
+ bracket.state close.brackets = % urlbst
+ { "]" * }
+ 'skip$
+ if$
+ fin.entry.original
+}
+
+% Webpage entry type.
+% Title and url fields required;
+% author, note, year, month, and lastchecked fields optional
+% See references
+% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm
+% http://www.classroom.net/classroom/CitingNetResources.html
+% http://neal.ctstateu.edu/history/cite.html
+% http://www.cas.usf.edu/english/walker/mla.html
+% for citation formats for web pages.
+FUNCTION {webpage}
+{ output.bibitem
+ author empty$
+ { editor empty$
+ 'skip$ % author and editor both optional
+ { format.editors output.nonnull }
+ if$
+ }
+ { editor empty$
+ { format.authors output.nonnull }
+ { "can't use both author and editor fields in " cite$ * warning$ }
+ if$
+ }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$
+ format.title "title" output.check
+ inbrackets "online" output
+ new.block
+ year empty$
+ 'skip$
+ { format.date "year" output.check }
+ if$
+ % We don't need to output the URL details ('lastchecked' and 'url'),
+ % because fin.entry does that for us, using output.web.refs. The only
+ % reason we would want to put them here is if we were to decide that
+ % they should go in front of the rather miscellaneous information in 'note'.
+ new.block
+ note output
+ fin.entry
+}
+% ...urlbst to here
+
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+ format.vol.num.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ address empty$
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {dphilthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ new.block
+ "DPhil thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+% --------------------------------------------------------------
+% --------------------------------------------------------------
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { "et al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+%SORT % uncomment to sort references alphabetically
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.urlbst.variables}
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
diff --git a/vu-cs-standard-thesis/Latex/Classes/PhDthesisPSnPDF.cls b/vu-cs-standard-thesis/Latex/Classes/PhDthesisPSnPDF.cls
new file mode 100644
index 0000000..d076c3d
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/PhDthesisPSnPDF.cls
@@ -0,0 +1,409 @@
+
+%---------------------------------------------------------------
+% PhDthesis version 2 style file by Jakob Suckale, 2007
+% based on CUEDthesis version 1 by Harish Bhanderi 2002
+%---------------------------------------------------------------
+
+
+
+%-------------------------- identification ---------------------
+%\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{Latex/Classes/PhDthesisPSnPDF}[2007/09/06 v2 PhD thesis class]
+
+
+%:-------------------------- report or book -----------------------
+
+%If you want to use a Report style document then uncomment the following 3 lines and comment the below 8 book style lines:
+%\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
+%\ProcessOptions\relax
+%%\LoadClass[a4paper]{report}
+%\ifx\pdfoutput\undefined
+% \LoadClass[dvips, a4paper]{report}
+%\else
+% \LoadClass[pdftex, a4paper]{report}
+%\fi
+
+%%Bibliography
+%%uncomment next line to change bibliography name to references for Report document class
+%\renewcommand{\refname}{References}
+
+%If you want to use a Book style document then uncomment the following 3 lines and comment the above 8 report style lines:
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
+\ProcessOptions\relax
+\ifx\pdfoutput\undefined
+ \LoadClass[dvips, a4paper]{book}
+\else
+ \LoadClass[pdftex, a4paper]{book}
+\fi
+
+
+%:-------------------------- packages for fancy things -----------------------
+
+\usepackage{amssymb}
+\usepackage{graphics} % for improved inclusion of graphics
+%\usepackage{wrapfig} % to include figure with text wrapping around it
+\usepackage[margin=10pt,font=small,labelfont=bf]{caption} % for improved layout of figure captions with extra margin, smaller font than text
+\usepackage{fancyhdr} % for better header layout
+\usepackage{eucal}
+\usepackage[english]{babel}
+\usepackage[usenames, dvipsnames]{color}
+\usepackage[perpage]{footmisc}
+\usepackage[round, sort, numbers]{natbib}
+\usepackage{ifthen}
+\usepackage{multicol} % for pages with multiple text columns, e.g. References
+\setlength{\columnsep}{20pt} % space between columns; default 10pt quite narrow
+\usepackage[nottoc]{tocbibind} % correct page numbers for bib in TOC, nottoc suppresses an entry for TOC itself
+%\usepackage{nextpage}
+
+%:-------------------------- Glossary/Abbrev./Symbols -----------------------
+
+\usepackage[intoc]{nomencl} % load nomencl extension; include in TOC
+%\nomrefpage % to include page numbers after abbrevations
+\renewcommand{\nomname}{Glossary} % rename nomenclature
+\renewcommand{\nomlabel}[1]{\textbf{#1}} % make abbreviations bold
+\makenomenclature % used to be \makeglossary
+\newcommand{\g}{\footnote{For all abbreviations see the glossary on page \pageref{nom}.}} % type "\g" to refer to glossary
+
+% used to be for sorting into categories:
+%\renewcommand\nomgroup[1]{%
+% \ifthenelse{\equal{#1}{A}}{%
+% \item[\textbf{Roman Symbols}] }{% A - Roman
+% \ifthenelse{\equal{#1}{G}}{%
+% \item[\textbf{Greek Symbols}]}{% G - Greek
+% \ifthenelse{\equal{#1}{R}}{%
+% \item[\textbf{Superscripts}]}{% R - Superscripts
+% \ifthenelse{\equal{#1}{S}}{%
+% \item[\textbf{Subscripts}]}{{% S - Subscripts
+% \ifthenelse{\equal{#1}{X}}{%
+% \item[\textbf{Other Symbols}]}{{% X - Other Symbols
+% \ifthenelse{\equal{#1}{Z}}{%
+% \item[\textbf{Acronyms}]}% Z - Acronyms
+% {{}}}}}}}}}}
+
+
+%:-------------------------- PDF/PS setup -----------------------
+
+%if you use a macTeX 2008 or later, use the ifpdf package
+\usepackage{ifpdf}
+
+%if you use an older version, uncomment these lines:
+%\newif \ifpdf
+% \ifx \pdfoutput \undefined
+ % for running latex
+% \pdffalse
+% \else
+ % for running pdflatex
+% \pdfoutput = 1 % positive value for a PDF output
+ % otherwise a DVI
+% \pdftrue
+%\fi
+
+\ifpdf
+%-->
+%--> Google.com search "hyperref options"
+%-->
+%--> http://www.ai.mit.edu/lab/sysadmin/latex/documentation/latex/hyperref/manual.pdf
+%--> http://www.chemie.unibas.ch/~vogtp/LaTeX2PDFLaTeX.pdf
+%--> http://www.uni-giessen.de/partosch/eurotex99/ oberdiek/print/sli4a4col.pdf
+%--> http://me.in-berlin.de/~miwie/tex-refs/html/latex-packages.html
+%-->
+ \usepackage[ pdftex, plainpages = false, pdfpagelabels,
+ pdfpagelayout = useoutlines,
+ bookmarks,
+ bookmarksopen = true,
+ bookmarksnumbered = true,
+ breaklinks = true,
+ linktocpage,
+ pagebackref,
+ colorlinks = false, % was true
+ linkcolor = blue,
+ urlcolor = blue,
+ citecolor = red,
+ anchorcolor = green,
+ hyperindex = true,
+ hyperfigures
+ ]{hyperref}
+
+ \DeclareGraphicsExtensions{.png, .jpg, .jpeg, .pdf, .gif} %GIF doesn't work??
+ \usepackage[pdftex]{graphicx}
+ \pdfcompresslevel=9
+ \graphicspath{{0_frontmatter/figures/PNG/}{0_frontmatter/figures/PDF/}{0_frontmatter/figures/}}
+\else
+ \usepackage[ dvips,
+ bookmarks,
+ bookmarksopen = true,
+ bookmarksnumbered = true,
+ breaklinks = true,
+ linktocpage,
+ pagebackref,
+ colorlinks = true,
+ linkcolor = blue,
+ urlcolor = blue,
+ citecolor = red,
+ anchorcolor = green,
+ hyperindex = true,
+ hyperfigures
+ ]{hyperref}
+
+ \DeclareGraphicsExtensions{.eps, .ps}
+ \usepackage{epsfig}
+ \usepackage{graphicx}
+ \graphicspath{{0_frontmatter/figures/EPS/}{0_frontmatter/figures/}}
+\fi
+
+
+%:-------------------------- page layout -----------------------
+
+%A4 settings
+\ifpdf
+ \pdfpageheight=297mm
+ \pdfpagewidth=210mm
+\else
+ \setlength{\paperheight}{297mm}
+ \setlength{\paperwidth}{210mm}
+\fi
+
+\setlength{\hoffset}{0.00cm}
+\setlength{\voffset}{0.00cm}
+
+%: Uncomment this secion for two-sided printing
+% ------------------------------
+\setlength{\oddsidemargin}{1.5cm}
+\setlength{\evensidemargin}{0cm}
+\setlength{\topmargin}{1mm}
+\setlength{\headheight}{1.36cm}
+\setlength{\headsep}{1.00cm}
+\setlength{\textheight}{20.84cm}
+\setlength{\textwidth}{14.5cm}
+\setlength{\marginparsep}{1mm}
+\setlength{\marginparwidth}{3cm}
+\setlength{\footskip}{2.36cm}
+
+
+%: Uncomment this secion for one-sided printing
+% taken from the original file, but with the first two lanes modified
+% ------------------------------
+%\setlength{\evensidemargin}{1.9cm} % was 1.96cm in original
+%\setlength{\oddsidemargin}{-0.001cm} % was -0.54cm in original file
+%\setlength{\topmargin}{1mm}
+%\setlength{\headheight}{1.36cm}
+%\setlength{\headsep}{1.00cm}
+%\setlength{\textheight}{20.84cm}
+%\setlength{\textwidth}{14.5cm}
+%\setlength{\marginparsep}{1mm}
+%\setlength{\marginparwidth}{3cm}
+%\setlength{\footskip}{2.36cm}
+
+
+%: section below defines fancy page layout options
+% ------------------------------
+\pagestyle{fancy}
+\renewcommand{\chaptermark}[1]{\markboth{\MakeUppercase{\thechapter. #1 }}{}}
+\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
+\fancyhf{}
+\fancyhead[RO]{\bfseries\rightmark}
+\fancyhead[LE]{\bfseries\leftmark}
+\fancyfoot[C]{\thepage}
+\renewcommand{\headrulewidth}{0.5pt}
+\renewcommand{\footrulewidth}{0pt}
+\addtolength{\headheight}{0.5pt}
+\fancypagestyle{plain}{
+ \fancyhead{}
+ \renewcommand{\headrulewidth}{0pt}
+}
+
+
+
+
+
+%:-------------------------- title page layout -----------------------
+
+% starts roman page numbering until chapter 1
+% important to avoid two pages numbered 1 and 2 which may cause bad links
+% bug: cover i + back side ii and then numbering restarts with i; should be iii
+\renewcommand{\thepage}{\roman{page}}
+
+\newcommand{\submittedtext}{{A thesis submitted for the degree of}}
+
+% DECLARATIONS
+% These macros are used to declare arguments needed for the
+% construction of the title page and other preamble.
+
+% The year and term the degree will be officially conferred
+\def\degreedate#1{\gdef\@degreedate{#1}}
+% The full (unabbreviated) name of the degree
+\def\degree#1{\gdef\@degree{#1}}
+% The name of your college or department(eg. Trinity, Pembroke, Maths, Physics)
+\def\collegeordept#1{\gdef\@collegeordept{#1}}
+% The name of your University
+\def\university#1{\gdef\@university{#1}}
+% Defining the crest
+\def\crest#1{\gdef\@crest{#1}}
+% Stating the city of birth for title page where needed; uncommented for use
+%\def\cityofbirth#1{\gdef\@cityofbirth{#1}}
+
+% These macros define an environment for front matter that is always
+% single column even in a double-column document.
+
+\newenvironment{alwayssingle}{%
+ \@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \else\newpage\fi}
+ {\if@restonecol\twocolumn\else\newpage\fi}
+
+%define title page layout
+\renewcommand{\maketitle}{%
+\begin{alwayssingle}
+ \renewcommand{\footnotesize}{\small}
+ \renewcommand{\footnoterule}{\relax}
+ \thispagestyle{empty}
+% \null\vfill
+ \begin{center}
+ { \Huge {\bfseries {\@title}} \par}
+{\large \vspace*{35mm} {{\@crest} \par} \vspace*{25mm}}
+ {{\Large \@author} \par}
+% \vspace*{1ex}
+% {{\@cityofbirth} \par}
+{\large
+ \vspace*{1ex}
+ {{\@collegeordept} \par}
+ \vspace*{1ex}
+ {{\@university} \par}
+ \vspace*{25mm}
+ {{\submittedtext} \par}
+ \vspace*{1ex}
+ {\it {\@degree} \par}
+ \vspace*{2ex}
+ {\@degreedate}
+}%end large
+ \end{center}
+ \null\vfill
+\end{alwayssingle}}
+
+% page number for cover back side should have page number blanked
+
+
+%:-------------------------- front matter layout -----------------------
+
+% DEDICATION
+%
+% The dedication environment makes sure the dedication gets its
+% own page and is set out in verse format.
+
+\newenvironment{dedication}
+{\begin{alwayssingle}
+ \pagestyle{empty}
+ \begin{center}
+ \vspace*{1.5cm}
+ {\LARGE }
+ \end{center}
+ \vspace{0.5cm}
+ \begin{quote} \begin{center}}
+{\end{center} \end{quote} \end{alwayssingle}}
+
+
+% ACKNOWLEDGEMENTS
+%
+% The acknowledgements environment puts a large, bold, centered
+% "Acknowledgements" label at the top of the page. The acknowledgements
+% themselves appear in a quote environment, i.e. tabbed in at both sides, and
+% on its own page.
+
+\newenvironment{acknowledgements}
+{\pagestyle{empty}
+\begin{alwayssingle}
+\begin{center}
+\vspace*{1.5cm}
+{\Large \bfseries Acknowledgements}
+\end{center}
+\vspace{0.5cm}
+\begin{quote}}
+{\end{quote}\end{alwayssingle}}
+
+% The acknowledgementslong environment puts a large, bold, centered
+% "Acknowledgements" label at the top of the page. The acknowledgement itself
+% does not appears in a quote environment so you can get more in.
+
+\newenvironment{acknowledgementslong}
+{\pagestyle{empty}
+\begin{alwayssingle}
+\begin{center}
+\vspace*{1.5cm}
+{\Large \bfseries Acknowledgements}
+\end{center}
+\vspace{0.5cm}\begin{quote}}
+{\end{quote}\end{alwayssingle}}
+
+%ABSTRACT
+%
+%The abstract environment puts a large, bold, centered "Abstract" label at
+%the top of the page. The abstract itself appears in a quote environment,
+%i.e. tabbed in at both sides, and on its own page.
+
+\newenvironment{abstracts} {\begin{alwayssingle} \pagestyle{empty}
+ \begin{center}
+ \vspace*{1.5cm}
+ {\Large \bfseries Abstract}
+ \end{center}
+ \vspace{0.5cm}
+ \begin{quote}}
+{\end{quote}\end{alwayssingle}}
+
+%The abstractlong environment puts a large, bold, centered "Abstract" label at
+%the top of the page. The abstract itself does not appears in a quote
+%environment so you can get more in.
+
+\newenvironment{abstractslong} {\begin{alwayssingle} \pagestyle{empty}
+ \begin{center}
+ \vspace*{1.5cm}
+ {\Large \bfseries Abstract}
+ \end{center}
+ \vspace{0.5cm} \begin{quote}}
+{\end{quote}\end{alwayssingle}}
+
+%The abstractseparate environment is for running of a page with the abstract
+%on including title and author etc as required to be handed in separately
+
+\newenvironment{abstractseparate} {\begin{alwayssingle} \pagestyle{empty}
+ \vspace*{-1in}
+ \begin{center}
+ { \Large {\bfseries {\@title}} \par}
+ {{\large \vspace*{1ex} \@author} \par}
+{\large \vspace*{1ex}
+ {{\@collegeordept} \par}
+ {{\@university} \par}
+\vspace*{1ex}
+ {{\it \submittedtext} \par}
+ {\it {\@degree} \par}
+\vspace*{2ex}
+ {\@degreedate}}
+ \end{center}}
+{\end{alwayssingle}}
+
+%Statement of originality if required
+
+\newenvironment{declaration} {\begin{alwayssingle} \pagestyle{empty}
+ \begin{center}
+ \vspace*{1.5cm}
+ {\Large \bfseries Declaration}
+ \end{center}
+ \vspace{0.5cm}
+ \begin{quote}}
+{\end{quote}\end{alwayssingle}}
+
+
+%:-------------------------- page numbers: roman+arabic -----------------------
+
+% ROMANPAGES
+%
+% The romanpages environment set the page numbering to lowercase roman one
+% for the contents and figures lists. It also resets
+% page-numbering for the remainder of the dissertation (arabic, starting at 1).
+
+%\newenvironment{romanpages}
+%{
+% \setcounter{page}{1}
+% \renewcommand{\thepage}{\roman{page}}
+%} % close romanpage env't
+
+{\newpage\renewcommand{\thepage}{\arabic{page}}\setcounter{page}{1}}
+
diff --git a/vu-cs-standard-thesis/Latex/Classes/elsarticle-num.bst b/vu-cs-standard-thesis/Latex/Classes/elsarticle-num.bst
new file mode 100644
index 0000000..24654f1
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/elsarticle-num.bst
@@ -0,0 +1,1507 @@
+%%
+%% This is file `elsarticle-num.bst',
+%%
+%% Copyright 2007, 2008, 2009 Elsevier Ltd
+%%
+%% This file is part of the 'Elsarticle Bundle'.
+%% ---------------------------------------------
+%%
+%% It may be distributed under the conditions of the LaTeX Project Public
+%% License, either version 1.2 of this license or (at your option) any
+%% later version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% The list of all files belonging to the 'Elsarticle Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%%
+%% $Id: elsarticle-num.bst 19 2009-12-17 07:07:52Z rishi $
+%%
+%%
+%% ----------------------------------------
+%%
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ eprint % urlbst
+ doi % urlbst
+ url % urlbst
+ lastchecked % urlbst
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl openinlinelink closeinlinelink } % urlbst...
+INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver }
+FUNCTION {init.urlbst.variables}
+{
+ "Available from: " 'urlintro := % prefix before URL
+ "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+ "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+ "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
+ "doi:" 'doiprefix := % text prefix printed before DOI ref
+ #1 'addeprints := % 0=no eprints; 1=include eprints
+ #1 'adddoiresolver := % 0=no DOI resolver; 1=include it
+ #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
+ #1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
+ % the following are internal state variables, not config constants
+ #0 'makeinlinelink := % state variable managed by setup.inlinelink
+ "" 'openinlinelink := % ditto
+ "" 'closeinlinelink := % ditto
+}
+INTEGERS {
+ bracket.state
+ outside.brackets
+ open.brackets
+ within.brackets
+ close.brackets
+}
+FUNCTION {init.state.consts}
+{ #0 'outside.brackets := % urlbst
+ #1 'open.brackets :=
+ #2 'within.brackets :=
+ #3 'close.brackets :=
+
+ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull.original}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {setup.inlinelink}
+{ makeinlinelink
+ { hrefform #1 = % hypertex
+ { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
+ "\special {html:</a>}" 'closeinlinelink :=
+ }
+ { hrefform #2 = % hyperref
+ { "\href{" url * "}{" * 'openinlinelink :=
+ "}" 'closeinlinelink :=
+ }
+ 'skip$
+ if$ % hrefform #2 =
+ }
+ if$ % hrefform #1 =
+ #0 'makeinlinelink :=
+ }
+ 'skip$
+ if$ % makeinlinelink
+}
+FUNCTION {add.inlinelink}
+{ openinlinelink empty$
+ 'skip$
+ { openinlinelink swap$ * closeinlinelink *
+ "" 'openinlinelink :=
+ }
+ if$
+}
+FUNCTION {output.nonnull}
+{ % Save the thing we've been asked to output
+ 's :=
+ % If the bracket-state is close.brackets, then add a close-bracket to
+ % what is currently at the top of the stack, and set bracket.state
+ % to outside.brackets
+ bracket.state close.brackets =
+ { "]" *
+ outside.brackets 'bracket.state :=
+ }
+ 'skip$
+ if$
+ bracket.state outside.brackets =
+ { % We're outside all brackets -- this is the normal situation.
+ % Write out what's currently at the top of the stack, using the
+ % original output.nonnull function.
+ s
+ add.inlinelink
+ output.nonnull.original % invoke the original output.nonnull
+ }
+ { % Still in brackets. Add open-bracket or (continuation) comma, add the
+ % new text (in s) to the top of the stack, and move to the close-brackets
+ % state, ready for next time (unless inbrackets resets it). If we come
+ % into this branch, then output.state is carefully undisturbed.
+ bracket.state open.brackets =
+ { " [" * }
+ { ", " * } % bracket.state will be within.brackets
+ if$
+ s *
+ close.brackets 'bracket.state :=
+ }
+ if$
+}
+
+FUNCTION {inbrackets}
+{ bracket.state close.brackets =
+ { within.brackets 'bracket.state := } % reset the state: not open nor closed
+ { open.brackets 'bracket.state := }
+ if$
+}
+
+FUNCTION {format.lastchecked}
+{ lastchecked empty$
+ { "" }
+ { inbrackets "cited " lastchecked * }
+ if$
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {fin.entry.original}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {add.blank}
+{ " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+ add.blank
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ skip$ }
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "Eds." }
+
+FUNCTION {bbl.editor}
+{ "Ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "Edition" }
+
+FUNCTION {bbl.volume}
+{ "Vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "pp." }
+
+FUNCTION {bbl.page}
+{ "p." }
+
+FUNCTION {bbl.chapter}
+{ "Ch." }
+
+FUNCTION {bbl.techrep}
+{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+FUNCTION {bbl.first}
+{ "1st" }
+
+FUNCTION {bbl.second}
+{ "2nd" }
+
+FUNCTION {bbl.third}
+{ "3rd" }
+
+FUNCTION {bbl.fourth}
+{ "4th" }
+
+FUNCTION {bbl.fifth}
+{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bbl.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bbl.st * }
+ { duplicate$ "2" =
+ { pop$ bbl.nd * }
+ { "3" =
+ { bbl.rd * }
+ { bbl.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Programming"}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Gr."}
+
+MACRO {toms} {"ACM Trans. Math. Softw."}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+
+MACRO {tcs} {"Theoretical Comput. Sci."}
+
+FUNCTION {write.url}
+{ url empty$
+ { skip$ }
+ { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{f.~}{vv~}{ll}{, jj}" format.name$
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ "," *
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ {
+ " " * bbl.etal *
+ }
+ { " " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {format.names.ed}
+{ format.names }
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { editor format.names
+ editor num.names$ #1 >
+ { " (" * bbl.editors * ")" * }
+ { " (" * bbl.editor * ")" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.editors}
+{ editor empty$
+ { "" }
+ { editor format.names.ed
+ editor num.names$ #1 >
+ { " (" * bbl.editors * ")" * }
+ { " (" * bbl.editor * ")" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.note}
+{
+ note empty$
+ { "" }
+ { note #1 #1 substring$
+ duplicate$ "{" =
+ 'skip$
+ { output.state mid.sentence =
+ { "l" }
+ { "u" }
+ if$
+ change.case$
+ }
+ if$
+ note #2 global.max$ substring$ *
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {output.bibitem.original}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {n.dashify}
+{
+ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {word.in}
+{ bbl.in
+ ":" *
+ " " * }
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+ duplicate$ empty$
+ 'skip$
+ {
+ before.all 'output.state :=
+ " (" swap$ * ")" *
+ }
+ if$
+}
+
+FUNCTION{format.year}
+{ year duplicate$ empty$
+ { "empty year in " cite$ * warning$ pop$ "" }
+ { "(" swap$ * ")" * }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bbl.volume volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { bbl.of space.word * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { bbl.number }
+ { bbl.number capitalize }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { bbl.in space.word * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {is.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$
+ t #2 global.max$ substring$ 't :=
+ duplicate$ is.num
+ { s swap$ * 's := }
+ { pop$ "" 't := }
+ if$
+ }
+ while$
+ s empty$
+ 'skip$
+ { pop$ s }
+ if$
+}
+
+FUNCTION {convert.edition}
+{ edition extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bbl.first 't := }
+ { s "second" = s "2" = or
+ { bbl.second 't := }
+ { s "third" = s "3" = or
+ { bbl.third 't := }
+ { s "fourth" = s "4" = or
+ { bbl.fourth 't := }
+ { s "fifth" = s "5" = or
+ { bbl.fifth 't := }
+ { s #1 #1 substring$ is.num
+ { s eng.ord 't := }
+ { edition 't := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ t
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { convert.edition "l" change.case$ " " * bbl.edition * }
+ { convert.edition "t" change.case$ " " * bbl.edition * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.journal.pages}
+{ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ {
+ " " *
+ format.year * " " *
+ pages n.dashify *
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{
+ % volume field.or.null
+ " "
+ volume empty$
+ { pop$ "" }
+ { volume * }
+ if$
+ number empty$
+ 'skip$
+ {
+ "~(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ { "" }
+ { type empty$
+ { bbl.chapter }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { word.in booktitle * }
+ { word.in format.in.editors * ", " *
+ booktitle * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { bbl.techrep }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{
+ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { word.in journal emphasize * }
+ if$
+ }
+ { word.in key * " " *}
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$
+ #2 >
+ { pop$
+ " " * bbl.etal *
+ }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ {
+ " " * bbl.etal *
+ }
+ { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$
+ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ word.in
+ }
+ { bbl.volume volume tie.or.space.connect
+ bbl.of space.word *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { series emphasize * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { word.in booktitle * }
+ if$
+ }
+ { word.in key * " " *}
+ if$
+ }
+ { word.in format.crossref.editor * " " *}
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.org.or.pub}
+{ 't :=
+ ""
+ year empty$
+ { "empty year in " cite$ * warning$ }
+ 'skip$
+ if$
+ address empty$ t empty$ and
+ year empty$ and
+ 'skip$
+ {
+ t empty$
+ { address empty$
+ 'skip$
+ { address * }
+ if$
+ }
+ { t *
+ address empty$
+ 'skip$
+ { ", " * address * }
+ if$
+ }
+ if$
+ year empty$
+ 'skip$
+ { t empty$ address empty$ and
+ 'skip$
+ { ", " * }
+ if$
+ year *
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.publisher.address}
+{ publisher empty$
+ { "empty publisher in " cite$ * warning$
+ ""
+ }
+ { publisher }
+ if$
+ format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization empty$
+ { "" }
+ { organization }
+ if$
+ format.org.or.pub
+}
+
+FUNCTION {make.href.null}
+{
+ pop$
+}
+FUNCTION {make.href.hypertex}
+{
+ "\special {html:<a href=" quote$ *
+ swap$ * quote$ * "> }" * swap$ *
+ "\special {html:</a>}" *
+}
+FUNCTION {make.href.hyperref}
+{
+ "\href {" swap$ * "} {\path{" * swap$ * "}}" *
+}
+FUNCTION {make.href}
+{ hrefform #2 =
+ 'make.href.hyperref % hrefform = 2
+ { hrefform #1 =
+ 'make.href.hypertex % hrefform = 1
+ 'make.href.null % hrefform = 0 (or anything else)
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.url}
+{ inlinelinks #1 = url empty$ or
+ { "" }
+ { hrefform #1 =
+ { % special case -- add HyperTeX specials
+ urlintro "\url{" url * "}" * url make.href.hypertex * }
+ { urlintro "\url{" * url * "}" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.eprint}
+{ eprint empty$
+ { "" }
+ { eprintprefix eprint * eprinturl eprint * make.href }
+ if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$
+ { "" }
+ { doiprefix doi * doiurl doi * make.href }
+ if$
+}
+
+FUNCTION {output.url}
+{ url empty$
+ 'skip$
+ { new.block
+ format.url output
+ format.lastchecked output
+ }
+ if$
+}
+
+FUNCTION {output.web.refs}
+{
+ new.block
+ output.url
+ addeprints eprint empty$ not and
+ { format.eprint output.nonnull }
+ 'skip$
+ if$
+ adddoiresolver doi empty$ not and
+ { format.doi output.nonnull }
+ 'skip$
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ outside.brackets 'bracket.state :=
+ output.bibitem.original
+ inlinelinks url empty$ not and
+ { #1 'makeinlinelink := }
+ { #0 'makeinlinelink := }
+ if$
+}
+
+FUNCTION {fin.entry}
+{ output.web.refs % urlbst
+ makeinlinelink % ooops, it appears we didn't have a title for inlinelink
+ { setup.inlinelink % add some artificial link text here, as a fallback
+ "[link]" output.nonnull }
+ 'skip$
+ if$
+ bracket.state close.brackets = % urlbst
+ { "]" * }
+ 'skip$
+ if$
+ fin.entry.original
+}
+
+FUNCTION {webpage}
+{ output.bibitem
+ author empty$
+ { editor empty$
+ 'skip$ % author and editor both optional
+ { format.editors output.nonnull }
+ if$
+ }
+ { editor empty$
+ { format.authors output.nonnull }
+ { "can't use both author and editor fields in " cite$ * warning$ }
+ if$
+ }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$
+ format.title "title" output.check
+ inbrackets "online" output
+ new.block
+ year empty$
+ 'skip$
+ { format.date "year" output.check }
+ if$
+ % We don't need to output the URL details ('lastchecked' and 'url'),
+ % because fin.entry does that for us, using output.web.refs. The only
+ % reason we would want to put them here is if we were to decide that
+ % they should go in front of the rather miscellaneous information in 'note'.
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ crossref missing$
+ { journal
+ "journal" output.check
+ % add.blank
+ before.all 'output.state :=
+ format.vol.num.pages output
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ format.journal.pages
+ format.note output
+ fin.entry
+ write.url
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ crossref missing$
+ { format.edition output
+ format.bvolume output
+ format.number.series output
+ format.publisher.address output
+ }
+ {
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.note output
+ fin.entry
+ write.url
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ howpublished output
+ address output
+ format.note output
+ format.date output
+ fin.entry
+ write.url
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ crossref missing$
+ {
+ format.edition output
+ format.bvolume output
+ format.number.series output
+ format.publisher.address output
+ format.chapter.pages "chapter and pages" output.check
+ }
+ {
+ format.chapter.pages "chapter and pages" output.check
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.pages "pages" output.check
+ format.note output
+ fin.entry
+ write.url
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.edition output
+ format.bvolume output
+ format.number.series output
+ format.publisher.address output
+ format.chapter.pages output
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ format.pages "pages" output.check
+ format.note output
+ fin.entry
+ write.url
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.edition output
+ format.bvolume output
+ format.number.series output
+ publisher empty$
+ { format.organization.address output }
+ { organization output
+ format.publisher.address output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ }
+ if$
+ format.pages "pages" output.check
+ format.note output
+ fin.entry
+ write.url
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ {
+ address output
+ }
+ 'skip$
+ if$
+ }
+ {
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.note output
+ format.date output
+ fin.entry
+ write.url
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ bbl.mthesis format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+ write.url
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title output
+ howpublished output
+ format.note output
+ format.date output
+ fin.entry
+ write.url
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ bbl.phdthesis format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+ write.url
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ editor empty$
+ { publisher empty$
+ 'skip$
+ {
+ format.publisher.address output
+ }
+ if$
+ }
+ { publisher empty$
+ {
+ format.organization.address output }
+ {
+ organization output
+ format.publisher.address output
+ }
+ if$
+ }
+ if$
+ format.note output
+ fin.entry
+ write.url
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.note output
+ format.date "year" output.check
+ fin.entry
+ write.url
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+ format.title "title" output.check
+ format.note "note" output.check
+ format.date output
+ fin.entry
+ write.url
+}
+
+FUNCTION {default.type} { misc }
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" *
+ write$ newline$
+ "\expandafter\ifx\csname url\endcsname\relax"
+ write$ newline$
+ " \def\url#1{\texttt{#1}}\fi"
+ write$ newline$
+ "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
+ write$ newline$
+ "\expandafter\ifx\csname href\endcsname\relax"
+ write$ newline$
+ " \def\href#1#2{#2} \def\path#1{#1}\fi"
+ write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.urlbst.variables}
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%% End of file `elsarticle-num.bst'.
+
+
diff --git a/vu-cs-standard-thesis/Latex/Classes/jmb.bst b/vu-cs-standard-thesis/Latex/Classes/jmb.bst
new file mode 100644
index 0000000..d62c9c2
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/jmb.bst
@@ -0,0 +1,1533 @@
+%%
+%% This is file `jmb.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% merlin.mbs (with options: `ay,nat,seq-lab,nm-rvv,jnrlst,keyxyr,dt-beg,yr-par,yrp-per,note-yr,vol-bf,vnum-x,volp-com,num-xser,blk-tit,ppx,ed,abr,ord,jabr,amper,and-xcom,etal-it')
+%% ----------------------------------------
+%% *** JMB ***
+%%
+%% Copyright 1994-2000 Patrick W Daly
+ % ===============================================================
+ % IMPORTANT NOTICE:
+ % This bibliographic style (bst) file has been generated from one or
+ % more master bibliographic style (mbs) files, listed above.
+ %
+ % This generated file can be redistributed and/or modified under the terms
+ % of the LaTeX Project Public License Distributed from CTAN
+ % archives in directory macros/latex/base/lppl.txt; either
+ % version 1 of the License, or any later version.
+ % ===============================================================
+ % Name and version information of the main mbs file:
+ % \ProvidesFile{merlin.mbs}[2000/05/04 4.01 (PWD, AO, DPC)]
+ % For use with BibTeX version 0.99a or later
+ %-------------------------------------------------------------------
+ % This bibliography style file is intended for texts in ENGLISH
+ % This is an author-year citation style bibliography. As such, it is
+ % non-standard LaTeX, and requires a special package file to function properly.
+ % Such a package is natbib.sty by Patrick W. Daly
+ % The form of the \bibitem entries is
+ % \bibitem[Jones et al.(1990)]{key}...
+ % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
+ % The essential feature is that the label (the part in brackets) consists
+ % of the author names, as they should appear in the citation, with the year
+ % in parentheses following. There must be no space before the opening
+ % parenthesis!
+ % With natbib v5.3, a full list of authors may also follow the year.
+ % In natbib.sty, it is possible to define the type of enclosures that is
+ % really wanted (brackets or parentheses), but in either case, there must
+ % be parentheses in the label.
+ % The \cite command functions as follows:
+ % \citet{key} ==>> Jones et al. (1990)
+ % \citet*{key} ==>> Jones, Baker, and Smith (1990)
+ % \citep{key} ==>> (Jones et al., 1990)
+ % \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
+ % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
+ % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
+ % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
+ % \citeauthor{key} ==>> Jones et al.
+ % \citeauthor*{key} ==>> Jones, Baker, and Smith
+ % \citeyear{key} ==>> 1990
+ %---------------------------------------------------------------------
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label extra.label sort.label short.list }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+STRINGS { s t}
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {add.blank}
+{ " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+ new.sentence
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "\/}" * }
+ if$
+}
+FUNCTION {scapify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\sc " swap$ * "}" * }
+ if$
+}
+FUNCTION {bolden}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bf " swap$ * "}" * }
+ if$
+}
+FUNCTION {tie.or.space.prefix}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$
+}
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "eds." }
+
+FUNCTION {bbl.editor}
+{ "ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "edn." }
+
+FUNCTION {bbl.volume}
+{ "vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "" }
+
+FUNCTION {bbl.page}
+{ "" }
+
+FUNCTION {bbl.chapter}
+{ "chap." }
+
+FUNCTION {bbl.techrep}
+{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+FUNCTION {bbl.first}
+{ "1st" }
+
+FUNCTION {bbl.second}
+{ "2nd" }
+
+FUNCTION {bbl.third}
+{ "3rd" }
+
+FUNCTION {bbl.fourth}
+{ "4th" }
+
+FUNCTION {bbl.fifth}
+{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bbl.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bbl.st * }
+ { duplicate$ "2" =
+ { pop$ bbl.nd * }
+ { "3" =
+ { bbl.rd * }
+ { bbl.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Software Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput. Aid. Des."}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Program."}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Graphic."}
+
+MACRO {toms} {"ACM Trans. Math. Software"}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
+
+MACRO {tcs} {"Theor. Comput. Sci."}
+
+FUNCTION {bibinfo.check}
+{ swap$
+ duplicate$ missing$
+ {
+ pop$ pop$
+ ""
+ }
+ { duplicate$ empty$
+ {
+ swap$ pop$
+ }
+ { swap$
+ pop$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {bibinfo.warn}
+{ swap$
+ duplicate$ missing$
+ {
+ swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+ ""
+ }
+ { duplicate$ empty$
+ {
+ swap$ "empty " swap$ * " in " * cite$ * warning$
+ }
+ { swap$
+ pop$
+ }
+ if$
+ }
+ if$
+}
+STRINGS { bibinfo}
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{vv~}{ll}{, f{.}.}{, jj}"
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ {
+ " " * bbl.etal emphasize *
+ }
+ {
+ "\&"
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ } if$
+}
+FUNCTION {format.names.ed}
+{
+ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{f{.}.~}{vv~}{ll}{ jj}"
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ {
+
+ " " * bbl.etal emphasize *
+ }
+ {
+ "\&"
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ } if$
+}
+FUNCTION {format.key}
+{ empty$
+ { key field.or.null }
+ { "" }
+ if$
+}
+
+FUNCTION {format.authors}
+{ author "author" format.names scapify
+}
+FUNCTION {get.bbl.editor}
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
+
+FUNCTION {format.editors}
+{ editor "editor" format.names scapify duplicate$ empty$ 'skip$
+ {
+ "," *
+ " " *
+ get.bbl.editor
+ *
+ }
+ if$
+}
+FUNCTION {format.note}
+{
+ note empty$
+ { "" }
+ { note #1 #1 substring$
+ duplicate$ "{" =
+ 'skip$
+ { output.state mid.sentence =
+ { "l" }
+ { "u" }
+ if$
+ change.case$
+ }
+ if$
+ note #2 global.max$ substring$ * "note" bibinfo.check
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title
+ duplicate$ empty$ 'skip$
+ { "t" change.case$ }
+ if$
+ "title" bibinfo.check
+}
+FUNCTION {format.full.names}
+{'s :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{vv~}{ll}" format.name$
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ {
+ " " * bbl.etal emphasize *
+ }
+ {
+ "\&"
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {author.editor.key.full}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.full.names }
+ if$
+ }
+ { author format.full.names }
+ if$
+}
+
+FUNCTION {author.key.full}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { author format.full.names }
+ if$
+}
+
+FUNCTION {editor.key.full}
+{ editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.full.names }
+ if$
+}
+
+FUNCTION {make.full.names}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.full
+ { type$ "proceedings" =
+ 'editor.key.full
+ 'author.key.full
+ if$
+ }
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem[{" write$
+ label write$
+ ")" make.full.names duplicate$ short.list =
+ { pop$ }
+ { * }
+ if$
+ "}]{" * write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {n.dashify}
+{
+ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {word.in}
+{ bbl.in capitalize
+ " " * }
+
+FUNCTION {format.date}
+{ year "year" bibinfo.check duplicate$ empty$
+ {
+ "empty year in " cite$ * "; set to ????" * warning$
+ pop$ "????"
+ }
+ 'skip$
+ if$
+ extra.label *
+ before.all 'output.state :=
+ " (" swap$ * ")" *
+}
+FUNCTION {format.btitle}
+{ title "title" bibinfo.check
+ duplicate$ empty$ 'skip$
+ {
+ emphasize
+ }
+ if$
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bbl.volume volume tie.or.space.prefix
+ "volume" bibinfo.check * *
+ series "series" bibinfo.check
+ duplicate$ empty$ 'pop$
+ { swap$ bbl.of space.word * swap$
+ emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { series empty$
+ { number "number" bibinfo.check }
+ { output.state mid.sentence =
+ { bbl.number }
+ { bbl.number capitalize }
+ if$
+ number tie.or.space.prefix "number" bibinfo.check * *
+ bbl.in space.word *
+ series "series" bibinfo.check *
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {is.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$
+ t #2 global.max$ substring$ 't :=
+ duplicate$ is.num
+ { s swap$ * 's := }
+ { pop$ "" 't := }
+ if$
+ }
+ while$
+ s empty$
+ 'skip$
+ { pop$ s }
+ if$
+}
+
+FUNCTION {convert.edition}
+{ extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bbl.first 't := }
+ { s "second" = s "2" = or
+ { bbl.second 't := }
+ { s "third" = s "3" = or
+ { bbl.third 't := }
+ { s "fourth" = s "4" = or
+ { bbl.fourth 't := }
+ { s "fifth" = s "5" = or
+ { bbl.fifth 't := }
+ { s #1 #1 substring$ is.num
+ { s eng.ord 't := }
+ { edition 't := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ t
+}
+
+FUNCTION {format.edition}
+{ edition duplicate$ empty$ 'skip$
+ {
+ convert.edition
+ output.state mid.sentence =
+ { "l" }
+ { "t" }
+ if$ change.case$
+ "edition" bibinfo.check
+ " " * bbl.edition *
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages duplicate$ empty$ 'skip$
+ { duplicate$ multi.page.check
+ {
+ n.dashify
+ }
+ {
+ }
+ if$
+ "pages" bibinfo.check
+ }
+ if$
+}
+FUNCTION {format.journal.pages}
+{ pages duplicate$ empty$ 'pop$
+ { swap$ duplicate$ empty$
+ { pop$ pop$ format.pages }
+ {
+ ", " *
+ swap$
+ n.dashify
+ "pages" bibinfo.check
+ *
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+ duplicate$ empty$ 'skip$
+ {
+ "volume" bibinfo.check
+ }
+ if$
+ bolden
+ format.journal.pages
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { bbl.chapter }
+ { type "l" change.case$
+ "type" bibinfo.check
+ }
+ if$
+ chapter tie.or.space.prefix
+ "chapter" bibinfo.check
+ * *
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.booktitle}
+{
+ booktitle "booktitle" bibinfo.check
+ emphasize
+}
+FUNCTION {format.in.ed.booktitle}
+{ format.booktitle duplicate$ empty$ 'skip$
+ {
+ editor "editor" format.names.ed duplicate$ empty$ 'pop$
+ {
+ "," *
+ " " *
+ get.bbl.editor
+ ", " *
+ * swap$
+ * }
+ if$
+ word.in swap$ *
+ }
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type duplicate$ empty$
+ 'pop$
+ { swap$ pop$
+ "t" change.case$ "type" bibinfo.check
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ number "number" bibinfo.check
+ type duplicate$ empty$
+ { pop$ bbl.techrep }
+ 'skip$
+ if$
+ "type" bibinfo.check
+ swap$ duplicate$ empty$
+ { pop$ "t" change.case$ }
+ { tie.or.space.prefix * * }
+ if$
+}
+FUNCTION {format.article.crossref}
+{
+ word.in
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.book.crossref}
+{ volume duplicate$ empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ pop$ word.in
+ }
+ { bbl.volume
+ capitalize
+ swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{
+ word.in
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.org.or.pub}
+{ 't :=
+ ""
+ address empty$ t empty$ and
+ 'skip$
+ {
+ t empty$
+ { address "address" bibinfo.check *
+ }
+ { t *
+ address empty$
+ 'skip$
+ { ", " * address "address" bibinfo.check * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.publisher.address}
+{ publisher "publisher" bibinfo.warn format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization "organization" bibinfo.check format.org.or.pub
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.date "year" output.check
+ date.block
+ format.title "title" output.check
+ new.sentence
+ crossref missing$
+ {
+ journal
+ "journal" bibinfo.check
+ emphasize
+ "journal" output.check
+ format.vol.num.pages output
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ format.note output
+ fin.entry
+}
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ editor format.key output
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ format.date "year" output.check
+ date.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.sentence
+ format.number.series output
+ format.publisher.address output
+ }
+ {
+ new.sentence
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ format.date "year" output.check
+ date.block
+ format.title "title" output.check
+ new.sentence
+ howpublished "howpublished" bibinfo.check output
+ address "address" bibinfo.check output
+ format.note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ editor format.key output
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ format.date "year" output.check
+ date.block
+ format.btitle "title" output.check
+ crossref missing$
+ {
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.sentence
+ format.number.series output
+ format.publisher.address output
+ }
+ {
+ format.chapter.pages "chapter and pages" output.check
+ new.sentence
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.date "year" output.check
+ date.block
+ format.title "title" output.check
+ new.sentence
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ format.publisher.address output
+ format.edition output
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ format.note output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.date "year" output.check
+ date.block
+ format.title "title" output.check
+ new.sentence
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ publisher empty$
+ { format.organization.address output }
+ { organization "organization" bibinfo.check output
+ format.publisher.address output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ format.note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ format.date "year" output.check
+ date.block
+ format.btitle "title" output.check
+ new.sentence
+ organization "organization" bibinfo.check output
+ address "address" bibinfo.check output
+ format.edition output
+ format.note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.date "year" output.check
+ date.block
+ format.btitle
+ "title" output.check
+ new.sentence
+ bbl.mthesis format.thesis.type output.nonnull
+ school "school" bibinfo.warn output
+ address "address" bibinfo.check output
+ format.note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ format.date "year" output.check
+ date.block
+ format.title output
+ new.sentence
+ howpublished "howpublished" bibinfo.check output
+ format.note output
+ fin.entry
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.date "year" output.check
+ date.block
+ format.btitle
+ "title" output.check
+ new.sentence
+ bbl.phdthesis format.thesis.type output.nonnull
+ school "school" bibinfo.warn output
+ address "address" bibinfo.check output
+ format.note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ format.editors output
+ editor format.key output
+ format.date "year" output.check
+ date.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ publisher empty$
+ { format.organization.address output }
+ { organization "organization" bibinfo.check output
+ format.publisher.address output
+ }
+ if$
+ format.note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.date "year" output.check
+ date.block
+ format.title
+ "title" output.check
+ new.sentence
+ format.tr.number output.nonnull
+ institution "institution" bibinfo.warn output
+ address "address" bibinfo.check output
+ format.note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ format.date "year" output.check
+ date.block
+ format.title "title" output.check
+ format.note "note" output.check
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+READ
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+FUNCTION {format.lab.names}
+{ 's :=
+ "" 't :=
+ s #1 "{vv~}{ll}" format.name$
+ s num.names$ duplicate$
+ #2 >
+ { pop$
+ " " * bbl.etal emphasize *
+ }
+ { #2 <
+ 'skip$
+ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ {
+ " " * bbl.etal emphasize *
+ }
+ { " \& " * s #2 "{vv~}{ll}" format.name$
+ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.short.authors}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.label
+ 'author.key.label
+ if$
+ }
+ if$
+ 'short.list :=
+}
+
+FUNCTION {calc.label}
+{ calc.short.authors
+ short.list
+ "("
+ *
+ year duplicate$ empty$
+ short.list key field.or.null = or
+ { pop$ "" }
+ 'skip$
+ if$
+ *
+ 'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}"
+ format.name$ 't :=
+ nameptr #1 >
+ {
+ " " *
+ namesleft #1 = t "others" = and
+ { "zzzzz" * }
+ { numnames #2 > nameptr #2 = and
+ { "zz" * year field.or.null * " " * }
+ 'skip$
+ if$
+ t sortify *
+ }
+ if$
+ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {editor.sort}
+{ editor empty$
+ { key empty$
+ { "to sort, need editor or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+FUNCTION {presort}
+{ calc.label
+ label sortify
+ " "
+ *
+ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.sort
+ 'author.sort
+ if$
+ }
+ if$
+ #1 entry.max$ substring$
+ 'sort.label :=
+ sort.label
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+SORT
+STRINGS { last.label next.extra }
+INTEGERS { last.extra.num number.label }
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+ "" 'next.extra :=
+ #0 'last.extra.num :=
+ #0 'number.label :=
+}
+FUNCTION {forward.pass}
+{ last.label label =
+ { last.extra.num #1 + 'last.extra.num :=
+ last.extra.num int.to.chr$ 'extra.label :=
+ }
+ { "a" chr.to.int$ 'last.extra.num :=
+ "" 'extra.label :=
+ label 'last.label :=
+ }
+ if$
+ number.label #1 + 'number.label :=
+}
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ extra.label 'next.extra :=
+ extra.label
+ duplicate$ empty$
+ 'skip$
+ { "{\natexlab{" swap$ * "}}" * }
+ if$
+ 'extra.label :=
+ label extra.label * 'label :=
+}
+EXECUTE {initialize.extra.label.stuff}
+ITERATE {forward.pass}
+REVERSE {reverse.pass}
+FUNCTION {bib.sort.order}
+{ sort.label
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+ITERATE {bib.sort.order}
+SORT
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" number.label int.to.str$ * "}" *
+ write$ newline$
+ "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
+ write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%% End of file `jmb.bst'.
diff --git a/vu-cs-standard-thesis/Latex/Classes/urlbst b/vu-cs-standard-thesis/Latex/Classes/urlbst
new file mode 100644
index 0000000..3f83260
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Classes/urlbst
@@ -0,0 +1,676 @@
+#! /usr/bin/env perl
+#
+# Usage: ./urlbst.pl [--eprint] [--doi]
+# [--nohyperlinks] [--inlinelinks] [--hypertex] [--hyperref]
+# [input-file [output-file]]
+# If either input-file or output-file is omitted, they are replaced by
+# stdin or stdout respectively.
+#
+# See http://purl.org/nxg/dist/urlbst for documentation
+#
+# $Id: urlbst.in,v 1.8 2007/03/26 17:21:56 norman Exp $
+
+$version = '0.6';
+($progname = $0) =~ s/.*\///;
+$mymarker = "% $progname";
+$mymarkerend = "% ...$progname to here";
+$myurl = 'http://purl.org/nxg/dist/urlbst';
+
+
+$infile = '-';
+$outfile = '-';
+
+$addeprints = 0; # if true (nonzero) we add support for eprints
+$eprintprefix = 'arXiv:'; # make these settable with --eprint? syntax?
+$eprinturl = 'http://arxiv.org/abs/';
+
+$adddoiresolver = '0';
+$doiprefix = 'doi:';
+$doiurl = 'http://dx.doi.org/';
+
+$makehref = 0;
+$availablestring = "Available from: ";
+$inlinelinks = 0;
+
+$Usage = "$progname [--eprint] [--doi]\n [--nohyperlinks] [--inlinelinks] [--hypertex] [--hyperref]\n [--help] [input-file [output-file]]";
+
+while ($#ARGV >= 0) {
+ if ($ARGV[0] eq '--eprint') {
+ $addeprints = 1;
+ } elsif ($ARGV[0] eq '--doi') {
+ $adddoiresolver = 1;
+ } elsif ($ARGV[0] eq '--nohyperlinks') {
+ $makehref = 0;
+ } elsif ($ARGV[0] eq '--hypertex') {
+ $makehref = 1;
+ } elsif ($ARGV[0] eq '--hyperref') {
+ $makehref = 2;
+ } elsif ($ARGV[0] eq '--inlinelinks') {
+ $inlinelinks = 1;
+ } elsif ($ARGV[0] eq '--help') {
+ print <<EOD;
+urlbst version $version
+ Usage: $Usage
+ --eprint: include support for `eprint' fields
+ --doi: include support for `doi' field
+ --nohyperlinks do not include active links anywhere
+ --inlinelinks add hyperlinks to entry titles
+ --hypertex: include HyperTeX-style hyperlink support
+ --hyperref: include {hyperref}-style hyperlink support
+ (generally better)
+ --help: print this help
+ Input and output files may be given as `-' (default) to indicate stdin/out
+EOD
+ exit(0);
+ } elsif ($ARGV[0] =~ /^-/) {
+ die "Unrecognised option $ARGV[0]: Usage: $Usage\n";
+ } elsif ($infile eq '-') {
+ $infile = $ARGV[0];
+ } elsif ($outfile eq '-') {
+ $outfile = $ARGV[0];
+ } else {
+ die "Usage: $Usage\n";
+ }
+ shift(@ARGV);
+}
+
+if ($inlinelinks && $makehref == 0) {
+ print <<'EOD';
+Warning: --inlinelinks and --nohyperlinks were both specified (possibly
+ implicitly). That combination makes no sense, so I'll ignore
+ --nohyperlinks and use --hyperref instead
+EOD
+ $makehref = 2;
+}
+
+$exitstatus = 0; # success status
+
+open (IN, "<$infile") || die "Can't open $infile to read";
+open (OUT, ">$outfile") || die "Can't open $outfile to write";
+
+# We have to make certain assumptions about the source files, in order
+# to patch them at the correct places. Specifically, we assume that
+#
+# - there's a function init.state.consts
+#
+# - ...and an output.nonnull which does the actual outputting, which
+# has the `usual' interface.
+#
+# - we can replace
+# fin.entry
+# by
+# new.block
+# output.url % the function which formats and displays any URL
+# fin.entry
+#
+# - there is a function which handles the `article' entry type (this
+# will always be true)
+#
+# - there is a function output.bibitem which is called at the
+# beginning of each entry type
+# - ...and one called fin.entry which is called at the end
+#
+# If the functions format.date, format.title or new.block are not defined (the
+# former is not in apalike, for example, and the last is not in the
+# AMS styles), then replacements are included in the output.
+#
+# All these assumptions are true of the standard files and, since most
+# style files derive from them more or less directly, are true of most (?)
+# other style files, too.
+#
+# There's some rather ugly Perl down here. The parsing for
+# brace-matching could probably do with being rewritten in places, to
+# make it less ugly, and more robust.
+
+print OUT "%%% Modification of BibTeX style file ", ($infile eq '-' ? '<stdin>' : $infile), "\n";
+print OUT "%%% ... by $progname, version $version (marked with \"$mymarker\")\n%%% See <$myurl>\n";
+print OUT "%%% Added webpage entry type, and url and lastchecked fields.\n";
+print OUT "%%% Added eprint support.\n" if ($addeprints);
+print OUT "%%% Added DOI support.\n" if ($adddoiresolver);
+print OUT "%%% Added HyperTeX support.\n" if ($makehref == 1);
+print OUT "%%% Added hyperref support.\n" if ($makehref == 2);
+print OUT "%%% Original headers follow...\n\n";
+
+$found{initconsts} = 0;
+$found{outputnonnull} = 0;
+$found{article} = 0;
+$found{outputbibitem} = 0;
+$found{finentry} = 0;
+$found{formatdate} = 0;
+$found{formattitle} = 0;
+$found{newblock} = 0;
+
+while (<IN>) {
+ /^ *%/ && do {
+ # Pass commented lines unchanged
+ print OUT;
+ next;
+ };
+
+ /^ *ENTRY/ && do {
+ # Work through the list of entry types, finding what ones are there.
+ # If we find a URL entry there already, object, since these edits
+ # will mess things up.
+ $line = $_;
+ until ($line =~ /\{\s*(\w*)/) {
+ $line .= <IN>;
+ }
+ $bracematchtotal = 0; # reset
+ bracematcher($line);
+ $line =~ /\{\s*(\w*)/;
+ $found{'entry'.$1} = 1;
+ print OUT $line;
+ $line = <IN>;
+ until (bracematcher($line) == 0) {
+ # XXX deal with multiple entries on one line
+ ($line =~ /^\s*(\w*)/) && ($found{'entry'.$1} = 1);
+ print OUT $line;
+ $line = <IN>;
+ }
+ if (defined($found{entryurl})) {
+ print STDERR "$progname: style file $infile already has URL entry!\n";
+ # print out the rest of the file, and give up
+ print OUT $line;
+ while (<IN>) {
+ print OUT;
+ }
+ $exitstatus = 1;
+ last;
+ } else {
+ print OUT " eprint $mymarker\n doi $mymarker\n url $mymarker\n lastchecked $mymarker\n";
+ }
+ print OUT $line;
+ next;
+ };
+
+ /^ *FUNCTION *\{init\.state\.consts\}/ && do {
+ # In the init.state.consts function, add an extra set of
+ # constants at the beginning. Also use this as the marker for
+ # the place to add the init strings function.
+ print OUT <<EOD;
+STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl openinlinelink closeinlinelink } $mymarker...
+INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver }
+% Following constants may be adjusted by hand, if desired
+FUNCTION {init.urlbst.variables}
+{
+ "$availablestring" 'urlintro := % prefix before URL
+ "$eprinturl" 'eprinturl := % prefix to make URL from eprint ref
+ "$eprintprefix" 'eprintprefix := % text prefix printed before eprint ref
+ "$doiurl" 'doiurl := % prefix to make URL from DOI
+ "$doiprefix" 'doiprefix := % text prefix printed before DOI ref
+ #$addeprints 'addeprints := % 0=no eprints; 1=include eprints
+ #$adddoiresolver 'adddoiresolver := % 0=no DOI resolver; 1=include it
+ #$makehref 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
+ #$inlinelinks 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
+ % the following are internal state variables, not config constants
+ #0 'makeinlinelink := % state variable managed by setup.inlinelink
+ "" 'openinlinelink := % ditto
+ "" 'closeinlinelink := % ditto
+}
+INTEGERS {
+ bracket.state
+ outside.brackets
+ open.brackets
+ within.brackets
+ close.brackets
+}
+$mymarkerend
+EOD
+ $line = $_;
+ until ($line =~ /\{.*\}.*\{/s) {
+ $line .= <IN>;
+ }
+ $line =~ s/(\{.*?\}.*?\{)/$1 #0 'outside.brackets := $mymarker
+ #1 'open.brackets :=
+ #2 'within.brackets :=
+ #3 'close.brackets :=
+
+ /s;
+ print OUT $line;
+ $found{initconsts} = 1;
+ next;
+ };
+
+ /^ *EXECUTE *\{init\.state\.consts\}/ && do {
+ print OUT "EXECUTE {init.urlbst.variables}\n";
+ print OUT;
+ next;
+ };
+
+ /^ *FUNCTION *\{new.block\}/ && do {
+ $found{newblock} = 1;
+ };
+
+ /^ *FUNCTION *{output\.nonnull}/ && do {
+ print OUT "$mymarker\n";
+ print OUT "FUNCTION {output.nonnull.original}\n";
+ copy_block();
+ print_output_functions();
+ $found{outputnonnull} = 1;
+ next;
+ };
+
+ /FUNCTION *\{fin.entry\}/ && do {
+ # Rename fin.entry to fin.entry.original (wrapped below)
+ s/fin.entry/fin.entry.original/;
+ $found{finentry} = 1;
+ print OUT;
+ next;
+ };
+
+ /^ *FUNCTION *{format\.date}/ && do {
+ $found{formatdate} = 1;
+ print OUT;
+ next;
+ };
+
+ /^ *FUNCTION *{format\.title}/ && do {
+ # record that we found this
+ $found{formattitle} = 1;
+ print OUT;
+ next;
+ };
+
+ /^ *format\.b?title/ && do {
+ # interpolate a call to setup.inlinelink
+ print OUT " title empty\$ 'skip\$ 'setup\.inlinelink if\$ $mymarker\n";
+ print OUT;
+ next;
+ };
+
+ /^ *FUNCTION *\{article\}/ && do {
+
+ print_missing_functions();
+ print_webpage_def();
+
+ print OUT;
+ $found{article} = 1;
+ next;
+ };
+
+ /FUNCTION *\{output.bibitem\}/ && do {
+ # Rename output.bibitem to output.bibitem.original (wrapped below)
+ s/{output.bibitem\}/\{output.bibitem.original\}/;
+ $found{outputbibitem} = 1;
+ print OUT;
+ next;
+ };
+
+ print OUT;
+};
+
+if ($exitstatus == 0) {
+ # Skip this if we've already reported an error -- it'll only be confusing
+ foreach $k (keys %found) {
+ if ($found{$k} == 0) {
+ print STDERR "$progname: $infile: failed to find feature $k\n";
+ }
+ }
+}
+
+close (IN);
+close (OUT);
+
+exit $exitstatus;;
+
+
+
+
+
+
+sub print_output_functions {
+ print OUT "$mymarker...\n";
+
+ print OUT <<'EOD';
+% The following three functions are for handling inlinelink. They wrap
+% a block of text which is potentially output with write$ by multiple
+% other functions, so we don't know the content a priori.
+% They communicate between each other using the variables makeinlinelink
+% (which is true if a link should be made), and closeinlinelink (which holds
+% the string which should close any current link. They can be called
+% at any time, but start.inlinelink will be a no-op unless something has
+% previously set makeinlinelink true, and the two ...end.inlinelink functions
+% will only do their stuff if start.inlinelink has previously set
+% closeinlinelink to be non-empty.
+FUNCTION {setup.inlinelink}
+{ makeinlinelink
+ { hrefform #1 = % hypertex
+ { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
+ "\special {html:</a>}" 'closeinlinelink :=
+ }
+ { hrefform #2 = % hyperref
+ { "\href{" url * "}{" * 'openinlinelink :=
+ "}" 'closeinlinelink :=
+ }
+ 'skip$
+ if$ % hrefform #2 =
+ }
+ if$ % hrefform #1 =
+ #0 'makeinlinelink :=
+ }
+ 'skip$
+ if$ % makeinlinelink
+}
+FUNCTION {add.inlinelink}
+{ openinlinelink empty$
+ 'skip$
+ { openinlinelink swap$ * closeinlinelink *
+ "" 'openinlinelink :=
+ }
+ if$
+}
+EOD
+
+ # new.block is defined elsewhere
+
+ print OUT <<'EOD';
+FUNCTION {output.nonnull}
+{ % Save the thing we've been asked to output
+ 's :=
+ % If the bracket-state is close.brackets, then add a close-bracket to
+ % what is currently at the top of the stack, and set bracket.state
+ % to outside.brackets
+ bracket.state close.brackets =
+ { "]" *
+ outside.brackets 'bracket.state :=
+ }
+ 'skip$
+ if$
+ bracket.state outside.brackets =
+ { % We're outside all brackets -- this is the normal situation.
+ % Write out what's currently at the top of the stack, using the
+ % original output.nonnull function.
+ s
+ add.inlinelink
+ output.nonnull.original % invoke the original output.nonnull
+ }
+ { % Still in brackets. Add open-bracket or (continuation) comma, add the
+ % new text (in s) to the top of the stack, and move to the close-brackets
+ % state, ready for next time (unless inbrackets resets it). If we come
+ % into this branch, then output.state is carefully undisturbed.
+ bracket.state open.brackets =
+ { " [" * }
+ { ", " * } % bracket.state will be within.brackets
+ if$
+ s *
+ close.brackets 'bracket.state :=
+ }
+ if$
+}
+
+% Call this function just before adding something which should be presented in
+% brackets. bracket.state is handled specially within output.nonnull.
+FUNCTION {inbrackets}
+{ bracket.state close.brackets =
+ { within.brackets 'bracket.state := } % reset the state: not open nor closed
+ { open.brackets 'bracket.state := }
+ if$
+}
+
+FUNCTION {format.lastchecked}
+{ lastchecked empty$
+ { "" }
+ { inbrackets "cited " lastchecked * }
+ if$
+}
+EOD
+ print OUT "$mymarkerend\n";
+}
+
+sub print_webpage_def {
+ print OUT "$mymarker...\n";
+
+ # Some of the functions below call new.block, so we need a dummy
+ # version, in the case where the style being edited doesn't supply
+ # that function.
+ if (! $found{newblock}) {
+ print OUT "FUNCTION {new.block} % dummy new.block function\n{\n % empty\n}\n\n";
+ $found{newblock} = 1;
+ }
+
+ print OUT <<'EOD';
+% Functions for making hypertext links.
+% In all cases, the stack has (link-text href-url)
+%
+% make 'null' specials
+FUNCTION {make.href.null}
+{
+ pop$
+}
+% make hypertex specials
+FUNCTION {make.href.hypertex}
+{
+ "\special {html:<a href=" quote$ *
+ swap$ * quote$ * "> }" * swap$ *
+ "\special {html:</a>}" *
+}
+% make hyperref specials
+FUNCTION {make.href.hyperref}
+{
+ "\href {" swap$ * "} {\path{" * swap$ * "}}" *
+}
+FUNCTION {make.href}
+{ hrefform #2 =
+ 'make.href.hyperref % hrefform = 2
+ { hrefform #1 =
+ 'make.href.hypertex % hrefform = 1
+ 'make.href.null % hrefform = 0 (or anything else)
+ if$
+ }
+ if$
+}
+
+% If inlinelinks is true, then format.url should be a no-op, since it's
+% (a) redundant, and (b) could end up as a link-within-a-link.
+FUNCTION {format.url}
+{ inlinelinks #1 = url empty$ or
+ { "" }
+ { hrefform #1 =
+ { % special case -- add HyperTeX specials
+ urlintro "\url{" url * "}" * url make.href.hypertex * }
+ { urlintro "\url{" * url * "}" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.eprint}
+{ eprint empty$
+ { "" }
+ { eprintprefix eprint * eprinturl eprint * make.href }
+ if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$
+ { "" }
+ { doiprefix doi * doiurl doi * make.href }
+ if$
+}
+
+% Output a URL. We can't use the more normal idiom (something like
+% `format.url output'), because the `inbrackets' within
+% format.lastchecked applies to everything between calls to `output',
+% so that `format.url format.lastchecked * output' ends up with both
+% the URL and the lastchecked in brackets.
+FUNCTION {output.url}
+{ url empty$
+ 'skip$
+ { new.block
+ format.url output
+ format.lastchecked output
+ }
+ if$
+}
+
+FUNCTION {output.web.refs}
+{
+ new.block
+ output.url
+ addeprints eprint empty$ not and
+ { format.eprint output.nonnull }
+ 'skip$
+ if$
+ adddoiresolver doi empty$ not and
+ { format.doi output.nonnull }
+ 'skip$
+ if$
+}
+
+% Wrapper for output.bibitem.original.
+% If the URL field is not empty, set makeinlinelink to be true,
+% so that an inline link will be started at the next opportunity
+FUNCTION {output.bibitem}
+{ outside.brackets 'bracket.state :=
+ output.bibitem.original
+ inlinelinks url empty$ not and
+ { #1 'makeinlinelink := }
+ { #0 'makeinlinelink := }
+ if$
+}
+
+% Wrapper for fin.entry.original
+FUNCTION {fin.entry}
+{ output.web.refs % urlbst
+ makeinlinelink % ooops, it appears we didn't have a title for inlinelink
+ { setup.inlinelink % add some artificial link text here, as a fallback
+ "[link]" output.nonnull }
+ 'skip$
+ if$
+ bracket.state close.brackets = % urlbst
+ { "]" * }
+ 'skip$
+ if$
+ fin.entry.original
+}
+
+% Webpage entry type.
+% Title and url fields required;
+% author, note, year, month, and lastchecked fields optional
+% See references
+% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm
+% http://www.classroom.net/classroom/CitingNetResources.html
+% http://neal.ctstateu.edu/history/cite.html
+% http://www.cas.usf.edu/english/walker/mla.html
+% for citation formats for web pages.
+FUNCTION {webpage}
+{ output.bibitem
+ author empty$
+ { editor empty$
+ 'skip$ % author and editor both optional
+ { format.editors output.nonnull }
+ if$
+ }
+ { editor empty$
+ { format.authors output.nonnull }
+ { "can't use both author and editor fields in " cite$ * warning$ }
+ if$
+ }
+ if$
+ new.block
+ title empty$ 'skip$ 'setup.inlinelink if$
+ format.title "title" output.check
+ inbrackets "online" output
+ new.block
+ year empty$
+ 'skip$
+ { format.date "year" output.check }
+ if$
+ % We don't need to output the URL details ('lastchecked' and 'url'),
+ % because fin.entry does that for us, using output.web.refs. The only
+ % reason we would want to put them here is if we were to decide that
+ % they should go in front of the rather miscellaneous information in 'note'.
+ new.block
+ note output
+ fin.entry
+}
+EOD
+
+ print OUT "$mymarkerend\n\n\n";
+}
+
+
+sub print_missing_functions {
+ # We've got to the bit of the file which handles the entry
+ # types, so write out the webpage entry handler. This uses
+ # the format.date function, which which many but not all
+ # bst files have (for example, apalike doesn't). So
+ # check that we either have found this function already, or
+ # add it.
+ if (! $found{formatdate}) {
+ if ($found{entrymonth}) {
+ print OUT <<'EOD';
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+EOD
+ } else {
+ print OUT <<'EOD';
+FUNCTION {format.date}
+{ year empty$
+ 'skip$
+ { %write$
+ "(" year * ")" *
+ }
+ if$
+}
+EOD
+ }
+ $found{formatdate} = 1;
+ }
+
+ # If the style file didn't supply a format.title function, then supply
+ # one here (the {webpage} function requires it).
+ if (! $found{formattitle}) {
+ print OUT <<'EOD';
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ if$
+}
+EOD
+ $found{formattitle} = 1;
+ }
+}
+
+# Utility function: Keep track of open and close braces in the string argument.
+# Keep state in $bracematchtotal, return the current value.
+sub bracematcher {
+ my $s = shift;
+ $s =~ s/[^\{\}]//g;
+ #print "s=$s\n";
+ foreach my $c (split (//, $s)) {
+ $bracematchtotal += ($c eq '{' ? 1 : -1);
+ }
+ return $bracematchtotal;
+}
+
+# Utility function: use bracematcher to copy the complete block which starts
+# on or after the current line.
+sub copy_block {
+ $bracematchtotal = 0;
+ # copy any leading lines which don't have braces (presumably comments)
+ while (defined ($line = <IN>) && ($line !~ /{/)) {
+ print OUT $line;
+ }
+ while (defined ($line) && bracematcher($line) > 0) {
+ print OUT $line;
+ $line = <IN>;
+ }
+ print OUT "$line\n"; # print out terminating \} (assumed
+ # alone on the line)
+}
diff --git a/vu-cs-standard-thesis/Latex/Icon♪ b/vu-cs-standard-thesis/Latex/Icon♪
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Icon♪
diff --git a/vu-cs-standard-thesis/Latex/Macros/Icon♪ b/vu-cs-standard-thesis/Latex/Macros/Icon♪
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Macros/Icon♪
diff --git a/vu-cs-standard-thesis/Latex/Macros/MacroFile1.tex b/vu-cs-standard-thesis/Latex/Macros/MacroFile1.tex
new file mode 100644
index 0000000..09d9fe1
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/Macros/MacroFile1.tex
@@ -0,0 +1,73 @@
+% This file contains macros that can be called up from connected TeX files
+% It helps to summarise repeated code, e.g. figure insertion (see below).
+
+% insert a centered figure with caption and description
+% parameters 1:filename, 2:title, 3:description and label
+\newcommand{\figuremacro}[3]{
+ \begin{figure}[htbp]
+ \centering
+ \includegraphics[width=1\textwidth]{#1}
+ \caption[#2]{\textbf{#2} - #3}
+ \label{#1}
+ \end{figure}
+}
+
+% insert a centered figure with caption and description AND WIDTH
+% parameters 1:filename, 2:title, 3:description and label, 4: textwidth
+% textwidth 1 means as text, 0.5 means half the width of the text
+\newcommand{\figuremacroW}[4]{
+ \begin{figure}[htbp]
+ \centering
+ \includegraphics[width=#4\textwidth]{#1}
+ \caption[#2]{\textbf{#2} - #3}
+ \label{#1}
+ \end{figure}
+}
+
+% inserts a figure with wrapped around text; only suitable for NARROW figs
+% o is for outside on a double paged document; others: l, r, i(inside)
+% text and figure will each be half of the document width
+% note: long captions often crash with adjacent content; take care
+% in general: above 2 macro produce more reliable layout
+\newcommand{\figuremacroN}[3]{
+ \begin{wrapfigure}{o}{0.5\textwidth}
+ \centering
+ \includegraphics[width=0.48\textwidth]{#1}
+ \caption[#2]{{\small\textbf{#2} - #3}}
+ \label{#1}
+ \end{wrapfigure}
+}
+
+% predefined commands by Harish
+\newcommand{\PdfPsText}[2]{
+ \ifpdf
+ #1
+ \else
+ #2
+ \fi
+}
+
+\newcommand{\IncludeGraphicsH}[3]{
+ \PdfPsText{\includegraphics[height=#2]{#1}}{\includegraphics[bb = #3, height=#2]{#1}}
+}
+
+\newcommand{\IncludeGraphicsW}[3]{
+ \PdfPsText{\includegraphics[width=#2]{#1}}{\includegraphics[bb = #3, width=#2]{#1}}
+}
+
+\newcommand{\InsertFig}[3]{
+ \begin{figure}[!htbp]
+ \begin{center}
+ \leavevmode
+ #1
+ \caption{#2}
+ \label{#3}
+ \end{center}
+ \end{figure}
+}
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "~/Documents/LaTeX/CUEDThesisPSnPDF/thesis"
+%%% End:
diff --git a/vu-cs-standard-thesis/Latex/StyleFiles/Icon♪ b/vu-cs-standard-thesis/Latex/StyleFiles/Icon♪
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/StyleFiles/Icon♪
diff --git a/vu-cs-standard-thesis/Latex/StyleFiles/watermark.sty b/vu-cs-standard-thesis/Latex/StyleFiles/watermark.sty
new file mode 100644
index 0000000..4971307
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/StyleFiles/watermark.sty
@@ -0,0 +1,87 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{watermark}
+ [2002/01/29 v1.00 Watermarks (NCC)]
+%
+% The package provides watermarks on output pages. A watermark is
+% some text or picture printed at the background of paper. A watermark
+% is prepared in picture box stored at the beginning of running head.
+% So, the watermark material must be put on the page with LaTeX's \put and
+% \multiput commands.
+%
+% \watermark{BODY} sets a watermark to be printed on all pages
+% \leftwatermark{BODY} sets a watermark to be printed on every even page
+% if twoside mode is turned on. Otherwise, this
+% watermark is ignored. Odd-page watermark
+% leaves unchanged.
+% \rightwatermark{BODY} sets a watermark to be printed on every odd page
+% if twoside mode is turned on. Otherwise, this
+% watermark is printed on all pages. Even-page
+% watermark leaves unchanged.
+% \thiswatermark{BODY} sets a watermark for the current page only.
+%
+% Additionally, the package provides the command \thispageheading{HEADING}
+% which replaces a heading for the current page to specified heading.
+% Watermarks are also printed when a heading is replaced.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% We use the \@begindvi hook from the output routine.
+% This hook works only once at the beginning of dvi, but some packages
+% (e.g. hyperref) also use it for their own needs.
+% So, we redefine it at the beginning of document in such a way to
+% accurately save its behaviour after the first call when it can be
+% redefined by other packages.
+%
+\AtBeginDocument{
+ \let\WMK@begindvi\@begindvi
+ \def\@begindvi{\WMK@begindvi \WMK@insert
+ \global\let\WMK@begindvi\@begindvi % Save redefined behaviour and
+ \gdef\@begindvi{\WMK@begindvi\WMK@insert}% redefine \@begindvi once more
+ }%
+}
+%
+% The \WMK@insert command redefines current header and inserts the
+% \WMK@hook at the beginning of header. A box produced by this hook
+% has zero natural sizes.
+%
+\def\WMK@insert{\let\WMK@head\@thehead \def\@thehead{\WMK@hook\WMK@head}}
+\def\WMK@hook{%
+ \begin{picture}(0,0)\relax
+ \ifx\WMK@this\relax
+ \if@twoside
+ \ifodd\c@page\WMK@odd\else\WMK@even\fi
+ \else
+ \WMK@odd
+ \fi
+ \else
+ \WMK@this \global\let\WMK@this\relax
+ \fi
+ \end{picture}%
+}
+%
+% Define watermark producing commands
+%
+\newcommand{\watermark}[1]{\leftwatermark{#1}\rightwatermark{#1}}
+\newcommand{\leftwatermark}[1]{\long\gdef\WMK@even{#1}}
+\newcommand{\rightwatermark}[1]{\long\gdef\WMK@odd{#1}}
+\newcommand{\thiswatermark}[1]{\long\gdef\WMK@this{#1}}
+\watermark{}
+\let\WMK@this\relax
+%
+% Now we define \thispageheading{heading} command.
+% It replaces a heading on the current page to the
+% specified one and prepares it in \parbox. Watermarks are leaved unchanged.
+% The \ifWMK@savehead is needed to protect from multiple use of this command
+% on the same page.
+%
+\newif\ifWMK@savehead \WMK@saveheadfalse
+\newcommand{\thispageheading}[1]{%
+ \ifWMK@savehead \else
+ \global\WMK@saveheadtrue \global\let\WMK@savehook\WMK@hook
+ \fi
+ \long\gdef\WMK@hook{\WMK@savehook
+ \parbox[t]\textwidth{#1}\let\WMK@head\@empty
+ \global\WMK@saveheadfalse \global\let\WMK@hook\WMK@savehook
+ }%
+}
+\endinput
diff --git a/vu-cs-standard-thesis/Latex/latex_intro.pdf b/vu-cs-standard-thesis/Latex/latex_intro.pdf
new file mode 100644
index 0000000..82027c5
--- /dev/null
+++ b/vu-cs-standard-thesis/Latex/latex_intro.pdf
Binary files differ
diff --git a/vu-cs-standard-thesis/booktabs.sty b/vu-cs-standard-thesis/booktabs.sty
new file mode 100644
index 0000000..cf25d78
--- /dev/null
+++ b/vu-cs-standard-thesis/booktabs.sty
@@ -0,0 +1,182 @@
+%%
+%% This is file `booktabs.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% booktabs.dtx (with options: `package')
+%%
+%% -----------------------------------------------------------------
+%% Author: Simon Fear
+%% Maintainer: Danie Els (dnjels@sun.ac.za)
+%%
+%% This file is part of the booktabs package for publication
+%% quality tables for LaTeX
+%%
+%% Copyright (C) 1995--2005 Simon Fear
+%%
+%% This program is free software; you can redistribute it and/or
+%% modify it under the terms of the GNU General Public License as
+%% published by the Free Software Foundation; either version 2 of
+%% the License, or (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the Free
+%% Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+%% MA 02111-1307 USA
+%% -----------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{booktabs}
+ [2005/04/14 v1.61803 publication quality tables]
+\newdimen\heavyrulewidth
+\newdimen\lightrulewidth
+\newdimen\cmidrulewidth
+\newdimen\belowrulesep
+\newdimen\belowbottomsep
+\newdimen\aboverulesep
+\newdimen\abovetopsep
+\newdimen\cmidrulesep
+\newdimen\cmidrulekern
+\newdimen\defaultaddspace
+\heavyrulewidth=.08em
+\lightrulewidth=.05em
+\cmidrulewidth=.03em
+\belowrulesep=.65ex
+\belowbottomsep=0pt
+\aboverulesep=.4ex
+\abovetopsep=0pt
+\cmidrulesep=\doublerulesep
+\cmidrulekern=.5em
+\defaultaddspace=.5em
+\newcount\@cmidla
+\newcount\@cmidlb
+\newdimen\@aboverulesep
+\newdimen\@belowrulesep
+\newcount\@thisruleclass
+\newcount\@lastruleclass
+\@lastruleclass=0
+\newdimen\@thisrulewidth
+\def\futurenonspacelet#1{\def\@BTcs{#1}%
+ \afterassignment\@BTfnslone\let\nexttoken= }
+\def\@BTfnslone{\expandafter\futurelet\@BTcs\@BTfnsltwo}
+\def\@BTfnsltwo{\expandafter\ifx\@BTcs\@sptoken\let\next=\@BTfnslthree
+ \else\let\next=\nexttoken\fi \next}
+\def\@BTfnslthree{\afterassignment\@BTfnslone\let\next= }
+\def\toprule{\noalign{\ifnum0=`}\fi
+ \@aboverulesep=\abovetopsep
+ \global\@belowrulesep=\belowrulesep %global cos for use in the next noalign
+ \global\@thisruleclass=\@ne
+ \@ifnextchar[{\@BTrule}{\@BTrule[\heavyrulewidth]}}
+\def\midrule{\noalign{\ifnum0=`}\fi
+ \@aboverulesep=\aboverulesep
+ \global\@belowrulesep=\belowrulesep
+ \global\@thisruleclass=\@ne
+ \@ifnextchar[{\@BTrule}{\@BTrule[\lightrulewidth]}}
+\def\bottomrule{\noalign{\ifnum0=`}\fi
+ \@aboverulesep=\aboverulesep
+ \global\@belowrulesep=\belowbottomsep
+ \global\@thisruleclass=\@ne
+ \@ifnextchar[{\@BTrule}{\@BTrule[\heavyrulewidth]}}
+\def\specialrule#1#2#3{\noalign{\ifnum0=`}\fi
+ \@aboverulesep=#2\global\@belowrulesep=#3\global\@thisruleclass=\tw@
+ \@BTrule[#1]}
+\def\addlinespace{\noalign{\ifnum0=`}\fi
+ \@ifnextchar[{\@addspace}{\@addspace[\defaultaddspace]}}
+\def\@addspace[#1]{\global\@belowrulesep=#1\global\@thisruleclass=\tw@
+ \futurelet\@tempa\@BTendrule}
+\def\@BTrule[#1]{%
+ \global\@thisrulewidth=#1\relax
+ \ifnum\@thisruleclass=\tw@\vskip\@aboverulesep\else
+ \ifnum\@lastruleclass=\z@\vskip\@aboverulesep\else
+ \ifnum\@lastruleclass=\@ne\vskip\doublerulesep\fi\fi\fi
+ \ifx\longtable\undefined
+ \let\@BTswitch\@BTnormal
+ \else\ifx\hline\LT@hline
+ \let\@BTswitch\@BLTrule
+ \else
+ \let\@BTswitch\@BTnormal
+ \fi\fi
+ \@BTswitch}
+\AtBeginDocument{%
+ \providecommand*\CT@arc@{}}%% colortbl support
+\def\@BTnormal{%
+ {\CT@arc@\hrule\@height\@thisrulewidth}%
+ \futurenonspacelet\@tempa\@BTendrule}
+\def\@BLTrule{\@ifnextchar({\@@BLTrule}{\@@BLTrule()}}
+\def\@@BLTrule(#1){\@setrulekerning{#1}%
+\global\@cmidlb\LT@cols
+\ifnum0=`{\fi}%
+\@cmidruleb
+\noalign{\ifnum0=`}\fi
+\futurenonspacelet\@tempa\@BTendrule}
+\def\@BTendrule{\ifx\@tempa\toprule\global\@lastruleclass=\@thisruleclass
+ \else\ifx\@tempa\midrule\global\@lastruleclass=\@thisruleclass
+ \else\ifx\@tempa\bottomrule\global\@lastruleclass=\@thisruleclass
+ \else\ifx\@tempa\cmidrule\global\@lastruleclass=\@thisruleclass
+ \else\ifx\@tempa\specialrule\global\@lastruleclass=\@thisruleclass
+ \else\ifx\@tempa\addlinespace\global\@lastruleclass=\@thisruleclass
+ \else\global\@lastruleclass=\z@\fi\fi\fi\fi\fi\fi
+ \ifnum\@lastruleclass=\@ne\relax\else\vskip\@belowrulesep\fi
+ \ifnum0=`{\fi}}
+\def\@setrulekerning#1{%
+ \global\let\cmrkern@l\z@
+ \global\let\cmrkern@r\z@
+ \@tfor\@tempa :=#1\do
+ {\def\@tempb{r}%
+ \ifx\@tempa\@tempb
+ \global\let\cmrkern@r\cmidrulekern
+ \def\cmrsideswitch{\cmrkern@r}%
+ \else
+ \def\@tempb{l}%
+ \ifx\@tempa\@tempb
+ \global\let\cmrkern@l\cmidrulekern
+ \def\cmrsideswitch{\cmrkern@l}%
+ \else
+ \global\expandafter\let\cmrsideswitch\@tempa
+ \fi
+ \fi}}
+\def\cmidrule{\noalign{\ifnum0=`}\fi
+ \@ifnextchar[{\@cmidrule}{\@cmidrule[\cmidrulewidth]}}
+\def\@cmidrule[#1]{\@ifnextchar({\@@cmidrule[#1]}{\@@cmidrule[#1]()}}
+\def\@@cmidrule[#1](#2)#3{\@@@cmidrule[#3]{#1}{#2}}
+\def\@@@cmidrule[#1-#2]#3#4{\global\@cmidla#1\relax
+ \global\advance\@cmidla\m@ne
+ \ifnum\@cmidla>0\global\let\@gtempa\@cmidrulea\else
+ \global\let\@gtempa\@cmidruleb\fi
+ \global\@cmidlb#2\relax
+ \global\advance\@cmidlb-\@cmidla
+ \global\@thisrulewidth=#3
+ \@setrulekerning{#4}
+ \ifnum\@lastruleclass=\z@\vskip \aboverulesep\fi
+ \ifnum0=`{\fi}\@gtempa
+ \noalign{\ifnum0=`}\fi\futurenonspacelet\@tempa\@xcmidrule}
+\def\@xcmidrule{%
+ \ifx\@tempa\cmidrule
+ \vskip-\@thisrulewidth
+ \global\@lastruleclass=\@ne
+ \else \ifx\@tempa\morecmidrules
+ \vskip \cmidrulesep
+ \global\@lastruleclass=\@ne\else
+ \vskip \belowrulesep
+ \global\@lastruleclass=\z@
+ \fi\fi
+ \ifnum0=`{\fi}}
+\def\@cmidrulea{%
+ \multispan\@cmidla&\multispan\@cmidlb
+ \unskip\hskip\cmrkern@l%
+ {\CT@arc@\leaders\hrule \@height\@thisrulewidth\hfill}%
+ \hskip\cmrkern@r\cr}%
+\def\@cmidruleb{%
+ \multispan\@cmidlb
+ \unskip\hskip \cmrkern@l%
+ {\CT@arc@\leaders\hrule \@height\@thisrulewidth\hfill}%
+ \hskip\cmrkern@r\cr}%
+\def\morecmidrules{\noalign{\relax}}
+\endinput
+%%
+%% End of file `booktabs.sty'.
diff --git a/vu-cs-standard-thesis/caption.sty b/vu-cs-standard-thesis/caption.sty
new file mode 100644
index 0000000..afaf92d
--- /dev/null
+++ b/vu-cs-standard-thesis/caption.sty
@@ -0,0 +1,693 @@
+%%
+%% This is file `caption.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% caption.dtx (with options: `package')
+%%
+%% Copyright (C) 1994-2004 Axel Sommerfeldt (caption@sommerfeldt.net)
+%%
+%% --------------------------------------------------------------------------
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (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 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Axel Sommerfeldt.
+%%
+%% This work consists of the files caption.ins, caption.dtx,
+%% caption2.dtx, caption.xml, and anleitung.tex and the derived files
+%% caption.sty, caption2.sty, and manual.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesPackage{caption}[2004/05/16 v3.0b Customising captions (AS)]
+\providecommand*\@nameundef[1]{%
+ \expandafter\let\csname #1\endcsname\@undefined}
+\providecommand\l@addto@macro[2]{%
+ \begingroup
+ \toks@\expandafter{#1#2}%
+ \edef\@tempa{\endgroup\def\noexpand#1{\the\toks@}}%
+ \@tempa}
+\def\bothIfFirst#1#2{%
+ \protected@edef\caption@tempa{#1}%
+ \ifx\caption@tempa\@empty\else
+ #1#2%
+ \fi}
+\def\bothIfSecond#1#2{%
+ \protected@edef\caption@tempa{#2}%
+ \ifx\caption@tempa\@empty\else
+ #1#2%
+ \fi}
+\def\caption@ifinlist#1#2{%
+ \let\next\@secondoftwo
+ \edef\caption@tempa{#1}%
+ \@for\caption@tempb:={#2}\do{%
+ \ifx\caption@tempa\caption@tempb
+ \let\next\@firstoftwo
+ \fi}%
+ \next}
+\def\caption@setbool#1#2{%
+ \caption@ifinlist{#2}{1,true,yes,on}{%
+ \expandafter\let\csname caption@if#1\endcsname\@firstoftwo
+ }{\caption@ifinlist{#2}{0,false,no,off}{%
+ \expandafter\let\csname caption@if#1\endcsname\@secondoftwo
+ }{%
+ \PackageError{caption}{Undefined boolean value `#2'}{\caption@eh}%
+ }}}
+\def\caption@ifbool#1{\@nameuse{caption@if#1}}
+\newcommand\captionsize{}% changed v3.0a
+\newdimen\captionmargin
+\newdimen\captionwidth
+\newif\ifcaption@width
+\newcommand\caption@setmargin{%
+ \caption@widthfalse
+ \setlength\captionmargin}
+\newcommand\caption@setwidth{%
+ \caption@widthtrue
+ \setlength\captionwidth}
+\newdimen\captionindent
+\newdimen\captionparindent
+\newdimen\captionhangindent
+\newif\ifcaption@star
+\@ifundefined{abovecaptionskip}{%
+ \newlength\abovecaptionskip\setlength\abovecaptionskip{10\p@}}{}
+\@ifundefined{belowcaptionskip}{%
+ \newlength\belowcaptionskip\setlength\belowcaptionskip{0\p@}}{}
+\newcommand\caption@eh{%
+ If you do not understand this error, please take a closer look\MessageBreak
+ at the documentation of the `caption' package.\MessageBreak
+ \@ehc}
+\RequirePackage{keyval}[1997/11/10]
+\providecommand*\undefine@key[2]{%
+ \@nameundef{KV@#1@#2}\@nameundef{KV@#1@#2@default}}
+\newcommand\caption@setdefault{\captionsetup{%
+ format=default,labelformat=default,labelsep=default,justification=default,%
+ font=default,labelfont=default,textfont=default,%
+ margin=0pt,indention=0pt,parindent=0pt,hangindent=0pt,singlelinecheck}}
+\newcommand*\DeclareCaptionStyle[1]{%
+ \@ifnextchar[{\caption@declarestyle{#1}}{\caption@declarestyle{#1}[]}}
+\def\caption@declarestyle#1[#2]#3{% bugfixed v3.0a
+ \global\@namedef{caption@sls@#1}{#2}%
+ \global\@namedef{caption@sty@#1}{#3}}
+\@onlypreamble\DeclareCaptionStyle
+\@onlypreamble\caption@declarestyle
+\newcommand*\caption@setstyle[1]{%
+ \@ifundefined{caption@sty@#1}%
+ {\PackageError{caption}{Undefined caption style `#1'}{\caption@eh}}%
+ {\expandafter\let\expandafter\caption@sls\csname caption@sls@#1\endcsname
+ \caption@setdefault\caption@esetup{\csname caption@sty@#1\endcsname}}}
+\DeclareCaptionStyle{default}[justification=centering]{}
+\newcommand\DeclareCaptionFormat[2]{% bugfixed v3.0a
+ \global\long\expandafter\def\csname caption@fmt@#1\endcsname##1##2##3{#2}}
+\@onlypreamble\DeclareCaptionFormat
+\newcommand*\caption@setformat[1]{%
+ \@ifundefined{caption@fmt@#1}%
+ {\PackageError{caption}{Undefined caption format `#1'}{\caption@eh}}%
+ {\expandafter\let\expandafter\caption@fmt\csname caption@fmt@#1\endcsname}}
+\DeclareCaptionFormat{normal}{#1#2#3\par}
+\DeclareCaptionFormat{hang}{%
+ \@hangfrom{#1#2}%
+ \advance\captionparindent\hangindent
+ \advance\captionhangindent\hangindent
+ \caption@@par
+ #3\par}
+\def\caption@fmt@default{\caption@fmt@normal}
+\newcommand*\DeclareCaptionLabelFormat[2]{% bugfixed v3.0a
+ \global\expandafter\def\csname caption@lfmt@#1\endcsname##1##2{#2}}
+\@onlypreamble\DeclareCaptionLabelFormat
+\newcommand*\caption@setlabelformat[1]{%
+ \@ifundefined{caption@lfmt@#1}%
+ {\PackageError{caption}{Undefined caption label format `#1'}{\caption@eh}}%
+ {\expandafter\let\expandafter\caption@lfmt\csname caption@lfmt@#1\endcsname}}
+\DeclareCaptionLabelFormat{empty}{}
+\DeclareCaptionLabelFormat{simple}{\bothIfFirst{#1}{\nobreakspace}#2}
+\DeclareCaptionLabelFormat{parens}{\bothIfFirst{#1}{\nobreakspace}(#2)}
+\def\caption@lfmt@default{\caption@lfmt@simple}
+\newcommand\DeclareCaptionLabelSeparator[2]{% bugfixed v3.0a
+ \global\long\@namedef{caption@lsep@#1}{#2}}
+\@onlypreamble\DeclareCaptionLabelSeparator
+\newcommand*\caption@setlabelseparator[1]{%
+ \@ifundefined{caption@lsep@#1}%
+ {\PackageError{caption}{Undefined caption label separator `#1'}{\caption@eh}}%
+ {\expandafter\let\expandafter\caption@lsep\csname caption@lsep@#1\endcsname}}
+\DeclareCaptionLabelSeparator{none}{}
+\DeclareCaptionLabelSeparator{colon}{: }
+\DeclareCaptionLabelSeparator{period}{. }
+\DeclareCaptionLabelSeparator{space}{ }
+\DeclareCaptionLabelSeparator{quad}{\quad}
+\DeclareCaptionLabelSeparator{newline}{\newline}
+\DeclareCaptionLabelSeparator{widespace}{\hspace{1em plus .3em}}% obsolete, do not use!
+\def\caption@lsep@default{\caption@lsep@colon}
+\newcommand*\DeclareCaptionJustification[2]{% bugfixed v3.0a
+ \global\@namedef{caption@hj@#1}{#2}}
+\@onlypreamble\DeclareCaptionJustification
+\newcommand*\caption@setjustification[1]{%
+ \@ifundefined{caption@hj@#1}%
+ {\PackageError{caption}{Undefined caption justification `#1'}{\caption@eh}}%
+ {\expandafter\let\expandafter\caption@hj\csname caption@hj@#1\endcsname}}
+\newcommand\caption@centerfirst{%
+ \edef\caption@normaladjust{%
+ \leftskip\the\leftskip
+ \rightskip\the\rightskip
+ \parfillskip\the\parfillskip\relax}%
+ \leftskip\z@\@plus -1fil%
+ \rightskip\z@\@plus 1fil%
+ \parfillskip\z@skip
+ \noindent\hskip\z@\@plus 2fil%
+ \@setpar{\@@par\@restorepar\caption@normaladjust}}
+\newcommand\caption@centerlast{%
+ \leftskip\z@\@plus 1fil%
+ \rightskip\z@\@plus -1fil%
+ \parfillskip\z@\@plus 2fil\relax}
+\DeclareCaptionJustification{justified}{}
+\DeclareCaptionJustification{centering}{\centering}
+\DeclareCaptionJustification{centerfirst}{\caption@centerfirst}
+\DeclareCaptionJustification{centerlast}{\caption@centerlast}
+\DeclareCaptionJustification{raggedleft}{\raggedleft}
+\DeclareCaptionJustification{raggedright}{\raggedright}
+\def\caption@hj@default{\caption@hj@justified}
+\DeclareCaptionJustification{Centering}{%
+ \caption@ragged\Centering\centering}
+\DeclareCaptionJustification{RaggedLeft}{%
+ \caption@ragged\RaggedLeft\raggedleft}
+\DeclareCaptionJustification{RaggedRight}{%
+ \caption@ragged\RaggedRight\raggedright}
+\newcommand*\caption@ragged[2]{%
+ \@ifundefined{caption\string#1}{%
+ \PackageWarning{caption}{%
+ Cannot locate the `ragged2e' package, therefore\MessageBreak
+ substituting \string#2 for \string#1\MessageBreak}%
+ \global\@namedef{caption\string#1}}{}%
+ #2}
+\AtBeginDocument{\IfFileExists{ragged2e.sty}{%
+ \RequirePackage{ragged2e}\let\caption@ragged\@firstoftwo}{}}
+\newcommand\DeclareCaptionFont[2]{% bugfixed v3.0a
+ \define@key{caption@fnt}{#1}[]{\g@addto@macro\caption@tempa{#2}}}
+\@onlypreamble\DeclareCaptionFont
+\newcommand*\caption@setfont[2]{%
+ \let\caption@tempa\@empty
+ \begingroup
+ \setkeys{caption@fnt}{#2}%
+ \endgroup
+ \expandafter\let\csname caption#1\endcsname\caption@tempa}
+\DeclareCaptionFont{default}{}
+\DeclareCaptionFont{scriptsize}{\scriptsize}
+\DeclareCaptionFont{footnotesize}{\footnotesize}
+\DeclareCaptionFont{small}{\small}
+\DeclareCaptionFont{normalsize}{\normalsize}
+\DeclareCaptionFont{large}{\large}
+\DeclareCaptionFont{Large}{\Large}
+\DeclareCaptionFont{up}{\upshape}
+\DeclareCaptionFont{it}{\itshape}
+\DeclareCaptionFont{sl}{\slshape}
+\DeclareCaptionFont{sc}{\scshape}
+\DeclareCaptionFont{md}{\mdseries}
+\DeclareCaptionFont{bf}{\bfseries}
+\DeclareCaptionFont{rm}{\rmfamily}
+\DeclareCaptionFont{sf}{\sffamily}
+\DeclareCaptionFont{tt}{\ttfamily}
+\newcommand*\caption@setposition[1]{% improved v3.0a
+ \caption@ifinlist{#1}{t,top,above}{%
+ \let\caption@position\@firstoftwo
+ }{\caption@ifinlist{#1}{b,bottom,below,default}{%
+ \let\caption@position\@secondoftwo
+ }{\caption@ifinlist{#1}{a,auto}{%
+ \let\caption@position\@undefined
+ }{%
+ \PackageError{caption}{Undefined caption position `#1'}{\caption@eh}%
+ }}}}
+\def\captionsetup{\@ifnextchar[\caption@setuptype\caption@setup}
+\def\caption@setuptype[#1]#2{% bugfixed v3.0a
+ \@ifundefined{caption@typ@#1}%
+ {\@namedef{caption@typ@#1}{#2}}%
+ {\expandafter\l@addto@macro\csname caption@typ@#1\endcsname{,#2}}}
+\def\caption@setup{\setkeys{caption}}
+\def\caption@esetup#1{%
+ \edef\caption@tempa{\noexpand\caption@setup{#1}}%
+ \caption@tempa}
+\def\caption@settype#1{%
+ \@ifundefined{caption@typ@#1}{}{%
+ \caption@esetup{\csname caption@typ@#1\endcsname}}}%
+\let\caption@setfloattype\caption@settype% new v3.0a
+\newcommand*\clearcaptionsetup[1]{\@nameundef{caption@typ@#1}}
+\newcommand*\showcaptionsetup[2][]{%
+ \def\caption@tempa{#1}%
+ \ifx\caption@tempa\@empty
+ \def\caption@tempa{Caption\space}%
+ \else
+ \def\caption@tempa{#1 Caption\space}%
+ \fi
+ \GenericWarning{\caption@tempa}{%
+ \caption@tempa Info: KV list on `#2'\MessageBreak
+ Data: (%
+ \@ifundefined{caption@typ@#2}{%
+ % Empty -- print nothing.
+ }{%
+ \@nameuse{caption@typ@#2}%
+ }%
+ )}}
+\newcommand\caption@beginhook{}
+\newcommand\caption@endhook{}
+\newcommand\AtBeginCaption{\l@addto@macro\caption@beginhook}
+\newcommand\AtEndCaption{\l@addto@macro\caption@endhook}
+\newcommand\DeclareCaptionOption{%
+ \@ifstar{\caption@declareoption\AtEndOfPackage}{\caption@declareoption\@gobble}}
+\newcommand*\caption@declareoption[2]{%
+ #1{\undefine@key{caption}{#2}}\define@key{caption}{#2}}
+\@onlypreamble\DeclareCaptionOption
+\@onlypreamble\caption@declareoption
+\DeclareCaptionOption{default}[]{%
+ \caption@setup{style=default,position=default,aboveskip=10pt,belowskip=0pt}}
+\DeclareCaptionOption{style}{\caption@setstyle{#1}}
+\DeclareCaptionOption{format}{\caption@setformat{#1}}
+\DeclareCaptionOption{labelformat}{\caption@setlabelformat{#1}}
+\DeclareCaptionOption{labelsep}{\caption@setlabelseparator{#1}}
+\DeclareCaptionOption{labelseparator}{\caption@setlabelseparator{#1}}
+\DeclareCaptionOption{justification}{\caption@setjustification{#1}}
+\DeclareCaptionOption{size}{\caption@setfont{size}{#1}}% changed v3.0a
+\DeclareCaptionOption{font}{\caption@setfont{font}{#1}}
+\DeclareCaptionOption{labelfont}{\caption@setfont{labelfont}{#1}}
+\DeclareCaptionOption{textfont}{\caption@setfont{textfont}{#1}}
+\DeclareCaptionOption{margin}{\caption@setmargin{#1}}
+\DeclareCaptionOption{width}{\caption@setwidth{#1}}
+\DeclareCaptionOption{indent}[\leftmargini]{\setlength\captionindent{#1}}
+\DeclareCaptionOption{indention}[\leftmargini]{\setlength\captionindent{#1}}
+\DeclareCaptionOption{parindent}[\parindent]{\setlength\captionparindent{#1}}% changed v3.0b
+\DeclareCaptionOption{hangindent}[0pt]{\setlength\captionhangindent{#1}}% changed v3.0b
+\DeclareCaptionOption{parskip}[5pt]{\AtBeginCaption{\setlength\parskip{#1}}}
+\DeclareCaptionOption{singlelinecheck}[1]{\caption@setbool{slc}{#1}}
+\DeclareCaptionOption{aboveskip}{\setlength\abovecaptionskip{#1}}
+\DeclareCaptionOption{belowskip}{\setlength\belowcaptionskip{#1}}
+\DeclareCaptionOption{position}{\caption@setposition{#1}}
+\DeclareCaptionOption{listof}{\caption@setbool{lof}{#1}}% new v3.0b
+\DeclareCaptionOption{debug}{\def\caption@debug{#1}}
+\captionsetup{style=default,position=default,listof=1,debug=0}
+\newcommand\caption@fixposition{%
+ \ifx\caption@position\@undefined
+ \caption@autoposition
+ \fi}
+\newcommand\caption@autoposition{% bugfixed v3.0a
+ \ifvmode
+ \ifodd\caption@debug\relax
+ \edef\caption@tempa{\the\prevdepth}%
+ \PackageInfo{caption}{\protect\prevdepth=\caption@tempa}%
+ \fi
+ \ifdim\prevdepth>-\p@
+ \let\caption@position\@secondoftwo
+ \else
+ \let\caption@position\@firstoftwo
+ \fi
+ \else
+ \ifodd\caption@debug\relax
+ \PackageInfo{caption}{no \protect\prevdepth}%
+ \fi
+ \let\caption@position\@secondoftwo
+ \fi}
+\newcommand\caption@iftop{% bugfixed v3.0a
+ \ifx\caption@position\@firstoftwo
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+\newcommand\caption@make[2]{%
+ \caption@@make{\caption@lfmt{#1}{#2}}}
+\newcommand\caption@@make[2]{%
+ \caption@beginhook
+ \caption@calcmargin
+ \advance\captionmargin by \captionindent
+ \advance\captionwidth by -\captionindent
+ \hskip\captionmargin
+ \vbox{\hsize=\captionwidth
+ \ifdim\captionindent=\z@\else
+ \hskip-\captionindent
+ \fi
+ \caption@ifslc{%
+ \ifx\caption@sls\@empty\else
+ \caption@beginslc
+ \sbox\@tempboxa{\caption@@@make{#1}{#2}}%
+ \ifdim\wd\@tempboxa >\hsize
+ \caption@endslc
+ \else
+ \caption@endslc
+ \caption@esetup\caption@sls
+ \fi
+ \fi}{}%
+ \captionsize\captionfont\strut
+ \caption@@@make{#1}{#2}}%
+ \caption@endhook
+ \global\caption@starfalse}
+\newcommand\caption@calcmargin{%
+ \ifcaption@width
+ \captionmargin\hsize
+ \advance\captionmargin by -\captionwidth
+ \divide\captionmargin by 2
+ \else
+ \captionwidth\hsize
+ \advance\captionwidth by -2\captionmargin
+ \fi
+ \ifodd\caption@debug\relax
+ \PackageInfo{caption}{\protect\hsize=\the\hsize,
+ \protect\margin=\the\captionmargin,
+ \protect\width=\the\captionwidth}%
+ \fi}
+\newcommand\caption@beginslc{%
+ \begingroup
+ \let\label\@gobble\let\@footnotetext\@gobble
+ \def\stepcounter##1{\advance\csname c@##1\endcsname\@ne\relax}}
+\newcommand\caption@endslc{%
+ \endgroup}
+\newcommand\caption@@@make[2]{%
+ \ifcaption@star
+ \let\caption@lfmt\@gobbletwo
+ \let\caption@lsep\relax
+ \fi
+ \def\caption@tempa{#2}%
+ \def\caption@tempb{\ignorespaces}%
+ \ifx\caption@tempa\caption@tempb
+ \let\caption@tempa\@empty
+ \fi
+ \ifx\caption@tempa\@empty
+ \let\caption@lsep\relax
+ \fi
+ \def\caption@@par{%
+ \parindent\captionparindent\hangindent\captionhangindent}%
+ \@setpar{\@@par\caption@@par}\caption@@par
+ \caption@hj\captionsize\captionfont
+ \caption@fmt{{\captionlabelfont#1}}%
+ {{\captionlabelfont\caption@lsep}}%
+ {{\captiontextfont\nobreak\hskip\z@skip#2\par}}}
+\DeclareCaptionOption{config}[caption]{%
+ \InputIfFileExists{#1.cfg}{\typeout{*** Local configuration file
+ #1.cfg used ***}}%
+ {\PackageWarning{caption}{Configuration
+ file #1.cfg not found}}}
+\DeclareCaptionOption*{figureposition}{\captionsetup[figure]{position=#1}}% new v3.0a
+\DeclareCaptionOption*{tableposition}{\captionsetup[table]{position=#1}}% new v3.0a
+\DeclareCaptionOption*{normal}[]{\caption@setformat{normal}}
+\DeclareCaptionOption*{isu}[]{\caption@setformat{hang}}
+\DeclareCaptionOption*{hang}[]{\caption@setformat{hang}}
+\DeclareCaptionOption*{center}[]{\caption@setjustification{centering}}
+\DeclareCaptionOption*{anne}[]{\caption@setjustification{centerlast}}
+\DeclareCaptionOption*{centerlast}[]{\caption@setjustification{centerlast}}
+\DeclareCaptionOption*{nooneline}[]{\caption@setbool{slc}{0}}
+\DeclareCaptionOption*{scriptsize}[]{\def\captionfont{\scriptsize}}
+\DeclareCaptionOption*{footnotesize}[]{\def\captionfont{\footnotesize}}
+\DeclareCaptionOption*{small}[]{\def\captionfont{\small}}
+\DeclareCaptionOption*{normalsize}[]{\def\captionfont{\normalsize}}
+\DeclareCaptionOption*{large}[]{\def\captionfont{\large}}
+\DeclareCaptionOption*{Large}[]{\def\captionfont{\Large}}
+\DeclareCaptionOption*{up}[]{\l@addto@macro\captionlabelfont\upshape}
+\DeclareCaptionOption*{it}[]{\l@addto@macro\captionlabelfont\itshape}
+\DeclareCaptionOption*{sl}[]{\l@addto@macro\captionlabelfont\slshape}
+\DeclareCaptionOption*{sc}[]{\l@addto@macro\captionlabelfont\scshape}
+\DeclareCaptionOption*{md}[]{\l@addto@macro\captionlabelfont\mdseries}
+\DeclareCaptionOption*{bf}[]{\l@addto@macro\captionlabelfont\bfseries}
+\DeclareCaptionOption*{rm}[]{\l@addto@macro\captionlabelfont\rmfamily}
+\DeclareCaptionOption*{sf}[]{\l@addto@macro\captionlabelfont\sffamily}
+\DeclareCaptionOption*{tt}[]{\l@addto@macro\captionlabelfont\ttfamily}
+\caption@setbool{ruled}{0}
+\DeclareCaptionOption*{ruled}[]{\caption@setbool{ruled}{1}}
+\newcommand*\DeclareCaptionPackage[1]{%
+ \caption@setbool{pkt@#1}{1}%
+ \DeclareCaptionOption*{#1}{\caption@setbool{pkt@#1}{##1}}}
+\DeclareCaptionPackage{caption}
+\DeclareCaptionPackage{float}
+\DeclareCaptionPackage{listings}
+\DeclareCaptionPackage{longtable}
+\DeclareCaptionPackage{rotating}
+\DeclareCaptionPackage{sidecap}
+\DeclareCaptionPackage{supertabular}
+\let\DeclareCaptionPackage\@undefined
+\def\ProcessOptionsWithKV#1{% bugfixed v3.0a
+ \let\@tempc\relax
+ \let\caption@tempa\@empty
+ \@for\CurrentOption:=\@classoptionslist\do{%
+ \@ifundefined{KV@#1@\CurrentOption}%
+ {}%
+ {%
+ \edef\caption@tempa{\caption@tempa,\CurrentOption,}%
+ \@expandtwoargs\@removeelement\CurrentOption
+ \@unusedoptionlist\@unusedoptionlist
+ }%
+ }%
+ \edef\caption@tempa{%
+ \noexpand\setkeys{#1}{%
+ \caption@tempa\@ptionlist{\@currname.\@currext}%
+ }%
+ }%
+ \caption@tempa
+ \let\CurrentOption\@empty
+ \AtEndOfPackage{\let\@unprocessedoptions\relax}}
+\ProcessOptionsWithKV{caption}
+\let\ProcessOptionsWithKV\@undefined
+\def\captionof{\@ifstar{\caption@of{\caption*}}{\caption@of\caption}}
+\newcommand*\caption@of[2]{\def\@captype{#2}#1}
+\providecommand\ContinuedFloat{%
+ \ifx\@captype\@undefined
+ \@latex@error{\noexpand\ContinuedFloat outside float}\@ehd
+ \else
+ \addtocounter{\@captype}{\m@ne}%
+ \fi}%
+\newcommand*\caption@floatname[1]{\@nameuse{#1name}}
+\newcommand*\caption@thefloat[1]{\@nameuse{the#1}}
+\def\caption@letfloattype#1{%
+ \def\caption@setfloattype##1{%
+ \caption@settype{##1}\caption@settype{#1}}}
+\newcommand*\caption@begin[1]{%
+ \begingroup
+ \caption@setfloattype{#1}%
+ \@namedef{fnum@#1}{%
+ \caption@lfmt{\caption@floatname{#1}}{\caption@thefloat{#1}}}%
+ \caption@fixposition
+ \global\let\caption@fixedposition\caption@position
+ \caption@@begin{#1}}
+\newcommand*\caption@beginex[1]{%
+ \caption@begin{#1}%
+ \caption@preparelof}
+\newcommand*\caption@end{%
+ \caption@@end
+ \endgroup
+ \let\caption@position\caption@fixedposition}
+\let\caption@@begin\@gobble% new v3.0a
+\let\caption@@end\@empty% new v3.0a
+\newcommand*\caption@preparelof[1]{% changed v3.0b
+ \caption@ifbool{lof}%
+ {\def\caption@tempa{#1}}%
+ {\let\caption@tempa\@empty}%
+ \ifx\caption@tempa\@empty
+ \def\addcontentsline##1##2##3{}%
+ \fi}
+\caption@ifpkt@caption{
+ \renewcommand\@makecaption[2]{%
+ \caption@iftop{\vskip\belowcaptionskip}{\vskip\abovecaptionskip}%
+ \ifnum\caption@debug>1 %
+ \llap{$\caption@iftop\downarrow\uparrow$ }%
+ \fi
+ \caption@@make{#1}{#2}%
+ \caption@iftop{\vskip\abovecaptionskip}{\vskip\belowcaptionskip}}
+ \AtBeginDocument{%
+ \let\caption@@old\@caption
+ \long\def\@caption#1[#2]#3{%
+ \caption@beginex{#1}{#2}%
+ \caption@@old{#1}[{#2}]{#3}%
+ \caption@end}%
+ \@ifundefined{cc@caption}{%
+ \def\caption@caption#1{%
+ \@ifstar{\global\caption@startrue\@ifnextchar[{#1}{#1[]}}{#1}}%
+ \let\caption@old\caption
+ \def\caption{\caption@caption\caption@old}%
+ }{%
+ \let\caption@@captcont\cc@scaption
+ \long\def\cc@scaption#1[#2]#3{%
+ \caption@beginex{#1}{#2}%
+ \caption@@captcont{#1}[{#2}]{#3}%
+ \caption@end}%
+ }%
+ }}{}
+\AtEndOfPackage{\let\caption@ifpkt@caption\@undefined}% bugfixed v3.0a
+\newcommand*\caption@ifpackage[2]{%
+ \let\next\@gobble
+ \caption@ifpkt@caption{%
+ \caption@ifbool{pkt@#1}{%
+ \@ifundefined{#2}%
+ {\let\next\AtBeginDocument}%
+ {\let\next\@firstofone}}{}%
+ \ifodd\caption@debug\relax
+ \edef\caption@tempa{%
+ \caption@ifbool{pkt@#1}{%
+ \@ifundefined{#2}{AtBeginDocument}{firstofone}%
+ }{gobble}}%
+ \PackageInfo{caption}{#1 = \caption@ifbool{pkt@#1}{1}{0} %
+ (\@ifundefined{#2}{not }{}loaded -> \caption@tempa)}%
+ \fi
+ }{}%
+ \@nameundef{caption@ifpkt@#1}% bugfixed v3.0a
+ \next}
+\AtEndOfPackage{\let\caption@ifpackage\@undefined}
+\def\caption@setfloatposition{%
+ \caption@setposition{\@fs@iftopcapt t\else b\fi}}
+\caption@ifpackage{float}{float@caption}{%
+ \ifx\float@caption\relax
+ \else
+ \PackageInfo{caption}{float package v1.2 (or newer) detected}%
+ \let\caption@of@float\@gobble
+ \renewcommand*\caption@of[2]{%
+ \@ifundefined{fst@#2}{}{%
+ \let\caption@of@float\@firstofone
+ \@nameuse{fst@#2}\@float@setevery{#2}}%
+ \def\@captype{#2}#1}%
+ \renewcommand*\caption@floatname[1]{%
+ \@nameuse{\@ifundefined{fname@#1}{#1name}{fname@#1}}}%
+ \let\caption@@float\float@caption
+ \long\def\float@caption#1[#2]#3{%
+ \caption@beginex{#1}{#2}%
+ \let\@fs@capt\caption@@make
+ \caption@@float{#1}[{#2}]{#3}%
+ \caption@of@float{%
+ \def\caption@@make##1##2{\unvbox\@floatcapt}%
+ \@makecaption{}{}}%
+ \caption@end}%
+ \renewcommand*\caption@setfloattype[1]{% improved v3.0a
+ \caption@fixfloat@c{#1}%
+ \expandafter\ifx\csname @float@c@#1\endcsname\float@caption
+ \expandafter\let\expandafter\caption@fst\csname fst@#1\endcsname
+ \edef\caption@fst{\noexpand\string\expandafter\noexpand\caption@fst}%
+ \edef\caption@fst{\noexpand\@gobblefour\caption@fst}%
+ \@ifundefined{caption@sty@\caption@fst}{}{\caption@setstyle\caption@fst}%
+ \caption@setfloatposition% changed v3.0b
+ \fi
+ \caption@settype{#1}}%
+ \let\caption@float\caption
+ \def\caption{%
+ \ifx\@captype\@undefined
+ \@latex@error{\noexpand\caption outside float}\@ehd
+ \expandafter\@gobble
+ \else
+ \caption@fixfloat@c\@captype
+ \fi
+ \caption@float}%
+ \def\caption@fixfloat@c#1{%
+ \expandafter\let\expandafter\caption@tempa\csname @float@c@#1\endcsname
+ \ifx\caption@tempa\relax
+ \else\ifx\caption@tempa\float@caption
+ \else\ifx\caption@tempa\@caption
+ \else\ifx\caption@tempa\caption@@float
+ \ifodd\caption@debug\relax
+ \PackageInfo{caption}{\protect\@float@c@#1\space := \protect\float@caption}%
+ \fi
+ \expandafter\let\csname @float@c@#1\endcsname\float@caption
+ \else
+ \ifodd\caption@debug\relax
+ \PackageInfo{caption}{\protect\@float@c@#1\space := \protect\@caption}%
+ \fi
+ \expandafter\let\csname @float@c@#1\endcsname\@caption
+ \fi\fi\fi\fi}%
+ \fi}
+\caption@ifbool{ruled}{}{%
+ \DeclareCaptionStyle{ruled}{labelfont=bf,labelsep=space}}
+\let\caption@ifruled\@undefined
+\caption@ifpackage{listings}{lst@MakeCaption}{%
+ \ifx\lst@MakeCaption\relax
+ \else
+ \PackageInfo{caption}{listings package v1.2 (or newer) detected}%
+ \let\caption@lst@MakeCaption\lst@MakeCaption
+ \def\lst@MakeCaption#1{%
+ \let\caption@setfloattype\caption@settype
+ \def\caption@autoposition{\caption@setposition{#1}}%
+ \caption@begin{lstlisting}%
+ \caption@lst@MakeCaption{#1}%
+ \caption@end}%
+ \fi}
+\caption@ifpackage{longtable}{LT@makecaption}{%
+ \ifx\LT@makecaption\relax
+ \else
+ \PackageInfo{caption}{longtable package v3.15 (or newer) detected}%
+ \def\LT@makecaption#1#2#3{%
+ \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\linewidth{%
+ \caption@letfloattype{longtable}%
+ \caption@begin{table}%
+ \ifdim\LTcapwidth=4in \else
+ \caption@setwidth\LTcapwidth
+ \fi
+ \caption@startrue#1\caption@starfalse
+ \caption@@make{#2}{#3}%
+ \caption@end
+ \endgraf\vskip\baselineskip}%
+ \hss}}}%
+ \fi}
+\caption@ifpackage{rotating}{@rotcaption}{%
+ \ifx\@rotcaption\relax
+ \else
+ \PackageInfo{caption}{rotating package v2.0 (or newer) detected}%
+ \@ifundefined{caption@caption}{}{%
+ \let\caption@rot\rotcaption
+ \def\rotcaption{\caption@caption\caption@rot}}%
+ \let\caption@@rot\@rotcaption
+ \long\def\@rotcaption#1[#2]#3{%
+ \caption@beginex{#1}{#2}%
+ \caption@@rot{#1}[{#2}]{#3}%
+ \caption@end}%
+ \long\def\@makerotcaption#1#2{%
+ \rotatebox{90}{%
+ \begin{minipage}{.8\textheight}%
+ \caption@@make{#1}{#2}%
+ \end{minipage}%
+ }\par
+ \hspace{12pt}}%
+ \fi}
+\caption@ifpackage{sidecap}{endSC@FLOAT}{%
+ \ifx\endSC@FLOAT\relax
+ \else
+ \PackageInfo{caption}{sidecap package v1.4d (or newer) detected}%
+ \let\SC@caption=\caption
+ \@ifundefined{caption@caption}{}{%
+ \let\caption@SC@zfloat\SC@zfloat
+ \def\SC@zfloat#1#2#3[#4]{%
+ \caption@SC@zfloat{#1}{#2}{#3}[#4]%
+ \global\let\SC@CAPsetup\@empty
+ \renewcommand\captionsetup[1]{\g@addto@macro\SC@CAPsetup{,##1}}%
+ \let\caption@old\caption
+ \def\caption{\caption@caption\caption@old}%
+ }}%
+ \let\caption@endSC@FLOAT\endSC@FLOAT
+ \def\endSC@FLOAT{%
+ \caption@setmargin\z@
+ \@ifundefined{SC@justify}{}{%
+ \ifx\SC@justify\@empty\else
+ \let\caption@hj\SC@justify
+ \let\SC@justify\@empty
+ \fi}%
+ \caption@esetup\SC@CAPsetup
+ \caption@letfloattype{SC\@captype}%
+ \caption@endSC@FLOAT}%
+ \fi}
+\def\caption@setSTposition{%
+ \caption@setposition{\if@topcaption t\else b\fi}}
+\caption@ifpackage{supertabular}{ST@caption}{%
+ \ifx\ST@caption\relax
+ \else
+ \PackageInfo{caption}{supertabular package detected}%
+ \let\caption@ST\ST@caption
+ \long\def\ST@caption#1[#2]#3{\par% bugfixed v3.0a
+ \caption@letfloattype{supertabular}%
+ \let\caption@fixposition\caption@setSTposition
+ \caption@beginex{#1}{#2}%
+ \addcontentsline{\csname ext@#1\endcsname}{#1}%
+ {\protect\numberline{%
+ \csname the#1\endcsname}{\ignorespaces #2}}%
+ \@parboxrestore
+ \normalsize
+ \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+ \caption@end}%
+ \fi}
+\AtBeginDocument{\let\scr@caption\caption}
+\endinput
+%%
+%% End of file `caption.sty'.
diff --git a/vu-cs-standard-thesis/fancyhdr.sty b/vu-cs-standard-thesis/fancyhdr.sty
new file mode 100644
index 0000000..77ed4e3
--- /dev/null
+++ b/vu-cs-standard-thesis/fancyhdr.sty
@@ -0,0 +1,485 @@
+% fancyhdr.sty version 3.2
+% Fancy headers and footers for LaTeX.
+% Piet van Oostrum,
+% Dept of Computer and Information Sciences, University of Utrecht,
+% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands
+% Telephone: +31 30 2532180. Email: piet@cs.uu.nl
+% ========================================================================
+% LICENCE:
+% This file may be distributed under the terms of the LaTeX Project Public
+% License, as described in lppl.txt in the base LaTeX distribution.
+% Either version 1 or, at your option, any later version.
+% ========================================================================
+% MODIFICATION HISTORY:
+% Sep 16, 1994
+% version 1.4: Correction for use with \reversemargin
+% Sep 29, 1994:
+% version 1.5: Added the \iftopfloat, \ifbotfloat and \iffloatpage commands
+% Oct 4, 1994:
+% version 1.6: Reset single spacing in headers/footers for use with
+% setspace.sty or doublespace.sty
+% Oct 4, 1994:
+% version 1.7: changed \let\@mkboth\markboth to
+% \def\@mkboth{\protect\markboth} to make it more robust
+% Dec 5, 1994:
+% version 1.8: corrections for amsbook/amsart: define \@chapapp and (more
+% importantly) use the \chapter/sectionmark definitions from ps@headings if
+% they exist (which should be true for all standard classes).
+% May 31, 1995:
+% version 1.9: The proposed \renewcommand{\headrulewidth}{\iffloatpage...
+% construction in the doc did not work properly with the fancyplain style.
+% June 1, 1995:
+% version 1.91: The definition of \@mkboth wasn't restored on subsequent
+% \pagestyle{fancy}'s.
+% June 1, 1995:
+% version 1.92: The sequence \pagestyle{fancyplain} \pagestyle{plain}
+% \pagestyle{fancy} would erroneously select the plain version.
+% June 1, 1995:
+% version 1.93: \fancypagestyle command added.
+% Dec 11, 1995:
+% version 1.94: suggested by Conrad Hughes <chughes@maths.tcd.ie>
+% CJCH, Dec 11, 1995: added \footruleskip to allow control over footrule
+% position (old hardcoded value of .3\normalbaselineskip is far too high
+% when used with very small footer fonts).
+% Jan 31, 1996:
+% version 1.95: call \@normalsize in the reset code if that is defined,
+% otherwise \normalsize.
+% this is to solve a problem with ucthesis.cls, as this doesn't
+% define \@currsize. Unfortunately for latex209 calling \normalsize doesn't
+% work as this is optimized to do very little, so there \@normalsize should
+% be called. Hopefully this code works for all versions of LaTeX known to
+% mankind.
+% April 25, 1996:
+% version 1.96: initialize \headwidth to a magic (negative) value to catch
+% most common cases that people change it before calling \pagestyle{fancy}.
+% Note it can't be initialized when reading in this file, because
+% \textwidth could be changed afterwards. This is quite probable.
+% We also switch to \MakeUppercase rather than \uppercase and introduce a
+% \nouppercase command for use in headers. and footers.
+% May 3, 1996:
+% version 1.97: Two changes:
+% 1. Undo the change in version 1.8 (using the pagestyle{headings} defaults
+% for the chapter and section marks. The current version of amsbook and
+% amsart classes don't seem to need them anymore. Moreover the standard
+% latex classes don't use \markboth if twoside isn't selected, and this is
+% confusing as \leftmark doesn't work as expected.
+% 2. include a call to \ps@empty in ps@@fancy. This is to solve a problem
+% in the amsbook and amsart classes, that make global changes to \topskip,
+% which are reset in \ps@empty. Hopefully this doesn't break other things.
+% May 7, 1996:
+% version 1.98:
+% Added % after the line \def\nouppercase
+% May 7, 1996:
+% version 1.99: This is the alpha version of fancyhdr 2.0
+% Introduced the new commands \fancyhead, \fancyfoot, and \fancyhf.
+% Changed \headrulewidth, \footrulewidth, \footruleskip to
+% macros rather than length parameters, In this way they can be
+% conditionalized and they don't consume length registers. There is no need
+% to have them as length registers unless you want to do calculations with
+% them, which is unlikely. Note that this may make some uses of them
+% incompatible (i.e. if you have a file that uses \setlength or \xxxx=)
+% May 10, 1996:
+% version 1.99a:
+% Added a few more % signs
+% May 10, 1996:
+% version 1.99b:
+% Changed the syntax of \f@nfor to be resistent to catcode changes of :=
+% Removed the [1] from the defs of \lhead etc. because the parameter is
+% consumed by the \@[xy]lhead etc. macros.
+% June 24, 1997:
+% version 1.99c:
+% corrected \nouppercase to also include the protected form of \MakeUppercase
+% \global added to manipulation of \headwidth.
+% \iffootnote command added.
+% Some comments added about \@fancyhead and \@fancyfoot.
+% Aug 24, 1998
+% version 1.99d
+% Changed the default \ps@empty to \ps@@empty in order to allow
+% \fancypagestyle{empty} redefinition.
+% Oct 11, 2000
+% version 2.0
+% Added LPPL license clause.
+%
+% A check for \headheight is added. An errormessage is given (once) if the
+% header is too large. Empty headers don't generate the error even if
+% \headheight is very small or even 0pt.
+% Warning added for the use of 'E' option when twoside option is not used.
+% In this case the 'E' fields will never be used.
+%
+% Mar 10, 2002
+% version 2.1beta
+% New command: \fancyhfoffset[place]{length}
+% defines offsets to be applied to the header/footer to let it stick into
+% the margins (if length > 0).
+% place is like in fancyhead, except that only E,O,L,R can be used.
+% This replaces the old calculation based on \headwidth and the marginpar
+% area.
+% \headwidth will be dynamically calculated in the headers/footers when
+% this is used.
+%
+% Mar 26, 2002
+% version 2.1beta2
+% \fancyhfoffset now also takes h,f as possible letters in the argument to
+% allow the header and footer widths to be different.
+% New commands \fancyheadoffset and \fancyfootoffset added comparable to
+% \fancyhead and \fancyfoot.
+% Errormessages and warnings have been made more informative.
+%
+% Dec 9, 2002
+% version 2.1
+% The defaults for \footrulewidth, \plainheadrulewidth and
+% \plainfootrulewidth are changed from \z@skip to 0pt. In this way when
+% someone inadvertantly uses \setlength to change any of these, the value
+% of \z@skip will not be changed, rather an errormessage will be given.
+
+% March 3, 2004
+% Release of version 3.0
+
+% Oct 7, 2004
+% version 3.1
+% Added '\endlinechar=13' to \fancy@reset to prevent problems with
+% includegraphics in header when verbatiminput is active.
+
+% March 22, 2005
+% version 3.2
+% reset \everypar (the real one) in \fancy@reset because spanish.ldf does
+% strange things with \everypar between << and >>.
+
+\def\ifancy@mpty#1{\def\temp@a{#1}\ifx\temp@a\@empty}
+
+\def\fancy@def#1#2{\ifancy@mpty{#2}\fancy@gbl\def#1{\leavevmode}\else
+ \fancy@gbl\def#1{#2\strut}\fi}
+
+\let\fancy@gbl\global
+
+\def\@fancyerrmsg#1{%
+ \ifx\PackageError\undefined
+ \errmessage{#1}\else
+ \PackageError{Fancyhdr}{#1}{}\fi}
+\def\@fancywarning#1{%
+ \ifx\PackageWarning\undefined
+ \errmessage{#1}\else
+ \PackageWarning{Fancyhdr}{#1}{}\fi}
+
+% Usage: \@forc \var{charstring}{command to be executed for each char}
+% This is similar to LaTeX's \@tfor, but expands the charstring.
+
+\def\@forc#1#2#3{\expandafter\f@rc\expandafter#1\expandafter{#2}{#3}}
+\def\f@rc#1#2#3{\def\temp@ty{#2}\ifx\@empty\temp@ty\else
+ \f@@rc#1#2\f@@rc{#3}\fi}
+\def\f@@rc#1#2#3\f@@rc#4{\def#1{#2}#4\f@rc#1{#3}{#4}}
+
+% Usage: \f@nfor\name:=list\do{body}
+% Like LaTeX's \@for but an empty list is treated as a list with an empty
+% element
+
+\newcommand{\f@nfor}[3]{\edef\@fortmp{#2}%
+ \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}}
+
+% Usage: \def@ult \cs{defaults}{argument}
+% sets \cs to the characters from defaults appearing in argument
+% or defaults if it would be empty. All characters are lowercased.
+
+\newcommand\def@ult[3]{%
+ \edef\temp@a{\lowercase{\edef\noexpand\temp@a{#3}}}\temp@a
+ \def#1{}%
+ \@forc\tmpf@ra{#2}%
+ {\expandafter\if@in\tmpf@ra\temp@a{\edef#1{#1\tmpf@ra}}{}}%
+ \ifx\@empty#1\def#1{#2}\fi}
+%
+% \if@in <char><set><truecase><falsecase>
+%
+\newcommand{\if@in}[4]{%
+ \edef\temp@a{#2}\def\temp@b##1#1##2\temp@b{\def\temp@b{##1}}%
+ \expandafter\temp@b#2#1\temp@b\ifx\temp@a\temp@b #4\else #3\fi}
+
+\newcommand{\fancyhead}{\@ifnextchar[{\f@ncyhf\fancyhead h}%
+ {\f@ncyhf\fancyhead h[]}}
+\newcommand{\fancyfoot}{\@ifnextchar[{\f@ncyhf\fancyfoot f}%
+ {\f@ncyhf\fancyfoot f[]}}
+\newcommand{\fancyhf}{\@ifnextchar[{\f@ncyhf\fancyhf{}}%
+ {\f@ncyhf\fancyhf{}[]}}
+
+% New commands for offsets added
+
+\newcommand{\fancyheadoffset}{\@ifnextchar[{\f@ncyhfoffs\fancyheadoffset h}%
+ {\f@ncyhfoffs\fancyheadoffset h[]}}
+\newcommand{\fancyfootoffset}{\@ifnextchar[{\f@ncyhfoffs\fancyfootoffset f}%
+ {\f@ncyhfoffs\fancyfootoffset f[]}}
+\newcommand{\fancyhfoffset}{\@ifnextchar[{\f@ncyhfoffs\fancyhfoffset{}}%
+ {\f@ncyhfoffs\fancyhfoffset{}[]}}
+
+% The header and footer fields are stored in command sequences with
+% names of the form: \f@ncy<x><y><z> with <x> for [eo], <y> from [lcr]
+% and <z> from [hf].
+
+\def\f@ncyhf#1#2[#3]#4{%
+ \def\temp@c{}%
+ \@forc\tmpf@ra{#3}%
+ {\expandafter\if@in\tmpf@ra{eolcrhf,EOLCRHF}%
+ {}{\edef\temp@c{\temp@c\tmpf@ra}}}%
+ \ifx\@empty\temp@c\else
+ \@fancyerrmsg{Illegal char `\temp@c' in \string#1 argument:
+ [#3]}%
+ \fi
+ \f@nfor\temp@c{#3}%
+ {\def@ult\f@@@eo{eo}\temp@c
+ \if@twoside\else
+ \if\f@@@eo e\@fancywarning
+ {\string#1's `E' option without twoside option is useless}\fi\fi
+ \def@ult\f@@@lcr{lcr}\temp@c
+ \def@ult\f@@@hf{hf}{#2\temp@c}%
+ \@forc\f@@eo\f@@@eo
+ {\@forc\f@@lcr\f@@@lcr
+ {\@forc\f@@hf\f@@@hf
+ {\expandafter\fancy@def\csname
+ f@ncy\f@@eo\f@@lcr\f@@hf\endcsname
+ {#4}}}}}}
+
+\def\f@ncyhfoffs#1#2[#3]#4{%
+ \def\temp@c{}%
+ \@forc\tmpf@ra{#3}%
+ {\expandafter\if@in\tmpf@ra{eolrhf,EOLRHF}%
+ {}{\edef\temp@c{\temp@c\tmpf@ra}}}%
+ \ifx\@empty\temp@c\else
+ \@fancyerrmsg{Illegal char `\temp@c' in \string#1 argument:
+ [#3]}%
+ \fi
+ \f@nfor\temp@c{#3}%
+ {\def@ult\f@@@eo{eo}\temp@c
+ \if@twoside\else
+ \if\f@@@eo e\@fancywarning
+ {\string#1's `E' option without twoside option is useless}\fi\fi
+ \def@ult\f@@@lcr{lr}\temp@c
+ \def@ult\f@@@hf{hf}{#2\temp@c}%
+ \@forc\f@@eo\f@@@eo
+ {\@forc\f@@lcr\f@@@lcr
+ {\@forc\f@@hf\f@@@hf
+ {\expandafter\setlength\csname
+ f@ncyO@\f@@eo\f@@lcr\f@@hf\endcsname
+ {#4}}}}}%
+ \fancy@setoffs}
+
+% Fancyheadings version 1 commands. These are more or less deprecated,
+% but they continue to work.
+
+\newcommand{\lhead}{\@ifnextchar[{\@xlhead}{\@ylhead}}
+\def\@xlhead[#1]#2{\fancy@def\f@ncyelh{#1}\fancy@def\f@ncyolh{#2}}
+\def\@ylhead#1{\fancy@def\f@ncyelh{#1}\fancy@def\f@ncyolh{#1}}
+
+\newcommand{\chead}{\@ifnextchar[{\@xchead}{\@ychead}}
+\def\@xchead[#1]#2{\fancy@def\f@ncyech{#1}\fancy@def\f@ncyoch{#2}}
+\def\@ychead#1{\fancy@def\f@ncyech{#1}\fancy@def\f@ncyoch{#1}}
+
+\newcommand{\rhead}{\@ifnextchar[{\@xrhead}{\@yrhead}}
+\def\@xrhead[#1]#2{\fancy@def\f@ncyerh{#1}\fancy@def\f@ncyorh{#2}}
+\def\@yrhead#1{\fancy@def\f@ncyerh{#1}\fancy@def\f@ncyorh{#1}}
+
+\newcommand{\lfoot}{\@ifnextchar[{\@xlfoot}{\@ylfoot}}
+\def\@xlfoot[#1]#2{\fancy@def\f@ncyelf{#1}\fancy@def\f@ncyolf{#2}}
+\def\@ylfoot#1{\fancy@def\f@ncyelf{#1}\fancy@def\f@ncyolf{#1}}
+
+\newcommand{\cfoot}{\@ifnextchar[{\@xcfoot}{\@ycfoot}}
+\def\@xcfoot[#1]#2{\fancy@def\f@ncyecf{#1}\fancy@def\f@ncyocf{#2}}
+\def\@ycfoot#1{\fancy@def\f@ncyecf{#1}\fancy@def\f@ncyocf{#1}}
+
+\newcommand{\rfoot}{\@ifnextchar[{\@xrfoot}{\@yrfoot}}
+\def\@xrfoot[#1]#2{\fancy@def\f@ncyerf{#1}\fancy@def\f@ncyorf{#2}}
+\def\@yrfoot#1{\fancy@def\f@ncyerf{#1}\fancy@def\f@ncyorf{#1}}
+
+\newlength{\fancy@headwidth}
+\let\headwidth\fancy@headwidth
+\newlength{\f@ncyO@elh}
+\newlength{\f@ncyO@erh}
+\newlength{\f@ncyO@olh}
+\newlength{\f@ncyO@orh}
+\newlength{\f@ncyO@elf}
+\newlength{\f@ncyO@erf}
+\newlength{\f@ncyO@olf}
+\newlength{\f@ncyO@orf}
+\newcommand{\headrulewidth}{0.4pt}
+\newcommand{\footrulewidth}{0pt}
+\newcommand{\footruleskip}{.3\normalbaselineskip}
+
+% Fancyplain stuff shouldn't be used anymore (rather
+% \fancypagestyle{plain} should be used), but it must be present for
+% compatibility reasons.
+
+\newcommand{\plainheadrulewidth}{0pt}
+\newcommand{\plainfootrulewidth}{0pt}
+\newif\if@fancyplain \@fancyplainfalse
+\def\fancyplain#1#2{\if@fancyplain#1\else#2\fi}
+
+\headwidth=-123456789sp %magic constant
+
+% Command to reset various things in the headers:
+% a.o. single spacing (taken from setspace.sty)
+% and the catcode of ^^M (so that epsf files in the header work if a
+% verbatim crosses a page boundary)
+% It also defines a \nouppercase command that disables \uppercase and
+% \Makeuppercase. It can only be used in the headers and footers.
+\let\fnch@everypar\everypar% save real \everypar because of spanish.ldf
+\def\fancy@reset{\fnch@everypar{}\restorecr\endlinechar=13
+ \def\baselinestretch{1}%
+ \def\nouppercase##1{{\let\uppercase\relax\let\MakeUppercase\relax
+ \expandafter\let\csname MakeUppercase \endcsname\relax##1}}%
+ \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
+ \ifx\@normalsize\undefined \normalsize % for ucthesis.cls
+ \else \@normalsize \fi
+ \else% NFSS (2.09) present
+ \@newbaseline%
+ \fi}
+
+% Initialization of the head and foot text.
+
+% The default values still contain \fancyplain for compatibility.
+\fancyhf{} % clear all
+% lefthead empty on ``plain'' pages, \rightmark on even, \leftmark on odd pages
+% evenhead empty on ``plain'' pages, \leftmark on even, \rightmark on odd pages
+\if@twoside
+ \fancyhead[el,or]{\fancyplain{}{\sl\rightmark}}
+ \fancyhead[er,ol]{\fancyplain{}{\sl\leftmark}}
+\else
+ \fancyhead[l]{\fancyplain{}{\sl\rightmark}}
+ \fancyhead[r]{\fancyplain{}{\sl\leftmark}}
+\fi
+\fancyfoot[c]{\rm\thepage} % page number
+
+% Use box 0 as a temp box and dimen 0 as temp dimen.
+% This can be done, because this code will always
+% be used inside another box, and therefore the changes are local.
+
+\def\@fancyvbox#1#2{\setbox0\vbox{#2}\ifdim\ht0>#1\@fancywarning
+ {\string#1 is too small (\the#1): ^^J Make it at least \the\ht0.^^J
+ We now make it that large for the rest of the document.^^J
+ This may cause the page layout to be inconsistent, however\@gobble}%
+ \dimen0=#1\global\setlength{#1}{\ht0}\ht0=\dimen0\fi
+ \box0}
+
+% Put together a header or footer given the left, center and
+% right text, fillers at left and right and a rule.
+% The \lap commands put the text into an hbox of zero size,
+% so overlapping text does not generate an errormessage.
+% These macros have 5 parameters:
+% 1. LEFTSIDE BEARING % This determines at which side the header will stick
+% out. When \fancyhfoffset is used this calculates \headwidth, otherwise
+% it is \hss or \relax (after expansion).
+% 2. \f@ncyolh, \f@ncyelh, \f@ncyolf or \f@ncyelf. This is the left component.
+% 3. \f@ncyoch, \f@ncyech, \f@ncyocf or \f@ncyecf. This is the middle comp.
+% 4. \f@ncyorh, \f@ncyerh, \f@ncyorf or \f@ncyerf. This is the right component.
+% 5. RIGHTSIDE BEARING. This is always \relax or \hss (after expansion).
+
+\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset
+ \@fancyvbox\headheight{\hbox
+ {\rlap{\parbox[b]{\headwidth}{\raggedright#2}}\hfill
+ \parbox[b]{\headwidth}{\centering#3}\hfill
+ \llap{\parbox[b]{\headwidth}{\raggedleft#4}}}\headrule}}#5}
+
+\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset
+ \@fancyvbox\footskip{\footrule
+ \hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2}}\hfill
+ \parbox[t]{\headwidth}{\centering#3}\hfill
+ \llap{\parbox[t]{\headwidth}{\raggedleft#4}}}}}#5}
+
+\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
+ \hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}}
+
+\def\footrule{{\if@fancyplain\let\footrulewidth\plainfootrulewidth\fi
+ \vskip-\footruleskip\vskip-\footrulewidth
+ \hrule\@width\headwidth\@height\footrulewidth\vskip\footruleskip}}
+
+\def\ps@fancy{%
+\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%for amsbook
+%
+% Define \MakeUppercase for old LaTeXen.
+% Note: we used \def rather than \let, so that \let\uppercase\relax (from
+% the version 1 documentation) will still work.
+%
+\@ifundefined{MakeUppercase}{\def\MakeUppercase{\uppercase}}{}%
+\@ifundefined{chapter}{\def\sectionmark##1{\markboth
+{\MakeUppercase{\ifnum \c@secnumdepth>\z@
+ \thesection\hskip 1em\relax \fi ##1}}{}}%
+\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
+ \thesubsection\hskip 1em\relax \fi ##1}}}%
+{\def\chaptermark##1{\markboth {\MakeUppercase{\ifnum \c@secnumdepth>\m@ne
+ \@chapapp\ \thechapter. \ \fi ##1}}{}}%
+\def\sectionmark##1{\markright{\MakeUppercase{\ifnum \c@secnumdepth >\z@
+ \thesection. \ \fi ##1}}}}%
+%\csname ps@headings\endcsname % use \ps@headings defaults if they exist
+\ps@@fancy
+\gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}%
+% Initialize \headwidth if the user didn't
+%
+\ifdim\headwidth<0sp
+%
+% This catches the case that \headwidth hasn't been initialized and the
+% case that the user added something to \headwidth in the expectation that
+% it was initialized to \textwidth. We compensate this now. This loses if
+% the user intended to multiply it by a factor. But that case is more
+% likely done by saying something like \headwidth=1.2\textwidth.
+% The doc says you have to change \headwidth after the first call to
+% \pagestyle{fancy}. This code is just to catch the most common cases were
+% that requirement is violated.
+%
+ \global\advance\headwidth123456789sp\global\advance\headwidth\textwidth
+\fi}
+\def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy}
+\def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy}
+\let\ps@@empty\ps@empty
+\def\ps@@fancy{%
+\ps@@empty % This is for amsbook/amsart, which do strange things with \topskip
+\def\@mkboth{\protect\markboth}%
+\def\@oddhead{\@fancyhead\fancy@Oolh\f@ncyolh\f@ncyoch\f@ncyorh\fancy@Oorh}%
+\def\@oddfoot{\@fancyfoot\fancy@Oolf\f@ncyolf\f@ncyocf\f@ncyorf\fancy@Oorf}%
+\def\@evenhead{\@fancyhead\fancy@Oelh\f@ncyelh\f@ncyech\f@ncyerh\fancy@Oerh}%
+\def\@evenfoot{\@fancyfoot\fancy@Oelf\f@ncyelf\f@ncyecf\f@ncyerf\fancy@Oerf}%
+}
+% Default definitions for compatibility mode:
+% These cause the header/footer to take the defined \headwidth as width
+% And to shift in the direction of the marginpar area
+
+\def\fancy@Oolh{\if@reversemargin\hss\else\relax\fi}
+\def\fancy@Oorh{\if@reversemargin\relax\else\hss\fi}
+\let\fancy@Oelh\fancy@Oorh
+\let\fancy@Oerh\fancy@Oolh
+
+\let\fancy@Oolf\fancy@Oolh
+\let\fancy@Oorf\fancy@Oorh
+\let\fancy@Oelf\fancy@Oelh
+\let\fancy@Oerf\fancy@Oerh
+
+% New definitions for the use of \fancyhfoffset
+% These calculate the \headwidth from \textwidth and the specified offsets.
+
+\def\fancy@offsolh{\headwidth=\textwidth\advance\headwidth\f@ncyO@olh
+ \advance\headwidth\f@ncyO@orh\hskip-\f@ncyO@olh}
+\def\fancy@offselh{\headwidth=\textwidth\advance\headwidth\f@ncyO@elh
+ \advance\headwidth\f@ncyO@erh\hskip-\f@ncyO@elh}
+
+\def\fancy@offsolf{\headwidth=\textwidth\advance\headwidth\f@ncyO@olf
+ \advance\headwidth\f@ncyO@orf\hskip-\f@ncyO@olf}
+\def\fancy@offself{\headwidth=\textwidth\advance\headwidth\f@ncyO@elf
+ \advance\headwidth\f@ncyO@erf\hskip-\f@ncyO@elf}
+
+\def\fancy@setoffs{%
+% Just in case \let\headwidth\textwidth was used
+ \fancy@gbl\let\headwidth\fancy@headwidth
+ \fancy@gbl\let\fancy@Oolh\fancy@offsolh
+ \fancy@gbl\let\fancy@Oelh\fancy@offselh
+ \fancy@gbl\let\fancy@Oorh\hss
+ \fancy@gbl\let\fancy@Oerh\hss
+ \fancy@gbl\let\fancy@Oolf\fancy@offsolf
+ \fancy@gbl\let\fancy@Oelf\fancy@offself
+ \fancy@gbl\let\fancy@Oorf\hss
+ \fancy@gbl\let\fancy@Oerf\hss}
+
+\newif\iffootnote
+\let\latex@makecol\@makecol
+\def\@makecol{\ifvoid\footins\footnotetrue\else\footnotefalse\fi
+\let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol}
+\def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi}
+\def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi}
+\def\iffloatpage#1#2{\if@fcolmade #1\else #2\fi}
+
+\newcommand{\fancypagestyle}[2]{%
+ \@namedef{ps@#1}{\let\fancy@gbl\relax#2\relax\ps@fancy}}
diff --git a/vu-cs-standard-thesis/footmisc.sty b/vu-cs-standard-thesis/footmisc.sty
new file mode 100644
index 0000000..137599c
--- /dev/null
+++ b/vu-cs-standard-thesis/footmisc.sty
@@ -0,0 +1,866 @@
+%%
+%% This is file `footmisc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% footmisc.dtx (with options: `package')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from footmisc.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file footmisc.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%% This is footmisc.dtx, and it's -*-LaTeX-*- text
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{footmisc}%
+ [2005/03/17 v5.3d
+ a miscellany of footnote facilities%
+ ]% $Id: footmisc.dtx,v 4.20 2005/03/17 13:41:58 rf Exp rf $
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\newtoks\FN@temptoken
+\providecommand\protected@writeaux{%
+ \protected@write\@auxout
+}% \end{macrocode}
+\def\l@advance@macro{\@@dvance@macro\edef}
+\def\@@dvance@macro#1#2#3{\expandafter\@tempcnta#2\relax
+ \advance\@tempcnta#3\relax
+ #1#2{\the\@tempcnta}%
+}
+\let\@advance@macro\l@advance@macro
+\newif\ifFN@etex
+\ifx\dimexpr\undefined
+ \FN@etexfalse
+\else
+ \FN@etextrue
+\fi
+\newdimen\footnotemargin
+\footnotemargin1.8em\relax
+\DeclareOption{symbol}{\renewcommand\thefootnote{\fnsymbol{footnote}}}
+\DeclareOption{symbol*}{%
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \AtEndOfPackage{\setfnsymbol{lamport*-robust}}%
+}
+\newif\ifFN@para \FN@parafalse
+\DeclareOption{para}{\ifFN@sidefn
+ \PackageError{footmisc}{Option "\CurrentOption" incompatible with
+ option "side"}%
+ {I shall ignore "\CurrentOption"}%
+ \else
+ \FN@paratrue
+ \fi
+}
+\newif\ifFN@sidefn \FN@sidefnfalse
+\DeclareOption{side}{\ifFN@para
+ \PackageError{footmisc}{Option "\CurrentOption" incompatible with
+ option "para"}%
+ {I shall ignore "\CurrentOption"}%
+ \else
+ \FN@sidefntrue
+ \fi
+}
+\let\footnotelayout\relax
+\DeclareOption{ragged}{%
+ \@ifundefined{RaggedRight}%
+ {\def\footnotelayout{\linepenalty50 \raggedright}}%
+ {\def\footnotelayout{\linepenalty50 \RaggedRight}}%
+}
+\newif\ifFN@perpage
+\FN@perpagefalse
+\DeclareOption{perpage}{%
+ \FN@perpagetrue
+}
+\newif\ifFN@bottom \FN@bottomfalse
+\DeclareOption{bottom}{%
+ \FN@bottomtrue
+}
+\DeclareOption{marginal}{%
+ \footnotemargin-0.8em\relax
+}
+\DeclareOption{flushmargin}{%
+ \footnotemargin0pt\relax
+}
+\newif\ifFN@hangfoot \FN@hangfootfalse
+\DeclareOption{hang}{%
+ \FN@hangfoottrue
+}
+\newcommand*\hangfootparskip{0.5\baselineskip}
+\newcommand*\hangfootparindent{0em}%
+\DeclareOption{norule}{%
+ \renewcommand\footnoterule{}%
+ \advance\skip\footins 4\p@\@plus2\p@\relax
+}
+\DeclareOption{splitrule}{%
+ \gdef\split@prev{0}
+ \let\pagefootnoterule\footnoterule
+ \let\mpfootnoterule\footnoterule
+ \def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@}
+ \def\footnoterule{\relax
+ \ifx \@listdepth\@mplistdepth
+ \mpfootnoterule
+ \else
+ \ifnum\split@prev=\z@
+ \pagefootnoterule
+ \else
+ \splitfootnoterule
+ \fi
+ \xdef\split@prev{\the\insertpenalties}%
+ \fi
+ }%
+}
+\newif\ifFN@stablefootnote \FN@stablefootnotefalse
+\DeclareOption{stable}{\FN@stablefootnotetrue}
+\newif\ifFN@multiplefootnote \FN@multiplefootnotefalse
+\DeclareOption{multiple}{\FN@multiplefootnotetrue}
+\ProcessOptions
+\let \if@tempswa \ifFN@bottom
+\ifFN@para \@tempswatrue \fi
+\if@tempswa
+ \@ifl@t@r\fmtversion{2003/12/01}{%
+ \CheckCommand*\@makecol{\ifvoid \footins
+ \setbox\@outputbox \box\@cclv
+ \else
+ \setbox\@outputbox \vbox{%
+ \boxmaxdepth\@maxdepth
+ \@tempdima\dp\@cclv
+ \unvbox\@cclv
+ \vskip \skip\footins
+ \color@begingroup
+ \normalcolor\footnoterule
+ \unvbox\footins
+ \color@endgroup
+ }%
+ \fi
+ \let \@elt \relax
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global\let\@midlist\@empty
+ \@combinefloats
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \setbox\@outputbox \vbox to\@colht{%
+ \@texttop \dimen@\dp\@outputbox
+ \unvbox\@outputbox
+ \vskip -\dimen@\@textbottom
+ }%
+ \fi
+ \global\maxdepth\@maxdepth
+ }
+ }{%
+ \@ifl@t@r\fmtversion{1999/12/01}{%
+ \CheckCommand*\@makecol{\ifvoid \footins
+ \setbox\@outputbox \box\@cclv
+ \else
+ \setbox\@outputbox \vbox{%
+ \boxmaxdepth\@maxdepth
+ \@tempdima\dp\@cclv
+ \unvbox\@cclv
+ \vskip \skip\footins
+ \color@begingroup
+ \normalcolor\footnoterule
+ \unvbox\footins
+ \color@endgroup
+ }%
+ \fi
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global\let\@midlist\@empty
+ \@combinefloats
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \setbox\@outputbox \vbox to\@colht{%
+ \@texttop \dimen@\dp\@outputbox
+ \unvbox\@outputbox
+ \vskip -\dimen@\@textbottom
+ }%
+ \fi
+ \global\maxdepth\@maxdepth
+ }
+ }{%
+ \CheckCommand*\@makecol{\ifvoid \footins
+ \setbox\@outputbox \box\@cclv
+ \else
+ \setbox\@outputbox \vbox{%
+ \boxmaxdepth\@maxdepth
+ \unvbox\@cclv
+ \vskip \skip\footins
+ \color@begingroup
+ \normalcolor\footnoterule
+ \unvbox\footins
+ \color@endgroup
+ }%
+ \fi
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global\let\@midlist\@empty
+ \@combinefloats
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \setbox\@outputbox \vbox to\@colht{%
+ \@texttop \dimen@\dp\@outputbox
+ \unvbox\@outputbox
+ \vskip -\dimen@\@textbottom
+ }%
+ \fi
+ \global\maxdepth\@maxdepth
+ }
+ }
+}
+ \ifFN@para
+ \FN@temptoken{%
+ \toks@\expandafter{\the\toks@
+ \vskip\skip\footins
+ \color@begingroup
+ \normalcolor\footnoterule
+ \global\setbox\FN@tempboxc\vbox{\makefootnoteparagraph}%
+ \unvbox\FN@tempboxc
+ \color@endgroup
+ }%
+ }%
+ \else
+ \FN@temptoken{%
+ \toks@\expandafter{\the\toks@
+ \vskip\skip\footins
+ \color@begingroup
+ \normalcolor\footnoterule
+ \unvbox\footins
+ \color@endgroup
+ }%
+ }%
+ \fi
+ \ifFN@bottom
+ \toks@{\setbox\@outputbox \box\@cclv
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global\let\@midlist\@empty
+ \@combinefloats
+ \ifvoid\footins
+ \else
+ \setbox\@outputbox \vbox\bgroup
+ \boxmaxdepth\@maxdepth
+ \unvbox\@outputbox
+ \vfill\relax
+ }
+ \the\FN@temptoken
+ \toks@\expandafter{\the\toks@\egroup\fi}
+ \else
+ \toks@{\ifvoid\footins
+ \setbox\@outputbox\box\@cclv
+ \else
+ \setbox\@outputbox \vbox\bgroup
+ \boxmaxdepth\@maxdepth
+ \unvbox\@cclv
+ }
+ \the\FN@temptoken
+ \toks@\expandafter{\the\toks@
+ \egroup
+ \fi
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global\let\@midlist\@empty
+ \@combinefloats
+ }%
+ \fi
+ \toks@\expandafter{\the\toks@
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \setbox\@outputbox \vbox to\@colht{%
+ \@texttop \dimen@\dp\@outputbox
+ \unvbox\@outputbox
+ \vskip -\dimen@\@textbottom
+ }%
+ \fi
+ \global\maxdepth\@maxdepth
+ }
+ \edef\@makecol{\the\toks@}
+\fi
+\newif\ifFN@setspace
+\@ifpackageloaded{setspace}{%
+ \FN@setspacetrue
+ \CheckCommand\@footnotetext[1]{%
+ \insert\footins{%
+ \def\baselinestretch {\setspace@singlespace}%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{\rule\z@\footnotesep
+ \ignorespaces#1\@finalstrut\strutbox
+ }%
+ \color@endgroup
+ }%
+ }%
+}{%
+ \FN@setspacefalse
+ \@ifl@t@r\fmtversion{1997/12/01}{%
+ \CheckCommand\@footnotetext[1]{%
+ \insert\footins{%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{\rule\z@\footnotesep
+ \ignorespaces#1\@finalstrut\strutbox
+ }%
+ \color@endgroup
+ }%
+ }%
+ }{%
+ \CheckCommand\@footnotetext[1]{%
+ \insert\footins{%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel
+ {\csname p@footnote\endcsname\@thefnmark}%
+ \color@begingroup
+ \@makefntext{\rule\z@\footnotesep
+ \ignorespaces#1\@finalstrut\strutbox
+ }
+ \color@endgroup
+ }%
+ }%
+ }%
+}
+\ifFN@para
+ \renewcommand\@footnotetext[1]{%
+ \insert\footins{%
+ \ifFN@setspace
+ \def\baselinestretch {\setspace@singlespace}%
+ \fi
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
+ \color@begingroup
+ \setbox\FN@tempboxa=\hbox{%
+ \@makefntext{\ignorespaces#1\strut
+ \penalty-10\relax
+ \hskip\footglue
+ }% end of \@makefntext parameter
+ }% end of \hbox
+ \dp\FN@tempboxa=0pt
+ \ifFN@etex
+ \ht\FN@tempboxa=\dimexpr\wd\FN@tempboxa *
+ \footnotebaselineskip / \columnwidth\relax
+ \else
+ \ht\FN@tempboxa=\fudgefactor\wd\FN@tempboxa
+ \fi
+ \box\FN@tempboxa
+ \color@endgroup
+ }%
+ \FN@mf@prepare
+ }
+\else
+ \ifFN@sidefn
+ \renewcommand\@footnotetext[1]{%
+ \marginpar{%
+ \ifFN@setspace
+ \def\baselinestretch {\setspace@singlespace}%
+ \fi
+ \reset@font\footnotesize
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \ignorespaces#1%
+ }%
+ \color@endgroup
+ }%
+ \FN@mf@prepare
+ }%
+ \else
+ \renewcommand\@footnotetext[1]{%
+ \insert\footins{%
+ \ifFN@setspace
+ \def\baselinestretch {\setspace@singlespace}%
+ \fi
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep
+ \ignorespaces#1\@finalstrut\strutbox
+ }%
+ \color@endgroup
+ }%
+ \FN@mf@prepare
+ }%
+ \fi
+\fi
+\ifFN@para
+ \let\FN@tempboxa\@tempboxa
+ \newbox\FN@tempboxb
+ \newbox\FN@tempboxc
+ \newskip\footglue \footglue=1em plus.3em minus.3em
+ \long\def\@makefntext#1{\leavevmode
+ \@makefnmark\nobreak
+ \hskip.5em\relax#1%
+ }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \newdimen\footnotebaselineskip
+ {%
+ \footnotesize
+ \global
+ \footnotebaselineskip=\normalbaselineskip
+ }
+ \ifFN@etex
+ \else
+ \@tempdima=\footnotebaselineskip \multiply\@tempdima by 1024
+ \divide \@tempdima by \columnwidth \multiply\@tempdima by 64
+ \xdef\fudgefactor{\strip@pt\@tempdima }%
+ \fi
+ \long\def\makefootnoteparagraph{\unvbox\footins \makehboxofhboxes
+ \setbox\FN@tempboxa=\hbox{\unhbox\FN@tempboxa \removehboxes}
+ \hsize\columnwidth
+ \@parboxrestore
+ \baselineskip=\footnotebaselineskip
+ \noindent
+ \rule{\z@}{\footnotesep}%
+ \unhbox\FN@tempboxa\par
+ }
+ \def\makehboxofhboxes{\setbox\FN@tempboxa=\hbox{}%
+ \loop
+ \setbox\FN@tempboxb=\lastbox
+ \ifhbox\FN@tempboxb
+ \setbox\FN@tempboxa=\hbox{\box\FN@tempboxb\unhbox\FN@tempboxa}%
+ \repeat
+ }
+ \def\removehboxes{\setbox\FN@tempboxa=\lastbox
+ \ifhbox
+ \FN@tempboxa{\removehboxes}%
+ \unhbox\FN@tempboxa
+ \fi
+ }
+\fi
+\newif\ifFN@pp@footnotehint
+\newcounter{pp@next@reset}%
+\newif\ifFN@pp@towrite
+\FN@pp@towritefalse
+\ifFN@perpage
+ \CheckCommand*\footnote{\@ifnextchar [%]
+ \@xfootnote
+ {%
+ \stepcounter\@mpfn \protected@xdef\@thefnmark{\thempfn}%
+ \@footnotemark \@footnotetext
+ }%
+ }
+ \renewcommand*\footnote{\@ifnextchar [%]
+ \@xfootnote
+ {%
+ \stepcounter\@mpfn \protected@xdef\@thefnmark{\thempfn}%
+ \FN@pp@footnote\@footnotemark
+ \ifFN@pp@towrite
+ \FN@pp@writetemp
+ \FN@pp@towritefalse
+ \fi
+ \@footnotetext
+ }%
+ }
+ \CheckCommand*\footnotemark{%
+ \@ifnextchar [%]
+ \@xfootnotemark
+ {%
+ \stepcounter{footnote}%
+ \protected@xdef\@thefnmark{\thefootnote}%
+ \@footnotemark
+ }%
+ }
+ \renewcommand*\footnotemark{%
+ \@ifnextchar [%]
+ \@xfootnotemark
+ {%
+ \stepcounter{footnote}%
+ \protected@xdef\@thefnmark{\thefootnote}%
+ \FN@pp@footnote\@footnotemark
+ \ifFN@pp@towrite
+ \FN@pp@writetemp
+ \FN@pp@towritefalse
+ \fi
+ }%
+ }
+ \gdef\FN@pp@initial@stab{\@addtoreset{footnote}{page}}
+ \AtBeginDocument{\FN@pp@initial@stab}
+ \newcounter{@fnserial}
+ \def\FN@pp@cpage{0}
+ \FN@pp@footnotehinttrue
+ \newcommand{\footnotehint}{%
+ \setcounter{footnote}{0}%
+ \protected@writeaux\relax{\protect\FN@pp@footnotehinttrue}%
+ \@tempcnta\c@@fnserial
+ \advance\@tempcnta\@ne
+ \global\c@pp@next@reset\@tempcnta
+ }
+ \AtBeginDocument{\protected@writeaux\relax{%
+ \protect\providecommand{\protect\FN@pp@footnotehinttrue}{}%
+ }%
+ }
+\def\FN@pp@lastfoot{-1}
+ \newcommand{\FN@pp@footnote@aux}[2]{%
+ \ifnum\FN@pp@lastfoot<#1
+ \ifFN@pp@footnotehint
+ \FN@pp@resetfn{#1}{#2}%
+ \FN@pp@footnotehintfalse
+ \else
+ \gdef\@tempa{#2}%
+ \ifx\@tempa\FN@pp@cpage
+ \else
+ \FN@pp@resetfn{#1}{#2}%
+ \fi
+ \fi
+ \def\FN@pp@lastfoot{#1}%
+ \fi
+ \global\let\FN@pp@initial@stab\relax
+ }
+ \newcommand{\FN@pp@resetfn}[2]{%
+ \gdef\FN@pp@cpage{#2}%
+ \expandafter\gdef
+ \csname FN@pp@next-\FN@pp@prev@foot\endcsname{#1}%
+ \def\FN@pp@prev@foot{#1}%
+ \expandafter\xdef
+ \csname FN@pp@next-\FN@pp@prev@foot\endcsname{\the\@MM}%
+ }
+ \newcommand{\FN@pp@prev@foot}{root}
+ \AtBeginDocument{\protected@writeaux\relax{%
+ \protect\providecommand{\protect\FN@pp@footnote@aux}[2]{}}%
+ \c@pp@next@reset\@ne
+ }
+ \AtEndDocument{\let\FN@pp@footnote@aux\FN@pp@footnote@endaux
+ \def\FN@pp@lastfoot{-1}%
+ \FN@pp@footnotehintfalse
+ \renewcommand{\FN@pp@prev@foot}{root}
+ }
+ \newcommand{\FN@pp@footnote@endaux}[2]{%
+ \ifnum\FN@pp@lastfoot<#1
+ \ifFN@pp@footnotehint
+ \FN@pp@resetfn@end{#1}{#2}%
+ \FN@pp@footnotehintfalse
+ \else
+ \gdef\@tempa{#2}%
+ \ifx\@tempa\FN@pp@cpage
+ \else
+ \FN@pp@resetfn@end{#1}{#2}%
+ \fi
+ \fi
+ \def\FN@pp@lastfoot{#1}%
+ \fi
+ }
+ \newcommand{\FN@pp@resetfn@end}[2]{%
+ \def\@tempa{#1}%
+ \expandafter\ifx\csname FN@pp@next-\FN@pp@prev@foot\endcsname\@tempa%
+ \else
+ \@tempswatrue
+ \fi
+ \gdef\FN@pp@prev@foot{#1}%
+ \gdef\FN@pp@cpage{#2}%
+ }
+\let\FN@pp@@clearpage\clearpage
+\renewcommand{\clearpage}{\footnotehint\FN@pp@@clearpage}
+\def\FN@pp@footnote{%
+ \if@minipage\else
+ \global\advance\c@@fnserial\@ne
+ \if@filesw
+ \xdef\FN@pp@writetemp{%
+ \noexpand\protected@writeaux\relax{%
+ \string\FN@pp@footnote@aux
+ {\the\c@@fnserial}{\noexpand\thepage}%
+ }%
+ }%
+ \FN@pp@towritetrue
+ \fi
+ \ifnum\c@pp@next@reset>\c@@fnserial
+ \else
+ \global\expandafter\csname c@\@mpfn\endcsname\@ne
+ \protected@xdef\@thefnmark{\thempfn}%
+ \expandafter\let\expandafter\@tempa
+ \csname FN@pp@next-\number\c@pp@next@reset\endcsname
+ \ifx\@tempa\relax
+ \global\c@pp@next@reset\@MM
+ \else
+ \global\c@pp@next@reset\@tempa
+ \fi
+ \fi
+ \fi
+}
+\fi
+\ifFN@para
+\else
+ \long\def\@makefntext#1{%
+ \ifFN@hangfoot
+ \bgroup
+ \setbox\@tempboxa\hbox{%
+ \ifdim\footnotemargin>0pt
+ \hb@xt@\footnotemargin{\@makefnmark\hss}%
+ \else
+ \@makefnmark
+ \fi
+ }%
+ \leftmargin\wd\@tempboxa
+ \rightmargin\z@
+ \linewidth \columnwidth
+ \advance \linewidth -\leftmargin
+ \parshape \@ne \leftmargin \linewidth
+ \footnotesize
+ \parskip\hangfootparskip\relax
+ \parindent\hangfootparindent\relax
+ \@setpar{{\@@par}}%
+ \leavevmode
+ \llap{\box\@tempboxa}%
+ \else
+ \parindent1em
+ \noindent
+ \ifdim\footnotemargin>\z@
+ \hb@xt@ \footnotemargin{\hss\@makefnmark}%
+ \else
+ \ifdim\footnotemargin=\z@
+ \llap{\@makefnmark}%
+ \else
+ \llap{\hb@xt@ -\footnotemargin{\@makefnmark\hss}}%
+ \fi
+ \fi
+ \fi
+ \footnotelayout#1%
+ \ifFN@hangfoot
+ \par\egroup
+ \fi
+ }
+\fi
+\ifFN@multiplefootnote
+ \providecommand*{\multiplefootnotemarker}{3sp}
+ \providecommand*{\multfootsep}{,}
+ \CheckCommand*\@footnotemark{%
+ \leavevmode
+ \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
+ \@makefnmark
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax
+ }
+ \renewcommand*\@footnotemark{%
+ \leavevmode
+ \ifhmode
+ \edef\@x@sf{\the\spacefactor}%
+ \FN@mf@check
+ \nobreak
+ \fi
+ \@makefnmark
+ \ifFN@pp@towrite
+ \FN@pp@writetemp
+ \FN@pp@towritefalse
+ \fi
+ \FN@mf@prepare
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax
+ }
+ \def\FN@mf@prepare{%
+ \kern-\multiplefootnotemarker
+ \kern\multiplefootnotemarker\relax
+ }
+ \def\FN@mf@check{%
+ \ifdim\lastkern=\multiplefootnotemarker\relax
+ \edef\@x@sf{\the\spacefactor}%
+ \unkern
+ \textsuperscript{\multfootsep}%
+ \spacefactor\@x@sf\relax
+ \fi
+ }
+\else
+ \let\FN@mf@prepare\relax
+\fi
+\ifFN@stablefootnote
+\let\FN@sf@@footnote\footnote
+\def\footnote{\ifx\protect\@typeset@protect
+ \expandafter\FN@sf@@footnote
+ \else
+ \expandafter\FN@sf@gobble@opt
+ \fi
+}
+\edef\FN@sf@gobble@opt{\noexpand\protect
+ \expandafter\noexpand\csname FN@sf@gobble@opt \endcsname}
+\expandafter\def\csname FN@sf@gobble@opt \endcsname{%
+ \@ifnextchar[%]
+ \FN@sf@gobble@twobracket
+ \@gobble
+}
+\def\FN@sf@gobble@twobracket[#1]#2{}
+\let\FN@sf@@footnotemark\footnotemark
+\def\footnotemark{\ifx\protect\@typeset@protect
+ \expandafter\FN@sf@@footnotemark
+ \else
+ \expandafter\FN@sf@gobble@optonly
+ \fi
+}
+\edef\FN@sf@gobble@optonly{\noexpand\protect
+ \expandafter\noexpand\csname FN@sf@gobble@optonly \endcsname}
+\expandafter\def\csname FN@sf@gobble@optonly \endcsname{%
+ \@ifnextchar[%]
+ \FN@sf@gobble@bracket
+ {}%
+}
+\def\FN@sf@gobble@bracket[#1]{}
+\fi
+\newcommand\setfnsymbol[1]{%
+ \@bsphack
+ \@ifundefined{FN@fnsymbol@#1}%
+ {%
+ \PackageError{footmisc}{Symbol style "#1" not known}%
+ \@eha
+ }{%
+ \expandafter\let\expandafter\@fnsymbol\csname
+ FN@fnsymbol@#1\endcsname
+ }%
+ \@esphack
+}
+\let\FN@fnsymbol@lamport\@fnsymbol
+\newif\if@tempswb
+\newcommand{\DefineFNsymbols}{%
+ \@ifstar{\@tempswbtrue\@DefineFNsymbols}%
+ {\@tempswbfalse\@DefineFNsymbols}%
+}
+\newcommand{\@DefineFNsymbols}[1]{%
+ \@ifnextchar[% ]
+ {\@DefineFNsymbols@{#1}}{\@DefineFNsymbols@{#1}[math]}%
+}
+\def\@DefineFNsymbols@#1[#2]#3{%
+ \expandafter\ifx\csname FN@fnsymbol@#1\endcsname\relax
+ \PackageInfo{footmisc}{Declaring symbol style #1}%
+ \else
+ \PackageWarning{footmisc}{Redeclaring symbol style #1}%
+ \fi
+ \toks@{}%
+ \def\@tempb{\end}%
+ \FN@build@symboldef#3\end
+ \def\@tempc{math}%
+ \def\@tempd{#2}%
+ \expandafter\xdef\csname FN@fnsymbol@#1\endcsname##1{%
+ \ifx\@tempc\@tempd
+ \noexpand\ensuremath
+ \else
+ \noexpand\nfss@text
+ \fi
+ {%
+ \noexpand\ifcase##1%
+ \the\toks@
+ \noexpand\else
+ \if@tempswb
+ \noexpand\@ctrerr
+ \else
+ \noexpand\@arabic##1\noexpand\FN@orange##1%
+ \fi
+ \noexpand\fi
+ }%
+ }%
+}
+\def\FN@build@symboldef#1{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@tempb
+ \else
+ \toks@\expandafter{\the\toks@\or#1}%
+ \expandafter\FN@build@symboldef
+ \fi
+}
+\def\FN@orange#1{%
+ \@bsphack
+ \PackageInfo{footmisc}{Footnote number \number#1 out of range}%
+ \protect\@fnsymbol@orange
+ \@esphack
+}
+\global\let\@diagnose@fnsymbol@orange\relax
+\AtEndDocument{\@diagnose@fnsymbol@orange}
+\def\@fnsymbol@orange{%
+ \gdef\@diagnose@fnsymbol@orange{%
+ \PackageWarningNoLine{footmisc}{Some footnote number(s)
+ were out of range
+ \MessageBreak
+ see log for details%
+ }%
+ }%
+}
+\DefineFNsymbols*{bringhurst}{*\dagger\ddagger\S\|\P}%
+\DefineFNsymbols*{chicago}{*\dagger\ddagger\S\|\#}%
+\DefineFNsymbols*{wiley}{*{**}\dagger\ddagger\S\P\|}%
+\DefineFNsymbols{lamport-robust}{*\dagger\ddagger
+ \mathsection\mathparagraph\|%
+ {**}{\dagger\dagger}{\ddagger\ddagger}%
+}
+\DefineFNsymbols*{lamport*}{*\dagger\ddagger
+ \mathsection\mathparagraph\|%
+ {**}{\dagger\dagger}{\ddagger\ddagger}%
+ {\mathsection\mathsection}{\mathparagraph\mathparagraph}%
+ {*{*}*}{\dagger\dagger\dagger}{\ddagger\ddagger\ddagger}%
+ {\mathsection\mathsection\mathsection}%
+ {\mathparagraph\mathparagraph\mathparagraph}%
+}
+\setfnsymbol{lamport*}
+\DefineFNsymbols{lamport*-robust}{*\dagger\ddagger
+ \mathsection\mathparagraph\|%
+ {**}{\dagger\dagger}{\ddagger\ddagger}%
+ {\mathsection\mathsection}{\mathparagraph\mathparagraph}%
+ {*{*}*}{\dagger\dagger\dagger}{\ddagger\ddagger\ddagger}%
+ {\mathsection\mathsection\mathsection}%
+ {\mathparagraph\mathparagraph\mathparagraph}%
+}
+\providecommand*{\footref}[1]{%
+ \begingroup
+ \unrestored@protected@xdef\@thefnmark{\ref{#1}}%
+ \endgroup
+ \@footnotemark
+}
+\newcommand\mpfootnotemark{%
+ \@ifnextchar[%
+ \@xmpfootnotemark
+ {%
+ \stepcounter\@mpfn
+ \protected@xdef\@thefnmark{\thempfn}%
+ \@footnotemark
+ }%
+}
+\def\@xmpfootnotemark[#1]{%
+ \begingroup
+ \csname c@\@mpfn\endcsname #1\relax
+ \unrestored@protected@xdef\@thefnmark{\thempfn}%
+ \endgroup
+ \@footnotemark
+}
+\endinput
+%%
+%% End of file `footmisc.sty'.
+
diff --git a/vu-cs-standard-thesis/listings.sty b/vu-cs-standard-thesis/listings.sty
new file mode 100644
index 0000000..216dbb6
--- /dev/null
+++ b/vu-cs-standard-thesis/listings.sty
@@ -0,0 +1,2237 @@
+%%
+%% This is file `listings.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% listings.dtx (with options: `kernel')
+%%
+%% Please read the software license in listings-1.3.dtx or listings-1.3.pdf.
+%%
+%% (w)(c) 1996--2004 Carsten Heinz and/or any other author listed
+%% elsewhere in this file.
+%% (c) 2006 Brooks Moses
+%%
+%% Send comments and ideas on the package, error reports and additional
+%% programming languages to <bmoses@dpdx.net>.
+%%
+\def\filedate{2007/02/22}
+\def\fileversion{1.4}
+\NeedsTeXFormat{LaTeX2e}
+\AtEndOfPackage{\ProvidesPackage{listings}
+ [\filedate\space\fileversion\space(Carsten Heinz)]}
+\def\lst@CheckVersion#1{\edef\reserved@a{#1}%
+ \ifx\lst@version\reserved@a \expandafter\@gobble
+ \else \expandafter\@firstofone \fi}
+\let\lst@version\fileversion
+\def\lst@InputCatcodes{%
+ \makeatletter \catcode`\"12%
+ \catcode`\^^@\active
+ \catcode`\^^I9%
+ \catcode`\^^L9%
+ \catcode`\^^M9%
+ \catcode`\%14%
+ \catcode`\~\active}
+\def\lst@RestoreCatcodes#1{%
+ \ifx\relax#1\else
+ \noexpand\catcode`\noexpand#1\the\catcode`#1\relax
+ \expandafter\lst@RestoreCatcodes
+ \fi}
+\edef\lst@RestoreCatcodes{%
+ \noexpand\lccode`\noexpand\/`\noexpand\/%
+ \lst@RestoreCatcodes\"\^^I\^^M\~\^^@\relax
+ \catcode12\active}
+\lst@InputCatcodes
+\AtEndOfPackage{\lst@RestoreCatcodes}
+\def\@lst{lst}
+\def\lst@IfSubstring#1#2{%
+ \def\lst@temp##1#1##2##3\relax{%
+ \ifx \@empty##2\expandafter\@secondoftwo
+ \else \expandafter\@firstoftwo \fi}%
+ \expandafter\lst@temp#2#1\@empty\relax}
+\def\lst@IfOneOf#1\relax#2{%
+ \def\lst@temp##1,#1,##2##3\relax{%
+ \ifx \@empty##2\expandafter\@secondoftwo
+ \else \expandafter\@firstoftwo \fi}%
+ \expandafter\lst@temp\expandafter,#2,#1,\@empty\relax}
+\def\lst@DeleteKeysIn#1#2{%
+ \expandafter\lst@DeleteKeysIn@\expandafter#1#2,\relax,}
+\def\lst@DeleteKeysIn@#1#2,{%
+ \ifx\relax#2\@empty
+ \expandafter\@firstoftwo\expandafter\lst@RemoveCommas
+ \else
+ \ifx\@empty#2\@empty\else
+ \def\lst@temp##1,#2,##2{%
+ ##1%
+ \ifx\@empty##2\@empty\else
+ \expandafter\lst@temp\expandafter,%
+ \fi ##2}%
+ \edef#1{\expandafter\lst@temp\expandafter,#1,#2,\@empty}%
+ \fi
+ \fi
+ \lst@DeleteKeysIn@#1}
+\def\lst@RemoveCommas#1{\edef#1{\expandafter\lst@RC@#1\@empty}}
+\def\lst@RC@#1{\ifx,#1\expandafter\lst@RC@ \else #1\fi}
+\def\lst@ReplaceIn#1#2{%
+ \expandafter\lst@ReplaceIn@\expandafter#1#2\@empty\@empty}
+\def\lst@ReplaceInArg#1#2{\lst@ReplaceIn@#1#2\@empty\@empty}
+\def\lst@ReplaceIn@#1#2#3{%
+ \ifx\@empty#3\relax\else
+ \def\lst@temp##1#2##2{%
+ \ifx\@empty##2%
+ \lst@lAddTo#1{##1}%
+ \else
+ \lst@lAddTo#1{##1#3}\expandafter\lst@temp
+ \fi ##2}%
+ \let\@tempa#1\let#1\@empty
+ \expandafter\lst@temp\@tempa#2\@empty
+ \expandafter\lst@ReplaceIn@\expandafter#1%
+ \fi}
+\providecommand*\@gobblethree[3]{}
+\def\lst@GobbleNil#1\@nil{}
+\def\lst@Swap#1#2{#2#1}
+\def\lst@true{\let\lst@if\iftrue}
+\def\lst@false{\let\lst@if\iffalse}
+\lst@false
+\def\lst@IfNextCharsArg#1{%
+ \def\lst@tofind{#1}\lst@IfNextChars\lst@tofind}
+\def\lst@IfNextChars#1#2#3{%
+ \let\lst@tofind#1\def\@tempa{#2}\def\@tempb{#3}%
+ \let\lst@eaten\@empty \lst@IfNextChars@}
+\def\lst@IfNextChars@{\expandafter\lst@IfNextChars@@\lst@tofind\relax}
+\def\lst@IfNextChars@@#1#2\relax#3{%
+ \def\lst@tofind{#2}\lst@lAddTo\lst@eaten{#3}%
+ \ifx#1#3%
+ \ifx\lst@tofind\@empty
+ \let\lst@next\@tempa
+ \else
+ \let\lst@next\lst@IfNextChars@
+ \fi
+ \expandafter\lst@next
+ \else
+ \expandafter\@tempb
+ \fi}
+\def\lst@IfNextCharActive#1#2#3{%
+ \begingroup \lccode`\~=`#3\lowercase{\endgroup
+ \ifx~}#3%
+ \def\lst@next{#1}%
+ \else
+ \def\lst@next{#2}%
+ \fi \lst@next #3}
+\def\lst@for#1\do#2{%
+ \def\lst@forbody##1{#2}%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@empty\else\expandafter\lst@f@r#1,\@nil,\fi
+}
+\def\lst@f@r#1,{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@nnil\else\lst@forbody{#1}\expandafter\lst@f@r\fi
+}
+\def\lst@MakeActive#1{%
+ \let\lst@temp\@empty \lst@MakeActive@#1%
+ \relax\relax\relax\relax\relax\relax\relax\relax\relax}
+\begingroup
+\catcode`\^^@=\active \catcode`\^^A=\active \catcode`\^^B=\active
+\catcode`\^^C=\active \catcode`\^^D=\active \catcode`\^^E=\active
+\catcode`\^^F=\active \catcode`\^^G=\active \catcode`\^^H=\active
+\gdef\lst@MakeActive@#1#2#3#4#5#6#7#8#9{\let\lst@next\relax
+ \ifx#1\relax
+ \else \lccode`\^^@=`#1%
+ \ifx#2\relax
+ \lowercase{\lst@lAddTo\lst@temp{^^@}}%
+ \else \lccode`\^^A=`#2%
+ \ifx#3\relax
+ \lowercase{\lst@lAddTo\lst@temp{^^@^^A}}%
+ \else \lccode`\^^B=`#3%
+ \ifx#4\relax
+ \lowercase{\lst@lAddTo\lst@temp{^^@^^A^^B}}%
+ \else \lccode`\^^C=`#4%
+ \ifx#5\relax
+ \lowercase{\lst@lAddTo\lst@temp{^^@^^A^^B^^C}}%
+ \else \lccode`\^^D=`#5%
+ \ifx#6\relax
+ \lowercase{\lst@lAddTo\lst@temp{^^@^^A^^B^^C^^D}}%
+ \else \lccode`\^^E=`#6%
+ \ifx#7\relax
+ \lowercase{\lst@lAddTo\lst@temp{^^@^^A^^B^^C^^D^^E}}%
+ \else \lccode`\^^F=`#7%
+ \ifx#8\relax
+ \lowercase{\lst@lAddTo\lst@temp{^^@^^A^^B^^C^^D^^E^^F}}%
+ \else \lccode`\^^G=`#8%
+ \ifx#9\relax
+ \lowercase{\lst@lAddTo\lst@temp{^^@^^A^^B^^C^^D^^E^^F^^G}}%
+ \else \lccode`\^^H=`#9%
+ \lowercase{\lst@lAddTo\lst@temp{^^@^^A^^B^^C^^D^^E^^F^^G^^H}}%
+ \let\lst@next\lst@MakeActive@
+ \fi \fi \fi \fi \fi \fi \fi \fi \fi
+ \lst@next}
+\endgroup
+\def\lst@DefActive#1#2{\lst@MakeActive{#2}\let#1\lst@temp}
+\def\lst@DefOther#1#2{%
+ \begingroup \def#1{#2}\escapechar\m@ne \expandafter\endgroup
+ \expandafter\lst@DefOther@\meaning#1\relax#1}
+\def\lst@DefOther@#1>#2\relax#3{\edef#3{\zap@space#2 \@empty}}
+\def\lst@InsideConvert#1{%
+ \lst@ifmathescape
+ \lst@InsideConvert@e#1$\@nil
+ \lst@if
+ \lst@InsideConvert@ey#1\@nil
+ \else
+ \lst@InsideConvert@#1 \@empty
+ \expandafter\@gobbletwo
+ \fi
+ \expandafter\lst@next
+ \else
+ \lst@InsideConvert@#1 \@empty
+ \fi}
+\begingroup \lccode`\~=`\ \relax \lowercase{%
+\gdef\lst@InsideConvert@#1 #2{%
+ \lst@MakeActive{#1}%
+ \ifx\@empty#2%
+ \lst@lExtend\lst@arg{\lst@temp}%
+ \else
+ \lst@lExtend\lst@arg{\lst@temp~}%
+ \expandafter\lst@InsideConvert@
+ \fi #2}
+}\endgroup
+\def\lst@InsideConvert@e#1$#2\@nil{%
+ \ifx\@empty#2\@empty \lst@false \else \lst@true \fi}
+\def\lst@InsideConvert@ey#1$#2$#3\@nil{%
+ \lst@InsideConvert@#1 \@empty
+ \lst@lAddTo\lst@arg{%
+ \lst@ifdropinput\else
+ \lst@TrackNewLines\lst@OutputLostSpace \lst@XPrintToken
+ \setbox\@tempboxa=\hbox\bgroup$\lst@escapebegin
+ #2%
+ \lst@escapeend$\egroup \lst@CalcLostSpaceAndOutput
+ \lst@whitespacefalse
+ \fi}%
+ \def\lst@next{\lst@InsideConvert{#3}}%
+}
+\def\lst@XConvert{\@ifnextchar\bgroup \lst@XConvertArg\lst@XConvert@}
+\def\lst@XConvertArg#1{%
+ {\lst@false \let\lst@arg\@empty
+ \lst@XConvert#1\@nil
+ \global\let\@gtempa\lst@arg}%
+ \lst@lExtend\lst@arg{\expandafter{\@gtempa}}%
+ \lst@XConvertNext}
+\def\lst@XConvert@#1{%
+ \ifx\@nil#1\else
+ \begingroup\lccode`\~=`#1\lowercase{\endgroup
+ \lst@lAddTo\lst@arg~}%
+ \expandafter\lst@XConvertNext
+ \fi}
+\def\lst@XConvertNext{%
+ \lst@if \expandafter\lst@XConvertX
+ \else \expandafter\lst@XConvert \fi}
+\def\lst@XConvertX#1{%
+ \ifx\@nil#1\else
+ \lst@XConvertX@#1\relax
+ \expandafter\lst@XConvert
+ \fi}
+\def\lst@XConvertX@#1#2\relax{%
+ \begingroup\lccode`\~=`#1\lowercase{\endgroup
+ \lst@XCConvertX@@~}{#2}}
+\def\lst@XCConvertX@@#1#2{\lst@lAddTo\lst@arg{{#1#2}}}
+\def\lst@Require#1#2#3#4#5{%
+ \begingroup
+ \aftergroup\lst@true
+ \ifx\@empty#3\@empty\else
+ \def\lst@prefix{#2}\let\lst@require\@empty
+ \edef\lst@temp{\expandafter\zap@space#3 \@empty}%
+ \lst@for\lst@temp\do{%
+ \ifx\@empty##1\@empty\else \lstKV@OptArg[]{##1}{%
+ #4[####1]{####2}%
+ \@ifundefined{\@lst\lst@prefix @\lst@malias $\lst@oalias}%
+ {\edef\lst@require{\lst@require,\lst@malias $\lst@oalias}}%
+ {}}%
+ \fi}%
+ \global\let\lst@loadaspects\@empty
+ \lst@InputCatcodes
+ \ifx\lst@require\@empty\else
+ \lst@for{#5}\do{%
+ \ifx\lst@require\@empty\else
+ \InputIfFileExists{##1}{}{}%
+ \fi}%
+ \fi
+ \ifx\lst@require\@empty\else
+ \PackageError{Listings}{Couldn't load requested #1}%
+ {The following #1s weren't loadable:^^J\@spaces
+ \lst@require^^JThis may cause errors in the sequel.}%
+ \aftergroup\lst@false
+ \fi
+ \ifx\lst@loadaspects\@empty\else
+ \lst@RequireAspects\lst@loadaspects
+ \fi
+ \fi
+ \endgroup}
+\def\lst@IfRequired[#1]#2{%
+ \lst@NormedDef\lst@temp{[#1]#2}%
+ \expandafter\lst@IfRequired@\lst@temp\relax}
+\def\lst@IfRequired@[#1]#2\relax#3{%
+ \lst@IfOneOf #2$#1\relax\lst@require
+ {\lst@DeleteKeysIn@\lst@require#2$#1,\relax,%
+ \global\expandafter\let
+ \csname\@lst\lst@prefix @#2$#1\endcsname\@empty
+ #3}}
+\let\lst@require\@empty
+\def\lst@NoAlias[#1]#2{%
+ \lst@NormedDef\lst@oalias{#1}\lst@NormedDef\lst@malias{#2}}
+\gdef\lst@LAS#1#2#3#4#5#6#7{%
+ \lst@Require{#1}{#2}{#3}#4#5%
+ #4#3%
+ \@ifundefined{lst#2@\lst@malias$\lst@oalias}%
+ {\PackageError{Listings}%
+ {#1 \ifx\@empty\lst@oalias\else \lst@oalias\space of \fi
+ \lst@malias\space undefined}%
+ {The #1 is not loadable. \@ehc}}%
+ {#6\csname\@lst#2@\lst@malias $\lst@oalias\endcsname #7}}
+\def\lst@RequireAspects#1{%
+ \lst@Require{aspect}{asp}{#1}\lst@NoAlias\lstaspectfiles}
+\let\lstloadaspects\lst@RequireAspects
+\@ifundefined{lstaspectfiles}
+ {\newcommand\lstaspectfiles{lstmisc0.sty,lstmisc.sty}}{}
+\gdef\lst@DefDriver#1#2#3#4{%
+ \@ifnextchar[{\lst@DefDriver@{#1}{#2}#3#4}%
+ {\lst@DefDriver@{#1}{#2}#3#4[]}}
+\gdef\lst@DefDriver@#1#2#3#4[#5]#6{%
+ \def\lst@name{#1}\let\lst@if#4%
+ \lst@NormedDef\lst@driver{\@lst#2@#6$#5}%
+ \lst@IfRequired[#5]{#6}{\begingroup \lst@true}%
+ {\begingroup}%
+ \lst@setcatcodes
+ \@ifnextchar[{\lst@XDefDriver{#1}#3}{\lst@DefDriver@@#3}}
+\gdef\lst@DefDriver@@#1#2{%
+ \lst@if
+ \global\@namedef{\lst@driver}{#1{#2}}%
+ \fi
+ \endgroup
+ \@ifnextchar[\lst@XXDefDriver\@empty}
+\gdef\lst@XXDefDriver[#1]{%
+ \ifx\@empty#1\@empty\else
+ \lst@if
+ \lstloadaspects{#1}%
+ \else
+ \@ifundefined{\lst@driver}{}%
+ {\xdef\lst@loadaspects{\lst@loadaspects,#1}}%
+ \fi
+ \fi}
+\gdef\lst@XDefDriver#1#2[#3]#4#5{\lst@DefDriver@@#2{also#1=[#3]#4,#5}}
+\let\lst@UserCommand\gdef
+\newcommand*\lst@BeginAspect[2][]{%
+ \def\lst@curraspect{#2}%
+ \ifx \lst@curraspect\@empty
+ \expandafter\lst@GobbleAspect
+ \else
+ \let\lst@next\@empty
+ \lst@IfRequired[]{#2}%
+ {\lst@RequireAspects{#1}%
+ \lst@if\else \let\lst@next\lst@GobbleAspect \fi}%
+ {\let\lst@next\lst@GobbleAspect}%
+ \expandafter\lst@next
+ \fi}
+\def\lst@EndAspect{%
+ \csname\@lst patch@\lst@curraspect\endcsname
+ \let\lst@curraspect\@empty}
+\long\def\lst@GobbleAspect#1\lst@EndAspect{\let\lst@curraspect\@empty}
+\def\lst@Key#1#2{%
+ \@ifnextchar[{\lstKV@def{#1}{#2}}%
+ {\def\lst@temp{\lst@Key@{#1}{#2}}
+ \afterassignment\lst@temp
+ \global\@namedef{KV@\@lst @#1}####1}}
+\def\lstKV@def#1#2[#3]{%
+ \global\@namedef{KV@\@lst @#1@default\expandafter}\expandafter
+ {\csname KV@\@lst @#1\endcsname{#3}}%
+ \def\lst@temp{\lst@Key@{#1}{#2}}\afterassignment\lst@temp
+ \global\@namedef{KV@\@lst @#1}##1}
+\def\lst@Key@#1#2{%
+ \ifx\relax#2\@empty\else
+ \begingroup \globaldefs\@ne
+ \csname KV@\@lst @#1\endcsname{#2}%
+ \endgroup
+ \fi}
+\def\lst@UseHook#1{\csname\@lst hk@#1\endcsname}
+\def\lst@AddToHook{\lst@ATH@\iffalse\lst@AddTo}
+\def\lst@AddToHookExe{\lst@ATH@\iftrue\lst@AddTo}
+\def\lst@AddToHookAtTop{\lst@ATH@\iffalse\lst@AddToAtTop}
+\long\def\lst@ATH@#1#2#3#4{%
+ \@ifundefined{\@lst hk@#3}{%
+ \expandafter\gdef\csname\@lst hk@#3\endcsname{}}{}%
+ \expandafter#2\csname\@lst hk@#3\endcsname{#4}%
+ \def\lst@temp{#4}%
+ #1% \iftrue|false
+ \begingroup \globaldefs\@ne \lst@temp \endgroup
+ \fi}
+\long\def\lst@AddTo#1#2{%
+ \expandafter\gdef\expandafter#1\expandafter{#1#2}}
+\def\lst@AddToAtTop#1#2{\def\lst@temp{#2}%
+ \expandafter\expandafter\expandafter\gdef
+ \expandafter\expandafter\expandafter#1%
+ \expandafter\expandafter\expandafter{\expandafter\lst@temp#1}}
+\def\lst@lAddTo#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
+\def\lst@Extend#1#2{%
+ \expandafter\lst@AddTo\expandafter#1\expandafter{#2}}
+\def\lst@lExtend#1#2{%
+ \expandafter\lst@lAddTo\expandafter#1\expandafter{#2}}
+\RequirePackage{keyval}[1997/11/10]
+\def\lstKV@TwoArg#1#2{\gdef\@gtempa##1##2{#2}\@gtempa#1{}{}}
+\def\lstKV@ThreeArg#1#2{\gdef\@gtempa##1##2##3{#2}\@gtempa#1{}{}{}}
+\def\lstKV@FourArg#1#2{\gdef\@gtempa##1##2##3##4{#2}\@gtempa#1{}{}{}{}}
+\def\lstKV@OptArg[#1]#2#3{%
+ \gdef\@gtempa[##1]##2{#3}\lstKV@OptArg@{#1}#2\@}
+\def\lstKV@OptArg@#1{\@ifnextchar[\lstKV@OptArg@@{\lstKV@OptArg@@[#1]}}
+\def\lstKV@OptArg@@[#1]#2\@{\@gtempa[#1]{#2}}
+\def\lstKV@XOptArg[#1]#2#3{%
+ \global\let\@gtempa#3\lstKV@OptArg@{#1}#2\@}
+\def\lstKV@CSTwoArg#1#2{%
+ \gdef\@gtempa##1,##2,##3\relax{#2}%
+ \@gtempa#1,,\relax}
+\def\lstKV@SetIf#1{\lstKV@SetIf@#1\relax}
+\def\lstKV@SetIf@#1#2\relax#3{\lowercase{%
+ \expandafter\let\expandafter#3%
+ \csname if\ifx #1t}true\else false\fi\endcsname}
+\def\lstKV@SwitchCases#1#2#3{%
+ \def\lst@temp##1\\#1&##2\\##3##4\@nil{%
+ \ifx\@empty##3%
+ #3%
+ \else
+ ##2%
+ \fi
+ }%
+ \lst@temp\\#2\\#1&\\\@empty\@nil}
+\lst@UserCommand\lstset{\begingroup \lst@setcatcodes \lstset@}
+\def\lstset@#1{\endgroup \ifx\@empty#1\@empty\else\setkeys{lst}{#1}\fi}
+\def\lst@setcatcodes{\makeatletter \catcode`\==12\relax}
+\def\lst@NewMode#1{%
+ \ifx\@undefined#1%
+ \lst@mode\lst@newmode\relax \advance\lst@mode\@ne
+ \xdef\lst@newmode{\the\lst@mode}%
+ \global\chardef#1=\lst@mode
+ \lst@mode\lst@nomode
+ \fi}
+\newcount\lst@mode
+\def\lst@newmode{\m@ne}% init
+\lst@NewMode\lst@nomode % init (of \lst@mode :-)
+\def\lst@UseDynamicMode{%
+ \@tempcnta\lst@dynamicmode\relax \advance\@tempcnta\@ne
+ \edef\lst@dynamicmode{\the\@tempcnta}%
+ \expandafter\lst@Swap\expandafter{\expandafter{\lst@dynamicmode}}}
+\lst@AddToHook{InitVars}{\let\lst@dynamicmode\lst@newmode}
+\def\lst@EnterMode#1#2{%
+ \bgroup \lst@mode=#1\relax #2%
+ \lst@FontAdjust
+ \lst@lAddTo\lst@entermodes{\lst@EnterMode{#1}{#2}}}
+\lst@AddToHook{InitVars}{\let\lst@entermodes\@empty}
+\let\lst@entermodes\@empty % init
+\def\lst@LeaveMode{%
+ \ifnum\lst@mode=\lst@nomode\else
+ \egroup \expandafter\lsthk@EndGroup
+ \fi}
+\lst@AddToHook{EndGroup}{}% init
+\def\lst@InterruptModes{%
+ \lst@Extend\lst@modestack{\expandafter{\lst@entermodes}}%
+ \lst@LeaveAllModes}
+\lst@AddToHook{InitVars}{\global\let\lst@modestack\@empty}
+\def\lst@ReenterModes{%
+ \ifx\lst@modestack\@empty\else
+ \lst@LeaveAllModes
+ \global\let\@gtempa\lst@modestack
+ \global\let\lst@modestack\@empty
+ \expandafter\lst@ReenterModes@\@gtempa\relax
+ \fi}
+\def\lst@ReenterModes@#1#2{%
+ \ifx\relax#2\@empty
+ \gdef\@gtempa##1{#1}%
+ \expandafter\@gtempa
+ \else
+ \lst@AddTo\lst@modestack{{#1}}%
+ \expandafter\lst@ReenterModes@
+ \fi
+ {#2}}
+\def\lst@LeaveAllModes{%
+ \ifnum\lst@mode=\lst@nomode
+ \expandafter\lsthk@EndGroup
+ \else
+ \expandafter\egroup\expandafter\lst@LeaveAllModes
+ \fi}
+\lst@AddToHook{ExitVars}{\lst@LeaveAllModes}
+\lst@NewMode\lst@Pmode
+\lst@NewMode\lst@GPmode
+\def\lst@modetrue{\let\lst@ifmode\iftrue \lsthk@ModeTrue}
+\let\lst@ifmode\iffalse % init
+\lst@AddToHook{ModeTrue}{}% init
+\def\lst@Lmodetrue{\let\lst@ifLmode\iftrue}
+\let\lst@ifLmode\iffalse % init
+\lst@AddToHook{EOL}{\@whilesw \lst@ifLmode\fi \lst@LeaveMode}
+\def\lst@NormedDef#1#2{\lowercase{\edef#1{\zap@space#2 \@empty}}}
+\def\lst@NormedNameDef#1#2{%
+ \lowercase{\edef\lst@temp{\zap@space#1 \@empty}%
+ \expandafter\xdef\csname\lst@temp\endcsname{\zap@space#2 \@empty}}}
+\def\lst@GetFreeMacro#1{%
+ \@tempcnta\z@ \def\lst@freemacro{#1\the\@tempcnta}%
+ \lst@GFM@}
+\def\lst@GFM@{%
+ \expandafter\ifx \csname\lst@freemacro\endcsname \relax
+ \edef\lst@freemacro{\csname\lst@freemacro\endcsname}%
+ \else
+ \advance\@tempcnta\@ne
+ \expandafter\lst@GFM@
+ \fi}
+\newbox\lst@gtempboxa
+\newtoks\lst@token \newcount\lst@length
+\def\lst@ResetToken{\lst@token{}\lst@length\z@}
+\lst@AddToHook{InitVarsBOL}{\lst@ResetToken \let\lst@lastother\@empty}
+\lst@AddToHook{EndGroup}{\lst@ResetToken \let\lst@lastother\@empty}
+\def\lst@lettertrue{\let\lst@ifletter\iftrue}
+\def\lst@letterfalse{\let\lst@ifletter\iffalse}
+\lst@AddToHook{InitVars}{\lst@letterfalse}
+\def\lst@Append#1{\advance\lst@length\@ne
+ \lst@token=\expandafter{\the\lst@token#1}}
+\def\lst@AppendOther{%
+ \lst@ifletter \lst@Output\lst@letterfalse \fi
+ \futurelet\lst@lastother\lst@Append}
+\def\lst@AppendLetter{%
+ \lst@ifletter\else \lst@OutputOther\lst@lettertrue \fi
+ \lst@Append}
+\def\lst@SaveToken{%
+ \global\let\lst@gthestyle\lst@thestyle
+ \global\let\lst@glastother\lst@lastother
+ \xdef\lst@RestoreToken{\noexpand\lst@token{\the\lst@token}%
+ \noexpand\lst@length\the\lst@length\relax
+ \noexpand\let\noexpand\lst@thestyle
+ \noexpand\lst@gthestyle
+ \noexpand\let\noexpand\lst@lastother
+ \noexpand\lst@glastother}}
+\def\lst@IfLastOtherOneOf#1{\lst@IfLastOtherOneOf@ #1\relax}
+\def\lst@IfLastOtherOneOf@#1{%
+ \ifx #1\relax
+ \expandafter\@secondoftwo
+ \else
+ \ifx\lst@lastother#1%
+ \lst@IfLastOtherOneOf@t
+ \else
+ \expandafter\expandafter\expandafter\lst@IfLastOtherOneOf@
+ \fi
+ \fi}
+\def\lst@IfLastOtherOneOf@t#1\fi\fi#2\relax{\fi\fi\@firstoftwo}
+\newdimen\lst@currlwidth % \global
+\newcount\lst@column \newcount\lst@pos % \global
+\lst@AddToHook{InitVarsBOL}
+ {\global\lst@currlwidth\z@ \global\lst@pos\z@ \global\lst@column\z@}
+\def\lst@CalcColumn{%
+ \@tempcnta\lst@column
+ \advance\@tempcnta\lst@length
+ \advance\@tempcnta-\lst@pos}
+\newdimen\lst@lostspace % \global
+\lst@AddToHook{InitVarsBOL}{\global\lst@lostspace\z@}
+\def\lst@UseLostSpace{\ifdim\lst@lostspace>\z@ \lst@InsertLostSpace \fi}
+\def\lst@InsertLostSpace{%
+ \lst@Kern\lst@lostspace \global\lst@lostspace\z@}
+\def\lst@InsertHalfLostSpace{%
+ \global\lst@lostspace.5\lst@lostspace \lst@Kern\lst@lostspace}
+\newdimen\lst@width
+\lst@Key{basewidth}{0.6em,0.45em}{\lstKV@CSTwoArg{#1}%
+ {\def\lst@widthfixed{##1}\def\lst@widthflexible{##2}%
+ \ifx\lst@widthflexible\@empty
+ \let\lst@widthflexible\lst@widthfixed
+ \fi
+ \def\lst@temp{\PackageError{Listings}%
+ {Negative value(s) treated as zero}%
+ \@ehc}%
+ \let\lst@error\@empty
+ \ifdim \lst@widthfixed<\z@
+ \let\lst@error\lst@temp \let\lst@widthfixed\z@
+ \fi
+ \ifdim \lst@widthflexible<\z@
+ \let\lst@error\lst@temp \let\lst@widthflexible\z@
+ \fi
+ \lst@error}}
+\lst@AddToHook{FontAdjust}
+ {\lst@width=\lst@ifflexible\lst@widthflexible
+ \else\lst@widthfixed\fi \relax}
+\lst@Key{fontadjust}{false}[t]{\lstKV@SetIf{#1}\lst@iffontadjust}
+\def\lst@FontAdjust{\lst@iffontadjust \lsthk@FontAdjust \fi}
+\lst@AddToHook{InitVars}{\lsthk@FontAdjust}
+\def\lst@OutputBox#1{\lst@alloverstyle{\box#1}}
+\def\lst@alloverstyle#1{#1}% init
+\def\lst@Kern#1{%
+ \setbox\z@\hbox{{\lst@currstyle{\kern#1}}}%
+ \global\advance\lst@currlwidth \wd\z@
+ \lst@OutputBox\z@}
+\def\lst@CalcLostSpaceAndOutput{%
+ \global\advance\lst@lostspace \lst@length\lst@width
+ \global\advance\lst@lostspace-\wd\@tempboxa
+ \global\advance\lst@currlwidth \wd\@tempboxa
+ \global\advance\lst@pos -\lst@length
+ \setbox\@tempboxa\hbox{\let\lst@OutputBox\box
+ \ifdim\lst@lostspace>\z@ \lst@leftinsert \fi
+ \box\@tempboxa
+ \ifdim\lst@lostspace>\z@ \lst@rightinsert \fi}%
+ \lst@OutputBox\@tempboxa \lsthk@PostOutput}
+\lst@AddToHook{PostOutput}{}% init
+\def\lst@OutputToken{%
+ \lst@TrackNewLines \lst@OutputLostSpace
+ \lst@ifgobbledws
+ \lst@gobbledwhitespacefalse
+ \lst@@discretionary
+ \fi
+ \lst@CheckMerge
+ {\lst@thestyle{\lst@FontAdjust
+ \setbox\@tempboxa\lst@hbox
+ {\lsthk@OutputBox
+ \lst@lefthss
+ \expandafter\lst@FillOutputBox\the\lst@token\@empty
+ \lst@righthss}%
+ \lst@CalcLostSpaceAndOutput}}%
+ \lst@ResetToken}
+\lst@AddToHook{OutputBox}{}% init
+\def\lst@gobbledwhitespacetrue{\global\let\lst@ifgobbledws\iftrue}
+\def\lst@gobbledwhitespacefalse{\global\let\lst@ifgobbledws\iffalse}
+\lst@AddToHookExe{InitBOL}{\lst@gobbledwhitespacefalse}% init
+\def\lst@Delay#1{%
+ \lst@CheckDelay
+ #1%
+ \lst@GetOutputMacro\lst@delayedoutput
+ \edef\lst@delayed{\the\lst@token}%
+ \edef\lst@delayedlength{\the\lst@length}%
+ \lst@ResetToken}
+\def\lst@Merge#1{%
+ \lst@CheckMerge
+ #1%
+ \edef\lst@merged{\the\lst@token}%
+ \edef\lst@mergedlength{\the\lst@length}%
+ \lst@ResetToken}
+\def\lst@MergeToken#1#2{%
+ \advance\lst@length#2%
+ \lst@lExtend#1{\the\lst@token}%
+ \expandafter\lst@token\expandafter{#1}%
+ \let#1\@empty}
+\def\lst@CheckDelay{%
+ \ifx\lst@delayed\@empty\else
+ \lst@GetOutputMacro\@gtempa
+ \ifx\lst@delayedoutput\@gtempa
+ \lst@MergeToken\lst@delayed\lst@delayedlength
+ \else
+ {\lst@ResetToken
+ \lst@MergeToken\lst@delayed\lst@delayedlength
+ \lst@delayedoutput}%
+ \let\lst@delayed\@empty
+ \fi
+ \fi}
+\def\lst@CheckMerge{%
+ \ifx\lst@merged\@empty\else
+ \lst@MergeToken\lst@merged\lst@mergedlength
+ \fi}
+\let\lst@delayed\@empty % init
+\let\lst@merged\@empty % init
+\def\lst@column@fixed{%
+ \lst@flexiblefalse
+ \lst@width\lst@widthfixed\relax
+ \let\lst@OutputLostSpace\lst@UseLostSpace
+ \let\lst@FillOutputBox\lst@FillFixed
+ \let\lst@hss\hss
+ \def\lst@hbox{\hbox to\lst@length\lst@width}}
+\def\lst@FillFixed#1{#1\lst@FillFixed@}
+\def\lst@FillFixed@#1{%
+ \ifx\@empty#1\else \lst@hss#1\expandafter\lst@FillFixed@ \fi}
+\def\lst@column@flexible{%
+ \lst@flexibletrue
+ \lst@width\lst@widthflexible\relax
+ \let\lst@OutputLostSpace\lst@UseLostSpace
+ \let\lst@FillOutputBox\@empty
+ \let\lst@hss\@empty
+ \let\lst@hbox\hbox}
+\def\lst@column@fullflexible{%
+ \lst@column@flexible
+ \def\lst@OutputLostSpace{\lst@ifnewline \lst@UseLostSpace\fi}%
+ \let\lst@leftinsert\@empty
+ \let\lst@rightinsert\@empty}
+\def\lst@column@spaceflexible{%
+ \lst@column@flexible
+ \def\lst@OutputLostSpace{%
+ \lst@ifwhitespace
+ \ifx\lst@outputspace\lst@visiblespace
+ \else
+ \lst@UseLostSpace
+ \fi
+ \else
+ \lst@ifnewline \lst@UseLostSpace\fi
+ \fi}%
+ \let\lst@leftinsert\@empty
+ \let\lst@rightinsert\@empty}
+\def\lst@outputpos#1#2\relax{%
+ \def\lst@lefthss{\lst@hss}\let\lst@righthss\lst@lefthss
+ \let\lst@rightinsert\lst@InsertLostSpace
+ \ifx #1c%
+ \let\lst@leftinsert\lst@InsertHalfLostSpace
+ \else\ifx #1r%
+ \let\lst@righthss\@empty
+ \let\lst@leftinsert\lst@InsertLostSpace
+ \let\lst@rightinsert\@empty
+ \else
+ \let\lst@lefthss\@empty
+ \let\lst@leftinsert\@empty
+ \ifx #1l\else \PackageWarning{Listings}%
+ {Unknown positioning for output boxes}%
+ \fi
+ \fi\fi}
+\def\lst@flexibletrue{\let\lst@ifflexible\iftrue}
+\def\lst@flexiblefalse{\let\lst@ifflexible\iffalse}
+\lst@Key{columns}{[c]fixed}{\lstKV@OptArg[]{#1}{%
+ \ifx\@empty##1\@empty\else \lst@outputpos##1\relax\relax \fi
+ \expandafter\let\expandafter\lst@arg
+ \csname\@lst @column@##2\endcsname
+ \lst@arg
+ \ifx\lst@arg\relax
+ \PackageWarning{Listings}{Unknown column format `##2'}%
+ \else
+ \lst@ifflexible
+ \let\lst@columnsflexible\lst@arg
+ \else
+ \let\lst@columnsfixed\lst@arg
+ \fi
+ \fi}}
+\let\lst@columnsfixed\lst@column@fixed % init
+\let\lst@columnsflexible\lst@column@flexible % init
+\lst@Key{flexiblecolumns}\relax[t]{%
+ \lstKV@SetIf{#1}\lst@ifflexible
+ \lst@ifflexible \lst@columnsflexible
+ \else \lst@columnsfixed \fi}
+\newcount\lst@newlines
+\lst@AddToHook{InitVars}{\global\lst@newlines\z@}
+\lst@AddToHook{InitVarsBOL}{\global\advance\lst@newlines\@ne}
+\def\lst@NewLine{%
+ \ifx\lst@OutputBox\@gobble\else
+ \par\noindent \hbox{}%
+ \fi
+ \global\advance\lst@newlines\m@ne
+ \lst@newlinetrue}
+\def\lst@newlinetrue{\global\let\lst@ifnewline\iftrue}
+\lst@AddToHookExe{PostOutput}{\global\let\lst@ifnewline\iffalse}% init
+\def\lst@TrackNewLines{%
+ \ifnum\lst@newlines>\z@
+ \lsthk@OnNewLine
+ \lst@DoNewLines
+ \fi}
+\lst@AddToHook{OnNewLine}{}% init
+\lst@Key{emptylines}\maxdimen{%
+ \@ifstar{\lst@true\@tempcnta\@gobble#1\relax\lst@GobbleNil}%
+ {\lst@false\@tempcnta#1\relax\lst@GobbleNil}#1\@nil
+ \advance\@tempcnta\@ne
+ \edef\lst@maxempty{\the\@tempcnta\relax}%
+ \let\lst@ifpreservenumber\lst@if}
+\def\lst@DoNewLines{
+ \@whilenum\lst@newlines>\lst@maxempty \do
+ {\lst@ifpreservenumber
+ \lsthk@OnEmptyLine
+ \global\advance\c@lstnumber\lst@advancelstnum
+ \fi
+ \global\advance\lst@newlines\m@ne}%
+ \@whilenum \lst@newlines>\@ne \do
+ {\lsthk@OnEmptyLine \lst@NewLine}%
+ \ifnum\lst@newlines>\z@ \lst@NewLine \fi}
+\lst@AddToHook{OnEmptyLine}{}% init
+\lst@Key{identifierstyle}{}{\def\lst@identifierstyle{#1}}
+\lst@AddToHook{EmptyStyle}{\let\lst@identifierstyle\@empty}
+\def\lst@GotoTabStop{%
+ \ifnum\lst@newlines=\z@
+ \setbox\@tempboxa\hbox{\lst@outputspace}%
+ \setbox\@tempboxa\hbox to\wd\@tempboxa{{\lst@currstyle{\hss}}}%
+ \lst@CalcLostSpaceAndOutput
+ \else
+ \global\advance\lst@lostspace \lst@length\lst@width
+ \global\advance\lst@column\lst@length \lst@length\z@
+ \fi}
+\def\lst@OutputOther{%
+ \lst@CheckDelay
+ \ifnum\lst@length=\z@\else
+ \let\lst@thestyle\lst@currstyle
+ \lsthk@OutputOther
+ \lst@OutputToken
+ \fi}
+\lst@AddToHook{OutputOther}{}% init
+\let\lst@currstyle\relax % init
+\def\lst@Output{%
+ \lst@CheckDelay
+ \ifnum\lst@length=\z@\else
+ \ifx\lst@currstyle\relax
+ \let\lst@thestyle\lst@identifierstyle
+ \else
+ \let\lst@thestyle\lst@currstyle
+ \fi
+ \lsthk@Output
+ \lst@OutputToken
+ \fi
+ \let\lst@lastother\relax}
+\lst@AddToHook{Output}{}% init
+\def\lst@GetOutputMacro#1{%
+ \lst@ifletter \global\let#1\lst@Output
+ \else \global\let#1\lst@OutputOther\fi}
+\def\lst@PrintToken{%
+ \lst@ifletter \lst@Output \lst@letterfalse
+ \else \lst@OutputOther \let\lst@lastother\@empty \fi}
+\def\lst@XPrintToken{%
+ \lst@PrintToken \lst@CheckMerge
+ \ifnum\lst@length=\z@\else \lst@PrintToken \fi}
+\def\lst@BeginDropOutput#1{%
+ \xdef\lst@BDOnewlines{\the\lst@newlines}%
+ \global\let\lst@BDOifnewline\lst@ifnewline
+ \lst@EnterMode{#1}%
+ {\lst@modetrue
+ \let\lst@OutputBox\@gobble
+ \aftergroup\lst@BDORestore}}
+\def\lst@BDORestore{%
+ \global\lst@newlines\lst@BDOnewlines
+ \global\let\lst@ifnewline\lst@BDOifnewline}
+\let\lst@EndDropOutput\lst@LeaveMode
+\def\lst@ProcessLetter{\lst@whitespacefalse \lst@AppendLetter}
+\def\lst@ProcessOther{\lst@whitespacefalse \lst@AppendOther}
+\def\lst@ProcessDigit{%
+ \lst@whitespacefalse
+ \lst@ifletter \expandafter\lst@AppendLetter
+ \else \expandafter\lst@AppendOther\fi}
+\def\lst@whitespacetrue{\global\let\lst@ifwhitespace\iftrue}
+\def\lst@whitespacefalse{\global\let\lst@ifwhitespace\iffalse}
+\lst@AddToHook{InitVarsBOL}{\lst@whitespacetrue}
+\lst@Key{tabsize}{8}
+ {\ifnum#1>\z@ \def\lst@tabsize{#1}\else
+ \PackageError{Listings}{Strict positive integer expected}%
+ {You can't use `#1' as tabsize. \@ehc}%
+ \fi}
+\lst@Key{showtabs}f[t]{\lstKV@SetIf{#1}\lst@ifshowtabs}
+\lst@Key{tab}{\kern.06em\hbox{\vrule\@height.3ex}%
+ \hrulefill\hbox{\vrule\@height.3ex}}
+ {\def\lst@tab{#1}}
+\def\lst@ProcessTabulator{%
+ \lst@XPrintToken \lst@whitespacetrue
+ \global\advance\lst@column -\lst@pos
+ \@whilenum \lst@pos<\@ne \do
+ {\global\advance\lst@pos\lst@tabsize}%
+ \lst@length\lst@pos
+ \lst@PreGotoTabStop}
+\def\lst@PreGotoTabStop{%
+ \lst@ifshowtabs
+ \lst@TrackNewLines
+ \setbox\@tempboxa\hbox to\lst@length\lst@width
+ {{\lst@currstyle{\hss\lst@tab}}}%
+ \lst@CalcLostSpaceAndOutput
+ \else
+ \lst@ifkeepspaces
+ \@tempcnta\lst@length \lst@length\z@
+ \@whilenum \@tempcnta>\z@ \do
+ {\lst@AppendOther\lst@outputspace
+ \advance\@tempcnta\m@ne}%
+ \lst@OutputOther
+ \else
+ \lst@GotoTabStop
+ \fi
+ \fi
+ \lst@length\z@ \global\lst@pos\z@}
+\def\lst@outputspace{\ }
+\def\lst@visiblespace{\lst@ttfamily{\char32}\textvisiblespace}
+\lst@Key{showspaces}{false}[t]{\lstKV@SetIf{#1}\lst@ifshowspaces}
+\lst@Key{keepspaces}{false}[t]{\lstKV@SetIf{#1}\lst@ifkeepspaces}
+\lst@AddToHook{Init}
+ {\lst@ifshowspaces
+ \let\lst@outputspace\lst@visiblespace
+ \lst@keepspacestrue
+ \fi}
+\def\lst@keepspacestrue{\let\lst@ifkeepspaces\iftrue}
+\def\lst@ProcessSpace{%
+ \lst@ifkeepspaces
+ \lst@PrintToken
+ \lst@whitespacetrue
+ \lst@AppendOther\lst@outputspace
+ \lst@PrintToken
+ \else \ifnum\lst@newlines=\z@
+ \lst@AppendSpecialSpace
+ \else \ifnum\lst@length=\z@
+ \global\advance\lst@lostspace\lst@width
+ \global\advance\lst@pos\m@ne
+ \lst@whitespacetrue
+ \else
+ \lst@AppendSpecialSpace
+ \fi
+ \fi \fi}
+\def\lst@AppendSpecialSpace{%
+ \lst@ifwhitespace
+ \lst@PrintToken
+ \global\advance\lst@lostspace\lst@width
+ \global\advance\lst@pos\m@ne
+ \lst@gobbledwhitespacetrue
+ \else
+ \lst@PrintToken
+ \lst@whitespacetrue
+ \lst@AppendOther\lst@outputspace
+ \lst@PrintToken
+ \fi}
+\lst@Key{formfeed}{\bigbreak}{\def\lst@formfeed{#1}}
+\def\lst@ProcessFormFeed{%
+ \lst@XPrintToken
+ \ifnum\lst@newlines=\z@
+ \lst@EOLUpdate \lsthk@InitVarsBOL
+ \fi
+ \lst@formfeed
+ \lst@whitespacetrue}
+\def\lst@Def#1{\lccode`\~=#1\lowercase{\def~}}
+\def\lst@Let#1{\lccode`\~=#1\lowercase{\let~}}
+\lst@AddToAtTop{\try@load@fontshape}{\def\space{ }}
+\def\lst@SelectStdCharTable{%
+ \lst@Def{9}{\lst@ProcessTabulator}%
+ \lst@Def{12}{\lst@ProcessFormFeed}%
+ \lst@Def{32}{\lst@ProcessSpace}}
+\def\lst@CCPut#1#2{%
+ \ifnum#2=\z@
+ \expandafter\@gobbletwo
+ \else
+ \lccode`\~=#2\lccode`\/=#2\lowercase{\lst@CCPut@~{#1/}}%
+ \fi
+ \lst@CCPut#1}
+\def\lst@CCPut@#1#2{\lst@lAddTo\lst@SelectStdCharTable{\def#1{#2}}}
+\lst@CCPut \lst@ProcessOther
+ {"21}{"22}{"28}{"29}{"2B}{"2C}{"2E}{"2F}
+ {"3A}{"3B}{"3D}{"3F}{"5B}{"5D}
+ \z@
+\lst@CCPut \lst@ProcessDigit
+ {"30}{"31}{"32}{"33}{"34}{"35}{"36}{"37}{"38}{"39}
+ \z@
+\lst@CCPut \lst@ProcessLetter
+ {"40}{"41}{"42}{"43}{"44}{"45}{"46}{"47}
+ {"48}{"49}{"4A}{"4B}{"4C}{"4D}{"4E}{"4F}
+ {"50}{"51}{"52}{"53}{"54}{"55}{"56}{"57}
+ {"58}{"59}{"5A}
+ {"61}{"62}{"63}{"64}{"65}{"66}{"67}
+ {"68}{"69}{"6A}{"6B}{"6C}{"6D}{"6E}{"6F}
+ {"70}{"71}{"72}{"73}{"74}{"75}{"76}{"77}
+ {"78}{"79}{"7A}
+ \z@
+\def\lst@CCPutMacro#1#2#3{%
+ \ifnum#2=\z@ \else
+ \begingroup\lccode`\~=#2\relax \lccode`\/=#2\relax
+ \lowercase{\endgroup\expandafter\lst@CCPutMacro@
+ \csname\@lst @um/\expandafter\endcsname
+ \csname\@lst @um/@\endcsname /~}#1{#3}%
+ \expandafter\lst@CCPutMacro
+ \fi}
+\def\lst@CCPutMacro@#1#2#3#4#5#6{%
+ \lst@lAddTo\lst@SelectStdCharTable{\def#4{#5#1}}%
+ \def#1{\lst@UM#3}%
+ \def#2{#6}}
+\def\lst@UM#1{\csname\@lst @um#1@\endcsname}
+\lst@CCPutMacro
+ \lst@ProcessOther {"23}\#
+ \lst@ProcessLetter{"24}\textdollar
+ \lst@ProcessOther {"25}\%
+ \lst@ProcessOther {"26}\&
+ \lst@ProcessOther {"27}{\lst@ifupquote \textquotesingle
+ \else \char39\relax \fi}
+ \lst@ProcessOther {"2A}{\lst@ttfamily*\textasteriskcentered}
+ \lst@ProcessOther {"2D}{\lst@ttfamily{-{}}{$-$}}
+ \lst@ProcessOther {"3C}{\lst@ttfamily<\textless}
+ \lst@ProcessOther {"3E}{\lst@ttfamily>\textgreater}
+ \lst@ProcessOther {"5C}{\lst@ttfamily{\char92}\textbackslash}
+ \lst@ProcessOther {"5E}\textasciicircum
+ \lst@ProcessLetter{"5F}{\lst@ttfamily{\char95}\textunderscore}
+ \lst@ProcessOther {"60}{\lst@ifupquote \textasciigrave
+ \else \char96\relax \fi}
+ \lst@ProcessOther {"7B}{\lst@ttfamily{\char123}\textbraceleft}
+ \lst@ProcessOther {"7C}{\lst@ttfamily|\textbar}
+ \lst@ProcessOther {"7D}{\lst@ttfamily{\char125}\textbraceright}
+ \lst@ProcessOther {"7E}\textasciitilde
+ \lst@ProcessOther {"7F}-
+ \@empty\z@\@empty
+\def\lst@ttfamily#1#2{\ifx\f@family\ttdefault#1\relax\else#2\fi}
+\lst@AddToHook{Init}{\edef\ttdefault{\ttdefault}}
+\lst@Key{upquote}{false}[t]{\lstKV@SetIf{#1}\lst@ifupquote
+ \lst@ifupquote
+ \@ifundefined{textasciigrave}%
+ {\let\KV@lst@upquote\@gobble
+ \lstKV@SetIf f\lst@ifupquote \@gobble\fi
+ \PackageError{Listings}{Option `upquote' requires `textcomp'
+ package.\MessageBreak The option has been disabled}%
+ {Add \string\usepackage{textcomp} to your preamble.}}%
+ {}%
+ \fi}
+\AtBeginDocument{%
+ \@ifpackageloaded{upquote}{\RequirePackage{textcomp}%
+ \lstset{upquote}}{}%
+ \@ifpackageloaded{upquote2}{\lstset{upquote}}{}}
+\def\lst@activecharstrue{\let\lst@ifactivechars\iftrue}
+\def\lst@activecharsfalse{\let\lst@ifactivechars\iffalse}
+\lst@activecharstrue
+\def\lst@SelectCharTable{%
+ \lst@SelectStdCharTable
+ \lst@ifactivechars
+ \catcode9\active \catcode12\active \catcode13\active
+ \@tempcnta=32\relax
+ \@whilenum\@tempcnta<128\do
+ {\catcode\@tempcnta\active\advance\@tempcnta\@ne}%
+ \fi
+ \lst@ifec \lst@DefEC \fi
+ \let\do\lst@do@noligs \verbatim@nolig@list
+ \lsthk@SelectCharTable
+ \lst@DeveloperSCT
+\lst@DefRange
+ \ifx\lst@Backslash\relax\else
+ \lst@LetSaveDef{"5C}\lsts@backslash\lst@Backslash
+ \fi}
+\lst@Key{SelectCharTable}{}{\def\lst@DeveloperSCT{#1}}
+\lst@Key{MoreSelectCharTable}\relax{\lst@lAddTo\lst@DeveloperSCT{#1}}
+\lst@AddToHook{SetLanguage}{\let\lst@DeveloperSCT\@empty}
+\def\lst@do@noligs#1{%
+ \begingroup \lccode`\~=`#1\lowercase{\endgroup
+ \lst@do@noligs@~}}
+\def\lst@do@noligs@#1{%
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter#1%
+ \expandafter\expandafter\expandafter{\expandafter\lst@NoLig#1}}
+\def\lst@NoLig{\advance\lst@length\m@ne \lst@Append\lst@nolig}
+\def\lst@nolig{\lst@UM\@empty}%
+\@namedef{\@lst @um@}{\leavevmode\kern\z@}
+\def\lst@SaveOutputDef#1#2{%
+ \begingroup \lccode`\~=#1\relax \lowercase{\endgroup
+ \def\lst@temp##1\def~##2##3\relax}{%
+ \global\expandafter\let\expandafter#2\@gobble##2\relax}%
+ \expandafter\lst@temp\lst@SelectStdCharTable\relax}
+\lst@SaveOutputDef{"5C}\lstum@backslash
+\lst@Key{extendedchars}{true}[t]{\lstKV@SetIf{#1}\lst@ifec}
+\def\lst@DefEC{%
+ \lst@CCECUse \lst@ProcessLetter
+ ^^80^^81^^82^^83^^84^^85^^86^^87^^88^^89^^8a^^8b^^8c^^8d^^8e^^8f%
+ ^^90^^91^^92^^93^^94^^95^^96^^97^^98^^99^^9a^^9b^^9c^^9d^^9e^^9f%
+ ^^a0^^a1^^a2^^a3^^a4^^a5^^a6^^a7^^a8^^a9^^aa^^ab^^ac^^ad^^ae^^af%
+ ^^b0^^b1^^b2^^b3^^b4^^b5^^b6^^b7^^b8^^b9^^ba^^bb^^bc^^bd^^be^^bf%
+ ^^c0^^c1^^c2^^c3^^c4^^c5^^c6^^c7^^c8^^c9^^ca^^cb^^cc^^cd^^ce^^cf%
+ ^^d0^^d1^^d2^^d3^^d4^^d5^^d6^^d7^^d8^^d9^^da^^db^^dc^^dd^^de^^df%
+ ^^e0^^e1^^e2^^e3^^e4^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef%
+ ^^f0^^f1^^f2^^f3^^f4^^f5^^f6^^f7^^f8^^f9^^fa^^fb^^fc^^fd^^fe^^ff%
+ ^^00}
+\def\lst@CCECUse#1#2{%
+ \ifnum`#2=\z@
+ \expandafter\@gobbletwo
+ \else
+ \ifnum\catcode`#2=\active
+ \lccode`\~=`#2\lccode`\/=`#2\lowercase{\lst@CCECUse@#1~/}%
+ \else
+ \lst@ifactivechars \catcode`#2=\active \fi
+ \lccode`\~=`#2\lccode`\/=`#2\lowercase{\def~{#1/}}%
+ \fi
+ \fi
+ \lst@CCECUse#1}
+\def\lst@CCECUse@#1#2#3{%
+ \expandafter\def\csname\@lst @EC#3\endcsname{\lst@UM#3}%
+ \expandafter\let\csname\@lst @um#3@\endcsname #2%
+ \edef#2{\noexpand#1%
+ \expandafter\noexpand\csname\@lst @EC#3\endcsname}}
+\lst@AddToHook{Init}
+ {\let\lsts@nfss@catcodes\nfss@catcodes
+ \let\nfss@catcodes\lst@nfss@catcodes}
+\def\lst@nfss@catcodes{%
+ \lst@makeletter
+ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\relax
+ \@makeother (\@makeother )\@makeother ,\@makeother :\@makeother\&%
+ \@makeother 0\@makeother 1\@makeother 2\@makeother 3\@makeother 4%
+ \@makeother 5\@makeother 6\@makeother 7\@makeother 8\@makeother 9%
+ \@makeother =\lsts@nfss@catcodes}
+\def\lst@makeletter#1{%
+ \ifx\relax#1\else\catcode`#111\relax \expandafter\lst@makeletter\fi}
+\lst@Key{useoutput}{2}{\edef\lst@useoutput{\ifcase0#1 0\or 1\else 2\fi}}
+\lst@AddToHook{Init}
+{\edef\lst@OrgOutput{\the\output}%
+\ifcase\lst@useoutput\relax
+\or
+ \output{\global\setbox\lst@gtempboxa\box\@cclv
+ \expandafter\egroup
+ \lst@SaveToken
+ \lst@InterruptModes
+ \setbox\@cclv\box\lst@gtempboxa
+ \bgroup\lst@OrgOutput\egroup
+ \bgroup
+ \aftergroup\pagegoal\aftergroup\vsize
+ \aftergroup\lst@ReenterModes\aftergroup\lst@RestoreToken}%
+\else
+ \output{\lst@RestoreOrigCatcodes
+ \lst@ifec \lst@RestoreOrigExtendedCatcodes \fi
+ \lst@OrgOutput}%
+\fi}
+\def\lst@GetChars#1#2#3{%
+ \let#1\@empty
+ \@tempcnta#2\relax \@tempcntb#3\relax
+ \loop \ifnum\@tempcnta<\@tempcntb\relax
+ \lst@lExtend#1{\expandafter\catcode\the\@tempcnta=}%
+ \lst@lExtend#1{\the\catcode\@tempcnta\relax}%
+ \ifnum\the\catcode\@tempcnta=\active
+ \begingroup\lccode`\~=\@tempcnta
+ \lowercase{\endgroup
+ \lst@lExtend#1{\expandafter\let\expandafter~\csname
+ lstecs@\the\@tempcnta\endcsname}%
+ \expandafter\let\csname lstecs@\the\@tempcnta\endcsname~}%
+ \fi
+ \advance\@tempcnta\@ne
+ \repeat}
+\begingroup \catcode12=\active\let^^L\@empty
+\gdef\lst@ScanChars{%
+ \let\lsts@ssL^^L%
+ \def^^L{\par}%
+ \lst@GetChars\lst@RestoreOrigCatcodes\@ne {128}%
+ \let^^L\lsts@ssL
+ \lst@GetChars\lst@RestoreOrigExtendedCatcodes{128}{256}}
+\endgroup
+\lst@Key{rescanchars}\relax{\lst@ScanChars}
+\AtBeginDocument{\lst@ScanChars}
+\lst@Key{alsoletter}\relax{%
+ \lst@DoAlso{#1}\lst@alsoletter\lst@ProcessLetter}
+\lst@Key{alsodigit}\relax{%
+ \lst@DoAlso{#1}\lst@alsodigit\lst@ProcessDigit}
+\lst@Key{alsoother}\relax{%
+ \lst@DoAlso{#1}\lst@alsoother\lst@ProcessOther}
+\lst@AddToHook{SelectCharTable}
+ {\lst@alsoother \lst@alsodigit \lst@alsoletter}
+\lst@AddToHookExe{SetLanguage}% init
+ {\let\lst@alsoletter\@empty
+ \let\lst@alsodigit\@empty
+ \let\lst@alsoother\@empty}
+\def\lst@DoAlso#1#2#3{%
+ \lst@DefOther\lst@arg{#1}\let#2\@empty
+ \expandafter\lst@DoAlso@\expandafter#2\expandafter#3\lst@arg\relax}
+\def\lst@DoAlso@#1#2#3{%
+ \ifx\relax#3\expandafter\@gobblethree \else
+ \begingroup \lccode`\~=`#3\relax \lowercase{\endgroup
+ \def\lst@temp##1\def~##2##3\relax{%
+ \edef\lst@arg{\def\noexpand~{\noexpand#2\expandafter
+ \noexpand\@gobble##2}}}}%
+ \expandafter\lst@temp\lst@SelectStdCharTable\relax
+ \lst@lExtend#1{\lst@arg}%
+ \fi
+ \lst@DoAlso@#1#2}
+\def\lst@SaveDef#1#2{%
+ \begingroup \lccode`\~=#1\relax \lowercase{\endgroup\let#2~}}
+\def\lst@DefSaveDef#1#2{%
+ \begingroup \lccode`\~=#1\relax \lowercase{\endgroup\let#2~\def~}}
+\def\lst@LetSaveDef#1#2{%
+ \begingroup \lccode`\~=#1\relax \lowercase{\endgroup\let#2~\let~}}
+\def\lst@CDef#1{\lst@CDef@#1}
+\def\lst@CDef@#1#2#3#4{\lst@CDefIt#1{#2}{#3}{#4#2#3}#4}
+\def\lst@CDefX#1{\lst@CDefX@#1}
+\def\lst@CDefX@#1#2#3{\lst@CDefIt#1{#2}{#3}{}}
+\def\lst@CDefIt#1#2#3#4#5#6#7#8{%
+ \ifx\@empty#2\@empty
+ \def#1{#6\def\lst@next{#7#4#8}\lst@next}%
+ \else \ifx\@empty#3\@empty
+ \def#1##1{%
+ #6%
+ \ifx##1#2\def\lst@next{#7#4#8}\else
+ \def\lst@next{#5##1}\fi
+ \lst@next}%
+ \else
+ \def#1{%
+ #6%
+ \lst@IfNextCharsArg{#2#3}{#7#4#8}%
+ {\expandafter#5\lst@eaten}}%
+ \fi \fi}
+\def\lst@CArgX#1#2\relax{%
+ \lst@DefActive\lst@arg{#1#2}%
+ \expandafter\lst@CArg\lst@arg\relax}
+\def\lst@CArg#1#2\relax{%
+ \lccode`\/=`#1\lowercase{\def\lst@temp{/}}%
+ \lst@GetFreeMacro{lst@c\lst@temp}%
+ \expandafter\lst@CArg@\lst@freemacro#1#2\@empty\@empty\relax}
+\def\lst@CArg@#1#2#3#4\@empty#5\relax#6{%
+ \let#1#2%
+ \ifx\@empty#3\@empty
+ \def\lst@next{#6{#2{}{}}}%
+ \else
+ \def\lst@next{#6{#2#3{#4}}}%
+ \fi
+ \lst@next #1}
+\def\lst@CArgEmpty#1\@empty{#1}
+\lst@Key{excludedelims}\relax
+ {\lsthk@ExcludeDelims \lst@NormedDef\lst@temp{#1}%
+ \expandafter\lst@for\lst@temp\do
+ {\expandafter\let\csname\@lst @ifex##1\endcsname\iftrue}}
+\def\lst@DelimPrint#1#2{%
+ #1%
+ \begingroup
+ \lst@mode\lst@nomode \lst@modetrue
+ #2\lst@XPrintToken
+ \endgroup
+ \lst@ResetToken
+ \fi}
+\def\lst@DelimOpen#1#2#3#4#5#6\@empty{%
+ \lst@TrackNewLines \lst@XPrintToken
+ \lst@DelimPrint#1{#6}%
+ \lst@EnterMode{#4}{\def\lst@currstyle#5}%
+ \lst@DelimPrint{#1#2}{#6}%
+ #3}
+\def\lst@DelimClose#1#2#3\@empty{%
+ \lst@TrackNewLines \lst@XPrintToken
+ \lst@DelimPrint{#1#2}{#3}%
+ \lst@LeaveMode
+ \lst@DelimPrint{#1}{#3}}
+\def\lst@BeginDelim{\lst@DelimOpen\iffalse\else{}}
+\def\lst@EndDelim{\lst@DelimClose\iffalse\else}
+\def\lst@BeginIDelim{\lst@DelimOpen\iffalse{}{}}
+\def\lst@EndIDelim{\lst@DelimClose\iffalse{}}
+\lst@AddToHook{SelectCharTable}{\lst@DefDelims}
+\lst@AddToHookExe{SetLanguage}{\let\lst@DefDelims\@empty}
+\def\lst@Delim#1{%
+ \lst@false \let\lst@cumulative\@empty \let\lst@arg\@empty
+ \@ifstar{\@ifstar{\lst@Delim@{#1}}%
+ {\let\lst@cumulative\relax
+ \lst@Delim@{#1}}}%
+ {\lst@true\lst@Delim@{#1}}}
+\def\lst@Delim@#1[#2]{%
+ \gdef\lst@delimtype{#2}%
+ \@ifnextchar[\lst@Delim@sty
+ {\lst@Delim@sty[#1]}}
+\def\lst@Delim@sty[#1]{%
+ \def\lst@delimstyle{#1}%
+ \ifx\@empty#1\@empty\else
+ \lst@Delim@sty@ #1\@nil
+ \fi
+ \@ifnextchar[\lst@Delim@option
+ \lst@Delim@delim}
+\def\lst@Delim@option[#1]{\def\lst@arg{[#1]}\lst@Delim@delim}
+\def\lst@Delim@sty@#1#2\@nil{%
+ \if\relax\noexpand#1\else
+ \edef\lst@delimstyle{\expandafter\noexpand
+ \csname\@lst @\lst@delimstyle\endcsname}%
+ \fi}
+\def\lst@Delim@delim#1\relax#2#3#4#5#6#7#8{%
+ \ifx #4\@empty \lst@Delim@delall{#2}\fi
+ \ifx\@empty#1\@empty
+ \ifx #4\@nil
+ \@ifundefined{\@lst @#2DM@\lst@delimtype}%
+ {\lst@Delim@delall{#2@\lst@delimtype}}%
+ {\lst@Delim@delall{#2DM@\lst@delimtype}}%
+ \fi
+ \else
+ \expandafter\lst@Delim@args\expandafter
+ {\lst@delimtype}{#1}{#5}#6{#7}{#8}#4%
+ \let\lst@delim\@empty
+ \expandafter\lst@IfOneOf\lst@delimtype\relax#3%
+ {\@ifundefined{\@lst @#2DM@\lst@delimtype}%
+ {\lst@lExtend\lst@delim{\csname\@lst @#2@\lst@delimtype
+ \expandafter\endcsname\lst@arg}}%
+ {\lst@lExtend\lst@delim{\expandafter\lst@UseDynamicMode
+ \csname\@lst @#2DM@\lst@delimtype
+ \expandafter\endcsname\lst@arg}}%
+ \ifx #4\@nil
+ \let\lst@temp\lst@DefDelims \let\lst@DefDelims\@empty
+ \expandafter\lst@Delim@del\lst@temp\@empty\@nil\@nil\@nil
+ \else
+ \lst@lExtend\lst@DefDelims\lst@delim
+ \fi}%
+ {\PackageError{Listings}{Illegal type `\lst@delimtype'}%
+ {#2 types are #3.}}%
+ \fi}
+\def\lst@Delim@args#1#2#3#4#5#6#7{%
+ \begingroup
+ \lst@false \let\lst@next\lst@XConvert
+ \@ifnextchar #4{\xdef\lst@delimtype{\expandafter\@gobble
+ \lst@delimtype}%
+ #5\lst@next#2\@nil
+ \lst@lAddTo\lst@arg{\@empty#6}%
+ \lst@GobbleNil}%
+ {\lst@next#2\@nil
+ \lst@lAddTo\lst@arg{\@empty#3}%
+ \lst@GobbleNil}%
+ #1\@nil
+ \global\let\@gtempa\lst@arg
+ \endgroup
+ \let\lst@arg\@gtempa
+ \ifx #7\@nil\else
+ \expandafter\lst@Delim@args@\expandafter{\lst@delimstyle}%
+ \fi}
+\def\lst@Delim@args@#1{%
+ \lst@if
+ \lst@lAddTo\lst@arg{{{#1}\lst@modetrue}}%
+ \else
+ \ifx\lst@cumulative\@empty
+ \lst@lAddTo\lst@arg{{{}#1}}%
+ \else
+ \lst@lAddTo\lst@arg{{{#1}}}%
+ \fi
+ \fi}
+\def\lst@Delim@del#1\@empty#2#3#4{%
+ \ifx #2\@nil\else
+ \def\lst@temp{#1\@empty#2#3}%
+ \ifx\lst@temp\lst@delim\else
+ \lst@lAddTo\lst@DefDelims{#1\@empty#2#3{#4}}%
+ \fi
+ \expandafter\lst@Delim@del
+ \fi}
+\def\lst@Delim@delall#1{%
+ \begingroup
+ \edef\lst@delim{\expandafter\string\csname\@lst @#1\endcsname}%
+ \lst@false \global\let\@gtempa\@empty
+ \expandafter\lst@Delim@delall@\lst@DefDelims\@empty
+ \endgroup
+ \let\lst@DefDelims\@gtempa}
+\def\lst@Delim@delall@#1{%
+ \ifx #1\@empty\else
+ \ifx #1\lst@UseDynamicMode
+ \lst@true
+ \let\lst@next\lst@Delim@delall@do
+ \else
+ \def\lst@next{\lst@Delim@delall@do#1}%
+ \fi
+ \expandafter\lst@next
+ \fi}
+\def\lst@Delim@delall@do#1#2\@empty#3#4#5{%
+ \expandafter\lst@IfSubstring\expandafter{\lst@delim}{\string#1}%
+ {}%
+ {\lst@if \lst@AddTo\@gtempa\lst@UseDynamicMode \fi
+ \lst@AddTo\@gtempa{#1#2\@empty#3#4{#5}}}%
+ \lst@false \lst@Delim@delall@}
+\gdef\lst@DefDelimB#1#2#3#4#5#6#7#8{%
+ \lst@CDef{#1}#2%
+ {#3}%
+ {\let\lst@bnext\lst@CArgEmpty
+ \lst@ifmode #4\else
+ #5%
+ \def\lst@bnext{#6{#7}{#8}}%
+ \fi
+ \lst@bnext}%
+ \@empty}
+\gdef\lst@DefDelimE#1#2#3#4#5#6#7{%
+ \lst@CDef{#1}#2%
+ {#3}%
+ {\let\lst@enext\lst@CArgEmpty
+ \ifnum #7=\lst@mode%
+ #4%
+ \let\lst@enext#6%
+ \else
+ #5%
+ \fi
+ \lst@enext}%
+ \@empty}
+\lst@AddToHook{Init}{\let\lst@bnext\relax \let\lst@enext\relax}
+\gdef\lst@DefDelimBE#1#2#3#4#5#6#7#8#9{%
+ \lst@CDef{#1}#2%
+ {#3}%
+ {\let\lst@bnext\lst@CArgEmpty
+ \ifnum #7=\lst@mode
+ #4%
+ \let\lst@bnext#9%
+ \else
+ \lst@ifmode\else
+ #5%
+ \def\lst@bnext{#6{#7}{#8}}%
+ \fi
+ \fi
+ \lst@bnext}%
+ \@empty}
+\gdef\lst@delimtypes{s,l}
+\gdef\lst@DelimKey#1#2{%
+ \lst@Delim{}#2\relax
+ {Delim}\lst@delimtypes #1%
+ {\lst@BeginDelim\lst@EndDelim}
+ i\@empty{\lst@BeginIDelim\lst@EndIDelim}}
+\lst@Key{delim}\relax{\lst@DelimKey\@empty{#1}}
+\lst@Key{moredelim}\relax{\lst@DelimKey\relax{#1}}
+\lst@Key{deletedelim}\relax{\lst@DelimKey\@nil{#1}}
+\gdef\lst@DelimDM@l#1#2\@empty#3#4#5{%
+ \lst@CArg #2\relax\lst@DefDelimB{}{}{}#3{#1}{#5\lst@Lmodetrue}}
+\gdef\lst@DelimDM@s#1#2#3\@empty#4#5#6{%
+ \lst@CArg #2\relax\lst@DefDelimB{}{}{}#4{#1}{#6}%
+ \lst@CArg #3\relax\lst@DefDelimE{}{}{}#5{#1}}
+\def\lst@ReplaceInput#1{\lst@CArgX #1\relax\lst@CDefX{}{}}
+\def\lst@Literatekey#1\@nil@{\let\lst@ifxliterate\lst@if
+ \def\lst@literate{#1}}
+\lst@Key{literate}{}{\@ifstar{\lst@true \lst@Literatekey}
+ {\lst@false\lst@Literatekey}#1\@nil@}
+\lst@AddToHook{SelectCharTable}
+ {\ifx\lst@literate\@empty\else
+ \expandafter\lst@Literate\lst@literate{}\relax\z@
+ \fi}
+\def\lst@Literate#1#2#3{%
+ \ifx\relax#2\@empty\else
+ \lst@CArgX #1\relax\lst@CDef
+ {}
+ {\let\lst@next\@empty
+ \lst@ifxliterate
+ \lst@ifmode \let\lst@next\lst@CArgEmpty \fi
+ \fi
+ \ifx\lst@next\@empty
+ \ifx\lst@OutputBox\@gobble\else
+ \lst@XPrintToken \let\lst@scanmode\lst@scan@m
+ \lst@token{#2}\lst@length#3\relax
+ \lst@XPrintToken
+ \fi
+ \let\lst@next\lst@CArgEmptyGobble
+ \fi
+ \lst@next}%
+ \@empty
+ \expandafter\lst@Literate
+ \fi}
+\def\lst@CArgEmptyGobble#1\@empty{}
+\def\lst@BeginDropInput#1{%
+ \lst@EnterMode{#1}%
+ {\lst@modetrue
+ \let\lst@OutputBox\@gobble
+ \let\lst@ifdropinput\iftrue
+ \let\lst@ProcessLetter\@gobble
+ \let\lst@ProcessDigit\@gobble
+ \let\lst@ProcessOther\@gobble
+ \let\lst@ProcessSpace\@empty
+ \let\lst@ProcessTabulator\@empty
+ \let\lst@ProcessFormFeed\@empty}}
+\let\lst@ifdropinput\iffalse % init
+\lst@Key{basicstyle}\relax{\def\lst@basicstyle{#1}}
+\lst@Key{inputencoding}\relax{\def\lst@inputenc{#1}}
+\lst@AddToHook{Init}
+ {\lst@basicstyle
+ \ifx\lst@inputenc\@empty\else
+ \@ifundefined{inputencoding}{}%
+ {\inputencoding\lst@inputenc}%
+ \fi}
+\lst@AddToHookExe{EmptyStyle}
+ {\let\lst@basicstyle\@empty
+ \let\lst@inputenc\@empty}
+\lst@Key{multicols}{}{\@tempcnta=0#1\relax\def\lst@multicols{#1}}
+\def\lst@parshape{\parshape\@ne \z@ \linewidth}
+\lst@AddToHookAtTop{EveryLine}{\lst@parshape}
+\lst@AddToHookAtTop{EndGroup}{\lst@parshape}
+\newcount\lst@lineno % \global
+\lst@AddToHook{InitVars}{\global\lst@lineno\@ne}
+\lst@Key{print}{true}[t]{\lstKV@SetIf{#1}\lst@ifprint}
+\lst@Key{firstline}\relax{\def\lst@firstline{#1\relax}}
+\lst@Key{lastline}\relax{\def\lst@lastline{#1\relax}}
+\lst@AddToHook{PreSet}
+ {\let\lst@firstline\@ne \def\lst@lastline{9999999\relax}}
+\lst@Key{linerange}\relax{\lstKV@OptArg[]{#1}{%
+ \def\lst@interrange{##1}\def\lst@linerange{##2,}}}
+\lst@Key{rangeprefix}\relax{\def\lst@rangebeginprefix{#1}%
+ \def\lst@rangeendprefix{#1}}
+\lst@Key{rangesuffix}\relax{\def\lst@rangebeginsuffix{#1}%
+ \def\lst@rangeendsuffix{#1}}
+\lst@Key{rangebeginprefix}{}{\def\lst@rangebeginprefix{#1}}
+\lst@Key{rangebeginsuffix}{}{\def\lst@rangebeginsuffix{#1}}
+\lst@Key{rangeendprefix}{}{\def\lst@rangeendprefix{#1}}
+\lst@Key{rangeendsuffix}{}{\def\lst@rangeendsuffix{#1}}
+\lst@Key{includerangemarker}{true}[t]{\lstKV@SetIf{#1}\lst@ifincluderangemarker}
+\lst@AddToHook{PreSet}{\def\lst@firstline{1\relax}%
+ \let\lst@linerange\@empty}
+\lst@AddToHook{Init}
+{\ifx\lst@linerange\@empty
+ \edef\lst@linerange{{\lst@firstline}-{\lst@lastline},}%
+ \fi
+ \lst@GetLineInterval}%
+\def\lst@GetLineInterval{\expandafter\lst@GLI\lst@linerange\@nil}
+\def\lst@GLI#1,#2\@nil{\def\lst@linerange{#2}\lst@GLI@#1--\@nil}
+\def\lst@GLI@#1-#2-#3\@nil{%
+ \lst@IfNumber{#1}%
+ {\ifx\@empty#1\@empty
+ \let\lst@firstline\@ne
+ \else
+ \def\lst@firstline{#1\relax}%
+ \fi
+ \ifx\@empty#3\@empty
+ \def\lst@lastline{9999999\relax}%
+ \else
+ \ifx\@empty#2\@empty
+ \let\lst@lastline\lst@firstline
+ \else
+ \def\lst@lastline{#2\relax}%
+ \fi
+ \fi}%
+ {\def\lst@firstline{9999999\relax}%
+ \let\lst@lastline\lst@firstline
+ \let\lst@rangebegin\lst@rangebeginprefix
+ \lst@AddTo\lst@rangebegin{#1}\lst@Extend\lst@rangebegin\lst@rangebeginsuffix
+ \ifx\@empty#3\@empty
+ \let\lst@rangeend\lst@rangeendprefix
+ \lst@AddTo\lst@rangeend{#1}\lst@Extend\lst@rangeend\lst@rangeendsuffix
+ \else
+ \ifx\@empty#2\@empty
+ \let\lst@rangeend\@empty
+ \else
+ \let\lst@rangeend\lst@rangeendprefix
+ \lst@AddTo\lst@rangeend{#2}\lst@Extend\lst@rangeend\lst@rangeendsuffix
+ \fi
+ \fi
+ \global\def\lst@DefRange{\expandafter\lst@CArgX\lst@rangebegin\relax\lst@DefRangeB}%
+ \ifnum\lst@mode=\lst@Pmode \expandafter\lst@DefRange \fi}}
+\lst@AddToHookExe{DeInit}{\global\let\lst@DefRange\@empty}
+\def\lst@DefRangeB#1#2{\lst@DefRangeB@#1#2}
+\def\lst@DefRangeB@#1#2#3#4{%
+ \lst@CDef{#1{#2}{#3}}#4{}%
+ {\lst@ifincluderangemarker
+ \lst@LeaveMode
+ \let#1#4%
+ \lst@DefRangeEnd
+ \lst@InitLstNumber
+ \else
+ \@tempcnta\lst@lineno \advance\@tempcnta\@ne
+ \edef\lst@firstline{\the\@tempcnta\relax}%
+ \gdef\lst@OnceAtEOL{\let#1#4\lst@DefRangeEnd}%
+ \lst@InitLstNumber
+ \fi
+ \global\let\lst@DefRange\lst@DefRangeEnd
+ \lst@CArgEmpty}%
+ \@empty}
+\def\lstpatch@labels{%
+\gdef\lst@SetFirstNumber{%
+ \ifx\lst@firstnumber\@undefined
+ \@tempcnta 0\csname\@lst no@\lst@intname\endcsname\relax
+ \ifnum\@tempcnta=\z@ \else
+ \lst@nololtrue
+ \advance\@tempcnta\lst@advancenumber
+ \edef\lst@firstnumber{\the\@tempcnta\relax}%
+ \fi
+ \fi}%
+}
+\def\lst@InitLstNumber{%
+ \global\c@lstnumber\lst@firstnumber
+ \global\advance\c@lstnumber\lst@advancenumber
+ \global\advance\c@lstnumber-\lst@advancelstnum
+ \ifx \lst@firstnumber\c@lstnumber
+ \global\advance\c@lstnumber-\lst@advancelstnum
+ \fi}
+\def\lst@DefRangeEnd{%
+ \ifx\lst@rangeend\@empty\else
+ \expandafter\lst@CArgX\lst@rangeend\relax\lst@DefRangeE
+ \fi}
+\def\lst@DefRangeE#1#2{\lst@DefRangeE@#1#2}
+\def\lst@DefRangeE@#1#2#3#4{%
+ \lst@CDef{#1#2{#3}}#4{}%
+ {\let#1#4%
+ \edef\lst@lastline{\the\lst@lineno\relax}%
+ \lst@DefRangeE@@}%
+ \@empty}
+\def\lst@DefRangeE@@#1\@empty{%
+ \lst@ifincluderangemarker
+ #1\lst@XPrintToken
+ \fi
+ \lst@LeaveModeToPmode
+ \lst@BeginDropInput{\lst@Pmode}}
+\def\lst@LeaveModeToPmode{%
+ \ifnum\lst@mode=\lst@Pmode
+ \expandafter\lsthk@EndGroup
+ \else
+ \expandafter\egroup\expandafter\lst@LeaveModeToPmode
+ \fi}
+\lst@AddToHook{EOL}{\lst@OnceAtEOL\global\let\lst@OnceAtEOL\@empty}
+\gdef\lst@OnceAtEOL{}% Init
+\def\lst@MSkipToFirst{%
+ \global\advance\lst@lineno\@ne
+ \ifnum \lst@lineno=\lst@firstline
+ \def\lst@next{\lst@LeaveMode \global\lst@newlines\z@
+ \lst@OnceAtEOL \global\let\lst@OnceAtEOL\@empty
+ \lst@InitLstNumber % Added to work with modified \lsthk@PreInit.
+ \lsthk@InitVarsBOL
+ \lst@BOLGobble}%
+ \expandafter\lst@next
+ \fi}
+\def\lst@SkipToFirst{%
+ \ifnum \lst@lineno<\lst@firstline
+ \def\lst@next{\lst@BeginDropInput\lst@Pmode
+ \lst@Let{13}\lst@MSkipToFirst
+ \lst@Let{10}\lst@MSkipToFirst}%
+ \expandafter\lst@next
+ \else
+ \expandafter\lst@BOLGobble
+ \fi}
+\def\lst@IfNumber#1{%
+ \ifx\@empty#1\@empty
+ \let\lst@next\@firstoftwo
+ \else
+ \lst@IfNumber@#1\@nil
+ \fi
+ \lst@next}
+\def\lst@IfNumber@#1#2\@nil{%
+ \let\lst@next\@secondoftwo
+ \ifnum`#1>47\relax \ifnum`#1>57\relax\else
+ \let\lst@next\@firstoftwo
+ \fi\fi}
+\lst@Key{nolol}{false}[t]{\lstKV@SetIf{#1}\lst@ifnolol}
+\def\lst@nololtrue{\let\lst@ifnolol\iftrue}
+\let\lst@ifnolol\iffalse % init
+\lst@Key{captionpos}{t}{\def\lst@captionpos{#1}}
+\lst@Key{abovecaptionskip}\smallskipamount{\def\lst@abovecaption{#1}}
+\lst@Key{belowcaptionskip}\smallskipamount{\def\lst@belowcaption{#1}}
+\lst@Key{label}\relax{\def\lst@label{#1}}
+\lst@Key{title}\relax{\def\lst@title{#1}\let\lst@caption\relax}
+\lst@Key{caption}\relax{\lstKV@OptArg[{#1}]{#1}%
+ {\def\lst@caption{##2}\def\lst@@caption{##1}}%
+ \let\lst@title\@empty}
+\lst@AddToHookExe{TextStyle}
+ {\let\lst@caption\@empty \let\lst@@caption\@empty
+ \let\lst@title\@empty \let\lst@label\@empty}
+\AtBeginDocument{
+ \@ifundefined{thechapter}{\let\lst@ifnumberbychapter\iffalse}{}
+ \lst@ifnumberbychapter
+ \newcounter{lstlisting}[chapter]
+ \gdef\thelstlisting%
+ {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@lstlisting}
+ \else
+ \newcounter{lstlisting}
+ \gdef\thelstlisting{\@arabic\c@lstlisting}
+ \fi}
+\lst@UserCommand\lstlistingname{Listing}
+\lst@Key{numberbychapter}{true}[t]{\lstKV@SetIf{#1}\lst@ifnumberbychapter}
+\@ifundefined{abovecaptionskip}
+{\newskip\abovecaptionskip
+ \newskip\belowcaptionskip}{}
+\@ifundefined{@makecaption}
+{\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1: #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1: #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}%
+}{}
+\def\fnum@lstlisting{%
+ \lstlistingname
+ \ifx\lst@@caption\@empty\else~\thelstlisting\fi}%
+\def\lst@MakeCaption#1{%
+ \lst@ifdisplaystyle
+ \ifx #1t%
+ \ifx\lst@@caption\@empty\expandafter\lst@HRefStepCounter \else
+ \expandafter\refstepcounter
+ \fi {lstlisting}%
+ \ifx\lst@label\@empty\else \label{\lst@label}\fi
+ \let\lst@arg\lst@intname \lst@ReplaceIn\lst@arg\lst@filenamerpl
+ \global\let\lst@name\lst@arg \global\let\lstname\lst@name
+ \lst@ifnolol\else
+ \ifx\lst@@caption\@empty
+ \ifx\lst@caption\@empty
+ \ifx\lst@intname\@empty \else \def\lst@temp{ }%
+ \ifx\lst@intname\lst@temp \else
+ \addcontentsline{lol}{lstlisting}\lst@name
+ \fi\fi
+ \fi
+ \else
+ \addcontentsline{lol}{lstlisting}%
+ {\protect\numberline{\thelstlisting}\lst@@caption}%
+ \fi
+ \fi
+ \fi
+ \ifx\lst@caption\@empty\else
+ \lst@IfSubstring #1\lst@captionpos
+ {\begingroup \let\@@vskip\vskip
+ \def\vskip{\afterassignment\lst@vskip \@tempskipa}%
+ \def\lst@vskip{\nobreak\@@vskip\@tempskipa\nobreak}%
+ \par\@parboxrestore\normalsize\normalfont % \noindent (AS)
+ \ifx #1t\allowbreak \fi
+ \ifx\lst@title\@empty
+ \lst@makecaption\fnum@lstlisting{\ignorespaces \lst@caption}
+ \else
+ \lst@maketitle\lst@title % (AS)
+ \fi
+ \ifx #1b\allowbreak \fi
+ \endgroup}{}%
+ \fi
+ \fi}
+\def\lst@makecaption{\@makecaption}
+\def\lst@maketitle{\@makecaption\lst@title@dropdelim}
+\def\lst@title@dropdelim#1{\ignorespaces}
+\AtBeginDocument{%
+\@ifundefined{captionlabelfalse}{}{%
+ \def\lst@maketitle{\captionlabelfalse\@makecaption\@empty}}%
+\@ifundefined{caption@startrue}{}{%
+ \def\lst@maketitle{\caption@startrue\@makecaption\@empty}}%
+}
+\def\lst@HRefStepCounter#1{%
+ \begingroup
+ \c@lstlisting\lst@neglisting
+ \advance\c@lstlisting\m@ne \xdef\lst@neglisting{\the\c@lstlisting}%
+ \ifx\hyper@refstepcounter\@undefined\else
+ \hyper@refstepcounter{#1}%
+ \fi
+ \endgroup}
+\gdef\lst@neglisting{\z@}% init
+\lst@Key{boxpos}{c}{\def\lst@boxpos{#1}}
+\def\lst@boxtrue{\let\lst@ifbox\iftrue}
+\let\lst@ifbox\iffalse
+\lst@Key{float}\relax[\lst@floatplacement]{%
+ \lstKV@SwitchCases{#1}%
+ {true&\let\lst@floatdefault\lst@floatplacement
+ \let\lst@float\lst@floatdefault\\%
+ false&\let\lst@floatdefault\relax
+ \let\lst@float\lst@floatdefault
+ }{\def\lst@next{\@ifstar{\let\lst@beginfloat\@dblfloat
+ \let\lst@endfloat\end@dblfloat
+ \lst@KFloat}%
+ {\let\lst@beginfloat\@float
+ \let\lst@endfloat\end@float
+ \lst@KFloat}}
+ \edef\lst@float{#1}%
+ \expandafter\lst@next\lst@float\relax}}
+\def\lst@KFloat#1\relax{%
+ \ifx\@empty#1\@empty
+ \let\lst@float\lst@floatplacement
+ \else
+ \def\lst@float{#1}%
+ \fi}
+\lst@Key{floatplacement}{tbp}{\def\lst@floatplacement{#1}}
+\lst@AddToHook{PreSet}{\let\lst@float\lst@floatdefault}
+\lst@AddToHook{TextStyle}{\let\lst@float\relax}
+\let\lst@floatdefault\relax % init
+\lst@AddToHook{DeInit}{%
+ \ifx\lst@float\relax
+ \global\let\lst@doendpe\@doendpe
+ \else
+ \global\let\lst@doendpe\@empty
+ \fi}
+\AtBeginDocument{%
+\@ifundefined{c@float@type}%
+ {\edef\ftype@lstlisting{\ifx\c@figure\@undefined 1\else 4\fi}}
+ {\edef\ftype@lstlisting{\the\c@float@type}%
+ \addtocounter{float@type}{\value{float@type}}}%
+}
+\lst@Key{aboveskip}\medskipamount{\def\lst@aboveskip{#1}}
+\lst@Key{belowskip}\medskipamount{\def\lst@belowskip{#1}}
+\lst@AddToHook{TextStyle}
+ {\let\lst@aboveskip\z@ \let\lst@belowskip\z@}
+\lst@Key{everydisplay}{}{\def\lst@EveryDisplay{#1}}
+\lst@AddToHook{TextStyle}{\let\lst@ifdisplaystyle\iffalse}
+\lst@AddToHook{DisplayStyle}{\let\lst@ifdisplaystyle\iftrue}
+\let\lst@ifdisplaystyle\iffalse
+\def\lst@Init#1{%
+ \begingroup
+ \ifx\lst@float\relax\else
+ \edef\@tempa{\noexpand\lst@beginfloat{lstlisting}[\lst@float]}%
+ \expandafter\@tempa
+ \fi
+ \ifx\lst@multicols\@empty\else
+ \edef\lst@next{\noexpand\multicols{\lst@multicols}}
+ \expandafter\lst@next
+ \fi
+ \ifhmode\ifinner \lst@boxtrue \fi\fi
+ \lst@ifbox
+ \lsthk@BoxUnsafe
+ \hbox to\z@\bgroup
+ $\if t\lst@boxpos \vtop
+ \else \if b\lst@boxpos \vbox
+ \else \vcenter \fi\fi
+ \bgroup \par\noindent
+ \else
+ \lst@ifdisplaystyle
+ \lst@EveryDisplay
+ \par\penalty-50\relax
+ \vspace\lst@aboveskip
+ \fi
+ \fi
+ \normalbaselines
+ \abovecaptionskip\lst@abovecaption\relax
+ \belowcaptionskip\lst@belowcaption\relax
+ \lst@MakeCaption t%
+ \lsthk@PreInit \lsthk@Init
+ \lst@ifdisplaystyle
+ \global\let\lst@ltxlabel\@empty
+ \if@inlabel
+ \lst@ifresetmargins
+ \leavevmode
+ \else
+ \xdef\lst@ltxlabel{\the\everypar}%
+ \lst@AddTo\lst@ltxlabel{%
+ \global\let\lst@ltxlabel\@empty
+ \everypar{\lsthk@EveryLine\lsthk@EveryPar}}%
+ \fi
+ \fi
+ \everypar\expandafter{\lst@ltxlabel
+ \lsthk@EveryLine\lsthk@EveryPar}%
+ \else
+ \everypar{}\let\lst@NewLine\@empty
+ \fi
+ \lsthk@InitVars \lsthk@InitVarsBOL
+ \lst@Let{13}\lst@MProcessListing
+ \let\lst@Backslash#1%
+ \lst@EnterMode{\lst@Pmode}{\lst@SelectCharTable}%
+ \lst@InitFinalize}
+\let\lst@InitFinalize\@empty % init
+\lst@AddToHook{PreInit}
+ {\rightskip\z@ \leftskip\z@ \parfillskip=\z@ plus 1fil
+ \let\par\@@par}
+\lst@AddToHook{EveryLine}{}% init
+\lst@AddToHook{EveryPar}{}% init
+\lst@Key{showlines}f[t]{\lstKV@SetIf{#1}\lst@ifshowlines}
+\def\lst@DeInit{%
+ \lst@XPrintToken \lst@EOLUpdate
+ \global\advance\lst@newlines\m@ne
+ \lst@ifshowlines
+ \lst@DoNewLines
+ \else
+ \setbox\@tempboxa\vbox{\lst@DoNewLines}%
+ \fi
+ \lst@ifdisplaystyle \par\removelastskip \fi
+ \lsthk@ExitVars\everypar{}\lsthk@DeInit\normalbaselines\normalcolor
+ \lst@MakeCaption b%
+ \lst@ifbox
+ \egroup $\hss \egroup
+ \vrule\@width\lst@maxwidth\@height\z@\@depth\z@
+ \else
+ \lst@ifdisplaystyle
+ \par\penalty-50\vspace\lst@belowskip
+ \fi
+ \fi
+ \ifx\lst@multicols\@empty\else
+ \def\lst@next{\global\let\@checkend\@gobble
+ \endmulticols
+ \global\let\@checkend\lst@@checkend}
+ \expandafter\lst@next
+ \fi
+ \ifx\lst@float\relax\else
+ \expandafter\lst@endfloat
+ \fi
+ \endgroup}
+\let\lst@@checkend\@checkend
+\newdimen\lst@maxwidth % \global
+\lst@AddToHook{InitVars}{\global\lst@maxwidth\z@}
+\lst@AddToHook{InitVarsEOL}
+ {\ifdim\lst@currlwidth>\lst@maxwidth
+ \global\lst@maxwidth\lst@currlwidth
+ \fi}
+\def\lst@EOLUpdate{\lsthk@EOL \lsthk@InitVarsEOL}
+\def\lst@MProcessListing{%
+ \lst@XPrintToken \lst@EOLUpdate \lsthk@InitVarsBOL
+ \global\advance\lst@lineno\@ne
+ \ifnum \lst@lineno>\lst@lastline
+ \lst@ifdropinput \lst@LeaveMode \fi
+ \ifx\lst@linerange\@empty
+ \expandafter\expandafter\expandafter\lst@EndProcessListing
+ \else
+ \lst@interrange
+ \lst@GetLineInterval
+ \expandafter\expandafter\expandafter\lst@SkipToFirst
+ \fi
+ \else
+ \expandafter\lst@BOLGobble
+ \fi}
+\let\lst@EndProcessListing\endinput
+\lst@Key{gobble}{0}{\def\lst@gobble{#1}}
+\def\lst@BOLGobble{%
+ \ifnum\lst@gobble>\z@
+ \@tempcnta\lst@gobble\relax
+ \expandafter\lst@BOLGobble@
+\fi}
+\def\lst@BOLGobble@@{%
+ \ifnum\@tempcnta>\z@
+ \expandafter\lst@BOLGobble@
+ \fi}
+\def\lstenv@BOLGobble@@{%
+ \lst@IfNextChars\lstenv@endstring{\lstenv@End}%
+ {\advance\@tempcnta\m@ne \expandafter\lst@BOLGobble@@\lst@eaten}}
+\def\lst@BOLGobble@#1{%
+ \let\lst@next#1%
+ \ifx \lst@next\relax\else
+ \ifx \lst@next\lst@MProcessListing\else
+ \ifx \lst@next\lst@processformfeed\else
+ \ifx \lst@next\lstenv@backslash
+ \let\lst@next\lstenv@BOLGobble@@
+ \else
+ \let\lst@next\lst@BOLGobble@@
+ \ifx #1\lst@processtabulator
+ \advance\@tempcnta-\lst@tabsize\relax
+ \ifnum\@tempcnta<\z@
+ \lst@length-\@tempcnta \lst@PreGotoTabStop
+ \fi
+ \else
+ \advance\@tempcnta\m@ne
+ \fi
+ \fi \fi \fi \fi
+ \lst@next}
+\def\lst@processformfeed{\lst@ProcessFormFeed}
+\def\lst@processtabulator{\lst@ProcessTabulator}
+\lst@Key{name}\relax{\def\lst@intname{#1}}
+\lst@AddToHookExe{PreSet}{\global\let\lst@intname\@empty}
+\lst@AddToHook{PreInit}{%
+ \let\lst@arg\lst@intname \lst@ReplaceIn\lst@arg\lst@filenamerpl
+ \global\let\lst@name\lst@arg \global\let\lstname\lst@name}
+\def\lst@filenamerpl{_\textunderscore $\textdollar -\textendash}
+\def\l@lstlisting#1#2{\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}}
+\lst@UserCommand\lstlistlistingname{Listings}
+\lst@UserCommand\lstlistoflistings{\bgroup
+ \let\contentsname\lstlistlistingname
+ \let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{lol}}%
+ \tableofcontents \egroup}
+\@ifundefined{float@listhead}{}{%
+ \renewcommand*{\lstlistoflistings}{%
+ \begingroup
+ \@ifundefined{@restonecoltrue}{}{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ }%
+ \float@listhead{\lstlistlistingname}%
+ \parskip\z@\parindent\z@\parfillskip \z@ \@plus 1fil%
+ \@starttoc{lol}%
+ \@ifundefined{@restonecoltrue}{}{%
+ \if@restonecol\twocolumn\fi
+ }%
+ \endgroup
+ }%
+}
+\AtBeginDocument{%
+ \@ifundefined{float@addtolists}%
+ {\gdef\float@addtolists#1{\addtocontents{lol}{#1}}}%
+ {\let\orig@float@addtolists\float@addtolists
+ \gdef\float@addtolists#1{%
+ \addtocontents{lol}{#1}%
+ \orig@float@addtolists{#1}}}%
+}%
+\newcommand\lstinline[1][]{%
+ \leavevmode\bgroup % \hbox\bgroup --> \bgroup
+ \def\lst@boxpos{b}%
+ \lsthk@PreSet\lstset{flexiblecolumns,#1}%
+ \lsthk@TextStyle
+ \@ifnextchar\bgroup{\afterassignment\lst@InlineG \let\@let@token}%
+ \lstinline@}
+\def\lstinline@#1{%
+ \lst@Init\relax
+ \lst@IfNextCharActive{\lst@InlineM#1}{\lst@InlineJ#1}}
+\lst@AddToHook{TextStyle}{}% init
+\lst@AddToHook{SelectCharTable}{\lst@inlinechars}
+\global\let\lst@inlinechars\@empty
+\def\lst@InlineM#1{\gdef\lst@inlinechars{%
+ \lst@Def{`#1}{\lst@DeInit\egroup\global\let\lst@inlinechars\@empty}%
+ \lst@Def{13}{\lst@DeInit\egroup \global\let\lst@inlinechars\@empty
+ \PackageError{Listings}{lstinline ended by EOL}\@ehc}}%
+ \lst@inlinechars}
+\def\lst@InlineJ#1{%
+ \def\lst@temp##1#1{%
+ \let\lst@arg\@empty \lst@InsideConvert{##1}\lst@arg
+ \lst@DeInit\egroup}%
+ \lst@temp}
+\def\lst@InlineG{%
+ \lst@Init\relax
+ \lst@IfNextCharActive{\lst@InlineM\}}%
+ {\let\lst@arg\@empty \lst@InlineGJ}}
+\def\lst@InlineGJ{\futurelet\@let@token\lst@InlineGJTest}
+\def\lst@InlineGJTest{%
+ \ifx\@let@token\egroup
+ \afterassignment\lst@InlineGJEnd
+ \expandafter\let\expandafter\@let@token
+ \else
+ \ifx\@let@token\@sptoken
+ \let\lst@next\lst@InlineGJReadSp
+ \else
+ \let\lst@next\lst@InlineGJRead
+ \fi
+ \expandafter\lst@next
+ \fi}
+\def\lst@InlineGJEnd{\lst@arg\lst@DeInit\egroup}
+\def\lst@InlineGJRead#1{%
+ \lccode`\~=`#1\lowercase{\lst@lAddTo\lst@arg~}%
+ \lst@InlineGJ}
+\def\lst@InlineGJReadSp#1{%
+ \lccode`\~=`\ \lowercase{\lst@lAddTo\lst@arg~}%
+ \lst@InlineGJ#1}
+\newcommand\lstMakeShortInline[1][]{%
+ \def\lst@shortinlinedef{\lstinline[#1]}%
+ \lstMakeShortInline@}%
+\def\lstMakeShortInline@#1{%
+ \expandafter\ifx\csname lst@ShortInlineOldCatcode\string#1\endcsname\relax
+ \lst@shortlstinlineinfo{Made }{#1}%
+ \lst@add@special{#1}%
+ \expandafter
+ \xdef\csname lst@ShortInlineOldCatcode\string#1\endcsname{\the\catcode`#1}%
+ \begingroup
+ \catcode`\~\active \lccode`\~`#1%
+ \lowercase{%
+ \global\expandafter\let
+ \csname lst@ShortInlineOldMeaning\string#1\endcsname~%
+ \expandafter\gdef\expandafter~\expandafter{\lst@shortinlinedef#1}}%
+ \endgroup
+ \global\catcode`#1\active
+ \else
+ \PackageError{Listings}%
+ {\string\lstMakeShorterInline\ definitions cannot be nested}%
+ {Use \string\lstDeleteShortInline first.}%
+ {}%
+ \fi}
+\def\lstDeleteShortInline#1{%
+ \expandafter\ifx\csname lst@ShortInlineOldCatcode\string#1\endcsname\relax
+ \PackageError{Listings}%
+ {#1 is not a short reference for \string\lstinline}%
+ {Use \string\lstMakeShortInline first.}%
+ {}%
+ \else
+ \lst@shortlstinlineinfo{Deleted }{#1 as}%
+ \lst@rem@special{#1}%
+ \global\catcode`#1\csname lst@ShortInlineOldCatcode\string#1\endcsname
+ \global \expandafter\let%
+ \csname lst@ShortInlineOldCatcode\string#1\endcsname \relax
+ \ifnum\catcode`#1=\active
+ \begingroup
+ \catcode`\~\active \lccode`\~`#1%
+ \lowercase{%
+ \global\expandafter\let\expandafter~%
+ \csname lst@ShortInlineOldMeaning\string#1\endcsname}%
+ \endgroup
+ \fi
+ \fi}
+\def\lst@shortlstinlineinfo#1#2{%
+ \PackageInfo{Listings}{%
+ #1\string#2 a short reference for \string\lstinline}}
+\def\lst@add@special#1{%
+ \lst@rem@special{#1}%
+ \expandafter\gdef\expandafter\dospecials\expandafter
+ {\dospecials \do #1}%
+ \expandafter\gdef\expandafter\@sanitize\expandafter
+ {\@sanitize \@makeother #1}}
+\def\lst@rem@special#1{%
+ \def\do##1{%
+ \ifnum`#1=`##1 \else \noexpand\do\noexpand##1\fi}%
+ \xdef\dospecials{\dospecials}%
+ \begingroup
+ \def\@makeother##1{%
+ \ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}%
+ \xdef\@sanitize{\@sanitize}%
+ \endgroup}
+\def\lst@MakePath#1{\ifx\@empty#1\@empty\else\lst@MakePath@#1/\@nil/\fi}
+\def\lst@MakePath@#1/{#1/\lst@MakePath@@}
+\def\lst@MakePath@@#1/{%
+ \ifx\@nil#1\expandafter\@gobble
+ \else \ifx\@empty#1\else #1/\fi \fi
+ \lst@MakePath@@}
+\lst@Key{inputpath}{}{\edef\lst@inputpath{\lst@MakePath{#1}}}
+\def\lstinputlisting{%
+ \begingroup \lst@setcatcodes \lst@inputlisting}
+\newcommand\lst@inputlisting[2][]{%
+ \endgroup
+ \def\lst@set{#1}%
+ \IfFileExists{\lst@inputpath#2}%
+ {\expandafter\lst@InputListing\expandafter{\lst@inputpath#2}}%
+ {\filename@parse{\lst@inputpath#2}%
+ \edef\reserved@a{\noexpand\lst@MissingFileError
+ {\filename@area\filename@base}%
+ {\ifx\filename@ext\relax tex\else\filename@ext\fi}}%
+ \reserved@a}%
+ \lst@doendpe \@newlistfalse \ignorespaces}
+\def\lst@MissingFileError#1#2{%
+ \typeout{^^J! Package Listings Error: File `#1(.#2)' not found.^^J%
+ ^^JType X to quit or <RETURN> to proceed,^^J%
+ or enter new name. (Default extension: #2)^^J}%
+ \message{Enter file name: }%
+ {\endlinechar\m@ne \global\read\m@ne to\@gtempa}%
+ \ifx\@gtempa\@empty \else
+ \def\reserved@a{x}\ifx\reserved@a\@gtempa\batchmode\@@end\fi
+ \def\reserved@a{X}\ifx\reserved@a\@gtempa\batchmode\@@end\fi
+ \filename@parse\@gtempa
+ \edef\filename@ext{%
+ \ifx\filename@ext\relax#2\else\filename@ext\fi}%
+ \edef\reserved@a{\noexpand\IfFileExists %
+ {\filename@area\filename@base.\filename@ext}%
+ {\noexpand\lst@InputListing %
+ {\filename@area\filename@base.\filename@ext}}%
+ {\noexpand\lst@MissingFileError
+ {\filename@area\filename@base}{\filename@ext}}}%
+ \expandafter\reserved@a %
+ \fi}
+\let\lst@ifdraft\iffalse
+\DeclareOption{draft}{\let\lst@ifdraft\iftrue}
+\DeclareOption{final}{\let\lst@ifdraft\iffalse}
+\lst@AddToHook{PreSet}
+ {\lst@ifdraft
+ \let\lst@ifprint\iffalse
+ \@gobbletwo\fi\fi
+ \fi}
+\def\lst@InputListing#1{%
+ \begingroup
+ \lsthk@PreSet \gdef\lst@intname{#1}%
+ \expandafter\lstset\expandafter{\lst@set}%
+ \lsthk@DisplayStyle
+ \catcode\active=\active
+ \lst@Init\relax \let\lst@gobble\z@
+ \lst@SkipToFirst
+ \lst@ifprint \def\lst@next{\input{#1}}%
+ \else \let\lst@next\@empty \fi
+ \lst@next
+ \lst@DeInit
+ \endgroup}
+\def\lst@SkipToFirst{%
+ \ifnum \lst@lineno<\lst@firstline
+ \lst@BeginDropInput\lst@Pmode
+ \lst@Let{13}\lst@MSkipToFirst
+ \lst@Let{10}\lst@MSkipToFirst
+ \else
+ \expandafter\lst@BOLGobble
+ \fi}
+\def\lst@MSkipToFirst{%
+ \global\advance\lst@lineno\@ne
+ \ifnum \lst@lineno=\lst@firstline
+ \lst@LeaveMode \global\lst@newlines\z@
+ \lsthk@InitVarsBOL
+ \expandafter\lst@BOLGobble
+ \fi}
+\def\lstenv@DroppedWarning{%
+ \ifx\lst@dropped\@undefined\else
+ \PackageWarning{Listings}{Text dropped after begin of listing}%
+ \fi}
+\let\lst@dropped\@undefined % init
+\begingroup \lccode`\~=`\^^M\lowercase{%
+\gdef\lstenv@Process#1{%
+ \ifx~#1%
+ \lstenv@DroppedWarning \let\lst@next\lst@SkipToFirst
+ \else\ifx^^J#1%
+ \lstenv@DroppedWarning \let\lst@next\lstenv@ProcessJ
+ \else
+ \let\lst@dropped#1\let\lst@next\lstenv@Process
+ \fi \fi
+ \lst@next}
+}\endgroup
+\def\lstenv@ProcessJ{%
+ \let\lst@arg\@empty
+ \ifx\@currenvir\lstenv@name
+ \expandafter\lstenv@ProcessJEnv
+ \else
+ \expandafter\def\expandafter\lst@temp\expandafter##1%
+ \csname end\lstenv@name\endcsname
+ {\lst@InsideConvert{##1}\lstenv@ProcessJ@}%
+ \expandafter\lst@temp
+ \fi}
+\begingroup \lccode`\~=`\\\lowercase{%
+\gdef\lstenv@ProcessJ@{%
+ \lst@lExtend\lst@arg
+ {\expandafter\ \expandafter~\lstenv@endstring}%
+ \catcode10=\active \lst@Let{10}\lst@MProcessListing
+ \lst@SkipToFirst \lst@arg}
+}\endgroup
+\def\lstenv@ProcessJEnv#1\end#2{\def\lst@temp{#2}%
+ \ifx\lstenv@name\lst@temp
+ \lst@InsideConvert{#1}%
+ \expandafter\lstenv@ProcessJ@
+ \else
+ \lst@InsideConvert{#1\\end\{#2\}}%
+ \expandafter\lstenv@ProcessJEnv
+ \fi}
+\def\lstenv@backslash{%
+ \lst@IfNextChars\lstenv@endstring
+ {\lstenv@End}%
+ {\expandafter\lsts@backslash \lst@eaten}}%
+\def\lstenv@End{%
+ \ifx\@currenvir\lstenv@name
+ \edef\lst@next{\noexpand\end{\lstenv@name}}%
+ \else
+ \def\lst@next{\csname end\lstenv@name\endcsname}%
+ \fi
+ \lst@next}
+\lst@UserCommand\lstnewenvironment#1#2#{%
+ \@ifundefined{#1}%
+ {\let\lst@arg\@empty
+ \lst@XConvert{#1}\@nil
+ \expandafter\lstnewenvironment@\lst@arg{#1}{#2}}%
+ {\PackageError{Listings}{Environment `#1' already defined}\@eha
+ \@gobbletwo}}
+\def\@tempa#1#2#3{%
+\gdef\lstnewenvironment@##1##2##3##4##5{%
+ \begingroup
+ \global\@namedef{end##2}{\lstenv@Error{##2}}%
+ \global\@namedef{##2}{\def\lstenv@name{##2}%
+ \begingroup \lst@setcatcodes \catcode\active=\active
+ \csname##2@\endcsname}%
+ \let\l@ngrel@x\global
+ \let\@xargdef\lstenv@xargdef
+ \expandafter\new@command\csname##2@\endcsname##3%
+ {\lsthk@PreSet ##4%
+ \ifx\@currenvir\lstenv@name
+ \def\lstenv@endstring{#1#2##1#3}%
+ \else
+ \def\lstenv@endstring{#1##1}%
+ \fi
+ \@namedef{end##2}{\lst@DeInit ##5\endgroup
+ \lst@doendpe \@ignoretrue}%
+ \lsthk@DisplayStyle
+ \let\lst@EndProcessListing\lstenv@SkipToEnd
+ \lst@Init\lstenv@backslash
+ \lst@ifprint
+ \expandafter\expandafter\expandafter\lstenv@Process
+ \else
+ \expandafter\lstenv@SkipToEnd
+ \fi
+ \lst@insertargs}%
+ \endgroup}%
+}
+\let\lst@arg\@empty \lst@XConvert{end}\{\}\@nil
+\expandafter\@tempa\lst@arg
+\let\lst@insertargs\@empty
+\def\lstenv@xargdef#1{
+ \expandafter\lstenv@xargdef@\csname\string#1\endcsname#1}
+\def\lstenv@xargdef@#1#2[#3][#4]#5{%
+ \@ifdefinable#2{%
+ \gdef#2{%
+ \ifx\protect\@typeset@protect
+ \expandafter\lstenv@testopt
+ \else
+ \@x@protect#2%
+ \fi
+ #1%
+ {#4}}%
+ \@yargdef
+ #1%
+ \tw@
+ {#3}%
+ {#5}}}
+\long\def\lstenv@testopt#1#2{%
+ \@ifnextchar[{\catcode\active5\relax \lstenv@testopt@#1}%
+ {#1[{#2}]}}
+\def\lstenv@testopt@#1[#2]{%
+ \catcode\active\active
+ #1[#2]}
+\begingroup \lccode`\~=`\\\lowercase{%
+\gdef\lstenv@SkipToEnd{%
+ \long\expandafter\def\expandafter\lst@temp\expandafter##\expandafter
+ 1\expandafter~\lstenv@endstring{\lstenv@End}%
+ \lst@temp}
+}\endgroup
+\def\lstenv@Error#1{\PackageError{Listings}{Extra \string\end#1}%
+ {I'm ignoring this, since I wasn't doing a \csname#1\endcsname.}}
+\begingroup \lccode`\~=`\^^M\lowercase{%
+\gdef\lst@TestEOLChar#1{%
+ \def\lst@insertargs{#1}%
+ \ifx ~#1\@empty \else
+ \ifx^^J#1\@empty \else
+ \global\let\lst@intname\lst@insertargs
+ \let\lst@insertargs\@empty
+ \fi \fi}
+}\endgroup
+\lstnewenvironment{lstlisting}[2][]
+ {\lst@TestEOLChar{#2}%
+ \lstset{#1}%
+ \csname\@lst @SetFirstNumber\endcsname}
+ {\csname\@lst @SaveFirstNumber\endcsname}
+\lst@Key{fancyvrb}\relax[t]{%
+ \lstKV@SetIf{#1}\lst@iffancyvrb
+ \lstFV@fancyvrb}
+\ifx\lstFV@fancyvrb\@undefined
+ \gdef\lstFV@fancyvrb{\lst@RequireAspects{fancyvrb}\lstFV@fancyvrb}
+\fi
+\@ifundefined{ocp}{}
+ {\lst@AddToHook{OutputBox}%
+ {\let\lst@ProcessLetter\@firstofone
+ \let\lst@ProcessDigit\@firstofone
+ \let\lst@ProcessOther\@firstofone}}
+\DeclareOption*{\expandafter\lst@ProcessOption\CurrentOption\relax}
+\def\lst@ProcessOption#1#2\relax{%
+ \ifx #1!%
+ \lst@DeleteKeysIn\lst@loadaspects{#2}%
+ \else
+ \lst@lAddTo\lst@loadaspects{,#1#2}%
+ \fi}
+\@ifundefined{lst@loadaspects}
+ {\def\lst@loadaspects{strings,comments,escape,style,language,%
+ keywords,labels,lineshape,frames,emph,index}%
+ }{}
+%\InputIfFileExists{lstpatch.sty}{}{}
+\let\lst@ifsavemem\iffalse
+\DeclareOption{savemem}{\let\lst@ifsavemem\iftrue}
+\DeclareOption{noaspects}{\let\lst@loadaspects\@empty}
+\ProcessOptions
+\lst@RequireAspects\lst@loadaspects
+\let\lst@loadaspects\@empty
+\lst@UseHook{SetStyle}\lst@UseHook{EmptyStyle}
+\lst@UseHook{SetLanguage}\lst@UseHook{EmptyLanguage}
+\InputIfFileExists{listings.cfg}{}{}
+\InputIfFileExists{lstlocal.cfg}{}{}
+\endinput
+%%
+%% End of file `listings.sty'. \ No newline at end of file
diff --git a/vu-cs-standard-thesis/natbib.sty b/vu-cs-standard-thesis/natbib.sty
new file mode 100644
index 0000000..c3c926c
--- /dev/null
+++ b/vu-cs-standard-thesis/natbib.sty
@@ -0,0 +1,724 @@
+%%
+%% This is file `natbib.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% natbib.dtx (with options: `package,all')
+%%
+%% Full documentation can be obtained by LaTeXing the source file:
+%% natbib.dtx.
+%%
+%% Only a few abbreviated comments remain here to describe the usage.
+%%
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+\ProvidesPackage{natbib}
+ [1998/07/14 6.8c (PWD)]
+%%-------------------------------------------------------------------
+%% NOTICE:
+%% This file may be used for non-profit purposes.
+%% It may not be distributed in exchange for money,
+%% other than distribution costs.
+%%
+%% The author provides it `as is' and does not guarantee it in any way.
+%%
+%% Natbib coding copyright (C) 1994--1998 Patrick W. Daly
+%% Max-Planck-Institut f\"ur Aeronomie
+%% Max-Planck-Str. 2
+%% D-37191 Katlenburg-Lindau
+%% Germany
+%%
+%% E-mail: daly@linmpi.mpg.de
+%%-----------------------------------------------------------
+ % This package reimplements the LaTeX \cite command to be used for various
+ % citation styles, both author-year and numerical. It accepts BibTeX
+ % output intended for many other packages, and therefore acts as a
+ % general, all-purpose citation-style interface.
+ %
+ % With standard numerical .bst files, only numerical citations are
+ % possible. With an author-year .bst file, both numerical and
+ % author-year citations are possible.
+ %
+ % If author-year citations are selected, \bibitem must have one of the
+ % following forms:
+ % \bibitem[Jones et al.(1990)]{key}...
+ % \bibitem[Jones et al.(1990)Jones, Baker, and Williams]{key}...
+ % \bibitem[Jones et al., 1990]{key}...
+ % \bibitem[\protect\citeauthoryear{Jones, Baker, and Williams}{Jones
+ % et al.}{1990}]{key}...
+ % \bibitem[\protect\citeauthoryear{Jones et al.}{1990}]{key}...
+ % \bibitem[\protect\astroncite{Jones et al.}{1990}]{key}...
+ % \bibitem[\protect\citename{Jones et al., }1990]{key}...
+ % \harvarditem[Jones et al.]{Jones, Baker, and Williams}{1990}{key}...
+ %
+ % This is either to be made up manually, or to be generated by an
+ % appropriate .bst file with BibTeX.
+ % Author-year mode || Numerical mode
+ % Then, \citet{key} ==>> Jones et al. (1990) || Jones et al. [21]
+ % \citep{key} ==>> (Jones et al., 1990) || [21]
+ % Multiple citations as normal:
+ % \citep{key1,key2} ==>> (Jones et al., 1990; Smith, 1989) || [21,24]
+ % or (Jones et al., 1990, 1991) || [21,24]
+ % or (Jones et al., 1990a,b) || [21,24]
+ % \cite{key} is the equivalent of \citet{key} in author-year mode
+ % and of \citep{key} in numerical mode
+ % Full author lists may be forced with \citet* or \citep*, e.g.
+ % \citep*{key} ==>> (Jones, Baker, and Williams, 1990)
+ % Optional notes as:
+ % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
+ % \citep[e.g.,][]{key} ==>> (e.g., Jones et al., 1990)
+ % \citep[see][pg. 34]{key}==>> (see Jones et al., 1990, pg. 34)
+ % (Note: in standard LaTeX, only one note is allowed, after the ref.
+ % Here, one note is like the standard, two make pre- and post-notes.)
+ % \citealt{key} ==>> Jones et al. 1990
+ % \citealt*{key} ==>> Jones, Baker, and Williams 1990
+ % \citealp{key} ==>> Jones et al., 1990
+ % \citealp*{key} ==>> Jones, Baker, and Williams, 1990
+ % Additional citation possibilities (both author-year and numerical modes)
+ % \citeauthor{key} ==>> Jones et al.
+ % \citeauthor*{key} ==>> Jones, Baker, and Williams
+ % \citeyear{key} ==>> 1990
+ % \citeyearpar{key} ==>> (1990)
+ % \citetext{priv. comm.} ==>> (priv. comm.)
+ % Note: full author lists depends on whether the bib style supports them;
+ % if not, the abbreviated list is printed even when full requested.
+ %
+ % Defining the citation style of a given bib style:
+ % Use \bibpunct (in the preamble only) with 6 mandatory arguments:
+ % 1. opening bracket for citation
+ % 2. closing bracket
+ % 3. citation separator (for multiple citations in one \cite)
+ % 4. the letter n for numerical styles, s for superscripts
+ % else anything for author-year
+ % 5. punctuation between authors and date
+ % 6. punctuation between years (or numbers) when common authors missing
+ % One optional argument is the character coming before post-notes. It
+ % appears in square braces before all other arguments. May be left off.
+ % Example (and default) \bibpunct[,]{(}{)}{;}{a}{,}{,}
+ %
+ % To make this automatic for a given bib style, named newbib, say, make
+ % a local configuration file, natbib.cfg, with the definition
+ % \newcommand{\bibstyle@newbib}{\bibpunct...}
+ % Then the \bibliographystyle{newbib} will cause \bibstyle@newbib to
+ % be called on THE NEXT LATEX RUN (via the aux file).
+ %
+ % Such preprogrammed definitions may be invoked in the text (preamble only)
+ % by calling \citestyle{newbib}. This is only useful if the style specified
+ % differs from that in \bibliographystyle.
+ %
+ % With \citeindextrue and \citeindexfalse, one can control whether the
+ % \cite commands make an automatic entry of the citation in the .idx
+ % indexing file. For this, \makeindex must also be given in the preamble.
+ %
+ % LaTeX2e Options: (for selecting punctuation)
+ % round - round parentheses are used (default)
+ % square - square brackets are used [option]
+ % curly - curly braces are used {option}
+ % angle - angle brackets are used <option>
+ % colon - multiple citations separated by colon (default)
+ % comma - separated by comma
+ % authoryear - selects author-year citations (default)
+ % numbers- selects numerical citations
+ % super - numerical citations as superscripts
+ % sort - sorts multiple citations according to order in ref. list
+ % sort&compress - like sort, but also compresses numerical citations
+ % longnamesfirst - makes first citation full author list
+ % sectionbib - puts bibliography in a \section* instead of \chapter*
+ % Punctuation so selected dominates over any predefined ones.
+ % LaTeX2e options are called as, e.g.
+ % \usepackage[square,comma]{natbib}
+ % LaTeX the source file natbib.dtx to obtain more details
+ % or the file natnotes.tex for a brief reference sheet.
+ %-----------------------------------------------------------
+\@ifclassloaded{aguplus}{\PackageError{natbib}
+ {The aguplus class already includes natbib coding,\MessageBreak
+ so you should not add it explicitly}
+ {Type <Return> for now, but then later remove\MessageBreak
+ the command \protect\usepackage{natbib} from the document}
+ \endinput}{}
+\@ifclassloaded{nlinproc}{\PackageError{natbib}
+ {The nlinproc class already includes natbib coding,\MessageBreak
+ so you should not add it explicitly}
+ {Type <Return> for now, but then later remove\MessageBreak
+ the command \protect\usepackage{natbib} from the document}
+ \endinput}{}
+\@ifclassloaded{egs}{\PackageError{natbib}
+ {The egs class already includes natbib coding,\MessageBreak
+ so you should not add it explicitly}
+ {Type <Return> for now, but then later remove\MessageBreak
+ the command \protect\usepackage{natbib} from the document}
+ \endinput}{}
+ % Define citation punctuation for some author-year styles
+ % One may add and delete at this point
+ % Or put additions into local configuration file natbib.cfg
+\newcommand\bibstyle@chicago{\bibpunct{(}{)}{;}{a}{,}{,}}
+\newcommand\bibstyle@named{\bibpunct{[}{]}{;}{a}{,}{,}}
+\newcommand\bibstyle@agu{\bibpunct{[}{]}{;}{a}{,}{,~}}%Amer. Geophys. Union
+\newcommand\bibstyle@egs{\bibpunct{(}{)}{;}{a}{,}{,}}%Eur. Geophys. Soc.
+\newcommand\bibstyle@agsm{\bibpunct{(}{)}{,}{a}{}{,}\gdef\harvardand{\&}}
+\newcommand\bibstyle@kluwer{\bibpunct{(}{)}{,}{a}{}{,}\gdef\harvardand{\&}}
+\newcommand\bibstyle@dcu{\bibpunct{(}{)}{;}{a}{;}{,}\gdef\harvardand{and}}
+\newcommand\bibstyle@aa{\bibpunct{(}{)}{;}{a}{}{,}} %Astronomy & Astrophysics
+\newcommand\bibstyle@pass{\bibpunct{(}{)}{;}{a}{,}{,}}%Planet. & Space Sci
+\newcommand\bibstyle@anngeo{\bibpunct{(}{)}{;}{a}{,}{,}}%Annales Geophysicae
+\newcommand\bibstyle@nlinproc{\bibpunct{(}{)}{;}{a}{,}{,}}%Nonlin.Proc.Geophys.
+ % Define citation punctuation for some numerical styles
+\newcommand\bibstyle@cospar{\bibpunct{/}{/}{,}{n}{}{}%
+ \gdef\NAT@biblabelnum##1{##1.}}
+\newcommand\bibstyle@esa{\bibpunct{(}{)}{,}{n}{}{}%
+ \gdef\NAT@biblabelnum##1{##1.\hspace{1em}}%
+ \gdef\NAT@citenum##1##2##3{\NAT@@open \if\relax##2\relax\else
+ ##2\ \fi Ref.~##1\if\relax##3\relax\else\NAT@cmt\
+ ##3\fi\NAT@@close\endgroup}}
+\newcommand\bibstyle@nature{\bibpunct{}{}{,}{s}{}{\textsuperscript{,}}%
+ \gdef\NAT@biblabelnum##1{##1.}}
+ % The standard LaTeX styles
+\newcommand\bibstyle@plain{\bibpunct{[}{]}{,}{n}{}{,}}
+\let\bibstyle@alpha=\bibstyle@plain
+\let\bibstyle@abbrv=\bibstyle@plain
+\let\bibstyle@unsrt=\bibstyle@plain
+ % The author-year modifications of the standard styles
+\newcommand\bibstyle@plainnat{\bibpunct{[}{]}{,}{a}{,}{,}}
+\let\bibstyle@abbrvnat=\bibstyle@plainnat
+\let\bibstyle@unsrtnat=\bibstyle@plainnat
+\newif\ifNAT@numbers \NAT@numbersfalse
+\newif\ifNAT@super \NAT@superfalse
+\DeclareOption{numbers}{\NAT@numberstrue
+ \ExecuteOptions{square,comma,nobibstyle}}
+\DeclareOption{super}{\NAT@supertrue\NAT@numberstrue
+ \ExecuteOptions{nobibstyle}}
+\DeclareOption{authoryear}{\NAT@numbersfalse
+ \ExecuteOptions{round,colon,bibstyle}}
+\DeclareOption{round}{%
+ \renewcommand\NAT@open{(} \renewcommand\NAT@close{)}
+ \ExecuteOptions{nobibstyle}}
+\DeclareOption{square}{%
+ \renewcommand\NAT@open{[} \renewcommand\NAT@close{]}
+ \ExecuteOptions{nobibstyle}}
+\DeclareOption{angle}{%
+ \renewcommand\NAT@open{$<$} \renewcommand\NAT@close{$>$}
+ \ExecuteOptions{nobibstyle}}
+\DeclareOption{curly}{%
+ \renewcommand\NAT@open{\{} \renewcommand\NAT@close{\}}
+ \ExecuteOptions{nobibstyle}}
+\DeclareOption{comma}{\renewcommand\NAT@sep{,}
+ \ExecuteOptions{nobibstyle}}
+\DeclareOption{colon}{\renewcommand\NAT@sep{;}
+ \ExecuteOptions{nobibstyle}}
+\DeclareOption{nobibstyle}{\let\bibstyle=\@gobble}
+\DeclareOption{bibstyle}{\let\bibstyle=\@citestyle}
+\newif\ifNAT@openbib \NAT@openbibfalse
+\DeclareOption{openbib}{\NAT@openbibtrue}
+\DeclareOption{sectionbib}{\def\NAT@sectionbib{on}}
+\def\NAT@sort{0}
+\DeclareOption{sort}{\def\NAT@sort{1}}
+\DeclareOption{sort&compress}{\def\NAT@sort{2}}
+\@ifpackageloaded{cite}{\PackageWarningNoLine{natbib}
+ {The `cite' package should not be used\MessageBreak
+ with natbib. Use option `sort' instead}\ExecuteOptions{sort}}{}
+\newif\ifNAT@longnames\NAT@longnamesfalse
+\DeclareOption{longnamesfirst}{\NAT@longnamestrue}
+\DeclareOption{nonamebreak}{\def\NAT@nmfmt#1{\mbox{#1}}}
+\def\NAT@nmfmt#1{{#1}}
+\renewcommand\bibstyle[1]{\@ifundefined{bibstyle@#1}{\relax}
+ {\csname bibstyle@#1\endcsname}}
+\AtBeginDocument{\global\let\bibstyle=\@gobble}
+\let\@citestyle\bibstyle
+\newcommand\citestyle[1]{\@citestyle{#1}\let\bibstyle\@gobble}
+\@onlypreamble{\citestyle}\@onlypreamble{\@citestyle}
+\newcommand\bibpunct[7][,]%
+ {\gdef\NAT@open{#2}\gdef\NAT@close{#3}\gdef
+ \NAT@sep{#4}\global\NAT@numbersfalse\ifx #5n\global\NAT@numberstrue
+ \else
+ \ifx #5s\global\NAT@numberstrue\global\NAT@supertrue
+ \fi\fi
+ \gdef\NAT@aysep{#6}\gdef\NAT@yrsep{#7}%
+ \gdef\NAT@cmt{#1}%
+ \global\let\bibstyle\@gobble
+ }
+\@onlypreamble{\bibpunct}
+\newcommand\NAT@open{(} \newcommand\NAT@close{)}
+\newcommand\NAT@sep{;}
+\ProcessOptions
+\newcommand\NAT@aysep{,} \newcommand\NAT@yrsep{,}
+\newcommand\NAT@cmt{,}
+\newcommand\NAT@cite%
+ [3]{\ifNAT@swa\NAT@@open\if\relax#2\relax\else#2\ \fi
+ #1\if\relax#3\relax\else\NAT@cmt\ #3\fi\NAT@@close\else#1\fi\endgroup}
+\newcommand\NAT@citenum%
+ [3]{\ifNAT@swa\NAT@@open\if\relax#2\relax\else#2\ \fi
+ #1\if\relax#3\relax\else\NAT@cmt\ #3\fi\NAT@@close\else#1\fi\endgroup}
+\newcommand\NAT@citesuper[3]{\ifNAT@swa
+\unskip\hspace{1\p@}\textsuperscript{#1}%
+ \if\relax#3\relax\else\ (#3)\fi\else #1\fi\endgroup}
+\providecommand
+ \textsuperscript[1]{\mbox{$^{\mbox{\scriptsize#1}}$}}
+\providecommand\@firstofone[1]{#1}
+\newcommand\NAT@citexnum{}
+\def\NAT@citexnum[#1][#2]#3{%
+ \NAT@sort@cites{#3}%
+ \let\@citea\@empty
+ \@cite{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty
+ \@for\@citeb:=\NAT@cite@list\do
+ {\edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+ \@ifundefined{b@\@citeb\@extra@b@citeb}{%
+ {\reset@font\bfseries?}
+ \NAT@citeundefined\PackageWarning{natbib}%
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+ {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm
+ \NAT@parse{\@citeb}%
+ \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
+ \let\NAT@name=\NAT@all@names
+ \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
+ \fi
+ \ifNAT@full\let\NAT@nm\NAT@all@names\else
+ \let\NAT@nm\NAT@name\fi
+ \ifNAT@swa
+ \ifnum\NAT@ctype=2\relax\@citea
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@test{2}\hyper@natlinkend\else
+ \ifnum\NAT@sort>1
+ \begingroup\catcode`\_=8
+ \ifcat _\ifnum\z@<0\NAT@num _\else A\fi
+ \global\let\NAT@nm=\NAT@num \else \gdef\NAT@nm{-2}\fi
+ \ifcat _\ifnum\z@<0\NAT@last@num _\else A\fi
+ \global\@tempcnta=\NAT@last@num \global\advance\@tempcnta by\@ne
+ \else \global\@tempcnta\m@ne\fi
+ \endgroup
+ \ifnum\NAT@nm=\@tempcnta
+ \ifx\NAT@last@yr\relax
+ \edef\NAT@last@yr{\@citea \mbox{\NAT@num}}%
+ \else
+ \edef\NAT@last@yr{--\penalty\@m\mbox{\NAT@num}}%
+ \fi
+ \else
+ \NAT@last@yr \@citea \mbox{\NAT@num}%
+ \let\NAT@last@yr\relax
+ \fi
+ \else
+ \@citea \mbox{\hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@num
+ \hyper@natlinkend}%
+ \fi
+ \fi
+ \def\@citea{\NAT@sep\penalty\@m\NAT@space}%
+ \else
+ \ifcase\NAT@ctype\relax
+ \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\penalty\@m\NAT@space\else
+ \@citea \NAT@test{1}\ \NAT@@open
+ \if\relax#1\relax\else#1\ \fi\fi \NAT@mbox{%
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@num\hyper@natlinkend}%
+ \def\@citea{\NAT@@close\NAT@sep\penalty\@m\ }%
+ \or\@citea
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@test{1}\hyper@natlinkend
+ \def\@citea{\NAT@sep\penalty\@m\ }%
+ \or\@citea
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@test{2}%
+ \hyper@natlinkend
+ \def\@citea{\NAT@sep\penalty\@m\ }%
+ \fi
+ \fi
+ }}%
+ \ifnum\NAT@sort>1\NAT@last@yr\fi
+ \ifNAT@swa\else\ifnum\NAT@ctype=0\if\relax#2\relax\else
+ \NAT@cmt\ #2\fi \NAT@@close\fi\fi}{#1}{#2}}
+\newcommand\NAT@test[1]{\ifnum#1=1 \ifx\NAT@nm\NAT@noname
+ {\reset@font\bfseries(author?)}\PackageWarning{natbib}
+ {Author undefined for citation`\@citeb'
+ \MessageBreak
+ on page \thepage}\else \NAT@nm \fi
+ \else \if\relax\NAT@date\relax
+ {\reset@font\bfseries(year?)}\PackageWarning{natbib}
+ {Year undefined for citation`\@citeb'
+ \MessageBreak
+ on page \thepage}\else \NAT@date \fi \fi}
+\newcommand\NAT@citex{}
+\def\NAT@citex%
+ [#1][#2]#3{%
+ \NAT@sort@cites{#3}%
+ \let\@citea\@empty
+ \@cite{\let\NAT@nm\@empty\let\NAT@year\@empty
+ \@for\@citeb:=\NAT@cite@list\do
+ {\edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+ \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea%
+ {\reset@font\bfseries ?}\NAT@citeundefined
+ \PackageWarning{natbib}%
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+ {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year
+ \NAT@parse{\@citeb}%
+ \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
+ \let\NAT@name=\NAT@all@names
+ \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
+ \fi
+ \ifNAT@full\let\NAT@nm\NAT@all@names\else
+ \let\NAT@nm\NAT@name\fi
+ \ifNAT@swa\ifcase\NAT@ctype
+ \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
+ \ifx\NAT@last@yr\NAT@year
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab
+ \hyper@natlinkend
+ \else\unskip\
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
+ \hyper@natlinkend
+ \fi
+ \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@nmfmt{\NAT@nm}%
+ \hyper@natlinkbreak{\NAT@aysep\ }{\@citeb\@extra@b@citeb}%
+ \NAT@date\hyper@natlinkend
+ \fi
+ \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+ \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@date\hyper@natlinkend
+ \fi \def\@citea{\NAT@sep\ }%
+ \else\ifcase\NAT@ctype
+ \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
+ \ifx\NAT@last@yr\NAT@year
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab
+ \hyper@natlinkend
+ \else\unskip\
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
+ \hyper@natlinkend
+ \fi
+ \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@nmfmt{\NAT@nm}%
+ \hyper@natlinkbreak{\ \NAT@@open\if\relax#1\relax\else#1\ \fi}%
+ {\@citeb\@extra@b@citeb}%
+ \NAT@date\hyper@natlinkend\fi
+ \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+ \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@date\hyper@natlinkend\fi \def\@citea{\NAT@@close\NAT@sep\ }%
+ \fi
+ }}\ifNAT@swa\else\if\relax#2\relax\else\NAT@cmt\ #2\fi
+ \NAT@@close\fi}{#1}{#2}}
+\newif\ifNAT@par \NAT@partrue
+\newcommand\NAT@@open{\ifNAT@par\NAT@open\fi}
+\newcommand\NAT@@close{\ifNAT@par\NAT@close\fi}
+\newcommand\shortcites[1]{%
+ \@bsphack\@for\@citeb:=#1\do
+ {\edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}\@esphack}
+\newcommand\NAT@biblabel[1]{\hfill}
+\newcommand\NAT@biblabelnum[1]{[#1]}
+\def\@tempa#1{[#1]}
+\ifx\@tempa\@biblabel\let\@biblabel\@empty\fi
+\newcommand\NAT@bibsetnum[1]{\settowidth\labelwidth{\@biblabel{#1}}%
+ \setlength{\leftmargin}{\labelwidth}\addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}%
+ \ifNAT@openbib
+ \addtolength{\leftmargin}{\bibindent}%
+ \setlength{\itemindent}{-\bibindent}%
+ \setlength{\listparindent}{\itemindent}%
+ \setlength{\parsep}{0pt}%
+ \fi
+}
+\newlength{\bibhang}
+\setlength{\bibhang}{1em}
+\newlength{\bibsep}
+{\@listi \global\bibsep\itemsep \global\advance\bibsep by\parsep}
+
+\newcommand\NAT@bibsetup%
+ [1]{\setlength{\leftmargin}{\bibhang}\setlength{\itemindent}{-\leftmargin}%
+ \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}}
+\newcommand\NAT@set@cites{\ifNAT@numbers
+ \ifNAT@super \let\@cite\NAT@citesuper
+ \def\NAT@mbox##1{\unskip\nobreak\hspace{1\p@}\textsuperscript{##1}}%
+ \let\citeyearpar=\citeyear
+ \let\NAT@space\relax\else
+ \let\NAT@mbox=\mbox
+ \let\@cite\NAT@citenum \def\NAT@space{ }\fi
+ \let\@citex\NAT@citexnum
+ \ifx\@biblabel\@empty\let\@biblabel\NAT@biblabelnum\fi
+ \let\@bibsetup\NAT@bibsetnum
+ \def\natexlab##1{}%
+ \else
+ \let\@cite\NAT@cite
+ \let\@citex\NAT@citex
+ \let\@biblabel\NAT@biblabel
+ \let\@bibsetup\NAT@bibsetup
+ \def\natexlab##1{##1}%
+ \fi}
+\AtBeginDocument{\NAT@set@cites}
+\AtBeginDocument{\ifx\SK@def\@undefined\else
+\ifx\SK@cite\@empty\else
+ \SK@def\@citex[#1][#2]#3{\SK@\SK@@ref{#3}\SK@@citex[#1][#2]{#3}}\fi
+\ifx\SK@citeauthor\@undefined\def\HAR@checkdef{}\else
+ \let\citeauthor\SK@citeauthor
+ \let\citefullauthor\SK@citefullauthor
+ \let\citeyear\SK@citeyear\fi
+\fi}
+\AtBeginDocument{\@ifpackageloaded{hyperref}{%
+ \ifnum\NAT@sort=2\def\NAT@sort{1}\fi}{}}
+\newif\ifNAT@full\NAT@fullfalse
+\newif\ifNAT@swa
+\DeclareRobustCommand\citet
+ {\begingroup\NAT@swafalse\def\NAT@ctype{0}\NAT@partrue
+ \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\newcommand\NAT@citetp{\@ifnextchar[{\NAT@@citetp}{\NAT@@citetp[]}}
+\newcommand\NAT@@citetp{}
+\def\NAT@@citetp[#1]{\@ifnextchar[{\@citex[#1]}{\@citex[][#1]}}
+\DeclareRobustCommand\citep
+ {\begingroup\NAT@swatrue\def\NAT@ctype{0}\NAT@partrue
+ \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\cite
+ {\begingroup\def\NAT@ctype{0}\NAT@partrue\NAT@swatrue
+ \@ifstar{\NAT@fulltrue\NAT@cites}{\NAT@fullfalse\NAT@cites}}
+\newcommand\NAT@cites{\@ifnextchar [{\NAT@@citetp}{%
+ \ifNAT@numbers\else
+ \NAT@swafalse
+ \fi
+ \NAT@@citetp[]}}
+\DeclareRobustCommand\citealt
+ {\begingroup\NAT@swafalse\def\NAT@ctype{0}\NAT@parfalse
+ \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\citealp
+ {\begingroup\NAT@swatrue\def\NAT@ctype{0}\NAT@parfalse
+ \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\citeauthor
+ {\begingroup\NAT@swafalse\def\NAT@ctype{1}\NAT@parfalse
+ \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\citeyear
+ {\begingroup\NAT@swafalse\def\NAT@ctype{2}\NAT@parfalse\NAT@citetp}
+\DeclareRobustCommand\citeyearpar
+ {\begingroup\NAT@swatrue\def\NAT@ctype{2}\NAT@partrue\NAT@citetp}
+\newcommand\citetext[1]{\NAT@open#1\NAT@close}
+\DeclareRobustCommand\citefullauthor
+ {\citeauthor*}
+\renewcommand\nocite[1]{\@bsphack
+ \@for\@citeb:=#1\do{%
+ \edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+ \if*\@citeb\else
+ \@ifundefined{b@\@citeb\@extra@b@citeb}{%
+ \NAT@citeundefined \PackageWarning{natbib}%
+ {Citation `\@citeb' undefined}}{}\fi}%
+ \@esphack}
+\newcommand\NAT@parse[1]{{%
+ \let\protect=\@unexpandable@protect\let~\relax
+ \let\active@prefix=\@gobble
+ \xdef\NAT@temp{\csname b@#1\@extra@b@citeb\endcsname}}%
+ \expandafter\NAT@split\NAT@temp
+ \expandafter\NAT@parse@date\NAT@date??????@@%
+ \ifciteindex\NAT@index\fi
+}
+\newcommand\NAT@split[4]{%
+ \gdef\NAT@num{#1}\gdef\NAT@name{#3}\gdef\NAT@date{#2}%
+ \gdef\NAT@all@names{#4}%
+ \ifx\NAT@noname\NAT@all@names \gdef\NAT@all@names{#3}\fi}
+\newcommand\NAT@parse@date{}
+\def\NAT@parse@date#1#2#3#4#5#6@@{%
+ \ifnum\the\catcode`#1=11\def\NAT@year{}\def\NAT@exlab{#1}\else
+ \ifnum\the\catcode`#2=11\def\NAT@year{#1}\def\NAT@exlab{#2}\else
+ \ifnum\the\catcode`#3=11\def\NAT@year{#1#2}\def\NAT@exlab{#3}\else
+ \ifnum\the\catcode`#4=11\def\NAT@year{#1#2#3}\def\NAT@exlab{#4}\else
+ \def\NAT@year{#1#2#3#4}\def\NAT@exlab{{#5}}\fi\fi\fi\fi}
+\newcommand\NAT@index{}
+\let\NAT@makeindex=\makeindex
+\renewcommand\makeindex{\NAT@makeindex
+ \renewcommand\NAT@index{\@bsphack\begingroup
+ \def~{\string~}\@wrindex{\NAT@idxtxt}}}
+\newcommand\NAT@idxtxt{\NAT@name\ \NAT@open\NAT@date\NAT@close}
+\newif\ifciteindex \citeindexfalse
+\newcommand\citeindextype{default}
+\newcommand\NAT@index@alt{{\let\protect=\noexpand\let~\relax
+ \xdef\NAT@temp{\NAT@idxtxt}}\expandafter\NAT@exp\NAT@temp\@nil}
+\newcommand\NAT@exp{}
+\def\NAT@exp#1\@nil{\index[\citeindextype]{#1}}
+
+\AtBeginDocument{%
+\@ifpackageloaded{index}{\let\NAT@index=\NAT@index@alt}{}}
+\newcommand\NAT@ifcmd{\futurelet\NAT@temp\NAT@ifxcmd}
+\newcommand\NAT@ifxcmd{\ifx\NAT@temp\relax\else\expandafter\NAT@bare\fi}
+\def\NAT@bare#1(#2)#3()#4\@nil#5{%
+ \if\relax#2\relax
+ \expandafter\NAT@apalk#1, , \@nil{#5}\else
+ \stepcounter{NAT@ctr}%
+ \NAT@wrout{\arabic {NAT@ctr}}{#2}{#1}{#3}{#5}
+\fi
+}
+\newcommand\NAT@wrout[5]{%
+\if@filesw
+ {\let\protect\noexpand\let~\relax
+ \immediate
+ \write\@auxout{\string\bibcite{#5}{{#1}{#2}{{#3}}{{#4}}}}}\fi
+\ignorespaces}
+\def\NAT@noname{{}}
+\renewcommand\bibitem{%
+ \@ifnextchar[{\@lbibitem}{%
+ \global\NAT@stdbsttrue
+ \stepcounter{NAT@ctr}\@lbibitem[\arabic{NAT@ctr}]}}
+\def\@lbibitem[#1]#2{%
+ \if\relax\@extra@b@citeb\relax\else
+ \@ifundefined{br@#2\@extra@b@citeb}{}{%
+ \@namedef{br@#2}{\@nameuse{br@#2\@extra@b@citeb}}}\fi
+ \@ifundefined{b@#2\@extra@b@citeb}{\def\NAT@num{}}{\NAT@parse{#2}}%
+ \item[\hfil\hyper@natanchorstart{#2\@extra@b@citeb}\@biblabel{\NAT@num}%
+ \hyper@natanchorend]%
+ \NAT@ifcmd#1()()\@nil{#2}}
+\ifx\SK@lbibitem\@undefined\else
+ \let\SK@lbibitem\@lbibitem
+ \def\@lbibitem[#1]#2{%
+ \SK@lbibitem[#1]{#2}\SK@\SK@@label{#2}\ignorespaces}\fi
+\newif\ifNAT@stdbst \NAT@stdbstfalse
+
+\AtEndDocument
+ {\ifNAT@stdbst\if@filesw\immediate\write\@auxout{\string
+ \global\string\NAT@numberstrue}\fi\fi
+ }
+\providecommand\bibcite{}
+\renewcommand\bibcite[2]{\@ifundefined{b@#1\@extra@binfo}\relax
+ {\NAT@citemultiple
+ \PackageWarningNoLine{natbib}{Citation `#1' multiply defined}}%
+ \global\@namedef{b@#1\@extra@binfo}{#2}}
+\AtEndDocument{\NAT@swatrue\renewcommand\bibcite[2]%
+ {\NAT@testdef{#1}{#2}}}
+\newcommand\NAT@testdef[2]{%
+ \def\NAT@temp{#2}\expandafter \ifx \csname b@#1\@extra@binfo\endcsname
+ \NAT@temp \else \ifNAT@swa \NAT@swafalse
+ \PackageWarningNoLine{natbib}{Citation(s) may have
+ changed.\MessageBreak
+ Rerun to get citations correct}\fi\fi}
+\newcommand\NAT@apalk{}
+\def\NAT@apalk#1, #2, #3\@nil#4{\if\relax#2\relax
+ \global\NAT@stdbsttrue
+ \NAT@wrout{#1}{}{}{}{#4}\else
+ \stepcounter{NAT@ctr}%
+ \NAT@wrout{\arabic {NAT@ctr}}{#2}{#1}{}{#4}\fi}
+\newcommand\citeauthoryear{}
+\def\citeauthoryear#1#2#3()()\@nil#4{\stepcounter{NAT@ctr}\if\relax#3\relax
+ \NAT@wrout{\arabic {NAT@ctr}}{#2}{#1}{}{#4}\else
+ \NAT@wrout{\arabic {NAT@ctr}}{#3}{#2}{#1}{#4}\fi}
+\newcommand\citestarts{\NAT@open}
+\newcommand\citeends{\NAT@close}
+\newcommand\betweenauthors{and}
+\newcommand\astroncite{}
+\def\astroncite#1#2()()\@nil#3{\stepcounter{NAT@ctr}\NAT@wrout{\arabic
+{NAT@ctr}}{#2}{#1}{}{#3}}
+\newcommand\citename{}
+\def\citename#1#2()()\@nil#3{\expandafter\NAT@apalk#1#2, \@nil{#3}}
+\newcommand\harvarditem[4][]%
+ {\if\relax#1\relax\bibitem[#2(#3)]{#4}\else
+ \bibitem[#1(#3)#2]{#4}\fi }
+\newcommand\harvardleft{\NAT@open}
+\newcommand\harvardright{\NAT@close}
+\newcommand\harvardyearleft{\NAT@open}
+\newcommand\harvardyearright{\NAT@close}
+\AtBeginDocument{\providecommand{\harvardand}{and}}
+\newcommand\harvardurl[1]{\textbf{URL:} \textit{#1}}
+\providecommand\bibsection{}
+\@ifundefined{chapter}%
+ {\renewcommand\bibsection{\section*{\refname
+ \@mkboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}}}}}
+ {\@ifundefined{NAT@sectionbib}%
+ {\renewcommand\bibsection{\chapter*{\bibname
+ \@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}}}}
+ {\renewcommand\bibsection{\section*{\bibname
+ \ifx\@mkboth\@gobbletwo\else\markright{\MakeUppercase{\bibname}}\fi}}}}
+\@ifclassloaded{amsart}%
+ {\renewcommand\bibsection{\section*{\refname}}{}}{}
+\@ifclassloaded{amsbook}%
+ {\renewcommand\bibsection{\section*{\bibname}}{}}{}
+\@ifundefined{bib@heading}{}{\let\bibsection\bib@heading}
+\newcounter{NAT@ctr}
+\renewenvironment{thebibliography}[1]{%
+ \bibfont\bibsection\parindent \z@\list
+ {\@biblabel{\arabic{NAT@ctr}}}{\@bibsetup{#1}%
+ \setcounter{NAT@ctr}{0}}%
+ \ifNAT@openbib
+ \renewcommand\newblock{\par}
+ \else
+ \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
+ \fi
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax
+ \let\citeN\cite \let\shortcite\cite
+ \let\citeasnoun\cite
+ }{\def\@noitemerr{%
+ \PackageWarning{natbib}
+ {Empty `thebibliography' environment}}%
+ \endlist\vskip-\lastskip}
+\let\bibfont=\relax
+\providecommand\reset@font{\relax}
+\providecommand\bibname{Bibliography}
+\providecommand\refname{References}
+\newcommand\NAT@citeundefined{\gdef \NAT@undefined {%
+ \PackageWarningNoLine{natbib}{There were undefined citations}}}
+\let \NAT@undefined \relax
+\newcommand\NAT@citemultiple{\gdef \NAT@multiple {%
+ \PackageWarningNoLine{natbib}{There were multiply defined citations}}}
+\let \NAT@multiple \relax
+\AtEndDocument{\NAT@undefined\NAT@multiple}
+\providecommand\@mkboth[2]{}
+\providecommand\MakeUppercase{\uppercase}
+\providecommand{\@extra@b@citeb}{}
+\gdef\@extra@binfo{}
+\providecommand\hyper@natanchorstart[1]{}
+\providecommand\hyper@natanchorend{}
+\providecommand\hyper@natlinkstart[1]{}
+\providecommand\hyper@natlinkend{}
+\providecommand\hyper@natlinkbreak[2]{#1}
+\@ifpackageloaded{babel}{\PackageWarningNoLine{natbib}{%
+If you use both babel and natbib\MessageBreak
+then load babel AFTER natbib}}{}
+\AtBeginDocument{\@ifpackageloaded{babel}{%
+\bbl@redefine\@citex[#1][#2]#3{%
+ \@safe@activestrue\org@@citex[#1][#2]{#3}\@safe@activesfalse}%
+}{}}
+\ifnum\NAT@sort>0
+\newcommand\NAT@sort@cites[1]{%
+\@tempcntb\m@ne
+\let\@celt\delimiter
+\def\NAT@num@list{}%
+\def\NAT@cite@list{}%
+\def\NAT@nonsort@list{}%
+\@for \@citeb:=#1\do{\NAT@make@cite@list}%
+\edef\NAT@cite@list{\NAT@cite@list\NAT@nonsort@list}%
+\edef\NAT@cite@list{\expandafter\NAT@xcom\NAT@cite@list @@}}
+\begingroup \catcode`\_=8
+\gdef\NAT@make@cite@list{%
+ \edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \@ifundefined{b@\@citeb\@extra@b@citeb}{\def\NAT@num{A}}%
+ {\NAT@parse{\@citeb}}%
+ \ifcat _\ifnum\z@<0\NAT@num _\else A\fi
+ \@tempcnta\NAT@num \relax
+ \ifnum \@tempcnta>\@tempcntb
+ \edef\NAT@num@list{\NAT@num@list \@celt{\NAT@num}}%
+ \edef\NAT@cite@list{\NAT@cite@list\@citeb,}%
+ \@tempcntb\@tempcnta
+ \else
+ \let\NAT@@cite@list=\NAT@cite@list \def\NAT@cite@list{}%
+ \edef\NAT@num@list{\expandafter\NAT@num@celt \NAT@num@list \@gobble @}%
+ {\let\@celt=\NAT@celt\NAT@num@list}%
+ \fi
+ \else
+ \edef\NAT@nonsort@list{\NAT@nonsort@list\@citeb,}%
+ \fi}
+\endgroup
+\def\NAT@celt#1{\ifnum #1<\@tempcnta
+ \xdef\NAT@cite@list{\NAT@cite@list\expandafter\NAT@nextc\NAT@@cite@list @@}%
+ \xdef\NAT@@cite@list{\expandafter\NAT@restc\NAT@@cite@list}%
+ \else
+ \xdef\NAT@cite@list{\NAT@cite@list\@citeb,\NAT@@cite@list}\let\@celt\@gobble%
+ \fi}
+\def\NAT@num@celt#1#2{\ifx \@celt #1%
+ \ifnum #2<\@tempcnta
+ \@celt{#2}%
+ \expandafter\expandafter\expandafter\NAT@num@celt
+ \else
+ \@celt{\number\@tempcnta}\@celt{#2}%
+ \fi\fi}
+\def\NAT@nextc#1,#2@@{#1,}
+\def\NAT@restc#1,#2{#2}
+\def\NAT@xcom#1,@@{#1}
+\else
+ \newcommand\NAT@sort@cites[1]{\edef\NAT@cite@list{#1}}\fi
+\InputIfFileExists{natbib.cfg}
+ {\typeout{Local config file natbib.cfg used}}{}
+%%
+%% <<<<< End of decommented file <<<<<<
+%%
+%% End of file `natbib.sty'.
diff --git a/vu-cs-standard-thesis/nomencl.sty b/vu-cs-standard-thesis/nomencl.sty
new file mode 100644
index 0000000..ba8fa67
--- /dev/null
+++ b/vu-cs-standard-thesis/nomencl.sty
@@ -0,0 +1,192 @@
+%%
+%% This is file `nomencl.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nomencl.dtx (with options: `package')
+%%
+%% Copyright 1996 Boris Veytsman
+%% Copyright 1999-2001 Bernd Schandl
+%% www http://sarovar.org/projects/nomencl
+%%
+%% This file can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License distributed from CTAN
+%% archives in the directory macros/latex/base/lppl.txt; either
+%% version 1.2 of the license, or (at your option) any later version.
+%%
+%% \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{nomencl}%
+ [2005/09/22 v4.2 Nomenclature package (LN)]
+\NeedsTeXFormat{LaTeX2e}
+\newif\if@printeqref
+\newif\if@printpageref
+\newif\if@intoc
+\newif\if@compatibilitymode
+\DeclareOption{refeq}{\@printeqreftrue}
+\DeclareOption{norefeq}{\@printeqreffalse}
+\DeclareOption{refpage}{\@printpagereftrue}
+\DeclareOption{norefpage}{\@printpagereffalse}
+\DeclareOption{intoc}{\@intoctrue}
+\DeclareOption{notintoc}{\@intocfalse}
+\DeclareOption{compatible}{\@compatibilitymodetrue}
+\DeclareOption{noncompatible}{\@compatibilitymodefalse}
+\DeclareOption{prefix}{\def\nomprefix{a}}
+\DeclareOption{noprefix}{\def\nomprefix{}}
+\newif\if@loadcfg
+\DeclareOption{cfg}{\@loadcfgtrue}
+\DeclareOption{nocfg}{\@loadcfgfalse}
+\DeclareOption{croatian}{%
+ \def\eqdeclaration#1{, vidi jednad\v{z}bu\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, stranica\nobreakspace#1}%
+ \def\nomname{Popis simbola}}
+\DeclareOption{danish}{%
+ \def\eqdeclaration#1{, se ligning\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, side\nobreakspace#1}%
+ \def\nomname{Symbolliste}}
+\DeclareOption{english}{%
+ \def\eqdeclaration#1{, see equation\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, page\nobreakspace#1}%
+ \def\nomname{Nomenclature}}
+\DeclareOption{french}{%
+ \def\eqdeclaration#1{, voir \'equation\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, page\nobreakspace#1}%
+ \def\nomname{Liste des symboles}}
+\DeclareOption{german}{%
+ \def\eqdeclaration#1{, siehe Gleichung\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, Seite\nobreakspace#1}%
+ \def\nomname{Symbolverzeichnis}}
+\DeclareOption{italian}{%
+\def\eqdeclaration#1{, vedi equazione\nobreakspace(#1)}%
+\def\pagedeclaration#1{, pagina\nobreakspace#1}%
+\def\nomname{Elenco dei simboli}}
+\DeclareOption{polish}{%
+ \def\eqdeclaration#1{, porownaj rownanie\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, strona\nobreakspace#1}%
+ \def\nomname{Lista symboli}}
+\DeclareOption{portuguese}{%
+ \def\eqdeclaration#1{, veja equa\c{c}\~ao\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, p\'agina\nobreakspace#1}%
+ \def\nomname{Nomenclatura}}
+\DeclareOption{russian}{%
+ \def\eqdeclaration#1{, \cyrs\cyrm.\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, \cyrs\cyrt\cyrr.\nobreakspace#1}%
+ \def\nomname{\CYRS\cyrp\cyri\cyrs\cyro\cyrk%
+ \ \cyro\cyrb\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyri%
+ \cyrishrt}}
+\DeclareOption{spanish}{%
+ \def\eqdeclaration#1{, v\'ease la ecuaci\'on\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, p\'agina\nobreakspace#1}%
+ \def\nomname{Nomenclatura}}
+\DeclareOption{ukrainian}{%
+ \def\eqdeclaration#1{, \cyrd\cyri\cyrv.\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, \cyrs\cyrt\cyro\cyrr.\nobreakspace#1}%
+ \def\nomname{\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk%
+ \ \cyrp\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyrsftsn}}
+\ExecuteOptions{noncompatible,notintoc,norefeq,norefpage,prefix,cfg,english}
+\ProcessOptions\relax
+\if@compatibilitymode%
+ \def\@outputfileextension{.glo}%
+ \def\@inputfileextension{.gls}%
+\else%
+ \def\@outputfileextension{.nlo}%
+ \def\@inputfileextension{.nls}%
+\fi%
+\def\makenomenclature{%
+ \newwrite\@nomenclaturefile
+ \immediate\openout\@nomenclaturefile=\jobname\@outputfileextension
+ \def\@nomenclature{%
+ \@bsphack
+ \begingroup
+ \@sanitize
+ \@ifnextchar[%
+ {\@@@nomenclature}{\@@@nomenclature[\nomprefix]}}%
+ \typeout{Writing nomenclature file \jobname\@outputfileextension}%
+ \let\makenomenclature\@empty}
+\if@compatibilitymode\let\makeglossary\makenomenclature\fi%
+\def\nom@verb{\expandafter\strip@prefix\meaning}
+\def\nomenclature{\protect\@nomenclature}
+\def\@nomenclature{%
+ \@bsphack
+ \begingroup
+ \@sanitize
+ \@ifnextchar[%
+ {\@@nomenclature}{\@@nomenclature[\nomprefix]}}
+\def\@@nomenclature[#1]#2#3{\endgroup\@esphack}
+\def\@@@nomenclature[#1]#2#3{%
+ \def\@tempa{#2}\def\@tempb{#3}%
+ \protected@write\@nomenclaturefile{}%
+ {\string\nomenclatureentry{#1\nom@verb\@tempa @[{\nom@verb\@tempa}]%
+ \begingroup\nom@verb\@tempb\protect\nomeqref{\theequation}%
+ |nompageref}{\thepage}}%
+ \endgroup
+ \@esphack}
+\def\nomgroup#1{}
+\newdimen\nomlabelwidth
+\nomlabelwidth1cm\relax
+\newdimen\nom@tempdim
+\def\printnomenclature{%
+ \@ifnextchar[%
+ {\@printnomenclature}{\@printnomenclature[\nomlabelwidth]}}
+\def\@printnomenclature[#1]{%
+ \nom@tempdim#1\relax
+ \@input@{\jobname\@inputfileextension}}
+\if@compatibilitymode\let\printglossary\printnomenclature\fi%
+\def\nomlabel#1{#1\hfil}
+\def\nompreamble{}
+\def\nompostamble{}
+\def\nomentryend{}
+\newskip\nomitemsep
+\nomitemsep\itemsep
+\def\thenomenclature{%
+ \@ifundefined{chapter}%
+ {
+ \section*{\nomname}
+ \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
+ }%
+ {
+ \chapter*{\nomname}
+ \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
+ }%
+
+ \nompreamble
+ \list{}{%
+ \labelwidth\nom@tempdim
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \itemsep\nomitemsep
+ \let\makelabel\nomlabel}}
+\def\endthenomenclature{%
+ \endlist
+ \nompostamble}
+\def\nomrefeq{\@printeqreftrue}
+\def\nomrefpage{\@printpagereftrue}
+\def\nomrefeqpage{\@printeqreftrue\@printpagereftrue}
+\def\nomnorefeq{\@printeqreffalse}
+\def\nomnorefpage{\@printpagereffalse}
+\def\nomnorefeqpage{\@printeqreffalse\@printpagereffalse}
+\def\nomeqref#1{\if@printeqref\eqdeclaration{#1}\fi\ignorespaces}
+\def\nompageref#1{\if@printpageref\pagedeclaration{#1}\fi%
+ \nomentryend\endgroup}
+\if@loadcfg
+ \InputIfFileExists{nomencl.cfg}{%
+ \typeout{Using the configuration file nomencl.cfg}}{}
+\fi
+\endinput
+%%
+%% End of file `nomencl.sty'.
diff --git a/vu-cs-standard-thesis/references.bib b/vu-cs-standard-thesis/references.bib
new file mode 100644
index 0000000..55e120d
--- /dev/null
+++ b/vu-cs-standard-thesis/references.bib
@@ -0,0 +1,7 @@
+@book{wohlin12,
+ Title = {{Experimentation in Software Engineering - An Introduction}},
+ Author = {Wohlin, C. and Runeson, P. and {H\"ost}, M. and Ohlsson, M.C. and Regnell, B. and {Wessl\'en}, A.},
+ Publisher = {Kluwer Academic Publishers},
+ Year = {2012},
+ Keywords = {Empirical software engineering}
+} \ No newline at end of file
diff --git a/vu-cs-standard-thesis/rotating.sty b/vu-cs-standard-thesis/rotating.sty
new file mode 100644
index 0000000..23849c4
--- /dev/null
+++ b/vu-cs-standard-thesis/rotating.sty
@@ -0,0 +1,199 @@
+%%
+%% This is file `rotating.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotating.dtx (with options: `package')
+%% Copyright (C) 1994 Sebastian Rahtz and Leonor Barroca. All
+%% rights reserved. Permission is granted to to customize the
+%% declarations in this file to serve the needs of your installation.
+%% However, no permission is granted to distribute a modified version of
+%% this file under its original name.
+%%
+\def\fileversion{2.10}
+\def\filedate{1995/08/22}
+\def\docdate {1995/01/06}
+%% File: rotating.dtx Copyright (C) 1995 Sebastian Rahtz and Leonor Barroca
+\ProvidesPackage{rotating}[\filedate\space\fileversion\space Rotation package]
+\NeedsTeXFormat{LaTeX2e}
+\newif\if@rot@twoside
+\DeclareOption{clockwise}{% this is for compatibility
+ \AtBeginDocument{\setkeys{Grot}{units=360}}%
+}
+\DeclareOption{counterclockwise}{%
+ \AtBeginDocument{\setkeys{Grot}{units=-360}}%
+}
+\DeclareOption{figuresleft}{%
+ \@rot@twosidefalse
+ \def\rot@LR{0}%
+}
+\DeclareOption{figuresright}{%
+ \@rot@twosidefalse
+ \def\rot@LR{-1}%
+}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{graphics}}
+\PassOptionsToPackage{dvips}{graphics}
+\ExecuteOptions{clockwise}
+\if@twoside
+ \@rot@twosidetrue
+\else
+ \@rot@twosidefalse
+\fi
+\def\rot@LR{-1}
+\ProcessOptions
+\RequirePackage{graphicx}
+\RequirePackage{ifthen}
+\def\rotdriver#1{\makeatletter\input{#1.def}\makeatother}
+\newcount\r@tfl@t
+\r@tfl@t0
+\def\sideways{%
+ \Grot@setangle{90}%
+ \setbox\z@\hbox\bgroup\ignorespaces}
+\def\endsideways{%
+ \unskip\egroup
+ \Grot@x\z@
+ \Grot@y\z@
+ \Grot@box
+}
+\def\turn#1{%
+ \Grot@setangle{#1}%
+ \setbox\z@\hbox\bgroup\ignorespaces}
+\def\endturn{%
+ \unskip\egroup
+ \Grot@x\z@
+ \Grot@y\z@
+ \Grot@box
+}
+\def\rotate#1{%
+ \Grot@setangle{#1}%
+ \setbox\z@\hbox\bgroup\ignorespaces}
+\def\endrotate{%
+ \unskip\egroup
+ \Grot@x\z@
+ \Grot@y\z@
+ \wd0\z@\dp0\z@\ht0\z@
+ \Grot@box
+}
+\def\turnbox#1#2{%
+ \Grot@setangle{#1}%
+ \setbox\z@\hbox{{#2}}%
+ \Grot@x\z@\Grot@y\z@
+ \wd0\z@\dp0\z@\ht0\z@
+ \Grot@box
+}
+\newsavebox\rot@float@box
+\def\@rotfloat#1{%
+ \@ifnextchar[%
+ {\@xrotfloat{#1}}%
+ {\edef\@tempa{\noexpand\@xrotfloat{#1}[\csname fps@#1\endcsname]}\@tempa}%
+}
+\def\@xrotfloat#1[#2]{%
+ \@float{#1}[#2]%
+ \begin{lrbox}\rot@float@box
+ \begin{minipage}\textheight
+ }
+\def\end@rotfloat{%
+ \end{minipage}\end{lrbox}%
+ \global\advance\r@tfl@t by 1
+ \label{RF\the\r@tfl@t}%
+ \message{Adding sideways figure on }%
+ \def\R@@page{\pageref{RF\the\r@tfl@t}}%
+ \wd\rot@float@box\z@
+ \ht\rot@float@box\z@
+ \dp\rot@float@box\z@
+ \vbox to \textheight{%
+ \setkeys{Grot}{units=360}%
+ \if@rot@twoside
+ \def\R@@page{\pageref{RF\the\r@tfl@t}}%
+ \else
+ \let\R@@page\rot@LR
+ \fi
+ \ifthenelse{\isodd{\R@@page}}{%
+ \message{right hand page}%
+ \vfill
+ \centerline{\rotatebox{90}{\box\rot@float@box}}%
+ }{%
+ \message{left hand page}%
+ \centerline{\rotatebox{-90}{\box\rot@float@box}}%
+ \vfill
+ }%
+ }%
+ \end@float
+}
+\def\sidewaysfigure{\@rotfloat{figure}}
+\let\endsidewaysfigure\end@rotfloat
+\def\sidewaystable{\@rotfloat{table}}
+\let\endsidewaystable\end@rotfloat
+\def\@rotdblfloat{%
+ \if@twocolumn\let\reserved@a\@rotdbflt\else\let\reserved@a\@rotfloat\fi
+ \reserved@a}
+\def\@rotdbflt#1{\@ifnextchar[{\@rotxdblfloat{#1}}{\@rotxdblfloat{#1}[tp]}}
+\def\@rotxdblfloat#1[#2]{%
+ \hsize\textwidth\linewidth\textwidth
+ \@float{#1}[#2]%
+ \begin{lrbox}\rot@float@box
+ \begin{minipage}\textheight
+}
+\def\end@rotdblfloat{%
+ \end{minipage}\end{lrbox}%
+ \global\advance\r@tfl@t by 1
+ \label{RF\the\r@tfl@t}%
+ \message{Adding sideways figure on }%
+ \def\R@@page{\pageref{RF\the\r@tfl@t}}%
+ \@tempdima\ht\rot@float@box
+ \advance\@tempdima by \dp\rot@float@box
+\typeout{BOX wd: \the\wd\rot@float@box, ht: \the\ht\rot@float@box, dp: \the\dp\rot@float@box: so shift by .5 of \the\@tempdima}%
+ \wd\rot@float@box\z@
+ \ht\rot@float@box\z@
+ \dp\rot@float@box\z@
+ \vbox to \textheight{%
+ \setkeys{Grot}{units=360}%
+ \if@rot@twoside
+ \def\R@@page{\pageref{RF\the\r@tfl@t}}%
+ \else
+ \let\R@@page\rot@LR
+ \fi
+ \ifthenelse{\isodd{\R@@page}}{%
+ \message{right hand page}%
+ \vfill
+ \hbox to\textwidth{\hfill\rotatebox{90}{\box\rot@float@box}\hfill}%
+ }{%
+ \message{left hand page}%
+ \hbox to \textwidth{\hfill\rotatebox{-90}{\box\rot@float@box}\hfill}%
+ \vfill
+ }%
+ }%
+ \end@dblfloat
+}
+\newenvironment{sidewaystable*}
+ {\@rotdblfloat{table}}
+ {\end@rotdblfloat}
+\newenvironment{sidewaysfigure*}
+ {\@rotdblfloat{figure}}
+ {\end@rotdblfloat}
+
+\def\rotcaption{\refstepcounter\@captype\@dblarg{\@rotcaption\@captype}}
+\long\def\@rotcaption#1[#2]#3{%
+\addcontentsline{\csname ext@#1\endcsname}{#1}{%
+ \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
+ \par
+ \begingroup
+ \@parboxrestore
+ \normalsize
+ \@makerotcaption{\csname fnum@#1\endcsname}{#3}%
+ \endgroup}
+\long\def\@makerotcaption#1#2{%
+ \setbox\@tempboxa\hbox{#1: #2}%
+ \ifdim \wd\@tempboxa > .8\vsize
+ \rotatebox{90}{%
+ \begin{minipage}{.8\textheight}#1: #2\end{minipage}%
+ }\par
+ \else%
+ \rotatebox{90}{\box\@tempboxa}%
+ \fi
+ \hspace{12pt}%
+}
+\endinput
+%%
+%% End of file `rotating.sty'.
diff --git a/vu-cs-standard-thesis/sections/appendix.tex b/vu-cs-standard-thesis/sections/appendix.tex
new file mode 100644
index 0000000..cc471e5
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/appendix.tex
@@ -0,0 +1,16 @@
+% this file is called up by thesis.tex
+% content in this file will be fed into the main document
+
+%: ----------------------- name of chapter -------------------------
+\chapter*{Appendix} % top level followed by section, subsection
+
+
+
+
+
+
+
+% ---------------------------------------------------------------------------
+%: ----------------------- end of thesis sub-document ------------------------
+% ---------------------------------------------------------------------------
+
diff --git a/vu-cs-standard-thesis/sections/background.tex b/vu-cs-standard-thesis/sections/background.tex
new file mode 100644
index 0000000..03c924d
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/background.tex
@@ -0,0 +1,10 @@
+\chapter{Background}\label{s:background}
+
+
+\todo{
+This section provides the necessary context to help the reader understand the
+remainder of the thesis.
+}
+
+\lipsum[1-8]
+
diff --git a/vu-cs-standard-thesis/sections/conclusion.tex b/vu-cs-standard-thesis/sections/conclusion.tex
new file mode 100644
index 0000000..9ca221f
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/conclusion.tex
@@ -0,0 +1,11 @@
+\chapter{Conclusion}\label{s:conclusion}
+
+
+\todo{
+Briefly summarize your contributions, and share a glimpse of the implications of
+this work for future research.
+}
+
+
+\lipsum[1-2]
+
diff --git a/vu-cs-standard-thesis/sections/design.tex b/vu-cs-standard-thesis/sections/design.tex
new file mode 100644
index 0000000..175ec1b
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/design.tex
@@ -0,0 +1,11 @@
+\chapter{Design}\label{s:design}
+
+
+\todo{
+In this section, you would provide a high-level description of the system or
+solution and explain your design choices.
+}
+
+
+\lipsum[1-10]
+
diff --git a/vu-cs-standard-thesis/sections/discussion.tex b/vu-cs-standard-thesis/sections/discussion.tex
new file mode 100644
index 0000000..62129fc
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/discussion.tex
@@ -0,0 +1,10 @@
+\chapter{Discussion}\label{s:discussion}
+
+
+\todo{
+Here you put your results in context (possibly grouped by research question). Usually, this section focuses on analyzing the
+implications of the proposed work for current and future research and for practitioners.
+}
+
+
+\lipsum[1-8]
diff --git a/vu-cs-standard-thesis/sections/evaluation.tex b/vu-cs-standard-thesis/sections/evaluation.tex
new file mode 100644
index 0000000..3b65dff
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/evaluation.tex
@@ -0,0 +1,13 @@
+\chapter{Evaluation}\label{s:evaluation}
+
+
+\todo{
+Discuss the design of your experiments, the results you obtained, and how they
+help in evaluating the claims you made in the introduction. You may also use the
+evaluation results in this section to justify your design choices or assess the
+contributions of different aspects of your design towards the overall goals.
+}
+
+
+\lipsum[1-16]
+
diff --git a/vu-cs-standard-thesis/sections/implementation.tex b/vu-cs-standard-thesis/sections/implementation.tex
new file mode 100644
index 0000000..84fb7a6
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/implementation.tex
@@ -0,0 +1,13 @@
+\chapter{Implementation}\label{s:implementation}
+
+
+This section presents important implementation details.
+
+
+\lipsum[1-6]
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "../thesis"
+%%% End:
diff --git a/vu-cs-standard-thesis/sections/intro.tex b/vu-cs-standard-thesis/sections/intro.tex
new file mode 100644
index 0000000..3eb6e09
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/intro.tex
@@ -0,0 +1,12 @@
+\chapter{Introduction}\label{s:intro}
+
+\todo{
+This section includes some motivations behind the work, explicitly or implicitly
+highlights the research question, provides a high-level explanation of the
+solution, and describes the contributions.
+}
+
+
+\lipsum[1-2]
+
+
diff --git a/vu-cs-standard-thesis/sections/overview.tex b/vu-cs-standard-thesis/sections/overview.tex
new file mode 100644
index 0000000..869cea5
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/overview.tex
@@ -0,0 +1,13 @@
+\chapter{Overview}\label{s:overview}
+
+
+\todo{
+This section provides a high-level outline of the proposed system or solution.
+It typically illustrates the system architecture or the interactions between the
+different solution components (via a “boxes-and-arrows” diagram) from a user’s
+perspective.
+}
+
+
+\lipsum[1-6]
+
diff --git a/vu-cs-standard-thesis/sections/related.tex b/vu-cs-standard-thesis/sections/related.tex
new file mode 100644
index 0000000..7a8f517
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/related.tex
@@ -0,0 +1,10 @@
+\chapter{Related Work}\label{s:related}
+
+
+\todo{
+Describe here scientific papers similar to your experiment, both in terms of goal and methodology. One paragraph for each paper (we expect about 5-8 papers to be discussed). Each paragraph contains: (i) a brief description of the related paper and (ii) a black-on-white description about how your work differs from the related paper. You may place this section immediately after the Background section, if necessary.
+}
+
+
+\lipsum[14-17][4-8]
+
diff --git a/vu-cs-standard-thesis/sections/threats.tex b/vu-cs-standard-thesis/sections/threats.tex
new file mode 100644
index 0000000..3025b7f
--- /dev/null
+++ b/vu-cs-standard-thesis/sections/threats.tex
@@ -0,0 +1,9 @@
+\chapter{Threats To Validity}\label{sec:threats}
+
+\todo{Report about each type of threat to the validity of the experiment, according to the classification framework proposed by Wohlin \etal \cite{wohlin12}.
+}
+
+\section{Internal Validity}
+\section{External Validity}
+\section{Construct Validity}
+\section{Conclusion Validity} \ No newline at end of file
diff --git a/vu-cs-standard-thesis/setspace.sty b/vu-cs-standard-thesis/setspace.sty
new file mode 100644
index 0000000..c329204
--- /dev/null
+++ b/vu-cs-standard-thesis/setspace.sty
@@ -0,0 +1,546 @@
+%%% ======================================================================
+%%% @LaTeX-style-file{
+%%% filename = "setspace.sty",
+%%% version = "6.7",
+%%% date = "Fri 1 December 2000",
+%%% time = "17:49 UT+11",
+%%% author = "Geoffrey Tobin",
+%%% address = "Department of Electronic Engineering
+%%% Faculty of Science and Technology
+%%% La Trobe University
+%%% Bundoora VIC 3086
+%%% Australia",
+%%% email = "G.Tobin@latrobe.edu.au (Internet)",
+%%% telephone = "(+ 613) 9479-3736",
+%%% FAX = "(+ 613) 9479-3025",
+%%% supported = "yes",
+%%% archived = "CTAN",
+%%% distribution = "freely redistributable",
+%%% keywords = "LaTeX package, line spacing",
+%%% codetable = "ISO/ASCII",
+%%% checksum = "11793 546 2608 21972",
+%%% docstring = "setspace.sty is a LaTeX (2e) package.
+%%% Comments and bug reports welcome!
+%%%
+%%% This includes GDG's modification to Erica Harris'
+%%% setspace.sty. The main aspects of this
+%%% modification deal with the definitions of
+%%% \singlespacing \onehalfspacing, and
+%%% \doublespacing, (these are near the beginning of
+%%% the file). Primarily, these deal with adding
+%%% fontsize changes to guarantee that the new
+%%% baseline is properly defined and placed into
+%%% action. The extra \vskip in the definition of
+%%% \singlespacing seems to make for a cleaner
+%%% transition from multiple spacing back to single
+%%% spacing. These did not appear warrranted for
+%%% other size changes.
+%%%
+%%% Modified by GDG on November 1, 1992, to allow
+%%% for use of New Font Selection Scheme.
+%%%
+%%% Modified by GDG on June 4, 1993, to correct
+%%% for spacing tokens in definition of \@setsize
+%%% Thanks to Kaja P. Christiansen <kaja@daimi.aau.dk>
+%%% for the fix!!
+%%%
+%%% Modified by GDG on May 24, 1994, to change toggle
+%%% definition from \selectfont to \@newbaseline.
+%%%
+%%% Modified by GDG on May 25, 1994, to add
+%%% definition of \everydisplay -- this part of
+%%% the code was apparently written by Geoffrey
+%%% Tobin on Thu 23 Jan 1992 and was provided by
+%%% stanton@haas.berkeley.edu (Richard Stanton).
+%%% This should help with some of the awkward math
+%%% placements in changing spacings.
+%%%
+%%% Modified by GT on 23 Jan 1996, to correct
+%%% \everymath bug, first reported by Mario
+%%% Wolczko <mario@cs.man.ac.uk> on 9 June 1992.
+%%%
+%%% Modified by GT on 23 Jan 1996, to correct
+%%% usage of comment characters in macro
+%%% definitions.
+%%%
+%%% Modified by GT on 23 Jan 1996, to update
+%%% (adjusted) \@xfloat definition for LaTeX2e.
+%%% Bug report was courtesy of Kay Nettle.
+%%%
+%%% Modified by GT on 24 Jan 1996, to update
+%%% (adjusted) \@footnotetext definition for
+%%% LaTeX2e, and to add an adjusted LaTeX2e
+%%% \@mpfootnotext definition for minipages.
+%%% Bug report was courtesy Kay Nettle.
+%%%
+%%% Changed by GT on 6 Feb 1996, into a LaTeX2e
+%%% package.
+%%%
+%%% Made more package-like by GT on 14 Feb 1996,
+%%% by adding standard messages.
+%%%
+%%% GT replaced \@normalsize by \normalsize on 28
+%%% Sep 1996. This change was successively
+%%% advised by:
+%%%
+%%% Rowland J.~Bartlett
+%%% <R.J.Bartlett@bolton.ac.uk>
+%%% on Tue 6 Aug 96,
+%%%
+%%% Ted Stern
+%%% <stern@amath.washington.edu>
+%%% on Wed 7 Aug 96,
+%%%
+%%% Michal Jaegermann
+%%% <michal@ellpspace.math.ualberta.ca>
+%%% on Fri 27 Sep 96.
+%%%
+%%% GT: Sat 28 Sep 1996: Added call to
+%%% \setspace@size in \setstretch, as suggested
+%%% by David Hull <hull@cs.uiuc.edu>
+%%% on Wed 24 July 1996.
+%%%
+%%% GT: Sat 28 Sep 1996: Pared \setspace@size
+%%% mercilessly down to \@currsize, following
+%%% advice given on Fri 27 Sep 1996 by Michal
+%%% Jaegermann <michal@ellpspace.math.ualberta.ca>.
+%%% Retained this macro for flexibility.
+%%%
+%%% Code rearranged by GT, Sat 28 Sep 1996, to give
+%%% greater prominence to \setstretch.
+%%%
+%%% Also, GT changed (Sat 28 Sep 1996) many
+%%% occurrences of \def to \newcommand,
+%%% \renewcommand, or \newenvironment,
+%%% as seemed appropriate.
+%%%
+%%% GT, Tue 10 Dec 1996: Following a suggestion
+%%% by Ted Stern, the `single' spacing is now
+%%% settable by the user. This is for slightly
+%%% large fonts such as Lucida Bright.
+%%%
+%%% GT, Wed 11 Dec 1996: For simplicity and
+%%% maintainability, call \onehalfspacing in
+%%% the onehalfspace environment, and
+%%% \doublespacing in the doublespace
+%%% environment.
+%%%
+%%% GT, Wed 11 Dec 1996: Also deleted
+%%% \setspace@size from \setstretch,
+%%% as \@currsize suffices.
+%%%
+%%% Modified by Brett Presnell (BP)
+%%% <presnell@maths.anu.edu.au> on 21 Mar 1998
+%%% to add nodisplayskipstretch option, which
+%%% turns off the stretching of the space
+%%% before and after displays, which is often
+%%% excessive, particularly with doublespaced
+%%% documents. Also added the
+%%% setdisplayskipstretch command, which allows
+%%% the user to choose by how much to stretch
+%%% the space before and after displays
+%%% independently from the setting of
+%%% baselinestretch. This works regardless of
+%%% whether the nodisplayskipstretch option is
+%%% in effect.
+%%%
+%%% GT, Wed 15 Apr 1998: Added the singlespace*
+%%% environment requested by
+%%% Mark Olesen <olesen@weber.me.queensu.ca>
+%%% on Sat 24 May 1997 and Wed 18 June 1997.
+%%% This is reported to give improved vertical
+%%% spacing around itemize and quote environments.
+%%%
+%%% GT, Wed 15 Apr 1998: David Hull pointed out on
+%%% Fri 12 Dec 1997 that the \belowdisplayskip line
+%%% in the \everydisplay was mistyped. Now fixed.
+%%%
+%%% GT, Thu 26 Nov 1998: Finally got round to
+%%% fixing the absence of \begingroup from
+%%% onehalfspace and doublespace environments.
+%%% Thanks to: Bernd Schandl, Ron Smith,
+%%% Himanshu Gohel, and Kevin Ruland, for bringing
+%%% it to my long overdue attention.
+%%%
+%%% GT, Tue 27 July 1999: On Saturday 24 July
+%%% 1999, Alexander L. Wolf <alw@cs.colrado.edu>
+%%% informed me that the \doublespace and
+%%% \onehalfspace _macros_ are still at fault.
+%%%
+%%% GT, Fri 3 March 2000: Today Stefano
+%%% Lacaprara of Italy brought my attention to
+%%% the need to extend the commands and macros
+%%% to point sizes other than 10, 11 and 12.
+%%% Since there's no general formula for the
+%%% line stretch values in terms of point size,
+%%% and they vary only slightly between 10, 11
+%%% and 12 pt, and furthermore the values were
+%%% presumably optimised specifically for the
+%%% Computer Modern fonts, i've chosen to use
+%%% the 10 pt values as the generic defaults.
+%%%
+%%% GT, Fri 1 December 2000: George Pearson
+%%% requested package options for the three
+%%% common spacings.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility."
+%%% }
+%%% ======================================================================
+%% FILE: setspace.sty in SYS2.TEX.PUB.ISULATEX.STYLES
+%% AUTHOR: Erica M. S. Harris
+%% DATE: April 1990
+%% MOD: March 1991
+%%%
+%%% Update to LaTeX (2e) : 6 Feb 1996.
+%%% Description: LaTeX Document Package "setspace"
+%%%
+%%% Usage:
+%%% \documentclass[...]{...}
+%%% \usepackage{setspace}
+%%%
+%% Based on the doublespace option created by Stephen Page.
+%%
+%% This style option provides commands and environments for doing
+%% double and one-and-a-half spacing based on pt size.
+%%
+%% Single spacing is the default.
+%%
+%% Three commands, \singlespacing, \onehalfspacing, and
+%% \doublespacing, are for use in the preamble to set the overall
+%% spacing for the document. If a different spacing is required then
+%% the \setstretch{baselinestretch} command can be used in the
+%% preamble to set the baselinestretch appropriately. The default
+%% spacing with this style option is single spacing.
+%%
+%% Three environments, singlespace, onehalfspace, and doublespace,
+%% allow the spacing to be changed within the document. Both the
+%% onehalfspace and doublespace environments are intended to increase
+%% the spacing, so the onehalfspace environment should not be used in
+%% a double spaced document. If an increased spacing different from
+%% one-and-a-half or double spacing is required then the spacing
+%% environment can be used. The spacing environment takes one
+%% argument which is the larger baselinestretch to use,
+%% e.g., \begin{spacing}{2.5}.
+%%
+%% \footins is adjusted the same as \parskip - appears to work. Lose
+%% stretch parts but don't consider that to be crucial
+%%
+%% Removed code for altering spacing before and after displayed
+%% equations - just looked too much.
+%%
+%% MODS:
+%% Redefinition of \spacing and \endspacing for consistency with
+%% TeX 3.x inserted by George Greenwade. Modification provided by
+%% Philip Ross (ROSS@UK.AC.ABDN.BIOMED) and John Byrne via INFO-TeX.
+%%
+%% PLEASE REPORT ANY BUGS
+%%
+%% Old Documentation follows:
+%% 1. A new environment "singlespace" is provided, within which single
+%% spacing will apply.
+%% JFL - changed so that it works in regular text and so that
+%% vertical space before and after is correctly computed
+%% 2. Double spacing is turned off within footnotes and floats (figures
+%% and tables).
+%% 3. Proper double spacing happens below tabular environments and in
+%% other places where LaTeX uses a strut.
+%% 4. Slightly more space is inserted before footnotes.
+%% 5. JFL - fixes spacing before and after displayed math
+%%
+%%
+%% mods: Jean-Francois Lamy
+%% lamy@ai.toronto.edu
+%% lamy@utai.uucp
+%%
+%% POSSIBLE BUGS:
+%% . Increasing struts may possibly cause some other obscure part of
+%% formatting to fall over.
+%% . \begin{singlespace}\begin{quote} produces the wrong spacing before
+%% the quote (extra glue is inserted).
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat {LaTeX2e}[1994/12/01]
+\def \filename {setspace.sty}
+\def \filedate {2000/12/01}
+\def \fileversion {6.7}
+\ProvidesPackage {setspace}[\filedate\space\fileversion\space
+ Contributed and Supported LaTeX2e package]
+\typeout {Package: `setspace' \fileversion\space <\filedate>}
+
+% BP: add nodisplayskipstretch option and \setdisplayskipstretch command.
+
+\newcommand{\displayskipstretch}{\baselinestretch}
+\newcommand{\setdisplayskipstretch}[1]{\renewcommand{\displayskipstretch}{#1}}
+\DeclareOption{nodisplayskipstretch}{\setdisplayskipstretch{1.0}}
+
+% GT: add George Pearsons' suggested options.
+
+\DeclareOption{singlespacing}{\AtEndOfPackage{\singlespacing}}
+\DeclareOption{onehalfspacing}{\AtEndOfPackage{\onehalfspacing}}
+\DeclareOption{doublespacing}{\AtEndOfPackage{\doublespacing}}
+
+\ProcessOptions
+
+% GT: Sat 28 Sep 1996: Widely using \newcommand, \renewcommand, and
+% \newenvironment, instead of \def.
+
+% ** Line space commands.
+
+\newcommand{\setstretch}[1]{%
+ \def\baselinestretch{#1}%
+ \@currsize
+}
+
+% GT: Sat 28 Sep 1996: spacing commands and environments modified to
+% use \setstretch instead of \baselinestretch.
+%
+% GT: Sat 28 Sep 1996: No, I don't know understand the line spacing
+% algorithms! If someone (LaTeX team) can enlighten me as to the
+% general rule, please do! It would be very pleasant if setspace.sty
+% were suited for document font sizes other than 10, 11 and 12 pt.
+%
+% GT: Tue 10 Dec 1996: Instead of fixing singlespacing to exact unity,
+% allow user to redefine it (only slightly, please!) from its initial
+% value of unity, in the case when a particular font is slightly larger
+% or slightly smaller than its point size would indicate. This change
+% affects setspace's single spacing commands, and LaTeX's footnote and
+% float environments. The one and a half, double, and arbitrary
+% spacing commands are unaltered.
+
+\newcommand{\SetSinglespace}[1]{%
+ \def\setspace@singlespace{#1}%
+}
+
+% Here's the default single line spacing value.
+\SetSinglespace{1}
+
+\newcommand{\singlespacing}{%
+ \setstretch {\setspace@singlespace}% normally 1
+ \vskip \baselineskip % Correction for coming into singlespace
+}
+
+\newcommand{\onehalfspacing}{%
+ \setstretch{1.25}% default
+ \ifcase \@ptsize \relax % 10pt
+ \setstretch {1.25}%
+ \or % 11pt
+ \setstretch {1.213}%
+ \or % 12pt
+ \setstretch {1.241}%
+ \fi
+}
+
+\newcommand{\doublespacing}{%
+ \setstretch {1.667}% default
+ \ifcase \@ptsize \relax % 10pt
+ \setstretch {1.667}%
+ \or % 11pt
+ \setstretch {1.618}%
+ \or % 12pt
+ \setstretch {1.655}%
+ \fi
+}
+
+% ** Modification of the LaTeX command \@setsize.
+
+%---Stretch the baseline BEFORE calculating the strut size. This improves
+% spacing below tabular environments etc., probably...
+% Comments are welcomed.
+
+% GT: Sun 29 Sep 1996: Question: Is this code anywhere near correct
+% since this part of LaTeX (in, eg, latex.ltx) has been greatly changed?
+
+% GT: Sun 29 Sep 1996: The meanings of the arguments to \@setsize
+% appear to be (whatever these may signify) :
+% current size; font baselineskip; ignored (!); and font size.
+
+% GT: Sun 29 Sep 1996: Note that \@setsize (in latest LaTeX,
+% \@setfontsize, which is called by \@setsize) seems to be the only
+% place in purely modern LaTeX where \@currsize is set, and ltxguide.cls
+% seems to be the only file in the LaTeX base distribution that uses it!
+
+\def\@setsize#1#2#3#4{%
+ % Modified 1993.04.07--GDG per KPC
+ \@nomath#1%
+ \let\@currsize#1%
+ \baselineskip #2%
+ \baselineskip \baselinestretch\baselineskip
+ \parskip \baselinestretch\parskip
+ \setbox\strutbox \hbox{%
+ \vrule height.7\baselineskip
+ depth.3\baselineskip
+ width\z@}%
+ \skip\footins \baselinestretch\skip\footins
+ \normalbaselineskip\baselineskip#3#4}
+
+% ** Float and footnote adjustments to compensate for a change in the
+% ** main text's line spacing.
+
+%---Increase the space between last line of text and footnote rule.
+%\skip\footins 20pt plus4pt minus4pt
+
+%---Reset baselinestretch within floats and footnotes.
+
+% GT: Tue 23 Jan 1996: This is where the conflict with the combination
+% of the color package and the figure environment used to occur.
+
+% Floats.
+
+% GT: Sat 28 Sep 1996: \@xfloat is the only place where \normalsize
+% is still used in setspace.sty !
+
+\let\latex@xfloat=\@xfloat
+\def\@xfloat #1[#2]{%
+ \latex@xfloat #1[#2]%
+ \def\baselinestretch{\setspace@singlespace}%
+ \normalsize
+}
+
+% GT: Wed 24 Jan 1996: This footnote code was copied from LaTeX and
+% modified rather naively. It had to be brought up to date, not only
+% because of LaTeX's new color ability, but also because ther had
+% been major changes to this code in LaTeX at least as far back as
+% March 1992.
+
+% Normal, bottom of the page, footnotes.
+%
+% GT: Based HEAVILY on original LaTeX (2e) code. A standard hook would
+% be MUCH preferred, so that LaTeX's footnote implementation needn't be
+% copied each time it changes.
+%
+% GT: The \protected@edef requires at least the December 1994 LaTeX.
+% This is precisely the kind of VERSION DEPENDENCY situation that
+% cannot (AFAIK) be avoided, because LaTeX (2e) LACKS appropriate
+% standard hooks and/or context markers.
+
+\long\def\@footnotetext#1{%
+ \insert\footins{%
+% GT: Next line added. Hook desired here!
+ \def\baselinestretch {\setspace@singlespace}%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+
+% Minipage footnotes.
+
+\long\def\@mpfootnotetext#1{%
+ \global\setbox\@mpfootins\vbox{%
+ \unvbox \@mpfootins
+% GT: Next line added. Hook desired here!
+ \def\baselinestretch {\setspace@singlespace}%
+ \reset@font\footnotesize
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@mpfootnote\endcsname\@thefnmark}%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+
+% ** Line space environments.
+
+% A single spaced quote (say) is done by surrounding singlespace with quote.
+
+\newenvironment{singlespace}{%
+ \vskip \baselineskip
+ \setstretch {\setspace@singlespace}%
+ \vskip -\baselineskip
+}{%
+ \par
+}
+
+% GT (c/o Mark Olesen), Wed 15 April 1998.
+
+\newenvironment{singlespace*}{%
+ \setstretch {\setspace@singlespace}%
+ \vskip -\baselineskip
+}{%
+ \vskip -0.5\baselineskip
+}
+
+% spacing, doublespace and onehalfspace all are meant to INCREASE the
+% spacing (i.e. calling onehalfspace from within doublespace will not
+% produce a graceful transition between spacings)
+%
+% Next two definitions fixed for consistency with TeX 3.x
+
+% In order to use \newenvironment, while easily using same code for
+% end of each environment, the code that used to be in \endspacing has
+% been moved into a new (but internal) macro, \restore@spacing.
+
+\newcommand{\restore@spacing}{%
+ \par
+ \vskip \parskip
+ \vskip \baselineskip
+ \endgroup
+ \vskip -\parskip
+ \vskip -\baselineskip
+}
+
+\newenvironment{spacing}[1]{%
+ \par
+ \begingroup % moved from \endspacing by PGBR 29-1-91
+ \setstretch {#1}%
+}{%
+ \restore@spacing
+}
+
+% one and a half spacing is 1.5 x pt size
+\newenvironment{onehalfspace}{%
+ \begingroup
+ \onehalfspacing
+}{%
+ \restore@spacing
+}
+
+% double spacing is 2 x pt size
+\newenvironment{doublespace}{%
+ \begingroup
+ \doublespacing
+}{%
+ \restore@spacing
+}
+
+% GT: EMSH chose to omit display math part that follows.
+% She wrote (see above) that the "altered spacing before and after displayed
+% equations ... just looked too much".
+%
+% Fix up spacing before and after displayed math
+% (arraystretch seems to do a fine job for inside LaTeX displayed math,
+% since array and eqnarray seem to be affected as expected).
+% Changing \baselinestretch and doing a font change also works if done here,
+% but then you have to change @setsize to remove the call to @nomath)
+%
+% GT: The \belowdisplayskip line was mistyped; now fixed, courtesy of
+% David Hull.
+%
+% GT: Brett Parnell has addressed EMSH's concern by replacing
+% \baselinestretch by \displayskipstretch in displays, as follows.
+
+\everydisplay\expandafter{%
+ \the\everydisplay
+ \abovedisplayskip \displayskipstretch\abovedisplayskip
+ \belowdisplayskip \displayskipstretch\belowdisplayskip
+ \abovedisplayshortskip \displayskipstretch\abovedisplayshortskip
+ \belowdisplayshortskip \displayskipstretch\belowdisplayshortskip
+}
+
+\endinput
+
+%%% EOF.
diff --git a/vu-cs-standard-thesis/subfigure.sty b/vu-cs-standard-thesis/subfigure.sty
new file mode 100644
index 0000000..64a368d
--- /dev/null
+++ b/vu-cs-standard-thesis/subfigure.sty
@@ -0,0 +1,218 @@
+%%
+%% This is file `subfigure.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% subfigure.dtx (with options: `package')
+%%
+%% Copyright (C) 1988-1995 Steven Douglas Cochran.
+%%
+%% This file is NOT the source for subfigure, because almost all comments
+%% have been stripped from it. It is NOT the preferred form of subfigure
+%% for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file. You can
+%% however redistribute the complete source (subfigure.dtx and
+%% subfigure.ins) and/or modify it under the terms of the GNU General
+%% Public License as published by the Free Software Foundation; either
+%% version 2, or (at your option) any later version.
+%%
+%% The subfigure package is distributed in the hope that it will be
+%% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+%% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% @LaTeX-style-file{
+%% Author = "Steven Douglas Cochran",
+%% Version = "2.0",
+%% Date = "1995/03/06",
+%% Time = "14:43:14",
+%% Filename = "subfigure.sty",
+%% Address = "Digital Mapping Laboratory, School of Computer Science
+%% Carnegie-Mellon University, 5000 Forbes Avenue
+%% Pittsburgh, PA 15213-3891, USA",
+%% Telephone = "(412) 268-5654",
+%% FAX = "(412) 268-5576",
+%% Email = "sdc+@CS.CMU.EDU (Internet)",
+%% CodeTable = "ISO/ASCII",
+%% Keywords = "LaTeX2e, float, figure, table",
+%% Supported = "yes",
+%% Abstract = "LaTeX package for providing support for the
+%% inclusion of small, `sub,' figures and tables. It
+%% simplifies the positioning, captioning and
+%% labeling of them within a single figure or table
+%% environment. In addition, this package allows
+%% such sub-captions to be written to the List of
+%% Figures or List of Tables if desired."
+%% }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx\if@compatibility\undefined\else
+ \NeedsTeXFormat{LaTeX2e}
+ \ProvidesPackage{subfigure}[1995/03/06 v2.0 subfigure package]
+ \typeout{Package: subfigure 1995/03/06 v2.0}
+\fi
+\newif\ifsubcaphang
+\newif\ifsubcapcenter
+\newif\ifsubcapcenterlast
+\newif\ifsubcapnooneline
+\newcommand{\subfigtopskip}{10pt}
+\newcommand{\subfigbottomskip}{10pt}
+\newcommand{\subfigcapskip}{10pt}
+\newcommand{\subfigcapmargin}{10pt}
+\newcommand{\subcapsize}{}
+\newcommand{\subcaplabelfont}{}
+\newcounter{subfigure}[figure]
+\def\thesubfigure{(\alph{subfigure})}
+\newcommand{\@thesubfigure}{{\subcaplabelfont\thesubfigure}\space}
+\let\p@subfigure\thefigure
+\let\ext@subfigure\ext@figure
+\newcommand{\l@subfigure}{%
+ \@dottedxxxline{\ext@subfigure}{2}{3.9em}{2.3em}}
+\newcounter{lofdepth}
+\setcounter{lofdepth}{1}
+\newcounter{subtable}[table]
+\def\thesubtable{(\alph{subtable})}
+\newcommand{\@thesubtable}{{\subcaplabelfont\thesubtable}\space}
+\let\p@subtable\thetable
+\let\ext@subtable\ext@table
+\newcommand{\l@subtable}{%
+ \@dottedxxxline{\ext@subtable}{2}{3.9em}{2.3em}}
+\newcounter{lotdepth}
+\setcounter{lotdepth}{1}
+\ifx\if@compatibility\undefined
+ \subcaphangfalse
+ \subcapcenterfalse
+ \subcapcenterlastfalse
+ \def\subcapsize{\footnotesize}
+\else
+ \DeclareOption{normal}{%
+ \subcaphangfalse
+ \subcapcenterfalse
+ \subcapcenterlastfalse
+ \subcapnoonelinefalse}
+ \DeclareOption{hang}{\subcaphangtrue}
+ \DeclareOption{center}{\subcapcentertrue}
+ \DeclareOption{centerlast}{\subcapcenterlasttrue}
+ \DeclareOption{nooneline}{\subcapnoonelinetrue}
+ \DeclareOption{isu}{\ExecuteOption{hang}}
+ \DeclareOption{anne}{\ExecuteOption{centerlast}}
+ \DeclareOption{scriptsize}{\renewcommand{\subcapsize}{\scriptsize}}
+ \DeclareOption{footnotesize}{\renewcommand{\subcapsize}{\footnotesize}}
+ \DeclareOption{small}{\renewcommand{\subcapsize}{\small}}
+ \DeclareOption{normalsize}{\renewcommand{\subcapsize}{\normalsize}}
+ \DeclareOption{large}{\renewcommand{\subcapsize}{\large}}
+ \DeclareOption{Large}{\renewcommand{\subcapsize}{\Large}}
+ \DeclareOption{up}{\renewcommand{\subcaplabelfont}{\upshape}}
+ \DeclareOption{it}{\renewcommand{\subcaplabelfont}{\itshape}}
+ \DeclareOption{sl}{\renewcommand{\subcaplabelfont}{\slshape}}
+ \DeclareOption{sc}{\renewcommand{\subcaplabelfont}{\scshape}}
+ \DeclareOption{md}{\renewcommand{\subcaplabelfont}{\mdseries}}
+ \DeclareOption{bf}{\renewcommand{\subcaplabelfont}{\bfseries}}
+ \DeclareOption{rm}{\renewcommand{\subcaplabelfont}{\rmfamily}}
+ \DeclareOption{sf}{\renewcommand{\subcaplabelfont}{\sffamily}}
+ \DeclareOption{tt}{\renewcommand{\subcaplabelfont}{\ttfamily}}
+ \ExecuteOptions{normal,footnotesize}
+ \ProcessOptions
+\fi
+\newcommand{\subfigure}{%
+ \bgroup
+ \advance\csname c@\@captype\endcsname\@ne
+ \refstepcounter{sub\@captype}%
+ \leavevmode
+ \@ifnextchar [%
+ {\@subfloat{sub\@captype}}%
+ {\@subfloat{sub\@captype}[\@empty]}}
+\let\subtable\subfigure
+\def\@subfloat#1[#2]#3{%
+ \setbox\@tempboxa \hbox{#3}%
+ \@tempdima=\wd\@tempboxa
+ \vtop{%
+ \vbox{
+ \vskip\subfigtopskip
+ \box\@tempboxa}%
+ \ifx \@empty#2\relax \else
+ \vskip\subfigcapskip
+ \@subcaption{#1}{#2}%
+ \fi
+ \vskip\subfigbottomskip}%
+ \egroup}
+\newcommand{\@subfigcaptionlist}{}
+\newcommand{\@subcaption}[2]{%
+ \begingroup
+ \let\label\@gobble
+ \def\protect{\string\string\string}%
+ \xdef\@subfigcaptionlist{%
+ \@subfigcaptionlist,%
+ {\protect\numberline {\@currentlabel}%
+ \noexpand{\ignorespaces #2}}}%
+ \endgroup
+ \@nameuse{@make#1caption}{\@nameuse{@the#1}}{#2}}
+\newcommand{\@makesubfigurecaption}[2]{%
+ \setbox\@tempboxa \hbox{%
+ \subcapsize
+ \ignorespaces #1%
+ \ignorespaces #2}%
+ \@tempdimb=-\subfigcapmargin
+ \multiply\@tempdimb\tw@
+ \advance\@tempdimb\@tempdima
+ \hbox to\@tempdima{%
+ \hfil
+ \ifdim \wd\@tempboxa >\@tempdimb
+ \subfig@caption{#1}{#2}%
+ \else\ifsubcapnooneline
+ \subfig@caption{#1}{#2}%
+ \else
+ \box\@tempboxa
+ \fi\fi
+ \hfil}}
+\let\@makesubtablecaption\@makesubfigurecaption
+\newcommand{\subfig@caption}[2]{%
+ \ifsubcaphang
+ \sbox{\@tempboxa}{%
+ \subcapsize
+ \ignorespaces #1}%
+ \addtolength{\@tempdimb}{-\wd\@tempboxa}%
+ \usebox{\@tempboxa}%
+ \subfig@captionpar{\@tempdimb}{#2}%
+ \else
+ \subfig@captionpar{\@tempdimb}{#1#2}%
+ \fi}
+\newcommand{\subfig@captionpar}[2]{%
+ \parbox[t]{#1}{%
+ \strut
+ \ifsubcapcenter
+ \setlength{\leftskip}{\@flushglue}%
+ \setlength{\rightskip}{\@flushglue}%
+ \setlength{\parfillskip}{\z@skip}%
+ \else\ifsubcapcenterlast
+ \addtolength{\leftskip}{0pt plus 1fil}%
+ \addtolength{\rightskip}{0pt plus -1fil}%
+ \setlength{\parfillskip}{0pt plus 2fil}%
+ \fi\fi
+ \subcapsize
+ \ignorespaces #2%
+ \par}}
+\newcommand{\@dottedxxxline}[6]{%
+ \ifnum #2>\@nameuse{c@#1depth}\else
+ \@dottedtocline{0}{#3}{#4}{#5}{#6}
+ \fi}
+\let\subfig@oldcaption\@caption
+\long\def\@caption#1[#2]#3{%
+ \subfig@oldcaption{#1}[{#2}]{#3}%
+ \@for \@tempa:=\@subfigcaptionlist \do {%
+ \ifx\@empty\@tempa\relax \else
+ \addcontentsline
+ {\@nameuse{ext@sub#1}}%
+ {sub#1}%
+ {\@tempa}%
+ \fi}%
+ \gdef\@subfigcaptionlist{}}
+\endinput
+%%
+%% End of file `subfigure.sty'.
diff --git a/vu-cs-standard-thesis/thesis.tex b/vu-cs-standard-thesis/thesis.tex
new file mode 100644
index 0000000..771c993
--- /dev/null
+++ b/vu-cs-standard-thesis/thesis.tex
@@ -0,0 +1,293 @@
+
+% ----------------------------------------------------------------------
+% LATEX TEMPLATE FOR PhD THESIS
+% ----------------------------------------------------------------------
+
+% based on Harish Bhanderi's PhD/MPhil template, then Uni Cambridge
+% http://www-h.eng.cam.ac.uk/help/tpl/textprocessing/ThesisStyle/
+% corrected and extended in 2007 by Jakob Suckale, then MPI-CBG PhD programme
+% and made available through OpenWetWare.org - the free biology wiki
+
+
+%: Style file for Latex
+% Most style definitions are in the external file PhDthesisPSnPDF.
+% In this template package, it can be found in ./Latex/Classes/
+\documentclass[twoside,11pt]{Latex/Classes/PhDthesisPSnPDF}
+
+
+%: Macro file for Latex
+% Macros help you summarise frequently repeated Latex commands.
+% Here, they are placed in an external file /Latex/Macros/MacroFile1.tex
+% An macro that you may use frequently is the figuremacro (see introduction.tex)
+% \include{Latex/Macros/MacroFile1}
+\usepackage[T1]{fontenc}
+\usepackage{array}
+\usepackage{pdfpages}
+\usepackage{xspace}
+\usepackage{xcolor}
+\usepackage{lipsum}
+
+%\usepackage{graphics}
+% or use the graphicx package for more complicated commands
+%\usepackage{graphicx}
+
+%: ----------------------------------------------------------------------
+%: TITLE PAGE: name, degree,..
+% ----------------------------------------------------------------------
+\usepackage{graphicx}
+
+ \textwidth 15cm
+ \textheight 22cm
+ \parindent 10pt
+ \oddsidemargin 0.85cm
+ \evensidemargin 0.37cm
+
+\newcommand{\ie}{\emph{i.e.,}\xspace}
+\newcommand{\eg}{\emph{e.g.,}\xspace}
+\newcommand{\etc}{etc.\xspace}
+\newcommand{\etal}{\emph{et~al.}\xspace}
+
+\newcommand{\todo}[1]{\textcolor{blue}{#1}}
+
+\begin{document}
+
+\thispagestyle{empty}
+
+\begin{center}
+
+Vrije Universiteit Amsterdam \hspace*{2cm} Universiteit van Amsterdam
+
+\vspace{1mm}
+
+\hspace*{-6.5cm}\includegraphics[height=20mm]{0_frontmatter/figures/vu-griffioen.pdf}
+
+\vspace*{-2cm}\hspace*{7.5cm}\includegraphics[height=15mm]{0_frontmatter/figures/uva_logo.jpg}
+
+\vspace{2cm}
+
+{\Large Master Thesis}
+
+\vspace*{1.5cm}
+
+\rule{.9\linewidth}{.6pt}\\[0.4cm]
+{\huge \bfseries Title of the Thesis\par}\vspace{0.4cm}
+\rule{.9\linewidth}{.6pt}\\[1.5cm]
+
+\vspace*{2mm}
+
+{\Large
+\begin{tabular}{l}
+{\bf Author:} ~~student name ~~~~ (student number)
+\end{tabular}
+}
+
+\vspace*{2cm}
+
+\begin{tabular}{ll}
+{\it 1st supervisor:} & ~~supervisor name \\
+{\it daily supervisor:} & ~~supervisor name ~~~~ (company, if applicable) \\
+{\it 2nd reader:} & ~~supervisor name
+\end{tabular}
+
+\vspace*{2.5cm}
+
+\textit{A thesis submitted in fulfillment of the requirements for\\ the joint UvA-VU Master of Science degree in Computer Science}
+
+\vspace*{1.8cm}
+
+\today\\[4cm] % Date
+
+\end{center}
+
+\newpage
+
+
+% ----------------------------------------------------------------------
+
+% turn of those nasty overfull and underfull hboxes
+\hbadness=10000
+\hfuzz=50pt
+
+
+%: --------------------------------------------------------------
+%: FRONT MATTER: dedications, abstract,..
+% --------------------------------------------------------------
+
+
+%\language{english}
+
+
+% sets line spacing
+\renewcommand\baselinestretch{1.2}
+\baselineskip=18pt plus1pt
+
+
+%: ----------------------- generate cover page ------------------------
+
+\begin{center}
+\textit{``I am the master of my fate, I am the captain of my soul'' \\ from {\em Invictus}, by William Ernest Henley}
+\end{center}
+
+%: ----------------------- cover page back side ------------------------
+% Your research institution may require reviewer names, etc.
+% This cover back side is required by Dresden Med Fac; uncomment if needed.
+
+\newpage
+%\vspace{10mm}
+%1. First Reader: Name Surname
+%
+%\vspace{10mm}
+%2. Daily Supervisor: Name Surname
+%
+%\vspace{10mm}
+%3. Second Reader: Name Surname
+%
+%\vspace{10mm}
+%4. Industrial Supervisor: Name Surname
+%
+%\vspace{20mm}
+%Day of the defense:
+
+%\vspace{20mm}
+%\hspace{70mm}Signature from head of PhD committee:
+
+
+
+%: ----------------------- abstract ------------------------
+
+% Your institution may have specific regulations if you need an abstract and where it is to be placed in the document. The default here is just after title.
+
+\include{0_frontmatter/abstract}
+
+% The original template provides and abstractseparate environment, if your institution requires them to be separate. I think it's easier to print the abstract from the complete thesis by restricting printing to the relevant page.
+% \begin{abstractseparate}
+% \input{Abstract/abstract}
+% \end{abstractseparate}
+
+
+%: ----------------------- tie in front matter ------------------------
+
+\frontmatter
+\include{0_frontmatter/dedication}
+\include{0_frontmatter/acknowledgement}
+
+
+%: ----------------------- contents ------------------------
+
+\setcounter{secnumdepth}{3} % organisational level that receives a numbers
+\setcounter{tocdepth}{3} % print table of contents for level 3
+\tableofcontents % print the table of contents
+% levels are: 0 - chapter, 1 - section, 2 - subsection, 3 - subsection
+
+
+%: ----------------------- list of figures/tables ------------------------
+
+\listoffigures % print list of figures
+
+\listoftables % print list of tables
+
+
+
+
+%: ----------------------- glossary ------------------------
+
+% Tie in external source file for definitions: /0_frontmatter/glossary.tex
+% Glossary entries can also be defined in the main text. See glossary.tex
+%
+%\include{0_frontmatter/glossary}
+
+%\begin{multicols}{2} % \begin{multicols}{#columns}[header text][space]
+%\begin{footnotesize} % scriptsize(7) < footnotesize(8) < small (9) < normal (10)
+
+%\printnomenclature[1.5cm] % [] = distance between entry and description
+%\label{nom} % target name for links to glossary
+
+%\end{footnotesize}
+%\end{multicols}
+
+
+
+%: --------------------------------------------------------------
+%: MAIN DOCUMENT SECTION
+% --------------------------------------------------------------
+
+% the main text starts here with the introduction, 1st chapter,...
+\mainmatter
+
+\renewcommand{\chaptername}{} % uncomment to print only "1" not "Chapter 1"
+
+
+%: ----------------------- subdocuments ------------------------
+
+% Parts of the thesis are included below. Rename the files as required.
+% But take care that the paths match. You can also change the order of appearance by moving the include commands.
+
+\input{sections/intro}
+\input{sections/background}
+\input{sections/overview}
+\input{sections/design}
+\input{sections/evaluation}
+\input{sections/discussion}
+\input{sections/threats}
+\input{sections/related}
+\input{sections/conclusion}
+
+
+% --------------------------------------------------------------
+%: BACK MATTER: appendices, refs,..
+% --------------------------------------------------------------
+
+% the back matter: appendix and references close the thesis
+
+
+%: ----------------------- bibliography ------------------------
+
+% The section below defines how references are listed and formatted
+% The default below is 2 columns, small font, complete author names.
+% Entries are also linked back to the page number in the text and to external URL if provided in the BibTex file.
+
+% PhDbiblio-url2 = names small caps, title bold & hyperlinked, link to page
+%\begin{multicols}{2} % \begin{multicols}{ # columns}[ header text][ space]
+%\begin{tiny} % tiny(5) < scriptsize(7) < footnotesize(8) < small (9)
+
+\bibliographystyle{Latex/Classes/PhDbiblio-url2} % Title is link if provided
+\renewcommand{\bibname}{References} % changes the header; default: Bibliography
+
+\bibliography{references} % adjust this to fit your BibTex file
+
+\include{sections/appendix}
+
+%\end{tiny}
+%\end{multicols}
+
+
+
+% --------------------------------------------------------------
+% Various bibliography styles exit. Replace above style as desired.
+
+% in-text refs: (1) (1; 2)
+% ref list: alphabetical; author(s) in small caps; initials last name; page(s)
+%\bibliographystyle{Latex/Classes/PhDbiblio-case} % title forced lower case
+%\bibliographystyle{Latex/Classes/PhDbiblio-bold} % title as in bibtex but bold
+%\bibliographystyle{Latex/Classes/PhDbiblio-url} % bold + www link if provided
+
+%\bibliographystyle{Latex/Classes/jmb} % calls style file jmb.bst
+% in-text refs: author (year) without brackets
+% ref list: alphabetical; author(s) in normal font; last name, initials; page(s)
+
+%\bibliographystyle{plainnat} % calls style file plainnat.bst
+% in-text refs: author (year) without brackets
+% (this works with package natbib)
+
+
+% --------------------------------------------------------------
+
+% according to Dresden med fac summary has to be at the end
+%\include{0_frontmatter/abstract}
+
+%: Declaration of originality
+%\include{8_backmatter/declaration}
+
+
+
+\end{document}
diff --git a/vu-cs-standard-thesis/tocbibind.sty b/vu-cs-standard-thesis/tocbibind.sty
new file mode 100644
index 0000000..ce60fb4
--- /dev/null
+++ b/vu-cs-standard-thesis/tocbibind.sty
@@ -0,0 +1,328 @@
+%%
+%% This is file `tocbibind.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tocbibind.dtx (with options: `usc')
+%%
+%% Copyright 1998, 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA and NIST)
+%% now at: peter.r.wilson@boeing.com
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tocbibind}[2003/02/04 v1.5f extra ToC listings]
+
+\providecommand{\PRWPackageNote}[2]{%
+ \GenericWarning{%
+ (#1)\@spaces\@spaces\@spaces\@spaces
+ }{%
+ Package #1 Note: #2%
+ }%
+}
+\providecommand{\PRWPackageNoteNoLine}[2]{%
+ \PRWPackageNote{#1}{#2\@gobble}%
+}
+
+\newcommand{\@bibquit}{}
+\newif\if@bibchapter
+\@ifundefined{chapter}{%
+ \@bibchapterfalse
+ \@ifundefined{section}{%
+ \PackageWarning{tocbibind}%
+ {I don't recognize any sectional divisions.\MessageBreak
+ I hope you have used the `other' option\MessageBreak
+ otherwise I'll ignore the package}
+ \renewcommand{\@bibquit}{\endinput}
+ }{\PRWPackageNoteNoLine{tocbibind}{The document has section divisions}}
+ }{\@bibchaptertrue
+ \PRWPackageNoteNoLine{tocbibind}{The document has chapter divisions}}
+
+\newif\if@inltxdoc
+\@ifclassloaded{ltxdoc}{\@inltxdoctrue}{\@inltxdocfalse}
+
+\newif\if@dotocbib\@dotocbibtrue
+\newif\if@dotocind\@dotocindtrue
+\newif\if@dotoctoc\@dotoctoctrue
+\newif\if@dotoclot\@dotoclottrue
+\newif\if@dotoclof\@dotocloftrue
+
+\newif\if@donumbib\@donumbibfalse
+\newif\if@donumindex\@donumindexfalse
+\newif\if@dot@cb@bsection\@dot@cb@bsectionfalse
+
+\DeclareOption{section}{\@bibchapterfalse}
+\DeclareOption{notbib}{\@dotocbibfalse}
+\DeclareOption{notindex}{\@dotocindfalse}
+\DeclareOption{nottoc}{\@dotoctocfalse}
+\DeclareOption{notlot}{\@dotoclotfalse}
+\DeclareOption{notlof}{\@dotocloffalse}
+\DeclareOption{numbib}{\@donumbibtrue}
+\DeclareOption{numindex}{\@donumindextrue}
+
+\DeclareOption{chapter}{%
+ \if@bibchapter\else
+ \PackageWarning{tocbibind}%
+ {Chapters are undefined, using section instead}
+ \fi}
+
+\DeclareOption{other}{\renewcommand{\@bibquit}{}
+ \@bibchapterfalse}
+\DeclareOption{none}{%
+ \@dotocbibfalse
+ \@dotocindfalse
+ \@dotoctocfalse
+ \@dotoclotfalse
+ \@dotocloffalse
+ \@donumbibfalse
+ \@donumindexfalse
+}
+\ProcessOptions\relax
+\@bibquit
+
+\if@bibchapter
+ \PRWPackageNoteNoLine{tocbibind}{Using chapter style headings, unless overridden}
+\else
+ \PRWPackageNoteNoLine{tocbibind}{Using section or other style headings}
+\fi
+\if@inltxdoc \@dotocindfalse \fi
+
+\newcommand{\@tocextra}{section}
+\newcommand{\tocotherhead}[1]{\renewcommand{\@tocextra}{#1}}
+
+\providecommand{\phantomsection}{}
+
+\newcommand{\tocetcmark}[1]{%
+ \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}}
+\newcommand{\prw@mkboth}[1]{\tocetcmark{#1}}
+
+\newcommand{\toc@section}[2]{%
+ \@nameuse{#1}*{#2\prw@mkboth{#2}}
+ \phantomsection
+ \addcontentsline{toc}{#1}{#2}}
+
+\newcommand{\toc@headstar}[2]{%
+ \@nameuse{#1}*{{#2}}}
+
+\newcommand{\toc@chapter}[1]{%
+ \chapter*{#1\prw@mkboth{#1}}
+ \phantomsection
+ \addcontentsline{toc}{chapter}{#1}}
+
+\ifx\bibname\undefined
+ \ifx\refname\undefined
+ \newcommand{\tocbibname}{References}
+ \else
+ \newcommand{\tocbibname}{\refname}
+ \fi
+\else
+ \newcommand{\tocbibname}{\bibname}
+\fi
+
+\providecommand{\indexname}{Index}
+\newcommand{\setindexname}[1]{\renewcommand{\indexname}{#1}}
+\providecommand{\contentsname}{Contents}
+\newcommand{\settocname}[1]{\renewcommand{\contentsname}{#1}}
+\providecommand{\listtablename}{List of Tables}
+\newcommand{\setlotname}[1]{\renewcommand{\listtablename}{#1}}
+\providecommand{\listfigurename}{List of Figures}
+\newcommand{\setlofname}[1]{\renewcommand{\listfigurename}{#1}}
+\newcommand{\settocbibname}[1]{\renewcommand{\tocbibname}{#1}}
+
+\newcommand{\t@cb@bchapsec}{%
+ \if@bibchapter
+ \if@donumbib
+ \chapter{\tocbibname}%
+ \else
+ \toc@chapter{\tocbibname}%
+ \fi
+ \else
+ \if@donumbib
+ \@nameuse{\@tocextra}{\tocbibname}%
+ \else
+ \toc@section{\@tocextra}{\tocbibname}%
+ \fi
+ \fi}
+\newcommand{\t@cb@bsection}{%
+ \if@donumbib
+ \@nameuse{\@tocextra}{\tocbibname}%
+ \else
+ \toc@section{\@tocextra}{\tocbibname}%
+ \fi}
+
+\if@dotocbib
+ \@ifpackageloaded{natbib}{}{% natbib not loaded
+ \newcommand{\bibsection}{\t@cb@bchapsec}
+ \renewenvironment{thebibliography}[1]{%
+ \bibsection
+ \begin{thebibitemlist}{#1}}{\end{thebibitemlist}}}
+ \newenvironment{thebibitemlist}[1]{
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+
+ \@ifpackagewith{chapterbib}{sectionbib}%
+ {\renewcommand{\sectionbib}[2]{}}%
+ {}
+
+\fi
+
+\AtBeginDocument{%
+ \@ifpackagewith{natbib}{sectionbib}{\@dot@cb@bsectiontrue}{}
+ \@ifpackagewith{chapterbib}{sectionbib}%
+ {\@dot@cb@bsectiontrue
+ \@ifundefined{sectionbib}{}{\def\sectionbib#1#2{}}}%
+ {}
+
+ \if@dotocbib
+ \if@dot@cb@bsection
+ \renewcommand{\bibsection}{\t@cb@bsection}%
+ \else
+ \renewcommand{\bibsection}{\t@cb@bchapsec}%
+ \fi
+ \fi
+}
+
+\if@inltxdoc\else
+ \renewenvironment{theindex}%
+ {\if@twocolumn
+ \@restonecolfalse
+ \else
+ \@restonecoltrue
+ \fi
+ \if@bibchapter
+ \if@donumindex
+ \refstepcounter{chapter}
+ \twocolumn[\vspace*{2\topskip}%
+ \@makechapterhead{\indexname}]%
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}\indexname}
+ \chaptermark{\indexname}
+ \else
+ \if@dotocind
+ \twocolumn[\vspace*{2\topskip}%
+ \@makeschapterhead{\indexname}]%
+ \prw@mkboth{\indexname}
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\indexname}
+ \else
+ \twocolumn[\vspace*{2\topskip}%
+ \@makeschapterhead{\indexname}]%
+ \prw@mkboth{\indexname}
+ \fi
+ \fi
+ \else
+ \if@donumindex
+ \twocolumn[\vspace*{-1.5\topskip}%
+ \@nameuse{\@tocextra}{\indexname}]%
+ \csname \@tocextra mark\endcsname{\indexname}
+ \else
+ \if@dotocind
+ \twocolumn[\vspace*{-1.5\topskip}%
+ \toc@headstar{\@tocextra}{\indexname}]%
+ \prw@mkboth{\indexname}
+ \phantomsection
+ \addcontentsline{toc}{\@tocextra}{\indexname}
+ \else
+ \twocolumn[\vspace*{-1.5\topskip}%
+ \toc@headstar{\@tocextra}{\indexname}]%
+ \prw@mkboth{\indexname}
+ \fi
+ \fi
+ \fi
+ \thispagestyle{plain}\parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \let\item\@idxitem}
+ {\if@restonecol\onecolumn\else\clearpage\fi}
+\fi
+
+\newcommand{\toc@start}{%
+ \if@bibchapter
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \fi}
+
+\newcommand{\toc@finish}{%
+ \if@bibchapter
+ \if@restonecol\twocolumn\fi
+ \fi}
+
+\newcommand{\tocfile}[2]{%
+ \toc@start
+ \if@bibchapter
+ \toc@chapter{#1}
+ \else
+ \toc@section{\@tocextra}{#1}
+ \fi
+ \@starttoc{#2}
+ \toc@finish}
+
+\if@dotoctoc
+ \renewcommand{\tableofcontents}{%
+ \tocfile{\contentsname}{toc}
+ }
+\fi
+
+\if@dotoclot
+ \renewcommand{\listoftables}{%
+ \tocfile{\listtablename}{lot}
+ }
+\fi
+
+\if@dotoclof
+ \renewcommand{\listoffigures}{%
+ \tocfile{\listfigurename}{lof}
+ }
+\fi
+
+\newcommand{\simplechapter}[1][\@empty]{%
+ \let\@tbiold@makechapterhead\@makechapterhead
+ \renewcommand{\@makechapterhead}[1]{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \normalfont
+ \interlinepenalty\@M
+ \Huge\bfseries #1\space\thechapter\simplechapterdelim\space
+ ##1\par\nobreak
+ \vskip 40\p@
+ }}
+}
+\newcommand{\restorechapter}{%
+ \@ifundefined{@tbiold@makechapterhead}{}%
+ {\let\@makechapterhead\@tbiold@makechapterhead}
+}
+\newcommand{\simplechapterdelim}{}
+
+\newcommand{\tocchapter}{%
+ \providecommand{\@makechapterhead}{}
+ \simplechapter
+ \renewcommand{\toc@chapter}[1]{\chapter{##1}}
+}
+\newcommand{\tocsection}{%
+ \renewcommand{\toc@section}[2]{\@nameuse{##1}{##2}}
+}
+
+\endinput
+%%
+%% End of file `tocbibind.sty'.
diff --git a/vu-cs-standard-thesis/vmargin.sty b/vu-cs-standard-thesis/vmargin.sty
new file mode 100644
index 0000000..2f4f67d
--- /dev/null
+++ b/vu-cs-standard-thesis/vmargin.sty
@@ -0,0 +1,576 @@
+%%----------------------------------------------------------------------
+%% vmargin.sty
+%
+% LaTeX package which introduces paper sizes and provides macros for
+% setting document margins.
+% This package supersedes package vpage.
+%
+% This file can be made part of a format by typing \input vmargin.sty
+% before dumping the format.
+%
+% Documentation & history after (last) \endinput.
+%
+% Still works with LaTeX 2.09.
+% Supported = yes.
+%
+%
+% Copyright (C) 1993, 1994, 1995, 1996, 1999 by:
+%
+% Volker Kuhlmann
+% c/o University of Canterbury
+% ELEC Dept
+% Creyke Road
+% Christchurch, New Zealand
+% E-Mail: v.kuhlmann@elec.canterbury.ac.nz
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License, distributed from CTAN
+% archives as macros/latex/base/lppl.txt; either
+% version 1 of the License, or (at your option) any later version.
+%
+%%----------------------------------------------------------------------
+
+%\def\filename{Vmargin}
+\def\filename{vmargin}
+\def\fileversion{V2.2}
+\def\filedate{1999/06/01}
+
+\@ifundefined{Vmargin}{}{\endinput}
+
+\@ifundefined{documentclass}{
+ \edef\Vmargin{Style `\filename', \fileversion, \filedate}
+ \expandafter\everyjob\expandafter{\the\everyjob\typeout{\Vmargin}}
+ \typeout{\Vmargin}
+}{
+ \NeedsTeXFormat{LaTeX2e}[1994/06/01]
+ \ProvidesPackage{\filename}[\filedate]
+ \edef\Vmargin{Package `\filename', \fileversion, <\filedate>}
+ \expandafter\everyjob\expandafter{\the\everyjob\typeout{\Vmargin}}
+ \typeout{\Vmargin}
+}
+
+
+% new lengths: \PaperWidth, \PaperHeight
+% new if: \ifLandscape
+%
+\newdimen\PaperWidth
+\newdimen\PaperHeight
+%
+\newif\ifLandscape
+
+
+% \setpapersize
+%
+\def\setpapersize{\@ifnextchar[{\@@setps}{\@@setps[portrait]}}
+\def\@@setps[#1]{%
+ \@ifundefined{po@#1}{\@name@err{#1}}{\@nameuse{po@#1}}%
+ \@@@setps}
+\def\@@@setps#1{%
+ \@ifundefined{paper@#1}{\@name@err{#1}}{}%
+ \csname paper@#1\endcsname}
+ % \usename{paper@#1} inside arg to \@ifundefined does not work
+ % with papersize "custom".
+\def\po@portrait{\Landscapefalse}
+\def\po@landscape{\Landscapetrue}
+\def\@po@{\ifLandscape\dimen0\PaperWidth
+ \PaperWidth\PaperHeight\PaperHeight\dimen0\fi
+ \@ifundefined{paperwidth}{}{\paperwidth\PaperWidth}%
+ \@ifundefined{paperheight}{}{\paperheight\PaperHeight}}
+\@ifundefined{PackageError}{
+ \def\@name@err#1{%
+ \typeout{*****> \string\setpapersize: illegal parameter: #1}}
+}{
+ \def\@name@err#1{\PackageError{\filename}%
+ {Paper size or orientation unknown: #1}{}}
+}
+
+
+% pre-defined paper/envelope sizes
+%
+% A0, A1, A2, ..., A9, B0, B1, ..., B9, C0, C1, ..., C9
+% USletter, USlegal, USexecutive
+% custom
+%
+\def\@defmetricpaper#1#2#3{%
+ \begingroup
+ \count0=0
+ \def\w{\dimen1 }\def\h{\dimen2 }\def\s{\dimen3 }%
+ \w#2\h#3
+ \def\l{11}
+ \loop
+ \begingroup
+ \def\t{\the\count0}
+ \catcode`\t=11 % letter
+ \expandafter\xdef\csname paper@#1\the\count0\endcsname{%
+ \PaperWidth\the\w\PaperHeight\the\h\noexpand\@po@}
+ \endgroup
+ \s\w\w.5\h\h\s
+ \ifnum\the\count0<9
+ \advance\count0 by 1
+ \repeat
+ \endgroup
+}
+%
+\@defmetricpaper{A}{840.9mm}{1189.2mm}
+\@defmetricpaper{B}{1000mm}{1414mm}
+\@defmetricpaper{C}{917mm}{1297mm}
+%
+\let\@defmetricpaper=\relax % delete definition to save memory
+%
+\def\paper@USletter{\PaperWidth 8.5in \PaperHeight 11in \@po@}
+\def\paper@USlegal{\PaperWidth 8.5in \PaperHeight 14in \@po@}
+\def\paper@USexecutive{\PaperWidth 7.25in\PaperHeight 10.5in \@po@}
+%
+\def\paper@custom#1#2{\PaperWidth#1\PaperHeight#2\@po@}
+
+
+% margin@offset
+%
+% Compensates for the +1in/+1in top/left corner
+% by either reducing the margins or \hoffset, \voffset by 1in.
+% This macro is only defined here if it is not already defined!
+% (see documentation at the end)
+%
+\newif\if@shiftmargins
+\@shiftmarginsfalse % this MUST be default (pageframe.sty)
+%
+\@ifundefined{margin@offset}{
+\def\margin@offset{
+ \if@shiftmargins
+ \oddsidemargin -1in\evensidemargin -1in\topmargin -1in
+ \hoffset 0in\voffset 0in\relax
+ \else
+ \oddsidemargin 0in\evensidemargin 0in\topmargin 0in
+ \hoffset -1in\voffset -1in\relax
+ \fi
+}}{}
+%
+\def\shiftmargins{\@shiftmarginstrue}
+
+
+% Setting margins
+%
+% \setmargins{leftmargin}{topmargin}{textwidth}{textheight}%
+% {headheight}{headsep}{footheight}{footskip}
+%
+\newcommand\setmargins[8]{%
+ \margin@offset
+ \advance\oddsidemargin #1
+ \advance\evensidemargin \PaperWidth % = paperwidth - left
+ \advance\evensidemargin -#1 % - width
+ \advance\evensidemargin -#3
+ \advance\topmargin #2
+ \textwidth #3
+ \textheight #4
+ \headheight #5
+ \headsep #6
+ \@ifundefined{footheight}{}{\footheight=#7}%
+ \footskip #8
+ \chk@dimen{#1}{#2}{#3}{#4}%
+}
+%
+% \setmarginsrb{leftmargin}{topmargin}{rightmargin}{bottommargin}%
+% {headheight}{headsep}{footheight}{footskip}
+%
+\newcommand\setmarginsrb[8]{%
+ \margin@offset
+ \textwidth \PaperWidth % = paperwidth
+ \advance\textwidth -#1 % - left - right
+ \advance\textwidth -#3
+ \textheight \PaperHeight % = paperheight - top
+ \advance\textheight -#2 % - headheight
+ \advance\textheight -#5 % - headsep
+ \advance\textheight -#6 % - footskip - bottom
+ \advance\textheight -#8
+ \advance\textheight -#4
+ \advance\oddsidemargin #1
+ \advance\evensidemargin \PaperWidth % = paperwidth
+ \advance\evensidemargin -#1 % - left - width
+ \advance\evensidemargin -\textwidth
+ \advance\topmargin #2
+ \headheight #5
+ \headsep #6
+ \@ifundefined{footheight}{}{\footheight=#7}%
+ \footskip #8
+ \chk@dimen{#1}{#2}{#3}{#4}%
+}
+%
+% \setmargnohf{leftmargin}{topmargin}{textwidth}{textheight}
+% headheight, headsep, footheight, footskip set to 0pt
+\newcommand\setmargnohf[4]{%
+ \setmargins{#1}{#2}{#3}{#4}\z@\z@\z@\z@
+ \pagestyle{empty}}
+%
+% \setmargnohfrb{leftmargin}{topmargin}{rightmargin}{bottommargin}
+% headheight, headsep, footheight, footskip set to 0pt
+\newcommand\setmargnohfrb[4]{%
+ \setmarginsrb{#1}{#2}{#3}{#4}\z@\z@\z@\z@
+ \pagestyle{empty}}
+%
+% \setmarg{leftmargin}{topmargin}{textwidth}{textheight}
+% headheight, headsep, footheight, footskip unchanged
+\newcommand\setmarg[4]{%
+ \setmargins{#1}{#2}{#3}{#4}%
+ \headheight\headsep\footheight\footskip}
+%
+% \setmargrb{leftmargin}{topmargin}{rightmargin}{bottommargin}
+% headheight, headsep, footheight, footskip unchanged
+\newcommand\setmargrb[4]{%
+ \setmarginsrb{#1}{#2}{#3}{#4}%
+ \headheight\headsep\footheight\footskip}
+%
+% h-warning if [leftmarg + textwidth > paperwidth] resp.
+% if [leftmarg + rightmarg > paperwidth].
+% v-warning if [topmarg + textheight > paperheight] resp.
+% if [topmarg + bottommarg > paperheight].
+\def\chk@dimen#1#2#3#4{%
+ \dimen0= #1
+ \advance\dimen0 by#3
+ \advance\dimen0 -\PaperWidth
+ \dimen1= #2
+ \advance\dimen1 by#4
+ \advance\dimen1 \headheight
+ \advance\dimen1 \headsep
+ \advance\dimen1 \footskip
+ \advance\dimen1 -\PaperHeight
+ \chk@dimen@err
+}
+\@ifundefined{PackageError}{
+ \def\chk@dimen@err{
+ \ifnum\dimen0>\z@\typeout{vmargin Warning: Horizontal dimensions
+ exceed paper width by \the\dimen0}\fi
+ \ifnum\dimen1>\z@\typeout{vmargin Warning: Vertical dimensions
+ exceed paper height by \the\dimen1}\fi
+ }
+}{
+ \def\chk@dimen@err{
+ \ifnum\dimen0>\z@\PackageError{\filename}{%
+ Horizontal dimensions exceed paper width by \the\dimen0}{}\fi
+ \ifnum\dimen1>\z@\PackageError{\filename}{%
+ Vertical dimensions exceed paper height by \the\dimen1}{}\fi
+ }
+}
+
+
+%
+% DEFAULTS:
+%
+\setpapersize{A4}
+\def\@hf@dflt{}
+\@ifundefined{DeclareOption}{
+}{
+ \DeclareOption{shiftmargins}{\shiftmargins}
+ \DeclareOption{portrait}{\Landscapefalse}
+ \DeclareOption{landscape}{\Landscapetrue}
+ \DeclareOption{nohf}{\def\@hf@dflt{y}}
+ \DeclareOption*{\@@@setps{\CurrentOption}}
+ \ProcessOptions\relax % process options in order of declaration!
+}
+\if y\@hf@dflt
+ \setmargnohfrb{35mm}{20mm}{25mm}{15mm}%
+\else
+ \setmarginsrb{35mm}{20mm}{25mm}{15mm}{12pt}{11mm}{0pt}{11mm}%
+\fi
+
+
+\endinput
+
+%%----------------------------------------------------------------------
+
+Page Size and Margins
+=====================
+
+These macros make it easy to set page margins for a chosen paper size.
+Actual dimensions of the most common paper sizes are stored and need
+not be remembered.
+
+Two sided printing is supported, meaning that if on odd pages the left
+margin is, say, 30mm and the right margin is 20mm, it will be vice
+versa on even pages. This gives equal margins on the outer and equal
+margins on the inner edge of the paper, as expected e.g. for a book.
+
+vmargin is designed to be reasonably restricted in both memory usage
+and processing time, so that the common task of setting margins is not
+too distracting. If you are looking for something fancier try the
+geometry package.
+
+The basic procedure of using vmargin is to first set a paper size, and
+then to set the margins. The margin setting functions depend on the
+paper size. Setting the paper size and margins are two independent
+operations, i.e. setting the paper size does not directly affect the
+margins but will affect the next margin setting command.
+
+The size of the paper can be set with
+
+ \setpapersize{<size>}
+
+<size> can be A0, A1, ..., A9, B0, B1, ..., B9, C0, ..., C9, USletter,
+USlegal, and USexecutive. The metric paper sizes are not stored but
+calculated. \setpapersize by default sets the orientation to portrait.
+
+Landscape format is selected by using the optional argument
+
+ \setpapersize[landscape]{<size>}
+
+which swaps the width and height dimensions of the paper.
+\setpapersize[portrait]{<size>} is allowed but is the default.
+
+If you have a size which is not pre-defined use
+
+ \setpapersize{custom}{<width>}{<height>}
+
+For <width> and <height> insert the respective dimensions of your
+paper.
+
+\setpapersize stores the actual dimensions of the paper in the length
+variables
+
+ \PaperWidth
+ \PaperHeight
+
+which can be used further, if desired.
+
+ \ifLandscape
+
+yields true if a landscape format is selected. Do not write to
+\PaperWidth, \PaperHeight, or call \Landscapetrue or \Landscapefalse,
+it will not work!!
+
+The margins can be set with
+
+ \setmargins{leftmargin}{topmargin}{textwidth}{textheight}%
+ {headheight}{headsep}{footheight}{footskip}
+
+or with
+
+ \setmarginsrb{leftmargin}{topmargin}{rightmargin}{bottommargin}%
+ {headheight}{headsep}{footheight}{footskip}
+
+In the latter case \textwidth and \textheight are calculated using the
+width and height of the selected paper. The first four parameters of
+the above two commands are used to set \oddsidemargin, \evensidemargin,
+\textwidth, \topmargin, and \textheight.
+
+ \setmargnohf, \setmargnohfrb
+
+Provide a page with no header and footer. They work the same as
+\setmargins, \setmarginsrb except that they only need the first 4
+parameters. The last 4 parameters are set to 0pt. These 2 commands set
+the pagestyle to empty (\pagestyle{empty}) as there is no space for
+headers or footers.
+
+ \setmarg, \setmargrb
+
+are the same as \setmargnohf, \setmargnohfrb except that the last 4
+parameters to \setmargins, \setmarginsrb are unchanged.
+
+Example:
+
+ A4 paper, left margin 30mm, top, right, and bottom margin 20mm
+ each, no headers or footers:
+
+ \setpapersize{A4}
+ \setmarginsrb{30mm}{20mm}{20mm}{20mm}{0pt}{0mm}{0pt}{0mm}
+ \pagestyle{empty}
+
+The same settings would result with:
+
+ \setpapersize{A4}
+ \setmargnohfrb{30mm}{20mm}{20mm}{20mm}
+
+For the default settings please see the part after "DEFAULTS:" (last
+part before \endinput).
+
+The default top and left margins of TeX are +1in. \setmargXXX call
+
+ \margin@offset
+
+which initialises \hoffset, \voffset to -1in and \oddsidemargin,
+\evensidemargin, \topmargin to 0in. \setmargXXX then add the given
+dimensions to \topmargin, \oddsidemargin, \evensidemargin. In some
+cases it might be desired to use \XXXmargin instead of \Xoffset for
+compensation. This can be achieved by telling \margin@offset to
+initialise \Xoffset to 0in and \XXXmargin to -1in. This is done by
+%
+ \shiftmargins.
+%
+If \margin@offset is already defined at the time vmargin is loaded it
+is NOT redefined! Therefore if \margin@offset is defined before vmargin
+is loaded the above mentioned compensation can be replaced by a
+different mechanism. In any case \setmargXXX call \margin@offset and
+then expect that \XXXmargin are set to useful values. \Xoffset are not
+touched by \setmargXXX. \margin@offset should be defined in a separate
+file which is included BEFORE vmargin, i.e. appears in the list of
+document-substyles of the \documentstyle command before vmargin.
+%
+Any better way of doing this? (grumble)
+
+Example: \documentstyle[...,margins,vmargin,...]{...}
+ if \margin@offset is defined in a file called margins.sty.
+
+LaTeX2e: \documentclass[...]{...}
+ \usepackage{...,margins,vmargin,...}
+
+
+LaTeX2e
+-------
+
+This package now uses some of the new LaTeX2e features for package
+programming. It will still work with LaTeX 2.09 (in which case the new
+features are not used, resp. are inaccessible).
+
+LaTeX2e (unless in compatibility mode) does not know \footheight any
+more. vmargin does not set this variable if it does not exist, and sets
+it if it does. As \footheight was not used by LaTeX 2.09 all this has
+little significance.
+
+LaTeX2e now has the dimensions \paperwidth, \paperheight which hold the
+size of the paper. \PaperWidth, \PaperHeight are copied into
+\paperwidth, \paperheight if the latter exist. This makes vmargin work
+correctly with anything that expects \paperwidth, \paperheight to be
+set properly. The names \PaperWidth, \PaperHeight had been chosen in
+the first place to avoid clashes with style files that also use these
+names (namely pageframe.sty).
+
+The following package options are available under LaTeX2e:
+
+shiftmargins same as \shiftmargins
+portrait
+landscape
+A4, etc. same as using \setpapersize[...]{...}
+ Note: \setpapersize always sets the orientation to
+ portrait unless landscape is given. Using \setpapersize
+ after \usepackage causes package option landscape to be
+ ignored.
+nohf do not make space for header and footer lines; this also
+ sets the pagestyle to empty
+
+All unknown options are treated as a paper size, if necessary
+generating an error that the requested paper size is not defined.
+
+
+Inclusion in TeX formats
+------------------------
+
+This file may be loaded in initex before dumping the format, by typing
+ \makeatletter
+ \input vmargin.sty
+ \makeatother
+Note: this produces a non-standard format.
+
+
+Hints for using pageframe.sty
+-----------------------------
+
+vmargin.sty and pageframe.sty can be used together if the following
+points are considered:
+
+vmargin uses \hoffset and \voffset and writes negative values into it,
+pageframe expects them to be zero to give a 1in space on the left and
+the top where it prints additional information. Initially, set both to
+0mm (in the pre-amble of your text) and adjust them later on.
+
+pageframe needs to know the trimmed height of the paper (= the height
+of the "page frame"). Unless the trimmed(!) size of the paper is
+equivalent to one of the standard paper sizes (unlikely...) the size
+should be specified with
+
+ \setpapersize{custom}{<width>}{<height>}
+
+The correct height of the trimmed page can then be given to pageframe
+using
+
+ \paperheight{\PaperHeight}
+
+and the margins of the final product (inside the page frame) can be
+specified using \setmargXXX.
+
+Warning: if \setmargXXXrb is used the 3rd parameter (right margin) is
+ignored. Instead, the dimension of the right margin has to be assigned
+to \evensidemargin. This is because pageframe.sty re-defines the meaning
+of \evensidemargin to be the right margin of your text, on all pages.
+
+Remember: all these assignments and macro calls have to be in the
+pre-amble of the document.
+
+
+Bugs:
+-----
+
+I have not tested this with older versions of LaTeX2e because I don't
+have any. If there are any problems pleease do let me know and I'll do
+something about it.
+
+
+To do:
+------
+
+* The way the metric paper sizes are stored takes up a lot of space. A
+ metric size could be computed by \setpapersize.
+
+
+SUMMARY:
+========
+
+new lengths:
+ \PaperWidth
+ \PaperHeight
+
+new ifs:
+ \ifLandscape
+
+new macros:
+ \setpapersize[<orientation>]{<size>},
+ \setpapersize[<orientation>]{custom}{<width>}{<height>}
+ <orientation> (optional) = landscape or portrait (default)
+ <size> = A4, B5, ...
+ <width>, <height> = actual dimensions of the paper
+ \setmargins{leftmargin}{topmargin}{textwidth}{textheight}%
+ {headheight}{headsep}{footheight}{footskip}
+ \setmarginsrb{leftmargin}{topmargin}{rightmargin}{bottommargin}%
+ {headheight}{headsep}{footheight}{footskip}
+ \setmargnohf{leftmargin}{topmargin}{textwidth}{textheight}
+ \setmargnohfrb{leftmargin}{topmargin}{rightmargin}{bottommargin}
+ \setmarg{leftmargin}{topmargin}{textwidth}{textheight}
+ \setmargrb{leftmargin}{topmargin}{rightmargin}{bottommargin}
+%
+ \margin@offset
+ \shiftmargins
+
+LaTeX2e package options:
+ shiftmargins
+ portrait
+ landscape
+ nohf
+ all other options are treated as paper sizes
+
+
+If you have any comments (positive or negative) please let me know!
+
+
+
+HISTORY:
+========
+
+ .
+ . Created out of Vpage.sty.
+ .
+V1.7 21 May 1994 Changed file header.
+V1.72 21 May 1994 Fixed bug in \setpapersize{custom}
+V1.8 28 May 94 Commented \chk@dimen; reduced load on TeX's
+ parameter stack (changed \chk@dimen).
+ Put a conditional around references
+ to \footheight.
+V1.9 22 Jun 94 Corrected spelling in comment.
+V2.0 28 Jun 94 Added support for LaTeX2e \paperwidth,
+ \paperheight.
+V2.1 20 Sep 94 \@defmetricpaper now defines \w, \h, \s locally.
+ Thanks to branderhorst@fgg.eur.nl!
+V2.12 28 Mar 95 Fixed documentation for \setmargrb.
+V2.13 26 Jun 96 Fixed comment for \setmarginsrb.
+V2.2 31 May 99 Released under LPPL.
+ Changed references to Vmargin to vmargin.
+ LaTeX2e package options introduced.
+%
+%% EOF vmargin.sty
+%%----------------------------------------------------------------------