From 3cb3314d346f68b3d907fd5ea0929d2fee117173 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sun, 20 Mar 2011 22:19:58 -0400 Subject: [PATCH] dumb docs start --- docs/Makefile | 130 +++++ docs/_build/doctrees/_themes/README.doctree | Bin 0 -> 6167 bytes docs/_build/doctrees/environment.pickle | Bin 0 -> 10059 bytes docs/_build/doctrees/index.doctree | Bin 0 -> 11786 bytes docs/_build/doctrees/installation.doctree | Bin 0 -> 13684 bytes docs/_build/doctrees/shell.doctree | Bin 0 -> 18712 bytes docs/_build/doctrees/useful-tools.doctree | Bin 0 -> 8635 bytes docs/_build/html/.buildinfo | 4 + docs/_build/html/_sources/_themes/README.txt | 25 + docs/_build/html/_sources/index.txt | 11 + docs/_build/html/_sources/installation.txt | 81 +++ docs/_build/html/_sources/shell.txt | 110 ++++ docs/_build/html/_sources/useful-tools.txt | 48 ++ docs/_build/html/_static/basic.css | 528 +++++++++++++++++++ docs/_build/html/_static/doctools.js | 247 +++++++++ docs/_build/html/_static/file.png | Bin 0 -> 392 bytes docs/_build/html/_static/flasky.css | 387 ++++++++++++++ docs/_build/html/_static/jquery.js | 154 ++++++ docs/_build/html/_static/minus.png | Bin 0 -> 199 bytes docs/_build/html/_static/plus.png | Bin 0 -> 199 bytes docs/_build/html/_static/pygments.css | 62 +++ docs/_build/html/_static/searchtools.js | 518 ++++++++++++++++++ docs/_build/html/_static/small_flask.css | 70 +++ docs/_build/html/_static/test | 0 docs/_build/html/_static/underscore.js | 16 + docs/_build/html/_themes/README.html | 110 ++++ docs/_build/html/genindex.html | 88 ++++ docs/_build/html/index.html | 153 ++++++ docs/_build/html/installation.html | 157 ++++++ docs/_build/html/objects.inv | Bin 0 -> 207 bytes docs/_build/html/search.html | 94 ++++ docs/_build/html/searchindex.js | 1 + docs/_build/html/shell.html | 202 +++++++ docs/_build/html/useful-tools.html | 139 +++++ docs/_static/test | 0 docs/_templates/test | 0 docs/_themes/.gitignore | 3 + docs/_themes/LICENSE | 45 ++ docs/_themes/README.rst | 25 + docs/_themes/flask_theme_support.py | 86 +++ docs/_themes/kr/layout.html | 16 + docs/_themes/kr/relations.html | 19 + docs/_themes/kr/static/flasky.css_t | 387 ++++++++++++++ docs/_themes/kr/static/small_flask.css | 70 +++ docs/_themes/kr/theme.conf | 7 + docs/_themes/kr_small/layout.html | 22 + docs/_themes/kr_small/static/flasky.css_t | 287 ++++++++++ docs/_themes/kr_small/theme.conf | 10 + docs/conf.py | 261 +++++++++ docs/contents.rst.inc | 41 ++ docs/contribute.rst | 17 + docs/index.rst | 11 + docs/installation.rst | 128 +++++ docs/license.rst | 4 + docs/make.bat | 155 ++++++ docs/useful-tools.rst | 18 + test_clint.py | 31 ++ 57 files changed, 4978 insertions(+) create mode 100644 docs/Makefile create mode 100644 docs/_build/doctrees/_themes/README.doctree create mode 100644 docs/_build/doctrees/environment.pickle create mode 100644 docs/_build/doctrees/index.doctree create mode 100644 docs/_build/doctrees/installation.doctree create mode 100644 docs/_build/doctrees/shell.doctree create mode 100644 docs/_build/doctrees/useful-tools.doctree create mode 100644 docs/_build/html/.buildinfo create mode 100644 docs/_build/html/_sources/_themes/README.txt create mode 100644 docs/_build/html/_sources/index.txt create mode 100644 docs/_build/html/_sources/installation.txt create mode 100644 docs/_build/html/_sources/shell.txt create mode 100644 docs/_build/html/_sources/useful-tools.txt create mode 100644 docs/_build/html/_static/basic.css create mode 100644 docs/_build/html/_static/doctools.js create mode 100644 docs/_build/html/_static/file.png create mode 100644 docs/_build/html/_static/flasky.css create mode 100644 docs/_build/html/_static/jquery.js create mode 100644 docs/_build/html/_static/minus.png create mode 100644 docs/_build/html/_static/plus.png create mode 100644 docs/_build/html/_static/pygments.css create mode 100644 docs/_build/html/_static/searchtools.js create mode 100644 docs/_build/html/_static/small_flask.css create mode 100644 docs/_build/html/_static/test create mode 100644 docs/_build/html/_static/underscore.js create mode 100644 docs/_build/html/_themes/README.html create mode 100644 docs/_build/html/genindex.html create mode 100644 docs/_build/html/index.html create mode 100644 docs/_build/html/installation.html create mode 100644 docs/_build/html/objects.inv create mode 100644 docs/_build/html/search.html create mode 100644 docs/_build/html/searchindex.js create mode 100644 docs/_build/html/shell.html create mode 100644 docs/_build/html/useful-tools.html create mode 100644 docs/_static/test create mode 100644 docs/_templates/test create mode 100644 docs/_themes/.gitignore create mode 100644 docs/_themes/LICENSE create mode 100644 docs/_themes/README.rst create mode 100644 docs/_themes/flask_theme_support.py create mode 100644 docs/_themes/kr/layout.html create mode 100644 docs/_themes/kr/relations.html create mode 100644 docs/_themes/kr/static/flasky.css_t create mode 100644 docs/_themes/kr/static/small_flask.css create mode 100644 docs/_themes/kr/theme.conf create mode 100644 docs/_themes/kr_small/layout.html create mode 100644 docs/_themes/kr_small/static/flasky.css_t create mode 100644 docs/_themes/kr_small/theme.conf create mode 100644 docs/conf.py create mode 100644 docs/contents.rst.inc create mode 100644 docs/contribute.rst create mode 100644 docs/index.rst create mode 100644 docs/installation.rst create mode 100644 docs/license.rst create mode 100644 docs/make.bat create mode 100644 docs/useful-tools.rst create mode 100755 test_clint.py diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d8dd1f4 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/osxpython.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/osxpython.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/osxpython" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/osxpython" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/_build/doctrees/_themes/README.doctree b/docs/_build/doctrees/_themes/README.doctree new file mode 100644 index 0000000000000000000000000000000000000000..848e0ef4f28f172bcb9c147cc9957c20ac092cfb GIT binary patch literal 6167 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 H?BM?ZE51_~ literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3170771c4fe22f9697d5695ad4ea5c1b7c7f50a7 GIT binary patch literal 11786 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/installation.doctree b/docs/_build/doctrees/installation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ce9355f706a54c204b347a48d65ce8eeb9af21af GIT binary patch literal 13684 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/shell.doctree b/docs/_build/doctrees/shell.doctree new file mode 100644 index 0000000000000000000000000000000000000000..091ffb4d0375e2ddd8c7f846625073509845e7e6 GIT binary patch literal 18712 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/useful-tools.doctree b/docs/_build/doctrees/useful-tools.doctree new file mode 100644 index 0000000000000000000000000000000000000000..30fc7645b5d3923bdce10755bd5c515c9db154ff GIT binary patch literal 8635 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 literal 0 HcmV?d00001 diff --git a/docs/_build/html/.buildinfo b/docs/_build/html/.buildinfo new file mode 100644 index 0000000..c90e1b6 --- /dev/null +++ b/docs/_build/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 2a75a45d433fb5976fd27b29f070cc9c +tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/docs/_build/html/_sources/_themes/README.txt b/docs/_build/html/_sources/_themes/README.txt new file mode 100644 index 0000000..8648482 --- /dev/null +++ b/docs/_build/html/_sources/_themes/README.txt @@ -0,0 +1,25 @@ +krTheme Sphinx Style +==================== + +This repository contains sphinx styles Kenneth Reitz uses in most of +his projects. It is a drivative of Mitsuhiko's themes for Flask and Flask related +projects. To use this style in your Sphinx documentation, follow +this guide: + +1. put this folder as _themes into your docs folder. Alternatively + you can also use git submodules to check out the contents there. + +2. add this to your conf.py: :: + + sys.path.append(os.path.abspath('_themes')) + html_theme_path = ['_themes'] + html_theme = 'flask' + +The following themes exist: + +**kr** + the standard flask documentation theme for large projects + +**kr_small** + small one-page theme. Intended to be used by very small addon libraries. + diff --git a/docs/_build/html/_sources/index.txt b/docs/_build/html/_sources/index.txt new file mode 100644 index 0000000..7eef662 --- /dev/null +++ b/docs/_build/html/_sources/index.txt @@ -0,0 +1,11 @@ +.. osxpython documentation master file, created by + sphinx-quickstart on Wed Aug 4 22:51:11 2010. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to OSXPython.org +===================================== + +Welcome to OSXPython.org. This site exists to provide both novice and expert Python developers using OS X a best-practice handbook to the installation, configuration, and usage of Python on a daily basis. + +.. include:: contents.rst.inc \ No newline at end of file diff --git a/docs/_build/html/_sources/installation.txt b/docs/_build/html/_sources/installation.txt new file mode 100644 index 0000000..2dd06ae --- /dev/null +++ b/docs/_build/html/_sources/installation.txt @@ -0,0 +1,81 @@ +Properly Installing Python +========================== + +*Or, "Installing Python 2.7 via Homebrew".* + +One of the reasons everybody loves Python is the interactive shell. It +basically allows you to execute Python commands in real time and +immediately get results back. Flask itself does not come with an +interactive shell, because it does not require any specific setup upfront, +just import your application and start playing around. + + + + +Package Manager +::::::::::::::: + +While Snow Leopard comes with a large number of UNIX utilities, those +familiar with Linux systems will notice one key component missing: a +package manager. Mxcl's *Homebrew* is the answer. + +To install Homebrew, simply run: :: + + $ ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)" + + +It's basic commands are **update**, **install**, and **remove**. + +.. man brew + + + +Python Interpreter +:::::::::::::::::: + +And we can now install Python 2.7: :: + + $ sudo brew install python --framework + + +The ``--framework`` option tells Homebrew to compile a Framework-style Python build, rather than a UNIX-style build. The outdated version of Python that Snow Leopard comes packaged with +is built as a Framework, so this helps avoid some future module installation +bugs. + +*Don't forget to update your environment PATH.* :: + + $ echo 'EXPORT PATH=/usr/local/Cellar/python2.7/bin:$PATH' >> .profile + +Distribute & Pip +:::::::::::::::: + +*Distribute* is a fantastic drop-in replacement for *easy_install* and +*setuptools*. It allows you to install and manage python packages from +pypi.python.org, amongst a few other sources. It also plays well with +*virtualenv* and user-enviornments. + +**easy_install** is considered by many to be a deprecated system, so we +will install it's replacement: **pip**. Pip allows for uninstallation +of packages, and is actively maintained, unlike setuptool's easy_install. + +To install *pip* and Distribute's *easy_install*: + +If you have homebrew: :: + + $ brew install pip + +...And, if you're a masochist: :: + + $ curl -O http://python-distribute.org/distribute_setup.py + $ python distribute_setup.py + + $ easy_install pip + + + +To install ``pip``: :: + + + +Hopefully you'll never have to use **easy_install** again. + diff --git a/docs/_build/html/_sources/shell.txt b/docs/_build/html/_sources/shell.txt new file mode 100644 index 0000000..470bcec --- /dev/null +++ b/docs/_build/html/_sources/shell.txt @@ -0,0 +1,110 @@ +Working with the Shell +====================== + +.. versionadded:: 0.3 + +One of the reasons everybody loves Python is the interactive shell. It +basically allows you to execute Python commands in real time and +immediately get results back. Flask itself does not come with an +interactive shell, because it does not require any specific setup upfront, +just import your application and start playing around. + +There are however some handy helpers to make playing around in the shell a +more pleasant experience. The main issue with interactive console +sessions is that you're not triggering a request like a browser does which +means that :data:`~flask.g`, :data:`~flask.request` and others are not +available. But the code you want to test might depend on them, so what +can you do? + +This is where some helper functions come in handy. Keep in mind however +that these functions are not only there for interactive shell usage, but +also for unittesting and other situations that require a faked request +context. + +Diving into Context Locals +-------------------------- + +Say you have a utility function that returns the URL the user should be +redirected to. Imagine it would always redirect to the URL's ``next`` +parameter or the HTTP referrer or the index page:: + + from flask import request, url_for + + def redirect_url(): + return request.args.get('next') or \ + request.referrer or \ + url_for('index') + +As you can see, it accesses the request object. If you try to run this +from a plain Python shell, this is the exception you will see: + +>>> redirect_url() +Traceback (most recent call last): + File "", line 1, in +AttributeError: 'NoneType' object has no attribute 'request' + +That makes a lot of sense because we currently do not have a request we +could access. So we have to make a request and bind it to the current +context. The :attr:`~flask.Flask.test_request_context` method can create +us a request context: + +>>> ctx = app.test_request_context('/?next=http://example.com/') + +This context can be used in two ways. Either with the `with` statement +(which unfortunately is not very handy for shell sessions). The +alternative way is to call the `push` and `pop` methods: + +>>> ctx.push() + +From that point onwards you can work with the request object: + +>>> redirect_url() +u'http://example.com/' + +Until you call `pop`: + +>>> ctx.pop() +>>> redirect_url() +Traceback (most recent call last): + File "", line 1, in +AttributeError: 'NoneType' object has no attribute 'request' + + +Firing Before/After Request +--------------------------- + +By just creating a request context, you still don't have run the code that +is normally run before a request. This probably results in your database +being unavailable, the current user not being stored on the +:data:`~flask.g` object etc. + +This however can easily be done yourself. Just call +:meth:`~flask.Flask.preprocess_request`: + +>>> ctx = app.test_request_context() +>>> ctx.push() +>>> app.preprocess_request() + +Keep in mind that the :meth:`~flask.Flask.preprocess_request` function +might return a response object, in that case just ignore it. + +To shutdown a request, you need to trick a bit before the after request +functions (triggered by :meth:`~flask.Flask.process_response`) operate on +a response object: + +>>> app.process_response(app.response_class()) + +>>> ctx.pop() + + +Further Improving the Shell Experience +-------------------------------------- + +If you like the idea of experimenting in a shell, create yourself a module +with stuff you want to star import into your interactive session. There +you could also define some more helper methods for common things such as +initializing the database, dropping tables etc. + +Just put them into a module (like `shelltools` and import from there): + +>>> from shelltools import * diff --git a/docs/_build/html/_sources/useful-tools.txt b/docs/_build/html/_sources/useful-tools.txt new file mode 100644 index 0000000..c1e098a --- /dev/null +++ b/docs/_build/html/_sources/useful-tools.txt @@ -0,0 +1,48 @@ +Useful Tools +================= + +*For Python 2.7.* + +One of the reasons everybody loves Python is the interactive shell. It +basically allows you to execute Python commands in real time and +immediately get results back. Flask itself does not come with an +interactive shell, because it does not require any specific setup upfront, +just import your application and start playing around. :: + + $ pip install bpython + +And we can now install Python 2.7: :: + + $ + + +The **--framework** option tells Python + +IPython +------------------------------- + +Say you have a utility function that returns the URL the user should be +redirected to. Imagine it would always redirect to the URL's ``next`` +parameter or the HTTP referrer or the index page:: + + $ curl -O http://python-distribute.org/distribute_setup.py + $ python distribute_setup.py + +As you can see, it accesses the request object. If you try to run this +from a plain Python shell, this is the exception you will see: :: + + $ easy_install pip + +Hopefully you'll never have to use **easy_install** again. + + + + +BPython +------- + +By just creating a request context, you still don't have run the code that +is normally run before a request. This probably results in your database +being unavailable, the current user not being stored on the +:data:`~flask.g` object etc. + diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css new file mode 100644 index 0000000..32630d5 --- /dev/null +++ b/docs/_build/html/_static/basic.css @@ -0,0 +1,528 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + clear: both; + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js new file mode 100644 index 0000000..8b9bd2c --- /dev/null +++ b/docs/_build/html/_static/doctools.js @@ -0,0 +1,247 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for all documentation. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('.sidebar .this-page-menu')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/docs/_build/html/_static/file.png b/docs/_build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/flasky.css b/docs/_build/html/_static/flasky.css new file mode 100644 index 0000000..b4c0e35 --- /dev/null +++ b/docs/_build/html/_static/flasky.css @@ -0,0 +1,387 @@ +/* + * flasky.css_t + * ~~~~~~~~~~~~ + * + * :copyright: Copyright 2010 by Armin Ronacher. Modifications by Kenneth Reitz. + * :license: Flask Design License, see LICENSE for details. + */ + + + + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro'; + font-size: 17px; + background-color: white; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + width: 940px; + margin: 30px auto 0 auto; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 220px; +} + +div.sphinxsidebar { + width: 220px; +} + +hr { + border: 1px solid #B1B4B6; +} + +div.body { + background-color: #ffffff; + color: #3E4349; + padding: 0 30px 0 30px; +} + +img.floatingflask { + padding: 0 0 10px 10px; + float: right; +} + +div.footer { + width: 940px; + margin: 20px auto 30px auto; + font-size: 14px; + color: #888; + text-align: right; +} + +div.footer a { + color: #888; +} + +div.related { + display: none; +} + +div.sphinxsidebar a { + color: #444; + text-decoration: none; + border-bottom: 1px dotted #999; +} + +div.sphinxsidebar a:hover { + border-bottom: 1px solid #999; +} + +div.sphinxsidebar { + font-size: 14px; + line-height: 1.5; +} + +div.sphinxsidebarwrapper { + padding: 18px 10px; +} + +div.sphinxsidebarwrapper p.logo { + padding: 0 0 20px 0; + margin: 0; + text-align: center; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: 'Garamond', 'Georgia', serif; + color: #444; + font-size: 24px; + font-weight: normal; + margin: 0 0 5px 0; + padding: 0; +} + +div.sphinxsidebar h4 { + font-size: 20px; +} + +div.sphinxsidebar h3 a { + color: #444; +} + +div.sphinxsidebar p.logo a, +div.sphinxsidebar h3 a, +div.sphinxsidebar p.logo a:hover, +div.sphinxsidebar h3 a:hover { + border: none; +} + +div.sphinxsidebar p { + color: #555; + margin: 10px 0; +} + +div.sphinxsidebar ul { + margin: 10px 0; + padding: 0; + color: #000; +} + +div.sphinxsidebar input { + border: 1px solid #ccc; + font-family: 'Georgia', serif; + font-size: 1em; +} + +/* -- body styles ----------------------------------------------------------- */ + +a { + color: #004B6B; + text-decoration: underline; +} + +a:hover { + color: #6D4100; + text-decoration: underline; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Garamond', 'Georgia', serif; + font-weight: normal; + margin: 30px 0px 10px 0px; + padding: 0; +} + +div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } +div.body h2 { font-size: 180%; } +div.body h3 { font-size: 150%; } +div.body h4 { font-size: 130%; } +div.body h5 { font-size: 100%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #ddd; + padding: 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + color: #444; + background: #eaeaea; +} + +div.body p, div.body dd, div.body li { + line-height: 1.4em; +} + +div.admonition { + background: #fafafa; + margin: 20px -30px; + padding: 10px 30px; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; +} + +div.admonition tt.xref, div.admonition a tt { + border-bottom: 1px solid #fafafa; +} + +dd div.admonition { + margin-left: -60px; + padding-left: 60px; +} + +div.admonition p.admonition-title { + font-family: 'Garamond', 'Georgia', serif; + font-weight: normal; + font-size: 24px; + margin: 0 0 10px 0; + padding: 0; + line-height: 1; +} + +div.admonition p.last { + margin-bottom: 0; +} + +div.highlight { + background-color: white; +} + +dt:target, .highlight { + background: #FAF3E8; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre, tt { + font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; + font-size: 0.9em; +} + +img.screenshot { +} + +tt.descname, tt.descclassname { + font-size: 0.95em; +} + +tt.descname { + padding-right: 0.08em; +} + +img.screenshot { + -moz-box-shadow: 2px 2px 4px #eee; + -webkit-box-shadow: 2px 2px 4px #eee; + box-shadow: 2px 2px 4px #eee; +} + +table.docutils { + border: 1px solid #888; + -moz-box-shadow: 2px 2px 4px #eee; + -webkit-box-shadow: 2px 2px 4px #eee; + box-shadow: 2px 2px 4px #eee; +} + +table.docutils td, table.docutils th { + border: 1px solid #888; + padding: 0.25em 0.7em; +} + +table.field-list, table.footnote { + border: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +table.footnote { + margin: 15px 0; + width: 100%; + border: 1px solid #eee; + background: #fdfdfd; + font-size: 0.9em; +} + +table.footnote + table.footnote { + margin-top: -15px; + border-top: none; +} + +table.field-list th { + padding: 0 0.8em 0 0; +} + +table.field-list td { + padding: 0; +} + +table.footnote td.label { + width: 0px; + padding: 0.3em 0 0.3em 0.5em; +} + +table.footnote td { + padding: 0.3em 0.5em; +} + +dl { + margin: 0; + padding: 0; +} + +dl dd { + margin-left: 30px; +} + +blockquote { + margin: 0 0 0 30px; + padding: 0; +} + +ul, ol { + margin: 10px 0 10px 30px; + padding: 0; +} + +pre { + background: #eee; + padding: 7px 30px; + margin: 15px -30px; + line-height: 1.3em; +} + +dl pre, blockquote pre, li pre { + margin-left: -60px; + padding-left: 60px; +} + +dl dl pre { + margin-left: -90px; + padding-left: 90px; +} + +tt { + background-color: #ecf0f3; + color: #222; + /* padding: 1px 2px; */ +} + +tt.xref, a tt { + background-color: #FBFBFB; + border-bottom: 1px solid white; +} + +a.reference { + text-decoration: none; + border-bottom: 1px dotted #004B6B; +} + +a.reference:hover { + border-bottom: 1px solid #6D4100; +} + +a.footnote-reference { + text-decoration: none; + font-size: 0.7em; + vertical-align: top; + border-bottom: 1px dotted #004B6B; +} + +a.footnote-reference:hover { + border-bottom: 1px solid #6D4100; +} + +a:hover tt { + background: #EEE; +} \ No newline at end of file diff --git a/docs/_build/html/_static/jquery.js b/docs/_build/html/_static/jquery.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/docs/_build/html/_static/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/docs/_build/html/_static/minus.png b/docs/_build/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/pygments.css b/docs/_build/html/_static/pygments.css new file mode 100644 index 0000000..1a14f2a --- /dev/null +++ b/docs/_build/html/_static/pygments.css @@ -0,0 +1,62 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #303030 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0040D0 } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/_build/html/_static/searchtools.js b/docs/_build/html/_static/searchtools.js new file mode 100644 index 0000000..dae92b5 --- /dev/null +++ b/docs/_build/html/_static/searchtools.js @@ -0,0 +1,518 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + +/** + * Porter Stemmer + */ +var PorterStemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('