From cc2dd46e0fff5b3555924b908ffd108deabb1e1a Mon Sep 17 00:00:00 2001
From: Fufiri <48498367+Fufiri@users.noreply.github.com>
Date: Thu, 10 Dec 2020 11:28:27 +0100
Subject: [PATCH] changed folder name

---
 {Exercise 1+2 => Exercise 1}/accordion.html   |  132 +-
 .../desoslide-2.2.0/.gitignore                |    0
 .../desoslide-2.2.0/.jscsrc                   |    0
 .../desoslide-2.2.0/.npmignore                |    0
 .../desoslide-2.2.0/.travis.yml               |    0
 .../desoslide-2.2.0/CONTRIBUTING.md           |  182 +-
 .../desoslide-2.2.0/LICENSE.md                |    0
 .../desoslide-2.2.0/README.md                 |    0
 .../angularjs/desoslide.directive.js          |    0
 .../desoslide-2.2.0/angularjs/usage.html      |    0
 .../desoslide-2.2.0/bower.json                |   40 +-
 .../desoslide-2.2.0/desoslide.jquery.json     |   58 +-
 .../dist/css/jquery.desoslide.css             |    0
 .../dist/css/jquery.desoslide.min.css         |    0
 .../dist/img/desoslide_controls.png           |  Bin
 .../dist/js/jquery.desoslide.min.js           |    0
 .../doc/assets/css/app/main.css               |    0
 .../doc/assets/css/app/views/demo.css         |    0
 .../assets/css/app/views/documentation.css    |    0
 .../doc/assets/css/app/views/home.css         |    0
 .../assets/css/app/views/release-notes.css    |    0
 .../doc/assets/css/app/views/tests.css        |    0
 .../assets/css/vendor/animate/animate.min.css |    0
 .../doc/assets/css/vendor/magic/magic.min.css |    0
 .../assets/fonts/font-awesome/FontAwesome.otf |  Bin
 .../font-awesome/fontawesome-webfont.eot      |  Bin
 .../font-awesome/fontawesome-webfont.svg      |    0
 .../font-awesome/fontawesome-webfont.ttf      |  Bin
 .../font-awesome/fontawesome-webfont.woff     |  Bin
 .../doc/assets/fonts/open-sans/LICENSE.txt    |    0
 .../fonts/open-sans/light/open-sans.eot       |  Bin
 .../fonts/open-sans/light/open-sans.svg       |    0
 .../fonts/open-sans/light/open-sans.ttf       |  Bin
 .../fonts/open-sans/light/open-sans.woff      |  Bin
 .../fonts/open-sans/regular/open-sans.eot     |  Bin
 .../fonts/open-sans/regular/open-sans.svg     |    0
 .../fonts/open-sans/regular/open-sans.ttf     |  Bin
 .../fonts/open-sans/regular/open-sans.woff    |  Bin
 .../fonts/open-sans/semibold/open-sans.eot    |  Bin
 .../fonts/open-sans/semibold/open-sans.svg    |    0
 .../fonts/open-sans/semibold/open-sans.ttf    |  Bin
 .../fonts/open-sans/semibold/open-sans.woff   |  Bin
 .../doc/assets/fonts/pictonic/pictonic.eot    |  Bin
 .../doc/assets/fonts/pictonic/pictonic.svg    |    0
 .../doc/assets/fonts/pictonic/pictonic.svgz   |  Bin
 .../doc/assets/fonts/pictonic/pictonic.ttf    |  Bin
 .../doc/assets/fonts/pictonic/pictonic.woff   |  Bin
 .../doc/assets/img/core/animate.png           |  Bin
 .../doc/assets/img/core/jquery.png            |  Bin
 .../doc/assets/img/core/magic.png             |  Bin
 .../doc/assets/img/demos/demo1/attack.jpg     |  Bin
 .../assets/img/demos/demo1/attack_thumb.jpg   |  Bin
 .../img/demos/demo1/bick_buck_bunny.jpg       |  Bin
 .../img/demos/demo1/bick_buck_bunny_thumb.jpg |  Bin
 .../doc/assets/img/demos/demo1/bird.jpg       |  Bin
 .../doc/assets/img/demos/demo1/bird_thumb.jpg |  Bin
 .../doc/assets/img/demos/demo1/bunny_bow.jpg  |  Bin
 .../img/demos/demo1/bunny_bow_thumb.jpg       |  Bin
 .../doc/assets/img/demos/demo1/evil_frank.jpg |  Bin
 .../img/demos/demo1/evil_frank_thumb.jpg      |  Bin
 .../doc/assets/img/demos/demo1/its_a_trap.jpg |  Bin
 .../img/demos/demo1/its_a_trap_thumb.jpg      |  Bin
 .../doc/assets/img/demos/demo1/rinky.jpg      |  Bin
 .../assets/img/demos/demo1/rinky_thumb.jpg    |  Bin
 .../doc/assets/img/demos/demo1/rodents.jpg    |  Bin
 .../assets/img/demos/demo1/rodents_thumb.jpg  |  Bin
 .../doc/assets/img/demos/demo2/bird.jpg       |  Bin
 .../doc/assets/img/demos/demo2/bird_thumb.jpg |  Bin
 .../doc/assets/img/demos/demo2/butterfly.jpg  |  Bin
 .../img/demos/demo2/butterfly_thumb.jpg       |  Bin
 .../doc/assets/img/demos/demo2/flower.jpg     |  Bin
 .../assets/img/demos/demo2/flower_thumb.jpg   |  Bin
 .../doc/assets/img/demos/demo2/rose.jpg       |  Bin
 .../doc/assets/img/demos/demo2/rose_thumb.jpg |  Bin
 .../doc/assets/img/demos/demo3/bridge.jpg     |  Bin
 .../assets/img/demos/demo3/bridge_thumb.jpg   |  Bin
 .../doc/assets/img/demos/demo3/building.jpg   |  Bin
 .../assets/img/demos/demo3/building_thumb.jpg |  Bin
 .../doc/assets/img/demos/demo3/city.jpg       |  Bin
 .../doc/assets/img/demos/demo3/city_thumb.jpg |  Bin
 .../doc/assets/img/demos/demo3/eiffel.jpg     |  Bin
 .../assets/img/demos/demo3/eiffel_thumb.jpg   |  Bin
 .../doc/assets/img/demos/demo4/dog.jpg        |  Bin
 .../doc/assets/img/demos/demo4/dog_thumb.jpg  |  Bin
 .../doc/assets/img/demos/demo4/lynx.jpg       |  Bin
 .../doc/assets/img/demos/demo4/lynx_thumb.jpg |  Bin
 .../doc/assets/img/demos/demo4/tiger.jpg      |  Bin
 .../assets/img/demos/demo4/tiger_thumb.jpg    |  Bin
 .../doc/assets/img/demos/demo4/tortoise.jpg   |  Bin
 .../assets/img/demos/demo4/tortoise_thumb.jpg |  Bin
 .../doc/assets/img/demos/demo5/dolmens.jpg    |  Bin
 .../assets/img/demos/demo5/dolmens_thumb.jpg  |  Bin
 .../doc/assets/img/demos/demo5/lighthouse.jpg |  Bin
 .../img/demos/demo5/lighthouse_thumb.jpg      |  Bin
 .../doc/assets/img/demos/demo5/road.jpg       |  Bin
 .../doc/assets/img/demos/demo5/road_thumb.jpg |  Bin
 .../doc/assets/img/demos/demo5/wheat.jpg      |  Bin
 .../assets/img/demos/demo5/wheat_thumb.jpg    |  Bin
 .../doc/assets/img/favicon.png                |  Bin
 .../doc/assets/img/flat-ui/gift.png           |  Bin
 .../doc/assets/img/flat-ui/goal.png           |  Bin
 .../doc/assets/img/flat-ui/infinite.png       |  Bin
 .../doc/assets/img/flat-ui/picture.png        |  Bin
 .../doc/assets/img/flat-ui/settings.png       |  Bin
 .../doc/assets/img/flat-ui/tests.png          |  Bin
 .../doc/assets/img/team/jaoued.png            |  Bin
 .../doc/assets/img/team/sylvain.jpg           |  Bin
 .../desoslide-2.2.0/doc/assets/js/app/demo.js |  498 ++--
 .../doc/assets/js/app/documentation.js        |   30 +-
 .../desoslide-2.2.0/doc/assets/js/app/home.js |   34 +-
 .../doc/assets/js/app/release-notes.js        |   30 +-
 .../js/vendor/bootstrap/bootstrap.min.js      |    0
 .../js/vendor/highlight/highlight.pack.js     |    0
 .../js/vendor/html5shiv/html5shiv.min.js      |    0
 .../doc/assets/js/vendor/jquery/jquery.js     |    6 +-
 .../doc/assets/js/vendor/wow.min.js           |    2 +-
 .../doc/assets/less/app/components/fonts.less |    0
 .../assets/less/app/components/mixins.less    |    0
 .../less/app/components/modules/button.less   |    0
 .../less/app/components/modules/dialog.less   |    0
 .../less/app/components/modules/form.less     |    0
 .../app/components/modules/jumbotron.less     |    0
 .../less/app/components/modules/label.less    |    0
 .../less/app/components/modules/navbar.less   |    0
 .../components/modules/tomorrow-night.less    |    0
 .../less/app/components/typography.less       |    0
 .../assets/less/app/components/variables.less |    0
 .../doc/assets/less/app/layouts/body.less     |    0
 .../doc/assets/less/app/layouts/footer.less   |    0
 .../doc/assets/less/app/layouts/header.less   |    0
 .../doc/assets/less/app/main.less             |    0
 .../doc/assets/less/app/views/demo.less       |    0
 .../assets/less/app/views/documentation.less  |    0
 .../doc/assets/less/app/views/home.less       |    0
 .../assets/less/app/views/release-notes.less  |    0
 .../doc/assets/less/app/views/tests.less      |    0
 .../less/vendor/bootstrap/.csscomb.json       |    0
 .../assets/less/vendor/bootstrap/.csslintrc   |    0
 .../assets/less/vendor/bootstrap/alerts.less  |    0
 .../assets/less/vendor/bootstrap/badges.less  |    0
 .../less/vendor/bootstrap/bootstrap.less      |    0
 .../less/vendor/bootstrap/breadcrumbs.less    |    0
 .../less/vendor/bootstrap/button-groups.less  |    0
 .../assets/less/vendor/bootstrap/buttons.less |    0
 .../less/vendor/bootstrap/carousel.less       |    0
 .../assets/less/vendor/bootstrap/close.less   |    0
 .../assets/less/vendor/bootstrap/code.less    |    0
 .../bootstrap/component-animations.less       |    0
 .../less/vendor/bootstrap/dropdowns.less      |    0
 .../assets/less/vendor/bootstrap/forms.less   |    0
 .../less/vendor/bootstrap/glyphicons.less     |    0
 .../assets/less/vendor/bootstrap/grid.less    |    0
 .../less/vendor/bootstrap/input-groups.less   |    0
 .../less/vendor/bootstrap/jumbotron.less      |    0
 .../assets/less/vendor/bootstrap/labels.less  |    0
 .../less/vendor/bootstrap/list-group.less     |    0
 .../assets/less/vendor/bootstrap/media.less   |    0
 .../assets/less/vendor/bootstrap/mixins.less  |    0
 .../less/vendor/bootstrap/mixins/alerts.less  |    0
 .../bootstrap/mixins/background-variant.less  |    0
 .../bootstrap/mixins/border-radius.less       |    0
 .../less/vendor/bootstrap/mixins/buttons.less |    0
 .../vendor/bootstrap/mixins/center-block.less |    0
 .../vendor/bootstrap/mixins/clearfix.less     |    0
 .../less/vendor/bootstrap/mixins/forms.less   |    0
 .../vendor/bootstrap/mixins/gradients.less    |    0
 .../bootstrap/mixins/grid-framework.less      |    0
 .../less/vendor/bootstrap/mixins/grid.less    |    0
 .../vendor/bootstrap/mixins/hide-text.less    |    0
 .../less/vendor/bootstrap/mixins/image.less   |    0
 .../less/vendor/bootstrap/mixins/labels.less  |    0
 .../vendor/bootstrap/mixins/list-group.less   |    0
 .../vendor/bootstrap/mixins/nav-divider.less  |    0
 .../bootstrap/mixins/nav-vertical-align.less  |    0
 .../less/vendor/bootstrap/mixins/opacity.less |    0
 .../vendor/bootstrap/mixins/pagination.less   |    0
 .../less/vendor/bootstrap/mixins/panels.less  |    0
 .../vendor/bootstrap/mixins/progress-bar.less |    0
 .../vendor/bootstrap/mixins/reset-filter.less |    0
 .../less/vendor/bootstrap/mixins/resize.less  |    0
 .../mixins/responsive-visibility.less         |    0
 .../less/vendor/bootstrap/mixins/size.less    |    0
 .../vendor/bootstrap/mixins/tab-focus.less    |    0
 .../vendor/bootstrap/mixins/table-row.less    |    0
 .../bootstrap/mixins/text-emphasis.less       |    0
 .../bootstrap/mixins/text-overflow.less       |    0
 .../bootstrap/mixins/vendor-prefixes.less     |    0
 .../assets/less/vendor/bootstrap/modals.less  |    0
 .../assets/less/vendor/bootstrap/navbar.less  |    0
 .../assets/less/vendor/bootstrap/navs.less    |    0
 .../less/vendor/bootstrap/normalize.less      |    0
 .../assets/less/vendor/bootstrap/pager.less   |    0
 .../less/vendor/bootstrap/pagination.less     |    0
 .../assets/less/vendor/bootstrap/panels.less  |    0
 .../less/vendor/bootstrap/popovers.less       |    0
 .../assets/less/vendor/bootstrap/print.less   |    0
 .../less/vendor/bootstrap/progress-bars.less  |    0
 .../vendor/bootstrap/responsive-embed.less    |    0
 .../bootstrap/responsive-utilities.less       |    0
 .../less/vendor/bootstrap/scaffolding.less    |    0
 .../assets/less/vendor/bootstrap/tables.less  |    0
 .../assets/less/vendor/bootstrap/theme.less   |    0
 .../less/vendor/bootstrap/thumbnails.less     |    0
 .../assets/less/vendor/bootstrap/tooltip.less |    0
 .../assets/less/vendor/bootstrap/type.less    |    0
 .../less/vendor/bootstrap/utilities.less      |    0
 .../less/vendor/bootstrap/variables.less      |    0
 .../assets/less/vendor/bootstrap/wells.less   |    0
 .../doc/assets/less/vendor/flat-ui/demo.less  |    0
 .../doc/assets/less/vendor/flat-ui/docs.less  |    0
 .../assets/less/vendor/flat-ui/flat-ui.less   |    0
 .../assets/less/vendor/flat-ui/mixins.less    |    0
 .../vendor/flat-ui/modules/button-groups.less |    0
 .../less/vendor/flat-ui/modules/buttons.less  |    0
 .../less/vendor/flat-ui/modules/caret.less    |    0
 .../flat-ui/modules/checkbox-and-radio.less   |    0
 .../less/vendor/flat-ui/modules/code.less     |    0
 .../less/vendor/flat-ui/modules/dropdown.less |    0
 .../less/vendor/flat-ui/modules/footer.less   |    0
 .../less/vendor/flat-ui/modules/forms.less    |    0
 .../vendor/flat-ui/modules/glyphicons.less    |    0
 .../vendor/flat-ui/modules/input-groups.less  |    0
 .../vendor/flat-ui/modules/input-icons.less   |    0
 .../vendor/flat-ui/modules/local-fonts.less   |    0
 .../less/vendor/flat-ui/modules/login.less    |    0
 .../less/vendor/flat-ui/modules/navbar.less   |    0
 .../less/vendor/flat-ui/modules/pager.less    |    0
 .../vendor/flat-ui/modules/pagination.less    |    0
 .../less/vendor/flat-ui/modules/palette.less  |    0
 .../vendor/flat-ui/modules/progress-bars.less |    0
 .../vendor/flat-ui/modules/scaffolding.less   |    0
 .../less/vendor/flat-ui/modules/select.less   |    0
 .../less/vendor/flat-ui/modules/share.less    |    0
 .../less/vendor/flat-ui/modules/slider.less   |    0
 .../less/vendor/flat-ui/modules/switch.less   |    0
 .../vendor/flat-ui/modules/tagsinput.less     |    0
 .../vendor/flat-ui/modules/thumbnails.less    |    0
 .../less/vendor/flat-ui/modules/tile.less     |    0
 .../less/vendor/flat-ui/modules/todo.less     |    0
 .../less/vendor/flat-ui/modules/tooltip.less  |    0
 .../less/vendor/flat-ui/modules/type.less     |    0
 .../vendor/flat-ui/modules/typeahead.less     |    0
 .../less/vendor/flat-ui/modules/video.less    |    0
 .../assets/less/vendor/flat-ui/spaces.less    |    0
 .../assets/less/vendor/flat-ui/variables.less |    0
 .../vendor/font-awesome/bordered-pulled.less  |    0
 .../assets/less/vendor/font-awesome/core.less |    0
 .../less/vendor/font-awesome/fixed-width.less |    0
 .../vendor/font-awesome/font-awesome.less     |    0
 .../less/vendor/font-awesome/icons.less       |    0
 .../less/vendor/font-awesome/larger.less      |    0
 .../assets/less/vendor/font-awesome/list.less |    0
 .../less/vendor/font-awesome/mixins.less      |    0
 .../assets/less/vendor/font-awesome/path.less |    0
 .../vendor/font-awesome/rotated-flipped.less  |    0
 .../less/vendor/font-awesome/spinning.less    |    0
 .../less/vendor/font-awesome/stacked.less     |    0
 .../less/vendor/font-awesome/variables.less   |    0
 .../doc/assets/less/vendor/github/github.less |    0
 .../assets/less/vendor/pictonic/pictonic.less |    0
 .../desoslide-2.2.0/doc/demo.html             |    0
 .../desoslide-2.2.0/doc/index.html            |    0
 .../desoslide-2.2.0/doc/release-notes.html    |    0
 .../desoslide-2.2.0/gulpfile.js               |  444 +--
 .../desoslide-2.2.0/index.html                |    0
 .../desoslide-2.2.0/package.json              |   60 +-
 .../src/js/jquery.desoslide.js                | 2382 ++++++++---------
 .../src/less/jquery.desoslide.less            |  162 +-
 .../desoslide-2.2.0/tests/index.html          |  498 ++--
 .../desoslide-2.2.0/tests/qunit/css/qunit.css |    0
 .../desoslide-2.2.0/tests/qunit/js/qunit.js   |    0
 .../desoslide-2.2.0/tests/tests.js            |  706 ++---
 {Exercise 1+2 => Exercise 1}/home.html        |   34 +-
 {Exercise 1+2 => Exercise 1}/image5-small.jpg |  Bin
 .../images/image1-small.jpg                   |  Bin
 .../images/image1.jpg                         |  Bin
 .../images/image2-small.jpg                   |  Bin
 .../images/image2.jpg                         |  Bin
 .../images/image3-small.jpg                   |  Bin
 .../images/image3.jpg                         |  Bin
 .../images/image4-small.jpg                   |  Bin
 .../images/image4.jpg                         |  Bin
 .../images/image5-small.jpg                   |  Bin
 .../images/image5.jpg                         |  Bin
 .../images/image6-small.jpg                   |  Bin
 .../images/image6.jpg                         |  Bin
 .../images/image7-small.jpg                   |  Bin
 .../images/image7.jpg                         |  Bin
 .../images/image8-small.jpg                   |  Bin
 .../images/image8.jpg                         |  Bin
 {Exercise 1+2 => Exercise 1}/index.html       |   88 +-
 {Exercise 1+2 => Exercise 1}/script.js        |   68 +-
 {Exercise 1+2 => Exercise 1}/selectable.html  |   56 +-
 {Exercise 1+2 => Exercise 1}/slideshow.html   |  112 +-
 {Exercise 1+2 => Exercise 1}/sortable.html    |   58 +-
 {Exercise 1+2 => Exercise 1}/style.css        |  236 +-
 {Exercise 1+2 => Exercise 1}/tabs.html        |   68 +-
 297 files changed, 2992 insertions(+), 2992 deletions(-)
 rename {Exercise 1+2 => Exercise 1}/accordion.html (97%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/.gitignore (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/.jscsrc (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/.npmignore (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/.travis.yml (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/CONTRIBUTING.md (97%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/LICENSE.md (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/README.md (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/angularjs/desoslide.directive.js (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/angularjs/usage.html (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/bower.json (95%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/desoslide.jquery.json (96%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/dist/css/jquery.desoslide.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/dist/css/jquery.desoslide.min.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/dist/img/desoslide_controls.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/dist/js/jquery.desoslide.min.js (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/css/app/main.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/css/app/views/demo.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/css/app/views/documentation.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/css/app/views/home.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/css/app/views/release-notes.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/css/app/views/tests.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/css/vendor/animate/animate.min.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/css/vendor/magic/magic.min.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/font-awesome/FontAwesome.otf (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.eot (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.svg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.ttf (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.woff (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/LICENSE.txt (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.eot (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.svg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.ttf (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.woff (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.eot (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.svg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.ttf (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.woff (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.eot (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.svg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.ttf (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.woff (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.eot (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.svg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.svgz (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.ttf (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.woff (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/core/animate.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/core/jquery.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/core/magic.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/attack.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/attack_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/bick_buck_bunny.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/bick_buck_bunny_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/bird.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/bird_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/bunny_bow.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/bunny_bow_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/evil_frank.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/evil_frank_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/its_a_trap.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/its_a_trap_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/rinky.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/rinky_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/rodents.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo1/rodents_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo2/bird.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo2/bird_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo2/butterfly.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo2/butterfly_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo2/flower.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo2/flower_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo2/rose.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo2/rose_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo3/bridge.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo3/bridge_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo3/building.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo3/building_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo3/city.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo3/city_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo3/eiffel.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo3/eiffel_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo4/dog.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo4/dog_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo4/lynx.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo4/lynx_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo4/tiger.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo4/tiger_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo4/tortoise.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo4/tortoise_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo5/dolmens.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo5/dolmens_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo5/lighthouse.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo5/lighthouse_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo5/road.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo5/road_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo5/wheat.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/demos/demo5/wheat_thumb.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/favicon.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/flat-ui/gift.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/flat-ui/goal.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/flat-ui/infinite.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/flat-ui/picture.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/flat-ui/settings.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/flat-ui/tests.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/team/jaoued.png (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/img/team/sylvain.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/js/app/demo.js (97%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/js/app/documentation.js (95%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/js/app/home.js (95%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/js/app/release-notes.js (95%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/js/vendor/bootstrap/bootstrap.min.js (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/js/vendor/highlight/highlight.pack.js (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/js/vendor/html5shiv/html5shiv.min.js (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/js/vendor/jquery/jquery.js (99%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/js/vendor/wow.min.js (99%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/fonts.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/mixins.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/modules/button.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/modules/dialog.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/modules/form.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/modules/jumbotron.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/modules/label.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/modules/navbar.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/modules/tomorrow-night.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/typography.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/components/variables.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/layouts/body.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/layouts/footer.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/layouts/header.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/main.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/views/demo.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/views/documentation.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/views/home.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/views/release-notes.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/app/views/tests.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/.csscomb.json (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/.csslintrc (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/alerts.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/badges.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/bootstrap.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/breadcrumbs.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/button-groups.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/buttons.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/carousel.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/close.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/code.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/component-animations.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/dropdowns.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/forms.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/glyphicons.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/grid.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/input-groups.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/jumbotron.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/labels.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/list-group.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/media.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/alerts.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/background-variant.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/border-radius.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/buttons.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/center-block.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/clearfix.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/forms.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/gradients.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/grid-framework.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/grid.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/hide-text.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/image.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/labels.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/list-group.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/nav-divider.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/nav-vertical-align.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/opacity.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/pagination.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/panels.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/progress-bar.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/reset-filter.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/resize.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/responsive-visibility.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/size.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/tab-focus.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/table-row.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/text-emphasis.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/text-overflow.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/vendor-prefixes.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/modals.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/navbar.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/navs.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/normalize.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/pager.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/pagination.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/panels.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/popovers.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/print.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/progress-bars.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/responsive-embed.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/responsive-utilities.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/scaffolding.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/tables.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/theme.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/thumbnails.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/tooltip.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/type.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/utilities.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/variables.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/wells.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/demo.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/docs.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/flat-ui.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/mixins.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/button-groups.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/buttons.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/caret.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/checkbox-and-radio.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/code.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/dropdown.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/footer.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/forms.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/glyphicons.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/input-groups.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/input-icons.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/local-fonts.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/login.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/navbar.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/pager.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/pagination.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/palette.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/progress-bars.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/scaffolding.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/select.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/share.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/slider.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/switch.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tagsinput.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/thumbnails.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tile.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/todo.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tooltip.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/type.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/typeahead.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/video.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/spaces.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/variables.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/bordered-pulled.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/core.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/fixed-width.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/font-awesome.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/icons.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/larger.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/list.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/mixins.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/path.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/rotated-flipped.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/spinning.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/stacked.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/variables.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/github/github.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/assets/less/vendor/pictonic/pictonic.less (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/demo.html (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/index.html (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/doc/release-notes.html (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/gulpfile.js (97%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/index.html (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/package.json (96%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/src/js/jquery.desoslide.js (97%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/src/less/jquery.desoslide.less (95%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/tests/index.html (97%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/tests/qunit/css/qunit.css (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/tests/qunit/js/qunit.js (100%)
 rename {Exercise 1+2 => Exercise 1}/desoslide-2.2.0/tests/tests.js (96%)
 rename {Exercise 1+2 => Exercise 1}/home.html (95%)
 rename {Exercise 1+2 => Exercise 1}/image5-small.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image1-small.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image1.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image2-small.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image2.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image3-small.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image3.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image4-small.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image4.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image5-small.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image5.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image6-small.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image6.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image7-small.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image7.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image8-small.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/images/image8.jpg (100%)
 rename {Exercise 1+2 => Exercise 1}/index.html (97%)
 rename {Exercise 1+2 => Exercise 1}/script.js (94%)
 rename {Exercise 1+2 => Exercise 1}/selectable.html (96%)
 rename {Exercise 1+2 => Exercise 1}/slideshow.html (97%)
 rename {Exercise 1+2 => Exercise 1}/sortable.html (97%)
 rename {Exercise 1+2 => Exercise 1}/style.css (93%)
 rename {Exercise 1+2 => Exercise 1}/tabs.html (98%)

diff --git a/Exercise 1+2/accordion.html b/Exercise 1/accordion.html
similarity index 97%
rename from Exercise 1+2/accordion.html
rename to Exercise 1/accordion.html
index 2fe69b5..14969f9 100644
--- a/Exercise 1+2/accordion.html	
+++ b/Exercise 1/accordion.html	
@@ -1,67 +1,67 @@
-<!doctype html>
-<html lang="en">
-<head>
-  <meta charset="utf-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <title>Accordion page</title>
-  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
-  <link rel="stylesheet" href="style.css">
-  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
-  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-  <script src="script.js"></script>
-
-</head>
-<body>
- 
-<div id="accordion">
-  <h3>Italy</h3>
-  <div>
-    <p>
-    Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
-    ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
-    amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
-    odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
-    </p>
-  </div>
-  <h3>France</h3>
-  <div>
-    <p>
-    Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
-    purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
-    velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
-    suscipit faucibus urna.
-    </p>
-  </div>
-  <h3>Australia</h3>
-  <div>
-    <p>
-    Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
-    Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
-    ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
-    lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
-    </p>
-    <ul>
-      <li>List item one</li>
-      <li>List item two</li>
-      <li>List item three</li>
-    </ul>
-  </div>
-  <h3>Germany</h3>
-  <div>
-    <p>
-    Cras dictum. Pellentesque habitant morbi tristique senectus et netus
-    et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
-    faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
-    mauris vel est.
-    </p>
-    <p>
-    Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
-    Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
-    inceptos himenaeos.
-    </p>
-  </div>
-</div>
- 
- 
-</body>
+<!doctype html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <title>Accordion page</title>
+  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
+  <link rel="stylesheet" href="style.css">
+  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
+  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
+  <script src="script.js"></script>
+
+</head>
+<body>
+ 
+<div id="accordion">
+  <h3>Italy</h3>
+  <div>
+    <p>
+    Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
+    ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
+    amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
+    odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
+    </p>
+  </div>
+  <h3>France</h3>
+  <div>
+    <p>
+    Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
+    purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
+    velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
+    suscipit faucibus urna.
+    </p>
+  </div>
+  <h3>Australia</h3>
+  <div>
+    <p>
+    Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
+    Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
+    ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
+    lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
+    </p>
+    <ul>
+      <li>List item one</li>
+      <li>List item two</li>
+      <li>List item three</li>
+    </ul>
+  </div>
+  <h3>Germany</h3>
+  <div>
+    <p>
+    Cras dictum. Pellentesque habitant morbi tristique senectus et netus
+    et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
+    faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
+    mauris vel est.
+    </p>
+    <p>
+    Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
+    Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
+    inceptos himenaeos.
+    </p>
+  </div>
+</div>
+ 
+ 
+</body>
 </html>
\ No newline at end of file
diff --git a/Exercise 1+2/desoslide-2.2.0/.gitignore b/Exercise 1/desoslide-2.2.0/.gitignore
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/.gitignore
rename to Exercise 1/desoslide-2.2.0/.gitignore
diff --git a/Exercise 1+2/desoslide-2.2.0/.jscsrc b/Exercise 1/desoslide-2.2.0/.jscsrc
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/.jscsrc
rename to Exercise 1/desoslide-2.2.0/.jscsrc
diff --git a/Exercise 1+2/desoslide-2.2.0/.npmignore b/Exercise 1/desoslide-2.2.0/.npmignore
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/.npmignore
rename to Exercise 1/desoslide-2.2.0/.npmignore
diff --git a/Exercise 1+2/desoslide-2.2.0/.travis.yml b/Exercise 1/desoslide-2.2.0/.travis.yml
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/.travis.yml
rename to Exercise 1/desoslide-2.2.0/.travis.yml
diff --git a/Exercise 1+2/desoslide-2.2.0/CONTRIBUTING.md b/Exercise 1/desoslide-2.2.0/CONTRIBUTING.md
similarity index 97%
rename from Exercise 1+2/desoslide-2.2.0/CONTRIBUTING.md
rename to Exercise 1/desoslide-2.2.0/CONTRIBUTING.md
index 1382a79..16074ec 100644
--- a/Exercise 1+2/desoslide-2.2.0/CONTRIBUTING.md	
+++ b/Exercise 1/desoslide-2.2.0/CONTRIBUTING.md	
@@ -1,91 +1,91 @@
-# Contribution guidelines
-
-Thank's for your interest of desoSlide!
-
-Please follow this basic guidelines if you want to get involved.
-
-## Reporting issues
-
-A bug is a _demonstrable problem_ that is caused by the code in the
-repository.
-
-Please read the following guidelines before you [report an issue][issues]:
-
-1. **Use the GitHub issue search** &mdash; check if the issue has already been
-   reported. If it has been, please comment on the existing issue.
-
-2. **Check if the issue has been fixed** &mdash; the latest `master` or
-   development branch may already contain a fix.
-
-3. **Isolate the demonstrable problem** &mdash; make sure that the code in the
-   project's repository is _definitely_ responsible for the issue. Create a
-   [reduced test case](http://css-tricks.com/6263-reduced-test-cases/) - an
-   extremely simple and immediately viewable example of the issue.
-
-4. **Include a live example** &mdash; provide a link to your reduced test case
-   when appropriate (e.g. if the issue is related to (front-end technologies).
-   Please use [jsFiddle](http://jsfiddle.net) to host examples.
-
-Please try to be as detailed as possible in your report too. What is your
-environment? What steps will reproduce the issue? What browser(s) and OS
-experience the problem? What would you expect to be the outcome? All these
-details will help people to assess and fix any potential bugs.
-
-## Feature requests
-
-Feature requests are welcome. But take a moment to find out whether your idea
-fits with the scope and aims of the project. It's up to *you* to make a strong
-case to convince the project's developers of the merits of this feature. Please
-provide as much detail and context as possible.
-
-## Pull Requests
-
-Good pull requests — patches, improvements, new features — are a fantastic
-help. They should remain focused in scope and avoid containing unrelated
-commits.
-
-If your contribution involves a significant amount of work or substantial
-changes to any part of the project, please open an issue to discuss it first.
-
-Please follow this process; it's the best way to get your work included in the
-project:
-
-1. [Fork](http://help.github.com/fork-a-repo/) the project.
-
-2. Clone your fork (`git clone
-   https://github.com/<your-username>/desoslide.git`).
-
-3. Add an `upstream` remote (`git remote add upstream
-   https://github.com/sylouuu/desoslide.git`).
-
-4. Get the latest changes from upstream (e.g. `git pull upstream
-   <dev-branch>`).
-
-5. Create a new topic branch to contain your feature, change, or fix (`git
-   checkout -b <topic-branch-name>`).
-
-6. Make sure that your changes adhere to the current coding conventions used
-   throughout the project - indentation, accurate comments, etc. Please update
-   any documentation that is relevant to the change you are making.
-
-7. Commit your changes in logical chunks; use git's [interactive
-   rebase](https://help.github.com/articles/interactive-rebase) feature to tidy
-   up your commits before making them public. Please adhere to these [git commit
-   message
-   guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
-   or your pull request is unlikely be merged into the main project.
-
-8. Locally merge (or rebase) the upstream branch into your topic branch.
-
-9. Push your topic branch up to your fork (`git push origin
-   <topic-branch-name>`).
-
-10. [Open a Pull Request](http://help.github.com/send-pull-requests/) with a
-    clear title and description. Please mention which browsers you tested in.
-
-## Acknowledgements
-
-This contributing guide has been adapted from [HTML5 boilerplate's guide][g].
-
-[g]: https://github.com/h5bp/html5-boilerplate/blob/master/CONTRIBUTING.md
-[issues]: https://github.com/sylouuu/desoslide/issues/
+# Contribution guidelines
+
+Thank's for your interest of desoSlide!
+
+Please follow this basic guidelines if you want to get involved.
+
+## Reporting issues
+
+A bug is a _demonstrable problem_ that is caused by the code in the
+repository.
+
+Please read the following guidelines before you [report an issue][issues]:
+
+1. **Use the GitHub issue search** &mdash; check if the issue has already been
+   reported. If it has been, please comment on the existing issue.
+
+2. **Check if the issue has been fixed** &mdash; the latest `master` or
+   development branch may already contain a fix.
+
+3. **Isolate the demonstrable problem** &mdash; make sure that the code in the
+   project's repository is _definitely_ responsible for the issue. Create a
+   [reduced test case](http://css-tricks.com/6263-reduced-test-cases/) - an
+   extremely simple and immediately viewable example of the issue.
+
+4. **Include a live example** &mdash; provide a link to your reduced test case
+   when appropriate (e.g. if the issue is related to (front-end technologies).
+   Please use [jsFiddle](http://jsfiddle.net) to host examples.
+
+Please try to be as detailed as possible in your report too. What is your
+environment? What steps will reproduce the issue? What browser(s) and OS
+experience the problem? What would you expect to be the outcome? All these
+details will help people to assess and fix any potential bugs.
+
+## Feature requests
+
+Feature requests are welcome. But take a moment to find out whether your idea
+fits with the scope and aims of the project. It's up to *you* to make a strong
+case to convince the project's developers of the merits of this feature. Please
+provide as much detail and context as possible.
+
+## Pull Requests
+
+Good pull requests — patches, improvements, new features — are a fantastic
+help. They should remain focused in scope and avoid containing unrelated
+commits.
+
+If your contribution involves a significant amount of work or substantial
+changes to any part of the project, please open an issue to discuss it first.
+
+Please follow this process; it's the best way to get your work included in the
+project:
+
+1. [Fork](http://help.github.com/fork-a-repo/) the project.
+
+2. Clone your fork (`git clone
+   https://github.com/<your-username>/desoslide.git`).
+
+3. Add an `upstream` remote (`git remote add upstream
+   https://github.com/sylouuu/desoslide.git`).
+
+4. Get the latest changes from upstream (e.g. `git pull upstream
+   <dev-branch>`).
+
+5. Create a new topic branch to contain your feature, change, or fix (`git
+   checkout -b <topic-branch-name>`).
+
+6. Make sure that your changes adhere to the current coding conventions used
+   throughout the project - indentation, accurate comments, etc. Please update
+   any documentation that is relevant to the change you are making.
+
+7. Commit your changes in logical chunks; use git's [interactive
+   rebase](https://help.github.com/articles/interactive-rebase) feature to tidy
+   up your commits before making them public. Please adhere to these [git commit
+   message
+   guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
+   or your pull request is unlikely be merged into the main project.
+
+8. Locally merge (or rebase) the upstream branch into your topic branch.
+
+9. Push your topic branch up to your fork (`git push origin
+   <topic-branch-name>`).
+
+10. [Open a Pull Request](http://help.github.com/send-pull-requests/) with a
+    clear title and description. Please mention which browsers you tested in.
+
+## Acknowledgements
+
+This contributing guide has been adapted from [HTML5 boilerplate's guide][g].
+
+[g]: https://github.com/h5bp/html5-boilerplate/blob/master/CONTRIBUTING.md
+[issues]: https://github.com/sylouuu/desoslide/issues/
diff --git a/Exercise 1+2/desoslide-2.2.0/LICENSE.md b/Exercise 1/desoslide-2.2.0/LICENSE.md
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/LICENSE.md
rename to Exercise 1/desoslide-2.2.0/LICENSE.md
diff --git a/Exercise 1+2/desoslide-2.2.0/README.md b/Exercise 1/desoslide-2.2.0/README.md
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/README.md
rename to Exercise 1/desoslide-2.2.0/README.md
diff --git a/Exercise 1+2/desoslide-2.2.0/angularjs/desoslide.directive.js b/Exercise 1/desoslide-2.2.0/angularjs/desoslide.directive.js
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/angularjs/desoslide.directive.js
rename to Exercise 1/desoslide-2.2.0/angularjs/desoslide.directive.js
diff --git a/Exercise 1+2/desoslide-2.2.0/angularjs/usage.html b/Exercise 1/desoslide-2.2.0/angularjs/usage.html
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/angularjs/usage.html
rename to Exercise 1/desoslide-2.2.0/angularjs/usage.html
diff --git a/Exercise 1+2/desoslide-2.2.0/bower.json b/Exercise 1/desoslide-2.2.0/bower.json
similarity index 95%
rename from Exercise 1+2/desoslide-2.2.0/bower.json
rename to Exercise 1/desoslide-2.2.0/bower.json
index 85e455b..ff8f9b6 100644
--- a/Exercise 1+2/desoslide-2.2.0/bower.json	
+++ b/Exercise 1/desoslide-2.2.0/bower.json	
@@ -1,20 +1,20 @@
-{
-    "name": "desoslide",
-    "version": "2.2.0",
-    "homepage": "https://github.com/sylouuu/desoslide",
-    "description": "Take control of your slideshow with this powerful jQuery plugin",
-    "keywords": [
-        "slider",
-        "slideshow",
-        "thumbnails"
-    ],
-    "license": "MIT",
-    "ignore": [
-        "doc"
-    ],
-    "dependencies": {
-        "jquery": "~1.11.0",
-        "animate.css": "~3.1.0",
-        "magic": "~1.0.0"
-    }
-}
+{
+    "name": "desoslide",
+    "version": "2.2.0",
+    "homepage": "https://github.com/sylouuu/desoslide",
+    "description": "Take control of your slideshow with this powerful jQuery plugin",
+    "keywords": [
+        "slider",
+        "slideshow",
+        "thumbnails"
+    ],
+    "license": "MIT",
+    "ignore": [
+        "doc"
+    ],
+    "dependencies": {
+        "jquery": "~1.11.0",
+        "animate.css": "~3.1.0",
+        "magic": "~1.0.0"
+    }
+}
diff --git a/Exercise 1+2/desoslide-2.2.0/desoslide.jquery.json b/Exercise 1/desoslide-2.2.0/desoslide.jquery.json
similarity index 96%
rename from Exercise 1+2/desoslide-2.2.0/desoslide.jquery.json
rename to Exercise 1/desoslide-2.2.0/desoslide.jquery.json
index 2444136..9d97814 100644
--- a/Exercise 1+2/desoslide-2.2.0/desoslide.jquery.json	
+++ b/Exercise 1/desoslide-2.2.0/desoslide.jquery.json	
@@ -1,29 +1,29 @@
-{
-    "name": "desoslide",
-    "title": "desoSlide",
-    "version": "2.2.0",
-    "description": "Take control of your slideshow with this powerful jQuery plugin",
-    "keywords": [
-        "slider",
-        "slideshow",
-        "thumbnails"
-    ],
-    "author": {
-        "name": "sylouuu",
-        "url": "http://sylouuu.github.io/"
-    },
-    "licenses": [
-        {
-            "type": "MIT",
-            "url": "https://github.com/sylouuu/desoslide/blob/master/LICENSE.md"
-        }
-    ],
-    "bugs": "https://github.com/sylouuu/desoslide/issues",
-    "homepage": "http://sylouuu.github.io/desoslide",
-    "demo": "http://sylouuu.github.io/desoslide/doc/demo.html",
-    "docs": "http://sylouuu.github.io/desoslide/doc/",
-    "download": "https://github.com/sylouuu/desoslide/releases",
-    "dependencies": {
-        "jquery": ">=1.7"
-    }
-}
+{
+    "name": "desoslide",
+    "title": "desoSlide",
+    "version": "2.2.0",
+    "description": "Take control of your slideshow with this powerful jQuery plugin",
+    "keywords": [
+        "slider",
+        "slideshow",
+        "thumbnails"
+    ],
+    "author": {
+        "name": "sylouuu",
+        "url": "http://sylouuu.github.io/"
+    },
+    "licenses": [
+        {
+            "type": "MIT",
+            "url": "https://github.com/sylouuu/desoslide/blob/master/LICENSE.md"
+        }
+    ],
+    "bugs": "https://github.com/sylouuu/desoslide/issues",
+    "homepage": "http://sylouuu.github.io/desoslide",
+    "demo": "http://sylouuu.github.io/desoslide/doc/demo.html",
+    "docs": "http://sylouuu.github.io/desoslide/doc/",
+    "download": "https://github.com/sylouuu/desoslide/releases",
+    "dependencies": {
+        "jquery": ">=1.7"
+    }
+}
diff --git a/Exercise 1+2/desoslide-2.2.0/dist/css/jquery.desoslide.css b/Exercise 1/desoslide-2.2.0/dist/css/jquery.desoslide.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/dist/css/jquery.desoslide.css
rename to Exercise 1/desoslide-2.2.0/dist/css/jquery.desoslide.css
diff --git a/Exercise 1+2/desoslide-2.2.0/dist/css/jquery.desoslide.min.css b/Exercise 1/desoslide-2.2.0/dist/css/jquery.desoslide.min.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/dist/css/jquery.desoslide.min.css
rename to Exercise 1/desoslide-2.2.0/dist/css/jquery.desoslide.min.css
diff --git a/Exercise 1+2/desoslide-2.2.0/dist/img/desoslide_controls.png b/Exercise 1/desoslide-2.2.0/dist/img/desoslide_controls.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/dist/img/desoslide_controls.png
rename to Exercise 1/desoslide-2.2.0/dist/img/desoslide_controls.png
diff --git a/Exercise 1+2/desoslide-2.2.0/dist/js/jquery.desoslide.min.js b/Exercise 1/desoslide-2.2.0/dist/js/jquery.desoslide.min.js
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/dist/js/jquery.desoslide.min.js
rename to Exercise 1/desoslide-2.2.0/dist/js/jquery.desoslide.min.js
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/main.css b/Exercise 1/desoslide-2.2.0/doc/assets/css/app/main.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/main.css
rename to Exercise 1/desoslide-2.2.0/doc/assets/css/app/main.css
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/views/demo.css b/Exercise 1/desoslide-2.2.0/doc/assets/css/app/views/demo.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/views/demo.css
rename to Exercise 1/desoslide-2.2.0/doc/assets/css/app/views/demo.css
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/views/documentation.css b/Exercise 1/desoslide-2.2.0/doc/assets/css/app/views/documentation.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/views/documentation.css
rename to Exercise 1/desoslide-2.2.0/doc/assets/css/app/views/documentation.css
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/views/home.css b/Exercise 1/desoslide-2.2.0/doc/assets/css/app/views/home.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/views/home.css
rename to Exercise 1/desoslide-2.2.0/doc/assets/css/app/views/home.css
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/views/release-notes.css b/Exercise 1/desoslide-2.2.0/doc/assets/css/app/views/release-notes.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/views/release-notes.css
rename to Exercise 1/desoslide-2.2.0/doc/assets/css/app/views/release-notes.css
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/views/tests.css b/Exercise 1/desoslide-2.2.0/doc/assets/css/app/views/tests.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/css/app/views/tests.css
rename to Exercise 1/desoslide-2.2.0/doc/assets/css/app/views/tests.css
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/css/vendor/animate/animate.min.css b/Exercise 1/desoslide-2.2.0/doc/assets/css/vendor/animate/animate.min.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/css/vendor/animate/animate.min.css
rename to Exercise 1/desoslide-2.2.0/doc/assets/css/vendor/animate/animate.min.css
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/css/vendor/magic/magic.min.css b/Exercise 1/desoslide-2.2.0/doc/assets/css/vendor/magic/magic.min.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/css/vendor/magic/magic.min.css
rename to Exercise 1/desoslide-2.2.0/doc/assets/css/vendor/magic/magic.min.css
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/font-awesome/FontAwesome.otf b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/font-awesome/FontAwesome.otf
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/font-awesome/FontAwesome.otf
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/font-awesome/FontAwesome.otf
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.eot b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.eot
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.eot
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.eot
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.svg b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.svg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.svg
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.svg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.ttf b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.ttf
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.ttf
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.ttf
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.woff b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.woff
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.woff
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/font-awesome/fontawesome-webfont.woff
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/LICENSE.txt b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/LICENSE.txt
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/LICENSE.txt
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/LICENSE.txt
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.eot b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.eot
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.eot
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.eot
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.svg b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.svg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.svg
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.svg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.ttf b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.ttf
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.ttf
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.ttf
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.woff b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.woff
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.woff
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/light/open-sans.woff
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.eot b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.eot
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.eot
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.eot
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.svg b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.svg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.svg
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.svg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.ttf b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.ttf
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.ttf
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.ttf
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.woff b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.woff
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.woff
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/regular/open-sans.woff
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.eot b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.eot
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.eot
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.eot
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.svg b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.svg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.svg
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.svg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.ttf b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.ttf
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.ttf
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.ttf
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.woff b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.woff
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.woff
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/open-sans/semibold/open-sans.woff
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.eot b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.eot
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.eot
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.eot
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.svg b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.svg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.svg
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.svg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.svgz b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.svgz
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.svgz
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.svgz
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.ttf b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.ttf
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.ttf
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.ttf
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.woff b/Exercise 1/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.woff
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.woff
rename to Exercise 1/desoslide-2.2.0/doc/assets/fonts/pictonic/pictonic.woff
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/core/animate.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/core/animate.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/core/animate.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/core/animate.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/core/jquery.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/core/jquery.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/core/jquery.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/core/jquery.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/core/magic.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/core/magic.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/core/magic.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/core/magic.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/attack.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/attack.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/attack.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/attack.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/attack_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/attack_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/attack_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/attack_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bick_buck_bunny.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bick_buck_bunny.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bick_buck_bunny.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bick_buck_bunny.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bick_buck_bunny_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bick_buck_bunny_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bick_buck_bunny_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bick_buck_bunny_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bird.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bird.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bird.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bird.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bird_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bird_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bird_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bird_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bunny_bow.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bunny_bow.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bunny_bow.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bunny_bow.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bunny_bow_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bunny_bow_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/bunny_bow_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/bunny_bow_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/evil_frank.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/evil_frank.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/evil_frank.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/evil_frank.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/evil_frank_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/evil_frank_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/evil_frank_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/evil_frank_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/its_a_trap.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/its_a_trap.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/its_a_trap.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/its_a_trap.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/its_a_trap_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/its_a_trap_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/its_a_trap_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/its_a_trap_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/rinky.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/rinky.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/rinky.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/rinky.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/rinky_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/rinky_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/rinky_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/rinky_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/rodents.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/rodents.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/rodents.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/rodents.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/rodents_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/rodents_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo1/rodents_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo1/rodents_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/bird.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/bird.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/bird.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/bird.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/bird_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/bird_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/bird_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/bird_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/butterfly.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/butterfly.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/butterfly.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/butterfly.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/butterfly_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/butterfly_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/butterfly_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/butterfly_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/flower.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/flower.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/flower.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/flower.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/flower_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/flower_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/flower_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/flower_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/rose.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/rose.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/rose.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/rose.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/rose_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/rose_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo2/rose_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo2/rose_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/bridge.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/bridge.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/bridge.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/bridge.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/bridge_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/bridge_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/bridge_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/bridge_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/building.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/building.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/building.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/building.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/building_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/building_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/building_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/building_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/city.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/city.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/city.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/city.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/city_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/city_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/city_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/city_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/eiffel.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/eiffel.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/eiffel.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/eiffel.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/eiffel_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/eiffel_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo3/eiffel_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo3/eiffel_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/dog.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/dog.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/dog.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/dog.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/dog_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/dog_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/dog_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/dog_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/lynx.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/lynx.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/lynx.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/lynx.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/lynx_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/lynx_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/lynx_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/lynx_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/tiger.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/tiger.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/tiger.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/tiger.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/tiger_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/tiger_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/tiger_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/tiger_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/tortoise.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/tortoise.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/tortoise.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/tortoise.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/tortoise_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/tortoise_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo4/tortoise_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo4/tortoise_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/dolmens.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/dolmens.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/dolmens.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/dolmens.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/dolmens_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/dolmens_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/dolmens_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/dolmens_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/lighthouse.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/lighthouse.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/lighthouse.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/lighthouse.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/lighthouse_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/lighthouse_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/lighthouse_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/lighthouse_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/road.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/road.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/road.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/road.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/road_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/road_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/road_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/road_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/wheat.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/wheat.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/wheat.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/wheat.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/wheat_thumb.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/wheat_thumb.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/demos/demo5/wheat_thumb.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/demos/demo5/wheat_thumb.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/favicon.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/favicon.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/favicon.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/favicon.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/gift.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/gift.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/gift.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/gift.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/goal.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/goal.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/goal.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/goal.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/infinite.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/infinite.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/infinite.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/infinite.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/picture.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/picture.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/picture.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/picture.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/settings.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/settings.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/settings.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/settings.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/tests.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/tests.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/flat-ui/tests.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/flat-ui/tests.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/team/jaoued.png b/Exercise 1/desoslide-2.2.0/doc/assets/img/team/jaoued.png
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/team/jaoued.png
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/team/jaoued.png
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/img/team/sylvain.jpg b/Exercise 1/desoslide-2.2.0/doc/assets/img/team/sylvain.jpg
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/img/team/sylvain.jpg
rename to Exercise 1/desoslide-2.2.0/doc/assets/img/team/sylvain.jpg
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/demo.js b/Exercise 1/desoslide-2.2.0/doc/assets/js/app/demo.js
similarity index 97%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/demo.js
rename to Exercise 1/desoslide-2.2.0/doc/assets/js/app/demo.js
index a50cbb9..0d29451 100644
--- a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/demo.js	
+++ b/Exercise 1/desoslide-2.2.0/doc/assets/js/app/demo.js	
@@ -1,249 +1,249 @@
-$(function () {
-
-    // Demo
-    // ----------------------------------------------------------------------------------------------------------
-    // ----------------------------------------------------------------------------------------------------------
-
-    $('a.back-to-top').on('click', function (e) {
-        e.preventDefault();
-
-        $('html, body').stop().animate({
-            scrollTop: $('html, body').offset().top
-        }, 1000);
-    });
-
-    // Toggle thumbnails
-    // ----------------------------------------------------------------------------------------------------------
-    // ----------------------------------------------------------------------------------------------------------
-
-    $('#toggle_thumbs').on('click', function (e) {
-        e.preventDefault();
-
-        var $this                 = $(this),
-            $slideshow_1_thumbs_1 = $('#slideshow_1_thumbs_1'),
-            $slideshow_1_thumbs_2 = $('#slideshow_1_thumbs_2');
-
-        if ($slideshow_1_thumbs_1.css('visibility') === 'hidden') {
-            $slideshow_1_thumbs_1.css('visibility', 'visible');
-            $slideshow_1_thumbs_2.css('visibility', 'visible');
-
-            $this.find('i').attr('class', 'fa fa-eye-slash');
-            $this.find('span').text('Hide');
-        } else {
-            $slideshow_1_thumbs_1.css('visibility', 'hidden');
-            $slideshow_1_thumbs_2.css('visibility', 'hidden');
-
-            $this.find('i').attr('class', 'fa fa-eye');
-            $this.find('span').text('Show');
-        }
-    });
-
-    // Syntax highlighting
-    // ----------------------------------------------------------------------------------------------------------
-
-    var syntaxHighlight = function () {
-        $('pre code').each(function (i, e) {
-            hljs.highlightBlock(e);
-        });
-    };
-
-    syntaxHighlight();
-
-    // Demo 1
-    // ----------------------------------------------------------------------------------------------------------
-
-    var $slideshow1 = $('#slideshow1'), $effect_provider = $('#effect_provider'), $effect_name = $('#effect_name');
-
-    $slideshow1.desoSlide({
-        thumbs: $('ul.slideshow1_thumbs li > a')
-        // events: {
-        //     'onThumbClick': function() {
-        //         console.log('onThumbClick');
-        //     },
-        //     'onImageShow': function() {
-        //         console.log('onImageShow');
-        //     },
-        //     'onImageShown': function() {
-        //         console.log('onImageShown');
-        //     },
-        //     'onImageHide': function() {
-        //         console.log('onImageHide');
-        //     },
-        //     'onImageHidden': function() {
-        //         console.log('onImageHidden');
-        //     },
-        //     'onImageClick': function() {
-        //         console.log('onImageClick');
-        //     },
-        //     'onPrev': function() {
-        //         console.log('onPrev');
-        //     },
-        //     'onPause': function() {
-        //         console.log('onPause');
-        //     },
-        //     'onPlay': function() {
-        //         console.log('onPlay');
-        //     },
-        //     'onNext': function() {
-        //         console.log('onNext');
-        //     },
-        //     'onError': function() {
-        //         console.log('onError');
-        //     },
-        //     'onWarning': function() {
-        //         console.log('onWarning');
-        //     },
-        //     'onSuccess': function() {
-        //         console.log('onSuccess');
-        //     }
-        // }
-    });
-
-    // Available effects by provider
-    var effects = {
-        animate: ['bounce', 'fade', 'flipX', 'flipY', 'fun', 'light', 'roll', 'rotate', 'rotateBig', 'sideFade', 'sideFadeBig', 'slide'],
-        magic: ['foolish', 'perspective', 'puff', 'swap', 'swash', 'tin', 'twister']
-    };
-
-    // Change provider
-    var changeProvider = function (provider, effect) {
-        var tmp = '';
-
-        $.each(effects[provider], function (i, item) {
-            if (effect !== undefined && effect === item) {
-                tmp += '<option value="' + item + '" selected="selected">' + item + '</option>';
-            } else {
-                tmp += '<option value="' + item + '">' + item + '</option>';
-            }
-        });
-
-        $effect_name.html(tmp);
-    };
-
-    // Set effect
-    var setEffect = function (provider, effect) {
-        // Pausing
-        $slideshow1.desoSlide('pause');
-
-        // Applying asked effect
-        $slideshow1.desoSlide('setEffect', { provider: $effect_provider.val(), name: $effect_name.val() });
-
-        // Playing
-        $slideshow1.desoSlide('play');
-
-        var code = "$('#slideshow').desoSlide({\n";
-        code += "    thumbs: $('ul.slideshow_thumbs li > a'),\n";
-        code += "    effect: {\n";
-        code += "        provider: '" + $effect_provider.val() + "',\n";
-        code += "        name: '" + $effect_name.val() + "'\n";
-        code += "    }\n";
-        code += "});";
-
-        $('#html_code1').html('&lt;link rel="stylesheet" href="path/to/' + $effect_provider.val() + '.min.css"&gt;');
-        $('#js_code1').html(code);
-
-        syntaxHighlight();
-    };
-
-    // On change effect provider
-    $effect_provider.on('change', function () {
-        changeProvider($(this).val());
-
-        setEffect();
-    });
-
-    // On change effect name
-    $effect_name.on('change', function () {
-        setEffect();
-    });
-
-    // Default loaded provider and effect
-    changeProvider('animate', 'fade');
-
-    // $slideshow1.on({
-    //     'thumbClick.desoslide': function() {
-    //         console.log('thumbClick.desoslide');
-    //     },
-    //     'imageShow.desoslide': function() {
-    //         console.log('imageShow.desoslide');
-    //     },
-    //     'imageShown.desoslide': function() {
-    //         console.log('imageShown.desoslide');
-    //     },
-    //     'imageHide.desoslide': function() {
-    //         console.log('imageHide.desoslide');
-    //     },
-    //     'imageHidden.desoslide': function() {
-    //         console.log('imageHidden.desoslide');
-    //     },
-    //     'imageClick.desoslide': function() {
-    //         console.log('imageClick.desoslide');
-    //     },
-    //     'prev.desoslide': function() {
-    //         console.log('prev.desoslide');
-    //     },
-    //     'pause.desoslide': function() {
-    //         console.log('pause.desoslide');
-    //     },
-    //     'play.desoslide': function() {
-    //         console.log('play.desoslide');
-    //     },
-    //     'next.desoslide': function() {
-    //         console.log('next.desoslide');
-    //     },
-    //     'error.desoslide': function() {
-    //         console.log('error.desoslide');
-    //     },
-    //     'warning.desoslide': function() {
-    //         console.log('warning.desoslide');
-    //     },
-    //     'success.desoslide': function() {
-    //         console.log('success.desoslide');
-    //     }
-    // });
-
-    // Demo 2
-    // ----------------------------------------------------------------------------------------------------------
-
-    $('#slideshow2').desoSlide({
-        thumbs: $('#slideshow2_thumbs li > a'),
-        first: 2,
-        thumbEvent: 'mouseover'
-    });
-
-    // Demo 3
-    // ----------------------------------------------------------------------------------------------------------
-
-    $('#slideshow3').desoSlide({
-        thumbs: $('#slideshow3_thumbs li > a'),
-        auto: {
-            start: true
-        },
-        first: 1,
-        interval: 6000
-    });
-
-    // Demo 4
-    // ----------------------------------------------------------------------------------------------------------
-
-    $('#slideshow4').desoSlide({
-        thumbs: $('#slideshow4_thumbs li > a'),
-        overlay: 'hover',
-        controls: {
-            show: false,
-            keys: true
-        }
-    });
-
-    // Demo 5
-    // ----------------------------------------------------------------------------------------------------------
-
-    $('#slideshow5').desoSlide({
-        thumbs: $('#slideshow5_thumbs li > a'),
-        auto: {
-            start: true
-        },
-        overlay: 'none'
-    });
-
-});
+$(function () {
+
+    // Demo
+    // ----------------------------------------------------------------------------------------------------------
+    // ----------------------------------------------------------------------------------------------------------
+
+    $('a.back-to-top').on('click', function (e) {
+        e.preventDefault();
+
+        $('html, body').stop().animate({
+            scrollTop: $('html, body').offset().top
+        }, 1000);
+    });
+
+    // Toggle thumbnails
+    // ----------------------------------------------------------------------------------------------------------
+    // ----------------------------------------------------------------------------------------------------------
+
+    $('#toggle_thumbs').on('click', function (e) {
+        e.preventDefault();
+
+        var $this                 = $(this),
+            $slideshow_1_thumbs_1 = $('#slideshow_1_thumbs_1'),
+            $slideshow_1_thumbs_2 = $('#slideshow_1_thumbs_2');
+
+        if ($slideshow_1_thumbs_1.css('visibility') === 'hidden') {
+            $slideshow_1_thumbs_1.css('visibility', 'visible');
+            $slideshow_1_thumbs_2.css('visibility', 'visible');
+
+            $this.find('i').attr('class', 'fa fa-eye-slash');
+            $this.find('span').text('Hide');
+        } else {
+            $slideshow_1_thumbs_1.css('visibility', 'hidden');
+            $slideshow_1_thumbs_2.css('visibility', 'hidden');
+
+            $this.find('i').attr('class', 'fa fa-eye');
+            $this.find('span').text('Show');
+        }
+    });
+
+    // Syntax highlighting
+    // ----------------------------------------------------------------------------------------------------------
+
+    var syntaxHighlight = function () {
+        $('pre code').each(function (i, e) {
+            hljs.highlightBlock(e);
+        });
+    };
+
+    syntaxHighlight();
+
+    // Demo 1
+    // ----------------------------------------------------------------------------------------------------------
+
+    var $slideshow1 = $('#slideshow1'), $effect_provider = $('#effect_provider'), $effect_name = $('#effect_name');
+
+    $slideshow1.desoSlide({
+        thumbs: $('ul.slideshow1_thumbs li > a')
+        // events: {
+        //     'onThumbClick': function() {
+        //         console.log('onThumbClick');
+        //     },
+        //     'onImageShow': function() {
+        //         console.log('onImageShow');
+        //     },
+        //     'onImageShown': function() {
+        //         console.log('onImageShown');
+        //     },
+        //     'onImageHide': function() {
+        //         console.log('onImageHide');
+        //     },
+        //     'onImageHidden': function() {
+        //         console.log('onImageHidden');
+        //     },
+        //     'onImageClick': function() {
+        //         console.log('onImageClick');
+        //     },
+        //     'onPrev': function() {
+        //         console.log('onPrev');
+        //     },
+        //     'onPause': function() {
+        //         console.log('onPause');
+        //     },
+        //     'onPlay': function() {
+        //         console.log('onPlay');
+        //     },
+        //     'onNext': function() {
+        //         console.log('onNext');
+        //     },
+        //     'onError': function() {
+        //         console.log('onError');
+        //     },
+        //     'onWarning': function() {
+        //         console.log('onWarning');
+        //     },
+        //     'onSuccess': function() {
+        //         console.log('onSuccess');
+        //     }
+        // }
+    });
+
+    // Available effects by provider
+    var effects = {
+        animate: ['bounce', 'fade', 'flipX', 'flipY', 'fun', 'light', 'roll', 'rotate', 'rotateBig', 'sideFade', 'sideFadeBig', 'slide'],
+        magic: ['foolish', 'perspective', 'puff', 'swap', 'swash', 'tin', 'twister']
+    };
+
+    // Change provider
+    var changeProvider = function (provider, effect) {
+        var tmp = '';
+
+        $.each(effects[provider], function (i, item) {
+            if (effect !== undefined && effect === item) {
+                tmp += '<option value="' + item + '" selected="selected">' + item + '</option>';
+            } else {
+                tmp += '<option value="' + item + '">' + item + '</option>';
+            }
+        });
+
+        $effect_name.html(tmp);
+    };
+
+    // Set effect
+    var setEffect = function (provider, effect) {
+        // Pausing
+        $slideshow1.desoSlide('pause');
+
+        // Applying asked effect
+        $slideshow1.desoSlide('setEffect', { provider: $effect_provider.val(), name: $effect_name.val() });
+
+        // Playing
+        $slideshow1.desoSlide('play');
+
+        var code = "$('#slideshow').desoSlide({\n";
+        code += "    thumbs: $('ul.slideshow_thumbs li > a'),\n";
+        code += "    effect: {\n";
+        code += "        provider: '" + $effect_provider.val() + "',\n";
+        code += "        name: '" + $effect_name.val() + "'\n";
+        code += "    }\n";
+        code += "});";
+
+        $('#html_code1').html('&lt;link rel="stylesheet" href="path/to/' + $effect_provider.val() + '.min.css"&gt;');
+        $('#js_code1').html(code);
+
+        syntaxHighlight();
+    };
+
+    // On change effect provider
+    $effect_provider.on('change', function () {
+        changeProvider($(this).val());
+
+        setEffect();
+    });
+
+    // On change effect name
+    $effect_name.on('change', function () {
+        setEffect();
+    });
+
+    // Default loaded provider and effect
+    changeProvider('animate', 'fade');
+
+    // $slideshow1.on({
+    //     'thumbClick.desoslide': function() {
+    //         console.log('thumbClick.desoslide');
+    //     },
+    //     'imageShow.desoslide': function() {
+    //         console.log('imageShow.desoslide');
+    //     },
+    //     'imageShown.desoslide': function() {
+    //         console.log('imageShown.desoslide');
+    //     },
+    //     'imageHide.desoslide': function() {
+    //         console.log('imageHide.desoslide');
+    //     },
+    //     'imageHidden.desoslide': function() {
+    //         console.log('imageHidden.desoslide');
+    //     },
+    //     'imageClick.desoslide': function() {
+    //         console.log('imageClick.desoslide');
+    //     },
+    //     'prev.desoslide': function() {
+    //         console.log('prev.desoslide');
+    //     },
+    //     'pause.desoslide': function() {
+    //         console.log('pause.desoslide');
+    //     },
+    //     'play.desoslide': function() {
+    //         console.log('play.desoslide');
+    //     },
+    //     'next.desoslide': function() {
+    //         console.log('next.desoslide');
+    //     },
+    //     'error.desoslide': function() {
+    //         console.log('error.desoslide');
+    //     },
+    //     'warning.desoslide': function() {
+    //         console.log('warning.desoslide');
+    //     },
+    //     'success.desoslide': function() {
+    //         console.log('success.desoslide');
+    //     }
+    // });
+
+    // Demo 2
+    // ----------------------------------------------------------------------------------------------------------
+
+    $('#slideshow2').desoSlide({
+        thumbs: $('#slideshow2_thumbs li > a'),
+        first: 2,
+        thumbEvent: 'mouseover'
+    });
+
+    // Demo 3
+    // ----------------------------------------------------------------------------------------------------------
+
+    $('#slideshow3').desoSlide({
+        thumbs: $('#slideshow3_thumbs li > a'),
+        auto: {
+            start: true
+        },
+        first: 1,
+        interval: 6000
+    });
+
+    // Demo 4
+    // ----------------------------------------------------------------------------------------------------------
+
+    $('#slideshow4').desoSlide({
+        thumbs: $('#slideshow4_thumbs li > a'),
+        overlay: 'hover',
+        controls: {
+            show: false,
+            keys: true
+        }
+    });
+
+    // Demo 5
+    // ----------------------------------------------------------------------------------------------------------
+
+    $('#slideshow5').desoSlide({
+        thumbs: $('#slideshow5_thumbs li > a'),
+        auto: {
+            start: true
+        },
+        overlay: 'none'
+    });
+
+});
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/documentation.js b/Exercise 1/desoslide-2.2.0/doc/assets/js/app/documentation.js
similarity index 95%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/documentation.js
rename to Exercise 1/desoslide-2.2.0/doc/assets/js/app/documentation.js
index 5fcbcdb..94a77b1 100644
--- a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/documentation.js	
+++ b/Exercise 1/desoslide-2.2.0/doc/assets/js/app/documentation.js	
@@ -1,15 +1,15 @@
-$(function () {
-
-    $('a.back-to-top').on('click', function (e) {
-        e.preventDefault();
-
-        $('html, body').stop().animate({
-            scrollTop: $('html, body').offset().top
-        }, 1000);
-    });
-
-    $('pre code').each(function (i, e) {
-        hljs.highlightBlock(e);
-    });
-
-});
+$(function () {
+
+    $('a.back-to-top').on('click', function (e) {
+        e.preventDefault();
+
+        $('html, body').stop().animate({
+            scrollTop: $('html, body').offset().top
+        }, 1000);
+    });
+
+    $('pre code').each(function (i, e) {
+        hljs.highlightBlock(e);
+    });
+
+});
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/home.js b/Exercise 1/desoslide-2.2.0/doc/assets/js/app/home.js
similarity index 95%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/home.js
rename to Exercise 1/desoslide-2.2.0/doc/assets/js/app/home.js
index 2de9977..175e7be 100644
--- a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/home.js	
+++ b/Exercise 1/desoslide-2.2.0/doc/assets/js/app/home.js	
@@ -1,17 +1,17 @@
-$(function () {
-
-    $('a.back-to-top').on('click', function (e) {
-        e.preventDefault();
-
-        $('html, body').stop().animate({
-            scrollTop: $('html, body').offset().top
-        }, 1000);
-    });
-
-    $('pre code').each(function (i, e) {
-        hljs.highlightBlock(e);
-    });
-
-    new WOW().init();
-
-});
+$(function () {
+
+    $('a.back-to-top').on('click', function (e) {
+        e.preventDefault();
+
+        $('html, body').stop().animate({
+            scrollTop: $('html, body').offset().top
+        }, 1000);
+    });
+
+    $('pre code').each(function (i, e) {
+        hljs.highlightBlock(e);
+    });
+
+    new WOW().init();
+
+});
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/release-notes.js b/Exercise 1/desoslide-2.2.0/doc/assets/js/app/release-notes.js
similarity index 95%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/release-notes.js
rename to Exercise 1/desoslide-2.2.0/doc/assets/js/app/release-notes.js
index 5fcbcdb..94a77b1 100644
--- a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/app/release-notes.js	
+++ b/Exercise 1/desoslide-2.2.0/doc/assets/js/app/release-notes.js	
@@ -1,15 +1,15 @@
-$(function () {
-
-    $('a.back-to-top').on('click', function (e) {
-        e.preventDefault();
-
-        $('html, body').stop().animate({
-            scrollTop: $('html, body').offset().top
-        }, 1000);
-    });
-
-    $('pre code').each(function (i, e) {
-        hljs.highlightBlock(e);
-    });
-
-});
+$(function () {
+
+    $('a.back-to-top').on('click', function (e) {
+        e.preventDefault();
+
+        $('html, body').stop().animate({
+            scrollTop: $('html, body').offset().top
+        }, 1000);
+    });
+
+    $('pre code').each(function (i, e) {
+        hljs.highlightBlock(e);
+    });
+
+});
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/bootstrap/bootstrap.min.js b/Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/bootstrap/bootstrap.min.js
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/bootstrap/bootstrap.min.js
rename to Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/bootstrap/bootstrap.min.js
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/highlight/highlight.pack.js b/Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/highlight/highlight.pack.js
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/highlight/highlight.pack.js
rename to Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/highlight/highlight.pack.js
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/html5shiv/html5shiv.min.js b/Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/html5shiv/html5shiv.min.js
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/html5shiv/html5shiv.min.js
rename to Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/html5shiv/html5shiv.min.js
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/jquery/jquery.js b/Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/jquery/jquery.js
similarity index 99%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/jquery/jquery.js
rename to Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/jquery/jquery.js
index 545e27b..d1608e3 100644
--- a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/jquery/jquery.js	
+++ b/Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/jquery/jquery.js	
@@ -1,4 +1,4 @@
-/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;
-if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")
+/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;
+if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")
 },cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
\ No newline at end of file
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/wow.min.js b/Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/wow.min.js
similarity index 99%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/wow.min.js
rename to Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/wow.min.js
index 5d6fadd..32b8703 100644
--- a/Exercise 1+2/desoslide-2.2.0/doc/assets/js/vendor/wow.min.js	
+++ b/Exercise 1/desoslide-2.2.0/doc/assets/js/vendor/wow.min.js	
@@ -1,2 +1,2 @@
-/*! WOW - v0.1.6 - 2014-03-19
+/*! WOW - v0.1.6 - 2014-03-19
 * Copyright (c) 2014 Matthieu Aussaguel; Licensed MIT */(function(){var a,b=function(a,b){return function(){return a.apply(b,arguments)}};a=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in a)d=a[c],null!=d&&(b[c]=d);return b},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a}(),this.WOW=function(){function c(a){null==a&&(a={}),this.scrollCallback=b(this.scrollCallback,this),this.scrollHandler=b(this.scrollHandler,this),this.start=b(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults)}return c.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0},c.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():document.addEventListener("DOMContentLoaded",this.start)},c.prototype.start=function(){var a,b,c,d;if(this.boxes=this.element.getElementsByClassName(this.config.boxClass),this.boxes.length){if(this.disabled())return this.resetStyle();for(d=this.boxes,b=0,c=d.length;c>b;b++)a=d[b],this.applyStyle(a,!0);return window.addEventListener("scroll",this.scrollHandler,!1),window.addEventListener("resize",this.scrollHandler,!1),this.interval=setInterval(this.scrollCallback,50)}},c.prototype.stop=function(){return window.removeEventListener("scroll",this.scrollHandler,!1),window.removeEventListener("resize",this.scrollHandler,!1),null!=this.interval?clearInterval(this.interval):void 0},c.prototype.show=function(a){return this.applyStyle(a),a.className=""+a.className+" "+this.config.animateClass},c.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),a.setAttribute("style",this.customStyle(b,d,c,e))},c.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.setAttribute("style","visibility: visible;"));return e},c.prototype.customStyle=function(a,b,c,d){var e;return e=a?"visibility: hidden; -webkit-animation-name: none; -moz-animation-name: none; animation-name: none;":"visibility: visible;",b&&(e+="-webkit-animation-duration: "+b+"; -moz-animation-duration: "+b+"; animation-duration: "+b+";"),c&&(e+="-webkit-animation-delay: "+c+"; -moz-animation-delay: "+c+"; animation-delay: "+c+";"),d&&(e+="-webkit-animation-iteration-count: "+d+"; -moz-animation-iteration-count: "+d+"; animation-iteration-count: "+d+";"),e},c.prototype.scrollHandler=function(){return this.scrolled=!0},c.prototype.scrollCallback=function(){var a;return this.scrolled&&(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),!this.boxes.length)?this.stop():void 0},c.prototype.offsetTop=function(a){var b;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},c.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=window.pageYOffset,e=f+this.element.clientHeight-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},c.prototype.util=function(){return this._util||(this._util=new a)},c.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},c}()}).call(this);
\ No newline at end of file
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/fonts.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/fonts.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/fonts.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/fonts.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/mixins.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/mixins.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/mixins.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/mixins.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/button.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/button.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/button.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/button.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/dialog.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/dialog.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/dialog.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/dialog.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/form.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/form.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/form.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/form.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/jumbotron.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/jumbotron.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/jumbotron.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/jumbotron.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/label.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/label.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/label.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/label.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/navbar.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/navbar.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/navbar.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/navbar.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/tomorrow-night.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/tomorrow-night.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/modules/tomorrow-night.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/modules/tomorrow-night.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/typography.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/typography.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/typography.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/typography.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/variables.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/variables.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/components/variables.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/components/variables.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/layouts/body.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/layouts/body.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/layouts/body.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/layouts/body.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/layouts/footer.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/layouts/footer.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/layouts/footer.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/layouts/footer.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/layouts/header.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/layouts/header.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/layouts/header.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/layouts/header.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/main.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/main.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/main.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/main.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/views/demo.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/views/demo.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/views/demo.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/views/demo.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/views/documentation.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/views/documentation.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/views/documentation.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/views/documentation.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/views/home.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/views/home.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/views/home.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/views/home.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/views/release-notes.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/views/release-notes.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/views/release-notes.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/views/release-notes.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/views/tests.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/app/views/tests.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/app/views/tests.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/app/views/tests.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/.csscomb.json b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/.csscomb.json
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/.csscomb.json
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/.csscomb.json
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/.csslintrc b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/.csslintrc
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/.csslintrc
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/.csslintrc
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/alerts.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/alerts.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/alerts.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/alerts.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/badges.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/badges.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/badges.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/badges.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/bootstrap.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/bootstrap.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/bootstrap.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/bootstrap.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/breadcrumbs.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/breadcrumbs.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/breadcrumbs.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/breadcrumbs.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/button-groups.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/button-groups.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/button-groups.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/button-groups.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/buttons.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/buttons.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/buttons.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/buttons.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/carousel.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/carousel.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/carousel.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/carousel.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/close.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/close.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/close.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/close.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/code.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/code.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/code.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/code.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/component-animations.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/component-animations.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/component-animations.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/component-animations.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/dropdowns.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/dropdowns.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/dropdowns.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/dropdowns.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/forms.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/forms.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/forms.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/forms.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/glyphicons.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/glyphicons.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/glyphicons.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/glyphicons.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/grid.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/grid.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/grid.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/grid.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/input-groups.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/input-groups.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/input-groups.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/input-groups.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/jumbotron.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/jumbotron.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/jumbotron.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/jumbotron.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/labels.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/labels.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/labels.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/labels.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/list-group.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/list-group.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/list-group.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/list-group.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/media.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/media.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/media.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/media.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/alerts.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/alerts.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/alerts.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/alerts.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/background-variant.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/background-variant.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/background-variant.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/background-variant.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/border-radius.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/border-radius.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/border-radius.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/border-radius.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/buttons.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/buttons.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/buttons.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/buttons.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/center-block.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/center-block.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/center-block.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/center-block.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/clearfix.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/clearfix.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/clearfix.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/clearfix.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/forms.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/forms.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/forms.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/forms.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/gradients.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/gradients.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/gradients.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/gradients.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/grid-framework.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/grid-framework.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/grid-framework.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/grid-framework.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/grid.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/grid.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/grid.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/grid.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/hide-text.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/hide-text.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/hide-text.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/hide-text.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/image.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/image.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/image.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/image.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/labels.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/labels.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/labels.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/labels.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/list-group.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/list-group.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/list-group.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/list-group.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/nav-divider.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/nav-divider.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/nav-divider.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/nav-divider.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/nav-vertical-align.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/nav-vertical-align.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/nav-vertical-align.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/nav-vertical-align.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/opacity.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/opacity.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/opacity.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/opacity.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/pagination.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/pagination.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/pagination.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/pagination.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/panels.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/panels.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/panels.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/panels.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/progress-bar.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/progress-bar.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/progress-bar.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/progress-bar.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/reset-filter.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/reset-filter.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/reset-filter.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/reset-filter.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/resize.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/resize.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/resize.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/resize.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/responsive-visibility.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/responsive-visibility.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/responsive-visibility.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/responsive-visibility.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/size.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/size.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/size.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/size.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/tab-focus.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/tab-focus.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/tab-focus.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/tab-focus.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/table-row.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/table-row.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/table-row.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/table-row.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/text-emphasis.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/text-emphasis.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/text-emphasis.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/text-emphasis.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/text-overflow.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/text-overflow.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/text-overflow.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/text-overflow.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/vendor-prefixes.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/vendor-prefixes.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/vendor-prefixes.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/mixins/vendor-prefixes.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/modals.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/modals.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/modals.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/modals.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/navbar.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/navbar.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/navbar.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/navbar.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/navs.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/navs.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/navs.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/navs.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/normalize.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/normalize.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/normalize.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/normalize.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/pager.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/pager.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/pager.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/pager.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/pagination.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/pagination.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/pagination.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/pagination.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/panels.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/panels.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/panels.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/panels.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/popovers.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/popovers.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/popovers.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/popovers.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/print.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/print.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/print.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/print.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/progress-bars.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/progress-bars.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/progress-bars.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/progress-bars.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/responsive-embed.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/responsive-embed.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/responsive-embed.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/responsive-embed.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/responsive-utilities.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/responsive-utilities.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/responsive-utilities.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/responsive-utilities.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/scaffolding.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/scaffolding.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/scaffolding.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/scaffolding.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/tables.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/tables.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/tables.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/tables.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/theme.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/theme.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/theme.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/theme.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/thumbnails.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/thumbnails.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/thumbnails.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/thumbnails.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/tooltip.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/tooltip.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/tooltip.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/tooltip.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/type.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/type.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/type.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/type.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/utilities.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/utilities.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/utilities.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/utilities.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/variables.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/variables.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/variables.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/variables.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/wells.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/wells.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/wells.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/bootstrap/wells.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/demo.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/demo.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/demo.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/demo.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/docs.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/docs.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/docs.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/docs.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/flat-ui.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/flat-ui.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/flat-ui.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/flat-ui.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/mixins.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/mixins.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/mixins.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/mixins.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/button-groups.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/button-groups.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/button-groups.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/button-groups.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/buttons.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/buttons.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/buttons.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/buttons.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/caret.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/caret.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/caret.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/caret.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/checkbox-and-radio.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/checkbox-and-radio.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/checkbox-and-radio.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/checkbox-and-radio.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/code.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/code.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/code.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/code.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/dropdown.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/dropdown.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/dropdown.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/dropdown.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/footer.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/footer.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/footer.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/footer.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/forms.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/forms.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/forms.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/forms.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/glyphicons.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/glyphicons.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/glyphicons.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/glyphicons.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/input-groups.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/input-groups.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/input-groups.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/input-groups.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/input-icons.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/input-icons.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/input-icons.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/input-icons.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/local-fonts.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/local-fonts.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/local-fonts.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/local-fonts.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/login.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/login.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/login.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/login.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/navbar.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/navbar.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/navbar.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/navbar.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/pager.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/pager.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/pager.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/pager.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/pagination.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/pagination.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/pagination.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/pagination.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/palette.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/palette.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/palette.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/palette.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/progress-bars.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/progress-bars.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/progress-bars.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/progress-bars.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/scaffolding.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/scaffolding.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/scaffolding.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/scaffolding.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/select.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/select.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/select.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/select.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/share.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/share.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/share.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/share.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/slider.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/slider.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/slider.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/slider.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/switch.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/switch.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/switch.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/switch.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tagsinput.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tagsinput.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tagsinput.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tagsinput.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/thumbnails.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/thumbnails.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/thumbnails.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/thumbnails.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tile.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tile.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tile.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tile.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/todo.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/todo.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/todo.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/todo.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tooltip.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tooltip.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tooltip.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/tooltip.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/type.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/type.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/type.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/type.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/typeahead.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/typeahead.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/typeahead.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/typeahead.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/video.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/video.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/video.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/modules/video.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/spaces.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/spaces.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/spaces.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/spaces.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/variables.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/variables.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/variables.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/flat-ui/variables.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/bordered-pulled.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/bordered-pulled.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/bordered-pulled.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/bordered-pulled.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/core.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/core.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/core.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/core.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/fixed-width.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/fixed-width.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/fixed-width.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/fixed-width.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/font-awesome.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/font-awesome.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/font-awesome.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/font-awesome.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/icons.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/icons.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/icons.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/icons.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/larger.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/larger.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/larger.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/larger.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/list.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/list.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/list.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/list.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/mixins.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/mixins.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/mixins.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/mixins.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/path.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/path.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/path.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/path.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/rotated-flipped.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/rotated-flipped.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/rotated-flipped.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/rotated-flipped.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/spinning.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/spinning.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/spinning.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/spinning.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/stacked.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/stacked.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/stacked.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/stacked.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/variables.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/variables.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/variables.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/font-awesome/variables.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/github/github.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/github/github.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/github/github.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/github/github.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/pictonic/pictonic.less b/Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/pictonic/pictonic.less
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/assets/less/vendor/pictonic/pictonic.less
rename to Exercise 1/desoslide-2.2.0/doc/assets/less/vendor/pictonic/pictonic.less
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/demo.html b/Exercise 1/desoslide-2.2.0/doc/demo.html
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/demo.html
rename to Exercise 1/desoslide-2.2.0/doc/demo.html
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/index.html b/Exercise 1/desoslide-2.2.0/doc/index.html
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/index.html
rename to Exercise 1/desoslide-2.2.0/doc/index.html
diff --git a/Exercise 1+2/desoslide-2.2.0/doc/release-notes.html b/Exercise 1/desoslide-2.2.0/doc/release-notes.html
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/doc/release-notes.html
rename to Exercise 1/desoslide-2.2.0/doc/release-notes.html
diff --git a/Exercise 1+2/desoslide-2.2.0/gulpfile.js b/Exercise 1/desoslide-2.2.0/gulpfile.js
similarity index 97%
rename from Exercise 1+2/desoslide-2.2.0/gulpfile.js
rename to Exercise 1/desoslide-2.2.0/gulpfile.js
index 57b2185..bfef511 100644
--- a/Exercise 1+2/desoslide-2.2.0/gulpfile.js	
+++ b/Exercise 1/desoslide-2.2.0/gulpfile.js	
@@ -1,222 +1,222 @@
-/*jslint browser: true, devel: true, plusplus: true, unparam: true, vars: true, white: true*/
-/*global require*/
-
-(function() {
-
-    'use strict';
-
-    // Gulp
-    // ----------------------------------------------------------------------------------------------------------
-    // ----------------------------------------------------------------------------------------------------------
-    var gulp = require('gulp');
-
-    // Gulp dependencies
-    // ------------------------------------------------------------------------------------------------------
-    var uglify    = require('gulp-uglify'),
-        less      = require('gulp-less'),
-        minifyCSS = require('gulp-minify-css'),
-        rename    = require('gulp-rename'),
-        jshint    = require('gulp-jshint'),
-        notify    = require('gulp-notify'),
-        header    = require('gulp-header'),
-        jscs      = require('gulp-jscs'),
-        qunit     = require('node-qunit-phantomjs'),
-        pkg       = require('./package.json');
-
-    // Source path
-    // ------------------------------------------------------------------------------------------------------
-    var src_path  = 'src/';
-    var dist_path = 'dist/';
-    var doc_path  = 'doc/assets/';
-
-    // Tasks configuration
-    // ------------------------------------------------------------------------------------------------------
-    var tasks = {
-        'dist_js': {
-            source: src_path +'js/jquery.desoslide.js',
-            dest:   dist_path +'js'
-        },
-        'dist_less': {
-            source: src_path +'less/jquery.desoslide.less',
-            dest:   dist_path +'css'
-        },
-        'doc_less_main': {
-            source: doc_path +'less/app/main.less',
-            dest:   doc_path +'css/app'
-        },
-        'doc_less_views': {
-            source: doc_path +'less/app/views/**/*.less',
-            dest:   doc_path +'css/app/views'
-        }
-    };
-
-    // Banner for building
-    var banner = ['/**',
-                  ' * <%= pkg.name %> - <%= pkg.description %>',
-                  ' * @version <%= pkg.version %>',
-                  ' * @link <%= pkg.homepage %>',
-                  ' * @license <%= pkg.license %>',
-                  ' */',
-                  ''].join('\n');
-
-    // Javascript
-    // ------------------------------------------------------------------------------------------------------
-    gulp.task('dist_js_min', function() {
-
-        return gulp
-            .src(tasks.dist_js.source)
-            .pipe(uglify())
-            .pipe(header(banner, { pkg: pkg }))
-            .pipe(rename({
-                suffix: '.min'
-            }))
-            .pipe(gulp.dest(tasks.dist_js.dest))
-            .pipe(notify({
-                title: 'Javascript',
-                message: '<%= file.relative %> minified successfully',
-                onLast: true
-            }))
-            .on('error', notify.onError(function (error) {
-                return 'Message to the notifier: '+ error.message;
-            }));
-
-    });
-
-    gulp.task('dist_js_lint', function() {
-
-        return gulp
-            .src(tasks.dist_js.source)
-            .pipe(jscs())
-            .pipe(jscs.reporter())
-            .pipe(jshint())
-            .pipe(jshint.reporter('default'))
-            .pipe(notify({
-                title: 'Javascript',
-                message: '<%= file.relative %> linted successfully',
-                onLast: true
-            }))
-            .on('error', notify.onError(function (error) {
-                return 'Message to the notifier: '+ error.message;
-            }));
-
-    });
-
-    // LESS
-    // ------------------------------------------------------------------------------------------------------
-    gulp.task('dist_less', function() {
-
-        return gulp
-            .src(tasks.dist_less.source)
-            .pipe(less())
-            .pipe(header(banner, { pkg: pkg }))
-            .pipe(gulp.dest(tasks.dist_less.dest))
-            .pipe(notify({
-                title: 'LESS',
-                message: '<%= file.relative %> compiled successfully',
-                onLast: true
-            }))
-            .on('error', notify.onError(function (error) {
-                return 'Message to the notifier: '+ error.message;
-            }));
-
-    });
-
-    gulp.task('dist_less_min', function() {
-
-        return gulp
-            .src(tasks.dist_less.source)
-            .pipe(less())
-            .pipe(minifyCSS())
-            .pipe(header(banner, { pkg: pkg }))
-            .pipe(rename({
-                suffix: '.min'
-            }))
-            .pipe(gulp.dest(tasks.dist_less.dest))
-            .pipe(notify({
-                title: 'LESS',
-                message: '<%= file.relative %> compiled and minified successfully',
-                onLast: true
-            }))
-            .on('error', notify.onError(function (error) {
-                return 'Message to the notifier: '+ error.message;
-            }));
-
-    });
-
-    gulp.task('doc_less_main', function() {
-
-        return gulp
-            .src(tasks.doc_less_main.source)
-            .pipe(less())
-            .pipe(minifyCSS())
-            .pipe(gulp.dest(tasks.doc_less_main.dest))
-            .pipe(notify({
-                title: 'LESS',
-                message: 'Main compiled successfully',
-                onLast: true
-            }))
-            .on('error', notify.onError(function (error) {
-                return 'Message to the notifier: '+ error.message;
-            }));
-
-    });
-
-    gulp.task('doc_less_views', function() {
-
-        return gulp
-            .src(tasks.doc_less_views.source)
-            .pipe(less())
-            .pipe(minifyCSS())
-            .pipe(gulp.dest(tasks.doc_less_views.dest))
-            .pipe(notify({
-                title: 'LESS',
-                message: 'Views compiled successfully',
-                onLast: true
-            }))
-            .on('error', notify.onError(function (error) {
-                return 'Message to the notifier: '+ error.message;
-            }));
-
-    });
-
-    // Tests
-    // ------------------------------------------------------------------------------------------------------
-    gulp.task('tests', function() {
-
-        return qunit('tests/index.html');
-
-    });
-
-    // Build
-    // ------------------------------------------------------------------------------------------------------
-    gulp.task('build', [
-        'dist_js_lint',
-        'dist_js_min',
-        'dist_less',
-        'dist_less_min'
-    ]);
-
-    // Watching files
-    // ------------------------------------------------------------------------------------------------------
-    gulp.task('watch', function() {
-
-        // Javascript
-        // --------------------------------------------------------------------------------------------------
-        gulp.watch(tasks.dist_js.source, ['dist_js_lint', 'dist_js_min']);
-
-        // LESS
-        // --------------------------------------------------------------------------------------------------
-        gulp.watch(tasks.doc_less_main.source, ['doc_less_main']);
-        gulp.watch(doc_path +'less/app/**/*.less', ['doc_less_main', 'doc_less_views']);
-
-    });
-
-    // Default tasks (called when running `gulp` from cli)
-    // ------------------------------------------------------------------------------------------------------
-    gulp.task('default', [
-        'doc_less_main',
-        'doc_less_views',
-        'watch'
-    ]);
-
-}());
+/*jslint browser: true, devel: true, plusplus: true, unparam: true, vars: true, white: true*/
+/*global require*/
+
+(function() {
+
+    'use strict';
+
+    // Gulp
+    // ----------------------------------------------------------------------------------------------------------
+    // ----------------------------------------------------------------------------------------------------------
+    var gulp = require('gulp');
+
+    // Gulp dependencies
+    // ------------------------------------------------------------------------------------------------------
+    var uglify    = require('gulp-uglify'),
+        less      = require('gulp-less'),
+        minifyCSS = require('gulp-minify-css'),
+        rename    = require('gulp-rename'),
+        jshint    = require('gulp-jshint'),
+        notify    = require('gulp-notify'),
+        header    = require('gulp-header'),
+        jscs      = require('gulp-jscs'),
+        qunit     = require('node-qunit-phantomjs'),
+        pkg       = require('./package.json');
+
+    // Source path
+    // ------------------------------------------------------------------------------------------------------
+    var src_path  = 'src/';
+    var dist_path = 'dist/';
+    var doc_path  = 'doc/assets/';
+
+    // Tasks configuration
+    // ------------------------------------------------------------------------------------------------------
+    var tasks = {
+        'dist_js': {
+            source: src_path +'js/jquery.desoslide.js',
+            dest:   dist_path +'js'
+        },
+        'dist_less': {
+            source: src_path +'less/jquery.desoslide.less',
+            dest:   dist_path +'css'
+        },
+        'doc_less_main': {
+            source: doc_path +'less/app/main.less',
+            dest:   doc_path +'css/app'
+        },
+        'doc_less_views': {
+            source: doc_path +'less/app/views/**/*.less',
+            dest:   doc_path +'css/app/views'
+        }
+    };
+
+    // Banner for building
+    var banner = ['/**',
+                  ' * <%= pkg.name %> - <%= pkg.description %>',
+                  ' * @version <%= pkg.version %>',
+                  ' * @link <%= pkg.homepage %>',
+                  ' * @license <%= pkg.license %>',
+                  ' */',
+                  ''].join('\n');
+
+    // Javascript
+    // ------------------------------------------------------------------------------------------------------
+    gulp.task('dist_js_min', function() {
+
+        return gulp
+            .src(tasks.dist_js.source)
+            .pipe(uglify())
+            .pipe(header(banner, { pkg: pkg }))
+            .pipe(rename({
+                suffix: '.min'
+            }))
+            .pipe(gulp.dest(tasks.dist_js.dest))
+            .pipe(notify({
+                title: 'Javascript',
+                message: '<%= file.relative %> minified successfully',
+                onLast: true
+            }))
+            .on('error', notify.onError(function (error) {
+                return 'Message to the notifier: '+ error.message;
+            }));
+
+    });
+
+    gulp.task('dist_js_lint', function() {
+
+        return gulp
+            .src(tasks.dist_js.source)
+            .pipe(jscs())
+            .pipe(jscs.reporter())
+            .pipe(jshint())
+            .pipe(jshint.reporter('default'))
+            .pipe(notify({
+                title: 'Javascript',
+                message: '<%= file.relative %> linted successfully',
+                onLast: true
+            }))
+            .on('error', notify.onError(function (error) {
+                return 'Message to the notifier: '+ error.message;
+            }));
+
+    });
+
+    // LESS
+    // ------------------------------------------------------------------------------------------------------
+    gulp.task('dist_less', function() {
+
+        return gulp
+            .src(tasks.dist_less.source)
+            .pipe(less())
+            .pipe(header(banner, { pkg: pkg }))
+            .pipe(gulp.dest(tasks.dist_less.dest))
+            .pipe(notify({
+                title: 'LESS',
+                message: '<%= file.relative %> compiled successfully',
+                onLast: true
+            }))
+            .on('error', notify.onError(function (error) {
+                return 'Message to the notifier: '+ error.message;
+            }));
+
+    });
+
+    gulp.task('dist_less_min', function() {
+
+        return gulp
+            .src(tasks.dist_less.source)
+            .pipe(less())
+            .pipe(minifyCSS())
+            .pipe(header(banner, { pkg: pkg }))
+            .pipe(rename({
+                suffix: '.min'
+            }))
+            .pipe(gulp.dest(tasks.dist_less.dest))
+            .pipe(notify({
+                title: 'LESS',
+                message: '<%= file.relative %> compiled and minified successfully',
+                onLast: true
+            }))
+            .on('error', notify.onError(function (error) {
+                return 'Message to the notifier: '+ error.message;
+            }));
+
+    });
+
+    gulp.task('doc_less_main', function() {
+
+        return gulp
+            .src(tasks.doc_less_main.source)
+            .pipe(less())
+            .pipe(minifyCSS())
+            .pipe(gulp.dest(tasks.doc_less_main.dest))
+            .pipe(notify({
+                title: 'LESS',
+                message: 'Main compiled successfully',
+                onLast: true
+            }))
+            .on('error', notify.onError(function (error) {
+                return 'Message to the notifier: '+ error.message;
+            }));
+
+    });
+
+    gulp.task('doc_less_views', function() {
+
+        return gulp
+            .src(tasks.doc_less_views.source)
+            .pipe(less())
+            .pipe(minifyCSS())
+            .pipe(gulp.dest(tasks.doc_less_views.dest))
+            .pipe(notify({
+                title: 'LESS',
+                message: 'Views compiled successfully',
+                onLast: true
+            }))
+            .on('error', notify.onError(function (error) {
+                return 'Message to the notifier: '+ error.message;
+            }));
+
+    });
+
+    // Tests
+    // ------------------------------------------------------------------------------------------------------
+    gulp.task('tests', function() {
+
+        return qunit('tests/index.html');
+
+    });
+
+    // Build
+    // ------------------------------------------------------------------------------------------------------
+    gulp.task('build', [
+        'dist_js_lint',
+        'dist_js_min',
+        'dist_less',
+        'dist_less_min'
+    ]);
+
+    // Watching files
+    // ------------------------------------------------------------------------------------------------------
+    gulp.task('watch', function() {
+
+        // Javascript
+        // --------------------------------------------------------------------------------------------------
+        gulp.watch(tasks.dist_js.source, ['dist_js_lint', 'dist_js_min']);
+
+        // LESS
+        // --------------------------------------------------------------------------------------------------
+        gulp.watch(tasks.doc_less_main.source, ['doc_less_main']);
+        gulp.watch(doc_path +'less/app/**/*.less', ['doc_less_main', 'doc_less_views']);
+
+    });
+
+    // Default tasks (called when running `gulp` from cli)
+    // ------------------------------------------------------------------------------------------------------
+    gulp.task('default', [
+        'doc_less_main',
+        'doc_less_views',
+        'watch'
+    ]);
+
+}());
diff --git a/Exercise 1+2/desoslide-2.2.0/index.html b/Exercise 1/desoslide-2.2.0/index.html
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/index.html
rename to Exercise 1/desoslide-2.2.0/index.html
diff --git a/Exercise 1+2/desoslide-2.2.0/package.json b/Exercise 1/desoslide-2.2.0/package.json
similarity index 96%
rename from Exercise 1+2/desoslide-2.2.0/package.json
rename to Exercise 1/desoslide-2.2.0/package.json
index 87f31f5..c3e64a9 100644
--- a/Exercise 1+2/desoslide-2.2.0/package.json	
+++ b/Exercise 1/desoslide-2.2.0/package.json	
@@ -1,30 +1,30 @@
-{
-    "name": "desoslide",
-    "version": "2.2.0",
-    "description": "Take control of your slideshow with this powerful jQuery plugin",
-    "directories": {
-        "test": "tests"
-    },
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/sylouuu/desoslide.git"
-    },
-    "author": "sylouuu",
-    "license": "MIT",
-    "bugs": {
-        "url": "https://github.com/sylouuu/desoslide/issues"
-    },
-    "homepage": "https://github.com/sylouuu/desoslide",
-    "devDependencies": {
-        "gulp": "~3.9.0",
-        "gulp-uglify": "~1.5.0",
-        "gulp-less": "~3.1.0",
-        "gulp-minify-css": "~1.2.0",
-        "gulp-rename": "~1.2.0",
-        "gulp-jshint": "~2.0.0",
-        "gulp-notify": "~2.2.0",
-        "gulp-header": "~1.8.0",
-        "gulp-jscs": "~4.0.0",
-        "node-qunit-phantomjs": "~1.4.0"
-    }
-}
+{
+    "name": "desoslide",
+    "version": "2.2.0",
+    "description": "Take control of your slideshow with this powerful jQuery plugin",
+    "directories": {
+        "test": "tests"
+    },
+    "repository": {
+        "type": "git",
+        "url": "https://github.com/sylouuu/desoslide.git"
+    },
+    "author": "sylouuu",
+    "license": "MIT",
+    "bugs": {
+        "url": "https://github.com/sylouuu/desoslide/issues"
+    },
+    "homepage": "https://github.com/sylouuu/desoslide",
+    "devDependencies": {
+        "gulp": "~3.9.0",
+        "gulp-uglify": "~1.5.0",
+        "gulp-less": "~3.1.0",
+        "gulp-minify-css": "~1.2.0",
+        "gulp-rename": "~1.2.0",
+        "gulp-jshint": "~2.0.0",
+        "gulp-notify": "~2.2.0",
+        "gulp-header": "~1.8.0",
+        "gulp-jscs": "~4.0.0",
+        "node-qunit-phantomjs": "~1.4.0"
+    }
+}
diff --git a/Exercise 1+2/desoslide-2.2.0/src/js/jquery.desoslide.js b/Exercise 1/desoslide-2.2.0/src/js/jquery.desoslide.js
similarity index 97%
rename from Exercise 1+2/desoslide-2.2.0/src/js/jquery.desoslide.js
rename to Exercise 1/desoslide-2.2.0/src/js/jquery.desoslide.js
index caabc6d..0cbbcfd 100644
--- a/Exercise 1+2/desoslide-2.2.0/src/js/jquery.desoslide.js	
+++ b/Exercise 1/desoslide-2.2.0/src/js/jquery.desoslide.js	
@@ -1,1191 +1,1191 @@
-(function ($, window, document, undefined) {
-
-    'use strict';
-
-    var plugin_name = 'desoSlide',
-        // Default options
-        defaults    = {
-            // An anchors (`<a>`) collection
-            thumbs: null,
-
-            // What event to capture on thumbnail ('click', 'mouseover')
-            thumbEvent: 'click',
-
-            // Image class(es)
-            imageClass: 'img-responsive',
-
-            auto: {
-                // Pre-loading images
-                load: true,
-
-                // Auto-starting slideshow
-                start: false
-            },
-
-            // Index of the first image to show
-            first: 0,
-
-            // Interval between each images
-            interval: 3000,
-
-            effect: {
-                // Effect provider ('animate', 'magic')
-                provider: 'animate',
-
-                // Transition effect
-                // 'animate': 'bounce', 'fade', 'flipX', 'flipY', 'fun', 'light', 'roll', 'rotate', 'rotateBig', 'sideFade', 'sideFadeBig', 'slide', 'random'
-                // 'magic': 'foolish', 'perspective', 'puff', 'swap', 'swash', 'tin', 'twister', 'random'
-                name: 'fade'
-            },
-
-            // How to show overlay ('always', 'hover', 'none')
-            overlay: 'always',
-
-            controls: {
-                // Shows the player controls (prev/pause/play/next)
-                show: true,
-
-                // Able to control by using the keyboard shortcuts (left/space/right)
-                keys: false
-            },
-
-            events: {
-                // On thumb click
-                onThumbClick: null,
-
-                // On thumb click
-                onThumbMouseOver: null,
-
-                // On image show
-                onImageShow: null,
-
-                // On image shown
-                onImageShown: null,
-
-                // On image hide
-                onImageHide: null,
-
-                // On image hidden
-                onImageHidden: null,
-
-                // On image click
-                onImageClick: null,
-
-                // On previous
-                onPrev: null,
-
-                // On pause
-                onPause: null,
-
-                // On play
-                onPlay: null,
-
-                // On next
-                onNext: null,
-
-                // On error
-                onError: null,
-
-                // On warning
-                onWarning: null,
-
-                // On success
-                onSuccess: null
-            }
-        };
-
-    // The actual plugin constructor
-    function Plugin (element, options) {
-        this.elem = element;
-
-        // Extending options
-        this.options = $.extend(true, {}, defaults, options);
-
-        this._defaults  = defaults;
-        this._name      = plugin_name;
-        this._namespace = plugin_name.toLowerCase();
-
-        // Properties
-        this.props = {
-            thumbs: [],
-
-            effect: {
-                provider: null,
-                name: null,
-
-                list: {
-                    animate: {
-                        css: 'animated',
-
-                        bounce: {
-                            in: 'bounceInLeft',
-                            out: 'bounceOutRight'
-                        },
-                        fade: {
-                            in: 'fadeIn', // Default
-                            out: 'fadeOut'
-                        },
-                        flipX: {
-                            in: 'flipInX',
-                            out: 'flipOutX'
-                        },
-                        flipY: {
-                            in: 'flipInY',
-                            out: 'flipOutY'
-                        },
-                        fun: {
-                            in: 'rubberBand',
-                            out: 'hinge'
-                        },
-                        light: {
-                            in: 'lightSpeedIn',
-                            out: 'lightSpeedOut'
-                        },
-                        roll: {
-                            in: 'rollIn',
-                            out: 'rollOut'
-                        },
-                        rotate: {
-                            in: 'rotateIn',
-                            out: 'rotateOut'
-                        },
-                        rotateBig: {
-                            in: 'rotateInDownLeft',
-                            out: 'rotateOutUpRight'
-                        },
-                        sideFade: {
-                            in: 'fadeInLeft',
-                            out: 'fadeOutRight'
-                        },
-                        sideFadeBig: {
-                            in: 'fadeInLeftBig',
-                            out: 'fadeOutRightBig'
-                        },
-                        slide: {
-                            in: 'slideInLeft',
-                            out: 'slideOutRight'
-                        }
-                    },
-                    magic: {
-                        css: 'magictime',
-
-                        foolish: {
-                            in: 'foolishIn',
-                            out: 'foolishOut'
-                        },
-                        perspective: {
-                            in: 'perspectiveLeftRetourn',
-                            out: 'perspectiveLeft'
-                        },
-                        puff: {
-                            in: 'puffIn',
-                            out: 'puffOut'
-                        },
-                        swap: {
-                            in: 'swap',
-                            out: 'magic'
-                        },
-                        swash: {
-                            in: 'swashIn',
-                            out: 'swashOut'
-                        },
-                        tin: {
-                            in: 'tinLeftIn',
-                            out: 'tinRightOut'
-                        },
-                        twister: {
-                            in: 'twisterInDown',
-                            out: 'holeOut'
-                        }
-                    }
-                }
-            },
-
-            img: {
-                $elem: null,
-                $overlay: null,
-                to_show: this.options.first,
-                timer: null
-            },
-
-            controls: {
-                $wrapper: null
-            },
-
-            is_transition_supported: false,
-            plugin_status: null
-        };
-
-        // Start the work
-        this._init();
-    }
-
-    Plugin.prototype = {
-
-        /**
-         * Initialize the plugin
-         * @private
-         */
-        _init: function () {
-            var self = this;
-
-            // Thumbs checks
-            if (this.options.thumbs === null) {
-                this._errorHandler('error', 'The `thumbs` option doesn\'t exist.');
-            } else {
-                if ($(this.options.thumbs).length === 0) {
-                    this._errorHandler('error', 'The `thumbs` selector (' + $(this.options.thumbs).selector + ') doesn\'t exist.');
-                }
-            }
-
-            // Overlay check
-            var overlay_values = ['always', 'hover', 'none'];
-
-            if (overlay_values.indexOf(this.options.overlay) === -1) {
-                this._errorHandler('error', 'Incorrect value for the `overlay` option. Default value is used.');
-
-                // Default value
-                this.options.overlay = this._defaults.overlay;
-            }
-
-            // Looping thumbs anchors
-            $(this.options.thumbs).each(function (i, item) {
-                // Has `href`
-                if ($(item).attr('href') !== undefined) {
-                    // Has `img` child
-                    if ($(item).find('img').length) {
-                        // Building thumbs array
-                        self.props.thumbs.push({
-                            src: $(item).attr('href'),
-                            alt: $(item).find('img').attr('alt') || null,
-                            caption_title: $(item).find('img').data(self._namespace + '-caption-title') || null,
-                            caption_link: $(item).find('img').data(self._namespace + '-caption-link') || null
-                        });
-
-                        if ($(item).find('img').attr('alt') === undefined) {
-                            self._errorHandler('warning', 'The `alt` attribute is missing on the ' + i + '-indexed thumb, it\'s mandatory on <img> tags.');
-                        }
-
-                        $(item).attr('data-' + self._namespace + '-index', i);
-                    } else {
-                        self._errorHandler('error', 'Your link on the ' + i + '-indexed thumb must have an `<img>` tag as a child.');
-                    }
-                } else {
-                    self._errorHandler('error', 'The `href` attribute is missing on the ' + i + '-indexed thumb, it\'s mandatory on `<a>` tags.');
-                }
-            });
-
-            // `first` check
-            if (this.options.first >= this.props.thumbs.length) {
-                this._errorHandler('error', 'The `first` option must be between 0 and ' + (this.props.thumbs.length - 1) + '. Default value is used.');
-
-                // Default value
-                this.options.first     = this._defaults.first;
-                this.props.img.to_show = this._defaults.first;
-            }
-
-            // Detect CSS3 transition support
-            self.props.is_transition_supported = self._supportsTransitions();
-
-            // Preload the target images
-            self._preloading();
-
-            // Add the wrapper
-            self._wrapper();
-
-            if (self.props.is_transition_supported === true) {
-                // Set the effect
-                self.setEffect(self.options.effect);
-            }
-
-            if (this.props.thumbs[this.props.img.to_show] !== undefined) {
-                // Show the first image
-                self._showImage();
-            }
-
-            // Set the events
-            self._events();
-        },
-
-        // Public methods
-        // ----------------------------------------------------------------------------------------------------------
-        // ----------------------------------------------------------------------------------------------------------
-
-        /**
-         * Rebuild
-         * @returns {*|HTMLElement}
-         */
-        rebuild: function () {
-            this._init();
-
-            return $(this.elem);
-        },
-
-        /**
-         * Get thumbs data
-         * @param index
-         * @returns {*}
-         */
-        getThumbs: function (index) {
-            var response;
-
-            if (index !== undefined) {
-                if (this._isThumbExists(index) === true) {
-                    response = this.props.thumbs[index];
-                } else {
-                    response = null;
-                }
-            } else {
-                response = this.props.thumbs;
-            }
-
-            return response;
-        },
-
-        /**
-         * Set the effect
-         * @param effect
-         * @returns {{provider: null, name: null}}
-         */
-        setEffect: function (effect) {
-            var response = {
-                provider: null,
-                name: null
-            };
-
-            if (effect !== undefined && effect.provider !== null && effect.name !== null) {
-                if (!this.props.effect.list.hasOwnProperty(effect.provider)) {
-                    // No effect, instant transition
-                    if (effect === 'none') {
-                        response.name = 'none';
-                    } else {
-                        response.provider = this._defaults.effect.provider;
-                        response.name     = this._defaults.effect.name;
-
-                        this._errorHandler('error', 'Incorrect value for the `effect.provider` option. Default value is used.');
-                    }
-                } else {
-                    // Random effect asked for a specific provider
-                    if (effect.name === 'random') {
-                        // Get a random effect
-                        response.provider = effect.provider;
-                        response.name     = this._getRandomEffect(effect.provider);
-                    } else {
-                        if (!this.props.effect.list[effect.provider].hasOwnProperty(effect.name)) {
-                            response.provider = this._defaults.effect.provider;
-                            response.name     = this._defaults.effect.name;
-
-                            this._errorHandler('error', 'Incorrect value for the `effect.name` option. Default value is used.');
-                        } else {
-                            response.provider = effect.provider;
-                            response.name     = effect.name;
-                        }
-                    }
-                }
-            } else {
-                response.provider = this._defaults.effect.provider;
-                response.name     = this._defaults.effect.name;
-
-                this._errorHandler('error', 'Incorrect values for `effect.provider` and `effect.name` option. Default value is used.');
-            }
-
-            this.props.effect.provider = response.provider;
-            this.props.effect.name     = response.name;
-
-            return response;
-        },
-
-        /**
-         * Check that the slideshow is currently started
-         * @returns {boolean|*}
-         */
-        isPlaying: function () {
-            return this.options.auto.start;
-        },
-
-        /**
-         * Pause
-         * @returns {*|HTMLElement}
-         */
-        pause: function () {
-            if ($(this.options.thumbs).length > 1) {
-                if (this.options.auto.start === true && this.props.img.timer) {
-                    this.options.auto.start = false;
-
-                    this._stopAnimation();
-
-                    clearTimeout(this.props.img.timer);
-
-                    if (this.props.controls.$wrapper) {
-                        this.props.controls.$wrapper.find('a[href="#pause"]').hide().parent().find('a[href="#play"]').show();
-                    }
-
-                    this._triggerEvent('pause');
-                }
-            }
-
-            return $(this.elem);
-        },
-
-        /**
-         * Play
-         * @returns {*|HTMLElement}
-         */
-        play: function () {
-            if ($(this.options.thumbs).length > 1) {
-                if (this.options.auto.start === false) {
-                    this.options.auto.start = true;
-
-                    this.goNext(true);
-
-                    if (this.props.controls.$wrapper) {
-                        this.props.controls.$wrapper.find('a[href="#play"]').hide().parent().find('a[href="#pause"]').show();
-                    }
-                }
-
-                this._triggerEvent('play');
-            }
-
-            return $(this.elem);
-        },
-
-        /**
-         * Go to the previous slide
-         * @param from_script
-         * @returns {*|HTMLElement}
-         */
-        goPrev: function (from_script) {
-            if ($(this.options.thumbs).length > 1) {
-                var self = this;
-
-                if (!from_script && this.options.auto.start === true) {
-                    // Pausing
-                    this.pause();
-                }
-
-                this._hideOverlay();
-
-                // Decrementing index
-                this.props.img.to_show--;
-
-                if (this.props.img.to_show < 0) {
-                    // Taking the last index
-                    this.props.img.to_show = $(this.options.thumbs).length - 1;
-                }
-
-                this._hideImage(function () {
-                    self._showImage();
-                });
-
-                this._triggerEvent('prev');
-            }
-
-            return $(this.elem);
-        },
-
-        /**
-         * Go to the next slide
-         * @param from_script
-         * @returns {*|HTMLElement}
-         */
-        goNext: function (from_script) {
-            if ($(this.options.thumbs).length > 1) {
-                var self = this;
-
-                if (!from_script && this.options.auto.start === true) {
-                    // Pausing
-                    this.pause();
-                }
-
-                this._hideOverlay();
-
-                // Incrementing index
-                this.props.img.to_show++;
-
-                if (this.props.img.to_show >= $(this.options.thumbs).length) {
-                    // Taking the first index
-                    this.props.img.to_show = 0;
-                }
-
-                this._hideImage(function () {
-                    self._showImage();
-                });
-
-                this._triggerEvent('next');
-            }
-
-            return $(this.elem);
-        },
-
-        /**
-         * Go to a specific slide
-         * @param index
-         * @returns {*|HTMLElement}
-         */
-        goTo: function (index) {
-            if ($(this.options.thumbs).length > 1 && this._isThumbExists(index) === true) {
-                var self = this;
-
-                if (this.options.auto.start === true) {
-                    // Pausing
-                    this.pause();
-                }
-
-                if (index !== this.props.img.to_show) {
-                    this._stopAnimation();
-
-                    this._hideOverlay();
-
-                    self.props.img.to_show = index;
-
-                    this._hideImage(function () {
-                        self._showImage();
-                    });
-                }
-            }
-
-            return $(this.elem);
-        },
-
-        // Private methods
-        // ----------------------------------------------------------------------------------------------------------
-        // ----------------------------------------------------------------------------------------------------------
-
-        /**
-         * Is the browser supports CSS3 transition
-         * @returns {boolean}
-         * @private
-         */
-        _supportsTransitions: function () {
-            var b = document.body || document.documentElement,
-                s = b.style,
-                p = 'transition',
-                v = ['Moz', 'webkit', 'Webkit', 'Khtml', 'O', 'ms'],
-                i = 0;
-
-            if (typeof s[p] === 'string') {
-                return true;
-            }
-
-            p = p.charAt(0).toUpperCase() + p.substr(1);
-
-            for (i; i < v.length; i++) {
-                if (typeof s[v[i] + p] === 'string') {
-                    return true;
-                }
-            }
-
-            return false;
-        },
-
-        /**
-         * Is thumb exists
-         * @param index
-         * @returns {*}
-         * @private
-         */
-        _isThumbExists: function (index) {
-            var response;
-
-            if (typeof index === 'number') {
-                if (this.props.thumbs[index] !== undefined) {
-                    response = true;
-                } else {
-                    this._errorHandler('error', 'The ' + index + '-indexed thumb doesn\'t exist.');
-
-                    response = false;
-                }
-            }
-
-            return response;
-        },
-
-        /**
-         * Pre-loads images
-         * @private
-         */
-        _preloading: function () {
-            if (this.options.auto.load === true) {
-                // Looping thumbs
-                $.each(this.props.thumbs, function (i, item) {
-                    $('<img>', {
-                        src: item.src,
-                        alt: item.alt
-                    }).hide().appendTo('body');
-                });
-            }
-        },
-
-        /**
-         * Add wrapper
-         * @private
-         */
-        _wrapper: function () {
-            var $img = $('<img>').attr('alt', this._name).addClass(this.options.imageClass);
-
-            $(this.elem).html($img).wrapInner($('<div>', {
-                class: this._namespace + '-wrapper'
-            }));
-
-            this.props.img.$elem = $(this.elem).find('img:first');
-        },
-
-        /**
-         * Remove the effect classes
-         * @private
-         */
-        _clearEffectClass: function () {
-            var self = this, key, key2;
-
-            if (this.props.img.$elem.attr('class') !== undefined) {
-                // Retrieve CSS classes
-                var classes = this.props.img.$elem.attr('class').split(/\s+/);
-
-                // Remove the namespace class and the in/out
-                for (key in self.props.effect.list) {
-                    if (self.props.effect.list.hasOwnProperty(key)) {
-                        for (key2 in self.props.effect.list[key]) {
-                            if (self.props.effect.list[key].hasOwnProperty(key2)) {
-                                if (classes.indexOf(self.props.effect.list[key][key2]) !== -1) {
-                                    this.props.img.$elem.removeClass(self.props.effect.list[key][key2]);
-                                }
-
-                                if (self.props.effect.list[key][key2].in) {
-                                    if (classes.indexOf(self.props.effect.list[key][key2].in) !== -1) {
-                                        this.props.img.$elem.removeClass(self.props.effect.list[key][key2].in);
-                                    }
-                                }
-
-                                if (self.props.effect.list[key][key2].out) {
-                                    if (classes.indexOf(self.props.effect.list[key][key2].out) !== -1) {
-                                        this.props.img.$elem.removeClass(self.props.effect.list[key][key2].out);
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        },
-
-        /**
-         * Get a random effect for a specific provider
-         * @param provider
-         * @returns {*}
-         * @private
-         */
-        _getRandomEffect: function (provider) {
-            var random, count = 0, prop;
-
-            for (prop in this.props.effect.list[provider]) {
-                if (this.props.effect.list[provider].hasOwnProperty(prop) && prop !== 'css') {
-                    if (Math.random() < 1 / ++count) {
-                        random = prop;
-                    }
-                }
-            }
-
-            return random;
-        },
-
-        /**
-         * Has effect
-         * @returns {boolean}
-         * @private
-         */
-        _hasEffect: function () {
-            return (this.props.effect.provider === null && this.props.effect.name === 'none') ? false : true;
-        },
-
-        /**
-         * Shows an image
-         * @private
-         */
-        _showImage: function () {
-            var self = this;
-
-            if (this.props.plugin_status === null) {
-                // Success
-                this._errorHandler();
-            }
-
-            this._triggerEvent('imageShow');
-
-            this.props.img.$elem
-                .attr('src', this.props.thumbs[this.props.img.to_show].src)
-                .attr('alt', this.props.thumbs[this.props.img.to_show].alt)
-
-                // Image loaded
-                .one('load', function () {
-                    // No effect
-                    if (self._hasEffect() === false) {
-                        // Showing image
-                        $(this).css('opacity', 1);
-
-                        // Adding overlay
-                        self._overlay();
-
-                        self._triggerEvent('imageShown');
-                    } else {
-                        if (self.props.is_transition_supported === true) {
-                            // Showing
-                            $(this)
-                            // Removing the `out` class
-                                .removeClass(self.props.effect.list[self.props.effect.provider].css + ' ' + self.props.effect.list[self.props.effect.provider][self.props.effect.name].out)
-
-                                // Adding the `in` class
-                                .addClass(self.props.effect.list[self.props.effect.provider].css + ' ' + self.props.effect.list[self.props.effect.provider][self.props.effect.name].in)
-
-                                // Animation done
-                                .one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
-                                    // Adding overlay
-                                    self._overlay();
-
-                                    self._triggerEvent('imageShown');
-                                });
-                        } else {
-                            // Fallback CSS3
-                            $(this)
-                                .css('opacity', 0)
-                                .animate({
-                                    opacity: 1
-                                }, 1000, function () {
-                                    // Adding overlay
-                                    self._overlay();
-
-                                    self._triggerEvent('imageShown');
-                                });
-                        }
-                    }
-
-                    // Starting the loop
-                    if (self.options.auto.start === true) {
-                        self.props.img.timer = setTimeout(function () {
-                            self.goNext(true);
-                        }, (self.options.interval < 1500) ? 1500 : self.options.interval);
-                    }
-                });
-        },
-
-        /**
-         * Hides an image
-         * @param callback
-         * @private
-         */
-        _hideImage: function (callback) {
-            var self = this;
-
-            this._triggerEvent('imageHide');
-
-            // No effect
-            if (this._hasEffect() === false) {
-                this.props.img.$elem.css('opacity', 0);
-
-                self._triggerEvent('imageHidden');
-
-                if (callback) {
-                    callback();
-                }
-            } else {
-
-                if (self.props.is_transition_supported === true) {
-                    this._clearEffectClass();
-
-                    // Hiding the old one
-                    this.props.img.$elem
-                    // Removing the `in` class
-                        .removeClass(this.props.effect.list[this.props.effect.provider].css + ' ' + this.props.effect.list[this.props.effect.provider][this.props.effect.name].in)
-
-                        // Adding the `out` class
-                        .addClass(this.props.effect.list[this.props.effect.provider].css + ' ' + this.props.effect.list[this.props.effect.provider][this.props.effect.name].out)
-
-                        // Animation done
-                        .one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
-                            self._triggerEvent('imageHidden');
-
-                            if (callback) {
-                                callback();
-                            }
-                        });
-                } else {
-                    // Fallback CSS3
-                    this.props.img.$elem.animate({
-                        opacity: 0
-                    }, 1000, function () {
-                        self._triggerEvent('imageHidden');
-
-                        if (callback) {
-                            callback();
-                        }
-                    });
-                }
-
-            }
-        },
-
-        /**
-         * Add overlay
-         * @private
-         */
-        _overlay: function () {
-            // Overlay needed
-            if (this.options.overlay !== 'none') {
-                var pos, top, left, border, width_plus_border, height_plus_border, paddingTop, paddingBottom, paddingLeft, paddingRight, overlayHeight;
-
-                // Image positions
-                pos = this.props.img.$elem.position();
-
-                // Image border
-                border = parseInt(this.props.img.$elem.css('border-left-width'), 10);
-
-                // Image height dimensions
-                width_plus_border  = this.props.img.$elem.width() + (border * 2);
-                height_plus_border = this.props.img.$elem.height();
-
-                // Add overlay if not exists
-                if ($(this.elem).find('.' + this._namespace + '-overlay').length === 0) {
-                    $('<div>', {
-                        class: this._namespace + '-overlay'
-                    }).appendTo($(this.elem).find('.' + this._namespace + '-wrapper'));
-                }
-
-                this.props.img.$overlay = $(this.elem).find('.' + this._namespace + '-overlay');
-
-                // Calculate new height with paddings
-                paddingTop    = parseInt(this.props.img.$overlay.css('padding-top'), 10);
-                paddingBottom = parseInt(this.props.img.$overlay.css('padding-bottom'), 10);
-                paddingLeft   = parseInt(this.props.img.$overlay.css('padding-left'), 10);
-                paddingRight  = parseInt(this.props.img.$overlay.css('padding-right'), 10);
-
-                overlayHeight = parseInt(this.props.img.$overlay.css('height'), 10) - (paddingLeft + paddingRight);
-                overlayHeight = (parseInt(height_plus_border, 10) - overlayHeight - (paddingTop + paddingBottom));
-
-                top  = pos.top + overlayHeight + (border * 2);
-                left = pos.left;
-
-                // Update the overlay position
-                this.props.img.$overlay.css({
-                    left: left + 'px',
-                    top: top + 'px',
-                    width: width_plus_border + 'px',
-                    borderBottomLeftRadius: this.props.img.$elem.css('border-radius'),
-                    borderBottomRightRadius: this.props.img.$elem.css('border-radius')
-                });
-
-                // Showing the overlay if needed
-                if (this.options.overlay === 'always') {
-                    this.props.img.$overlay.animate({
-                        opacity: 0.7
-                    }, (this._hasEffect() === true) ? 500 : 0);
-                }
-
-                this._caption();
-
-                if (this.options.controls.show === true && this.props.thumbs.length > 1) {
-                    this._controls();
-                }
-            }
-        },
-
-        /**
-         * Hides the overlay
-         * @private
-         */
-        _hideOverlay: function () {
-            if (this.props.img.$overlay !== null) {
-                this.props.img.$overlay.animate({
-                    opacity: 0
-                }, (this._hasEffect() === true) ? 500 : 0);
-            }
-        },
-
-        /**
-         * Add controls
-         * @private
-         */
-        _controls: function () {
-            var $prev, $pause, $play, $next, $controls;
-
-            // Removing the existing controls wrapper
-            $(this.elem).find('.' + this._namespace + '-controls-wrapper').remove();
-
-            // Controls buttons
-            $prev  = '<a class="' + this._namespace + '-controls prev" href="#prev"></a>';
-            $pause = '<a class="' + this._namespace + '-controls pause" href="#pause"></a>';
-            $play  = '<a class="' + this._namespace + '-controls play" href="#play"></a>';
-            $next  = '<a class="' + this._namespace + '-controls next" href="#next"></a>';
-
-            // Controls wrapper
-            $controls = $('<div>', {
-                class: this._namespace + '-controls-wrapper'
-            }).append($prev + $pause + $play + $next);
-
-            // Adding the controls wrapper
-            if (this.props.img.$overlay.find('a:first').length > 0) {
-                $controls.appendTo(this.props.img.$overlay.find('a:first'));
-            } else {
-                $controls.appendTo(this.props.img.$overlay);
-            }
-
-            this.props.controls.$wrapper = $(this.elem).find('.' + this._namespace + '-controls-wrapper');
-
-            if (this.props.controls.$wrapper.length) {
-                // Showing the right button
-                if (this.options.auto.start === true) {
-                    this.props.controls.$wrapper.find('a[href="#play"]').hide().parent().find('a[href="#pause"]').show();
-                } else {
-                    this.props.controls.$wrapper.find('a[href="#pause"]').hide().parent().find('a[href="#play"]').show();
-                }
-            }
-        },
-
-        /**
-         * Caption management
-         * @private
-         */
-        _caption: function () {
-            if (this.props.thumbs[this.props.img.to_show].caption_title !== null) {
-                var anchor, anchor_exists, href_exists, $link, $clone, $parent;
-
-                this.props.img.$overlay.html('<span class="' + this._namespace + '-caption-title">' + this.props.thumbs[this.props.img.to_show].caption_title + '</span>');
-
-                anchor_exists = (this.props.img.$overlay.find('a:first').length > 0) ? true : false;
-                href_exists   = (this.props.thumbs[this.props.img.to_show].caption_link !== null) ? true : false;
-
-                // Anchor tag
-                anchor = '<a href="' + this.props.thumbs[this.props.img.to_show].caption_link + '" target="_blank"></a>';
-
-                if (anchor_exists === true && href_exists === true) {
-                    // Updating the href
-                    this.props.img.$overlay.find('a:first').attr('href', this.props.thumbs[this.props.img.to_show].caption_link);
-                } else {
-                    // Anchor already exists but no caption title to show
-                    if (anchor_exists === true && href_exists === false) {
-                        $link   = this.props.img.$overlay.find('a:first');
-                        $clone  = $link.children().clone();
-                        $parent = $link.parent();
-
-                        $link.remove();
-                        $clone.appendTo($parent);
-
-                        // Removing existing caption title
-                        this.props.img.$overlay.find('span:first').empty();
-                    } else {
-                        if (anchor_exists === false && href_exists === true) {
-                            // Wrapping the caption
-                            $(this.elem).find('.' + this._namespace + '-overlay span:first').wrap(anchor);
-                        }
-                    }
-                }
-            }
-        },
-
-        /**
-         * Stop the current animation
-         * @private
-         */
-        _stopAnimation: function () {
-            $(this.elem).stop();
-        },
-
-        /**
-         * Triggers an event
-         * @param event_name
-         * @private
-         */
-        _triggerEvent: function (event_name) {
-            // Trigger event
-            $(this.elem).triggerHandler(event_name + '.' + this._namespace);
-
-            var capitalize_first = event_name.charAt(0).toUpperCase() + event_name.slice(1);
-
-            // Option event
-            if (this.options.events['on' + capitalize_first]) {
-                this.options.events['on' + capitalize_first](this.props.img.$elem);
-            }
-        },
-
-        /**
-         * Events management
-         * @private
-         */
-        _events: function () {
-            var self = this;
-
-            if (['click', 'mouseover'].indexOf(this.options.thumbEvent) !== -1) {
-                // Interacting with thumbnail
-                $(this.options.thumbs).on('click', function (e) {
-                    e.preventDefault();
-
-                    if (self.options.thumbEvent === 'click') {
-                        self.goTo($(this).data(self._namespace + '-index'));
-
-                        self._triggerEvent('thumbClick');
-                    }
-                });
-
-                // Interacting with thumbnail
-                $(this.options.thumbs).on('mouseover', function (e) {
-                    e.preventDefault();
-
-                    if (self.options.thumbEvent === 'mouseover') {
-                        self.goTo($(this).data(self._namespace + '-index'));
-
-                        self._triggerEvent('thumbMouseOver');
-                    }
-                });
-            }
-
-            // Click on image
-            this.props.img.$elem.on('click', function (e) {
-                e.preventDefault();
-
-                self._triggerEvent('imageClick');
-            });
-
-            // Click on control
-            $(this.elem).on('click', '.' + this._namespace + '-controls-wrapper a', $(this.elem), function (e) {
-                e.preventDefault();
-
-                switch ($(this).attr('href')) {
-                    case '#prev':
-                        self.goPrev();
-                        break;
-                    case '#pause':
-                        self.pause();
-                        break;
-                    case '#play':
-                        self.play();
-                        break;
-                    case '#next':
-                        self.goNext();
-                        break;
-                }
-            });
-
-            // Hover on overlay
-            $(this.elem).find('.' + this._namespace + '-wrapper').on({
-                mouseover: function () {
-                    if (self.options.overlay === 'hover' && self.props.img.$overlay !== null) {
-                        self.props.img.$overlay.stop().animate({
-                            opacity: 0.7
-                        }, 400);
-                    }
-                },
-                mouseleave: function () {
-                    if (self.options.overlay === 'hover' && self.props.img.$overlay !== null) {
-                        self.props.img.$overlay.stop().animate({
-                            opacity: 0
-                        }, 400);
-                    }
-                }
-            });
-
-            if (this.options.controls.keys === true) {
-                // Keys binder
-                $(document).on('keydown', function (e) {
-                    switch (e.which) {
-                        case 37: // Left arrow
-                            self.goPrev();
-                            break;
-                        case 39: // Right arrow
-                            self.goNext();
-                            break;
-                        case 32: // Space
-                            e.preventDefault();
-
-                            if (self.options.auto.start === true) {
-                                self.pause();
-                            } else {
-                                self.play();
-                            }
-                            break;
-                    }
-                });
-            }
-
-            var delay = (function () {
-                var timer = 0;
-                return function (callback, ms) {
-                    clearTimeout(timer);
-                    timer = setTimeout(callback, ms);
-                };
-            }());
-
-            // New overlay position when resizing
-            if (this.options.overlay !== 'none') {
-                $(window).bind('resize', function () {
-                    delay(function () {
-                        self._overlay();
-                    }, 100);
-                });
-            }
-        },
-
-        /**
-         * Error handler
-         * @param type
-         * @param msg
-         * @private
-         */
-        _errorHandler: function (type, msg) {
-            switch (type) {
-                case 'error':
-                    if (console !== undefined) {
-                        console.error(this._name + ': ' + msg + ' Check out the documentation.');
-                    }
-
-                    this._triggerEvent('error');
-
-                    this.props.plugin_status = type;
-                    break;
-                case 'warning':
-                    if (console !== undefined) {
-                        console.warn(this._name + ': ' + msg);
-                    }
-
-                    this._triggerEvent('warning');
-
-                    this.props.plugin_status = type;
-                    break;
-                default:
-                    this._triggerEvent('success');
-
-                    this.props.plugin_status = type;
-                    break;
-            }
-        }
-    };
-
-    $.fn[plugin_name] = function (options) {
-        var args = arguments, instance, response;
-
-        if (options === undefined || typeof options === 'object') {
-            // Create a plugin instance for each selected element
-            response = this.each(function () {
-                if (!$.data(this, 'plugin_' + plugin_name)) {
-                    $.data(this, 'plugin_' + plugin_name, new Plugin(this, options));
-                }
-            });
-        } else if (typeof options === 'string' && options[0] !== '_') {
-            // Break the chainability and call a public method
-            instance = $.data(this[0], 'plugin_' + plugin_name);
-
-            if (instance[options] !== undefined) {
-                response = instance[options].apply(instance, Array.prototype.slice.call(args, 1));
-            }
-        } else {
-            // Invoke the speficied method on each selected element and preserve the chainability
-            response = this.each(function () {
-                instance = $.data(this, 'plugin_' + plugin_name);
-
-                if (instance instanceof Plugin && typeof instance[options] === 'function') {
-                    instance[options].apply(instance, Array.prototype.slice.call(args, 1));
-                }
-            });
-        }
-
-        return response;
-    };
-
-}(jQuery, window, document));
+(function ($, window, document, undefined) {
+
+    'use strict';
+
+    var plugin_name = 'desoSlide',
+        // Default options
+        defaults    = {
+            // An anchors (`<a>`) collection
+            thumbs: null,
+
+            // What event to capture on thumbnail ('click', 'mouseover')
+            thumbEvent: 'click',
+
+            // Image class(es)
+            imageClass: 'img-responsive',
+
+            auto: {
+                // Pre-loading images
+                load: true,
+
+                // Auto-starting slideshow
+                start: false
+            },
+
+            // Index of the first image to show
+            first: 0,
+
+            // Interval between each images
+            interval: 3000,
+
+            effect: {
+                // Effect provider ('animate', 'magic')
+                provider: 'animate',
+
+                // Transition effect
+                // 'animate': 'bounce', 'fade', 'flipX', 'flipY', 'fun', 'light', 'roll', 'rotate', 'rotateBig', 'sideFade', 'sideFadeBig', 'slide', 'random'
+                // 'magic': 'foolish', 'perspective', 'puff', 'swap', 'swash', 'tin', 'twister', 'random'
+                name: 'fade'
+            },
+
+            // How to show overlay ('always', 'hover', 'none')
+            overlay: 'always',
+
+            controls: {
+                // Shows the player controls (prev/pause/play/next)
+                show: true,
+
+                // Able to control by using the keyboard shortcuts (left/space/right)
+                keys: false
+            },
+
+            events: {
+                // On thumb click
+                onThumbClick: null,
+
+                // On thumb click
+                onThumbMouseOver: null,
+
+                // On image show
+                onImageShow: null,
+
+                // On image shown
+                onImageShown: null,
+
+                // On image hide
+                onImageHide: null,
+
+                // On image hidden
+                onImageHidden: null,
+
+                // On image click
+                onImageClick: null,
+
+                // On previous
+                onPrev: null,
+
+                // On pause
+                onPause: null,
+
+                // On play
+                onPlay: null,
+
+                // On next
+                onNext: null,
+
+                // On error
+                onError: null,
+
+                // On warning
+                onWarning: null,
+
+                // On success
+                onSuccess: null
+            }
+        };
+
+    // The actual plugin constructor
+    function Plugin (element, options) {
+        this.elem = element;
+
+        // Extending options
+        this.options = $.extend(true, {}, defaults, options);
+
+        this._defaults  = defaults;
+        this._name      = plugin_name;
+        this._namespace = plugin_name.toLowerCase();
+
+        // Properties
+        this.props = {
+            thumbs: [],
+
+            effect: {
+                provider: null,
+                name: null,
+
+                list: {
+                    animate: {
+                        css: 'animated',
+
+                        bounce: {
+                            in: 'bounceInLeft',
+                            out: 'bounceOutRight'
+                        },
+                        fade: {
+                            in: 'fadeIn', // Default
+                            out: 'fadeOut'
+                        },
+                        flipX: {
+                            in: 'flipInX',
+                            out: 'flipOutX'
+                        },
+                        flipY: {
+                            in: 'flipInY',
+                            out: 'flipOutY'
+                        },
+                        fun: {
+                            in: 'rubberBand',
+                            out: 'hinge'
+                        },
+                        light: {
+                            in: 'lightSpeedIn',
+                            out: 'lightSpeedOut'
+                        },
+                        roll: {
+                            in: 'rollIn',
+                            out: 'rollOut'
+                        },
+                        rotate: {
+                            in: 'rotateIn',
+                            out: 'rotateOut'
+                        },
+                        rotateBig: {
+                            in: 'rotateInDownLeft',
+                            out: 'rotateOutUpRight'
+                        },
+                        sideFade: {
+                            in: 'fadeInLeft',
+                            out: 'fadeOutRight'
+                        },
+                        sideFadeBig: {
+                            in: 'fadeInLeftBig',
+                            out: 'fadeOutRightBig'
+                        },
+                        slide: {
+                            in: 'slideInLeft',
+                            out: 'slideOutRight'
+                        }
+                    },
+                    magic: {
+                        css: 'magictime',
+
+                        foolish: {
+                            in: 'foolishIn',
+                            out: 'foolishOut'
+                        },
+                        perspective: {
+                            in: 'perspectiveLeftRetourn',
+                            out: 'perspectiveLeft'
+                        },
+                        puff: {
+                            in: 'puffIn',
+                            out: 'puffOut'
+                        },
+                        swap: {
+                            in: 'swap',
+                            out: 'magic'
+                        },
+                        swash: {
+                            in: 'swashIn',
+                            out: 'swashOut'
+                        },
+                        tin: {
+                            in: 'tinLeftIn',
+                            out: 'tinRightOut'
+                        },
+                        twister: {
+                            in: 'twisterInDown',
+                            out: 'holeOut'
+                        }
+                    }
+                }
+            },
+
+            img: {
+                $elem: null,
+                $overlay: null,
+                to_show: this.options.first,
+                timer: null
+            },
+
+            controls: {
+                $wrapper: null
+            },
+
+            is_transition_supported: false,
+            plugin_status: null
+        };
+
+        // Start the work
+        this._init();
+    }
+
+    Plugin.prototype = {
+
+        /**
+         * Initialize the plugin
+         * @private
+         */
+        _init: function () {
+            var self = this;
+
+            // Thumbs checks
+            if (this.options.thumbs === null) {
+                this._errorHandler('error', 'The `thumbs` option doesn\'t exist.');
+            } else {
+                if ($(this.options.thumbs).length === 0) {
+                    this._errorHandler('error', 'The `thumbs` selector (' + $(this.options.thumbs).selector + ') doesn\'t exist.');
+                }
+            }
+
+            // Overlay check
+            var overlay_values = ['always', 'hover', 'none'];
+
+            if (overlay_values.indexOf(this.options.overlay) === -1) {
+                this._errorHandler('error', 'Incorrect value for the `overlay` option. Default value is used.');
+
+                // Default value
+                this.options.overlay = this._defaults.overlay;
+            }
+
+            // Looping thumbs anchors
+            $(this.options.thumbs).each(function (i, item) {
+                // Has `href`
+                if ($(item).attr('href') !== undefined) {
+                    // Has `img` child
+                    if ($(item).find('img').length) {
+                        // Building thumbs array
+                        self.props.thumbs.push({
+                            src: $(item).attr('href'),
+                            alt: $(item).find('img').attr('alt') || null,
+                            caption_title: $(item).find('img').data(self._namespace + '-caption-title') || null,
+                            caption_link: $(item).find('img').data(self._namespace + '-caption-link') || null
+                        });
+
+                        if ($(item).find('img').attr('alt') === undefined) {
+                            self._errorHandler('warning', 'The `alt` attribute is missing on the ' + i + '-indexed thumb, it\'s mandatory on <img> tags.');
+                        }
+
+                        $(item).attr('data-' + self._namespace + '-index', i);
+                    } else {
+                        self._errorHandler('error', 'Your link on the ' + i + '-indexed thumb must have an `<img>` tag as a child.');
+                    }
+                } else {
+                    self._errorHandler('error', 'The `href` attribute is missing on the ' + i + '-indexed thumb, it\'s mandatory on `<a>` tags.');
+                }
+            });
+
+            // `first` check
+            if (this.options.first >= this.props.thumbs.length) {
+                this._errorHandler('error', 'The `first` option must be between 0 and ' + (this.props.thumbs.length - 1) + '. Default value is used.');
+
+                // Default value
+                this.options.first     = this._defaults.first;
+                this.props.img.to_show = this._defaults.first;
+            }
+
+            // Detect CSS3 transition support
+            self.props.is_transition_supported = self._supportsTransitions();
+
+            // Preload the target images
+            self._preloading();
+
+            // Add the wrapper
+            self._wrapper();
+
+            if (self.props.is_transition_supported === true) {
+                // Set the effect
+                self.setEffect(self.options.effect);
+            }
+
+            if (this.props.thumbs[this.props.img.to_show] !== undefined) {
+                // Show the first image
+                self._showImage();
+            }
+
+            // Set the events
+            self._events();
+        },
+
+        // Public methods
+        // ----------------------------------------------------------------------------------------------------------
+        // ----------------------------------------------------------------------------------------------------------
+
+        /**
+         * Rebuild
+         * @returns {*|HTMLElement}
+         */
+        rebuild: function () {
+            this._init();
+
+            return $(this.elem);
+        },
+
+        /**
+         * Get thumbs data
+         * @param index
+         * @returns {*}
+         */
+        getThumbs: function (index) {
+            var response;
+
+            if (index !== undefined) {
+                if (this._isThumbExists(index) === true) {
+                    response = this.props.thumbs[index];
+                } else {
+                    response = null;
+                }
+            } else {
+                response = this.props.thumbs;
+            }
+
+            return response;
+        },
+
+        /**
+         * Set the effect
+         * @param effect
+         * @returns {{provider: null, name: null}}
+         */
+        setEffect: function (effect) {
+            var response = {
+                provider: null,
+                name: null
+            };
+
+            if (effect !== undefined && effect.provider !== null && effect.name !== null) {
+                if (!this.props.effect.list.hasOwnProperty(effect.provider)) {
+                    // No effect, instant transition
+                    if (effect === 'none') {
+                        response.name = 'none';
+                    } else {
+                        response.provider = this._defaults.effect.provider;
+                        response.name     = this._defaults.effect.name;
+
+                        this._errorHandler('error', 'Incorrect value for the `effect.provider` option. Default value is used.');
+                    }
+                } else {
+                    // Random effect asked for a specific provider
+                    if (effect.name === 'random') {
+                        // Get a random effect
+                        response.provider = effect.provider;
+                        response.name     = this._getRandomEffect(effect.provider);
+                    } else {
+                        if (!this.props.effect.list[effect.provider].hasOwnProperty(effect.name)) {
+                            response.provider = this._defaults.effect.provider;
+                            response.name     = this._defaults.effect.name;
+
+                            this._errorHandler('error', 'Incorrect value for the `effect.name` option. Default value is used.');
+                        } else {
+                            response.provider = effect.provider;
+                            response.name     = effect.name;
+                        }
+                    }
+                }
+            } else {
+                response.provider = this._defaults.effect.provider;
+                response.name     = this._defaults.effect.name;
+
+                this._errorHandler('error', 'Incorrect values for `effect.provider` and `effect.name` option. Default value is used.');
+            }
+
+            this.props.effect.provider = response.provider;
+            this.props.effect.name     = response.name;
+
+            return response;
+        },
+
+        /**
+         * Check that the slideshow is currently started
+         * @returns {boolean|*}
+         */
+        isPlaying: function () {
+            return this.options.auto.start;
+        },
+
+        /**
+         * Pause
+         * @returns {*|HTMLElement}
+         */
+        pause: function () {
+            if ($(this.options.thumbs).length > 1) {
+                if (this.options.auto.start === true && this.props.img.timer) {
+                    this.options.auto.start = false;
+
+                    this._stopAnimation();
+
+                    clearTimeout(this.props.img.timer);
+
+                    if (this.props.controls.$wrapper) {
+                        this.props.controls.$wrapper.find('a[href="#pause"]').hide().parent().find('a[href="#play"]').show();
+                    }
+
+                    this._triggerEvent('pause');
+                }
+            }
+
+            return $(this.elem);
+        },
+
+        /**
+         * Play
+         * @returns {*|HTMLElement}
+         */
+        play: function () {
+            if ($(this.options.thumbs).length > 1) {
+                if (this.options.auto.start === false) {
+                    this.options.auto.start = true;
+
+                    this.goNext(true);
+
+                    if (this.props.controls.$wrapper) {
+                        this.props.controls.$wrapper.find('a[href="#play"]').hide().parent().find('a[href="#pause"]').show();
+                    }
+                }
+
+                this._triggerEvent('play');
+            }
+
+            return $(this.elem);
+        },
+
+        /**
+         * Go to the previous slide
+         * @param from_script
+         * @returns {*|HTMLElement}
+         */
+        goPrev: function (from_script) {
+            if ($(this.options.thumbs).length > 1) {
+                var self = this;
+
+                if (!from_script && this.options.auto.start === true) {
+                    // Pausing
+                    this.pause();
+                }
+
+                this._hideOverlay();
+
+                // Decrementing index
+                this.props.img.to_show--;
+
+                if (this.props.img.to_show < 0) {
+                    // Taking the last index
+                    this.props.img.to_show = $(this.options.thumbs).length - 1;
+                }
+
+                this._hideImage(function () {
+                    self._showImage();
+                });
+
+                this._triggerEvent('prev');
+            }
+
+            return $(this.elem);
+        },
+
+        /**
+         * Go to the next slide
+         * @param from_script
+         * @returns {*|HTMLElement}
+         */
+        goNext: function (from_script) {
+            if ($(this.options.thumbs).length > 1) {
+                var self = this;
+
+                if (!from_script && this.options.auto.start === true) {
+                    // Pausing
+                    this.pause();
+                }
+
+                this._hideOverlay();
+
+                // Incrementing index
+                this.props.img.to_show++;
+
+                if (this.props.img.to_show >= $(this.options.thumbs).length) {
+                    // Taking the first index
+                    this.props.img.to_show = 0;
+                }
+
+                this._hideImage(function () {
+                    self._showImage();
+                });
+
+                this._triggerEvent('next');
+            }
+
+            return $(this.elem);
+        },
+
+        /**
+         * Go to a specific slide
+         * @param index
+         * @returns {*|HTMLElement}
+         */
+        goTo: function (index) {
+            if ($(this.options.thumbs).length > 1 && this._isThumbExists(index) === true) {
+                var self = this;
+
+                if (this.options.auto.start === true) {
+                    // Pausing
+                    this.pause();
+                }
+
+                if (index !== this.props.img.to_show) {
+                    this._stopAnimation();
+
+                    this._hideOverlay();
+
+                    self.props.img.to_show = index;
+
+                    this._hideImage(function () {
+                        self._showImage();
+                    });
+                }
+            }
+
+            return $(this.elem);
+        },
+
+        // Private methods
+        // ----------------------------------------------------------------------------------------------------------
+        // ----------------------------------------------------------------------------------------------------------
+
+        /**
+         * Is the browser supports CSS3 transition
+         * @returns {boolean}
+         * @private
+         */
+        _supportsTransitions: function () {
+            var b = document.body || document.documentElement,
+                s = b.style,
+                p = 'transition',
+                v = ['Moz', 'webkit', 'Webkit', 'Khtml', 'O', 'ms'],
+                i = 0;
+
+            if (typeof s[p] === 'string') {
+                return true;
+            }
+
+            p = p.charAt(0).toUpperCase() + p.substr(1);
+
+            for (i; i < v.length; i++) {
+                if (typeof s[v[i] + p] === 'string') {
+                    return true;
+                }
+            }
+
+            return false;
+        },
+
+        /**
+         * Is thumb exists
+         * @param index
+         * @returns {*}
+         * @private
+         */
+        _isThumbExists: function (index) {
+            var response;
+
+            if (typeof index === 'number') {
+                if (this.props.thumbs[index] !== undefined) {
+                    response = true;
+                } else {
+                    this._errorHandler('error', 'The ' + index + '-indexed thumb doesn\'t exist.');
+
+                    response = false;
+                }
+            }
+
+            return response;
+        },
+
+        /**
+         * Pre-loads images
+         * @private
+         */
+        _preloading: function () {
+            if (this.options.auto.load === true) {
+                // Looping thumbs
+                $.each(this.props.thumbs, function (i, item) {
+                    $('<img>', {
+                        src: item.src,
+                        alt: item.alt
+                    }).hide().appendTo('body');
+                });
+            }
+        },
+
+        /**
+         * Add wrapper
+         * @private
+         */
+        _wrapper: function () {
+            var $img = $('<img>').attr('alt', this._name).addClass(this.options.imageClass);
+
+            $(this.elem).html($img).wrapInner($('<div>', {
+                class: this._namespace + '-wrapper'
+            }));
+
+            this.props.img.$elem = $(this.elem).find('img:first');
+        },
+
+        /**
+         * Remove the effect classes
+         * @private
+         */
+        _clearEffectClass: function () {
+            var self = this, key, key2;
+
+            if (this.props.img.$elem.attr('class') !== undefined) {
+                // Retrieve CSS classes
+                var classes = this.props.img.$elem.attr('class').split(/\s+/);
+
+                // Remove the namespace class and the in/out
+                for (key in self.props.effect.list) {
+                    if (self.props.effect.list.hasOwnProperty(key)) {
+                        for (key2 in self.props.effect.list[key]) {
+                            if (self.props.effect.list[key].hasOwnProperty(key2)) {
+                                if (classes.indexOf(self.props.effect.list[key][key2]) !== -1) {
+                                    this.props.img.$elem.removeClass(self.props.effect.list[key][key2]);
+                                }
+
+                                if (self.props.effect.list[key][key2].in) {
+                                    if (classes.indexOf(self.props.effect.list[key][key2].in) !== -1) {
+                                        this.props.img.$elem.removeClass(self.props.effect.list[key][key2].in);
+                                    }
+                                }
+
+                                if (self.props.effect.list[key][key2].out) {
+                                    if (classes.indexOf(self.props.effect.list[key][key2].out) !== -1) {
+                                        this.props.img.$elem.removeClass(self.props.effect.list[key][key2].out);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        },
+
+        /**
+         * Get a random effect for a specific provider
+         * @param provider
+         * @returns {*}
+         * @private
+         */
+        _getRandomEffect: function (provider) {
+            var random, count = 0, prop;
+
+            for (prop in this.props.effect.list[provider]) {
+                if (this.props.effect.list[provider].hasOwnProperty(prop) && prop !== 'css') {
+                    if (Math.random() < 1 / ++count) {
+                        random = prop;
+                    }
+                }
+            }
+
+            return random;
+        },
+
+        /**
+         * Has effect
+         * @returns {boolean}
+         * @private
+         */
+        _hasEffect: function () {
+            return (this.props.effect.provider === null && this.props.effect.name === 'none') ? false : true;
+        },
+
+        /**
+         * Shows an image
+         * @private
+         */
+        _showImage: function () {
+            var self = this;
+
+            if (this.props.plugin_status === null) {
+                // Success
+                this._errorHandler();
+            }
+
+            this._triggerEvent('imageShow');
+
+            this.props.img.$elem
+                .attr('src', this.props.thumbs[this.props.img.to_show].src)
+                .attr('alt', this.props.thumbs[this.props.img.to_show].alt)
+
+                // Image loaded
+                .one('load', function () {
+                    // No effect
+                    if (self._hasEffect() === false) {
+                        // Showing image
+                        $(this).css('opacity', 1);
+
+                        // Adding overlay
+                        self._overlay();
+
+                        self._triggerEvent('imageShown');
+                    } else {
+                        if (self.props.is_transition_supported === true) {
+                            // Showing
+                            $(this)
+                            // Removing the `out` class
+                                .removeClass(self.props.effect.list[self.props.effect.provider].css + ' ' + self.props.effect.list[self.props.effect.provider][self.props.effect.name].out)
+
+                                // Adding the `in` class
+                                .addClass(self.props.effect.list[self.props.effect.provider].css + ' ' + self.props.effect.list[self.props.effect.provider][self.props.effect.name].in)
+
+                                // Animation done
+                                .one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
+                                    // Adding overlay
+                                    self._overlay();
+
+                                    self._triggerEvent('imageShown');
+                                });
+                        } else {
+                            // Fallback CSS3
+                            $(this)
+                                .css('opacity', 0)
+                                .animate({
+                                    opacity: 1
+                                }, 1000, function () {
+                                    // Adding overlay
+                                    self._overlay();
+
+                                    self._triggerEvent('imageShown');
+                                });
+                        }
+                    }
+
+                    // Starting the loop
+                    if (self.options.auto.start === true) {
+                        self.props.img.timer = setTimeout(function () {
+                            self.goNext(true);
+                        }, (self.options.interval < 1500) ? 1500 : self.options.interval);
+                    }
+                });
+        },
+
+        /**
+         * Hides an image
+         * @param callback
+         * @private
+         */
+        _hideImage: function (callback) {
+            var self = this;
+
+            this._triggerEvent('imageHide');
+
+            // No effect
+            if (this._hasEffect() === false) {
+                this.props.img.$elem.css('opacity', 0);
+
+                self._triggerEvent('imageHidden');
+
+                if (callback) {
+                    callback();
+                }
+            } else {
+
+                if (self.props.is_transition_supported === true) {
+                    this._clearEffectClass();
+
+                    // Hiding the old one
+                    this.props.img.$elem
+                    // Removing the `in` class
+                        .removeClass(this.props.effect.list[this.props.effect.provider].css + ' ' + this.props.effect.list[this.props.effect.provider][this.props.effect.name].in)
+
+                        // Adding the `out` class
+                        .addClass(this.props.effect.list[this.props.effect.provider].css + ' ' + this.props.effect.list[this.props.effect.provider][this.props.effect.name].out)
+
+                        // Animation done
+                        .one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
+                            self._triggerEvent('imageHidden');
+
+                            if (callback) {
+                                callback();
+                            }
+                        });
+                } else {
+                    // Fallback CSS3
+                    this.props.img.$elem.animate({
+                        opacity: 0
+                    }, 1000, function () {
+                        self._triggerEvent('imageHidden');
+
+                        if (callback) {
+                            callback();
+                        }
+                    });
+                }
+
+            }
+        },
+
+        /**
+         * Add overlay
+         * @private
+         */
+        _overlay: function () {
+            // Overlay needed
+            if (this.options.overlay !== 'none') {
+                var pos, top, left, border, width_plus_border, height_plus_border, paddingTop, paddingBottom, paddingLeft, paddingRight, overlayHeight;
+
+                // Image positions
+                pos = this.props.img.$elem.position();
+
+                // Image border
+                border = parseInt(this.props.img.$elem.css('border-left-width'), 10);
+
+                // Image height dimensions
+                width_plus_border  = this.props.img.$elem.width() + (border * 2);
+                height_plus_border = this.props.img.$elem.height();
+
+                // Add overlay if not exists
+                if ($(this.elem).find('.' + this._namespace + '-overlay').length === 0) {
+                    $('<div>', {
+                        class: this._namespace + '-overlay'
+                    }).appendTo($(this.elem).find('.' + this._namespace + '-wrapper'));
+                }
+
+                this.props.img.$overlay = $(this.elem).find('.' + this._namespace + '-overlay');
+
+                // Calculate new height with paddings
+                paddingTop    = parseInt(this.props.img.$overlay.css('padding-top'), 10);
+                paddingBottom = parseInt(this.props.img.$overlay.css('padding-bottom'), 10);
+                paddingLeft   = parseInt(this.props.img.$overlay.css('padding-left'), 10);
+                paddingRight  = parseInt(this.props.img.$overlay.css('padding-right'), 10);
+
+                overlayHeight = parseInt(this.props.img.$overlay.css('height'), 10) - (paddingLeft + paddingRight);
+                overlayHeight = (parseInt(height_plus_border, 10) - overlayHeight - (paddingTop + paddingBottom));
+
+                top  = pos.top + overlayHeight + (border * 2);
+                left = pos.left;
+
+                // Update the overlay position
+                this.props.img.$overlay.css({
+                    left: left + 'px',
+                    top: top + 'px',
+                    width: width_plus_border + 'px',
+                    borderBottomLeftRadius: this.props.img.$elem.css('border-radius'),
+                    borderBottomRightRadius: this.props.img.$elem.css('border-radius')
+                });
+
+                // Showing the overlay if needed
+                if (this.options.overlay === 'always') {
+                    this.props.img.$overlay.animate({
+                        opacity: 0.7
+                    }, (this._hasEffect() === true) ? 500 : 0);
+                }
+
+                this._caption();
+
+                if (this.options.controls.show === true && this.props.thumbs.length > 1) {
+                    this._controls();
+                }
+            }
+        },
+
+        /**
+         * Hides the overlay
+         * @private
+         */
+        _hideOverlay: function () {
+            if (this.props.img.$overlay !== null) {
+                this.props.img.$overlay.animate({
+                    opacity: 0
+                }, (this._hasEffect() === true) ? 500 : 0);
+            }
+        },
+
+        /**
+         * Add controls
+         * @private
+         */
+        _controls: function () {
+            var $prev, $pause, $play, $next, $controls;
+
+            // Removing the existing controls wrapper
+            $(this.elem).find('.' + this._namespace + '-controls-wrapper').remove();
+
+            // Controls buttons
+            $prev  = '<a class="' + this._namespace + '-controls prev" href="#prev"></a>';
+            $pause = '<a class="' + this._namespace + '-controls pause" href="#pause"></a>';
+            $play  = '<a class="' + this._namespace + '-controls play" href="#play"></a>';
+            $next  = '<a class="' + this._namespace + '-controls next" href="#next"></a>';
+
+            // Controls wrapper
+            $controls = $('<div>', {
+                class: this._namespace + '-controls-wrapper'
+            }).append($prev + $pause + $play + $next);
+
+            // Adding the controls wrapper
+            if (this.props.img.$overlay.find('a:first').length > 0) {
+                $controls.appendTo(this.props.img.$overlay.find('a:first'));
+            } else {
+                $controls.appendTo(this.props.img.$overlay);
+            }
+
+            this.props.controls.$wrapper = $(this.elem).find('.' + this._namespace + '-controls-wrapper');
+
+            if (this.props.controls.$wrapper.length) {
+                // Showing the right button
+                if (this.options.auto.start === true) {
+                    this.props.controls.$wrapper.find('a[href="#play"]').hide().parent().find('a[href="#pause"]').show();
+                } else {
+                    this.props.controls.$wrapper.find('a[href="#pause"]').hide().parent().find('a[href="#play"]').show();
+                }
+            }
+        },
+
+        /**
+         * Caption management
+         * @private
+         */
+        _caption: function () {
+            if (this.props.thumbs[this.props.img.to_show].caption_title !== null) {
+                var anchor, anchor_exists, href_exists, $link, $clone, $parent;
+
+                this.props.img.$overlay.html('<span class="' + this._namespace + '-caption-title">' + this.props.thumbs[this.props.img.to_show].caption_title + '</span>');
+
+                anchor_exists = (this.props.img.$overlay.find('a:first').length > 0) ? true : false;
+                href_exists   = (this.props.thumbs[this.props.img.to_show].caption_link !== null) ? true : false;
+
+                // Anchor tag
+                anchor = '<a href="' + this.props.thumbs[this.props.img.to_show].caption_link + '" target="_blank"></a>';
+
+                if (anchor_exists === true && href_exists === true) {
+                    // Updating the href
+                    this.props.img.$overlay.find('a:first').attr('href', this.props.thumbs[this.props.img.to_show].caption_link);
+                } else {
+                    // Anchor already exists but no caption title to show
+                    if (anchor_exists === true && href_exists === false) {
+                        $link   = this.props.img.$overlay.find('a:first');
+                        $clone  = $link.children().clone();
+                        $parent = $link.parent();
+
+                        $link.remove();
+                        $clone.appendTo($parent);
+
+                        // Removing existing caption title
+                        this.props.img.$overlay.find('span:first').empty();
+                    } else {
+                        if (anchor_exists === false && href_exists === true) {
+                            // Wrapping the caption
+                            $(this.elem).find('.' + this._namespace + '-overlay span:first').wrap(anchor);
+                        }
+                    }
+                }
+            }
+        },
+
+        /**
+         * Stop the current animation
+         * @private
+         */
+        _stopAnimation: function () {
+            $(this.elem).stop();
+        },
+
+        /**
+         * Triggers an event
+         * @param event_name
+         * @private
+         */
+        _triggerEvent: function (event_name) {
+            // Trigger event
+            $(this.elem).triggerHandler(event_name + '.' + this._namespace);
+
+            var capitalize_first = event_name.charAt(0).toUpperCase() + event_name.slice(1);
+
+            // Option event
+            if (this.options.events['on' + capitalize_first]) {
+                this.options.events['on' + capitalize_first](this.props.img.$elem);
+            }
+        },
+
+        /**
+         * Events management
+         * @private
+         */
+        _events: function () {
+            var self = this;
+
+            if (['click', 'mouseover'].indexOf(this.options.thumbEvent) !== -1) {
+                // Interacting with thumbnail
+                $(this.options.thumbs).on('click', function (e) {
+                    e.preventDefault();
+
+                    if (self.options.thumbEvent === 'click') {
+                        self.goTo($(this).data(self._namespace + '-index'));
+
+                        self._triggerEvent('thumbClick');
+                    }
+                });
+
+                // Interacting with thumbnail
+                $(this.options.thumbs).on('mouseover', function (e) {
+                    e.preventDefault();
+
+                    if (self.options.thumbEvent === 'mouseover') {
+                        self.goTo($(this).data(self._namespace + '-index'));
+
+                        self._triggerEvent('thumbMouseOver');
+                    }
+                });
+            }
+
+            // Click on image
+            this.props.img.$elem.on('click', function (e) {
+                e.preventDefault();
+
+                self._triggerEvent('imageClick');
+            });
+
+            // Click on control
+            $(this.elem).on('click', '.' + this._namespace + '-controls-wrapper a', $(this.elem), function (e) {
+                e.preventDefault();
+
+                switch ($(this).attr('href')) {
+                    case '#prev':
+                        self.goPrev();
+                        break;
+                    case '#pause':
+                        self.pause();
+                        break;
+                    case '#play':
+                        self.play();
+                        break;
+                    case '#next':
+                        self.goNext();
+                        break;
+                }
+            });
+
+            // Hover on overlay
+            $(this.elem).find('.' + this._namespace + '-wrapper').on({
+                mouseover: function () {
+                    if (self.options.overlay === 'hover' && self.props.img.$overlay !== null) {
+                        self.props.img.$overlay.stop().animate({
+                            opacity: 0.7
+                        }, 400);
+                    }
+                },
+                mouseleave: function () {
+                    if (self.options.overlay === 'hover' && self.props.img.$overlay !== null) {
+                        self.props.img.$overlay.stop().animate({
+                            opacity: 0
+                        }, 400);
+                    }
+                }
+            });
+
+            if (this.options.controls.keys === true) {
+                // Keys binder
+                $(document).on('keydown', function (e) {
+                    switch (e.which) {
+                        case 37: // Left arrow
+                            self.goPrev();
+                            break;
+                        case 39: // Right arrow
+                            self.goNext();
+                            break;
+                        case 32: // Space
+                            e.preventDefault();
+
+                            if (self.options.auto.start === true) {
+                                self.pause();
+                            } else {
+                                self.play();
+                            }
+                            break;
+                    }
+                });
+            }
+
+            var delay = (function () {
+                var timer = 0;
+                return function (callback, ms) {
+                    clearTimeout(timer);
+                    timer = setTimeout(callback, ms);
+                };
+            }());
+
+            // New overlay position when resizing
+            if (this.options.overlay !== 'none') {
+                $(window).bind('resize', function () {
+                    delay(function () {
+                        self._overlay();
+                    }, 100);
+                });
+            }
+        },
+
+        /**
+         * Error handler
+         * @param type
+         * @param msg
+         * @private
+         */
+        _errorHandler: function (type, msg) {
+            switch (type) {
+                case 'error':
+                    if (console !== undefined) {
+                        console.error(this._name + ': ' + msg + ' Check out the documentation.');
+                    }
+
+                    this._triggerEvent('error');
+
+                    this.props.plugin_status = type;
+                    break;
+                case 'warning':
+                    if (console !== undefined) {
+                        console.warn(this._name + ': ' + msg);
+                    }
+
+                    this._triggerEvent('warning');
+
+                    this.props.plugin_status = type;
+                    break;
+                default:
+                    this._triggerEvent('success');
+
+                    this.props.plugin_status = type;
+                    break;
+            }
+        }
+    };
+
+    $.fn[plugin_name] = function (options) {
+        var args = arguments, instance, response;
+
+        if (options === undefined || typeof options === 'object') {
+            // Create a plugin instance for each selected element
+            response = this.each(function () {
+                if (!$.data(this, 'plugin_' + plugin_name)) {
+                    $.data(this, 'plugin_' + plugin_name, new Plugin(this, options));
+                }
+            });
+        } else if (typeof options === 'string' && options[0] !== '_') {
+            // Break the chainability and call a public method
+            instance = $.data(this[0], 'plugin_' + plugin_name);
+
+            if (instance[options] !== undefined) {
+                response = instance[options].apply(instance, Array.prototype.slice.call(args, 1));
+            }
+        } else {
+            // Invoke the speficied method on each selected element and preserve the chainability
+            response = this.each(function () {
+                instance = $.data(this, 'plugin_' + plugin_name);
+
+                if (instance instanceof Plugin && typeof instance[options] === 'function') {
+                    instance[options].apply(instance, Array.prototype.slice.call(args, 1));
+                }
+            });
+        }
+
+        return response;
+    };
+
+}(jQuery, window, document));
diff --git a/Exercise 1+2/desoslide-2.2.0/src/less/jquery.desoslide.less b/Exercise 1/desoslide-2.2.0/src/less/jquery.desoslide.less
similarity index 95%
rename from Exercise 1+2/desoslide-2.2.0/src/less/jquery.desoslide.less
rename to Exercise 1/desoslide-2.2.0/src/less/jquery.desoslide.less
index a2f4d8f..223bf6b 100644
--- a/Exercise 1+2/desoslide-2.2.0/src/less/jquery.desoslide.less	
+++ b/Exercise 1/desoslide-2.2.0/src/less/jquery.desoslide.less	
@@ -1,81 +1,81 @@
-@sprite-path     : '../img/desoslide_controls.png';
-@controls-width  : 16px;
-@controls-height : 16px;
-
-.desoslide-wrapper {
-    position   : relative;
-    text-align : center;
-}
-
-.desoslide-controls-wrapper {
-    position    : relative;
-    float       : right;
-    height      : 36px;
-    line-height : 41px;
-    bottom      : 8px;
-    z-index     : 100;
-    opacity     : 1;
-
-    a {
-        &:hover {
-            opacity : 0.7;
-        }
-    }
-}
-
-.desoslide-overlay {
-    height           : 36px;
-    position         : absolute;
-    z-index          : 10;
-    text-align       : left;
-    color            : white;
-    font-weight      : bold;
-    background-color : black;
-    padding          : 8px;
-    opacity          : 0;
-
-    > a {
-        position    : relative;
-        top         : -1px;
-        color       : white;
-    }
-
-    .desoslide-caption-title {
-        display    : inline-block;
-        position    : relative;
-        top         : -1px;
-        max-width  : 90%;
-        max-height : 24px;
-        font-size  : 14px;
-        overflow   : hidden;
-    }
-}
-
-.desoslide-controls {
-    display    : inline-block;
-    background : url(@sprite-path) no-repeat 0 0;
-
-    &.prev {
-        width               : @controls-width;
-        height              : @controls-height;
-        background-position : 0 -54px;
-    }
-
-    &.pause {
-        width               : @controls-width;
-        height              : @controls-height;
-        background-position : 0 -18px;
-    }
-
-    &.play {
-        width               : @controls-width;
-        height              : @controls-height;
-        background-position : 0 -36px;
-    }
-
-    &.next {
-        width               : @controls-width;
-        height              : @controls-height;
-        background-position : 0 0;
-    }
-}
+@sprite-path     : '../img/desoslide_controls.png';
+@controls-width  : 16px;
+@controls-height : 16px;
+
+.desoslide-wrapper {
+    position   : relative;
+    text-align : center;
+}
+
+.desoslide-controls-wrapper {
+    position    : relative;
+    float       : right;
+    height      : 36px;
+    line-height : 41px;
+    bottom      : 8px;
+    z-index     : 100;
+    opacity     : 1;
+
+    a {
+        &:hover {
+            opacity : 0.7;
+        }
+    }
+}
+
+.desoslide-overlay {
+    height           : 36px;
+    position         : absolute;
+    z-index          : 10;
+    text-align       : left;
+    color            : white;
+    font-weight      : bold;
+    background-color : black;
+    padding          : 8px;
+    opacity          : 0;
+
+    > a {
+        position    : relative;
+        top         : -1px;
+        color       : white;
+    }
+
+    .desoslide-caption-title {
+        display    : inline-block;
+        position    : relative;
+        top         : -1px;
+        max-width  : 90%;
+        max-height : 24px;
+        font-size  : 14px;
+        overflow   : hidden;
+    }
+}
+
+.desoslide-controls {
+    display    : inline-block;
+    background : url(@sprite-path) no-repeat 0 0;
+
+    &.prev {
+        width               : @controls-width;
+        height              : @controls-height;
+        background-position : 0 -54px;
+    }
+
+    &.pause {
+        width               : @controls-width;
+        height              : @controls-height;
+        background-position : 0 -18px;
+    }
+
+    &.play {
+        width               : @controls-width;
+        height              : @controls-height;
+        background-position : 0 -36px;
+    }
+
+    &.next {
+        width               : @controls-width;
+        height              : @controls-height;
+        background-position : 0 0;
+    }
+}
diff --git a/Exercise 1+2/desoslide-2.2.0/tests/index.html b/Exercise 1/desoslide-2.2.0/tests/index.html
similarity index 97%
rename from Exercise 1+2/desoslide-2.2.0/tests/index.html
rename to Exercise 1/desoslide-2.2.0/tests/index.html
index ab0dd3c..fe3c417 100644
--- a/Exercise 1+2/desoslide-2.2.0/tests/index.html	
+++ b/Exercise 1/desoslide-2.2.0/tests/index.html	
@@ -1,249 +1,249 @@
-<!DOCTYPE html>
-<html lang="en">
-    <head>
-        <meta charset="utf-8" />
-        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-        <meta name="description" content="Tests suite shows that desoSlide passes the basics specifications" />
-        <meta name="author" content="Sylvain, Jaoued" />
-
-        <title>Tests &middot; desoSlide, a slideshow jQuery plugin</title>
-
-        <link rel="icon" href="../doc/assets/img/favicon.png">
-
-        <!--[if lt IE 9]>
-            <script src="assets/js/vendor/html5shiv/html5shiv.min.js"></script>
-        <![endif]-->
-
-        <link rel="stylesheet" href="qunit/css/qunit.css">
-        <link rel="stylesheet" href="../doc/assets/css/app/main.css" />
-        <link rel="stylesheet" href="../doc/assets/css/app/views/tests.css" />
-
-        <script>
-            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-            ga('create', 'UA-27524593-3', 'sylouuu.github.io');
-            ga('send', 'pageview');
-        </script>
-    </head>
-    <body>
-
-        <!-- Header -->
-        <header class="navbar navbar-default navbar-fixed-top">
-            <div class="container">
-                <div class="navbar-header">
-                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
-                        <span class="sr-only">Toggle navigation</span>
-                        <i class="fa fa-align-justify"></i>
-                    </button>
-                    <a class="navbar-brand" href="../">
-                        <span class="brand-deso">deso</span><span class="brand-slide">Slide</span>
-                    </a>
-                </div>
-                <div class="navbar-collapse collapse">
-                    <ul class="nav navbar-nav navbar-right">
-                        <li>
-                            <a href="../doc/demo.html"><i class="fa fa-picture-o"></i> Demo</a>
-                        </li>
-                        <li>
-                            <a href="../doc/"><i class="fa fa-book"></i> Documentation</a>
-                        </li>
-                        <li>
-                            <a href="../doc/release-notes.html"><i class="fa fa-calendar"></i> Release Notes</a>
-                        </li>
-                        <li class="active">
-                            <a href="./"><i class="fa fa-check"></i> Tests</a>
-                        </li>
-                        <li>
-                            <a href="https://github.com/sylouuu/desoslide" target="_blank"><i class="fa fa-github"></i> Github</a>
-                        </li>
-                    </ul>
-                </div>
-            </div>
-        </header>
-
-        <!-- Introduction section -->
-        <section class="jumbotron">
-            <div class="container">
-                <div class="row">
-
-                    <!--[if lt IE 9]>
-                    <div class="container">
-                        <div class="row">
-                            <article class="dialog dialog-danger">
-                                <h3>Your browser is too old!</h3>
-                                <p class="lead">
-                                    desoSlide is not compatible with lower version of Internet Explorer 9.
-                                    <br/>
-                                    <a href="http://browsehappy.com/?locale=en">Upgrade</a> your browser today!
-                                </p>
-                            </article>
-                        </div>
-                    </div>
-                    <![endif]-->
-
-                    <article class="col-lg-12">
-                        <h1>Tests</h1>
-                        <p class="lead">Tests suite shows that desoSlide passes the basics specifications</p>
-                    </article>
-                </div>
-            </div>
-        </section>
-
-        <!-- Breadcrumb section -->
-        <section class="section-breadcrumb">
-            <div class="container">
-                <div class="row">
-                    <article class="col-lg-12">
-                        <p>
-                            Tests cover: 2.2.0
-                        </p>
-                    </article>
-                </div>
-            </div>
-        </section>
-
-        <!-- QUnit container -->
-        <section>
-            <div class="container">
-                <div class="row">
-                    <article id="qunit" class="col-lg-12"></article>
-                </div>
-            </div>
-        </section>
-
-        <div class="container">
-
-            <!-- Image -->
-            <div id="image_test1" class="test"></div>
-            <div id="image_test2" class="test"></div>
-            <div id="image_test3" class="test"></div>
-            <div id="image_test4" class="test"></div>
-            <div id="image_test5" class="test"></div>
-            <div id="image_test6" class="test"></div>
-            <div id="image_test7" class="test"></div>
-            <div id="image_test8" class="test"></div>
-            <div id="image_test9" class="test"></div>
-            <div id="image_test10" class="test"></div>
-            <div id="image_test11" class="test"></div>
-            <div id="image_test12" class="test"></div>
-            <div id="image_test13" class="test"></div>
-            <div id="image_test14" class="test"></div>
-            <div id="image_test15" class="test"></div>
-            <div id="image_test16" class="test"></div>
-            <div id="image_test17" class="test"></div>
-            <div id="image_test18" class="test"></div>
-
-            <!-- Thumbs OK -->
-            <ul id="alt_thumbs" class="test">
-                <li>
-                    <a href="../doc/assets/img/demos/demo1/bird.jpg"><img src="../doc/assets/img/demos/demo1/bird_thumb.jpg" alt="Bird"></a>
-                </li>
-                <li>
-                    <a href="../doc/assets/img/demos/demo1/flower.jpg"><img src="../doc/assets/img/demos/demo1/flower_thumb.jpg" alt="Flower"></a>
-                </li>
-            </ul>
-
-            <!-- Thumbs without `alt` -->
-            <ul id="no_alt_thumbs" class="test">
-                <li>
-                    <a href="../doc/assets/img/demos/demo1/bird.jpg"><img src="../doc/assets/img/demos/demo1/bird_thumb.jpg"></a>
-                </li>
-                <li>
-                    <a href="../doc/assets/img/demos/demo1/flower.jpg"><img src="../doc/assets/img/demos/demo1/flower_thumb.jpg"></a>
-                </li>
-            </ul>
-
-            <!-- Thumbs without `href` -->
-            <ul id="no_href_thumbs" class="test">
-                <li>
-                    <a><img src="../doc/assets/img/demos/demo1/bird_thumb.jpg" alt="Bird"></a>
-                </li>
-                <li>
-                    <a><img src="../doc/assets/img/demos/demo1/flower_thumb.jpg" alt="Flower"></a>
-                </li>
-            </ul>
-
-            <!-- Thumbs without `<img>` -->
-            <ul id="no_img_thumbs" class="test">
-                <li>
-                    <a href="../doc/assets/img/demos/demo1/bird.jpg"></a>
-                </li>
-                <li>
-                    <a href="../doc/assets/img/demos/demo1/flower.jpg"></a>
-                </li>
-            </ul>
-        </div>
-
-        <!-- Breadcrumb section -->
-        <section class="section-breadcrumb section-share">
-            <div class="container">
-                <div class="row">
-                    <article class="col-lg-12">
-                        <ul class="list-inline">
-                            <li>Share on</li>
-                            <li>
-                                <a class="btn btn-twitter"
-                                   href="https://twitter.com/share?url=http://sylouuu.github.io/desoslide/&amp;text=Take%20control%20of%20your%20slideshow%20with%20this%20powerful%20jQuery%20plugin&amp;via=sylwebdev">
-                                    <i class="fa fa-twitter"></i>
-                                </a>
-                            </li>
-                            <li>
-                                <a class="btn btn-facebook"
-                                   href="https://www.facebook.com/sharer/sharer.php?u=http://sylouuu.github.io/desoslide/">
-                                    <i class="fa fa-facebook"></i>
-                                </a>
-                            </li>
-                            <li>
-                                <a class="btn btn-google-plus"
-                                   href="https://plus.google.com/share?url=http://sylouuu.github.io/desoslide/">
-                                    <i class="fa fa-google-plus"></i>
-                                </a>
-                            </li>
-                        </ul>
-                    </article>
-                </div>
-            </div>
-        </section>
-
-        <!-- Footer section -->
-        <footer>
-            <div class="container">
-                <div class="row">
-
-                    <article class="col-lg-3 col-md-3 col-sm-4">
-                        <ul class="list-inline">
-                            <li>
-                                <a href="https://github.com/sylouuu/desoslide/blob/master/CONTRIBUTING.md" target="_blank">Contribute</a>
-                            </li>
-                            <li>
-                                <a href="https://github.com/sylouuu/desoslide/issues?state=open" target="_blank">Issues</a>
-                            </li>
-                        </ul>
-                    </article>
-
-                    <article class="col-lg-6 col-md-6 col-sm-5 text-center">
-                        <p>
-                        <a href="./" class="btn btn-danger back-to-top"><i class="fa fa-arrow-up"></i></a>
-                        </p>
-                    </article>
-
-                    <article class="col-lg-3 col-md-3 col-sm-3 text-right">
-                        <p>&copy; 2014-2016 desoSlide</p>
-                    </article>
-                </div>
-            </div>
-        </footer>
-
-        <script src="../doc/assets/js/vendor/jquery/jquery.js"></script>
-        <script src="../doc/assets/js/vendor/bootstrap/bootstrap.min.js"></script>
-
-        <script src="qunit/js/qunit.js"></script>
-
-        <script src="../src/js/jquery.desoslide.js"></script>
-        <script src="tests.js"></script>
-
-    </body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8" />
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+        <meta name="description" content="Tests suite shows that desoSlide passes the basics specifications" />
+        <meta name="author" content="Sylvain, Jaoued" />
+
+        <title>Tests &middot; desoSlide, a slideshow jQuery plugin</title>
+
+        <link rel="icon" href="../doc/assets/img/favicon.png">
+
+        <!--[if lt IE 9]>
+            <script src="assets/js/vendor/html5shiv/html5shiv.min.js"></script>
+        <![endif]-->
+
+        <link rel="stylesheet" href="qunit/css/qunit.css">
+        <link rel="stylesheet" href="../doc/assets/css/app/main.css" />
+        <link rel="stylesheet" href="../doc/assets/css/app/views/tests.css" />
+
+        <script>
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+            ga('create', 'UA-27524593-3', 'sylouuu.github.io');
+            ga('send', 'pageview');
+        </script>
+    </head>
+    <body>
+
+        <!-- Header -->
+        <header class="navbar navbar-default navbar-fixed-top">
+            <div class="container">
+                <div class="navbar-header">
+                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                        <span class="sr-only">Toggle navigation</span>
+                        <i class="fa fa-align-justify"></i>
+                    </button>
+                    <a class="navbar-brand" href="../">
+                        <span class="brand-deso">deso</span><span class="brand-slide">Slide</span>
+                    </a>
+                </div>
+                <div class="navbar-collapse collapse">
+                    <ul class="nav navbar-nav navbar-right">
+                        <li>
+                            <a href="../doc/demo.html"><i class="fa fa-picture-o"></i> Demo</a>
+                        </li>
+                        <li>
+                            <a href="../doc/"><i class="fa fa-book"></i> Documentation</a>
+                        </li>
+                        <li>
+                            <a href="../doc/release-notes.html"><i class="fa fa-calendar"></i> Release Notes</a>
+                        </li>
+                        <li class="active">
+                            <a href="./"><i class="fa fa-check"></i> Tests</a>
+                        </li>
+                        <li>
+                            <a href="https://github.com/sylouuu/desoslide" target="_blank"><i class="fa fa-github"></i> Github</a>
+                        </li>
+                    </ul>
+                </div>
+            </div>
+        </header>
+
+        <!-- Introduction section -->
+        <section class="jumbotron">
+            <div class="container">
+                <div class="row">
+
+                    <!--[if lt IE 9]>
+                    <div class="container">
+                        <div class="row">
+                            <article class="dialog dialog-danger">
+                                <h3>Your browser is too old!</h3>
+                                <p class="lead">
+                                    desoSlide is not compatible with lower version of Internet Explorer 9.
+                                    <br/>
+                                    <a href="http://browsehappy.com/?locale=en">Upgrade</a> your browser today!
+                                </p>
+                            </article>
+                        </div>
+                    </div>
+                    <![endif]-->
+
+                    <article class="col-lg-12">
+                        <h1>Tests</h1>
+                        <p class="lead">Tests suite shows that desoSlide passes the basics specifications</p>
+                    </article>
+                </div>
+            </div>
+        </section>
+
+        <!-- Breadcrumb section -->
+        <section class="section-breadcrumb">
+            <div class="container">
+                <div class="row">
+                    <article class="col-lg-12">
+                        <p>
+                            Tests cover: 2.2.0
+                        </p>
+                    </article>
+                </div>
+            </div>
+        </section>
+
+        <!-- QUnit container -->
+        <section>
+            <div class="container">
+                <div class="row">
+                    <article id="qunit" class="col-lg-12"></article>
+                </div>
+            </div>
+        </section>
+
+        <div class="container">
+
+            <!-- Image -->
+            <div id="image_test1" class="test"></div>
+            <div id="image_test2" class="test"></div>
+            <div id="image_test3" class="test"></div>
+            <div id="image_test4" class="test"></div>
+            <div id="image_test5" class="test"></div>
+            <div id="image_test6" class="test"></div>
+            <div id="image_test7" class="test"></div>
+            <div id="image_test8" class="test"></div>
+            <div id="image_test9" class="test"></div>
+            <div id="image_test10" class="test"></div>
+            <div id="image_test11" class="test"></div>
+            <div id="image_test12" class="test"></div>
+            <div id="image_test13" class="test"></div>
+            <div id="image_test14" class="test"></div>
+            <div id="image_test15" class="test"></div>
+            <div id="image_test16" class="test"></div>
+            <div id="image_test17" class="test"></div>
+            <div id="image_test18" class="test"></div>
+
+            <!-- Thumbs OK -->
+            <ul id="alt_thumbs" class="test">
+                <li>
+                    <a href="../doc/assets/img/demos/demo1/bird.jpg"><img src="../doc/assets/img/demos/demo1/bird_thumb.jpg" alt="Bird"></a>
+                </li>
+                <li>
+                    <a href="../doc/assets/img/demos/demo1/flower.jpg"><img src="../doc/assets/img/demos/demo1/flower_thumb.jpg" alt="Flower"></a>
+                </li>
+            </ul>
+
+            <!-- Thumbs without `alt` -->
+            <ul id="no_alt_thumbs" class="test">
+                <li>
+                    <a href="../doc/assets/img/demos/demo1/bird.jpg"><img src="../doc/assets/img/demos/demo1/bird_thumb.jpg"></a>
+                </li>
+                <li>
+                    <a href="../doc/assets/img/demos/demo1/flower.jpg"><img src="../doc/assets/img/demos/demo1/flower_thumb.jpg"></a>
+                </li>
+            </ul>
+
+            <!-- Thumbs without `href` -->
+            <ul id="no_href_thumbs" class="test">
+                <li>
+                    <a><img src="../doc/assets/img/demos/demo1/bird_thumb.jpg" alt="Bird"></a>
+                </li>
+                <li>
+                    <a><img src="../doc/assets/img/demos/demo1/flower_thumb.jpg" alt="Flower"></a>
+                </li>
+            </ul>
+
+            <!-- Thumbs without `<img>` -->
+            <ul id="no_img_thumbs" class="test">
+                <li>
+                    <a href="../doc/assets/img/demos/demo1/bird.jpg"></a>
+                </li>
+                <li>
+                    <a href="../doc/assets/img/demos/demo1/flower.jpg"></a>
+                </li>
+            </ul>
+        </div>
+
+        <!-- Breadcrumb section -->
+        <section class="section-breadcrumb section-share">
+            <div class="container">
+                <div class="row">
+                    <article class="col-lg-12">
+                        <ul class="list-inline">
+                            <li>Share on</li>
+                            <li>
+                                <a class="btn btn-twitter"
+                                   href="https://twitter.com/share?url=http://sylouuu.github.io/desoslide/&amp;text=Take%20control%20of%20your%20slideshow%20with%20this%20powerful%20jQuery%20plugin&amp;via=sylwebdev">
+                                    <i class="fa fa-twitter"></i>
+                                </a>
+                            </li>
+                            <li>
+                                <a class="btn btn-facebook"
+                                   href="https://www.facebook.com/sharer/sharer.php?u=http://sylouuu.github.io/desoslide/">
+                                    <i class="fa fa-facebook"></i>
+                                </a>
+                            </li>
+                            <li>
+                                <a class="btn btn-google-plus"
+                                   href="https://plus.google.com/share?url=http://sylouuu.github.io/desoslide/">
+                                    <i class="fa fa-google-plus"></i>
+                                </a>
+                            </li>
+                        </ul>
+                    </article>
+                </div>
+            </div>
+        </section>
+
+        <!-- Footer section -->
+        <footer>
+            <div class="container">
+                <div class="row">
+
+                    <article class="col-lg-3 col-md-3 col-sm-4">
+                        <ul class="list-inline">
+                            <li>
+                                <a href="https://github.com/sylouuu/desoslide/blob/master/CONTRIBUTING.md" target="_blank">Contribute</a>
+                            </li>
+                            <li>
+                                <a href="https://github.com/sylouuu/desoslide/issues?state=open" target="_blank">Issues</a>
+                            </li>
+                        </ul>
+                    </article>
+
+                    <article class="col-lg-6 col-md-6 col-sm-5 text-center">
+                        <p>
+                        <a href="./" class="btn btn-danger back-to-top"><i class="fa fa-arrow-up"></i></a>
+                        </p>
+                    </article>
+
+                    <article class="col-lg-3 col-md-3 col-sm-3 text-right">
+                        <p>&copy; 2014-2016 desoSlide</p>
+                    </article>
+                </div>
+            </div>
+        </footer>
+
+        <script src="../doc/assets/js/vendor/jquery/jquery.js"></script>
+        <script src="../doc/assets/js/vendor/bootstrap/bootstrap.min.js"></script>
+
+        <script src="qunit/js/qunit.js"></script>
+
+        <script src="../src/js/jquery.desoslide.js"></script>
+        <script src="tests.js"></script>
+
+    </body>
+</html>
diff --git a/Exercise 1+2/desoslide-2.2.0/tests/qunit/css/qunit.css b/Exercise 1/desoslide-2.2.0/tests/qunit/css/qunit.css
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/tests/qunit/css/qunit.css
rename to Exercise 1/desoslide-2.2.0/tests/qunit/css/qunit.css
diff --git a/Exercise 1+2/desoslide-2.2.0/tests/qunit/js/qunit.js b/Exercise 1/desoslide-2.2.0/tests/qunit/js/qunit.js
similarity index 100%
rename from Exercise 1+2/desoslide-2.2.0/tests/qunit/js/qunit.js
rename to Exercise 1/desoslide-2.2.0/tests/qunit/js/qunit.js
diff --git a/Exercise 1+2/desoslide-2.2.0/tests/tests.js b/Exercise 1/desoslide-2.2.0/tests/tests.js
similarity index 96%
rename from Exercise 1+2/desoslide-2.2.0/tests/tests.js
rename to Exercise 1/desoslide-2.2.0/tests/tests.js
index 2671ef2..9727c56 100644
--- a/Exercise 1+2/desoslide-2.2.0/tests/tests.js	
+++ b/Exercise 1/desoslide-2.2.0/tests/tests.js	
@@ -1,353 +1,353 @@
-/*jslint vars: true, white: true*/
-/*global $, jQuery, ok, test*/
-$(function () {
-
-    'use strict';
-
-    $('a.back-to-top').on('click', function (e) {
-        e.preventDefault();
-
-        $('html, body').stop().animate({
-            scrollTop: $('html, body').offset().top
-        }, 1000);
-    });
-
-    // Thumbs tests
-    // -------------------------------------------------------------------------
-    // -------------------------------------------------------------------------
-
-    var thumbs_test1, thumbs_test2, thumbs_test3, thumbs_test4, thumbs_test5, thumbs_test6;
-
-    $('#image_test1').desoSlide({
-        events: {
-            onError: function () {
-                thumbs_test1 = 'error';
-            }
-        }
-    });
-
-    $('#image_test2').desoSlide({
-        thumbs: $('#no_thumbs').find('a'),
-        events: {
-            onError: function () {
-                thumbs_test2 = 'error';
-            }
-        }
-    });
-
-    $('#image_test13').desoSlide({
-        thumbs: $('#no_href_thumbs').find('a'),
-        events: {
-            onError: function () {
-                thumbs_test3 = 'error';
-            }
-        }
-    });
-
-    $('#image_test14').desoSlide({
-        thumbs: $('#no_img_thumbs').find('a'),
-        events: {
-            onError: function () {
-                thumbs_test4 = 'error';
-            }
-        }
-    });
-
-    $('#image_test17').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        events: {
-            onSuccess: function () {
-                thumbs_test5 = 'success';
-            }
-        }
-    });
-
-    $('#image_test18').desoSlide({
-        thumbs: '#alt_thumbs li > a',
-        events: {
-            onSuccess: function () {
-                thumbs_test6 = 'success';
-            }
-        }
-    });
-
-    test('`thumbs`', function () {
-
-        ok(thumbs_test1 === 'error', 'option doesn\'t exist: error expected');
-        ok(thumbs_test2 === 'error', 'selector doesn\'t exist: error expected');
-        ok(thumbs_test3 === 'error', '`href` attribute on `<a>` doesn\'t exist: error expected');
-        ok(thumbs_test4 === 'error', 'doesn\'t contain <img> tag as a child: error expected');
-        ok(thumbs_test5 === 'success', 'has an accepted value (jQuery selector)');
-        ok(thumbs_test6 === 'success', 'has an accepted value (string selector)');
-
-    });
-
-    // "Overlay" tests
-    // -------------------------------------------------------------------------
-    // -------------------------------------------------------------------------
-
-    var overlay_test1, overlay_test2;
-
-    $('#image_test3').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        overlay: 'fail',
-        events: {
-            onError: function () {
-                overlay_test1 = 'error';
-            }
-        }
-    });
-
-    $('#image_test4').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        overlay: 'always',
-        events: {
-            onSuccess: function () {
-                overlay_test2 = 'success';
-            }
-        }
-    });
-
-    test('`overlay` option', function () {
-
-        ok(overlay_test1 === 'error', 'has a wrong value: error expected');
-        ok(overlay_test2 === 'success', 'has an accepted value: success expected');
-
-    });
-
-    // "alt" attribute tests
-    // -------------------------------------------------------------------------
-    // -------------------------------------------------------------------------
-
-    var alt_test1, alt_test2;
-
-    $('#image_test5').desoSlide({
-        thumbs: $('#no_alt_thumbs').find('li > a'),
-        events: {
-            onWarning: function () {
-                alt_test1 = 'warning';
-            }
-        }
-    });
-
-    $('#image_test6').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        events: {
-            onSuccess: function () {
-                alt_test2 = 'success';
-            }
-        }
-    });
-
-    test('`alt` attribute', function () {
-
-        ok(alt_test1 === 'warning', 'isn\'t specified: warning expected');
-        ok(alt_test2 === 'success', 'is specified: success expected');
-
-    });
-
-    // "First" tests
-    // -------------------------------------------------------------------------
-    // -------------------------------------------------------------------------
-
-    var first_test1, first_test2;
-
-    $('#image_test7').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        first: 4,
-        events: {
-            onError: function () {
-                first_test1 = 'error';
-            }
-        }
-    });
-
-    $('#image_test8').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        first: 1,
-        events: {
-            onSuccess: function () {
-                first_test2 = 'success';
-            }
-        }
-    });
-
-    test('`first` option', function () {
-
-        ok(first_test1 === 'error', 'has a wrong value: error expected');
-        ok(first_test2 === 'success', 'has an accepted value: success expected');
-
-    });
-
-    // "Effect" tests
-    // -------------------------------------------------------------------------
-    // -------------------------------------------------------------------------
-
-    var effect_test1, effect_test2, effect_test3;
-
-    $('#image_test9').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        effect: {
-            provider: 'fail',
-            name: 'fade'
-        },
-        events: {
-            onError: function () {
-                effect_test1 = 'error';
-            }
-        }
-    });
-
-    $('#image_test10').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        effect: {
-            provider: 'magic',
-            name: 'fail'
-        },
-        events: {
-            onError: function () {
-                effect_test2 = 'error';
-            }
-        }
-    });
-
-    $('#image_test11').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        effect: {
-            provider: 'animate',
-            name: 'rotate'
-        },
-        events: {
-            onSuccess: function () {
-                effect_test3 = 'success';
-            }
-        }
-    });
-
-    test('`effect` option', function () {
-
-        ok(effect_test1 === 'error', 'has a bad `provider` value: error expected');
-        ok(effect_test2 === 'error', 'has a bad `name` value: success expected');
-        ok(effect_test3 === 'success', 'has an accepted value: success expected');
-
-    });
-
-    // Public methods
-    // -------------------------------------------------------------------------
-    // -------------------------------------------------------------------------
-
-    // getThumbs()
-    // -------------------------------------------------------------------------
-
-    var get_thumbs_test1, get_thumbs_test2, get_thumbs_test3;
-
-    get_thumbs_test1 = $('#image_test4').desoSlide('getThumbs');
-    get_thumbs_test2 = $('#image_test4').desoSlide('getThumbs', 1);
-    get_thumbs_test3 = $('#image_test4').desoSlide('getThumbs', 10);
-
-    test('getThumbs method', function () {
-
-        ok(get_thumbs_test1.length === 2, 'the thumbs object has a size of 2');
-        ok(get_thumbs_test2.alt === 'Flower', 'the wanted thumb has been retrieved successfully');
-        ok(get_thumbs_test3 === null, 'returns `null`');
-
-    });
-
-    // setEffect()
-    // -------------------------------------------------------------------------
-
-    var set_effect_test1, set_effect_test2, set_effect_test3, set_effect_test4, set_effect_test5, set_effect_test6, set_effect_test7, set_effect_test8;
-
-    set_effect_test1 = $('#image_test4').desoSlide('setEffect', { provider: 'animate', name: 'random' });
-    set_effect_test2 = $('#image_test4').desoSlide('setEffect', { provider: 'magic', name: 'random' });
-    set_effect_test3 = $('#image_test4').desoSlide('setEffect', { provider: 'magic', name: 'puff' });
-    set_effect_test4 = $('#image_test4').desoSlide('setEffect', { provider: 'fail', name: 'puff' });
-    set_effect_test5 = $('#image_test4').desoSlide('setEffect', { provider: 'animate', name: 'fail' });
-    set_effect_test6 = $('#image_test4').desoSlide('setEffect');
-    set_effect_test7 = $('#image_test4').desoSlide('setEffect', {});
-    set_effect_test8 = $('#image_test4').desoSlide('setEffect', 'none');
-
-    test('setEffect method', function () {
-
-        ok(set_effect_test1.provider === 'animate' && typeof set_effect_test1.name === 'string', 'has an accepted provider and a random effect');
-        ok(set_effect_test2.provider === 'magic' && typeof set_effect_test2.name === 'string', 'has an accepted provider and a random effect');
-        ok(set_effect_test3.provider === 'magic' && set_effect_test3.name === 'puff', 'has an accepted provider and effect');
-        ok(set_effect_test4.provider === 'animate' && set_effect_test4.name === 'fade', 'has a bad provider: default provider and effect used');
-        ok(set_effect_test5.provider === 'animate' && set_effect_test5.name === 'fade', 'has a bad effect: default provider and effect used');
-        ok(set_effect_test6.provider === 'animate' && set_effect_test6.name === 'fade', 'has a bad parameter: default provider and effect used');
-        ok(set_effect_test7.provider === 'animate' && set_effect_test7.name === 'fade', 'has a bad parameter: default provider and effect used');
-        ok(set_effect_test8.provider === null && set_effect_test8.name === 'none', 'has a none effect');
-
-    });
-
-    // isPlaying()
-    // -------------------------------------------------------------------------
-
-    var is_playing_test1, is_playing_test2;
-
-    $('#image_test15').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a')
-    });
-
-    is_playing_test1 = $('#image_test15').desoSlide('isPlaying');
-
-    $('#image_test16').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        auto: {
-            start: true
-        }
-    });
-
-    is_playing_test2 = $('#image_test16').desoSlide('isPlaying');
-
-    test('isPlaying method', function () {
-
-        ok(is_playing_test1 === false, 'must be false');
-        ok(is_playing_test2 === true, 'must be true');
-
-    });
-
-    // Events
-    // -------------------------------------------------------------------------
-
-    var events_test1, events_test2, events_test3, events_test4, events_test5;
-
-    $('#image_test12').desoSlide({
-        thumbs: $('#alt_thumbs').find('li > a'),
-        events: {
-            onThumbClick: function () {
-                events_test1 = 'ok';
-            },
-            onImageClick: function () {
-                events_test2 = 'ok';
-            },
-            onPrev: function () {
-                events_test3 = 'ok';
-            },
-            onPlay: function () {
-                events_test4 = 'ok';
-            },
-            onNext: function () {
-                events_test5 = 'ok';
-            }
-        }
-    });
-
-    $('#alt_thumbs').find('li:first > a').trigger('click');
-    $('#image_test12').find('img:first').trigger('click');
-
-    $('#image_test12').desoSlide('goPrev');
-    $('#image_test12').desoSlide('play');
-    $('#image_test12').desoSlide('goNext');
-
-    test('events', function () {
-
-        ok(events_test1 === 'ok', 'onThumbClick');
-        ok(events_test2 === 'ok', 'onImageClick');
-        ok(events_test3 === 'ok', 'onPrev');
-        ok(events_test4 === 'ok', 'onPlay');
-        ok(events_test5 === 'ok', 'onNext');
-
-    });
-
-});
+/*jslint vars: true, white: true*/
+/*global $, jQuery, ok, test*/
+$(function () {
+
+    'use strict';
+
+    $('a.back-to-top').on('click', function (e) {
+        e.preventDefault();
+
+        $('html, body').stop().animate({
+            scrollTop: $('html, body').offset().top
+        }, 1000);
+    });
+
+    // Thumbs tests
+    // -------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
+
+    var thumbs_test1, thumbs_test2, thumbs_test3, thumbs_test4, thumbs_test5, thumbs_test6;
+
+    $('#image_test1').desoSlide({
+        events: {
+            onError: function () {
+                thumbs_test1 = 'error';
+            }
+        }
+    });
+
+    $('#image_test2').desoSlide({
+        thumbs: $('#no_thumbs').find('a'),
+        events: {
+            onError: function () {
+                thumbs_test2 = 'error';
+            }
+        }
+    });
+
+    $('#image_test13').desoSlide({
+        thumbs: $('#no_href_thumbs').find('a'),
+        events: {
+            onError: function () {
+                thumbs_test3 = 'error';
+            }
+        }
+    });
+
+    $('#image_test14').desoSlide({
+        thumbs: $('#no_img_thumbs').find('a'),
+        events: {
+            onError: function () {
+                thumbs_test4 = 'error';
+            }
+        }
+    });
+
+    $('#image_test17').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        events: {
+            onSuccess: function () {
+                thumbs_test5 = 'success';
+            }
+        }
+    });
+
+    $('#image_test18').desoSlide({
+        thumbs: '#alt_thumbs li > a',
+        events: {
+            onSuccess: function () {
+                thumbs_test6 = 'success';
+            }
+        }
+    });
+
+    test('`thumbs`', function () {
+
+        ok(thumbs_test1 === 'error', 'option doesn\'t exist: error expected');
+        ok(thumbs_test2 === 'error', 'selector doesn\'t exist: error expected');
+        ok(thumbs_test3 === 'error', '`href` attribute on `<a>` doesn\'t exist: error expected');
+        ok(thumbs_test4 === 'error', 'doesn\'t contain <img> tag as a child: error expected');
+        ok(thumbs_test5 === 'success', 'has an accepted value (jQuery selector)');
+        ok(thumbs_test6 === 'success', 'has an accepted value (string selector)');
+
+    });
+
+    // "Overlay" tests
+    // -------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
+
+    var overlay_test1, overlay_test2;
+
+    $('#image_test3').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        overlay: 'fail',
+        events: {
+            onError: function () {
+                overlay_test1 = 'error';
+            }
+        }
+    });
+
+    $('#image_test4').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        overlay: 'always',
+        events: {
+            onSuccess: function () {
+                overlay_test2 = 'success';
+            }
+        }
+    });
+
+    test('`overlay` option', function () {
+
+        ok(overlay_test1 === 'error', 'has a wrong value: error expected');
+        ok(overlay_test2 === 'success', 'has an accepted value: success expected');
+
+    });
+
+    // "alt" attribute tests
+    // -------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
+
+    var alt_test1, alt_test2;
+
+    $('#image_test5').desoSlide({
+        thumbs: $('#no_alt_thumbs').find('li > a'),
+        events: {
+            onWarning: function () {
+                alt_test1 = 'warning';
+            }
+        }
+    });
+
+    $('#image_test6').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        events: {
+            onSuccess: function () {
+                alt_test2 = 'success';
+            }
+        }
+    });
+
+    test('`alt` attribute', function () {
+
+        ok(alt_test1 === 'warning', 'isn\'t specified: warning expected');
+        ok(alt_test2 === 'success', 'is specified: success expected');
+
+    });
+
+    // "First" tests
+    // -------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
+
+    var first_test1, first_test2;
+
+    $('#image_test7').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        first: 4,
+        events: {
+            onError: function () {
+                first_test1 = 'error';
+            }
+        }
+    });
+
+    $('#image_test8').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        first: 1,
+        events: {
+            onSuccess: function () {
+                first_test2 = 'success';
+            }
+        }
+    });
+
+    test('`first` option', function () {
+
+        ok(first_test1 === 'error', 'has a wrong value: error expected');
+        ok(first_test2 === 'success', 'has an accepted value: success expected');
+
+    });
+
+    // "Effect" tests
+    // -------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
+
+    var effect_test1, effect_test2, effect_test3;
+
+    $('#image_test9').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        effect: {
+            provider: 'fail',
+            name: 'fade'
+        },
+        events: {
+            onError: function () {
+                effect_test1 = 'error';
+            }
+        }
+    });
+
+    $('#image_test10').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        effect: {
+            provider: 'magic',
+            name: 'fail'
+        },
+        events: {
+            onError: function () {
+                effect_test2 = 'error';
+            }
+        }
+    });
+
+    $('#image_test11').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        effect: {
+            provider: 'animate',
+            name: 'rotate'
+        },
+        events: {
+            onSuccess: function () {
+                effect_test3 = 'success';
+            }
+        }
+    });
+
+    test('`effect` option', function () {
+
+        ok(effect_test1 === 'error', 'has a bad `provider` value: error expected');
+        ok(effect_test2 === 'error', 'has a bad `name` value: success expected');
+        ok(effect_test3 === 'success', 'has an accepted value: success expected');
+
+    });
+
+    // Public methods
+    // -------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
+
+    // getThumbs()
+    // -------------------------------------------------------------------------
+
+    var get_thumbs_test1, get_thumbs_test2, get_thumbs_test3;
+
+    get_thumbs_test1 = $('#image_test4').desoSlide('getThumbs');
+    get_thumbs_test2 = $('#image_test4').desoSlide('getThumbs', 1);
+    get_thumbs_test3 = $('#image_test4').desoSlide('getThumbs', 10);
+
+    test('getThumbs method', function () {
+
+        ok(get_thumbs_test1.length === 2, 'the thumbs object has a size of 2');
+        ok(get_thumbs_test2.alt === 'Flower', 'the wanted thumb has been retrieved successfully');
+        ok(get_thumbs_test3 === null, 'returns `null`');
+
+    });
+
+    // setEffect()
+    // -------------------------------------------------------------------------
+
+    var set_effect_test1, set_effect_test2, set_effect_test3, set_effect_test4, set_effect_test5, set_effect_test6, set_effect_test7, set_effect_test8;
+
+    set_effect_test1 = $('#image_test4').desoSlide('setEffect', { provider: 'animate', name: 'random' });
+    set_effect_test2 = $('#image_test4').desoSlide('setEffect', { provider: 'magic', name: 'random' });
+    set_effect_test3 = $('#image_test4').desoSlide('setEffect', { provider: 'magic', name: 'puff' });
+    set_effect_test4 = $('#image_test4').desoSlide('setEffect', { provider: 'fail', name: 'puff' });
+    set_effect_test5 = $('#image_test4').desoSlide('setEffect', { provider: 'animate', name: 'fail' });
+    set_effect_test6 = $('#image_test4').desoSlide('setEffect');
+    set_effect_test7 = $('#image_test4').desoSlide('setEffect', {});
+    set_effect_test8 = $('#image_test4').desoSlide('setEffect', 'none');
+
+    test('setEffect method', function () {
+
+        ok(set_effect_test1.provider === 'animate' && typeof set_effect_test1.name === 'string', 'has an accepted provider and a random effect');
+        ok(set_effect_test2.provider === 'magic' && typeof set_effect_test2.name === 'string', 'has an accepted provider and a random effect');
+        ok(set_effect_test3.provider === 'magic' && set_effect_test3.name === 'puff', 'has an accepted provider and effect');
+        ok(set_effect_test4.provider === 'animate' && set_effect_test4.name === 'fade', 'has a bad provider: default provider and effect used');
+        ok(set_effect_test5.provider === 'animate' && set_effect_test5.name === 'fade', 'has a bad effect: default provider and effect used');
+        ok(set_effect_test6.provider === 'animate' && set_effect_test6.name === 'fade', 'has a bad parameter: default provider and effect used');
+        ok(set_effect_test7.provider === 'animate' && set_effect_test7.name === 'fade', 'has a bad parameter: default provider and effect used');
+        ok(set_effect_test8.provider === null && set_effect_test8.name === 'none', 'has a none effect');
+
+    });
+
+    // isPlaying()
+    // -------------------------------------------------------------------------
+
+    var is_playing_test1, is_playing_test2;
+
+    $('#image_test15').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a')
+    });
+
+    is_playing_test1 = $('#image_test15').desoSlide('isPlaying');
+
+    $('#image_test16').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        auto: {
+            start: true
+        }
+    });
+
+    is_playing_test2 = $('#image_test16').desoSlide('isPlaying');
+
+    test('isPlaying method', function () {
+
+        ok(is_playing_test1 === false, 'must be false');
+        ok(is_playing_test2 === true, 'must be true');
+
+    });
+
+    // Events
+    // -------------------------------------------------------------------------
+
+    var events_test1, events_test2, events_test3, events_test4, events_test5;
+
+    $('#image_test12').desoSlide({
+        thumbs: $('#alt_thumbs').find('li > a'),
+        events: {
+            onThumbClick: function () {
+                events_test1 = 'ok';
+            },
+            onImageClick: function () {
+                events_test2 = 'ok';
+            },
+            onPrev: function () {
+                events_test3 = 'ok';
+            },
+            onPlay: function () {
+                events_test4 = 'ok';
+            },
+            onNext: function () {
+                events_test5 = 'ok';
+            }
+        }
+    });
+
+    $('#alt_thumbs').find('li:first > a').trigger('click');
+    $('#image_test12').find('img:first').trigger('click');
+
+    $('#image_test12').desoSlide('goPrev');
+    $('#image_test12').desoSlide('play');
+    $('#image_test12').desoSlide('goNext');
+
+    test('events', function () {
+
+        ok(events_test1 === 'ok', 'onThumbClick');
+        ok(events_test2 === 'ok', 'onImageClick');
+        ok(events_test3 === 'ok', 'onPrev');
+        ok(events_test4 === 'ok', 'onPlay');
+        ok(events_test5 === 'ok', 'onNext');
+
+    });
+
+});
diff --git a/Exercise 1+2/home.html b/Exercise 1/home.html
similarity index 95%
rename from Exercise 1+2/home.html
rename to Exercise 1/home.html
index 8c43438..d08096e 100644
--- a/Exercise 1+2/home.html	
+++ b/Exercise 1/home.html	
@@ -1,18 +1,18 @@
-<!doctype html>
-<html lang="en">
-<head>
-  <meta charset="utf-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <title>Home page</title>
-  <link rel="stylesheet" href="style.css">
-  <script src="script.js"></script>
-
-</head>
-<body>
-
-<div id="home-div">
-    <img src="image5-small.jpg">
-</div>
- 
-</body>
+<!doctype html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <title>Home page</title>
+  <link rel="stylesheet" href="style.css">
+  <script src="script.js"></script>
+
+</head>
+<body>
+
+<div id="home-div">
+    <img src="image5-small.jpg">
+</div>
+ 
+</body>
 </html>
\ No newline at end of file
diff --git a/Exercise 1+2/image5-small.jpg b/Exercise 1/image5-small.jpg
similarity index 100%
rename from Exercise 1+2/image5-small.jpg
rename to Exercise 1/image5-small.jpg
diff --git a/Exercise 1+2/images/image1-small.jpg b/Exercise 1/images/image1-small.jpg
similarity index 100%
rename from Exercise 1+2/images/image1-small.jpg
rename to Exercise 1/images/image1-small.jpg
diff --git a/Exercise 1+2/images/image1.jpg b/Exercise 1/images/image1.jpg
similarity index 100%
rename from Exercise 1+2/images/image1.jpg
rename to Exercise 1/images/image1.jpg
diff --git a/Exercise 1+2/images/image2-small.jpg b/Exercise 1/images/image2-small.jpg
similarity index 100%
rename from Exercise 1+2/images/image2-small.jpg
rename to Exercise 1/images/image2-small.jpg
diff --git a/Exercise 1+2/images/image2.jpg b/Exercise 1/images/image2.jpg
similarity index 100%
rename from Exercise 1+2/images/image2.jpg
rename to Exercise 1/images/image2.jpg
diff --git a/Exercise 1+2/images/image3-small.jpg b/Exercise 1/images/image3-small.jpg
similarity index 100%
rename from Exercise 1+2/images/image3-small.jpg
rename to Exercise 1/images/image3-small.jpg
diff --git a/Exercise 1+2/images/image3.jpg b/Exercise 1/images/image3.jpg
similarity index 100%
rename from Exercise 1+2/images/image3.jpg
rename to Exercise 1/images/image3.jpg
diff --git a/Exercise 1+2/images/image4-small.jpg b/Exercise 1/images/image4-small.jpg
similarity index 100%
rename from Exercise 1+2/images/image4-small.jpg
rename to Exercise 1/images/image4-small.jpg
diff --git a/Exercise 1+2/images/image4.jpg b/Exercise 1/images/image4.jpg
similarity index 100%
rename from Exercise 1+2/images/image4.jpg
rename to Exercise 1/images/image4.jpg
diff --git a/Exercise 1+2/images/image5-small.jpg b/Exercise 1/images/image5-small.jpg
similarity index 100%
rename from Exercise 1+2/images/image5-small.jpg
rename to Exercise 1/images/image5-small.jpg
diff --git a/Exercise 1+2/images/image5.jpg b/Exercise 1/images/image5.jpg
similarity index 100%
rename from Exercise 1+2/images/image5.jpg
rename to Exercise 1/images/image5.jpg
diff --git a/Exercise 1+2/images/image6-small.jpg b/Exercise 1/images/image6-small.jpg
similarity index 100%
rename from Exercise 1+2/images/image6-small.jpg
rename to Exercise 1/images/image6-small.jpg
diff --git a/Exercise 1+2/images/image6.jpg b/Exercise 1/images/image6.jpg
similarity index 100%
rename from Exercise 1+2/images/image6.jpg
rename to Exercise 1/images/image6.jpg
diff --git a/Exercise 1+2/images/image7-small.jpg b/Exercise 1/images/image7-small.jpg
similarity index 100%
rename from Exercise 1+2/images/image7-small.jpg
rename to Exercise 1/images/image7-small.jpg
diff --git a/Exercise 1+2/images/image7.jpg b/Exercise 1/images/image7.jpg
similarity index 100%
rename from Exercise 1+2/images/image7.jpg
rename to Exercise 1/images/image7.jpg
diff --git a/Exercise 1+2/images/image8-small.jpg b/Exercise 1/images/image8-small.jpg
similarity index 100%
rename from Exercise 1+2/images/image8-small.jpg
rename to Exercise 1/images/image8-small.jpg
diff --git a/Exercise 1+2/images/image8.jpg b/Exercise 1/images/image8.jpg
similarity index 100%
rename from Exercise 1+2/images/image8.jpg
rename to Exercise 1/images/image8.jpg
diff --git a/Exercise 1+2/index.html b/Exercise 1/index.html
similarity index 97%
rename from Exercise 1+2/index.html
rename to Exercise 1/index.html
index a1e3aab..29d69c5 100644
--- a/Exercise 1+2/index.html	
+++ b/Exercise 1/index.html	
@@ -1,45 +1,45 @@
-<!doctype html>
-
-<html lang="en">
-<head>
-  <meta charset="utf-8">
-
-  <title>Assignment 4 - E1</title>
-  <link rel="stylesheet" href="style.css">
-  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
-  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
-  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-  <script src="script.js"></script>
-
-</head>
-
-<body>
-  <div class="wrapper">
-        <div class="menu-container">
-            <ul id="menu">
-                <li><div><a href="home.html" target="index-content">Home</a></div></li>
-                <li>-</li>
-                <li><div><a href="slideshow.html" target ="index-content">Slideshow</a></div></li>
-                <li>-</li>
-                <li><div>jQuery UI</div>
-                  <ul>
-                    <li><div><a href="accordion.html" target ="index-content">Accordion</a></div></li>
-                    <li>-</li>
-                    <li><div><a href="tabs.html" target ="index-content">Tabs </a></div></li>
-                    <li>-</li>
-                    <li><div><a href="selectable.html" target ="index-content">Selectable</a></div></li>
-                    <li>-</li>
-                    <li><div><a href="sortable.html" target ="index-content">Sortable</a></div></li>
-                                       
-                  </ul>
-                </li>
-              </ul>
-            </div>
-              
-          <div class="index-content-parent">
-            <iframe name="index-content" src="home.html"></iframe>
-          </div>
-        
-    </div>
-</body>
+<!doctype html>
+
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+
+  <title>Assignment 4 - E1</title>
+  <link rel="stylesheet" href="style.css">
+  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
+  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
+  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
+  <script src="script.js"></script>
+
+</head>
+
+<body>
+  <div class="wrapper">
+        <div class="menu-container">
+            <ul id="menu">
+                <li><div><a href="home.html" target="index-content">Home</a></div></li>
+                <li>-</li>
+                <li><div><a href="slideshow.html" target ="index-content">Slideshow</a></div></li>
+                <li>-</li>
+                <li><div>jQuery UI</div>
+                  <ul>
+                    <li><div><a href="accordion.html" target ="index-content">Accordion</a></div></li>
+                    <li>-</li>
+                    <li><div><a href="tabs.html" target ="index-content">Tabs </a></div></li>
+                    <li>-</li>
+                    <li><div><a href="selectable.html" target ="index-content">Selectable</a></div></li>
+                    <li>-</li>
+                    <li><div><a href="sortable.html" target ="index-content">Sortable</a></div></li>
+                                       
+                  </ul>
+                </li>
+              </ul>
+            </div>
+              
+          <div class="index-content-parent">
+            <iframe name="index-content" src="home.html"></iframe>
+          </div>
+        
+    </div>
+</body>
 </html>
\ No newline at end of file
diff --git a/Exercise 1+2/script.js b/Exercise 1/script.js
similarity index 94%
rename from Exercise 1+2/script.js
rename to Exercise 1/script.js
index 5ce689a..32486a3 100644
--- a/Exercise 1+2/script.js	
+++ b/Exercise 1/script.js	
@@ -1,34 +1,34 @@
-$( document ).ready(function() {
-  
-  $( function() {
-      $( "#accordion" ).accordion();
-    } );
-
-  $( function() {
-    $( "#tabs" ).tabs();
-  } );
-
-  $( function() {
-    $( "#menu" ).menu();
-  } );
-
-  $( function() {
-    $( "#sortable" ).sortable();
-    $( "#sortable" ).disableSelection();
-  } );
-
-  $( function() {
-    $( "#selectable" ).selectable();
-  } );
-
-  $(window).load(function() {
-    $('#slideshow').desoSlide({
-      thumbs: $('#slideshow_thumbs li > a'),
-      thumbEvent: 'mouseover',
-      first: 0
-    });
-  });
-
-});
-
-
+$( document ).ready(function() {
+  
+  $( function() {
+      $( "#accordion" ).accordion();
+    } );
+
+  $( function() {
+    $( "#tabs" ).tabs();
+  } );
+
+  $( function() {
+    $( "#menu" ).menu();
+  } );
+
+  $( function() {
+    $( "#sortable" ).sortable();
+    $( "#sortable" ).disableSelection();
+  } );
+
+  $( function() {
+    $( "#selectable" ).selectable();
+  } );
+
+  $(window).load(function() {
+    $('#slideshow').desoSlide({
+      thumbs: $('#slideshow_thumbs li > a'),
+      thumbEvent: 'mouseover',
+      first: 0
+    });
+  });
+
+});
+
+
diff --git a/Exercise 1+2/selectable.html b/Exercise 1/selectable.html
similarity index 96%
rename from Exercise 1+2/selectable.html
rename to Exercise 1/selectable.html
index 157276c..c5c388d 100644
--- a/Exercise 1+2/selectable.html	
+++ b/Exercise 1/selectable.html	
@@ -1,29 +1,29 @@
-<!doctype html>
-<html lang="en">
-<head>
-  <meta charset="utf-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <title>Selectable page</title>
-  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
-  <link rel="stylesheet" href="style.css">
-
-  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
-  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-  <script src="script.js"></script>
-
-</head>
-<body>
- 
-<ol id="selectable">
-  <li class="ui-widget-content">Hamburger</li>
-  <li class="ui-widget-content">Pizza</li>
-  <li class="ui-widget-content">Falafel with bread</li>
-  <li class="ui-widget-content">Fish and chips</li>
-  <li class="ui-widget-content">Pasta carbonara</li>
-  <li class="ui-widget-content">Sushi</li>
-  <li class="ui-widget-content">Tacos</li>
-</ol>
- 
- 
-</body>
+<!doctype html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <title>Selectable page</title>
+  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
+  <link rel="stylesheet" href="style.css">
+
+  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
+  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
+  <script src="script.js"></script>
+
+</head>
+<body>
+ 
+<ol id="selectable">
+  <li class="ui-widget-content">Hamburger</li>
+  <li class="ui-widget-content">Pizza</li>
+  <li class="ui-widget-content">Falafel with bread</li>
+  <li class="ui-widget-content">Fish and chips</li>
+  <li class="ui-widget-content">Pasta carbonara</li>
+  <li class="ui-widget-content">Sushi</li>
+  <li class="ui-widget-content">Tacos</li>
+</ol>
+ 
+ 
+</body>
 </html>
\ No newline at end of file
diff --git a/Exercise 1+2/slideshow.html b/Exercise 1/slideshow.html
similarity index 97%
rename from Exercise 1+2/slideshow.html
rename to Exercise 1/slideshow.html
index e9f053f..35c1671 100644
--- a/Exercise 1+2/slideshow.html	
+++ b/Exercise 1/slideshow.html	
@@ -1,57 +1,57 @@
-<!doctype html>
-<html lang="en">
-<head>
-  <meta charset="utf-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <title>Slideshow page</title>
-  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
-  <link rel="stylesheet" href="\Exercise 1\desoslide-2.2.0\doc\assets\css\vendor\animate\animate.min.css">
-  <link href="\Exercise 1\desoslide-2.2.0\dist\css\jquery.desoslide.css" rel="stylesheet">
-  <link href="\Exercise 1\desoslide-2.2.0\dist\css\jquery.desoslide.min.css" rel="stylesheet">
-  <link rel="stylesheet" href="style.css">
-
-  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
-  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-  <script src="\Exercise 1\desoslide-2.2.0\src\js\jquery.desoslide.js"></script>
-  <script src="\Exercise 1\desoslide-2.2.0\dist\js\jquery.desoslide.min.js"></script>
-  <script src="script.js"></script>
-
-
-</head>
-<body>
-    <div id="slideshow-wrapper">
-        <div id="thumbs-div">
-        <ul id="slideshow_thumbs" class="desoslide-thumbs-horizontal list-inline text-center">
-            <li>
-                <a href="\Exercise 1\images\image1.jpg">
-                    <img src="\Exercise 1\images\image1-small.jpg"
-                         alt="Cat"
-                         data-desoslide-caption-title="A cat">
-                </a>
-            </li>
-            <li>
-                <a href="\Exercise 1\images\image2.jpg">
-                    <img src="\Exercise 1\images\image2-small.jpg" alt="Image" 
-                    data-desoslide-caption-title="Another cat">
-                </a>
-            </li>
-            <li>
-                <a href="\Exercise 1\images\image3.jpg">
-                    <img src="\Exercise 1\images\image3-small.jpg" alt="Image"
-                    data-desoslide-caption-title="More cat">
-                </a>
-            </li>
-
-        </ul>
-    </div>
-    <div id="slideshow-div">
-        <ul id="slideshow"></ul>
-    </div>
-    
-
-   
-
-</div>
-
-</body>
+<!doctype html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <title>Slideshow page</title>
+  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
+  <link rel="stylesheet" href="\Exercise 1\desoslide-2.2.0\doc\assets\css\vendor\animate\animate.min.css">
+  <link href="\Exercise 1\desoslide-2.2.0\dist\css\jquery.desoslide.css" rel="stylesheet">
+  <link href="\Exercise 1\desoslide-2.2.0\dist\css\jquery.desoslide.min.css" rel="stylesheet">
+  <link rel="stylesheet" href="style.css">
+
+  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
+  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
+  <script src="\Exercise 1\desoslide-2.2.0\src\js\jquery.desoslide.js"></script>
+  <script src="\Exercise 1\desoslide-2.2.0\dist\js\jquery.desoslide.min.js"></script>
+  <script src="script.js"></script>
+
+
+</head>
+<body>
+    <div id="slideshow-wrapper">
+        <div id="thumbs-div">
+        <ul id="slideshow_thumbs" class="desoslide-thumbs-horizontal list-inline text-center">
+            <li>
+                <a href="\Exercise 1\images\image1.jpg">
+                    <img src="\Exercise 1\images\image1-small.jpg"
+                         alt="Cat"
+                         data-desoslide-caption-title="A cat">
+                </a>
+            </li>
+            <li>
+                <a href="\Exercise 1\images\image2.jpg">
+                    <img src="\Exercise 1\images\image2-small.jpg" alt="Image" 
+                    data-desoslide-caption-title="Another cat">
+                </a>
+            </li>
+            <li>
+                <a href="\Exercise 1\images\image3.jpg">
+                    <img src="\Exercise 1\images\image3-small.jpg" alt="Image"
+                    data-desoslide-caption-title="More cat">
+                </a>
+            </li>
+
+        </ul>
+    </div>
+    <div id="slideshow-div">
+        <ul id="slideshow"></ul>
+    </div>
+    
+
+   
+
+</div>
+
+</body>
 </html>
\ No newline at end of file
diff --git a/Exercise 1+2/sortable.html b/Exercise 1/sortable.html
similarity index 97%
rename from Exercise 1+2/sortable.html
rename to Exercise 1/sortable.html
index 58df0bd..994c3bc 100644
--- a/Exercise 1+2/sortable.html	
+++ b/Exercise 1/sortable.html	
@@ -1,30 +1,30 @@
-<!doctype html>
-<html lang="en">
-<head>
-  <meta charset="utf-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <title>Sortable page</title>
-  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
-  <link rel="stylesheet" href="style.css">
-
-  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
-  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-  <script src="script.js"></script>
-
-  
-</head>
-<body>
- 
-<ul id="sortable">
-  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Hamburger</li>
-  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Pizza</li>
-  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Falafel with bread</li>
-  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Fish and chips</li>
-  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Pasta carbonara</li>
-  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Sushi</li>
-  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Tacos</li>
-</ul>
- 
- 
-</body>
+<!doctype html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <title>Sortable page</title>
+  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
+  <link rel="stylesheet" href="style.css">
+
+  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
+  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
+  <script src="script.js"></script>
+
+  
+</head>
+<body>
+ 
+<ul id="sortable">
+  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Hamburger</li>
+  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Pizza</li>
+  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Falafel with bread</li>
+  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Fish and chips</li>
+  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Pasta carbonara</li>
+  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Sushi</li>
+  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Tacos</li>
+</ul>
+ 
+ 
+</body>
 </html>
\ No newline at end of file
diff --git a/Exercise 1+2/style.css b/Exercise 1/style.css
similarity index 93%
rename from Exercise 1+2/style.css
rename to Exercise 1/style.css
index b2079fe..3b3e345 100644
--- a/Exercise 1+2/style.css	
+++ b/Exercise 1/style.css	
@@ -1,119 +1,119 @@
-.ui-menu {
-    width: 150px;
-}
-
-.ui-menu a {
-    text-decoration: none;
-}
-
-.wrapper {
-    display: flex;
-    margin-top: 20px;
-}
-
-#home-div {
-    border-style: solid;
-    border-color: black;
-    width: 800px;
-    height: 500px;
-    
-}
-
-#sortable { 
-    list-style-type: none; margin: 0; padding: 0; width: 60%;
-}
-
-#sortable li { 
-    margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px;
-}
-
-#sortable li span { 
-    position: absolute; margin-left: -1.3em; 
-}
-
-#feedback { 
-    font-size: 1.4em; 
-}
-
-#selectable .ui-selecting { 
-    background: #6214f3; 
-}
-
-#selectable .ui-selected { 
-    background: #6214f3; color: white; 
-}
-
-#selectable { 
-    list-style-type: none; margin: 0; padding: 0; width: 60%; 
-}
-
-#selectable li { 
-    margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; 
-}   
-
-iframe {
-    width: 800px;
-    height: 500px;
-    margin-left: 150px;
-    border: 0;
-}
-
-.desoslide-overlay {
-    padding: 0;
-}
-
-.desoslide-caption-title {
-    margin: 5px;
-}
-
-.desoslide-controls-wrapper {
-    margin: 5px;
-}
-
-#slideshow_thumbs img {
-    width: 80%;
-    height: 80%;
-}
-
-img {
-    width: 50%;
-    height: 50%;
-}
-
-#slideshow_thumbs li {
-    list-style: none;
-    
-}
-
-.desoslide-thumbs-horizontal img {
-    border:3px solid #22313f;
-    border-radius:3px;
-    transition:border .25s linear,opacity .25s linear
-}
-.desoslide-thumbs-horizontal>li:focus img, .desoslide-thumbs-horizontal>li:hover img {
-    border-color:#cc3cb9;
-    opacity:.8
-}
-
-#slideshow-wrapper {
-    display: flex;
-    flex-wrap: wrap;
-    align-items: center;
-    justify-content: center;
-}
-
-#thumbs-div {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-}
-
-#thumbs-div ul li {
-    display: inline-block;
-}
-
-#slideshow-div {
-    display: flex;
-    align-items: center;
-    justify-content: center;
+.ui-menu {
+    width: 150px;
+}
+
+.ui-menu a {
+    text-decoration: none;
+}
+
+.wrapper {
+    display: flex;
+    margin-top: 20px;
+}
+
+#home-div {
+    border-style: solid;
+    border-color: black;
+    width: 800px;
+    height: 500px;
+    
+}
+
+#sortable { 
+    list-style-type: none; margin: 0; padding: 0; width: 60%;
+}
+
+#sortable li { 
+    margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px;
+}
+
+#sortable li span { 
+    position: absolute; margin-left: -1.3em; 
+}
+
+#feedback { 
+    font-size: 1.4em; 
+}
+
+#selectable .ui-selecting { 
+    background: #6214f3; 
+}
+
+#selectable .ui-selected { 
+    background: #6214f3; color: white; 
+}
+
+#selectable { 
+    list-style-type: none; margin: 0; padding: 0; width: 60%; 
+}
+
+#selectable li { 
+    margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; 
+}   
+
+iframe {
+    width: 800px;
+    height: 500px;
+    margin-left: 150px;
+    border: 0;
+}
+
+.desoslide-overlay {
+    padding: 0;
+}
+
+.desoslide-caption-title {
+    margin: 5px;
+}
+
+.desoslide-controls-wrapper {
+    margin: 5px;
+}
+
+#slideshow_thumbs img {
+    width: 80%;
+    height: 80%;
+}
+
+img {
+    width: 50%;
+    height: 50%;
+}
+
+#slideshow_thumbs li {
+    list-style: none;
+    
+}
+
+.desoslide-thumbs-horizontal img {
+    border:3px solid #22313f;
+    border-radius:3px;
+    transition:border .25s linear,opacity .25s linear
+}
+.desoslide-thumbs-horizontal>li:focus img, .desoslide-thumbs-horizontal>li:hover img {
+    border-color:#cc3cb9;
+    opacity:.8
+}
+
+#slideshow-wrapper {
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    justify-content: center;
+}
+
+#thumbs-div {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
+#thumbs-div ul li {
+    display: inline-block;
+}
+
+#slideshow-div {
+    display: flex;
+    align-items: center;
+    justify-content: center;
 }
\ No newline at end of file
diff --git a/Exercise 1+2/tabs.html b/Exercise 1/tabs.html
similarity index 98%
rename from Exercise 1+2/tabs.html
rename to Exercise 1/tabs.html
index 97b5984..df54e7c 100644
--- a/Exercise 1+2/tabs.html	
+++ b/Exercise 1/tabs.html	
@@ -1,35 +1,35 @@
-<!doctype html>
-<html lang="en">
-<head>
-  <meta charset="utf-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <title>Tabs page</title>
-  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
-  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
-  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-  <script src="script.js"></script>
- 
-</head>
-<body>
-
-<div id="tabs">
-  <ul>
-    <li><a href="#tabs-1">About us</a></li>
-    <li><a href="#tabs-2">Our product</a></li>
-    <li><a href="#tabs-3">Contact us</a></li>
-  </ul>
-  <div id="tabs-1">
-    <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
-  </div>
-  <div id="tabs-2">
-    <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
-  </div>
-  <div id="tabs-3">
-    <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
-    <p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
-  </div>
-</div>
- 
- 
-</body>
+<!doctype html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <title>Tabs page</title>
+  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
+  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
+  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
+  <script src="script.js"></script>
+ 
+</head>
+<body>
+
+<div id="tabs">
+  <ul>
+    <li><a href="#tabs-1">About us</a></li>
+    <li><a href="#tabs-2">Our product</a></li>
+    <li><a href="#tabs-3">Contact us</a></li>
+  </ul>
+  <div id="tabs-1">
+    <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
+  </div>
+  <div id="tabs-2">
+    <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
+  </div>
+  <div id="tabs-3">
+    <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
+    <p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
+  </div>
+</div>
+ 
+ 
+</body>
 </html>
\ No newline at end of file
-- 
GitLab