]> review.fuel-infra Code Review - openstack-build/horizon-build.git/commitdiff
Build horizon 2015.1.0 (stable/kilo) 72/6472/13
authoriberezovskiy <iberezovskiy@mirantis.com>
Mon, 6 Apr 2015 10:17:40 +0000 (13:17 +0300)
committeriberezovskiy <iberezovskiy@mirantis.com>
Thu, 14 May 2015 16:43:27 +0000 (19:43 +0300)
  * add xstatic-magic-search and xstatic-angular-lrdragndrop
    to dependencies according to
    https://github.com/openstack/horizon/blob/master/requirements.txt
  * sync dependencies with global requirements
    https://github.com/openstack/horizon/blob/stable/kilo/requirements.txt
    https://github.com/openstack/requirements/blob/stable/kilo/global-requirements.txt
  * remove all debian patches, source files, templates and pictures
    related to ubuntu and juju
  * rewrite runtests.sh script

Change-Id: I62b956f39c2a85c415c92932ef3488ac9d0870ce

50 files changed:
debian/README.compression [deleted file]
debian/changelog [deleted file]
debian/compat [deleted file]
debian/openstack-dashboard-ubuntu-theme.dirs [deleted file]
debian/openstack-dashboard-ubuntu-theme.install [deleted file]
debian/openstack-dashboard-ubuntu-theme.links [deleted file]
debian/openstack-dashboard-ubuntu-theme.postinst [deleted file]
debian/openstack-dashboard-ubuntu-theme.postrm [deleted file]
debian/patches/add_juju_settings_panel.patch [deleted file]
debian/patches/fix-dashboard-django-wsgi.patch [deleted file]
debian/patches/fix-ubuntu-tests.patch [deleted file]
debian/patches/series [deleted file]
debian/patches/ubuntu_settings.patch [deleted file]
debian/pydist-overrides [deleted file]
debian/source/include-binaries [deleted file]
debian/theme/css/ubuntu.css [deleted file]
debian/theme/img/favicon-ubuntu.ico [deleted file]
debian/theme/img/juju.png [deleted file]
debian/theme/img/ubuntu.png [deleted file]
debian/theme/ubuntu_theme.py [deleted file]
debian/watch [deleted file]
tests/runtests.sh
trusty/debian/changelog [new file with mode: 0644]
trusty/debian/compat [new file with mode: 0644]
trusty/debian/control [moved from debian/control with 52% similarity]
trusty/debian/copyright [moved from debian/copyright with 100% similarity]
trusty/debian/openstack-dashboard.conf [moved from debian/openstack-dashboard.conf with 100% similarity]
trusty/debian/openstack-dashboard.dirs [moved from debian/openstack-dashboard.dirs with 100% similarity]
trusty/debian/openstack-dashboard.install [moved from debian/openstack-dashboard.install with 100% similarity]
trusty/debian/openstack-dashboard.links [moved from debian/openstack-dashboard.links with 100% similarity]
trusty/debian/openstack-dashboard.postinst [moved from debian/openstack-dashboard.postinst with 88% similarity]
trusty/debian/openstack-dashboard.postrm [moved from debian/openstack-dashboard.postrm with 100% similarity]
trusty/debian/openstack-dashboard.preinst [moved from debian/openstack-dashboard.preinst with 100% similarity]
trusty/debian/patches/embedded-xstatic.patch [new file with mode: 0644]
trusty/debian/patches/fix-dashboard-django-wsgi.patch [new file with mode: 0644]
trusty/debian/patches/fix-dashboard-manage.patch [moved from debian/patches/fix-dashboard-manage.patch with 100% similarity]
trusty/debian/patches/series [new file with mode: 0644]
trusty/debian/pydist-overrides [new file with mode: 0644]
trusty/debian/python-django-horizon.install [moved from debian/python-django-horizon.install with 100% similarity]
trusty/debian/python-django-horizon.lintian-overrides [moved from debian/python-django-horizon.lintian-overrides with 100% similarity]
trusty/debian/rules [moved from debian/rules with 72% similarity]
trusty/debian/source/format [moved from debian/source/format with 100% similarity]
trusty/debian/source/include-binaries [new file with mode: 0755]
trusty/debian/static/openstack-dashboard/css/6bd71a04f0c0.css [moved from debian/static/openstack-dashboard/css/6bd71a04f0c0.css with 100% similarity]
trusty/debian/static/openstack-dashboard/js/0272dc9e5c21.js [moved from debian/static/openstack-dashboard/js/0272dc9e5c21.js with 100% similarity]
trusty/debian/static/openstack-dashboard/js/b28ee7422312.js [moved from debian/static/openstack-dashboard/js/b28ee7422312.js with 100% similarity]
trusty/debian/static/openstack-dashboard/manifest.json [moved from debian/static/openstack-dashboard/manifest.json with 100% similarity]
trusty/debian/theme/img/dots.png [moved from debian/theme/img/dots.png with 100% similarity]
trusty/debian/theme/img/header_stripes.png [moved from debian/theme/img/header_stripes.png with 100% similarity]
trusty/debian/theme/templates/_stylesheets.html [moved from debian/theme/templates/_stylesheets.html with 73% similarity]

diff --git a/debian/README.compression b/debian/README.compression
deleted file mode 100644 (file)
index a74700f..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-Until this can be scripted and integrated into package build, updating the
-pre-compressed static CSS and JS requires a some manual steps:
-
-   sudo apt-get install python-lesscpy python-openstack-auth python-compressor
-   quilt pop top
-   ./debian/rules refresh-static-assets
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644 (file)
index bca6266..0000000
+++ /dev/null
@@ -1,715 +0,0 @@
-horizon (1:2014.2~b3-0ubuntu1) utopic; urgency=medium
-
-  * Update requirements
-
- -- Ivan Berezovskiy <iberezovskiy@mirantis.com> Tue, 23 Sep 2014 16:27:02 +0400
-
-horizon (1:2014.2~b2-0ubuntu1) utopic; urgency=medium
-
-  * New upstream release.
-  * debian/patches/ubuntu_settings.patch: Refresed
-  * debian/patches/fix-dashboard-manage.patch: Refreshed
-  * debian/patches/fix-dashboard-django-wsgi.patch: Refreshed
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 25 Jul 2014 11:39:09 -0400
-
-horizon (1:2014.2~b1-0ubuntu1) utopic; urgency=medium
-
-  * New upstream release.
-  * debian/control: Open up juno release
-
- -- Chuck Short <zulcss@ubuntu.com>  Tue, 22 Apr 2014 11:23:26 -0400
-
-horizon (1:2014.1-0ubuntu1) trusty; urgency=medium
-
-  * New upstream release (LP: #1288245).
-
- -- James Page <james.page@ubuntu.com>  Thu, 17 Apr 2014 12:21:21 +0100
-
-horizon (1:2014.1~rc2-0ubuntu1) trusty; urgency=medium
-
-  * New upstream release candidate (LP: #1288245).
-    - d/static/*: Refreshed assets for new upstream release.
-
- -- Chuck Short <zulcss@ubuntu.com>  Wed, 09 Apr 2014 07:39:58 -0400
-
-horizon (1:2014.1~rc1-0ubuntu1) trusty; urgency=medium
-
-  * New upstream release candidate (LP: #1288245).
-    - d/static/*: Refreshed assets for new upstream release.
-  * d/theme/*: Refresh Ubuntu theme against Icehouse templates (LP: #1291653).
-
- -- James Page <james.page@ubuntu.com>  Mon, 31 Mar 2014 17:31:49 +0100
-
-horizon (1:2014.1~b3-0ubuntu2) trusty; urgency=medium
-
-  * Ensure correct URL is used for logout/timeout (LP: #1243187):
-    - d/p/ubuntu_settings.patch: Update LOGOUT_URL for /horizon prefix.
-  * Ensure Apache configuration is backwards compatible with Apache 2.2
-    (LP: #1292577):
-    - d/openstack-dashboard.conf: Revert changes from 1:2014.1~b2-0ubuntu2.
-
- -- James Page <james.page@ubuntu.com>  Fri, 14 Mar 2014 16:21:00 +0000
-
-horizon (1:2014.1~b3-0ubuntu1) trusty; urgency=medium
-
-  * New upstream milestone release.
-  * d/static/*: Refreshed assets for new upstream release.
-
- -- James Page <james.page@ubuntu.com>  Thu, 06 Mar 2014 16:53:28 +0000
-
-horizon (1:2014.1~b2-0ubuntu2) trusty; urgency=medium
-
-  * d/rules: Drop override of dh_auto_clean, not required. 
-  * d/rules,openstack-dashboard.install: Detect and use default python
-    version when creating symlink from openstack-dashboard -> horizon.
-  * d/*: Tidy surplus execute bits on numerous files.
-  * d/openstack-dashboard.conf: Update for Apache 2.4 stanza's.
-  * d/rules: Skip tests as they don't run and results where being ignored.
-  * d/control: python-django-openstack - update description, move to section
-    oldlibs for transitional packages.
-  * d/*: Wrap-and-sort.
-  * d/control: Drop BD on python-d2to1, merged into python-pbr.
-
- -- James Page <james.page@ubuntu.com>  Tue, 25 Feb 2014 14:34:33 +0000
-
-horizon (1:2014.1~b2-0ubuntu1) trusty; urgency=medium
-
-  [ Chuck Short ]
-  * New upstream release.
-  * debian/patches/fix-ubuntu-tests.patch: Dropped. 
-  * deban/patches/ubuntu-settings.patch: Refreshed
-
-  [ James Page ]
-  * debian/static: Refresh assets.
-
- -- James Page <james.page@ubuntu.com>  Fri, 24 Jan 2014 15:12:31 +0000
-
-horizon (1:2014.1~b1-0ubuntu1) trusty; urgency=low
-
-  * New upstream release.
-  * debian/control: open icehouse release.
-  * debian/static/openstack-dashboard: Refreshed static assets.
-
- -- Chuck Short <zulcss@ubuntu.com>  Thu, 05 Dec 2013 14:39:15 -0500
-
-horizon (1:2013.2-0ubuntu1) saucy; urgency=low
-
-  * New upstream release (LP: #1236462).
-
- -- Chuck Short <zulcss@ubuntu.com>  Thu, 17 Oct 2013 09:43:46 -0400
-
-horizon (1:2013.2~rc3-0ubuntu1) saucy; urgency=low
-
-  * New upstream release candidate (LP: #1240665).
-
- -- Chuck Short <zulcss@ubuntu.com>  Wed, 16 Oct 2013 20:10:52 -0400
-
-horizon (1:2013.2~rc2-0ubuntu1) saucy; urgency=low
-
-  * New upstream release candidate. (#1239156)
-  * debian/README.compression: Updated documenation on how to
-    refresh the static assets.
-
- -- Chuck Short <zulcss@ubuntu.com>  Tue, 15 Oct 2013 10:20:05 -0400
-
-horizon (1:2013.2~rc1-0ubuntu2) saucy; urgency=low
-
-  * d/theme/css/ubuntu.css: Refresh Ubuntu theme against new Havana
-    stylesheets, fixing network and chart layouts (LP: #1235249).
-  * d/openstack-dashboard.postinst: Allow horizon user to read and
-    write data in /var/lib/openstack-dashboard inline with user and
-    group permissions set in Apache configuration.
-
- -- James Page <james.page@ubuntu.com>  Fri, 04 Oct 2013 14:17:43 +0100
-
-horizon (1:2013.2~rc1-0ubuntu1) saucy; urgency=low
-
-  [ James Page ]
-  * New upstream release candidate:
-    - d/static: Refreshed static assets for 2013.2~rc1.
-    - d/patches: Refreshed patches.
-
-  [ Chuck Short ]
-  * debian/control: Add python-lesscpy as a suggests to optionally
-    support online compression of static assets (LP: #1226674).
-
- -- James Page <james.page@ubuntu.com>  Thu, 03 Oct 2013 13:48:12 +0100
-
-horizon (1:2013.2~b3-0ubuntu2) saucy; urgency=low
-
-  * Don't use /etc/openstack-dashboard for in-process generated data
-    (LP: #1233752):
-    - d/openstack-dashboard.{dirs,postinst}:
-      + Create /var/lib/openstack-dashboard with restricted permissions,
-        allowing www-data user to write a secret_key if need be.
-      + Move /etc/openstack-dashboard/secret_key to correct location if
-        it already exists.
-    - d/p/ubuntu_settings.patch: Use /var/lib/openstack-dashboard for
-      secret key storage instead of /etc/openstack-dashboard.
-
- -- James Page <james.page@ubuntu.com>  Wed, 02 Oct 2013 10:31:15 +0100
-
-horizon (1:2013.2~b3-0ubuntu1) saucy; urgency=low
-
-  * New upstream release.
-  * debian/control: Minimum python-openstack-auth version >= 1.1.1.
-  * debian/control: Add python-troveclient.
-  * debian/static: Refresh static assets for 2013.2~b3.
-  * debian/patches: ubuntu_local_settings.patch -> ubuntu_settings.patch, also
-    patch location of secret key in openstack_dashboard/settings.py
-
- -- Adam Gandelman <adamg@ubuntu.com>  Fri, 06 Sep 2013 11:59:43 -0700
-
-horizon (1:2013.2~b2-0ubuntu6) saucy; urgency=low
-
-  * debian/patches/ubuntu_local_settings.py: Set flexible
-    default for ALLOWED_HOSTS that should be changed for production
-    deployments (LP: #1214982).
-  * Fix (LP: #1216019):
-    - debian/openstack-dashboard.{postinst, postrm}: Add/remove horizon
-      user.  Ensure /etc/openstack-dashbard ownership.
-    - debian/openstack-dashboard.conf: Run WSGIDaemonProcess as user
-      horizon, set WSGIProcessGroup to horizon.
-    - debian/patches/ubuntu_local_settings.py: Generate and load secret
-      key from /etc/openstack-dashboard/secret_key.
-
- -- Adam Gandelman <adamg@ubuntu.com>  Fri, 06 Sep 2013 10:33:18 -0700
-
-horizon (1:2013.2~b2-0ubuntu5) saucy; urgency=low
-
-  * d/static/*: Refresh static assets for 2013.2~b2.
-  * d/rules: Tweak helper for refreshing static assets to link
-    local_settings.py correctly.
-  * d/openstack-dashboard.p*: Fix typo in configuration file name,
-    ensure consistent use of tabs/spaces.
-
- -- James Page <james.page@ubuntu.com>  Mon, 02 Sep 2013 16:43:56 +0100
-
-horizon (1:2013.2~b2-0ubuntu4) saucy; urgency=low
-
-  * Update for apache 2.4, preserve 2.2 compatability. (LP: #1218535)
-
- -- Adam Gandelman <adamg@ubuntu.com>  Fri, 30 Aug 2013 15:31:49 -0700
-
-horizon (1:2013.2~b2-0ubuntu3) saucy; urgency=low
-
-  * debian/rules: Don't remove egg information while cleaning.
-    (LP: #1210253)
-
- -- Chuck Short <zulcss@ubuntu.com>  Wed, 21 Aug 2013 10:08:35 -0400
-
-horizon (1:2013.2~b2-0ubuntu2) saucy; urgency=low
-
-  * debian/control: Fix typo in depends. 
-
- -- Chuck Short <zulcss@ubuntu.com>  Mon, 22 Jul 2013 14:36:30 -0400
-
-horizon (1:2013.2~b2-0ubuntu1) saucy; urgency=low
-
-  [ James Page ]
-  * d/control: Update VCS fields for new branch locations.
-  * Automate refresh of static assets:
-    - d/rules: Added refresh-static-assets helper target.
-    - d/README.compression: Updated for new process.
-  * d/static/*: Refreshed static assets.
-
-  [ Chuck Short ]
-  * New upstream release
-  * debian/control:
-    - Add python-ceilometerclient
-    - Add python-heatclient
-    - Renamed python-quantumclient to python-neturonclient.
-  * debian/curles: Removed instances of quantum since its cruft 
-    that we dont need anymore.
-
- -- Chuck Short <zulcss@ubuntu.com>  Mon, 22 Jul 2013 11:45:28 -0400
-
-horizon (1:2013.2~b1-0ubuntu1) saucy; urgency=low
-
-  * New upstream release. 
-  * debian/patches/ubuntu_local_settings.patch: Refreshed
-  * debian/control: Add python-pbr and python-d2to1.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 31 May 2013 08:59:58 -0500
-
-horizon (1:2013.1-0ubuntu3) raring; urgency=low
-
-  * Re-sync Ubuntu theme with upstream changes, fixing instance network
-    selection dialog and network topology screens (LP: #1157918).
-
- -- James Page <james.page@ubuntu.com>  Mon, 22 Apr 2013 14:09:04 +0100
-
-horizon (1:2013.1-0ubuntu2) raring; urgency=low
-
-  * Recompress static JS and CSS and generate new manifest.json for
-    offline compression. 
-
- -- Chuck Short <zulcss@ubuntu.com>  Wed, 10 Apr 2013 12:24:24 -0500
-
-horizon (1:2013.1-0ubuntu1) raring; urgency=low
-
-  * New upstream release.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 05 Apr 2013 14:20:44 -0500
-
-horizon (1:2013.1~rc2-0ubuntu1) raring; urgency=low
-
-  * New upstream release.
-
- -- Chuck Short <zulcss@ubuntu.com>  Tue, 02 Apr 2013 08:40:42 -0500
-
-horizon (1:2013.1~rc1-0ubuntu1) raring; urgency=low
-
-  [ James Page ]
-  * New upstream release candidate for Grizzly:
-    - Recompress static JS and CSS and generate new manifest.json for
-      offline compression.
-  * d/watch: Update uversionmangle to deal with upstream versioning
-    changes, remove tarballs.openstack.org.
-  * d/control: Version python-compressor >= 1.2 (LP: #1130610).
-
-  [ Adam Gandelman ]
-  * debian/patches/ubuntu_local_settings.py: Refresh, specify memcache
-    location as part of CACHES, as per upstream changes to example config.
-
- -- James Page <james.page@ubuntu.com>  Wed, 20 Mar 2013 11:20:17 +0000
-
-horizon (2013.1.g3-0ubuntu2) raring; urgency=low
-
-  * Recompress static JS and CSS and generate new manifest.json for offline
-    compression. 
-
- -- James Page <james.page@ubuntu.com>  Tue, 26 Feb 2013 07:35:51 +0000
-
-horizon (2013.1.g3-0ubuntu1) raring; urgency=low
-
-  [ James Page ]
-  * Recompress static JS and CSS and generate new manifest.json for offline
-    compression in preparation for Grizzly-3.
-
-  [ Chuck Short ]
-  * New usptream release.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 22 Feb 2013 09:43:22 -0600
-
-horizon (2013.1~g2-0ubuntu1) raring; urgency=low
-
-  [ Adam Gandelman ]
-  * Recompress static JS and CSS and generate new manifest.json for offline
-    compression in preparation for Grizzly-2.
-
-  [ Chuck Short ]
-  * New upstream release.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 11 Jan 2013 08:26:40 -0600
-
-horizon (2013.1~g1-0ubuntu1) raring; urgency=low
-
-  [ Adam Gandelman ]
-  * debian/patches/add_juju_settings_pannel.patch: Disable during
-    Grizzly dev. cycle.
-
-  [ Chuck Short ]
-  * New upstream relase.
-  * Refreshed patches.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 23 Nov 2012 08:49:14 -0600
-
-horizon (2012.2-0ubuntu2) quantal; urgency=low
-
-  * debian/control: Set strict version requirements between python-django-horizon,
-    openstack-dashboard, and openstack-ubuntu-theme. (LP: #1061961)
-  * debian/theme/css/ubuntu.css: Refreshed against Folsom. (LP: #1064420)
-  * debian/patches/add_juju_panel.patch: Update and refresh for Folsom
-    compatability. (LP: #1064605)
-  * debian/patches/allow_alternate_css.patch: Remove unapplied, obsolete
-    patch.
-
- -- Adam Gandelman <adamg@canonical.com>  Tue, 09 Oct 2012 09:59:55 -0700
-
-horizon (2012.2-0ubuntu1) quantal; urgency=low
-
-  * New upstream release.
-
- -- Chuck Short <zulcss@ubuntu.com>  Thu, 27 Sep 2012 11:56:26 -0500
-
-horizon (2012.2~rc2-0ubuntu1) quantal; urgency=low
-
-  [ Adam Gandelman ]
-  * Re-enable openstack-dashboard-ubuntu-theme.
-
-  [ Chuck Short ]
-  * New upstream release
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 21 Sep 2012 08:03:36 -0500
-
-horizon (2012.2~rc1-0ubuntu1) quantal; urgency=low
-
-  [ Adam Gandelman ]
-  * debian/patches/ubuntu_local_settings.patch: Squash all patches that
-    touch local_settings.py.example into one.
-  * Drop node-less dependency (LP: #1024326).
-      - debian/static/openstack-dashboard: Pre-compressed and compiled JS, CSS
-        and compressor manifest.json.
-      - debian/patches/ubuntu_local_settings.patch: Set COMPRESS_OFFLINE=True
-        to enable offline compression and pre-compressed static files by
-        default.
-
-  [ Chuck Short ]
-  * New upstream release
-
- -- Chuck Short <zulcss@ubuntu.com>  Wed, 12 Sep 2012 12:21:33 -0500
-
-horizon (2012.2~rc1~20120904.2043-0ubuntu1) quantal; urgency=low
-
-  [ Adam Gandelman ]
-  * debian/patches/fix-coverage-binary-name.patch: Drop, merge into
-    fix-ubuntu-tests.patch.
-  * debian/patches/set_login_redirects.patch: Configure login URLs in
-    local_settings.py according to the default apache configuration
-    installed. (LP: #1037349)
-  * debian/patches/fix-dashboard-manage.patch: Refresh.
-
-  [ Soren Hansen ]
-  * Update debian/watch to account for symbolically named tarballs and
-    use newer URL.
-  * Fix Launchpad URLs in debian/watch.
-
-  [ Chuck Short ]
-  * New upstream version
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 07 Sep 2012 12:35:36 -0500
-
-horizon (2012.2~f3-0ubuntu2) quantal; urgency=low
-
-  * Depend on python-openstack-auth rather than on the removed
-    python-django-openstack-auth.
-
- -- Colin Watson <cjwatson@ubuntu.com>  Wed, 22 Aug 2012 10:34:11 +0100
-
-horizon (2012.2~f3-0ubuntu1) quantal; urgency=low
-
-  [ Chuck Short ]
-  * New upstream release.
-  * debian/patches/fix-ubuntu-tests.patch: Fix test suites again to
-    run during the builds.
-  * debian/watch: Update.
-  * debian/control: Add python-glanceclient. (LP: #1030911)
-  * debian/openstack-dashboard.conf: Don't hijack apache's webroot. (LP:
-    #1020313)
-  * debian/control: Update horizon deps to reflect reality.
-
-  [ Adam Gandelman ]
-  * debian/control: Bump required python-django version to 1.4.
-  * wrap-and-sort.
-  * Fix (LP: #1036571):
-      - debian/rules, openstack-dashboard.{links, dirs, postinst}: Add required
-        symlinks and directories to allow Horizon to function with the packaged
-        lessc.
-      - debian/control: Add python-{cinder, swift, quantum}client,
-        python-django-openstack-auth, python-netaddr, python-compressor, lessc.
-  * debian/rules: Improve dh_auto_clean.
-
- -- Chuck Short <zulcss@ubuntu.com>  Thu, 16 Aug 2012 14:01:33 -0500
-
-horizon (2012.2~f2-0ubuntu1) quantal; urgency=low
-
-  * New usptream version.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 06 Jul 2012 11:38:55 -0400
-
-horizon (2012.2~f2~20120622.1833-0ubuntu2) quantal; urgency=low
-
-  * debian/patches/{use-memcache.patch, turn-off-debug.patch}: Refresh.
-
- -- Adam Gandelman <adamg@canonical.com>  Tue, 03 Jul 2012 14:09:15 -0700
-
-horizon (2012.2~f2~20120622.1833-0ubuntu1) quantal; urgency=low
-
-  [ Chuck Short ]
-  * New upstream version.
-  * debian/copyright: Fix lintian warnings.
-
-  [ Adam Gandelman ]
-  * Disabled during Folsom dev cycle, to be refreshed against first Folsom RC:
-    - debian/patches/add_juju_settings_panel.patch
-    - debian/patches/allow_alternate_css.patch
-  * debian/patches/fix-coverage-binary-name.patch: Refreshed.
-  * debian/patches/turn-off-debug.patch: Refreshed.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 22 Jun 2012 11:31:06 -0400
-
-horizon (2012.2~f2~20120530.1777-0ubuntu1) quantal; urgency=low
-
-  * New upstream release.
-  * debian/patches/add_juju_settings_panel.patch: Refreshed
-  * debian/patches/turn-off-debug.patch: Refreshed
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 01 Jun 2012 10:57:56 -0400
-
-horizon (2012.2~f1-0ubuntu1) quantal; urgency=low
-
-  * New usptream release.
-  * Prepare for quantal:
-    - debian/patches/fix-coverage-binary-name.patch: Refreshed.
-  * Temporarily pass the testsuite.
-
- -- Chuck Short <zulcss@ubuntu.com>  Thu, 24 May 2012 14:33:20 -0400
-
-horizon (2012.1-0ubuntu8) precise-proposed; urgency=low
-
-  * debian/control: Added memcached as a Recommends of python-django-horizon,
-    to ensure a memcached is running and can be used via default install.
-    - LP: #988435
-
- -- Dave Walker (Daviey) <DaveWalker@ubuntu.com>  Wed, 25 Apr 2012 18:30:00 +0100
-
-horizon (2012.1-0ubuntu7) precise; urgency=low
-
-  * debian/patches/use-memcache.patch: Use memcache for session engine by
-    default to avoid frequent logouts, as sessions are not shared across
-    workers. LP: #968850
-
- -- Dave Walker (Daviey) <DaveWalker@ubuntu.com>  Wed, 25 Apr 2012 10:55:18 +0100
-
-horizon (2012.1-0ubuntu6) precise; urgency=low
-
-  [ Adam Gandelman ]
-  * debian/openstack-dashboard.links: Create symlink to horizon's static js
-    files. (LP: #987535)
-
-  [ Jamie Strandboge ]
-  * debian/control: don't Build-Depends on python-cherrypy3. It is used by
-    only the dashboard tests and they are disabled in Ubuntu builds
-
- -- Adam Gandelman <adamg@canonical.com>  Tue, 24 Apr 2012 10:43:12 -0700
-
-horizon (2012.1-0ubuntu5) precise; urgency=low
-
-  [ Adam Gandelman ]
-  * debian/patches/turn-off-debug.patch: Enable again
-  * debian/openstack-dashboard.conf: Add an Alias mapping '/static'
-    to '/usr/share/opensack-dashboard/openstack_dashboard/static/'
-    (LP: #980787)
-  * debian/patches/allow_alternate_css.patch: Allow loading of ubuntu.css
-    and favicon if they exists
-  * debian/control: Drop libjs-jquery dependencies
-
-  [ Dave Walker (Daviey) ]
-  * debian/control: Drop duplicate depends python-cloudfiles.
-
- -- Dave Walker (Daviey) <DaveWalker@ubuntu.com>  Mon, 23 Apr 2012 10:04:39 +0100
-
-horizon (2012.1-0ubuntu4) precise; urgency=low
-
-  *  debian/patches/turn-off-debug.patch; Reverted, breaks CSS templates.
-     (LP: #980787)
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 13 Apr 2012 09:58:54 -0400
-
-horizon (2012.1-0ubuntu3) precise; urgency=low
-
-  [ Adam Gandelman ]
-  * debian/patches/add_juju_settings_panel.patch, debian/rules,
-    debian/juju.png: Add an Ubuntu-specific panel to easily generate
-    Juju environments.yaml
-
-  [ Chuck Short ]
-  * debian/patches/turn-off-debug.patch: Turn off debugging.
-
- -- Chuck Short <zulcss@ubuntu.com>  Thu, 12 Apr 2012 12:42:04 -0400
-
-horizon (2012.1-0ubuntu2) precise; urgency=low
-
-  * Make openstack-dashboard Pre-Depends: dpkg (>= 1.15.7.2) for
-    dpkg-maintscript-helper.
-
- -- Colin Watson <cjwatson@ubuntu.com>  Tue, 10 Apr 2012 17:58:25 +0100
-
-horizon (2012.1-0ubuntu1) precise; urgency=low
-
-  * New upstream release.
-  * debian/patches/turn-off-debug.patch: Turn off debugging.
-
- -- Chuck Short <zulcss@ubuntu.com>  Thu, 12 Apr 2012 10:46:00 -0400
-
-horizon (2012.1~rc2-0ubuntu1) precise; urgency=low
-
-  [ Chuck Short ]
-  * New usptream release.
-  * debian/control: Use python-cherrypy3
-  * debian/rules: Update pythonpath in order to run tests.
-  * debian/patches/fix-coverage-binary-name.patch: Make the testsuite
-    run.
-  * debian/rules: Fail build if tests fail.
-
-  [ A Gandelman ]
-  * debian/control: Add python-memcache
-  * debain/dashboard.conf: Update to match current upstream documentation
-    (LP: #966069)
-
-  [ Adrien Cunin ]
-  * Renamed Apache config file from dashboard.conf to openstack-dashboard.conf
-    (LP: #965410)
-    - Updated post{inst,rm} and added preinst to handle correctly the rename
-
- -- Chuck Short <zulcss@ubuntu.com>  Wed, 04 Apr 2012 07:21:15 -0400
-
-horizon (2012.1~rc1-0ubuntu1) precise; urgency=low
-
-  * New upstream release.
-
- -- Chuck Short <zulcss@ubuntu.com>  Tue, 20 Mar 2012 14:49:24 -0400
-
-horizon (2012.1~rc1~20120315.1545-0ubuntu1) precise; urgency=low
-
-  [Adam Gandelman]
-  * New upstream release.
-
-  [Chuck Short]
-  * debian/control: Update run-time depends
-
- -- Adam Gandelman <adamg@canonical.com>  Fri, 16 Mar 2012 12:29:27 -0700
-
-horizon (2012.1~rc1~20120308.1479-0ubuntu1) precise; urgency=low
-
-  * New upstream version.
-  * debian/rules: Fix symlink when installing horizon.
-    (LP: #947118)
-  * debian/control: Add python-django-nose as a dep. (LP: #944235)
-  * debian/control: Fix broken depends.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 09 Mar 2012 11:50:22 -0500
-
-horizon (2012.1~e4-0ubuntu1) precise; urgency=low
-
-  * New upstream version.
-  * debian/rules: Update due to upstream build changes.
-  * debian/control: Update standards-version.
-  * debian/patches/openstack-config-settings.patch: Dropped
-  * debian/patches/fix-dashboard-django-wsgi.patch: Refreshed
-  * debian/patches/fix-dashboard-manage.patch: Refreshed
-  * debian/openstack-dashboard.install: Update due to upstream build changes.
-  * debian/dashboard: Update to upstream build changes.
-  * debian/pydist-overrides: Dont try to install python-django-nose-selenium.
-  * debian/openstack-dashboard.install: Add missing config files.
-  * debian/rules: Fix broken settings.py
-  * debian/patches/pkg-setup.patch: Copy missing templates, shameously
-    taken from debian
-  * debian/patches/fix-broken-tarbll.patch: Add missing files.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 02 Mar 2012 12:11:59 -0500
-
-horizon (2012.1~e4~20120224.1386-0ubuntu1) precise; urgency=low
-
-  * New upstream version.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 24 Feb 2012 10:49:27 -0500
-
-horizon (2012.1~e4~20120217.1354-0ubuntu1) precise; urgency=low
-
-  * debian/patches/openstack-config-settings.patch: Refreshed.
-  * debian/copyright: Updated copyright.
-  * debian/rules: Diable tests since it doesnt work without a
-    virtualenv.
-  * New upstream release.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 17 Feb 2012 10:12:25 -0500
-
-horizon (2012.1~e4~20120210.1331-0ubuntu1) precise; urgency=low
-
-  * New Upstream version
-  * debian/control:
-   - Add python-coverage as a build dependency.
-   - Add python-novaclient as a build dependency.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 10 Feb 2012 11:09:58 -0500
-
-horizon (2012.1~e4~20120202.1300-0ubuntu2) precise; urgency=low
-
-  * debian/control: Add python-keystoneclient as a build
-    dependency.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 03 Feb 2012 13:29:27 -0500
-
-horizon (2012.1~e4~20120202.1300-0ubuntu1) precise; urgency=low
-
-  * New upstream version.
-  * debian/control: Drop dependencies we dont need.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 03 Feb 2012 09:55:54 -0500
-
-horizon (2012.1~e3-0ubuntu1) precise; urgency=low
-
-  * New upstream version.
-  * debian/conffiles: Don't wipe out local_settings.py on upgrade.
-    (LP: #914257)
-
- -- Chuck Short <zulcss@ubuntu.com>  Thu, 26 Jan 2012 09:52:53 -0500
-
-horizon (2012.1~e3~20120120.1235-0ubuntu1) precise; urgency=low
-
-  * New upstream release.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 20 Jan 2012 14:51:21 -0500
-
-horizon (2012.1~e3~20120113.1213-0ubuntu1) precise; urgency=low
-
-  [Chuck Short]
-  * Removed python-django-horizon.postinst, let dh_python2 generate instead
-    since python-support is not a dependency.
-  * Dropped python-openstack-compute from debian/control.
-  * Clean up debian/control.
-  * Restart apache when installing the openstack dashboard.
-    (LP: #905527)
-  * Dropped python-coverage not needed.
-  * Added transitional package for people updating from oneiric.
-  * Rediffed patches.
-  * More linitian fixes.
-
-  [Robie Basak]
-  * debian/control: put python-django-horizon in Python section.
-  * debian/control: lintian fixes (LP: #899427):
-    - Put python-django-horizon in Python section
-    - Remove definite article from Description
-  * debian/copyright: fix dep5 syntax.
-  * debian/python-django-horizon.lintian-overrides: override for template shell
-    script.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 13 Jan 2012 10:59:49 +0100
-
-horizon (2012.1~e2-0ubuntu2) precise; urgency=low
-
-  * Rebuild to drop dependencies on python2.6.
-
- -- Matthias Klose <doko@ubuntu.com>  Mon, 02 Jan 2012 10:58:49 +0100
-
-horizon (2012.1~e2-0ubuntu1) precise; urgency=low
-
-  * New upstream release (LP: #904039)
-  * debian/control: Update build-depends.
-  * debian/watch: Fix to fetch from Launchpad ad well.
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 16 Dec 2011 16:34:56 -0500
-
-horizon (2012.1~e2~20111209.1104-0ubuntu1) precise; urgency=low
-
-  * New upstream release.
-  * Refreshed patches.
-  * debian/docs: Removed README
-
- -- Chuck Short <zulcss@ubuntu.com>  Fri, 09 Dec 2011 16:18:55 -0500
-
-horizon (2012.1~e1-0ubuntu~e2.20111201.1077.1) precise; urgency=low
-
-  [ Chuck Short ]
-  * Initial release.
-
-  [ Jamie Strandboge ]
-  * debian/patches/git-2012.1~e2~20111201.1077.patch: use 2012.1~e1 release
-    tarball and apply all git commits up to 2012.1~e2~20111201.1077. This
-    can be dropped in 2012.1~e2.
-  * rename python-djanog-horizon.postinst to python-django-horizon.postinst
-
- -- Jamie Strandboge <jamie@ubuntu.com>  Fri, 02 Dec 2011 16:21:52 -0600
diff --git a/debian/compat b/debian/compat
deleted file mode 100644 (file)
index 45a4fb7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-8
diff --git a/debian/openstack-dashboard-ubuntu-theme.dirs b/debian/openstack-dashboard-ubuntu-theme.dirs
deleted file mode 100644 (file)
index a2d44ff..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu
-/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/img
-/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/css
-/usr/share/openstack-dashboard-ubuntu-theme/templates
diff --git a/debian/openstack-dashboard-ubuntu-theme.install b/debian/openstack-dashboard-ubuntu-theme.install
deleted file mode 100644 (file)
index a4095e9..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-debian/theme/css/* /usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/css
-debian/theme/img/* /usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/img
-debian/theme/templates/* /usr/share/openstack-dashboard-ubuntu-theme/templates
-debian/theme/ubuntu_theme.py /etc/openstack-dashboard
diff --git a/debian/openstack-dashboard-ubuntu-theme.links b/debian/openstack-dashboard-ubuntu-theme.links
deleted file mode 100644 (file)
index 5685f42..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/etc/openstack-dashboard/ubuntu_theme.py /usr/share/openstack-dashboard/openstack_dashboard/local/ubuntu_theme.py
-/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu /usr/share/openstack-dashboard/openstack_dashboard/static/ubuntu
diff --git a/debian/openstack-dashboard-ubuntu-theme.postinst b/debian/openstack-dashboard-ubuntu-theme.postinst
deleted file mode 100644 (file)
index d0eb0c3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-set -e
-
-if [ "$1" = "configure" ]; then
-  if [ -x "`which invoke-rc.d 2>/dev/null`" -a -x "/etc/init.d/apache2" ] ; then
-    invoke-rc.d --quiet apache2 reload
-  fi
-fi
-
-#DEBHELPER#
diff --git a/debian/openstack-dashboard-ubuntu-theme.postrm b/debian/openstack-dashboard-ubuntu-theme.postrm
deleted file mode 100644 (file)
index 79115b4..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-set -e
-
-if [ -x "`which invoke-rc.d 2>/dev/null`" -a -x "/etc/init.d/apache2" ] ; then
-       invoke-rc.d --quiet apache2 reload
-fi
-
-#DEBHELPER#
diff --git a/debian/patches/add_juju_settings_panel.patch b/debian/patches/add_juju_settings_panel.patch
deleted file mode 100644 (file)
index 35ccd7e..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-Index: horizon-2012.2/horizon/dashboards/settings/dashboard.py
-===================================================================
---- horizon-2012.2.orig/horizon/dashboards/settings/dashboard.py       2012-10-09 11:54:50.986004892 -0700
-+++ horizon-2012.2/horizon/dashboards/settings/dashboard.py    2012-10-09 11:54:57.058004668 -0700
-@@ -16,6 +16,7 @@
- #    under the License.
- from django.utils.translation import ugettext_lazy as _
-+from django.conf import settings
- import horizon
-@@ -23,7 +24,15 @@
- class Settings(horizon.Dashboard):
-     name = _("Settings")
-     slug = "settings"
--    panels = ('user', 'project', 'ec2')
-+    try:
-+        juju_panel = getattr(settings, 'ENABLE_JUJU_PANEL')
-+        if juju_panel == True:
-+            panels = ('user', 'project', 'ec2', 'juju')
-+        else:
-+            panels = ('user', 'project', 'ec2')
-+    except AttributeError:
-+            panels = ('user', 'project', 'ec2')
-+
-     default_panel = 'user'
-     nav = False
-Index: horizon-2012.2/horizon/dashboards/settings/juju/forms.py
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ horizon-2012.2/horizon/dashboards/settings/juju/forms.py   2012-10-09 11:58:55.169995921 -0700
-@@ -0,0 +1,100 @@
-+# vim: tabstop=4 shiftwidth=4 softtabstop=4
-+
-+# Copyright 2012 Openstack, LLC
-+# Copyright 2012 Canonical Ltd.
-+#
-+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-+#    not use this file except in compliance with the License. You may obtain
-+#    a copy of the License at
-+#
-+#         http://www.apache.org/licenses/LICENSE-2.0
-+#
-+#    Unless required by applicable law or agreed to in writing, software
-+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-+#    License for the specific language governing permissions and limitations
-+#    under the License.
-+
-+import logging
-+import tempfile
-+import zipfile
-+from contextlib import closing
-+
-+from django import http, shortcuts
-+from django.template.loader import render_to_string
-+from django.utils.translation import ugettext_lazy as _
-+
-+from horizon import api
-+from horizon import exceptions
-+from horizon import forms
-+from horizon import messages
-+
-+import boto
-+import uuid
-+
-+LOG = logging.getLogger(__name__)
-+
-+
-+class DownloadJujuEnvironment(forms.SelfHandlingForm):
-+    # This is heavily based off the ec2 credentials form
-+    tenant = forms.ChoiceField(label=_("Select a Project"))
-+    @classmethod
-+    def _instantiate(cls, request, *args, **kwargs):
-+        return cls(request, *args, **kwargs)
-+
-+    def __init__(self, request, *args, **kwargs):
-+        super(DownloadJujuEnvironment, self).__init__(request, *args, **kwargs)
-+        tenant_choices = []
-+        try:
-+            tenant_list = api.keystone.tenant_list(request)
-+        except:
-+            tenant_list = []
-+            exceptions.handle(request, _("Unable to retrieve tenant list."))
-+
-+        for tenant in tenant_list:
-+            if tenant.enabled:
-+                tenant_choices.append((tenant.id, tenant.name))
-+        if not tenant_choices:
-+            self.fields['tenant'].choices = ('', 'No Available Tenants')
-+        else:
-+            self.fields['tenant'].choices = tenant_choices
-+
-+    def handle(self, request, data):
-+        def find_or_create_access_keys(request, tenant_id):
-+            keys = api.keystone.list_ec2_credentials(request, request.user.id)
-+            if keys:
-+                return keys[0]
-+            else:
-+                return api.keystone.create_ec2_credentials(request,
-+                                                           request.user.id,
-+                                                           tenant_id)
-+        try:
-+            api.keystone.token_create_scoped(request,
-+                                             data.get('tenant'),
-+                                             request.user.token.id)
-+            keys = find_or_create_access_keys(request, data.get('tenant'))
-+            tenant_id = data['tenant']
-+            tenant_name = dict(self.fields['tenant'].choices)[tenant_id]
-+            control_bucket = "juju-openstack-%s-%s" % (tenant_name, str(uuid.uuid4())[19:])
-+            context = {'ec2_access_key': keys.access,
-+                       'ec2_secret_key': keys.secret,
-+                       'ec2_url': api.url_for(request, 'ec2'),
-+                       's3_url': api.url_for(request, 's3'),
-+                       'juju_admin_secret': uuid.uuid4().hex,
-+                       'control_bucket': control_bucket
-+                      }
-+        except Exception, e:
-+            # This will fail if there is not an S3 endpoint configured in the
-+            # service catalog.
-+            msg = "Could not generate Juju environment config: %s" % e
-+            messages.error(request, msg)
-+            redirect = request.build_absolute_uri()
-+            raise exceptions.Http302(redirect)
-+
-+        response = shortcuts.render(request,
-+                                    'settings/juju/environments.yaml.template',
-+                                    context,
-+                                    content_type='text/plain')
-+        response['Content-Disposition'] = 'attachment; filename=environments.yaml'
-+        response['Content-Length'] = str(len(response.content))
-+        return response
-Index: horizon-2012.2/horizon/dashboards/settings/juju/__init__.py
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ horizon-2012.2/horizon/dashboards/settings/juju/__init__.py        2012-10-09 11:54:57.058004668 -0700
-@@ -0,0 +1 @@
-+# Horizon Juju settings panel
-Index: horizon-2012.2/horizon/dashboards/settings/juju/panel.py
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ horizon-2012.2/horizon/dashboards/settings/juju/panel.py   2012-10-09 11:54:57.058004668 -0700
-@@ -0,0 +1,28 @@
-+# vim: tabstop=4 shiftwidth=4 softtabstop=4
-+# Copyright 2012 Openstack, LLC
-+# Copyright 2012 Canonical Ltd.
-+#
-+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-+#    not use this file except in compliance with the License. You may obtain
-+#    a copy of the License at
-+#
-+#         http://www.apache.org/licenses/LICENSE-2.0
-+#
-+#    Unless required by applicable law or agreed to in writing, software
-+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-+#    License for the specific language governing permissions and limitations
-+#    under the License.
-+
-+from django.utils.translation import ugettext_lazy as _
-+
-+import horizon
-+from horizon.dashboards.settings import dashboard
-+
-+
-+class JujuPanel(horizon.Panel):
-+    name = _("Juju Environment Config")
-+    slug = 'juju'
-+
-+
-+dashboard.Settings.register(JujuPanel)
-Index: horizon-2012.2/horizon/dashboards/settings/juju/urls.py
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ horizon-2012.2/horizon/dashboards/settings/juju/urls.py    2012-10-09 11:54:57.058004668 -0700
-@@ -0,0 +1,24 @@
-+# vim: tabstop=4 shiftwidth=4 softtabstop=4
-+
-+# Copyright 2012 Openstack, LLC
-+# Copyright 2012 Canonical Ltd.
-+#
-+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-+#    not use this file except in compliance with the License. You may obtain
-+#    a copy of the License at
-+#
-+#         http://www.apache.org/licenses/LICENSE-2.0
-+#
-+#    Unless required by applicable law or agreed to in writing, software
-+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-+#    License for the specific language governing permissions and limitations
-+#    under the License.
-+
-+from django.conf.urls.defaults import patterns, url
-+
-+from .views import IndexView
-+
-+urlpatterns = patterns('horizon.dashboards.settings.juju.views',
-+    url(r'^$', IndexView.as_view(), name='index'),
-+)
-Index: horizon-2012.2/horizon/dashboards/settings/juju/views.py
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ horizon-2012.2/horizon/dashboards/settings/juju/views.py   2012-10-09 11:57:05.949999981 -0700
-@@ -0,0 +1,35 @@
-+# vim: tabstop=4 shiftwidth=4 softtabstop=4
-+
-+# Copyright 2012 Openstack, LLC
-+#
-+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-+#    not use this file except in compliance with the License. You may obtain
-+#    a copy of the License at
-+#
-+#         http://www.apache.org/licenses/LICENSE-2.0
-+#
-+#    Unless required by applicable law or agreed to in writing, software
-+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-+#    License for the specific language governing permissions and limitations
-+#    under the License.
-+
-+import logging
-+
-+from django.core.urlresolvers import reverse_lazy
-+
-+from horizon import forms
-+from horizon.dashboards.settings.juju.forms import DownloadJujuEnvironment
-+
-+
-+LOG = logging.getLogger(__name__)
-+
-+
-+class IndexView(forms.ModalFormView):
-+    form_class = DownloadJujuEnvironment
-+    template_name = 'settings/juju/index.html'
-+    success_url = reverse_lazy('horizon:settings:juju')
-+
-+    def form_valid(self, form):
-+        return form.handle(self.request, form.cleaned_data)
-+
-Index: horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/download_form.html
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/download_form.html      2012-10-09 11:54:57.058004668 -0700
-@@ -0,0 +1,20 @@
-+{% extends "horizon/common/_modal_form.html" %}
-+{% load i18n %}
-+
-+
-+{% block modal-body %}
-+<div class="left">
-+    <fieldset>
-+    {% include "horizon/common/_form_fields.html" %}
-+    </fieldset>
-+</div>
-+<div class="right">
-+    <h3>{% trans "Description:" %}</h3>
-+    <p>{% trans 'Clicking "Download Juju Environment Config" will download a file which includes a Juju environment configured for your cloud.<br><center><img src='/static/dashboard/img/juju.png'></center><br>To find out more about Juju visit <a href='http://juju.ubuntu.com'>http://juju.ubuntu.com</a>' %}</p>
-+</div>
-+{% endblock %}
-+
-+{% block modal-footer %}
-+    <input class="btn btn-primary pull-right" type="submit" value="{% trans "Download Juju Environment Config" %}" />
-+    {% if hide %}<a href="{% url horizon:settings:juju:index %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>{% endif %}
-+{% endblock %}
-Index: horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/environments.yaml.template
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/environments.yaml.template      2012-10-09 11:54:57.058004668 -0700
-@@ -0,0 +1,21 @@
-+# To use Juju with your Openstack cloud:
-+#    1. Run: apt-get install juju
-+#    2. Copy this file to $HOME/.juju/environments.yaml
-+#    3. Modify the 'default-image-id' to match an Ubuntu cloud image
-+#       AMI that has been published to your cloud.
-+#    4. Run 'juju bootstrap' and deploy services!
-+#
-+# To find out more about juju visit http://juju.ubuntu.com
-+
-+juju: environments
-+environments:
-+  openstack:
-+    type: ec2
-+    control-bucket: {{ control_bucket }}
-+    admin-secret: {{ juju_admin_secret }}
-+    access-key: {{ ec2_access_key }}
-+    secret-key: {{ ec2_secret_key }}
-+    ec2-uri: {{ ec2_url }}
-+    s3-uri: {{ s3_url }}
-+    default-series: precise
-+    default-image-id: ami-00000001
-Index: horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/index.html
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/index.html      2012-10-09 11:54:57.058004668 -0700
-@@ -0,0 +1,11 @@
-+{% extends 'base.html' %}
-+{% load i18n %}
-+{% block title %}{% trans "Download Juju Environment Config" %}{% endblock %}
-+
-+{% block page_header %}
-+  {% include "horizon/common/_page_header.html" with title=_("Download Juju Environment Config") %}
-+{% endblock page_header %}
-+
-+{% block main %}
-+  {% include "settings/juju/download_form.html" %}
-+{% endblock %}
diff --git a/debian/patches/fix-dashboard-django-wsgi.patch b/debian/patches/fix-dashboard-django-wsgi.patch
deleted file mode 100644 (file)
index 3c629ab..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naurp horizon-2014.2.b2.orig/openstack_dashboard/wsgi/django.wsgi horizon-2014.2.b2/openstack_dashboard/wsgi/django.wsgi
---- horizon-2014.2.b2.orig/openstack_dashboard/wsgi/django.wsgi        2014-07-23 15:25:01.000000000 -0400
-+++ horizon-2014.2.b2/openstack_dashboard/wsgi/django.wsgi     2014-07-25 11:19:00.825608706 -0400
-@@ -9,6 +9,8 @@ sys.path.insert(0, os.path.join(os.path.
- os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings'
- sys.stdout = sys.stderr
-
-+sys.path.append("/usr/share/openstack-dashboard/")
-+
- DEBUG = False
-
- application = get_wsgi_application()
diff --git a/debian/patches/fix-ubuntu-tests.patch b/debian/patches/fix-ubuntu-tests.patch
deleted file mode 100644 (file)
index 585ff02..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
---- a/run_tests.sh
-+++ b/run_tests.sh
-@@ -298,25 +298,25 @@ function run_tests_all {
-   if [ "$NOSE_WITH_HTML_OUTPUT" = '1' ]; then
-     export NOSE_HTML_OUT_FILE='horizon_nose_results.html'
-   fi
--  ${command_wrapper} coverage erase
--  ${command_wrapper} coverage run -p $root/manage.py test horizon --settings=horizon.test.settings $testopts
-+  ${command_wrapper} python-coverage erase
-+  ${command_wrapper} python-coverage run -p $root/manage.py test horizon --settings=horizon.test.settings $testopts
-   # get results of the Horizon tests
-   HORIZON_RESULT=$?
--  echo "Running openstack_dashboard tests"
--  export NOSE_XUNIT_FILE=openstack_dashboard/nosetests.xml
--  if [ "$NOSE_WITH_HTML_OUTPUT" = '1' ]; then
--    export NOSE_HTML_OUT_FILE='dashboard_nose_results.html'
--  fi
--  ${command_wrapper} coverage run -p $root/manage.py test openstack_dashboard --settings=openstack_dashboard.test.settings $testopts
-+  #echo "Running openstack_dashboard tests"
-+  #export NOSE_XUNIT_FILE=openstack_dashboard/nosetests.xml
-+  #if [ "$NOSE_WITH_HTML_OUTPUT" = '1' ]; then
-+  #  export NOSE_HTML_OUT_FILE='dashboard_nose_results.html'
-+  #fi
-+  #${command_wrapper} coverage run -p $root/manage.py test openstack_dashboard --settings=openstack_dashboard.test.settings $testopts
-   # get results of the openstack_dashboard tests
--  DASHBOARD_RESULT=$?
-+  #DASHBOARD_RESULT=$?
-   if [ $with_coverage -eq 1 ]; then
-     echo "Generating coverage reports"
--    ${command_wrapper} coverage combine
--    ${command_wrapper} coverage xml -i --omit='/usr*,setup.py,*egg*,.venv/*'
--    ${command_wrapper} coverage html -i --omit='/usr*,setup.py,*egg*,.venv/*' -d reports
-+    ${command_wrapper} python-coverage combine
-+    ${command_wrapper} python-coverage xml -i --omit='/usr*,setup.py,*egg*,.venv/*'
-+    ${command_wrapper} python-coverage html -i --omit='/usr*,setup.py,*egg*,.venv/*' -d reports
-   fi
-   # Remove the leftover coverage files from the -p flag earlier.
-   rm -f .coverage.*
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644 (file)
index 42b36b8..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-fix-dashboard-django-wsgi.patch
-fix-dashboard-manage.patch
-
-# Disabled during Grizzly dev. cycle
-#add_juju_settings_panel.patch
-
-#fix-ubuntu-tests.patch
-ubuntu_settings.patch
diff --git a/debian/patches/ubuntu_settings.patch b/debian/patches/ubuntu_settings.patch
deleted file mode 100644 (file)
index 7095f4a..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -Naurp horizon-2014.2.b2.orig/openstack_dashboard/local/local_settings.py.example horizon-2014.2.b2/openstack_dashboard/local/local_settings.py.example
---- horizon-2014.2.b2.orig/openstack_dashboard/local/local_settings.py.example 2014-07-23 15:25:01.000000000 -0400
-+++ horizon-2014.2.b2/openstack_dashboard/local/local_settings.py.example      2014-07-25 11:22:46.361608816 -0400
-@@ -4,7 +4,7 @@ from django.utils.translation import uge
- from openstack_dashboard import exceptions
--DEBUG = True
-+DEBUG = False
- TEMPLATE_DEBUG = DEBUG
- # Required for Django 1.5.
-@@ -100,19 +100,19 @@ SECRET_KEY = secret_key.generate_or_read
- # We recommend you use memcached for development; otherwise after every reload
- # of the django development server, you will have to login again. To use
- # memcached set CACHES to something like
--# CACHES = {
-+CACHES = {
-+   'default': {
-+       'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
-+       'LOCATION': '127.0.0.1:11211',
-+   }
-+}
-+
-+#CACHES = {
- #    'default': {
--#        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
--#        'LOCATION': '127.0.0.1:11211',
-+#        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
- #    }
- #}
--CACHES = {
--    'default': {
--        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
--    }
--}
--
- # Send email to the console by default
- EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
- # Or send them to /dev/null
-diff -Naurp horizon-2014.2.b2.orig/openstack_dashboard/settings.py horizon-2014.2.b2/openstack_dashboard/settings.py
---- horizon-2014.2.b2.orig/openstack_dashboard/settings.py     2014-07-23 15:25:01.000000000 -0400
-+++ horizon-2014.2.b2/openstack_dashboard/settings.py  2014-07-25 11:23:50.129608847 -0400
-@@ -272,8 +272,7 @@ if not SECRET_KEY:
-                                   'local')
-     from horizon.utils import secret_key
--    SECRET_KEY = secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH,
--                                                       '.secret_key_store'))
-+    SECRET_KEY = secret_key.generate_or_read_from_file('/var/lib/openstack-dashboard/secret_key')
- from openstack_dashboard import policy_backend
- POLICY_CHECK_FUNCTION = policy_backend.check
diff --git a/debian/pydist-overrides b/debian/pydist-overrides
deleted file mode 100644 (file)
index f8c9076..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-python_quantumclient
-django_nose_selenium 
diff --git a/debian/source/include-binaries b/debian/source/include-binaries
deleted file mode 100755 (executable)
index 4343feb..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-debian/theme/img/dots.png
-debian/theme/img/favicon-ubuntu.ico
-debian/theme/img/header_stripes.png
-debian/theme/img/juju.png
-debian/theme/img/ubuntu.png
diff --git a/debian/theme/css/ubuntu.css b/debian/theme/css/ubuntu.css
deleted file mode 100644 (file)
index 33ef88d..0000000
+++ /dev/null
@@ -1,6772 +0,0 @@
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-nav,
-section {
-  display: block;
-}
-audio, canvas, video {
-  display: inline-block;
-  *display: inline;
-  *zoom: 1;
-}
-audio:not([controls]) {
-  display: none;
-}
-html {
-  font-size: 100%;
-  -webkit-text-size-adjust: 100%;
-  -ms-text-size-adjust: 100%;
-}
-a:focus {
-  outline: thin dotted #333333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-a:hover, a:active {
-  outline: 0;
-}
-sub, sup {
-  position: relative;
-  font-size: 75%;
-  line-height: 0;
-  vertical-align: baseline;
-}
-sup {
-  top: -0.5em;
-}
-sub {
-  bottom: -0.25em;
-}
-img {
-  max-width: 100%;
-  height: auto;
-  border: 0;
-  -ms-interpolation-mode: bicubic;
-}
-button, input, select, textarea {
-  margin: 0;
-  font-size: 100%;
-  vertical-align: middle;
-}
-button, input {
-  *overflow: visible;
-  line-height: normal;
-}
-button::-moz-focus-inner, input::-moz-focus-inner {
-  padding: 0;
-  border: 0;
-}
-button, input[type="button"], input[type="reset"], input[type="submit"] {
-  cursor: pointer;
-  -webkit-appearance: button;
-}
-input[type="search"] {
-  -webkit-appearance: textfield;
-  -webkit-box-sizing: content-box;
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
-}
-input[type="search"]::-webkit-search-decoration,
-input[type="search"]::-webkit-search-cancel-button {
-  -webkit-appearance: none;
-}
-textarea {
-  overflow: auto;
-  vertical-align: top;
-}
-.clearfix {
-  *zoom: 1;
-}
-.clearfix:before, .clearfix:after {
-  display: table;
-  content: "";
-}
-.clearfix:after {
-  clear: both;
-}
-body {
-  background: #fff url(../img/dots.png);
-  margin: 0;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  line-height: 18px;
-  color: #333333;
-  background-color: #ffffff;
-}
-a {
-  color: #dd4814;
-  text-decoration: none;
-}
-a:hover {
-  color: #005580;
-  text-decoration: underline;
-}
-.row {
-  margin-left: -20px;
-  *zoom: 1;
-}
-.row:before, .row:after {
-  display: table;
-  content: "";
-}
-.row:after {
-  clear: both;
-}
-[class*="span"] {
-  float: left;
-  margin-left: 20px;
-}
-.span1 {
-  width: 60px;
-}
-.span2 {
-  width: 140px;
-}
-.span3 {
-  width: 220px;
-}
-.span4 {
-  width: 300px;
-}
-.span5 {
-  width: 380px;
-}
-.span6 {
-  width: 460px;
-}
-.span7 {
-  width: 540px;
-}
-.span8 {
-  width: 620px;
-}
-.span9 {
-  width: 700px;
-}
-.span10 {
-  width: 780px;
-}
-.span11 {
-  width: 860px;
-}
-.span12, .container {
-  width: 940px;
-}
-.offset1 {
-  margin-left: 100px;
-}
-.offset2 {
-  margin-left: 180px;
-}
-.offset3 {
-  margin-left: 260px;
-}
-.offset4 {
-  margin-left: 340px;
-}
-.offset5 {
-  margin-left: 420px;
-}
-.offset6 {
-  margin-left: 500px;
-}
-.offset7 {
-  margin-left: 580px;
-}
-.offset8 {
-  margin-left: 660px;
-}
-.offset9 {
-  margin-left: 740px;
-}
-.offset10 {
-  margin-left: 820px;
-}
-.offset11 {
-  margin-left: 900px;
-}
-.row-fluid {
-  width: 100%;
-  *zoom: 1;
-}
-.row-fluid:before, .row-fluid:after {
-  display: table;
-  content: "";
-}
-.row-fluid:after {
-  clear: both;
-}
-.row-fluid > [class*="span"] {
-  float: left;
-  margin-left: 2.127659574%;
-}
-.row-fluid > [class*="span"]:first-child {
-  margin-left: 0;
-}
-.row-fluid > .span1 {
-  width: 6.382978723%;
-}
-.row-fluid > .span2 {
-  width: 14.89361702%;
-}
-.row-fluid > .span3 {
-  width: 23.404255317%;
-}
-.row-fluid > .span4 {
-  width: 31.914893614%;
-}
-.row-fluid > .span5 {
-  width: 40.425531911%;
-}
-.row-fluid > .span6 {
-  width: 48.936170208%;
-}
-.row-fluid > .span7 {
-  width: 57.446808505%;
-}
-.row-fluid > .span8 {
-  width: 65.957446802%;
-}
-.row-fluid > .span9 {
-  width: 74.468085099%;
-}
-.row-fluid > .span10 {
-  width: 82.978723396%;
-}
-.row-fluid > .span11 {
-  width: 91.489361693%;
-}
-.row-fluid > .span12 {
-  width: 99.99999999%;
-}
-.container {
-  width: 940px;
-  margin-left: auto;
-  margin-right: auto;
-  *zoom: 1;
-}
-.container:before, .container:after {
-  display: table;
-  content: "";
-}
-.container:after {
-  clear: both;
-}
-.container-fluid {
-  padding-left: 20px;
-  padding-right: 20px;
-  *zoom: 1;
-}
-.container-fluid:before, .container-fluid:after {
-  display: table;
-  content: "";
-}
-.container-fluid:after {
-  clear: both;
-}
-p {
-  margin: 0 0 9px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  line-height: 18px;
-}
-p small {
-  font-size: 11px;
-  color: #999999;
-}
-.lead {
-  margin-bottom: 18px;
-  font-size: 20px;
-  font-weight: 200;
-  line-height: 27px;
-}
-h1, h2, h3, h4, h5, h6 {
-  margin: 0;
-  font-weight: bold;
-  color: #333333;
-  text-rendering: optimizelegibility;
-}
-h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
-  font-weight: normal;
-  color: #999999;
-}
-h1 {
-  font-size: 30px;
-  line-height: 36px;
-}
-h1 small {
-  font-size: 18px;
-}
-h2 {
-  font-size: 24px;
-  line-height: 36px;
-}
-h2 small {
-  font-size: 18px;
-}
-h3 {
-  line-height: 27px;
-  font-size: 18px;
-}
-h3 small {
-  font-size: 14px;
-}
-h4, h5, h6 {
-  line-height: 18px;
-}
-h4 {
-  font-size: 14px;
-}
-h4 small {
-  font-size: 12px;
-}
-h5 {
-  font-size: 12px;
-}
-h6 {
-  font-size: 11px;
-  color: #999999;
-  text-transform: uppercase;
-}
-.page-header {
-  padding-bottom: 17px;
-  margin: 18px 0;
-  border-bottom: 1px solid #eeeeee;
-}
-.page-header h1 {
-  line-height: 1;
-}
-ul, ol {
-  padding: 0;
-  margin: 0 0 9px 25px;
-}
-ul ul, ul ol, ol ol, ol ul {
-  margin-bottom: 0;
-}
-ul {
-  list-style: disc;
-}
-ol {
-  list-style: decimal;
-}
-li {
-  line-height: 18px;
-}
-ul.unstyled, ol.unstyled {
-  margin-left: 0;
-  list-style: none;
-}
-table ul {
-  margin: 0;
-  list-style-type: none;
-}
-dl {
-  margin-bottom: 18px;
-}
-dt, dd {
-  line-height: 18px;
-}
-dt {
-  font-weight: bold;
-}
-dd {
-  margin-left: 9px;
-}
-hr {
-  margin: 18px 0;
-  border: 0;
-  border-top: 1px solid #eeeeee;
-  border-bottom: 1px solid #ffffff;
-}
-strong {
-  font-weight: bold;
-}
-em {
-  font-style: italic;
-}
-.muted {
-  color: #999999;
-}
-abbr {
-  font-size: 90%;
-  text-transform: uppercase;
-  border-bottom: 1px dotted #dddddd;
-  cursor: help;
-}
-blockquote {
-  padding: 0 0 0 15px;
-  margin: 0 0 18px;
-  border-left: 5px solid #eeeeee;
-}
-blockquote p {
-  margin-bottom: 0;
-  font-size: 16px;
-  font-weight: 300;
-  line-height: 22.5px;
-}
-blockquote small {
-  display: block;
-  line-height: 18px;
-  color: #999999;
-}
-blockquote small:before {
-  content: '\2014 \00A0';
-}
-blockquote.pull-right {
-  float: right;
-  padding-left: 0;
-  padding-right: 15px;
-  border-left: 0;
-  border-right: 5px solid #eeeeee;
-}
-blockquote.pull-right p, blockquote.pull-right small {
-  text-align: right;
-}
-q:before, q:after, blockquote:before, blockquote:after {
-  content: "";
-}
-address {
-  display: block;
-  margin-bottom: 18px;
-  line-height: 18px;
-  font-style: normal;
-}
-small {
-  font-size: 100%;
-}
-cite {
-  font-style: normal;
-}
-code, pre {
-  padding: 0 3px 2px;
-  font-family: Menlo, Monaco, "Courier New", monospace;
-  font-size: 12px;
-  color: #333333;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-code {
-  padding: 3px 4px;
-  color: #dd1144;
-  background-color: #f7f7f9;
-  border: 1px solid #e1e1e8;
-}
-pre {
-  display: block;
-  padding: 8.5px;
-  margin: 0 0 9px;
-  font-size: 12px;
-  line-height: 18px;
-  background-color: #f5f5f5;
-  border: 1px solid #cccccc;
-  border: 1px solid rgba(0,0,0,.15);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  white-space: pre;
-  white-space: pre-wrap;
-  word-break: break-all;
-  word-wrap: break-word;
-}
-pre.prettyprint {
-  margin-bottom: 18px;
-}
-pre code {
-  padding: 0;
-  color: inherit;
-  background-color: transparent;
-  border: 0;
-}
-.pre-scrollable {
-  max-height: 340px;
-  overflow-y: scroll;
-}
-form {
-  margin: 0 0 18px;
-}
-fieldset {
-  padding: 0;
-  margin: 0;
-  border: 0;
-}
-legend {
-  display: block;
-  width: 100%;
-  padding: 0;
-  margin-bottom: 27px;
-  font-size: 19.5px;
-  line-height: 36px;
-  color: #333333;
-  border: 0;
-  border-bottom: 1px solid #eeeeee;
-}
-legend small {
-  font-size: 13.5px;
-  color: #999999;
-}
-label, input, button, select, textarea {
-  font-size: 13px;
-  font-weight: normal;
-  line-height: 18px;
-}
-input, button, select, textarea {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-}
-label {
-  display: block;
-  margin-bottom: 5px;
-  color: #333333;
-}
-input, textarea, select, .uneditable-input {
-  display: inline-block;
-  width: 210px;
-  height: 18px;
-  padding: 4px;
-  margin-bottom: 9px;
-  font-size: 13px;
-  line-height: 18px;
-  color: #555555;
-  border: 1px solid #cccccc;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-.uneditable-textarea {
-  width: auto;
-  height: auto;
-}
-label input, label textarea, label select {
-  display: block;
-}
-input[type="image"], input[type="checkbox"], input[type="radio"] {
-  width: auto;
-  height: auto;
-  padding: 0;
-  margin: 3px 0;
-  *margin-top: 0;
-  line-height: normal;
-  cursor: pointer;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-  border: 0 \9;
-}
-input[type="image"] {
-  border: 0;
-}
-input[type="file"] {
-  width: auto;
-  padding: initial;
-  line-height: initial;
-  border: initial;
-  background-color: #ffffff;
-  background-color: initial;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-input[type="button"], input[type="reset"], input[type="submit"] {
-  width: auto;
-  height: auto;
-}
-select, input[type="file"] {
-  height: 28px;
-  *margin-top: 4px;
-  line-height: 28px;
-}
-input[type="file"] {
-  line-height: 18px \9;
-}
-select {
-  width: 220px;
-  background-color: #ffffff;
-}
-select[multiple], select[size] {
-  height: auto;
-}
-input[type="image"] {
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-textarea {
-  height: auto;
-}
-input[type="hidden"] {
-  display: none;
-}
-.radio, .checkbox {
-  padding-left: 18px;
-}
-.radio input[type="radio"], .checkbox input[type="checkbox"] {
-  float: left;
-  margin-left: -18px;
-}
-.controls > .radio:first-child, .controls > .checkbox:first-child {
-  padding-top: 5px;
-}
-.radio.inline, .checkbox.inline {
-  display: inline-block;
-  padding-top: 5px;
-  margin-bottom: 0;
-  vertical-align: middle;
-}
-.radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline {
-  margin-left: 10px;
-}
-input, textarea {
-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-  -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-  box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-  -webkit-transition: border linear .2s, box-shadow linear .2s;
-  -moz-transition: border linear .2s, box-shadow linear .2s;
-  -ms-transition: border linear .2s, box-shadow linear .2s;
-  -o-transition: border linear .2s, box-shadow linear .2s;
-  transition: border linear .2s, box-shadow linear .2s;
-}
-input:focus, textarea:focus {
-  border-color: rgba(82,168,236,.8);
-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
-  -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
-  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
-  outline: 0;
-  outline: thin dotted \9;
-}
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus,
-select:focus {
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-  outline: thin dotted #333333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-.input-mini {
-  width: 60px;
-}
-.input-small {
-  width: 90px;
-}
-.input-medium {
-  width: 150px;
-}
-.input-large {
-  width: 210px;
-}
-.input-xlarge {
-  width: 270px;
-}
-.input-xxlarge {
-  width: 530px;
-}
-input[class*="span"],
-select[class*="span"],
-textarea[class*="span"],
-.uneditable-input {
-  float: none;
-  margin-left: 0;
-}
-input.span1, textarea.span1, .uneditable-input.span1 {
-  width: 50px;
-}
-input.span2, textarea.span2, .uneditable-input.span2 {
-  width: 130px;
-}
-input.span3, textarea.span3, .uneditable-input.span3 {
-  width: 210px;
-}
-input.span4, textarea.span4, .uneditable-input.span4 {
-  width: 290px;
-}
-input.span5, textarea.span5, .uneditable-input.span5 {
-  width: 370px;
-}
-input.span6, textarea.span6, .uneditable-input.span6 {
-  width: 450px;
-}
-input.span7, textarea.span7, .uneditable-input.span7 {
-  width: 530px;
-}
-input.span8, textarea.span8, .uneditable-input.span8 {
-  width: 610px;
-}
-input.span9, textarea.span9, .uneditable-input.span9 {
-  width: 690px;
-}
-input.span10, textarea.span10, .uneditable-input.span10 {
-  width: 770px;
-}
-input.span11, textarea.span11, .uneditable-input.span11 {
-  width: 850px;
-}
-input.span12, textarea.span12, .uneditable-input.span12 {
-  width: 930px;
-}
-input[disabled],
-select[disabled],
-textarea[disabled],
-input[readonly],
-select[readonly],
-textarea[readonly] {
-  background-color: #f5f5f5;
-  border-color: #dddddd;
-  cursor: not-allowed;
-}
-.control-group.warning > label,
-.control-group.warning .help-block,
-.control-group.warning .help-inline {
-  color: #333333;
-}
-.control-group.warning input,
-.control-group.warning select,
-.control-group.warning textarea {
-  color: #333333;
-  border-color: #c09853;
-}
-.control-group.warning input:focus,
-.control-group.warning select:focus,
-.control-group.warning textarea:focus {
-  border-color: #a47e3c;
-  -webkit-box-shadow: 0 0 6px #dbc59e;
-  -moz-box-shadow: 0 0 6px #dbc59e;
-  box-shadow: 0 0 6px #dbc59e;
-}
-.control-group.warning .input-prepend .add-on,
-.control-group.warning .input-append .add-on {
-  color: #333333;
-  background-color: #fcf8e3;
-  border-color: #333333;
-}
-.control-group.error > label,
-.control-group.error .help-block,
-.control-group.error .help-inline {
-  color: #333333;
-}
-.control-group.error input,
-.control-group.error select,
-.control-group.error textarea {
-  color: #333333;
-  border-color: #b94a48;
-}
-.control-group.error input:focus,
-.control-group.error select:focus,
-.control-group.error textarea:focus {
-  border-color: #953b39;
-  -webkit-box-shadow: 0 0 6px #d59392;
-  -moz-box-shadow: 0 0 6px #d59392;
-  box-shadow: 0 0 6px #d59392;
-}
-.control-group.error .input-prepend .add-on,
-.control-group.error .input-append .add-on {
-  color: #333333;
-  background-color: #f2dede;
-  border-color: #333333;
-}
-.control-group.success > label,
-.control-group.success .help-block,
-.control-group.success .help-inline {
-  color: #333333;
-}
-.control-group.success input,
-.control-group.success select,
-.control-group.success textarea {
-  color: #333333;
-  border-color: #468847;
-}
-.control-group.success input:focus,
-.control-group.success select:focus,
-.control-group.success textarea:focus {
-  border-color: #356635;
-  -webkit-box-shadow: 0 0 6px #7aba7b;
-  -moz-box-shadow: 0 0 6px #7aba7b;
-  box-shadow: 0 0 6px #7aba7b;
-}
-.control-group.success .input-prepend .add-on,
-.control-group.success .input-append .add-on {
-  color: #333333;
-  background-color: #dff0d8;
-  border-color: #333333;
-}
-input:focus:required:invalid,
-textarea:focus:required:invalid,
-select:focus:required:invalid {
-  color: #b94a48;
-  border-color: #ee5f5b;
-}
-input:focus:required:invalid:focus,
-textarea:focus:required:invalid:focus,
-select:focus:required:invalid:focus {
-  border-color: #e9322d;
-  -webkit-box-shadow: 0 0 6px #f8b9b7;
-  -moz-box-shadow: 0 0 6px #f8b9b7;
-  box-shadow: 0 0 6px #f8b9b7;
-}
-.form-actions {
-  padding: 17px 20px 18px;
-  margin-top: 18px;
-  margin-bottom: 18px;
-  background-color: #f5f5f5;
-  border-top: 1px solid #dddddd;
-}
-.uneditable-input {
-  display: block;
-  background-color: #ffffff;
-  border-color: #eeeeee;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.025);
-  -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.025);
-  box-shadow: inset 0 1px 2px rgba(0,0,0,.025);
-  cursor: not-allowed;
-}
-:-moz-placeholder {
-  color: #999999;
-}
-::-webkit-input-placeholder {
-  color: #999999;
-}
-.help-block {
-  display: block;
-  margin-top: 5px;
-  margin-bottom: 0;
-  color: #999999;
-}
-.help-inline {
-  display: inline-block;
-  *display: inline;
-  *zoom: 1;
-  margin-bottom: 9px;
-  vertical-align: middle;
-  padding-left: 5px;
-}
-.input-prepend, .input-append {
-  margin-bottom: 5px;
-  *zoom: 1;
-}
-.input-prepend:before,
-.input-prepend:after,
-.input-append:before,
-.input-append:after {
-  display: table;
-  content: "";
-}
-.input-prepend:after, .input-append:after {
-  clear: both;
-}
-.input-prepend input,
-.input-prepend .uneditable-input,
-.input-append input,
-.input-append .uneditable-input {
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
-}
-.input-prepend input:focus,
-.input-prepend .uneditable-input:focus,
-.input-append input:focus,
-.input-append .uneditable-input:focus {
-  position: relative;
-  z-index: 2;
-}
-.input-prepend .uneditable-input, .input-append .uneditable-input {
-  border-left-color: #cccccc;
-}
-.input-prepend .add-on, .input-append .add-on {
-  float: left;
-  display: block;
-  width: auto;
-  min-width: 16px;
-  height: 18px;
-  margin-right: -1px;
-  padding: 4px 5px;
-  font-weight: normal;
-  line-height: 18px;
-  color: #999999;
-  text-align: center;
-  text-shadow: 0 1px 0 #ffffff;
-  background-color: #f5f5f5;
-  border: 1px solid #cccccc;
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
-}
-.input-prepend .active, .input-append .active {
-  background-color: #a9dba9;
-  border-color: #46a546;
-}
-.input-prepend .add-on {
-  *margin-top: 1px;
-}
-.input-append input, .input-append .uneditable-input {
-  float: left;
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
-}
-.input-append .uneditable-input {
-  border-left-color: #eeeeee;
-  border-right-color: #cccccc;
-}
-.input-append .add-on {
-  margin-right: 0;
-  margin-left: -1px;
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
-}
-.input-append input:first-child {
-  *margin-left: -160px;
-}
-.input-append input:first-child + .add-on {
-  *margin-left: -21px;
-}
-.search-query {
-  padding-left: 14px;
-  padding-right: 14px;
-  margin-bottom: 0;
-  -webkit-border-radius: 14px;
-  -moz-border-radius: 14px;
-  border-radius: 14px;
-}
-.form-search input,
-.form-search textarea,
-.form-search select,
-.form-search .help-inline,
-.form-search .uneditable-input,
-.form-inline input,
-.form-inline textarea,
-.form-inline select,
-.form-inline .help-inline,
-.form-inline .uneditable-input,
-.form-horizontal input,
-.form-horizontal textarea,
-.form-horizontal select,
-.form-horizontal .help-inline,
-.form-horizontal .uneditable-input {
-  display: inline-block;
-  margin-bottom: 0;
-}
-.form-search .hide, .form-inline .hide, .form-horizontal .hide {
-  display: none;
-}
-.form-search label,
-.form-inline label,
-.form-search .input-append,
-.form-inline .input-append,
-.form-search .input-prepend,
-.form-inline .input-prepend {
-  display: inline-block;
-}
-.form-search .input-append .add-on,
-.form-inline .input-prepend .add-on,
-.form-search .input-append .add-on,
-.form-inline .input-prepend .add-on {
-  vertical-align: middle;
-}
-.form-search .radio,
-.form-inline .radio,
-.form-search .checkbox,
-.form-inline .checkbox {
-  margin-bottom: 0;
-  vertical-align: middle;
-}
-.control-group {
-  margin-bottom: 9px;
-}
-legend + .control-group {
-  margin-top: 18px;
-  -webkit-margin-top-collapse: separate;
-}
-.form-horizontal .control-group {
-  margin-bottom: 18px;
-  *zoom: 1;
-}
-.form-horizontal .control-group:before, .form-horizontal .control-group:after {
-  display: table;
-  content: "";
-}
-.form-horizontal .control-group:after {
-  clear: both;
-}
-.form-horizontal .control-label {
-  float: left;
-  width: 140px;
-  padding-top: 5px;
-  text-align: right;
-}
-.form-horizontal .controls {
-  margin-left: 160px;
-}
-.form-horizontal .form-actions {
-  padding-left: 160px;
-}
-table {
-  max-width: 100%;
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-.table {
-  width: 100%;
-  margin-bottom: 18px;
-}
-.table th, .table td {
-  padding: 8px;
-  line-height: 18px;
-  text-align: left;
-  vertical-align: top;
-  border-top: 1px solid #dddddd;
-}
-.table th {
-  font-weight: bold;
-}
-.table thead th {
-  vertical-align: bottom;
-}
-.table thead:first-child tr th, .table thead:first-child tr td {
-  border-top: 0;
-}
-.table tbody + tbody {
-  border-top: 2px solid #dddddd;
-}
-.table-condensed th, .table-condensed td {
-  padding: 4px 5px;
-}
-.table-bordered {
-  border: 1px solid #dddddd;
-  border-collapse: separate;
-  *border-collapse: collapsed;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.table-bordered th + th,
-.table-bordered td + td,
-.table-bordered th + td,
-.table-bordered td + th {
-  border-left: 1px solid #dddddd;
-}
-.table-bordered thead:first-child tr:first-child th,
-.table-bordered tbody:first-child tr:first-child th,
-.table-bordered tbody:first-child tr:first-child td {
-  border-top: 0;
-}
-.table-bordered thead:first-child tr:first-child th:first-child,
-.table-bordered tbody:first-child tr:first-child td:first-child {
-  -webkit-border-radius: 4px 0 0 0;
-  -moz-border-radius: 4px 0 0 0;
-  border-radius: 4px 0 0 0;
-}
-.table-bordered thead:first-child tr:first-child th:last-child,
-.table-bordered tbody:first-child tr:first-child td:last-child {
-  -webkit-border-radius: 0 4px 0 0;
-  -moz-border-radius: 0 4px 0 0;
-  border-radius: 0 4px 0 0;
-}
-.table-bordered thead:last-child tr:last-child th:first-child,
-.table-bordered tbody:last-child tr:last-child td:first-child {
-  -webkit-border-radius: 0 0 0 4px;
-  -moz-border-radius: 0 0 0 4px;
-  border-radius: 0 0 0 4px;
-}
-.table-bordered thead:last-child tr:last-child th:last-child,
-.table-bordered tbody:last-child tr:last-child td:last-child {
-  -webkit-border-radius: 0 0 4px 0;
-  -moz-border-radius: 0 0 4px 0;
-  border-radius: 0 0 4px 0;
-}
-.table-striped tbody tr:nth-child(odd)td, .table-striped tbody tr:nth-child(odd)th {
-  background-color: #f9f9f9;
-}
-.table tbody tr:hover td, .table tbody tr:hover th {
-  background-color: #f5f5f5;
-}
-table .span1 {
-  float: none;
-  width: 44px;
-  margin-left: 0;
-}
-table .span2 {
-  float: none;
-  width: 124px;
-  margin-left: 0;
-}
-table .span3 {
-  float: none;
-  width: 204px;
-  margin-left: 0;
-}
-table .span4 {
-  float: none;
-  width: 284px;
-  margin-left: 0;
-}
-table .span5 {
-  float: none;
-  width: 364px;
-  margin-left: 0;
-}
-table .span6 {
-  float: none;
-  width: 444px;
-  margin-left: 0;
-}
-table .span7 {
-  float: none;
-  width: 524px;
-  margin-left: 0;
-}
-table .span8 {
-  float: none;
-  width: 604px;
-  margin-left: 0;
-}
-table .span9 {
-  float: none;
-  width: 684px;
-  margin-left: 0;
-}
-table .span10 {
-  float: none;
-  width: 764px;
-  margin-left: 0;
-}
-table .span11 {
-  float: none;
-  width: 844px;
-  margin-left: 0;
-}
-table .span12 {
-  float: none;
-  width: 924px;
-  margin-left: 0;
-}
-[class^="icon-"], [class*=" icon-"] {
-  display: inline-block;
-  width: 14px;
-  height: 14px;
-  line-height: 14px;
-  vertical-align: text-top;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings.png');
-  background-position: 14px 14px;
-  background-repeat: no-repeat;
-  *margin-right: .3em;
-}
-[class^="icon-"]:last-child, [class*=" icon-"]:last-child {
-  *margin-left: 0;
-}
-.icon-white {
-  background-image: url('/static/bootstrap/img/glyphicons-halflings-white.png');
-}
-.icon-glass {
-  background-position: 0 0;
-}
-.icon-music {
-  background-position: -24px 0;
-}
-.icon-search {
-  background-position: -48px 0;
-}
-.icon-envelope {
-  background-position: -72px 0;
-}
-.icon-heart {
-  background-position: -96px 0;
-}
-.icon-star {
-  background-position: -120px 0;
-}
-.icon-star-empty {
-  background-position: -144px 0;
-}
-.icon-user {
-  background-position: -168px 0;
-}
-.icon-film {
-  background-position: -192px 0;
-}
-.icon-th-large {
-  background-position: -216px 0;
-}
-.icon-th {
-  background-position: -240px 0;
-}
-.icon-th-list {
-  background-position: -264px 0;
-}
-.icon-ok {
-  background-position: -288px 0;
-}
-.icon-remove {
-  background-position: -312px 0;
-}
-.icon-zoom-in {
-  background-position: -336px 0;
-}
-.icon-zoom-out {
-  background-position: -360px 0;
-}
-.icon-off {
-  background-position: -384px 0;
-}
-.icon-signal {
-  background-position: -408px 0;
-}
-.icon-cog {
-  background-position: -432px 0;
-}
-.icon-trash {
-  background-position: -456px 0;
-}
-.icon-home {
-  background-position: 0 -24px;
-}
-.icon-file {
-  background-position: -24px -24px;
-}
-.icon-time {
-  background-position: -48px -24px;
-}
-.icon-road {
-  background-position: -72px -24px;
-}
-.icon-download-alt {
-  background-position: -96px -24px;
-}
-.icon-download {
-  background-position: -120px -24px;
-}
-.icon-upload {
-  background-position: -144px -24px;
-}
-.icon-inbox {
-  background-position: -168px -24px;
-}
-.icon-play-circle {
-  background-position: -192px -24px;
-}
-.icon-repeat {
-  background-position: -216px -24px;
-}
-.icon-refresh {
-  background-position: -240px -24px;
-}
-.icon-list-alt {
-  background-position: -264px -24px;
-}
-.icon-lock {
-  background-position: -287px -24px;
-}
-.icon-flag {
-  background-position: -312px -24px;
-}
-.icon-headphones {
-  background-position: -336px -24px;
-}
-.icon-volume-off {
-  background-position: -360px -24px;
-}
-.icon-volume-down {
-  background-position: -384px -24px;
-}
-.icon-volume-up {
-  background-position: -408px -24px;
-}
-.icon-qrcode {
-  background-position: -432px -24px;
-}
-.icon-barcode {
-  background-position: -456px -24px;
-}
-.icon-tag {
-  background-position: 0 -48px;
-}
-.icon-tags {
-  background-position: -25px -48px;
-}
-.icon-book {
-  background-position: -48px -48px;
-}
-.icon-bookmark {
-  background-position: -72px -48px;
-}
-.icon-print {
-  background-position: -96px -48px;
-}
-.icon-camera {
-  background-position: -120px -48px;
-}
-.icon-font {
-  background-position: -144px -48px;
-}
-.icon-bold {
-  background-position: -167px -48px;
-}
-.icon-italic {
-  background-position: -192px -48px;
-}
-.icon-text-height {
-  background-position: -216px -48px;
-}
-.icon-text-width {
-  background-position: -240px -48px;
-}
-.icon-align-left {
-  background-position: -264px -48px;
-}
-.icon-align-center {
-  background-position: -288px -48px;
-}
-.icon-align-right {
-  background-position: -312px -48px;
-}
-.icon-align-justify {
-  background-position: -336px -48px;
-}
-.icon-list {
-  background-position: -360px -48px;
-}
-.icon-indent-left {
-  background-position: -384px -48px;
-}
-.icon-indent-right {
-  background-position: -408px -48px;
-}
-.icon-facetime-video {
-  background-position: -432px -48px;
-}
-.icon-picture {
-  background-position: -456px -48px;
-}
-.icon-pencil {
-  background-position: 0 -72px;
-}
-.icon-map-marker {
-  background-position: -24px -72px;
-}
-.icon-adjust {
-  background-position: -48px -72px;
-}
-.icon-tint {
-  background-position: -72px -72px;
-}
-.icon-edit {
-  background-position: -96px -72px;
-}
-.icon-share {
-  background-position: -120px -72px;
-}
-.icon-check {
-  background-position: -144px -72px;
-}
-.icon-move {
-  background-position: -168px -72px;
-}
-.icon-step-backward {
-  background-position: -192px -72px;
-}
-.icon-fast-backward {
-  background-position: -216px -72px;
-}
-.icon-backward {
-  background-position: -240px -72px;
-}
-.icon-play {
-  background-position: -264px -72px;
-}
-.icon-pause {
-  background-position: -288px -72px;
-}
-.icon-stop {
-  background-position: -312px -72px;
-}
-.icon-forward {
-  background-position: -336px -72px;
-}
-.icon-fast-forward {
-  background-position: -360px -72px;
-}
-.icon-step-forward {
-  background-position: -384px -72px;
-}
-.icon-eject {
-  background-position: -408px -72px;
-}
-.icon-chevron-left {
-  background-position: -432px -72px;
-}
-.icon-chevron-right {
-  background-position: -456px -72px;
-}
-.icon-plus-sign {
-  background-position: 0 -96px;
-}
-.icon-minus-sign {
-  background-position: -24px -96px;
-}
-.icon-remove-sign {
-  background-position: -48px -96px;
-}
-.icon-ok-sign {
-  background-position: -72px -96px;
-}
-.icon-question-sign {
-  background-position: -96px -96px;
-}
-.icon-info-sign {
-  background-position: -120px -96px;
-}
-.icon-screenshot {
-  background-position: -144px -96px;
-}
-.icon-remove-circle {
-  background-position: -168px -96px;
-}
-.icon-ok-circle {
-  background-position: -192px -96px;
-}
-.icon-ban-circle {
-  background-position: -216px -96px;
-}
-.icon-arrow-left {
-  background-position: -240px -96px;
-}
-.icon-arrow-right {
-  background-position: -264px -96px;
-}
-.icon-arrow-up {
-  background-position: -289px -96px;
-}
-.icon-arrow-down {
-  background-position: -312px -96px;
-}
-.icon-share-alt {
-  background-position: -336px -96px;
-}
-.icon-resize-full {
-  background-position: -360px -96px;
-}
-.icon-resize-small {
-  background-position: -384px -96px;
-}
-.icon-plus {
-  background-position: -408px -96px;
-}
-.icon-minus {
-  background-position: -433px -96px;
-}
-.icon-asterisk {
-  background-position: -456px -96px;
-}
-.icon-exclamation-sign {
-  background-position: 0 -120px;
-}
-.icon-gift {
-  background-position: -24px -120px;
-}
-.icon-leaf {
-  background-position: -48px -120px;
-}
-.icon-fire {
-  background-position: -72px -120px;
-}
-.icon-eye-open {
-  background-position: -96px -120px;
-}
-.icon-eye-close {
-  background-position: -120px -120px;
-}
-.icon-warning-sign {
-  background-position: -144px -120px;
-}
-.icon-plane {
-  background-position: -168px -120px;
-}
-.icon-calendar {
-  background-position: -192px -120px;
-}
-.icon-random {
-  background-position: -216px -120px;
-}
-.icon-comment {
-  background-position: -240px -120px;
-}
-.icon-magnet {
-  background-position: -264px -120px;
-}
-.icon-chevron-up {
-  background-position: -288px -120px;
-}
-.icon-chevron-down {
-  background-position: -313px -119px;
-}
-.icon-retweet {
-  background-position: -336px -120px;
-}
-.icon-shopping-cart {
-  background-position: -360px -120px;
-}
-.icon-folder-close {
-  background-position: -384px -120px;
-}
-.icon-folder-open {
-  background-position: -408px -120px;
-}
-.icon-resize-vertical {
-  background-position: -432px -119px;
-}
-.icon-resize-horizontal {
-  background-position: -456px -118px;
-}
-.dropdown {
-  position: relative;
-}
-.dropdown-toggle {
-  *margin-bottom: -3px;
-}
-.dropdown-toggle:active, .open .dropdown-toggle {
-  outline: 0;
-}
-.caret {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  text-indent: -99999px;
-  *text-indent: 0;
-  vertical-align: top;
-  border-left: 4px solid transparent;
-  border-right: 4px solid transparent;
-  border-top: 4px solid #000000;
-  opacity: 0.3;
-  filter: alpha(opacity=30);
-  content: "\2193";
-}
-.dropdown .caret {
-  margin-top: 8px;
-  margin-left: 2px;
-}
-.dropdown:hover .caret, .open.dropdown .caret {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.dropdown-menu {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  float: left;
-  display: none;
-  min-width: 160px;
-  _width: 160px;
-  padding: 4px 0;
-  margin: 0;
-  list-style: none;
-  background-color: #ffffff;
-  border-color: #cccccc;
-  border-color: rgba(0,0,0,.2);
-  border-style: solid;
-  border-width: 1px;
-  -webkit-border-radius: 0 0 5px 5px;
-  -moz-border-radius: 0 0 5px 5px;
-  border-radius: 0 0 5px 5px;
-  -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
-  -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
-  box-shadow: 0 5px 10px rgba(0,0,0,.2);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding;
-  background-clip: padding-box;
-  *border-right-width: 2px;
-  *border-bottom-width: 2px;
-}
-.dropdown-menu.bottom-up {
-  top: auto;
-  bottom: 100%;
-  margin-bottom: 2px;
-}
-.dropdown-menu .divider {
-  height: 1px;
-  margin: 5px 1px;
-  overflow: hidden;
-  background-color: #e5e5e5;
-  border-bottom: 1px solid #ffffff;
-  *width: 100%;
-  *margin: -5px 0 5px;
-}
-.dropdown-menu a {
-  display: block;
-  padding: 3px 15px;
-  clear: both;
-  font-weight: normal;
-  line-height: 18px;
-  color: #555555;
-  word-wrap: break-word;
-}
-.dropdown-menu li > a:hover,
-.dropdown-menu .active > a,
-.dropdown-menu .active > a:hover {
-  color: #ffffff;
-  text-decoration: none;
-  background-color: #dd4814;
-}
-.dropdown.open {
-  *z-index: 1000;
-}
-.dropdown.open .dropdown-toggle {
-  color: #ffffff;
-  background: #cccccc;
-  background: rgba(0,0,0,.3);
-}
-.dropdown.open .dropdown-menu {
-  display: block;
-}
-.typeahead {
-  margin-top: 2px;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.well {
-  min-height: 20px;
-  padding: 19px;
-  margin-bottom: 20px;
-  background-color: #f5f5f5;
-  border: 1px solid #eeeeee;
-  border: 1px solid rgba(0,0,0,.05);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.05);
-  box-shadow: inset 0 1px 1px rgba(0,0,0,.05);
-}
-.well blockquote {
-  border-color: #dddddd;
-  border-color: rgba(0,0,0,.15);
-}
-.fade {
-  -webkit-transition: opacity .15s linear;
-  -moz-transition: opacity .15s linear;
-  -ms-transition: opacity .15s linear;
-  -o-transition: opacity .15s linear;
-  transition: opacity .15s linear;
-  opacity: 0;
-}
-.fade.in {
-  opacity: 1;
-}
-.collapse {
-  -webkit-transition: height .35s ease;
-  -moz-transition: height .35s ease;
-  -ms-transition: height .35s ease;
-  -o-transition: height .35s ease;
-  transition: height .35s ease;
-  position: relative;
-  overflow: hidden;
-  height: 0;
-}
-.collapse.in {
-  height: auto;
-}
-.close {
-  float: right;
-  font-size: 20px;
-  font-weight: bold;
-  line-height: 18px;
-  color: #000000;
-  text-shadow: 0 1px 0 #ffffff01;
-  opacity: 0.2;
-  filter: alpha(opacity=20);
-}
-.close:hover {
-  color: #000000;
-  text-decoration: none;
-  opacity: 0.4;
-  filter: alpha(opacity=40);
-  cursor: pointer;
-}
-.btn {
-  display: inline-block;
-  padding: 4px 10px 4px;
-  margin-bottom: 0;
-  font-size: 13px;
-  line-height: 18px;
-  color: #333333;
-  text-align: center;
-  text-shadow: 0 1px 1px rgba(255,255,255,.75);
-  vertical-align: middle;
-  background-color: #f5f5f5;
-  background-image: -moz-linear-gradient(top,#ffffff,#e6e6e6 );
-  background-image: -ms-linear-gradient(top,#ffffff,#e6e6e6 );
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#ffffff),to(#e6e6e6 ));
-  background-image: -webkit-linear-gradient(top,#ffffff,#e6e6e6 );
-  background-image: -o-linear-gradient(top,#ffffff,#e6e6e6 );
-  background-image: linear-gradient(top,#ffffff,#e6e6e6 );
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6 ', GradientType=0);
-  border-color: #e6e6e6  #e6e6e6  #c0c0c0;
-  border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  border: 1px solid #cccccc;
-  border-bottom-color: #bbbbbb;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  cursor: pointer;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  *margin-left: .3em;
-}
-.btn:hover, .btn:active, .btn.active, .btn.disabled, .btn[disabled] {
-  background-color: #e6e6e6;
-}
-.btn:active, .btn.active {
-  background-color: #cdcdcd \9;
-}
-.btn:first-child {
-  *margin-left: 0;
-}
-.btn:hover {
-  color: #333333;
-  text-decoration: none;
-  background-color: #e6e6e6;
-  background-position: 0 -15px;
-  -webkit-transition: background-position .1s linear;
-  -moz-transition: background-position .1s linear;
-  -ms-transition: background-position .1s linear;
-  -o-transition: background-position .1s linear;
-  transition: background-position .1s linear;
-}
-.btn:focus {
-  outline: thin dotted #333333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-.btn.active, .btn:active {
-  background-image: none;
-  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  background-color: #e6e6e6;
-  background-color: #d9d9d9 \9;
-  outline: 0;
-}
-.btn.disabled, .btn[disabled] {
-  cursor: default;
-  background-image: none;
-  background-color: #e6e6e6;
-  opacity: 0.65;
-  filter: alpha(opacity=65);
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-.btn-large {
-  padding: 9px 14px;
-  font-size: 15px;
-  line-height: normal;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-}
-.btn-large [class^="icon-"] {
-  margin-top: 1px;
-}
-.btn-small {
-  padding: 5px 9px;
-  font-size: 11px;
-  line-height: 16px;
-}
-.btn-small [class^="icon-"] {
-  margin-top: -1px;
-}
-.btn-mini {
-  padding: 2px 6px;
-  font-size: 11px;
-  line-height: 14px;
-}
-.btn-primary,
-.btn-primary:hover,
-.btn-warning,
-.btn-warning:hover,
-.btn-danger,
-.btn-danger:hover,
-.btn-success,
-.btn-success:hover,
-.btn-info,
-.btn-info:hover,
-.btn-inverse,
-.btn-inverse:hover {
-  text-shadow: 0 -1px 0 rgba(0,0,0,.25);
-  color: #ffffff;
-}
-.btn-primary.active,
-.btn-warning.active,
-.btn-danger.active,
-.btn-success.active,
-.btn-info.active,
-.btn-dark.active {
-  color: rgba(255,255,255,.75);
-}
-.btn-primary {
-  background-color: #006ccc;
-  background-image: -moz-linear-gradient(top,#dd4814,#dd4a14 );
-  background-image: -ms-linear-gradient(top,#dd4814,#dd4a14 );
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#dd4814),to(#dd4a14 ));
-  background-image: -webkit-linear-gradient(top,#dd4814,#dd4a14 );
-  background-image: -o-linear-gradient(top,#dd4814,#dd4a14 );
-  background-image: linear-gradient(top,#dd4814,#dd4a14 );
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dd4814', endColorstr='#dd4a14 ', GradientType=0);
-  border-color: #dd4a14  #dd4a14  #002a80;
-  border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-primary:hover,
-.btn-primary:active,
-.btn-primary.active,
-.btn-primary.disabled,
-.btn-primary[disabled] {
-  background-color: #dd4a14;
-}
-.btn-primary:active, .btn-primary.active {
-  background-color: #003399 \9;
-}
-.btn-warning {
-  background-color: #f9a732;
-  background-image: -moz-linear-gradient(top,#fbb450 ,#f89406);
-  background-image: -ms-linear-gradient(top,#fbb450 ,#f89406);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#fbb450 ),to(#f89406));
-  background-image: -webkit-linear-gradient(top,#fbb450 ,#f89406);
-  background-image: -o-linear-gradient(top,#fbb450 ,#f89406);
-  background-image: linear-gradient(top,#fbb450 ,#f89406);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450 ', endColorstr='#f89406', GradientType=0);
-  border-color: #f89406 #f89406 #ad6704;
-  border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-warning:hover,
-.btn-warning:active,
-.btn-warning.active,
-.btn-warning.disabled,
-.btn-warning[disabled] {
-  background-color: #f89406;
-}
-.btn-warning:active, .btn-warning.active {
-  background-color: #c67605 \9;
-}
-.btn-danger {
-  background-color: #da4e49;
-  background-image: -moz-linear-gradient(top,#ee5f5b,#bd362f);
-  background-image: -ms-linear-gradient(top,#ee5f5b,#bd362f);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));
-  background-image: -webkit-linear-gradient(top,#ee5f5b,#bd362f);
-  background-image: -o-linear-gradient(top,#ee5f5b,#bd362f);
-  background-image: linear-gradient(top,#ee5f5b,#bd362f);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);
-  border-color: #bd362f #bd362f #802420;
-  border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-danger:hover,
-.btn-danger:active,
-.btn-danger.active,
-.btn-danger.disabled,
-.btn-danger[disabled] {
-  background-color: #bd362f;
-}
-.btn-danger:active, .btn-danger.active {
-  background-color: #942a25 \9;
-}
-.btn-success {
-  background-color: #5bb65b;
-  background-image: -moz-linear-gradient(top,#62c462,#51a351);
-  background-image: -ms-linear-gradient(top,#62c462,#51a351);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));
-  background-image: -webkit-linear-gradient(top,#62c462,#51a351);
-  background-image: -o-linear-gradient(top,#62c462,#51a351);
-  background-image: linear-gradient(top,#62c462,#51a351);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);
-  border-color: #51a351 #51a351 #387038;
-  border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-success:hover,
-.btn-success:active,
-.btn-success.active,
-.btn-success.disabled,
-.btn-success[disabled] {
-  background-color: #51a351;
-}
-.btn-success:active, .btn-success.active {
-  background-color: #408140 \9;
-}
-.btn-info {
-  background-color: #49afcd;
-  background-image: -moz-linear-gradient(top,#5bc0de,#2f96b4);
-  background-image: -ms-linear-gradient(top,#5bc0de,#2f96b4);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));
-  background-image: -webkit-linear-gradient(top,#5bc0de,#2f96b4);
-  background-image: -o-linear-gradient(top,#5bc0de,#2f96b4);
-  background-image: linear-gradient(top,#5bc0de,#2f96b4);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
-  border-color: #2f96b4 #2f96b4 #1f6377;
-  border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-info:hover,
-.btn-info:active,
-.btn-info.active,
-.btn-info.disabled,
-.btn-info[disabled] {
-  background-color: #2f96b4;
-}
-.btn-info:active, .btn-info.active {
-  background-color: #24748c \9;
-}
-.btn-inverse {
-  background-color: #383838;
-  background-image: -moz-linear-gradient(top,#454545,#262626);
-  background-image: -ms-linear-gradient(top,#454545,#262626);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#454545),to(#262626));
-  background-image: -webkit-linear-gradient(top,#454545,#262626);
-  background-image: -o-linear-gradient(top,#454545,#262626);
-  background-image: linear-gradient(top,#454545,#262626);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#454545', endColorstr='#262626', GradientType=0);
-  border-color: #262626 #262626 #000000;
-  border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-inverse:hover,
-.btn-inverse:active,
-.btn-inverse.active,
-.btn-inverse.disabled,
-.btn-inverse[disabled] {
-  background-color: #262626;
-}
-.btn-inverse:active, .btn-inverse.active {
-  background-color: #0c0c0c \9;
-}
-button.btn, input[type="submit"].btn {
-  *padding-top: 2px;
-  *padding-bottom: 2px;
-}
-button.btn::-moz-focus-inner, input[type="submit"].btn::-moz-focus-inner {
-  padding: 0;
-  border: 0;
-}
-button.btn.large, input[type="submit"].btn.large {
-  *padding-top: 7px;
-  *padding-bottom: 7px;
-}
-button.btn.small, input[type="submit"].btn.small {
-  *padding-top: 3px;
-  *padding-bottom: 3px;
-}
-.btn-group {
-  position: relative;
-  *zoom: 1;
-  *margin-left: .3em;
-}
-.btn-group:before, .btn-group:after {
-  display: table;
-  content: "";
-}
-.btn-group:after {
-  clear: both;
-}
-.btn-group:first-child {
-  *margin-left: 0;
-}
-.btn-group + .btn-group {
-  margin-left: 5px;
-}
-.btn-toolbar {
-  margin-top: 9px;
-  margin-bottom: 9px;
-}
-.btn-toolbar .btn-group {
-  display: inline-block;
-  *display: inline;
-  *zoom: 1;
-}
-.btn-group .btn {
-  position: relative;
-  float: left;
-  margin-left: -1px;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.btn-group .btn:first-child {
-  margin-left: 0;
-  -webkit-border-top-left-radius: 4px;
-  -moz-border-radius-topleft: 4px;
-  border-top-left-radius: 4px;
-  -webkit-border-bottom-left-radius: 4px;
-  -moz-border-radius-bottomleft: 4px;
-  border-bottom-left-radius: 4px;
-}
-.btn-group .btn:last-child, .btn-group .dropdown-toggle {
-  -webkit-border-top-right-radius: 4px;
-  -moz-border-radius-topright: 4px;
-  border-top-right-radius: 4px;
-  -webkit-border-bottom-right-radius: 4px;
-  -moz-border-radius-bottomright: 4px;
-  border-bottom-right-radius: 4px;
-}
-.btn-group .btn.large:first-child {
-  margin-left: 0;
-  -webkit-border-top-left-radius: 6px;
-  -moz-border-radius-topleft: 6px;
-  border-top-left-radius: 6px;
-  -webkit-border-bottom-left-radius: 6px;
-  -moz-border-radius-bottomleft: 6px;
-  border-bottom-left-radius: 6px;
-}
-.btn-group .btn.large:last-child, .btn-group .large.dropdown-toggle {
-  -webkit-border-top-right-radius: 6px;
-  -moz-border-radius-topright: 6px;
-  border-top-right-radius: 6px;
-  -webkit-border-bottom-right-radius: 6px;
-  -moz-border-radius-bottomright: 6px;
-  border-bottom-right-radius: 6px;
-}
-.btn-group .btn:hover,
-.btn-group .btn:focus,
-.btn-group .btn:active,
-.btn-group .btn.active {
-  z-index: 2;
-}
-.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle {
-  outline: 0;
-}
-.btn-group .dropdown-toggle {
-  padding-left: 8px;
-  padding-right: 8px;
-  -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  *padding-top: 5px;
-  *padding-bottom: 5px;
-}
-.btn-group.open {
-  *z-index: 1000;
-}
-.btn-group.open .dropdown-menu {
-  display: block;
-  margin-top: 1px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-}
-.btn-group.open .dropdown-toggle {
-  background-image: none;
-  -webkit-box-shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-}
-.btn .caret {
-  margin-top: 7px;
-  margin-left: 0;
-}
-.btn:hover .caret, .open.btn-group .caret {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.btn-primary .caret,
-.btn-danger .caret,
-.btn-info .caret,
-.btn-success .caret,
-.btn-inverse .caret {
-  border-top-color: #ffffff;
-  opacity: 0.75;
-  filter: alpha(opacity=75);
-}
-.btn-small .caret {
-  margin-top: 4px;
-}
-.alert {
-  padding: 8px 35px 8px 14px;
-  margin-bottom: 18px;
-  text-shadow: 0 1px 0 rgba(255,255,255,.5);
-  background-color: #fcf8e3;
-  border: 1px solid #fbefd5;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.alert, .alert-heading {
-  color: #c09853;
-}
-.alert .close {
-  position: relative;
-  top: -2px;
-  right: -21px;
-  line-height: 18px;
-}
-.alert-success {
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-}
-.alert-success, .alert-success .alert-heading {
-  color: #468847;
-}
-.alert-danger, .alert-error {
-  background-color: #f2dede;
-  border-color: #eed3d7;
-}
-.alert-danger,
-.alert-error,
-.alert-danger .alert-heading,
-.alert-error .alert-heading {
-  color: #b94a48;
-}
-.alert-info {
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-}
-.alert-info, .alert-info .alert-heading {
-  color: #3a87ad;
-}
-.alert-block {
-  padding-top: 14px;
-  padding-bottom: 14px;
-}
-.alert-block > p, .alert-block > ul {
-  margin-bottom: 0;
-}
-.alert-block p + p {
-  margin-top: 5px;
-}
-.nav {
-  margin-left: 0;
-  margin-bottom: 18px;
-  list-style: none;
-}
-.nav > li > a {
-  display: block;
-}
-.nav > li > a:hover {
-  text-decoration: none;
-  background-color: #eeeeee;
-}
-.nav .nav-header {
-  display: block;
-  padding: 3px 15px;
-  font-size: 11px;
-  font-weight: bold;
-  line-height: 18px;
-  color: #999999;
-  text-shadow: 0 1px 0 rgba(255,255,255,.5);
-  text-transform: uppercase;
-}
-.nav li + .nav-header {
-  margin-top: 9px;
-}
-.nav-list {
-  padding-left: 14px;
-  padding-right: 14px;
-  margin-bottom: 0;
-}
-.nav-list > li > a, .nav-list .nav-header {
-  margin-left: -15px;
-  margin-right: -15px;
-  text-shadow: 0 1px 0 rgba(255,255,255,.5);
-}
-.nav-list > li > a {
-  padding: 3px 15px;
-}
-.nav-list .active > a, .nav-list .active > a:hover {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0,0,0,.2);
-  background-color: #dd4814;
-}
-.nav-list [class^="icon-"] {
-  margin-right: 2px;
-}
-.nav-tabs, .nav-pills {
-  *zoom: 1;
-}
-.nav-tabs:before, .nav-tabs:after, .nav-pills:before, .nav-pills:after {
-  display: table;
-  content: "";
-}
-.nav-tabs:after, .nav-pills:after {
-  clear: both;
-}
-.nav-tabs > li, .nav-pills > li {
-  float: left;
-}
-.nav-tabs > li > a, .nav-pills > li > a {
-  padding-right: 12px;
-  padding-left: 12px;
-  margin-right: 2px;
-  line-height: 14px;
-}
-.nav-tabs {
-  border-bottom: 1px solid #dddddd;
-}
-.nav-tabs > li {
-  margin-bottom: -1px;
-}
-.nav-tabs > li > a {
-  padding-top: 9px;
-  padding-bottom: 9px;
-  border: 1px solid transparent;
-  -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
-}
-.nav-tabs > li > a:hover {
-  border-color: #eeeeee #eeeeee #dddddd;
-}
-.nav-tabs > .active > a, .nav-tabs > .active > a:hover {
-  color: #555555;
-  background-color: #ffffff;
-  border: 1px solid #dddddd;
-  border-bottom-color: transparent;
-  cursor: default;
-}
-.nav-pills > li > a {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  margin-top: 2px;
-  margin-bottom: 2px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-}
-.nav-pills .active > a, .nav-pills .active > a:hover {
-  color: #ffffff;
-  background-color: #dd4814;
-}
-.nav-stacked > li {
-  float: none;
-}
-.nav-stacked > li > a {
-  margin-right: 0;
-}
-.nav-tabs.nav-stacked {
-  border-bottom: 0;
-}
-.nav-tabs.nav-stacked > li > a {
-  border: 1px solid #dddddd;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.nav-tabs.nav-stacked > li:first-child > a {
-  -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
-}
-.nav-tabs.nav-stacked > li:last-child > a {
-  -webkit-border-radius: 0 0 4px 4px;
-  -moz-border-radius: 0 0 4px 4px;
-  border-radius: 0 0 4px 4px;
-}
-.nav-tabs.nav-stacked > li > a:hover {
-  border-color: #dddddd;
-  z-index: 2;
-}
-.nav-pills.nav-stacked > li > a {
-  margin-bottom: 3px;
-}
-.nav-pills.nav-stacked > li:last-child > a {
-  margin-bottom: 1px;
-}
-.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu {
-  margin-top: 1px;
-  border-width: 1px;
-}
-.nav-pills .dropdown-menu {
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.nav-tabs .dropdown-toggle .caret, .nav-pills .dropdown-toggle .caret {
-  border-top-color: #dd4814;
-  margin-top: 6px;
-}
-.nav-tabs .dropdown-toggle:hover .caret, .nav-pills .dropdown-toggle:hover .caret {
-  border-top-color: #005580;
-}
-.nav-tabs .active .dropdown-toggle .caret,
-.nav-pills .active .dropdown-toggle .caret {
-  border-top-color: #333333;
-}
-.nav > .dropdown.active > a:hover {
-  color: #000000;
-  cursor: pointer;
-}
-.nav-tabs .open .dropdown-toggle,
-.nav-pills .open .dropdown-toggle,
-.nav > .open.active > a:hover {
-  color: #ffffff;
-  background-color: #999999;
-  border-color: #999999;
-}
-.nav .open .caret, .nav .open.active .caret, .nav .open a:hover .caret {
-  border-top-color: #ffffff;
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.tabs-stacked .open > a:hover {
-  border-color: #999999;
-}
-.tabbable {
-  *zoom: 1;
-}
-.tabbable:before, .tabbable:after {
-  display: table;
-  content: "";
-}
-.tabbable:after {
-  clear: both;
-}
-.tab-content {
-  overflow: hidden;
-}
-.tabs-below .nav-tabs, .tabs-right .nav-tabs, .tabs-left .nav-tabs {
-  border-bottom: 0;
-}
-.tab-content > .tab-pane, .pill-content > .pill-pane {
-  display: none;
-}
-.tab-content > .active, .pill-content > .active {
-  display: block;
-}
-.tabs-below .nav-tabs {
-  border-top: 1px solid #dddddd;
-}
-.tabs-below .nav-tabs > li {
-  margin-top: -1px;
-  margin-bottom: 0;
-}
-.tabs-below .nav-tabs > li > a {
-  -webkit-border-radius: 0 0 4px 4px;
-  -moz-border-radius: 0 0 4px 4px;
-  border-radius: 0 0 4px 4px;
-}
-.tabs-below .nav-tabs > li > a:hover {
-  border-bottom-color: transparent;
-  border-top-color: #dddddd;
-}
-.tabs-below .nav-tabs .active > a, .tabs-below .nav-tabs .active > a:hover {
-  border-color: transparent #dddddd #dddddd #dddddd;
-}
-.tabs-left .nav-tabs > li, .tabs-right .nav-tabs > li {
-  float: none;
-}
-.tabs-left .nav-tabs > li > a, .tabs-right .nav-tabs > li > a {
-  min-width: 74px;
-  margin-right: 0;
-  margin-bottom: 3px;
-}
-.tabs-left .nav-tabs {
-  float: left;
-  margin-right: 19px;
-  border-right: 1px solid #dddddd;
-}
-.tabs-left .nav-tabs > li > a {
-  margin-right: -1px;
-  -webkit-border-radius: 4px 0 0 4px;
-  -moz-border-radius: 4px 0 0 4px;
-  border-radius: 4px 0 0 4px;
-}
-.tabs-left .nav-tabs > li > a:hover {
-  border-color: #eeeeee #dddddd #eeeeee #eeeeee;
-}
-.tabs-left .nav-tabs .active > a, .tabs-left .nav-tabs .active > a:hover {
-  border-color: #dddddd transparent #dddddd #dddddd;
-  *border-right-color: #ffffff;
-}
-.tabs-right .nav-tabs {
-  float: right;
-  margin-left: 19px;
-  border-left: 1px solid #dddddd;
-}
-.tabs-right .nav-tabs > li > a {
-  margin-left: -1px;
-  -webkit-border-radius: 0 4px 4px 0;
-  -moz-border-radius: 0 4px 4px 0;
-  border-radius: 0 4px 4px 0;
-}
-.tabs-right .nav-tabs > li > a:hover {
-  border-color: #eeeeee #eeeeee #eeeeee #dddddd;
-}
-.tabs-right .nav-tabs .active > a, .tabs-right .nav-tabs .active > a:hover {
-  border-color: #dddddd #dddddd #dddddd transparent;
-  *border-left-color: #ffffff;
-}
-.navbar {
-  overflow: visible;
-  margin-bottom: 18px;
-}
-.navbar-inner {
-  padding-left: 20px;
-  padding-right: 20px;
-  background-color: #2c2c2c;
-  background-image: -moz-linear-gradient(top,#333333,#222222);
-  background-image: -ms-linear-gradient(top,#333333,#222222);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#333333),to(#222222));
-  background-image: -webkit-linear-gradient(top,#333333,#222222);
-  background-image: -o-linear-gradient(top,#333333,#222222);
-  background-image: linear-gradient(top,#333333,#222222);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
-  -moz-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
-  box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
-}
-.btn-navbar {
-  display: none;
-  float: right;
-  padding: 7px 10px;
-  margin-left: 5px;
-  margin-right: 5px;
-  background-color: #2c2c2c;
-  background-image: -moz-linear-gradient(top,#333333,#222222);
-  background-image: -ms-linear-gradient(top,#333333,#222222);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#333333),to(#222222));
-  background-image: -webkit-linear-gradient(top,#333333,#222222);
-  background-image: -o-linear-gradient(top,#333333,#222222);
-  background-image: linear-gradient(top,#333333,#222222);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);
-  border-color: #222222 #222222 #000000;
-  border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
-  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
-  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
-}
-.btn-navbar:hover,
-.btn-navbar:active,
-.btn-navbar.active,
-.btn-navbar.disabled,
-.btn-navbar[disabled] {
-  background-color: #222222;
-}
-.btn-navbar:active, .btn-navbar.active {
-  background-color: #080808 \9;
-}
-.btn-navbar .icon-bar {
-  display: block;
-  width: 18px;
-  height: 2px;
-  background-color: #f5f5f5;
-  -webkit-border-radius: 1px;
-  -moz-border-radius: 1px;
-  border-radius: 1px;
-  -webkit-box-shadow: 0 1px 0 rgba(0,0,0,.25);
-  -moz-box-shadow: 0 1px 0 rgba(0,0,0,.25);
-  box-shadow: 0 1px 0 rgba(0,0,0,.25);
-}
-.btn-navbar .icon-bar + .icon-bar {
-  margin-top: 3px;
-}
-.nav-collapse.collapse {
-  height: auto;
-}
-.navbar .brand:hover {
-  text-decoration: none;
-}
-.navbar .brand {
-  float: left;
-  display: block;
-  padding: 8px 20px 12px;
-  margin-left: -20px;
-  font-size: 20px;
-  font-weight: 200;
-  line-height: 1;
-  color: #ffffff;
-}
-.navbar .navbar-text {
-  margin-bottom: 0;
-  line-height: 40px;
-  color: #999999;
-}
-.navbar .navbar-text a:hover {
-  color: #ffffff;
-  background-color: transparent;
-}
-.navbar .btn, .navbar .btn-group {
-  margin-top: 5px;
-}
-.navbar .btn-group .btn {
-  margin-top: 0;
-}
-.navbar-form {
-  margin-bottom: 0;
-  *zoom: 1;
-}
-.navbar-form:before, .navbar-form:after {
-  display: table;
-  content: "";
-}
-.navbar-form:after {
-  clear: both;
-}
-.navbar-form input, .navbar-form select {
-  display: inline-block;
-  margin-top: 5px;
-  margin-bottom: 0;
-}
-.navbar-form .radio, .navbar-form .checkbox {
-  margin-top: 5px;
-}
-.navbar-form input[type="image"],
-.navbar-form input[type="checkbox"],
-.navbar-form input[type="radio"] {
-  margin-top: 3px;
-}
-.navbar-form .input-append, .navbar-form .input-prepend {
-  margin-top: 6px;
-  white-space: nowrap;
-}
-.navbar-form .input-append input, .navbar-form .input-prepend input {
-  margin-top: 0;
-}
-.navbar-search {
-  position: relative;
-  float: left;
-  margin-top: 6px;
-  margin-bottom: 0;
-}
-.navbar-search .search-query {
-  padding: 4px 9px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  font-weight: normal;
-  line-height: 1;
-  color: #ffffff;
-  color: rgba(255,255,255,.75);
-  background: #666666;
-  background: rgba(255,255,255,.3);
-  border: 1px solid #111111;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
-  -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
-  box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
-  -webkit-transition: none;
-  -moz-transition: none;
-  -ms-transition: none;
-  -o-transition: none;
-  transition: none;
-}
-.navbar-search .search-query :-moz-placeholder {
-  color: #eeeeee;
-}
-.navbar-search .search-query ::-webkit-input-placeholder {
-  color: #eeeeee;
-}
-.navbar-search .search-query:hover {
-  color: #ffffff;
-  background-color: #999999;
-  background-color: rgba(255,255,255,.5);
-}
-.navbar-search .search-query:focus, .navbar-search .search-query.focused {
-  padding: 5px 10px;
-  color: #333333;
-  text-shadow: 0 1px 0 #ffffff;
-  background-color: #ffffff;
-  border: 0;
-  -webkit-box-shadow: 0 0 3px rgba(0,0,0,.15);
-  -moz-box-shadow: 0 0 3px rgba(0,0,0,.15);
-  box-shadow: 0 0 3px rgba(0,0,0,.15);
-  outline: 0;
-}
-.navbar-fixed-top {
-  position: fixed;
-  top: 0;
-  right: 0;
-  left: 0;
-  z-index: 1030;
-}
-.navbar-fixed-top .navbar-inner {
-  padding-left: 0;
-  padding-right: 0;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.navbar .nav {
-  position: relative;
-  left: 0;
-  display: block;
-  float: left;
-  margin: 0 10px 0 0;
-}
-.navbar .nav.pull-right {
-  float: right;
-}
-.navbar .nav > li {
-  display: block;
-  float: left;
-}
-.navbar .nav > li > a {
-  float: none;
-  padding: 10px 10px 11px;
-  line-height: 19px;
-  color: #999999;
-  text-decoration: none;
-  text-shadow: 0 -1px 0 rgba(0,0,0,.25);
-}
-.navbar .nav > li > a:hover {
-  background-color: transparent;
-  color: #ffffff;
-  text-decoration: none;
-}
-.navbar .nav .active > a, .navbar .nav .active > a:hover {
-  color: #ffffff;
-  text-decoration: none;
-  background-color: #222222;
-}
-.navbar .divider-vertical {
-  height: 40px;
-  width: 1px;
-  margin: 0 9px;
-  overflow: hidden;
-  background-color: #222222;
-  border-right: 1px solid #333333;
-}
-.navbar .nav.pull-right {
-  margin-left: 10px;
-  margin-right: 0;
-}
-.navbar .dropdown-menu {
-  margin-top: 1px;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.navbar .dropdown-menu:before {
-  content: '';
-  display: inline-block;
-  border-left: 7px solid transparent;
-  border-right: 7px solid transparent;
-  border-bottom: 7px solid #cccccc;
-  border-bottom-color: rgba(0,0,0,.2);
-  position: absolute;
-  top: -7px;
-  left: 9px;
-}
-.navbar .dropdown-menu:after {
-  content: '';
-  display: inline-block;
-  border-left: 6px solid transparent;
-  border-right: 6px solid transparent;
-  border-bottom: 6px solid #ffffff;
-  position: absolute;
-  top: -6px;
-  left: 10px;
-}
-.navbar .nav .dropdown-toggle .caret, .navbar .nav .open.dropdown .caret {
-  border-top-color: #ffffff;
-}
-.navbar .nav .active .caret {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.navbar .nav .open > .dropdown-toggle,
-.navbar .nav .active > .dropdown-toggle,
-.navbar .nav .open.active > .dropdown-toggle {
-  background-color: transparent;
-}
-.navbar .nav .active > .dropdown-toggle:hover {
-  color: #ffffff;
-}
-.navbar .nav.pull-right .dropdown-menu {
-  left: auto;
-  right: 0;
-}
-.navbar .nav.pull-right .dropdown-menu:before {
-  left: auto;
-  right: 12px;
-}
-.navbar .nav.pull-right .dropdown-menu:after {
-  left: auto;
-  right: 13px;
-}
-.breadcrumb {
-  padding: 7px 14px;
-  margin: 0 0 18px;
-  background-color: #fbfbfb;
-  background-image: -moz-linear-gradient(top,#ffffff,#f5f5f5);
-  background-image: -ms-linear-gradient(top,#ffffff,#f5f5f5);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#ffffff),to(#f5f5f5));
-  background-image: -webkit-linear-gradient(top,#ffffff,#f5f5f5);
-  background-image: -o-linear-gradient(top,#ffffff,#f5f5f5);
-  background-image: linear-gradient(top,#ffffff,#f5f5f5);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);
-  border: 1px solid #dddddd;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-  -webkit-box-shadow: inset 0 1px 0 #ffffff;
-  -moz-box-shadow: inset 0 1px 0 #ffffff;
-  box-shadow: inset 0 1px 0 #ffffff;
-}
-.breadcrumb li {
-  display: inline-block;
-  text-shadow: 0 1px 0 #ffffff;
-}
-.breadcrumb .divider {
-  padding: 0 5px;
-  color: #999999;
-}
-.breadcrumb .active a {
-  color: #333333;
-}
-.pagination {
-  height: 36px;
-  margin: 18px 0;
-}
-.pagination ul {
-  display: inline-block;
-  *display: inline;
-  *zoom: 1;
-  margin-left: 0;
-  margin-bottom: 0;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-  -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: 0 1px 2px rgba(0,0,0,.05);
-}
-.pagination li {
-  display: inline;
-}
-.pagination a {
-  float: left;
-  padding: 0 14px;
-  line-height: 34px;
-  text-decoration: none;
-  border: 1px solid #dddddd;
-  border-left-width: 0;
-}
-.pagination a:hover, .pagination .active a {
-  background-color: #f5f5f5;
-}
-.pagination .active a {
-  color: #999999;
-  cursor: default;
-}
-.pagination .disabled a, .pagination .disabled a:hover {
-  color: #999999;
-  background-color: transparent;
-  cursor: default;
-}
-.pagination li:first-child a {
-  border-left-width: 1px;
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
-}
-.pagination li:last-child a {
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
-}
-.pagination-centered {
-  text-align: center;
-}
-.pagination-right {
-  text-align: right;
-}
-.pager {
-  margin: 18px 0;
-  list-style: none;
-  text-align: center;
-  *zoom: 1;
-}
-.pager:before, .pager:after {
-  display: table;
-  content: "";
-}
-.pager:after {
-  clear: both;
-}
-.pager li {
-  display: inline;
-}
-.pager li > a, .pager li > span {
-  display: inline-block;
-  padding: 5px 14px;
-  background-color: #ffffff;
-  border: 1px solid #dddddd;
-  -webkit-border-radius: 15px;
-  -moz-border-radius: 15px;
-  border-radius: 15px;
-}
-.pager li > a:hover, .pager li > a:focus {
-  text-decoration: none;
-  background-color: #f5f5f5;
-}
-.pager .next > a, .pager .next > span {
-  float: right;
-}
-.pager .previous > a, .pager .previous > span {
-  float: left;
-}
-.pager .disabled > a,
-.pager .disabled > a:hover,
-.pager .disabled > a:focus,
-.pager .disabled > span {
-  color: #999999;
-  background-color: #ffffff;
-  cursor: default;
-}
-.modal-open .dropdown-menu {
-  z-index: 2050;
-}
-.modal-open .dropdown.open {
-  *z-index: 2050;
-}
-.modal-open .popover {
-  z-index: 2060;
-}
-.modal-open .tooltip {
-  z-index: 2070;
-}
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1040;
-  background-color: #000000;
-}
-.modal-backdrop.fade {
-  opacity: 0;
-}
-.modal-backdrop, .modal-backdrop.fade.in {
-  opacity: 0.8;
-  filter: alpha(opacity=80);
-}
-.modal {
-  position: fixed;
-  top: 50%;
-  left: 50%;
-  z-index: 1050;
-  max-height: 500px;
-  overflow: auto;
-  width: 560px;
-  margin: -250px 0 0 -280px;
-  background-color: #ffffff;
-  border: 1px solid #999999;
-  border: 1px solid rgba(0,0,0,.3);
-  *border: 1px solid #999999;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-  -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-  box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding-box;
-  background-clip: padding-box;
-}
-.modal.fade {
-  -webkit-transition: opacity .3s linear, top .3s ease-out;
-  -moz-transition: opacity .3s linear, top .3s ease-out;
-  -ms-transition: opacity .3s linear, top .3s ease-out;
-  -o-transition: opacity .3s linear, top .3s ease-out;
-  transition: opacity .3s linear, top .3s ease-out;
-  top: -25%;
-}
-.modal.fade.in {
-  top: 50%;
-}
-.modal-header {
-  padding: 9px 15px;
-  border-bottom: 1px solid #eeeeee;
-}
-.modal-header .close {
-  margin-top: 2px;
-}
-.modal-body {
-  padding: 15px;
-}
-.modal-body .modal-form {
-  margin-bottom: 0;
-}
-.modal-footer {
-  padding: 14px 15px 15px;
-  margin-bottom: 0;
-  background-color: #f5f5f5;
-  border-top: 1px solid #dddddd;
-  -webkit-border-radius: 0 0 6px 6px;
-  -moz-border-radius: 0 0 6px 6px;
-  border-radius: 0 0 6px 6px;
-  -webkit-box-shadow: inset 0 1px 0 #ffffff;
-  -moz-box-shadow: inset 0 1px 0 #ffffff;
-  box-shadow: inset 0 1px 0 #ffffff;
-  *zoom: 1;
-}
-.modal-footer:before, .modal-footer:after {
-  display: table;
-  content: "";
-}
-.modal-footer:after {
-  clear: both;
-}
-.modal-footer .btn {
-  float: right;
-  margin-left: 5px;
-  margin-bottom: 0;
-}
-.tooltip {
-  position: absolute;
-  z-index: 1020;
-  display: block;
-  visibility: visible;
-  padding: 5px;
-  font-size: 11px;
-  opacity: 0;
-  filter: alpha(opacity=0);
-}
-.tooltip.in {
-  opacity: 0.8;
-  filter: alpha(opacity=80);
-}
-.tooltip.top {
-  margin-top: -2px;
-}
-.tooltip.right {
-  margin-left: 2px;
-}
-.tooltip.bottom {
-  margin-top: 2px;
-}
-.tooltip.left {
-  margin-left: -2px;
-}
-.tooltip.top .tooltip-arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-top: 5px solid #000000;
-}
-.tooltip.left .tooltip-arrow {
-  top: 50%;
-  right: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-left: 5px solid #000000;
-}
-.tooltip.bottom .tooltip-arrow {
-  top: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-bottom: 5px solid #000000;
-}
-.tooltip.right .tooltip-arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-right: 5px solid #000000;
-}
-.tooltip-inner {
-  max-width: 200px;
-  padding: 3px 8px;
-  color: #ffffff;
-  text-align: center;
-  text-decoration: none;
-  background-color: #000000;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.tooltip-arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-}
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 1010;
-  display: none;
-  padding: 5px;
-}
-.popover.top {
-  margin-top: -5px;
-}
-.popover.right {
-  margin-left: 5px;
-}
-.popover.bottom {
-  margin-top: 5px;
-}
-.popover.left {
-  margin-left: -5px;
-}
-.popover.top .arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-top: 5px solid #000000;
-}
-.popover.right .arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-right: 5px solid #000000;
-}
-.popover.bottom .arrow {
-  top: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-bottom: 5px solid #000000;
-}
-.popover.left .arrow {
-  top: 50%;
-  right: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-left: 5px solid #000000;
-}
-.popover .arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-}
-.popover-inner {
-  padding: 3px;
-  width: 280px;
-  overflow: hidden;
-  background: #000000;
-  background: rgba(0,0,0,.8);
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-  -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-  box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-}
-.popover-title {
-  padding: 9px 15px;
-  line-height: 1;
-  background-color: #f5f5f5;
-  border-bottom: 1px solid #eeeeee;
-  -webkit-border-radius: 3px 3px 0 0;
-  -moz-border-radius: 3px 3px 0 0;
-  border-radius: 3px 3px 0 0;
-}
-.popover-content {
-  padding: 14px;
-  background-color: #ffffff;
-  -webkit-border-radius: 0 0 3px 3px;
-  -moz-border-radius: 0 0 3px 3px;
-  border-radius: 0 0 3px 3px;
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding-box;
-  background-clip: padding-box;
-}
-.popover-content p, .popover-content ul, .popover-content ol {
-  margin-bottom: 0;
-}
-.thumbnails {
-  margin-left: -20px;
-  list-style: none;
-  *zoom: 1;
-}
-.thumbnails:before, .thumbnails:after {
-  display: table;
-  content: "";
-}
-.thumbnails:after {
-  clear: both;
-}
-.thumbnails > li {
-  float: left;
-  margin: 0 0 18px 20px;
-}
-.thumbnail {
-  display: block;
-  padding: 4px;
-  line-height: 1;
-  border: 1px solid #dddddd;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.075);
-  -moz-box-shadow: 0 1px 1px rgba(0,0,0,.075);
-  box-shadow: 0 1px 1px rgba(0,0,0,.075);
-}
-a.thumbnail:hover {
-  border-color: #dd4814;
-  -webkit-box-shadow: 0 1px 4px rgba(0,105,214,.25);
-  -moz-box-shadow: 0 1px 4px rgba(0,105,214,.25);
-  box-shadow: 0 1px 4px rgba(0,105,214,.25);
-}
-.thumbnail > img {
-  display: block;
-  max-width: 100%;
-  margin-left: auto;
-  margin-right: auto;
-}
-.thumbnail .caption {
-  padding: 9px;
-}
-.label {
-  padding: 2px 4px 3px;
-  font-size: 11.05px;
-  font-weight: bold;
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0,0,0,.25);
-  background-color: #999999;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-.label:hover {
-  color: #ffffff;
-  text-decoration: none;
-}
-.label-important {
-  background-color: #b94a48;
-}
-.label-important:hover {
-  background-color: #953b39;
-}
-.label-warning {
-  background-color: #f89406;
-}
-.label-warning:hover {
-  background-color: #c67605;
-}
-.label-success {
-  background-color: #468847;
-}
-.label-success:hover {
-  background-color: #356635;
-}
-.label-info {
-  background-color: #3a87ad;
-}
-.label-info:hover {
-  background-color: #2d6987;
-}
-@-webkit-keyframes progress-bar-stripes {
-  from {
-    background-position: 0 0;
-  }
-  to {
-    background-position: 40px 0;
-  }
-}
-@-moz-keyframes progress-bar-stripes {
-  from {
-    background-position: 0 0;
-  }
-  to {
-    background-position: 40px 0;
-  }
-}
-@keyframes progress-bar-stripes {
-  from {
-    background-position: 0 0;
-  }
-  to {
-    background-position: 40px 0;
-  }
-}
-.progress {
-  overflow: hidden;
-  height: 18px;
-  margin-bottom: 18px;
-  background-color: #f6f6f6;
-  background-image: -moz-linear-gradient(top,#f5f5f5,#f9f9f9);
-  background-image: -ms-linear-gradient(top,#f5f5f5,#f9f9f9);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));
-  background-image: -webkit-linear-gradient(top,#f5f5f5,#f9f9f9);
-  background-image: -o-linear-gradient(top,#f5f5f5,#f9f9f9);
-  background-image: linear-gradient(top,#f5f5f5,#f9f9f9);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);
-  -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
-  -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
-  box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.progress .bar {
-  width: 0%;
-  height: 18px;
-  color: #ffffff;
-  font-size: 12px;
-  text-align: center;
-  text-shadow: 0 -1px 0 rgba(0,0,0,.25);
-  background-color: #0d90d1;
-  background-image: -moz-linear-gradient(top,#149bdf,#0480be);
-  background-image: -ms-linear-gradient(top,#149bdf,#0480be);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));
-  background-image: -webkit-linear-gradient(top,#149bdf,#0480be);
-  background-image: -o-linear-gradient(top,#149bdf,#0480be);
-  background-image: linear-gradient(top,#149bdf,#0480be);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
-  -moz-box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
-  box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transition: width .6s ease;
-  -moz-transition: width .6s ease;
-  -ms-transition: width .6s ease;
-  -o-transition: width .6s ease;
-  transition: width .6s ease;
-}
-.progress-striped .bar {
-  background-color: #62c462;
-  background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));
-  background-image: -webkit-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -moz-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -ms-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -o-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  -webkit-background-size: 40px 40px;
-  -moz-background-size: 40px 40px;
-  -o-background-size: 40px 40px;
-  background-size: 40px 40px;
-}
-.progress.active .bar {
-  -webkit-animation: progress-bar-stripes 2s linear infinite;
-  -moz-animation: progress-bar-stripes 2s linear infinite;
-  animation: progress-bar-stripes 2s linear infinite;
-}
-.progress-danger .bar {
-  background-color: #dd514b;
-  background-image: -moz-linear-gradient(top,#ee5f5b,#c43c35);
-  background-image: -ms-linear-gradient(top,#ee5f5b,#c43c35);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));
-  background-image: -webkit-linear-gradient(top,#ee5f5b,#c43c35);
-  background-image: -o-linear-gradient(top,#ee5f5b,#c43c35);
-  background-image: linear-gradient(top,#ee5f5b,#c43c35);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
-}
-.progress-danger.progress-striped .bar {
-  background-color: #ee5f5b;
-  background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));
-  background-image: -webkit-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -moz-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -ms-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -o-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-}
-.progress-success .bar {
-  background-color: #5db95d;
-  background-image: -moz-linear-gradient(top,#62c462,#57a957);
-  background-image: -ms-linear-gradient(top,#62c462,#57a957);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));
-  background-image: -webkit-linear-gradient(top,#62c462,#57a957);
-  background-image: -o-linear-gradient(top,#62c462,#57a957);
-  background-image: linear-gradient(top,#62c462,#57a957);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
-}
-.progress-success.progress-striped .bar {
-  background-color: #62c462;
-  background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));
-  background-image: -webkit-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -moz-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -ms-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -o-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-}
-.progress-info .bar {
-  background-color: #4bb1cf;
-  background-image: -moz-linear-gradient(top,#5bc0de,#339bb9);
-  background-image: -ms-linear-gradient(top,#5bc0de,#339bb9);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));
-  background-image: -webkit-linear-gradient(top,#5bc0de,#339bb9);
-  background-image: -o-linear-gradient(top,#5bc0de,#339bb9);
-  background-image: linear-gradient(top,#5bc0de,#339bb9);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
-}
-.progress-info.progress-striped .bar {
-  background-color: #5bc0de;
-  background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));
-  background-image: -webkit-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -moz-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -ms-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: -o-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-  background-image: linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent);
-}
-.accordion {
-  margin-bottom: 18px;
-}
-.accordion-group {
-  margin-bottom: 2px;
-  border: 1px solid #e5e5e5;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.accordion-heading {
-  border-bottom: 0;
-}
-.accordion-heading .accordion-toggle {
-  display: block;
-  padding: 8px 15px;
-}
-.accordion-inner {
-  padding: 9px 15px;
-  border-top: 1px solid #e5e5e5;
-}
-.carousel {
-  position: relative;
-  margin-bottom: 18px;
-  line-height: 1;
-}
-.carousel-inner {
-  overflow: hidden;
-  width: 100%;
-  position: relative;
-}
-.carousel .item {
-  display: none;
-  position: relative;
-  -webkit-transition: .6s ease-in-out left;
-  -moz-transition: .6s ease-in-out left;
-  -ms-transition: .6s ease-in-out left;
-  -o-transition: .6s ease-in-out left;
-  transition: .6s ease-in-out left;
-}
-.carousel .item > img {
-  display: block;
-  line-height: 1;
-}
-.carousel .active, .carousel .next, .carousel .prev {
-  display: block;
-}
-.carousel .active {
-  left: 0;
-}
-.carousel .next, .carousel .prev {
-  position: absolute;
-  top: 0;
-  width: 100%;
-}
-.carousel .next {
-  left: 100%;
-}
-.carousel .prev {
-  left: -100%;
-}
-.carousel .next.left, .carousel .prev.right {
-  left: 0;
-}
-.carousel .active.left {
-  left: -100%;
-}
-.carousel .active.right {
-  left: 100%;
-}
-.carousel-control {
-  position: absolute;
-  top: 40%;
-  left: 15px;
-  width: 40px;
-  height: 40px;
-  margin-top: -20px;
-  font-size: 60px;
-  font-weight: 100;
-  line-height: 30px;
-  color: #ffffff;
-  text-align: center;
-  background: #222222;
-  border: 3px solid #ffffff;
-  -webkit-border-radius: 23px;
-  -moz-border-radius: 23px;
-  border-radius: 23px;
-  opacity: 0.5;
-  filter: alpha(opacity=50);
-}
-.carousel-control.right {
-  left: auto;
-  right: 15px;
-}
-.carousel-control:hover {
-  color: #ffffff;
-  text-decoration: none;
-  opacity: 0.9;
-  filter: alpha(opacity=90);
-}
-.carousel-caption {
-  position: absolute;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  padding: 10px 15px 5px;
-  background: #333333;
-  background: rgba(0,0,0,.75);
-}
-.carousel-caption h4, .carousel-caption p {
-  color: #ffffff;
-}
-.hero-unit {
-  padding: 60px;
-  margin-bottom: 30px;
-  background-color: #f5f5f5;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-}
-.hero-unit h1 {
-  margin-bottom: 0;
-  font-size: 60px;
-  line-height: 1;
-  letter-spacing: -1px;
-}
-.hero-unit p {
-  font-size: 18px;
-  font-weight: 200;
-  line-height: 27px;
-}
-.pull-right {
-  float: right;
-}
-.pull-left {
-  float: left;
-}
-.hide {
-  display: none;
-}
-.show {
-  display: block;
-}
-.invisible {
-  visibility: hidden;
-}
-.datepicker {
-  top: 0;
-  left: 0;
-  padding: 4px;
-  margin-top: 1px;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.datepicker:before {
-  content: '';
-  display: inline-block;
-  border-left: 7px solid transparent;
-  border-right: 7px solid transparent;
-  border-bottom: 7px solid #cccccc;
-  border-bottom-color: rgba(0,0,0,0.2);
-  position: absolute;
-  top: -7px;
-  left: 6px;
-}
-.datepicker:after {
-  content: '';
-  display: inline-block;
-  border-left: 6px solid transparent;
-  border-right: 6px solid transparent;
-  border-bottom: 6px solid #ffffff;
-  position: absolute;
-  top: -6px;
-  left: 7px;
-}
-.datepicker > div {
-  display: none;
-}
-.datepicker table {
-  width: 100%;
-  margin: 0;
-}
-.datepicker td, .datepicker th {
-  text-align: center;
-  width: 20px;
-  height: 20px;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.datepicker td.day:hover {
-  background: #eeeeee;
-  cursor: pointer;
-}
-.datepicker td.day.disabled {
-  color: #eeeeee;
-}
-.datepicker td.old, .datepicker td.new {
-  color: #999999;
-}
-.datepicker td.active, .datepicker td.active:hover {
-  color: #ffffff;
-  background-color: #006dcc;
-  background-image: -moz-linear-gradient(top,#dd4814,#dd4a14);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#dd4814),to(#dd4a14));
-  background-image: -webkit-linear-gradient(top,#dd4814,#dd4a14);
-  background-image: -o-linear-gradient(top,#dd4814,#dd4a14);
-  background-image: linear-gradient(to bottom,#dd4814,#dd4a14);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
-  border-color: #dd4a14 #dd4a14 #002a80;
-  border-color: rgba(0,0,0,0.1)rgba(0,0,0,0.1)rgba(0,0,0,0.25);
-  *background-color: #dd4a14;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
-}
-.datepicker td.active:hover,
-.datepicker td.active:hover:hover,
-.datepicker td.active:focus,
-.datepicker td.active:hover:focus,
-.datepicker td.active:active,
-.datepicker td.active:hover:active,
-.datepicker td.active.active,
-.datepicker td.active:hover.active,
-.datepicker td.active.disabled,
-.datepicker td.active:hover.disabled,
-.datepicker td.active[disabled],
-.datepicker td.active:hover[disabled] {
-  color: #ffffff;
-  background-color: #dd4a14;
-  *background-color: #003bb3;
-}
-.datepicker td.active:active,
-.datepicker td.active:hover:active,
-.datepicker td.active.active,
-.datepicker td.active:hover.active {
-  background-color: #003399 \9;
-}
-.datepicker td span {
-  display: block;
-  width: 47px;
-  height: 54px;
-  line-height: 54px;
-  float: left;
-  margin: 2px;
-  cursor: pointer;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.datepicker td span:hover {
-  background: #eeeeee;
-}
-.datepicker td span.active {
-  color: #ffffff;
-  background-color: #006dcc;
-  background-image: -moz-linear-gradient(top,#dd4814,#dd4a14);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#dd4814),to(#dd4a14));
-  background-image: -webkit-linear-gradient(top,#dd4814,#dd4a14);
-  background-image: -o-linear-gradient(top,#dd4814,#dd4a14);
-  background-image: linear-gradient(to bottom,#dd4814,#dd4a14);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
-  border-color: #dd4a14 #dd4a14 #002a80;
-  border-color: rgba(0,0,0,0.1)rgba(0,0,0,0.1)rgba(0,0,0,0.25);
-  *background-color: #dd4a14;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
-}
-.datepicker td span.active:hover,
-.datepicker td span.active:focus,
-.datepicker td span.active:active,
-.datepicker td span.active.active,
-.datepicker td span.active.disabled,
-.datepicker td span.active[disabled] {
-  color: #ffffff;
-  background-color: #dd4a14;
-  *background-color: #003bb3;
-}
-.datepicker td span.active:active, .datepicker td span.active.active {
-  background-color: #003399 \9;
-}
-.datepicker td span.old {
-  color: #999999;
-}
-.datepicker th.switch {
-  width: 145px;
-}
-.datepicker th.next, .datepicker th.prev {
-  font-size: 21px;
-}
-.datepicker thead tr:first-child th {
-  cursor: pointer;
-}
-.datepicker thead tr:first-child th:hover {
-  background: #eeeeee;
-}
-.input-append.date .add-on i, .input-prepend.date .add-on i {
-  display: block;
-  cursor: pointer;
-  width: 16px;
-  height: 16px;
-}
-.nav_accordion {
-  background-color: #f9f9f9;
-  color: #6e6e6e;
-  margin: 0px 0px;
-}
-.nav_accordion dt, .nav_accordion dd {
-  padding: 10px 0 10px 0;
-  line-height: 18px;
-}
-.nav_accordion dt h4, .nav_accordion dd h4 {
-  border: 1px solid #bbbbbb;
-  border-right: 0;
-  border-bottom: 0;
-  background-color: #f0f0f0;
-  background-repeat: no-repeat;
-  background-position: 96% center;
-  background-image: url('/static/dashboard/img/right_droparrow.png');
-  padding: 10px 0 10px 0;
-  line-height: 16px;
-  margin-top: 0;
-  color: #6e6e6e;
-  font-weight: bold;
-  text-rendering: optimizelegibility;
-  max-width: 193px;
-  padding-right: 16px;
-  cursor: pointer;
-}
-.nav_accordion dt h4 div, .nav_accordion dd h4 div {
-  color: #6e6e6e;
-  font-size: 14px;
-  margin: 0 0 0 14px;
-  display: block;
-  font-weight: bold;
-  outline: none;
-  -moz-outline-style: none;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  max-width: 177px;
-}
-.nav_accordion dt h4.active, .nav_accordion dd h4.active {
-  border-bottom: 1px solid #bbbbbb;
-  background-image: url('/static/dashboard/img/drop_arrow.png');
-}
-.nav_accordion dt a, .nav_accordion dd a {
-  color: #6e6e6e;
-  font-size: 16px;
-  margin: 0 0 0 14px;
-  padding: 0;
-  display: block;
-  font-weight: bold;
-  outline: none;
-  -moz-outline-style: none;
-  text-decoration: none;
-}
-.nav_accordion dt ul, .nav_accordion dd ul {
-  list-style: none outside none;
-  margin: 10px 0 0;
-  width: 222px;
-}
-.nav_accordion dt li a, .nav_accordion dd li a {
-  width: 185px;
-  padding: 10px;
-  display: block;
-  line-height: 18px;
-  margin-left: 20px;
-  font-weight: normal;
-  font-size: 13px;
-}
-.nav_accordion dt li a.active, .nav_accordion dd li a.active {
-  background: #ffffff;
-  border-top: 2px solid #e5e5e5;
-  border-left: 4px solid #d93c27;
-  border-bottom: 2px solid #e5e5e5;
-  margin-left: 18px;
-  -webkit-border-radius: 5px 0 0 5px;
-  -moz-border-radius: 5px 0 0 5px;
-  border-radius: 5px 0 0 5px;
-}
-.nav_accordion dt li a:last-child, .nav_accordion dd li a:last-child {
-  margin-bottom: 8px;
-}
-.nav_accordion dd {
-  padding: 0;
-  font-size: 12px;
-}
-.nav_accordion dt {
-  border-top: 1px solid #bbbbbb;
-  background-color: #e5e5e5;
-  background-repeat: no-repeat;
-  background-position: 96% center;
-  background-image: url('/static/dashboard/img/right_droparrow.png');
-  padding-right: 16px;
-  max-width: 217px;
-  cursor: pointer;
-}
-.nav_accordion dt div {
-  color: #6e6e6e;
-  font-size: 14px;
-  margin: 0 0 0 14px;
-  padding: 0;
-  font-weight: bold;
-  outline: none;
-  -moz-outline-style: none;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  max-width: 201px;
-}
-.nav_accordion dt.active {
-  background-image: url('/static/dashboard/img/drop_arrow.png');
-}
-.nav_accordion dt:first-child {
-  border-top: 0;
-}
-.nav_accordion dt a {
-  text-decoration: none;
-}
-.clearfix:after {
-  visibility: hidden;
-  display: block;
-  font-size: 0;
-  content: " ";
-  clear: both;
-  height: 0;
-}
-* html .clearfix {
-  zoom: 1;
-}
-* :first-child + html .clearfix {
-  zoom: 1;
-}
-@font-face {
-  font-family: 'anivers';
-  src: url('/static/dashboard/fonts/Anivers_Regular-webfont.eot');
-  src: url('/static/dashboard/fonts/Anivers_Regular-webfont.eot?iefix')format('eot'), url('/static/dashboard/fonts/Anivers_Regular-webfont.woff')format('woff'), url('/static/dashboard/fonts/Anivers_Regular-webfont.ttf')format('truetype'), url('/static/dashboard/fonts/Anivers_Regular-webfont.svg#webfont3JLVF59W') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-a {
-  color: #43a1d6;
-}
-ul {
-  list-style: none;
-  margin: 0;
-}
-dt {
-  font-weight: bold;
-}
-.topbar {
-  background: #f2f2f2;
-  background-color: #efefef;
-  background-image: -moz-linear-gradient(top,#ffffff,#d8d8d8);
-  background-image: -ms-linear-gradient(top,#ffffff,#d8d8d8);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#ffffff),to(#d8d8d8));
-  background-image: -webkit-linear-gradient(top,#ffffff,#d8d8d8);
-  background-image: -o-linear-gradient(top,#ffffff,#d8d8d8);
-  background-image: linear-gradient(top,#ffffff,#d8d8d8);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#d8d8d8', GradientType=0);
-  border-bottom: 1px solid #cccccc;
-  padding: 10px 0px 15px 0px;
-}
-.topbar .switcher_bar {
-  display: inline-block;
-  height: auto;
-  width: 160px;
-  background-position: 140px center;
-  margin-bottom: 0;
-  margin-right: 10px;
-  padding: 0;
-  background-image: url('/static/dashboard/img/drop_arrow.png');
-  background-color: #eeeeee;
-  background-repeat: no-repeat;
-  border: 1px solid #cccccc;
-  border-bottom-color: #bbbbbb;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-}
-.topbar .switcher_bar a {
-  margin-left: 0;
-  display: block;
-}
-.topbar .switcher_bar ul {
-  width: 130px;
-}
-.topbar .switcher_bar h3 {
-  padding: 2px 10px 1px;
-  font-size: 13px !important;
-  line-height: 20px;
-  color: #6e6e6e;
-  text-decoration: none;
-}
-.topbar .switcher_bar div {
-  padding: 2px 10px 1px;
-  font-size: 11px !important;
-  line-height: 20px;
-  color: #6e6e6e;
-  text-decoration: none;
-  overflow: hidden;
-  padding-right: 32px;
-  text-overflow: ellipsis;
-}
-.topbar .context-box {
-  display: inline;
-}
-#profile_editor_switcher {
-  width: auto;
-  max-width: 200px;
-  vertical-align: top;
-  white-space: nowrap;
-  background-image: url('/static/dashboard/img/profile_drop.png');
-  background-repeat: no-repeat;
-  background-position: right center;
-}
-#user_info {
-  color: #ffffff;
-  margin: auto 10px;
-  padding-bottom: 15px;
-  padding-right: 25px;
-}
-#user_info > a {
-  color: #ffffff;
-  margin-left: 15px;
-  line-height: 20px;
-  font-size: 13px !important;
-}
-.page-header {
-  margin: 0 0 5px 0;
-  padding: 0 0 5px 0;
-  border-bottom: 2px solid #e5e5e5;
-  font-family: anivers;
-  height: auto;
-  width: 100%;
-}
-h2 {
-  color: #6a6a6a;
-  font-size: 30px;
-  font-weight: normal;
-}
-body {
-  background-color: #ffffff;
-  min-width: 890px;
-}
-#splash {
-  background: #fafafa url(../img/dots.png) repeat center top;
-}
-#splash .login {
-  background: #dd4814 url('../img/ubuntu.png') no-repeat center 35px;
-  position: absolute;
-  top: 80px;
-  left: 50%;
-  margin: 0 0 0 -195px;
-  padding-top: 100px;
-  width: 390px;
-  border: 1px solid #e1e1e1;
-  max-height: none;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-  -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-  box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding-box;
-  background-clip: padding-box;
-}
-
-#splash .login form,
-#splash .login .modal-header {
-  background-color: #ffffff;
-}
-
-#splash .login .modal-header {
-  border-top: 1px solid #c44012;
-}
-
-#splash .login form .error {
-  width: 100%;
-}
-#splash .login form input {
-  width: 350px;
-}
-#splash .login form select {
-  width: 360px;
-}
-#splash .help-block {
-  display: none;
-}
-#create_container_form .modal-footer {
-  margin-top: 190px;
-}
-.nav li a {
-  color: #8eacb7;
-  text-shadow: none;
-}
-.container-fluid {
-  padding-left: 0;
-}
-.sidebar {
-  background-color: #f9f9f9;
-  border-right: 5px solid #e5e5e5;
-  border-bottom: 5px solid #e5e5e5;
-  -webkit-border-radius: 0 0 5px 0;
-  -moz-border-radius: 0 0 5px 0;
-  border-radius: 0 0 5px 0;
-  float: left;
-  min-width: 231px;
-}
-.sidebar h4 {
-  margin-left: 14px;
-  color: #999999;
-}
-.sidebar .nav-tabs {
-  margin-top: -34px;
-}
-.sidebar .nav-tabs li.active a {
-  background-color: #edf9ff;
-}
-h1.brand {
-  width: 100%;
-  margin: 0;
-}
-h1.brand a {
-  background: url('/static/dashboard/img/logo.png') top left no-repeat;
-  display: block;
-  float: left;
-  width: 216px;
-  height: 35px;
-  text-indent: -9999px;
-  margin-left: 16px;
-}
-a.current_item {
-  width: 163px;
-  float: left;
-}
-a.current_item:hover {
-  text-decoration: none;
-}
-a.current_item:hover h3, a.current_item:hover h4 {
-  color: #39738c;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.sidebar .switcher_bar {
-  width: 190px;
-  height: 38px;
-  padding: 5px 0;
-  margin-left: 14px;
-  margin-bottom: 15px;
-}
-.sidebar .switcher_bar a.dropdown-toggle {
-  display: block;
-  padding: 5px 0;
-  background-image: url('/static/dashboard/img/drop_arrow.png');
-  border: 1px solid #c0d9e4;
-  background-color: #e9f5fa;
-  background-repeat: no-repeat;
-  background-position: 167px 23px;
-}
-.sidebar .switcher_bar a.dropdown-toggle:hover {
-  text-decoration: none;
-  background-color: #cde8f4;
-}
-.sidebar .switcher_bar:focus {
-  outline: none;
-}
-.sidebar .switcher_bar h3 {
-  color: #4790ae;
-  font-size: 16px;
-  margin: -6px 0 0 14px;
-  padding: 0;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.sidebar .switcher_bar h3:hover {
-  white-space: normal;
-  overflow: visible;
-  text-overflow: none;
-  padding-right: 1em;
-  word-wrap: break-word;
-}
-.sidebar .switcher_bar h4 {
-  color: #6fabc4;
-  font-size: 10px;
-  text-transform: uppercase;
-  font-weight: normal;
-  padding: 0;
-}
-.sidebar .switcher_bar ul {
-  border: 1px solid #c0d9e4;
-  margin-left: -1px;
-  width: 190px;
-}
-.sidebar .switcher_bar li a:hover {
-  background: #92d6f1;
-}
-#usage {
-  margin-bottom: 25px;
-  height: 125px;
-}
-.usage_block {
-  background: #e8f8ff;
-  color: #84b6c5;
-  border: 1px solid #afe3fb;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  float: left;
-  width: 29%;
-  margin-right: 5%;
-  min-height: 125px;
-}
-.usage_block.last {
-  margin-right: 0;
-}
-.usage_block h3 {
-  background: #cef0ff;
-  color: #4fa5bf;
-  font-weight: normal;
-  padding: 0 0 0 10px;
-  border-bottom: 1px solid #c6e7f5;
-  -webkit-border-top-left-radius: 5px;
-  -webkit-border-top-right-radius: 5px;
-  -moz-border-radius-topleft: 5px;
-  -moz-border-radius-topright: 5px;
-  border-top-left-radius: 5px;
-  border-top-right-radius: 5px;
-}
-.usage_block ul {
-  margin: 10px;
-}
-.usage_block .quantity {
-  font-size: 25px;
-}
-.usage_block li {
-  font-size: 11px;
-  margin: 0 0 15px 0;
-}
-.usage_block .unit {
-  font-size: 11px;
-  text-transform: uppercase;
-  padding: 0 0 0 1px;
-}
-.table-bordered {
-  border: none;
-}
-.table_header {
-  min-height: 35px;
-  padding: 5px 0;
-}
-.table_caption th {
-  background-color: transparent;
-  border: none;
-}
-.table-bordered tr.table_caption + tr th {
-  border-top: 1px solid #dddddd;
-}
-.table-bordered tr.table_caption + tr th:first-child,
-.table-bordered tr.table_caption + tr th.hide + th {
-  -moz-border-radius-topleft: 4px;
-  -webkit-border-top-left-radius: 4px;
-  border-top-left-radius: 4px;
-  border-left: 1px solid #dddddd;
-}
-.table-bordered tr.table_caption + tr th:last-child {
-  -moz-border-radius-topright: 4px;
-  -webkit-border-top-right-radius: 4px;
-  border-top-right-radius: 4px;
-  border-right: 1px solid #dddddd;
-}
-.table-bordered tbody tr td:first-child, .table-bordered tfoot tr td:first-child {
-  border-left: 1px solid #dddddd;
-}
-.table-bordered tbody tr td:last-child, .table-bordered tfoot tr td:last-child {
-  border-right: 1px solid #dddddd;
-}
-.table-bordered tfoot tr td:first-child {
-  border-bottom: 1px solid #dddddd;
-  -moz-border-radius-bottomleft: 4px;
-  -webkit-border-bottom-left-radius: 4px;
-  border-bottom-left-radius: 4px;
-}
-.table-bordered tfoot tr td:last-child {
-  border-bottom: 1px solid #dddddd;
-  -moz-border-radius-bottomright: 4px;
-  -webkit-border-bottom-right-radius: 4px;
-  border-bottom-right-radius: 4px;
-}
-.table_title h3, .table_header h3 {
-  font-family: anivers;
-  font-weight: normal;
-  font-size: 24px;
-  margin-bottom: 5px;
-  float: left;
-}
-.table th.header {
-  cursor: pointer;
-}
-.table th.header:hover {
-  background-color: #e8e8e8;
-  text-decoration: underline;
-}
-.table tbody td.anchor a {
-  display: block;
-  padding: 8px;
-}
-.table tr.table_caption th.header:hover {
-  background-color: transparent;
-  cursor: default;
-}
-.table th.headerSortUp:hover, .table th.headerSortDown:hover {
-  background-color: #dfdfdf;
-}
-.table th.headerSortUp, .table th.headerSortDown {
-  background-color: #dfdfdf;
-  background-repeat: no-repeat;
-  background-position: 98% center;
-}
-.table th.headerSortDown {
-  background-image: url('/static/dashboard/img/drop_arrow.png');
-}
-.table th.headerSortUp {
-  background-image: url('/static/dashboard/img/up_arrow.png');
-}
-.table tr.summation td:first-child, .table tr.summation td:last-child {
-  border-radius: 0;
-  border-bottom: 0 none;
-}
-th {
-  background: #f1f1f1;
-}
-td.anchor {
-  padding: 0;
-}
-small {
-  font-size: 11px;
-}
-.main_nav {
-  list-style: none;
-  width: 222px;
-  margin: 10px 0 20px 0;
-}
-.main_nav a {
-  color: #999999;
-  width: 185px;
-  padding: 10px;
-  display: block;
-  margin-left: 20px;
-}
-.main_nav a.active {
-  background: #ffffff;
-  border: 2px solid #d8d8d8;
-  border-right: 0;
-  border-bottom-color: #cccccc;
-}
-table form {
-  margin-bottom: 0;
-  width: 1px;
-}
-.messages {
-  position: fixed;
-  z-index: 9999;
-  top: 20px;
-  right: 20px;
-  width: 300px;
-}
-.messages .alert-block {
-  -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-  -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-  box-shadow: 0 3px 7px rgba(0,0,0,0.3);
-}
-.messages .alert-block.alert-error {
-  border: 1px solid #9d261d;
-}
-.messages .alert-block.alert-success {
-  border: 1px solid #46a546;
-}
-.alert-block .alert-actions {
-  margin-top: -23px;
-  margin-right: -23px;
-}
-.modal > form, .login > form, .alert-actions > form {
-  margin-bottom: 0;
-}
-.alert-block p {
-  overflow: hidden;
-  word-wrap: break-word;
-}
-.alert-block p:last-child {
-  margin-bottom: 0;
-}
-#actions.single {
-  width: 90px;
-}
-.table-striped tr td {
-  transition: background 0.2s;
-  -webkit-transition: background 0.2s;
-  -moz-transition: background 0.2s;
-  -o-transition: background 0.2s;
-}
-.inspect {
-  float: left;
-  display: block;
-  margin-top: 5px;
-  margin-right: 25px;
-}
-.table {
-  margin-bottom: 25px;
-}
-.table tr td {
-  vertical-align: middle;
-}
-.table tr.empty td {
-  text-align: center;
-}
-.table tfoot tr td {
-  border-top: 1px solid #dddddd;
-  background-color: #f1f1f1;
-  font-size: 11px;
-  line-height: 14px;
-}
-.table_actions {
-  float: right;
-  min-width: 400px;
-}
-.table_actions .table_search, .table_actions .table_filter {
-  display: inline-block;
-}
-.table_search input {
-  background: url('/static/dashboard/img/search.png') no-repeat 195px 5px;
-  display: inline-block;
-  margin-bottom: 0;
-}
-.table_actions a, .table_actions button {
-  float: right;
-  margin-left: 10px;
-}
-.table_actions button.filter {
-  margin-left: 0;
-}
-.table_actions a.btn-create,
-.table_actions button.btn-create,
-.table_actions a.btn-launch {
-  padding-left: 23px;
-  position: relative;
-}
-.table_actions a.btn-create:before,
-.table_actions button.btn-create:before,
-.table_actions a.btn-launch:before {
-  display: inline-block;
-  content: "";
-  width: 18px;
-  height: 20px;
-  margin-top: 1px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings.png');
-  background-position: -403px -92px;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 0px;
-  left: 0px;
-}
-.table_actions a.btn-download, .table_actions button.btn-download {
-  padding-left: 23px;
-  position: relative;
-}
-.table_actions a.btn-download:before, .table_actions button.btn-download:before {
-  display: inline-block;
-  content: "";
-  width: 18px;
-  height: 20px;
-  margin-top: 1px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings.png');
-  background-position: -91px -19px;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 0px;
-  left: 0px;
-}
-.table_actions a.btn-upload, .table_actions button.btn-upload {
-  padding-left: 23px;
-  position: relative;
-}
-.table_actions a.btn-upload:before, .table_actions button.btn-upload:before {
-  display: inline-block;
-  content: "";
-  width: 18px;
-  height: 20px;
-  margin-top: 1px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings.png');
-  background-position: -283px -92px;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 0px;
-  left: 0px;
-}
-.table_actions button.btn-delete, .table_actions button.btn-terminate {
-  padding-left: 23px;
-  position: relative;
-}
-.table_actions button.btn-delete:before, .table_actions button.btn-terminate:before {
-  display: inline-block;
-  content: "";
-  width: 18px;
-  height: 20px;
-  margin-top: 1px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings-white.png');
-  background-position: -451px 5px;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 0px;
-  left: 0px;
-}
-td.no-transition {
-  -webkit-transition: none !important;
-  -moz-transition: none !important;
-  -o-transition: none !important;
-  -ms-transition: none !important;
-  transition: none !important;
-}
-td.success {
-  background-color: #dff0d8 !important;
-}
-td.loading {
-  background-color: #e6e6e6 !important;
-}
-td.inline_edit_available div.table_cell_wrapper .table_cell_action button.ajax-inline-edit {
-  padding: 9px 12px 9px 12px;
-  position: relative;
-  border-radius: 0px;
-  padding: 10px 10px 10px 10px;
-  position: relative;
-  display: block;
-  background: none;
-  border: 0 none;
-}
-td.inline_edit_available div.table_cell_wrapper .table_cell_action button.ajax-inline-edit:before {
-  display: inline-block;
-  content: "";
-  width: 18px;
-  height: 20px;
-  margin-top: 0px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings.png');
-  background-position: 0 -72px;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 2px;
-  left: 4px;
-}
-div.table_cell_wrapper {
-  min-height: 18px;
-  position: relative;
-}
-div.table_cell_wrapper .inline-edit-label {
-  display: inline;
-}
-div.table_cell_wrapper .inline-edit-form {
-  float: left;
-}
-div.table_cell_wrapper .inline-edit-actions,
-div.table_cell_wrapper .table_cell_action {
-  float: right;
-  width: 20px;
-  margin: 0;
-}
-div.table_cell_wrapper .inline-edit-actions button.inline-edit-cancel,
-div.table_cell_wrapper .table_cell_action button.inline-edit-cancel {
-  float: right;
-  padding: 9px 12px 9px 12px;
-  position: relative;
-  border-radius: 0px;
-}
-div.table_cell_wrapper .inline-edit-actions button.inline-edit-cancel:before,
-div.table_cell_wrapper .table_cell_action button.inline-edit-cancel:before {
-  display: inline-block;
-  content: "";
-  width: 18px;
-  height: 20px;
-  margin-top: 0px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings.png');
-  background-position: -312px 0;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 1px;
-  left: 5px;
-}
-div.table_cell_wrapper .inline-edit-actions button.inline-edit-submit,
-div.table_cell_wrapper .table_cell_action button.inline-edit-submit {
-  padding: 9px 12px 9px 12px;
-  position: relative;
-  border-radius: 0px;
-}
-div.table_cell_wrapper .inline-edit-actions button.inline-edit-submit:before,
-div.table_cell_wrapper .table_cell_action button.inline-edit-submit:before {
-  display: inline-block;
-  content: "";
-  width: 18px;
-  height: 20px;
-  margin-top: 0px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings-white.png');
-  background-position: -288px 0;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 1px;
-  left: 5px;
-}
-div.table_cell_wrapper .inline-edit-actions button.ajax-inline-edit,
-div.table_cell_wrapper .table_cell_action button.ajax-inline-edit {
-  padding: 9px 12px 9px 12px;
-  position: relative;
-  border-radius: 0px;
-  padding: 10px 10px 10px 10px;
-  position: relative;
-  display: none;
-  background: none;
-  border: 0 none;
-}
-div.table_cell_wrapper .inline-edit-actions button.ajax-inline-edit:before,
-div.table_cell_wrapper .table_cell_action button.ajax-inline-edit:before {
-  display: inline-block;
-  content: "";
-  width: 18px;
-  height: 20px;
-  margin-top: 0px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings.png');
-  background-position: 0 -72px;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 2px;
-  left: 4px;
-}
-div.table_cell_wrapper .table_cell_action {
-  width: auto;
-  margin: auto 0px 0px 0px;
-  display: none;
-  position: absolute;
-  top: -3px;
-  right: 0px;
-  z-index: 99;
-}
-div.table_cell_wrapper .table_cell_action.hovered {
-  background-image: -webkit-linear-gradient(top,#ffffff,#e6e6e6);
-  border-color: rgba(0,0,0,0.1)rgba(0,0,0,0.1)rgba(0,0,0,0.25);
-  border: 1px solid #cccccc;
-  border-bottom-color: #bbbbbb;
-  border-radius: 4px;
-}
-div.table_cell_wrapper .inline-edit-error .error {
-  padding: 9px 12px 9px 12px;
-  position: relative;
-  border-radius: 0px;
-  position: absolute;
-  width: 18px;
-  height: 20px;
-  top: 20px;
-  left: 2px;
-  padding: 0;
-}
-div.table_cell_wrapper .inline-edit-error .error:before {
-  display: inline-block;
-  content: "";
-  width: 20px;
-  height: 20px;
-  margin-top: 0px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings.png');
-  background-position: -144px -120px;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 0px;
-  left: 0px;
-}
-div.table_cell_wrapper .inline-edit-status .success {
-  padding: 9px 12px 9px 12px;
-  position: relative;
-  border-radius: 0px;
-  padding: 0;
-  position: absolute;
-  top: 2px;
-  right: 18px;
-  width: 18px;
-  height: 20px;
-  z-index: 100;
-}
-div.table_cell_wrapper .inline-edit-status .success:before {
-  display: inline-block;
-  content: "";
-  width: 20px;
-  height: 20px;
-  margin-top: 0px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/bootstrap/img/glyphicons-halflings.png');
-  background-position: -288px 0px;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 0px;
-  left: 0px;
-}
-div.table_cell_wrapper .inline-edit-status .loading {
-  padding: 9px 12px 9px 12px;
-  position: relative;
-  border-radius: 0px;
-  padding: 0;
-  position: absolute;
-  top: 0px;
-  right: 24px;
-  width: 18px;
-  height: 20px;
-  z-index: 100;
-}
-div.table_cell_wrapper .inline-edit-status .loading:before {
-  display: inline-block;
-  content: "";
-  width: 20px;
-  height: 20px;
-  margin-top: 0px;
-  *margin-right: .3em;
-  line-height: 14px;
-  background-image: url('/static/dashboard/img/spinner.gif');
-  background-position: 0px 0px;
-  background-repeat: no-repeat;
-  position: absolute;
-  top: 0px;
-  left: 0px;
-}
-div.table_cell_wrapper .inline-edit-status.inline-edit-mod .loading {
-  top: 15px;
-  right: 34px;
-}
-.table_header .table_actions {
-  min-width: 0;
-}
-.table_header .table_actions a,
-.table_header .table_actions > button,
-.table_header .table_actions .table_search button {
-  display: inline-block;
-  float: none;
-}
-.table_header .table_actions .table_search select {
-  margin-bottom: 0;
-  line-height: 22px;
-}
-.table_header .table_filter {
-  vertical-align: bottom;
-  margin-right: 20px;
-}
-.table_header .table_filter i {
-  vertical-align: middle;
-}
-.table_actions form {
-  float: right;
-  margin-left: 10px;
-}
-.hidden {
-  display: none;
-}
-.table-striped.datatable tbody tr.odd td {
-  background-color: #f9f9f9;
-}
-.table-striped.datatable tbody tr.even td {
-  background-color: inherit;
-}
-.table-striped.datatable tbody tr.odd:hover td,
-.table-striped.datatable tbody tr.even:hover td,
-.table-striped.datatable tbody tr:hover th {
-  background-color: #f5f5f5;
-}
-.table-striped tbody tr.status_unknown:nth-child(odd)td {
-  background-color: #ffffb5;
-}
-.table-striped tbody tr.status_unknown:nth-child(even)td {
-  background-color: #ffffc6;
-}
-.nowrap-col {
-  white-space: nowrap;
-}
-.overview {
-  font-size: 24px;
-}
-#monitoring {
-  background: #f8f8f8;
-  font-size: 14px;
-  height: 20px;
-  margin: -18px 0 25px;
-  padding: 10px;
-  border: 1px solid #e1e1e1;
-  font-family: "anivers";
-}
-#monitoring h3 {
-  font-size: 14px;
-  font-weight: normal;
-  float: left;
-  line-height: 18px;
-}
-#external_links, #external_links li {
-  float: left;
-}
-#external_links li {
-  margin: 0 0 0 15px;
-}
-.datatable th.narrow {
-  width: 1em;
-}
-.datatable input {
-  padding: 2px 5px;
-  margin: 0;
-}
-.datatable th span.required:after {
-  content: "*";
-  font-weight: bold;
-  line-height: 0;
-  padding-left: 4px;
-  color: #3290c0;
-}
-form label {
-  text-align: left;
-  color: #555555;
-  font-weight: bold;
-}
-.modal {
-  width: 700px;
-  max-height: none;
-  top: 80px;
-  margin-top: 0;
-  position: absolute;
-}
-.modal.fullscreen {
-  width: 90%;
-  margin: auto;
-  left: 5%;
-}
-.modal.loading {
-  width: 150px;
-  height: 150px;
-  margin: 0 auto;
-  overflow: hidden;
-}
-.modal.loading p {
-  text-align: center;
-  position: absolute;
-  bottom: 0;
-  width: 150px;
-}
-.datepicker {
-  margin-top: 10px;
-}
-.datepicker input {
-  width: 65px;
-  margin-right: 10px;
-}
-.datepicker .btn {
-  margin-right: 10px;
-}
-form.horizontal .form-field {
-  float: left;
-}
-form.horizontal.split_half .form-field {
-  width: 334px;
-}
-form.horizontal.split_quarter .form-field {
-  width: 167px;
-}
-form.horizontal.split_five .form-field {
-  width: 133px;
-}
-form.horizontal fieldset {
-  width: 100%;
-}
-.modal-body {
-  overflow-y: visible;
-  max-height: none;
-}
-.modal-body table {
-  margin-bottom: 30px;
-}
-.modal-body ~ hr {
-  margin-bottom: 0;
-}
-.static_page {
-  float: left;
-  width: 700px;
-  background-color: #ffffff;
-  border: 1px solid #dddddd;
-}
-.static_page > form {
-  margin-bottom: 0;
-}
-.left {
-  float: left;
-  width: 347px;
-  margin-right: 15px;
-}
-.left form {
-  margin: 0;
-}
-.right {
-  float: left;
-  width: 308px;
-}
-.clear {
-  clear: both;
-  width: 0;
-  height: 0;
-  padding: 0;
-  margin: 0;
-}
-.modal-body fieldset {
-  margin: 0;
-  padding: 0;
-}
-.modal-body fieldset ul {
-  width: 90%;
-}
-.modal-body fieldset .form-field input, .modal-body fieldset .form-field textarea {
-  width: 298px;
-}
-.modal-body fieldset .form-field select {
-  width: 308px;
-}
-.modal-body fieldset .form-field textarea {
-  height: 36px;
-}
-.modal-footer input {
-  width: auto;
-}
-.modal-body .modal-footer {
-  width: 670px;
-  margin-left: -25px;
-  margin-right: -15px;
-}
-.modal-footer a.close {
-  margin-top: 0;
-  margin-right: 5px;
-  font-size: 12px;
-  color: #666666;
-  font-weight: normal;
-  filter: alpha(opacity=100);
-  -khtml-opacity: 1;
-  -moz-opacity: 1;
-  opacity: 1;
-}
-.modal-footer a.close:hover {
-  color: #333333;
-  text-decoration: underline;
-}
-.modal-body .help-block {
-  text-align: left;
-  float: left;
-  width: 100%;
-  margin-bottom: 10px;
-}
-#create_keypair_modal .clearfix {
-  margin-bottom: 115px;
-}
-#actions {
-  width: 90px;
-}
-#actions .btn {
-  margin-bottom: 5px;
-}
-#actions a.btn {
-  width: 70px;
-}
-#actions input.btn {
-  text-align: left;
-}
-#images #actions {
-  width: 100px;
-}
-.details-modal .modal-body {
-  padding-bottom: 20px;
-}
-.form-inline {
-  display: inline;
-}
-.form-inline input, .form-inline button, .form-inline a.btn {
-  margin-left: 5px;
-}
-td.select {
-  width: 10px;
-}
-td.actions_column {
-  white-space: nowrap;
-  padding: 10px;
-  position: relative;
-  width: 200px;
-}
-td.actions_column .btn-group {
-  display: inline-block;
-}
-td.actions_column .row_actions a,
-td.actions_column .row_actions input,
-td.actions_column .row_actions button {
-  background: none;
-  float: none;
-  display: block;
-  padding: 5px 10px;
-  color: black;
-  text-align: left;
-  border-radius: 0;
-  border: 0 none;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-td.actions_column .row_actions .hide {
-  display: none;
-}
-td.actions_column .btn-action-required {
-  font-weight: bold;
-}
-.tab-content {
-  overflow: visible;
-}
-.btn.hide, .btn-group .hide {
-  display: none;
-}
-.btn-group .dropdown-toggle:focus {
-  outline: none;
-}
-.dropdown-menu button {
-  line-height: 18px;
-  width: 100%;
-}
-.btn-group .dropdown-menu .btn {
-  border-radius: 0;
-}
-.dropdown-menu .btn.btn-danger,
-.dropdown-menu .btn.btn-danger:hover,
-.dropdown-menu .btn.btn-success,
-.dropdown-menu .btn.btn-success:hover,
-.dropdown-menu .btn.btn-info,
-.dropdown-menu .btn.btn-info:hover {
-  text-shadow: none;
-}
-.dropdown-menu li:hover {
-  background: none;
-}
-.dropdown-menu li.divider:hover {
-  background-color: #e5e5e5;
-}
-td.actions_column .dropdown-menu a:hover,
-td.actions_column .dropdown-menu button:hover {
-  background-color: #cdcdcd;
-}
-.dropdown-menu .btn.btn-danger {
-  color: #c43c35;
-}
-.dropdown-menu .btn.btn-danger:hover {
-  background-color: #f6e0df;
-}
-tr td.actions_column ul.row_actions.single,
-tr:hover td.actions_column ul.row_actions.single,
-td.actions_column ul.row_actions.single,
-td.actions_column ul.row_actions.single:hover {
-  border: none;
-}
-td.actions_column ul.row_actions.single li.action {
-  display: block;
-}
-td.actions_column ul.row_actions.single li.action:hover {
-  background-color: transparent;
-}
-td.actions_column ul.row_actions.single a,
-td.actions_column ul.row_actions.single input,
-td.actions_column ul.row_actions.single button {
-  color: #43a1d6;
-}
-td.actions_column ul.row_actions.single a:hover,
-td.actions_column ul.row_actions.single input:hover,
-td.actions_column ul.row_actions.single button:hover {
-  color: black;
-}
-th.multi_select_column, td.multi_select_column {
-  width: 25px;
-}
-th.multi_select_column, td.multi_select_column {
-  text-align: center;
-}
-.table-fixed {
-  table-layout: fixed;
-}
-.table input[type="checkbox"] {
-  display: inline;
-}
-div.input input[type="checkbox"] {
-  float: left;
-  width: 25px;
-}
-.table_title a {
-  font-size: 11px;
-  float: right;
-  margin-left: 10px;
-  margin-top: 10px;
-}
-tr.terminated {
-  color: #999999;
-}
-#instance_tabs {
-  float: left;
-  width: 100%;
-  border-bottom: 1px solid #e1e1e1;
-}
-#instance_tabs li a {
-  background: #f2f2f2;
-  display: block;
-  font-size: 14px;
-  float: left;
-  padding: 5px 10px;
-  margin-right: 10px;
-  border: 1px solid #e1e1e1;
-  border-bottom: none;
-}
-#instance_tabs li.active a {
-  background: #ffffff;
-  padding-bottom: 8px;
-  margin-bottom: -5px;
-}
-#main_content .nav-tabs {
-  margin-bottom: 0;
-}
-#main_content .tab-content {
-  border: 1px solid #dddddd;
-  border-top: 0 none;
-  padding: 10px;
-}
-#main_content .workflow .modal-body {
-  padding-left: 0;
-  padding-right: 0;
-}
-#main_content .workflow .modal-body .tab-content {
-  border-left: 0 none;
-  border-right: 0 none;
-  border-bottom: 0 none;
-}
-#content_body {
-  padding-left: 255px;
-  padding-right: 25px;
-}
-.tab_wrapper {
-  padding-top: 50px;
-}
-.tooltip {
-  z-index: 12000;
-}
-.volume_boot_disclosure {
-  font-weight: bold;
-  color: #555555;
-  cursor: pointer;
-  background-image: url('/static/dashboard/img/right_droparrow.png');
-  background-repeat: no-repeat;
-  background-position: 130px center;
-}
-.volume_boot_disclosure.on {
-  width: 334px;
-  margin-bottom: 10px;
-  border-bottom: solid 1px #e1e1e1;
-  background-image: url('/static/dashboard/img/drop_arrow.png');
-}
-form div.clearfix.error {
-  width: 308px;
-}
-.nav-tabs a {
-  cursor: pointer;
-}
-.nav-tabs li.error a {
-  color: #b94a48;
-}
-.nav-tabs li.error a:after {
-  content: "*";
-}
-.nav-tabs li.required a:after, form .form-field.required > label:after {
-  content: "*";
-  font-weight: bold;
-  line-height: 0;
-  padding-left: 4px;
-  color: #3290c0;
-}
-#region_selector {
-  position: absolute;
-  z-index: 9999;
-  right: 0;
-  top: 24px;
-}
-#region_selector a {
-  margin-left: 0;
-}
-#region_selector ul {
-  float: left;
-  margin-left: 5px;
-  padding-right: 21px;
-  width: 125px;
-}
-#region_selector ul:hover a {
-  display: block;
-}
-#region_selector li a {
-  padding: 3px 3px 3px 5px;
-  display: none;
-  background: #e1e1e1;
-  margin-top: -10px;
-}
-#region_selector li:first-child p {
-  background: #ededed url('/static/dashboard/img/drop_arrow.png') no-repeat 106px 9px !important;
-  display: block;
-  border: 1px solid #e1e1e1;
-  padding: 5px;
-}
-iframe {
-  border: none;
-}
-.item_detail ul li label {
-  color: #000000;
-  font-weight: bold;
-  display: block;
-  margin-top: 5px;
-}
-.progress_bar {
-  height: 100%;
-  width: 100%;
-  border: 1px solid #cccccc;
-  background-color: #cccccc;
-}
-.progress_bar_fill, .progress_bar_selected {
-  height: 100%;
-  float: left;
-}
-.progress_bar_fill {
-  background-color: #666666;
-}
-.progress_bar_selected {
-  background-color: #4790ae;
-  width: 0;
-}
-.progress_bar_over {
-  background-color: red;
-}
-.d3_quota_bar {
-  width: 20%;
-  margin-bottom: 8px;
-  margin-top: 10px;
-  float: left;
-  text-align: center;
-}
-.quota-dynamic {
-  overflow: hidden;
-  margin-bottom: 8px;
-}
-.quota_title {
-  color: #999999;
-  padding-bottom: 0;
-  margin-bottom: 8px;
-}
-.quota_title strong {
-  color: #000000;
-}
-.quota_title strong span {
-  font-weight: normal;
-}
-.quota_title p {
-  float: right;
-  margin-bottom: 0;
-}
-.quota_bar {
-  height: 15px;
-  margin: -8px 0 8px;
-}
-div .flavor_table {
-  border: 1px solid #aaaaaa;
-  width: 100%;
-  margin-bottom: 14px;
-}
-.flavor_table .flavor_name {
-  white-space: nowrap;
-  font-weight: bold;
-  text-align: left;
-  padding: 7px 12px 7px 7px;
-  width: 160px;
-}
-#main_content .row-fluid {
-  margin: 10px 0 20px;
-}
-#main_content .row-fluid:last-child {
-  margin-bottom: 0;
-}
-.header_rule {
-  margin: 0 0 10px;
-}
-.item_detail .detail_section {
-  margin-bottom: 25px;
-  float: left;
-  margin-right: 50px;
-}
-.error .help-inline, .dynamic-error {
-  background: #efdfdf;
-  border: 1px solid #ead5d8;
-  padding: 10px;
-  display: block;
-}
-.dynamic-error {
-  color: #b94a48;
-  margin-bottom: 0.5em;
-}
-label.log-length {
-  line-height: 28px;
-  margin-right: 10px;
-}
-.progress-success.bar {
-  background-color: #5eb95e;
-  background-image: -moz-linear-gradient(top,#62c462,#57a957);
-  background-image: -ms-linear-gradient(top,#62c462,#57a957);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));
-  background-image: -webkit-linear-gradient(top,#62c462,#57a957);
-  background-image: -o-linear-gradient(top,#62c462,#57a957);
-  background-image: linear-gradient(top,#62c462,#57a957);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
-}
-.progress_bar_fill.progress-warning.bar {
-  background-color: #898989;
-  background-image: -moz-linear-gradient(top,#999999,#333333);
-  background-image: -ms-linear-gradient(top,#999999,#333333);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#999999),to(#333333));
-  background-image: -webkit-linear-gradient(top,#999999,#333333);
-  background-image: -o-linear-gradient(top,#999999,#333333);
-  background-image: linear-gradient(top,#999999,#333333);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#999999', endColorstr='#333333', GradientType=0);
-}
-.progress_bar_over.bar {
-  background-color: #dd514c;
-  background-image: -moz-linear-gradient(top,#ee5f5b,#c43c35);
-  background-image: -ms-linear-gradient(top,#ee5f5b,#c43c35);
-  background-image: -webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));
-  background-image: -webkit-linear-gradient(top,#ee5f5b,#c43c35);
-  background-image: -o-linear-gradient(top,#ee5f5b,#c43c35);
-  background-image: linear-gradient(top,#ee5f5b,#c43c35);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
-}
-.split_five div.control-group input[type="text"],
-.split_five div.control-group select {
-  width: 120px;
-}
-.warning {
-  background-color: #f2dede;
-  border-bottom: 1px solid #9d261d;
-  padding: 5px 10px;
-}
-.warning .warning-text {
-  text-align: center;
-}
-.warning .warning-text h3, .warning .warning-text a {
-  display: inline-block;
-}
-.warning .warning-text h3 {
-  vertical-align: bottom;
-}
-#admin_warning_detail ul {
-  list-style: circle;
-  padding-left: 20px;
-  margin-bottom: 10px;
-}
-.no_split {
-  margin-top: -60px;
-}
-.membership {
-  min-height: 200px;
-}
-.membership .btn-group {
-  margin-left: 0px;
-  padding: 2px 10px 0 0;
-  margin-bottom: 0px;
-  border: 1px solid #dddddd;
-  border-bottom: none;
-}
-.membership .btn-group .active {
-  float: right;
-}
-.membership a.btn-primary:hover {
-  background-color: #dd4a14;
-}
-.membership .help_text {
-  margin-left: 15px;
-  margin-bottom: 15px;
-}
-.membership .members_title {
-  color: #555555;
-  font-weight: bold;
-  padding-left: 10px;
-  float: left;
-}
-.membership input {
-  background: url('/static/dashboard/img/search.png') no-repeat 105px 5px whiteSmoke;
-}
-.membership .fake_table_header {
-  background-color: #f1f1f1;
-  width: 306px;
-  height: 38px;
-  padding-top: 15px;
-  border: 1px solid #dddddd;
-  border-bottom: none;
-}
-.membership .fake_table {
-  margin-left: 5px;
-  width: 315px;
-}
-.membership .fake_table ul.no_results {
-  width: 298px;
-}
-.membership .fake_table ul.btn-group:hover {
-  background-color: #dddddd;
-}
-.membership .left .fake_table_header {
-  width: 318px;
-}
-.membership .right .fake_table_header {
-  width: 318px;
-  margin-left: -15px;
-}
-.membership .right .fake_table ul.no_results {
-  margin-left: -20px;
-}
-.membership .member {
-  padding: 10px;
-  text-align: left;
-}
-.membership .members {
-  margin-left: -20px;
-}
-.membership .members ul.btn-group, .membership .available_members ul.btn-group {
-  width: 308px;
-}
-.membership .dark_stripe {
-  background-color: #f9f9f9;
-}
-.membership .light_stripe {
-  background-color: white;
-}
-.membership .last_stripe {
-  border-bottom: 1px solid #dddddd;
-}
-.membership .filter {
-  width: 120px;
-  margin: -5px 13px 15px 0px;
-  float: right;
-}
-.membership .no_results {
-  border: 1px solid #dddddd;
-  padding: 10px;
-  opacity: 0.5;
-}
-.membership .role_dropdown li {
-  cursor: pointer;
-  background: none;
-  float: none;
-  display: block;
-  padding: 5px 10px;
-  color: black;
-  text-align: left;
-  border-radius: 0;
-  border: 0 none;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-  z-index: 99999;
-}
-.membership .role_dropdown li i {
-  opacity: 0;
-}
-.membership .role_dropdown li:hover {
-  background-color: #cdcdcd;
-}
-.membership .role_dropdown li.selected i {
-  opacity: 1;
-}
-.membership .dropdown-menu.role_dropdown {
-  right: 0;
-  left: auto;
-}
-.membership .nav .role_options {
-  float: right;
-  padding-right: 5px;
-}
-.add_member_btn {
-  display: inline;
-}
-#add_member {
-  clear: both;
-}
-.add_member {
-  float: right;
-  margin-top: 10px;
-  margin-right: 15px;
-}
-.dropdown_fix {
-  overflow: visible;
-}
-.loading_gif {
-  width: 35px;
-  height: 13px;
-  padding-top: 2px;
-  padding-right: 5px;
-  float: left;
-}
-.action_required_img {
-  width: 35px;
-  height: 13px;
-  padding-top: 2px;
-  padding-right: 5px;
-  float: left;
-}
-#browser_wrapper {
-  width: 100%;
-  min-width: 1000px;
-  background-color: #eeeeee;
-  border: 1px solid #dddddd;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-#browser_wrapper .tfoot {
-  clear: both;
-  padding: 8px;
-  border-top: 1px solid #dddddd;
-  background-color: #f1f1f1;
-  font-size: 11px;
-  line-height: 14px;
-}
-#browser_wrapper .tfoot span {
-  display: inline-block;
-}
-#browser_wrapper .tfoot span.navigation_table_count {
-  width: 30%;
-}
-#browser_wrapper form, #browser_wrapper table {
-  margin-bottom: 0;
-}
-#browser_wrapper .navigation_wrapper, #browser_wrapper .content_wrapper {
-  position: relative;
-  float: left;
-}
-#browser_wrapper div.navigation_wrapper {
-  z-index: 10;
-  width: 30%;
-}
-#browser_wrapper div.navigation_wrapper div.table_wrapper,
-#browser_wrapper div.navigation_wrapper thead th.table_header {
-  border-right: 0 none;
-  border-top-right-radius: 0;
-}
-#browser_wrapper div.navigation_wrapper td:first-child {
-  border-left: 0 none;
-}
-#browser_wrapper div.navigation_wrapper td.breadcrumb_td {
-  padding-right: 0px;
-  max-width: 200px;
-}
-#browser_wrapper div.navigation_wrapper tr.current_selected td {
-  background-color: #e9f5fa;
-}
-#browser_wrapper div.navigation_wrapper tfoot td {
-  border-right: 0 none;
-  border-bottom-right-radius: 0;
-}
-#browser_wrapper div.navigation_wrapper ul.breadcrumb {
-  padding-right: 0px;
-  border-top-right-radius: 0px;
-  border-bottom-right-radius: 0px;
-  border-right: none;
-  white-space: nowrap;
-}
-#browser_wrapper div.navigation_wrapper tbody td {
-  border-right: 1px solid #dddddd;
-  background-color: #ffffff;
-}
-#browser_wrapper div.content_wrapper {
-  width: 70%;
-}
-#browser_wrapper div.content_wrapper div.table_wrapper,
-#browser_wrapper div.content_wrapper thead th.table_header {
-  border-left: 0 none;
-  border-top-left-radius: 0;
-}
-#browser_wrapper div.content_wrapper td {
-  border-bottom: 1px solid #dddddd;
-}
-#browser_wrapper div.content_wrapper td:last-child {
-  border-right: 0 none;
-}
-#browser_wrapper div.content_wrapper td.breadcrumb_td {
-  padding-left: 0px;
-}
-#browser_wrapper div.content_wrapper tfoot td {
-  border-left: 0 none;
-  border-bottom-left-radius: 0;
-}
-#browser_wrapper div.content_wrapper ul.breadcrumb {
-  padding-left: 0px;
-  border-top-left-radius: 0px;
-  border-bottom-left-radius: 0px;
-  border-left: none;
-}
-#browser_wrapper div.content_wrapper ul.breadcrumb li {
-  visibility: hidden;
-}
-#browser_wrapper table {
-  border-collapse: collapse;
-}
-#browser_wrapper table thead tr th {
-  border-bottom: none;
-  background-color: #eeeeee;
-}
-#browser_wrapper table tbody tr:last-child td {
-  border-bottom: 1px solid #dddddd;
-  border-radius: 0;
-}
-#browser_wrapper table tbody tr.empty td {
-  height: 28px;
-  padding: 10px;
-}
-#browser_wrapper table tbody td.actions_column {
-  position: static;
-}
-#browser_wrapper .breadcrumb {
-  padding: 6px;
-  margin: 0 0 1px 0;
-}
-.btn-inline {
-  margin-bottom: 9px;
-}
-.modal-body fieldset .form-field select[data-add-item-url] {
-  width: 275px;
-  margin-right: 2px;
-}
-#networkListSortContainer {
-  display: none;
-}
-.networklist {
-  padding: 6px;
-  background: #eeeeee;
-  border: 1px solid #cccccc;
-  min-height: 2em;
-  width: auto !important;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.networklist li {
-  width: 226px;
-  list-style-type: none;
-  margin: 6px auto;
-  padding: 3px;
-  background: #ffffff;
-  border: 1px solid #aaaaaa;
-  line-height: 18px;
-  border-radius: 3px;
-  cursor: move;
-  padding-left: 23px;
-  background: white url('/static/dashboard/img/drag.png') no-repeat 11px 50%;
-}
-.networklist li em {
-  font-size: 0.5em;
-  line-height: 1em;
-  color: #999999;
-  font-style: normal;
-  margin-left: 0.8em;
-}
-.networklist li i {
-  margin-right: 5px;
-  vertical-align: middle;
-}
-.networklist li a.btn {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  font-size: 11px;
-  line-height: 12px;
-  padding: 2px 5px 3px;
-  margin-right: 1px;
-  width: 18px;
-  text-align: center;
-  right: 5px;
-  vertical-align: middle;
-  float: right;
-}
-.networklist li a.btn:before {
-  content: "+";
-}
-.networklist li.ui-sortable-helper {
-  background-color: #ddeeff;
-}
-.networklist li.ui-state-highlight {
-  border: 1px dotted #cccccc;
-  background: #efefef;
-  height: 0.5em;
-}
-.networklist li:after {
-  visibility: hidden;
-  display: block;
-  font-size: 0;
-  content: " ";
-  clear: both;
-  height: 0;
-}
-#selected_network {
-  margin-bottom: 1.5em;
-  counter-reset: v1 0;
-  background: #edf9ff;
-  border: 1px solid #c0d9e4;
-}
-#selected_network li {
-  position: relative;
-}
-#selected_network li a.btn:before {
-  content: "-";
-}
-#selected_network li:before {
-  content: "nic:"counter(v1);
-  counter-increment: v1;
-  display: inline-block;
-  margin-right: 5px;
-  background: #666666;
-  color: #ffffff;
-  font-size: 90%;
-  padding: 0px 4px;
-  vertical-align: middle;
-  border-radius: 2px;
-  position: absolute;
-  left: -2em;
-}
-#selected_network.dragging li:before {
-  content: "nic:";
-  background-color: rgba(102,102,102,0.5);
-  padding-right: 10px;
-}
-#selected_network.dragging li.ui-state-highlight:before {
-  content: "";
-  background: transparent;
-}
-#topologyCanvasContainer {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  width: 100%;
-  height: auto;
-  padding: 25px;
-  padding-left: 50px;
-  background: #efefef;
-  min-height: 400px;
-}
-#topologyCanvasContainer div.nodata {
-  font-size: 150%;
-  text-align: center;
-  padding-top: 150px;
-  display: none;
-}
-#topologyCanvasContainer.noinfo div.nodata {
-  display: block;
-}
-#topologyCanvasContainer.noinfo #topology_canvas {
-  display: none;
-}
-.topologyNavi {
-  overflow: hidden;
-  margin: 10px 0 20px;
-}
-.topologyNavi i {
-  margin-right: 3px;
-}
-.topologyNavi .toggleView {
-  float: left;
-}
-.topologyNavi .launchButtons {
-  float: right;
-  text-align: right;
-}
-.topologyNavi .launchButtons a.btn {
-  margin-left: 10px;
-}
-.topologyBalloon {
-  display: none;
-  background: #ffffff;
-  position: absolute;
-  left: 100px;
-  top: 20px;
-  z-index: 600;
-  border-radius: 5px;
-  color: #333333;
-  min-width: 200px;
-  line-height: 1.2;
-  font-size: 11px;
-  -webkit-box-shadow: 0px 1px 6px #777777;
-  -moz-box-shadow: 0px 1px 6px #777777;
-  box-shadow: 0px 1px 6px #777777;
-}
-.topologyBalloon.on {
-  display: block;
-}
-.topologyBalloon .vnc_window {
-  margin-left: 10px;
-}
-.topologyBalloon .closeTopologyBalloon {
-  font-size: 16px;
-  line-height: 1;
-  display: block;
-  position: absolute;
-  font-weight: bold;
-  right: 6px;
-  top: 0px;
-  cursor: pointer;
-  padding: 3px;
-  color: #aaaaaa;
-}
-.topologyBalloon .closeTopologyBalloon:hover {
-  color: #777777;
-  text-decoration: none;
-}
-.topologyBalloon .contentBody {
-  padding: 8px 8px 0;
-}
-.topologyBalloon span.active:before, .topologyBalloon span.down:before {
-  content: "";
-  width: 9px;
-  height: 9px;
-  display: inline-block;
-  background: #0d925b;
-  margin-right: 3px;
-  border-radius: 10px;
-  vertical-align: middle;
-}
-.topologyBalloon span.down:before {
-  background: #e64b41;
-}
-.topologyBalloon .footer {
-  background: #efefef;
-  border-top: 1px solid #d9d9d9;
-  padding: 8px;
-  border-radius: 0px 0px 7px 7px;
-}
-.topologyBalloon .footer .footerInner {
-  display: table;
-  width: 100%;
-}
-.topologyBalloon .footer .cell {
-  display: table-cell;
-  padding-right: 10px;
-}
-.topologyBalloon .footer .link {
-  font-size: 12px;
-}
-.topologyBalloon .footer .delete {
-  padding-right: 0;
-  text-align: right;
-}
-.topologyBalloon .footer .delete .btn:before {
-  content: "Delete ";
-}
-.topologyBalloon .footer .delete .btn.deleting:before {
-  content: "Deleting ";
-}
-.topologyBalloon .footer .delete .btn.instance:before {
-  content: "Terminate ";
-}
-.topologyBalloon .footer .delete .btn.instance.deleting:before {
-  content: "Terminating ";
-}
-.topologyBalloon table.detailInfoTable {
-  margin-bottom: 5px;
-}
-.topologyBalloon table.detailInfoTable caption {
-  text-align: left;
-  font-size: 12px;
-  font-weight: bold;
-  margin-bottom: 0px;
-}
-.topologyBalloon table.detailInfoTable th, .topologyBalloon table.detailInfoTable td {
-  text-align: left;
-  vertical-align: middle;
-  padding-bottom: 3px;
-  background: transparent;
-}
-.topologyBalloon table.detailInfoTable th {
-  color: #999999;
-  padding-right: 8px;
-  width: 80px;
-}
-.topologyBalloon table.detailInfoTable th span {
-  vertical-align: middle;
-  width: 80px;
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  display: inline-block;
-}
-.topologyBalloon table.detailInfoTable th.device {
-  text-align: right;
-}
-.topologyBalloon table.detailInfoTable td {
-  padding-right: 5px;
-  white-space: nowrap;
-}
-.topologyBalloon table.detailInfoTable td.delete {
-  padding-right: 0;
-  text-align: right;
-}
-.topologyBalloon table.detailInfoTable .btn {
-  line-height: 1.4;
-}
-.topologyBalloon table.detailInfoTable .btn:before {
-  content: "Delete ";
-}
-.topologyBalloon table.detailInfoTable .btn.deleting:before {
-  content: "Deleting ";
-}
-.topologyBalloon:before {
-  border-top: 7px solid transparent;
-  border-bottom: 7px solid transparent;
-  border-right: 9px solid #bbbbbb;
-  display: block;
-  position: absolute;
-  top: 30px;
-  left: -9px;
-  width: 0;
-  height: 0;
-  content: "";
-}
-.topologyBalloon:after {
-  border-top: 6px solid transparent;
-  border-bottom: 6px solid transparent;
-  border-right: 8px solid #ffffff;
-  display: block;
-  position: absolute;
-  top: 31px;
-  left: -8px;
-  width: 0;
-  height: 0;
-  content: "";
-}
-.topologyBalloon.leftPosition:before {
-  border-right: none;
-  border-left: 9px solid #bbbbbb;
-  right: -9px;
-  top: 30px;
-  left: auto;
-}
-.topologyBalloon.leftPosition:after {
-  border-right: none;
-  border-left: 8px solid #ffffff;
-  right: -8px;
-  top: 31px;
-  left: auto;
-}
-#topologyMessages {
-  width: 1px;
-  height: 1px;
-  visibility: hidden;
-  position: absolute;
-  top: -100px;
-}
-.quota-heading {
-  font-family: anivers;
-  font-weight: normal;
-  font-size: 24px;
-  margin-bottom: 10px;
-}
-.link {
-  stroke: #999999;
-  stroke-width: 1.5px;
-}
-.node {
-  cursor: pointer;
-}
-.node text {
-  font: 12px sans-serif;
-}
-#resource_container {
-  position: relative;
-}
-#stack_box {
-  position: absolute;
-  width: 300px;
-  top: 10px;
-  left: 10px;
-}
-#stack_box h3 {
-  font-size: 11pt;
-  line-height: 20px;
-}
-#stack_box p {
-  margin: 0;
-  font-size: 9pt;
-  line-height: 14px;
-}
-#stack_box a {
-  margin: 0;
-  font-size: 9pt;
-  line-height: 14px;
-}
-#stack_box img {
-  float: left;
-}
-#stack_box #stack_info {
-  float: left;
-  white-space: normal;
-  width: 200px;
-}
-#info_box {
-  position: absolute;
-  width: 300px;
-  top: 100px;
-  left: 10px;
-}
-#info_box h3 {
-  font-size: 9pt;
-  line-height: 20px;
-}
-#info_box p {
-  margin: 0;
-  font-size: 9pt;
-  line-height: 14px;
-}
-#info_box a {
-  margin: 0;
-  font-size: 9pt;
-  line-height: 14px;
-}
-#info_box .error {
-  color: darkred;
-}
-#ceilometer-stats .form-horizontal .control-label {
-  width: auto;
-}
-#ceilometer-stats .form-horizontal .controls {
-  float: left;
-  margin-left: 0;
-}
-#ceilometer-stats .form-horizontal .control-group {
-  float: left;
-  margin-right: 20px;
-}
-#ceilometer-stats .form-horizontal .btn {
-  float: left;
-  margin-right: 20px;
-  margin-bottom: 18px;
-}
-#ruleListSortContainer {
-  display: none;
-}
-.rulelist {
-  padding: 6px;
-  background: #eeeeee;
-  border: 1px solid #cccccc;
-  min-height: 2em;
-  width: auto !important;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.rulelist li {
-  width: 226px;
-  list-style-type: none;
-  margin: 6px auto;
-  padding: 3px;
-  background: #ffffff;
-  border: 1px solid #aaaaaa;
-  line-height: 18px;
-  border-radius: 3px;
-  cursor: move;
-  padding-left: 23px;
-  background: white url('/static/dashboard/img/drag.png') no-repeat 11px 50%;
-}
-.rulelist li em {
-  font-size: 0.5em;
-  line-height: 1em;
-  color: #999999;
-  font-style: normal;
-  margin-left: 0.8em;
-}
-.rulelist li i {
-  margin-right: 5px;
-  vertical-align: middle;
-}
-.rulelist li a.btn {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  font-size: 11px;
-  line-height: 12px;
-  padding: 2px 5px 3px;
-  margin-right: 1px;
-  width: 18px;
-  text-align: center;
-  right: 5px;
-  vertical-align: middle;
-  float: right;
-}
-.rulelist li a.btn:before {
-  content: "+";
-}
-.rulelist li.ui-sortable-helper {
-  background-color: #ddeeff;
-}
-.rulelist li.ui-state-highlight {
-  border: 1px dotted #cccccc;
-  background: #efefef;
-  height: 0.5em;
-}
-.rulelist li:after {
-  visibility: hidden;
-  display: block;
-  font-size: 0;
-  content: " ";
-  clear: both;
-  height: 0;
-}
-#selected_rule {
-  margin-bottom: 1.5em;
-  counter-reset: v1 0;
-  background: #edf9ff;
-  border: 1px solid #c0d9e4;
-}
-#selected_rule li {
-  position: relative;
-}
-#selected_rule li a.btn:before {
-  content: "-";
-}
-#selected_rule li:before {
-  content: "rule:"counter(v1);
-  counter-increment: v1;
-  display: inline-block;
-  margin-right: 5px;
-  background: #666666;
-  color: #ffffff;
-  font-size: 90%;
-  padding: 0px 4px;
-  vertical-align: middle;
-  border-radius: 2px;
-  position: absolute;
-  left: -2em;
-}
-#selected_rule.dragging li:before {
-  content: "rule:";
-  background-color: rgba(102,102,102,0.5);
-  padding-right: 10px;
-}
-#selected_rule.dragging li.ui-state-highlight:before {
-  content: "";
-  background: transparent;
-}
-
-.rickshaw_graph .detail {
-    pointer-events: none;
-    position: absolute;
-    top: 0;
-    z-index: 2;
-    background: rgba(0, 0, 0, 0.1);
-    bottom: 0;
-    width: 1px;
-    transition: opacity 0.25s linear;
-    -moz-transition: opacity 0.25s linear;
-    -o-transition: opacity 0.25s linear;
-    -webkit-transition: opacity 0.25s linear;
-}
-.rickshaw_graph .detail.inactive {
-    opacity: 0;
-}
-.rickshaw_graph .detail .item.active {
-    opacity: 1;
-}
-.rickshaw_graph .detail .x_label {
-    font-family: Arial, sans-serif;
-    border-radius: 3px;
-    padding: 6px;
-    opacity: 0.5;
-    border: 1px solid #e0e0e0;
-    font-size: 12px;
-    position: absolute;
-    background: white;
-    white-space: nowrap;
-}
-.rickshaw_graph .detail .item {
-    position: absolute;
-    z-index: 2;
-    border-radius: 3px;
-    padding: 0.25em;
-    font-size: 12px;
-    font-family: Arial, sans-serif;
-    opacity: 0;
-    background: rgba(0, 0, 0, 0.4);
-    color: white;
-    border: 1px solid rgba(0, 0, 0, 0.4);
-    margin-left: 1em;
-    margin-top: -1em;
-    white-space: nowrap;
-}
-.rickshaw_graph .detail .item.active {
-    opacity: 1;
-    background: rgba(0, 0, 0, 0.8);
-}
-.rickshaw_graph .detail .item:before {
-    content: "\25c2";
-    position: absolute;
-    left: -0.5em;
-    color: rgba(0, 0, 0, 0.7);
-    width: 0;
-}
-.rickshaw_graph .detail .dot {
-    width: 4px;
-    height: 4px;
-    margin-left: -4px;
-    margin-top: -3px;
-    border-radius: 5px;
-    position: absolute;
-    box-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
-    background: white;
-    border-width: 2px;
-    border-style: solid;
-    display: none;
-    background-clip: padding-box;
-}
-.rickshaw_graph .detail .dot.active {
-    display: block;
-}
-/* graph */
-
-.rickshaw_graph {
-    position: relative;
-}
-.rickshaw_graph svg {
-    display: block;
-    overflow: hidden;
-}
-
-/* ticks */
-
-.rickshaw_graph .x_tick {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    width: 0px;
-    border-left: 1px dotted rgba(0, 0, 0, 0.2);
-    pointer-events: none;
-}
-.rickshaw_graph .x_tick .title {
-    position: absolute;
-    font-size: 12px;
-    font-family: Arial, sans-serif;
-    opacity: 0.5;
-    white-space: nowrap;
-    margin-left: 3px;
-    bottom: 1px;
-}
-
-/* annotations */
-
-.rickshaw_annotation_timeline {
-    height: 1px;
-    border-top: 1px solid #e0e0e0;
-    margin-top: 10px;
-    position: relative;
-}
-.rickshaw_annotation_timeline .annotation {
-    position: absolute;
-    height: 6px;
-    width: 6px;
-    margin-left: -2px;
-    top: -3px;
-    border-radius: 5px;
-    background-color: rgba(0, 0, 0, 0.25);
-}
-.rickshaw_graph .annotation_line {
-    position: absolute;
-    top: 0;
-    bottom: -6px;
-    width: 0px;
-    border-left: 2px solid rgba(0, 0, 0, 0.3);
-    display: none;
-}
-.rickshaw_graph .annotation_line.active {
-    display: block;
-}
-
-.rickshaw_graph .annotation_range {
-        background: rgba(0, 0, 0, 0.1);
-        display: none;
-        position: absolute;
-        top: 0;
-        bottom: -6px;
-}
-.rickshaw_graph .annotation_range.active {
-        display: block;
-}
-.rickshaw_graph .annotation_range.active.offscreen {
-        display: none;
-}
-
-.rickshaw_annotation_timeline .annotation .content {
-    background: white;
-    color: black;
-    opacity: 0.9;
-    padding: 5px 5px;
-    box-shadow: 0 0 2px rgba(0, 0, 0, 0.8);
-    border-radius: 3px;
-    position: relative;
-    z-index: 20;
-    font-size: 12px;
-    padding: 6px 8px 8px;
-    top: 18px;
-    left: -11px;
-    width: 160px;
-    display: none;
-    cursor: pointer;
-}
-.rickshaw_annotation_timeline .annotation .content:before {
-    content: "\25b2";
-    position: absolute;
-    top: -11px;
-    color: white;
-    text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.8);
-}
-.rickshaw_annotation_timeline .annotation.active,
-.rickshaw_annotation_timeline .annotation:hover {
-    background-color: rgba(0, 0, 0, 0.8);
-    cursor: none;
-}
-.rickshaw_annotation_timeline .annotation .content:hover {
-    z-index: 50;
-}
-.rickshaw_annotation_timeline .annotation.active .content {
-    display: block;
-}
-.rickshaw_annotation_timeline .annotation:hover .content {
-    display: block;
-    z-index: 50;
-}
-.rickshaw_graph .y_axis,
-.rickshaw_graph  .x_axis_d3 {
-    fill: none;
-}
-.rickshaw_graph .y_ticks .tick,
-.rickshaw_graph .x_ticks_d3 .tick {
-    stroke: rgba(0, 0, 0, 0.16);
-    stroke-width: 2px;
-    shape-rendering: crisp-edges;
-    pointer-events: none;
-}
-.rickshaw_graph .y_grid .tick,
-.rickshaw_graph .x_grid_d3 .tick {
-    z-index: -1;
-    stroke: rgba(0, 0, 0, 0.20);
-    stroke-width: 1px;
-    stroke-dasharray: 1 1;
-}
-.rickshaw_graph .y_grid path,
-.rickshaw_graph .x_grid_d3 path  {
-    fill: none;
-    stroke: none;
-}
-.rickshaw_graph .y_ticks path,
-.rickshaw_graph .x_ticks_d3 path {
-    fill: none;
-    stroke: #808080;
-}
-.rickshaw_graph .y_ticks text,
-.rickshaw_graph .x_ticks_d3 text {
-    opacity: 0.5;
-    font-size: 12px;
-    pointer-events: none;
-}
-.rickshaw_graph .x_tick.glow .title,
-.rickshaw_graph .y_ticks.glow text {
-    fill: black;
-    color: black;
-    text-shadow:
-        -1px 1px 0 rgba(255, 255, 255, 0.1),
-        1px -1px 0 rgba(255, 255, 255, 0.1),
-        1px 1px 0 rgba(255, 255, 255, 0.1),
-        0px 1px 0 rgba(255, 255, 255, 0.1),
-        0px -1px 0 rgba(255, 255, 255, 0.1),
-        1px 0px 0 rgba(255, 255, 255, 0.1),
-        -1px 0px 0 rgba(255, 255, 255, 0.1),
-        -1px -1px 0 rgba(255, 255, 255, 0.1);
-}
-.rickshaw_graph .x_tick.inverse .title,
-.rickshaw_graph .y_ticks.inverse text {
-    fill: white;
-    color: white;
-    text-shadow:
-        -1px 1px 0 rgba(0, 0, 0, 0.8),
-        1px -1px 0 rgba(0, 0, 0, 0.8),
-        1px 1px 0 rgba(0, 0, 0, 0.8),
-        0px 1px 0 rgba(0, 0, 0, 0.8),
-        0px -1px 0 rgba(0, 0, 0, 0.8),
-        1px 0px 0 rgba(0, 0, 0, 0.8),
-        -1px 0px 0 rgba(0, 0, 0, 0.8),
-        -1px -1px 0 rgba(0, 0, 0, 0.8);
-}
-.rickshaw_legend {
-    font-family: Arial;
-    font-size: 12px;
-    color: white;
-    background: #404040;
-    display: inline-block;
-    padding: 12px 5px;
-    border-radius: 2px;
-    position: relative;
-}
-.rickshaw_legend:hover {
-    z-index: 10;
-}
-.rickshaw_legend .swatch {
-    width: 10px;
-    height: 10px;
-    border: 1px solid rgba(0, 0, 0, 0.2);
-}
-.rickshaw_legend .line {
-    clear: both;
-    line-height: 140%;
-    padding-right: 15px;
-}
-.rickshaw_legend .line .swatch {
-    display: inline-block;
-    margin-right: 3px;
-    border-radius: 2px;
-}
-.rickshaw_legend .label {
-    margin: 0;
-    white-space: nowrap;
-    display: inline;
-    font-size: inherit;
-    background-color: transparent;
-    color: inherit;
-    font-weight: normal;
-    line-height: normal;
-    padding: 0px;
-    text-shadow: none;
-}
-.rickshaw_legend .action:hover {
-    opacity: 0.6;
-}
-.rickshaw_legend .action {
-    margin-right: 0.2em;
-    font-size: 10px;
-    opacity: 0.2;
-    cursor: pointer;
-    font-size: 14px;
-}
-.rickshaw_legend .line.disabled {
-    opacity: 0.4;
-}
-.rickshaw_legend ul {
-    list-style-type: none;
-    margin: 0;
-    padding: 0;
-    margin: 2px;
-    cursor: pointer;
-}
-.rickshaw_legend li {
-    padding: 0 0 0 2px;
-    min-width: 80px;
-    white-space: nowrap;
-}
-.rickshaw_legend li:hover {
-    background: rgba(255, 255, 255, 0.08);
-    border-radius: 3px;
-}
-.rickshaw_legend li:active {
-    background: rgba(255, 255, 255, 0.2);
-    border-radius: 3px;
-}
-
-.chart {
-  height: inherit;
-  width: inherit;
-  min-height: inherit;
-  min-width: inherit;
-}
-.chart .tooltip_detail {
-  position: absolute;
-  z-index: 2;
-  border-radius: 3px;
-  padding: 0.25em;
-  font-size: 12px;
-  font-family: Arial, sans-serif;
-  color: white;
-  border: 1px solid rgba(0,0,0,0.4);
-  margin-left: 1em;
-  margin-top: -1em;
-  white-space: nowrap;
-  background: rgba(0,0,0,0.8);
-}
-.chart .tooltip_detail:before {
-  content: "\25c2";
-  position: absolute;
-  left: -0.5em;
-  color: rgba(0,0,0,0.7);
-  width: 0;
-  top: 12px;
-}
-.overview_chart {
-  width: 214px;
-  height: 81px;
-  border: 1px ridge black;
-  padding: 8px 8px 8px 8px !important;
-}
-.overview_chart .chart_container {
-  width: 140px;
-  min-width: 140px;
-}
-.overview_chart .chart_container .chart svg {
-  padding-right: 4px !important;
-}
-.overview_chart .bar_chart_container {
-  width: 74px;
-  min-width: 74px;
-}
-.overview_chart .bar_chart_container, .overview_chart .chart_container {
-  float: left;
-  min-height: 81px;
-  height: 81px;
-}
-.overview_chart .bar_chart_container .chart, .overview_chart .chart_container .chart {
-  height: inherit;
-  width: inherit;
-  min-height: inherit;
-  min-width: inherit;
-}
-.overview_chart .bar_chart_container .chart .modal-backdrop,
-.overview_chart .chart_container .chart .modal-backdrop {
-  min-height: inherit;
-  min-width: inherit;
-}
-.overview_chart .tooltip_detail {
-  position: absolute;
-  z-index: 2;
-  border-radius: 3px;
-  padding: 0.25em;
-  font-size: 12px;
-  font-family: Arial, sans-serif;
-  color: white;
-  border: 1px solid rgba(0,0,0,0.4);
-  margin-left: 1em;
-  margin-top: -1em;
-  white-space: nowrap;
-  background: rgba(0,0,0,0.8);
-}
-.overview_chart .tooltip_detail:before {
-  content: "\25c2";
-  position: absolute;
-  left: -0.5em;
-  color: rgba(0,0,0,0.7);
-  width: 0;
-  top: 12px;
-}
-.chart_container {
-  position: relative;
-  min-height: 300px;
-  min-width: 400px;
-}
-.chart_container .chart {
-  position: relative;
-  min-height: 300px;
-  min-width: 400px;
-}
-.chart_container .chart .detail .x_label {
-  display: none;
-}
-.chart_container .chart .detail .item {
-  line-height: 1.4;
-  padding: 0.5em;
-}
-.chart_container .chart .detail .date {
-  color: #a0a0a0;
-}
-.chart_container .chart .modal-backdrop {
-  position: absolute;
-  opacity: 0.5;
-  top: 0;
-  left: 0;
-  min-height: 300px;
-  min-width: 400px;
-}
-.chart_container .chart svg {
-  padding: 0 0 5px 0;
-}
-.chart_container .detail_swatch {
-  float: right;
-  display: inline-block;
-  width: 10px;
-  height: 10px;
-  margin: 0 4px 0 0;
-}
-.legend_container {
-  min-width: 90px;
-  margin-left: 20px;
-}
-.legend_container .swatch {
-  float: right;
-  display: inline-block;
-  width: 10px;
-  height: 10px;
-  margin: 0 4px 0 0;
-}
-.legend_container .modal-backdrop {
-  position: absolute;
-  opacity: 0.5;
-  top: 0;
-  left: 0;
-  min-width: 90px;
-}
-.legend_container .rickshaw_legend.disabled {
-  padding: 0;
-}
-.spinner_wrapper {
-  position: absolute;
-  top: 40%;
-  left: 40%;
-}
-.rickshaw_legend {
-  background: white;
-  color: #404040;
-}
-.rickshaw_legend .action {
-  text-decoration: none;
-  color: #000000;
-}
-
-.workflow ul.nav-tabs {
-  padding: 0 10px;
-}
-.workflow td.actions {
-  vertical-align: top;
-  width: 308px;
-  padding-right: 10px;
-}
-.workflow td.help_text {
-  vertical-align: top;
-  width: 340px;
-  padding-left: 10px;
-  border-left: 1px solid #dddddd;
-}
-.workflow fieldset > table {
-  margin-bottom: 0;
-}
-.workflow.wizard .row-fluid .btn {
-  float: none;
-  margin: 0;
-}
-.workflow.wizard .row-fluid .next {
-  text-align: right;
-}
-.workflow.wizard .nav-tabs.wizard-tabs {
-  border-bottom: none;
-  background: #efefef;
-  padding: 0;
-}
-.workflow.wizard .nav-tabs.wizard-tabs li {
-  margin-bottom: 0;
-  position: relative;
-}
-.workflow.wizard .nav-tabs.wizard-tabs li:before {
-  position: absolute;
-  top: 0;
-  right: -20px;
-  z-index: 2;
-  display: block;
-  border: 20px solid transparent;
-  border-right: 0;
-  border-left: 20px solid #dddddd;
-  content: "";
-}
-.workflow.wizard .nav-tabs.wizard-tabs li:after {
-  position: absolute;
-  top: -2px;
-  right: -22px;
-  z-index: 1;
-  display: block;
-  border: 22px solid transparent;
-  border-right: 0;
-  border-left: 22px solid #ffffff;
-  content: "";
-}
-.workflow.wizard .nav-tabs.wizard-tabs li.active:before,
-.workflow.wizard .nav-tabs.wizard-tabs li.done:before {
-  border-left: 20px solid #007acc;
-}
-.workflow.wizard .nav-tabs.wizard-tabs li a {
-  border: none;
-  border-radius: 0;
-  background: #dddddd;
-  color: #43a4d7;
-  padding: 0 15px;
-  padding-left: 35px;
-  line-height: 40px;
-  position: relative;
-  margin: 0;
-}
-.workflow.wizard .nav-tabs.wizard-tabs li:first-child a {
-  padding-left: 15px;
-}
-.workflow.wizard .nav-tabs.wizard-tabs li.active a {
-  background: #007acc;
-  color: #ffffff;
-}
-.workflow.wizard .nav-tabs.wizard-tabs li.done a {
-  background: #007acc;
-}
-.workflow.wizard label.error {
-  color: #ff0000;
-}
-
-
-/***************************
- * Ubuntu styling
- ***************************/
-
- /* Graham Bancroft graham.bancroft@canonical.com 03 October 2012 */
-@import url("https://fonts.googleapis.com/css?family=Ubuntu:300,400,400italic");
-
-html { height: 100%; }
-
-body {
-  color: #333;
-  font-family: Ubuntu, Arial, 'libra sans', sans-serif;
-  font-weight: 300;
-  font-size: 16px;
-  height: 100%;
-}
-
-h1, h2, h3, h4 {
-  color: #333;
-  font-family: Ubuntu, Arial, 'libra sans', sans-serif;
-  font-weight: 300;
-}
-strong {
-  font-weight: normal;
-}
-.warning {
-  background-color: #eca918;
-  border-bottom: 1px solid #8d6817;
-  -moz-box-shadow: 0 5px 10px 1px #000;
-  -webkit-box-shadow: 0 5px 10px 1px #000;
-  box-shadow: 0 5px 10px 1px #d12a03;
-  display: block;
-  z-index: 999;
-  position: relative;
-}
-
-.warning h3 {
-  background-color: #eca918;
-  color: #624a16;
-}
-
-#container { height: 100%; }
-
-/* topbar */
-.topbar {
-  background-image: none;
-  background-color: #dd4814;
-  border-bottom: 0;
-  color: #fff;
-  width: 100%;
-}
-
-.page-header {
-  padding-top: 30px;
-  font-family: Ubuntu, Arial, 'libra sans', sans-serif;
-}
-
-
-#user_info, #user_info a {
-  color: #fff;
-}
-
-/* logo */
-h1.brand {
-  background: none;
-  color: #fff;
-}
-
-h1.brand a {
-  background: url('../img/ubuntu.png') top left no-repeat;
-  color: #fff;
-}
-
-#user_info, #user_info a { font-size: 14px; }
-
-/* main nav (in sidebar) */
-.main_nav li {
-  position: relative;
-}
-
-.main_nav a {
-    -moz-transition-duration: .5s;
-    -webkit-transition-duration: .5s;
-  border: 1px solid #eee;
-  border-left: 0;
-  border-right: 0;
-  color: #888;
-  margin-left: 0;
-  padding-left: 20px;
-  transition-duration: .5s;
-  width: 192px;
-  float: left;
-  position: relative;
-}
-
-.main_nav a:hover {
-  background: #fbfbfb;
-  color: #282828;
-  text-decoration: none;
-}
-
-.main_nav li a.active {
-  border-color: #d8d8d8;
-  border-width: 1px 1px 1px 0;
-  color: #333;
-  width: 193px;
-  z-index: 3;
-}
-
-.main_nav a.active:hover {
-  background: #fff;
-  color: #333;
-  text-decoration: none;
-}
-
-.nav-tabs a:link {
-  color: #dd4814;
-}
-
-/* sidebar */
-.sidebar {
-  background: #eee;
-  border: solid #d7d6d6;
-  border-width: 0 1px 0 0;
-  min-height: 100%;
-  border-bottom: 1px solid #d7d6d6;
-}
-
-.sidebar h4 {
-  color: #333;
-}
-
-.sidebar a { font-size: 14px; }
-
-.sidebar .switcher_bar h4 { margin-left: 15px; }
-
-/* main content */
-
-/* tables */
-.table tbody tr td,
-.table tbody tr th {
-  -moz-transition-duration: .5s;
-  -webkit-transition-duration: .5s;
-  transition-duration: .5s;
-}
-
-.table_header h3 {
-  font-family: Ubuntu, Arial, 'libra sans', sans-serif;
-  margin-left: -10px;
-}
-
-h3.table_title {
-  position: absolute;
-  left: -999em;
-}
-
-table th {
-  font-size: 14px;
-  font-weight: 500;
-  color: #444;
-}
-
-.table_actions { margin-right: -7px; }
-
-.table tfoot tr td { background-color: #F7F2F6; }
-
-/* static pages */
-.static_page, .quota-dynamic { margin-top: 30px; }
-
-.static_page, .quota-dynamic h3 { margin-bottom: 20px; }
-
-.static_page, .quota-dynamic .progress_bar {
-  max-width: 50%;
-  margin-top: 10px;
-}
-
-.static_page, .quota-dynamic, .table_wrapper, .usage_info_wrapper, .tab-content {
-  background: #fff;
-  background: rgba(255, 255, 255, 0.70);
-}
-
-a:link,
-a:visited,
-a:hover {
-  color: #dd4814;
-}
-
-#splash .modal {
-    background: #fff  url('../img/ubuntu.png') no-repeat center 35px;
-}
-
-h1.brand a {
-    background: url('../img/ubuntu.png') top left no-repeat;
-    width: 350px;
-}
diff --git a/debian/theme/img/favicon-ubuntu.ico b/debian/theme/img/favicon-ubuntu.ico
deleted file mode 100644 (file)
index a951793..0000000
Binary files a/debian/theme/img/favicon-ubuntu.ico and /dev/null differ
diff --git a/debian/theme/img/juju.png b/debian/theme/img/juju.png
deleted file mode 100644 (file)
index 87a8e26..0000000
Binary files a/debian/theme/img/juju.png and /dev/null differ
diff --git a/debian/theme/img/ubuntu.png b/debian/theme/img/ubuntu.png
deleted file mode 100644 (file)
index f0ecf73..0000000
Binary files a/debian/theme/img/ubuntu.png and /dev/null differ
diff --git a/debian/theme/ubuntu_theme.py b/debian/theme/ubuntu_theme.py
deleted file mode 100644 (file)
index 5e71043..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# The presence of this file in /etc/openstack-dashboard/ and/or
-# /usr/share/openstack-dashboard/openstack_dashboard/local/ will
-# enable the Ubuntu theme for Horizon.  To disable, remove the
-# openstack-dashboard-ubuntu-theme package, or remove this file.
-TEMPLATE_DIRS = ('/usr/share/openstack-dashboard-ubuntu-theme/templates', )
diff --git a/debian/watch b/debian/watch
deleted file mode 100644 (file)
index 9742cfb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-version=3
-opts="uversionmangle=s/\.([a-zA-Z])/~$1/;s/%7E/~/" \
- https://launchpad.net/horizon/+download https://launchpad.net/horizon/.*/.*/.*/horizon-(.*)\.tar\.gz
index 0e8f52f1ed2e7442d5fdf099eb8e9cbb43c679b6..47b6fbf9b799a87ad5f59bae2653a085c979015a 100755 (executable)
@@ -2,6 +2,18 @@
 
 RES=0
 
+horizon_apache_conf() {
+  echo -e "<VirtualHost *:80>
+    ServerName localhost
+    WSGIScriptAlias / /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
+    Alias /static /usr/share/openstack-dashboard/static
+    <Directory /usr/share/openstack-dashboard/openstack_dashboard/wsgi>
+        Order allow,deny
+        Allow from all
+    </Directory>
+</VirtualHost>" > /etc/$apache/sites-enabled/horizon.conf
+}
+
 case $1 in
    openstack-dashboard)
       python -c "import lesscpy"
@@ -13,18 +25,21 @@ case $1 in
 
       if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then
          apache="apache2"
-         page="horizon"
          chown -R horizon:horizon /usr/share/openstack-dashboard
          sed -i "s/\#ALLOWED_HOSTS = \[.*/ALLOWED_HOSTS = \['127.0.0.1', \]/g" /etc/openstack-dashboard/local_settings.py
       else
          apache="httpd"
-         page="dashboard"
          chown -R apache:apache /usr/share/openstack-dashboard
          sed -i "s/LOCAL_PATH = .*/LOCAL_PATH = '\/tmp'/g" /etc/openstack-dashboard/local_settings
       fi
+
+      horizon_apache_conf
+      # Disable default configuration
+      a2dissite 000-default
+
       service $apache restart
 
-      wget http://127.0.0.1/$page -O - | grep '<title>Login - OpenStack Dashboard</title>'
+      wget http://127.0.0.1 -O - | grep '<title>Login - OpenStack Dashboard</title>'
       RES=$?
    ;;
    python-django-horizon)
diff --git a/trusty/debian/changelog b/trusty/debian/changelog
new file mode 100644 (file)
index 0000000..6b57ab2
--- /dev/null
@@ -0,0 +1,9 @@
+horizon (1:2015.1.0-1~u14.04+mos1) mos7.0; urgency=medium
+
+  * Build horizon 2015.1.0 (stable/kilo)
+  * Update requirements for Kilo accroding to
+    https://github.com/openstack/horizon/blob/stable/kilo/requirements.txt and
+    https://github.com/openstack/requirements/blob/stable/kilo/global-requirements.txt
+
+ -- Ivan Berezovskiy <iberezovskiy@mirantis.com>  Thu, 07 May 2015 17:13:50 +0300
+
diff --git a/trusty/debian/compat b/trusty/debian/compat
new file mode 100644 (file)
index 0000000..ec63514
--- /dev/null
@@ -0,0 +1 @@
+9
similarity index 52%
rename from debian/control
rename to trusty/debian/control
index c21c50c111fe50e6c49d7523d19b6dab77c70668..9920329bf573396c09f4c95d06243f19dfe6da33 100644 (file)
@@ -1,79 +1,83 @@
 Source: horizon
 Section: net
 Priority: extra
-Maintainer: Chuck Short <zulcss@ubuntu.com>
+Maintainer: MOS Horizon Team <mos-horizon@mirantis.com>
 Build-Depends:
- debhelper (>= 8.0.0),
+ debhelper (>= 9),
  pylint,
- python-all (>= 2.6.6-3~),
+ python-all (>= 2.7.1),
  python-django-nose,
  python-lesscpy,
  python-mox,
- python-netaddr,
+ python-netaddr (>= 0.7.12),
  python-nose,
- python-pbr,
+ python-pbr (>= 0.10),
  python-setuptools,
  python-sphinx
 Standards-Version: 3.9.3
 Homepage: http://launchpad.net/horizon
-Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-server-dev/horizon/juno/files
-Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/horizon/juno
 
 Package: python-django-horizon
 Section: python
 Architecture: all
 Depends:
- python-ceilometerclient (>= 1.0.6),
- python-cinderclient (>= 1.0.7),
+ python-pbr (>= 0.10),
+ python-babel (>= 1.3),
+ python-django (>= 1.4.2),
+ python-pint (>= 0.5),
  python-cloudfiles,
  python-compressor (>= 1.4),
- python-oslo.concurrency (>= 1.4.1),
- python-django (>= 1.4.2), python-django (<< 1.7),
+ python-openstack-auth (>= 1.1.7),
  python-django-pyscss (>= 1.0.3),
- python-eventlet (>= 0.15.1),
- python-glanceclient (>= 0.14.0),
- python-heatclient (>= 0.2.9),
+ python-eventlet (>= 0.16.1),
  python-httplib2 (>= 0.7.5),
  python-iso8601 (>= 0.1.9),
- python-keystoneclient (>= 1:0.10.0),
  python-kombu (>= 2.5.0),
  python-lesscpy,
- python-lockfile (>= 0.8),
+ python-lockfile (>= 1:0.8),
  python-memcache,
  python-netaddr (>= 0.7.12),
- python-neutronclient (>= 1:2.3.6), python-neutronclient (<< 1:3.0),
- python-novaclient (>= 2.18.0),
- python-openstack-auth (>= 1.1.7),
- python-oslo.serialization (>= 1.0.0),
- python-pbr (>= 0.6), python-pbr (<< 0.7) | python-pbr (>> 0.7), python-pbr (<< 1.0),
- python-pint (>= 0.5),
- python-saharaclient (>= 0.7.3),
- python-six (>= 1.7.0),
- python-swiftclient (>= 2.2.0),
- python-troveclient (>= 1.0.4),
- python-tz,
+ python-oslo-concurrency (>= 1.8.0),
+ python-oslo-config (>= 1:1.9.3),
+ python-oslo-i18n (>= 1.5.0),
+ python-oslo-serialization (>= 1.4.0),
+ python-oslo-utils (>= 1.4.0),
+ python-pyscss (>= 1.2.1),
+ python-ceilometerclient (>= 1.0.13),
+ python-cinderclient (>= 1:1.1.0),
+ python-glanceclient (>= 0.15.0),
+ python-heatclient (>= 0.3.0),
+ python-keystoneclient (>= 1:1.1.0),
+ python-neutronclient (>= 1:2.3.11),
+ python-novaclient (>= 1:2.22.0),
+ python-saharaclient (>= 0.8.0),
+ python-swiftclient (>= 1:2.2.0),
+ python-troveclient (>= 1:1.0.7),
+ python-tz (>= 2013.6),
+ python-yaml (>= 3.1.0),
+ python-six (>= 1.9.0),
+ python-xstatic (>= 1.0.0),
+ python-xstatic-angular (>= 1.3.7),
  python-xstatic-angular-bootstrap (>= 0.11.0.2),
- python-xstatic-angular-cookies (>= 1.2.1.1),
- python-xstatic-angular-mock (>= 1.2.1.1),
- python-xstatic-angular (>= 1.2.1.1),
+ python-xstatic-angular-lrdragndrop (>= 1.0.2.2),
+ python-xstatic-bootstrap-datepicker (>= 1.3.1.0),
  python-xstatic-bootstrap-scss (>= 3),
  python-xstatic-d3 (>= 3.1.6.2),
- python-xstatic-bootstrap-datepicker (>= 1.3.1.0),
- python-xstatic-font-awesome (>= 4.1.0),
  python-xstatic-hogan (>= 2.0.0.2),
- python-xstatic-jasmine (>= 1.3.1.1),
+ python-xstatic-font-awesome (>= 4.2.0),
+ python-xstatic-jasmine (>= 2.1.2.0),
+ python-xstatic-jquery (>= 1.7.2),
  python-xstatic-jquery-migrate (>= 1.2.1.1),
  python-xstatic-jquery.quicksearch (>= 2.0.3.1),
  python-xstatic-jquery.tablesorter (>= 2.0.5b.0),
  python-xstatic-jquery-ui (>= 1.10.1),
- python-xstatic-jquery (>= 1.7.2),
  python-xstatic-jsencrypt (>= 2.0.0.2),
+ python-xstatic-magic-search (>= 0.2.0.1),
  python-xstatic-qunit (>= 1.14.0.2),
  python-xstatic-rickshaw (>= 1.5.0),
  python-xstatic-smart-table (>= 1.4.5.3),
  python-xstatic-spin (>= 1.2.5.2),
  python-xstatic-term.js (>= 0.0.4),
- python-xstatic (>= 1.0.0),
  ${misc:Depends},
  ${python:Depends}
 Recommends: memcached
@@ -83,6 +87,8 @@ Description: Django module providing web based interaction with OpenStack
  interactions with the OpenStack Nova cloud controller.
 
 Package: openstack-dashboard
+Provides: sahara-dashboard
+Replaces: sahara-dashboard
 Architecture: all
 Pre-Depends: dpkg (>= 1.15.7.2)
 Depends:
@@ -92,27 +98,8 @@ Depends:
  python-django-horizon (= ${source:Version}),
  ${misc:Depends},
  ${python:Depends}
-Recommends: openstack-dashboard-ubuntu-theme
 Description: django web interface to Openstack
  The OpenStack Dashboard is a reference implementation of a Django site that
  uses the Django-Nova project to provide web based interactions with the
  OpenStack Nova cloud controller.
 
-Package: python-django-openstack
-Section: oldlibs
-Architecture: all
-Depends: python-django-horizon (= ${source:Version}), ${misc:Depends}
-Description: dummy transitonal package
- This transitional package from the python-django-openstack to the
- python-django-horizon package. Once this package and its dependencies are
- installed you can remove it.
-
-Package: openstack-dashboard-ubuntu-theme
-Architecture: all
-Depends:
- openstack-dashboard (= ${source:Version}),
- ${misc:Depends},
- ${python:Depends}
-Description: Ubuntu theme for the Openstack dashboard
- A custom Ubuntu theme for Horizon.  This package is optional and overrides the
- default theme and branding.
\ No newline at end of file
similarity index 100%
rename from debian/copyright
rename to trusty/debian/copyright
similarity index 88%
rename from debian/openstack-dashboard.postinst
rename to trusty/debian/openstack-dashboard.postinst
index 7e75670dfa8de2a3fa3dd7f578824a1ef71e2e04..702422b48c5ef3342f8077e599620257367c18ba 100644 (file)
@@ -27,6 +27,14 @@ if [ "$1" = "configure" ]; then
             --no-create-home --shell /bin/false horizon
        fi
 
+  (
+    cd /usr/share/openstack-dashboard
+    echo "Collecting and compressing static assets..."
+    rm -rf ./static/horizon 2>&1 > /dev/null
+    python manage.py collectstatic --noinput 2>&1 > /dev/null
+    python manage.py compress --force 2>&1 > /dev/null
+  )
+
   if [ -e /usr/share/openstack-dashboard/openstack_dashboard/static ] ; then
     chown -R horizon:horizon \
       /usr/share/openstack-dashboard/openstack_dashboard/static
diff --git a/trusty/debian/patches/embedded-xstatic.patch b/trusty/debian/patches/embedded-xstatic.patch
new file mode 100644 (file)
index 0000000..966f47a
--- /dev/null
@@ -0,0 +1,166 @@
+From 4736af89b4d6d01354896c7a1063bd1cec26ec71 Mon Sep 17 00:00:00 2001
+From: Your Name <you@example.com>
+Date: Tue, 11 Nov 2014 12:24:22 -0500
+Subject: [PATCH] xstatic
+
+Signed-off-by: Your Name <you@example.com>
+---
+ horizon/test/settings.py        | 76 +++++++++++++++++++--------------------
+ openstack_dashboard/settings.py | 78 ++++++++++++++++++++---------------------
+ 2 files changed, 77 insertions(+), 77 deletions(-)
+
+--- a/openstack_dashboard/static_settings.py
++++ b/openstack_dashboard/static_settings.py
+@@ -17,107 +17,107 @@ distributions can edit or replace this f
+ to match their distribution's standards.
+ """
+-import xstatic.main
+-import xstatic.pkg.angular
+-import xstatic.pkg.angular_bootstrap
+-import xstatic.pkg.angular_lrdragndrop
+-import xstatic.pkg.angular_smart_table
+-import xstatic.pkg.bootstrap_datepicker
+-import xstatic.pkg.bootstrap_scss
+-import xstatic.pkg.d3
+-import xstatic.pkg.font_awesome
+-import xstatic.pkg.hogan
+-import xstatic.pkg.jasmine
+-import xstatic.pkg.jquery
+-import xstatic.pkg.jquery_migrate
+-import xstatic.pkg.jquery_quicksearch
+-import xstatic.pkg.jquery_tablesorter
+-import xstatic.pkg.jquery_ui
+-import xstatic.pkg.jsencrypt
+-import xstatic.pkg.magic_search
+-import xstatic.pkg.qunit
+-import xstatic.pkg.rickshaw
+-import xstatic.pkg.spin
+-import xstatic.pkg.termjs
++import horizon.xstatic.main
++import horizon.xstatic.pkg.angular
++import horizon.xstatic.pkg.angular_bootstrap
++import horizon.xstatic.pkg.angular_lrdragndrop
++import horizon.xstatic.pkg.angular_smart_table
++import horizon.xstatic.pkg.bootstrap_datepicker
++import horizon.xstatic.pkg.bootstrap_scss
++import horizon.xstatic.pkg.d3
++import horizon.xstatic.pkg.font_awesome
++import horizon.xstatic.pkg.hogan
++import horizon.xstatic.pkg.jasmine
++import horizon.xstatic.pkg.jquery
++import horizon.xstatic.pkg.jquery_migrate
++import horizon.xstatic.pkg.jquery_quicksearch
++import horizon.xstatic.pkg.jquery_tablesorter
++import horizon.xstatic.pkg.jquery_ui
++import horizon.xstatic.pkg.jsencrypt
++import horizon.xstatic.pkg.magic_search
++import horizon.xstatic.pkg.qunit
++import horizon.xstatic.pkg.rickshaw
++import horizon.xstatic.pkg.spin
++import horizon.xstatic.pkg.termjs
+ def get_staticfiles_dirs(webroot='/'):
+     STATICFILES_DIRS = [
+         ('horizon/lib/angular',
+-            xstatic.main.XStatic(xstatic.pkg.angular,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.angular,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/angular',
+-            xstatic.main.XStatic(xstatic.pkg.angular_bootstrap,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.angular_bootstrap,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/angular',
+-            xstatic.main.XStatic(xstatic.pkg.angular_lrdragndrop,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.angular_lrdragndrop,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/angular',
+-            xstatic.main.XStatic(xstatic.pkg.angular_smart_table,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.angular_smart_table,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/bootstrap_datepicker',
+-            xstatic.main.XStatic(xstatic.pkg.bootstrap_datepicker,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.bootstrap_datepicker,
+                                  root_url=webroot).base_dir),
+         ('bootstrap',
+-            xstatic.main.XStatic(xstatic.pkg.bootstrap_scss,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.bootstrap_scss,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib',
+-            xstatic.main.XStatic(xstatic.pkg.d3,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.d3,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib',
+-            xstatic.main.XStatic(xstatic.pkg.hogan,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.hogan,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/font-awesome',
+-            xstatic.main.XStatic(xstatic.pkg.font_awesome,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.font_awesome,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/jasmine',
+-            xstatic.main.XStatic(xstatic.pkg.jasmine,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jasmine,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/jquery',
+-            xstatic.main.XStatic(xstatic.pkg.jquery,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/jquery',
+-            xstatic.main.XStatic(xstatic.pkg.jquery_migrate,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_migrate,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/jquery',
+-            xstatic.main.XStatic(xstatic.pkg.jquery_quicksearch,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_quicksearch,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/jquery',
+-            xstatic.main.XStatic(xstatic.pkg.jquery_tablesorter,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_tablesorter,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/jsencrypt',
+-            xstatic.main.XStatic(xstatic.pkg.jsencrypt,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jsencrypt,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/magic_search',
+-            xstatic.main.XStatic(xstatic.pkg.magic_search,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.magic_search,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib/qunit',
+-            xstatic.main.XStatic(xstatic.pkg.qunit,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.qunit,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib',
+-            xstatic.main.XStatic(xstatic.pkg.rickshaw,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.rickshaw,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib',
+-            xstatic.main.XStatic(xstatic.pkg.spin,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.spin,
+                                  root_url=webroot).base_dir),
+         ('horizon/lib',
+-            xstatic.main.XStatic(xstatic.pkg.termjs,
++            horizon.xstatic.main.XStatic(horizon.xstatic.pkg.termjs,
+                                  root_url=webroot).base_dir),
+     ]
+-    if xstatic.main.XStatic(xstatic.pkg.jquery_ui,
++    if horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_ui,
+                             root_url=webroot).version.startswith('1.10.'):
+         # The 1.10.x versions already contain the 'ui' directory.
+         STATICFILES_DIRS.append(
+             ('horizon/lib/jquery-ui',
+-             xstatic.main.XStatic(xstatic.pkg.jquery_ui,
++             horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_ui,
+                                   root_url=webroot).base_dir))
+     else:
+         # Newer versions dropped the directory, add it to keep the path the
+         # same.
+         STATICFILES_DIRS.append(
+             ('horizon/lib/jquery-ui/ui',
+-             xstatic.main.XStatic(xstatic.pkg.jquery_ui,
++             horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_ui,
+                                   root_url=webroot).base_dir))
+     return STATICFILES_DIRS
diff --git a/trusty/debian/patches/fix-dashboard-django-wsgi.patch b/trusty/debian/patches/fix-dashboard-django-wsgi.patch
new file mode 100644 (file)
index 0000000..028d302
--- /dev/null
@@ -0,0 +1,25 @@
+From a0e71f08e46805a076d4f5cde7cb39ab64d82be3 Mon Sep 17 00:00:00 2001
+From: Maksym Yatsenko <myatsenko@mirantis.com>
+Date: Fri, 30 Jan 2015 18:19:22 +0200
+Subject: [PATCH] fix-dashboard-django-wsgi
+
+---
+ openstack_dashboard/wsgi/django.wsgi | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/openstack_dashboard/wsgi/django.wsgi b/openstack_dashboard/wsgi/django.wsgi
+index 1be0e06..05c8631 100644
+--- a/openstack_dashboard/wsgi/django.wsgi
++++ b/openstack_dashboard/wsgi/django.wsgi
+@@ -9,6 +9,8 @@ sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), '..
+ os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings'
+ sys.stdout = sys.stderr
++sys.path.append("/usr/share/openstack-dashboard/")
++
+ DEBUG = False
+ application = get_wsgi_application()
+-- 
+1.9.1
+
diff --git a/trusty/debian/patches/series b/trusty/debian/patches/series
new file mode 100644 (file)
index 0000000..3195bc8
--- /dev/null
@@ -0,0 +1,3 @@
+#embedded-xstatic.patch
+fix-dashboard-django-wsgi.patch
+fix-dashboard-manage.patch
diff --git a/trusty/debian/pydist-overrides b/trusty/debian/pydist-overrides
new file mode 100644 (file)
index 0000000..5e51238
--- /dev/null
@@ -0,0 +1,2 @@
+python_quantumclient
+django_nose_selenium
similarity index 72%
rename from debian/rules
rename to trusty/debian/rules
index 69e7b9561a2c113f4f502d0ff5f998859327e60d..e2be240abc914373bc4b35a8cb1974fb01a57e2b 100755 (executable)
@@ -8,9 +8,24 @@
 
 PYVER=$(shell pyversions -d)
 
+DEB_VERSION := $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
+DEB_NOEPOCH_VERSION := $(shell echo $(DEB_VERSION) | cut -d: -f2-)
+DEB_UPSTREAM_VERSION := $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//')
+
+override_dh_auto_clean:
+       find . -name "django*.mo" -delete || :
+       rm -f horizon/xstatic
+       dh_auto_clean
+       rm -f horizon/openstack_dashboard/local/.secret_key_store
+
+override_dh_auto_build:
+       #dh_auto_build
+
 override_dh_auto_install:
        # install horizon and dashboard
        python setup.py install --root=$(CURDIR)/debian/tmp --no-compile -O0 --install-layout=deb
+       # install vendorfied xstatic assets
+       #cp -r xstatic $(CURDIR)/debian/tmp/usr/lib/$(PYVER)/dist-packages/horizon
        install -d -m 755 $(CURDIR)/debian/tmp/usr/share/openstack-dashboard
        install -d -m 755 $(CURDIR)/debian/tmp/etc/openstack-dashboard
        install -d -m 755 $(CURDIR)/debian/tmp/etc/apache2/conf-available
@@ -25,8 +40,6 @@ override_dh_auto_install:
                 $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/manage.py
        ln -fs /etc/openstack-dashboard/local_settings.py \
                $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py
-       cp $(CURDIR)/debian/theme/img/juju.png \
-               $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/img/juju.png
        ln -fs /usr/lib/$(PYVER)/dist-packages/horizon/static/horizon \
                $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/openstack_dashboard/static/horizon
 
@@ -38,10 +51,3 @@ endif
 
 get-orig-source:
        uscan --verbose --force-download --rename --destdir=../build-area
-
-refresh-static-assets:
-       (cd openstack_dashboard/local; ln -sf local_settings.py.example local_settings.py)
-       python ./manage.py compress --force
-       rm -rf debian/static/openstack-dashboard/*
-       cp -r static/dashboard/* debian/static/openstack-dashboard/
-       rm -f openstack_dashboard/local/local_settings.py
diff --git a/trusty/debian/source/include-binaries b/trusty/debian/source/include-binaries
new file mode 100755 (executable)
index 0000000..f5a2750
--- /dev/null
@@ -0,0 +1,2 @@
+debian/theme/img/header_stripes.png
+debian/theme/img/dots.png
similarity index 73%
rename from debian/theme/templates/_stylesheets.html
rename to trusty/debian/theme/templates/_stylesheets.html
index 6dca9d6709053eb4d477fbe691e3d5e9cd713b96..9989e491301346643e2482a96f96ad80b7159a15 100644 (file)
@@ -6,7 +6,3 @@
 <link href='{{ STATIC_URL }}dashboard/less/horizon_charts.less' type='text/less' media='screen' rel='stylesheet' />
 <link href='{{ STATIC_URL }}dashboard/less/horizon_workflow.less' type='text/less' media='screen' rel='stylesheet' />
 {% endcompress %}
-
-<link href='{{ STATIC_URL }}ubuntu/css/ubuntu.css' type='text/css' media='screen' rel='stylesheet' />
-
-<link rel="shortcut icon" href="{{ STATIC_URL }}ubuntu/img/favicon-ubuntu.ico"/>