Merged changes.
authorMadhusudan.C.S <madhusudancs@gmail.com>
Tue, 13 Jul 2010 01:43:25 +0530
changeset 103 852015a7eead
parent 93 7c27e8d9231d (current diff)
parent 102 16a406766773 (diff)
child 104 06b7e950a798
Merged changes.
project/kiwipycon/proceedings/forms.py
project/kiwipycon/proceedings/views.py
project/templates/proceedings/submit.html
project/urls.py
--- a/.hgignore	Fri Jan 15 20:15:00 2010 +0530
+++ b/.hgignore	Tue Jul 13 01:43:25 2010 +0530
@@ -37,6 +37,7 @@
 project.db
 project/media/user/*
 project/static/media
+project/static/proceedings/output/*
 project/kiwipycon/user/*.pyc
 apache/*
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/kiwipycon/proceedings/admin.py	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import absolute_import
+
+from django.contrib import admin
+
+from project.kiwipycon.proceedings.models import Paper
+
+
+class PaperAdmin(admin.ModelAdmin):
+    list_display = ('title', 'abstract')
+    list_filter = ('title', 'authors')
+    search_fields = ('title', 'abstract', 'authors')
+    fieldsets = (
+        ('Details', {
+            'fields': ('title', 'abstract', 'body', 'authors')
+        }),
+    )
+
+admin.site.register(Paper, PaperAdmin)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/kiwipycon/proceedings/booklet/mk_booklet.py	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,80 @@
+# encoding: utf-8
+
+import os
+import sys
+import codecs
+import re
+
+
+from mk_scipy_paper import tex2pdf, current_dir , copy_files, preamble, \
+        render_abstract, addfile, sourcedir, outdir, outfilename
+
+
+def hack_include_graphics(latex_text, attach_dir):
+    """ Replaces all the \includegraphics call with call that impose the
+        width to be 0.9\linewidth.
+    """
+    latex_text = re.sub(r'\\includegraphics(\[.*\])?\{',
+                        r'\includegraphics\1{' + attach_dir,
+                        latex_text)
+    return latex_text
+
+
+class MyStringIO(object):
+    """ An unicode-friendly stringIO-like object.
+    """
+
+    def __init__(self):
+        self.lines = []
+
+    def write(self, line):
+        self.lines.append(line)
+
+    def getvalue(self):
+        return u''.join(self.lines)
+
+def mk_booklet_tex(outfilename):
+    """ Generate the entire booklet latex file.
+    """
+    outfile = codecs.open(outfilename, 'w', 'utf-8')
+    preamble(outfile)
+    copy_files()
+    #addfile(outfile, sourcedir + os.sep + 'title.tex')
+    addfile(outfile, sourcedir + os.sep + 'introduction.tex')
+
+    #outfile.write(ur'\setcounter{page}{0}' + '\n')
+
+    #from sanum.controllers import Root as Controller
+#    abstracts = model.Abstract.select()
+#    for abstract in abstracts:
+#        if not abstract.approved:
+#            continue
+#        print abstract.title
+#        # Hack: I don't use a stringIO, because it is not unicode-safe.
+#        tmpout = MyStringIO()
+#        # Hack: I don't wont to be bound to the controller, to be
+#        # abstractle to run without cherrypy.
+#        #attach_dir = Controller._paper_attach_dir(abstract.id)
+#        attach_dir = os.path.abspath(os.sep.join(
+#                    (os.path.dirname(sanum.__file__), 'static', 
+#                    'papers', '%i' % abstract.id))) + os.sep
+#        render_abstract(tmpout, abstract)
+#        outstring = hack_include_graphics(tmpout.getvalue(),
+#                            attach_dir)
+#        outfile.write(outstring)
+#        #outfile.write(ur'\fillbreak' + '\n')
+
+    outfile.write(ur'\end{document}' + '\n')
+
+
+
+
+def mk_booklet(outfilename=outfilename):
+    """ Generate the entire booklet pdf file.
+    """
+    name, ext = os.path.splitext(outfilename)
+    mk_booklet_tex(name + '.tex')
+    return tex2pdf(name, remove_tex=False, timeout=60)
+
+if __name__ == '__main__':
+    mk_booklet(outfilename)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/kiwipycon/proceedings/booklet/mk_scipy_paper.py	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,470 @@
+# encoding: utf-8
+
+import os
+import re
+import sys
+import shutil
+import codecs
+from glob import glob
+
+from docutils import core as docCore
+
+conf_name = 'SciPy2009'
+
+current_dir = '/media/python/workspace/kiwipycon/project/static/proceedings'
+
+outdir = current_dir + os.sep + 'output'
+
+sourcedir = current_dir + os.sep + 'sources'
+try:
+    os.mkdir(outdir)
+except:
+    pass
+
+outfilename = outdir + os.sep + 'booklet.tex'
+
+##############################################################################
+# Routines for supervised execution
+##############################################################################
+
+from threading import Thread
+import os
+import signal
+from subprocess import Popen
+from time import sleep
+
+def delayed_kill(pid, delay=10):
+    sleep(delay)
+    try:
+        os.kill(pid, signal.SIGTERM)
+    except OSError:
+        pass
+
+def supervise_popen(command, timeout=10):
+    process = Popen(command)
+    Thread(target=delayed_kill, args=(process.pid,timeout),).start()
+
+    process.wait()
+
+
+
+##############################################################################
+# LaTeX generation functions.
+##############################################################################
+
+def protect(string):
+    r''' Protects all the "\" in a string by adding a second one before
+
+    >>> protect(r'\foo \*')
+    '\\\\foo \\\\*'
+    '''
+    return re.sub(r"\\", r"\\\\", string)
+
+
+def safe_unlink(filename):
+    """ Remove a file from the disk only if it exists, if not r=fails silently
+    """
+    if os.path.exists(filename):
+        os.unlink(filename)
+
+rxcountpages = re.compile(r"$\s*/Type\s*/Page[/\s]", re.MULTILINE|re.DOTALL)
+
+def count_pages(filename):
+    data = file(filename,"rb").read()
+    return len(rxcountpages.findall(data))
+
+
+def tex2pdf(filename, remove_tex=True, timeout=10, runs=2):
+    """ Compiles a TeX file with pdfLaTeX (or LaTeX, if or dvi ps requested)
+        and cleans up the mess afterwards
+    """
+    current_dir = os.getcwd()
+    os.chdir(os.path.dirname(filename))
+    print >> sys.stderr, "Compiling document to pdf"
+    basename = os.path.splitext(os.path.basename(filename))[0]
+    if os.path.exists(basename + '.pdf'):
+        os.unlink(basename + '.pdf')
+    for _ in range(runs):
+        supervise_popen(("pdflatex",  "--interaction", "scrollmode",
+                        os.path.basename(filename)), timeout=timeout)
+    error_file = None
+    errors =  file(os.path.abspath(basename + '.log')).readlines()[-1]
+    if not os.path.exists(basename + '.pdf') or \
+                                    "Fatal error" in errors:
+        error_file = os.path.abspath(basename + '.log')
+    if remove_tex:
+        safe_unlink(filename+".tex")
+        safe_unlink(filename+".log")
+    safe_unlink(filename+".aux")
+    safe_unlink(filename+".out")
+    os.chdir(current_dir)
+    return error_file
+
+
+def rst2latex(rst_string, no_preamble=True, allow_latex=True):
+    """ Calls docutils' engine to convert a rst string to a LaTeX file.
+    """
+    overrides = {'output_encoding': 'utf-8', 'initial_header_level': 3,
+                 'no_doc_title': True, 'use_latex_citations': True, 
+                 'use_latex_footnotes':True}
+    if allow_latex:
+        rst_string = u'''.. role:: math(raw)
+                    :format: latex
+                    \n\n''' + rst_string
+    tex_string = docCore.publish_string(
+                source=rst_string,
+                writer_name='latex2e', 
+                settings_overrides=overrides)
+    if no_preamble:
+        extract_document = \
+            re.compile(r'.*\\begin\{document\}(.*)\\end\{document\}',
+            re.DOTALL)
+        matches = extract_document.match(tex_string)
+        tex_string = matches.groups()[0]
+    return tex_string
+
+
+def get_latex_preamble():
+    """ Retrieve the required preamble from docutils.
+    """
+    full_document = rst2latex('\n', no_preamble=False)
+    preamble = re.split(r'\\begin\{document\}', full_document)[0]
+    ## Remove the documentclass.
+    preamble = r"""
+                %s
+                \makeatletter
+                \newcommand{\class@name}{gael}
+                \makeatother
+                \usepackage{ltxgrid}
+                %s
+                """ % (
+                    preamble.split('\n')[0],
+                    '\n'.join(preamble.split('\n')[1:]),
+                )
+    return preamble
+
+
+##############################################################################
+# Functions to generate part of the booklet
+##############################################################################
+def addfile(outfile, texfilename):
+    """ Includes the content of a tex file in our outfile.
+    """
+    include = codecs.open(texfilename, 'r')
+    data = include.readlines()
+    outfile.write(ur'\thispagestyle{empty}' + u'\n')
+    outfile.writelines(data)
+
+
+def preamble(outfile):
+    outfile.write(r'''
+    %s
+    \usepackage{abstracts}
+    \usepackage{ltxgrid}
+    \usepackage{amssymb,latexsym,amsmath,amsthm}
+    \usepackage{longtable}
+    \geometry{left=.8cm, textwidth=17cm, bindingoffset=0.6cm,
+                textheight=25.3cm, twoside}
+    \usepackage{hyperref}
+    \hypersetup{pdftitle={Proceedings of the 8th Annual Python in Science Conference}}
+    \begin{document}
+
+    '''.encode('utf-8') % get_latex_preamble())
+
+    # XXX SciPy08 should not be hard coded, but to run out of the webapp
+
+def hack_include_graphics(latex_text):
+    """ Replaces all the \includegraphics call with call that impose the
+        width to be 0.9\linewidth.
+    """
+    latex_text = re.sub(r'\\setlength\{\\rightmargin\}\{\\leftmargin\}',
+                        r'\\setlength{\\leftmargin}{4ex}\\setlength{\\rightmargin}{0ex}',
+                        latex_text)
+    latex_text = re.sub(r'\\begin\{quote\}\n\\begin\{itemize\}',
+                        r'\\begin{itemize}',
+                        latex_text)
+    latex_text = re.sub(r'\\end\{itemize\}\n\\end\{quote\}',
+                        r'\\end{itemize}',
+                        latex_text)
+    latex_text = re.sub(r'\\includegraphics(\[.*\])?\{',
+                        r'\includegraphics[width=\linewidth]{',
+                        latex_text)
+    latex_text = re.sub(r'\\href\{([^}]+)\}\{http://(([^{}]|(\{[^}]*\}))+)\}', 
+                        r'''%
+% Break penalties to have URL break easily:
+\mathchardef\UrlBreakPenalty=0
+\mathchardef\UrlBigBreakPenalty=0
+%\hskip 0pt plus 2em
+\href{\1}{\url{\1}}''',
+                        latex_text)
+    latex_text = re.sub(r'\\href\{([^}]+)\}\{https://(([^{}]|(\{[^}]*\}))+)\}', 
+                        r'''%
+% Break penalties to have URL break easily:
+\mathchardef\UrlBreakPenalty=0
+\mathchardef\UrlBigBreakPenalty=0
+\linebreak
+\href{\1}{\url{\1}}''',
+                        latex_text)
+
+    return latex_text
+
+
+def render_abstract(outfile, abstract, start_page=None):
+    """ Writes the LaTeX string corresponding to one abstract.
+    """
+    if start_page is not None:
+        outfile.write(r"""
+\setcounter{page}{%i}
+""" % start_page)
+    else:
+        if hasattr(abstract, 'start_page'):
+            start_page = abstract.start_page
+        else:
+            start_page = 1
+    if not abstract.authors:
+        author_list = abstract.owners
+    else:
+        author_list = abstract.authors
+    authors = []
+
+    for author in author_list:
+        # If the author has no surname, he is not an author 
+        if author.surname:
+            if author.email_address:
+                email = r'(\email{%s})' % author.email_address
+            else:
+                email = ''
+            authors.append(ur'''\otherauthors{
+                            %s %s
+                            %s --
+                            \address{%s, %s}
+                            }''' % (author.first_names, author.surname,
+                                    email,
+                                    author.institution,
+                                    author.city))
+    if authors:
+        authors = u'\n'.join(authors)
+        authors += r'\addauthorstoc{%s}' % ', '.join(
+                '%s. %s' % (author.first_names[0], author.surname)
+                for author in author_list
+                )
+        author_cite_list = ['%s. %s' % (a.first_names[0], a.surname) 
+                                for a in author_list]
+        if len(author_cite_list) > 4:
+            author_cite_list = author_cite_list[:3]
+            author_cite_list.append('et al.')
+        citation = ', '.join(author_cite_list) + \
+        'in Proc. SciPy 2009, G. Varoquaux, S. van der Walt, J. Millman (Eds), '
+        copyright = '\\copyright 2009, %s' % ( ', '.join(author_cite_list))
+    else:
+        authors = ''
+        citation = 'Citation'
+        copyright = 'Copyright'
+    if hasattr(abstract, 'num_pages'):
+        citation += 'pp. %i--%i' % (start_page, start_page +
+                                        abstract.num_pages)
+    else:
+        citation += 'p. %i'% start_page
+    if hasattr(abstract, 'number'):
+        abstract.url = 'http://conference.scipy.org/proceedings/%s/paper_%i' \
+        % (conf_name, abstract.number)
+        url = r'\url{%s}' % abstract.url
+    else:
+        url = ''
+    paper_text = abstract.paper_text
+    if paper_text == '':
+        paper_text = abstract.summary
+    # XXX: It doesn't seem to be right to be doing this, but I get a
+    # nasty UnicodeDecodeError on some rare abstracts, elsewhere.
+    paper_text = codecs.utf_8_decode(hack_include_graphics(
+                                rst2latex(paper_text)))[0]
+    paper_abstract = abstract.paper_abstract
+    if paper_abstract is None:
+        paper_abstract = ''
+    if not paper_abstract=='':
+        paper_abstract = ur'\begin{abstract}%s\end{abstract}' % \
+                    paper_abstract#.encode('utf-8')
+    abstract_dict = {
+            'text': paper_text.encode('utf-8'),
+            'abstract': paper_abstract.encode('utf-8'),
+            'authors': authors.encode('utf-8'),
+            'title': abstract.title.encode('utf-8'),
+            'citation': citation.encode('utf-8'),
+            'copyright': copyright.encode('utf-8'),
+            'url': url.encode('utf-8'),
+        }
+    outfile.write(codecs.utf_8_decode(ur'''
+\phantomsection
+\hypertarget{chapter}{} 
+\vspace*{-2em}
+
+\resetheadings{%(title)s}{%(citation)s}{%(url)s}{%(copyright)s}
+\title{%(title)s}
+
+\begin{minipage}{\linewidth}
+%(authors)s
+\end{minipage}
+
+\noindent\rule{\linewidth}{0.2ex}
+\vspace*{-0.5ex}
+\twocolumngrid
+%(abstract)s
+
+\sloppy
+
+%(text)s
+
+\fussy
+\onecolumngrid
+\smallskip
+\vfill
+\filbreak
+\clearpage
+
+'''.encode('utf-8') % abstract_dict )[0])
+
+def copy_files(dest=outfilename):
+    """ Copy the required file from the source dir to the output dir.
+    """
+    dirname = os.path.dirname(dest)
+    if dirname == '':
+        dirname = '.'
+    for filename in glob(sourcedir+os.sep+'*'):
+        destfile = os.path.abspath(dirname + os.sep +
+                                os.path.basename(filename))
+        shutil.copy2(filename, destfile)
+
+
+def mk_abstract_preview(abstract, outfilename, attach_dir, start_page=None):
+    """ Generate a preview for an given paper.
+    """
+    copy_files()
+    outdir = os.path.dirname(os.path.abspath(outfilename))
+    for f in glob(os.path.join(attach_dir, '*')):
+        if  os.path.isdir(f) and not os.path.exists(f):
+            os.makedirs(f)
+        else:
+            if not outdir == os.path.dirname(os.path.abspath(f)):
+                shutil.copy2(f, outdir)
+    for f in glob(os.path.join(sourcedir, '*')):
+        if  os.path.isdir(f):
+            os.makedirs(f)
+        else:
+            destfile = os.path.abspath(os.path.join(outdir, f))
+            shutil.copy2(f, outdir)
+
+    outbasename = os.path.splitext(outfilename)[0]
+    outfilename = outbasename + '.tex'
+
+    outfile = codecs.open(outfilename, 'w', 'utf-8')
+    preamble(outfile)
+    render_abstract(outfile, abstract, start_page=start_page)
+    outfile.write(ur'\end{document}' + u'\n')
+    outfile.close()
+
+    tex2pdf(outbasename, remove_tex=False)
+    abstract.num_pages = count_pages(outbasename + '.pdf')
+
+    # Generate the tex file again, now that we know the length.
+    outfile = codecs.open(outfilename, 'w', 'utf-8')
+    preamble(outfile)
+    render_abstract(outfile, abstract, start_page=start_page)
+    outfile.write(ur'\end{document}' + u'\n')
+    outfile.close()
+
+    error_file = tex2pdf(os.path.splitext(outfilename)[0], remove_tex=False)
+
+    if not error_file:
+      # Generate a preview image
+      command = ('convert', '-thumbnail', 'x400',
+                 '%s[0]' % (outbasename + '.pdf'), outbasename + '.png')
+      supervise_popen(command, timeout=10)
+
+    return error_file
+
+##############################################################################
+# Code for using outside of the webapp.
+##############################################################################
+
+def mk_zipfile():
+    """ Generates a zipfile with the required files to build an
+        abstract.
+    """
+    from zipfile import ZipFile
+    zipfilename = os.path.join(os.path.dirname(__file__), 
+                            'mk_scipy_paper.zip')
+    z = ZipFile(zipfilename, 'w')
+    for filename in glob(os.path.join(sourcedir, '*')):
+        if not os.path.isdir(filename):
+            z.write(filename, arcname='source/' + os.path.basename(filename))
+    z.write(__file__, arcname='mk_scipy_paper.py')
+    return zipfilename
+
+class Bunch(dict):
+    def __init__(self, **kwargs):
+        dict.__init__(self, **kwargs)
+        self.__dict__ = self
+
+    def __reprt(self):
+        return repr(self.__dict__)
+
+author_like = Bunch(
+        first_names='XX', 
+        surname='XXX',
+        email_address='xxx@XXX',
+        institution='XXX',
+        address='XXX',
+        country='XXX'
+)
+
+
+abstract_like = Bunch(
+        paper_abstract='An abstract',
+        authors=[author_like, ],
+        title='',
+    )
+
+if __name__ == '__main__':
+    from optparse import OptionParser
+    parser = OptionParser()
+    parser.add_option("-o", "--output", dest="outfilename",
+                    default="./paper.pdf",
+                    help="output to FILE", metavar="FILE")
+    parser.usage = """%prog [options] rst_file [data_file]
+    Compiles a given rest file and information file to pdf for the SciPy
+    proceedings.
+    """
+    
+    (options, args) = parser.parse_args()
+    if not len(args) in (1, 2):
+        print "One or two arguments required: the input rest file and " \
+                "the input data file"
+        print ''
+        parser.print_help()
+        sys.exit(1)
+    infile = args[0]
+    if len(args)==1:
+        data_file = 'data.py'
+        if os.path.exists('data.py'):
+            print "Using data file 'data.py'"
+        else:
+            print "Generating the data file and storing it in data.py"
+            print "You will need to edit this file to add title, author " \
+                "information, and abstract."
+            abstract = abstract_like
+            file('data.py', 'w').write(repr(abstract))
+    elif len(args)==2:
+        data_file = args[1]
+    
+    abstract = Bunch( **eval(file(data_file).read()))
+    abstract.authors = [Bunch(**a) for a in abstract.authors]
+
+    abstract['summary'] = u''
+    abstract['paper_text'] = file(infile).read().decode('utf-8')
+
+    outfilename = options.outfilename
+
+    mk_abstract_preview(abstract, options.outfilename, 
+                        os.path.dirname(options.outfilename))
+    # Ugly, but I don't want to wait on the thread.
+    sys.exit()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/css/autoSuggest.css	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,217 @@
+/* AutoSuggest CSS - Version 1.2 */
+
+ul.as-selections {
+	list-style-type: none;
+	border-top: 1px solid #888;
+	border-bottom: 1px solid #b6b6b6;
+	border-left: 1px solid #aaa;
+	border-right: 1px solid #aaa;
+	padding: 4px 0 4px 4px;
+	margin: 0;
+	overflow: auto;
+	background-color: #fff;
+	box-shadow:inset 0 1px 2px #888;
+	-webkit-box-shadow:inset 0 1px 2px #888;
+	-moz-box-shadow:inset 0 1px 2px #888;
+}
+
+ul.as-selections.loading {
+	background-color: #eee;
+}
+
+ul.as-selections li {
+	float: left;
+	margin: 1px 4px 1px 0;
+}
+
+ul.as-selections li.as-selection-item {
+	color: #2b3840;
+	font-size: 13px;
+	font-family: "Lucida Grande", arial, sans-serif;
+	text-shadow: 0 1px 1px #fff;
+	background-color: #ddeefe;
+	background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ddeefe), to(#bfe0f1));
+	border: 1px solid #acc3ec;
+	border-top-color: #c0d9e9;
+	padding: 2px 7px 2px 10px;
+	border-radius: 12px;
+	-webkit-border-radius: 12px;
+	-moz-border-radius: 12px;
+	box-shadow: 0 1px 1px #e4edf2;
+	-webkit-box-shadow: 0 1px 1px #e4edf2;
+	-moz-box-shadow: 0 1px 1px #e4edf2;
+}
+
+ul.as-selections li.as-selection-item:last-child {
+	margin-left: 30px;
+}
+
+ul.as-selections li.as-selection-item a.as-close {
+	float: right;
+	margin: 1px 0 0 7px;
+	padding: 0 2px;
+	cursor: pointer;
+	color: #5491be;
+	font-family: "Helvetica", helvetica, arial, sans-serif;
+	font-size: 14px;
+	font-weight: bold;
+	text-shadow: 0 1px 1px #fff;
+	-webkit-transition: color .1s ease-in;
+}
+
+ul.as-selections li.as-selection-item.blur {
+	color: #666666;
+	background-color: #f4f4f4;
+	background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f4f4f4), to(#d5d5d5));
+	border-color: #bbb;
+	border-top-color: #ccc;
+	box-shadow: 0 1px 1px #e9e9e9;
+	-webkit-box-shadow: 0 1px 1px #e9e9e9;
+	-moz-box-shadow: 0 1px 1px #e9e9e9;
+}
+
+ul.as-selections li.as-selection-item.blur a.as-close {
+	color: #999;
+}
+
+ul.as-selections li:hover.as-selection-item {
+	color: #2b3840;
+	background-color: #bbd4f1;
+	background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbd4f1), to(#a3c2e5));
+	border-color: #6da0e0;
+	border-top-color: #8bb7ed;
+}
+
+ul.as-selections li:hover.as-selection-item a.as-close {
+	color: #4d70b0;
+}
+
+ul.as-selections li.as-selection-item.selected {
+	border-color: #1f30e4;
+}
+
+ul.as-selections li.as-selection-item a:hover.as-close {
+	color: #1b3c65;
+}
+
+ul.as-selections li.as-selection-item a:active.as-close {
+	color: #4d70b0;
+}
+
+ul.as-selections li.as-original {
+	margin-left: 0;
+}
+
+ul.as-selections li.as-original input {
+	border: none;
+	outline: none;
+	font-size: 13px;
+	width: 120px;
+	height: 18px;
+	padding-top: 3px;
+}
+
+ul.as-list {
+	position: absolute;
+	list-style-type: none;
+	margin: 2px 0 0 0;
+	padding: 0;
+	font-size: 14px;
+	color: #000;
+	font-family: "Lucida Grande", arial, sans-serif;
+	background-color: #fff;
+	background-color: rgba(255,255,255,0.95);
+	z-index: 2;
+	box-shadow: 0 2px 12px #222;
+	-webkit-box-shadow: 0 2px 12px #222;
+	-moz-box-shadow: 0 2px 12px #222;
+	border-radius: 5px;
+	-webkit-border-radius: 5px;
+	-moz-border-radius: 5px;
+}
+
+li.as-result-item, li.as-message {
+	margin: 0 0 0 0;
+	padding: 5px 12px;
+	background-color: transparent;
+	border: 1px solid #fff;
+	border-bottom: 1px solid #ddd;
+	cursor: pointer;
+	border-radius: 5px;
+	-webkit-border-radius: 5px;
+	-moz-border-radius: 5px;
+}
+
+li:first-child.as-result-item {
+	margin: 0;
+}
+
+li.as-message {
+	margin: 0;
+	cursor: default;
+}
+
+li.as-result-item.active {
+	background-color: #3668d9;
+	background-image: -webkit-gradient(linear, 0% 0%, 0% 64%, from(rgb(110, 129, 245)), to(rgb(62, 82, 242)));
+	border-color: #3342e8;
+	color: #fff;
+	text-shadow: 0 1px 2px #122042;
+}
+
+li.as-result-item em { 
+	font-style: normal; 
+	background: #444;  
+	padding: 0 2px;
+	color: #fff;
+}
+
+li.as-result-item.active em { 
+	background: #253f7a;  
+	color: #fff;
+}
+
+/* Webkit Hacks  */
+@media screen and (-webkit-min-device-pixel-ratio:0) {	
+	ul.as-selections {
+		border-top-width: 2px;
+	}
+	ul.as-selections li.as-selection-item {
+		padding-top: 3px;
+		padding-bottom: 3px;
+	}
+	ul.as-selections li.as-selection-item a.as-close {
+		margin-top: -1px;
+	}
+	ul.as-selections li.as-original input {
+		height: 19px;
+	}
+}
+
+/* Opera Hacks  */
+@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) {
+	ul.as-list {
+		border: 1px solid #888;
+	}
+	ul.as-selections li.as-selection-item a.as-close {
+		margin-left: 4px;
+		margin-top: 0;
+	}
+}
+
+/* IE Hacks  */
+ul.as-list {
+	border: 1px solid #888\9;
+}
+ul.as-selections li.as-selection-item a.as-close {
+	margin-left: 4px\9;
+	margin-top: 0\9;
+}
+
+/* Firefox 3.0 Hacks */
+ul.as-list,  x:-moz-any-link, x:default { 
+	border: 1px solid #888;
+}
+BODY:first-of-type ul.as-list, x:-moz-any-link, x:default { /* Target FF 3.5+ */
+	border: none;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/jquery/jquery.autoSuggest.js	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,21 @@
+ /*
+ * AutoSuggest
+ * Copyright 2009-2010 Drew Wilson
+ * www.drewwilson.com
+ * code.drewwilson.com/entry/autosuggest-jquery-plugin
+ *
+ * Version 1.4   -   Updated: Mar. 23, 2010
+ *
+ * This Plug-In will auto-complete or auto-suggest completed search queries
+ * for you as you type. You can add multiple selections and remove them on
+ * the fly. It supports keybord navigation (UP + DOWN + RETURN), as well
+ * as multiple AutoSuggest fields on the same page.
+ *
+ * Inspied by the Autocomplete plugin by: Jšrn Zaefferer
+ * and the Facelist plugin by: Ian Tearle (iantearle.com)
+ *
+ * This AutoSuggest jQuery plug-in is dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ */
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(6($){$.2O.2P=6(7,2f){4 2g={1R:m,1o:"2Q 2H 31",2i:"1Y 2X 2Y",D:{},2h:"1Y 2G 2I 2J 35",Z:"1a",N:"1a",1y:"1a",2B:"q",15:m,2E:"",1e:m,1V:1,1C:2V,2t:G,2d:m,1I:m,20:G,R:6(){},1B:6(1q){},2w:6(1q){},1P:6(1q){1q.36()},1M:m,18:6(h){K h},2z:6(7){K 7},2u:6(7){},2m:6(){}};4 3=$.2q(2g,2f);4 14="26";4 12=0;5(2b 7=="h"){14="h";4 2C=7}s{4 2F=7;O(k 1E 7)5(7.1F(k))12++}5((14=="26"&&12>0)||14=="h"){K d.2W(6(x){5(!3.1R){x=x+""+29.2U(29.2Z()*30);4 1U="c-l-"+x}s{x=3.1R;4 1U=x}3.R.v(d);4 l=$(d);l.1X("34","33").F("c-l").1X("L",1U).b(3.1o);4 C=m;l.25(\'<1g A="c-1W" L="c-1W-\'+x+\'"></1g>\').25(\'<f A="c-1O" L="c-1O-\'+x+\'"></f>\');4 n=$("#c-1W-"+x);4 J=$("#c-1O-"+x);4 j=$(\'<1Z A="c-22" L="c-22-\'+x+\'"></1Z>\').E();4 I=$(\'<1g A="c-2L"></1g>\');4 p=$(\'<l 2S="2M" A="c-2c" 1z="2N\'+x+\'" L="c-2c-\'+x+\'" />\');4 u="";5(2b 3.D=="h"){4 1f=3.D.1t(",");O(4 i=0;i<1f.o;i++){4 1L={};1L[3.N]=1f[i];5(1f[i]!=""){17(1L,"27"+i)}}u=3.D}s{u="";4 1d=0;O(k 1E 3.D)5(3.D.1F(k))1d++;5(1d>0){O(4 i=0;i<1d;i++){4 16=3.D[i][3.N];5(16==37){16=""}u=u+16+",";5(16!=""){17(3.D[i],"27"+i)}}}}5(u!=""){l.b("");4 2e=u.3o(u.o-1);5(2e!=","){u=u+","}p.b(","+u);$("f.c-Q-z",n).F("1i").B("M")}l.28(p);n.1b(6(){C=G;l.1p()}).1v(6(){C=m}).28(j);4 P=3t;4 t="";4 3u=0;4 19=m;l.1p(6(){5($(d).b()==3.1o&&p.b()==""){$(d).b("")}s 5(C){$("f.c-Q-z",n).B("1i");5($(d).b()!=""){I.2k("2l",n.2x());j.1H()}}C=G;K G}).1i(6(){5($(d).b()==""&&p.b()==""&&u==""){$(d).b(3.1o)}s 5(C){$("f.c-Q-z",n).F("1i").B("M");j.E()}}).3m(6(e){1k=e.2a;3d=m;3e(e.2a){T 38:e.1m();1A("3n");V;T 3b:e.1m();1A("1T");V;T 8:5(l.b()==""){4 S=p.b().1t(",");S=S[S.o-2];n.2y().39(J.t()).B("M");5(J.t().3a("M")){p.b(p.b().1c(","+S+",",","));3.1P.v(d,J.t())}s{3.1B.v(d,J.t());J.t().F("M")}}5(l.b().o==1){j.E();t=""}5($(":2D",j).o>0){5(P){21(P)}P=23(6(){1D()},3.1C)}V;T 9:T 3f:19=G;4 U=l.b().1c(/(,)/g,"");5(U!=""&&p.b().1x(","+U+",")<0&&U.o>=3.1V){e.1m();4 1n={};1n[3.Z]=U;1n[3.N]=U;4 W=$("f",n).o;17(1n,"3l"+(W+1));l.b("")}T 13:19=m;4 r=$("f.r:24",j);5(r.o>0){r.1b();j.E()}5(3.2d||r.o>0){e.1m()}V;3k:5(3.20){5(3.1I&&$("f.c-Q-z",n).o>=3.1I){I.10(\'<f A="c-2j">\'+3.2h+\'</f>\');j.1H()}s{5(P){21(P)}P=23(6(){1D()},3.1C)}}V}});6 1D(){5(1k==3h||(1k>8&&1k<32)){K j.E()}4 h=l.b().1c(/[\\\\]+|[\\/]+/g,"");5(h==t)K;t=h;5(h.o>=3.1V){n.F("1N");5(14=="h"){4 1j="";5(3.15){1j="&1j="+2A(3.15)}5(3.18){h=3.18.v(d,h)}$.3i(2C+"?"+3.2B+"="+2A(h)+1j+3.2E,6(7){12=0;4 1l=3.2z.v(d,7);O(k 1E 1l)5(1l.1F(k))12++;1J(1l,h)})}s{5(3.18){h=3.18.v(d,h)}1J(2F,h)}}s{n.B("1N");j.E()}}4 1S=0;6 1J(7,Y){5(!3.1e){Y=Y.2o()}4 1r=0;j.10(I.10("")).E();O(4 i=0;i<12;i++){4 w=i;1S++;4 1w=m;5(3.1y=="1a"){4 H=7[w].1a}s{4 H="";4 1u=3.1y.1t(",");O(4 y=0;y<1u.o;y++){4 1z=$.3c(1u[y]);H=H+7[w][1z]+" "}}5(H){5(!3.1e){H=H.2o()}5(H.1x(Y)!=-1&&p.b().1x(","+7[w][3.N]+",")==-1){1w=G}}5(1w){4 11=$(\'<f A="c-2p-z" L="c-2p-z-\'+w+\'"></f>\').1b(6(){4 1h=$(d).7("7");4 1G=1h.w;5($("#c-Q-"+1G,n).o<=0&&!19){4 7=1h.2s;l.b("").1p();t="";17(7,1G);3.2u.v(d,1h);j.E()}19=m}).1v(6(){C=m}).3r(6(){$("f",I).B("r");$(d).F("r")}).7("7",{2s:7[w],w:1S});4 X=$.2q({},7[w]);5(!3.1e){4 1Q=2r 2n("(?![^&;]+;)(?!<[^<>]*)("+Y+")(?![^<>]*>)(?![^&;]+;)","3w")}s{4 1Q=2r 2n("(?![^&;]+;)(?!<[^<>]*)("+Y+")(?![^<>]*>)(?![^&;]+;)","g")}5(3.2t){X[3.Z]=X[3.Z].1c(1Q,"<2v>$1</2v>")}5(!3.1M){11=11.10(X[3.Z])}s{11=3.1M.v(d,X,11)}I.2K(11);2R X;1r++;5(3.15&&3.15==1r){V}}}n.B("1N");5(1r<=0){I.10(\'<f A="c-2j">\'+3.2i+\'</f>\')}I.2k("2l",n.2x());j.1H();3.2m.v(d)}6 17(7,w){p.b(p.b()+7[3.N]+",");4 z=$(\'<f A="c-Q-z" L="c-Q-\'+w+\'"></f>\').1b(6(){3.1B.v(d,$(d));n.2y().B("M");$(d).F("M")}).1v(6(){C=m});4 1s=$(\'<a A="c-1s">&2T;</a>\').1b(6(){p.b(p.b().1c(","+7[3.N]+",",","));3.1P.v(d,z);C=G;l.1p();K m});J.3q(z.10(7[3.Z]).3v(1s));3.2w.v(d,J.t())}6 1A(1K){5($(":2D",j).o>0){4 W=$("f",j);5(1K=="1T"){4 R=W.3s(0)}s{4 R=W.3j(":S")}4 r=$("f.r:24",j);5(r.o>0){5(1K=="1T"){R=r.3p()}s{R=r.t()}}W.B("r");R.F("r")}}})}}})(3g);',62,219,'|||opts|var|if|function|data||||val|as|this||li||string||results_holder||input|false|selections_holder|length|values_input||active|else|prev|prefill_value|call|num|||item|class|removeClass|input_focus|preFill|hide|addClass|true|str|results_ul|org_li|return|id|selected|selectedValuesProp|for|timeout|selection|start|last|case|i_input|break|lis|this_data|query|selectedItemProp|html|formatted|d_count||d_type|retrieveLimit|new_v|add_selected_item|beforeRetrieve|tab_press|value|click|replace|prefill_count|matchCase|vals|ul|raw_data|blur|limit|lastKeyPressCode|new_data|preventDefault|n_data|startText|focus|elem|matchCount|close|split|names|mousedown|forward|search|searchObjProps|name|moveSelection|selectionClick|keyDelay|keyChange|in|hasOwnProperty|number|show|selectionLimit|processData|direction|v_data|formatList|loading|original|selectionRemoved|regx|asHtmlID|num_count|down|x_id|minChars|selections|attr|No|div|showResultList|clearTimeout|results|setTimeout|first|wrap|object|000|after|Math|keyCode|typeof|values|neverSubmit|lastChar|options|defaults|limitText|emptyText|message|css|width|resultsComplete|RegExp|toLowerCase|result|extend|new|attributes|resultsHighlight|resultClick|em|selectionAdded|outerWidth|children|retrieveComplete|encodeURIComponent|queryParam|req_string|visible|extraParams|org_data|More|Name|Selections|Are|append|list|hidden|as_values_|fn|autoSuggest|Enter|delete|type|times|floor|400|each|Results|Found|random|100|Here||off|autocomplete|Allowed|remove|undefined||not|hasClass|40|trim|first_focus|switch|188|jQuery|46|getJSON|filter|default|00|keydown|up|substring|next|before|mouseover|eq|null|totalSelections|prepend|gi'.split('|'),0,{}))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/jquery/jquery.watermarkinput.js	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2007 Josh Bush (digitalbush.com)
+ * 
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE. 
+ */
+ 
+/*
+ * Version: Beta 1
+ * Release: 2007-06-01
+ */ 
+(function($) {
+	var map=new Array();
+	$.Watermark = {
+		ShowAll:function(){
+			for (var i=0;i<map.length;i++){
+				if(map[i].obj.val()==""){
+					map[i].obj.val(map[i].text);					
+					map[i].obj.css("color",map[i].WatermarkColor);
+				}else{
+				    map[i].obj.css("color",map[i].DefaultColor);
+				}
+			}
+		},
+		HideAll:function(){
+			for (var i=0;i<map.length;i++){
+				if(map[i].obj.val()==map[i].text)
+					map[i].obj.val("");					
+			}
+		}
+	};
+	
+	$.fn.Watermark = function(text,color) {
+		if(!color)
+			color="#cccccc";
+		return this.each(
+			function(){		
+				var input=$(this);
+				var defaultColor=input.css("color");
+				map[map.length]={text:text,obj:input,DefaultColor:defaultColor,WatermarkColor:color};
+				function clearMessage(){
+					if(input.val()==text)
+						input.val("");
+					input.css("color",defaultColor);
+				}
+
+				function insertMessage(){
+					if(input.val().length==0 || input.val()==text){
+						input.val(text);
+						input.css("color",color);	
+					}else
+						input.css("color",defaultColor);				
+				}
+
+				input.focus(clearMessage);
+				input.blur(insertMessage);								
+				input.change(insertMessage);
+				
+				insertMessage();
+			}
+		);
+	};
+})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/abstracts.sty	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,200 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{abstracts}
+\RequirePackage{graphicx}
+%\RequirePackage{setspace}
+\RequirePackage[a4paper,textwidth=16cm,textheight=25cm]{geometry}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\RequirePackage[utf8]{inputenc}
+\RequirePackage[T1]{fontenc}
+\RequirePackage{lmodern}
+\RequirePackage{titlesec}
+\RequirePackage{fancyhdr}
+\RequirePackage{framed}
+\RequirePackage[hyphens]{url}
+\RequirePackage{enumitem}
+\RequirePackage{hyperref}
+
+% For ltxgrid to work
+%\newcommand{\class@name}{gael}
+
+%-----------------------------------------------------------------------------
+% Special-purpose color definitions (dark enough to print OK in black and white)
+\usepackage{color}
+
+% A few colors to replace the defaults for certain link types
+\definecolor{orange}{cmyk}{0,0.4,0.8,0.2}
+\definecolor{darkorange}{rgb}{.71,0.21,0.01}
+\definecolor{darkblue}{rgb}{.01,0.21,0.71}
+\definecolor{darkgreen}{rgb}{.1,.52,.09}
+
+%-----------------------------------------------------------------------------
+% The hyperref package gives us a pdf with properly built
+% internal navigation ('pdf bookmarks' for the table of contents,
+% internal cross-reference links, web links for URLs, etc.)
+\usepackage{hyperref}
+\hypersetup{pdftex,  % needed for pdflatex
+  breaklinks=true,  % so long urls are correctly broken across lines
+  colorlinks=true,
+  urlcolor=blue,
+  linkcolor=darkblue,
+  citecolor=darkgreen,
+  }
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Definitions of the commands used in abstracts :
+
+% For the hyperref package we need to include section call in the source,
+% so let's render them useless :
+
+\setlength\parindent{0pt}
+
+\def\title#1{
+ \noindent
+ \section*{\Large #1}
+ \addcontentsline{toc}{section}{\sffamily #1}
+}
+
+\def\addauthorstoc#1{%
+\addtocontents{toc}{\vspace*{-.5ex}{\small #1}\protect\newline\smallskip}
+}
+
+\def\presentingauthor#1{
+\begin{minipage}{0.8\linewidth}
+~ ~ ~\underline{#1}
+\end{minipage}
+}
+
+\def\email#1{{\small \tt \url{#1}}}
+
+\renewenvironment{abstract}{\sffamily\bfseries}{\par\smallskip}
+
+
+\def\otherauthors#1{
+{\sffamily #1}\par
+}
+
+\def\address#1{{\em #1}}
+
+\def\tablefootnote#1#2{\hbox to 0pt{$^{\rm #1}$\footnotesize #2\hss}}
+
+\def\thebibliography#1{
+\list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}
+\leftmargin\labelwidth\advance\leftmargin\labelsep\itemsep-\parsep
+\topsep0pt\usecounter{enumi}\small}
+\small
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Styling
+\titleformat*{\section}{\large\bfseries\sffamily}
+\titleformat*{\subsection}{\bfseries\sffamily}
+\titleformat*{\subsubsection}{\sffamily}
+
+\def\resetheadings#1#2#3#4{
+    \fancyhf{} %delete the current section for header and footer
+    \fancyfoot[RE,LO]{\sffamily\bfseries\thepage}
+    \fancyhead[LO]{\bfseries Proceedings of the 8$^{\text{th}}$ Python in
+Science Conference (SciPy 2009)}
+    \fancyfoot[RO]{\footnotesize #3}
+    \fancyfoot[LE]{\footnotesize #4}
+    \fancyhead[RE]{#1}
+    \renewcommand{\headrulewidth}{1pt}
+    \renewcommand{\footrulewidth}{1pt}
+    \renewcommand{\headwidth}{\textwidth}
+    \pagestyle{fancy}
+
+    \gdef\this@citation{#2}
+
+    \fancypagestyle{mytitle}{%
+	\fancyhf{} % clear all header and footer fields
+	\fancyfoot[RE,LO]{\sffamily\bfseries\thepage}
+	\fancyfoot[LE,RO]{\footnotesize \this@citation}
+	\fancyhead[LO,RE]{\bfseries Proceedings of the 8$^{\text{th}}$ Python 
+	in Science Conference (SciPy 2009)}
+	\renewcommand{\headrulewidth}{1pt}
+	\renewcommand{\footrulewidth}{1pt}
+	\renewcommand{\headwidth}{\textwidth}
+    }
+    \thispagestyle{mytitle}
+}
+
+\resetheadings{}{}{}{}
+
+\setlength\columnsep{3ex}
+
+\setlength\parindent{0pt}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% A cooler caption
+\renewcommand{\caption}[2][foo]{%
+\begin{minipage}{0.9\linewidth}
+\small\sffamily\sl%
+\hspace*{-0.05\linewidth}%
+#2
+\end{minipage}}%
+%}
+
+% Float parameters, for more full pages.
+\renewcommand{\topfraction}{0.9}	% max fraction of floats at top
+\renewcommand{\bottomfraction}{0.8}	% max fraction of floats at bottom
+
+\renewcommand{\textfraction}{0.07}	% allow minimal text w. figs
+%   Parameters for FLOAT pages (not text pages):
+\renewcommand{\floatpagefraction}{0.6}	% require fuller float pages
+%    % N.B.: floatpagefraction MUST be less than topfraction !!
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% A hack to have longtable work without problems with mutlicolumn
+
+\renewenvironment{longtable}[2][1]{%
+%\setlength{\locallinewidth}{1.3\linewidth}
+\footnotesize
+% Hack
+%\def\textbf#1{{\sffamily\bfseries #1}}
+\sffamily
+\begin{center}
+\begin{tabular}{#2}
+}{%
+\end{tabular}
+\end{center}
+}
+
+\def\endhead{\small}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Code blocks
+\newlength\leftsidespace
+
+\renewenvironment{quote}{%
+\par
+\smallskip
+\hspace{0.03\linewidth}%
+\begin{minipage}{0.97\linewidth}
+\footnotesize}{%
+\end{minipage}
+\smallskip
+}
+
+% Hack to restore or original font size }in lists:
+\let\old@item\item
+\def\item#1{%
+\normalsize\old@item{#1}%
+}
+
+\setitemize{leftmargin=1em}
+
+\setlength{\parskip}{0.1em plus 0.5em minus 0.1em}
+
+%% Hack to get good linebreaking in tt:
+%\let\oldtexttt\textt
+%\DeclareUrlCommand\mytexttt{%
+%\mathchardef\UrlBreakPenalty=0
+%\mathchardef\UrlBigBreakPenalty=0
+%}
+%\def\texttt#1{\mytexttt{#1}}
+
+% :vim:ft=tex:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/conclusion.tex	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,30 @@
+
+\cleardoublepage
+
+\pagestyle{empty}
+
+\begin{minipage}{.4\linewidth}
+\includegraphics[width=\linewidth]{scipy2009confs}
+\end{minipage}
+\hfill
+\begin{minipage}{.6\linewidth}
+{\bfseries\sffamily 
+Proceedings of the 8$^{\text{th}}$ Python in Science Conference}
+
+SciPy Conference -- Pasadena, CA, August 18-23, 2009. 
+
+Editors: \quad \mbox{Ga\"el {\sc Varoquaux}},  \quad 
+\mbox{St\'efan {\sc van der Walt}}, \quad \mbox{K. Jarrod {\sc Millman}}
+
+\end{minipage}
+
+\hrule
+
+\vbox{}
+\vfill
+\vfill
+\hfill\includegraphics[width=.3\linewidth]{isbn_barcode}
+
+\end{document}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/introduction.tex	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,141 @@
+
+\thispagestyle{empty}
+
+\vbox{}
+\vfill
+\vfill
+\vfill
+\begin{center}
+\rule{.9\linewidth}{.2ex}
+
+\includegraphics[width=\linewidth]{scipy2009confs}
+
+\rule{.9\linewidth}{.2ex}
+
+\vfill
+
+{\sffamily\bfseries
+{\huge
+Proceedings of the 8$^{\text{th}}$ Python in Science Conference}
+
+\bigskip
+\large
+SciPy Conference -- 
+Pasadena, CA, August 18-23,
+2009. 
+}
+
+\vfill
+\vfill
+\vfill
+\hline
+
+Editors: \quad Ga\"el {\sc Varoquaux},  \quad 
+St\'efan {\sc van der Walt}, \quad K. Jarrod {\sc Millman}
+\end{center}
+\vfill
+\vfill
+\vfill
+%\hfill\includegraphics[width=.3\linewidth]{isbn_barcode}
+%\vbox{}
+
+\pagebreak
+
+\thispagestyle{empty}
+
+\cleardoublepage 
+
+\setcounter{page}{0}
+\vbox{}
+\vfill
+\thispagestyle{empty}
+\tableofcontents
+\vfill
+
+{\small
+	The content of the articles of the {\sl Proceedings of the Python in
+	Science Conference} is copyrighted and owned by their original
+	authors.
+
+	For republication or other use of the material published, please
+        contact the copyright owners to obtain permission.
+
+    \bigskip
+    \hrule
+
+
+Proceedings of the 8th Python in Science Conference
+by Ga\"el Varoquaux, St\'efan van der Walt, K. Jarrod Milllman
+ISBN:   978-0-557-23212-3
+
+}
+
+\vfill
+\vbox{}
+\markright{}{}
+\markbox{}{}
+\clearpage
+\thispagestyle{empty}
+\section*{Organization}
+
+\def\bfsf{\bfseries\sffamily }
+
+%\hspace*{-.5cm}%
+\begin{tabular}{p{3.7cm}p{0.75\textwidth}}
+{\bfsf Conference chair}&\\
+K. Jarrod Millman & UC Berkeley, Helen Wills Neuroscience Institute, {\sc
+USA}\\
+\smallskip
+{\bfsf Tutorial Co-chairs}&\\
+Dave Peterson & Enthought Inc, Austin, {\sc USA} \\
+Fernando Perez & UC Berkeley, Helen Wills Neuroscience Institute, {\sc
+USA}\\
+\smallskip
+{\bfsf Program Co-chairs}&\\
+Ga\"el Varoquaux & INRIA Saclay, {\sc France} \\
+St\'efan van der Walt & Stellenbosh University, {\sc South Africa}\\
+\smallskip
+{\bfsf Program Committee}&\\
+Michael Aivazis & Center for Advanced Computing Research, California
+Institute of Technology {\sc USA}\\
+Brian Granger & Physics Department, California Polytechnic State
+University, San Luis Obispo {\sc USA} \\
+Aric Hagberg & Theoretical Division, Los Alamos National Laboratory
+{\sc USA} \\
+Konrad Hinsen & Centre de Biophysique Mol\'eculaire, CNRS Orl\'eans {\sc
+France} \\
+Randall LeVeque & Mathematics, University of Washington, Seattle {\sc
+USA}\\
+Travis Oliphant & Enthought Inc. {\sc USA} \\
+Prabhu Ramachandran & Department of Aerospace Engineering, IIT Bombay
+{\sc India}\\
+Raphael Ritz & International Neuroinformatics Coordinating Facility
+{\sc Sweden}\\
+William Stein & Mathematics, University of Washington, Seattle {\sc USA}\\
+\smallskip
+{\bfsf Proceeding reviewers}&\\
+Francesc Alted & Pytables {\sc Spain}\\
+Philippe Ciuciu & CEA, Neurospin {\sc France}\\
+Yann Cointepas &  CEA, Neurospin {\sc France}\\
+Emmanuelle Gouillart & CNRS Saint Gobain {\sc France}\\
+Jonathan Guyer & NIST {\sc USA}\\
+Ben Herbst & Stellenbosh University, {\sc South Africa}\\ 
+Paul Kienzle & NIST {\sc USA}\\
+Michael McKerns & Center for Advanced Computing Research, California
+Institute of Technology {\sc
+USA}\\
+Sturla Molden & University of Oslo {\sc Norway}\\
+Jean-Baptiste Poline  &  CEA, Neurospin {\sc France}\\
+Dag Sverre Seljebotn & University of Oslo {\sc Norway}\\
+Gregor Thalhammer & University of Florence {\sc Italy}\\
+\end{tabular}
+
+\pagestyle{fancy}
+\resethandings
+\cleardoublepage 
+\markright{}{}
+\markbox{}{}
+\pagestyle{fancy}
+\resethandings
+
+
Binary file project/static/proceedings/sources/isbn_barcode.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/latex2e.tex	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,74 @@
+% latex include file for docutils latex writer
+% --------------------------------------------
+%
+% CVS: $Id: latex2e.tex 4163 2005-12-09 04:21:34Z goodger $
+%
+% This is included at the end of the latex header in the generated file,
+% to allow overwriting defaults, although this could get hairy.
+% Generated files should process well standalone too, LaTeX might give a
+% message about a missing file.
+
+% donot indent first line of paragraph.
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{5pt plus 2pt minus 1pt}
+
+% sloppy
+% ------
+% Less strict (opposite to default fussy) space size between words. Therefore
+% less hyphenation.
+\sloppy
+
+% fonts
+% -----
+% times for pdf generation, gives smaller pdf files.
+%
+% But in standard postscript fonts: courier and times/helvetica do not fit.
+% Maybe use pslatex.
+\usepackage{times}
+
+% pagestyle
+% ---------
+% headings might put section titles in the page heading, but not if
+% the table of contents is done by docutils.
+% If pagestyle{headings} is used, \geometry{headheight=10pt,headsep=1pt}
+% should be set too.
+%\pagestyle{plain}
+%
+% or use fancyhdr (untested !)
+%\usepackage{fancyhdr}
+%\pagestyle{fancy}
+%\addtolength{\headheight}{\\baselineskip}
+%\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
+%\renewcommand{\subsectionmark}[1]{\markright{#1}}
+%\fancyhf{}
+%\fancyhead[LE,RO]{\\bfseries\\textsf{\Large\\thepage}}
+%\fancyhead[LO]{\\textsf{\\footnotesize\\rightmark}}
+%\fancyhead[RE]{\\textsc{\\textsf{\\footnotesize\leftmark}}}
+%\\fancyfoot[LE,RO]{\\bfseries\\textsf{\scriptsize Docutils}}
+%\fancyfoot[RE,LO]{\\textsf{\scriptsize\\today}}
+
+% geometry 
+% --------
+% = papersizes and margins
+%\geometry{a4paper,twoside,tmargin=1.5cm,
+%          headheight=1cm,headsep=0.75cm}
+
+% Do section number display
+% -------------------------
+%\makeatletter
+%\def\@seccntformat#1{}
+%\makeatother
+% no numbers in toc
+%\renewcommand{\numberline}[1]{}
+
+
+% change maketitle
+% ----------------
+%\renewcommand{\maketitle}{
+%  \begin{titlepage}
+%    \begin{center}
+%    \textsf{TITLE \@title} \\
+%       Date: \today
+%    \end{center}
+%  \end{titlepage}
+%}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/ltxgrid.sty	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,1984 @@
+%%
+%% This is file `ltxgrid.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ltxgrid.dtx  (with options: `ltxgrid,ltxgrid-krn')
+%% 
+%% This is a generated file;
+%% altering it directly is inadvisable;
+%% instead, modify the original source file.
+%% See the URL in the file 00readme.txt.
+%% 
+%% Copyright notice.
+%% 
+%%    These files are distributed
+%%    WITHOUT ANY WARRANTY; without even the implied warranty of
+%%    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%% 
+%%%  @LaTeX-file{
+%%%     filename        = "ltxgrid.dtx",
+%%%     version         = "1.0rc5",
+%%%     date            = "2001/07/26",
+%%%     time            = "12:23:00 GMT+8",
+%%%     checksum        = "4234",
+%%%     author          = "Arthur Ogawa (mailto:ogawa@teleport.com),
+%%%                        commissioned by the American Physical Society.
+%%%                        ",
+%%%     copyright       = "Copyright (C) 1999, 2000 Arthur Ogawa,
+%%%                        distributed under the terms of the
+%%%                        LaTeX Project Public License, see
+%%%                        ftp://ctan.tug.org/macros/latex/base/lppl.txt
+%%%                        ",
+%%%     address         = "Arthur Ogawa,
+%%%                        USA",
+%%%     telephone       = "",
+%%%     FAX             = "",
+%%%     email           = "ogawa@teleport.com",
+%%%     codetable       = "ISO/ASCII",
+%%%     keywords        = "latex, page grid, main vertical list",
+%%%     supported       = "yes",
+%%%     abstract        = "package to change page grid, MVL",
+%%%     docstring       = "The checksum field above generated by ltxdoc",
+%%%  }
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]%
+\ProvidesFile{ltxgrid.sty}%
+ [2001/07/26 1.0rc5 page grid package]% \fileversion
+\def\package@name{ltxgrid}%
+\expandafter\PackageInfo\expandafter{\package@name}{%
+ Page grid for \protect\LaTeXe,
+ by A. Ogawa (ogawa@teleport.com)%
+}%
+\RequirePackage{ltxutil}%
+\typeout{%
+ ltxgrid: portions licensed from W. E. Baxter (web@superscript.com)%
+}%
+\newcounter{linecount}
+\def\lineloop#1{%
+ \loop
+ \ifnum\c@linecount<#1\relax
+  \global\advance\c@linecount\@ne
+  \par
+  \hb@xt@\hsize{%
+   \ifnum\c@linecount<100 0\fi\ifnum\c@linecount<10 0\fi\number\c@linecount
+   \vrule depth2.5\p@
+   \leaders\hrule\hfil
+  }%
+  \penalty\interlinepenalty
+ \repeat
+}%
+\let\@@mark\mark
+\let\@@topmark\topmark
+\let\@@firstmark\firstmark
+\let\@@botmark\botmark
+\let\@@splitfirstmark\splitfirstmark
+\let\@@splitbotmark\splitbotmark
+\def\@themark{{}{}{}{}}%
+\def\nul@mark{{}{}{}{}\@@nul}%
+\def\set@mark@netw@#1#2#3#4#5#6#7{\gdef#1{{#6}{#7}{#4}{#5}}\do@mark}%
+\def\set@marktw@#1#2#3#4#5#6{\gdef#1{{#2}{#6}{#4}{#5}}\do@mark}%
+\def\set@markthr@@#1#2#3#4#5#6{\gdef#1{{#2}{#3}{#6}{#5}}\do@mark}%
+\def\get@mark@@ne#1#2#3#4#5\@@nul{#1}%
+\def\get@mark@tw@#1#2#3#4#5\@@nul{#2}%
+\def\get@mark@thr@@#1#2#3#4#5\@@nul{#3}%
+\def\get@mark@f@ur#1#2#3#4#5\@@nul{#4}%
+\def\mark@netw@{\expandafter\set@mark@netw@\expandafter\@themark\@themark}%
+\def\marktw@{\expandafter\set@marktw@\expandafter\@themark\@themark}%
+\def\markthr@@{\expandafter\set@markthr@@\expandafter\@themark\@themark}%
+\def\do@mark{\do@@mark\@themark\nobreak@mark}%
+\def\do@@mark#1{%
+ \begingroup
+  \let@mark
+  \@@mark{#1}%
+ \endgroup
+}%
+\def\let@mark{%
+ \let\protect\@unexpandable@protect
+ \let\label\relax
+ \let\index\relax
+ \let\glossary\relax
+}%
+\def\nobreak@mark{%
+ \@if@sw\if@nobreak\fi{\@ifvmode{\nobreak}{}}{}%
+}%
+\def\mark@envir{\markthr@@}%
+\def\bot@envir{%
+ \expandafter\expandafter
+ \expandafter\get@mark@thr@@
+ \expandafter\@@botmark
+             \nul@mark
+}%
+\def\markboth{\mark@netw@}%
+\def\markright{\marktw@}%
+\def\leftmark{%
+ \expandafter\expandafter
+ \expandafter\get@mark@@ne
+ \expandafter\saved@@botmark
+             \nul@mark
+}%
+\def\rightmark{%
+ \expandafter\expandafter
+ \expandafter\get@mark@tw@
+ \expandafter\saved@@firstmark
+             \nul@mark
+}%
+\let\primitive@output\output
+\long\def\@tempa#1\@@nil{#1}%
+\toks@
+\expandafter\expandafter
+\expandafter{%
+\expandafter \@tempa
+             \the\output
+             \@@nil
+             }%
+\newtoks\output
+\output\expandafter{\the\toks@}%
+\primitive@output{\dispatch@output}%
+\def\dispatch@output{%
+ \let\par\@@par
+ \expandafter\let\expandafter\@tempa\csname output@\the\outputpenalty\endcsname
+ \outputdebug@sw{%
+  \saythe\badness
+  \saythe\outputpenalty
+  \saythe\holdinginserts
+  \say\thepagegrid
+  \saythe\pagegrid@col
+  \saythe\pagegrid@cur
+ %\say\bot@envir
+  \saythe\insertpenalties
+ %\say\@@topmark
+ %\say\saved@@topmark
+ %\say\@@firstmark
+ %\say\saved@@firstmark
+  \say\@@botmark
+ %\say\saved@@botmark
+  \saythe\pagegoal
+  \saythe\pagetotal
+  \saythe{\badness\@cclv}%
+  \expandafter\@ifx\expandafter{\csname output@-\the\execute@message@pen\endcsname\@tempa}{%
+   \say\@message@saved
+  }{%
+   \expandafter\say\csname output@\the\outputpenalty\endcsname
+  }%
+  \say\@toplist
+  \say\@botlist
+  \say\@dbltoplist
+  \say\@deferlist
+  {\tracingall\scrollmode
+   \showbox\@cclv
+   \showbox\@cclv@saved
+   \showbox\pagesofar
+   \showbox\footbox
+   \showbox\footins@saved
+   \showbox\footins
+   \showlists
+  }%
+ }{}%
+ \@ifnotrelax\@tempa{\@tempa}{\the\output}%
+}%
+\@ifxundefined{\outputdebug@sw}{%
+ \@booleanfalse\outputdebug@sw
+}{}%
+\output={\toggle@insert\output@holding\output@moving}%
+\def\output@holding{%
+\csname output@init@\bot@envir\endcsname
+\@if@exceed@pagegoal{\unvcopy\@cclv}{%
+  \setbox\z@\vbox{\unvcopy\@cclv}%
+\outputdebug@sw{{\tracingall\scrollmode\showbox\z@}}{}%
+\dimen@\ht\@cclv\advance\dimen@-\ht\z@
+\dead@cycle@repair\dimen@
+}{%
+\dead@cycle
+}%
+}%
+\def\@if@exceed@pagegoal#1{%
+ \begingroup
+  \setbox\z@\vbox{#1}%
+ \dimen@\ht\z@\advance\dimen@\dp\z@
+  \outputdebug@sw{\saythe\dimen@}{}%
+  \@ifdim{\dimen@>\pagegoal}{%
+  \setbox\z@\vbox{\@@mark{}\unvbox\z@}%
+   \splittopskip\topskip
+   \splitmaxdepth\maxdepth
+   \vbadness\@M
+   \vfuzz\maxdimen
+   \setbox\tw@\vsplit\z@ to\pagegoal
+  \outputdebug@sw{{\tracingall\scrollmode\showbox\tw@\showbox\z@}}{}%
+  \setbox\tw@\vbox{\unvbox\tw@}%
+  \@ifdim{\ht\tw@=\z@}{%
+   \ltxgrid@info{Found overly large chunk while preparing to move insertions. Attempting repairs}%
+    \aftergroup\true@sw
+  }{%
+    \aftergroup\false@sw
+  }%
+ }{%
+ \aftergroup\false@sw
+ }%
+\endgroup
+}%
+%% \item
+%%  Put down the same interrupts as for the non-trivial case above.
+\def\output@moving{%
+ \set@top@firstmark
+ \@ifnum{\outputpenalty=\do@newpage@pen}{%
+  \setbox\@cclv\vbox{%
+   \unvbox\@cclv
+   \setbox\z@\lastbox
+   \@ifdim{\ht\z@=\ht\@protection@box}{\box\lastbox}{\unskip}%
+  }%
+ }{}%
+ \@cclv@nontrivial@sw{%
+  \csname output@prep@\bot@envir \endcsname
+  \@makecol\csname output@column@\thepagegrid\endcsname
+  \protect@penalty\do@startcolumn@pen
+  \clearpage@sw{%
+   \protect@penalty\do@endpage@pen
+  }{}%
+  \csname output@post@\bot@envir \endcsname
+ }{%
+  {\setbox\z@\box\@cclv}%
+ }%
+ \set@colroom
+ \global\@mparbottom\z@
+ \global\@textfloatsheight\z@ %FIXME: this legacy LaTeX variable is set, but never queried!
+}%
+\def\@cclv@nontrivial@sw{%
+\@ifx@empty\@toplist{%
+\@ifx@empty\@botlist{%
+\@ifvoid\footins{%
+ \@ifvoid\@cclv{%
+  \false@sw
+ }{%
+\setbox\z@\vbox{\unvcopy\@cclv}%
+\@ifdim{\ht\z@=\topskip}{%
+\setbox\z@\vbox{%
+\unvbox\z@
+\setbox\z@\lastbox\dimen@\lastskip\unskip
+\@ifdim{\ht\z@=\ht\@protection@box}{%
+\advance\dimen@\ht\z@
+\@ifdim{\dimen@=\topskip}{%
+\aftergroup\true@sw
+}{%
+\aftergroup\false@sw
+}%
+}{%
+\aftergroup\false@sw
+}%
+}%
+{%
+\false@sw % Normal for \clearpage
+}{%
+\true@sw
+}%
+}{%
+\@ifdim{\ht\z@=\z@}{%
+\ltxgrid@info{Found trivial column. Discarding it}%
+\outputdebug@sw{{\tracingall\scrollmode\showbox\@cclv}}{}%
+\false@sw
+}{%
+\true@sw
+}%
+}%
+ }%
+}{%
+\true@sw
+}%
+}{%
+\true@sw
+}%
+}{%
+\true@sw
+}%
+}%
+\def\protect@penalty#1{\protection@box\penalty-#1\relax}%
+\newbox\@protection@box
+\setbox\@protection@box\vbox to1986sp{\vfil}%
+\def\protection@box{\nointerlineskip\copy\@protection@box}%
+\def\dead@cycle@repair#1{%
+\expandafter\do@@mark
+\expandafter{%
+\@@botmark
+}%
+\unvbox\@cclv
+\nointerlineskip
+\vbox to#1{\vss}%
+\@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
+}%
+\def\dead@cycle@repair@protected#1{%
+\expandafter\do@@mark
+\expandafter{%
+\@@botmark
+}%
+\begingroup
+  \unvbox\@cclv
+  \setbox\z@\lastbox % Remove protection box
+ \nointerlineskip
+  \advance#1-\ht\@protection@box
+ \vbox to#1{\vss}%
+  \protection@box % Reinsert protection box
+ \@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
+\endgroup
+}%
+\def\dead@cycle{%
+ \expandafter\do@@mark
+ \expandafter{%
+              \@@botmark
+             }%
+ \unvbox\@cclv
+ \@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
+}%
+\def\output@init@document{%
+ \@ifvoid\footbox{}{%
+  \global\advance\vsize-\ht\footbox
+  \global\advance\vsize-\dp\footbox
+ }%
+}%
+\def\output@prep@document{%
+ \@ifvoid\footbox{}{%
+  \setbox\footins\vbox{\unvbox\footbox\unvbox\footins}%
+ }%
+}%
+\def\output@post@document{}%
+\let\@opcol\@undefined
+\def\@makecol{%
+ \setbox\@outputbox\vbox{%
+  \boxmaxdepth\@maxdepth
+  \@tempdima\dp\@cclv
+  \unvbox\@cclv
+  \vskip-\@tempdima
+ }%
+ \xdef\@freelist{\@freelist\@midlist}\global\let\@midlist\@empty
+ \@combinefloats
+ \@combineinserts\@outputbox\footins
+  \set@adj@colht\dimen@
+  \count@\vbadness
+  \vbadness\@M
+  \setbox\@outputbox\vbox to\dimen@{%
+   \@texttop
+   \dimen@\dp\@outputbox
+   \unvbox\@outputbox
+   \vskip-\dimen@
+   \@textbottom
+  }%
+  \vbadness\count@
+ \global\maxdepth\@maxdepth
+}%
+\let\@makespecialcolbox\@undefined
+\def\@combineinserts#1#2{%
+ \setbox#1\vbox{%
+  \unvbox#1%
+  \vbox{%
+   \@ifvoid#2{}{%
+    \vskip\skip\footins
+    \color@begingroup
+    \normalcolor
+    \footnoterule
+    \nointerlineskip
+    \box#2%
+    \color@endgroup
+   }{}%
+  }%
+ }%
+}%
+\appdef\@floatplacement{%
+ \global\@fpmin\@fpmin
+}%
+\mathchardef\pagebreak@pen=\@M
+\expandafter\let\csname output@-\the\pagebreak@pen\endcsname\relax
+\mathchardef\do@startcolumn@pen=10005
+\@namedef{output@-\the\do@startcolumn@pen}{\do@startcolumn}%
+\def\do@startcolumn{%
+ \setbox\@cclv\vbox{\unvbox\@cclv\setbox\z@\lastbox\unskip}%
+ \clearpage@sw{\@clearfloatplacement}{\@floatplacement}%
+ \set@colroom
+ \@booleanfalse\pfloat@avail@sw
+ \begingroup
+  \@colht\@colroom
+  \@booleanfalse\float@avail@sw
+  \@tryfcolumn\test@colfloat
+  \float@avail@sw{\aftergroup\@booleantrue\aftergroup\pfloat@avail@sw}{}%
+ \endgroup
+ \fcolmade@sw{%
+  \setbox\@cclv\vbox{\unvbox\@outputbox\unvbox\@cclv}%
+  \outputpenalty-\pagebreak@pen % ask for a return visit, this time with insertions and all.
+  \dead@cycle
+ }{%
+  \begingroup
+   \let\@elt\@scolelt
+   \let\reserved@b\@deferlist\global\let\@deferlist\@empty\reserved@b
+  \endgroup
+  \clearpage@sw{%
+   \outputpenalty\@M
+  }{%
+   \outputpenalty\do@newpage@pen
+  }%
+  \dead@cycle
+ }%
+ \check@deferlist@stuck\do@startcolumn
+ \set@vsize
+}%
+\def\@scolelt#1{\def\@currbox{#1}\@addtonextcol}%
+\def\test@colfloat#1{%
+ \csname @floatselect@sw@\thepagegrid\endcsname#1{}{\@testtrue}%
+ \@if@sw\if@test\fi{}{\aftergroup\@booleantrue\aftergroup\float@avail@sw}%
+}%
+\def\@addtonextcol{%
+ \begingroup
+  \@insertfalse
+  \@setfloattypecounts
+  \csname @floatselect@sw@\thepagegrid\endcsname\@currbox{%
+   \@ifnum{\@fpstype=8 }{}{%
+     \@ifnum{\@fpstype=24 }{}{%
+       \@flsettextmin
+       \@reqcolroom \ht\@currbox
+       \advance \@reqcolroom \@textmin
+       \advance \@reqcolroom \vsize % take into account split insertions
+       \advance \@reqcolroom -\pagegoal
+       \@ifdim{\@colroom>\@reqcolroom}{%
+         \@flsetnum \@colnum
+         \@ifnum{\@colnum>\z@}{%
+            \@bitor\@currtype\@deferlist
+            \@if@sw\if@test\fi{}{%
+              \@addtotoporbot
+            }%
+         }{}%
+       }{}%
+     }%
+   }%
+  }{}%
+  \@if@sw\if@insert\fi{}{%
+    \@cons\@deferlist\@currbox
+  }%
+ \endgroup
+}%
+\mathchardef\do@startpage@pen=10006
+\@namedef{output@-\the\do@startpage@pen}{\do@startpage}%
+\def\do@startpage{%
+ \setbox\@cclv\vbox{\unvbox\@cclv\setbox\z@\lastbox\unskip}%
+ \clearpage@sw{\@clearfloatplacement}{\@dblfloatplacement}%
+ \set@colht
+ \@booleanfalse\pfloat@avail@sw
+ \begingroup
+  \@booleanfalse\float@avail@sw
+  \@tryfcolumn\test@dblfloat
+  \float@avail@sw{\aftergroup\@booleantrue\aftergroup\pfloat@avail@sw}{}%
+ \endgroup
+ \fcolmade@sw{%
+  \global\setbox\pagesofar\vbox{\unvbox\pagesofar\unvbox\@outputbox}%
+  \@combinepage
+  \@combinedblfloats
+  \@outputpage
+  \global\pagegrid@cur\@ne
+  \protect@penalty\do@startpage@pen
+ }{%
+  \begingroup
+   \@booleanfalse\float@avail@sw
+   \let\@elt\@sdblcolelt
+   \let\reserved@b\@deferlist\global\let\@deferlist\@empty\reserved@b
+  \endgroup
+  \@ifdim{\@colht=\textheight}{% No luck...
+   \pfloat@avail@sw{% ...but a float *was* available!
+    \forcefloats@sw{%
+     \ltxgrid@warn{Forced dequeueing of floats stalled}%
+    }{%
+     \ltxgrid@warn{Dequeueing of floats stalled}%
+    }%
+   }{}%
+  }{}%
+  \outputpenalty\@M
+  \dead@cycle
+ }%
+ \check@deferlist@stuck\do@startpage
+ \set@colht
+}%
+\def\@sdblcolelt#1{\def\@currbox{#1}\@addtodblcol}%
+\def\test@dblfloat#1{%
+ \@if@notdblfloat{#1}{\@testtrue}{}%
+ \@if@sw\if@test\fi{}{\aftergroup\@booleantrue\aftergroup\float@avail@sw}%
+}%
+\def\@if@notdblfloat#1{\@ifdim{\wd#1<\textwidth}}%
+\@booleanfalse\forcefloats@sw
+\def\@addtodblcol{%
+ \begingroup
+  \@if@notdblfloat{\@currbox}{%
+   \false@sw
+  }{%
+   \@setfloattypecounts
+   \@getfpsbit \tw@
+   \@bitor \@currtype \@deferlist
+   \@if@sw\if@test\fi{%
+    \false@sw
+   }{%
+    \@ifodd\@tempcnta{%
+     \aftergroup\@booleantrue\aftergroup\float@avail@sw
+     \@flsetnum \@dbltopnum
+     \@ifnum{\@dbltopnum>\z@}{%
+       \@ifdim{\@dbltoproom>\ht\@currbox}{%
+        \true@sw
+       }{%
+        \@ifnum{\@fpstype<\sixt@@n}{%
+         \begingroup
+          \advance \@dbltoproom \@textmin
+          \@ifdim{\@dbltoproom>\ht\@currbox}{%
+           \endgroup\true@sw
+          }{%
+           \endgroup\false@sw
+          }%
+        }{%
+         \false@sw
+        }%
+       }%
+     }{%
+      \false@sw
+     }%
+    }{%
+     \false@sw
+    }%
+   }%
+  }%
+  {%
+   \@tempdima -\ht\@currbox
+   \advance\@tempdima
+    -\@ifx{\@dbltoplist\@empty}{\dbltextfloatsep}{\dblfloatsep}%
+   \global \advance \@dbltoproom \@tempdima
+   \global \advance \@colht \@tempdima
+   \global \advance \@dbltopnum \m@ne
+   \@cons \@dbltoplist \@currbox
+  }{%
+   \@cons \@deferlist \@currbox
+  }%
+ \endgroup
+}%
+\def\@tryfcolumn#1{%
+  \global\@booleanfalse\fcolmade@sw
+  \@ifx@empty\@deferlist{}{%
+    \global\let\@trylist\@deferlist
+    \global\let\@failedlist\@empty
+    \begingroup
+      \dimen@\vsize\advance\dimen@-\pagegoal\@ifdim{\dimen@>\z@}{%
+       \advance\@fpmin-\dimen@
+      }{}%
+      \def\@elt{\@xtryfc#1}\@trylist
+    \endgroup
+    \fcolmade@sw{%
+      \global\setbox\@outputbox\vbox{\vskip \@fptop}%
+      \let \@elt \@wtryfc \@flsucceed
+      \global\setbox\@outputbox\vbox{\unvbox\@outputbox
+        \unskip \vskip \@fpbot
+      }%
+      \let \@elt \relax
+      \xdef\@deferlist{\@failedlist\@flfail}%
+      \xdef\@freelist{\@freelist\@flsucceed}%
+    }{}%
+  }%
+}%
+\def\@wtryfc #1{%
+  \global\setbox\@outputbox\vbox{\unvbox\@outputbox
+    \box #1\vskip\@fpsep
+  }%
+}%
+\def\@xtryfc#1#2{%
+  \@next\reserved@a\@trylist{}{}% trim \@trylist. Ugly!
+  \@currtype \count #2%
+  \divide\@currtype\@xxxii\multiply\@currtype\@xxxii
+  \@bitor \@currtype \@failedlist
+  \@testfp #2%
+  #1#2%
+  \@ifdim{\ht #2>\@colht   }{\@testtrue}{}%
+  \@if@sw\if@test\fi{%
+   \@cons\@failedlist #2%
+  }{%
+   \begingroup
+     \gdef\@flsucceed{\@elt #2}%
+     \global\let\@flfail\@empty
+     \@tempdima\ht #2%
+     \def \@elt {\@ztryfc#1}\@trylist
+     \@ifdim{\@tempdima >\@fpmin}{%
+       \global\@booleantrue\fcolmade@sw
+     }{%
+       \@cons\@failedlist #2%
+     }%
+   \endgroup
+   \fcolmade@sw{%
+     \let \@elt \@gobble
+   }{}%
+  }%
+}%
+\def\@ztryfc #1#2{%
+  \@tempcnta \count#2%
+  \divide\@tempcnta\@xxxii\multiply\@tempcnta\@xxxii
+  \@bitor \@tempcnta {\@failedlist \@flfail}%
+  \@testfp #2%
+  #1#2%
+  \@tempdimb\@tempdima
+  \advance\@tempdimb \ht#2\advance\@tempdimb\@fpsep
+  \@ifdim{\@tempdimb >\@colht}{%
+    \@testtrue
+  }{}%
+  \@if@sw\if@test\fi{%
+    \@cons\@flfail #2%
+  }{%
+    \@cons\@flsucceed #2%
+    \@tempdima\@tempdimb
+  }%
+}%
+\def\newpage@prep{%
+  \if@noskipsec
+    \ifx \@nodocument\relax
+      \leavevmode
+      \global \@noskipsecfalse
+    \fi
+  \fi
+  \if@inlabel
+    \leavevmode
+    \global \@inlabelfalse
+  \fi
+  \if@nobreak \@nobreakfalse \everypar{}\fi
+  \par
+}%
+\def \newpage {%
+ \newpage@prep
+ \do@output@MVL{%
+  \vfil
+  \penalty-\pagebreak@pen
+ }%
+}%
+\def\clearpage{%
+ \newpage@prep
+ \do@output@MVL{%
+  \vfil
+  \penalty-\pagebreak@pen
+  \global\@booleantrue\clearpage@sw
+  \protect@penalty\do@startcolumn@pen
+  \protect@penalty\do@endpage@pen
+ }%
+ \do@output@MVL{%
+  \global\@booleanfalse\clearpage@sw
+ }%
+}%
+\def\cleardoublepage{%
+ \clearpage
+ \@if@sw\if@twoside\fi{%
+  \@ifodd\c@page{}{%
+   \null\clearpage
+  }%
+ }{}%
+}%
+\@booleanfalse\clearpage@sw
+\mathchardef\do@endpage@pen=10007
+\@namedef{output@-\the\do@endpage@pen}{%
+ \csname end@column@\thepagegrid\endcsname
+}%
+\mathchardef\do@newpage@pen=10001
+\expandafter\let\csname output@-\the\do@newpage@pen\endcsname\relax
+\def\@clearfloatplacement{%
+ \global\@topnum     \maxdimen % \c@topnumber
+ \global\@toproom    \maxdimen % \topfraction\@colht
+ \global\@botnum     \maxdimen % \c@bottomnumber
+ \global\@botroom    \maxdimen % \bottomfraction\@colht
+ \global\@colnum     \maxdimen % \c@totalnumber
+ \global\@dbltopnum  \maxdimen % \c@dbltopnumber
+ \global\@dbltoproom \maxdimen % \dbltopfraction\@colht
+ \global\@textmin    \z@       % \@colht\advance \@textmin -\@dbltoproom
+ \global\@fpmin      \z@       % \dblfloatpagefraction\textheight
+ \let\@testfp\@gobble
+ \appdef\@setfloattypecounts{\@fpstype16\advance\@fpstype\m@ne}%
+}%
+\let\@doclearpage\@undefined
+\let\@makefcolumn\@undefined
+\def\clr@top@firstmark{%
+ \global\let\saved@@topmark\@undefined
+ \global\let\saved@@firstmark\@empty
+ \global\let\saved@@botmark\@empty
+}%
+\clr@top@firstmark
+\def\set@top@firstmark{%
+ \@ifxundefined\saved@@topmark{\expandafter\gdef\expandafter\saved@@topmark\expandafter{\@@topmark}}{}%
+ \@if@empty\saved@@firstmark{\expandafter\gdef\expandafter\saved@@firstmark\expandafter{\@@firstmark}}{}%
+ \@if@empty\@@botmark{}{\expandafter\gdef\expandafter\saved@@botmark\expandafter{\@@botmark}}%
+}%
+\appdef\@outputpage{%
+ \clr@top@firstmark
+}%
+\def\@float#1{%
+ \@ifnextchar[{%}]{%Brace-matching klootch
+  \@yfloat\width@float{#1}%
+ }{%
+  \@ifxundefined@cs{fps@#1}{%
+   \edef\reserved@a{\noexpand\@yfloat\noexpand\width@float{#1}[\csname fps@\endcsname]}\reserved@a
+  }{%
+   \edef\reserved@a{\noexpand\@yfloat\noexpand\width@float{#1}[\csname fps@#1\endcsname]}\reserved@a
+  }%
+ }%
+}%
+\def\@dblfloat#1{%
+ \@ifnum{\pagegrid@col=\@ne}{%
+  \@float{#1}%
+ }{%
+  \@ifnextchar[{%}]{%Brace-matching klootch
+   \@yfloat\widthd@float{#1}%
+  }{%
+   \@ifxundefined@cs{fpsd@#1}{%
+    \edef\reserved@a{\noexpand\@yfloat\noexpand\widthd@float{#1}[\csname fpsd@\endcsname]}\reserved@a
+   }{%
+    \edef\reserved@a{\noexpand\@yfloat\noexpand\widthd@float{#1}[\csname fpsd@#1\endcsname]}\reserved@a
+   }%
+  }%
+ }%
+}%
+\def\@yfloat#1#2[#3]{%
+ \@xfloat{#2}[#3]%
+ \hsize#1\linewidth\hsize
+ \minipagefootnote@init
+}%
+\def\fps@{tbp}%
+\def\fpsd@{tp}%
+\def\width@float{\columnwidth}%
+\def\widthd@float{\textwidth}%
+\def\end@float{%
+ \end@@float{%
+  \check@currbox@count
+ }%
+}%
+\def\end@dblfloat{%
+ \@ifnum{\pagegrid@col=\@ne}{%
+  \end@float
+ }{%
+  \end@@float{%
+   \@boxfpsbit\@currbox{1}\@ifodd\@tempcnta{\global\advance\count\@currbox\m@ne}{}%
+   \@boxfpsbit\@currbox{4}\@ifodd\@tempcnta{\global\advance\count\@currbox-4\relax}{}%
+   \global\wd\@currbox\textwidth % Klootch
+   \check@currbox@count
+  }%
+ }%
+}%
+\def\end@@float#1{%
+ \minipagefootnote@here
+ \@endfloatbox
+ #1%
+ \@ifnum{\@floatpenalty <\z@}{%
+  \@largefloatcheck
+  \@cons\@currlist\@currbox
+  \@ifnum{\@floatpenalty <-\@Mii}{%
+   \do@output@cclv{\@add@float}%
+  }{%
+   \vadjust{\do@output@cclv{\@add@float}}%
+   \@Esphack
+  }%
+ }{}%
+}%
+\def\check@currbox@count{%
+ \@ifnum{\count\@currbox>\z@}{%
+\count@\count\@currbox\divide\count@\sixt@@n\multiply\count@\sixt@@n
+\@tempcnta\count\@currbox\advance\@tempcnta-\count@
+\@ifnum{\@tempcnta=\z@}{%
+   \ltxgrid@warn{Float cannot be placed}%
+}{}%
+ }{%
+  % Is a \marginpar
+ }%
+}%
+\providecommand\minipagefootnote@init{}%
+\providecommand\minipagefootnote@here{}%
+\let\@specialoutput\@undefined
+\def\@add@float{%
+ \@pageht\ht\@cclv\@pagedp\dp\@cclv
+ \unvbox\@cclv
+ \@next\@currbox\@currlist{%
+  \csname @floatselect@sw@\thepagegrid\endcsname\@currbox{%
+   \@ifnum{\count\@currbox>\z@}{%
+    \advance \@pageht \@pagedp
+    \advance \@pageht \vsize \advance \@pageht -\pagegoal % do not assume \holdinginserts is cleared!
+    \@addtocurcol % Commit an h float
+  }{%
+   \@addmarginpar
+  }%
+  }{%
+   \@resethfps
+   \@cons\@deferlist\@currbox
+  }%
+ }{\@latexbug}%
+ \@ifnum{\outputpenalty<\z@}{%
+  \@if@sw\if@nobreak\fi{%
+   \nobreak
+  }{%
+   \addpenalty \interlinepenalty
+  }%
+ }{}%
+ \set@vsize
+}%
+\let\@reinserts\@undefined
+\def \@addtocurcol {%
+   \@insertfalse
+   \@setfloattypecounts
+   \ifnum \@fpstype=8
+   \else
+     \ifnum \@fpstype=24
+     \else
+       \@flsettextmin
+       \advance \@textmin \@textfloatsheight
+       \@reqcolroom \@pageht
+       \ifdim \@textmin>\@reqcolroom
+         \@reqcolroom \@textmin
+       \fi
+       \advance \@reqcolroom \ht\@currbox
+       \ifdim \@colroom>\@reqcolroom
+         \@flsetnum \@colnum
+         \ifnum \@colnum>\z@
+           \@bitor\@currtype\@deferlist
+           \if@test
+           \else
+             \@bitor\@currtype\@botlist
+             \if@test
+               \@addtobot
+             \else
+               \ifodd \count\@currbox
+                 \advance \@reqcolroom \intextsep
+                 \ifdim \@colroom>\@reqcolroom
+                   \global \advance \@colnum \m@ne
+                   \global \advance \@textfloatsheight \ht\@currbox
+                   \global \advance \@textfloatsheight 2\intextsep
+                   \@cons \@midlist \@currbox
+                   \if@nobreak
+                     \nobreak
+                     \@nobreakfalse
+                     \everypar{}%
+                   \else
+                     \addpenalty \interlinepenalty
+                   \fi
+                   \vskip \intextsep
+                   \unvbox\@currbox %AO
+                   \penalty\interlinepenalty
+                   \vskip\intextsep
+                   \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
+                   \outputpenalty \z@
+                   \@inserttrue
+                 \fi
+               \fi
+               \if@insert
+               \else
+                 \@addtotoporbot
+               \fi
+             \fi
+           \fi
+         \fi
+       \fi
+     \fi
+   \fi
+   \if@insert
+   \else
+     \@resethfps
+     \@cons\@deferlist\@currbox
+   \fi
+}%
+\@twocolumnfalse
+\let\@twocolumntrue\@twocolumnfalse
+\def\@addmarginpar{%
+ \@next\@marbox\@currlist{%
+  \@cons\@freelist\@marbox\@cons\@freelist\@currbox
+ }\@latexbug
+ \setbox\@marbox\hb@xt@\columnwidth{%
+  \csname @addmarginpar@\thepagegrid\endcsname{%
+   \hskip-\marginparsep\hskip-\marginparwidth
+   \box\@currbox
+  }{%
+   \hskip\columnwidth\hskip\marginparsep
+   \box\@marbox
+  }%
+  \hss
+ }%
+ \setbox\z@\box\@currbox
+    \@tempdima\@mparbottom
+    \advance\@tempdima -\@pageht
+    \advance\@tempdima\ht\@marbox
+ \@ifdim{\@tempdima >\z@}{%
+   \@latex@warning@no@line {Marginpar on page \thepage\space moved}%
+ }{%
+   \@tempdima\z@
+ }%
+    \global\@mparbottom\@pageht
+    \global\advance\@mparbottom\@tempdima
+    \global\advance\@mparbottom\dp\@marbox
+    \global\advance\@mparbottom\marginparpush
+    \advance\@tempdima -\ht\@marbox
+    \global\setbox \@marbox
+                   \vbox {\vskip \@tempdima
+                          \box \@marbox}%
+    \global \ht\@marbox \z@
+    \global \dp\@marbox \z@
+    \kern -\@pagedp
+    \nointerlineskip
+  \box\@marbox
+    \nointerlineskip
+    \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}%
+}%
+\newenvironment{turnpage}{%
+ \def\width@float{\textheight}%
+ \def\widthd@float{\textheight}%
+ \appdef\@endfloatbox{%
+  \@ifxundefined\@currbox{%
+   \ltxgrid@warn{Cannot rotate! Not a float}%
+  }{%
+   \setbox\@currbox\vbox to\textwidth{\vfil\unvbox\@currbox\vfil}%
+   \global\setbox\@currbox\vbox{\rotatebox{90}{\box\@currbox}}%
+  }%
+ }%
+}{%
+}%
+\def\rotatebox@dummy#1#2{%
+ \ltxgrid@warn{You must load the graphics or graphicx package in order to use the turnpage environment}%
+ #2%
+}%
+\AtBeginDocument{%
+ \@ifxundefined\rotatebox{\let\rotatebox\rotatebox@dummy}{}%
+}%
+\@namedef{output@-1073741824}{%"40000000
+ \deadcycles\z@
+ \setbox\z@\box\@cclv
+}%
+\mathchardef\save@column@pen=10016
+\@namedef{output@-\the\save@column@pen}{\save@column}%
+\let \@cclv@saved \@holdpg
+\let \@holdpg \@undefined
+\def\save@column{%
+ \@ifvoid\@cclv@saved{%
+\set@top@firstmark
+\global\@topmark@saved\expandafter{\@@topmark}%
+ }{}%
+\global\setbox\@cclv@saved\vbox{%
+  \@ifvoid\@cclv@saved{}{%
+ \unvbox\@cclv@saved
+ \marry@baselines
+}%
+\unvbox\@cclv
+\lose@breaks
+\setbox\z@\lastbox
+}%
+}%
+\newtoks\@topmark@saved
+\def\prep@cclv{%
+ \setbox\z@\box\@cclv
+ \setbox\@cclv\box\@cclv@saved
+ \vbadness\@M
+}%
+\mathchardef\save@column@insert@pen=10017
+\@namedef{output@-\the\save@column@insert@pen}{\toggle@insert\savecolumn@holding\savecolumn@moving}%
+\def\savecolumn@holding{%
+\@if@exceed@pagegoal{\unvcopy\@cclv\setbox\z@\lastbox}{%
+  \setbox\z@\vbox{\unvcopy\@cclv\setbox\z@\lastbox}%
+  \outputdebug@sw{{\tracingall\scrollmode\showbox\z@}}{}%
+\dimen@\ht\@cclv\advance\dimen@-\ht\z@
+\dead@cycle@repair@protected\dimen@
+}{%
+\dead@cycle
+}%
+}%
+\def\savecolumn@moving{%
+ \@cclv@nontrivial@sw{%
+  \save@column
+ }{%
+  {\setbox\z@\box\@cclv}%
+ }%
+\@ifvoid\footins{}{%
+\outputdebug@sw{{\tracingall\scrollmode\showbox\footins}}{}%
+\global\setbox\footins@saved\vbox{\unvbox\footins@saved\marry@baselines\unvbox\footins}%
+\protect@penalty\save@column@insert@pen
+}%
+}%
+\newbox\footins@saved
+\mathchardef\save@message@pen=10018
+\@namedef{output@-\the\save@message@pen}{\save@message}%
+\def\save@message{%
+ \setbox\z@\box\@cclv %FIXME: what if \box\@cclv is not empty?
+ \toks@\expandafter{\@@firstmark}%
+ \expandafter\gdef\expandafter\@message@saved\expandafter{\the\toks@}%
+ \expandafter\do@@mark\expandafter{\the\@topmark@saved}%
+}%
+\gdef\@message@saved{}%
+\mathchardef\execute@message@pen=10019
+\@namedef{output@-\the\execute@message@pen}{\@message@saved}%
+\def\execute@message{%
+ \@execute@message\save@column@pen %Implicit #2
+}%
+\def\execute@message@insert#1{%
+ \@execute@message\save@column@insert@pen{\setbox\footins\box\footins@saved#1}%
+}%
+\long\def\@execute@message#1#2{%
+ \begingroup
+  \dimen@\prevdepth\@ifdim{\dimen@<\z@}{\dimen@\z@}{}%
+  \setbox\z@\vbox{%
+   \protect@penalty#1%
+   \protection@box
+   \toks@{\prep@cclv#2}%
+   \@@mark{\the\toks@}%
+   \penalty-\save@message@pen
+   \setbox\z@\null\dp\z@\dimen@\ht\z@-\dimen@
+   \nointerlineskip\box\z@
+   \penalty-\execute@message@pen
+  }\unvbox\z@
+ \endgroup
+}%
+\def\do@output@cclv{\execute@message}%
+\def\do@output@MVL#1{%
+ \@ifvmode{%
+  \begingroup\execute@message{\unvbox\@cclv#1}\endgroup
+ }{%
+  \@ifhmode{%
+   \vadjust{\execute@message{\unvbox\@cclv#1}}%
+  }{%
+   \@latexerr{\string\do@output@MVL\space cannot be executed in this mode!}\@eha
+  }%
+ }%
+}%
+\def\lose@breaks{%
+ \loopwhile{%
+  \count@\lastpenalty
+  \@ifnum{\count@=\@M}{% 10000 is a TeX magic number!
+   \unpenalty\true@sw
+  }{%
+   \false@sw
+  }%
+ }%
+}%
+\def\removestuff{\do@output@MVL{\unskip\unpenalty}}%
+\def\removephantombox{%
+ \vadjust{%
+  \execute@message{%
+   \unvbox\@cclv
+   \setbox\z@\lastbox
+   \unskip
+   \unskip
+   \unpenalty
+   \penalty\predisplaypenalty
+   \vskip\abovedisplayskip
+  }%
+ }%
+}%
+\def\addstuff#1#2{\edef\@tempa{\noexpand\do@output@MVL{\noexpand\@addstuff{#1}{#2}}}\@tempa}%
+\def\@addstuff#1#2{%
+ \skip@\lastskip\unskip
+ \count@\lastpenalty\unpenalty
+ \@if@empty{#1}{}{\penalty#1\relax}%
+ \@ifnum{\count@=\z@}{}{\penalty\count@}%
+ \vskip\skip@
+ \@if@empty{#2}{}{\vskip#2\relax}%
+}%
+\def\replacestuff#1#2{\edef\@tempa{\noexpand\do@output@MVL{\noexpand\@replacestuff{#1}{#2}}}\@tempa}%
+\def\@replacestuff#1#2{%
+ \skip@\lastskip\unskip
+ \count@\lastpenalty\unpenalty
+ \@if@empty{#1}{}{%
+ \@ifnum{\count@>\@M}{}{%
+   \@ifnum{\count@=\z@}{\count@=#1\relax}{%
+    \@ifnum{\count@<#1\relax}{}{%
+     \count@=#1\relax
+    }%
+   }%
+ }%
+ }%
+ \@ifnum{\count@=\z@}{}{\penalty\count@}%
+ \@if@empty{#2}{}{%
+  \@tempskipa#2\relax
+  \@ifdim{\z@>\@tempskipa}{%
+   \advance\skip@-\@tempskipa
+  }{%
+   \@ifdim{\skip@>\@tempskipa}{}{%
+    \skip@\@tempskipa
+   }%
+  }%
+ }%
+ \vskip\skip@
+}%
+\def\move@insertions{\global\holdinginserts\z@}%
+\def\hold@insertions{\global\holdinginserts\@ne}%
+\hold@insertions
+\def\move@insert@sw{\@ifnum{\holdinginserts=\z@}}%
+\def\toggle@insert#1#2{%
+ \@ifnum{\holdinginserts=\z@}{\hold@insertions#2}{\move@insertions#1}%
+}%
+\def\do@columngrid#1#2{%
+ \par
+ \expandafter\let\expandafter\@tempa\csname open@column@#1\endcsname
+ \@ifx{\relax\@tempa}{%
+  \ltxgrid@warn{Unknown page grid #1. No action taken}%
+ }{%
+  \do@output@MVL{\start@column{#1}{#2}}%
+ }%
+}%
+\def\start@column#1#2{%
+ \def\@tempa{#1}\@ifx{\@tempa\thepagegrid}{%
+  \ltxgrid@info{Already in page grid \thepagegrid. No action taken}%
+ }{%
+  \expandafter\execute@message@insert
+  \expandafter{%
+               \csname shut@column@\thepagegrid\expandafter\endcsname
+               \csname open@column@#1\endcsname{#2}%
+               \set@vsize
+             }%
+ }%
+}%
+\def\thepagegrid{one}%
+\newbox\pagesofar
+\newbox\footbox
+\newcommand\onecolumngrid{\do@columngrid{one}{\@ne}}%
+\let\onecolumn\@undefined
+\def\open@column@one#1{%
+ \unvbox\pagesofar
+ \gdef\thepagegrid{one}%
+ \global\pagegrid@col#1%
+ \global\pagegrid@cur\@ne
+ \set@colht
+ \set@column@hsize\pagegrid@col
+}%
+\def\shut@column@one{%
+ \@makecol
+ \global\setbox\pagesofar\vbox{\unvbox\@outputbox\recover@footins}%
+ \set@colht
+}%
+\def\float@column@one{%
+ \@makecol
+ \@outputpage
+}%
+\def\end@column@one{%
+ \unvbox\@cclv\setbox\z@\lastbox
+ \protect@penalty\do@newpage@pen
+}%
+\def\output@column@one{%
+ \@outputpage
+}%
+\def\@addmarginpar@one{%
+ \@if@sw\if@mparswitch\fi{%
+  \@ifodd\c@page{\false@sw}{\true@sw}%
+ }{\false@sw}{%
+  \@if@sw\if@reversemargin\fi{\false@sw}{\true@sw}%
+ }{%
+  \@if@sw\if@reversemargin\fi{\true@sw}{\false@sw}%
+ }%
+}%
+\def\@floatselect@sw@one#1{\true@sw}%
+\def\onecolumngrid@push{%
+ \do@output@MVL{%
+  \@ifnum{\pagegrid@col=\@ne}{%
+   \global\let\restorecolumngrid\@empty
+  }{%
+   \xdef\restorecolumngrid{%
+    \noexpand\start@column{\thepagegrid}{\the\pagegrid@col}%
+   }%
+   \start@column{one}{\@ne}%
+  }%
+ }%
+}%
+\def\onecolumngrid@pop{%
+ \do@output@MVL{\restorecolumngrid}%
+}%
+\newcommand\twocolumngrid{\do@columngrid{mlt}{\tw@}}%
+\let\twocolumn\@undefined
+\let\@topnewpage\@undefined
+\def\open@column@mlt#1{%
+ \gdef\thepagegrid{mlt}%
+ \global\pagegrid@col#1%
+ \global\pagegrid@cur\@ne
+ \set@column@hsize\pagegrid@col
+ \set@colht
+}%
+\def\shut@column@mlt{%
+ \@cclv@nontrivial@sw{%
+\@makecol
+\@ifnum{\pagegrid@cur<\pagegrid@col}{%
+\expandafter\global\expandafter\setbox\csname col@\the\pagegrid@cur\endcsname\box\@outputbox
+\global\advance\pagegrid@cur\@ne
+}{}%
+ }{%
+  {\setbox\z@\box\@cclv}%
+ }%
+\@ifnum{\pagegrid@cur>\@ne}{%
+\csname balance@\the\pagegrid@col\endcsname
+\grid@column{}%
+\@combinepage
+\@combinedblfloats
+\global\setbox\pagesofar\box\@outputbox
+ }{}%
+ \set@colht
+}%
+\def\float@column@mlt{%
+  \@combinepage
+  \@combinedblfloats
+  \@outputpage
+  \global\pagegrid@cur\@ne
+  \protect@penalty\do@startpage@pen
+}%
+\def\end@column@mlt{%
+ \@ifx@empty\@toplist{%
+  \@ifx@empty\@botlist{%
+   \@ifx@empty\@dbltoplist{%
+    \@ifx@empty\@deferlist{%
+     \@ifnum{\pagegrid@cur=\@ne}{%
+      \false@sw
+     }{%
+      \true@sw
+     }%
+    }{%
+     \true@sw
+    }%
+   }{%
+    \true@sw
+   }%
+  }{%
+   \true@sw
+  }%
+ }{%
+  \true@sw
+ }%
+ % true = kick out a column and try again
+ {%
+  \@cclv@nontrivial@sw{%
+   \unvbox\@cclv\setbox\z@\lastbox
+  }{%
+   \unvbox\@cclv\setbox\z@\lastbox\unskip\null
+  }%
+  \protect@penalty\do@newpage@pen
+  \protect@penalty\do@endpage@pen
+ }{%
+  \unvbox\@cclv\setbox\z@\lastbox
+ }%
+}%
+\def\output@column@mlt{%
+ \@ifnum{\pagegrid@cur<\pagegrid@col}{%
+  \expandafter\global\expandafter\setbox\csname col@\the\pagegrid@cur\endcsname\box\@outputbox
+  \global\advance\pagegrid@cur\@ne
+ }{%
+  \set@adj@colht\dimen@
+  \grid@column{}%{\dimen@}%
+  \@combinepage
+  \@combinedblfloats
+  \@outputpage
+  \global\pagegrid@cur\@ne
+  \protect@penalty\do@startpage@pen
+ }%
+}%
+\let\@outputdblcol\@undefined
+\def\@floatselect@sw@mlt#1{\@if@notdblfloat{#1}}%
+\def\@addmarginpar@mlt{% emits a boolean
+ \@ifnum{\pagegrid@cur=\@ne}%
+}%
+\let\pagegrid@cur\col@number
+\let\col@number\@undefined
+\newcount\pagegrid@col
+\pagegrid@cur\@ne
+\expandafter\let\csname col@\the\pagegrid@cur\endcsname\@leftcolumn
+\let\@leftcolumn\@undefined
+\pagegrid@col\tw@
+\def\pagegrid@init{%
+ \advance\pagegrid@cur\@ne
+ \@ifnum{\pagegrid@cur<\pagegrid@col}{%
+  \csname newbox\expandafter\endcsname\csname col@\the\pagegrid@cur\endcsname
+  \pagegrid@init
+ }{%
+ }%
+}%
+\appdef\class@documenthook{%
+ \pagegrid@init
+}%
+\def\grid@column#1{%
+ \global\setbox\@outputbox\vbox{%
+  \hb@xt@\textwidth{%
+   \vrule\@height\z@\@width\z@\@if@empty{#1}{}{\@depth#1}%
+   \pagegrid@cur\@ne
+   \append@column
+   \box@column\@outputbox
+  }%
+  \vskip\z@skip % FIXME: page depth!
+ }%
+}%
+\def\append@column{%
+ \@ifnum{\pagegrid@cur<\pagegrid@col}{%
+  \expandafter\box@column\csname col@\the\pagegrid@cur\endcsname
+  \hfil
+  \vrule \@width\columnseprule
+  \hfil
+  \advance\pagegrid@cur\@ne
+  \append@column
+ }{%
+ }%
+}%
+\def\box@column#1{%
+ \raise\topskip
+ \hb@xt@\columnwidth{%
+  \dimen@\ht#1\@ifdim{\dimen@>\@colht}{\dimen@\@colht}{}%
+  \count@\vbadness\vbadness\@M
+  \dimen@ii\vfuzz\vfuzz\maxdimen
+  \outputdebug@sw{\saythe\@colht\saythe\dimen@}{}%
+  \vtop to\dimen@
+  {\hrule\@height\z@
+   \unvbox#1%
+   \raggedcolumn@skip
+  }%
+  \vfuzz\dimen@ii
+  \vbadness\count@
+  \hss
+ }%
+}%
+\def\marry@baselines{%
+ \vskip\marry@skip\relax
+}%
+\gdef\marry@skip{\z@skip}%
+\def\set@marry@skip{%
+\begingroup
+  \skip@\baselineskip\advance\skip@-\topskip
+  \@ifdim{\skip@>\z@}{%
+   \xdef\marry@skip{\the\skip@}%
+  }{}%
+ \endgroup
+}%
+\AtBeginDocument{%
+ \@ifxundefined\raggedcolumn@sw{\@booleanfalse\raggedcolumn@sw}{}%
+}%
+\def\raggedcolumn@skip{%
+ \vskip\z@\raggedcolumn@sw{\@plus.0001fil\@minus.0001fil}{}\relax
+}%
+\def\@combinepage{%
+ \@ifvoid\pagesofar{}{%
+  \setbox\@outputbox\vbox{%
+   \unvbox\pagesofar
+   \marry@baselines
+   \unvbox\@outputbox
+  }%
+ }%
+ \@ifvoid\footbox{}{%
+  \setbox\@outputbox\vbox{%
+   \unvbox\@outputbox
+   \marry@baselines
+   \unvbox\footbox
+  }%
+ }%
+}%
+\def\@combinedblfloats{%
+ \@ifx@empty\@dbltoplist{}{%
+  \setbox\@tempboxa\vbox{}%
+  \let\@elt\@comdblflelt\@dbltoplist
+  \let\@elt\relax\xdef\@freelist{\@freelist\@dbltoplist}%
+  \global\let\@dbltoplist\@empty
+  \setbox\@outputbox\vbox{%
+   %\boxmaxdepth\maxdepth   %% probably not needed, CAR
+   \unvbox\@tempboxa\unskip
+   \@ifnum{\@dbltopnum>\m@ne}{\dblfigrule}{}%FIXME: how is \@dbltopnum maintained?
+   \vskip\dbltextfloatsep
+   \unvbox\@outputbox
+  }%
+ }%
+}%
+\def\set@column@hsize#1{%
+ \pagegrid@col#1%
+ \global\columnwidth\textwidth
+ \global\advance\columnwidth\columnsep
+ \global\divide\columnwidth\pagegrid@col
+ \global\advance\columnwidth-\columnsep
+ \global\hsize\columnwidth
+ \global\linewidth\columnwidth
+ \skip@\baselineskip\advance\skip@-\topskip
+ \@ifnum{\pagegrid@col>\@ne}{\set@marry@skip}{}%
+}%
+\def\set@colht{%
+ \set@adj@textheight\@colht
+ \global\let\enlarge@colroom\@empty
+ \set@colroom
+}%
+\def\set@adj@textheight#1{%
+ #1\textheight
+ \def\@elt{\adj@page#1}%
+ \@booleantrue\firsttime@sw\@dbltoplist
+ \let\@elt\relax
+ \global#1#1\relax
+ \outputdebug@sw{\saythe#1}{}%
+}%
+\def\set@colroom{%
+ \set@adj@colht\@colroom
+ \@if@empty\enlarge@colroom{}{%
+  \global\advance\@colroom\enlarge@colroom\relax
+ }%
+ \outputdebug@sw{\saythe\@colroom}{}%
+ \@ifdim{\@colroom>\topskip}{}{%
+  \ltxgrid@info{Not enough room: \string\@colroom=\the\@colroom; increasing to \the\topskip}%
+  \@colroom\topskip
+ }%
+ \global\@colroom\@colroom
+ \set@vsize
+}%
+\def\set@vsize{%
+ \global\vsize\@colroom
+ \outputdebug@sw{\saythe\vsize}{}%
+}%
+\def\set@adj@colht#1{%
+ #1\@colht
+ \@ifvoid\pagesofar{}{%
+  \advance#1-\ht\pagesofar\advance#1-\dp\pagesofar
+ }%
+ \@ifvoid\footbox{}{%
+  \advance#1-\ht\footbox\advance#1-\dp\footbox
+ }%
+ \def\@elt{\adj@column#1}%
+ \@booleantrue\firsttime@sw\@toplist
+ \@booleantrue\firsttime@sw\@botlist
+ \let\@elt\relax
+ \outputdebug@sw{\saythe#1}{}%
+}%
+\def\adj@column#1#2{%
+ \advance#1-\ht#2%
+ \advance#1-\firsttime@sw{\textfloatsep\@booleanfalse\firsttime@sw}{\floatsep}%
+}%
+\def\adj@page#1#2{%
+ \advance#1-\ht#2%
+ \advance#1-\firsttime@sw{\dbltextfloatsep\@booleanfalse\firsttime@sw}{\dblfloatsep}%
+}%
+\appdef\@outputpage{%
+ \set@colht          % FIXME: needed?
+ \@floatplacement    % FIXME: needed?
+ \@dblfloatplacement % FIXME: needed?
+}%
+\@namedef{balance@2}{%
+ \expandafter\balance@two\csname col@1\endcsname\@outputbox
+ % Avoid a bug by preventing a restore when leaving this group
+ \global\setbox\csname col@1\endcsname\box\csname col@1\endcsname
+ \@ifvoid\footbox{}{%
+  \global\setbox\footbox\vbox{%
+   \setbox\z@\box\@tempboxa
+   \let\recover@footins\relax
+   \balance@two\footbox\@tempboxa
+   \hb@xt@\textwidth{\box\footbox\hfil\box\@tempboxa}%
+  }%
+ }%
+}%
+\def\balance@two#1#2{%
+\outputdebug@sw{{\tracingall\scrollmode\showbox#1\showbox#2}}{}%
+ \setbox\@ne\vbox{%
+  \@ifvoid#1{}{%
+   \unvcopy#1\recover@footins
+   \@ifvoid#2{}{\marry@baselines}%
+  }%
+  \@ifvoid#2{}{%
+   \unvcopy#2\recover@footins
+  }%
+ }%
+ \dimen@\ht\@ne\divide\dimen@\tw@
+ \dimen@i\dimen@
+ \vbadness\@M
+ \vfuzz\maxdimen
+ \loopwhile{%
+  \dimen@i=.5\dimen@i
+  \outputdebug@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
+  \setbox\z@\copy\@ne\setbox\tw@\vsplit\z@ to\dimen@
+  \setbox\z@ \vbox{%
+   \unvcopy\z@
+   \setbox\z@\vbox{\unvbox\z@ \setbox\z@\lastbox\aftergroup\vskip\aftergroup-\expandafter}\the\dp\z@\relax
+  }%
+  \setbox\tw@\vbox{%
+   \unvcopy\tw@
+   \setbox\z@\vbox{\unvbox\tw@\setbox\z@\lastbox\aftergroup\vskip\aftergroup-\expandafter}\the\dp\z@\relax
+  }%
+  \dimen@ii\ht\tw@\advance\dimen@ii-\ht\z@
+  \@ifdim{\dimen@i>.5\p@}{%
+   \advance\dimen@\@ifdim{\dimen@ii<\z@}{}{-}\dimen@i
+   \true@sw
+  }{%
+   \@ifdim{\dimen@ii<\z@}{%
+    \advance\dimen@\tw@\dimen@i
+    \true@sw
+   }{%
+    \false@sw
+   }%
+  }%
+ }%
+ \outputdebug@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
+\@ifdim{\ht\z@=\z@}{%
+\@ifdim{\ht\tw@=\z@}{%
+\true@sw
+}{%
+\false@sw
+}%
+}{%
+\true@sw
+}%
+{%
+}{%
+\ltxgrid@info{Unsatifactorily balanced columns: giving up}%
+\setbox\tw@\box#1%
+\setbox\z@ \box#2%
+}%
+ \setbox\tw@\vbox{\unvbox\tw@\vskip\z@skip}%
+ \setbox\z@ \vbox{\unvbox\z@ \vskip\z@skip}%
+ \set@colroom
+\dimen@\ht\z@\@ifdim{\dimen@<\ht\tw@}{\dimen@\ht\tw@}{}%
+\@ifdim{\dimen@>\@colroom}{\dimen@\@colroom}{}%
+ \outputdebug@sw{\saythe{\ht\z@}\saythe{\ht\tw@}\saythe\@colroom\saythe\dimen@}{}%
+\setbox#1\vbox to\dimen@{\unvbox\tw@\unskip\raggedcolumn@skip}%
+\setbox#2\vbox to\dimen@{\unvbox\z@ \unskip\raggedcolumn@skip}%
+\outputdebug@sw{{\tracingall\scrollmode\showbox#1\showbox#2}}{}%
+}%
+\def\recover@footins{%
+ \skip\z@ \lastskip\unskip
+ \skip\@ne\lastskip\unskip
+ \setbox\z@\lastbox
+ \@ifvbox\z@{%
+\setbox\z@\vbox{%
+\unvbox\z@
+\setbox\z@\lastbox
+\@ifvoid\z@{}{%
+\global\setbox\footbox\vbox{%
+ \unvbox\footbox
+     \@ifvbox\z@{%
+   \unvbox\z@
+  }{%
+   \box\z@
+  }%
+}%
+}%
+}%
+ }{}%
+ \outputdebug@sw{{\tracingall\scrollmode\showbox\footbox}}{}%
+}%
+\prepdef\@begindocumenthook{%
+ \open@column@one\@ne
+ \set@colht
+ \@floatplacement
+ \@dblfloatplacement
+}%
+\def\longtable@longtable{%
+ \par
+ \ifx\multicols\@undefined\else\ifnum\col@number>\@ne\@twocolumntrue\fi\fi
+ \if@twocolumn\LT@err{longtable not in 1-column mode}\@ehc\fi
+ \begingroup
+ \@ifnextchar[\LT@array{\LT@array[x]}%
+}%
+\def\longtable@new{%
+ \par
+  \@ifnextchar[\LT@array{\LT@array[x]}%
+}%
+\def\endlongtable@longtable{%
+  \crcr
+  \noalign{%
+    \let\LT@entry\LT@entry@chop
+    \xdef\LT@save@row{\LT@save@row}}%
+  \LT@echunk
+  \LT@start
+  \unvbox\z@
+  \LT@get@widths
+  \if@filesw
+    {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
+      \gdef\expandafter\noexpand
+        \csname LT@\romannumeral\c@LT@tables\endcsname
+          {\LT@save@row}}}%
+  \fi
+  \ifx\LT@save@row\LT@@save@row
+  \else
+    \LT@warn{Column \@width s have changed\MessageBreak
+             in table \thetable}%
+    \LT@final@warn
+  \fi
+  \endgraf\penalty -\LT@end@pen
+  \endgroup
+  \global\@mparbottom\z@
+  \pagegoal\vsize
+  \endgraf\penalty\z@\addvspace\LTpost
+  \ifvoid\footins\else\insert\footins{}\fi
+}%
+\def\endlongtable@new{%
+  \crcr
+  \noalign{%
+   \let\LT@entry\LT@entry@chop
+   \xdef\LT@save@row{\LT@save@row}%
+  }%
+  \LT@echunk
+  \LT@start
+  \unvbox\z@
+  \LT@get@widths
+  \@if@sw\if@filesw\fi{%
+   {%
+    \let\LT@entry\LT@entry@write
+    \immediate\write\@auxout{%
+     \gdef\expandafter\noexpand\csname LT@\romannumeral\c@LT@tables\endcsname
+     {\LT@save@row}%
+    }%
+   }%
+  }{}%
+  \@ifx\LT@save@row\LT@@save@row{}{%
+   \LT@warn{%
+    Column \@width s have changed\MessageBreak in table \thetable
+   }\LT@final@warn
+  }%
+  \endgraf
+  \nobreak
+  \box\@ifvoid\LT@lastfoot{\LT@foot}{\LT@lastfoot}%
+ \global\@mparbottom\z@
+ \endgraf
+ \LT@post
+}%
+\def\LT@start@longtable{%
+ \let\LT@start\endgraf
+ \endgraf
+ \penalty\z@
+ \vskip\LTpre
+ \dimen@\pagetotal
+ \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+ \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+ \advance\dimen@ \ht\LT@foot
+ \dimen@ii\vfuzz\vfuzz\maxdimen
+   \setbox\tw@\copy\z@
+   \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
+   \setbox\tw@\vbox{\unvbox\tw@}%
+ \vfuzz\dimen@ii
+ \advance\dimen@ \ht
+       \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
+ \advance\dimen@\dp
+       \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
+ \advance\dimen@ -\pagegoal
+ \ifdim \dimen@>\z@\vfil\break\fi
+     \global\@colroom\@colht
+ \ifvoid\LT@foot\else
+   \advance\vsize-\ht\LT@foot
+   \global\advance\@colroom-\ht\LT@foot
+   \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
+   \maxdepth\z@
+ \fi
+ \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi
+ \output{\LT@output}%
+}%
+\def\LT@start@new{%
+ \let\LT@start\endgraf
+ \endgraf
+ \markthr@@{}%
+ \LT@pre
+ \@ifvoid\LT@firsthead{\LT@top}{\box\LT@firsthead\nobreak}%
+ \mark@envir{longtable}%
+}%
+\def\LT@end@hd@ft@longtable#1{%
+ \LT@echunk
+ \ifx\LT@start\endgraf
+  \LT@err{Longtable head or foot not at start of table}{Increase LTchunksize}%
+ \fi
+ \setbox#1\box\z@
+ \LT@get@widths\LT@bchunk
+}%
+\def\LT@end@hd@ft@new#1{%
+ \LT@echunk
+ \@ifx{\LT@start\endgraf}{%
+  \LT@err{Longtable head or foot not at start of table}{Increase LTchunksize}%
+ }%
+ \global\setbox#1\box\z@
+ \LT@get@widths
+ \LT@bchunk
+}%
+\def\LT@array@longtable[#1]#2{%
+  \refstepcounter{table}\stepcounter{LT@tables}%
+  \if l#1%
+    \LTleft\z@ \LTright\fill
+  \else\if r#1%
+    \LTleft\fill \LTright\z@
+  \else\if c#1%
+    \LTleft\fill \LTright\fill
+  \fi\fi\fi
+  \let\LT@mcol\multicolumn
+  \let\LT@@tabarray\@tabarray
+  \let\LT@@hl\hline
+  \def\@tabarray{%
+    \let\hline\LT@@hl
+    \LT@@tabarray}%
+  \let\\\LT@tabularcr\let\tabularnewline\\%
+  \def\newpage{\noalign{\break}}%
+  \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
+  \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
+  \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
+  \@tempdima\ht\strutbox
+  \let\@endpbox\LT@endpbox
+  \ifx\extrarowheight\@undefined
+    \let\@acol\@tabacol
+    \let\@classz\@tabclassz \let\@classiv\@tabclassiv
+    \def\@startpbox{\vtop\LT@startpbox}%
+    \let\@@startpbox\@startpbox
+    \let\@@endpbox\@endpbox
+    \let\LT@LL@FM@cr\@tabularcr
+  \else
+    \advance\@tempdima\extrarowheight
+    \col@sep\tabcolsep
+    \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
+  \fi
+  \setbox\@arstrutbox\hbox{\vrule
+    \@height \arraystretch \@tempdima
+    \@depth \arraystretch \dp \strutbox
+    \@width \z@}%
+  \let\@sharp##\let\protect\relax
+   \begingroup
+    \@mkpream{#2}%
+    \xdef\LT@bchunk{%
+       \global\advance\c@LT@chunks\@ne
+       \global\LT@rows\z@\setbox\z@\vbox\bgroup
+       \LT@setprevdepth
+       \tabskip\LTleft\halign to\hsize\bgroup
+      \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
+  \endgroup
+  \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
+  \LT@make@row
+  \m@th\let\par\@empty
+  \everycr{}\lineskip\z@\baselineskip\z@
+  \LT@bchunk
+}%
+\def\LT@LR@l{\LTleft\z@   \LTright\fill}%
+\def\LT@LR@r{\LTleft\fill \LTright\z@  }%
+\def\LT@LR@c{\LTleft\fill \LTright\fill}%
+\def\LT@array@new[#1]#2{%
+ \refstepcounter{table}\stepcounter{LT@tables}%
+ \table@hook
+ \LTleft\fill \LTright\fill
+ \csname LT@LR@#1\endcsname
+ \let\LT@mcol\multicolumn
+ \let\LT@@hl\hline
+ \prepdef\@tabarray{\let\hline\LT@@hl}%
+ \let\\\LT@tabularcr
+ \let\tabularnewline\\%
+ \def\newpage{\noalign{\break}}%
+ \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
+ \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
+ \let\hline\LT@hline
+ \let\kill\LT@kill
+ \let\caption\LT@caption
+ \@tempdima\ht\strutbox
+ \let\@endpbox\LT@endpbox
+ \@ifxundefined\extrarowheight{%
+  \let\@acol\@tabacol
+  \let\@classz\@tabclassz
+  \let\@classiv\@tabclassiv
+  \def\@startpbox{\vtop\LT@startpbox}%
+  \let\@@startpbox\@startpbox
+  \let\@@endpbox\@endpbox
+  \let\LT@LL@FM@cr\@tabularcr
+ }{%
+  \advance\@tempdima\extrarowheight
+  \col@sep\tabcolsep
+  \let\@startpbox\LT@startpbox
+  \let\LT@LL@FM@cr\@arraycr
+ }%
+ \let\@acoll\@tabacoll
+ \let\@acolr\@tabacolr
+ \let\@acol\@tabacol
+ \setbox\@arstrutbox\hbox{%
+  \vrule
+  \@height \arraystretch \@tempdima
+  \@depth \arraystretch \dp \strutbox
+  \@width \z@
+ }%
+ \let\@sharp##%
+ \let\protect\relax
+ \begingroup
+  \@mkpream{#2}%
+  \@mkpream@relax
+  \edef\@preamble{\@preamble}%
+  \prepdef\@preamble{%
+   \global\advance\c@LT@chunks\@ne
+   \global\LT@rows\z@
+   \setbox\z@\vbox\bgroup
+    \LT@setprevdepth
+    \tabskip\LTleft
+    \halign to\hsize\bgroup
+     \tabskip\z@
+     \@arstrut
+  }%
+  \appdef\@preamble{%
+     \tabskip\LTright
+     \cr
+  }%
+  \global\let\LT@bchunk\@preamble
+ \endgroup
+ \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
+ \LT@make@row
+ \m@th
+ \let\par\@empty
+ \everycr{}%
+ \lineskip\z@
+ \baselineskip\z@
+ \LT@bchunk
+}%
+\appdef\table@hook{}%
+%% Note that it is not enough to define the environment itself; we also have to create the corresponding
+%% \cmd\output\ routine procedures, which provide for continued footers and headers
+%% (the very feature of \env{longtable} requiring support in the output routine).
+%% This same consideration would arise in defining any syntactic extension to \env{longtable}, because
+%% the environment name itself is exposed in the output routine.
+\def\switch@longtable{%
+ \@ifpackageloaded{longtable}{%
+  \@ifx{\longtable\longtable@longtable}{%
+   \@ifx{\endlongtable\endlongtable@longtable}{%
+    \@ifx{\LT@start\LT@start@longtable}{%
+     \@ifx{\LT@end@hd@ft\LT@end@hd@ft@longtable}{%
+      \@ifx{\LT@array\LT@array@longtable}{%
+       \true@sw
+      }{\false@sw}%
+     }{\false@sw}%
+    }{\false@sw}%
+   }{\false@sw}%
+  }{\false@sw}%
+  {%
+   \class@info{Patching longtable package}%
+  }{%
+   \class@info{Patching unrecognized longtable package. (Proceeding with fingers crossed)}%
+  }%
+  \let\longtable\longtable@new
+  \let\endlongtable\endlongtable@new
+  \let\LT@start\LT@start@new
+  \let\LT@end@hd@ft\LT@end@hd@ft@new
+  \let\LT@array\LT@array@new
+  \newenvironment{longtable*}{%
+   \onecolumngrid@push
+   \longtable
+  }{%
+   \endlongtable
+   \onecolumngrid@pop
+  }%
+ }{}%
+}%
+\def\LT@pre{\penalty\z@\vskip\LTpre}%
+\def\LT@bot{\nobreak\copy\LT@foot\vfil}%
+\def\LT@top{\copy\LT@head\nobreak}%
+\def\LT@post{\penalty\z@\addvspace\LTpost\mark@envir{\curr@envir}}%
+\def\LT@adj{%
+ \setbox\z@\vbox{\null}\dimen@-\ht\z@
+ \setbox\z@\vbox{\unvbox\z@\LT@bot}\advance\dimen@\ht\z@
+ \global\advance\vsize-\dimen@
+}%
+\def\output@init@longtable{\LT@adj}%
+\def\output@prep@longtable{\setbox\@cclv\vbox{\unvbox\@cclv\LT@bot}}%
+\def\output@post@longtable{\LT@top}%
+\let\output@init@theindex\@empty
+\let\output@prep@theindex\@empty
+\def\output@post@theindex{%
+ \@ifodd\c@page{}{%
+  \@ifnum{\pagegrid@cur=\@ne}{% we have the leftmost column of a verso page
+   % insert the current top-level continued head
+  }%
+ }%
+}%
+\def\check@aux{\do@output@MVL{\do@check@aux}}%
+\def\check@deferlist@stuck#1{%
+ \@ifx{\@deferlist@postshipout\@empty}{}{%
+  \@ifx{\@deferlist@postshipout\@deferlist}{%
+   \@fltstk
+   \clearpage@sw{%
+    \ltxgrid@warn{Deferred float stuck during \string\clearpage\space processing}%
+   }{%
+    \force@deferlist@stuck#1%
+   }%
+  }{%
+   %Successfully committed float(s)
+  }%
+  \global\let\@deferlist@postshipout\@empty
+ }%
+}%
+\def\@fltstk{%
+ \@latex@warning{A float is stuck (cannot be placed without \string\clearpage)}%
+}%
+\appdef\@outputpage{%
+ \global\let\@deferlist@postshipout\@deferlist
+}%
+\def\@next#1#2{%
+ \@ifx{#2\@empty}{\false@sw}{%
+  \expandafter\@xnext#2\@@#1#2%
+  \true@sw
+ }%
+}%
+\def\@xnext\@elt#1#2\@@#3#4{%
+ \def#3{#1}%
+ \gdef#4{#2}%
+ \def\@tempa{#4}\def\@tempb{\@freelist}%
+ \@ifx{\@tempa\@tempb}{%
+  \@ifx{#4\@empty}{%
+   \force@deferlist@empty%{Float register pool exhausted}%
+  }{}%
+ }{}%
+}%
+\def\force@deferlist@stuck#1{%
+\force@deferlist@sw{%
+  \@booleantrue\clearpage@sw
+  \@booleantrue\forcefloats@sw
+  #1%
+}{%
+}%
+}%
+\def\force@deferlist@empty{%
+ \force@deferlist@sw{%
+  \penalty-\pagebreak@pen
+  \protect@penalty\do@forcecolumn@pen
+ }{%
+ }%
+}%
+\@booleanfalse\force@deferlist@sw
+\mathchardef\do@forcecolumn@pen=10009
+\@namedef{output@-\the\do@forcecolumn@pen}{\do@forcecolumn}%
+\def\do@forcecolumn{%
+ \@booleantrue\clearpage@sw
+ \@booleantrue\forcefloats@sw
+ \do@startcolumn
+}%
+\def\enlargethispage{%
+\@ifstar{%
+\@enlargethispage{}%
+}{%
+\@enlargethispage{}%
+}%
+}%
+\def\@enlargethispage#1#2{%
+ \begingroup
+  \dimen@#2\relax
+  \edef\@tempa{#1}%
+  \edef\@tempa{\noexpand\@@enlargethispage{\@tempa}{\the\dimen@}}%
+  \expandafter\do@output@MVL\expandafter{\@tempa}%
+ \endgroup
+}%
+\def\@@enlargethispage#1#2{%
+ \def\@tempa{one}%
+ \@ifx{\thepagegrid\@tempa}{%
+  \true@sw
+ }{%
+  \def\@tempa{mlt}%
+  \@ifx{\thepagegrid\@tempa}{%
+   \@ifnum{\pagegrid@cur=\@ne}{% OK to adjust this page
+    \gdef\enlarge@colroom{#2}%
+    \true@sw
+   }{% Can only adjust this column; give up
+    \ltxgrid@warn{Too late to enlarge this page; move the command to the first column.}%
+    \false@sw
+   }%
+  }{% Unknown page grid
+   \ltxgrid@warn{Unable to enlarge a page of this kind.}%
+   \false@sw
+  }%
+ }%
+ {%
+  \class@info{Enlarging page \thepage\space by #2}%
+  \global\advance\@colroom#2\relax
+  \set@vsize
+ }{%
+  % Could not adjust this page
+ }%
+}%
+\let\enlarge@colroom\@empty
+\let\@kludgeins\@undefined
+\@booleantrue\textheight@sw
+\prepdef\@outputpage{%
+ \textheight@sw{%
+  \count@\vbadness\vbadness\@M
+  \dimen@\vfuzz\vfuzz\maxdimen
+  \setbox\@outputbox\vbox to\textheight{\unvbox\@outputbox}%
+  \vfuzz\dimen@
+  \vbadness\count@
+ }{}%
+}%
+\def\ltxgrid@info{%
+ \ltxgrid@info@sw{\class@info}{\@gobble}%
+}%
+\@booleanfalse\ltxgrid@info@sw
+\def\ltxgrid@warn{%
+ \ltxgrid@warn@sw{\class@warn}{\@gobble}%
+}%
+\@booleantrue\ltxgrid@warn@sw
+\endinput
+%%
+%% End of file `ltxgrid.sty'.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/ltxutil.sty	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,1750 @@
+%%
+%% This is file `ltxutil.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ltxutil.dtx  (with options: `ltxutil,ltxutil-krn')
+%% 
+%% This is a generated file;
+%% altering it directly is inadvisable;
+%% instead, modify the original source file.
+%% See the URL in the file 00readme.txt.
+%% 
+%% Copyright notice.
+%% 
+%%    These files are distributed
+%%    WITHOUT ANY WARRANTY; without even the implied warranty of
+%%    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%% 
+%%%  @LaTeX-file{
+%%%     filename        = "ltxutil.dtx",
+%%%     version         = "1.0rc5b",
+%%%     date            = "2001/07/31",
+%%%     time            = "12:23:00 GMT+8",
+%%%     checksum        = "3641",
+%%%     author          = "Arthur Ogawa (mailto:ogawa@teleport.com),
+%%%                        commissioned by the American Physical Society.
+%%%                        ",
+%%%     copyright       = "Copyright (C) 1999 Arthur Ogawa,
+%%%                        distributed under the terms of the
+%%%                        LaTeX Project Public License, see
+%%%                        ftp://ctan.tug.org/macros/latex/base/lppl.txt
+%%%                        ",
+%%%     address         = "Arthur Ogawa,
+%%%                        USA",
+%%%     telephone       = "",
+%%%     FAX             = "",
+%%%     email           = "ogawa@teleport.com",
+%%%     codetable       = "ISO/ASCII",
+%%%     keywords        = "latex, utility, kernel",
+%%%     supported       = "yes",
+%%%     abstract        = "package to add utilties to LaTeX",
+%%%     docstring       = "The checksum field above generated by ltxdoc",
+%%%  }
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]%
+\ProvidesFile{ltxutil.sty}%
+ [2001/07/31 1.0rc5b utilities package]% \fileversion
+\def\package@name{ltxutil}%
+\expandafter\PackageInfo\expandafter{\package@name}{%
+ Utility macros for \protect\LaTeXe,
+ by A. Ogawa (ogawa@teleport.com)%
+}%
+\typeout{%
+ ltxutil: portions licensed from W. E. Baxter (web@superscript.com)%
+}%
+\def\class@err#1{\ClassError{\class@name}{#1}\@eha}%
+\def\class@warn#1{\ClassWarningNoLine{\class@name}{#1}}%
+\def\class@info#1{\ClassInfo{\class@name}{#1}}%
+\def\obsolete@command#1{%
+ \class@warn@end{Command \string#1\space is obsolete.^^JPlease remove from your document}%
+ \global\let#1\@empty
+ #1%
+}%
+\def\replace@command#1#2{%
+ \class@warn@end{Command \string#1\space is obsolete;^^JUse \string#2\space instead}%
+ \global\let#1#2%
+ #1%
+}%
+\def\replace@environment#1#2{%
+ \class@warn@end{Environment #1 is obsolete;^^JUse #2 instead}%
+ \glet@environment{#1}{#2}%
+ \@nameuse{#1}%
+}%
+\def\incompatible@package#1{%
+ \@ifpackageloaded{#1}{%
+  \def\@tempa{I cannot continue. You must remove the \string\usepackage\ statement that caused that package to be loaded.}%
+  \ClassError{\class@name}{The #1 package cannot be used with \class@name}%
+  \@tempa\stop
+ }{%
+  \class@info{#1 was not loaded (OK!)}%
+ }%
+}%
+\def\class@warn@end#1{%
+ \gappdef\class@enddocumenthook{\class@warn{#1}}%
+}%
+\AtEndOfClass{%
+ \@ifxundefined\class@name{\def\class@name{Generic Class}}{}%
+}%
+\def\t@{to}%
+\dimendef\dimen@iii\thr@@
+\def\halignt@{\halign\t@}%
+\chardef\f@ur=4\relax
+\chardef\cat@letter=11\relax
+\chardef\other=12\relax
+\def\let@environment#1#2{%
+ \expandafter\let
+ \csname#1\expandafter\endcsname\csname#2\endcsname
+ \expandafter\let
+ \csname end#1\expandafter\endcsname\csname end#2\endcsname
+}%
+\def\glet@environment#1#2{%
+ \global\expandafter\let
+ \csname#1\expandafter\endcsname\csname#2\endcsname
+ \global\expandafter\let
+ \csname end#1\expandafter\endcsname\csname end#2\endcsname
+}%
+\newcommand\tracingplain{%
+ \tracingonline\z@\tracingcommands\z@\tracingstats\z@
+ \tracingpages\z@\tracingoutput\z@\tracinglostchars\@ne
+ \tracingmacros\z@\tracingparagraphs\z@\tracingrestores\z@
+ \showboxbreadth5\showboxdepth3\relax %\errorstopmode
+ }%
+\newcommand\traceoutput{%
+ \appdef\@resetactivechars{\showoutput}%
+}%
+\newcommand\say[1]{\typeout{<\noexpand#1=\meaning#1>}}%
+\newcommand\saythe[1]{\typeout{<\noexpand#1=\the#1>}}%
+\def\fullinterlineskip{\prevdepth\z@}%
+\countdef\count@i\@ne
+\countdef\count@ii\tw@
+\long\def\prepdef#1#2{%
+ \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
+ \toks@ii{#2}%
+ \edef#1{\the\toks@ii\the\toks@}%
+}%
+\long\def\appdef#1#2{%
+ \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
+ \toks@ii{#2}%
+ \edef#1{\the\toks@\the\toks@ii}%
+}%
+\long\def\gappdef#1#2{%
+ \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
+ \toks@ii{#2}%
+ \global\edef#1{\the\toks@\the\toks@ii}%
+}%
+\long\def\appdef@val#1#2{%
+ \appdef#1{{#2}}%
+}%
+\long\def\appdef@e#1#2{%
+ \expandafter\appdef
+ \expandafter#1%
+ \expandafter{#2}%
+}%
+\long\def\appdef@eval#1#2{%
+ \expandafter\appdef@val
+ \expandafter#1%
+ \expandafter{#2}%
+}%
+\toksdef\toks@ii=\tw@
+\long\def\@ifxundefined#1{\@ifx{\undefined#1}}%
+\long\def\@ifnotrelax#1#2#3{\@ifx{\relax#1}{#3}{#2}}%
+\long\def\@argswap#1#2{#2#1}%
+\long\def\@argswap@val#1#2{#2{#1}}%
+\def\@ifxundefined@cs#1{\expandafter\@ifx\expandafter{\csname#1\endcsname\relax}}%
+\def\@boolean#1#2{%
+  \long\def#1{%
+    #2% \if<something>
+      \expandafter\true@sw
+    \else
+      \expandafter\false@sw
+    \fi
+  }%
+}%
+\def\@boole@def#1#{\@boolean{#1}}% Implicit #2
+\def\@booleantrue#1{\let#1\true@sw}%
+\def\@booleanfalse#1{\let#1\false@sw}%
+\@boole@def\@ifx#1{\ifx#1}%
+\@boole@def\@ifx@empty#1{\ifx\@empty#1}%
+\@boole@def\@if@empty#1{\if!#1!}%
+\def\@if@sw#1#2{#1\expandafter\true@sw\else\expandafter\false@sw#2}%
+\@boole@def\@ifdim#1{\ifdim#1}%
+\@boole@def\@ifeof#1{\ifeof#1}%
+\@boole@def\@ifhbox#1{\ifhbox#1}%
+\@boole@def\@ifhmode{\ifhmode}%
+\@boole@def\@ifinner{\ifinner}%
+\@boole@def\@ifmmode{\ifmmode}%
+\@boole@def\@ifnum#1{\ifnum#1}%
+\@boole@def\@ifodd#1{\ifodd#1}%
+\@boole@def\@ifvbox#1{\ifvbox#1}%
+\@boole@def\@ifvmode{\ifvmode}%
+\@boole@def\@ifvoid#1{\ifvoid#1}%
+\long\def\true@sw#1#2{#1}%
+\long\def\false@sw#1#2{#2}%
+\long\def\loopuntil#1{#1{}{\loopuntil{#1}}}%
+\long\def\loopwhile#1{#1{\loopwhile{#1}}{}}%
+\def\@provide#1{%
+ \@ifx{\undefined#1}{\true@sw}{\@ifx{\relax#1}{\true@sw}{\false@sw}}%
+ {\def#1}{\def\j@nk}%
+}%
+\prepdef\document{%
+ \endgroup
+ \init@documenthook
+ \set@typesize@hook
+ \normalsize
+ \set@pica@hook
+ \true@sw{}%
+}%
+\def\init@documenthook{}%
+\AtBeginDocument{%
+ \class@documenthook
+}%
+\AtEndDocument{%
+ \class@enddocumenthook
+}%
+\def\class@documenthook{}%
+\def\class@enddocumenthook{}%
+\def\set@typesize@hook{}%
+\def\set@pica@hook{}%
+\def\enddocument{%
+ \@enddocumenthook
+ \@checkend{document}%
+ \clear@document
+ \check@aux
+ \deadcycles\z@
+ \@@end
+}%
+\def\clear@document{\clearpage}%
+\def\check@aux{\do@check@aux}%
+\def\do@check@aux{%
+ \@if@sw\if@filesw\fi{%
+  \immediate\closeout\@mainaux
+  \let\@setckpt\@gobbletwo
+  \let\@newl@bel\@testdef
+  \@tempswafalse
+  \makeatletter
+  \input\jobname.aux\relax
+ }{}%
+ \@dofilelist
+ \@ifdim{\font@submax >\fontsubfuzz\relax}{%
+  \@font@warning{%
+   Size substitutions with differences\MessageBreak
+   up to \font@submax\space have occured.\@gobbletwo
+  }%
+ }{}%
+ \@defaultsubs
+ \@refundefined
+ \@if@sw\if@filesw\fi{%
+  \@ifx{\@multiplelabels\relax}{%
+   \@if@sw\if@tempswa\fi{%
+    \@latex@warning@no@line{%
+     Label(s) may have changed.
+     Rerun to get cross-references right
+    }%
+   }{}%
+  }{%
+    \@multiplelabels
+  }%
+ }{}%
+}%
+\def\flushing{%
+  \let\\\@normalcr
+  \leftskip\z@skip
+  \rightskip\z@skip
+  \@rightskip\z@skip
+  \parfillskip\@flushglue
+}%
+\def\eqnarray@LaTeX{%
+   \stepcounter{equation}%
+   \def\@currentlabel{\p@equation\theequation}%
+   \global\@eqnswtrue
+   \m@th
+   \global\@eqcnt\z@
+   \tabskip\@centering
+   \let\\\@eqncr
+   $$\everycr{}\halign\t@\displaywidth\bgroup
+       \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
+      &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil
+      &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
+         $\displaystyle{##}$\hfil\tabskip\@centering
+      &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup
+         \tabskip\z@skip
+      \cr
+}
+\long\def\eqnarray@fleqn@fixed{%
+ \stepcounter{equation}\def\@currentlabel{\p@equation\theequation}%
+ \global\@eqnswtrue\m@th\global\@eqcnt\z@
+ \tabskip\mathindent
+ \let\\=\@eqncr
+ \setlength\abovedisplayskip{\topsep}%
+ \ifvmode\addtolength\abovedisplayskip{\partopsep}\fi
+ \addtolength\abovedisplayskip{\parskip}%
+ \setlength\belowdisplayskip{\abovedisplayskip}%
+ \setlength\belowdisplayshortskip{\abovedisplayskip}%
+ \setlength\abovedisplayshortskip{\abovedisplayskip}%
+ $$%
+ \everycr{}%
+ \halignt@\linewidth\bgroup
+  \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
+  &\global\@eqcnt\@ne
+   \hskip\tw@\eqncolsep
+   \hfil${{}##{}}$\hfil
+  &\global\@eqcnt\tw@
+   \hskip\tw@\eqncolsep
+   $\displaystyle{##}$\hfil\tabskip\@centering
+  &\global\@eqcnt\thr@@\hb@xt@\z@\bgroup\hss##\egroup
+   \tabskip\z@skip
+  \cr
+}%
+\@ifx{\eqnarray\eqnarray@LaTeX}{%
+ \class@info{Repairing broken LaTeX eqnarray}%
+ \let\eqnarray\eqnarray@fleqn@fixed
+ \newlength\eqncolsep
+ \setlength\eqncolsep\z@
+ \let\eqnarray@LaTeX\relax
+ \let\eqnarray@fleqn@fixed\relax
+}{}%
+\def\mathindent{\@centering}%
+\def\set@eqnarray@skips{}%
+\def\footnote{%
+ \@ifnextchar[\@xfootnote{\@yfootnote\@footnotetext}%
+}%
+\def\footnotemark{%
+ \@ifnextchar[\@xfootnotemark{\@yfootnote}%
+}%
+\def\@xfootnote[#1]{%
+ \@xfootnotemark[#1]%
+ \@footnotetext
+}%
+\def\@xfootnotemark@ltx[#1]{%
+ \begingroup
+   \csname c@\@mpfn\endcsname #1\relax
+   \unrestored@protected@xdef\@thefnmark{\thempfn}%
+ \endgroup
+ \H@@footnotemark
+}%
+\def\@yfootnote{%
+ \stepcounter\@mpfn
+ \protected@xdef\@thefnmark{\thempfn}%
+ \H@@footnotemark
+}%
+\appdef\class@documenthook{%
+ \@ifxundefined\H@@footnotemark{%
+  \let\H@@footnotemark\@footnotemark
+ }{}%
+ \let\@xfootnotemark\@xfootnotemark@ltx
+}%
+\long\def\@footnotetext{%
+ \insert\footins\bgroup
+  \make@footnotetext
+}%
+\long\def\@mpfootnotetext{%
+ \minipagefootnote@pick
+  \make@footnotetext
+}%
+\def\make@footnotetext#1{%
+  \reset@font\footnotesize
+  \interlinepenalty\interfootnotelinepenalty
+  \splittopskip\footnotesep
+  \splitmaxdepth\dp\strutbox
+  \set@footnotewidth
+  \@parboxrestore
+  \protected@edef\@currentlabel{%
+   \csname p@footnote\endcsname\@thefnmark
+  }%
+  \color@begingroup
+   \@makefntext{%
+    \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox
+   }%
+  \color@endgroup
+ \minipagefootnote@drop
+}%
+\def\set@footnotewidth{%
+ \hsize\columnwidth
+ \linewidth\hsize
+}%
+\def\set@footnotewidth@ii{%
+ \hsize\textwidth
+ \advance\hsize\columnsep
+ \divide\hsize\tw@
+ \advance\hsize-\columnsep
+ \linewidth\hsize
+}%
+\def\addtocontents#1#2{%
+ \protected@write\@auxout{%
+  \let \label \@gobble \let \index \@gobble \let \glossary \@gobble
+  \def\({\string\(}%
+  \def\){\string\)}%
+  \def\\{\string\\}%
+ }{\string \@writefile {#1}{#2}}%
+}%
+\def\addcontentsline#1#2#3{%
+ \addtocontents{#1}{%
+  \protect\contentsline{#2}{#3}{\thepage}{}%
+ }%
+}%
+\def\contentsline#1#2#3#4{%
+ \csname l@#1\endcsname{#2}{#3}%
+}%
+\def\label#1{%
+ \@bsphack
+  \protected@write\@auxout{}{%
+   \string\newlabel{#1}{{\@currentlabel}{\thepage}{}{}{}}%
+  }%
+ \@esphack
+}%
+\appdef\class@documenthook{%
+ \prepdef\caption{\minipagefootnote@here}%
+}%
+\def\minipagefootnote@init{%
+ \setbox\@mpfootins\box\voidb@x
+}%
+\def\minipagefootnote@pick{%
+ \global\setbox\@mpfootins\vbox\bgroup
+  \unvbox\@mpfootins
+}%
+\def\minipagefootnote@drop{%
+ \egroup
+}%
+\def\minipagefootnote@here{%
+    \par
+    \@ifvoid\@mpfootins{}{%
+      \vskip\skip\@mpfootins
+      \fullinterlineskip
+      \@ifinner{%
+       \vtop{\unvcopy\@mpfootins}%
+       {\setbox\z@\lastbox}%
+      }{}%
+      \unvbox\@mpfootins
+    }%
+}%
+\def\minipagefootnote@foot{%
+ \@ifvoid\@mpfootins{}{%
+  \insert\footins\bgroup\unvbox\@mpfootins\egroup
+ }%
+}%
+\def\endminipage{%
+    \par
+    \unskip
+    \minipagefootnote@here
+    \@minipagefalse   %% added 24 May 89
+  \color@endgroup
+  \egroup
+  \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}%
+}%
+\let\@xfloat@LaTeX\@xfloat
+\def\@xfloat#1[#2]{%
+  \@xfloat@prep
+  \@nameuse{fp@proc@#2}%
+  \@ifxundefined\floats@sw{\global\@booleantrue\floats@sw}{}%
+  \floats@sw{\@xfloat@LaTeX{#1}[#2]}{\@xfloat@anchored{#1}[]}%
+}%
+\def\@xfloat@prep{%
+  \let\footnote\footnote@latex
+  \def\@mpfn{mpfootnote}%
+  \def\thempfn{\thempfootnote}%
+  \c@mpfootnote\z@
+  \let\@footnotetext\@mpfootnotetext
+  \let\H@@footnotetext\@mpfootnotetext
+  \let\@makefntext\@mpmakefntext
+}%
+\appdef\class@documenthook{%
+ \let\footnote@latex\footnote
+}%
+\def\@xfloat@anchored#1[#2]{%
+ \def\@captype{#1}%
+ \begin@float@pagebreak
+  \let\end@float\end@float@anchored
+  \let\end@dblfloat\end@float@anchored
+        \hsize\columnwidth
+        \@parboxrestore
+        \@floatboxreset
+  \minipagefootnote@init
+}%
+\def\end@float@anchored{%
+  \minipagefootnote@here
+  \par\vskip\z@skip      %% \par\vskip\z@ added 15 Dec 87
+ \par
+ \end@float@pagebreak
+}%
+\def\begin@float@pagebreak{\par\addvspace\intextsep}%
+\def\end@float@pagebreak{\par\addvspace\intextsep}%
+\def\@mpmakefntext#1{%
+ \parindent=1em
+ \noindent
+ \hb@xt@1em{\hss\@makefnmark}%
+ #1%
+}%
+\def\do@if@floats#1#2{%
+ \@ifxundefined\floats@sw{\global\@booleantrue\floats@sw}{}%
+ \floats@sw{}{%
+  \expandafter\newwrite
+              \csname#1write\endcsname
+  \expandafter\def
+              \csname#1@stream\endcsname{\jobname#2}%
+  \expandafter\immediate
+  \expandafter\openout
+              \csname#1write\endcsname
+              \csname#1@stream\endcsname\relax
+  \@ifxundefined\@float@LaTeX{%
+   \let\@float@LaTeX\@float
+   \let\@dblfloat@LaTeX\@dblfloat
+   \let\@float\write@float
+   \let\@dblfloat\write@floats
+  }{}%
+  \let@environment{#1@float}{#1}%
+  \let@environment{#1@floats}{#1*}%
+  \@ifxundefined@cs{#1@write}{}{%
+   \let@environment{#1}{#1@write}%
+  }%
+ }%
+}%
+\def\triggerpar{\leavevmode\@@par}%
+\def\oneapage{\def\begin@float@pagebreak{\newpage}\def\end@float@pagebreak{\newpage}}%
+\def\print@float#1#2{%
+ \@ifxundefined@cs{#1write}{}{%
+  \begingroup
+   \@booleanfalse\floats@sw
+   #2%
+   \raggedbottom
+   \def\array@default{v}% floats must
+   \let\@float\@float@LaTeX
+   \let\@dblfloat\@dblfloat@LaTeX
+   \let\trigger@float@par\triggerpar
+   \let@environment{#1}{#1@float}%
+   \let@environment{#1*}{#1@floats}%
+   \expandafter\prepdef\csname#1\endcsname{\trigger@float@par}%
+   \expandafter\prepdef\csname#1*\endcsname{\trigger@float@par}%
+   \@namedef{fps@#1}{h!}%
+   \expandafter\immediate
+   \expandafter\closeout
+               \csname#1write\endcsname
+   \everypar{%
+    \global\let\trigger@float@par\relax
+    \global\everypar{}\setbox\z@\lastbox
+    \@ifxundefined@cs{#1sname}{}{%
+     \begin@float@pagebreak
+     \expandafter\section
+     \expandafter*%
+     \expandafter{%
+                  \csname#1sname\endcsname
+                 }%
+    }%
+   }%
+   \input{\csname#1@stream\endcsname}%
+  \endgroup
+  \global\expandafter\let\csname#1write\endcsname\relax
+ }%
+}%
+\def\write@float#1{\write@@float{#1}{#1}}%
+\def\endwrite@float{\@Esphack}%
+\def\write@floats#1{\write@@float{#1*}{#1}}%
+\def\endwrite@floats{\@Esphack}%
+\def\write@@float#1#2{%
+  \ifhmode
+     \@bsphack
+  \fi
+  \chardef\@tempc\csname#2write\endcsname
+  \toks@{\begin{#1}}%
+  \def\@tempb{#1}%
+  \expandafter\let\csname end#1\endcsname\endwrite@float
+  \catcode`\^^M\active
+  \@makeother\{\@makeother\}\@makeother\%
+  \write@floatline
+}%
+\begingroup
+ \catcode`\[\the\catcode`\{\catcode`\]\the\catcode`\}\@makeother\{\@makeother\}%
+ \gdef\float@end@tag#1\end{#2}#3\@nul[%
+  \def\@tempa[#2]%
+  \@ifx[\@tempa\@tempb][\end[#2]][\write@floatline]%
+ ]%
+ \obeylines%
+ \gdef\write@floatline#1^^M[%
+  \begingroup%
+   \newlinechar`\^^M%
+   \toks@\expandafter[\the\toks@#1]\immediate\write\@tempc[\the\toks@]%
+  \endgroup%
+  \toks@[]%
+  \float@end@tag#1\end{}\@nul%
+ ]%
+\endgroup
+\def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi}
+\def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or
+  k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
+  y\or z\or aa\or bb\or cc\or dd\or ee\or ff\or gg\or hh\or ii\or jj\or
+  kk\or ll\or mm\or nn\or oo\or pp\or qq\or rr\or ss\or tt\or uu\or
+  vv\or ww\or xx\or yy\or zz\else\@ctrerr\fi}
+\def\@startsection#1#2#3#4#5#6{%
+ \@startsection@hook
+ \if@noskipsec \leavevmode \fi
+ \par
+ \@tempskipa #4\relax
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@
+  \@tempskipa -\@tempskipa \@afterindentfalse
+ \fi
+ \if@nobreak
+  \everypar{}%
+ \else
+  \addpenalty\@secpenalty\addvspace\@tempskipa
+ \fi
+ \@ifstar
+  {\@dblarg{\@ssect@ltx{#1}{#2}{#3}{#4}{#5}{#6}}}%
+  {\@dblarg{\@sect@ltx {#1}{#2}{#3}{#4}{#5}{#6}}}%
+}%
+\def\@startsection@hook{}%
+\class@info
+  {Repairing broken LateX \string\@sect}%
+\def\@sect@ltx#1#2#3#4#5#6[#7]#8{%
+  \@ifnum{#2>\c@secnumdepth}{%
+    \def\H@svsec{\phantomsection}%
+    \let\@svsec\@empty
+  }{%
+    \H@refstepcounter{#1}%
+    \def\H@svsec{%
+     \phantomsection
+    }%
+    \protected@edef\@svsec{{#1}}%
+    \@ifundefined{@#1cntformat}{%
+     \prepdef\@svsec\@seccntformat
+    }{%
+     \expandafter\prepdef
+     \expandafter\@svsec
+                 \csname @#1cntformat\endcsname
+    }%
+  }%
+  \@tempskipa #5\relax
+  \@ifdim{\@tempskipa>\z@}{%
+    \begingroup
+      \interlinepenalty \@M
+      #6{%
+       \@ifundefined{@hangfrom@#1}{\@hang@from}{\csname @hangfrom@#1\endcsname}%
+       {\hskip#3\relax\H@svsec}{\@svsec}{#8}%
+      }%
+      \@@par
+    \endgroup
+    \@ifundefined{#1mark}{\@gobble}{\csname #1mark\endcsname}{#7}%
+    \addcontentsline{toc}{#1}{%
+      \@ifnum{#2>\c@secnumdepth}{%
+       \protect\numberline{}%
+      }{%
+       \protect\numberline{\csname the#1\endcsname}%
+      }%
+      #8}%
+  }{%
+    \def\@svsechd{%
+      #6{%
+       \@ifundefined{@runin@to@#1}{\@runin@to}{\csname @runin@to@#1\endcsname}%
+       {\hskip#3\relax\H@svsec}{\@svsec}{#8}%
+      }%
+      \@ifundefined{#1mark}{\@gobble}{\csname #1mark\endcsname}{#7}%
+      \addcontentsline{toc}{#1}{%
+        \@ifnum{#2>\c@secnumdepth}{%
+         \protect\numberline{}%
+        }{%
+         \protect\numberline{\csname the#1\endcsname}%
+        }%
+        #8}%
+    }%
+  }%
+  \@xsect{#5}%
+}%
+\def\@hang@from#1#2#3{\@hangfrom{#1#2}#3}%
+\def\@runin@to #1#2#3{#1#2#3}%
+\def\@ssect@ltx#1#2#3#4#5#6[#7]#8{%
+  \def\H@svsec{\phantomsection}%
+  \@tempskipa #5\relax
+  \@ifdim{\@tempskipa>\z@}{%
+    \begingroup
+      \interlinepenalty \@M
+      #6{%
+       \@ifundefined{@hangfroms@#1}{\@hang@froms}{\csname @hangfroms@#1\endcsname}%
+       {\hskip#3\relax\H@svsec}{#8}%
+      }%
+      \@@par
+    \endgroup
+    \@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}%
+    \addcontentsline{toc}{#1}{\protect\numberline{}#8}%
+  }{%
+    \def\@svsechd{%
+      #6{%
+       \@ifundefined{@runin@tos@#1}{\@runin@tos}{\csname @runin@tos@#1\endcsname}%
+       {\hskip#3\relax\H@svsec}{#8}%
+      }%
+      \@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}%
+      \addcontentsline{toc}{#1}{\protect\numberline{}#8}%
+    }%
+  }%
+  \@xsect{#5}%
+}%
+\def\@hang@froms#1#2{#1#2}%
+\def\@runin@tos #1#2{#1#2}%
+\appdef\init@documenthook{%
+ \providecommand\phantomsection{}%
+ \providecommand\hyper@anchor[1]{}%
+ \providecommand\hyper@last{}%
+ \providecommand\Hy@raisedlink[1]{#1}%
+ \providecommand\hyper@anchorstart[1]{}%
+ \providecommand\hyper@anchorend{}%
+ \providecommand\hyper@linkstart[2]{}%
+ \providecommand\hyper@linkend{}%
+}%
+\let\H@refstepcounter\refstepcounter
+\def\sec@upcase#1{\relax{#1}}%
+\appdef\class@documenthook{%
+ \@ifpackageloaded{array}{\switch@array}{\switch@tabular}%
+ \prepdef\endtabular{\endtabular@hook}%
+ \@provide\endtabular@hook{}%
+ \prepdef\endarray{\endarray@hook}%
+ \@provide\endarray@hook{}%
+ \providecommand\array@hook{}%
+ \prepdef\@tabular{\tabular@hook}%
+ \@provide\tabular@hook{}%
+}%
+\def\switch@tabular{%
+ \let\@array@sw\@array@sw@array
+ \@ifx{\@array\@array@LaTeX}{%
+  \@ifx{\multicolumn\multicolumn@LaTeX}{%
+   \@ifx{\@tabular\@tabular@LaTeX}{%
+    \@ifx{\@tabarray\@tabarray@LaTeX}{%
+     \@ifx{\array\array@LaTeX}{%
+      \@ifx{\endarray\endarray@LaTeX}{%
+       \@ifx{\endtabular\endtabular@LaTeX}{%
+        \@ifx{\@mkpream\@mkpream@LaTeX}{%
+         \@ifx{\@addamp\@addamp@LaTeX}{%
+          \@ifx{\@arrayacol\@arrayacol@LaTeX}{%
+           \@ifx{\@tabacol\@tabacol@LaTeX}{%
+            \@ifx{\@arrayclassz\@arrayclassz@LaTeX}{%
+             \@ifx{\@tabclassiv\@tabclassiv@LaTeX}{%
+              \@ifx{\@arrayclassiv\@arrayclassiv@LaTeX}{%
+               \@ifx{\@tabclassz\@tabclassz@LaTeX}{%
+                \@ifx{\@classv\@classv@LaTeX}{%
+                 \@ifx{\hline\hline@LaTeX}{%
+                  \@ifx{\@tabularcr\@tabularcr@LaTeX}{%
+                   \@ifx{\@xtabularcr\@xtabularcr@LaTeX}{%
+                    \@ifx{\@xargarraycr\@xargarraycr@LaTeX}{%
+                     \@ifx{\@yargarraycr\@yargarraycr@LaTeX}{%
+                      \true@sw
+                     }{%
+                      \false@sw
+                     }%
+                    }{%
+                     \false@sw
+                    }%
+                   }{%
+                    \false@sw
+                   }%
+                  }{%
+                   \false@sw
+                  }%
+                 }{%
+                  \false@sw
+                 }%
+                }{%
+                 \false@sw
+                }%
+               }{%
+                \false@sw
+               }%
+              }{%
+               \false@sw
+              }%
+             }{%
+              \false@sw
+             }%
+            }{%
+             \false@sw
+            }%
+           }{%
+            \false@sw
+           }%
+          }{%
+           \false@sw
+          }%
+         }{%
+          \false@sw
+         }%
+        }{%
+         \false@sw
+        }%
+       }{%
+        \false@sw
+       }%
+      }{%
+       \false@sw
+      }%
+     }{%
+      \false@sw
+     }%
+    }{%
+     \false@sw
+    }%
+   }{%
+    \false@sw
+   }%
+  }{%
+   \false@sw
+  }%
+ }{%
+  \false@sw
+ }%
+ {%
+  \class@info{Patching LaTeX tabular.}%
+ }{%
+  \class@info{Unrecognized LaTeX tabular. Please update this document class! (Proceeding with fingers crossed.)}%
+ }%
+ \let\@array\@array@ltx
+ \let\multicolumn\multicolumn@ltx
+ \let\@tabular\@tabular@ltx
+ \let\@tabarray\@tabarray@ltx
+ \let\array\array@ltx
+ \let\endarray\endarray@ltx
+ \let\endtabular\endtabular@ltx
+ \let\@mkpream\@mkpream@ltx
+ \let\@addamp\@addamp@ltx
+ \let\@arrayacol\@arrayacol@ltx
+ \let\@tabacol\@tabacol@ltx
+ \let\@arrayclassz\@arrayclassz@ltx
+ \let\@tabclassiv\@tabclassiv@ltx
+ \let\@arrayclassiv\@arrayclassiv@ltx
+ \let\@tabclassz\@tabclassz@ltx
+ \let\@classv\@classv@ltx
+ \let\hline\hline@ltx
+ \let\@tabularcr\@tabularcr@ltx
+ \let\@xtabularcr\@xtabularcr@ltx
+ \let\@xargarraycr\@xargarraycr@ltx
+ \let\@yargarraycr\@yargarraycr@ltx
+}%
+\def\switch@array{%
+ \let\@array@sw\@array@sw@LaTeX
+ \@ifx{\@array\@array@array}{%
+  \@ifx{\@tabular\@tabular@array}{%
+   \@ifx{\@tabarray\@tabarray@array}{%
+    \@ifx{\array\array@array}{%
+     \@ifx{\endarray\endarray@array}{%
+      \@ifx{\endtabular\endtabular@array}{%
+       \@ifx{\@mkpream\@mkpream@array}{%
+        \@ifx{\@classx\@classx@array}{%
+         \@ifx{\insert@column\insert@column@array}{%
+          \@ifx{\@arraycr\@arraycr@array}{%
+           \@ifx{\@xarraycr\@xarraycr@array}{%
+            \@ifx{\@xargarraycr\@xargarraycr@array}{%
+             \@ifx{\@yargarraycr\@yargarraycr@array}{%
+              \true@sw
+         }{%
+          \false@sw
+         }%
+         }{%
+          \false@sw
+         }%
+         }{%
+          \false@sw
+         }%
+         }{%
+          \false@sw
+         }%
+         }{%
+          \false@sw
+         }%
+        }{%
+         \false@sw
+        }%
+       }{%
+        \false@sw
+       }%
+      }{%
+       \false@sw
+      }%
+     }{%
+      \false@sw
+     }%
+    }{%
+     \false@sw
+    }%
+   }{%
+    \false@sw
+   }%
+  }{%
+   \false@sw
+  }%
+ }{%
+  \false@sw
+ }{%
+  \class@info{Patching array package.}%
+ }{%
+  \class@info{Unrecognized array package. Please update this document class! (Proceeding with fingers crossed.)}%
+ }%
+ \let\@array    \@array@array@new
+ \let\@@array   \@array % Cosi fan tutti
+ \let\@tabular  \@tabular@array@new
+ \let\@tabarray \@tabarray@array@new
+ \let\array     \array@array@new
+ \let\endarray  \endarray@array@new
+ \let\endtabular\endtabular@array@new
+ \let\@mkpream  \@mkpream@array@new
+ \let\@classx   \@classx@array@new
+ \let\@arrayacol\@arrayacol@ltx
+ \let\@tabacol  \@tabacol@ltx
+ \let\insert@column\insert@column@array@new
+ \expandafter\let\csname endtabular*\endcsname\endtabular % Cosi fan tutti
+ \let\@arraycr  \@arraycr@new
+ \let\@xarraycr \@xarraycr@new
+ \let\@xargarraycr\@xargarraycr@new
+ \let\@yargarraycr\@yargarraycr@new
+}%
+\def\@array@sw@LaTeX{\@ifx{\\\@tabularcr}}%
+\def\@array@sw@array{\@ifx{\d@llarbegin\begingroup}}%
+\def\@tabular@LaTeX{%
+ \leavevmode
+ \hbox\bgroup$%
+  \let\@acol\@tabacol
+  \let\@classz\@tabclassz
+  \let\@classiv\@tabclassiv
+  \let\\\@tabularcr
+  \@tabarray
+}%
+\def\@tabular@ltx{%
+  \let\@acoll\@tabacoll
+  \let\@acolr\@tabacolr
+  \let\@acol\@tabacol
+  \let\@classz\@tabclassz
+  \let\@classiv\@tabclassiv
+  \let\\\@tabularcr
+  \@tabarray
+}%
+\def\@tabular@array{%
+ \leavevmode
+ \hbox\bgroup$%
+  \col@sep\tabcolsep
+  \let\d@llarbegin\begingroup
+  \let\d@llarend\endgroup
+  \@tabarray
+}%
+\def\@tabular@array@new{%
+  \let\@acoll\@tabacoll
+  \let\@acolr\@tabacolr
+  \let\@acol\@tabacol
+  \let\col@sep\@undefined
+  \let\d@llarbegin\begingroup
+  \let\d@llarend\endgroup
+  \@tabarray
+}%
+\def\@tabarray@LaTeX{%
+ \m@th\@ifnextchar[\@array{\@array[c]}%
+}%
+\def\@tabarray@ltx{%
+ \m@th\@ifnextchar[\@array{\expandafter\@array\expandafter[\array@default]}%
+}%
+\def\@tabarray@array{%
+ \@ifnextchar[{\@@array}{\@@array[c]}%
+}%
+\def\@tabarray@array@new{%
+ \@ifnextchar[{\@@array}{\expandafter\@@array\expandafter[\array@default]}%
+}%
+\newcount\intertabularlinepenalty
+\intertabularlinepenalty=100
+\newcount\@tbpen
+\appdef\samepage{\intertabularlinepenalty\@M}%
+\def\@tabularcr@LaTeX{{\ifnum 0=`}\fi \@ifstar \@xtabularcr \@xtabularcr}%
+\def\@tabularcr@ltx{{\ifnum 0=`}\fi \@ifstar {\global \@tbpen \@M \@xtabularcr }{\global \@tbpen \intertabularlinepenalty \@xtabularcr }}%
+\def\@xtabularcr@LaTeX{\@ifnextchar [\@argtabularcr {\ifnum 0=`{\fi }\cr }}%
+\def\@xtabularcr@ltx{\@ifnextchar [\@argtabularcr {\ifnum 0=`{\fi }\cr \noalign {\penalty \@tbpen }}}%
+\def\@xargarraycr@LaTeX#1{\@tempdima #1\advance \@tempdima \dp \@arstrutbox \vrule \@height \z@ \@depth \@tempdima \@width \z@ \cr}%
+\def\@xargarraycr@ltx#1{\@tempdima #1\advance \@tempdima \dp \@arstrutbox \vrule \@height \z@ \@depth \@tempdima \@width \z@ \cr \noalign {\penalty \@tbpen }}%
+\def\@yargarraycr@LaTeX#1{\cr \noalign {\vskip #1}}%
+\def\@yargarraycr@ltx#1{\cr \noalign {\penalty \@tbpen \vskip #1}}%
+\def\@arraycr@array{%
+ \relax
+ \iffalse{\fi\ifnum 0=`}\fi
+ \@ifstar \@xarraycr \@xarraycr
+}%
+\def\@arraycr@new{%
+ \relax
+ \iffalse{\fi\ifnum 0=`}\fi
+ \@ifstar {\global \@tbpen \@M \@xarraycr }{\global \@tbpen \intertabularlinepenalty \@xarraycr }%
+}%
+\def\@xarraycr@array{%
+ \@ifnextchar [%]
+ \@argarraycr {\ifnum 0=`{}\fi\cr}%
+}%
+\def\@xarraycr@new{%
+ \@ifnextchar [%]
+ \@argarraycr {\ifnum 0=`{}\fi\cr \noalign {\penalty \@tbpen }}%
+}%
+\def\@xargarraycr@array#1{%
+ \unskip
+ \@tempdima #1\advance\@tempdima \dp\@arstrutbox
+ \vrule \@depth\@tempdima \@width\z@
+ \cr
+}%
+\def\@xargarraycr@new#1{%
+ \unskip
+ \@tempdima #1\advance\@tempdima \dp\@arstrutbox
+ \vrule \@depth\@tempdima \@width\z@
+ \cr
+ \noalign {\penalty \@tbpen }%
+}%
+\def\@yargarraycr@array#1{%
+ \cr
+ \noalign{\vskip #1}%
+}%
+\def\@yargarraycr@new#1{%
+ \cr
+ \noalign{\penalty \@tbpen \vskip #1}%
+}%
+\def\array@LaTeX{%
+ \let\@acol\@arrayacol
+ \let\@classz\@arrayclassz
+ \let\@classiv\@arrayclassiv
+ \let\\\@arraycr
+ \let\@halignto\@empty
+ \@tabarray
+}%
+\def\array@ltx{%
+ \@ifmmode{}{\@badmath$}%
+ \let\@acoll\@arrayacol
+ \let\@acolr\@arrayacol
+ \let\@acol\@arrayacol
+ \let\@classz\@arrayclassz
+ \let\@classiv\@arrayclassiv
+ \let\\\@arraycr
+ \let\@halignto\@empty
+ \@tabarray
+}%
+\def\array@array{%
+ \col@sep\arraycolsep
+ \def\d@llarbegin{$}\let\d@llarend\d@llarbegin\gdef\@halignto{}%
+ \@tabarray
+}
+\def\array@array@new{%
+ \@ifmmode{}{\@badmath$}%
+ \let\@acoll\@arrayacol
+ \let\@acolr\@arrayacol
+ \let\@acol\@arrayacol
+\let\col@sep\@undefined
+ \def\d@llarbegin{$}%
+ \let\d@llarend\d@llarbegin
+ \gdef\@halignto{}%
+ \@tabarray
+}%
+\def\@array@LaTeX[#1]#2{%
+  \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
+  \bgroup
+  \setbox\@arstrutbox\hbox{%
+    \vrule \@height\arraystretch\ht\strutbox
+           \@depth\arraystretch \dp\strutbox
+           \@width\z@}%
+  \@mkpream{#2}%
+  \edef\@preamble{%
+    \ialign \noexpand\@halignto
+      \bgroup \@arstrut \@preamble \tabskip\z@skip \cr}%
+  \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
+  \let\tabularnewline\\%
+    \let\par\@empty
+    \let\@sharp##%
+    \set@typeset@protect
+    \lineskip\z@skip\baselineskip\z@skip
+    \ifhmode \@preamerr\z@ \@@par\fi
+    \@preamble
+}%
+\def\@array@ltx[#1]#2{%
+ \@nameuse{@array@align@#1}%
+  \set@arstrutbox
+  \@mkpream{#2}%
+  \prepdef\@preamble{%
+    \tabskip\tabmid@skip
+    \@arstrut
+  }%
+  \appdef\@preamble{%
+    \tabskip\tabright@skip
+    \cr
+    \array@row@pre
+  }%
+  \let\tabularnewline\\%
+  \let\par\@empty
+  \let\@sharp##%
+  \set@typeset@protect
+  \lineskip\z@skip\baselineskip\z@skip
+  \tabskip\tableft@skip\relax
+  \ifhmode \@preamerr\z@ \@@par\fi
+  \everycr{}%
+  \expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble
+}%
+\def\set@arstrutbox{%
+  \setbox\@arstrutbox\hbox{%
+    \vrule \@height\arraystretch\ht\strutbox
+           \@depth\arraystretch \dp\strutbox
+           \@width\z@
+  }%
+}%
+\def\@array@array[#1]#2{%
+  \@tempdima \ht \strutbox
+  \advance \@tempdima by\extrarowheight
+  \setbox \@arstrutbox \hbox{\vrule
+             \@height \arraystretch \@tempdima
+             \@depth \arraystretch \dp \strutbox
+             \@width \z@}%
+  \begingroup
+  \@mkpream{#2}%
+  \xdef\@preamble{\noexpand \ialign \@halignto
+                  \bgroup \@arstrut \@preamble
+                          \tabskip \z@ \cr}%
+  \endgroup
+  \@arrayleft
+  \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi
+  \bgroup
+  \let \@sharp ##\let \protect \relax
+  \lineskip \z@
+  \baselineskip \z@
+  \m@th
+  \let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble
+}%
+\def\@array@array@new[#1]#2{%
+  \@tempdima\ht\strutbox
+  \advance\@tempdima by\extrarowheight
+  \setbox\@arstrutbox\hbox{%
+   \vrule \@height\arraystretch\@tempdima
+          \@depth \arraystretch\dp\strutbox
+          \@width \z@
+  }%
+  \begingroup
+   \@mkpream{#2}%
+   \xdef\@preamble{\@preamble}%
+  \endgroup
+  \prepdef\@preamble{%
+   \tabskip\tabmid@skip
+    \@arstrut
+  }%
+  \appdef\@preamble{%
+   \tabskip\tabright@skip
+   \cr
+   \array@row@pre
+  }%
+  \@arrayleft
+  \@nameuse{@array@align@#1}%
+  \m@th
+  \let\\\@arraycr
+  \let\tabularnewline\\%
+  \let\par\@empty
+  \let\@sharp##%
+  \set@typeset@protect
+  \lineskip\z@\baselineskip\z@
+  \tabskip\tableft@skip
+  \everycr{}%
+  \expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble
+}%
+\def\endarray@LaTeX{%
+ \crcr\egroup\egroup
+}%
+\def\endarray@ltx{%
+ \crcr\array@row@pst\egroup\egroup
+}%
+\def\endarray@array{%
+ \crcr \egroup \egroup \@arrayright \gdef\@preamble{}%
+}%
+\def\endarray@array@new{%
+ \crcr\array@row@pst\egroup\egroup % Same as \endarray@ltx
+ \@arrayright
+ \global\let\@preamble\@empty
+}%
+\def\endtabular@LaTeX{%
+ \crcr\egroup\egroup $\egroup
+}%
+\def\endtabular@ltx{%
+ \endarray
+}%
+\def\endtabular@array{%
+ \endarray $\egroup
+}%
+\def\endtabular@array@new{%
+ \endarray
+}%
+\@namedef{endtabular*}{\endtabular}%
+\long\def\multicolumn@LaTeX#1#2#3{%
+ \multispan{#1}\begingroup
+  \@mkpream{#2}%
+  \def\@sharp{#3}\set@typeset@protect
+  \let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
+  \@arstrut \@preamble\hbox{}\endgroup\ignorespaces
+}%
+\long\def\multicolumn@ltx#1#2#3{%
+ \multispan{#1}%
+ \begingroup
+  \@mkpream{#2}%
+  \def\@sharp{#3}%
+  \set@typeset@protect
+ %\let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
+  \@arstrut
+  \@preamble
+  \hbox{}%
+ \endgroup
+ \ignorespaces
+}%
+\def\@array@align@t{\leavevmode\vtop\bgroup}%
+\def\@array@align@b{\leavevmode\vbox\bgroup}%
+\def\@array@align@c{\leavevmode\@ifmmode{\vcenter\bgroup}{$\vcenter\bgroup\aftergroup$\aftergroup\relax}}%
+\def\@array@align@v{%
+ \@ifmmode{%
+  \@badmath
+  \vcenter\bgroup
+ }{%
+  \@ifinner{%
+   $\vcenter\bgroup\aftergroup$
+  }{%
+   \@@par\bgroup
+  }%
+ }%
+}%
+\def\array@default{c}%
+\def\array@row@rst{%
+ \let\@array@align@v\@array@align@c
+}%
+\def\array@row@pre{}%
+\def\array@row@pst{}%
+\newcommand\toprule{\tab@rule{\column@font}{\column@fil}{\frstrut}}%
+\newcommand\colrule{\unskip\lrstrut\\\tab@rule{\body@font}{}{\frstrut}}%
+\newcommand\botrule{\unskip\lrstrut\\\noalign{\hline@rule}{}}%
+\def\hline@LaTeX{%
+ \noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet
+   \reserved@a\@xhline
+}%
+\def\hline@ltx{%
+ \noalign{%
+  \ifnum0=`}\fi
+  \hline@rule
+  \futurelet\reserved@a\@xhline
+ % \noalign ended in \@xhline
+}%
+\def\@xhline@unneeded{%
+ \say\reserved@a
+ \ifx\reserved@a\hline
+  \vskip\doublerulesep
+  \vskip-\arrayrulewidth
+ \fi
+ \ifnum0=`{\fi}%
+}%
+\def\tab@rule#1#2#3{%
+ \crcr
+ \noalign{%
+  \hline@rule
+  \gdef\@arstrut@hook{%
+   \global\let\@arstrut@hook\@empty
+   #3%
+  }%
+  \gdef\cell@font{#1}%
+  \gdef\cell@fil{#2}%
+ }%
+}%
+\def\column@font{}%
+\def\column@fil{}%
+\def\body@font{}%
+\def\cell@font{}%
+\def\frstrut{}%
+\def\lrstrut{}%
+\def\@arstrut@hline{%
+ \relax
+ \@ifmmode{\copy}{\unhcopy}\@arstrutbox@hline
+ \@arstrut@hook
+}%
+\let\@arstrut@org\@arstrut
+\def\@arstrut@hook{%
+ \global\let\@arstrut\@arstrut@org
+}%
+\newbox\@arstrutbox@hline
+\appdef\set@arstrutbox{%
+  \setbox\@arstrutbox@hline\hbox{%
+    \setbox\z@\hbox{$0^{0}_{}$}%
+    \dimen@\ht\z@\advance\dimen@\@arstrut@hline@clnc
+    \@ifdim{\dimen@<\arraystretch\ht\strutbox}{\dimen@=\arraystretch\ht\strutbox}{}%
+    \vrule \@height\dimen@
+           \@depth\arraystretch \dp\strutbox
+           \@width\z@
+  }%
+}%
+\def\hline@rule{%
+ \hrule \@height \arrayrulewidth
+ \global\let\@arstrut\@arstrut@hline
+}%
+\def\@arstrut@hline@clnc{2\p@}% % Klootch: magic number
+\def\tableft@skip{\z@skip}%
+\def\tabmid@skip{\z@skip}%\@flushglue
+\def\tabright@skip{\z@skip}%
+\def\tableftsep{\tabcolsep}%
+\def\tabmidsep{\tabcolsep}%
+\def\tabrightsep{\tabcolsep}%
+\def\cell@fil{}%
+\def\pbox@hook{}%
+\appdef\@arstrut{\@arstrut@hook}%
+\let\@arstrut@hook\@empty
+\def\@addtopreamble{\appdef\@preamble}%
+\def\@mkpream@LaTeX#1{%
+  \@firstamptrue\@lastchclass6
+  \let\@preamble\@empty
+  \let\protect\@unexpandable@protect
+  \let\@sharp\relax
+  \let\@startpbox\relax\let\@endpbox\relax
+  \@expast{#1}%
+  \expandafter\@tfor \expandafter
+    \@nextchar \expandafter:\expandafter=\reserved@a\do
+       {\@testpach\@nextchar
+    \ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii
+      \or \@classiv \or\@classv \fi\@lastchclass\@chclass}%
+  \ifcase \@lastchclass \@acol
+      \or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi
+}%
+\def\@mkpream@ltx#1{%
+ \@firstamptrue
+ \@lastchclass6
+ \let\@preamble\@empty
+ \let\protect\@unexpandable@protect
+ \let\@sharp\relax
+ \@expast{#1}%
+ \expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\reserved@a
+ \do{%
+  \expandafter\@testpach\expandafter{\@nextchar}%
+  \ifcase\@chclass
+   \@classz
+  \or
+   \@classi
+  \or
+   \@classii
+  \or
+   \@classiii
+  \or
+   \@classiv
+  \or
+   \@classv
+  \fi
+  \@lastchclass\@chclass
+ }%
+ \ifcase\@lastchclass
+  \@acolr % right-hand column
+ \or
+ \or
+  \@preamerr\@ne
+ \or
+  \@preamerr\tw@
+ \or
+ \or
+  \@acolr % right-hand column
+ \fi
+}%
+\def\insert@column@array{%
+   \the@toks \the \@tempcnta
+   \ignorespaces \@sharp \unskip
+   \the@toks \the \count@ \relax
+}%
+\def\insert@column@array@new{%
+ \the@toks\the\@tempcnta
+ \array@row@rst\cell@font
+ \ignorespaces\@sharp\unskip
+ \the@toks\the\count@
+ \relax
+}%
+\def\@mkpream@relax{%
+ \let\tableftsep\relax
+ \let\tabmidsep\relax
+ \let\tabrightsep\relax
+ \let\array@row@rst\relax
+ \let\cell@font\relax
+ \let\@startpbox\relax
+}%
+\def\@mkpream@array#1{%
+   \gdef\@preamble{}\@lastchclass 4 \@firstamptrue
+   \let\@sharp\relax \let\@startpbox\relax \let\@endpbox\relax
+   \@temptokena{#1}\@tempswatrue
+   \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}%
+   \count@\m@ne
+   \let\the@toks\relax
+   \prepnext@tok
+   \expandafter \@tfor \expandafter \@nextchar
+    \expandafter :\expandafter =\the\@temptokena \do
+   {\@testpach
+   \ifcase \@chclass \@classz \or \@classi \or \@classii
+     \or \save@decl \or \or \@classv \or \@classvi
+     \or \@classvii \or \@classviii
+     \or \@classx
+     \or \@classx \fi
+   \@lastchclass\@chclass}%
+   \ifcase\@lastchclass
+   \@acol \or
+   \or
+   \@acol \or
+   \@preamerr \thr@@ \or
+   \@preamerr \tw@ \@addtopreamble\@sharp \or
+   \or
+   \else  \@preamerr \@ne \fi
+   \def\the@toks{\the\toks}%
+}%
+\def\@mkpream@array@new#1{%
+ \gdef\@preamble{}%
+ \@lastchclass\f@ur
+ \@firstamptrue
+ \let\@sharp\relax
+ \@mkpream@relax
+ \@temptokena{#1}\@tempswatrue
+ \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}%
+ \count@\m@ne
+ \let\the@toks\relax
+ \prepnext@tok
+ \expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\the\@temptokena
+ \do{%
+  \@testpach
+  \ifcase\@chclass
+   \@classz
+  \or
+   \@classi
+  \or
+   \@classii
+  \or
+   \save@decl
+  \or
+  \or
+   \@classv
+  \or
+   \@classvi
+  \or
+   \@classvii
+  \or
+   \@classviii
+  \or
+   \@classx
+  \or
+   \@classx
+  \fi
+  \@lastchclass\@chclass
+ }%
+ \ifcase\@lastchclass
+  \@acolr % right-hand column
+ \or
+ \or
+  \@acolr % right-hand column
+ \or
+  \@preamerr\thr@@
+ \or
+  \@preamerr\tw@\@addtopreamble\@sharp
+ \or
+ \or
+ \else
+  \@preamerr\@ne
+ \fi
+ \def\the@toks{\the\toks}%
+}%
+\def\@addamp@LaTeX{%
+  \if@firstamp\@firstampfalse\else\edef\@preamble{\@preamble &}\fi
+}%
+\def\@addamp@ltx{%
+ \if@firstamp\@firstampfalse\else\@addtopreamble{&}\fi
+}%
+\def\@arrayacol@LaTeX{%
+ \edef\@preamble{\@preamble \hskip \arraycolsep}%
+}%
+\def\@arrayacol@ltx{%
+ \@addtopreamble{\hskip\arraycolsep}%
+}%
+\def\@tabacoll{%
+ \@addtopreamble{\hskip\tableftsep\relax}%
+}%
+\def\@tabacol@LaTeX{%
+ \edef\@preamble{\@preamble \hskip \tabcolsep}%
+}%
+\def\@tabacol@ltx{%
+ \@addtopreamble{\hskip\tabmidsep\relax}%
+}%
+\def\@tabacolr{%
+ \@addtopreamble{\hskip\tabrightsep\relax}%
+}%
+\def\@arrayclassz@LaTeX{%
+ \ifcase \@lastchclass \@acolampacol \or \@ampacol \or
+   \or \or \@addamp \or
+   \@acolampacol \or \@firstampfalse \@acol \fi
+ \edef\@preamble{\@preamble
+  \ifcase \@chnum
+     \hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil
+    \or \hfil$\relax\@sharp$\fi}%
+}%
+\def\@arrayclassz@ltx{%
+ \ifcase\@lastchclass
+  \@acolampacol
+ \or
+  \@ampacol
+ \or
+ \or
+ \or
+  \@addamp
+ \or
+  \@acolampacol
+ \or
+  \@firstampfalse\@acoll
+ \fi
+ \ifcase\@chnum
+  \@addtopreamble{%
+   \hfil\array@row@rst$\relax\@sharp$\hfil
+  }%
+ \or
+  \@addtopreamble{%
+   \array@row@rst$\relax\@sharp$\hfil
+  }%
+ \or
+  \@addtopreamble{%
+   \hfil\array@row@rst$\relax\@sharp$%
+  }%
+ \fi
+}%
+\def\@tabclassz@LaTeX{%
+  \ifcase\@lastchclass
+    \@acolampacol
+  \or
+    \@ampacol
+  \or
+  \or
+  \or
+    \@addamp
+  \or
+    \@acolampacol
+  \or
+    \@firstampfalse\@acol
+  \fi
+  \edef\@preamble{%
+    \@preamble{%
+      \ifcase\@chnum
+        \hfil\ignorespaces\@sharp\unskip\hfil
+      \or
+        \hskip1sp\ignorespaces\@sharp\unskip\hfil
+      \or
+        \hfil\hskip1sp\ignorespaces\@sharp\unskip
+      \fi}}%
+}%
+\def\@tabclassz@ltx{%
+ \ifcase\@lastchclass
+  \@acolampacol
+ \or
+  \@ampacol
+ \or
+ \or
+ \or
+  \@addamp
+ \or
+  \@acolampacol
+ \or
+  \@firstampfalse\@acoll
+ \fi
+ \ifcase\@chnum
+  \@addtopreamble{%
+   {\hfil\array@row@rst\cell@font\ignorespaces\@sharp\unskip\hfil}%
+  }%
+ \or
+  \@addtopreamble{%
+   {\cell@fil\hskip1sp\array@row@rst\cell@font\ignorespaces\@sharp\unskip\hfil}%
+  }%
+ \or
+  \@addtopreamble{%
+   {\hfil\hskip1sp\array@row@rst\cell@font\ignorespaces\@sharp\unskip\cell@fil}%
+  }%
+ \fi
+}%
+\def\@tabclassiv@LaTeX{%
+ \@addtopreamble\@nextchar
+}%
+\def\@tabclassiv@ltx{%
+ \expandafter\@addtopreamble\expandafter{\@nextchar}%
+}%
+\def\@arrayclassiv@LaTeX{%
+ \@addtopreamble{$\@nextchar$}%
+}%
+\def\@arrayclassiv@ltx{%
+ \expandafter\@addtopreamble\expandafter{\expandafter$\@nextchar$}%
+}%
+\def\@classv@LaTeX{%
+ \@addtopreamble{\@startpbox{\@nextchar}\ignorespaces
+ \@sharp\@endpbox}%
+}%
+\def\@classv@ltx{%
+ \expandafter\@addtopreamble
+ \expandafter{%
+ \expandafter \@startpbox
+ \expandafter {\@nextchar}%
+ \pbox@hook\array@row@rst\cell@font\ignorespaces\@sharp\@endpbox
+ }%
+}%
+\def\@classx@array{%
+  \ifcase \@lastchclass
+  \@acolampacol \or
+  \@addamp \@acol \or
+  \@acolampacol \or
+  \or
+  \@acol \@firstampfalse \or
+  \@addamp
+  \fi
+}%
+\def\@classx@array@new{%
+ \ifcase \@lastchclass
+  \@acolampacol
+ \or
+  \@addamp \@acol
+ \or
+  \@acolampacol
+ \or
+ \or
+  \@firstampfalse\@acoll
+ \or
+  \@addamp
+ \fi
+}%
+\def\@xbitor@LaTeX #1{\@tempcntb \count#1
+   \ifnum \@tempcnta =\z@
+   \else
+     \divide\@tempcntb\@tempcnta
+     \ifodd\@tempcntb \@testtrue\fi
+   \fi}%
+\def\@xbitor@ltx#1{%
+ \@tempcntb\count#1%
+ \@ifnum{\@tempcnta=\z@}{}{%
+  \divide\@tempcntb\@tempcnta
+  \@ifodd\@tempcntb{\@testtrue}{}%
+ }%
+}%
+\@ifx{\@xbitor\@xbitor@LaTeX}{%
+  \class@info{Repairing broken LaTeX \string\@xbitor}%
+}{%
+  \class@info{Unrecognized LaTeX \string\@xbitor. Please update this document class! (Proceeding with fingers crossed.)}%
+}%
+\let\@xbitor\@xbitor@ltx
+\newcommand*\@gobble@opt@one[2][]{}%
+\def\@starttoc#1{%
+  \begingroup
+    \toc@pre
+    \makeatletter
+    \@input{\jobname.#1}%
+    \if@filesw
+      \expandafter\newwrite\csname tf@#1\endcsname
+      \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+    \fi
+    \@nobreakfalse
+    \toc@post
+  \endgroup
+}%
+\def\toc@pre{}%
+\def\toc@post{}%
+\def\toc@@font{}%{\footnotesize\rmfamily}%
+\def\@dotsep{\z@}%{5.5pt}%
+\let\tocdim@section       \leftmargini
+\let\tocdim@subsection    \leftmarginii
+\let\tocdim@subsubsection \leftmarginiii
+\let\tocdim@paragraph     \leftmarginiv
+\let\tocdim@appendix      \leftmarginv
+\let\tocdim@pagenum       \leftmarginvi
+\def\toc@pre@auto{%
+  \toc@@font
+  \@tempdima\z@
+  \toc@setindent\@tempdima{section}%
+  \toc@setindent\@tempdima{subsection}%
+  \toc@setindent\@tempdima{subsubsection}%
+  \toc@setindent\@tempdima{paragraph}%
+  \toc@letdimen{appendix}%
+  \toc@letdimen{pagenum}%
+}%
+\def\toc@post@auto{%
+  \if@filesw
+   \begingroup
+    \toc@writedimen{section}%
+    \toc@writedimen{subsection}%
+    \toc@writedimen{subsubsection}%
+    \toc@writedimen{paragraph}%
+    \toc@writedimen{appendix}%
+    \toc@writedimen{pagenum}%
+   \endgroup
+  \fi
+}%
+\def\toc@setindent#1#2{%
+ \csname tocdim@#2\endcsname\tocdim@min\relax
+ \@ifundefined{tocmax@#2}{\@namedef{tocmax@#2}{\z@}}{}%
+ \advance#1\@nameuse{tocmax@#2}\relax
+ \expandafter\edef\csname tocleft@#2\endcsname{\the#1}%
+}%
+\def\toc@letdimen#1{%
+ \csname tocdim@#1\endcsname\tocdim@min\relax
+ \@ifundefined{tocmax@#1}{\@namedef{tocmax@#1}{\z@}}{}%
+ \expandafter\let\csname tocleft@#1\expandafter\endcsname\csname tocmax@#1\endcsname
+}%
+\def\toc@writedimen#1{%
+ \immediate\write\@auxout{%
+  \gdef\expandafter\string\csname tocmax@#1\endcsname{%
+   \expandafter\the\csname tocdim@#1\endcsname
+  }%
+ }%
+}%
+\def\l@@sections#1#2#3#4{%
+ % #1 - superior section
+ % #2 - this section
+ % #3 - content, including possible \numberline
+ % #4 - page number
+ \begingroup
+  \everypar{}%
+  \set@tocdim@pagenum{#4}%
+  \global\@tempdima\csname tocdim@#2\endcsname
+  \leftskip\csname tocleft@#2\endcsname\relax
+  \dimen@\csname tocleft@#1\endcsname\relax
+  \parindent-\leftskip\advance\parindent\dimen@
+  \rightskip\tocleft@pagenum plus 1fil\relax
+  \skip@\parfillskip\parfillskip\z@
+  \let\numberline\numberline@@sections
+  \@nameuse{l@f@#2}%
+  \ignorespaces#3\unskip\nobreak\hskip\skip@
+  \hb@xt@\rightskip{\hfil\unhbox\@tempboxa}\hskip-\rightskip\hskip\z@skip
+  \par
+  \expandafter\aftergroup\csname tocdim@#2\endcsname\expandafter
+ \endgroup\the\@tempdima\relax
+}%
+\def\set@tocdim@pagenum#1{%
+ \setbox\@tempboxa\hbox{\ignorespaces#1}%
+ \@ifdim{\tocdim@pagenum<\wd\z@}{\global\tocdim@pagenum\wd\z@}{}%
+}%
+\def\numberline@@sections#1{%
+ \leavevmode\hb@xt@-\parindent{%
+  \hfil
+  \@if@empty{#1}{}{%
+   \setbox\z@\hbox{#1.\kern\@dotsep}%
+   \@ifdim{\@tempdima<\wd\z@}{\global\@tempdima\wd\z@}{}%
+   \unhbox\z@
+  }%
+ }%
+ \ignorespaces
+}%
+\def\tocdim@min{\z@}%
+\def\list#1#2{%
+  \ifnum \@listdepth >5\relax
+    \@toodeep
+  \else
+    \global\advance\@listdepth\@ne
+  \fi
+  \rightmargin\z@
+  \listparindent\z@
+  \itemindent\z@
+  \csname @list\romannumeral\the\@listdepth\endcsname
+  \def\@itemlabel{#1}%
+  \let\makelabel\@mklab
+  \@nmbrlistfalse
+  #2\relax
+  \@trivlist
+  \parskip\parsep
+  \set@listindent
+  \ignorespaces
+}%
+\def\set@listindent@parshape{%
+ \parindent\listparindent
+ \advance\@totalleftmargin\leftmargin
+ \advance\linewidth-\rightmargin
+ \advance\linewidth-\leftmargin
+ \parshape\@ne\@totalleftmargin\linewidth
+}%
+\def\set@listindent@{%
+ \parindent\listparindent
+ \advance\@totalleftmargin\leftmargin
+ \advance\rightskip\rightmargin
+ \advance\leftskip\@totalleftmargin
+}%
+\let\set@listindent\set@listindent@parshape
+\endinput
+%%
+%% End of file `ltxutil.sty'.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/mk_booklet.tex	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,12 @@
+% File to make the booklet with the right margins
+
+\documentclass[letter]{article}
+\usepackage{pdfpages}
+\usepackage[letterpaper, top=.4in, bottom=.4in]{geometry}
+
+\begin{document}
+\pagestyle{empty}
+\includepdf[pages=-, noautoscale, scale=.9]{booklet_0.pdf}
+
+\end{document}
+
Binary file project/static/proceedings/sources/scipy2009confs.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/templates/proceedings/show_paper_preview.html	Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,9 @@
+{% extends "base.html" %}
+{% block title %}Preview of the paper{% endblock %}
+
+{% block content %}
+  <h1>Preview of the paper</h1>
+  <a href="{{ out_path }}/paper{{ paper_id }}.pdf">
+    <img src="{{ out_path }}/paper{{ paper_id }}.png"></img>
+  </a>
+{% endblock content %}