diff --git a/core-exposedoptions-enhancement-4.patch b/core-exposedoptions-enhancement-4.patch
new file mode 100644
index 0000000..e69de29
diff --git a/core-exposedoptions-enhancement.patch b/core-exposedoptions-enhancement.patch
new file mode 100644
index 0000000..e69de29
diff --git a/core/modules/views/src/Plugin/views/pager/SqlBase.php b/core/modules/views/src/Plugin/views/pager/SqlBase.php
index 24e8bab..eae91cd 100644
--- a/core/modules/views/src/Plugin/views/pager/SqlBase.php
+++ b/core/modules/views/src/Plugin/views/pager/SqlBase.php
@@ -102,13 +102,12 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#tree' => TRUE,
       '#title' => $this->t('Exposed options'),
       '#input' => TRUE,
-      '#description' => $this->t('Exposing this options allows users to define their values in a exposed form when view is displayed'),
+      '#description' => $this->t('Allow user to control selected display options for this view.'),
     );
 
     $form['expose']['items_per_page'] = array(
       '#type' => 'checkbox',
-      '#title' => $this->t('Expose items per page'),
-      '#description' => $this->t('When checked, users can determine how many items per page show in a view'),
+      '#title' => $this->t('Allow user to control the number of items displayed in this view.'),
       '#default_value' => $this->options['expose']['items_per_page'],
     );
 
@@ -116,7 +115,6 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#type' => 'textfield',
       '#title' => $this->t('Items per page label'),
       '#required' => TRUE,
-      '#description' => $this->t('Label to use in the exposed items per page form element.'),
       '#default_value' => $this->options['expose']['items_per_page_label'],
       '#states' => array(
         'invisible' => array(
@@ -141,15 +139,13 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
     $form['expose']['items_per_page_options_all'] = array(
       '#type' => 'checkbox',
-      '#title' => $this->t('Include all items option'),
-      '#description' => $this->t('If checked, an extra item will be included to items per page to display all items'),
+      '#title' => $this->t('Allow user to to display all items.'),
       '#default_value' => $this->options['expose']['items_per_page_options_all'],
     );
 
     $form['expose']['items_per_page_options_all_label'] = array(
       '#type' => 'textfield',
       '#title' => $this->t('All items label'),
-      '#description' => $this->t('Which label will be used to display all items'),
       '#default_value' => $this->options['expose']['items_per_page_options_all_label'],
       '#states' => array(
         'invisible' => array(
@@ -160,8 +156,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
     $form['expose']['offset'] = array(
       '#type' => 'checkbox',
-      '#title' => $this->t('Expose Offset'),
-      '#description' => $this->t('When checked, users can determine how many items should be skipped at the beginning.'),
+      '#title' => $this->t('Allow user to specify number of items skipped from beginning of this view.'),
       '#default_value' => $this->options['expose']['offset'],
     );
 
@@ -169,7 +164,6 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#type' => 'textfield',
       '#title' => $this->t('Offset label'),
       '#required' => TRUE,
-      '#description' => $this->t('Label to use in the exposed offset form element.'),
       '#default_value' => $this->options['expose']['offset_label'],
       '#states' => array(
         'invisible' => array(
diff --git a/re_order_the-2361921-54.patch b/re_order_the-2361921-54.patch
new file mode 100644
index 0000000..54abda1
--- /dev/null
+++ b/re_order_the-2361921-54.patch
@@ -0,0 +1,393 @@
+diff --git a/core/lib/Drupal/Core/Block/BlockBase.php b/core/lib/Drupal/Core/Block/BlockBase.php
+index 262fd0c..9644dd1 100644
+--- a/core/lib/Drupal/Core/Block/BlockBase.php
++++ b/core/lib/Drupal/Core/Block/BlockBase.php
+@@ -162,24 +162,29 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
+       '#value' => $definition['provider'],
+     );
+ 
+-    $form['admin_label'] = array(
+-      '#type' => 'item',
+-      '#title' => $this->t('Block description'),
+-      '#markup' => SafeMarkup::checkPlain($definition['admin_label']),
+-    );
++    // The following settings should appear before plugin-specific settings
+     $form['label'] = array(
+       '#type' => 'textfield',
+       '#title' => $this->t('Title'),
+       '#maxlength' => 255,
+       '#default_value' => $this->label(),
+       '#required' => TRUE,
++      '#weight' => -4,
+     );
+     $form['label_display'] = array(
+       '#type' => 'checkbox',
+       '#title' => $this->t('Display title'),
+       '#default_value' => ($this->configuration['label_display'] === BlockInterface::BLOCK_LABEL_VISIBLE),
+       '#return_value' => BlockInterface::BLOCK_LABEL_VISIBLE,
++      '#weight' => -3,
++    );
++    $form['admin_label'] = array(
++      '#type' => 'item',
++      '#title' => $this->t('Block description'),
++      '#markup' => SafeMarkup::checkPlain($definition['admin_label']),
++      '#weight' => -2,
+     );
++    // The following settings should appear after plugin-specific settings
+     // Identical options to the ones for page caching.
+     // @see \Drupal\system\Form\PerformanceForm::buildForm()
+     $period = array(0, 60, 180, 300, 600, 900, 1800, 2700, 3600, 10800, 21600, 32400, 43200, 86400);
+@@ -189,6 +194,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
+     $form['cache'] = array(
+       '#type' => 'details',
+       '#title' => $this->t('Cache settings'),
++      '#weight' => 3,
+     );
+     $form['cache']['max_age'] = array(
+       '#type' => 'select',
+diff --git a/core/modules/block/src/BlockForm.php b/core/modules/block/src/BlockForm.php
+index 08d7508..b98a167 100644
+--- a/core/modules/block/src/BlockForm.php
++++ b/core/modules/block/src/BlockForm.php
+@@ -120,8 +120,20 @@ public function form(array $form, FormStateInterface $form_state) {
+     $form_state->setTemporaryValue('gathered_contexts', $this->dispatcher->dispatch(BlockEvents::ADMINISTRATIVE_CONTEXT, new BlockContextEvent())->getContexts());
+ 
+     $form['#tree'] = TRUE;
+-    $form['settings'] = $entity->getPlugin()->buildConfigurationForm(array(), $form_state);
++    $form = array_merge($entity->getPlugin()->buildConfigurationForm(array(), $form_state), $form);
++    $form['region'] = array(
++      '#type' => 'select',
++      '#title' => $this->t('Region'),
++      '#description' => $this->t('Select the region where this block should be displayed.'),
++      '#default_value' => $entity->getRegion(),
++      '#empty_value' => BlockInterface::BLOCK_REGION_NONE,
++      '#options' => system_region_list($theme, REGIONS_VISIBLE),
++      '#prefix' => '<div id="edit-block-region-wrapper">',
++      '#suffix' => '</div>',
++      '#weight' => 0,
++    );
+     $form['visibility'] = $this->buildVisibilityInterface([], $form_state);
++    $form['visibility']['#weight'] = 2;
+ 
+     // If creating a new block, calculate a safe default machine name.
+     $form['id'] = array(
+@@ -164,17 +176,6 @@ public function form(array $form, FormStateInterface $form_state) {
+       );
+     }
+ 
+-    // Region settings.
+-    $form['region'] = array(
+-      '#type' => 'select',
+-      '#title' => $this->t('Region'),
+-      '#description' => $this->t('Select the region where this block should be displayed.'),
+-      '#default_value' => $entity->getRegion(),
+-      '#empty_value' => BlockInterface::BLOCK_REGION_NONE,
+-      '#options' => system_region_list($theme, REGIONS_VISIBLE),
+-      '#prefix' => '<div id="edit-block-region-wrapper">',
+-      '#suffix' => '</div>',
+-    );
+     $form['#attached']['library'][] = 'block/drupal.block.admin';
+     return $form;
+   }
+@@ -275,14 +276,13 @@ protected function actions(array $form, FormStateInterface $form_state) {
+    */
+   public function validate(array $form, FormStateInterface $form_state) {
+     parent::validate($form, $form_state);
+-
+     // The Block Entity form puts all block plugin form elements in the
+     // settings form element, so just pass that to the block for validation.
+-    $settings = (new FormState())->setValues($form_state->getValue('settings'));
++    //$settings = (new FormState())->setValues($form_state->getValue('settings'));
+     // Call the plugin validate handler.
+-    $this->entity->getPlugin()->validateConfigurationForm($form, $settings);
++    $this->entity->getPlugin()->validateConfigurationForm($form, $form_state);
+     // Update the original form values.
+-    $form_state->setValue('settings', $settings->getValues());
++    //$form_state->setValue('settings', $settings->getValues());
+     $this->validateVisibility($form, $form_state);
+   }
+ 
+@@ -324,12 +324,12 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
+     // The Block Entity form puts all block plugin form elements in the
+     // settings form element, so just pass that to the block for submission.
+     // @todo Find a way to avoid this manipulation.
+-    $settings = (new FormState())->setValues($form_state->getValue('settings'));
++    //$settings = (new FormState())->setValues($form_state->getValue('settings'));
+ 
+     // Call the plugin submit handler.
+-    $entity->getPlugin()->submitConfigurationForm($form, $settings);
++    $entity->getPlugin()->submitConfigurationForm($form, $form_state);
+     // Update the original form values.
+-    $form_state->setValue('settings', $settings->getValues());
++    //$form_state->setValue('settings', $settings->getValues());
+ 
+     // Submit visibility condition settings.
+     foreach ($form_state->getValue('visibility') as $condition_id => $values) {
+diff --git a/core/modules/block/src/Tests/BlockInterfaceTest.php b/core/modules/block/src/Tests/BlockInterfaceTest.php
+index 5e8b54c..04d9fed 100644
+--- a/core/modules/block/src/Tests/BlockInterfaceTest.php
++++ b/core/modules/block/src/Tests/BlockInterfaceTest.php
+@@ -65,32 +65,37 @@ public function testBlockInterface() {
+     $period = array_map(array(\Drupal::service('date.formatter'), 'formatInterval'), array_combine($period, $period));
+     $period[0] = '<' . t('no caching') . '>';
+     $period[\Drupal\Core\Cache\Cache::PERMANENT] = t('Forever');
++    $weight = -4;
+     $expected_form = array(
+       'provider' => array(
+         '#type' => 'value',
+         '#value' => 'block_test',
+       ),
+-      'admin_label' => array(
+-        '#type' => 'item',
+-        '#title' => t('Block description'),
+-        '#markup' => SafeMarkup::checkPlain($definition['admin_label']),
+-      ),
+       'label' => array(
+         '#type' => 'textfield',
+         '#title' => 'Title',
+         '#maxlength' => 255,
+         '#default_value' => 'Custom Display Message',
+         '#required' => TRUE,
++        '#weight' => $weight++,
+       ),
+       'label_display' => array(
+         '#type' => 'checkbox',
+         '#title' => 'Display title',
+         '#default_value' => TRUE,
+         '#return_value' => 'visible',
++        '#weight' => $weight++,
++      ),
++      'admin_label' => array(
++        '#type' => 'item',
++        '#title' => t('Block description'),
++        '#markup' => SafeMarkup::checkPlain($definition['admin_label']),
++        '#weight' => $weight++,
+       ),
+       'cache' => array(
+         '#type' => 'details',
+         '#title' => t('Cache settings'),
++        '#weight' => 3,
+         'max_age' => array(
+           '#type' => 'select',
+           '#title' => t('Maximum age'),
+diff --git a/core/modules/block/src/Tests/BlockTest.php b/core/modules/block/src/Tests/BlockTest.php
+index d6e0999..559df5d 100644
+--- a/core/modules/block/src/Tests/BlockTest.php
++++ b/core/modules/block/src/Tests/BlockTest.php
+@@ -31,7 +31,7 @@ function testBlockVisibility() {
+     $edit = array(
+       'id' => strtolower($this->randomMachineName(8)),
+       'region' => 'sidebar_first',
+-      'settings[label]' => $title,
++      'label' => $title,
+     );
+     // Set the block to be hidden on any user path, and to be shown only to
+     // authenticated users.
+@@ -75,7 +75,7 @@ public function testBlockToggleVisibility() {
+     $edit = array(
+       'id' => strtolower($this->randomMachineName(8)),
+       'region' => 'sidebar_first',
+-      'settings[label]' => $title,
++      'label' => $title,
+     );
+     $block_id = $edit['id'];
+     // Set the block to be shown only to authenticated users.
+@@ -111,7 +111,7 @@ function testBlockVisibilityListedEmpty() {
+     $edit = array(
+       'id' => strtolower($this->randomMachineName(8)),
+       'region' => 'sidebar_first',
+-      'settings[label]' => $title,
++      'label' => $title,
+       'visibility[request_path][negate]' => TRUE,
+     );
+     // Set the block to be hidden on any user path, and to be shown only to
+@@ -138,17 +138,17 @@ function testBlock() {
+     // Select the 'Powered by Drupal' block to be configured and moved.
+     $block = array();
+     $block['id'] = 'system_powered_by_block';
+-    $block['settings[label]'] = $this->randomMachineName(8);
++    $block['label'] = $this->randomMachineName(8);
+     $block['theme'] = $this->config('system.theme')->get('default');
+     $block['region'] = 'header';
+ 
+     // Set block title to confirm that interface works and override any custom titles.
+-    $this->drupalPostForm('admin/structure/block/add/' . $block['id'] . '/' . $block['theme'], array('settings[label]' => $block['settings[label]'], 'id' => $block['id'], 'region' => $block['region']), t('Save block'));
++    $this->drupalPostForm('admin/structure/block/add/' . $block['id'] . '/' . $block['theme'], array('label' => $block['label'], 'id' => $block['id'], 'region' => $block['region']), t('Save block'));
+     $this->assertText(t('The block configuration has been saved.'), 'Block title set.');
+     // Check to see if the block was created by checking its configuration.
+     $instance = Block::load($block['id']);
+ 
+-    $this->assertEqual($instance->label(), $block['settings[label]'], 'Stored block title found.');
++    $this->assertEqual($instance->label(), $block['label'], 'Stored block title found.');
+ 
+     // Check whether the block can be moved to all available regions.
+     foreach ($this->regions as $region) {
+@@ -165,7 +165,7 @@ function testBlock() {
+ 
+     // Confirm that the block instance title and markup are not displayed.
+     $this->drupalGet('node');
+-    $this->assertNoText(t($block['settings[label]']));
++    $this->assertNoText(t($block['label']));
+     // Check for <div id="block-my-block-instance-name"> if the machine name
+     // is my_block_instance_name.
+     $xpath = $this->buildXPathQuery('//div[@id=:id]/*', array(':id' => 'block-' . str_replace('_', '-', strtolower($block['id']))));
+@@ -174,9 +174,9 @@ function testBlock() {
+     // Test deleting the block from the edit form.
+     $this->drupalGet('admin/structure/block/manage/' . $block['id']);
+     $this->clickLink(t('Delete'));
+-    $this->assertRaw(t('Are you sure you want to delete the block %name?', array('%name' => $block['settings[label]'])));
++    $this->assertRaw(t('Are you sure you want to delete the block %name?', array('%name' => $block['label'])));
+     $this->drupalPostForm(NULL, array(), t('Delete'));
+-    $this->assertRaw(t('The block %name has been deleted.', array('%name' => $block['settings[label]'])));
++    $this->assertRaw(t('The block %name has been deleted.', array('%name' => $block['label'])));
+ 
+     // Test deleting a block via "Configure block" link.
+     $block = $this->drupalPlaceBlock('system_powered_by_block');
+@@ -245,7 +245,7 @@ function testHideBlockTitle() {
+     $edit = array(
+       'id' => $id,
+       'region' => 'sidebar_first',
+-      'settings[label]' => $title,
++      'label' => $title,
+     );
+     $this->drupalPostForm('admin/structure/block/add/' . $block_name . '/' . $default_theme, $edit, t('Save block'));
+     $this->assertText('The block configuration has been saved.', 'Block was saved');
+@@ -254,13 +254,13 @@ function testHideBlockTitle() {
+     $this->assertText($title, 'Block title was displayed by default.');
+ 
+     $edit = array(
+-      'settings[label_display]' => FALSE,
++      'label_display' => FALSE,
+     );
+     $this->drupalPostForm('admin/structure/block/manage/' . $id, $edit, t('Save block'));
+     $this->assertText('The block configuration has been saved.', 'Block was saved');
+ 
+     $this->drupalGet('admin/structure/block/manage/' . $id);
+-    $this->assertNoFieldChecked('edit-settings-label-display', 'The display_block option has the correct default value on the configuration form.');
++    $this->assertNoFieldChecked('edit-label-display', 'The display_block option has the correct default value on the configuration form.');
+ 
+     $this->drupalGet('user');
+     $this->assertNoText($title, 'Block title was not displayed when hidden.');
+@@ -290,7 +290,7 @@ function moveBlockToRegion(array $block, $region) {
+ 
+     // Confirm that the block is being displayed.
+     $this->drupalGet('');
+-    $this->assertText(t($block['settings[label]']), 'Block successfully being displayed on the page.');
++    $this->assertText(t($block['label']), 'Block successfully being displayed on the page.');
+ 
+     // Confirm that the custom block was found at the proper region.
+     $xpath = $this->buildXPathQuery('//div[@class=:region-class]//div[@id=:block-id]/*', array(
+diff --git a/core/modules/block/src/Tests/Views/DisplayBlockTest.php b/core/modules/block/src/Tests/Views/DisplayBlockTest.php
+index 56e7354..c536a9f 100644
+--- a/core/modules/block/src/Tests/Views/DisplayBlockTest.php
++++ b/core/modules/block/src/Tests/Views/DisplayBlockTest.php
+@@ -211,7 +211,7 @@ public function testViewsBlockForm() {
+     // Tests the override capability of items per page.
+     $this->drupalGet('admin/structure/block/add/views_block:test_view_block-block_1/' . $default_theme);
+     $edit = array();
+-    $edit['settings[override][items_per_page]'] = 10;
++    $edit['override[items_per_page]'] = 10;
+ 
+     $this->drupalPostForm('admin/structure/block/add/views_block:test_view_block-block_1/' . $default_theme, $edit, t('Save block'));
+ 
+@@ -219,7 +219,7 @@ public function testViewsBlockForm() {
+     $config = $block->getPlugin()->getConfiguration();
+     $this->assertEqual(10, $config['items_per_page'], "'Items per page' is properly saved.");
+ 
+-    $edit['settings[override][items_per_page]'] = 5;
++    $edit['override[items_per_page]'] = 5;
+     $this->drupalPostForm('admin/structure/block/manage/views_block__test_view_block_block_1_4', $edit, t('Save block'));
+ 
+     $block = $storage->load('views_block__test_view_block_block_1_4');
+@@ -229,8 +229,8 @@ public function testViewsBlockForm() {
+ 
+     // Tests the override of the label capability.
+     $edit = array();
+-    $edit['settings[views_label_checkbox]'] = 1;
+-    $edit['settings[views_label]'] = 'Custom title';
++    $edit['views_label_checkbox'] = 1;
++    $edit['views_label'] = 'Custom title';
+     $this->drupalPostForm('admin/structure/block/add/views_block:test_view_block-block_1/' . $default_theme, $edit, t('Save block'));
+ 
+     $block = $storage->load('views_block__test_view_block_block_1_5');
+diff --git a/core/modules/block_content/src/Tests/BlockContentCreationTest.php b/core/modules/block_content/src/Tests/BlockContentCreationTest.php
+index 6bf250c..9363b6d 100644
+--- a/core/modules/block_content/src/Tests/BlockContentCreationTest.php
++++ b/core/modules/block_content/src/Tests/BlockContentCreationTest.php
+@@ -54,7 +54,7 @@ public function testBlockContentCreation() {
+     )), 'Basic block created.');
+ 
+     // Check that the view mode setting is hidden because only one exists.
+-    $this->assertNoFieldByXPath('//select[@name="settings[view_mode]"]', NULL, 'View mode setting hidden because only one exists');
++    $this->assertNoFieldByXPath('//select[@name="view_mode"]', NULL, 'View mode setting hidden because only one exists');
+ 
+     // Check that the block exists in the database.
+     $blocks = entity_load_multiple_by_properties('block_content', array('info' => $edit['info[0][value]']));
+@@ -101,18 +101,18 @@ public function testBlockContentCreationMultipleViewModes() {
+     )), 'Basic block created.');
+ 
+     // Check that the view mode setting is shown because more than one exists.
+-    $this->assertFieldByXPath('//select[@name="settings[view_mode]"]', NULL, 'View mode setting shown because multiple exist');
++    $this->assertFieldByXPath('//select[@name="view_mode"]', NULL, 'View mode setting shown because multiple exist');
+ 
+     // Change the view mode.
+-    $view_mode['settings[view_mode]'] = 'test_view_mode';
++    $view_mode['view_mode'] = 'test_view_mode';
+     $this->drupalPostForm(NULL, $view_mode, t('Save block'));
+ 
+     // Go to the configure page and verify that the new view mode is correct.
+     $this->drupalGet('admin/structure/block/manage/testblock');
+-    $this->assertFieldByXPath('//select[@name="settings[view_mode]"]/option[@selected="selected"]/@value', 'test_view_mode', 'View mode changed to Test View Mode');
++    $this->assertFieldByXPath('//select[@name="view_mode"]/option[@selected="selected"]/@value', 'test_view_mode', 'View mode changed to Test View Mode');
+ 
+     // Test the available view mode options.
+-    $this->assertOption('edit-settings-view-mode', 'default', 'The default view mode is available.');
++    $this->assertOption('edit-view-mode', 'default', 'The default view mode is available.');
+ 
+     // Check that the block exists in the database.
+     $blocks = entity_load_multiple_by_properties('block_content', array('info' => $edit['info[0][value]']));
+@@ -206,7 +206,7 @@ public function testBlockDelete() {
+     // Place the block.
+     $instance = array(
+       'id' => Unicode::strtolower($edit['info[0][value]']),
+-      'settings[label]' => $edit['info[0][value]'],
++      'label' => $edit['info[0][value]'],
+       'region' => 'sidebar_first',
+     );
+     $block = BlockContent::load(1);
+@@ -260,7 +260,7 @@ public function testConfigDependencies() {
+     $block_placement_id = Unicode::strtolower($block->label());
+     $instance = array(
+       'id' => $block_placement_id,
+-      'settings[label]' => $block->label(),
++      'label' => $block->label(),
+       'region' => 'sidebar_first',
+     );
+     $block = BlockContent::load(1);
+diff --git a/core/modules/menu_ui/src/Tests/MenuTest.php b/core/modules/menu_ui/src/Tests/MenuTest.php
+index 948e84f..7b36fe3 100644
+--- a/core/modules/menu_ui/src/Tests/MenuTest.php
++++ b/core/modules/menu_ui/src/Tests/MenuTest.php
+@@ -944,8 +944,8 @@ protected function doTestMenuBlock() {
+     $block_id = $this->blockPlacements[$menu_id];
+     $this->drupalGet('admin/structure/block/manage/' . $block_id);
+     $this->drupalPostForm(NULL, [
+-      'settings[depth]' => 3,
+-      'settings[level]' => 2,
++      'depth' => 3,
++      'level' => 2,
+     ], t('Save block'));
+     $block = Block::load($block_id);
+     $settings = $block->getPlugin()->getConfiguration();
+diff --git a/core/modules/system/src/Plugin/Block/SystemMenuBlock.php b/core/modules/system/src/Plugin/Block/SystemMenuBlock.php
+index 4a6a2ea..6acec04 100644
+--- a/core/modules/system/src/Plugin/Block/SystemMenuBlock.php
++++ b/core/modules/system/src/Plugin/Block/SystemMenuBlock.php
+@@ -86,6 +86,7 @@ public function blockForm($form, FormStateInterface $form_state) {
+       // Open if not set to defaults.
+       '#open' => $defaults['level'] !== $config['level'] || $defaults['depth'] !== $config['depth'],
+       '#process' => [[get_class(), 'processMenuLevelParents']],
++      '#weight' => 1,
+     );
+ 
+     $options = range(0, $this->menuTree->maxDepth());
diff --git a/sites/default/files/.htaccess b/sites/default/files/.htaccess
new file mode 100644
index 0000000..7051eb8
--- /dev/null
+++ b/sites/default/files/.htaccess
@@ -0,0 +1,15 @@
+# Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/active/.htaccess b/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/active/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/active/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/active/README.txt b/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/active/README.txt
new file mode 100644
index 0000000..0b40f96
--- /dev/null
+++ b/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/active/README.txt
@@ -0,0 +1 @@
+If you change the configuration system to use file storage instead of the database for the active Drupal site configuration, this directory will contain the active configuration. By default, this directory will be empty. If you are using files to store the active configuration, and you want to move it between environments, files from this directory should be placed in the staging directory on the target server. To make this configuration active, visit admin/config/development/configuration/sync on the target server. For information about deploying configuration between servers, see http://drupal.org/documentation/administer/config
\ No newline at end of file
diff --git a/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/staging/.htaccess b/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/staging/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/staging/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/staging/README.txt b/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/staging/README.txt
new file mode 100644
index 0000000..8582a8c
--- /dev/null
+++ b/sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/staging/README.txt
@@ -0,0 +1 @@
+This directory contains configuration to be imported into your Drupal site. To make this configuration active, visit admin/config/development/configuration/sync. For information about deploying configuration between servers, see http://drupal.org/documentation/administer/config
\ No newline at end of file
diff --git a/sites/default/files/css/css_2Upntnm4U2h4lIqJrtdAOgfV752yu4LromJ72_M6N5Y.css b/sites/default/files/css/css_2Upntnm4U2h4lIqJrtdAOgfV752yu4LromJ72_M6N5Y.css
new file mode 100644
index 0000000..23e2e69
--- /dev/null
+++ b/sites/default/files/css/css_2Upntnm4U2h4lIqJrtdAOgfV752yu4LromJ72_M6N5Y.css
@@ -0,0 +1,15 @@
+.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;}.ui-helper-clearfix:after{clear:both;}.ui-helper-clearfix{min-height:0;}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-front{z-index:100;}.ui-state-disabled{cursor:default !important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%;}
+.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:right;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:left;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{margin:0;padding-left:1.3333em;text-indent:-9999px;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{padding-right:1.3333em;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);}.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab.hidden{display:none;}
+.toolbar .menu,[dir="rtl"] .toolbar .menu{list-style:none;margin:0;padding:0;}.toolbar .toolbar-box{display:block;line-height:1em;position:relative;width:auto;}.toolbar .toolbar-tray-horizontal .menu .toolbar-handle,.toolbar .toolbar-tray-horizontal .menu ul,.toolbar .toolbar-tray-vertical .menu ul{display:none;}.toolbar .toolbar-tray-vertical li.open > ul{display:block;}.toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-right:3em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-left:3em;margin-right:0;}.toolbar .toolbar-tray .menu-item--active-trail > .toolbar-box a,.toolbar .toolbar-tray a.is-active{color:#000;font-weight:bold;}@media screen and (max-width:319px){.toolbar .toolbar-tray-vertical.is-active{width:100%;}}.toolbar .level-2 > ul{background-color:#fafafa;border-bottom-color:#cccccc;border-top-color:#e5e5e5;}.toolbar .level-3 > ul{background-color:#f5f5f5;border-bottom-color:#c5c5c5;border-top-color:#dddddd;}.toolbar .level-4 > ul{background-color:#eeeeee;border-bottom-color:#bbbbbb;border-top-color:#d5d5d5;}.toolbar .level-5 > ul{background-color:#e5e5e5;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-6 > ul{background-color:#eeeeee;border-bottom-color:#aaaaaa;border-top-color:#c5c5c5;}.toolbar .level-7 > ul{background-color:#fafafa;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-8 > ul{background-color:#dddddd;border-bottom-color:#cccccc;border-top-color:#dddddd;}.toolbar .toolbar-handle:hover{cursor:pointer;}.toolbar .toolbar-icon.toolbar-handle{bottom:0;display:block;height:100%;padding:0;position:absolute;right:0;top:0;z-index:1;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle{left:0;padding:0;right:auto;}
+.layout-container{margin:0 1.5em;}.layout-container:after{content:"";display:table;clear:both;}@media screen and (min-width:38em){.layout-container{margin:0 2.5em;}.layout-column{float:left;box-sizing:border-box;}[dir="rtl"] .layout-column{float:right;}.layout-column + .layout-column{padding-left:10px;}[dir="rtl"] .layout-column + .layout-column{padding-right:10px;padding-left:0;}.layout-column.half{width:50%;}.layout-column.quarter{width:25%;}.layout-column.three-quarter{width:75%;}}.panel{padding:5px 5px 15px;}.panel__description{margin:0 0 3px;padding:2px 0 3px 0;}.compact-link{margin:0 0 0.5em 0;}small .admin-link:before{content:' [';}small .admin-link:after{content:']';}.system-modules thead > tr{border:0;}.system-modules div.incompatible{font-weight:bold;}.system-modules td.checkbox{min-width:25px;width:4%;}.system-modules td.module{width:25%;}.system-modules td{vertical-align:top;}.system-modules label,.system-modules-uninstall label{color:#1d1d1d;font-size:1.15em;}.system-modules details{color:#5c5c5b;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.system-modules details[open]{height:auto;overflow:visible;white-space:normal;}.system-modules details[open] summary .text{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;text-transform:none;}.system-modules td details a{color:#5C5C5B;border:0px;}.system-modules td details{border:0;margin:0;height:20px;}.system-modules td details summary{padding:0;text-transform:none;font-weight:normal;cursor:default;}.system-modules td{padding-left:0;}@media screen and (max-width:40em){.system-modules td.name{width:20%;}.system-modules td.description{width:40%;}}.system-modules .requirements{padding:5px 0;max-width:490px;}.system-modules .links{overflow:hidden;}.system-modules .checkbox{margin:0 5px;}.system-modules .checkbox .form-item{margin-bottom:0;}.admin-requirements,.admin-required{font-size:0.9em;color:#666;}.admin-enabled{color:#080;}.admin-missing{color:#f00;}.module-link{display:block;padding:2px 20px;white-space:nowrap;margin-top:2px;float:left;}[dir="rtl"] .module-link{float:right;}.module-link-help{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg) 0 50% no-repeat;}.module-link-permissions{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/key.svg) 0 50% no-repeat;}.module-link-configure{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/cog.svg) 0 50% no-repeat;}.system-status-report td{vertical-align:top;}.system-status-report__status-icon{width:16px;padding-right:0;}[dir="rtl"] .system-status-report__status-icon{padding-left:0;padding-right:6px;}.system-status-report__status-icon:before{content:"";background-repeat:no-repeat;height:16px;width:16px;margin-top:2px;display:block;}.system-status-report__status-icon--error:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ea2800/error.svg);}.system-status-report__status-icon--warning:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/e29700/warning.svg);}.system-status-report__status-title{width:25%;}.theme-info__header{margin-bottom:0;font-weight:normal;}.theme-default .theme-info__header{font-weight:bold;}.theme-info__description{margin-top:0;}.system-themes-list{margin-bottom:20px;}.system-themes-list-uninstalled{border-top:1px solid #cdcdcd;padding-top:20px;}.system-themes-list__header{margin:0;}.theme-selector{padding-top:20px;}.theme-selector .screenshot,.theme-selector .no-screenshot{border:1px solid #e0e0d8;padding:2px;vertical-align:bottom;max-width:100%;height:auto;text-align:center;}.theme-default .screenshot{border:1px solid #aaa;}.system-themes-list-uninstalled .screenshot,.system-themes-list-uninstalled .no-screenshot{max-width:194px;height:auto;}@media screen and (min-width:45em){body:not(.toolbar-vertical) .system-themes-list-installed .screenshot,body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot{float:left;margin:0 20px 0 0;width:294px;}[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .screenshot,[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot{float:right;margin:0 0 0 20px;}body:not(.toolbar-vertical) .system-themes-list-installed .system-themes-list__header{margin-top:0;}body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector{box-sizing:border-box;width:31.25%;float:left;padding:20px 20px 20px 0;}[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector{float:right;padding:20px 0 20px 20px;}body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-info{min-height:170px;}}@media screen and (min-width:60em){.toolbar-vertical .system-themes-list-installed .screenshot,.toolbar-vertical .system-themes-list-installed .no-screenshot{float:left;margin:0 20px 0 0;width:294px;}[dir="rtl"] .toolbar-vertical .system-themes-list-installed .screenshot,[dir="rtl"] .toolbar-vertical .system-themes-list-installed .no-screenshot{float:right;margin:0 0 0 20px;}.toolbar-vertical .system-themes-list-installed .theme-info__header{margin-top:0;}.toolbar-vertical .system-themes-list-uninstalled .theme-selector{box-sizing:border-box;width:31.25%;float:left;padding:20px 20px 20px 0;}[dir="rtl"] .toolbar-vertical .system-themes-list-uninstalled .theme-selector{float:right;padding:20px 0 20px 20px;}.toolbar-vertical .system-themes-list-uninstalled .theme-info{min-height:170px;}}.system-themes-list-installed .theme-info{max-width:940px;}.theme-selector .incompatible{margin-top:10px;font-weight:bold;}.theme-selector .operations{margin:10px 0 0 0;padding:0;}.theme-selector .operations li{float:left;margin:0;padding:0 0.7em;list-style-type:none;border-right:1px solid #cdcdcd;}[dir="rtl"] .theme-selector .operations li{float:right;border-left:1px solid #cdcdcd;border-right:none;}.theme-selector .operations li:last-child{padding:0 0 0 0.7em;border-right:none;}[dir="rtl"] .theme-selector .operations li:last-child{padding:0 0.7em 0 0;border-left:none;}.theme-selector .operations li:first-child{padding:0 0.7em 0 0;}[dir="rtl"] .theme-selector .operations li:first-child{padding:0 0 0 0.7em;}.system-themes-admin-form{clear:left;}
+.contextual{position:absolute;right:0;top:6px;z-index:500;}[dir="rtl"] .contextual{left:0;right:auto;}.contextual-region.focus{outline:1px dashed #d6d6d6;outline-offset:1px;}.contextual .trigger{background-attachment:scroll;background-color:#fff;border:1px solid #ccc;border-radius:13px;float:right;margin:0;overflow:hidden;padding:0 2px;position:relative;right:6px;cursor:pointer;}[dir="rtl"] .contextual .trigger{float:left;right:auto;left:6px;}.contextual.open .trigger{border:1px solid #ccc;border-bottom-color:transparent;border-radius:13px 13px 0 0;box-shadow:none;z-index:2;}.contextual-region .contextual .contextual-links{background-color:#fff;border:1px solid #ccc;border-radius:4px 0 4px 4px;clear:both;float:right;margin:0;padding:0.25em 0;position:relative;right:6px;text-align:left;top:-1px;white-space:nowrap;}[dir="rtl"] .contextual-region .contextual .contextual-links{border-radius:0 4px 4px 4px;float:left;left:6px;right:auto;text-align:right;}.contextual-region .contextual .contextual-links li{background-color:#fff;border:none;list-style:none;list-style-image:none;margin:0;padding:0;line-height:100%;}.contextual-region .contextual .contextual-links a{background-color:#fff;color:#333;display:block;font-family:sans-serif;font-size:small;line-height:0.8em;margin:0.25em 0;padding:0.4em 0.6em;}.touch .contextual-region .contextual .contextual-links a{font-size:large;}.contextual-region .contextual .contextual-links a,.contextual-region .contextual .contextual-links a:hover{text-decoration:none;}.no-touch .contextual-region .contextual .contextual-links li a:hover{color:white;background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);}
+.toolbar-bar .toolbar-icon-edit:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);}.toolbar-bar .toolbar-icon-edit:active:before,.toolbar-bar .toolbar-icon-edit.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/pencil.svg);}.contextual .trigger{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);background-position:center center;background-repeat:no-repeat;background-size:16px 16px;height:26px !important;width:26px !important;text-indent:-9999px;}.contextual .trigger:hover{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/pencil.svg);}.contextual .trigger:focus{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/pencil.svg);outline:none;}
+.block-region{background-color:#ff6;margin-top:4px;margin-bottom:4px;padding:3px;}a.block-demo-backlink,a.block-demo-backlink:link,a.block-demo-backlink:visited{background-color:#b4d7f0;border-radius:0 0 10px 10px;color:#000;font-family:"Lucida Grande",Verdana,sans-serif;font-size:small;line-height:20px;left:20px;padding:5px 10px;position:fixed;z-index:499;}a.block-demo-backlink:hover{text-decoration:underline;}.layout-region{box-sizing:border-box;}.block-list-secondary{border:1px solid #bfbfbf;border-bottom-width:0;}.block-list{padding:0 0.75em;margin:0;}.block-list li{list-style:none;padding:0.1em 0;}.block-list a:before{content:'+ ';}.block-list-secondary .form-type-search{padding:0 1em;}.block-form .form-item-settings-admin-label label{display:inline;}.block-form .form-item-settings-admin-label label:after{content:':';}@media
+screen and (min-width:780px),(orientation:landscape) and (min-device-height:780px){.block-list-primary{float:left;width:75%;padding-right:2em;}[dir="rtl"] .block-list-primary{float:right;padding-left:2em;padding-right:0;}.block-list-secondary{float:right;width:25%;}[dir="rtl"] .block-list-secondary{float:left;}.block-list-secondary .form-autocomplete,.block-list-secondary .form-text,.block-list-secondary .form-tel,.block-list-secondary .form-email,.block-list-secondary .form-url,.block-list-secondary .form-search,.block-list-secondary .form-number,.block-list-secondary .form-color,.block-list-secondary textarea{box-sizing:border-box;width:100%;max-width:100%;}}@media
+screen and (max-width:1020px){.toolbar-vertical.toolbar-tray-open .block-list-primary,.toolbar-vertical.toolbar-tray-open .block-list-secondary{float:none;width:auto;padding-right:0;}}
+.js .dropbutton-widget{background-color:white;border:1px solid #cccccc;}.js .dropbutton-widget:hover{border-color:#b8b8b8;}.dropbutton .dropbutton-action > *{padding:0.1em 0.5em;white-space:nowrap;}.dropbutton .secondary-action{border-top:1px solid #e8e8e8;}.dropbutton-multiple .dropbutton{border-right:1px solid #e8e8e8;}[dir="rtl"] .dropbutton-multiple .dropbutton{border-left:1px solid #e8e8e8;border-right:0 none;}.dropbutton-multiple .dropbutton .dropbutton-action > *{margin-right:0.25em;}[dir="rtl"] .dropbutton-multiple .dropbutton .dropbutton-action > *{margin-left:0.25em;margin-right:0;}
+.toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:right;padding:1em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:left;}.toolbar .toolbar-tray-horizontal .edit-shortcuts{float:right;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .edit-shortcuts{float:left;}.add-or-remove-shortcuts{display:inline-block;margin-left:0.3em;}[dir="rtl"] .add-or-remove-shortcuts{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts .text{background:#000000;background:rgba(0,0,0,0.5);border-radius:5px;padding:0 5px;color:#ffffff;display:inline-block;margin-left:0.3em;opacity:0;-ms-transform:translateY(-12px);-webkit-transform:translateY(-12px);transform:translateY(-12px);-webkit-transition:all 200ms ease-out;transition:all 200ms ease-out;-ms-backface-visibility:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;}[dir="rtl"] .add-or-remove-shortcuts .text{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts a:hover .text,.add-or-remove-shortcuts a:focus .text{opacity:1;-ms-transform:translateY(-2px);-webkit-transform:translateY(-2px);transform:translateY(-2px);}
+.toolbar-bar .toolbar-icon-shortcut:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/star.svg);}.toolbar-bar .toolbar-icon-shortcut:active:before,.toolbar-bar .toolbar-icon-shortcut.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/star.svg);}.add-or-remove-shortcuts .icon{background:transparent url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar.svg) no-repeat left top;width:20px;height:20px;display:inline-block;vertical-align:-2px;}[dir="rtl"] .add-or-remove-shortcuts .icon{background-image:url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar-rtl.svg);}.add-shortcut a:hover .icon,.add-shortcut a:focus .icon{background-position:-20px top;}.remove-shortcut .icon{background-position:-40px top;}.remove-shortcut a:focus .icon,.remove-shortcut a:hover .icon{background-position:-60px top;}
+.toolbar{font-family:"Source Sans Pro","Lucida Grande",Verdana,sans-serif;font-size:0.8125rem;-moz-tap-highlight-color:rgba(0,0,0,0);-o-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0);-moz-touch-callout:none;-o-touch-callout:none;-webkit-touch-callout:none;touch-callout:none;}.toolbar .toolbar-item{cursor:pointer;padding:1em 1.3333em;line-height:1em;text-decoration:none;}.toolbar .toolbar-item:hover,.toolbar .toolbar-item:focus{text-decoration:underline;}.toolbar .toolbar-bar{background-color:#0f0f0f;box-shadow:-1px 0 3px 1px rgba(0,0,0,0.3333);color:#dddddd;}[dir="rtl"] .toolbar .toolbar-bar{box-shadow:1px 0 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-bar .toolbar-item{color:#ffffff;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item{font-weight:bold;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:hover,.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:focus{background-image:-webkit-linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);text-decoration:none;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);}.toolbar .toolbar-tray{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:5em;}[dir="rtl"] .toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:0;padding-left:5em;}.toolbar .toolbar-tray-vertical{background-color:#f5f5f5;border-right:1px solid #aaaaaa;box-shadow:-1px 0 5px 2px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-vertical{border-left:1px solid #aaaaaa;border-right:0 none;box-shadow:1px 0 5px 2px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal{border-bottom:1px solid #aaaaaa;box-shadow:-2px 1px 3px 1px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-horizontal{box-shadow:2px 1px 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal .toolbar-tray{background-color:#f5f5f5;}.toolbar-tray a{color:#565656;cursor:pointer;padding:1em 1.3333em;text-decoration:none;}.toolbar-tray a:hover,.toolbar-tray a:active,.toolbar-tray a:focus,.toolbar-tray a.is-active{color:#000;text-decoration:underline;}.toolbar .menu{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:0 none;border-right:1px solid #dddddd;}.toolbar .toolbar-tray-horizontal .menu-item:last-child{border-right:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item:last-child{border-left:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item + .menu-item{border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child{border-bottom:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item .menu-item{border:0 none;}.toolbar .toolbar-tray-vertical .menu ul ul{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child > ul{border-bottom:0;}.toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0.25em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0;margin-right:0.25em;}.toolbar .menu .menu a{color:#434343;}.toolbar .toolbar-toggle-orientation{background-color:#f5f5f5;padding:0.6667em;}.toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:1px solid #c9c9c9;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:0 none;border-right:1px solid #c9c9c9;}.toolbar .toolbar-toggle-orientation > .toolbar-lining{float:right;padding:0.1667em;}[dir="rtl"] .toolbar .toolbar-toggle-orientation > .toolbar-lining{float:left;}.toolbar .toolbar-toggle-orientation button{cursor:pointer;display:inline-block;}
+.toolbar .toolbar-icon{padding-left:2.75em;position:relative;}[dir="rtl"] .toolbar .toolbar-icon{padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-icon:before{background-attachment:scroll;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:100% auto;content:'';display:block;height:100%;left:0.6667em;position:absolute;top:0;width:20px;}[dir="rtl"] .toolbar .toolbar-icon:before{left:auto;right:0.6667em;}.toolbar button.toolbar-icon{background-color:transparent;border:0;font-size:1em;}.toolbar .menu ul .toolbar-icon{padding-left:1.3333em;}[dir="rtl"] .toolbar .menu ul .toolbar-icon{padding-left:0;padding-right:1.3333em;}.toolbar .menu ul a.toolbar-icon:before{display:none;}.toolbar .toolbar-tray-vertical .menu ul a{padding-left:2.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul a{padding-left:0;padding-right:2.75em;}.toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:3.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:0;padding-right:3.75em;}.toolbar .toolbar-tray-vertical .menu a{padding-left:2.75em;padding-right:4em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu a{padding-left:4em;padding-right:2.75em;}.toolbar-bar .toolbar-icon-menu:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/hamburger.svg);}.toolbar-bar .toolbar-icon-menu:active:before,.toolbar-bar .toolbar-icon-menu.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/hamburger.svg);}.toolbar-bar .toolbar-icon-help:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/questionmark-disc.svg);}.toolbar-bar .toolbar-icon-help:active:before,.toolbar-bar .toolbar-icon-help.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/questionmark-disc.svg);}.toolbar-icon-system-admin-content:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/file.svg);}.toolbar-icon-system-admin-content:active:before,.toolbar-icon-system-admin-content.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/file.svg);}.toolbar-icon-system-admin-structure:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/orgchart.svg);}.toolbar-icon-system-admin-structure:active:before,.toolbar-icon-system-admin-structure.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/orgchart.svg);}.toolbar-icon-system-themes-page:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/paintbrush.svg);}.toolbar-icon-system-themes-page:active:before,.toolbar-icon-system-themes-page.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/paintbrush.svg);}.toolbar-icon-entity-user-collection:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/people.svg);}.toolbar-icon-entity-user-collection:active:before,.toolbar-icon-entity-user-collection.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/people.svg);}.toolbar-icon-system-modules-list:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/puzzlepiece.svg);}.toolbar-icon-system-modules-list:active:before,.toolbar-icon-system-modules-list.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/puzzlepiece.svg);}.toolbar-icon-system-admin-config:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/wrench.svg);}.toolbar-icon-system-admin-config:active:before,.toolbar-icon-system-admin-config.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/wrench.svg);}.toolbar-icon-system-admin-reports:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/barchart.svg);}.toolbar-icon-system-admin-reports:active:before,.toolbar-icon-system-admin-reports.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/barchart.svg);}.toolbar-icon-help-main:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg);}.toolbar-icon-help-main:active:before,.toolbar-icon-help-main.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/questionmark-disc.svg);}.toolbar .toolbar-bar .toolbar-icon:before{min-height:3em;}@media only screen and (min-width:16.5em){.toolbar .toolbar-bar .toolbar-icon{margin-left:0;margin-right:0;padding-left:0;padding-right:0;text-indent:-9999px;width:4em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:42% auto;left:0;width:100%;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:auto;right:0;}}@media only screen and (min-width:36em){.toolbar .toolbar-bar .toolbar-icon{background-position:left center;padding-left:2.75em;padding-right:1.3333em;text-indent:0;width:auto;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon{background-position:right center;padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:100% auto;left:0.6667em;width:20px;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:0;right:0.6667em;}}.toolbar-tab a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tab a{border-left:none;border-right:2px solid transparent;}.toolbar-tab a:focus{outline:none;border-color:#ddd;}.toolbar-lining button:focus{outline:none;}.toolbar-tray-horizontal a,.toolbar-box a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tray-horizontal a,[dir="rtl"] .toolbar-box a{border-left:none;border-right:2px solid transparent;}.toolbar-tray-horizontal a:focus,.toolbar-box a:focus{outline:none;border-color:#4479C0;background-color:#f5f5f5;text-decoration:none;}.toolbar-box a:hover:focus{text-decoration:underline;}.toolbar .toolbar-icon.toolbar-handle:focus{outline:none;background-color:#f5f5f5;}.toolbar .toolbar-icon.toolbar-handle{width:4em;text-indent:-9999px;}.toolbar .toolbar-icon.toolbar-handle:before{left:1.6667em;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle:before{left:auto;right:1.6667em;}.toolbar .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/chevron-disc-down.svg);}.toolbar .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/chevron-disc-up.svg);}.toolbar .menu .menu .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/twistie-down.svg);background-size:75%;}.toolbar .menu .menu .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/twistie-up.svg);background-size:75%;}.toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-left.svg);}[dir="rtl"] .toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-right.svg);}.toolbar .toolbar-toggle-orientation button{height:16px;padding:0;text-indent:-999em;width:20px;}.toolbar .toolbar-toggle-orientation button:before{left:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation button:before{left:auto;right:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation .toolbar-icon{padding-right:0;}.toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-left.svg);}.toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,.toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-left.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-right.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-right.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-up.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:hover:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-up.svg);}
+.toolbar-bar .toolbar-icon-user:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/person.svg);}.toolbar-bar .toolbar-icon-user:active:before,.toolbar-bar .toolbar-icon-user.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/person.svg);}
diff --git a/sites/default/files/css/css_2Upntnm4U2h4lIqJrtdAOgfV752yu4LromJ72_M6N5Y.css.gz b/sites/default/files/css/css_2Upntnm4U2h4lIqJrtdAOgfV752yu4LromJ72_M6N5Y.css.gz
new file mode 100644
index 0000000..9344ff0
--- /dev/null
+++ b/sites/default/files/css/css_2Upntnm4U2h4lIqJrtdAOgfV752yu4LromJ72_M6N5Y.css.gz
@@ -0,0 +1,23 @@
+     ko
+5&Ȏ$6h{@(PZmue˧GY#3|H$EĹs$rpf8H3G=8?&eyHt:6$i넞il$>.3ׁ>7b99~[IKO4$C[IŇ-8y\aIy]=QcT22$`
+,@ϗVVӌ0TMz(<N gЦl[&l
+B Jj%Z$!ǜ.;\bgmueo7)
+^GVG	krܑ?M!0>p<G4[FtCʤiVC[ jܭ45@A#XϚ_YZ"GJ
+И[Z@*.A,4%qɚd?%I|<VT )C`_8*+_D!PFqA3)oJ%LNK-R?MD'[k\h6#Q|]gh2Mf7^-Gh:x8nVgCz=[cqVʑ]CdZ5Q~3fQAkՔhBPb"Hm4$կw%`W{+WSE*u[#=xVrt51Ęgý}:&.0.*<ؤŔqjCQ&,^`UuD׿i/3
+½=q7rs`\AW>ğr=)3UP!.EB#b _9~V,wN,s8c&e?v,kc2O܉3o2Ǐe^al`?Gyypa6ƚקrNti+Dfki #.կi	Qu,%ҽq|u4Yq#d_Ms-kU  ==7ST$W{MuLX̂c+hwweab`R0ޑd#d(zb:o(v h_ow?gH44-o7؎%cBՔ/Љ=0C4<j 5-=I`$[>_>ۚhhӨLh;J"0	EVFQ4΂EU7;~E׫S:ډմhtOx{Xo6KȚ[?C|˕G>mLIP_I.1Kּi`X R=I8_=s>9:1nܯ'
+SC8//0BO2ؽws,$h0V90DMmP[`S٭UʿTsԣ4MS8n΁W3 OHhBM3
+rk%WQhH~2s]=ӥ[v~ֿ
+>ҟEzGb-?=j8AՆe{8jL[l7NŢ/R<e%׻8.oo"Ҽ=/bܢ}(+-pޢ#?8ZЯ
+b|HOM7tidpޙeoˌ30ݺЋ12iVt9Z/_ğ,(⽅T62AEP'9ٖ}ZWcyN*|fL=AL#3S2}[A$;0$M$QE\^8j{
+1&}ǯMe͒d̩#:17gФ/J]KAGajg9MhXGoS-.-Fw0'PuXDYu$}:!V0%lˮ:
+3`P=JY-*"l؉~e倅fre0NmqB#ʻf4	Cqh͘Ą̻,**f^ 4˷i>U.A;nN)хt=[~ASi0t-^?z~l<[ʢ8ZKKF:
+aȥ{23-$ͧ!G(Hhd!`
+Aצ RW{=ItR$k	w GL*/Y+!9`U'10"*jxᓲ~jNZ5u?[1ޤad;g?DJ&?lrZR0l&*a)
+0&ʲ1٬nSeU9ݤ<Uumni9DX_ELC |ϾJFKbIRcxbG"`w96(yz|5 e˪J5}6(8zVgK;Tד}ƒJϙ5ޓY&ʟi,QV	phU2da0Azwwg؂!8yY0lfFٚa\i*QG5^fx!pFM@9"ϭ賞OW&ؼXl>L$xsYR]&7}?`8:xOU\޺c߱^Dj
+p,']mhߟ]rPS| xj-C̍w{TŒS{>yd&3zXBm )o2GhzF֧˖W]`AzoXxfVeG;Kf9QlE*)l[Wһ=>:0+q]"c/pt7}?ɧLAуj1z2=i_c@I&lUݰZɈU|s!ޡښgd?ȸ].{\	Cr7u>a5x*cŹkMi@	G@{7,#LlZPA壿YBtO`[1P4km,2	Ai1mzQ4P˙fG͡4n(roeq]:1A(Ze:Ė@Kx2l+y*)HP/"Isr$ mVff,UKxz?'8\Σɰ,S#v>: 8Ebpb(AxtqDi>u7ϊiEq0Q)B}?:x~cxsŝUlu=9Obd]ZȾ%'S0+`_|ě>(ɩ^-҈ڀY1i "'*Q4iyKBsoPfp@f,&-jꡥ%WI%9xݹcr*q*dĽ4[	xqaaUR'JGL9cz۹UY=后N3*4//4Xk5sp,rjƞ2oS޿j4(&9ŋrw0:!TW'0;iF6uх)eFNTbn<pc#MPy\ב"j9^\[[vْ
+6QwpIo|ݬCt'O
+NSں5嶺XV 1SEҖmr=G?Ԧp~+Ŵ p}mg`R|9cQ"r詂y l H㎉-<bѫ3æ1p^?FJOZʹ0nmFnUxpkHs}wTgYYۭkR[cf<GE@:2K pk[7AR}4uzw#SKкːKfqKMj!i Ajy
+HA\ˠ!RmyJlu ~W&ov+cvP_ s:ѾX,[b r>g쉨H}$eq_l
+qup3G!Κ%䛇 |KY㊏0c#pWbIvZj4߷(mmUҟ[NALf0?zHUfHИ|4:i<\`7eKѯ[:@GomWI0*awxބEy)D]t:ygFĒHG@ ̶ؑ. #  KJ~B7I?F}~AɵTM8pa-<EVEK3Ͷdrz1bË8'uD둀|חBU@;/~˞)+XiztL1mbw Ѻ91%jʴ=ǘ1X$~T~o/)gL]oJTcDڗ~CM~IqpB%-QcD:w%%ϯIiccEv%Yʅ ,.eq[d1e iMZcz I\rw|G҉BfSiC }ĩiݢ m/VC%r_!@} V2+UY'<]|\^FfU+: ZzZՌffO/Pԕ3J'E[Wgʞ[gڬ][ʹұ̱s,m[IZo63RϤ7wIfVKw)_?JEBލF]ylЦZN,!&";k|qJ¥X;փmv{ܗLjY$F@L}Hd9;uՊ3`/hwk`0~y"II5W^j2ߩ\
+jD`C$
+NW{ B eY$8+BNwadyzdtu/B`s  
\ No newline at end of file
diff --git a/sites/default/files/css/css_2bFnXHXIbJniC7ITmm1BfFGeEcUamPJM510ZwqUthiU.css b/sites/default/files/css/css_2bFnXHXIbJniC7ITmm1BfFGeEcUamPJM510ZwqUthiU.css
new file mode 100644
index 0000000..7fa0bf3
--- /dev/null
+++ b/sites/default/files/css/css_2bFnXHXIbJniC7ITmm1BfFGeEcUamPJM510ZwqUthiU.css
@@ -0,0 +1,28 @@
+body{color:#333;background:#fff;font:normal 81.3%/1.538em "Lucida Grande","Lucida Sans Unicode","DejaVu Sans","Lucida Sans",sans-serif;}a,.link{color:#0074bd;text-decoration:none;}a:hover,.link:hover,a:focus,.link:focus{text-decoration:underline;outline:0;}hr{margin:0;padding:0;border:none;height:1px;background:#cccccc;}summary,.fieldgroup:not(.form-composite) > legend{font-weight:bold;text-transform:uppercase;}.simpletest-results-form summary{text-transform:none;}h1,.heading-a{font-weight:bold;margin:0;font-size:1.625em;line-height:1.875em;}h2,.heading-b{font-weight:bold;margin:10px 0;font-size:1.385em;}h3,.heading-c{font-weight:bold;margin:10px 0;font-size:1.231em;}h4,.heading-d{font-weight:bold;margin:10px 0;font-size:1.154em;}h5,.heading-e{font-weight:bold;margin:10px 0;font-size:1.077em;}h6,.heading-f{font-weight:bold;margin:10px 0;font-size:1.077em;}p{margin:1em 0;}dl{margin:0 0 20px;}dl dd,dl dl{margin-left:20px;margin-bottom:10px;}[dir="rtl"] dl dd,[dir="rtl"] dl dl{margin-right:20px;}blockquote{margin:1em 40px;}address{font-style:italic;}u,ins{text-decoration:underline;}s,strike,del{text-decoration:line-through;}big{font-size:larger;}small{font-size:smaller;}sub{vertical-align:sub;font-size:smaller;line-height:normal;}sup{vertical-align:super;font-size:smaller;line-height:normal;}nobr{white-space:nowrap;}abbr,acronym{border-bottom:dotted 1px;}ul{list-style-type:disc;list-style-image:none;margin:0.25em 0 0.25em 1.5em;}[dir="rtl"] ul{margin-left:0;margin-right:1.5em;}ol{list-style-type:decimal;margin:0.25em 0 0.25em 2em;padding:0;}[dir="rtl"] ol{margin-left:0;margin-right:2em;}quote,code{margin:.5em 0;}code,pre,kbd{font-size:1.231em;}pre{margin:0.5em 0;white-space:pre-wrap;}details{line-height:1.295em;}details summary{padding-top:0.5em;padding-bottom:0.5em;}details summary:focus{border-top:3px solid #0074bd;outline:none;color:#0074bd;margin-top:-3px;}
+.leader{margin-top:20px;margin-top:1.538rem;}.leader-double{margin-top:40px;margin-top:3.076rem;}.leader-triple{margin-top:60px;margin-top:4.614rem;}.leader-quadruple{margin-top:80px;margin-top:6.152rem;}.trailer{margin-bottom:20px;margin-bottom:1.538rem;}.trailer-double{margin-bottom:40px;margin-bottom:3.076rem;}.trailer-triple{margin-bottom:60px;margin-bottom:4.614rem;}.trailer-quadruple{margin-bottom:80px;margin-bottom:6.152rem;}
+@media print{*{background-color:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important;}body{padding-top:0;}a,a:visited{text-decoration:underline;}pre,blockquote{border:1px solid #999;page-break-inside:avoid;}thead{display:table-header-group;}tr,img{page-break-inside:avoid;}img{max-width:100% !important;}p,h2,h3{orphans:3;widows:3;}h2,h3{page-break-after:avoid;}a,.link{color:#000;text-decoration:underline;}.button,.button--primary{background:none !important;}.messages{border-width:1px;border-color:#999;}.is-collapse-enabled .tabs{max-height:999em;}.is-horizontal .tabs__tab{margin:0 4px !important;border-radius:4px 4px 0 0 !important;}.dropbutton-multiple .dropbutton .secondary-action{display:block;}.js .dropbutton-widget,.js td .dropbutton-widget{position:relative;}.js .dropbutton .dropbutton-toggle{display:none;}.js .dropbutton-multiple .dropbutton-widget{background:none;border-radius:4px;}input.form-autocomplete,input.form-text,input.form-tel,input.form-email,input.form-url,input.form-search,input.form-number,input.form-color,input.form-file,textarea.form-textarea,select.form-select{border-width:1px;}}
+.page-content{margin-bottom:80px;}
+.ui-widget{background:none;}.ui-widget-content{border:none;}.ui-state-default,.ui-state-hover,.ui-state-focus,.ui-state-active{outline:0;}.ui-state-highlight{font-weight:bold;}.ui-state-active,.ui-widget-content .ui-state-active{color:#840;background:#fe6;border:solid 1px #ed5;}.ui-state-error,.ui-widget-content .ui-state-error{color:#fff;background:#e63;border-color:#d52;}.ui-state-disabled,.ui-widget-content .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);}.ui-icon{display:block;text-indent:-99999px;width:16px;height:16px;overflow:hidden;background-repeat:no-repeat;background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-222222-256x240.png);}.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-222222-256x240.png);}.ui-state-default .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-888888-256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-highlight .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-454545-256x240.png);}.ui-state-active .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-800000-256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-ffffff-256x240.png);}.ui-widget p .ui-icon{margin:2px 3px 0 0;}[dir="rtl"] .ui-widget p .ui-icon{margin:2px 0 0 3px;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-off{background-position:-96px -144px;}.ui-icon-radio-on{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-icon-carat-1-n{background-position:0 0;}.ui-accordion{border:none;}.ui-accordion .ui-accordion-header{border:solid 1px #ccc;text-transform:uppercase;}.ui-accordion h3.ui-accordion-header,#block-system-main h3.ui-accordion-header{font-size:1.1em;margin:10px 0;}#block-system-main .ui-accordion h3.ui-state-active,.ui-accordion h3.ui-state-active{margin-bottom:0;}.ui-accordion .ui-accordion-header a{display:block;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border:solid 1px #ccc;border-top:0;}.ui-tabs{padding:0;}.ui-tabs .ui-tabs-nav{padding:5px 10px 4px;margin:0;line-height:20px;border-bottom:solid 1px #ccc;border-bottom-left-radius:0;border-bottom-right-radius:0;}.ui-tabs .ui-tabs-nav li{padding:0 1em 0 10px;margin:0;list-style:none;}[dir="rtl"] .ui-tabs .ui-tabs-nav li{padding:0 10px 0 1em;}.ui-tabs .ui-tabs-nav li a{float:none;padding:0 10px;border-radius:10px;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a{color:#fff;background:#666;font-weight:normal;}.ui-widget-overlay{background:#000;opacity:.70;filter:Alpha(Opacity=70);}.ui-slider{border:solid 1px #ccc;}.ui-slider .ui-slider-range{background:#e4e4e4;}.ui-slider .ui-slider-handle{border:1px solid #e4e4e4;border-bottom:1px solid #b4b4b4;border-left-color:#D2D2D2;border-right-color:#D2D2D2;background-color:#e4e4e4;border-radius:4px;}.ui-slider a.ui-state-active,.ui-slider .ui-slider-handle:active{background:#666;color:#fff;border:solid 1px #555;}.ui-progressbar{background:#e4e4e4;height:1.4em;}.ui-progressbar .ui-progressbar-value{background:#0072b9 url(http://localhost/pub_html/contri/drupal/core/misc/progress.gif);height:1.5em;}.ui-datepicker{border:1px solid #A6A6A6;background:#FFF;padding:0;}.ui-datepicker-calendar thead tr{border-bottom:1px solid #A6A6A6;border-top:1px solid #A6A6A6;}.ui-datepicker-calendar tr:hover{background:transparent;}.ui-datepicker td{padding:0;}.ui-datepicker td span,.ui-datepicker td a{color:inherit;text-align:center;}.ui-datepicker .ui-datepicker-header .ui-datepicker-next-hover{cursor:pointer;right:2px;top:2px;}.ui-datepicker .ui-datepicker-header .ui-datepicker-prev-hover{cursor:pointer;left:2px;top:2px;}.ui-datepicker td a.ui-state-hover{background-color:#f7fcff;}.ui-datepicker .ui-state-active{background:#ebeae4;border:none;}.ui-datepicker .ui-state-highlight{font-weight:bold;color:inherit;}.ui-autocomplete{background:#fff;border:1px solid #ccc;}.ui-autocomplete .ui-menu-item.ui-state-focus,.autocomplete .ui-menu-item.ui-state-hover{background:#0072b9;margin:0;}.ui-autocomplete .ui-state-focus a,.autocomplete .ui-state-hover a{color:#fff;}
+ul.admin-list{margin:0;padding:0;}.admin-list li{position:relative;border-top:1px solid #bfbfbf;margin:0;list-style-type:none;list-style-image:none;padding:0;}.admin-list.compact li{border:none;}.admin-list li a{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-right.svg) no-repeat 1px 16px;display:block;padding:14px 15px 14px 25px;min-height:0;}[dir="rtl"] .admin-list li a{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-left.svg) no-repeat right 16px;padding-right:25px;padding-left:15px;}.admin-list.compact li a{background-image:none;padding:2px 0;}.admin-list li a:hover,.admin-list li a:focus,.admin-list li a:active{text-decoration:none;}.admin-list li a .label{font-size:1.0769em;}.admin-list li a:hover .label,.admin-list li a:focus .label,.admin-list li a:active .label{text-decoration:underline;}
+.content-header{overflow:hidden;background-color:#e0e0d8;padding:24px 0 0;}
+.breadcrumb{line-height:1em;padding:20px 0 10px;}
+.button{box-sizing:border-box;display:inline-block;position:relative;text-align:center;line-height:normal;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;padding:4px 1.5em;border:1px solid #a6a6a6;border-radius:20em;background-color:#f2f1eb;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);color:#333;text-decoration:none;text-shadow:0 1px hsla(0,0%,100%,0.6);font-weight:600;font-size:14px;font-size:0.875rem;-webkit-transition:all 0.1s;transition:all 0.1s;-webkit-font-smoothing:antialiased;}.button:hover,.button:focus{background-color:#f9f8f6;background-image:-webkit-linear-gradient(top,#fcfcfa,#e9e9dd);background-image:linear-gradient(to bottom,#fcfcfa,#e9e9dd);color:#1a1a1a;text-decoration:none;outline:none;}.button:hover{box-shadow:0 1px 2px hsla(0,0%,0%,0.125);}.button:focus{z-index:10;border:1px solid #3AB2FF;box-shadow:0 0 0.5em 0.1em hsla(203,100%,60%,0.7);}.button:active{border:1px solid #a6a6a6;background-color:#dfdfd9;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);-webkit-transition:none;transition:none;}.button--primary{border-color:#1e5c90;background-color:#0071b8;background-image:-webkit-linear-gradient(top,#007bc6,#0071b8);background-image:linear-gradient(to bottom,#007bc6,#0071b8);color:#fff;text-shadow:0 1px hsla(0,0%,0%,0.5);font-weight:700;-webkit-font-smoothing:antialiased;}.button--primary:hover,.button--primary:focus{background-color:#2369a6;background-image:-webkit-linear-gradient(top,#0c97ed,#1f86c7);background-image:linear-gradient(to bottom,#0c97ed,#1f86c7);border-color:#1e5c90;color:#fff;}.button--primary:focus{border:1px solid #1280DF;}.button--primary:hover{box-shadow:0 1px 2px hsla(203,10%,10%,0.25);}.button--primary:active{background-image:-webkit-linear-gradient(top,#08639b,#0071b8);background-image:linear-gradient(to bottom,#08639b,#0071b8);border-color:#144b78;box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.button-action:before{margin-left:-0.2em;padding-right:0.2em;font-size:14px;font-size:0.875rem;line-height:16px;-webkit-font-smoothing:auto;}[dir="rtl"] .button-action:before{margin-right:-0.2em;margin-left:0;padding-right:0;padding-left:0.2em;}.no-touch .button--small{font-size:13px;font-size:0.813rem;padding:2px 1em;}.button:disabled,.button:disabled:active,.button.is-disabled,.button.is-disabled:active{border-color:#d4d4d4;background:#ededed;box-shadow:none;color:#5c5c5c;font-weight:normal;cursor:default;text-shadow:0 1px hsla(0,0%,100%,0.6);}.link{display:inline;cursor:pointer;padding:0;border:0;background:none;-webkit-appearance:none;-moz-appearance:none;color:#0074bd;text-decoration:none;}.link:hover,.link:focus{color:#008ee6;text-decoration:underline;}.button--danger{display:inline;cursor:pointer;padding:0;border:0;border-radius:0;box-shadow:none;background:none;-webkit-appearance:none;-moz-appearance:none;color:#c72100;font-weight:400;text-decoration:underline;}.button--danger:hover,.button--danger:focus,.button--danger:active{color:#ff2a00;text-decoration:underline;text-shadow:none;padding:0;border:0;box-shadow:none;background:none;}.button--danger:disabled,.button--danger.is-disabled{color:#737373;cursor:default;text-decoration:none;-webkit-font-smoothing:antialiased;padding:0;border:0;box-shadow:none;background:none;}
+.color-success{color:#325e1c;background-color:#f3faef;}.color-warning{color:#734c00;background-color:#fdf8ed;}.color-error{color:#a51b00;background-color:#fcf4f2;}
+.messages{margin:9px 0 10px 8px;}[dir="rtl"] .messages{margin:9px 8px 10px 0;}.messages pre{margin:0;}
+.js .dropbutton .dropbutton-action > input,.js .dropbutton .dropbutton-action > a,.js .dropbutton .dropbutton-action > button{color:#333333;text-decoration:none;padding:0;margin:0;font-weight:600;line-height:normal;-webkit-font-smoothing:antialiased;text-align:left;}[dir="rtl"] .js .dropbutton .dropbutton-action > input,[dir="rtl"] .js .dropbutton .dropbutton-action > a,[dir="rtl"] .js .dropbutton .dropbutton-action > button{text-align:right;}.js .dropbutton-action.last{border-radius:0 0 0 1em;}[dir="rtl"] .js .dropbutton-action.last{border-radius:0 0 1em 0;}.js .dropbutton-widget .button{background:transparent;border:0;border-radius:0;box-shadow:none;}.js .dropbutton-multiple .dropbutton{border-right:0;}[dir="rtl"].js .dropbutton-multiple .dropbutton{border-left:0;}.dropbutton{margin:0;padding:0;list-style-type:none;}.dropbutton li + li{margin-top:10px;}.js .dropbutton li{margin-bottom:0;margin-right:0;}.js .dropbutton li + li{margin-top:0;}@media screen and (min-width:37.5625em){.dropbutton li{display:inline-block;}.dropbutton li + li{margin-left:1em;margin-top:0;}.js .dropbutton li + li{margin-left:0;}}.js .dropbutton-multiple .dropbutton-widget{border:1px solid #a6a6a6;border-radius:20em;background-color:#f2f1eb;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);text-shadow:0 1px hsla(0,0%,100%,0.6);}.dropbutton-multiple.open .dropbutton-widget{border-radius:1em;}.js .dropbutton-widget .dropbutton-action a,.js .dropbutton-widget .dropbutton-action input,.js .dropbutton-widget .dropbutton-action button{border-radius:20em 0 0 20em;padding:4px 1.5em;display:block;width:100%;}[dir="rtl"].js .dropbutton-widget .dropbutton-action a,[dir="rtl"].js .dropbutton-widget .dropbutton-action input,[dir="rtl"].js .dropbutton-widget .dropbutton-action button{border-radius:0 20em 20em 0;}.js .dropbutton-widget .dropbutton-action a:focus,.js .dropbutton-widget .dropbutton-action input:focus,.js .dropbutton-widget .dropbutton-action button:focus{text-decoration:underline;}.js .dropbutton-multiple.open .dropbutton-action a,.js .dropbutton-multiple.open .dropbutton-action .button{border-radius:0;}.js .dropbutton-multiple.open .dropbutton-action:first-child a,.js .dropbutton-multiple.open .dropbutton-action:first-child .button{border-radius:0.9em 0 0 0;}[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child a,[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child .button{border-radius:0 0.9em 0 0;}.js .dropbutton-multiple.open .dropbutton-action:last-child a,.js .dropbutton-multiple.open .dropbutton-action:last-child .button{border-radius:0 0 0 0.9em;}[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child a,[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child .button{border-radius:0 0 0.9em 0;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action a:hover,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action button:hover,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action input:hover,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action a:focus,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action button:focus,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action input:focus{background-color:#f9f8f6;background-image:-webkit-linear-gradient(top,#fcfcfa,#e9e9dd);background-image:linear-gradient(to bottom,#fcfcfa,#e9e9dd);color:#1a1a1a;box-shadow:0 1px 2px hsla(0,0%,0%,0.125);z-index:3;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action a:active,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action input:active,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action button:active{text-decoration:none;background-color:#dfdfd9;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.dropbutton .secondary-action{border-top:1px solid #bfbfba;}.dropbutton-single .dropbutton-widget{border:0;position:static;display:inline-block;}.dropbutton-single .dropbutton-action a{padding:4px 1.5em;border:1px solid #a6a6a6;border-radius:20em!important;background-color:#f2f1eb;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);color:#333333;text-decoration:none;text-shadow:0 1px hsla(0,0%,100%,0.6);font-weight:600;-webkit-transition:all 0.1s;transition:all 0.1s;-webkit-font-smoothing:antialiased;width:auto!important;}.dropbutton-single .dropbutton-action a:hover,.dropbutton-single .dropbutton-action a:focus{background-color:#f9f8f6;background-image:-webkit-linear-gradient(top,#fcfcfa,#e9e9dd);background-image:linear-gradient(to bottom,#fcfcfa,#e9e9dd);color:#1a1a1a;text-decoration:none;outline:none;}.dropbutton-single .dropbutton-action a:hover,.dropbutton-single .dropbutton-action a:focus{box-shadow:0 1px 2px hsla(0,0%,0%,0.125);}.dropbutton-single .dropbutton-action a:active{background-color:#dfdfd9;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);-webkit-transition:none;transition:none;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button{border-left:1px solid #a6a6a6;outline:none;}[dir="rtl"].js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button{border-right:1px solid #a6a6a6;border-left:0;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button{border-radius:0 20em 20em 0;}[dir="rtl"].js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button{border-radius:20em 0 0 20em;}.dropbutton-multiple.open .dropbutton-widget .dropbutton-toggle button{border-radius:0 1em 1em 0;}[dir="rtl"] .dropbutton-multiple.open .dropbutton-widget .dropbutton-toggle button{border-radius:1em 0 0 1em;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:hover,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:focus{background-color:#f9f8f6;background-image:-webkit-linear-gradient(top,#fcfcfa,#e9e9dd);background-image:linear-gradient(to bottom,#fcfcfa,#e9e9dd);color:#1a1a1a;text-decoration:none;box-shadow:0 1px 2px hsla(0,0%,0%,0.125);z-index:3;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:active{background-color:#dfdfd9;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.dropbutton-arrow{border-top-color:#333;right:35%;top:54%;}[dir="rtl"] .dropbutton-arrow{left:35%;right:auto;}.dropbutton-multiple.open .dropbutton-arrow{border-bottom:0.3333em solid #333;border-top-color:transparent;top:0.6667em;}.js .form-actions .dropbutton .dropbutton-action > *{color:#fff;font-weight:700;text-shadow:0 1px hsla(0,0%,0%,0.5);}.js .form-actions .dropbutton-widget{border-color:#1e5c90;background-color:#0071b8;background-image:-webkit-linear-gradient(top,#007bc6,#0071b8);background-image:linear-gradient(to bottom,#007bc6,#0071b8);text-shadow:0 1px hsla(0,0%,0%,0.5);position:relative;}.form-actions .dropbutton-multiple.open .dropbutton-widget{background-image:-webkit-linear-gradient(top,#007bc6,#0071b8);background-image:linear-gradient(to bottom,#007bc6,#0071b8);}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-action .button:hover,.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-action .button:focus{background-color:#2369a6;background-image:-webkit-linear-gradient(top,#0c97ed,#1f86c7);background-image:linear-gradient(to bottom,#0c97ed,#1f86c7);box-shadow:0 1px 2px hsla(203,10%,10%,0.25);color:#fff;}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-action .button:active{background-image:-webkit-linear-gradient(top,#08639b,#0071b8);background-image:linear-gradient(to bottom,#08639b,#0071b8);border-color:#144b78;box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button,.form-actions .dropbutton .secondary-action{border-color:#1e5c90;}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button{background-image:-webkit-linear-gradient(top,#007bc6,#0071b8);background-image:linear-gradient(to bottom,#007bc6,#0071b8);}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:hover,.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:focus{background-color:#2369a6;background-image:-webkit-linear-gradient(top,#0c97ed,#1f86c7);background-image:linear-gradient(to bottom,#0c97ed,#1f86c7);}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:active{background-image:-webkit-linear-gradient(top,#08639b,#0071b8);background-image:linear-gradient(to bottom,#08639b,#0071b8);border-color:#144b78;box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.form-actions .dropbutton-arrow{border-top-color:#fff;}.form-actions .dropbutton-multiple.open .dropbutton-arrow{border-bottom:0.3333em solid white;}
+.entity-meta{background-color:#ececec;border-bottom:0;border-left:1px solid #bfbfbf;border-right:1px solid #bfbfbf;border-top:0;box-shadow:inset 0 0 5px rgba(0,0,0,.15);margin-top:0;padding-top:0;}.entity-meta-header,.entity-meta details{background-color:#f7f7f7;border-top:1px solid #bfbfbf;border-bottom:1px solid #bfbfbf;}.entity-meta-header{padding:1em 1.5em;}.entity-meta-header .form-item{margin:.25em 0;}.entity-meta-header .published{font-size:1.231em;font-weight:bold;text-shadow:0 1px 0 #fff;}.entity-meta-header .changed{font-style:italic;}.entity-meta details{border-left:0;border-right:0;border-top:1px solid #ffffff;margin:0;}.entity-meta details[open]{background-color:transparent;background-image:-webkit-linear-gradient(top,rgba(0,0,0,.125),transparent 4px);background-image:linear-gradient(to bottom,rgba(0,0,0,.125),transparent 4px);border-top-width:0;padding-top:1px;}.entity-meta details[open] + [open]{background-image:none;border-top-width:1px;padding-top:0;}.entity-meta details > .details-wrapper{padding-top:0;}.entity-meta details > summary{padding:0.85em 1.25em;text-shadow:0 1px 0 white;}.entity-meta details .summary{display:none;}
+#field-display-overview input.field-plugin-settings-edit{margin:0;padding:1px 8px;}#field-display-overview tr.field-plugin-settings-changed{background:#ffffbb;}#field-display-overview tr.drag{background:#ffee77;}#field-display-overview tr.field-plugin-settings-editing{background:#d5e9f2;}#field-display-overview .field-plugin-settings-edit-form .form-item{margin:10px 0;}#field-display-overview .field-plugin-settings-edit-form .form-submit{margin-bottom:0;}#field-display-overview .form-item-fields-field-image-settings-edit-form-settings-image-style .description{display:inline-block;margin-left:1em;}[dir="rtl"] #field-display-overview .form-item-fields-field-image-settings-edit-form-settings-image-style .description{margin-left:0;margin-right:1em;}
+form{margin:0;padding:0;}fieldset:not(.fieldgroup){background-color:#fcfcfa;border-radius:2px;margin:1em 0;padding:30px 18px 18px;position:relative;}fieldset:not(.fieldgroup) legend{font-size:1em;font-weight:bold;letter-spacing:0.08em;position:absolute;text-transform:uppercase;top:10px;}.fieldgroup{min-width:0;}@-moz-document url-prefix(){.fieldgroup{display:table-cell;}}.form-item{margin:0.75em 0;}.form-type-checkbox{padding:0;}label{display:table;margin:0 0 0.1em;padding:0;font-weight:bold;}label.error{color:#a51b00;}label[for]{cursor:pointer;}.form-item label.option{text-transform:none;}.form-item label.option input{vertical-align:middle;}.form-disabled label{color:#737373;}.form-disabled input.form-text,.form-disabled input.form-tel,.form-disabled input.form-email,.form-disabled input.form-url,.form-disabled input.form-search,.form-disabled input.form-number,.form-disabled input.form-color,.form-disabled input.form-file,.form-disabled textarea.form-textarea,.form-disabled select.form-select{border-color:#d4d4d4;background-color:hsla(0,0%,0%,.08);box-shadow:none;}.form-item input.error,.form-item textarea.error,.form-item select.error{border-width:2px;border-color:#e62600;background-color:hsla(15,75%,97%,1);box-shadow:inset 0 5px 5px -5px #b8b8b8;color:#a51b00;}.form-item input.error:focus,.form-item textarea.error:focus,.form-item select.error:focus{border-color:#e62600;outline:0;box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 0 8px 1px #e62600;background-color:#fcf4f2;}.form-required:after{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/required.svg);background-size:7px 7px;width:7px;height:7px;}ul.tips,div.description,.form-item .description{margin:0.2em 0 0 0;color:#595959;font-size:0.95em;}.form-item .description.error{color:#a51b00;}ul.tips li{margin:0.25em 0 0.25em 1.5em;}[dir="rtl"] ul.tips li{margin:0.25em 1.5em 0.25em 0;}.form-type-radio .description,.form-type-checkbox .description{margin-left:1.5em;}[dir="rtl"] .form-type-radio .description,[dir="rtl"] .form-type-checkbox .description{margin-left:0;margin-right:1.5em;}.form-text,.form-textarea{border-radius:2px;font-size:1em;line-height:normal;}input.form-autocomplete,input.form-text,input.form-tel,input.form-email,input.form-url,input.form-search,input.form-number,input.form-color,input.form-file,input.form-date,input.form-time,textarea.form-textarea{box-sizing:border-box;padding:.3em .4em .3em .5em;max-width:100%;border:1px solid #b8b8b8;border-top-color:#999;background:#fff;color:#333;border-radius:2px;background:#fcfcfa;box-shadow:inset 0 1px 2px rgba(0,0,0,.125);font-size:1em;color:#595959;-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;}[dir="rtl"] textarea.form-textarea{padding:.3em .5em .3em .4em;}.form-text:focus,.form-tel:focus,.form-email:focus,.form-url:focus,.form-search:focus,.form-number:focus,.form-color:focus,.form-file:focus,.form-textarea:focus,.form-date:focus,.form-time:focus{border-color:#40b6ff;outline:0;box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 0 8px #40b6ff;background-color:#fff;}.confirm-parent,.password-parent{overflow:visible;width:auto;}.form-item .password-suggestions{float:left;clear:left;width:100%;}[dir="rtl"] .form-item .password-suggestions{float:right;clear:right;}.form-item-pass .description{clear:both;}select{max-width:100%;}@media screen and (-webkit-min-device-pixel-ratio:0){select{cursor:pointer;-webkit-appearance:none;padding:1px 1.571em 1px 0.5em;border:1px solid #a6a6a6;border-radius:0.143em;background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/333333/caret-down.svg) no-repeat 99% 63%,-webkit-linear-gradient(top,#f6f6f3,#e7e7df);text-shadow:0 1px hsla(0,0%,100%,0.6);font-size:0.875rem;-webkit-transition:all 0.1s;transition:all 0.1s;-webkit-font-smoothing:antialiased;}[dir="rtl"] select{padding:1px 0.714em 1px 1.571em;background-position:1% 63%,0 0;}select:focus,select:hover{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/333333/caret-down.svg),-webkit-linear-gradient(top,#fcfcfa,#e9e9dd);color:#1a1a1a;}select:hover{box-shadow:0 1px 2px hsla(0,0%,0%,0.125);}}#edit-cancel{margin-left:10px;}[dir="rtl"] #edit-cancel{margin-left:0;margin-right:10px;}@media screen and (max-width:600px){input.form-autocomplete,input.form-text,input.form-tel,input.form-email,input.form-url,input.form-search,input.form-number,input.form-color,input.form-file,textarea.form-textarea{width:100%;font-size:1.2em;line-height:1.2em;}input.form-number{width:auto;}.form-actions input,.form-wrapper input[type="submit"]{float:none;margin-left:0;margin-right:0;margin-top:10px;padding-bottom:6px;width:100%;}.form-actions input:first-child,.form-wrapper input[type="submit"]:first-child{margin-top:0;}details summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;}.password-strength{width:100%;}div.form-item div.password-suggestions{float:none;}#dblog-filter-form .form-actions{float:none;padding:0;}#edit-cancel{display:block;margin:10px 0 0 0;}}#diff-inline-form select,div.filter-options select{padding:0;}
+.help p{margin:0 0 10px;}
+.item-list ul{list-style-type:disc;list-style-image:none;margin:0.25em 0 0.25em 1.5em;}[dir="rtl"] .item-list ul{margin:0.25em 1.5em 0.25em 0;}.item-list ul li,.menu-item{list-style-type:disc;list-style-image:none;}.menu-item{margin:0;}.item-list ul li.collapsed,.menu-item--collapsed{list-style-image:url(http://localhost/pub_html/contri/drupal/core/misc/menu-collapsed.png);list-style-type:disc;}.item-list ul li.expanded,.menu-item--expanded{list-style-image:url(http://localhost/pub_html/contri/drupal/core/misc/menu-expanded.png);list-style-type:circle;}ul.links li,ul.inline li{padding-right:1em;}[dir="rtl"] ul.links li,[dir="rtl"] ul.inline li{padding-left:1em;}ul.inline li{display:inline;}
+.system-modules fieldset{border:0;border-top:1px solid #ccc;}.system-modules details{border:0;margin:0;padding:0;}.system-modules summary{border-bottom:1px solid #ccc;}.system-modules [open] summary{border-bottom:none;}.system-modules .details-wrapper{padding:0 0 0.5em 0;}.system-modules .fieldset-wrapper{padding:0;}.system-modules table,.locale-translation-status-form table{border:0;}.system-modules tr.even,.system-modules tr.odd,.locale-translation-status-form tr.even,.locale-translation-status-form tr.odd{background:#f3f4ee;border:0;border-bottom:10px solid #fff;}.system-modules tr td:last-child,.locale-translation-status-form tr td:last-child{border:0;}.system-modules table th,.locale-translation-status-form table th{border:0;border-bottom:10px solid #fff;}.system-modules .sticky-header th,.locale-translation-status-form .sticky-header th{border:0;}
+.node__submitted{margin:1em 0;}
+.page-title{display:inline-block;-webkit-font-smoothing:antialiased;}
+.pager__items{margin:0.25em 0 0.25em 1.5em;padding:0;}[dir="rtl"] .pager__items{margin:0.25em 1.5em 0.25em 0;}.pager__item{display:inline-block;color:#8c8c8c;font-size:1.08em;margin:0;padding:0 0.4em;}.pager__item a{border-bottom:2px solid transparent;line-height:1.55em;padding:0 5px 2px;font-weight:600;text-decoration:none;transition:border-bottom-color 0.2s;-webkit-font-smoothing:antialiased;}.pager__item.is-active a{border-bottom-width:3px;border-bottom-color:#2a678c;color:#2a678c;font-weight:700;}.pager__item a:hover,.pager__item a:focus{border-bottom-color:#3395d2;color:#3395d2;}.pager__item--next a,.pager__item--last a,.pager__item--first a,.pager__item--previous a{border-bottom-width:0;color:#2a678c;}
+.panel{margin:0 0 20px;padding:9px;background:#f8f8f8;border:1px solid #ccc;}.panel__title{font-size:1em;text-transform:uppercase;margin:0;padding-bottom:9px;}
+.skip-link{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);z-index:50;background:#444;color:#fff;font-size:0.94em;padding:1px 10px 2px;border-radius:0 0 10px 10px;}.skip-link:focus{text-decoration:none;}.skip-link.visually-hidden.focusable:focus{position:absolute !important;}
+table{width:100%;margin:0 0 10px;}caption{text-align:left;}[dir="rtl"] caption{text-align:right;}th{text-align:left;padding:10px 12px;}[dir="rtl"] th{text-align:right;}thead th{background:#f5f5f2;border:solid #bfbfba;border-width:1px 0;color:#333;text-transform:uppercase;}tr{border-bottom:1px solid #e6e4df;padding:0.1em 0.6em;}thead > tr{border-bottom:1px solid #000;}tbody tr:hover,tbody tr:focus{background:#f7fcff;}tbody tr.color-warning:hover,tbody tr.color-warning:focus{background:#fdf8ed;}tbody tr.color-error:hover,tbody tr.color-error:focus{background:#fcf4f2;}td,th{vertical-align:middle;}td{padding:10px 12px;text-align:left;}[dir="rtl"] td{text-align:right;}th > a{position:relative;display:block;}th > a:after{content:'';display:block;position:absolute;top:0;bottom:-10px;left:0;right:0;border-bottom:2px solid transparent;-webkit-transition:all 0.1s;transition:all 0.1s;}th.is-active > a{color:#004875;}th.is-active img{position:absolute;right:0;top:50%;}[dir="rtl"] th.is-active img{right:auto;left:0;}th.is-active > a:after{border-bottom-color:#004875;}th > a:hover,th > a:focus,th.is-active > a:hover,th.is-active > a:focus{color:#008ee6;text-decoration:none;}th > a:hover:after,th > a:focus:after,th.is-active > a:hover:after,th.is-active > a:focus:after{border-bottom-color:#008ee6;}td .item-list ul{margin:0;}td.is-active{background:none;}th.select-all{width:1px;}.caption{margin-bottom:1.2em;}@media screen and (max-width:37.5em){th.priority-low,td.priority-low,th.priority-medium,td.priority-medium{display:none;}}@media screen and (max-width:60em){th.priority-low,td.priority-low{display:none;}}
+.system-status-report__entry{border-top:1px solid #ccc;border-bottom:inherit;}.system-status-report__entry:first-child{border-top:1px solid #bebfb9;}.system-status-report__entry:last-child{border-bottom:1px solid #bebfb9;}
+.is-collapse-enabled  .tabs,.is-horizontal .tabs{position:relative;}.is-collapse-enabled .tabs:before,.is-horizontal .tabs:before{content:'';display:block;background-color:#A6A6A6;height:1px;position:absolute;bottom:0;left:0;z-index:10;right:0;}.content-header .is-horizontal .tabs:before,.content-header .is-collapse-enabled .tabs:before{left:-2.5em;right:-2.5em;}.tabs__tab{position:relative;display:block;overflow:hidden;box-sizing:border-box;margin:-1px 0 0;padding:9px 2em 7px 1em;width:100%;border:1px solid #bfbfbf;background-color:rgba(242,242,240,0.7);color:#0074bd;text-overflow:ellipsis;white-space:nowrap;}[dir="rtl"] .tabs__tab{padding-left:2em;padding-right:1em;}.tabs__tab:hover,.tabs__tab:focus{color:#008ee6;background-color:#fafaf7;}li.tabs__tab{display:block;padding:0;}[dir="rtl"] li.tabs__tab{padding-left:0;padding-right:0;}li.tabs__tab a{padding:9px 2em 7px 1em;}[dir="rtl"] li.tabs__tab a{padding-left:2em;padding-right:1em;}.tabs a:hover,.tabs a:focus{text-decoration:none;}.tabs.primary{clear:both;margin:16px 0 0;margin:1rem 0 0;}.tabs.primary .tabs__tab.is-active{z-index:15;border-color:#a6a6a6;border-radius:4px 0 0 0;background-color:#ffffff;color:#004f80;}[dir="rtl"] .tabs.primary .tabs__tab.is-active{border-top-left-radius:0;border-top-right-radius:4px;}.tabs.primary a{background:none;}.tabs.primary a:focus{color:#008ee6;background-color:#fafaf7;text-decoration:underline;}.tabs.primary .is-active a:focus{background:none;text-decoration:underline;}@media screen and (min-width:18.75em){.tabs.primary a{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/0074bd/chevron-right.svg) 99% center no-repeat;}[dir="rtl"] .tabs.primary a{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/0074bd/chevron-left.svg) 1% center no-repeat;}.tabs.primary .tabs__tab.is-active a{background-image:none;}}.tabs__trigger{display:none;}.is-collapse-enabled .tabs__trigger{box-sizing:content-box;display:block;position:absolute;z-index:10;right:0;top:2px;left:auto;width:25%;padding-right:4px;padding-left:4px;border-left:0;border-radius:0 4px 0 0;font-family:Arial,sans-serif;font-size:1.25em;letter-spacing:0.1em;text-align:center;outline:0;}[dir="rtl"] .is-collapse-enabled .tabs__trigger{border-right:0;border-left:1px solid #bfbfbf;border-radius:4px 0 0 0;right:auto;left:0;}.is-collapse-enabled .tabs{padding-top:38px;max-height:0;}.tabs.is-open{max-height:999em;padding-bottom:16px;padding-bottom:1rem;}.is-collapse-enabled .tabs__tab.is-active{position:absolute;top:2px;left:0;width:75%;border-bottom:0;}[dir="rtl"] .is-collapse-enabled .tabs__tab.is-active{left:auto;right:0;}.is-collapse-enabled .tabs.primary a.is-active:before{content:none;}.is-open .tabs__tab.is-active{border-color:#a6a6a6;background-color:#ffffff;color:#004f80;border-bottom:1px solid #a6a6a6;}.is-horizontal .tabs{max-height:none !important;padding-top:0 !important;overflow:visible;}.is-horizontal .tabs__tab{float:left;height:auto;width:auto;margin:0 0 -1px;text-align:center;border-bottom-color:#a6a6a6;}[dir="rtl"] .is-horizontal .tabs__tab{float:right;margin-left:0;}.is-horizontal .tabs__tab + .tabs__tab{margin-left:-1px;}[dir="rtl"] .is-horizontal .tabs__tab + .tabs__tab{margin-left:0;margin-right:-1px;}.is-horizontal .tabs.primary .tabs__tab:first-child{border-radius:4px 0 0 0;}[dir="rtl"] .is-horizontal .tabs.primary .tabs__tab:first-child{border-radius:0 4px 0 0;}.is-horizontal .tabs.primary .tabs__tab:last-child{border-radius:0 4px 0 0;}[dir="rtl"] .is-horizontal .tabs.primary .tabs__tab:last-child{border-radius:4px 0 0 0;}.is-horizontal .tabs__tab.is-active,.is-horizontal .tabs.primary .tabs__tab.is-active,[dir="rtl"] .is-horizontal .tabs.primary .tabs__tab.is-active{border-radius:4px 4px 0 0;position:relative;width:auto;top:0;border-bottom:0;margin:0 -4px;}.is-horizontal .tabs.primary a{background-image:none;padding:7px 2em 7px 2em;}.is-horizontal .tabs__trigger{display:none;}.tabs.secondary{display:block;margin-top:16px;margin-top:1rem;}.tabs.secondary .tabs__tab{display:block;padding:5px 15px 5px 16px;margin-left:-1px;color:#0074bd;-webkit-transition:border-color 0.2s,background-color 0.2s;transition:border-color 0.2s,background-color 0.2s;}[dir="rtl"] .tabs.secondary .tabs__tab{padding-left:15px;padding-right:16px;margin-left:0;margin-right:-1px;}.tabs.secondary .tabs__tab + .tabs__tab{border-top:1px solid #d9d8d4;}.tabs.secondary .tabs__tab.is-active{color:#004f80;border-left:2px solid #004f80;padding-left:15px;}[dir="rtl"] .tabs.secondary .tabs__tab.is-active{border-left:1px solid #bfbfbf;border-right:2px solid #004f80;padding-right:15px;}.tabs.secondary .tabs__tab:hover,.tabs.secondary .tabs__tab:focus{color:#008ee6;border-left:2px solid #008ee6;padding-left:15px;}[dir="rtl"] .tabs.secondary .tabs__tab:hover,[dir="rtl"] .tabs.secondary .tabs__tab:focus{border-left:1px solid #bfbfbf;border-right:2px solid #008ee6;padding-right:15px;}.tabs.secondary a{background-color:transparent;padding:7px 13px 5px;text-decoration:none;}.tabs.secondary .is-active a{color:#004f80;}.tabs.secondary a:focus{text-decoration:underline;}.is-horizontal .tabs.secondary .tabs__tab{background:none;float:left;position:relative;top:0;z-index:15;margin-left:1em;margin-right:1em;border-bottom:2px solid transparent;border-left:1px solid transparent;border-right-color:transparent;border-top:0;padding:0;}[dir="rtl"] .is-horizontal .tabs.secondary .tabs__tab{float:right;border-right:1px solid transparent;border-left-color:transparent;padding-right:0;}.is-horizontal .tabs.secondary .tabs__tab.is-active{border-bottom-color:#004f80;}.is-horizontal .tabs.secondary .tabs__tab:hover,.is-horizontal .tabs.secondary .tabs__tab:focus{border-bottom-color:#008ee6;}
+.joyride-tip-guide{background:#000;background:rgba(0,0,0,0.8);color:#fff;border-radius:5px;}@media only screen and (max-width:767px){.joyride-tip-guide{border-radius:0;}}.joyride-tip-guide .joyride-nub{border:solid 14px rgba(0,0,0,0.8);}.joyride-tip-guide .joyride-nub.top{border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;}.joyride-tip-guide .joyride-nub.bottom{border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent;}.joyride-tip-guide .joyride-nub.right{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;}[dir="rtl"] .joyride-tip-guide .joyride-nub.right{border-left-color:transparent;border-right-color:rgba(0,0,0,0.8);}.joyride-tip-guide .joyride-nub.left{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;}[dir="rtl"] .joyride-tip-guide .joyride-nub.left{border-left-color:rgba(0,0,0,0.8);border-right-color:transparent;}.joyride-tip-guide .joyride-nub.top-right{border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;}.joyride-tip-guide h2{color:#fff;}.joyride-tip-guide p{line-height:1.385em;}.joyride-tip-guide a{color:#fff;}.joyride-tip-guide .joyride-next-tip{margin:0;}.joyride-timer-indicator-wrap{border:solid 1px rgba(255,255,255,0.1);}.joyride-timer-indicator{background:rgba(255,255,255,0.25);}.joyride-close-tip{color:rgba(255,255,255,0.4);text-decoration:none;font-size:1.4em;font-weight:bold;}.joyride-close-tip:hover,.joyride-close-tip:focus{color:rgba(255,255,255,0.9);text-decoration:none;}.joyride-modal-bg{background:rgba(0,0,0,0.5);}.joyride-expose-wrapper{background-color:#ffffff;}.joyride-expose-cover{background:transparent;}
+details.fieldset-no-legend{padding-top:0;}#views-ui-add-form details details .details-wrapper{padding-left:0;padding-right:0;}.views-display-tab details.box-padding .details-wrapper{padding:0;}.views-admin input.form-submit,.views-ui-dialog input.form-submit,.views-admin a.button,.views-ui-dialog a.button{margin-bottom:0;margin-right:0;margin-top:0;}[dir="rtl"] .views-admin input.form-submit,[dir="rtl"] .views-ui-dialog input.form-submit,[dir="rtl"] .views-admin a.button,[dir="rtl"] .views-ui-dialog a.button{margin-left:0;}.form-radios > .form-item{margin-top:3px;}.form-item-options-expose-required,.form-item-options-expose-label,.form-item-options-expose-description{margin-left:1.5em;}[dir="rtl"] .form-item-options-expose-required,[dir="rtl"] .form-item-options-expose-label,[dir="rtl"] .form-item-options-expose-description{margin-left:0;margin-right:1.5em;}.views-admin-dependent .form-item .form-item,.views-admin-dependent .form-type-checkboxes,.views-admin-dependent .form-type-radios,.views-admin-dependent .form-item .form-item,.form-item-options-expose-required,.form-item-options-expose-label,.form-item-options-expose-description{margin-bottom:6px;margin-top:6px;}.views-admin-dependent .form-type-radio,.views-admin-dependent .form-radios .form-item{margin-bottom:2px;margin-top:2px;}.views-admin ul.secondary,.views-admin .item-list ul{margin:0;padding:0;}.views-displays ul.secondary li a,.views-displays ul.secondary li.is-active a,.views-displays ul.secondary li.is-active a.is-active{padding:2px 7px 3px;}.views-displays ul.secondary li a{color:#0074bd;}.views-displays ul.secondary li.is-active a,.views-displays ul.secondary li.is-active a.is-active{border:1px solid transparent;}.views-admin .links li{padding-right:0;}[dir="rtl"] .views-admin .links li{padding-left:0;}.views-admin .button .links li{padding-right:12px;}[dir="rtl"] .views-admin .button .links li{padding-left:12px;}.views-display-top ul.secondary{background-color:transparent;float:left;}[dir="rtl"] .views-display-top ul.secondary{float:right;}.views-display-top .secondary .action-list li{float:none;margin:0;}.views-ui-rearrange-filter-form table td,.views-ui-rearrange-filter-form table th{vertical-align:top;}#edit-display-settings-title{color:#008BCB;}.views-displays .secondary{text-align:left;}[dir="rtl"] .views-displays .secondary{text-align:right;}.views-admin .icon.add{background-position:center 3px;}.views-displays .secondary a:hover > .icon.add{background-position:center -25px;}.views-displays .secondary .open > a{border-radius:7px 7px 0 0;}.views-displays .secondary .open > a:hover,.views-displays .secondary .open > a:focus{background-color:#f1f1f1;color:#008BCB;}.views-displays .secondary .action-list  li:first-child{border-radius:0 7px 0 0;}[dir="rtl"] .views-displays .secondary .action-list  li:first-child{border-radius:7px 0 0 0;}.views-displays .secondary .action-list  li:last-child{border-radius:0 0 7px 7px;}.views-displays .secondary .action-list input.form-submit{color:#008bcb;}.views-ui-display-tab-bucket h3{text-transform:uppercase;}.views-ui-display-tab-bucket .links{padding:2px 6px 4px;}.views-ui-display-tab-bucket .links li + li{margin-left:3px;}[dir="rtl"] .views-ui-display-tab-bucket .links li + li{margin-left:0;margin-right:3px;}.views-ui-rearrange-filter-form .action-links{margin:0;padding:0;}.views-ui-rearrange-filter-form table{border:medium none;}.views-ui-rearrange-filter-form [id^="views-row"]{border:medium none;}.views-ui-rearrange-filter-form tr td:last-child{border-right:medium none;}[dir="rtl"] .views-ui-rearrange-filter-form tr td:last-child{border-left:medium none;border-right:initial;}.views-ui-rearrange-filter-form .filter-group-operator-row{border-left:1px solid transparent !important;border-right:1px solid transparent !important;}.views-ui-rearrange-filter-form tr.drag td{background-color:#FFEE77 !important;}.views-ui-rearrange-filter-form tr.drag-previous td{background-color:#FFFFBB !important;}.views-query-info pre{margin-bottom:0;margin-top:0;}.views-query-info table{border-radius:7px;-webkit-border-horizontal-spacing:1px;-webkit-border-vertical-spacing:1px;}.views-query-info table tr td:last-child{border-right:0 none;}[dir="rtl"] .views-query-info table tr td:last-child{border-left:0 none;border-right:initial;}.form-item-page-create,.form-item-block-create{margin-top:13px;}.filterable-option .form-item.form-type-checkbox{padding-bottom:4px;padding-left:4px;padding-top:4px;}[dir="rtl"] .filterable-option .form-item.form-type-checkbox{padding-left:8px;padding-right:4px;}
diff --git a/sites/default/files/css/css_2bFnXHXIbJniC7ITmm1BfFGeEcUamPJM510ZwqUthiU.css.gz b/sites/default/files/css/css_2bFnXHXIbJniC7ITmm1BfFGeEcUamPJM510ZwqUthiU.css.gz
new file mode 100644
index 0000000..b850e8b
--- /dev/null
+++ b/sites/default/files/css/css_2bFnXHXIbJniC7ITmm1BfFGeEcUamPJM510ZwqUthiU.css.gz
@@ -0,0 +1,31 @@
+     =kF+x64EGHppw8 1CI#u7؛Ăm쪮~TLIl]]~ˢ-zqJ4E/SITg%yVsRp5ߥ=~۬,0!eo)԰gYƍB5~婅oPq}GiVoei}i$q'!t'>Cy
+o+~k~RZt}x?R2gl1=UMXEMר9mCzV@)Ip@1ŏ7Mh[Wrzt;+iX=y2ٚzh6%>~EW+/4D3/M'/hޒlH*^~Ju٣QMh2TH$jNa26sn63,IVL$EVHU{qw$dwK90&/N36KV/).X \XF>?M'x
+j6'xƂwOCry0fsnӬI!\(PE,6 Ebd!	RO3P9J2h6Pt"U0\xx6j4ߥgWF0Oٞ6,hC^voˊm=Epl`
+3Mg%>~n,g oćFjMa<r$6/K	+`%,y%_OqZĖ4`x1&+7(mb:2*7[B9BVtC|GfWYўz~v7rFE˺P|+#1w8g>dQ.{&zL{Il6XQ|c6~(t{ia;cSUmnT`KԓxwbԲj\3vGroŴ3Ěnlv'ܳńCq<9FHʁ kwWQJ !`V
+%R:AQb?{`HRcݏSs//8i]VG%xC/h07ݏR׻DJ0_ |	<nSÛ3qk51Cj˻;VꨪH)=3]QZwǧ|dE?~6(8wx!<!!>c;4{2פA9J:]C:l12\Xuu8yߴ1qSq'L'lf7:S*~{D'jaL-70tPAu]ZH^	LJr$e~wԹM>ظrl?'}lqCcmFwJlB/W2ײ
+Y-xƮZbY3lN,jL0+w;>!K1:<sP^5&/Vn?~lڏi:xjPJl*>GֆƏ?Z,yTݍI<jt^YJY?Vr-&Ӌ|&6oX!7ߌ=c)aJz#lq
+2;/$ޛ?$s2|1^h E`/fuhZ\X Ss#5b- Ft6KY\`H3>p~w9Kp.p1)VA	q@
+c@SyX2bq%6hXrac[(PaCֆ1 h:ھ+M[VV!h "#Q 46Fs+sCܻ4$
+T7S\nsB	TASu+tX#jM찂ZGi[U:VZtS]r>ZwܩKvQ]vB.]vB"2;!2A5j2evNUv"*a"`M麥ZO%
+! *z|
+* .T iϑK zvSY:Ĉ}Ly:j4r*-ӑ,<;\ dSJqX5	΀)kP<yR)A {.Q'M!P `-_6+nfWǸwjSlJCyDsS'q`޹ԭs9C)%6rJZs	CH޹v7;9q[췲<ڌ8_0ֽX>r x,z wL;Tv<!
+*}PewdܪVqj< a	99=Q##
+>:bpT1=UD)O]v|I)ƭ&ZjWuzmnUQ`.[U,E[W4YպEޢ,sّΊ}T<Ľ>@P^9E)Ѐ( Xs:D_N1nEQ 4DgވWQiS1 U5zps3 *T[V=eZev	v>`ҧ#R
+]3a3S]ܶ~CXN! EN ͜ %Y` 7	.0?cDsoI 7&ݻٯ'NЁmJ>p;6fPeOU6..9FfISknPu\7zb>.XT}\^
+|DF<&hn;n@G+,n@@Z	[\3`^NXNIR)Nv<;.xBl#OByNޑC~ܴkRLD!i"i\Wr8M^:w<"	բ B"v5ğy_]FD86C0jD\h/3%	C	_i#ჄD<ńU=7G°lq5Ȱ1iu?Iwb̖r+yI]8*Ϫh8H98ླ*Pz;4!.dq(1^=Oy"H+5\IMȎV֦[fn{Tbg;6I]pߜK )8?!EVn]}B5G:7=)NJ9Te}/;B$̟>}*fG-{$kU&8/k+/IcS6=[ GO,ˏJgp	Bz `7sr\AUfAŲLB+L_[,+j吼1n'X'LI;wj+#FxG%t"j];(ʏ8,1E5dqZŸP 27<#2Ӕ"'åf>_3~+IX,Y$q;xPͼ0Apwu<ĘCjOGߢ,Y)5\Ymi!meFe!<"f d"pSJsy:1"13(ji/rZ%F5 ,XZ#$M{>yqq%Da81'oNtILsqY$*=7(4gƄZS}L3dPFlwó@<-&M{i'jD"K(.]BY}S8Q@~nl&KMޡZҠu(,:b(b|Hˡ$|?I,o2/!wDGb^L/OQ˲=@?Es*j~:7~y-16hW^etLc/峐wЎ!]3HĉHdwÏv%ܐ$%ZCh/I5+,YBt?͊Lgtc\(@QE	nth,':vO~+WhjYe6ݍfM|fɻ~LVWH5ښ4ZdcC˩'!OЍ6sŧrٽPTXOnNߺF;/D@Ȑ\Dlx 4m'2w"(34)t~,	nSrjD\әڠ+pQ.f4ʃ[DC.L6GN̐GͲdǴ4c?3zZ"A)]uqdE!Y;5Br|?%M<P`Ac97KS6RYG(v֥&s23^UEQU8|ˈ%7$\h&&}``q]*̓`WnMx
+&mӝ(%xbK5nkW
+<1THDGMFc~et,fXy0(ϖAɀ'A7]&nH>:,99-[GQ)֒Xw<sDdV2+L5P1e"iTz/KKRhpR,_^\Xf`AޜʍGEwn"9cK^A@%5b-;}x4eKR|yѩL_j\OxUp:үV\EWu
+ H`fߒ~rHqHJ_h#<,y/D+!rL9jP&hug3/"/*jM^ՒiJ0|bW^˯J41N&wcǉXt),&\X_+=oWץ32k;:D_?㷞G7/5hvϰ$Y\/W0aU_}UkW4VZsR۔5ȼ}C-#[oLPIH"q5jzfbޮ51FPBf"SVT-UsJ2x\Z=v3樎RewNiLMX?,OkP]5tʘs}&)g_ql0T}ou^Vkec\.	tpᲤ#jc4>JnLYm*Mw;A	x(g4?`6{|2}o_
+qz1(+Cū.Ϛ2]"jTYCI	wrSu[371р'蟝N^g$YDr^=]eF 5.K3@ӰO =BpxVǁ)gz)//$d̺|wp=%2[*?vń4>J3Cꔟalk>J,~s"Kk)K Z h36dTttYQesVObG	IGPM RLMWxJN2i纠\xהN7ȭ7gdb}ɑϠkin$>FӨ#HYG."\Y-^QcE@ƾs&<;:一YMPÉAM`]z7s҈aDLAC{%["{'~'AkW?V/{AILa!0T
+iP9RQuo酳p-^Nk/@/'w*-W*7"yipeJ+۵ѨatQ)ڍ2ZB	dx?٬OgۭU~H*{)5	&FܪkI^Aѯ(.+]+!	D^arW݅Zz9A64{-αc<l)FnC<fTfOyCUZfRxnPH7$Gghd탹7vKT!*X]gGkC0p7$hȎ;--:	>x#fefU	gzHfD(Ce4{tBLIJ`sY%%LMDLzeLMLzDLzD%>9StKARX<-|0Ñ=,&.;L*nGL{'yȚdl;tR$\_-Ht4e e+HKIa{aΓ% 0[HC ʞP͙F\SwE`|!E<-Ϥ/D~LpWxXɜ6r~rձ+!~2|{צsWS@0f?<u/t;grչE&v;V.ܗPUiT{TX)Hj
+7BXmb3FnwoB۟$^j(_ekp姆@32'v̌!sg͖U"0P]Qţ]{~_QNߥij\qEȘw++j(-(\KleTB5̷XtmQi,/nd$NYgUr+,v'A.A j|Gˬ9aϮ)DO
+Ǒɣi5$C))u<qk%
+]LO9j<|VC|Uw"$b2Q)붮*9gfضDo(L/LV'D=%_O5;T$KLa|F'osOBiDצBd Si^{]\VxJ>*5oLtnQz
+ڬ2a>S,`r 1BY3g^'7?XQ:.6nM2G~K.n2*˟ȊR*;+cr'RO?+'Һ\lYV%!Isj[=DY	i&i.P.ZVC#ynkpgbruSP.5YE/$%;Ҽ`L,mV=LyrH̙[fIV^,xȚSE@3N'30$vWm)ت*dH}rA/ɗJ^i#h)n[@K4Ou#yi`	{aT"rJ4^yi2) tЈK;Wɾ^NpXЅ"~v0;$2$W"'~c%*H<[cP9k0¸}A׫>;jGUh^=ⱑ*|c4LtL\aecrPR#'Eij굽 m%aLU;Ug/1~\Db[ꬬa^>N0%o=;"rphrD*nV˜x3֔~hʚM&-Y-#<lhs ft?_QAOx\d5w}xfAJ|FL<ׯ;d :SҝUdAgɓ/iMLen	`}(x78hFP"SvgzpcYxd3G79zG D*z*I&l[gPve.+AY$z!
+za~4dC'6`
+I]wyDHqSr̸e:э[<PסAr8wBzS8Cuʜ'HjSƌ˙s&gaoΎ~(5	݅DJkM鷲]HG-%HFfřXB|/9FLq{Ś^	S|~=Y ,|แ`?g/oЧVL5ʖTdYblfkr,Inv;gK}H<%y ;,xTc/bseǠzGWq#fh.FW< P\vA-#jWǲX5ڒRx{1NyuAW+dV o"Fmz$ӄ`M*M	qo GSt\/!ҊWhGzuOxzr6&ACl:烒3tJp#n3 .	/ /\,~TzXرVrxȮԖW]MN.,~nxN.][	`\y%7s"3ky5$J]ݡ!@7	q̏5*Fk7AOU1\Jl`_#a6C	xk)QK$İPo	_rGѡ mJX\Gw[o_:KTJߝ7:liZE+X",+8l"BCGŉlg\R;"xvfsʀVOaߎ8l_
+r7ԯh>Q_B7Cti%*>`3zxUbr#}#n$ndCWA$Z,&oLoXΪAiheC>;싈ysSZC-]v4""XqζqCj7zf~ֺJA$J ,uoHoQ,z iS'زg:y'Yy1^ʺ@Nj<坽<
+]&HMl+	Njs2 IB&5	]%OH#eGOEHڝt+NiWhx0hq׉iWN#w&HْHٸY~&VC@I7uDnk$\pg`<(!Ι)+@hdө}$<+VӨtfO*sZǎ&,ҙb'Ƚ #,^Ȱ"&
+14}
+\ãJ⺆tR"<I'#j'W1Q<%5.Bݎ9 .RPv&-uG1h1\St;ld<^0vtWϹQ2n.
+tBN%w5{"Fd~D-iwJQfgz'$5_бX ,jD52.P6S|Gw=6)KﻷP]>EX,	*3CK8-bˊF 	<DM%q$"G3jbt?Z_eAӏ?zBR^fD(Cٛ~I;4KuðXVXvSL=gI-!d_=.)gYҕ$'KG:rn2AP{iZB&ۆ,  
\ No newline at end of file
diff --git a/sites/default/files/css/css_AqmxuhwjrNtkt7EV8m5tL3Ya4ui6r_slrL-G9mcmb84.css b/sites/default/files/css/css_AqmxuhwjrNtkt7EV8m5tL3Ya4ui6r_slrL-G9mcmb84.css
new file mode 100644
index 0000000..fa57616
--- /dev/null
+++ b/sites/default/files/css/css_AqmxuhwjrNtkt7EV8m5tL3Ya4ui6r_slrL-G9mcmb84.css
@@ -0,0 +1,12 @@
+.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:right;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:left;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{margin:0;padding-left:1.3333em;text-indent:-9999px;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{padding-right:1.3333em;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);}.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab.hidden{display:none;}
+.ckeditor-dialog-loading{position:absolute;top:0;width:100%;text-align:center;}.ckeditor-dialog-loading-link{border-radius:0 0 5px 5px;border:1px solid #B6B6B6;border-top:none;background:white;padding:3px 10px;box-shadow:0 0 10px -3px #000;display:inline-block;font-size:14px;position:relative;top:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.quickedit-toolgroup.wysiwyg-main .cke_chrome,.quickedit-toolgroup.wysiwyg-main .cke_inner,.quickedit-toolgroup.wysiwyg-main .cke_top{background:transparent;border-top:none;border-right:none;border-bottom:none;border-left:none;box-shadow:none;}
+.toolbar .menu,[dir="rtl"] .toolbar .menu{list-style:none;margin:0;padding:0;}.toolbar .toolbar-box{display:block;line-height:1em;position:relative;width:auto;}.toolbar .toolbar-tray-horizontal .menu .toolbar-handle,.toolbar .toolbar-tray-horizontal .menu ul,.toolbar .toolbar-tray-vertical .menu ul{display:none;}.toolbar .toolbar-tray-vertical li.open > ul{display:block;}.toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-right:3em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-left:3em;margin-right:0;}.toolbar .toolbar-tray .menu-item--active-trail > .toolbar-box a,.toolbar .toolbar-tray a.is-active{color:#000;font-weight:bold;}@media screen and (max-width:319px){.toolbar .toolbar-tray-vertical.is-active{width:100%;}}.toolbar .level-2 > ul{background-color:#fafafa;border-bottom-color:#cccccc;border-top-color:#e5e5e5;}.toolbar .level-3 > ul{background-color:#f5f5f5;border-bottom-color:#c5c5c5;border-top-color:#dddddd;}.toolbar .level-4 > ul{background-color:#eeeeee;border-bottom-color:#bbbbbb;border-top-color:#d5d5d5;}.toolbar .level-5 > ul{background-color:#e5e5e5;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-6 > ul{background-color:#eeeeee;border-bottom-color:#aaaaaa;border-top-color:#c5c5c5;}.toolbar .level-7 > ul{background-color:#fafafa;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-8 > ul{background-color:#dddddd;border-bottom-color:#cccccc;border-top-color:#dddddd;}.toolbar .toolbar-handle:hover{cursor:pointer;}.toolbar .toolbar-icon.toolbar-handle{bottom:0;display:block;height:100%;padding:0;position:absolute;right:0;top:0;z-index:1;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle{left:0;padding:0;right:auto;}
+.layout-container{margin:0 1.5em;}.layout-container:after{content:"";display:table;clear:both;}@media screen and (min-width:38em){.layout-container{margin:0 2.5em;}.layout-column{float:left;box-sizing:border-box;}[dir="rtl"] .layout-column{float:right;}.layout-column + .layout-column{padding-left:10px;}[dir="rtl"] .layout-column + .layout-column{padding-right:10px;padding-left:0;}.layout-column.half{width:50%;}.layout-column.quarter{width:25%;}.layout-column.three-quarter{width:75%;}}.panel{padding:5px 5px 15px;}.panel__description{margin:0 0 3px;padding:2px 0 3px 0;}.compact-link{margin:0 0 0.5em 0;}small .admin-link:before{content:' [';}small .admin-link:after{content:']';}.system-modules thead > tr{border:0;}.system-modules div.incompatible{font-weight:bold;}.system-modules td.checkbox{min-width:25px;width:4%;}.system-modules td.module{width:25%;}.system-modules td{vertical-align:top;}.system-modules label,.system-modules-uninstall label{color:#1d1d1d;font-size:1.15em;}.system-modules details{color:#5c5c5b;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.system-modules details[open]{height:auto;overflow:visible;white-space:normal;}.system-modules details[open] summary .text{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;text-transform:none;}.system-modules td details a{color:#5C5C5B;border:0px;}.system-modules td details{border:0;margin:0;height:20px;}.system-modules td details summary{padding:0;text-transform:none;font-weight:normal;cursor:default;}.system-modules td{padding-left:0;}@media screen and (max-width:40em){.system-modules td.name{width:20%;}.system-modules td.description{width:40%;}}.system-modules .requirements{padding:5px 0;max-width:490px;}.system-modules .links{overflow:hidden;}.system-modules .checkbox{margin:0 5px;}.system-modules .checkbox .form-item{margin-bottom:0;}.admin-requirements,.admin-required{font-size:0.9em;color:#666;}.admin-enabled{color:#080;}.admin-missing{color:#f00;}.module-link{display:block;padding:2px 20px;white-space:nowrap;margin-top:2px;float:left;}[dir="rtl"] .module-link{float:right;}.module-link-help{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg) 0 50% no-repeat;}.module-link-permissions{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/key.svg) 0 50% no-repeat;}.module-link-configure{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/cog.svg) 0 50% no-repeat;}.system-status-report td{vertical-align:top;}.system-status-report__status-icon{width:16px;padding-right:0;}[dir="rtl"] .system-status-report__status-icon{padding-left:0;padding-right:6px;}.system-status-report__status-icon:before{content:"";background-repeat:no-repeat;height:16px;width:16px;margin-top:2px;display:block;}.system-status-report__status-icon--error:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ea2800/error.svg);}.system-status-report__status-icon--warning:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/e29700/warning.svg);}.system-status-report__status-title{width:25%;}.theme-info__header{margin-bottom:0;font-weight:normal;}.theme-default .theme-info__header{font-weight:bold;}.theme-info__description{margin-top:0;}.system-themes-list{margin-bottom:20px;}.system-themes-list-uninstalled{border-top:1px solid #cdcdcd;padding-top:20px;}.system-themes-list__header{margin:0;}.theme-selector{padding-top:20px;}.theme-selector .screenshot,.theme-selector .no-screenshot{border:1px solid #e0e0d8;padding:2px;vertical-align:bottom;max-width:100%;height:auto;text-align:center;}.theme-default .screenshot{border:1px solid #aaa;}.system-themes-list-uninstalled .screenshot,.system-themes-list-uninstalled .no-screenshot{max-width:194px;height:auto;}@media screen and (min-width:45em){body:not(.toolbar-vertical) .system-themes-list-installed .screenshot,body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot{float:left;margin:0 20px 0 0;width:294px;}[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .screenshot,[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot{float:right;margin:0 0 0 20px;}body:not(.toolbar-vertical) .system-themes-list-installed .system-themes-list__header{margin-top:0;}body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector{box-sizing:border-box;width:31.25%;float:left;padding:20px 20px 20px 0;}[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector{float:right;padding:20px 0 20px 20px;}body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-info{min-height:170px;}}@media screen and (min-width:60em){.toolbar-vertical .system-themes-list-installed .screenshot,.toolbar-vertical .system-themes-list-installed .no-screenshot{float:left;margin:0 20px 0 0;width:294px;}[dir="rtl"] .toolbar-vertical .system-themes-list-installed .screenshot,[dir="rtl"] .toolbar-vertical .system-themes-list-installed .no-screenshot{float:right;margin:0 0 0 20px;}.toolbar-vertical .system-themes-list-installed .theme-info__header{margin-top:0;}.toolbar-vertical .system-themes-list-uninstalled .theme-selector{box-sizing:border-box;width:31.25%;float:left;padding:20px 20px 20px 0;}[dir="rtl"] .toolbar-vertical .system-themes-list-uninstalled .theme-selector{float:right;padding:20px 0 20px 20px;}.toolbar-vertical .system-themes-list-uninstalled .theme-info{min-height:170px;}}.system-themes-list-installed .theme-info{max-width:940px;}.theme-selector .incompatible{margin-top:10px;font-weight:bold;}.theme-selector .operations{margin:10px 0 0 0;padding:0;}.theme-selector .operations li{float:left;margin:0;padding:0 0.7em;list-style-type:none;border-right:1px solid #cdcdcd;}[dir="rtl"] .theme-selector .operations li{float:right;border-left:1px solid #cdcdcd;border-right:none;}.theme-selector .operations li:last-child{padding:0 0 0 0.7em;border-right:none;}[dir="rtl"] .theme-selector .operations li:last-child{padding:0 0.7em 0 0;border-left:none;}.theme-selector .operations li:first-child{padding:0 0.7em 0 0;}[dir="rtl"] .theme-selector .operations li:first-child{padding:0 0 0 0.7em;}.system-themes-admin-form{clear:left;}
+.contextual{position:absolute;right:0;top:6px;z-index:500;}[dir="rtl"] .contextual{left:0;right:auto;}.contextual-region.focus{outline:1px dashed #d6d6d6;outline-offset:1px;}.contextual .trigger{background-attachment:scroll;background-color:#fff;border:1px solid #ccc;border-radius:13px;float:right;margin:0;overflow:hidden;padding:0 2px;position:relative;right:6px;cursor:pointer;}[dir="rtl"] .contextual .trigger{float:left;right:auto;left:6px;}.contextual.open .trigger{border:1px solid #ccc;border-bottom-color:transparent;border-radius:13px 13px 0 0;box-shadow:none;z-index:2;}.contextual-region .contextual .contextual-links{background-color:#fff;border:1px solid #ccc;border-radius:4px 0 4px 4px;clear:both;float:right;margin:0;padding:0.25em 0;position:relative;right:6px;text-align:left;top:-1px;white-space:nowrap;}[dir="rtl"] .contextual-region .contextual .contextual-links{border-radius:0 4px 4px 4px;float:left;left:6px;right:auto;text-align:right;}.contextual-region .contextual .contextual-links li{background-color:#fff;border:none;list-style:none;list-style-image:none;margin:0;padding:0;line-height:100%;}.contextual-region .contextual .contextual-links a{background-color:#fff;color:#333;display:block;font-family:sans-serif;font-size:small;line-height:0.8em;margin:0.25em 0;padding:0.4em 0.6em;}.touch .contextual-region .contextual .contextual-links a{font-size:large;}.contextual-region .contextual .contextual-links a,.contextual-region .contextual .contextual-links a:hover{text-decoration:none;}.no-touch .contextual-region .contextual .contextual-links li a:hover{color:white;background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);}
+.toolbar-bar .toolbar-icon-edit:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);}.toolbar-bar .toolbar-icon-edit:active:before,.toolbar-bar .toolbar-icon-edit.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/pencil.svg);}.contextual .trigger{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);background-position:center center;background-repeat:no-repeat;background-size:16px 16px;height:26px !important;width:26px !important;text-indent:-9999px;}.contextual .trigger:hover{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/pencil.svg);}.contextual .trigger:focus{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/pencil.svg);outline:none;}
+.text-format-wrapper > .form-item{margin-bottom:0;}.filter-wrapper{border:1px solid #ccc;border-top:0;margin:0;padding:0.5em 0.666em;overflow:hidden;}.filter-wrapper .form-item{margin:0;}.filter-wrapper .form-item label{display:inline;}.filter-help{float:right;}[dir="rtl"] .filter-help{float:left;}.filter-guidelines .filter-guidelines-item{margin-top:1em;}.filter-help p{margin:0;}.filter-help a{position:relative;margin:0 20px 0 0;}[dir="rtl"] .filter-help a{margin:0 0 0 20px;}.filter-help a:after{position:absolute;top:0;right:-20px;content:'';display:block;width:16px;height:16px;background:transparent url(http://localhost/pub_html/contri/drupal/core/misc/help.png);}[dir="rtl"] .filter-help a:after{right:auto;left:-20px;}.text-format-wrapper .description{margin-top:0.5em;}.tips{font-size:0.9em;margin-bottom:0;margin-top:0;padding-bottom:0;padding-top:0;}.tips{padding-left:0;}[dir="rtl"] .tips{padding-right:0;}
+.toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:right;padding:1em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:left;}.toolbar .toolbar-tray-horizontal .edit-shortcuts{float:right;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .edit-shortcuts{float:left;}.add-or-remove-shortcuts{display:inline-block;margin-left:0.3em;}[dir="rtl"] .add-or-remove-shortcuts{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts .text{background:#000000;background:rgba(0,0,0,0.5);border-radius:5px;padding:0 5px;color:#ffffff;display:inline-block;margin-left:0.3em;opacity:0;-ms-transform:translateY(-12px);-webkit-transform:translateY(-12px);transform:translateY(-12px);-webkit-transition:all 200ms ease-out;transition:all 200ms ease-out;-ms-backface-visibility:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;}[dir="rtl"] .add-or-remove-shortcuts .text{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts a:hover .text,.add-or-remove-shortcuts a:focus .text{opacity:1;-ms-transform:translateY(-2px);-webkit-transform:translateY(-2px);transform:translateY(-2px);}
+.toolbar-bar .toolbar-icon-shortcut:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/star.svg);}.toolbar-bar .toolbar-icon-shortcut:active:before,.toolbar-bar .toolbar-icon-shortcut.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/star.svg);}.add-or-remove-shortcuts .icon{background:transparent url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar.svg) no-repeat left top;width:20px;height:20px;display:inline-block;vertical-align:-2px;}[dir="rtl"] .add-or-remove-shortcuts .icon{background-image:url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar-rtl.svg);}.add-shortcut a:hover .icon,.add-shortcut a:focus .icon{background-position:-20px top;}.remove-shortcut .icon{background-position:-40px top;}.remove-shortcut a:focus .icon,.remove-shortcut a:hover .icon{background-position:-60px top;}
+.toolbar{font-family:"Source Sans Pro","Lucida Grande",Verdana,sans-serif;font-size:0.8125rem;-moz-tap-highlight-color:rgba(0,0,0,0);-o-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0);-moz-touch-callout:none;-o-touch-callout:none;-webkit-touch-callout:none;touch-callout:none;}.toolbar .toolbar-item{cursor:pointer;padding:1em 1.3333em;line-height:1em;text-decoration:none;}.toolbar .toolbar-item:hover,.toolbar .toolbar-item:focus{text-decoration:underline;}.toolbar .toolbar-bar{background-color:#0f0f0f;box-shadow:-1px 0 3px 1px rgba(0,0,0,0.3333);color:#dddddd;}[dir="rtl"] .toolbar .toolbar-bar{box-shadow:1px 0 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-bar .toolbar-item{color:#ffffff;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item{font-weight:bold;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:hover,.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:focus{background-image:-webkit-linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);text-decoration:none;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);}.toolbar .toolbar-tray{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:5em;}[dir="rtl"] .toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:0;padding-left:5em;}.toolbar .toolbar-tray-vertical{background-color:#f5f5f5;border-right:1px solid #aaaaaa;box-shadow:-1px 0 5px 2px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-vertical{border-left:1px solid #aaaaaa;border-right:0 none;box-shadow:1px 0 5px 2px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal{border-bottom:1px solid #aaaaaa;box-shadow:-2px 1px 3px 1px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-horizontal{box-shadow:2px 1px 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal .toolbar-tray{background-color:#f5f5f5;}.toolbar-tray a{color:#565656;cursor:pointer;padding:1em 1.3333em;text-decoration:none;}.toolbar-tray a:hover,.toolbar-tray a:active,.toolbar-tray a:focus,.toolbar-tray a.is-active{color:#000;text-decoration:underline;}.toolbar .menu{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:0 none;border-right:1px solid #dddddd;}.toolbar .toolbar-tray-horizontal .menu-item:last-child{border-right:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item:last-child{border-left:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item + .menu-item{border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child{border-bottom:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item .menu-item{border:0 none;}.toolbar .toolbar-tray-vertical .menu ul ul{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child > ul{border-bottom:0;}.toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0.25em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0;margin-right:0.25em;}.toolbar .menu .menu a{color:#434343;}.toolbar .toolbar-toggle-orientation{background-color:#f5f5f5;padding:0.6667em;}.toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:1px solid #c9c9c9;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:0 none;border-right:1px solid #c9c9c9;}.toolbar .toolbar-toggle-orientation > .toolbar-lining{float:right;padding:0.1667em;}[dir="rtl"] .toolbar .toolbar-toggle-orientation > .toolbar-lining{float:left;}.toolbar .toolbar-toggle-orientation button{cursor:pointer;display:inline-block;}
+.toolbar .toolbar-icon{padding-left:2.75em;position:relative;}[dir="rtl"] .toolbar .toolbar-icon{padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-icon:before{background-attachment:scroll;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:100% auto;content:'';display:block;height:100%;left:0.6667em;position:absolute;top:0;width:20px;}[dir="rtl"] .toolbar .toolbar-icon:before{left:auto;right:0.6667em;}.toolbar button.toolbar-icon{background-color:transparent;border:0;font-size:1em;}.toolbar .menu ul .toolbar-icon{padding-left:1.3333em;}[dir="rtl"] .toolbar .menu ul .toolbar-icon{padding-left:0;padding-right:1.3333em;}.toolbar .menu ul a.toolbar-icon:before{display:none;}.toolbar .toolbar-tray-vertical .menu ul a{padding-left:2.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul a{padding-left:0;padding-right:2.75em;}.toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:3.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:0;padding-right:3.75em;}.toolbar .toolbar-tray-vertical .menu a{padding-left:2.75em;padding-right:4em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu a{padding-left:4em;padding-right:2.75em;}.toolbar-bar .toolbar-icon-menu:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/hamburger.svg);}.toolbar-bar .toolbar-icon-menu:active:before,.toolbar-bar .toolbar-icon-menu.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/hamburger.svg);}.toolbar-bar .toolbar-icon-help:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/questionmark-disc.svg);}.toolbar-bar .toolbar-icon-help:active:before,.toolbar-bar .toolbar-icon-help.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/questionmark-disc.svg);}.toolbar-icon-system-admin-content:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/file.svg);}.toolbar-icon-system-admin-content:active:before,.toolbar-icon-system-admin-content.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/file.svg);}.toolbar-icon-system-admin-structure:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/orgchart.svg);}.toolbar-icon-system-admin-structure:active:before,.toolbar-icon-system-admin-structure.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/orgchart.svg);}.toolbar-icon-system-themes-page:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/paintbrush.svg);}.toolbar-icon-system-themes-page:active:before,.toolbar-icon-system-themes-page.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/paintbrush.svg);}.toolbar-icon-entity-user-collection:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/people.svg);}.toolbar-icon-entity-user-collection:active:before,.toolbar-icon-entity-user-collection.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/people.svg);}.toolbar-icon-system-modules-list:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/puzzlepiece.svg);}.toolbar-icon-system-modules-list:active:before,.toolbar-icon-system-modules-list.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/puzzlepiece.svg);}.toolbar-icon-system-admin-config:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/wrench.svg);}.toolbar-icon-system-admin-config:active:before,.toolbar-icon-system-admin-config.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/wrench.svg);}.toolbar-icon-system-admin-reports:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/barchart.svg);}.toolbar-icon-system-admin-reports:active:before,.toolbar-icon-system-admin-reports.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/barchart.svg);}.toolbar-icon-help-main:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg);}.toolbar-icon-help-main:active:before,.toolbar-icon-help-main.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/questionmark-disc.svg);}.toolbar .toolbar-bar .toolbar-icon:before{min-height:3em;}@media only screen and (min-width:16.5em){.toolbar .toolbar-bar .toolbar-icon{margin-left:0;margin-right:0;padding-left:0;padding-right:0;text-indent:-9999px;width:4em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:42% auto;left:0;width:100%;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:auto;right:0;}}@media only screen and (min-width:36em){.toolbar .toolbar-bar .toolbar-icon{background-position:left center;padding-left:2.75em;padding-right:1.3333em;text-indent:0;width:auto;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon{background-position:right center;padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:100% auto;left:0.6667em;width:20px;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:0;right:0.6667em;}}.toolbar-tab a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tab a{border-left:none;border-right:2px solid transparent;}.toolbar-tab a:focus{outline:none;border-color:#ddd;}.toolbar-lining button:focus{outline:none;}.toolbar-tray-horizontal a,.toolbar-box a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tray-horizontal a,[dir="rtl"] .toolbar-box a{border-left:none;border-right:2px solid transparent;}.toolbar-tray-horizontal a:focus,.toolbar-box a:focus{outline:none;border-color:#4479C0;background-color:#f5f5f5;text-decoration:none;}.toolbar-box a:hover:focus{text-decoration:underline;}.toolbar .toolbar-icon.toolbar-handle:focus{outline:none;background-color:#f5f5f5;}.toolbar .toolbar-icon.toolbar-handle{width:4em;text-indent:-9999px;}.toolbar .toolbar-icon.toolbar-handle:before{left:1.6667em;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle:before{left:auto;right:1.6667em;}.toolbar .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/chevron-disc-down.svg);}.toolbar .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/chevron-disc-up.svg);}.toolbar .menu .menu .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/twistie-down.svg);background-size:75%;}.toolbar .menu .menu .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/twistie-up.svg);background-size:75%;}.toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-left.svg);}[dir="rtl"] .toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-right.svg);}.toolbar .toolbar-toggle-orientation button{height:16px;padding:0;text-indent:-999em;width:20px;}.toolbar .toolbar-toggle-orientation button:before{left:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation button:before{left:auto;right:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation .toolbar-icon{padding-right:0;}.toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-left.svg);}.toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,.toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-left.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-right.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-right.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-up.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:hover:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-up.svg);}
+.toolbar-bar .toolbar-icon-user:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/person.svg);}.toolbar-bar .toolbar-icon-user:active:before,.toolbar-bar .toolbar-icon-user.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/person.svg);}
diff --git a/sites/default/files/css/css_AqmxuhwjrNtkt7EV8m5tL3Ya4ui6r_slrL-G9mcmb84.css.gz b/sites/default/files/css/css_AqmxuhwjrNtkt7EV8m5tL3Ya4ui6r_slrL-G9mcmb84.css.gz
new file mode 100644
index 0000000..0f11c74
--- /dev/null
+++ b/sites/default/files/css/css_AqmxuhwjrNtkt7EV8m5tL3Ya4ui6r_slrL-G9mcmb84.css.gz
@@ -0,0 +1,17 @@
+     =n8ى.X Ah,ytI:m߷xHŉ3:%X7VEuPyE/>YT5J}yB@~ڥ9'*ҹ SH*$[#c}
+r=n
+'Yj?c!c1CO@JEyƧ-E^gOh>OI@1|8[]{zob~lHog>HH8Ť<u޼}	'*/41tKR<[mu7U~qJ.c}
+\ zpwOm^ĸ)u[d=0_xӱ-+/	NC_&(_ӧa䓌ߦy@hH/pJҥTy%~4+|TlSOIuH-Oݲ{s-&Lڔ$/{HQ9|"?$p110D'@YyDhAWbBlwyU!F#EpV춄>:qV)}MSl(LLC̍ؗ^ɀ*AI^_(ص)gd:u5}EE"1ɇ$ȏ8v,kPkgԃF]Xr~0N(U!g=(Ob͌/\1yo~)2*00ipe(ƾ)I)>䳈})%6Qn,eI/(1tGs>ʖ}l,eoeI/(QVЂ6
+gegs?(Bt+}}&)s"bNsa$HٹfΡwiBBɲa¬d8l>-y`ɢW*A}u\7Q
+A$*  =7>dRcmE&h!c/hww5At'ZY5*(yŲۢJѾ~e88Ei+~c9R]lz-tbw<~xh Zo./p>zjk+ٯC|-<qҫb0	U!BxQQL1<+yz8=Ыzډդit~UP`wh!uF|bϥROWZ~̒ohrAU=%/k2˩&NSr,Ia눆/::Gq 4IIb+@ye} h"x+䣰Ռqoh?l *zajG %/	?r
+wVYͧ֘PV5\R8PVV4MSox2ݝ:43 OHhBMê-Wf(LL)O2w۵3]Zljo|0`*3^|j'j<<*Z84nb%̓*8jvYlf4oQ	T[E-0Biͱ~	jr_
+Ȕ7%@|_4Mr`##. _  ]vd_kx$9ZO:\ﭔYj10.::@Oe%n!CUWCͼ @C}1Z<xB/X|	bR(5.lMߚNϒl`,ڪ|EՐZ>8Xib`%bz5jΔ`	1xr5/N8zMI^:`NOݜ6q?bcXْzq!fTթVPtUݒ:<y[,lؑ~I-^Ȃѩ! Q{0q$LC6c2Pyӄ,'>Tvkj"Z{ʭtN=Τ4{K_:
+gOc5n=kjaRƒ2
+Ul%Ti.g[:;z)ͧnG- 4}. }QBI, # N3)tݑMeIA9mgTwCN,C[Xjj=J0Fˣ<uELbT&0~WڈG~ەi#&*.TU(Jhgv9OӍecl(;Ue~dtIԶ_XEŶ`aK2~2=+}$jub]/ʰW'GyӃaC0@򲊪2/'e)8Nޟsw.э$(|07r.=8:ɽg5f/RJ,LF9_ooos;t mY5ö4)Qԣї;;X2:J3hHa |+fӻs)1r6LzRwﮏ\l1]فԖzV]$w{T>@6"^k
+p,']}hߟ]QwjPz/@X`w6vL{XxC^J[kM&*,h/BJvv$q
+_Z[ݭF}.:<Fb_n;}6w!~51Xz[rwS7P6UzBk!jC\<JYϦ~WU+;BFx;O})1sM }\hvR9mfsh)<UwB	Ҭ׉jf`Y-.0rQ]N\)'|rI 18P !0"J# 8u.`Z?Tqu%6ܠƴX,R m<MCꑔ!+=p(oV63`CaTb|Ц)őrh6:b/IϣQB{Ez1/ƓbizFKFeḺdtl-{|N|R#VaޑUH7@=7ȴ-[Ⱥ2%tx;Tcֳ9Ohl)G<3ql!8x ם6XA| ofI͕\'{ȯfW##_f1.b5:	hGJ5DmTf'Hڦ#`1,S{G[	4|7J5GSͣd\u .!_@-p!1[PQNizc<{RwuՙE7C]߿lsS8E4ѱIor&kTOW n}Ykӏͱ~ZhR n켵[\M i_kK<iDh51',6Oe 3O2~x0n}FnU9Jsyb+zmƸ~!T֢s٨#$;=i8Ԛ.7}4utG= .:QG<ծM8RocO]Ȱ6p8_=¶k'f%5S4+*wwK/+a~bXAm6V}/j@BGzM#2r1/@O(?3GA3sg͊:~i}Ȉ'O8KoIv>vmm8Baa"~"mCgrme,yU9Bl7u:Jo70^% +w_f3zV8ZNy1u:Ļ5@K"@ۺ ; d'@7/M9aFsm
+WI<6EKr	DΎx<":;\|y$eUQU̋}h6]>ch5G:zDnL"3Ja 0_Hߪ!=]AGq V{Ob9Z<Lh<:#UmI,GHcwdI$JFc2SAaXK$29*:|K{{%99.kQcs7%ZaU.,}u䞯zgwZz=tb՗xq$N{eX}/٭K
+O݊̊hy<=O7>/װ{ӊ^4ii5#g?Ms;0WJ[9tyiXu~sLw [u9GP.dww7νg>
+x>*X+ʃ[om|(3oWݺg3%1E	~.SKtKF7vk'1z5
+L_96V".:.#t<dV?EBg⟃")UO|RULo
+[d}gWr[DUsQXM<e3I:'G~& 9Rl$m	²(;DNwѼeߙPy6H[;Em  
\ No newline at end of file
diff --git a/sites/default/files/css/css_GKQoteR8_8f2S7VLXziWlFYFFsP-gZpR31CDjtpOhcQ.css b/sites/default/files/css/css_GKQoteR8_8f2S7VLXziWlFYFFsP-gZpR31CDjtpOhcQ.css
new file mode 100644
index 0000000..0d764d9
--- /dev/null
+++ b/sites/default/files/css/css_GKQoteR8_8f2S7VLXziWlFYFFsP-gZpR31CDjtpOhcQ.css
@@ -0,0 +1 @@
+.toolbar .toolbar-bar .tour-toolbar-tab.toolbar-tab{float:right;}[dir="rtl"] .toolbar .toolbar-bar .tour-toolbar-tab.toolbar-tab{float:left;}.toolbar .tour-toolbar-tab button{padding-bottom:1em;padding-top:1em;color:#fff;font-weight:bold;}.toolbar .tour-toolbar-tab button.is-active{background-image:-webkit-linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);}.tour-toolbar-tab button:focus{outline:thin dotted;}.toolbar .tour-toolbar-tab.toolbar-tab.hidden{display:none;}.tour-progress{position:absolute;bottom:0;right:0;}[dir="rtl"] .tour-progress{right:auto;left:0;}.toolbar .tour-toolbar-tab.toolbar-tab.hidden{display:none;}#joyRideTipContent{display:none;}.joyride-tip-guide{position:absolute;display:none;background:#fff;width:300px;z-index:101;top:0;left:0;padding:1em 1em 1.5em 1.5em;}[dir="rtl"] .joyride-tip-guide{padding:1em 1.5em 1.5em 1em;}.joyride-content-wrapper{position:relative;padding-right:1em;}[dir="rtl"] .joyride-content-wrapper{padding-right:0;padding-left:1em;}@media only screen and (max-width:767px){.joyride-tip-guide{width:85%;left:2.5%;}}.joyride-tip-guide .joyride-nub{display:block;position:absolute;left:22px;width:0;height:0;}.joyride-tip-guide .joyride-nub.top{top:-28px;bottom:auto;}.joyride-tip-guide .joyride-nub.bottom{bottom:-28px;}.joyride-tip-guide .joyride-nub.right{top:22px;bottom:auto;left:auto;right:-28px;}.joyride-tip-guide .joyride-nub.left{top:22px;left:-28px;right:auto;bottom:auto;}.joyride-tip-guide .joyride-nub.top-right{top:-28px;bottom:auto;left:auto;right:28px;}.joyride-tip-guide p{margin:0 0 1.4em;}.joyride-timer-indicator-wrap{width:50px;height:3px;position:absolute;right:17px;bottom:16px;}.joyride-timer-indicator{display:block;width:0;height:inherit;}.joyride-close-tip{position:absolute;right:0;top:0;}[dir="rtl"] .joyride-close-tip{left:0;right:auto;}.joyride-modal-bg{position:fixed;height:100%;width:100%;z-index:100;display:none;top:0;left:0;cursor:pointer;}.joyride-expose-wrapper{position:absolute;z-index:102;}.joyride-expose-cover{position:absolute;z-index:10000;top:0;left:0;}
diff --git a/sites/default/files/css/css_GKQoteR8_8f2S7VLXziWlFYFFsP-gZpR31CDjtpOhcQ.css.gz b/sites/default/files/css/css_GKQoteR8_8f2S7VLXziWlFYFFsP-gZpR31CDjtpOhcQ.css.gz
new file mode 100644
index 0000000..7fdbe3b
--- /dev/null
+++ b/sites/default/files/css/css_GKQoteR8_8f2S7VLXziWlFYFFsP-gZpR31CDjtpOhcQ.css.gz
@@ -0,0 +1,4 @@
+     U]k0}߯0-*K[lْʒ&$WҴ4DJt=sP2/4
+hu[0uv4s8㧐 k%ʄVɊVisJH5R+4#Bpᕶ_J%NT^@#P0*3|.{0%VG7wSlsy$ț )}΄ @-'\pǓJu+EL8Ղ53Qa>û3"?#BaZo4Wo(s ilDЮR[ z<DܥpBw*Z}QcpݿqB;,Hޥ
+KIՐ[Ǣ+lwlԹ;ԕIu?oRšYNeǛČ%]vMK:(}dkgu\N8Kí⿓BG!Gd.3yVl+JID_'PQe'rrX-|0eǽeǙ	B3 Pz<_L.\ȏ:03CvVRro%5|FP
+0FNZQ+/ax 2×^  
\ No newline at end of file
diff --git a/sites/default/files/css/css_HlrF0ce3NNxMWwJJ4riCc9uMVX6SZsnybuxjD24F-tg.css b/sites/default/files/css/css_HlrF0ce3NNxMWwJJ4riCc9uMVX6SZsnybuxjD24F-tg.css
new file mode 100644
index 0000000..7028b39
--- /dev/null
+++ b/sites/default/files/css/css_HlrF0ce3NNxMWwJJ4riCc9uMVX6SZsnybuxjD24F-tg.css
@@ -0,0 +1 @@
+.ui-dialog{background:transparent;border:0;position:absolute;z-index:1260;overflow:hidden;padding:0;}@media all and (max-width:48em){.ui-dialog{width:92% !important;}}.ui-dialog .ui-dialog-titlebar{background:#6b6b6b;border-top-left-radius:5px;border-top-right-radius:5px;padding:15px 49px 15px 15px;}.ui-dialog .ui-dialog-title{font-size:1.231em;font-weight:600;margin:0;color:#ffffff;-webkit-font-smoothing:antialiased;}.ui-dialog .ui-dialog-titlebar-close{border:0;background:none;right:20px;top:20px;margin:0;height:16px;width:16px;position:absolute;}[dir="rtl"] .ui-dialog .ui-dialog-titlebar-close{right:auto;left:20px;}.ui-dialog .ui-icon.ui-icon-closethick{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/ex.svg) 0 0 no-repeat;margin-top:-12px;}.ui-dialog .ui-widget-content.ui-dialog-content{background:#ffffff;overflow:auto;padding:1em;}.views-ui-dialog .ui-widget-content.ui-dialog-content{padding:0;}.ui-dialog .ui-widget-content.ui-dialog-buttonpane{background:#f5f5f2;margin:0;padding:15px 20px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{margin:0;padding:0;float:none;}.ui-dialog .ui-dialog-buttonpane .ui-button-text-only .ui-button-text{padding:0;}.ui-dialog .ui-dialog-content{position:static;}.ui-dialog .ui-dialog-content .form-actions{padding:0;margin:0;}.ui-dialog .ajax-progress-throbber{left:49%;position:fixed;top:48.5%;z-index:1000;background-color:#232323;background-image:url(http://localhost/pub_html/contri/drupal/core/misc/loading-small.gif);background-position:center center;background-repeat:no-repeat;border-radius:7px;height:24px;opacity:0.9;padding:4px;width:24px;}[dir="rtl"] .ui-dialog .ajax-progress-throbber{left:auto;right:49%;}.ui-dialog .ajax-progress-throbber .throbber,.ui-dialog .ajax-progress-throbber .message{display:none;}
diff --git a/sites/default/files/css/css_HlrF0ce3NNxMWwJJ4riCc9uMVX6SZsnybuxjD24F-tg.css.gz b/sites/default/files/css/css_HlrF0ce3NNxMWwJJ4riCc9uMVX6SZsnybuxjD24F-tg.css.gz
new file mode 100644
index 0000000..72ad8f2
--- /dev/null
+++ b/sites/default/files/css/css_HlrF0ce3NNxMWwJJ4riCc9uMVX6SZsnybuxjD24F-tg.css.gz
@@ -0,0 +1,6 @@
+     Tn0}Wx-
+d;n52?a-*D7iKl]lB9ͤ}&Ac%G'STi^E4gT;HVq
+mlyT6tR#;KW>@*
+p8L4eѨL9U֎6CQdNHx~WGNrMݬKC߀E0]*vWqVR>r0d=hd - +~>x5ˆ.HOF0ep>u?v.YzAH_Ƣso%m.kEraJMDtkjѮ*}G}#cq4,0j%pHBK_QB
+uARE:o稃.ODCֳ1ҹl-:ExG#jB:42[N_iN`^R)O`OXr$ ܀+~eMvP8=A)Ա\_M%>:m͆Vܶc~+QT%uЛ#ƜW.?s^]|*_*CI4ZxG
+,nԙ{Kh=Ax}9Ǹ%ey/xS  
\ No newline at end of file
diff --git a/sites/default/files/css/css_MGV9jrzDBHJHH_pmCgV80_DZTH48636CtHInSAPnjDg.css b/sites/default/files/css/css_MGV9jrzDBHJHH_pmCgV80_DZTH48636CtHInSAPnjDg.css
new file mode 100644
index 0000000..b82fd52
--- /dev/null
+++ b/sites/default/files/css/css_MGV9jrzDBHJHH_pmCgV80_DZTH48636CtHInSAPnjDg.css
@@ -0,0 +1,30 @@
+body{color:#333;background:#fff;font:normal 81.3%/1.538em "Lucida Grande","Lucida Sans Unicode","DejaVu Sans","Lucida Sans",sans-serif;}a,.link{color:#0074bd;text-decoration:none;}a:hover,.link:hover,a:focus,.link:focus{text-decoration:underline;outline:0;}hr{margin:0;padding:0;border:none;height:1px;background:#cccccc;}summary,.fieldgroup:not(.form-composite) > legend{font-weight:bold;text-transform:uppercase;}.simpletest-results-form summary{text-transform:none;}h1,.heading-a{font-weight:bold;margin:0;font-size:1.625em;line-height:1.875em;}h2,.heading-b{font-weight:bold;margin:10px 0;font-size:1.385em;}h3,.heading-c{font-weight:bold;margin:10px 0;font-size:1.231em;}h4,.heading-d{font-weight:bold;margin:10px 0;font-size:1.154em;}h5,.heading-e{font-weight:bold;margin:10px 0;font-size:1.077em;}h6,.heading-f{font-weight:bold;margin:10px 0;font-size:1.077em;}p{margin:1em 0;}dl{margin:0 0 20px;}dl dd,dl dl{margin-left:20px;margin-bottom:10px;}[dir="rtl"] dl dd,[dir="rtl"] dl dl{margin-right:20px;}blockquote{margin:1em 40px;}address{font-style:italic;}u,ins{text-decoration:underline;}s,strike,del{text-decoration:line-through;}big{font-size:larger;}small{font-size:smaller;}sub{vertical-align:sub;font-size:smaller;line-height:normal;}sup{vertical-align:super;font-size:smaller;line-height:normal;}nobr{white-space:nowrap;}abbr,acronym{border-bottom:dotted 1px;}ul{list-style-type:disc;list-style-image:none;margin:0.25em 0 0.25em 1.5em;}[dir="rtl"] ul{margin-left:0;margin-right:1.5em;}ol{list-style-type:decimal;margin:0.25em 0 0.25em 2em;padding:0;}[dir="rtl"] ol{margin-left:0;margin-right:2em;}quote,code{margin:.5em 0;}code,pre,kbd{font-size:1.231em;}pre{margin:0.5em 0;white-space:pre-wrap;}details{line-height:1.295em;}details summary{padding-top:0.5em;padding-bottom:0.5em;}details summary:focus{border-top:3px solid #0074bd;outline:none;color:#0074bd;margin-top:-3px;}
+.leader{margin-top:20px;margin-top:1.538rem;}.leader-double{margin-top:40px;margin-top:3.076rem;}.leader-triple{margin-top:60px;margin-top:4.614rem;}.leader-quadruple{margin-top:80px;margin-top:6.152rem;}.trailer{margin-bottom:20px;margin-bottom:1.538rem;}.trailer-double{margin-bottom:40px;margin-bottom:3.076rem;}.trailer-triple{margin-bottom:60px;margin-bottom:4.614rem;}.trailer-quadruple{margin-bottom:80px;margin-bottom:6.152rem;}
+@media print{*{background-color:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important;}body{padding-top:0;}a,a:visited{text-decoration:underline;}pre,blockquote{border:1px solid #999;page-break-inside:avoid;}thead{display:table-header-group;}tr,img{page-break-inside:avoid;}img{max-width:100% !important;}p,h2,h3{orphans:3;widows:3;}h2,h3{page-break-after:avoid;}a,.link{color:#000;text-decoration:underline;}.button,.button--primary{background:none !important;}.messages{border-width:1px;border-color:#999;}.is-collapse-enabled .tabs{max-height:999em;}.is-horizontal .tabs__tab{margin:0 4px !important;border-radius:4px 4px 0 0 !important;}.dropbutton-multiple .dropbutton .secondary-action{display:block;}.js .dropbutton-widget,.js td .dropbutton-widget{position:relative;}.js .dropbutton .dropbutton-toggle{display:none;}.js .dropbutton-multiple .dropbutton-widget{background:none;border-radius:4px;}input.form-autocomplete,input.form-text,input.form-tel,input.form-email,input.form-url,input.form-search,input.form-number,input.form-color,input.form-file,textarea.form-textarea,select.form-select{border-width:1px;}}
+.page-content{margin-bottom:80px;}
+.ui-widget{background:none;}.ui-widget-content{border:none;}.ui-state-default,.ui-state-hover,.ui-state-focus,.ui-state-active{outline:0;}.ui-state-highlight{font-weight:bold;}.ui-state-active,.ui-widget-content .ui-state-active{color:#840;background:#fe6;border:solid 1px #ed5;}.ui-state-error,.ui-widget-content .ui-state-error{color:#fff;background:#e63;border-color:#d52;}.ui-state-disabled,.ui-widget-content .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);}.ui-icon{display:block;text-indent:-99999px;width:16px;height:16px;overflow:hidden;background-repeat:no-repeat;background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-222222-256x240.png);}.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-222222-256x240.png);}.ui-state-default .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-888888-256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-highlight .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-454545-256x240.png);}.ui-state-active .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-800000-256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/ui-icons-ffffff-256x240.png);}.ui-widget p .ui-icon{margin:2px 3px 0 0;}[dir="rtl"] .ui-widget p .ui-icon{margin:2px 0 0 3px;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-off{background-position:-96px -144px;}.ui-icon-radio-on{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-icon-carat-1-n{background-position:0 0;}.ui-accordion{border:none;}.ui-accordion .ui-accordion-header{border:solid 1px #ccc;text-transform:uppercase;}.ui-accordion h3.ui-accordion-header,#block-system-main h3.ui-accordion-header{font-size:1.1em;margin:10px 0;}#block-system-main .ui-accordion h3.ui-state-active,.ui-accordion h3.ui-state-active{margin-bottom:0;}.ui-accordion .ui-accordion-header a{display:block;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border:solid 1px #ccc;border-top:0;}.ui-tabs{padding:0;}.ui-tabs .ui-tabs-nav{padding:5px 10px 4px;margin:0;line-height:20px;border-bottom:solid 1px #ccc;border-bottom-left-radius:0;border-bottom-right-radius:0;}.ui-tabs .ui-tabs-nav li{padding:0 1em 0 10px;margin:0;list-style:none;}[dir="rtl"] .ui-tabs .ui-tabs-nav li{padding:0 10px 0 1em;}.ui-tabs .ui-tabs-nav li a{float:none;padding:0 10px;border-radius:10px;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a{color:#fff;background:#666;font-weight:normal;}.ui-widget-overlay{background:#000;opacity:.70;filter:Alpha(Opacity=70);}.ui-slider{border:solid 1px #ccc;}.ui-slider .ui-slider-range{background:#e4e4e4;}.ui-slider .ui-slider-handle{border:1px solid #e4e4e4;border-bottom:1px solid #b4b4b4;border-left-color:#D2D2D2;border-right-color:#D2D2D2;background-color:#e4e4e4;border-radius:4px;}.ui-slider a.ui-state-active,.ui-slider .ui-slider-handle:active{background:#666;color:#fff;border:solid 1px #555;}.ui-progressbar{background:#e4e4e4;height:1.4em;}.ui-progressbar .ui-progressbar-value{background:#0072b9 url(http://localhost/pub_html/contri/drupal/core/misc/progress.gif);height:1.5em;}.ui-datepicker{border:1px solid #A6A6A6;background:#FFF;padding:0;}.ui-datepicker-calendar thead tr{border-bottom:1px solid #A6A6A6;border-top:1px solid #A6A6A6;}.ui-datepicker-calendar tr:hover{background:transparent;}.ui-datepicker td{padding:0;}.ui-datepicker td span,.ui-datepicker td a{color:inherit;text-align:center;}.ui-datepicker .ui-datepicker-header .ui-datepicker-next-hover{cursor:pointer;right:2px;top:2px;}.ui-datepicker .ui-datepicker-header .ui-datepicker-prev-hover{cursor:pointer;left:2px;top:2px;}.ui-datepicker td a.ui-state-hover{background-color:#f7fcff;}.ui-datepicker .ui-state-active{background:#ebeae4;border:none;}.ui-datepicker .ui-state-highlight{font-weight:bold;color:inherit;}.ui-autocomplete{background:#fff;border:1px solid #ccc;}.ui-autocomplete .ui-menu-item.ui-state-focus,.autocomplete .ui-menu-item.ui-state-hover{background:#0072b9;margin:0;}.ui-autocomplete .ui-state-focus a,.autocomplete .ui-state-hover a{color:#fff;}
+ul.admin-list{margin:0;padding:0;}.admin-list li{position:relative;border-top:1px solid #bfbfbf;margin:0;list-style-type:none;list-style-image:none;padding:0;}.admin-list.compact li{border:none;}.admin-list li a{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-right.svg) no-repeat 1px 16px;display:block;padding:14px 15px 14px 25px;min-height:0;}[dir="rtl"] .admin-list li a{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-left.svg) no-repeat right 16px;padding-right:25px;padding-left:15px;}.admin-list.compact li a{background-image:none;padding:2px 0;}.admin-list li a:hover,.admin-list li a:focus,.admin-list li a:active{text-decoration:none;}.admin-list li a .label{font-size:1.0769em;}.admin-list li a:hover .label,.admin-list li a:focus .label,.admin-list li a:active .label{text-decoration:underline;}
+.content-header{overflow:hidden;background-color:#e0e0d8;padding:24px 0 0;}
+.breadcrumb{line-height:1em;padding:20px 0 10px;}
+.button{box-sizing:border-box;display:inline-block;position:relative;text-align:center;line-height:normal;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;padding:4px 1.5em;border:1px solid #a6a6a6;border-radius:20em;background-color:#f2f1eb;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);color:#333;text-decoration:none;text-shadow:0 1px hsla(0,0%,100%,0.6);font-weight:600;font-size:14px;font-size:0.875rem;-webkit-transition:all 0.1s;transition:all 0.1s;-webkit-font-smoothing:antialiased;}.button:hover,.button:focus{background-color:#f9f8f6;background-image:-webkit-linear-gradient(top,#fcfcfa,#e9e9dd);background-image:linear-gradient(to bottom,#fcfcfa,#e9e9dd);color:#1a1a1a;text-decoration:none;outline:none;}.button:hover{box-shadow:0 1px 2px hsla(0,0%,0%,0.125);}.button:focus{z-index:10;border:1px solid #3AB2FF;box-shadow:0 0 0.5em 0.1em hsla(203,100%,60%,0.7);}.button:active{border:1px solid #a6a6a6;background-color:#dfdfd9;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);-webkit-transition:none;transition:none;}.button--primary{border-color:#1e5c90;background-color:#0071b8;background-image:-webkit-linear-gradient(top,#007bc6,#0071b8);background-image:linear-gradient(to bottom,#007bc6,#0071b8);color:#fff;text-shadow:0 1px hsla(0,0%,0%,0.5);font-weight:700;-webkit-font-smoothing:antialiased;}.button--primary:hover,.button--primary:focus{background-color:#2369a6;background-image:-webkit-linear-gradient(top,#0c97ed,#1f86c7);background-image:linear-gradient(to bottom,#0c97ed,#1f86c7);border-color:#1e5c90;color:#fff;}.button--primary:focus{border:1px solid #1280DF;}.button--primary:hover{box-shadow:0 1px 2px hsla(203,10%,10%,0.25);}.button--primary:active{background-image:-webkit-linear-gradient(top,#08639b,#0071b8);background-image:linear-gradient(to bottom,#08639b,#0071b8);border-color:#144b78;box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.button-action:before{margin-left:-0.2em;padding-right:0.2em;font-size:14px;font-size:0.875rem;line-height:16px;-webkit-font-smoothing:auto;}[dir="rtl"] .button-action:before{margin-right:-0.2em;margin-left:0;padding-right:0;padding-left:0.2em;}.no-touch .button--small{font-size:13px;font-size:0.813rem;padding:2px 1em;}.button:disabled,.button:disabled:active,.button.is-disabled,.button.is-disabled:active{border-color:#d4d4d4;background:#ededed;box-shadow:none;color:#5c5c5c;font-weight:normal;cursor:default;text-shadow:0 1px hsla(0,0%,100%,0.6);}.link{display:inline;cursor:pointer;padding:0;border:0;background:none;-webkit-appearance:none;-moz-appearance:none;color:#0074bd;text-decoration:none;}.link:hover,.link:focus{color:#008ee6;text-decoration:underline;}.button--danger{display:inline;cursor:pointer;padding:0;border:0;border-radius:0;box-shadow:none;background:none;-webkit-appearance:none;-moz-appearance:none;color:#c72100;font-weight:400;text-decoration:underline;}.button--danger:hover,.button--danger:focus,.button--danger:active{color:#ff2a00;text-decoration:underline;text-shadow:none;padding:0;border:0;box-shadow:none;background:none;}.button--danger:disabled,.button--danger.is-disabled{color:#737373;cursor:default;text-decoration:none;-webkit-font-smoothing:antialiased;padding:0;border:0;box-shadow:none;background:none;}
+.color-success{color:#325e1c;background-color:#f3faef;}.color-warning{color:#734c00;background-color:#fdf8ed;}.color-error{color:#a51b00;background-color:#fcf4f2;}
+.messages{margin:9px 0 10px 8px;}[dir="rtl"] .messages{margin:9px 8px 10px 0;}.messages pre{margin:0;}
+.js .dropbutton .dropbutton-action > input,.js .dropbutton .dropbutton-action > a,.js .dropbutton .dropbutton-action > button{color:#333333;text-decoration:none;padding:0;margin:0;font-weight:600;line-height:normal;-webkit-font-smoothing:antialiased;text-align:left;}[dir="rtl"] .js .dropbutton .dropbutton-action > input,[dir="rtl"] .js .dropbutton .dropbutton-action > a,[dir="rtl"] .js .dropbutton .dropbutton-action > button{text-align:right;}.js .dropbutton-action.last{border-radius:0 0 0 1em;}[dir="rtl"] .js .dropbutton-action.last{border-radius:0 0 1em 0;}.js .dropbutton-widget .button{background:transparent;border:0;border-radius:0;box-shadow:none;}.js .dropbutton-multiple .dropbutton{border-right:0;}[dir="rtl"].js .dropbutton-multiple .dropbutton{border-left:0;}.dropbutton{margin:0;padding:0;list-style-type:none;}.dropbutton li + li{margin-top:10px;}.js .dropbutton li{margin-bottom:0;margin-right:0;}.js .dropbutton li + li{margin-top:0;}@media screen and (min-width:37.5625em){.dropbutton li{display:inline-block;}.dropbutton li + li{margin-left:1em;margin-top:0;}.js .dropbutton li + li{margin-left:0;}}.js .dropbutton-multiple .dropbutton-widget{border:1px solid #a6a6a6;border-radius:20em;background-color:#f2f1eb;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);text-shadow:0 1px hsla(0,0%,100%,0.6);}.dropbutton-multiple.open .dropbutton-widget{border-radius:1em;}.js .dropbutton-widget .dropbutton-action a,.js .dropbutton-widget .dropbutton-action input,.js .dropbutton-widget .dropbutton-action button{border-radius:20em 0 0 20em;padding:4px 1.5em;display:block;width:100%;}[dir="rtl"].js .dropbutton-widget .dropbutton-action a,[dir="rtl"].js .dropbutton-widget .dropbutton-action input,[dir="rtl"].js .dropbutton-widget .dropbutton-action button{border-radius:0 20em 20em 0;}.js .dropbutton-widget .dropbutton-action a:focus,.js .dropbutton-widget .dropbutton-action input:focus,.js .dropbutton-widget .dropbutton-action button:focus{text-decoration:underline;}.js .dropbutton-multiple.open .dropbutton-action a,.js .dropbutton-multiple.open .dropbutton-action .button{border-radius:0;}.js .dropbutton-multiple.open .dropbutton-action:first-child a,.js .dropbutton-multiple.open .dropbutton-action:first-child .button{border-radius:0.9em 0 0 0;}[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child a,[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child .button{border-radius:0 0.9em 0 0;}.js .dropbutton-multiple.open .dropbutton-action:last-child a,.js .dropbutton-multiple.open .dropbutton-action:last-child .button{border-radius:0 0 0 0.9em;}[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child a,[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child .button{border-radius:0 0 0.9em 0;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action a:hover,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action button:hover,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action input:hover,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action a:focus,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action button:focus,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action input:focus{background-color:#f9f8f6;background-image:-webkit-linear-gradient(top,#fcfcfa,#e9e9dd);background-image:linear-gradient(to bottom,#fcfcfa,#e9e9dd);color:#1a1a1a;box-shadow:0 1px 2px hsla(0,0%,0%,0.125);z-index:3;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action a:active,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action input:active,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action button:active{text-decoration:none;background-color:#dfdfd9;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.dropbutton .secondary-action{border-top:1px solid #bfbfba;}.dropbutton-single .dropbutton-widget{border:0;position:static;display:inline-block;}.dropbutton-single .dropbutton-action a{padding:4px 1.5em;border:1px solid #a6a6a6;border-radius:20em!important;background-color:#f2f1eb;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);color:#333333;text-decoration:none;text-shadow:0 1px hsla(0,0%,100%,0.6);font-weight:600;-webkit-transition:all 0.1s;transition:all 0.1s;-webkit-font-smoothing:antialiased;width:auto!important;}.dropbutton-single .dropbutton-action a:hover,.dropbutton-single .dropbutton-action a:focus{background-color:#f9f8f6;background-image:-webkit-linear-gradient(top,#fcfcfa,#e9e9dd);background-image:linear-gradient(to bottom,#fcfcfa,#e9e9dd);color:#1a1a1a;text-decoration:none;outline:none;}.dropbutton-single .dropbutton-action a:hover,.dropbutton-single .dropbutton-action a:focus{box-shadow:0 1px 2px hsla(0,0%,0%,0.125);}.dropbutton-single .dropbutton-action a:active{background-color:#dfdfd9;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);-webkit-transition:none;transition:none;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button{border-left:1px solid #a6a6a6;outline:none;}[dir="rtl"].js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button{border-right:1px solid #a6a6a6;border-left:0;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button{border-radius:0 20em 20em 0;}[dir="rtl"].js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button{border-radius:20em 0 0 20em;}.dropbutton-multiple.open .dropbutton-widget .dropbutton-toggle button{border-radius:0 1em 1em 0;}[dir="rtl"] .dropbutton-multiple.open .dropbutton-widget .dropbutton-toggle button{border-radius:1em 0 0 1em;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:hover,.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:focus{background-color:#f9f8f6;background-image:-webkit-linear-gradient(top,#fcfcfa,#e9e9dd);background-image:linear-gradient(to bottom,#fcfcfa,#e9e9dd);color:#1a1a1a;text-decoration:none;box-shadow:0 1px 2px hsla(0,0%,0%,0.125);z-index:3;}.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:active{background-color:#dfdfd9;background-image:-webkit-linear-gradient(top,#f6f6f3,#e7e7df);background-image:linear-gradient(to bottom,#f6f6f3,#e7e7df);box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.dropbutton-arrow{border-top-color:#333;right:35%;top:54%;}[dir="rtl"] .dropbutton-arrow{left:35%;right:auto;}.dropbutton-multiple.open .dropbutton-arrow{border-bottom:0.3333em solid #333;border-top-color:transparent;top:0.6667em;}.js .form-actions .dropbutton .dropbutton-action > *{color:#fff;font-weight:700;text-shadow:0 1px hsla(0,0%,0%,0.5);}.js .form-actions .dropbutton-widget{border-color:#1e5c90;background-color:#0071b8;background-image:-webkit-linear-gradient(top,#007bc6,#0071b8);background-image:linear-gradient(to bottom,#007bc6,#0071b8);text-shadow:0 1px hsla(0,0%,0%,0.5);position:relative;}.form-actions .dropbutton-multiple.open .dropbutton-widget{background-image:-webkit-linear-gradient(top,#007bc6,#0071b8);background-image:linear-gradient(to bottom,#007bc6,#0071b8);}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-action .button:hover,.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-action .button:focus{background-color:#2369a6;background-image:-webkit-linear-gradient(top,#0c97ed,#1f86c7);background-image:linear-gradient(to bottom,#0c97ed,#1f86c7);box-shadow:0 1px 2px hsla(203,10%,10%,0.25);color:#fff;}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-action .button:active{background-image:-webkit-linear-gradient(top,#08639b,#0071b8);background-image:linear-gradient(to bottom,#08639b,#0071b8);border-color:#144b78;box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button,.form-actions .dropbutton .secondary-action{border-color:#1e5c90;}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button{background-image:-webkit-linear-gradient(top,#007bc6,#0071b8);background-image:linear-gradient(to bottom,#007bc6,#0071b8);}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:hover,.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:focus{background-color:#2369a6;background-image:-webkit-linear-gradient(top,#0c97ed,#1f86c7);background-image:linear-gradient(to bottom,#0c97ed,#1f86c7);}.js .form-actions .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:active{background-image:-webkit-linear-gradient(top,#08639b,#0071b8);background-image:linear-gradient(to bottom,#08639b,#0071b8);border-color:#144b78;box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.form-actions .dropbutton-arrow{border-top-color:#fff;}.form-actions .dropbutton-multiple.open .dropbutton-arrow{border-bottom:0.3333em solid white;}
+.entity-meta{background-color:#ececec;border-bottom:0;border-left:1px solid #bfbfbf;border-right:1px solid #bfbfbf;border-top:0;box-shadow:inset 0 0 5px rgba(0,0,0,.15);margin-top:0;padding-top:0;}.entity-meta-header,.entity-meta details{background-color:#f7f7f7;border-top:1px solid #bfbfbf;border-bottom:1px solid #bfbfbf;}.entity-meta-header{padding:1em 1.5em;}.entity-meta-header .form-item{margin:.25em 0;}.entity-meta-header .published{font-size:1.231em;font-weight:bold;text-shadow:0 1px 0 #fff;}.entity-meta-header .changed{font-style:italic;}.entity-meta details{border-left:0;border-right:0;border-top:1px solid #ffffff;margin:0;}.entity-meta details[open]{background-color:transparent;background-image:-webkit-linear-gradient(top,rgba(0,0,0,.125),transparent 4px);background-image:linear-gradient(to bottom,rgba(0,0,0,.125),transparent 4px);border-top-width:0;padding-top:1px;}.entity-meta details[open] + [open]{background-image:none;border-top-width:1px;padding-top:0;}.entity-meta details > .details-wrapper{padding-top:0;}.entity-meta details > summary{padding:0.85em 1.25em;text-shadow:0 1px 0 white;}.entity-meta details .summary{display:none;}
+#field-display-overview input.field-plugin-settings-edit{margin:0;padding:1px 8px;}#field-display-overview tr.field-plugin-settings-changed{background:#ffffbb;}#field-display-overview tr.drag{background:#ffee77;}#field-display-overview tr.field-plugin-settings-editing{background:#d5e9f2;}#field-display-overview .field-plugin-settings-edit-form .form-item{margin:10px 0;}#field-display-overview .field-plugin-settings-edit-form .form-submit{margin-bottom:0;}#field-display-overview .form-item-fields-field-image-settings-edit-form-settings-image-style .description{display:inline-block;margin-left:1em;}[dir="rtl"] #field-display-overview .form-item-fields-field-image-settings-edit-form-settings-image-style .description{margin-left:0;margin-right:1em;}
+form{margin:0;padding:0;}fieldset:not(.fieldgroup){background-color:#fcfcfa;border-radius:2px;margin:1em 0;padding:30px 18px 18px;position:relative;}fieldset:not(.fieldgroup) legend{font-size:1em;font-weight:bold;letter-spacing:0.08em;position:absolute;text-transform:uppercase;top:10px;}.fieldgroup{min-width:0;}@-moz-document url-prefix(){.fieldgroup{display:table-cell;}}.form-item{margin:0.75em 0;}.form-type-checkbox{padding:0;}label{display:table;margin:0 0 0.1em;padding:0;font-weight:bold;}label.error{color:#a51b00;}label[for]{cursor:pointer;}.form-item label.option{text-transform:none;}.form-item label.option input{vertical-align:middle;}.form-disabled label{color:#737373;}.form-disabled input.form-text,.form-disabled input.form-tel,.form-disabled input.form-email,.form-disabled input.form-url,.form-disabled input.form-search,.form-disabled input.form-number,.form-disabled input.form-color,.form-disabled input.form-file,.form-disabled textarea.form-textarea,.form-disabled select.form-select{border-color:#d4d4d4;background-color:hsla(0,0%,0%,.08);box-shadow:none;}.form-item input.error,.form-item textarea.error,.form-item select.error{border-width:2px;border-color:#e62600;background-color:hsla(15,75%,97%,1);box-shadow:inset 0 5px 5px -5px #b8b8b8;color:#a51b00;}.form-item input.error:focus,.form-item textarea.error:focus,.form-item select.error:focus{border-color:#e62600;outline:0;box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 0 8px 1px #e62600;background-color:#fcf4f2;}.form-required:after{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/seven/images/required.svg);background-size:7px 7px;width:7px;height:7px;}ul.tips,div.description,.form-item .description{margin:0.2em 0 0 0;color:#595959;font-size:0.95em;}.form-item .description.error{color:#a51b00;}ul.tips li{margin:0.25em 0 0.25em 1.5em;}[dir="rtl"] ul.tips li{margin:0.25em 1.5em 0.25em 0;}.form-type-radio .description,.form-type-checkbox .description{margin-left:1.5em;}[dir="rtl"] .form-type-radio .description,[dir="rtl"] .form-type-checkbox .description{margin-left:0;margin-right:1.5em;}.form-text,.form-textarea{border-radius:2px;font-size:1em;line-height:normal;}input.form-autocomplete,input.form-text,input.form-tel,input.form-email,input.form-url,input.form-search,input.form-number,input.form-color,input.form-file,input.form-date,input.form-time,textarea.form-textarea{box-sizing:border-box;padding:.3em .4em .3em .5em;max-width:100%;border:1px solid #b8b8b8;border-top-color:#999;background:#fff;color:#333;border-radius:2px;background:#fcfcfa;box-shadow:inset 0 1px 2px rgba(0,0,0,.125);font-size:1em;color:#595959;-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;}[dir="rtl"] textarea.form-textarea{padding:.3em .5em .3em .4em;}.form-text:focus,.form-tel:focus,.form-email:focus,.form-url:focus,.form-search:focus,.form-number:focus,.form-color:focus,.form-file:focus,.form-textarea:focus,.form-date:focus,.form-time:focus{border-color:#40b6ff;outline:0;box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 0 8px #40b6ff;background-color:#fff;}.confirm-parent,.password-parent{overflow:visible;width:auto;}.form-item .password-suggestions{float:left;clear:left;width:100%;}[dir="rtl"] .form-item .password-suggestions{float:right;clear:right;}.form-item-pass .description{clear:both;}select{max-width:100%;}@media screen and (-webkit-min-device-pixel-ratio:0){select{cursor:pointer;-webkit-appearance:none;padding:1px 1.571em 1px 0.5em;border:1px solid #a6a6a6;border-radius:0.143em;background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/333333/caret-down.svg) no-repeat 99% 63%,-webkit-linear-gradient(top,#f6f6f3,#e7e7df);text-shadow:0 1px hsla(0,0%,100%,0.6);font-size:0.875rem;-webkit-transition:all 0.1s;transition:all 0.1s;-webkit-font-smoothing:antialiased;}[dir="rtl"] select{padding:1px 0.714em 1px 1.571em;background-position:1% 63%,0 0;}select:focus,select:hover{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/333333/caret-down.svg),-webkit-linear-gradient(top,#fcfcfa,#e9e9dd);color:#1a1a1a;}select:hover{box-shadow:0 1px 2px hsla(0,0%,0%,0.125);}}#edit-cancel{margin-left:10px;}[dir="rtl"] #edit-cancel{margin-left:0;margin-right:10px;}@media screen and (max-width:600px){input.form-autocomplete,input.form-text,input.form-tel,input.form-email,input.form-url,input.form-search,input.form-number,input.form-color,input.form-file,textarea.form-textarea{width:100%;font-size:1.2em;line-height:1.2em;}input.form-number{width:auto;}.form-actions input,.form-wrapper input[type="submit"]{float:none;margin-left:0;margin-right:0;margin-top:10px;padding-bottom:6px;width:100%;}.form-actions input:first-child,.form-wrapper input[type="submit"]:first-child{margin-top:0;}details summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;}.password-strength{width:100%;}div.form-item div.password-suggestions{float:none;}#dblog-filter-form .form-actions{float:none;padding:0;}#edit-cancel{display:block;margin:10px 0 0 0;}}#diff-inline-form select,div.filter-options select{padding:0;}
+.help p{margin:0 0 10px;}
+.item-list ul{list-style-type:disc;list-style-image:none;margin:0.25em 0 0.25em 1.5em;}[dir="rtl"] .item-list ul{margin:0.25em 1.5em 0.25em 0;}.item-list ul li,.menu-item{list-style-type:disc;list-style-image:none;}.menu-item{margin:0;}.item-list ul li.collapsed,.menu-item--collapsed{list-style-image:url(http://localhost/pub_html/contri/drupal/core/misc/menu-collapsed.png);list-style-type:disc;}.item-list ul li.expanded,.menu-item--expanded{list-style-image:url(http://localhost/pub_html/contri/drupal/core/misc/menu-expanded.png);list-style-type:circle;}ul.links li,ul.inline li{padding-right:1em;}[dir="rtl"] ul.links li,[dir="rtl"] ul.inline li{padding-left:1em;}ul.inline li{display:inline;}
+.system-modules fieldset{border:0;border-top:1px solid #ccc;}.system-modules details{border:0;margin:0;padding:0;}.system-modules summary{border-bottom:1px solid #ccc;}.system-modules [open] summary{border-bottom:none;}.system-modules .details-wrapper{padding:0 0 0.5em 0;}.system-modules .fieldset-wrapper{padding:0;}.system-modules table,.locale-translation-status-form table{border:0;}.system-modules tr.even,.system-modules tr.odd,.locale-translation-status-form tr.even,.locale-translation-status-form tr.odd{background:#f3f4ee;border:0;border-bottom:10px solid #fff;}.system-modules tr td:last-child,.locale-translation-status-form tr td:last-child{border:0;}.system-modules table th,.locale-translation-status-form table th{border:0;border-bottom:10px solid #fff;}.system-modules .sticky-header th,.locale-translation-status-form .sticky-header th{border:0;}
+.node__submitted{margin:1em 0;}
+.page-title{display:inline-block;-webkit-font-smoothing:antialiased;}
+.pager__items{margin:0.25em 0 0.25em 1.5em;padding:0;}[dir="rtl"] .pager__items{margin:0.25em 1.5em 0.25em 0;}.pager__item{display:inline-block;color:#8c8c8c;font-size:1.08em;margin:0;padding:0 0.4em;}.pager__item a{border-bottom:2px solid transparent;line-height:1.55em;padding:0 5px 2px;font-weight:600;text-decoration:none;transition:border-bottom-color 0.2s;-webkit-font-smoothing:antialiased;}.pager__item.is-active a{border-bottom-width:3px;border-bottom-color:#2a678c;color:#2a678c;font-weight:700;}.pager__item a:hover,.pager__item a:focus{border-bottom-color:#3395d2;color:#3395d2;}.pager__item--next a,.pager__item--last a,.pager__item--first a,.pager__item--previous a{border-bottom-width:0;color:#2a678c;}
+.panel{margin:0 0 20px;padding:9px;background:#f8f8f8;border:1px solid #ccc;}.panel__title{font-size:1em;text-transform:uppercase;margin:0;padding-bottom:9px;}
+.skip-link{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);z-index:50;background:#444;color:#fff;font-size:0.94em;padding:1px 10px 2px;border-radius:0 0 10px 10px;}.skip-link:focus{text-decoration:none;}.skip-link.visually-hidden.focusable:focus{position:absolute !important;}
+table{width:100%;margin:0 0 10px;}caption{text-align:left;}[dir="rtl"] caption{text-align:right;}th{text-align:left;padding:10px 12px;}[dir="rtl"] th{text-align:right;}thead th{background:#f5f5f2;border:solid #bfbfba;border-width:1px 0;color:#333;text-transform:uppercase;}tr{border-bottom:1px solid #e6e4df;padding:0.1em 0.6em;}thead > tr{border-bottom:1px solid #000;}tbody tr:hover,tbody tr:focus{background:#f7fcff;}tbody tr.color-warning:hover,tbody tr.color-warning:focus{background:#fdf8ed;}tbody tr.color-error:hover,tbody tr.color-error:focus{background:#fcf4f2;}td,th{vertical-align:middle;}td{padding:10px 12px;text-align:left;}[dir="rtl"] td{text-align:right;}th > a{position:relative;display:block;}th > a:after{content:'';display:block;position:absolute;top:0;bottom:-10px;left:0;right:0;border-bottom:2px solid transparent;-webkit-transition:all 0.1s;transition:all 0.1s;}th.is-active > a{color:#004875;}th.is-active img{position:absolute;right:0;top:50%;}[dir="rtl"] th.is-active img{right:auto;left:0;}th.is-active > a:after{border-bottom-color:#004875;}th > a:hover,th > a:focus,th.is-active > a:hover,th.is-active > a:focus{color:#008ee6;text-decoration:none;}th > a:hover:after,th > a:focus:after,th.is-active > a:hover:after,th.is-active > a:focus:after{border-bottom-color:#008ee6;}td .item-list ul{margin:0;}td.is-active{background:none;}th.select-all{width:1px;}.caption{margin-bottom:1.2em;}@media screen and (max-width:37.5em){th.priority-low,td.priority-low,th.priority-medium,td.priority-medium{display:none;}}@media screen and (max-width:60em){th.priority-low,td.priority-low{display:none;}}
+.system-status-report__entry{border-top:1px solid #ccc;border-bottom:inherit;}.system-status-report__entry:first-child{border-top:1px solid #bebfb9;}.system-status-report__entry:last-child{border-bottom:1px solid #bebfb9;}
+.is-collapse-enabled  .tabs,.is-horizontal .tabs{position:relative;}.is-collapse-enabled .tabs:before,.is-horizontal .tabs:before{content:'';display:block;background-color:#A6A6A6;height:1px;position:absolute;bottom:0;left:0;z-index:10;right:0;}.content-header .is-horizontal .tabs:before,.content-header .is-collapse-enabled .tabs:before{left:-2.5em;right:-2.5em;}.tabs__tab{position:relative;display:block;overflow:hidden;box-sizing:border-box;margin:-1px 0 0;padding:9px 2em 7px 1em;width:100%;border:1px solid #bfbfbf;background-color:rgba(242,242,240,0.7);color:#0074bd;text-overflow:ellipsis;white-space:nowrap;}[dir="rtl"] .tabs__tab{padding-left:2em;padding-right:1em;}.tabs__tab:hover,.tabs__tab:focus{color:#008ee6;background-color:#fafaf7;}li.tabs__tab{display:block;padding:0;}[dir="rtl"] li.tabs__tab{padding-left:0;padding-right:0;}li.tabs__tab a{padding:9px 2em 7px 1em;}[dir="rtl"] li.tabs__tab a{padding-left:2em;padding-right:1em;}.tabs a:hover,.tabs a:focus{text-decoration:none;}.tabs.primary{clear:both;margin:16px 0 0;margin:1rem 0 0;}.tabs.primary .tabs__tab.is-active{z-index:15;border-color:#a6a6a6;border-radius:4px 0 0 0;background-color:#ffffff;color:#004f80;}[dir="rtl"] .tabs.primary .tabs__tab.is-active{border-top-left-radius:0;border-top-right-radius:4px;}.tabs.primary a{background:none;}.tabs.primary a:focus{color:#008ee6;background-color:#fafaf7;text-decoration:underline;}.tabs.primary .is-active a:focus{background:none;text-decoration:underline;}@media screen and (min-width:18.75em){.tabs.primary a{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/0074bd/chevron-right.svg) 99% center no-repeat;}[dir="rtl"] .tabs.primary a{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/0074bd/chevron-left.svg) 1% center no-repeat;}.tabs.primary .tabs__tab.is-active a{background-image:none;}}.tabs__trigger{display:none;}.is-collapse-enabled .tabs__trigger{box-sizing:content-box;display:block;position:absolute;z-index:10;right:0;top:2px;left:auto;width:25%;padding-right:4px;padding-left:4px;border-left:0;border-radius:0 4px 0 0;font-family:Arial,sans-serif;font-size:1.25em;letter-spacing:0.1em;text-align:center;outline:0;}[dir="rtl"] .is-collapse-enabled .tabs__trigger{border-right:0;border-left:1px solid #bfbfbf;border-radius:4px 0 0 0;right:auto;left:0;}.is-collapse-enabled .tabs{padding-top:38px;max-height:0;}.tabs.is-open{max-height:999em;padding-bottom:16px;padding-bottom:1rem;}.is-collapse-enabled .tabs__tab.is-active{position:absolute;top:2px;left:0;width:75%;border-bottom:0;}[dir="rtl"] .is-collapse-enabled .tabs__tab.is-active{left:auto;right:0;}.is-collapse-enabled .tabs.primary a.is-active:before{content:none;}.is-open .tabs__tab.is-active{border-color:#a6a6a6;background-color:#ffffff;color:#004f80;border-bottom:1px solid #a6a6a6;}.is-horizontal .tabs{max-height:none !important;padding-top:0 !important;overflow:visible;}.is-horizontal .tabs__tab{float:left;height:auto;width:auto;margin:0 0 -1px;text-align:center;border-bottom-color:#a6a6a6;}[dir="rtl"] .is-horizontal .tabs__tab{float:right;margin-left:0;}.is-horizontal .tabs__tab + .tabs__tab{margin-left:-1px;}[dir="rtl"] .is-horizontal .tabs__tab + .tabs__tab{margin-left:0;margin-right:-1px;}.is-horizontal .tabs.primary .tabs__tab:first-child{border-radius:4px 0 0 0;}[dir="rtl"] .is-horizontal .tabs.primary .tabs__tab:first-child{border-radius:0 4px 0 0;}.is-horizontal .tabs.primary .tabs__tab:last-child{border-radius:0 4px 0 0;}[dir="rtl"] .is-horizontal .tabs.primary .tabs__tab:last-child{border-radius:4px 0 0 0;}.is-horizontal .tabs__tab.is-active,.is-horizontal .tabs.primary .tabs__tab.is-active,[dir="rtl"] .is-horizontal .tabs.primary .tabs__tab.is-active{border-radius:4px 4px 0 0;position:relative;width:auto;top:0;border-bottom:0;margin:0 -4px;}.is-horizontal .tabs.primary a{background-image:none;padding:7px 2em 7px 2em;}.is-horizontal .tabs__trigger{display:none;}.tabs.secondary{display:block;margin-top:16px;margin-top:1rem;}.tabs.secondary .tabs__tab{display:block;padding:5px 15px 5px 16px;margin-left:-1px;color:#0074bd;-webkit-transition:border-color 0.2s,background-color 0.2s;transition:border-color 0.2s,background-color 0.2s;}[dir="rtl"] .tabs.secondary .tabs__tab{padding-left:15px;padding-right:16px;margin-left:0;margin-right:-1px;}.tabs.secondary .tabs__tab + .tabs__tab{border-top:1px solid #d9d8d4;}.tabs.secondary .tabs__tab.is-active{color:#004f80;border-left:2px solid #004f80;padding-left:15px;}[dir="rtl"] .tabs.secondary .tabs__tab.is-active{border-left:1px solid #bfbfbf;border-right:2px solid #004f80;padding-right:15px;}.tabs.secondary .tabs__tab:hover,.tabs.secondary .tabs__tab:focus{color:#008ee6;border-left:2px solid #008ee6;padding-left:15px;}[dir="rtl"] .tabs.secondary .tabs__tab:hover,[dir="rtl"] .tabs.secondary .tabs__tab:focus{border-left:1px solid #bfbfbf;border-right:2px solid #008ee6;padding-right:15px;}.tabs.secondary a{background-color:transparent;padding:7px 13px 5px;text-decoration:none;}.tabs.secondary .is-active a{color:#004f80;}.tabs.secondary a:focus{text-decoration:underline;}.is-horizontal .tabs.secondary .tabs__tab{background:none;float:left;position:relative;top:0;z-index:15;margin-left:1em;margin-right:1em;border-bottom:2px solid transparent;border-left:1px solid transparent;border-right-color:transparent;border-top:0;padding:0;}[dir="rtl"] .is-horizontal .tabs.secondary .tabs__tab{float:right;border-right:1px solid transparent;border-left-color:transparent;padding-right:0;}.is-horizontal .tabs.secondary .tabs__tab.is-active{border-bottom-color:#004f80;}.is-horizontal .tabs.secondary .tabs__tab:hover,.is-horizontal .tabs.secondary .tabs__tab:focus{border-bottom-color:#008ee6;}
+.joyride-tip-guide{background:#000;background:rgba(0,0,0,0.8);color:#fff;border-radius:5px;}@media only screen and (max-width:767px){.joyride-tip-guide{border-radius:0;}}.joyride-tip-guide .joyride-nub{border:solid 14px rgba(0,0,0,0.8);}.joyride-tip-guide .joyride-nub.top{border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;}.joyride-tip-guide .joyride-nub.bottom{border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent;}.joyride-tip-guide .joyride-nub.right{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;}[dir="rtl"] .joyride-tip-guide .joyride-nub.right{border-left-color:transparent;border-right-color:rgba(0,0,0,0.8);}.joyride-tip-guide .joyride-nub.left{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;}[dir="rtl"] .joyride-tip-guide .joyride-nub.left{border-left-color:rgba(0,0,0,0.8);border-right-color:transparent;}.joyride-tip-guide .joyride-nub.top-right{border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;}.joyride-tip-guide h2{color:#fff;}.joyride-tip-guide p{line-height:1.385em;}.joyride-tip-guide a{color:#fff;}.joyride-tip-guide .joyride-next-tip{margin:0;}.joyride-timer-indicator-wrap{border:solid 1px rgba(255,255,255,0.1);}.joyride-timer-indicator{background:rgba(255,255,255,0.25);}.joyride-close-tip{color:rgba(255,255,255,0.4);text-decoration:none;font-size:1.4em;font-weight:bold;}.joyride-close-tip:hover,.joyride-close-tip:focus{color:rgba(255,255,255,0.9);text-decoration:none;}.joyride-modal-bg{background:rgba(0,0,0,0.5);}.joyride-expose-wrapper{background-color:#ffffff;}.joyride-expose-cover{background:transparent;}
+details.fieldset-no-legend{padding-top:0;}#views-ui-add-form details details .details-wrapper{padding-left:0;padding-right:0;}.views-display-tab details.box-padding .details-wrapper{padding:0;}.views-admin input.form-submit,.views-ui-dialog input.form-submit,.views-admin a.button,.views-ui-dialog a.button{margin-bottom:0;margin-right:0;margin-top:0;}[dir="rtl"] .views-admin input.form-submit,[dir="rtl"] .views-ui-dialog input.form-submit,[dir="rtl"] .views-admin a.button,[dir="rtl"] .views-ui-dialog a.button{margin-left:0;}.form-radios > .form-item{margin-top:3px;}.form-item-options-expose-required,.form-item-options-expose-label,.form-item-options-expose-description{margin-left:1.5em;}[dir="rtl"] .form-item-options-expose-required,[dir="rtl"] .form-item-options-expose-label,[dir="rtl"] .form-item-options-expose-description{margin-left:0;margin-right:1.5em;}.views-admin-dependent .form-item .form-item,.views-admin-dependent .form-type-checkboxes,.views-admin-dependent .form-type-radios,.views-admin-dependent .form-item .form-item,.form-item-options-expose-required,.form-item-options-expose-label,.form-item-options-expose-description{margin-bottom:6px;margin-top:6px;}.views-admin-dependent .form-type-radio,.views-admin-dependent .form-radios .form-item{margin-bottom:2px;margin-top:2px;}.views-admin ul.secondary,.views-admin .item-list ul{margin:0;padding:0;}.views-displays ul.secondary li a,.views-displays ul.secondary li.is-active a,.views-displays ul.secondary li.is-active a.is-active{padding:2px 7px 3px;}.views-displays ul.secondary li a{color:#0074bd;}.views-displays ul.secondary li.is-active a,.views-displays ul.secondary li.is-active a.is-active{border:1px solid transparent;}.views-admin .links li{padding-right:0;}[dir="rtl"] .views-admin .links li{padding-left:0;}.views-admin .button .links li{padding-right:12px;}[dir="rtl"] .views-admin .button .links li{padding-left:12px;}.views-display-top ul.secondary{background-color:transparent;float:left;}[dir="rtl"] .views-display-top ul.secondary{float:right;}.views-display-top .secondary .action-list li{float:none;margin:0;}.views-ui-rearrange-filter-form table td,.views-ui-rearrange-filter-form table th{vertical-align:top;}#edit-display-settings-title{color:#008BCB;}.views-displays .secondary{text-align:left;}[dir="rtl"] .views-displays .secondary{text-align:right;}.views-admin .icon.add{background-position:center 3px;}.views-displays .secondary a:hover > .icon.add{background-position:center -25px;}.views-displays .secondary .open > a{border-radius:7px 7px 0 0;}.views-displays .secondary .open > a:hover,.views-displays .secondary .open > a:focus{background-color:#f1f1f1;color:#008BCB;}.views-displays .secondary .action-list  li:first-child{border-radius:0 7px 0 0;}[dir="rtl"] .views-displays .secondary .action-list  li:first-child{border-radius:7px 0 0 0;}.views-displays .secondary .action-list  li:last-child{border-radius:0 0 7px 7px;}.views-displays .secondary .action-list input.form-submit{color:#008bcb;}.views-ui-display-tab-bucket h3{text-transform:uppercase;}.views-ui-display-tab-bucket .links{padding:2px 6px 4px;}.views-ui-display-tab-bucket .links li + li{margin-left:3px;}[dir="rtl"] .views-ui-display-tab-bucket .links li + li{margin-left:0;margin-right:3px;}.views-ui-rearrange-filter-form .action-links{margin:0;padding:0;}.views-ui-rearrange-filter-form table{border:medium none;}.views-ui-rearrange-filter-form [id^="views-row"]{border:medium none;}.views-ui-rearrange-filter-form tr td:last-child{border-right:medium none;}[dir="rtl"] .views-ui-rearrange-filter-form tr td:last-child{border-left:medium none;border-right:initial;}.views-ui-rearrange-filter-form .filter-group-operator-row{border-left:1px solid transparent !important;border-right:1px solid transparent !important;}.views-ui-rearrange-filter-form tr.drag td{background-color:#FFEE77 !important;}.views-ui-rearrange-filter-form tr.drag-previous td{background-color:#FFFFBB !important;}.views-query-info pre{margin-bottom:0;margin-top:0;}.views-query-info table{border-radius:7px;-webkit-border-horizontal-spacing:1px;-webkit-border-vertical-spacing:1px;}.views-query-info table tr td:last-child{border-right:0 none;}[dir="rtl"] .views-query-info table tr td:last-child{border-left:0 none;border-right:initial;}.form-item-page-create,.form-item-block-create{margin-top:13px;}.filterable-option .form-item.form-type-checkbox{padding-bottom:4px;padding-left:4px;padding-top:4px;}[dir="rtl"] .filterable-option .form-item.form-type-checkbox{padding-left:8px;padding-right:4px;}
+.vertical-tabs{position:relative;overflow:hidden;margin:10px 0;border:1px solid #bdbdbd;border-radius:4px;background:#e6e5e1;}.vertical-tabs__menu{float:left;width:240px;margin:0 -100% -1px 0;padding:0;border-bottom:1px solid #ccc;line-height:1;}[dir="rtl"] .vertical-tabs__menu{float:right;margin:0 0 -1px -100%;}.vertical-tabs__menu-item{position:relative;}.vertical-tabs__menu-item.is-selected{z-index:1;overflow-x:hidden;width:100%;border-right:1px solid #fcfcfa;box-shadow:0 5px 5px -5px hsla(0,0%,0%,0.3);border-bottom:1px solid #b3b2ad;}.vertical-tabs__menu-item.last{border-bottom:none;}[dir="rtl"] .vertical-tabs__menu-item.is-selected{border-left:1px solid #fcfcfa;border-right:none;}.vertical-tabs__menu-item:focus,.vertical-tabs__menu-item:active{z-index:2;}.vertical-tabs__menu-item.is-selected:focus{outline:none;}.vertical-tabs__menu-item a{display:block;padding:10px 15px 15px;border-bottom:1px solid #b3b2ad;background-color:#f2f2f0;text-shadow:0 1px hsla(0,0%,100%,0.6);text-decoration:none;}.vertical-tabs__menu-item:last-child a{border-bottom:0;}.vertical-tabs__menu-item.is-selected a,.vertical-tabs__menu-item a:hover,.vertical-tabs__menu-item a:focus{background:#fcfcfa;text-shadow:none;text-decoration:none;}.vertical-tabs__menu-item.is-selected a{color:#004f80;border-left:4px solid #0074bd;padding-left:11px;border-bottom:none;outline:none;text-decoration:none;}[dir=rtl] .vertical-tabs__menu-item.is-selected a{border-left:0;border-right:4px solid #0074bd;padding-left:15px;padding-right:11px;}.vertical-tabs__menu-item.is-selected a:hover,.vertical-tabs__menu-item.is-selected a:focus{color:#007ecc;}[data-vertical-tabs-panes]{background-color:#fcfcfa;}.vertical-tabs__panes{margin:0 0 0 240px;padding:10px 15px 10px 15px;border-left:1px solid #a6a5a1;}[dir="rtl"] .vertical-tabs__panes{margin:0 240px 0 0;border-left:none;border-right:1px solid #a6a5a1;}.vertical-tabs__panes:after{content:"";display:table;clear:both;}.vertical-tabs__pane{margin:0;padding:0;border:0;color:#595959;}.vertical-tabs__menu-item-summary{display:block;padding-top:0.4em;color:#666;}.vertical-tabs__pane > summary{display:none;}
+.ui-dialog{background:transparent;border:0;position:absolute;z-index:1260;overflow:hidden;padding:0;}@media all and (max-width:48em){.ui-dialog{width:92% !important;}}.ui-dialog .ui-dialog-titlebar{background:#6b6b6b;border-top-left-radius:5px;border-top-right-radius:5px;padding:15px 49px 15px 15px;}.ui-dialog .ui-dialog-title{font-size:1.231em;font-weight:600;margin:0;color:#ffffff;-webkit-font-smoothing:antialiased;}.ui-dialog .ui-dialog-titlebar-close{border:0;background:none;right:20px;top:20px;margin:0;height:16px;width:16px;position:absolute;}[dir="rtl"] .ui-dialog .ui-dialog-titlebar-close{right:auto;left:20px;}.ui-dialog .ui-icon.ui-icon-closethick{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/ex.svg) 0 0 no-repeat;margin-top:-12px;}.ui-dialog .ui-widget-content.ui-dialog-content{background:#ffffff;overflow:auto;padding:1em;}.views-ui-dialog .ui-widget-content.ui-dialog-content{padding:0;}.ui-dialog .ui-widget-content.ui-dialog-buttonpane{background:#f5f5f2;margin:0;padding:15px 20px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{margin:0;padding:0;float:none;}.ui-dialog .ui-dialog-buttonpane .ui-button-text-only .ui-button-text{padding:0;}.ui-dialog .ui-dialog-content{position:static;}.ui-dialog .ui-dialog-content .form-actions{padding:0;margin:0;}.ui-dialog .ajax-progress-throbber{left:49%;position:fixed;top:48.5%;z-index:1000;background-color:#232323;background-image:url(http://localhost/pub_html/contri/drupal/core/misc/loading-small.gif);background-position:center center;background-repeat:no-repeat;border-radius:7px;height:24px;opacity:0.9;padding:4px;width:24px;}[dir="rtl"] .ui-dialog .ajax-progress-throbber{left:auto;right:49%;}.ui-dialog .ajax-progress-throbber .throbber,.ui-dialog .ajax-progress-throbber .message{display:none;}
diff --git a/sites/default/files/css/css_MGV9jrzDBHJHH_pmCgV80_DZTH48636CtHInSAPnjDg.css.gz b/sites/default/files/css/css_MGV9jrzDBHJHH_pmCgV80_DZTH48636CtHInSAPnjDg.css.gz
new file mode 100644
index 0000000..1257160
--- /dev/null
+++ b/sites/default/files/css/css_MGV9jrzDBHJHH_pmCgV80_DZTH48636CtHInSAPnjDg.css.gz
@@ -0,0 +1,56 @@
+     =k8+ti46k)nc7s/܇Dۚ%$cc!-L$"Ūb*n圔yYL&&NvUy*vޖEs_!ν8~qJ4E/SQkTe%yV<pTp1ݤ=7~,0"e#(oTgYƝB~婁e_q
+iVMYᲴ=v~||?K}:
+^F6Cy
+ol1<:kН*3nʜutt<*kՠ5n
+է}(V
+(%~<
+(\_~C`aTy]QWZ8<>{r%t5dL|zx6%].~o_{K\Ҽe9/"ϼ4msO޲iih})ͪWMgOڊ*+mgïA"RSs?汚n^rt5qa&?%PzT7UF)ʵr=rpXs8mX,sc+^R] c^8AS16s,^g,?z..g5#߼}Zxr˙" QĜ`\$Ifp-4($YZ0XKg x!\5Y+QgcFlp#)SY^e5HV5MyU86yA	̳?ȰSwAuy#J5&sjȰ~Z69a
+(i0O%_OqZ6ǚ4`x3&-u(}b:3*wB9CVtCw|fw9M>n2
+/x.&.B|}OcWDUZ]6`IlR|E1H=38yZay!S=K}Xftwƪ/MS!.Ql^g)K=[g6*sY5.X>}#o;X3õG}(Q%=8Y7*	0 8d5c|T R/4	E	W~J[Ԥ"1xXaTKrZGAZ<Ԙ>E	P]%_j C7͙@
+HCj oj&y{ʈLWOSSHx"ş耕TI?kW^|RlAX]kT%m]gC8l1)2\Hu޵u+nb<hAuOZYo`GtT,_/j#IOk	r+U4K6@ݠt&6ܭ"XDtIj"6xsy&5fq?X~OV͋
+	d"dfͰ:-{01Ɯ&Oc, b7}7Gp˺x<m>CzXeaW>
+k5zDGRG#ǏfhbwgZ&W8~3td	J ߬|]4?Vl1э 7CuKX;v0c%ZvByY~c>/4 XO"K0] S['32 Xʯl=., 㱹ϑ_:1dCk<U;,.qaB58׸;sp8Od+`/8 {Eb{rq
+M,@N5,@NF~!kCX |4`xmJ)V&ǫ#Q4=>FS+q}<$8
+7S\nsB	ASu_"bMlZIi[TZtSU|Z)KvQYvB.YvB"0;!k0A2avNQv"(ak `龥ZOx]y]==eA }c*Ő
+u@]ծ0*wv5=6b[l3^ZM`9u@6e7R
+re)8I^ںFe'D5!&)v1EQUnB3NNX&L( l/Sas)ˇC\=8gl+6]æh< X[8Gc`ƹds'Cm Yܻл)+΅[YlJoY@SެP`yS8T<[[<T;`dCHck	
+`ThY$(JG$T;PLrNP0LN18YI^"'.SqKU'Y]UCqSU<D(8iܢS(YJh4c+{LeC:+SXG)(JdzdD|)$
+8v~:eTE:fEb#!*DFdCe^<7#бB;C0۬ïB5}AV06aɇ9Pƴ|BR!q޻69y@M?thdP
+PUI{@#13C4d`}:\Z.{9tS@acuQHRe墒cfA8[zE+?*p)0fu`Mk;l$4:1)VZGS+l?$n>J8JjF}
+l9c7fRpּcWuStIU'JG7	ӯ_`VR9$bȄ*8!CŚ׹{*$T52S[a'|!?3\ش@b	s8З$T;;8ս4YG	"z<1W'aaيa%q-ȰzM?;Jqg|}yD򪊆tas*B	;ZH	7h
+[}\) $LVb{򄑔WjҚ4!OL&Fl}Dn}6o9S ch=duW]ʌb
+a~GbO>5Un{$k'xݝ_ګhH'!MlEb0XsΊ=2FCo*@
+799U5nXf:yVr
+17@C'y=bf&X&LI$b+#FxG<$t"j[(8,!E5dMqVŸД 2w<2Ӕ"'ӥf>ə_3~K- 	$qNxXüN0A̉glеcbQh6KVpCJaV;CzHãmR	>نHB4=_.Og>R<fjE-yAYNK1F<[WCsa/1n(L<] iR9) b&.Qg 1_#YC*/G1(r܉C>IPV{m;Cp7wVl&@BQERWvy!#NZC)
+زr@$? 1t(y^CY6{h2<xힶA\l/6B'jί%}?1&
+J+q3|rB:048dh	U(	}KBN~1FT7!!?`:sBhKV"(BoFG9ݙ
+6bhB95,$$*`d&FMv|_+aZtt3.JY[W4Gl$qH9[V.贜OVW
++i:,[)~e~~HODuBF]Q$fr&Oَ  MyJm+k<Q;4Ty&
+i.o*E-+>U|ŧ3Qp1%1m&24A.4l(HPJWA;k!Ylbv|@OazE%K4-H,17hN R r֑6mɜDrEWBb#c2`|è)I  'd#(S\ɮ?$4/ؔ[	Iy[xcJm8	Vͪ]!zK5B(Oc8!Qe}<AAEa[qY] )Aa];s16
+AjzF.e2aɩ(Du:bfiԜk-{u[ghI٬"bv2vqT24*#ܕiϥ%C)4huR,_T^\&`FޝƍGMvn$9aKAj@$5b-M;"x4e`w[V|y)
+L_k]Oxp:ԯv\EVu2X/H`&m?gy
+D$pR	f oUiE4$y/U@R ,Vv_TEUQm5Y5kU	1 XLNPMM?ŝVcAtÂa2ɒuo3{Tѿc7>
+`w[fm r=?kgz?f3*If׺ڮLf}n4ei^Ʊ﫴6f2ﭼb_fPU7jeIT$\$S0}]언Ϧve)$=lho)	wLY h>/ZWbIp_EwifQew4ǦPߖoZt~~[ݩ$w@?s[EFh<UW@/VSm+נB~$^Tb`C%Aw.K:&6pJDkrkzoaAT
+O0S\(vgyLcD"})dŘ@<`{chĮ5?6yVQzLu'{KMߚ)<(3fvFC?Cp:&7FՕUa@e$Ua}v~{ttZc!@ v	Wd^K61.^|ryϞz-1?z>J3C0ڪl*K}\Xf,,e b
+C)V
+|6m9:͊eU֧!k4(j9">)Q(wiI
+OIu,v+!rP1b@G:{w6&X=2}N^~dVֶ 0fA:rq5|xCS	]|<ώ9. y6{pw{1C,K&}94b>S@^ֵp=QT髟p?=ZAIL!!;0T
+iqgz
+ԫe+e]s[z=?kˮ`jݵkUJ)ͶHBZ>`381wLqewv[7/ʅ]v3GsS(Aq<-fv46n>%}fZ{sO?{WrWkz8M&UB6bU_OYQ\p{W7B:(.k}rGi(["Qcn<l)FnE<yyCS3VR|nPHW$Gg賤퓹w햒-fC PUк\6κ ֆ`oH#lw[R[9}Ho3|S^6jZɃ3}Dx3jHxx; "h]Ђ8ԣ5U@XFCTeIc~`~S&Q.QzOϔ)C>f?437s_4JS̖
+#AF1'{%yγK-`}2T$l-1UWK47:RFeݒ e-HKE~}aƓ"%. ZHc ='ݙ505l'E,N/D]	?&xz*dNխ7܎r;	8x6`6S:PZaCSJìwpFWȾ/W.̗PUilE[٨LSj64oYױ؆žg <	Ӎ?If(PO1g fbq%No}]5Q,CZ5#&DjjJg]n
+_Y.oM^|Wd$2&]%J46
+m>ۙ$PI&-6ݛU%GbFxx72esC?K*XMryrL8 R*ڻf|GisRw[kp,C|:QA?|SxfdYP`<)C
+9-iee):v鵒A.O^m>!M 'b1X;33U@lmb7&;УXN<dISM)I
+`Kidx^iN>(liɱ	qI( . Ѽf?<sMjB?Eϟݠ,G8jlNk>VG#5#le~#Obj/V;jNt>G	Z/u˅ߍ@CwXe:YX*Z;<wzC;x/Y!pJ"r#jFkTO2C|V{HR)$2JHm$@tpsrԊɻvKXS>"&oY=U_酤daWZwڸ@%vv!3)mt:]|*'1ˌٮg|nłǬ>yY_t0@;i`wt2}-XlBo\D<W:#$ZaE<MmH^0~Ｍ.#42}i^?U~ ^DN+/i
+ = 4%ʻ\IGx@,Ge8;yCx+rl_l$Cg{s
+v+Kwt)N?BkBTqiËdB=D6^Fy<$%Urb[7]KQf_ˢ^u|I{C'p);3&"bcxc"C}T>R</خj^!o>ƒҭZYҺIIqeUO5*zB|TP/F><Lu,&ת2v	E'VL5ڻ,y%Ԍ#@b#vŰoz'*dZ<9,}«&'4ѿ!Qo;hX^ 
+wcn|M=0`j?%τͷ(kY	B2%ramG@cF6	x}  ULN7Z)f#in<|,D]q#q(8X1+s#a]Ns]Ğ%;;%T%	7+5J;vBilB ]Z-gc4:A)Gf7~Q!Lf.[ELݢ^	K|~= Ƈ,|T㵁_c;g+ԧy;&ECgrd5| 86U#Vɒ?QvppޭV+AslaI󙗄Qd΢[-o8;++p']}t(xe6X-bVh
+NRBs2VM
+-5#-*legJ]tBIl& (2ֲ__A4cۦ&^Wq c^^m4=- ɠ/	_^kƟrNf6PlF'ܟ^w՚׻;*g2KM6奜X8Z^bTCj
+ڀy̻.*]SW-~nyN.F]Z`i%7k"	W!3tjy5$L]ݡ"@6׮q5,k7A OT1\Jt`r"a6C	xk)YHJ$İ`og	_2 혃r
+x.pG_ʗ*K+Nrt
+-M|lg_,[<MHw\B^8񹁝̒Ul0ܼ!2طC B4[W)]z7鴈Оک/v3>:iG>`3zɸ#;]$nB$Fo최U)6˚}w$7󦦴VhD4 DCƹٝmo|íuHH "1Υ(}DCIs9Hj9uqm[9S@N`mdVVAn.QbؼًgTIQ5um킳B;M $!'ml$<#G"$}qN<8+{e40>qבPC&pٜpٰYgn&6C@It#IPLR]pg`<)!)+@/hd yu6Dxs֦jaZ'9f-M
+tI$ro&4K~R]>YBqUAj:)d5UjxIͨzP~YTAp2X
+Qޤ.bh;:?THS~VXvj2 [CZjg=xd<ZޤptE0o5OMP0)y@NHcNÝX)vDFʬd:BS[MIzlYSwi|zj2"HU|]bRsYA| $!CTd@ m=78^㠫O5u]?}GSſPgŶז<#򦠿PozvaΑk2dB1SRe9WfϥKj%Qv|.hTS}mTԎ4:-'5U]ͤ;4G34[r ^Áov_(o=-hcg%AqES0,fh	J;3ˮS)*:;G&&S uƬ}m9V ~hxB3{w;84VUIAb3B踏J/Fp`j+ˎ6gSrJJvq`/aU.l靌_e*@y9>NAӌ,ŢӅ}h|ؤ<龡RJ+0a?qR>D?ۓ~k 1=|`P,햳G+푶h؆PnXZ1֬soIM!m9u}}IKQy
+.=:&/<a<! &W.IG}n%SҕthK`7|֖0@ȭӕ4p!ʲ>=(>QelVZ(dn#ei"}1?O*Ć#z5a[9z?ϴSDүr9 n㑷W!nd;D81"8&;6џB-S_E=Jy Jmzywq%{_׊.ǿ`w]oUԞYvR͞ܓ2
+aT>7'O5vaMkѕuə{N"ҲFHP!h;` )|?1)ڻ|  
\ No newline at end of file
diff --git a/sites/default/files/css/css_R8Ee4A4qhCpXRKTxiqxrnTFyMoJujPepgB7v1PBZhNk.css b/sites/default/files/css/css_R8Ee4A4qhCpXRKTxiqxrnTFyMoJujPepgB7v1PBZhNk.css
new file mode 100644
index 0000000..9c32c40
--- /dev/null
+++ b/sites/default/files/css/css_R8Ee4A4qhCpXRKTxiqxrnTFyMoJujPepgB7v1PBZhNk.css
@@ -0,0 +1,8 @@
+.contextual-region{position:relative;}.contextual .trigger:focus{position:relative !important;}.contextual-links{display:none;}.contextual.open .contextual-links{display:block;}
+.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;}.ui-helper-clearfix:after{clear:both;}.ui-helper-clearfix{min-height:0;}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-front{z-index:100;}.ui-state-disabled{cursor:default !important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%;}
+.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible;}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:normal;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}
+.quickedit-editable{z-index:98;position:relative;cursor:pointer;}.quickedit-editable:focus{outline:none;}.quickedit-editable.quickedit-highlighted{z-index:99;}.quickedit-validation-errors > .messages{margin-left:0;margin-right:0;}.quickedit-validation-errors > .messages > ul{list-style:none;margin:0;padding:0;}.quickedit-validation-errors{z-index:300;position:relative;}.quickedit-validation-errors .messages.error{position:absolute;top:6px;left:-5px;margin:0;border:none;}[dir="rtl"] .quickedit-validation-errors .messages.error{left:auto;right:-5px;}#quickedit_backstage{display:none;}.quickedit-form{position:absolute;z-index:300;max-width:35em;}.quickedit-form .placeholder{min-height:22px;}.quickedit-form .form-wrapper .form-wrapper{margin:inherit;}.quickedit-form .form-actions{display:none;}.quickedit-form input{max-width:100%;}.quickedit-toolbar-container{max-width:100%;position:absolute;max-width:320px;width:320px;z-index:100;}.quickedit-toolbar-container > .quickedit-toolbar-pointer,.quickedit-toolbar-container > .quickedit-toolbar-lining{display:none;}.quickedit-form-container{position:relative;padding:0;border:0;margin:0;vertical-align:baseline;z-index:100;}.quickedit-toolgroup.ops{float:right;}[dir="rtl"] .quickedit-toolgroup.ops{float:left;}.quickedit-toolbar-label{overflow:hidden;}#quickedit-toolbar-fence{bottom:0;left:0;right:0;top:0;position:fixed;z-index:-1;}
+.views-align-left{text-align:left;}.views-align-right{text-align:right;}.views-align-center{text-align:center;}.views-view-grid .views-col{float:left;}.views-view-grid .views-row{clear:both;float:left;width:100%;}
+#toolbar-administration,#toolbar-administration *{box-sizing:border-box;}#toolbar-administration{font-size:small;line-height:1;margin:0;padding:0;vertical-align:baseline;}@media print{#toolbar-administration{display:none;}}.toolbar li,.toolbar .item-list,.toolbar .item-list li,.toolbar .menu-item,.toolbar .menu-item--expanded{list-style-type:none;list-style-image:none;}.toolbar .menu-item{padding-top:0;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .menu-item{display:block;}.toolbar .toolbar-bar .toolbar-tab.hidden{display:none;}.toolbar a{display:block;line-height:1;}.toolbar .toolbar-bar,.toolbar .toolbar-tray{position:relative;z-index:1250;}body.toolbar-fixed .toolbar-oriented,.toolbar-oriented .toolbar-bar,.toolbar-oriented .toolbar-tray{left:0;position:absolute;right:0;top:0;}.toolbar-oriented .toolbar-bar{z-index:502;}body.toolbar-fixed .toolbar-oriented .toolbar-bar{position:fixed;}body.toolbar-tray-open.toolbar-fixed.toolbar-vertical .toolbar-oriented{bottom:0;width:240px;width:15rem;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}@media only screen{.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:none;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:none;}}@media (min-width:16.5em){.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}}.toolbar-oriented .toolbar-bar .toolbar-tab,.toolbar-oriented .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar-oriented .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal li{float:right;}.toolbar .toolbar-tray{display:none;z-index:501;}.toolbar-oriented .toolbar-tray-vertical{left:-100%;position:absolute;width:240px;width:15rem;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical{left:auto;right:-100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining{min-height:100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining:before{width:100%;}.toolbar-oriented .toolbar-tray-vertical > .toolbar-lining:before{bottom:0;content:'';display:block;left:0;position:fixed;top:0;width:240px;width:14rem;z-index:-1;}[dir="rtl"] .toolbar .toolbar-tray-vertical > .toolbar-lining:before{left:auto;right:0;}.toolbar-oriented .toolbar-tray-horizontal .menu-item ul{display:none;}body.toolbar-fixed .toolbar .toolbar-tray-horizontal{position:fixed;}.toolbar .toolbar-tray-vertical.is-active,body.toolbar-fixed .toolbar .toolbar-tray-vertical{height:100%;overflow-x:hidden;overflow-y:auto;position:fixed;}.toolbar .toolbar-tray.is-active{display:block;}.toolbar-oriented .toolbar-tray-vertical.is-active{left:0;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical.is-active{left:auto;right:0;}body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:240px;margin-left:15rem;}@media print{body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:0;}}[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:auto;margin-left:auto;margin-right:240px;margin-right:15rem;}@media print{[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-right:0;}}.toolbar .toolbar-tray .toolbar-toggle-orientation{display:none;}.toolbar-oriented .toolbar-tray .toolbar-toggle-orientation{display:block;}.toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{bottom:0;position:absolute;right:0;top:auto;}[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{left:0;right:auto;}.toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:right;width:100%;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:left;}
diff --git a/sites/default/files/css/css_R8Ee4A4qhCpXRKTxiqxrnTFyMoJujPepgB7v1PBZhNk.css.gz b/sites/default/files/css/css_R8Ee4A4qhCpXRKTxiqxrnTFyMoJujPepgB7v1PBZhNk.css.gz
new file mode 100644
index 0000000..0274478
--- /dev/null
+++ b/sites/default/files/css/css_R8Ee4A4qhCpXRKTxiqxrnTFyMoJujPepgB7v1PBZhNk.css.gz
@@ -0,0 +1,7 @@
+     Yێ6}N$0{z`hZԒt"%JvOf =U<*.k*Θ!A}%UP	°Od{)TDT{^T=u\(ܪd"b*ʎתm
+\CyHXG:Ҧ!r&R#T_okF;PVօQUe{@
+gDĞʢm;4= F0$ggEϴQG!$w h
+%A^~}RsR=IFzw#U22uA{RȞ}{EDoߪǭw3%9cu~v\Ru":7jۼ+٫yk^۞2P'ӿof C7Dۆh`;,V榯BrQ5dL15LS|As@Tt+1dQH!-I=0%!R5e5&q\0sɀ+7u8[U3zh
+acaGjb3Fkt5<V:w-H5V<kmHMhq]y]EZn$!c{+	b`Y=f	VX蟝	~5͢Sayը<ܕc$C|BE֣!I]ymwVQc꪿R/Q8к|=@rE_Ga257Nǯt>bikXLܨ_V~A ߻J>Rr(.$I#>ދu#PyB'kRBʩ@؆e*{u&8uI[ZvIB#7h5O!tf@^;vxw-b&`mFzLNH#ȅlLWRg<űȑB;g;+Zrly-*ْEX,IŌ9'[;O2 #RT1bfw4k!c`GHקg;m2A0(<_WPu-αu|{{dDgpGLG]Ս_Z]seícҖoS`8:K4;F޴ݽlD]d:; UŭyfT"2I=a6_{[HAgũv:1>=+iBi$k&&M=Oalre`8(YO:9!"(ODJDַۏ="b~V%m._Rtk=>
+>QkIl:?:cB1SeF3'tvQrMIݝ	tH|HUss-6*RsfJ;XL[|"<J	SZia.OW	ȥ+SB.xvX]+U+y'R=	_B>HI[K_Su	mt}YZMK"bcߠb!{OǼԜ>9y@Beg>'p< F	p'Xz+sv	p3\҉s	tȍ'ҞC hεh0"DRqx;h9}ƿ\G)?yxq3fL(w`7aɿӢYMFKg>f/HeywNUA_)fx1]dmyHa{* ?TkjԒ צj&JnO_~$Rޔ}MxkV%cX^Z>mB3s6cVT|tp8
+>|p3~~h:qt;gΎ)r]>q8jpҫURϯۗ1œ0jsjFsZHE[2l@&w'66We<܀I46]gnz} W&#6..`{9=rio-KqS{ǷdYm46'  
\ No newline at end of file
diff --git a/sites/default/files/css/css_Sftvb8ejSl0EyZFNe2QwHfl_fRZuhyzZU0EZcXwvgnM.css b/sites/default/files/css/css_Sftvb8ejSl0EyZFNe2QwHfl_fRZuhyzZU0EZcXwvgnM.css
new file mode 100644
index 0000000..08b99a7
--- /dev/null
+++ b/sites/default/files/css/css_Sftvb8ejSl0EyZFNe2QwHfl_fRZuhyzZU0EZcXwvgnM.css
@@ -0,0 +1 @@
+.views-align-left{text-align:left;}.views-align-right{text-align:right;}.views-align-center{text-align:center;}.views-view-grid .views-col{float:left;}.views-view-grid .views-row{clear:both;float:left;width:100%;}
diff --git a/sites/default/files/css/css_Sftvb8ejSl0EyZFNe2QwHfl_fRZuhyzZU0EZcXwvgnM.css.gz b/sites/default/files/css/css_Sftvb8ejSl0EyZFNe2QwHfl_fRZuhyzZU0EZcXwvgnM.css.gz
new file mode 100644
index 0000000..c001d82
--- /dev/null
+++ b/sites/default/files/css/css_Sftvb8ejSl0EyZFNe2QwHfl_fRZuhyzZU0EZcXwvgnM.css.gz
@@ -0,0 +1 @@
+     +L-/MLIM+.I(@|Z=d%E(jhSJRUAD@nzQfT 9?:-'?NuE9EVI%HZ3SJ2Tk    
\ No newline at end of file
diff --git a/sites/default/files/css/css_U2-tZ0A7XGNkEzHTnU8t-X0jfUMGKYgp9JKM1-p_fXU.css b/sites/default/files/css/css_U2-tZ0A7XGNkEzHTnU8t-X0jfUMGKYgp9JKM1-p_fXU.css
new file mode 100644
index 0000000..3032f50
--- /dev/null
+++ b/sites/default/files/css/css_U2-tZ0A7XGNkEzHTnU8t-X0jfUMGKYgp9JKM1-p_fXU.css
@@ -0,0 +1,4 @@
+.contextual-region{position:relative;}.contextual .trigger:focus{position:relative !important;}.contextual-links{display:none;}.contextual.open .contextual-links{display:block;}
+.views-admin ul,.views-admin menu,.views-admin dir{padding-left:0;-moz-padding-start:0;-webkit-padding-start:0;padding-start:0;}.views-admin pre{margin-bottom:0;margin-top:0;white-space:pre-wrap;}.views-left-25{float:left;width:25%;}[dir="rtl"] .views-left-25{float:right;}.views-left-30{float:left;width:30%;}[dir="rtl"] .views-left-30{float:right;}.views-left-40{float:left;width:40%;}[dir="rtl"] .views-left-40{float:right;}.views-left-50{float:left;width:50%;}[dir="rtl"] .views-left-50{float:right;}.views-left-75{float:left;width:75%;}[dir="rtl"] .views-left-75{float:right;}.views-right-50{float:right;width:50%;}[dir="rtl"] .views-right-50{float:left;}.views-right-60{float:right;width:60%;}[dir="rtl"] .views-right-60{float:left;}.views-right-70{float:right;width:70%;}[dir="rtl"] .views-right-70{float:left;}.views-group-box .form-item{margin-left:3px;margin-right:3px;}.views-displays{clear:both;}.views-displays .secondary{border-bottom:0 none;margin:0;overflow:visible;padding:0;}.views-displays .secondary > li{border-right:0 none;display:inline-block;float:left;padding:0;}[dir="rtl"] .views-displays .secondary > li{float:right;border-left:0 none;border-right:1px solid #bfbfbf;}.views-displays .secondary .open > a{position:relative;z-index:51;}.views-displays .secondary .views-display-deleted-link{text-decoration:line-through;}.views-display-deleted > details > summary,.views-display-deleted .details-wrapper > .views-ui-display-tab-bucket > *,.views-display-deleted .views-display-columns{opacity:0.25;}.views-display-disabled > details > summary,.views-display-disabled .details-wrapper > .views-ui-display-tab-bucket > *,.views-display-disabled .views-display-columns{opacity:0.5;}.views-display-tab .details-wrapper > .views-ui-display-tab-bucket .actions{opacity:1.0;}.js .views-ui-display-tab-bucket:first-of-type{border-top:none;}.views-displays .secondary li.add{position:relative;}.views-displays .secondary .action-list{left:0;margin:0;position:absolute;top:23px;z-index:50;}[dir="rtl"] .views-displays .secondary .action-list{left:auto;right:0;}.views-displays .secondary .action-list  li{display:block;}.views-display-columns .details-wrapper{padding:0;}.views-display-column{box-sizing:border-box;}.js .views-display-column details.collapsed{height:auto;}.views-display-columns > *{margin-bottom:2em;}@media screen and (min-width:45em){.views-display-columns > *{float:left;margin-left:2%;margin-bottom:0;width:32%;}[dir="rtl"] .views-display-columns > *{float:right;margin-left:0;margin-right:2%;}.views-display-columns > *:first-child{margin-left:0;}[dir="rtl"] .views-display-columns > *:first-child{margin-right:0;}}.views-ui-dialog #views-ajax-popup{padding:0;overflow:hidden;}.views-ui-dialog #views-ajax-body{margin:0;padding:0;}.views-ui-dialog #views-ajax-popup{overflow:hidden;}.views-ui-dialog .scroll{overflow:auto;padding:1em;}#views-filterable-options-controls{display:none;}.views-ui-dialog #views-filterable-options-controls{display:inline;}.views-ui-dialog .views-messages{max-height:200px;overflow:auto;}.views-display-setting .label,.views-display-setting .views-ajax-link{display:inline-block;float:left;}[dir="rtl"] .views-display-setting .label,[dir="rtl"] .views-display-setting .views-ajax-link{float:right;}div.form-item-options-value-all{display:none;}.js-only{display:none;}html.js .js-only{display:inherit;}html.js span.js-only{display:inline;}.js .views-edit-view .dropbutton-wrapper{width:auto;}
+.dropbutton-wrapper,.dropbutton-wrapper div{box-sizing:border-box;}.js .dropbutton-wrapper,.js .dropbutton-widget{display:block;position:relative;}@media screen and (max-width:600px){.js .dropbutton-wrapper{width:100%;}}@media screen and (min-width:600px){.form-actions .dropbutton-wrapper{float:left;}[dir="rtl"] .form-actions .dropbutton-wrapper{float:right;}}.js .form-actions .dropbutton-widget{position:static;}.js td .dropbutton-widget{position:absolute;}.js td .dropbutton-wrapper{min-height:2em;}.js td .dropbutton-multiple{padding-right:10em;margin-right:2em;max-width:100%;}[dir="rtl"].js td .dropbutton-multiple{padding-right:0;margin-right:0;padding-left:10em;margin-left:2em;}.js td .dropbutton-multiple .dropbutton-action a,.js td .dropbutton-multiple .dropbutton-action input,.js td .dropbutton-multiple .dropbutton-action button{width:auto;}.js .dropbutton-widget .dropbutton{list-style-image:none;list-style-type:none;margin:0;overflow:hidden;padding:0;}.js .dropbutton li,.js .dropbutton a{display:block;outline:none;}.js .dropbutton li:hover,.js .dropbutton li:focus,.js .dropbutton a:hover,.js .dropbutton a:focus{outline:initial;}.js .dropbutton-multiple .dropbutton-widget{padding-right:2em;}.js[dir="rtl"] .dropbutton-multiple .dropbutton-widget{padding-left:2em;padding-right:0;}.dropbutton-multiple.open,.dropbutton-multiple.open .dropbutton-widget{max-width:none;}.dropbutton-multiple.open{z-index:100;}.dropbutton-multiple .dropbutton .secondary-action{display:none;}.dropbutton-multiple.open .dropbutton .secondary-action{display:block;}.dropbutton-toggle{bottom:0;display:block;position:absolute;right:0;text-indent:110%;top:0;white-space:nowrap;width:2em;}[dir="rtl"] .dropbutton-toggle{left:0;right:auto;}.dropbutton-toggle button{background:none;border:0;cursor:pointer;display:block;height:100%;margin:0;padding:0;width:100%;}.dropbutton-toggle button:hover,.dropbutton-toggle button:focus{outline:initial;}.dropbutton-arrow{border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent;border-style:solid;border-width:0.3333em 0.3333em 0;display:block;height:0;line-height:0;position:absolute;right:40%;top:50%;margin-top:-0.1666em;width:0;overflow:hidden;}[dir="rtl"] .dropbutton-arrow{left:0.6667em;right:auto;}.dropbutton-multiple.open .dropbutton-arrow{border-bottom:0.3333em solid;border-top-color:transparent;top:0.6667em;}
+#toolbar-administration,#toolbar-administration *{box-sizing:border-box;}#toolbar-administration{font-size:small;line-height:1;margin:0;padding:0;vertical-align:baseline;}@media print{#toolbar-administration{display:none;}}.toolbar li,.toolbar .item-list,.toolbar .item-list li,.toolbar .menu-item,.toolbar .menu-item--expanded{list-style-type:none;list-style-image:none;}.toolbar .menu-item{padding-top:0;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .menu-item{display:block;}.toolbar .toolbar-bar .toolbar-tab.hidden{display:none;}.toolbar a{display:block;line-height:1;}.toolbar .toolbar-bar,.toolbar .toolbar-tray{position:relative;z-index:1250;}body.toolbar-fixed .toolbar-oriented,.toolbar-oriented .toolbar-bar,.toolbar-oriented .toolbar-tray{left:0;position:absolute;right:0;top:0;}.toolbar-oriented .toolbar-bar{z-index:502;}body.toolbar-fixed .toolbar-oriented .toolbar-bar{position:fixed;}body.toolbar-tray-open.toolbar-fixed.toolbar-vertical .toolbar-oriented{bottom:0;width:240px;width:15rem;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}@media only screen{.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:none;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:none;}}@media (min-width:16.5em){.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}}.toolbar-oriented .toolbar-bar .toolbar-tab,.toolbar-oriented .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar-oriented .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal li{float:right;}.toolbar .toolbar-tray{display:none;z-index:501;}.toolbar-oriented .toolbar-tray-vertical{left:-100%;position:absolute;width:240px;width:15rem;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical{left:auto;right:-100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining{min-height:100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining:before{width:100%;}.toolbar-oriented .toolbar-tray-vertical > .toolbar-lining:before{bottom:0;content:'';display:block;left:0;position:fixed;top:0;width:240px;width:14rem;z-index:-1;}[dir="rtl"] .toolbar .toolbar-tray-vertical > .toolbar-lining:before{left:auto;right:0;}.toolbar-oriented .toolbar-tray-horizontal .menu-item ul{display:none;}body.toolbar-fixed .toolbar .toolbar-tray-horizontal{position:fixed;}.toolbar .toolbar-tray-vertical.is-active,body.toolbar-fixed .toolbar .toolbar-tray-vertical{height:100%;overflow-x:hidden;overflow-y:auto;position:fixed;}.toolbar .toolbar-tray.is-active{display:block;}.toolbar-oriented .toolbar-tray-vertical.is-active{left:0;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical.is-active{left:auto;right:0;}body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:240px;margin-left:15rem;}@media print{body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:0;}}[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:auto;margin-left:auto;margin-right:240px;margin-right:15rem;}@media print{[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-right:0;}}.toolbar .toolbar-tray .toolbar-toggle-orientation{display:none;}.toolbar-oriented .toolbar-tray .toolbar-toggle-orientation{display:block;}.toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{bottom:0;position:absolute;right:0;top:auto;}[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{left:0;right:auto;}.toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:right;width:100%;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:left;}
diff --git a/sites/default/files/css/css_U2-tZ0A7XGNkEzHTnU8t-X0jfUMGKYgp9JKM1-p_fXU.css.gz b/sites/default/files/css/css_U2-tZ0A7XGNkEzHTnU8t-X0jfUMGKYgp9JKM1-p_fXU.css.gz
new file mode 100644
index 0000000..954b37b
--- /dev/null
+++ b/sites/default/files/css/css_U2-tZ0A7XGNkEzHTnU8t-X0jfUMGKYgp9JKM1-p_fXU.css.gz
@@ -0,0 +1,9 @@
+     Zm8_E1J]`0؄mx<xJA.9DYV~$XW(N'GvhZT\
+g!iR_.p*RFi/ۇᬠe+ ed2ZPN"YQ!;VI_ozI[`~%JY
+TTW@8:cΰHflwA??r'.s8a={Xπu<`9l7{yf~yFK.ܓii<;qTগ(>2^ p:bWڄary~@f_۔.*"*%iNl}rjؒ-4\1 cX!ZɦD5i}JN4}n!Zf6+)l%ȁqU<496Ɉ4WpXU`jlf*>ffC(m/D?PMQ-ʤ⚬n11x2ܟsuO΀nb|ob _eɑZ vDZ/2)`yhM")DG#^*򨜊`{dp
+N2Y~s:8..O&Y{&jCjo!=Gǖ_('@0̢ߠPA&{H{;8af~ޏS[l?ϝ[|&F1}8<k]z:
+}2W|Aj ];,#~~uʲkčdޗÉ3X)HsA1*E/HݰzR[3OQ=P'RE.vZpw0;$_,ayF"wόXgW7a8!|+h,\Q5-τSπGeg%O<ΪH/;g3Y:iv"bD֞=26kYTRg2ZWWf
+TAڸ"ڥcdܸM EZ夻djx]^WDY=]偡`(j#GxEɉ,ZYZ\|i`0*$p2c|\PC(nFHijMi1YyJ^#[w|:Dj7譂o|(1-nmس/3%gPl!=tTȚR_JPŴV2K33yC5J2K,)>ȆI%>,?4f<-mp"7O7hm`?v4ouG)ZQNvHr??RD{UuO!x4^lhoiUm%1`<H;Auy0ǐʳۇO<\7ug{U
+,hPpjT7>sBQsMLR\];J
+mHK1LSyU!,So̝*;p!D.Pfp&Dy:3b<P]X;혙q*vϏ\gljH/e$[MF=gk~$m.ī#'QbvO6<BQd(&	*EVFgBwju>,sA1 = od8ip<źs?;J x߹% 9Sf^,㚯জl5n#S7ϼc/HHRrd8}u>C믣
+q4=؏\^h-Tak@Ԍ;{3*8UwZ]^jncjtu7r5E{.5@=;5@"}s8b\l1#*KL#e95B,A";$Ԏ	`}+9'YJsӿ[}(H A&  
\ No newline at end of file
diff --git a/sites/default/files/css/css_XK561toVCTdWYX4k86kqsjaBrVt-fXZZrt13j5Xcu8Q.css b/sites/default/files/css/css_XK561toVCTdWYX4k86kqsjaBrVt-fXZZrt13j5Xcu8Q.css
new file mode 100644
index 0000000..2b6a58e
--- /dev/null
+++ b/sites/default/files/css/css_XK561toVCTdWYX4k86kqsjaBrVt-fXZZrt13j5Xcu8Q.css
@@ -0,0 +1,3 @@
+.contextual-region{position:relative;}.contextual .trigger:focus{position:relative !important;}.contextual-links{display:none;}.contextual.open .contextual-links{display:block;}
+.dropbutton-wrapper,.dropbutton-wrapper div{box-sizing:border-box;}.js .dropbutton-wrapper,.js .dropbutton-widget{display:block;position:relative;}@media screen and (max-width:600px){.js .dropbutton-wrapper{width:100%;}}@media screen and (min-width:600px){.form-actions .dropbutton-wrapper{float:left;}[dir="rtl"] .form-actions .dropbutton-wrapper{float:right;}}.js .form-actions .dropbutton-widget{position:static;}.js td .dropbutton-widget{position:absolute;}.js td .dropbutton-wrapper{min-height:2em;}.js td .dropbutton-multiple{padding-right:10em;margin-right:2em;max-width:100%;}[dir="rtl"].js td .dropbutton-multiple{padding-right:0;margin-right:0;padding-left:10em;margin-left:2em;}.js td .dropbutton-multiple .dropbutton-action a,.js td .dropbutton-multiple .dropbutton-action input,.js td .dropbutton-multiple .dropbutton-action button{width:auto;}.js .dropbutton-widget .dropbutton{list-style-image:none;list-style-type:none;margin:0;overflow:hidden;padding:0;}.js .dropbutton li,.js .dropbutton a{display:block;outline:none;}.js .dropbutton li:hover,.js .dropbutton li:focus,.js .dropbutton a:hover,.js .dropbutton a:focus{outline:initial;}.js .dropbutton-multiple .dropbutton-widget{padding-right:2em;}.js[dir="rtl"] .dropbutton-multiple .dropbutton-widget{padding-left:2em;padding-right:0;}.dropbutton-multiple.open,.dropbutton-multiple.open .dropbutton-widget{max-width:none;}.dropbutton-multiple.open{z-index:100;}.dropbutton-multiple .dropbutton .secondary-action{display:none;}.dropbutton-multiple.open .dropbutton .secondary-action{display:block;}.dropbutton-toggle{bottom:0;display:block;position:absolute;right:0;text-indent:110%;top:0;white-space:nowrap;width:2em;}[dir="rtl"] .dropbutton-toggle{left:0;right:auto;}.dropbutton-toggle button{background:none;border:0;cursor:pointer;display:block;height:100%;margin:0;padding:0;width:100%;}.dropbutton-toggle button:hover,.dropbutton-toggle button:focus{outline:initial;}.dropbutton-arrow{border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent;border-style:solid;border-width:0.3333em 0.3333em 0;display:block;height:0;line-height:0;position:absolute;right:40%;top:50%;margin-top:-0.1666em;width:0;overflow:hidden;}[dir="rtl"] .dropbutton-arrow{left:0.6667em;right:auto;}.dropbutton-multiple.open .dropbutton-arrow{border-bottom:0.3333em solid;border-top-color:transparent;top:0.6667em;}
+#toolbar-administration,#toolbar-administration *{box-sizing:border-box;}#toolbar-administration{font-size:small;line-height:1;margin:0;padding:0;vertical-align:baseline;}@media print{#toolbar-administration{display:none;}}.toolbar li,.toolbar .item-list,.toolbar .item-list li,.toolbar .menu-item,.toolbar .menu-item--expanded{list-style-type:none;list-style-image:none;}.toolbar .menu-item{padding-top:0;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .menu-item{display:block;}.toolbar .toolbar-bar .toolbar-tab.hidden{display:none;}.toolbar a{display:block;line-height:1;}.toolbar .toolbar-bar,.toolbar .toolbar-tray{position:relative;z-index:1250;}body.toolbar-fixed .toolbar-oriented,.toolbar-oriented .toolbar-bar,.toolbar-oriented .toolbar-tray{left:0;position:absolute;right:0;top:0;}.toolbar-oriented .toolbar-bar{z-index:502;}body.toolbar-fixed .toolbar-oriented .toolbar-bar{position:fixed;}body.toolbar-tray-open.toolbar-fixed.toolbar-vertical .toolbar-oriented{bottom:0;width:240px;width:15rem;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}@media only screen{.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:none;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:none;}}@media (min-width:16.5em){.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}}.toolbar-oriented .toolbar-bar .toolbar-tab,.toolbar-oriented .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar-oriented .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal li{float:right;}.toolbar .toolbar-tray{display:none;z-index:501;}.toolbar-oriented .toolbar-tray-vertical{left:-100%;position:absolute;width:240px;width:15rem;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical{left:auto;right:-100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining{min-height:100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining:before{width:100%;}.toolbar-oriented .toolbar-tray-vertical > .toolbar-lining:before{bottom:0;content:'';display:block;left:0;position:fixed;top:0;width:240px;width:14rem;z-index:-1;}[dir="rtl"] .toolbar .toolbar-tray-vertical > .toolbar-lining:before{left:auto;right:0;}.toolbar-oriented .toolbar-tray-horizontal .menu-item ul{display:none;}body.toolbar-fixed .toolbar .toolbar-tray-horizontal{position:fixed;}.toolbar .toolbar-tray-vertical.is-active,body.toolbar-fixed .toolbar .toolbar-tray-vertical{height:100%;overflow-x:hidden;overflow-y:auto;position:fixed;}.toolbar .toolbar-tray.is-active{display:block;}.toolbar-oriented .toolbar-tray-vertical.is-active{left:0;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical.is-active{left:auto;right:0;}body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:240px;margin-left:15rem;}@media print{body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:0;}}[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:auto;margin-left:auto;margin-right:240px;margin-right:15rem;}@media print{[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-right:0;}}.toolbar .toolbar-tray .toolbar-toggle-orientation{display:none;}.toolbar-oriented .toolbar-tray .toolbar-toggle-orientation{display:block;}.toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{bottom:0;position:absolute;right:0;top:auto;}[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{left:0;right:auto;}.toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:right;width:100%;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:left;}
diff --git a/sites/default/files/css/css_XK561toVCTdWYX4k86kqsjaBrVt-fXZZrt13j5Xcu8Q.css.gz b/sites/default/files/css/css_XK561toVCTdWYX4k86kqsjaBrVt-fXZZrt13j5Xcu8Q.css.gz
new file mode 100644
index 0000000..b1a9d00
--- /dev/null
+++ b/sites/default/files/css/css_XK561toVCTdWYX4k86kqsjaBrVt-fXZZrt13j5Xcu8Q.css.gz
@@ -0,0 +1,5 @@
+     Xݎ6ߧNO#M%V}&8]1ɢ{@*5W7c/$93$HFyєĂ0,+_aWJAu5@iD/UҪd$E?0~x_T2z,8ւ6	?".R")fNӌȉxIJqPp?xE[M(iu
+DБCk[q,cFR*~"$w$G5L3JLonIY-{uDZSG;5d)qB9H!"2EGh߽nѶ%íEr7wEY{'}Q*j㥆JJ^A4U<Z,j !J[|iJ1x30:- Oht1Z}EWs[Qr%;]2X%y>iyuIRq) ;ܼ#ZV{gX`i#Xc);HeP	 xOFmQP[
+KX~;QIPUC}-K5P*#T"lWW	>dEѭjQqBW*ro(1yUw}+1ߚݶg`  k|RVCh-i/W<%œɂ[>(v;;#;o^htZ 7:s@_~Shl</s9p1+kN*`ČfEgP
+OM1lS}BUma5{kN\ks	#IgCtΫCRxF[:?=3j\ꤝ2swnڊoѷgp9?qg$Vܪo4~>G춏NV-cdh{I=kB"e	C)bF׍e{u ^25.'QƧѵoI߇kܮxNh\ynKY:P&(]]kBjsqV̍ͅ,t%" w~>7dBvM*0+.J3q}05t+p֫
+iid^]jt~Yg`o:ZJ!;3@/><:ZDo|H;g>94xj.&;B~2cDpCjτ`}+`ed-ߒ;nʞϾ'*ҳÿO  
\ No newline at end of file
diff --git a/sites/default/files/css/css_YsrTP0I5bKrauwdFF--iyJLYJclz4o1B_UtdtmoU9bo.css b/sites/default/files/css/css_YsrTP0I5bKrauwdFF--iyJLYJclz4o1B_UtdtmoU9bo.css
new file mode 100644
index 0000000..bb560a3
--- /dev/null
+++ b/sites/default/files/css/css_YsrTP0I5bKrauwdFF--iyJLYJclz4o1B_UtdtmoU9bo.css
@@ -0,0 +1,8 @@
+.contextual-region{position:relative;}.contextual .trigger:focus{position:relative !important;}.contextual-links{display:none;}.contextual.open .contextual-links{display:block;}
+.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;}.ui-helper-clearfix:after{clear:both;}.ui-helper-clearfix{min-height:0;}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-front{z-index:100;}.ui-state-disabled{cursor:default !important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%;}
+.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible;}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:normal;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.editor-dialog{width:80% !important;max-width:500px;}@media screen and (max-width:600px){.editor-dialog{width:95% !important;}}
+.caption{display:table;}.caption > *{display:block;max-width:100%;}.caption > figcaption{display:table-caption;caption-side:bottom;max-width:none;}.caption > figcaption[contenteditable=true]:empty:before{content:attr(data-placeholder);font-style:italic;}
+p[data-widget="image"].align-center{text-align:center;}div[data-cke-widget-wrapper].align-center > figure[data-widget="image"]{margin-left:auto;margin-right:auto;}
+#toolbar-administration,#toolbar-administration *{box-sizing:border-box;}#toolbar-administration{font-size:small;line-height:1;margin:0;padding:0;vertical-align:baseline;}@media print{#toolbar-administration{display:none;}}.toolbar li,.toolbar .item-list,.toolbar .item-list li,.toolbar .menu-item,.toolbar .menu-item--expanded{list-style-type:none;list-style-image:none;}.toolbar .menu-item{padding-top:0;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .menu-item{display:block;}.toolbar .toolbar-bar .toolbar-tab.hidden{display:none;}.toolbar a{display:block;line-height:1;}.toolbar .toolbar-bar,.toolbar .toolbar-tray{position:relative;z-index:1250;}body.toolbar-fixed .toolbar-oriented,.toolbar-oriented .toolbar-bar,.toolbar-oriented .toolbar-tray{left:0;position:absolute;right:0;top:0;}.toolbar-oriented .toolbar-bar{z-index:502;}body.toolbar-fixed .toolbar-oriented .toolbar-bar{position:fixed;}body.toolbar-tray-open.toolbar-fixed.toolbar-vertical .toolbar-oriented{bottom:0;width:240px;width:15rem;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}@media only screen{.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:none;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:none;}}@media (min-width:16.5em){.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}}.toolbar-oriented .toolbar-bar .toolbar-tab,.toolbar-oriented .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar-oriented .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal li{float:right;}.toolbar .toolbar-tray{display:none;z-index:501;}.toolbar-oriented .toolbar-tray-vertical{left:-100%;position:absolute;width:240px;width:15rem;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical{left:auto;right:-100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining{min-height:100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining:before{width:100%;}.toolbar-oriented .toolbar-tray-vertical > .toolbar-lining:before{bottom:0;content:'';display:block;left:0;position:fixed;top:0;width:240px;width:14rem;z-index:-1;}[dir="rtl"] .toolbar .toolbar-tray-vertical > .toolbar-lining:before{left:auto;right:0;}.toolbar-oriented .toolbar-tray-horizontal .menu-item ul{display:none;}body.toolbar-fixed .toolbar .toolbar-tray-horizontal{position:fixed;}.toolbar .toolbar-tray-vertical.is-active,body.toolbar-fixed .toolbar .toolbar-tray-vertical{height:100%;overflow-x:hidden;overflow-y:auto;position:fixed;}.toolbar .toolbar-tray.is-active{display:block;}.toolbar-oriented .toolbar-tray-vertical.is-active{left:0;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical.is-active{left:auto;right:0;}body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:240px;margin-left:15rem;}@media print{body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:0;}}[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:auto;margin-left:auto;margin-right:240px;margin-right:15rem;}@media print{[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-right:0;}}.toolbar .toolbar-tray .toolbar-toggle-orientation{display:none;}.toolbar-oriented .toolbar-tray .toolbar-toggle-orientation{display:block;}.toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{bottom:0;position:absolute;right:0;top:auto;}[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{left:0;right:auto;}.toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:right;width:100%;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:left;}
diff --git a/sites/default/files/css/css_YsrTP0I5bKrauwdFF--iyJLYJclz4o1B_UtdtmoU9bo.css.gz b/sites/default/files/css/css_YsrTP0I5bKrauwdFF--iyJLYJclz4o1B_UtdtmoU9bo.css.gz
new file mode 100644
index 0000000..f16a13e
--- /dev/null
+++ b/sites/default/files/css/css_YsrTP0I5bKrauwdFF--iyJLYJclz4o1B_UtdtmoU9bo.css.gz
@@ -0,0 +1,6 @@
+     X]n8~)Y,Lv붑b{DDdQĎO"%JvbM,Qo3SVr5';ʊdpcAwTQ,8O,!u=\o#iT5>pJRD69K相hOpYF>d;iJnrl@:i	"n^$>`E3{&|DKeF:T,YL+'; 4,'$ǵH8V[+IS8dh4'o1ِ-dFT`,qY>0l-sU~5fYSgJi!ATۖ Dw^?z<m9(ڼ"Zd(r% 4:gMZ$#[\i`^d*OIP!ziY]d%<f40#} edF3dSHXZaw!_&Wk8%2|
+B B({蕔(TeXK:$$s]T	F9"? [KP謿N}t=%IP=/>VPKzɹC`[`" p,($x UTLKN!&E"u*"E(hH.2Ӣo|]8oQ*'<+,_+(QW&Ce4gzl/wǨRkYbr|A		[T]bBo``6/⏁XNt`HuP*
+R9$4UU~%@{\d.]]5e]t DtbJm!3ׂAg@#)lREb{ 53P95Leai;L!D,.LXͺqt_ST=Kow.[mbU=:ODd}hŵhP@c$qZO?宿GU	Ll]GY7A|).e&5qѷ^7Ա2~HtCfum~!3h9xv$}7ӑJ">
+^	90pѪ.# %{C7FMi_~Wt#dGnĪkFkn}9zcDq	YPspY2V7g0[:kÎjmfGXYG64]x{WDibU(9y\ZIZCK()SiFugQ9m!usHDiHme8|bYe1?sNҗ+PyòSC Tlfd]沢g0za5_^'7RN$/|ͦǐIc${w4W[ʓh\^!qNH5号\?+Gy)5@j~N:L2:[3ϲ}oHaUF:]})x^MJb(^6uBd[Y
+Bߺp8	^¶\^xhmuFI-.֕b0]/yT8FgbZ!}Y;]ndtI::ƺK! =և}|hA<z-MwŔoy> #ȴ)gFvL/#Q弱{r!>B2bB0V>XO<#0rЫ{(g{
+Fld  
\ No newline at end of file
diff --git a/sites/default/files/css/css_dCWVhhgAQct1Uw5POxmv9rWdtcYbi4dISYLhlnIPtGQ.css b/sites/default/files/css/css_dCWVhhgAQct1Uw5POxmv9rWdtcYbi4dISYLhlnIPtGQ.css
new file mode 100644
index 0000000..a541f24
--- /dev/null
+++ b/sites/default/files/css/css_dCWVhhgAQct1Uw5POxmv9rWdtcYbi4dISYLhlnIPtGQ.css
@@ -0,0 +1,14 @@
+.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;}.ui-helper-clearfix:after{clear:both;}.ui-helper-clearfix{min-height:0;}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-front{z-index:100;}.ui-state-disabled{cursor:default !important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%;}
+.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:right;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:left;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{margin:0;padding-left:1.3333em;text-indent:-9999px;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{padding-right:1.3333em;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);}.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab.hidden{display:none;}
+.toolbar .menu,[dir="rtl"] .toolbar .menu{list-style:none;margin:0;padding:0;}.toolbar .toolbar-box{display:block;line-height:1em;position:relative;width:auto;}.toolbar .toolbar-tray-horizontal .menu .toolbar-handle,.toolbar .toolbar-tray-horizontal .menu ul,.toolbar .toolbar-tray-vertical .menu ul{display:none;}.toolbar .toolbar-tray-vertical li.open > ul{display:block;}.toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-right:3em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-left:3em;margin-right:0;}.toolbar .toolbar-tray .menu-item--active-trail > .toolbar-box a,.toolbar .toolbar-tray a.is-active{color:#000;font-weight:bold;}@media screen and (max-width:319px){.toolbar .toolbar-tray-vertical.is-active{width:100%;}}.toolbar .level-2 > ul{background-color:#fafafa;border-bottom-color:#cccccc;border-top-color:#e5e5e5;}.toolbar .level-3 > ul{background-color:#f5f5f5;border-bottom-color:#c5c5c5;border-top-color:#dddddd;}.toolbar .level-4 > ul{background-color:#eeeeee;border-bottom-color:#bbbbbb;border-top-color:#d5d5d5;}.toolbar .level-5 > ul{background-color:#e5e5e5;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-6 > ul{background-color:#eeeeee;border-bottom-color:#aaaaaa;border-top-color:#c5c5c5;}.toolbar .level-7 > ul{background-color:#fafafa;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-8 > ul{background-color:#dddddd;border-bottom-color:#cccccc;border-top-color:#dddddd;}.toolbar .toolbar-handle:hover{cursor:pointer;}.toolbar .toolbar-icon.toolbar-handle{bottom:0;display:block;height:100%;padding:0;position:absolute;right:0;top:0;z-index:1;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle{left:0;padding:0;right:auto;}
+.layout-container{margin:0 1.5em;}.layout-container:after{content:"";display:table;clear:both;}@media screen and (min-width:38em){.layout-container{margin:0 2.5em;}.layout-column{float:left;box-sizing:border-box;}[dir="rtl"] .layout-column{float:right;}.layout-column + .layout-column{padding-left:10px;}[dir="rtl"] .layout-column + .layout-column{padding-right:10px;padding-left:0;}.layout-column.half{width:50%;}.layout-column.quarter{width:25%;}.layout-column.three-quarter{width:75%;}}.panel{padding:5px 5px 15px;}.panel__description{margin:0 0 3px;padding:2px 0 3px 0;}.compact-link{margin:0 0 0.5em 0;}small .admin-link:before{content:' [';}small .admin-link:after{content:']';}.system-modules thead > tr{border:0;}.system-modules div.incompatible{font-weight:bold;}.system-modules td.checkbox{min-width:25px;width:4%;}.system-modules td.module{width:25%;}.system-modules td{vertical-align:top;}.system-modules label,.system-modules-uninstall label{color:#1d1d1d;font-size:1.15em;}.system-modules details{color:#5c5c5b;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.system-modules details[open]{height:auto;overflow:visible;white-space:normal;}.system-modules details[open] summary .text{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;text-transform:none;}.system-modules td details a{color:#5C5C5B;border:0px;}.system-modules td details{border:0;margin:0;height:20px;}.system-modules td details summary{padding:0;text-transform:none;font-weight:normal;cursor:default;}.system-modules td{padding-left:0;}@media screen and (max-width:40em){.system-modules td.name{width:20%;}.system-modules td.description{width:40%;}}.system-modules .requirements{padding:5px 0;max-width:490px;}.system-modules .links{overflow:hidden;}.system-modules .checkbox{margin:0 5px;}.system-modules .checkbox .form-item{margin-bottom:0;}.admin-requirements,.admin-required{font-size:0.9em;color:#666;}.admin-enabled{color:#080;}.admin-missing{color:#f00;}.module-link{display:block;padding:2px 20px;white-space:nowrap;margin-top:2px;float:left;}[dir="rtl"] .module-link{float:right;}.module-link-help{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg) 0 50% no-repeat;}.module-link-permissions{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/key.svg) 0 50% no-repeat;}.module-link-configure{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/cog.svg) 0 50% no-repeat;}.system-status-report td{vertical-align:top;}.system-status-report__status-icon{width:16px;padding-right:0;}[dir="rtl"] .system-status-report__status-icon{padding-left:0;padding-right:6px;}.system-status-report__status-icon:before{content:"";background-repeat:no-repeat;height:16px;width:16px;margin-top:2px;display:block;}.system-status-report__status-icon--error:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ea2800/error.svg);}.system-status-report__status-icon--warning:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/e29700/warning.svg);}.system-status-report__status-title{width:25%;}.theme-info__header{margin-bottom:0;font-weight:normal;}.theme-default .theme-info__header{font-weight:bold;}.theme-info__description{margin-top:0;}.system-themes-list{margin-bottom:20px;}.system-themes-list-uninstalled{border-top:1px solid #cdcdcd;padding-top:20px;}.system-themes-list__header{margin:0;}.theme-selector{padding-top:20px;}.theme-selector .screenshot,.theme-selector .no-screenshot{border:1px solid #e0e0d8;padding:2px;vertical-align:bottom;max-width:100%;height:auto;text-align:center;}.theme-default .screenshot{border:1px solid #aaa;}.system-themes-list-uninstalled .screenshot,.system-themes-list-uninstalled .no-screenshot{max-width:194px;height:auto;}@media screen and (min-width:45em){body:not(.toolbar-vertical) .system-themes-list-installed .screenshot,body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot{float:left;margin:0 20px 0 0;width:294px;}[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .screenshot,[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot{float:right;margin:0 0 0 20px;}body:not(.toolbar-vertical) .system-themes-list-installed .system-themes-list__header{margin-top:0;}body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector{box-sizing:border-box;width:31.25%;float:left;padding:20px 20px 20px 0;}[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector{float:right;padding:20px 0 20px 20px;}body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-info{min-height:170px;}}@media screen and (min-width:60em){.toolbar-vertical .system-themes-list-installed .screenshot,.toolbar-vertical .system-themes-list-installed .no-screenshot{float:left;margin:0 20px 0 0;width:294px;}[dir="rtl"] .toolbar-vertical .system-themes-list-installed .screenshot,[dir="rtl"] .toolbar-vertical .system-themes-list-installed .no-screenshot{float:right;margin:0 0 0 20px;}.toolbar-vertical .system-themes-list-installed .theme-info__header{margin-top:0;}.toolbar-vertical .system-themes-list-uninstalled .theme-selector{box-sizing:border-box;width:31.25%;float:left;padding:20px 20px 20px 0;}[dir="rtl"] .toolbar-vertical .system-themes-list-uninstalled .theme-selector{float:right;padding:20px 0 20px 20px;}.toolbar-vertical .system-themes-list-uninstalled .theme-info{min-height:170px;}}.system-themes-list-installed .theme-info{max-width:940px;}.theme-selector .incompatible{margin-top:10px;font-weight:bold;}.theme-selector .operations{margin:10px 0 0 0;padding:0;}.theme-selector .operations li{float:left;margin:0;padding:0 0.7em;list-style-type:none;border-right:1px solid #cdcdcd;}[dir="rtl"] .theme-selector .operations li{float:right;border-left:1px solid #cdcdcd;border-right:none;}.theme-selector .operations li:last-child{padding:0 0 0 0.7em;border-right:none;}[dir="rtl"] .theme-selector .operations li:last-child{padding:0 0.7em 0 0;border-left:none;}.theme-selector .operations li:first-child{padding:0 0.7em 0 0;}[dir="rtl"] .theme-selector .operations li:first-child{padding:0 0 0 0.7em;}.system-themes-admin-form{clear:left;}
+.contextual{position:absolute;right:0;top:6px;z-index:500;}[dir="rtl"] .contextual{left:0;right:auto;}.contextual-region.focus{outline:1px dashed #d6d6d6;outline-offset:1px;}.contextual .trigger{background-attachment:scroll;background-color:#fff;border:1px solid #ccc;border-radius:13px;float:right;margin:0;overflow:hidden;padding:0 2px;position:relative;right:6px;cursor:pointer;}[dir="rtl"] .contextual .trigger{float:left;right:auto;left:6px;}.contextual.open .trigger{border:1px solid #ccc;border-bottom-color:transparent;border-radius:13px 13px 0 0;box-shadow:none;z-index:2;}.contextual-region .contextual .contextual-links{background-color:#fff;border:1px solid #ccc;border-radius:4px 0 4px 4px;clear:both;float:right;margin:0;padding:0.25em 0;position:relative;right:6px;text-align:left;top:-1px;white-space:nowrap;}[dir="rtl"] .contextual-region .contextual .contextual-links{border-radius:0 4px 4px 4px;float:left;left:6px;right:auto;text-align:right;}.contextual-region .contextual .contextual-links li{background-color:#fff;border:none;list-style:none;list-style-image:none;margin:0;padding:0;line-height:100%;}.contextual-region .contextual .contextual-links a{background-color:#fff;color:#333;display:block;font-family:sans-serif;font-size:small;line-height:0.8em;margin:0.25em 0;padding:0.4em 0.6em;}.touch .contextual-region .contextual .contextual-links a{font-size:large;}.contextual-region .contextual .contextual-links a,.contextual-region .contextual .contextual-links a:hover{text-decoration:none;}.no-touch .contextual-region .contextual .contextual-links li a:hover{color:white;background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);}
+.toolbar-bar .toolbar-icon-edit:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);}.toolbar-bar .toolbar-icon-edit:active:before,.toolbar-bar .toolbar-icon-edit.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/pencil.svg);}.contextual .trigger{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);background-position:center center;background-repeat:no-repeat;background-size:16px 16px;height:26px !important;width:26px !important;text-indent:-9999px;}.contextual .trigger:hover{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/pencil.svg);}.contextual .trigger:focus{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/pencil.svg);outline:none;}
+.views-admin .links{list-style:none outside none;margin:0;}.views-admin a:hover{text-decoration:none;}.box-padding{padding-left:12px;padding-right:12px;}.box-margin{margin:12px 12px 0 12px;}.views-admin .icon{height:16px;width:16px;}.views-admin .icon,.views-admin .icon-text{background-attachment:scroll;background-image:url(http://localhost/pub_html/contri/drupal/core/modules/views_ui/images/sprites.png);background-position:left top;background-repeat:no-repeat;}[dir="rtl"] .views-admin .icon,[dir="rtl"] .views-admin .icon-text{background-position:right top;}.views-admin a.icon{background-image:url(http://localhost/pub_html/contri/drupal/core/modules/views_ui/images/sprites.png),-webkit-gradient(linear,left top,left bottom,color-stop(0.0,rgba(255,255,255,1.0)),color-stop(1.0,rgba(232,232,232,1.0)));background-image:url(http://localhost/pub_html/contri/drupal/core/modules/views_ui/images/sprites.png),-webkit-linear-gradient(-90deg,#fff 0,#e8e8e8 100%);background-repeat:no-repeat,repeat-y;border:1px solid #ddd;border-radius:4px;box-shadow:0 0 0 rgba(0,0,0,0.3333) inset;}.views-admin a.icon:hover{border-color:#d0d0d0;box-shadow:0 0 1px rgba(0,0,0,0.3333) inset;}.views-admin a.icon:active{border-color:#c0c0c0;}.views-admin span.icon{display:inline-block;float:left;position:relative;}[dir="rtl"] .views-admin span.icon{float:right;}.views-admin .icon.compact{display:block;overflow:hidden;text-indent:-9999px;}.views-admin .icon-text{padding-left:19px;}[dir="rtl"] .views-admin .icon-text{padding-left:0;padding-right:19px;}.views-admin .icon.linked{background-position:center -153px;}.views-admin .icon.unlinked{background-position:center -195px;}.views-admin .icon.add{background-position:center 3px;}.views-admin a.icon.add{background-position:center 3px,left top;}[dir="rtl"] .views-admin a.icon.add{background-position:center 3px,right top;}.views-admin .icon.delete{background-position:center -52px;}.views-admin a.icon.delete{background-position:center -52px,left top;}[dir="rtl"] .views-admin a.icon.delete{background-position:center -52px,right top;}.views-admin .icon.rearrange{background-position:center -111px;}.views-admin a.icon.rearrange{background-position:center -111px,left top;}[dir="rtl"] .views-admin a.icon.rearrange{background-position:center -111px,right top;}.views-displays .secondary a:hover > .icon.add{background-position:center -25px;}.views-displays .secondary .open a:hover > .icon.add{background-position:center 3px;}details.box-padding{border:none;}.views-admin details details{margin-bottom:0;}.form-item{margin-top:9px;padding-bottom:0;padding-top:0;}.form-type-checkbox{margin-top:6px;}input.form-checkbox,input.form-radio{vertical-align:baseline;}.form-submit:not(.js-hide) + .form-submit,.views-admin a.button:not(.js-hide) + a.button{margin-left:1em;}[dir="rtl"] .form-submit:not(.js-hide) + .form-submit,[dir="rtl"] .views-admin a.button:not(.js-hide) + a.button{margin-left:0;margin-right:1em;}.container-inline{padding-top:15px;padding-bottom:15px;}.container-inline > * + *,.container-inline .details-wrapper > * + *{padding-left:4px;}[dir="rtl"] .container-inline > * + *,[dir="rtl"] .container-inline .details-wrapper > * + *{padding-left:0;padding-right:4px;}.views-admin details details.container-inline{margin-bottom:1em;margin-top:1em;padding-top:0;}.views-admin details details.container-inline > .details-wrapper{padding-bottom:0;}.views-admin .form-type-checkbox + .form-wrapper{margin-left:16px;}[dir="rtl"] .views-admin .form-type-checkbox + .form-wrapper{margin-left:0;margin-right:16px;}.views-remove-checkbox{display:none;}.views-admin .form-type-checkbox label,.views-admin .form-type-radio label{line-height:2;}.views-admin-dependent .form-item{margin-bottom:6px;margin-top:6px;}.views-ui-view-title{font-weight:bold;margin-top:0;}.view-changed{margin-bottom:21px;}.views-admin h1.unit-title{font-size:15px;line-height:1.6154;margin-bottom:0;margin-top:18px;}th.views-ui-name{width:18%;}th.views-ui-description{width:26%;}th.views-ui-tag{width:8%;}th.views-ui-path{width:auto;}th.views-ui-operations{width:24%;}.form-item-description-enable + .form-item-description{margin-top:0;}.form-item-description-enable label{font-weight:bold;}.form-item-page-create,.form-item-block-create{margin-top:13px;}.form-item-page-create label,.form-item-block-create label,.form-item-rest-export-create label{font-weight:bold;}.form-item-page-style-style-plugin > label,.form-item-block-style-style-plugin > label{display:block;}.views-attachment .options-set label{font-weight:normal;}.group-populated{display:none;}td.group-title{font-weight:bold;}.views-ui-dialog td.group-title{margin:0;padding:0;}.views-ui-dialog td.group-title span{display:block;height:1px;overflow:hidden;}.group-message .form-submit,.views-remove-group-link,#views-add-group{float:right;clear:both;}[dir="rtl"] .group-message .form-submit,[dir="rtl"] .views-remove-group-link,[dir="rtl"] #views-add-group{float:left;}.views-operator-label{font-style:italic;font-weight:bold;padding-left:0.5em;text-transform:uppercase;}[dir="rtl"] .views-operator-label{padding-left:0;padding-right:0.5em;}.grouped-description,.exposed-description{float:left;padding-top:3px;padding-right:10px;}[dir="rtl"] .grouped-description,[dir="rtl"] .exposed-description{float:right;padding-left:10px;padding-right:0;}#edit-options-more{clear:both;}.views-displays{border:1px solid #ccc;padding-bottom:36px;}.views-display-top{background-color:#e1e2dc;border-bottom:1px solid #ccc;padding:8px 8px 8px;position:relative;}[dir="rtl"] .views-display-top{padding:8px 8px 8px;}.views-display-top .secondary{margin-right:18em;}[dir="rtl"] .views-display-top .secondary{margin-left:18em;margin-right:0;}.views-display-top .secondary > li{margin-right:6px;padding-left:0;}[dir="rtl"] .views-display-top .secondary > li{margin-left:6px;margin-right:0.3em;padding-right:0;}.views-display-top .secondary > li:last-child{margin-right:0;}[dir="rtl"] .views-display-top .secondary > li:last-child{margin-left:0;margin-right:0.3em;}.views-display-top #views-display-top{max-width:180px;}.form-edit .form-actions{background-color:#e1e2dc;border-right:1px solid #ccc;border-bottom:1px solid #ccc;border-left:1px solid #ccc;margin-top:0;padding:8px 12px;}.views-displays .tabs.secondary{margin-right:200px;border:0;}[dir="rtl"] .views-displays .tabs.secondary{margin-left:200px;margin-right:0;}.views-displays .tabs.secondary li,.views-displays .tabs.secondary li.is-active{background:transparent;margin-bottom:5px;border:0;padding:0;width:auto;}.views-displays .tabs.secondary li.add ul.action-list li{margin:0;}.views-displays .tabs.secondary li{margin:0 5px 0 6px;}[dir="rtl"] .views-displays .tabs.secondary li{margin-left:5px;margin-right:6px;}.views-displays .tabs.secondary .tabs__tab + .tabs__tab{border-top:0;}.views-displays .tabs.secondary li.tabs__tab:hover{border:0;padding-left:0;}[dir="rtl"] .views-displays .tabs.secondary li.tabs__tab:hover{padding-left:15px;padding-right:0;}.views-displays .tabs.secondary a{border:1px solid #cbcbcb;border-radius:7px;display:inline-block;font-size:small;line-height:1.3333;padding:3px 7px;}.views-displays .tabs.secondary li.is-active a.is-active.error,.views-displays .tabs.secondary a.error{border:2px solid #ed541d;padding:1px 6px;}.views-displays .tabs.secondary a:focus{outline:none;}.views-displays .tabs.secondary li a{background-color:#fff;}.views-displays .tabs.secondary li a:hover,.views-displays .tabs.secondary li.is-active a,.views-displays .tabs.secondary li.is-active a.is-active{background-color:#555;color:#fff;}.views-displays .tabs.secondary .open > a{background-color:#f1f1f1;border-bottom:1px solid transparent;position:relative;}.views-displays .tabs.secondary .open > a:hover{color:#0074bd;background-color:#f1f1f1;}.views-displays .tabs.secondary .action-list  li{background-color:#f1f1f1;border-color:#cbcbcb;border-style:solid;border-width:0 1px;padding:2px 9px;}.views-displays .tabs.secondary .action-list  li:first-child{border-width:1px 1px 0;}.views-displays .secondary .action-list  li:last-child{border-width:0 1px 1px;}.views-displays .tabs.secondary .action-list  li:last-child{border-width:0 1px 1px;}.views-displays .tabs.secondary .action-list input.form-submit{background:none repeat scroll 0 0 transparent;border:medium none;margin:0;padding:0;}.views-displays .tabs.secondary .action-list input.form-submit:hover{box-shadow:none;}.views-displays .tabs.secondary .action-list li:hover{background-color:#ddd;}#edit-display-settings{margin:12px 12px 0 12px}#edit-display-settings-title{font-size:14px;line-height:1.5;margin:0;}#edit-display-settings-top{border:1px solid #f3f3f3;line-height:20px;margin:0 0 15px 0;padding-top:4px;padding-bottom:4px;position:relative;}#edit-displays-settings-settings-content{margin-top:12px;}.views-display-column{border:1px solid #f3f3f3;}.views-display-column + .views-display-column{margin-top:0;}#views-ui-preview-form .form-type-checkbox{margin-top:2px;margin-left:2px;}[dir="rtl"] #views-ui-preview-form .form-type-checkbox{margin-left:0;margin-right:2px;}#views-ui-preview-form .form-item-view-args,#views-ui-preview-form .form-actions{margin-top:5px;}#views-ui-preview-form .arguments-preview{font-size:1em;}#views-ui-preview-form .arguments-preview,#views-ui-preview-form .form-item-view-args{margin-left:10px;}[dir="rtl"] #views-ui-preview-form .arguments-preview,[dir="rtl"] #views-ui-preview-form .form-item-view-args{margin-left:0;margin-right:10px;}#views-ui-preview-form .form-item-view-args label{display:inline-block;float:left;font-weight:normal;height:6ex;margin-right:0.75em;}[dir="rtl"] #views-ui-preview-form .form-item-view-args label{float:right;margin-left:0.75em;margin-right:0.2em;}.form-item-live-preview,.form-item-view-args,#preview-submit-wrapper{display:inline-block;}.form-item-live-preview,#preview-submit-wrapper{vertical-align:top;}@media screen and (min-width:45em){#views-ui-preview-form .form-type-textfield .description{white-space:nowrap;}}.views-ui-display-tab-bucket{border-bottom:1px solid #f3f3f3;line-height:20px;margin:0;padding-top:4px;}.views-ui-display-tab-bucket:last-of-type{border-bottom:none;}.views-ui-display-tab-bucket + .views-ui-display-tab-bucket{border-top:medium none;}.views-ui-display-tab-bucket > h3,.views-ui-display-tab-bucket > .views-display-setting{padding:2px 6px 4px;}.views-ui-display-tab-bucket h3{font-size:small;margin:0;}.views-ui-display-tab-bucket.access{padding-top:0;}.views-ui-display-tab-bucket.page-settings{border-bottom:medium none;}.views-display-setting .views-ajax-link{margin-left:0.2083em;margin-right:0.2083em;}.views-ui-display-tab-setting.overridden,.views-ui-display-tab-bucket.overridden > h3{font-style:italic;}.views-ui-display-tab-bucket{position:relative;}.views-ui-display-tab-bucket .views-display-setting{color:#666;font-size:12px;padding-bottom:2px;}.views-ui-display-tab-bucket .views-display-setting:nth-of-type(even){background-color:#f3f5ee;}.views-ui-display-tab-actions.views-ui-display-tab-bucket .views-display-setting{background-color:transparent;}.views-ui-display-tab-bucket .views-group-text{margin-top:6px;margin-bottom:6px;}.views-display-setting .label{margin-right:3px;}[dir="rtl"] .views-display-setting .label{margin-left:3px;margin-right:0;}.views-edit-view{margin-bottom:15px;}.views-filterable-options .form-type-checkbox{border:1px solid #ccc;padding:5px 8px;border-top:none;}.views-filterable-options{border-top:1px solid #ccc;}.views-filterable-options .filterable-option.odd .form-type-checkbox{background-color:#f3f4ee;}.filterable-option .form-item{margin-bottom:0;margin-top:0;}.views-filterable-options .form-type-checkbox .description{margin-top:0;margin-bottom:0;}#views-filterable-options-controls{margin:1em 0;}#views-filterable-options-controls .form-item{width:30%;margin:0 0 0 2%;}}[dir="rtl"] #views-filterable-options-controls .form-item{margin:0 2% 0 0;}#views-filterable-options-controls input,#views-filterable-options-controls select{width:100%;}.views-ui-dialog .ui-dialog-content{padding:0;}.views-ui-dialog .views-filterable-options{margin-bottom:10px;}.views-ui-dialog .views-add-form-selected.container-inline{padding:0;}.views-ui-dialog .views-add-form-selected.container-inline > div{display:block;}.views-ui-dialog #edit-selected{margin:0;padding:6px 16px;}.views-ui-dialog #views-ajax-title,.views-ui-dialog .views-override{background-color:#f3f4ee;}.views-ui-dialog.views-ui-dialog-scroll .ui-dialog-titlebar{border:none;}.views-ui-dialog .views-override{padding:8px 13px;}.views-ui-dialog [data-drupal-views-offset]{border:1px solid #ccc;}.views-ui-dialog [data-drupal-views-offset="top"]{border-width:0 0 1px;}.views-ui-dialog [data-drupal-views-offset="bottom"]{border-width:1px 0 0;}.views-ui-dialog .views-override > *{margin:0;}.views-ui-dialog #views-ajax-title h2{font-size:15px;padding:8px 13px;margin:0;}.views-ui-dialog #views-progress-indicator{color:#fff;font-size:11px;position:absolute;right:10px;top:32px;}[dir="rtl"] .views-ui-dialog #views-progress-indicator{left:10px;right:auto;}.views-ui-dialog #views-progress-indicator:before{content:"\003C\00A0";}.views-ui-dialog #views-progress-indicator:after{content:"\00A0\003E";}.views-ui-dialog details .item-list{padding-left:2em;}[dir="rtl"] .views-ui-dialog details .item-list{padding-left:0;padding-right:2em;}.form-type-checkboxes #edit-options-value,.form-type-checkboxes #edit-options-validate-options-node-types{border-color:#ccc;border-style:solid;border-width:1px;max-height:210px;overflow:auto;margin-top:5px;padding:0 5px;width:190px;}.views-ui-rearrange-filter-form table{border-collapse:collapse;}.views-ui-rearrange-filter-form tr td[rowspan]{border-color:#cdcdcd;border-style:solid;border-width:0 1px 1px 1px;}.views-ui-rearrange-filter-form tr[id^="views-row"]{border-right:1px solid #cdcdcd;}[dir="rtl"] .views-ui-rearrange-filter-form tr[id^="views-row"]{border-left:1px solid #cdcdcd;border-right:0;}.views-ui-rearrange-filter-form tr[id^="views-row"].even td{background-color:#f3f4ed;}.views-ui-rearrange-filter-form .views-group-title{border-top:1px solid #cdcdcd;}.views-ui-rearrange-filter-form .group-empty{border-bottom:1px solid #cdcdcd;}.form-item-options-expose-required,.form-item-options-expose-label,.form-item-options-expose-description{margin-bottom:6px;margin-left:18px;margin-top:6px;}[dir="rtl"] .form-item-options-expose-required,[dir="rtl"] .form-item-options-expose-label,[dir="rtl"] .form-item-options-expose-description{margin-left:0;margin-right:18px;}#views-preview-wrapper{border:1px solid #ccc;}.view-preview-form{position:relative;}.view-preview-form__title{background-color:#e1e2dc;border-bottom:1px solid #ccc;margin-top:0;padding:8px 12px;}.view-preview-form .form-item-live-preview{position:absolute;right:12px;top:3px;}[dir="rtl"] .view-preview-form .form-item-live-preview{right:auto;left:12px;}#views-live-preview{padding:12px;}#views-live-preview .views-query-info{overflow:auto;}#views-live-preview h1.section-title{color:#818181;display:inline-block;font-size:13px;font-weight:normal;line-height:1.6154;margin-bottom:0;margin-top:0;}#views-live-preview .view > *{margin-top:18px;}#views-live-preview .preview-section{border:1px dashed #dedede;margin:0 -5px;padding:3px 5px;}#views-live-preview li.views-row + li.views-row{margin-top:18px;}#views-live-preview div.views-row + div.views-row{margin-top:36px;}.views-query-info table{border-collapse:separate;border-color:#ddd;border-spacing:0;margin:10px 0;}.views-query-info table tr{background-color:#f9f9f9;}.views-query-info table th,.views-query-info table td{color:#666;padding:4px 10px;}#views-live-preview .views-view-grid th,#views-live-preview .views-view-grid td{vertical-align:top;}#views-live-preview .view-content > .item-list > ul{list-style-position:outside;padding-left:21px;}[dir="rtl"] #views-live-preview .view-content > .item-list > ul{padding-left:0;padding-right:21px;}#edit-options-default-action{width:300px;float:left;}#edit-options-exception{float:right;width:250px;margin-top:-2px;}div.messages{margin-bottom:18px;line-height:1.4555;}.dropbutton-multiple{position:absolute;}.dropbutton-widget{position:relative;}.js .views-edit-view .dropbutton-wrapper .dropbutton .dropbutton-action > *{font-size:10px;}.js .dropbutton-wrapper .dropbutton .dropbutton-action > .ajax-progress-throbber{position:absolute;right:-5px;top:-1px;z-index:2;}[dir="rtl"].js .dropbutton-wrapper .dropbutton .dropbutton-action > .ajax-progress-throbber{left:-5px;right:auto;}.js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:first-child a{border-radius:1.1em 0 0 0;}[dir="rtl"].js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:first-child a{border-radius:0 1.1em 0 0;}.js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:last-child a{border-radius:0 0 0 1.1em;}[dir="rtl"].js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:last-child a{border-radius:0 0 1.1em 0;}.views-display-top .dropbutton-wrapper{position:absolute;right:12px;top:7px;}[dir="rtl"] .views-display-top .dropbutton-wrapper{left:12px;right:auto;}.views-display-top .dropbutton-wrapper .dropbutton-widget .dropbutton-action a{width:auto;}.views-ui-display-tab-bucket .dropbutton-wrapper{position:absolute;right:5px;top:4px;}[dir="rtl"] .views-ui-display-tab-bucket .dropbutton-wrapper{left:5px;right:auto;}.views-ui-display-tab-bucket .dropbutton-wrapper .dropbutton-widget .dropbutton-action a{width:auto;}.views-ui-display-tab-actions .dropbutton-wrapper li a,.views-ui-display-tab-actions .dropbutton-wrapper input{background:none;border:medium;font-family:inherit;font-size:12px;padding-left:12px;margin-bottom:0;}[dir="rtl"] .views-ui-display-tab-actions .dropbutton-wrapper li a,[dir="rtl"] .views-ui-display-tab-actions .dropbutton-wrapper input{padding-left:0.5em;padding-right:12px;}.views-ui-display-tab-actions .dropbutton-wrapper input:hover{background:none;border:none;}.views-list-section{margin-bottom:2em;}.form-textarea-wrapper,.form-item-options-content{width:100%;}
+#views-live-preview .contextual-region-active{outline:medium none;}#views-live-preview div.contextual{right:auto;top:auto;}[dir="rtl"] #views-live-preview div.contextual{left:auto;}html.js #views-live-preview div.contextual{display:inline;}#views-live-preview a.contextual-links-trigger{display:block;}div.contextual ul.contextual-links{border-radius:0 4px 4px 4px;min-width:10em;padding:6px 6px 9px 6px;right:auto;}[dir="rtl"] div.contextual ul.contextual-links{border-radius:4px 0 4px 4px;left:auto;}ul.contextual-links li a,ul.contextual-links li span{padding-bottom:0.25em;padding-right:0.1667em;padding-top:0.25em;}[dir="rtl"] ul.contextual-links li a,[dir="rtl"] ul.contextual-links li span{padding-left:0.1667em;padding-right:0;}ul.contextual-links li span{font-weight:bold;}ul.contextual-links li a{color:#666 !important;margin:0.25em 0;padding-left:1em;}[dir="rtl"] ul.contextual-links li a{padding-left:0.1667em;padding-right:1em;}ul.contextual-links li a:hover{background-color:#badbec;}
+.js .dropbutton-widget{background-color:white;border:1px solid #cccccc;}.js .dropbutton-widget:hover{border-color:#b8b8b8;}.dropbutton .dropbutton-action > *{padding:0.1em 0.5em;white-space:nowrap;}.dropbutton .secondary-action{border-top:1px solid #e8e8e8;}.dropbutton-multiple .dropbutton{border-right:1px solid #e8e8e8;}[dir="rtl"] .dropbutton-multiple .dropbutton{border-left:1px solid #e8e8e8;border-right:0 none;}.dropbutton-multiple .dropbutton .dropbutton-action > *{margin-right:0.25em;}[dir="rtl"] .dropbutton-multiple .dropbutton .dropbutton-action > *{margin-left:0.25em;margin-right:0;}
+.toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:right;padding:1em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:left;}.toolbar .toolbar-tray-horizontal .edit-shortcuts{float:right;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .edit-shortcuts{float:left;}.add-or-remove-shortcuts{display:inline-block;margin-left:0.3em;}[dir="rtl"] .add-or-remove-shortcuts{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts .text{background:#000000;background:rgba(0,0,0,0.5);border-radius:5px;padding:0 5px;color:#ffffff;display:inline-block;margin-left:0.3em;opacity:0;-ms-transform:translateY(-12px);-webkit-transform:translateY(-12px);transform:translateY(-12px);-webkit-transition:all 200ms ease-out;transition:all 200ms ease-out;-ms-backface-visibility:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;}[dir="rtl"] .add-or-remove-shortcuts .text{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts a:hover .text,.add-or-remove-shortcuts a:focus .text{opacity:1;-ms-transform:translateY(-2px);-webkit-transform:translateY(-2px);transform:translateY(-2px);}
+.toolbar-bar .toolbar-icon-shortcut:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/star.svg);}.toolbar-bar .toolbar-icon-shortcut:active:before,.toolbar-bar .toolbar-icon-shortcut.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/star.svg);}.add-or-remove-shortcuts .icon{background:transparent url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar.svg) no-repeat left top;width:20px;height:20px;display:inline-block;vertical-align:-2px;}[dir="rtl"] .add-or-remove-shortcuts .icon{background-image:url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar-rtl.svg);}.add-shortcut a:hover .icon,.add-shortcut a:focus .icon{background-position:-20px top;}.remove-shortcut .icon{background-position:-40px top;}.remove-shortcut a:focus .icon,.remove-shortcut a:hover .icon{background-position:-60px top;}
+.toolbar{font-family:"Source Sans Pro","Lucida Grande",Verdana,sans-serif;font-size:0.8125rem;-moz-tap-highlight-color:rgba(0,0,0,0);-o-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0);-moz-touch-callout:none;-o-touch-callout:none;-webkit-touch-callout:none;touch-callout:none;}.toolbar .toolbar-item{cursor:pointer;padding:1em 1.3333em;line-height:1em;text-decoration:none;}.toolbar .toolbar-item:hover,.toolbar .toolbar-item:focus{text-decoration:underline;}.toolbar .toolbar-bar{background-color:#0f0f0f;box-shadow:-1px 0 3px 1px rgba(0,0,0,0.3333);color:#dddddd;}[dir="rtl"] .toolbar .toolbar-bar{box-shadow:1px 0 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-bar .toolbar-item{color:#ffffff;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item{font-weight:bold;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:hover,.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:focus{background-image:-webkit-linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);text-decoration:none;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);}.toolbar .toolbar-tray{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:5em;}[dir="rtl"] .toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:0;padding-left:5em;}.toolbar .toolbar-tray-vertical{background-color:#f5f5f5;border-right:1px solid #aaaaaa;box-shadow:-1px 0 5px 2px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-vertical{border-left:1px solid #aaaaaa;border-right:0 none;box-shadow:1px 0 5px 2px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal{border-bottom:1px solid #aaaaaa;box-shadow:-2px 1px 3px 1px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-horizontal{box-shadow:2px 1px 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal .toolbar-tray{background-color:#f5f5f5;}.toolbar-tray a{color:#565656;cursor:pointer;padding:1em 1.3333em;text-decoration:none;}.toolbar-tray a:hover,.toolbar-tray a:active,.toolbar-tray a:focus,.toolbar-tray a.is-active{color:#000;text-decoration:underline;}.toolbar .menu{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:0 none;border-right:1px solid #dddddd;}.toolbar .toolbar-tray-horizontal .menu-item:last-child{border-right:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item:last-child{border-left:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item + .menu-item{border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child{border-bottom:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item .menu-item{border:0 none;}.toolbar .toolbar-tray-vertical .menu ul ul{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child > ul{border-bottom:0;}.toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0.25em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0;margin-right:0.25em;}.toolbar .menu .menu a{color:#434343;}.toolbar .toolbar-toggle-orientation{background-color:#f5f5f5;padding:0.6667em;}.toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:1px solid #c9c9c9;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:0 none;border-right:1px solid #c9c9c9;}.toolbar .toolbar-toggle-orientation > .toolbar-lining{float:right;padding:0.1667em;}[dir="rtl"] .toolbar .toolbar-toggle-orientation > .toolbar-lining{float:left;}.toolbar .toolbar-toggle-orientation button{cursor:pointer;display:inline-block;}
+.toolbar .toolbar-icon{padding-left:2.75em;position:relative;}[dir="rtl"] .toolbar .toolbar-icon{padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-icon:before{background-attachment:scroll;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:100% auto;content:'';display:block;height:100%;left:0.6667em;position:absolute;top:0;width:20px;}[dir="rtl"] .toolbar .toolbar-icon:before{left:auto;right:0.6667em;}.toolbar button.toolbar-icon{background-color:transparent;border:0;font-size:1em;}.toolbar .menu ul .toolbar-icon{padding-left:1.3333em;}[dir="rtl"] .toolbar .menu ul .toolbar-icon{padding-left:0;padding-right:1.3333em;}.toolbar .menu ul a.toolbar-icon:before{display:none;}.toolbar .toolbar-tray-vertical .menu ul a{padding-left:2.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul a{padding-left:0;padding-right:2.75em;}.toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:3.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:0;padding-right:3.75em;}.toolbar .toolbar-tray-vertical .menu a{padding-left:2.75em;padding-right:4em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu a{padding-left:4em;padding-right:2.75em;}.toolbar-bar .toolbar-icon-menu:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/hamburger.svg);}.toolbar-bar .toolbar-icon-menu:active:before,.toolbar-bar .toolbar-icon-menu.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/hamburger.svg);}.toolbar-bar .toolbar-icon-help:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/questionmark-disc.svg);}.toolbar-bar .toolbar-icon-help:active:before,.toolbar-bar .toolbar-icon-help.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/questionmark-disc.svg);}.toolbar-icon-system-admin-content:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/file.svg);}.toolbar-icon-system-admin-content:active:before,.toolbar-icon-system-admin-content.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/file.svg);}.toolbar-icon-system-admin-structure:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/orgchart.svg);}.toolbar-icon-system-admin-structure:active:before,.toolbar-icon-system-admin-structure.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/orgchart.svg);}.toolbar-icon-system-themes-page:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/paintbrush.svg);}.toolbar-icon-system-themes-page:active:before,.toolbar-icon-system-themes-page.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/paintbrush.svg);}.toolbar-icon-entity-user-collection:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/people.svg);}.toolbar-icon-entity-user-collection:active:before,.toolbar-icon-entity-user-collection.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/people.svg);}.toolbar-icon-system-modules-list:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/puzzlepiece.svg);}.toolbar-icon-system-modules-list:active:before,.toolbar-icon-system-modules-list.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/puzzlepiece.svg);}.toolbar-icon-system-admin-config:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/wrench.svg);}.toolbar-icon-system-admin-config:active:before,.toolbar-icon-system-admin-config.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/wrench.svg);}.toolbar-icon-system-admin-reports:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/barchart.svg);}.toolbar-icon-system-admin-reports:active:before,.toolbar-icon-system-admin-reports.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/barchart.svg);}.toolbar-icon-help-main:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg);}.toolbar-icon-help-main:active:before,.toolbar-icon-help-main.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/questionmark-disc.svg);}.toolbar .toolbar-bar .toolbar-icon:before{min-height:3em;}@media only screen and (min-width:16.5em){.toolbar .toolbar-bar .toolbar-icon{margin-left:0;margin-right:0;padding-left:0;padding-right:0;text-indent:-9999px;width:4em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:42% auto;left:0;width:100%;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:auto;right:0;}}@media only screen and (min-width:36em){.toolbar .toolbar-bar .toolbar-icon{background-position:left center;padding-left:2.75em;padding-right:1.3333em;text-indent:0;width:auto;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon{background-position:right center;padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:100% auto;left:0.6667em;width:20px;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:0;right:0.6667em;}}.toolbar-tab a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tab a{border-left:none;border-right:2px solid transparent;}.toolbar-tab a:focus{outline:none;border-color:#ddd;}.toolbar-lining button:focus{outline:none;}.toolbar-tray-horizontal a,.toolbar-box a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tray-horizontal a,[dir="rtl"] .toolbar-box a{border-left:none;border-right:2px solid transparent;}.toolbar-tray-horizontal a:focus,.toolbar-box a:focus{outline:none;border-color:#4479C0;background-color:#f5f5f5;text-decoration:none;}.toolbar-box a:hover:focus{text-decoration:underline;}.toolbar .toolbar-icon.toolbar-handle:focus{outline:none;background-color:#f5f5f5;}.toolbar .toolbar-icon.toolbar-handle{width:4em;text-indent:-9999px;}.toolbar .toolbar-icon.toolbar-handle:before{left:1.6667em;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle:before{left:auto;right:1.6667em;}.toolbar .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/chevron-disc-down.svg);}.toolbar .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/chevron-disc-up.svg);}.toolbar .menu .menu .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/twistie-down.svg);background-size:75%;}.toolbar .menu .menu .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/twistie-up.svg);background-size:75%;}.toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-left.svg);}[dir="rtl"] .toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-right.svg);}.toolbar .toolbar-toggle-orientation button{height:16px;padding:0;text-indent:-999em;width:20px;}.toolbar .toolbar-toggle-orientation button:before{left:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation button:before{left:auto;right:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation .toolbar-icon{padding-right:0;}.toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-left.svg);}.toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,.toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-left.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-right.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-right.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-up.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:hover:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-up.svg);}
+.toolbar-bar .toolbar-icon-user:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/person.svg);}.toolbar-bar .toolbar-icon-user:active:before,.toolbar-bar .toolbar-icon-user.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/person.svg);}
diff --git a/sites/default/files/css/css_dCWVhhgAQct1Uw5POxmv9rWdtcYbi4dISYLhlnIPtGQ.css.gz b/sites/default/files/css/css_dCWVhhgAQct1Uw5POxmv9rWdtcYbi4dISYLhlnIPtGQ.css.gz
new file mode 100644
index 0000000..302b190
--- /dev/null
+++ b/sites/default/files/css/css_dCWVhhgAQct1Uw5POxmv9rWdtcYbi4dISYLhlnIPtGQ.css.gz
@@ -0,0 +1,30 @@
+     =io㸒WhhLHؘ7Xv,mkZ4::I!('Ę"EXK&(+P$ASVE=m^s?cTU6Cm^&\8KuSf҇}!*ڇeBQȫN:Vyh&@(Q Zj#¿|NtS'(ˈ"cگhGܧYg(*wzvy&GѮF)@ѱ^_]m8CQyEE3\ozolu:G>@j268+:/ChWQ.0g>_DO	z몎jØSܔU^%=yYGǚN1u) yÏalC7E51jaЧv-(9`O:ϳmTzA&n	
+0m^>'iUYgW_ׂ @5:h'\[}؃g@Q|[R4\X&uk"=Dh?Aex\ʇۻIk/8Vp>f+zA<?5
+gamбgTf&'e_JZJE0l#EM e2e>:&:6-KyobWʂh_m8rNF%4>2}ᑊEz }r>҅ͳdW%Ą{ѓO<240p _e;'a2v|O:?g1a%|6>,K$GǲaAǌeK~LXѱ,XX1`a԰KD~LX(+5,ٰٗzJW<'DijDiB@\^ӧwsBVY&Jzbӆuο,extItŐz-&%$@w叝JA$0vU5ԙ)3,ҕƲfݙ%Jte;&f e6Q	-fKEǌvK"2NzY<y_$ykLnoQNȏFfMAevhv}L^d?s!OU^GQEB]vf(IO#&~JjpiG7P:N_hN\,}8כeaJouO9?>	=Q9*ޏHMGKeiQq³cVArbHi}OCW0 Ϋ^pXO?{t(M%!Ac聫rBy;u-e-߇	s
+gTES1:; 0oQphDB)M%IK庒pȴ).f]ӹZv-~{ֿ0&>KNFx%Z|6L@ҪlvCBX7DMVa۲QmDtډXcTxB^nӾ(yU>d7 &)"JtG߀"SUZ0O&W=҇Do>lٚ_SyY9R_ٟ콕2A)E79`ųUU{l_ծ}Tx1b4kfE !G_-&p"NkEaf
+:[wpf~emcPV>Si]Shc]aݙ%&އ8ObSXBFdP\ Gn 9}^OgxOt!P$wYQ$epNNuceyzi wQG-~iRKPuy~Sk^s]{&RD<倘f<2# D
+юZk(q\$!6eǚ:(La|'[t߄# hxK o.T#o^CJOo~:A|z6xl[y:C~aV$ϗ0kiU96HFՓmO[Z;zYjO]o/b;sbl5<EQ	w&KT	)U^g=ާYr n,cq"v fՎ\]ԉQC?	S4l8Y*fj1_c:t%XIT>3|PR:8Aur9ϲ!0mt5XTAjCSy듑E=^
+m5eaa76a
+$^)1+}CuĉYD%暁w|V,wf#<eAAB^Ʃje$.7;)E8$\s4v8dH\=dr/I3)AT)K,&0~f
+f,6t'fHK"-޵#hXrV3aDVLwascg'K[t&Ⱦؼ:l9	g,^uA|-^cCnsqfu7@Mik[wAG~ދpM
+n򘳫-<g	5/\f`*BM`{MbSԛ^waps}`~O#S.yO98<ܥJŋu@d$2B$+څ"k'Ņ45'Kt哀:zиIo*J,iq`qIXc@m[=&}2S{seYCqx!ŧ`}-_8Va
+2}	(Q^0r\H4sF(aH0!~Gl5-Gs%q VS^Fz$#S6fM7PUkv) XIYjW\Ђ~[:7GKKwLa_Okگ=sf@2T^,g8v1W*H*C?0m`@hM+Hc*pYL\&Ե3,Y,MҠD+_3vrz>{A	kۊ'}%ŗX45mLՔmT!CliMcgTpo]CpmI>j]I^qڳPȗ]A6ۧ'@2aj?m?E ː4=4gEz$-4ѡ,iSDupKYc^Urv"+Ү$BZ|$8uyOX uWU6%W[h2,ǞdChR~aRZN	DMRO}||{.Uj!7(?zg+I=Gj"'ޢPB2$e%϶K}Ʈ{u`v
+l1>k4&2^
+R؟/M3iGO 8L="k0uXFXj2:l2y=d C`ryO	k`/¶J(<mb(̷$0'=\!|&[&QIA XF
+vn	O'ȧ#ť\Th@Qe6Um.Q"nvG%y3IΜ><Ɨ	P#is )b	YADX}u{^hf@_c9:!D&(DijKg;} RF396*42Ŝu4@2)hReyrq8eϤ8թ+זI6%7}gѶ-Y7$hg!_<m&ƂR.uTkb)5ٔN0mvФZ^aK+٦
+eP~8*yղ0!jpgi:xFf+\}=
+M e&ĕ,VƘk4!fµd[]iiDk9LK{a7qKy2[skt\n͋G*E!eP;1KY$vM6VjR͒$G=D5k2P$$wT
+URΦ =^`!zY45LK-%#4 9	k<{WԞ r8yZGW[\fyil	si9B
+ ڑG/L e-p|[*:j_SmcPyA_0S:XV7uUh<XO"#%WMzrm_ǲn֐{q!q2b2V<=Ux0rB-c;r4[v	ҳ@W0ΈAˠgyrBmcFFXA۠;-ޓ<ۥ(K<z!!\k2;&[m<$t5YۋP 4cNB(~yd"فpUKGTSG3q=3w}~6G^#z87憭GP@OA)B;2OsLPE8Qff1\fc&a["ay4T4,%>ˍJzgҗݴǈG%.&.w2e'EZat$qO4O3u JWve|XI6D6YgrQGF4ԝ2h,PI84W.Zr-}NjT6H7;
+J(D5紐a((Hssmo[
+'h'6jUgamTs4Hqd|$+@r8MdY2O	1/ePb% ?efHyf9\vtVR`;(8JIX`	OW2˪R2g;5G@0
+Umel&1OhJMV.}GSkzR%N2w%&3OKRW'Rdj(;5gni^n!·R$"8kS >PIz9qV$HACQ?۽-A·Mi]NMt3Ay3+Y2!ROӭ9٭~Nq(֒jK~ek䬬	OtYK|@<Kn
+譖][lPLkBiBpd(BEi:.u77	i正G\mήiNˌg鴕/ҟnAmoBJ&rVʨFJVj.WjHU(Hr]ç~b}*m!LkC	aĭ/E!W7;Znf	/4`BׯVǊU2/[6r'#=ӓ@'V*KՌ;-܊iR0i׮.Iv[SdԕxSY"l4})ZޗvKȚ>P	HX8oNYLdtј&HpmU[i\JK2[ R;a^o{lZs;ҶTI?ӷiiG'CҦ?b|/.NڼLW2\X n2qIHrTN*=QֶTj4Lu PWBS<ITarNp:&2GcS]tdTSW<JqZ+7+-G 3A{BdLly&ś/QEL0qh~ԭ4\O`+:rzTn7խzbD۠
+BgJ^W:xKV.C!l)(٢JN*	U6ɍC=9F8
+4;HM!H[DPmB)~̞DZlXt8S.0mS3]J<fikHis7LVi~ea#޾7[FFϚu6`,]+e^
+ohF-4z1Bqg[ܴO>]^sfd7C塨B>Vu6OF(.̀zvŚii̽byuhӌb4=0K=DV!]iU:-%εHyG*ºzbwv=E[bym)>h`xx}=-u--hΛu[T}:1|*ZKKZ_sbx,kj;$:7e5W_M$/]MIt&*.-1]uT{:2X!LO',vrF\6tE>^9>o9f+!O)/QJQ!yQPi~H@%+#c#֩rWk7S2_nb=%*P-Bq"3:#.ڡAoێb\[VjuKRq,ٛL;шȏA@̲G6sū#e&gL	Q,OВ"_"HTZh_~+H~~q: ؼj[DU۪u;7AҮ}6 3\=w@6z&C5˄3Hܒ.@]4qFFRkyJ]@`"o1q`\)Aǈ'&P;GFj"K=|FoHGDR#wA}1EG`!3_78
+xcVIUc .7IM7XH\_獹&̙l`H.鬂/ˁ%]m I?x."oi-q Q*'Lq!uX·*kp>B3Q^
+# ]2 ۦ|@Q Bs Z(+.?T7HIr*~ydiv~\*]!wB,lv0giqU]6qݔˇxrvy\EmT{Wb*4~]ԡe+ֱVswb}$lY^͏*RXR~>\0Δ9paљuuIvbĎ'ƙw,u/I7#ma]qd3OY-=[
+))	耤e񭍬$٘uq:Wb|?x9b0щyq`|Hkjkdcrmcy}~Cy?{"U=3 7`譻-dz/b6}$k66ӑ#%HXl3BdSwY?XdH`h:%7^>8|{Y=`.xOǣ6F_Rk
+61j1~6Qީv/[N8g ٲ]Q}I4
+މd{[w=Rʣu+V&`E!6qڗϤܯW<Ps3]4^\HOP$ɣ=-f- ϬBN|2cIrl	~狲U~?:}??v  
\ No newline at end of file
diff --git a/sites/default/files/css/css_eKB48pJLVBnS8-3UMYOGQwWc6vAtIb-mMzCyUmNaQx8.css b/sites/default/files/css/css_eKB48pJLVBnS8-3UMYOGQwWc6vAtIb-mMzCyUmNaQx8.css
new file mode 100644
index 0000000..648bf50
--- /dev/null
+++ b/sites/default/files/css/css_eKB48pJLVBnS8-3UMYOGQwWc6vAtIb-mMzCyUmNaQx8.css
@@ -0,0 +1 @@
+body,input,textarea,select{color:#000;background:none;}body.two-sidebars,body.sidebar-first,body.sidebar-second,body{width:640px;}#sidebar-first,#sidebar-second,.navigation,#toolbar,.site-footer,.tabs,.add-or-remove-shortcuts{display:none;}.one-sidebar #content,.two-sidebars #content{width:100%;}#featured-bottom-wrapper{width:960px;margin:0;padding:0;border:none;}#featured-bottom-first,#featured-bottom-second,#featured-bottom-third{width:250px;}#comments .title,#comments form,.comment-forbidden{display:none;}
diff --git a/sites/default/files/css/css_eKB48pJLVBnS8-3UMYOGQwWc6vAtIb-mMzCyUmNaQx8.css.gz b/sites/default/files/css/css_eKB48pJLVBnS8-3UMYOGQwWc6vAtIb-mMzCyUmNaQx8.css.gz
new file mode 100644
index 0000000..fc91c09
--- /dev/null
+++ b/sites/default/files/css/css_eKB48pJLVBnS8-3UMYOGQwWc6vAtIb-mMzCyUmNaQx8.css.gz
@@ -0,0 +1,3 @@
+     en EAĦҒIӴc׎|QgV%1Dh"El.ղNYNFJ{IQ"ضz9^jPG{OQUB47
+H0b]RĚ1	u[$m<K1^
+Q]?\|mheaH^3rq,>6|sĀ\{\?p=CQ|}Y_G!dP	?艃K`mW9*  
\ No newline at end of file
diff --git a/sites/default/files/css/css_hjegRu4SceFnI4ktq33UKZ_syYnoLQojwtQDby1SQBw.css b/sites/default/files/css/css_hjegRu4SceFnI4ktq33UKZ_syYnoLQojwtQDby1SQBw.css
new file mode 100644
index 0000000..eabab74
--- /dev/null
+++ b/sites/default/files/css/css_hjegRu4SceFnI4ktq33UKZ_syYnoLQojwtQDby1SQBw.css
@@ -0,0 +1,2 @@
+.contextual-region{position:relative;}.contextual .trigger:focus{position:relative !important;}.contextual-links{display:none;}.contextual.open .contextual-links{display:block;}
+#toolbar-administration,#toolbar-administration *{box-sizing:border-box;}#toolbar-administration{font-size:small;line-height:1;margin:0;padding:0;vertical-align:baseline;}@media print{#toolbar-administration{display:none;}}.toolbar li,.toolbar .item-list,.toolbar .item-list li,.toolbar .menu-item,.toolbar .menu-item--expanded{list-style-type:none;list-style-image:none;}.toolbar .menu-item{padding-top:0;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .menu-item{display:block;}.toolbar .toolbar-bar .toolbar-tab.hidden{display:none;}.toolbar a{display:block;line-height:1;}.toolbar .toolbar-bar,.toolbar .toolbar-tray{position:relative;z-index:1250;}body.toolbar-fixed .toolbar-oriented,.toolbar-oriented .toolbar-bar,.toolbar-oriented .toolbar-tray{left:0;position:absolute;right:0;top:0;}.toolbar-oriented .toolbar-bar{z-index:502;}body.toolbar-fixed .toolbar-oriented .toolbar-bar{position:fixed;}body.toolbar-tray-open.toolbar-fixed.toolbar-vertical .toolbar-oriented{bottom:0;width:240px;width:15rem;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}@media only screen{.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:none;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:none;}}@media (min-width:16.5em){.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}}.toolbar-oriented .toolbar-bar .toolbar-tab,.toolbar-oriented .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar-oriented .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal li{float:right;}.toolbar .toolbar-tray{display:none;z-index:501;}.toolbar-oriented .toolbar-tray-vertical{left:-100%;position:absolute;width:240px;width:15rem;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical{left:auto;right:-100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining{min-height:100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining:before{width:100%;}.toolbar-oriented .toolbar-tray-vertical > .toolbar-lining:before{bottom:0;content:'';display:block;left:0;position:fixed;top:0;width:240px;width:14rem;z-index:-1;}[dir="rtl"] .toolbar .toolbar-tray-vertical > .toolbar-lining:before{left:auto;right:0;}.toolbar-oriented .toolbar-tray-horizontal .menu-item ul{display:none;}body.toolbar-fixed .toolbar .toolbar-tray-horizontal{position:fixed;}.toolbar .toolbar-tray-vertical.is-active,body.toolbar-fixed .toolbar .toolbar-tray-vertical{height:100%;overflow-x:hidden;overflow-y:auto;position:fixed;}.toolbar .toolbar-tray.is-active{display:block;}.toolbar-oriented .toolbar-tray-vertical.is-active{left:0;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical.is-active{left:auto;right:0;}body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:240px;margin-left:15rem;}@media print{body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:0;}}[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:auto;margin-left:auto;margin-right:240px;margin-right:15rem;}@media print{[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-right:0;}}.toolbar .toolbar-tray .toolbar-toggle-orientation{display:none;}.toolbar-oriented .toolbar-tray .toolbar-toggle-orientation{display:block;}.toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{bottom:0;position:absolute;right:0;top:auto;}[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{left:0;right:auto;}.toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:right;width:100%;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:left;}
diff --git a/sites/default/files/css/css_hjegRu4SceFnI4ktq33UKZ_syYnoLQojwtQDby1SQBw.css.gz b/sites/default/files/css/css_hjegRu4SceFnI4ktq33UKZ_syYnoLQojwtQDby1SQBw.css.gz
new file mode 100644
index 0000000..11165b5
--- /dev/null
+++ b/sites/default/files/css/css_hjegRu4SceFnI4ktq33UKZ_syYnoLQojwtQDby1SQBw.css.gz
@@ -0,0 +1,3 @@
+     Wn0}WTUj(PGeoA5YnD}gp+	3$!H}vWIE ؟''B*̕u1ʟ҂4a86+􅐉Sp`!r*K̈́V"C)}<C!	H%yBqOcX tb,#}/H0!%<TtƌFq
++BHU1Eg;F7KGc'T~!Y9R7QrH	8&LHEm?R">i^Fw=RB` \JupBxET.;mr(H8H $ds!\dkTa*IA +`qQ|=۾W,^}kDWR"Pãdv'!~cZY5˫.eMhq`+fpMq+?>UIt~M Mum} ZZ(qS&6a\yoʉgԮelgKԸWhy_Fzd,
+{aB?z8	Vi܌ BBQe,1vj'ʿm0L{6#aُRiTso^jvsb>3&/fՂ].Mޗ}~-U2($7YZvR=:C!ZUx&7X{yG<1%031>L6.Y{Q{X2c`{p3rN#eXV9Pώku=nb  
\ No newline at end of file
diff --git a/sites/default/files/css/css_jYOI5kpLo5HgLotRPSbVQIv-QmvRFqS6R2TMbueJY-w.css b/sites/default/files/css/css_jYOI5kpLo5HgLotRPSbVQIv-QmvRFqS6R2TMbueJY-w.css
new file mode 100644
index 0000000..acf370c
--- /dev/null
+++ b/sites/default/files/css/css_jYOI5kpLo5HgLotRPSbVQIv-QmvRFqS6R2TMbueJY-w.css
@@ -0,0 +1,14 @@
+.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:right;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:left;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{margin:0;padding-left:1.3333em;text-indent:-9999px;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{padding-right:1.3333em;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);}.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab.hidden{display:none;}
+.toolbar .menu,[dir="rtl"] .toolbar .menu{list-style:none;margin:0;padding:0;}.toolbar .toolbar-box{display:block;line-height:1em;position:relative;width:auto;}.toolbar .toolbar-tray-horizontal .menu .toolbar-handle,.toolbar .toolbar-tray-horizontal .menu ul,.toolbar .toolbar-tray-vertical .menu ul{display:none;}.toolbar .toolbar-tray-vertical li.open > ul{display:block;}.toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-right:3em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-left:3em;margin-right:0;}.toolbar .toolbar-tray .menu-item--active-trail > .toolbar-box a,.toolbar .toolbar-tray a.is-active{color:#000;font-weight:bold;}@media screen and (max-width:319px){.toolbar .toolbar-tray-vertical.is-active{width:100%;}}.toolbar .level-2 > ul{background-color:#fafafa;border-bottom-color:#cccccc;border-top-color:#e5e5e5;}.toolbar .level-3 > ul{background-color:#f5f5f5;border-bottom-color:#c5c5c5;border-top-color:#dddddd;}.toolbar .level-4 > ul{background-color:#eeeeee;border-bottom-color:#bbbbbb;border-top-color:#d5d5d5;}.toolbar .level-5 > ul{background-color:#e5e5e5;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-6 > ul{background-color:#eeeeee;border-bottom-color:#aaaaaa;border-top-color:#c5c5c5;}.toolbar .level-7 > ul{background-color:#fafafa;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-8 > ul{background-color:#dddddd;border-bottom-color:#cccccc;border-top-color:#dddddd;}.toolbar .toolbar-handle:hover{cursor:pointer;}.toolbar .toolbar-icon.toolbar-handle{bottom:0;display:block;height:100%;padding:0;position:absolute;right:0;top:0;z-index:1;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle{left:0;padding:0;right:auto;}
+.contextual{position:absolute;right:0;top:6px;z-index:500;}[dir="rtl"] .contextual{left:0;right:auto;}.contextual-region.focus{outline:1px dashed #d6d6d6;outline-offset:1px;}.contextual .trigger{background-attachment:scroll;background-color:#fff;border:1px solid #ccc;border-radius:13px;float:right;margin:0;overflow:hidden;padding:0 2px;position:relative;right:6px;cursor:pointer;}[dir="rtl"] .contextual .trigger{float:left;right:auto;left:6px;}.contextual.open .trigger{border:1px solid #ccc;border-bottom-color:transparent;border-radius:13px 13px 0 0;box-shadow:none;z-index:2;}.contextual-region .contextual .contextual-links{background-color:#fff;border:1px solid #ccc;border-radius:4px 0 4px 4px;clear:both;float:right;margin:0;padding:0.25em 0;position:relative;right:6px;text-align:left;top:-1px;white-space:nowrap;}[dir="rtl"] .contextual-region .contextual .contextual-links{border-radius:0 4px 4px 4px;float:left;left:6px;right:auto;text-align:right;}.contextual-region .contextual .contextual-links li{background-color:#fff;border:none;list-style:none;list-style-image:none;margin:0;padding:0;line-height:100%;}.contextual-region .contextual .contextual-links a{background-color:#fff;color:#333;display:block;font-family:sans-serif;font-size:small;line-height:0.8em;margin:0.25em 0;padding:0.4em 0.6em;}.touch .contextual-region .contextual .contextual-links a{font-size:large;}.contextual-region .contextual .contextual-links a,.contextual-region .contextual .contextual-links a:hover{text-decoration:none;}.no-touch .contextual-region .contextual .contextual-links li a:hover{color:white;background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);}
+.toolbar-bar .toolbar-icon-edit:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);}.toolbar-bar .toolbar-icon-edit:active:before,.toolbar-bar .toolbar-icon-edit.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/pencil.svg);}.contextual .trigger{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);background-position:center center;background-repeat:no-repeat;background-size:16px 16px;height:26px !important;width:26px !important;text-indent:-9999px;}.contextual .trigger:hover{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/pencil.svg);}.contextual .trigger:focus{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/pencil.svg);outline:none;}
+.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #aaaaaa;background:#ffffff url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222222;}.ui-widget-content a{color:#222222;}.ui-widget-header{border:1px solid #aaaaaa;background:#cccccc url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222222;font-weight:bold;}.ui-widget-header a{color:#222222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555555;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999999;background:#dadada url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaaaaa;background:#ffffff url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35);}.ui-icon{width:16px;height:16px;}.ui-icon,.ui-widget-content .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_888888_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_2e83ff_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_cd0a0a_256x240.png);}.ui-icon-blank{background-position:16px 16px;}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-on{background-position:-96px -144px;}.ui-icon-radio-off{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px;}.ui-widget-overlay{background:#aaaaaa url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaaaaa url(http://localhost/pub_html/contri/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px;}
+.ui-dialog{position:absolute;z-index:1260;overflow:visible;color:#000;background:#fff;border:solid 1px #ccc;padding:0;}@media all and (max-width:48em){.ui-dialog{width:92% !important;}}.ui-dialog .ui-dialog-titlebar{font-weight:bold;background:#f3f4ee;border-style:solid;border-radius:0;border-width:0 0 1px 0;border-color:#ccc;}.ui-dialog .ui-dialog-titlebar-close{border:0;background:none;}.ui-dialog .ui-dialog-buttonpane{margin-top:0;background:#f3f4ee;padding:.3em 1em;border-width:1px 0 0 0;border-color:#ccc;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{margin:0;padding:0;}.ui-dialog .ui-dialog-buttonpane .ui-button-text-only .ui-button-text{padding:0;}.ui-dialog .ui-dialog-content .form-actions{padding:0;margin:0;}.ui-dialog .ajax-progress-throbber{left:49%;position:fixed;top:48.5%;z-index:1000;background-color:#232323;background-image:url(http://localhost/pub_html/contri/drupal/core/misc/loading-small.gif);background-position:center center;background-repeat:no-repeat;border-radius:7px;height:24px;opacity:0.9;padding:4px;width:24px;}.ui-dialog .ajax-progress-throbber .throbber,.ui-dialog .ajax-progress-throbber .message{display:none;}
+.quickedit-field.quickedit-editable,.quickedit-field .quickedit-editable{box-shadow:0 0 0 2px #74b7ff;}.quickedit-field.quickedit-highlighted,.quickedit-form.quickedit-highlighted,.quickedit-field .quickedit-highlighted{box-shadow:0 0 0 1px #74b7ff,0 0 0 2px #007fff;}.quickedit-field.quickedit-changed,.quickedit-form.quickedit-changed,.quickedit-field .quickedit-changed{box-shadow:0 0 0 1px #fec17e,0 0 0 2px #f7870a;}.quickedit-editing.quickedit-validation-error,.quickedit-form.quickedit-validation-error{box-shadow:0 0 0px 1px #ee8b74,0 0 0 2px #fa2209;}.quickedit-editing.quickedit-editor-is-popup{box-shadow:none;}.quickedit-form .form-item .error{border:1px solid #eea0a0;}.quickedit-form form{padding:0.5em;}.quickedit-form .form-item{margin:0;}.quickedit-form .form-wrapper{margin:.5em;}.quickedit-animate-invisible{opacity:0;}.quickedit-animate-default{-webkit-transition:all .4s ease;transition:all .4s ease;}.quickedit-animate-slow{-webkit-transition:all .6s ease;transition:all .6s ease;}.quickedit-animate-delay-veryfast{-webkit-transition-delay:.05s;transition-delay:.05s;}.quickedit-animate-delay-fast{-webkit-transition-delay:.2s;transition-delay:.2s;}.quickedit-animate-disable-width{-webkit-transition:width 0s;transition:width 0s;}.quickedit-animate-only-visibility{-webkit-transition:opacity .2s ease;transition:opacity .2s ease;}.quickedit-validation-errors .messages.error{box-shadow:0 0 1px 1px red,0 0 3px 3px rgba(153,153,153,.5);background-color:white;}.quickedit-form{box-shadow:0 0 30px 4px #4f4f4f;background-color:white;}.quickedit-toolbar-container{font-family:'Source Sans Pro','Lucida Grande',sans-serif;padding-bottom:7px;padding-top:7px;-webkit-transition:all 1s;transition:all 1s;}.quickedit-toolbar-container > .quickedit-toolbar-content{background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(to bottom,#fff,#e4e4e4);box-sizing:border-box;color:black;padding:0.1667em;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2;}.quickedit-toolbar-container > .quickedit-toolbar-pointer{background-color:#e4e4e4;bottom:2px;box-shadow:0 0 0 1px #818181,0px 0px 0 4px rgba(150,150,150,0.5);display:block;height:16px;left:18px;position:absolute;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:16px;z-index:1;}[dir="rtl"] .quickedit-toolbar-container > .quickedit-toolbar-pointer{left:auto;right:18px;}.quickedit-toolbar-container.quickedit-toolbar-pointer-top > .quickedit-toolbar-pointer{bottom:auto;top:2px;}.quickedit-toolbar-container > .quickedit-toolbar-lining{bottom:7px;box-shadow:0 0 0 1px #818181,0px 3px 0px 1px rgba(150,150,150,0.5);display:block;left:0;position:absolute;right:0;top:7px;z-index:0;}.quickedit-toolbar-label{font-style:italic;overflow:hidden;padding:0.333em 0.4em;text-overflow:ellipsis;white-space:nowrap;}.quickedit-toolbar-label .field:after{content:' → ';}.quickedit-toolbar{font-family:'Droid sans','Lucida Grande',sans-serif;}.quickedit-toolbar-entity{padding:0.1667em 0.2em;}.quickedit-toolbar-fullwidth{width:100%;}.quickedit-toolgroup.wysiwyg-floated{float:right;}[dir="rtl"] .quickedit-toolgroup.wysiwyg-floated{float:left;}.quickedit-toolgroup.wysiwyg-main{clear:both;width:100%;padding-left:0;}[dir="rtl"] .quickedit-toolgroup.wysiwyg-main{padding-left:0;padding-right:0;}.quickedit-button{background-color:#e4e4e4;border:1px solid #d2d2d2;color:#5a5a5a;cursor:pointer;display:inline-block;margin:0;opacity:1;padding:0.345em;-webkit-transition:opacity .1s ease;transition:opacity .1s ease;}.quickedit-button[aria-hidden="true"]{visibility:hidden;opacity:0;}.quickedit-button + .quickedit-button{margin-left:0.2em;}[dir="rtl"] .quickedit-button + .quickedit-button{margin-left:auto;margin-right:0.25em;}.quickedit-button:hover,.quickedit-button:active{background-color:#c8c8c8;border:1px solid #a0a0a0;color:#2e2e2e;}.quickedit-toolbar-container .quickedit-button.action-cancel{background-color:transparent;border:1px solid transparent;}.quickedit-button.action-save{color:white;background-color:#50a0e9;background-image:-webkit-linear-gradient(top,#50a0e9,#4481dc);background-image:linear-gradient(to bottom,#50a0e9,#4481dc);border:1px solid transparent;}.quickedit-button.action-save:hover,.quickedit-button.action-save:active{border:1px solid #a0a0a0;}.quickedit-button.action-saving,.quickedit-button.action-saving:hover,.quickedit-button.action-saving:active{background-color:#e4e4e4;background-image:none;border-color:#d2d2d2;color:#5a5a5a;}
+.quickedit .icon{min-height:1em;min-width:2.5em;position:relative;}.quickedit .icon.icon-only{text-indent:-9999px;}.quickedit .icon.icon-end{padding-right:2.5em;}[dir="rtl"] .quickedit .icon.icon-end{padding-left:2.5em;padding-right:0;}.quickedit .icon:before{background-attachment:scroll;background-color:transparent;background-position:center center;background-repeat:no-repeat;content:'';display:block;height:100%;left:0;position:absolute;top:0;width:100%;}[dir="rtl"] .quickedit .icon:before{left:auto;right:0;}.quickedit .icon-end:before{left:auto;right:0.5em;width:18px;}[dir="rtl"] .quickedit .icon-end:before{left:0.5em;right:auto;}.quickedit button.icon{font-size:1em;}.quickedit .icon-pencil{margin-left:.5em;padding-left:1.5em;}.quickedit .icon-close:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/ex.svg);height:12px;top:10px;}.quickedit .icon-close:hover:before,.quickedit .icon-close:active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/ex.svg);}.quickedit .icon-throbber:before{background-image:url(http://localhost/pub_html/contri/drupal/core/modules/quickedit/images/icon-throbber.gif);}.quickedit .icon-pencil:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/pencil.svg);background-position:left center;background-size:1.3em;}
+.quickedit-toolbar-container > .quickedit-toolbar-content,.quickedit-toolbar-container > .quickedit-toolbar-lining{border-radius:4px;}.quickedit-button{border-radius:3px;}.quickedit-button.action-save,.quickedit-button.action-saving{border-color:#1e5c90;background-image:-webkit-linear-gradient(top,#007bc6,#0071b8);background-image:linear-gradient(to bottom,#007bc6,#0071b8);color:#fff;text-shadow:0 1px hsla(0,0%,0%,0.5);font-weight:700;-webkit-font-smoothing:antialiased;margin-top:2px;}.quickedit-button.action-save:hover,.quickedit-button.action-save:focus,.quickedit-button.action-saving:hover,.quickedit-button.action-saving:focus{background-color:#2369a6;background-image:-webkit-linear-gradient(top,#0c97ed,#1f86c7);background-image:linear-gradient(to bottom,#0c97ed,#1f86c7);border-color:#1e5c90;color:#fff;}.quickedit-button.action-save:hover,.quickedit-button.action-save:focus,.quickedit-button.action-saving:hover,.quickedit-button.action-saving:focus{box-shadow:0 1px 2px hsla(203,10%,10%,0.25);}.quickedit-button.action-save:active,.quickedit-button.action-saving:active{background-image:-webkit-linear-gradient(top,#08639b,#0071b8);background-image:linear-gradient(to bottom,#08639b,#0071b8);border-color:#144b78;box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.2);}.quickedit .icon-close:before{top:8px;}
+.toolbar{font-family:"Source Sans Pro","Lucida Grande",Verdana,sans-serif;font-size:0.8125rem;-moz-tap-highlight-color:rgba(0,0,0,0);-o-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0);-moz-touch-callout:none;-o-touch-callout:none;-webkit-touch-callout:none;touch-callout:none;}.toolbar .toolbar-item{cursor:pointer;padding:1em 1.3333em;line-height:1em;text-decoration:none;}.toolbar .toolbar-item:hover,.toolbar .toolbar-item:focus{text-decoration:underline;}.toolbar .toolbar-bar{background-color:#0f0f0f;box-shadow:-1px 0 3px 1px rgba(0,0,0,0.3333);color:#dddddd;}[dir="rtl"] .toolbar .toolbar-bar{box-shadow:1px 0 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-bar .toolbar-item{color:#ffffff;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item{font-weight:bold;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:hover,.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:focus{background-image:-webkit-linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);text-decoration:none;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);}.toolbar .toolbar-tray{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:5em;}[dir="rtl"] .toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:0;padding-left:5em;}.toolbar .toolbar-tray-vertical{background-color:#f5f5f5;border-right:1px solid #aaaaaa;box-shadow:-1px 0 5px 2px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-vertical{border-left:1px solid #aaaaaa;border-right:0 none;box-shadow:1px 0 5px 2px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal{border-bottom:1px solid #aaaaaa;box-shadow:-2px 1px 3px 1px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-horizontal{box-shadow:2px 1px 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal .toolbar-tray{background-color:#f5f5f5;}.toolbar-tray a{color:#565656;cursor:pointer;padding:1em 1.3333em;text-decoration:none;}.toolbar-tray a:hover,.toolbar-tray a:active,.toolbar-tray a:focus,.toolbar-tray a.is-active{color:#000;text-decoration:underline;}.toolbar .menu{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:0 none;border-right:1px solid #dddddd;}.toolbar .toolbar-tray-horizontal .menu-item:last-child{border-right:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item:last-child{border-left:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item + .menu-item{border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child{border-bottom:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item .menu-item{border:0 none;}.toolbar .toolbar-tray-vertical .menu ul ul{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child > ul{border-bottom:0;}.toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0.25em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0;margin-right:0.25em;}.toolbar .menu .menu a{color:#434343;}.toolbar .toolbar-toggle-orientation{background-color:#f5f5f5;padding:0.6667em;}.toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:1px solid #c9c9c9;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:0 none;border-right:1px solid #c9c9c9;}.toolbar .toolbar-toggle-orientation > .toolbar-lining{float:right;padding:0.1667em;}[dir="rtl"] .toolbar .toolbar-toggle-orientation > .toolbar-lining{float:left;}.toolbar .toolbar-toggle-orientation button{cursor:pointer;display:inline-block;}
+.toolbar .toolbar-icon{padding-left:2.75em;position:relative;}[dir="rtl"] .toolbar .toolbar-icon{padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-icon:before{background-attachment:scroll;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:100% auto;content:'';display:block;height:100%;left:0.6667em;position:absolute;top:0;width:20px;}[dir="rtl"] .toolbar .toolbar-icon:before{left:auto;right:0.6667em;}.toolbar button.toolbar-icon{background-color:transparent;border:0;font-size:1em;}.toolbar .menu ul .toolbar-icon{padding-left:1.3333em;}[dir="rtl"] .toolbar .menu ul .toolbar-icon{padding-left:0;padding-right:1.3333em;}.toolbar .menu ul a.toolbar-icon:before{display:none;}.toolbar .toolbar-tray-vertical .menu ul a{padding-left:2.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul a{padding-left:0;padding-right:2.75em;}.toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:3.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:0;padding-right:3.75em;}.toolbar .toolbar-tray-vertical .menu a{padding-left:2.75em;padding-right:4em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu a{padding-left:4em;padding-right:2.75em;}.toolbar-bar .toolbar-icon-menu:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/hamburger.svg);}.toolbar-bar .toolbar-icon-menu:active:before,.toolbar-bar .toolbar-icon-menu.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/hamburger.svg);}.toolbar-bar .toolbar-icon-help:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/questionmark-disc.svg);}.toolbar-bar .toolbar-icon-help:active:before,.toolbar-bar .toolbar-icon-help.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/questionmark-disc.svg);}.toolbar-icon-system-admin-content:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/file.svg);}.toolbar-icon-system-admin-content:active:before,.toolbar-icon-system-admin-content.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/file.svg);}.toolbar-icon-system-admin-structure:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/orgchart.svg);}.toolbar-icon-system-admin-structure:active:before,.toolbar-icon-system-admin-structure.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/orgchart.svg);}.toolbar-icon-system-themes-page:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/paintbrush.svg);}.toolbar-icon-system-themes-page:active:before,.toolbar-icon-system-themes-page.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/paintbrush.svg);}.toolbar-icon-entity-user-collection:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/people.svg);}.toolbar-icon-entity-user-collection:active:before,.toolbar-icon-entity-user-collection.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/people.svg);}.toolbar-icon-system-modules-list:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/puzzlepiece.svg);}.toolbar-icon-system-modules-list:active:before,.toolbar-icon-system-modules-list.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/puzzlepiece.svg);}.toolbar-icon-system-admin-config:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/wrench.svg);}.toolbar-icon-system-admin-config:active:before,.toolbar-icon-system-admin-config.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/wrench.svg);}.toolbar-icon-system-admin-reports:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/barchart.svg);}.toolbar-icon-system-admin-reports:active:before,.toolbar-icon-system-admin-reports.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/barchart.svg);}.toolbar-icon-help-main:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg);}.toolbar-icon-help-main:active:before,.toolbar-icon-help-main.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/questionmark-disc.svg);}.toolbar .toolbar-bar .toolbar-icon:before{min-height:3em;}@media only screen and (min-width:16.5em){.toolbar .toolbar-bar .toolbar-icon{margin-left:0;margin-right:0;padding-left:0;padding-right:0;text-indent:-9999px;width:4em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:42% auto;left:0;width:100%;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:auto;right:0;}}@media only screen and (min-width:36em){.toolbar .toolbar-bar .toolbar-icon{background-position:left center;padding-left:2.75em;padding-right:1.3333em;text-indent:0;width:auto;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon{background-position:right center;padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:100% auto;left:0.6667em;width:20px;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:0;right:0.6667em;}}.toolbar-tab a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tab a{border-left:none;border-right:2px solid transparent;}.toolbar-tab a:focus{outline:none;border-color:#ddd;}.toolbar-lining button:focus{outline:none;}.toolbar-tray-horizontal a,.toolbar-box a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tray-horizontal a,[dir="rtl"] .toolbar-box a{border-left:none;border-right:2px solid transparent;}.toolbar-tray-horizontal a:focus,.toolbar-box a:focus{outline:none;border-color:#4479C0;background-color:#f5f5f5;text-decoration:none;}.toolbar-box a:hover:focus{text-decoration:underline;}.toolbar .toolbar-icon.toolbar-handle:focus{outline:none;background-color:#f5f5f5;}.toolbar .toolbar-icon.toolbar-handle{width:4em;text-indent:-9999px;}.toolbar .toolbar-icon.toolbar-handle:before{left:1.6667em;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle:before{left:auto;right:1.6667em;}.toolbar .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/chevron-disc-down.svg);}.toolbar .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/chevron-disc-up.svg);}.toolbar .menu .menu .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/twistie-down.svg);background-size:75%;}.toolbar .menu .menu .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/twistie-up.svg);background-size:75%;}.toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-left.svg);}[dir="rtl"] .toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-right.svg);}.toolbar .toolbar-toggle-orientation button{height:16px;padding:0;text-indent:-999em;width:20px;}.toolbar .toolbar-toggle-orientation button:before{left:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation button:before{left:auto;right:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation .toolbar-icon{padding-right:0;}.toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-left.svg);}.toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,.toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-left.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-right.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-right.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-up.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:hover:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-up.svg);}
+.toolbar-bar .toolbar-icon-user:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/person.svg);}.toolbar-bar .toolbar-icon-user:active:before,.toolbar-bar .toolbar-icon-user.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/person.svg);}
+.toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:right;padding:1em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:left;}.toolbar .toolbar-tray-horizontal .edit-shortcuts{float:right;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .edit-shortcuts{float:left;}.add-or-remove-shortcuts{display:inline-block;margin-left:0.3em;}[dir="rtl"] .add-or-remove-shortcuts{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts .text{background:#000000;background:rgba(0,0,0,0.5);border-radius:5px;padding:0 5px;color:#ffffff;display:inline-block;margin-left:0.3em;opacity:0;-ms-transform:translateY(-12px);-webkit-transform:translateY(-12px);transform:translateY(-12px);-webkit-transition:all 200ms ease-out;transition:all 200ms ease-out;-ms-backface-visibility:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;}[dir="rtl"] .add-or-remove-shortcuts .text{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts a:hover .text,.add-or-remove-shortcuts a:focus .text{opacity:1;-ms-transform:translateY(-2px);-webkit-transform:translateY(-2px);transform:translateY(-2px);}
+.toolbar-bar .toolbar-icon-shortcut:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/star.svg);}.toolbar-bar .toolbar-icon-shortcut:active:before,.toolbar-bar .toolbar-icon-shortcut.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/star.svg);}.add-or-remove-shortcuts .icon{background:transparent url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar.svg) no-repeat left top;width:20px;height:20px;display:inline-block;vertical-align:-2px;}[dir="rtl"] .add-or-remove-shortcuts .icon{background-image:url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar-rtl.svg);}.add-shortcut a:hover .icon,.add-shortcut a:focus .icon{background-position:-20px top;}.remove-shortcut .icon{background-position:-40px top;}.remove-shortcut a:focus .icon,.remove-shortcut a:hover .icon{background-position:-60px top;}
diff --git a/sites/default/files/css/css_jYOI5kpLo5HgLotRPSbVQIv-QmvRFqS6R2TMbueJY-w.css.gz b/sites/default/files/css/css_jYOI5kpLo5HgLotRPSbVQIv-QmvRFqS6R2TMbueJY-w.css.gz
new file mode 100644
index 0000000..d818c5a
--- /dev/null
+++ b/sites/default/files/css/css_jYOI5kpLo5HgLotRPSbVQIv-QmvRFqS6R2TMbueJY-w.css.gz
@@ -0,0 +1,34 @@
+     =ێr3c%ncr%@ @Xh-KZ]2F&Ȓ,bXe{[Sf?4)sYخh?8E6rk|okQ8$/J|:P~PD(tF>(	pRndohRw]%cL[[3
+e{?J;:Oxv%?(Hz.6o6zk3oy:]՘^D *l4-N^B9.ʗsXU7usS>Nm}\tDjYZDe&ǈ
+`q2a,sb<NڌbN] ƓpUl*2
+hf8*r*b!apB発4#3\Sc-LޏbRY2pBiOB"bj}> BV0n}=g%><p*Fh*-Ə8=.'Re!n*T?٧~VY /23ֲ4ӯen=jYЫ_Xo4VjY^>Z8+{mYjL#8U^Y"H9	tWnh_qU]Bw<o!y'yA0KԄ,"kiUqNvg[7{Tq`}
+ډGv.ihRÁHRT?hD|^;FPV+iiD*TUugF9~lkӖG-k-c	?U,l&?
+CxgrjbBOkXc9ٳ]Q@:Z<|͑>2gпsИ+zQ5z|P:,FqtH8ǩT	|=(3nd;MjÚ$${H1vXgUM1l'<e"}+(nE>!:E˶ l8B~mqBȤ9uI˜.Ũh	IEVL.Ӕ iƋ;I+Gn.	f7[N<ypٽ&1	q1k_em}VS|OyGA^e)*{czGx<HN<LJAMG	$1;-?D3L<'oM~l]S<z㟢S%"w31:vLY5,-~hwNuVO~TLpy]<@	-P<:dw2 T\R(JH7
+csr3HH\Lcr=)5U=^j+.?*H[?$HpBh/3[Ho7^᷹L\4Kwq{c]He.s(FQ;4H,9liCޤh=_0!bYn^:Kz1|5΍|99	jV/G6rpp5:<̰zEziKH{EzH|>^)r^"\zUY[WԠ-@EJhĐ~`օ~2(kòa~6vdVRܿN:M1t^.S?vŴ7DLFPL@zI/-,4W݂fn=hVwJ覽9dCdj#Aʝ!yh
+9PMiDerX1]YyT/'IU)VwcՖ<ɝtS#/+N*(*>]9ԔꇕPKl'k̽δFjųkSD,Jco_f2j/3\6ob͹V*qOr>F*yX9(2/b?7m7g$4ɻ(&}n4-`%gݼe;ؖXmNtMSkP~/?֎P~cjqb p]}=;15l"˝'jCIۊf 8H (~R 	j5POi
+<& PG0 0a :X)PaƆ	0 h `6oeJA7Jv7 AG<g= h m$}	<FdiT@AAၐ	B:l YBC	zAæ:4l:UZFL6@;Z0x2n d2!c!Иaa4e!`I` BHw02d)*	~zHA |H1Xa!T .fWY`n1"LcMOeL,u`t?.$'*HĶe $-1$)	EǩBZ:(36:UT	)0~z2L8
+$yA#cK]ҙA8nb5W
+D@0V`ipBcM1E+ŏ	g8nưS(ty%8{*p
+C7ۯbT9<s}OӓɉS*
+(q L|<T6]X
+pF54U!C0w4L|Y\uhʳN4hHFZ a#
+>@ l,x/(قȾ(PEel)*TvHJ䗰(0l}61
+p
+Jgy( ,˼HGIƢ'1P
+h(JylD z4)b`6*bBTFqyb`QDn`@5%$rhH/h`h_FyqTfʉ2zecA	cKJMHpnT2	z0Ps=*K9 Th*GcsXBt @!v=\/d ˙ 0|n:&٬ПQx
+Z7<h?*pG!@ | 
+| ĥM#l2\4+Yn_]3vk)
+pzOς!XO$J'O\?YJAJo_7o6s1{<3τ oY.G>WNFn\'ky7o>EvaLJ95O9a/;vw?0g^%FM&Wa1I	׃|EJ˧!֪ɡk|;Kdjk[jeTx&pf &
+7*v؉m =uaXͽ_P_</15s3|]ݿK"7ɶԒQW<"l6i~b	IXCZN,<~Op,|F8`IXsk]UyAo)bY:=DᛓtTz%%!>t	n f5M&ޮsjF?.-EF8}c4R 4=i5߯oziv7[bDFRIr[&
+d+'ﮰLXZT]~}<"D٫{sFբ=BuZ1j!y Is;*dUvVH*	gB#ZS+}#9}X?`M$x$+G[~Ώ&yaa|Lu8
+.  <K
+v, JO3 䯡Urd=F	LQL)kz={̬ho1ڝ+.'IG_lRvٓ3j1sDڱO^cԩJS༓T?*?˿U>iQ"'ZT6gmPlTԪ8z	5"UUZb RYDߩjK`rJ跦*h RpjﺻEfbԆ|;!m:W.&]&ןP{gRsskykK{-clSvS";%3}VSΫYrt|gFF-k@p\>< 1Co2=:bDwϒmJ{&$wZ$h=E)6%k,S,b)yꉦ((+B1T76hTEa21bEuSQ
+z[]ѩ4SB"r2h lRDO/$9xhu8<KiA%:;`8n
+jtc%x$KBR%,%76)=]YQ4dc\M[+#dscWo6r-Fs_>|B2ynVvSCP'wA=iFtpB'׀U;)McW#5{<kE$e|n_"`oI2KNo'F6x>Zʨc&!j]<cM[(O?,WÆKg}nLmy)4y72]0$G!cZok/@xc~TV5Z԰XqVT93wR By%˦XlĖyGⰜ$3HǊy:Z4Hrz+h0>}*X{T1.uN}|vݤ7&ҩi\$eG|zaA_|v
+ʹp:w{/sad8dw"VJ:fhI;cdGBqSJ
+#&#"2#aoA6D62=7`Z^*B:=<9A5ȫsfh4[5Nyq7FNlҀTخj-ODtyYL6upGecgNѭML׮u(kD$^w;;S+EZpiU¦ڻuG[S蒖2ePOt3B}ʟz~!{ڨ-vVj8|OĜ^6|Lfj:TeDn:6q?`䬼QD#<{\,&?gJ,P3=.@7Vi}展*?fl#P=Q0ȣ/@zП=9p?8ϙs"ѿ#!눘E5Jd9Q\D G	9,1G(:\ޯaQ KztxGZ߭;嶈Iǜ9dGƾŬSF4yäk*it_oc͕mcTнSQ^ M&: %6sR>
+b{ֲ|{/;spAکKuﯺ.1xT 6.o>a遾KF͘j`M.՚ouAhԕ&|{rZ4өbo|H|29{֟a.ޟa7Km-a\S9u%5)LƬ;κG	| 
+u#Eis١-2_ъo4U7L"
+b_Gz>D4dRD<N*?|dOF=i9&'.n$IJKW_v~)HjUQb`ƜPyU~ӥ4?G3uL[[vF![3D}^ǱČ`T}:
+ߖoIE1[)[qL@V=;!mĦ'ߔ1"'g߉0:ܒ</hJ.Ha6Ag-ٹ9GuT519* އ`;hpǶߒ⺖Ma9pɒqR~q"rG4%ݗywQ	8xBXdfL:'~DMr,#/ٻcufۮ%Uyl't`:Φԙo3@8_ [ļX4Obm~%WHJ]e3q>_mED<ZN+vSW&GKb%ypiDynQt6v3<+ߒ 4fc3v>%NXCؔpC]hW-'2&;漭	:@vw](<lGԊ[!т+rz6G
+Eanx1F[^>¿|j>vKIgUqZZ]Ib#HG |]jJ/%QXɣ7e;jx1z~ٻIvWh8:$>'|3f'uח<JTDbvODͥB@z`ߋ	͏u1Vu`T5Bw~]w'Ȗ<ط5;Mz~m/qN<!MƲ;)r(D>I*"QB{4 G4Of1i !Gi;ꆒκx-¨GDϺB~bfS&4DuZ]<~@|ͮm[Zi2dZtLgΌ6e	Ti57CuhKr7?-E  
\ No newline at end of file
diff --git a/sites/default/files/css/css_ndU6_tyAXNw8Vor6KWU5pnJceIs1UWoQVAeHsrY-zEE.css b/sites/default/files/css/css_ndU6_tyAXNw8Vor6KWU5pnJceIs1UWoQVAeHsrY-zEE.css
new file mode 100644
index 0000000..c121bb2
--- /dev/null
+++ b/sites/default/files/css/css_ndU6_tyAXNw8Vor6KWU5pnJceIs1UWoQVAeHsrY-zEE.css
@@ -0,0 +1,3 @@
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}body{margin:0;}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block;}audio,canvas,progress,video{display:inline-block;vertical-align:baseline;}audio:not([controls]){display:none;height:0;}[hidden],template{display:none;}a{background-color:transparent;}a:active,a:hover{outline:0;}abbr[title]{border-bottom:1px dotted;}b,strong{font-weight:bold;}dfn{font-style:italic;}h1{font-size:2em;margin:0.67em 0;}mark{background:#ff0;color:#000;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sup{top:-0.5em;}sub{bottom:-0.25em;}img{border:0;}svg:not(:root){overflow:hidden;}figure{margin:1em 40px;}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}pre{overflow:auto;}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}button{overflow:visible;}button,select{text-transform:none;}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}button[disabled],html input[disabled]{cursor:default;}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}input{line-height:normal;}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto;}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;}legend{border:0;padding:0;}textarea{overflow:auto;}optgroup{font-weight:bold;}table{border-collapse:collapse;border-spacing:0;}td,th{padding:0;}
+.js input.form-autocomplete{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/throbber-inactive.png);background-position:100% center;background-repeat:no-repeat;}.js[dir="rtl"] input.form-autocomplete{background-position:0% center;}.js input.form-autocomplete.ui-autocomplete-loading{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/throbber-active.gif);background-position:100% center;}.js[dir="rtl"] input.form-autocomplete.ui-autocomplete-loading{background-position:0% center;}.fieldgroup{border-width:0;padding:0;}.js details:not([open]) .details-wrapper{display:none;}.form-textarea-wrapper textarea{display:block;margin:0;width:100%;box-sizing:border-box;}.resize-none{resize:none;}.resize-vertical{resize:vertical;min-height:2em;}.resize-horizontal{resize:horizontal;max-width:100%;}.resize-both{resize:both;max-width:100%;min-height:2em;}body.drag{cursor:move;}tr.region-title{font-weight:bold;}tr.region-message{color:#999;}tr.region-populated{display:none;}tr.add-new .tabledrag-changed{display:none;}.draggable a.tabledrag-handle{cursor:move;float:left;height:1.7em;margin-left:-1em;overflow:hidden;text-decoration:none;}[dir="rtl"] .draggable a.tabledrag-handle{float:right;margin-right:-1em;margin-left:0;}a.tabledrag-handle:hover{text-decoration:none;}a.tabledrag-handle .handle{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/move.svg) no-repeat 6px 7px;height:14px;margin:-0.4em 0.5em 0;padding:0.42em 0.5em;width:14px;}a.tabledrag-handle:hover .handle,a.tabledrag-handle:focus .handle{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/move.svg);}.touch .draggable td{padding:0 10px;}.touch .draggable .menu-item__link{display:inline-block;padding:10px 0;}.touch a.tabledrag-handle{height:44px;width:40px;}.touch a.tabledrag-handle .handle{background-position:40% 19px;height:21px;}.touch .draggable.drag a.tabledrag-handle .handle{background-position:50% -32px;}.indentation{float:left;height:1.7em;margin:-0.4em 0.2em -0.4em -0.4em;padding:0.42em 0 0.42em 0.6em;width:20px;}[dir="rtl"] .indentation{float:right;margin:-0.4em -0.4em -0.4em 0.2em;padding:0.42em 0.6em 0.42em 0;}div.tree-child{background:url(http://localhost/pub_html/contri/drupal/core/misc/tree.png) no-repeat 11px center;}div.tree-child-last{background:url(http://localhost/pub_html/contri/drupal/core/misc/tree-bottom.png) no-repeat 11px center;}[dir="rtl"] div.tree-child,[dir="rtl"] div.tree-child-last{background-position:-65px center;}div.tree-child-horizontal{background:url(http://localhost/pub_html/contri/drupal/core/misc/tree.png) no-repeat -11px center;}.tabledrag-toggle-weight-wrapper{text-align:right;}[dir="rtl"] .tabledrag-toggle-weight-wrapper{text-align:left;}table.sticky-header{background-color:#fff;margin-top:0;z-index:500;top:0;}.progress{position:relative;}.progress__track{background-color:#fff;border:1px solid;margin-top:5px;max-width:100%;min-width:100px;height:16px;}.progress__bar{background-color:#000;height:1.5em;min-width:3%;max-width:100%;}.progress__description,.progress__percentage{color:#555;overflow:hidden;font-size:.875em;margin-top:0.2em;}.progress__description{float:left;}[dir="rtl"] .progress__description{float:right;}.progress__percentage{float:right;}[dir="rtl"] .progress__percentage{float:left;}.progress--small .progress__track{height:7px;}.progress--small .progress__bar{height:7px;background-size:20px 20px;}.ajax-progress{display:inline-block;padding:1px 5px 2px 5px;}[dir="rtl"] .ajax-progress{float:right;}.ajax-progress-throbber .throbber{background:transparent url(http://localhost/pub_html/contri/drupal/core/misc/throbber-active.gif) no-repeat 0px center;display:inline;padding:1px 5px 2px;}.ajax-progress-throbber .message{display:inline;padding:1px 5px 2px;}tr .ajax-progress-throbber .throbber{margin:0 2px;}.ajax-progress-bar{width:16em;}.ajax-progress-fullscreen{left:49%;position:fixed;top:48.5%;z-index:1000;background-color:#232323;background-image:url(http://localhost/pub_html/contri/drupal/core/misc/loading-small.gif);background-position:center center;background-repeat:no-repeat;border-radius:7px;height:24px;opacity:0.9;padding:4px;width:24px;}.container-inline div,.container-inline label{display:inline;}.container-inline .details-wrapper{display:block;}.form--inline .form-item{float:left;margin-right:0.5em;}[dir="rtl"] .form--inline .form-item{float:right;margin-right:0;margin-left:0.5em;}.form--inline .form-item-separator{margin-top:2.3em;margin-right:1em;margin-left:0.5em;}[dir="rtl"] .form--inline .form-item-separator{margin-right:0.5em;margin-left:1em;}.form--inline .form-actions{clear:left;}[dir="rtl"] .form--inline .form-actions{clear:right;}.nowrap{white-space:nowrap;}.js .js-hide{display:none;}.js-show{display:none;}.js .js-show{display:block;}.hidden{display:none;}.visually-hidden{position:absolute !important;clip:rect(1px,1px,1px,1px);overflow:hidden;height:1px;width:1px;word-wrap:normal;}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{position:static !important;clip:auto;overflow:visible;height:auto;width:auto;}.invisible{visibility:hidden;}.clearfix:after{content:"";display:table;clear:both;}.text-align-left{text-align:left;}.text-align-right{text-align:right;}.text-align-center{text-align:center;}.text-align-justify{text-align:justify;}.align-left{float:left;}.align-right{float:right;}.align-center{display:block;margin-left:auto;margin-right:auto;}.reset-appearance{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0 none;background:transparent;padding:0;margin:0;line-height:inherit;}.position-container{position:relative;}
+.node--unpublished{background-color:#fff4f4;}th.is-active img{display:inline;}td.is-active{background-color:#ddd;}.item-list .title{font-weight:bold;}.item-list ul{margin:0 0 0.75em 0;padding:0;}.item-list ul li{margin:0 0 0.25em 1.5em;padding:0;}[dir="rtl"] .item-list ul li{margin:0 1.5em 0.25em 0;}.form-item,.form-actions{margin-top:1em;margin-bottom:1em;}tr.odd .form-item,tr.even .form-item{margin-top:0;margin-bottom:0;}.form-composite > .fieldset-wrapper > .description,.form-item .description{font-size:0.85em;}label.option{display:inline;font-weight:normal;}.form-composite > legend,.label{display:inline;font-size:inherit;font-weight:bold;margin:0;padding:0;}.form-checkboxes .form-item,.form-radios .form-item{margin-top:0.4em;margin-bottom:0.4em;}.form-type-radio .description,.form-type-checkbox .description{margin-left:2.4em;}.marker{color:#e00;}.form-required:after{content:'';vertical-align:super;display:inline-block;background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ee0000/required.svg);background-repeat:no-repeat;background-size:6px 6px;width:6px;height:6px;margin:0 0.3em;}abbr.tabledrag-changed,abbr.ajax-changed{border-bottom:none;}.form-item input.error,.form-item textarea.error,.form-item select.error{border:2px solid red;}.button,.image-button{margin-left:1em;margin-right:1em;}.button:first-child,.image-button:first-child{margin-left:0;margin-right:0;}.container-inline label:after,.container-inline .label:after{content:':';}.form-type-radios .container-inline label:after{content:'';}.form-type-radios .container-inline .form-type-radio{margin:0 1em;}.container-inline .form-actions,.container-inline.form-actions{margin-top:0;margin-bottom:0;}.more-link{display:block;text-align:right;}[dir="rtl"] .more-link{text-align:left;}.icon-help{background:url(http://localhost/pub_html/contri/drupal/core/misc/help.png) 0 50% no-repeat;padding:1px 0 1px 20px;}[dir="rtl"] .icon-help{background-position:100% 50%;padding:1px 20px 1px 0;}.pager__items{clear:both;text-align:center;}.pager__item{display:inline;padding:0.5em;}.pager__item.is-active{font-weight:bold;}button.link{background:transparent;border:0;cursor:pointer;margin:0;padding:0;font-size:1em;}label button.link{font-weight:bold;}details{border:1px solid #ccc;margin-top:1em;margin-bottom:1em;}details > .details-wrapper{padding:0.5em 1.5em;}summary{cursor:pointer;padding:0.2em 0.5em;}.collapse-processed > summary{padding-left:0.5em;padding-right:0.5em;}.collapse-processed > summary:before{background:url(http://localhost/pub_html/contri/drupal/core/misc/menu-expanded.png) 0px 100% no-repeat;content:"";float:left;height:1em;width:1em;}[dir="rtl"] .collapse-processed > summary:before{background-position:100% 100%;float:right;}.collapse-processed:not([open]) > summary:before{background-position:25% 35%;-ms-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);transform:rotate(-90deg);}[dir="rtl"] .collapse-processed:not([open]) > summary:before{background-position:75% 35%;-ms-transform:rotate(90deg);-webkit-transform:rotate(90deg);transform:rotate(90deg);}tr.drag{background-color:#fffff0;}tr.drag-previous{background-color:#ffd;}body div.tabledrag-changed-warning{margin-bottom:0.5em;}tr.selected td{background:#ffc;}td.checkbox,th.checkbox{text-align:center;}.progress__track{border-color:#b3b3b3;border-radius:10em;background-color:#f2f1eb;background-image:-webkit-linear-gradient(#e7e7df,#f0f0f0);background-image:linear-gradient(#e7e7df,#f0f0f0);box-shadow:inset 0 1px 3px hsla(0,0%,0%,0.16);}.progress__bar{border:1px #07629a solid;background:#057ec9;background-image:-webkit-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15)),-webkit-linear-gradient(left top,#0094f0 0%,#0094f0 25%,#007ecc 25%,#007ecc 50%,#0094f0 50%,#0094f0 75%,#0094f0 100%);background-image:-webkit-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15)),-webkit-linear-gradient(left top,#0094f0 0%,#0094f0 25%,#007ecc 25%,#007ecc 50%,#0094f0 50%,#0094f0 75%,#0094f0 100%);background-image:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,0.15)),linear-gradient(to right bottom,#0094f0 0%,#0094f0 25%,#007ecc 25%,#007ecc 50%,#0094f0 50%,#0094f0 75%,#0094f0 100%);background-size:40px 40px;margin-top:-1px;margin-left:-1px;padding:0 1px;width:3%;height:16px;border-radius:10em;-webkit-animation:animate-stripes 3s linear infinite;-moz-animation:animate-stripes 3s linear infinite;-webkit-transition:width 0.5s ease-out;transition:width 0.5s ease-out;}@-webkit-keyframes animate-stripes{0%{background-position:0 0,0 0;}100%{background-position:0 0,-80px 0;}}@-ms-keyframes animate-stripes{0%{background-position:0 0,0 0;}100%{background-position:0 0,-80px 0;}}@keyframes animate-stripes{0%{background-position:0 0,0 0;}100%{background-position:0 0,-80px 0;}}ul.menu{list-style:none outside;margin-left:1em;padding:0;text-align:left;}[dir="rtl"] ul.menu{margin-left:0;margin-right:1em;text-align:right;}.menu-item--expanded{list-style-image:url(http://localhost/pub_html/contri/drupal/core/misc/menu-expanded.png);list-style-type:circle;}.menu-item--collapsed{list-style-image:url(http://localhost/pub_html/contri/drupal/core/misc/menu-collapsed.png);list-style-type:disc;}[dir="rtl"] .menu-item--collapsed{list-style-image:url(http://localhost/pub_html/contri/drupal/core/misc/menu-collapsed-rtl.png);}.menu-item{padding-top:0.2em;margin:0;}ul.menu a.is-active{color:#000;}ul.inline,ul.links.inline{display:inline;padding-left:0;}ul.inline li{display:inline;list-style-type:none;padding:0 0.5em;}ul.links a.is-active{color:#000;}.breadcrumb{padding-bottom:0.5em;}.breadcrumb ol{margin:0;padding:0;}[dir="rtl"] .breadcrumb ol{margin-right:0;}.breadcrumb li{display:inline;list-style-type:none;margin:0;padding:0;}.breadcrumb li:before{content:' \BB ';}.breadcrumb li:first-child:before{content:none;}div.tabs{margin:1em 0;}ul.tabs{list-style:none;margin:0 0 0.5em;padding:0;}.tabs > li{display:inline-block;margin-right:0.3em;}[dir="rtl"] .tabs > li{margin-left:0.3em;margin-right:0;}.tabs a{display:block;padding:0.2em 1em;text-decoration:none;}.tabs a.is-active{background-color:#eee;}.tabs a:focus,.tabs a:hover{background-color:#f5f5f5;}.action-links{list-style:none;padding:0;margin:1em 0;}[dir="rtl"] .action-links{margin-right:0;}.action-links li{display:inline-block;margin:0 0.3em;}.action-links li:first-child{margin-left:0;}[dir="rtl"] .action-links li:first-child{margin-left:0.3em;margin-right:0;}.button-action{display:inline-block;line-height:160%;padding:0.2em 0.5em 0.3em;text-decoration:none;}.button-action:before{content:'+';font-weight:900;margin-left:-0.1em;padding-right:0.2em;}[dir="rtl"] .button-action:before{margin-left:0;margin-right:-0.1em;padding-left:0.2em;padding-right:0;}.messages{background:no-repeat 10px 17px;border:1px solid;border-width:1px 1px 1px 0;border-radius:2px;padding:15px 20px 15px 35px;word-wrap:break-word;overflow-wrap:break-word;}[dir="rtl"] .messages{border-width:1px 0 1px 1px;background-position:right 10px top 17px;padding-left:20px;padding-right:35px;text-align:right;}.messages + .messages{margin-top:1.538em;}.messages__list{list-style:none;padding:0;margin:0;}.messages__item + .messages__item{margin-top:0.769em;}.messages--status{color:#325e1c;background-color:#f3faef;border-color:#c9e1bd #c9e1bd #c9e1bd transparent;background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/73b355/check.svg);box-shadow:-8px 0 0 #77b259;}[dir="rtl"] .messages--status{border-color:#c9e1bd transparent #c9e1bd #c9e1bd;box-shadow:8px 0 0 #77b259;margin-left:0;}.messages--warning{background-color:#fdf8ed;background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/e29700/warning.svg);border-color:#f4daa6 #f4daa6 #f4daa6 transparent;color:#734c00;box-shadow:-8px 0 0 #e09600;}[dir="rtl"] .messages--warning{border-color:#f4daa6 transparent #f4daa6 #f4daa6;box-shadow:8px 0 0 #e09600;}.messages--error{background-color:#fcf4f2;color:#a51b00;background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ea2800/error.svg);border-color:#f9c9bf #f9c9bf #f9c9bf transparent;box-shadow:-8px 0 0 #e62600;}[dir="rtl"] .messages--error{border-color:#f9c9bf transparent #f9c9bf #f9c9bf;box-shadow:8px 0 0 #e62600;}.messages--error p.error{color:#a51b00;}.field .field-label{font-weight:bold;}.field-label-inline .field-label,.field-label-inline .field-items{float:left;margin-right:0.5em;}[dir="rtl"] .field-label-inline .field-label,[dir="rtl"] .field-label-inline .field-items{float:right;margin-left:0.5em;margin-right:0;}.field-label-inline .field-label::after{content:':';}form .field-multiple-table{margin:0;}form .field-multiple-table .field-multiple-drag{width:30px;padding-right:0;}[dir="rtl"] form .field-multiple-table .field-multiple-drag{padding-left:0;}form .field-multiple-table .field-multiple-drag .tabledrag-handle{padding-right:.5em;}[dir="rtl"] form .field-multiple-table .field-multiple-drag .tabledrag-handle{padding-left:.5em;}form .field-add-more-submit{margin:.5em 0 0;}
diff --git a/sites/default/files/css/css_ndU6_tyAXNw8Vor6KWU5pnJceIs1UWoQVAeHsrY-zEE.css.gz b/sites/default/files/css/css_ndU6_tyAXNw8Vor6KWU5pnJceIs1UWoQVAeHsrY-zEE.css.gz
new file mode 100644
index 0000000..95b4760
--- /dev/null
+++ b/sites/default/files/css/css_ndU6_tyAXNw8Vor6KWU5pnJceIs1UWoQVAeHsrY-zEE.css.gz
@@ -0,0 +1,16 @@
+     r8}+qISENmodR)%)GTEe{Î:Ed!E4f.85AKڠa?h@ҿgQt/2}>H}`E^Hݲ$>iXJ卟CB>v5li)IP]+-: ~C>N9eMx=@RV	)HWuyi CYbEHxOr(/_N]ͷFQ#eczdiJo~KOR{9Ir) )\- %t.-ks/kL/۶<ųKᑦ@q8Gپ̡+
+ڴ9Y[Mv/ǙlӋS7dh7,	쯢4'*wxMtѼY]85axqMZsڲ(\Y漍4H-nH,/cqFl=geT=Asp* uoVb<y8 lM4LPrX9UʢHv=f};-|VT]U+Dhb8VAj[~P,cϩ!=s̙Ir]q\'o6vvbxVT% %XdtuJĭ̯ HLuYJiFU☟dV&] m'{HسɲЂG)9X`}ʪ-O#(rRѝMŊd1gD0}x7.ɂ>Qq"@	⑻6=9%IYT(-	Tʳ)szWI-*޼2)\Pp-R'h%"3+zT
+FǳFFb Ȥ[Dȁ]9mނ$l۪GݦuW|5m{=pVaUnvZ%_S8&{Ak6-;0z/6vz >($N7n-;y]0GGOhnNYsㅲ1xQ+#TLymL ݊%$9gR(A	v	ǲf?)}XI\p|C_7LkrP"ZÂ8n.#NJ;~nު:)I8͠^5"$GRFc9c0M7qX 9ZM~wzM,l~	F
+LKٍxJi ?HO+9ofSiOqg).U0:˹jV&v;pgǱݟR{b4Y[v<67xP] zܮ{wU0>8xIzD[j]nmϜO]{k9_ Gc.a8'E|ܴ4԰ds؂\?C֔fbykqzs 4@qE&MmD!={KX;3-JkzE.XfwLl/8re2&v?d'h'Z^B	:}&0a	t5KЯ_sIAkS]bF_nq=\R$5I5hjdCx𬜠LmeIhZC&AT%i7Y8FcsI3CBo8fBlJY}
+=@䓩q^7um}"mN+#mwg]RZ^ʌ=є]֚f:?d't:'[^pP5lhA(zoy	W
+CC[s|'#Og4ߊdؒk8Ȏ=ĒS#mؐ+y赩XuӼ1s梳)T	/4$vW(TxX#`3TcH0_ eXX>Q:|a3XӁ@<[كZnIU`hBe}5'Μ:<hUѹ0?7}'#|yp7Ae?^9oGXL2g?}:{];q<8[=5sg/h;('&PmXDb`<MЮ,NFK$ayY+Oy|8|WcO9y4(j<H
+Nuy4MΚ#M2[=
+Pi?NȎ Vz"fzG2YKs3{<٘cǹSg"	#ֈᾭ nhqUEa>48Vb/cϑzx`h1_m(4a)jr#dDh$Cl"jF'Kkyc@HަrK{pz6(uik4hϟ%F>4IG)O)Dc8s0vp;>>0F*?m_e0kEIuYQ.75Hr2aijuds3We;CgA..mrebԒL*Q;V&XH+9~GAi ˙W?,UD,0ˎt~6ALBXZf2]߿#+w{j.;aj<r2O8..>P/c=B]$ٽn|a?Ӣ$^]f}BT1Ц)Q+)fȧ*(}@]SEgdbi#Fp%(|}3?^Ϫ[i[F}ɩ.!_mR0rԀɎ~7~)tµ3~j>UTEQchGRxia虭,70G.&<P>zv<Ohdf <SFI /WtC7i_e~n3_"$K뱀c/]f\A5UYϷD)LFMohP>9lXolusOEWQ]f^GA|dye17ƨ{BT^݀c&WjƟo{f8b^ڪ9Tg[
+'4`*'HC
+cd*]3L]*T0{Qڼ+/R&' 6 ~<8XtΓ#;y eP~9.@Θ71(Q^ Giղ2\͑WR#T`>vvr	mCFdeP
+ @ t]GǇ'/>gz"&c4ٌ^I_G-הIݝzd>W:t7rF7Y(gV<fLSD2HzCqu'vVx 30kܕAm1
+evnTa`QME9bf~("M\tx+`_xdLQAܾ`0ڼ
+pօ|4.OJdNʍYomLd$.79:\0z%cX\fx`6㊔u|&3X"e{x/.f+§*]DGCkb)|7)wF":}	
+W;QWxi_Ț3$ւXx^|Eg+*^dp13oj'd);~w';b^l˄55PS0 qP4hvE"lɑ2M.
+hI
+M@[$pX2֗u1Iljf} pwl7.jlrZ`䔐{,ԓ'@|e|/	mk\ {`uЏ܆W`Ǯj_ըSBӃF<o+s'c;4`;}9 Fo|, /xuPY]os	A  
\ No newline at end of file
diff --git a/sites/default/files/css/css_o-ye313akLChovOyStMAfzNikwHAc6g7Yt-duzkDEPc.css b/sites/default/files/css/css_o-ye313akLChovOyStMAfzNikwHAc6g7Yt-duzkDEPc.css
new file mode 100644
index 0000000..ff746b2
--- /dev/null
+++ b/sites/default/files/css/css_o-ye313akLChovOyStMAfzNikwHAc6g7Yt-duzkDEPc.css
@@ -0,0 +1,8 @@
+.contextual-region{position:relative;}.contextual .trigger:focus{position:relative !important;}.contextual-links{display:none;}.contextual.open .contextual-links{display:block;}
+.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;}.ui-helper-clearfix:after{clear:both;}.ui-helper-clearfix{min-height:0;}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-front{z-index:100;}.ui-state-disabled{cursor:default !important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%;}
+.ui-tabs{position:relative;padding:.2em;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text;}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible;}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:normal;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.dropbutton-wrapper,.dropbutton-wrapper div{box-sizing:border-box;}.js .dropbutton-wrapper,.js .dropbutton-widget{display:block;position:relative;}@media screen and (max-width:600px){.js .dropbutton-wrapper{width:100%;}}@media screen and (min-width:600px){.form-actions .dropbutton-wrapper{float:left;}[dir="rtl"] .form-actions .dropbutton-wrapper{float:right;}}.js .form-actions .dropbutton-widget{position:static;}.js td .dropbutton-widget{position:absolute;}.js td .dropbutton-wrapper{min-height:2em;}.js td .dropbutton-multiple{padding-right:10em;margin-right:2em;max-width:100%;}[dir="rtl"].js td .dropbutton-multiple{padding-right:0;margin-right:0;padding-left:10em;margin-left:2em;}.js td .dropbutton-multiple .dropbutton-action a,.js td .dropbutton-multiple .dropbutton-action input,.js td .dropbutton-multiple .dropbutton-action button{width:auto;}.js .dropbutton-widget .dropbutton{list-style-image:none;list-style-type:none;margin:0;overflow:hidden;padding:0;}.js .dropbutton li,.js .dropbutton a{display:block;outline:none;}.js .dropbutton li:hover,.js .dropbutton li:focus,.js .dropbutton a:hover,.js .dropbutton a:focus{outline:initial;}.js .dropbutton-multiple .dropbutton-widget{padding-right:2em;}.js[dir="rtl"] .dropbutton-multiple .dropbutton-widget{padding-left:2em;padding-right:0;}.dropbutton-multiple.open,.dropbutton-multiple.open .dropbutton-widget{max-width:none;}.dropbutton-multiple.open{z-index:100;}.dropbutton-multiple .dropbutton .secondary-action{display:none;}.dropbutton-multiple.open .dropbutton .secondary-action{display:block;}.dropbutton-toggle{bottom:0;display:block;position:absolute;right:0;text-indent:110%;top:0;white-space:nowrap;width:2em;}[dir="rtl"] .dropbutton-toggle{left:0;right:auto;}.dropbutton-toggle button{background:none;border:0;cursor:pointer;display:block;height:100%;margin:0;padding:0;width:100%;}.dropbutton-toggle button:hover,.dropbutton-toggle button:focus{outline:initial;}.dropbutton-arrow{border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent;border-style:solid;border-width:0.3333em 0.3333em 0;display:block;height:0;line-height:0;position:absolute;right:40%;top:50%;margin-top:-0.1666em;width:0;overflow:hidden;}[dir="rtl"] .dropbutton-arrow{left:0.6667em;right:auto;}.dropbutton-multiple.open .dropbutton-arrow{border-bottom:0.3333em solid;border-top-color:transparent;top:0.6667em;}
+.views-admin ul,.views-admin menu,.views-admin dir{padding-left:0;-moz-padding-start:0;-webkit-padding-start:0;padding-start:0;}.views-admin pre{margin-bottom:0;margin-top:0;white-space:pre-wrap;}.views-left-25{float:left;width:25%;}[dir="rtl"] .views-left-25{float:right;}.views-left-30{float:left;width:30%;}[dir="rtl"] .views-left-30{float:right;}.views-left-40{float:left;width:40%;}[dir="rtl"] .views-left-40{float:right;}.views-left-50{float:left;width:50%;}[dir="rtl"] .views-left-50{float:right;}.views-left-75{float:left;width:75%;}[dir="rtl"] .views-left-75{float:right;}.views-right-50{float:right;width:50%;}[dir="rtl"] .views-right-50{float:left;}.views-right-60{float:right;width:60%;}[dir="rtl"] .views-right-60{float:left;}.views-right-70{float:right;width:70%;}[dir="rtl"] .views-right-70{float:left;}.views-group-box .form-item{margin-left:3px;margin-right:3px;}.views-displays{clear:both;}.views-displays .secondary{border-bottom:0 none;margin:0;overflow:visible;padding:0;}.views-displays .secondary > li{border-right:0 none;display:inline-block;float:left;padding:0;}[dir="rtl"] .views-displays .secondary > li{float:right;border-left:0 none;border-right:1px solid #bfbfbf;}.views-displays .secondary .open > a{position:relative;z-index:51;}.views-displays .secondary .views-display-deleted-link{text-decoration:line-through;}.views-display-deleted > details > summary,.views-display-deleted .details-wrapper > .views-ui-display-tab-bucket > *,.views-display-deleted .views-display-columns{opacity:0.25;}.views-display-disabled > details > summary,.views-display-disabled .details-wrapper > .views-ui-display-tab-bucket > *,.views-display-disabled .views-display-columns{opacity:0.5;}.views-display-tab .details-wrapper > .views-ui-display-tab-bucket .actions{opacity:1.0;}.js .views-ui-display-tab-bucket:first-of-type{border-top:none;}.views-displays .secondary li.add{position:relative;}.views-displays .secondary .action-list{left:0;margin:0;position:absolute;top:23px;z-index:50;}[dir="rtl"] .views-displays .secondary .action-list{left:auto;right:0;}.views-displays .secondary .action-list  li{display:block;}.views-display-columns .details-wrapper{padding:0;}.views-display-column{box-sizing:border-box;}.js .views-display-column details.collapsed{height:auto;}.views-display-columns > *{margin-bottom:2em;}@media screen and (min-width:45em){.views-display-columns > *{float:left;margin-left:2%;margin-bottom:0;width:32%;}[dir="rtl"] .views-display-columns > *{float:right;margin-left:0;margin-right:2%;}.views-display-columns > *:first-child{margin-left:0;}[dir="rtl"] .views-display-columns > *:first-child{margin-right:0;}}.views-ui-dialog #views-ajax-popup{padding:0;overflow:hidden;}.views-ui-dialog #views-ajax-body{margin:0;padding:0;}.views-ui-dialog #views-ajax-popup{overflow:hidden;}.views-ui-dialog .scroll{overflow:auto;padding:1em;}#views-filterable-options-controls{display:none;}.views-ui-dialog #views-filterable-options-controls{display:inline;}.views-ui-dialog .views-messages{max-height:200px;overflow:auto;}.views-display-setting .label,.views-display-setting .views-ajax-link{display:inline-block;float:left;}[dir="rtl"] .views-display-setting .label,[dir="rtl"] .views-display-setting .views-ajax-link{float:right;}div.form-item-options-value-all{display:none;}.js-only{display:none;}html.js .js-only{display:inherit;}html.js span.js-only{display:inline;}.js .views-edit-view .dropbutton-wrapper{width:auto;}
+#toolbar-administration,#toolbar-administration *{box-sizing:border-box;}#toolbar-administration{font-size:small;line-height:1;margin:0;padding:0;vertical-align:baseline;}@media print{#toolbar-administration{display:none;}}.toolbar li,.toolbar .item-list,.toolbar .item-list li,.toolbar .menu-item,.toolbar .menu-item--expanded{list-style-type:none;list-style-image:none;}.toolbar .menu-item{padding-top:0;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .menu-item{display:block;}.toolbar .toolbar-bar .toolbar-tab.hidden{display:none;}.toolbar a{display:block;line-height:1;}.toolbar .toolbar-bar,.toolbar .toolbar-tray{position:relative;z-index:1250;}body.toolbar-fixed .toolbar-oriented,.toolbar-oriented .toolbar-bar,.toolbar-oriented .toolbar-tray{left:0;position:absolute;right:0;top:0;}.toolbar-oriented .toolbar-bar{z-index:502;}body.toolbar-fixed .toolbar-oriented .toolbar-bar{position:fixed;}body.toolbar-tray-open.toolbar-fixed.toolbar-vertical .toolbar-oriented{bottom:0;width:240px;width:15rem;}.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}@media only screen{.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:none;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:none;}}@media (min-width:16.5em){.toolbar .toolbar-bar .toolbar-tab,.toolbar .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar .toolbar-tray-horizontal li{float:right;}}.toolbar-oriented .toolbar-bar .toolbar-tab,.toolbar-oriented .toolbar-tray-horizontal li{float:left;}[dir="rtl"] .toolbar-oriented .toolbar-bar .toolbar-tab,[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal li{float:right;}.toolbar .toolbar-tray{display:none;z-index:501;}.toolbar-oriented .toolbar-tray-vertical{left:-100%;position:absolute;width:240px;width:15rem;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical{left:auto;right:-100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining{min-height:100%;}.toolbar .toolbar-tray-vertical > .toolbar-lining:before{width:100%;}.toolbar-oriented .toolbar-tray-vertical > .toolbar-lining:before{bottom:0;content:'';display:block;left:0;position:fixed;top:0;width:240px;width:14rem;z-index:-1;}[dir="rtl"] .toolbar .toolbar-tray-vertical > .toolbar-lining:before{left:auto;right:0;}.toolbar-oriented .toolbar-tray-horizontal .menu-item ul{display:none;}body.toolbar-fixed .toolbar .toolbar-tray-horizontal{position:fixed;}.toolbar .toolbar-tray-vertical.is-active,body.toolbar-fixed .toolbar .toolbar-tray-vertical{height:100%;overflow-x:hidden;overflow-y:auto;position:fixed;}.toolbar .toolbar-tray.is-active{display:block;}.toolbar-oriented .toolbar-tray-vertical.is-active{left:0;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical.is-active{left:auto;right:0;}body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:240px;margin-left:15rem;}@media print{body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:0;}}[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-left:auto;margin-left:auto;margin-right:240px;margin-right:15rem;}@media print{[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed{margin-right:0;}}.toolbar .toolbar-tray .toolbar-toggle-orientation{display:none;}.toolbar-oriented .toolbar-tray .toolbar-toggle-orientation{display:block;}.toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{bottom:0;position:absolute;right:0;top:auto;}[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation{left:0;right:auto;}.toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:right;width:100%;}[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation{float:left;}
diff --git a/sites/default/files/css/css_o-ye313akLChovOyStMAfzNikwHAc6g7Yt-duzkDEPc.css.gz b/sites/default/files/css/css_o-ye313akLChovOyStMAfzNikwHAc6g7Yt-duzkDEPc.css.gz
new file mode 100644
index 0000000..dd4f025
--- /dev/null
+++ b/sites/default/files/css/css_o-ye313akLChovOyStMAfzNikwHAc6g7Yt-duzkDEPc.css.gz
@@ -0,0 +1,15 @@
+     Z8OkQl{$\`	b+:m|y>-ɒt\DHQ$ENd䕝qrUUK<lR`FTIz8fs;NAOu0\2g!*hv9mmʪtӪ&e_+i{):&:<'#em ݮjr}
+Z6O##,	7ZnI/D8iy uk(l1)̹`6K$ݖ$,X=AGdϿ~U7{ّ}ՐYh
+i:m>j2:SR*
+\d|UNԻ;|VM?"{T~U㌲7YGrw8ahFwD˜r`92=]vnڪdsm)h˳LqRt~?T2	fpbI!{@DKCil/]d	J<4TN5IA;
+a۰=.v(܈LU'$hˑ9pKL.ct@zgk U,9QS2˨81&ֹf{Rt(K?K/<޸	XWLRFKRxN7?t;:3a3hwPZ*!NF߲jNP61r[vh.ܜ!h
+#t&<S@)[#ǲƭX҉xS!v)〜[xaQ6ɝ$	By.VbQx&8B`5/e~b
+uCFLZ2 Qu$..)~e}fp쪾Ttmpڳ~VDdN(Z'~ڗ=~caoRݙG$4䞐}LU0[}s@]7tޑ TP9$˕_j&@G\6Ǿ<?q.:`(.t}G<nN&1sU mIJNr[Ø:(08NHD#$s e|L{ly8/C`Z#O	Xzri離ѣpDUA+s>K2
+坁MU(+gUñ$YbSu|)Nڬ!Lo'~Exe%DKh0U3]+>L])kr:xQC3\h$VXYIOPӚI'1Ý	K1OD*th01^^*6c6]JNҺuBxLx85{j i`ZDsw{ާn 2k8!!~dVR͏`T6x7_VHƪ|Dwv	1Di8k]G\NY*LrE5mV{,.6M0Ҫ´0=,UgsB% rvJ=&!;e!:s
+;4Mҹ*x_%K|V+>-pz4zNIV<Gb!׽.?EBjIE
+toQPlRgJ^Zs{s1s~HyvG`kn`oE1 #h=Q6_{s[C1Rme!ks!ީȞ#`fA l [Fz!1=u&}4.D&}~~!0
+Ѻ浅ʗ0ONμT7jZ;g]}'|K+
+<Av~|<(+[e:wM"%_v{wt'2L>B8,tҲ^C8S('a$zv8Mir0-Zxj'٥Z51;;gO?&Bϧo5]^Md6Xׄ7 /R],iNN_:TAS`oXӸf+\%-Χ{吕Dc҄;tpd]4R%m©!T``^!rjMN߻@+d:-Q,G˯cgt(ʶ#-rW>QWsm ]з:Sx^xۋ߰.gU:zUD)&	*Nm񁴢-4<ܺ;m%
+
+#,6kiP\1XN;gNhgpQSvTOHz
+(> :>*A`?|ªFVAPe1GbdA׿AjOPVb["7aВu1vj/">Gh%e8B$8lJ )lei}:? C3#:<"?Ἅdǋ%xP5+ħl=@PL>YM3UMק;ir˽\.'%i~i2}(׍hbVDGM5ɣTU1@Q{ٓQjOVrOez~\W)޸)'Hsbj2E>.]؇/e[.+Cw>s	_"yW=uq4Gu:W>WZM~\TQ]ue_)Φ36hЫț&KˎO=+9q6ᵵ(4P{sK݇eVe/,j+1	iځ`D<XVxGp/W$H7  
\ No newline at end of file
diff --git a/sites/default/files/css/css_om0epbVVnth3n593PLHbtyw6FQbpIsphy-YuGA1obFc.css b/sites/default/files/css/css_om0epbVVnth3n593PLHbtyw6FQbpIsphy-YuGA1obFc.css
new file mode 100644
index 0000000..2ef5fd0
--- /dev/null
+++ b/sites/default/files/css/css_om0epbVVnth3n593PLHbtyw6FQbpIsphy-YuGA1obFc.css
@@ -0,0 +1,41 @@
+html{height:100%;}body{min-height:100%;line-height:1.5;word-wrap:break-word;font-family:Georgia,"Times New Roman",Times,serif;font-size:87.5%;}a,a.link{text-decoration:none;border-bottom:1px dotted;}a:hover,a:active,a:focus,.link:hover,.link:active,.link:focus{text-decoration:none;border-bottom-style:solid;}.link{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}h1 a,h2 a{border-bottom:none;}h1,.heading-a{margin:1.0em 0 0.5em;font-weight:inherit;font-size:1.357em;color:#000;}h2,.heading-b{margin:1.0em 0 0.5em;font-weight:inherit;font-size:1.143em;}h3,.heading-c{margin:1.0em 0 0.5em;font-weight:inherit;font-size:1.092em;}h4,.heading-d{margin:1.0em 0 0.5em;font-weight:inherit;font-size:1.05em;}h5,.heading-e{margin:1.0em 0 0.5em;font-weight:inherit;font-size:0.889em;text-transform:uppercase;letter-spacing:0.1em;}h6,.heading-f{margin:1.0em 0 0.5em;font-weight:inherit;font-size:0.67em;text-transform:uppercase;letter-spacing:0.1em;}p{margin:0 0 1.2em;}del{text-decoration:line-through;}blockquote{background:#f7f7f7;border-left:1px solid #bbb;font-style:italic;margin:1.5em 10px;padding:0.5em 10px;}[dir="rtl"] blockquote{border-left:none;border-right:1px solid #bbb;}blockquote:before{color:#bbb;content:"\201C";font-size:3em;line-height:0.1em;margin-right:0.2em;vertical-align:-0.4em;}[dir="rtl"] blockquote:before{content:"\201D";margin-left:0.2em;margin-right:0;}blockquote:after{color:#bbb;content:"\201D";font-size:3em;line-height:0.1em;vertical-align:-0.45em;}[dir="rtl"] blockquote:after{content:"\201C";}blockquote > p:first-child{display:inline;}img{max-width:100%;height:auto;}
+.layout-container{max-width:860px;margin-left:auto;margin-right:auto;}@media all and (min-width:851px){.layout-container{max-width:1290px;}}.layout-main-wrapper{min-height:300px;}.layout-main{margin-top:20px;margin-bottom:40px;}
+.path-admin #content img{margin-right:15px;}[dir="rtl"] .path-admin #content img{margin-left:15px;margin-right:0;}.path-admin #content .simpletest-image img{margin:0;}.path-admin #admin-dblog img{margin:0 5px;}.demo-block{background:#ffff66;border:1px dotted #9f9e00;color:#000;font:90% "Lucida Grande","Lucida Sans Unicode",sans-serif;margin:5px;padding:5px;text-align:center;text-shadow:none;}.featured-top .demo-block{font-size:0.55em;}#header .demo-block{width:500px;}
+.block ol,.block ul{margin:0;padding:0 0 0.25em 1em;}[dir="rtl"] .block ol,[dir="rtl"] .block ul{padding:0 1em 0.25em 0;margin-right:0;}
+.book-navigation .menu{border-top:1px solid #d6d6d6;}.book-navigation .book-pager{border-bottom:1px solid #d6d6d6;border-top:1px solid #d6d6d6;margin:0;}
+.breadcrumb{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.929em;}
+.caption{margin-bottom:1.2em;}.caption > *{background:#F3F3F3;padding:0.5ex;border:1px solid #CCC;}.caption > figcaption{border:1px solid #CCC;border-top:none;padding-top:0.5ex;font-size:small;text-align:center;}.caption-pre > pre,.caption-blockquote > blockquote{margin:0;}.caption-blockquote > figcaption::before{content:"— ";}.caption-blockquote > figcaption{text-align:left;}[dir="rtl"] .caption-blockquote > figcaption{text-align:right;}
+#content .comment-wrapper h2{margin-bottom:1em;}.comment{margin-bottom:20px;display:table;vertical-align:top;}.comment__attribution{display:table-cell;padding:0 30px 0 0;vertical-align:top;overflow:hidden;}[dir="rtl"] .comment__attribution{float:right;padding:0 0 0 30px;}.comment__attribution img{border:1px solid #d3d7d9;}.comment .field-name-user-picture img{margin:0;}.comment__author .username{white-space:nowrap;}.comment__submitted__data{margin:4px 0;font-size:1.071em;line-height:1.2;}.comment__time{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.786em;color:#68696b;}.comment__permalink{font-size:0.786em;}.comment__content{font-size:0.929em;line-height:1.6;}.comment__text{padding:10px 25px;border:1px solid #d3d7d9;display:table-cell;vertical-align:top;position:relative;width:100%;}.comment__text:before{content:'';position:absolute;right:100%;top:20px;border-top:20px solid transparent;border-right:20px solid #d3d7d9;border-bottom:20px solid transparent;}[dir="rtl"] .comment__text:before{right:auto;left:100%;border-right:none;border-left:20px solid #d3d7d9;}.comment__text:after{content:'';position:absolute;right:100%;top:20px;border-top:20px solid transparent;border-right:20px solid #fff;border-bottom:20px solid transparent;margin-right:-1px;}[dir="rtl"] .comment__text:after{right:auto;left:100%;border-right:none;border-left:20px solid #fff;margin-right:0;margin-left:-1px;}.comment .indented{margin-left:40px;}[dir="rtl"] .comment .indented{margin-right:40px;margin-left:0;}.comment ul.links{padding:0 0 0.25em 0;}.comment ul.links li{padding:0 0.5em 0 0;}[dir="rtl"] .comment ul.links li{padding:0 0 0 0.5em;}.comment--unpublished{margin-right:5px;padding:5px 2px 5px 5px;background:#fff4f4;}[dir="rtl"] .comment--unpublished{margin-left:5px;margin-right:0;padding:5px 5px 5px 2px;}.comment-footer{display:table-row;}.comment--unpublished .comment__text:after,.node--unpublished .comment__text:after{border-right-color:#fff4f4;}[dir="rtl"] .comment--unpublished .comment__text:after,[dir="rtl"] .node--unpublished .comment__text:after{border-left-color:#fff4f4;}
+.content,.node__content{margin-top:10px;}h1#page-title{font-size:2em;line-height:1;}.main-content .section{padding:0 15px;}@media all and (min-width:851px){.main-content{float:left;position:relative;}[dir="rtl"] .main-content{float:right;}.layout-two-sidebars .main-content{margin-left:25%;margin-right:25%;width:50%;}.layout-one-sidebar .main-content{width:75%;}.layout-no-sidebars .main-content{width:100%;}.layout-sidebar-first .main-content{margin-left:25%;margin-right:0;}[dir="rtl"] .layout-sidebar-first .main-content{margin-left:0;margin-right:25%;}.layout-sidebar-second .main-content{margin-right:25%;margin-left:0;}[dir="rtl"] .layout-sidebar-second .main-content{margin-right:0;margin-left:25%;}}#content h2{margin-bottom:2px;font-size:1.429em;line-height:1.4;}.node__content{font-size:1.071em;}.node--view-mode-teaser .node__content{font-size:1em;}.node--view-mode-teaser h2{margin-top:0;padding-top:0.5em;}.node--view-mode-teaser h2 a{color:#181818;}.node--view-mode-teaser{border-bottom:1px solid #d3d7d9;margin-bottom:30px;padding-bottom:15px;}.node--view-mode-teaser.node--sticky{background:#f9f9f9;background:rgba(0,0,0,0.024);border:1px solid #d3d7d9;padding:0 15px 15px;}.node--view-mode-teaser .node__content{clear:none;line-height:1.6;}.node__meta{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.857em;color:#68696b;margin-bottom:-5px;}.node__meta .field-name-field-user-picture img{float:left;margin:1px 20px 0 0;}[dir="rtl"] .node__meta .field-name-field-user-picture img{float:right;margin-left:20px;margin-right:0;}.field-name-field-tags{margin:0 0 1.2em;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}.field-name-field-tags .field-label{font-weight:normal;margin:0;padding-right:5px;}[dir="rtl"] .field-name-field-tags .field-label{padding-left:5px;padding-right:0;}.field-name-field-tags .field-label,.field-name-field-tags ul.links{font-size:0.8em;}.node--view-mode-teaser .field-name-field-tags .field-label,.node--view-mode-teaser .field-name-field-tags ul.links{font-size:0.821em;}.field-name-field-tags ul.links{padding:0;margin:0;list-style:none;}.field-name-field-tags ul.links li{float:left;padding:0 1em 0 0;white-space:nowrap;}[dir="rtl"] .field-name-field-tags ul.links li{padding:0 0 0 1em;float:right;}.node__links{text-align:right;}[dir="rtl"] .node__links{text-align:left;}@media all and (min-width:560px){.node .field-type-image{float:left;margin:0 1em 0 0;}[dir="rtl"] .node .field-type-image{float:right;margin:0 0 0 1em;}.node .field-type-image + .field-type-image{clear:both;}}.field-type-image img,.field-name-field-user-picture img{margin:0 0 1em;}.field-type-image a{border-bottom:none;}ul.links{color:#68696b;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.821em;}.node--unpublished,.unpublished{padding:20px 15px 0;}.node-preview-container{background:#d1e8f5;background-image:-webkit-linear-gradient(top,#d1e8f5,#d3e8f4);background-image:linear-gradient(to bottom,#d1e8f5,#d3e8f4);font-family:Arial,sans-serif;box-shadow:0 1px 3px 1px rgba(0,0,0,0.3333);position:fixed;z-index:499;width:100%;padding:10px;}.node-preview-backlink{background-color:#419ff1;background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,-webkit-linear-gradient(top,#419ff1,#1076d5);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,linear-gradient(to bottom,#419ff1,#1076d5);border:1px solid #0048c8;border-radius:.4em;box-shadow:inset 0 1px 0 rgba(255,255,255,.4);color:#fff;font-size:0.9em;line-height:normal;margin:0;padding:4px 1em 4px 0.6em;text-shadow:1px 1px 0 rgba(0,0,0,0.5);}[dir="rtl"] .node-preview-backlink{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,-webkit-linear-gradient(top,#419ff1,#1076d5);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,linear-gradient(to bottom,#419ff1,#1076d5);padding:4px 0.6em 4px 1em;float:right;}.node-preview-backlink:focus,.node-preview-backlink:hover{background-color:#419cf1;background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,-webkit-linear-gradient(top,#59abf3,#2a90ef);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,linear-gradient(to bottom,#59abf3,#2a90ef);border:1px solid #0048c8;text-decoration:none;color:#fff;}[dir="rtl"] .node-preview-backlink:focus,[dir="rtl"] .node-preview-backlink:hover{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,-webkit-linear-gradient(top,#59abf3,#2a90ef);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,linear-gradient(to bottom,#59abf3,#2a90ef);}.node-preview-backlink:active{background-color:#0e69be;background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,-webkit-linear-gradient(top,#0e69be,#2a93ef);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,linear-gradient(to bottom,#0e69be,#2a93ef);border:1px solid #0048c8;box-shadow:inset 0 1px 2px rgba(0,0,0,.25);}.node-preview-backlink:active{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,-webkit-linear-gradient(top,#0e69be,#2a93ef);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,linear-gradient(to bottom,#0e69be,#2a93ef);}.node-preview-backlink::before{content:'';width:10px;display:inline-block;}.region-content ul,.region-content ol{margin:1em 0;padding:0 0 0.25em 15px;}[dir="rtl"] .region-content ul,[dir="rtl"] .region-content ol{padding:0 15px 0.25em 0;}#page .ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
+#header .contextual .trigger,.site-footer .contextual .trigger{border:none;}.contextual-region .contextual .contextual-links a{border-bottom:none;font-size:0.923em;text-shadow:0 0 0;}.contextual-links{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
+.js .dropbutton-multiple.open .dropbutton-widget{border-radius:1em;}.js .dropbutton-widget{position:relative !important;border:1px solid #e4e4e4;border-bottom-color:#b4b4b4;border-left-color:#d2d2d2;border-right-color:#d2d2d2;background-color:#fff;background-image:-webkit-linear-gradient(top,#f3f3f3,#e8e8e8);background-image:linear-gradient(to bottom,#f3f3f3,#e8e8e8);color:#3a3a3a;cursor:pointer;text-align:center;margin:0.125em 0;border-radius:1em;}.js .dropbutton-widget:hover{border-top-color:#e4e4e4;border-bottom-color:#b4b4b4;border-left-color:#d2d2d2;border-right-color:#d2d2d2;}.js .dropbutton-widget .button{border:none;margin:0;padding:0.32em 1em;width:100%;border-radius:1em;}.js .dropbutton-widget .button:hover{border-radius:1em 0 0 1em;}[dir="rtl"].js .dropbutton-widget .button:hover{border-radius:0 1em 1em 0;}.js .dropbutton-single .dropbutton-widget .dropbutton-action a{color:#3a3a3a;}.js .dropbutton-single .dropbutton-widget .dropbutton-action a:hover{background:#dedede;border-radius:1em;}.js .dropbutton-multiple .dropbutton-widget .dropbutton-action a{color:#3a3a3a;margin-right:0;}[dir="rtl"].js .dropbutton-multiple .dropbutton-widget .dropbutton-action a{margin-left:0;}.js .dropbutton-multiple .dropbutton-widget .dropbutton-action a:hover{background:#dedede;}.js .dropbutton-multiple .dropbutton-widget .dropbutton-action:first-child a:hover{border-radius:1em 0 0 1em;}[dir="rtl"].js .dropbutton-multiple .dropbutton-widget .dropbutton-action:first-child a:hover{border-radius:0 1em 1em 0;}.js .dropbutton-multiple.open .dropbutton-widget .dropbutton-action:first-child a:hover{border-radius:1em 0 0 0;}[dir="rtl"].js .dropbutton-multiple.open .dropbutton-widget .dropbutton-action:first-child a:hover{border-radius:0 1em 0 0;}.js .dropdown-widget .publish .button{border-radius:1em 0 0 1em;}[dir="rtl"].js .dropbutton-widget .publish .button{border-radius:0 1em 1em 0;}.js .dropbutton-multiple.open .dropbutton-action:first-child a,.js .dropbutton-multiple.open .dropbutton-action:first-child .button{border-radius:1em 0 0 0;}[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child a,[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child .button{border-radius:0 1em 0 0;}.js .dropbutton-multiple.open .dropbutton-action:last-child a,.js .dropbutton-multiple.open .dropbutton-action:last-child .button{border-radius:0 0 0 1em;}[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child a,[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child .button{border-radius:0 0 1em 0;}.js .dropbutton .secondary-action{border-top-color:#ccc;}.js .dropbutton-toggle button{border-radius:0 1em 1em 0;background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#e8e8e8,#d2d2d2);background-image:linear-gradient(to bottom,#e8e8e8,#d2d2d2);}[dir="rtl"].js .dropbutton-toggle button{border-radius:1em 0 0 1em;}.js .dropbutton-toggle .button:hover{background:#ccc;}.js .dropbutton a{border-bottom:none;}.js .dropbutton a:hover{border-bottom-style:none;}
+.featured-top{text-align:center;font-size:1.2em;font-weight:normal;line-height:1.4;padding:20px 10px 45px;margin:0;background:#f0f0f0;background:rgba(30,50,10,0.08);border-bottom:1px solid #e7e7e7;text-shadow:1px 1px #fff;}.featured-top h2{font-size:1.2em;line-height:1;}.featured-top p{margin:0;padding:0;}
+.feed-icon{border-bottom:none;display:inline-block;padding:15px 0 0 0;}
+.password-field{margin:0;}form{margin:0;padding:0;}fieldset{margin:1em 0;}details,fieldset,.filter-wrapper{border-radius:4px;}.filter-wrapper{border-top-left-radius:0;border-top-right-radius:0;}.filter-help a{font-size:0.857em;}.filter-wrapper .form-item label{margin-right:10px;}[dir="rtl"] .filter-wrapper .form-item label{margin-left:10px;margin-right:0;}summary{background:#dbdbdb;color:#3b3b3b;text-shadow:0 1px 0 #fff;}details summary a{color:#3b3b3b;}details summary a:hover,details summary a:active,details summary a:focus{color:#000;}details .details-description{font-style:italic;}label{display:table;font-weight:bold;}label[for]{cursor:pointer;}input,textarea,select{font-family:"Lucida Grande","Lucida Sans Unicode",Verdana,sans-serif;}input{margin:2px 0;padding:4px;max-width:100%;box-sizing:border-box;}input,textarea{font-size:0.929em;}@media screen and (max-width:60em){input,textarea{font-size:1.142857143em;}}textarea{line-height:1.5;}textarea.form-textarea,select.form-select{padding:4px;}input.form-text,input.form-tel,input.form-email,input.form-url,input.form-search,input.form-file,input.form-number,input.form-color,textarea.form-textarea,select.form-select{border:1px solid #ccc;color:#3b3b3b;}input.form-submit:hover,input.form-submit:focus{background:#dedede;}.password-suggestions ul li{margin-left:1.2em;}[dir="rtl"] .password-suggestions ul li{margin-right:1.2em;margin-left:0;}.form-item label{font-size:0.929em;}.form-type-radio label,.form-type-checkbox label{margin-left:4px;}[dir="rtl"] .form-type-radio label,[dir="rtl"] .form-type-checkbox label{margin-right:4px;margin-left:0;}.form-type-radio .description,.form-type-checkbox .description{margin-left:2px;}[dir="rtl"] .form-type-radio .description,[dir="rtl"] .form-type-checkbox .description{margin-right:2px;margin-left:0;}.form-actions{padding-top:10px;}#edit-body{margin-bottom:2em;}.node-form label,.node-form .description{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}.node-form .form-wrapper{margin-bottom:2em;}.contact-form #edit-name{width:75%;border-radius:4px;}.contact-form #edit-mail{width:75%;border-radius:4px;}.contact-form #edit-subject{width:75%;border-radius:4px;}.contact-form #edit-message{width:76.3%;border-top-left-radius:4px;border-top-right-radius:4px;}.form-disabled input,.form-disabled select,.form-disabled textarea{background:#ededed;border-color:#bbb;color:#717171;}.form-disabled label{color:#717171;}.comment-form label{float:left;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.929em;width:120px;}[dir="rtl"] .comment-form label{float:right;}.comment-form input,.comment-form .form-select{margin:0;border-radius:4px;}.comment-form .form-type-textarea label{float:none;}.comment-form .form-item,.comment-form .form-radios,.comment-form .form-type-checkbox,.comment-form .form-select{margin-bottom:10px;overflow:hidden;}.comment-form .form-type-checkbox,.comment-form .form-radios{margin-left:120px;}[dir="rtl"] .comment-form .form-type-checkbox,[dir="rtl"] .comment-form .form-radios,[dir="rtl"] .comment-form .form-item .description{margin-left:0;margin-right:120px;}.comment-form .form-type-checkbox label,.comment-form .form-radios label{float:none;margin-top:0;}.comment-form input.form-file{width:auto;}.layout-no-sidebars .comment-form .form-text{width:800px;}.layout-one-sidebar .comment-form .form-text{width:500px;}.layout-two-sidebars .comment-form .form-text{width:320px;}.comment-form .form-item .description{font-size:0.786em;line-height:1.2;margin-left:120px;}#content h2.comment-form{margin-bottom:0.5em;}.comment-form .form-textarea{border-top-left-radius:4px;border-top-right-radius:4px;}.comment-form details.filter-wrapper .details-wrapper,.comment-form .text-format-wrapper .form-item{margin-top:0;margin-bottom:0;}.filter-wrapper label{width:auto;float:none;}.filter-wrapper .form-select{min-width:120px;}.comment-form details.filter-wrapper .tips{font-size:0.786em;}#comment-body-add-more-wrapper .form-type-textarea label{margin-bottom:0.4em;}#edit-actions input{margin-right:0.6em;}[dir="rtl"] #edit-actions input{margin-left:0.6em;margin-right:0;}
+.forum__name{font-size:1.083em;}.forum__description{font-size:1em;}
+#header{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}.header .section{position:relative;}.region-header{float:right;margin:.5em 5px .75em;}[dir="rtl"] .region-header{float:left;}@media all and (min-width:461px) and (max-width:900px){.region-header{margin:.5em 5px .75em;}}@media all and (min-width:901px){.region-header{margin:1em 5px 1.5em;}}#logo,.site-logo{float:left;padding:4px 4px 4px 9px;}[dir="rtl"] #logo,[dir="rtl"] .site-logo{padding:4px 9px 4px 4px;}@media all and (min-width:461px) and (max-width:900px){#logo,.site-logo{padding:5px 0 0 5px;}[dir="rtl"] #logo,[dir="rtl"] .site-logo{padding:5px 5px 0 0;}}@media all and (min-width:901px){#logo,.site-logo{padding:9px 4px 4px 9px;}[dir="rtl"] #logo,[dir="rtl"] .site-logo{padding:9px 9px 4px 4px;}}#name-and-slogan,.site-branding-text{float:left;margin:0;padding:5px 10px 8px;}[dir="rtl"] #name-and-slogan,[dir="rtl"] .site-branding-text{margin:0 15px 30px 0;}@media all and (min-width:461px) and (max-width:900px){#name-and-slogan,.site-branding-text{padding:10px 10px 8px;}}@media all and (min-width:901px){#name-and-slogan,.site-branding-text{padding:26px 0 0;margin:0 0 30px 15px;}[dir="rtl"] #name-and-slogan,[dir="rtl"] .site-branding-text{margin:0 15px 30px 0;}}#site-name,.site-name{font-size:1.6em;color:#686868;line-height:1;}@media all and (min-width:901px){#site-name,.site-name{font-size:1.821em;}}h1#site-name,h1.site-name{margin:0;}#site-name a,.site-name a{font-weight:normal;}#site-slogan,.site-slogan{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.929em;margin-top:7px;word-spacing:0.1em;font-style:italic;}.region-header .block{font-size:0.857em;float:left;margin:0 10px;padding:0;}.region-header .block > h2{position:absolute !important;clip:rect(1px,1px,1px,1px);overflow:hidden;height:1px;}.region-header .block .content{margin:0;padding:0;}.region-header .block ul{margin:0;padding:0;}.region-header .block li{list-style:none;list-style-image:none;padding:0;}.region-header .form-text{background:#fefefe;background:rgba(255,255,255,0.7);border-color:#ccc;border-color:rgba(255,255,255,0.3);margin-right:2px;width:120px;}[dir="rtl"] .region-header .form-text{margin-left:2px;margin-right:0;}.region-header .form-text:hover,.region-header .form-text:active,.region-header .form-text:focus{background:#fff;background:rgba(255,255,255,0.8);}.region-header .form-required:after{background-image:url(http://localhost/pub_html/contri/drupal/core/themes/bartik/images/required.svg);}.region-header .block-menu{border:1px solid;border-color:#eee;border-color:rgba(255,255,255,0.2);padding:0;width:208px;}.region-header .block-menu li a{display:block;border-bottom:1px solid;border-bottom-color:#eee;border-bottom-color:rgba(255,255,255,0.2);padding:3px 7px;}.region-header .block-menu li a:hover,.region-header .block-menu li a:active,.region-header .block-menu li a:focus{text-decoration:none;background:rgba(255,255,255,0.15);}.region-header .block-menu li:last-child a{border-bottom:0;}.region-header #block-user-login{width:auto;}.region-header #block-user-login .content{margin-top:2px;}.region-header #block-user-login .form-item{float:left;margin:0;padding:0;}.region-header #block-user-login div.item-list,.region-header #block-user-login div.description{font-size:0.916em;margin:0;}.region-header #block-user-login div.item-list{clear:both;}.region-header #block-user-login div.description{display:inline;}.region-header #block-user-login .item-list ul{padding:0;line-height:1;}.region-header #block-user-login .item-list li{list-style:none;float:left;padding:3px 0 1px;}.region-header #block-user-login .item-list li:last-child{padding-left:0.5em;}[dir="rtl"] .region-header #block-user-login .item-list li:last-child{padding-left:0;padding-right:0.5em;}.region-header #block-user-login .form-actions{margin:4px 0 0;padding:0;clear:both;}.region-header #block-user-login input.form-submit{border:1px solid;border-color:#ccc;border-color:rgba(255,255,255,0.5);background:#eee;background:rgba(255,255,255,0.7);margin:4px 0;padding:3px 8px;}.region-header #block-user-login input.form-submit:hover,.region-header #block-user-login input.form-submit:focus{background:#fff;background:rgba(255,255,255,0.9);}.region-header #block-search-form{width:208px;}.region-header #block-search-form .form-text{width:154px;}.region-header .block-locale ul li{display:inline;padding:0 0.5em;}[role*=banner] a{border-bottom:none;}[dir="rtl"] #logo,[dir="rtl"] .site-logo,[dir="rtl"] #name-and-slogan,[dir="rtl"] .site-branding-text,[dir="rtl"] .region-header .block,[dir="rtl"] .region-header #block-user-login .form-item,[dir="rtl"] .region-header #block-user-login .item-list li{float:right;}
+.region-help{border:1px solid #d3d7d9;padding:0 1.5em;margin-bottom:30px;}
+.item-list ul li{margin:0;padding:0.2em 0.5em 0 0;}[dir="rtl"] .item-list ul li{padding:0.2em 0 0 0.5em;}
+.list-group__link{border-top:1px solid #ccc;padding:7px 0 0;}.list-group__description{margin:0 0 10px;}
+.node-preview-container{background:#d1e8f5;background-image:-webkit-linear-gradient(top,#d1e8f5,#d3e8f4);background-image:linear-gradient(to bottom,#d1e8f5,#d3e8f4);font-family:Arial,sans-serif;box-shadow:0 1px 3px 1px rgba(0,0,0,0.3333);position:fixed;z-index:499;width:100%;padding:10px;}.node-preview-backlink{background-color:#419ff1;background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,-webkit-linear-gradient(top,#419ff1,#1076d5);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,linear-gradient(to bottom,#419ff1,#1076d5);border:1px solid #0048c8;border-radius:.4em;box-shadow:inset 0 1px 0 rgba(255,255,255,.4);color:#fff;font-size:0.9em;line-height:normal;margin:0;padding:4px 1em 4px 0.6em;text-shadow:1px 1px 0 rgba(0,0,0,0.5);}[dir="rtl"] .node-preview-backlink{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,-webkit-linear-gradient(top,#419ff1,#1076d5);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,linear-gradient(to bottom,#419ff1,#1076d5);padding:4px 0.6em 4px 1em;float:right;}.node-preview-backlink:focus,.node-preview-backlink:hover{background-color:#419cf1;background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,-webkit-linear-gradient(top,#59abf3,#2a90ef);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,linear-gradient(to bottom,#59abf3,#2a90ef);border:1px solid #0048c8;text-decoration:none;color:#fff;}[dir="rtl"] .node-preview-backlink:focus,[dir="rtl"] .node-preview-backlink:hover{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,-webkit-linear-gradient(top,#59abf3,#2a90ef);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,linear-gradient(to bottom,#59abf3,#2a90ef);}.node-preview-backlink:active{background-color:#0e69be;background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,-webkit-linear-gradient(top,#0e69be,#2a93ef);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,linear-gradient(to bottom,#0e69be,#2a93ef);border:1px solid #0048c8;box-shadow:inset 0 1px 2px rgba(0,0,0,.25);}[dir="rtl"] .node-preview-backlink:active{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,-webkit-linear-gradient(top,#0e69be,#2a93ef);background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,linear-gradient(to bottom,#0e69be,#2a93ef);}.node-preview-backlink::before{content:'';width:10px;display:inline-block;}
+.pager .pager__items{padding:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}.pager__item{font-size:0.929em;padding:10px 15px;}.pager__item a{display:inline-block;}.pager__item.is-active a{color:#3b3b3b;border-bottom:0;}.pager__item--first,.pager__item--previous{padding:10px 10px 10px 0;}[dir="rtl"] .pager__item--first,[dir="rtl"] .pager__item--previous{padding-left:10px;padding-right:0;}.pager__item--ellipsis{padding:10px 0;}.pager__item--last,.pager__item--next{padding:10px 0 10px 10px;}[dir="rtl"] .pager__item--last,[dir="rtl"] .pager__item--next{padding-left:0;padding-right:10px;}
+.panel{background:#fbfbfb;border:1px solid #ccc;margin:10px 0;padding:0 5px 5px;}.panel__title{margin:16px 7px;}.panel__content{padding:0 4px 2px 8px;}[dir="rtl"] .panel__content{padding-right:8px;padding-left:4px;}
+.region-primary-menu{clear:both;}.region-primary-menu .menu{font-size:0.929em;margin:0 5px;padding:0;text-align:left;}[dir="rtl"] .region-primary-menu .menu{text-align:right;}.region-primary-menu .menu-item{float:none;list-style:none;margin:0;padding:0;height:auto;width:100%;}.region-primary-menu .menu a{color:#333;background:#ccc;background:rgba(255,255,255,0.7);float:none;display:block;text-decoration:none;text-shadow:0 1px #eee;border-radius:8px;margin:4px 0;padding:0.9em 0 0.9em 10px;}[dir="rtl"] .region-primary-menu .menu a{padding:0.9em 10px 0.9em 0;}.region-primary-menu .menu a:hover,.region-primary-menu .menu a:focus{background:#f6f6f2;background:rgba(255,255,255,0.95);}.region-primary-menu .menu a:active{background:#b3b3b3;background:rgba(255,255,255,1);}.region-primary-menu .menu-item a.is-active{border-bottom:none;}.menu-toggle,.menu-toggle-target{display:none;}.region-primary-menu .menu-toggle-target{display:inherit;position:fixed;top:0;}.region-primary-menu .menu-toggle{display:none;}body:not(:target) .region-primary-menu .menu-toggle{color:#333;background:#ccc;background:rgba(255,255,255,0.7);float:none;font-size:0.929em;display:block;text-decoration:none;text-shadow:0 1px #eee;padding:0.9em 10px 0.9em 10px;z-index:1000;}body:not(:target) .region-primary-menu .menu-toggle:after{content:"";background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/hamburger.svg) no-repeat;background-size:contain;width:22px;height:22px;display:inline-block;position:absolute;right:10px;}[dir="rtl"] body:not(:target) .region-primary-menu .menu-toggle:after{right:initial;left:10px;}body:not(:target) .region-primary-menu .menu-toggle-target-show:target ~ .menu-toggle,body:not(:target) .region-primary-menu .menu-toggle--hide{display:none;}body:not(:target) .region-primary-menu .menu-toggle-target-show:target ~ .menu-toggle--hide{display:block;}body:not(:target) .region-primary-menu .menu-item{height:0;overflow:hidden;}body:not(:target) .region-primary-menu .menu-toggle-target-show:target ~ .menu .menu-item{height:auto;overflow:visible;}@media all and (min-width:461px) and (max-width:900px){.region-primary-menu .menu{margin:0 5px;padding:0;text-align:center;}.region-primary-menu .menu-item,body:not(:target) .region-primary-menu .menu-item{float:left;margin-right:5px;padding:0;display:inline-block;width:32.75%;height:auto;overflow:visible;}[dir="rtl"] .region-primary-menu .menu-item,[dir="rtl"] body:not(:target) .region-primary-menu .menu-item{float:right;margin-left:5px;margin-right:0;}.region-primary-menu .menu-item:nth-child(3n){margin-right:-5px;}[dir="rtl"] .region-primary-menu .menu-item:nth-child(3n){margin-left:-5px;margin-right:0;}.region-primary-menu .menu a{float:none;display:block;border-radius:8px;margin-bottom:5px;padding:0.9em 5px;}body:not(:target) .region-primary-menu .menu-toggle{display:none;}}@media all and (min-width:901px){.region-primary-menu .block-menu .menu{font-size:0.929em;margin:0;padding:0 15px;}.region-primary-menu .menu-item,body:not(:target) .region-primary-menu .menu-item{float:left;list-style:none;padding:0 1px;margin:0 1px;width:auto;height:auto;overflow:visible;}[dir="rtl"] .region-primary-menu .menu-item,[dir="rtl"] body:not(:target) .region-primary-menu .menu-item{float:right;}.region-primary-menu .menu a{float:left;padding:0.7em 0.8em;margin-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;}[dir="rtl"] .region-primary-menu .menu a{float:right;padding:0.7em 0.8em;}.featured .region-primary-menu .menu-item a:active,.featured .region-primary-menu .menu-item a.is-active{background:#f0f0f0;background:rgba(240,240,240,1.0);}body:not(:target) .region-primary-menu .menu-toggle{display:none;}}
+#block-search-form{padding-bottom:7px;}#block-search-form .content{margin-top:0;}#search-form input[type="search"],#block-search-form input[type="search"]{box-sizing:border-box;padding:4px;-webkit-appearance:textfield;}#search-form input[type="search"]::-webkit-search-decoration,#block-search-form input[type="search"]::-webkit-search-decoration{display:none;}#search-form input#edit-keys,#block-search-form .form-item-search-block-form input{float:left;font-size:1em;margin-right:5px;}[dir="rtl"] #search-form input#edit-keys,[dir="rtl"] #block-search-form .form-item-search-block-form input{float:right;margin-left:5px;margin-right:0;}#search-block-form input.form-submit,#search-form input.form-submit{margin-left:0;margin-right:0;height:25px;width:34px;padding:0;cursor:pointer;text-indent:-9999px;border-color:#e4e4e4 #d2d2d2 #b4b4b4;background:#f0f0f0 url(http://localhost/pub_html/contri/drupal/core/misc/icons/505050/loupe.svg) no-repeat center;overflow:hidden;}#search-block-form input.form-submit:hover,#search-block-form input.form-submit:focus,#search-form input.form-submit:hover,#search-form input.form-submit:focus{background:#dedede url(http://localhost/pub_html/contri/drupal/core/misc/icons/424242/loupe.svg) no-repeat center;}#search-form .form-item-keys label{display:block;}
+ol.search-results{padding-left:0;list-style-position:inside;}[dir="rtl"] ol.search-results{padding-right:0;}.search-results li{border-bottom:1px solid #d3d7d9;padding-bottom:0.4285em;margin-bottom:0.5em;}.search-results li:last-child{border-bottom:none;padding-bottom:0;margin-bottom:1em;}.search-results .search-snippet-info{padding-left:0;}[dir="rtl"] .search-results .search-snippet-info{padding-right:0;}
+.region-secondary-menu .menu{text-align:right;font-size:0.929em;margin:0 10px;padding:0;}[dir="rtl"] .region-secondary-menu .menu{text-align:left;}.region-secondary-menu .menu-item{margin:0;padding:0;display:inline;}.region-secondary-menu .menu a{display:inline-block;padding:0.8em;}.region-secondary-menu .menu a:hover,.region-secondary-menu .menu a:focus{text-decoration:underline;}
+.shortcut-wrapper{margin:2.2em 0 1.1em 0;}.shortcut-wrapper h1#page-title{float:left;margin:0;}[dir="rtl"] .shortcut-wrapper h1#page-title{float:right;}div.add-or-remove-shortcuts{padding-top:0.9em;}
+.skip-link{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);z-index:50;background:#444;background:rgba(0,0,0,0.6);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.94em;line-height:1.7em;padding:1px 10px 2px;border-radius:0 0 10px 10px;border-bottom-width:0;outline:0;}.skip-link.visually-hidden.focusable:focus{position:absolute !important;color:#fff;}
+@media all and (min-width:560px){.sidebar{float:left;position:relative;width:50%;}[dir="rtl"] .sidebar{float:right;}.layout-one-sidebar .sidebar{width:100%;}}@media all and (min-width:851px){.layout-one-sidebar .sidebar{width:25%;}#sidebar-first{width:25%;margin-left:-100%;}[dir="rtl"] #sidebar-first{margin-right:-100%;margin-left:0;}#sidebar-second{width:25%;margin-left:-25%;clear:none;}[dir="rtl"] #sidebar-second{margin-right:-25%;margin-left:0;}}.sidebar .section{padding:10px 15px 0;}.sidebar .block{border-style:solid;border-width:1px;padding:15px 20px;margin:0 0 20px;}.sidebar h2{margin:0 0 0.5em;border-bottom:1px solid #d6d6d6;padding-bottom:5px;text-shadow:0 1px 0 #fff;font-size:1.071em;line-height:1.2;}.sidebar .block .content{font-size:0.914em;line-height:1.4;}.sidebar tbody{border:none;}.sidebar tr.even,.sidebar tr.odd{background:none;border-bottom:1px solid #d6d6d6;}
+.site-footer{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:35px 15px 30px;}.site-footer .region{box-sizing:border-box;padding:0 10px;}@media all and (min-width:560px){.site-footer__top .region{float:left;position:relative;width:50%;}[dir="rtl"] .site-footer__top .region{float:right;}.region-footer-third{clear:both;}}@media all and (min-width:851px){.site-footer__top .region{width:25%;}.region-footer-third{clear:none;}}.site-footer h2{color:#c0c0c0;color:rgba(255,255,255,0.65);}.site-footer blockquote{color:#555;}.site-footer .content{color:#c0c0c0;color:rgba(255,255,255,0.65);font-size:0.857em;}.site-footer .content .menu-item{padding:0;}.site-footer .content ol:not(.menu),.site-footer .content ul:not(.menu){padding-left:1.4em;}[dir="rtl"] .site-footer .content ol:not(.menu),[dir="rtl"] .site-footer .content ul:not(.menu){padding-right:1.4em;padding-left:0;}.site-footer .content a,.site-footer .content a.is-active{color:#fcfcfc;color:rgba(255,255,255,0.8);}.site-footer .content a:hover,.site-footer .content a:focus{color:#fefefe;color:rgba(255,255,255,0.95);}.site-footer .block{margin:20px 0;border:1px solid #444;border-color:rgba(255,255,255,0.1);padding:10px;}.site-footer table{font-size:1em;}.site-footer tr td,.site-footer tr th{border-color:#555;border-color:rgba(255,255,255,0.18);}.site-footer tr.odd{background-color:transparent;}.site-footer tr.even{background-color:#2c2c2c;background-color:rgba(0,0,0,0.15);}.site-footer__top h2{border-bottom:1px solid #555;border-color:rgba(255,255,255,0.15);font-size:1em;margin-bottom:0;padding-bottom:3px;text-transform:uppercase;}.site-footer__top .content{margin-top:0;}.site-footer__top p{margin-top:1em;}.site-footer__top .content .menu{padding-left:0;}[dir="rtl"] .site-footer__top .content .menu{padding-right:0;}.site-footer__top .content li a{display:block;border-bottom:1px solid #555;border-color:rgba(255,255,255,0.15);line-height:1.2;padding:0.8em 2px 0.8em 20px;text-indent:-15px;}[dir="rtl"] .site-footer__top .content li a{padding:0.8em 20px 0.8em 2px;}.site-footer__top .content li a:hover,.site-footer__top .content li a:focus{background-color:#1f1f21;background-color:rgba(255,255,255,0.05);text-decoration:none;}.site-footer__top .block-menu,.site-footer__bottom .block{margin:0;padding:0;border:none;}.site-footer__bottom .block{margin:0.5em 0;}.site-footer__bottom .content{padding:0.5em 0;margin-top:0;}.site-footer__bottom .block h2{margin:0;}.site-footer__bottom{letter-spacing:0.2px;margin-top:30px;border-top:1px solid #555;border-color:rgba(255,255,255,0.15);}.site-footer__bottom .region{margin-top:20px;}.site-footer__bottom .block{clear:both;}.site-footer__bottom .menu{padding:0;}.site-footer__bottom .menu-item a{float:left;padding:0 12px;display:block;border-right:1px solid #555;border-color:rgba(255,255,255,0.15);}[dir="rtl"] .site-footer__bottom .menu-item a{float:right;border-left:1px solid #555;border-right:none;}.site-footer__bottom .menu-item:first-child a{padding-left:0;}[dir="rtl"] .site-footer__bottom .menu-item:first-child a{padding-right:0;padding-left:12px;}.site-footer__bottom .menu-item:last-child a{padding-right:0;border-right:none;}[dir="rtl"] .site-footer__bottom .menu-item:last-child a{padding-left:0;padding-right:12px;border-left:none;}
+table{border:0;border-spacing:0;font-family:"Lucida Grande","Lucida Sans Unicode",Verdana,sans-serif;font-size:0.857em;margin:10px 0;width:100%;}table table{font-size:1em;}tr{border-bottom:1px solid #ccc;padding:0.1em 0.6em;background:#efefef;background:rgba(0,0,0,0.063);}thead > tr{border-bottom:1px solid #000;}tr.odd{background:#e4e4e4;background:rgba(0,0,0,0.105);}table tr th{background:#757575;background:rgba(0,0,0,0.51);border-bottom-style:none;}table tr th,table tr th a,table tr th a:hover,table tr th a:focus{color:#fff;font-weight:bold;}table tbody tr th{vertical-align:top;}tr td,tr th{padding:4px 9px;border:1px solid #fff;text-align:left;}[dir="rtl"] tr td,[dir="rtl"] tr th{text-align:right;}@media screen and (max-width:37.5em){th.priority-low,td.priority-low,th.priority-medium,td.priority-medium{display:none;}}@media screen and (max-width:60em){th.priority-low,td.priority-low{display:none;}}table ul.links{margin:0;padding:0;font-size:1em;}table ul.links li{padding:0 1em 0 0;}[dir="rtl"] table ul.links li{padding-left:1em;padding-right:0;}
+div.tabs{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;margin-bottom:20px;}.tabs ul.primary{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}.tabs ul.primary li a{color:#000;background-color:#ededed;border-color:#bbb;border-style:solid solid none solid;border-width:1px;height:1.8em;line-height:1.9;display:block;font-size:0.929em;padding:0 10px 3px;margin:0;text-shadow:0 1px 0 #fff;}.tabs ul.primary li.is-active a{background-color:#ffffff;border:1px solid #bbb;}@media screen and (max-width:37.5em){.tabs ul.primary{border-bottom:1px solid #bbb;}.tabs ul.primary li{display:block;margin:0;}.tabs ul.primary li a{padding:5px 10px;}.tabs ul.primary li.is-active a{border-bottom:none;}}@media screen and (min-width:37.5em){.tabs ul.primary{border-collapse:collapse;height:auto;line-height:normal;padding:0 3px;margin:0;overflow:hidden;border:none;background:transparent url(http://localhost/pub_html/contri/drupal/core/themes/bartik/images/tabs-border.png) repeat-x left bottom;white-space:nowrap;}.tabs ul.primary li{display:block;float:left;vertical-align:bottom;margin:0 5px 0 0;}[dir="rtl"] .tabs ul.primary li{margin:0 0 0 5px;float:right;}.tabs ul.primary li a{float:left;border-top-left-radius:6px;border-top-right-radius:6px;}.tabs ul.primary li.is-active a{border-bottom:1px solid #fff;}}.tabs ul.secondary{border-bottom:none;margin:5px;padding:0.5em 0;overflow:hidden;}.tabs ul.secondary li{border-right:1px solid #ccc;display:block;float:left;margin:0;padding:0 1em;}[dir="rtl"] .tabs ul.secondary li{border-left:1px solid #ccc;border-right:none;float:right;}.tabs ul.secondary li:last-child{border-right:none;}[dir="rtl"] .tabs ul.secondary li:last-child{border-left:none;}.tabs ul.secondary li:first-child{padding-left:0;}[dir="rtl"] .tabs ul.secondary li:first-child{padding-right:0;}.tabs ul.secondary li a{display:inline;padding:0.25em 0.5em;text-decoration:none;}.tabs ul.secondary li a.is-active{background:#f2f2f2;border-bottom:none;border-radius:5px;}
+ul.tips{padding:0 0 0 1.25em;}[dir="rtl"] ul.tips{padding:0 1.25em 0 0;}
+.toolbar a{border-bottom:none;}
+#featured-bottom-wrapper{background-color:#f0f0f0;background:rgba(30,50,10,0.08);border-top:1px solid #e7e7e7;}.region-featured-bottom-first,.region-featured-bottom-second,.region-featured-bottom-third{box-sizing:border-box;padding:0 20px 0;}@media all and (min-width:560px){.region-featured-bottom-first,.region-featured-bottom-second,.region-featured-bottom-third{float:left;position:relative;box-sizing:border-box;padding:20px 15px 30px;width:33%;}[dir="rtl"] .region-featured-bottom-first,[dir="rtl"] .region-featured-bottom-second,[dir="rtl"] .region-featured-bottom-third{float:right;}.region-featured-bottom-second{padding:20px 5px 30px;}}@media all and (min-width:851px){.region-featured-bottom-first,.region-featured-bottom-second,.region-featured-bottom-third{padding:0 20px;}}#featured-bottom h2{color:#000;font-size:1.4em;margin-bottom:0.6em;text-shadow:0 1px 0 #fff;text-align:center;line-height:1;}#featured-bottom .block{margin-bottom:1em;padding-bottom:1em;border-bottom:1px solid #dfdfdf;line-height:1.3;}#featured-bottom .block:last-child{border-bottom:none;}#featured-bottom .block ul li,#featured-bottom .block ol li{list-style:none;}#featured-bottom .block ul,#featured-bottom .block ol{padding-left:0;}#featured-bottom #block-user-login .form-text{width:185px;}#featured-bottom #block-user-online p{margin-bottom:0;}#featured-bottom #block-node-syndicate h2{overflow:hidden;width:0;height:0;}#featured-bottom-third #block-node-syndicate{text-align:right;}#featured-bottom #block-search-form .form-type-search input{width:185px;}#featured-bottom-second #block-system-powered-by{text-align:center;}#featured-bottom-third #block-system-powered-by{text-align:right;}
+.profile .field-name-field-user-picture{float:none;}div.password-suggestions{border:0;}
+.vertical-tabs__menu{margin:-1px 0 -1px -15em;padding:0;}[dir="rtl"] .vertical-tabs__menu{margin-left:0;margin-right:-15em;padding:0;}
+.views-display-top .secondary .action-list{padding-left:0;}[dir="rtl"] .views-display-top .secondary .action-list{padding-left:inherit;padding-right:0;}.views-displays .region-content .secondary,.views-displays .region-content .secondary{padding-bottom:0;padding-left:0;}[dir="rtl"] .views-displays .region-content .secondary{padding-right:0;}.views-displays .secondary a{font-size:smaller;}.views-displays .secondary > li a{border-radius:5px;}.views-displays .secondary > li.open a{border-radius:5px 5px 0 0;}.views-displays .secondary .open > a:hover,.views-displays .secondary .open > a:focus{color:#0071B3;}.views-displays .secondary input.form-submit{font-size:smaller;}.views-filterable-options .filterable-option:nth-of-type(even) .form-type-checkbox{background-color:#F9F9F9;}.views-display-column .details-wrapper{margin-top:0;}.views-display-column details summary{background:none;border:none;font-family:inherit;font-size:13px;line-height:inherit;position:relative;text-indent:0;text-shadow:none;top:3px;}.views-display-columns details{position:inherit;}.views-display-columns details summary{padding:0 0 4px 2px;}[dir="rtl"] .views-display-columns details summary{padding:0 2px 4px 0;}.views-display-columns a.fieldset-title{color:#0071B3;}.views-display-columns a.fieldset-title:hover,.views-display-columns a.fieldset-title:focus{color:#018FE2;}.views-ui-display-tab-actions .dropbutton input{color:#0071B3;}.views-ui-display-tab-actions .dropbutton input:hover,.views-ui-display-tab-actions .dropbutton input:focus{color:#018FE2;}.views-ui-display-tab-actions .dropbutton input.form-submit{margin-right:0;margin-top:0;}[dir="rtl"] .views-ui-display-tab-actions .dropbutton input.form-submit{margin-left:0;}
+.button{background-color:#fff;background-image:-webkit-linear-gradient(top,#f3f3f3,#e8e8e8);background-image:linear-gradient(to bottom,#f3f3f3,#e8e8e8);border:1px solid #e4e4e4;border-bottom-color:#b4b4b4;border-left-color:#d2d2d2;border-right-color:#d2d2d2;color:#3a3a3a;cursor:pointer;font-family:"Lucida Grande","Lucida Sans Unicode",Verdana,sans-serif;font-size:0.929em;font-weight:normal;text-align:center;padding:0.250em 1.063em;border-radius:1em;}.button:hover,.button:active,.button:focus{background:#dedede;color:#5a5a5a;text-decoration:none;}.button.is-disabled:hover,.button.is-disabled:active,.button.is-disabled:focus,.button.is-disabled{background:#ededed;border-color:#bbb;color:#717171;cursor:default;}.image-button.is-disabled:hover,.image-button.is-disabled:active,.image-button.is-disabled:focus,.image-button.is-disabled{background:transparent;opacity:0.5;cursor:default;}
+.ui-widget-overlay{background:#000;opacity:0.7;}.ui-dialog{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;border-radius:0;}.ui-dialog input,.ui-dialog select,.ui-dialog textarea{font-size:0.9em;}.ui-dialog .button{background-color:#fff;background-image:-webkit-linear-gradient(top,#f3f3f3,#e8e8e8);background-image:linear-gradient(to bottom,#f3f3f3,#e8e8e8);border:1px solid #e4e4e4;border-bottom-color:#b4b4b4;border-left-color:#d2d2d2;border-right-color:#d2d2d2;color:#3a3a3a;cursor:pointer;font-size:0.929em;font-weight:normal;text-align:center;padding:0.250em 1.063em;border-radius:1em;}
+body{color:#3b3b3b;background:#292929;}#page,#main-wrapper,.region-primary-menu .menu-item a.is-active,.region-primary-menu .menu-item--active-trail a{background:#ffffff;}.tabs ul.primary li a.is-active{background-color:#ffffff;}.tabs ul.primary li.is-active a{background-color:#ffffff;border-bottom-color:#ffffff;}#header{background-color:#1d84c3;background-image:-webkit-linear-gradient(top,#055a8e 0%,#1d84c3 100%);background-image:linear-gradient(to bottom,#055a8e 0%,#1d84c3 100%);}a,.link{color:#0071b3;}a:hover,a:focus,.link:hover,.link:focus{color:#018fe2;}a:active,.link:active{color:#23aeff;}.sidebar .block{background-color:#f6f6f2;border-color:#f9f9f9;}.site-footer{background:#292929;}.region-header,.region-header a,.region-header li a.is-active,#name-and-slogan,.site-branding-block,#name-and-slogan a,.site-branding-block a,.region-secondary-menu .menu-item a{color:#fffeff;}[dir="rtl"] .color-form .color-palette{margin-left:0;margin-right:20px;}[dir="rtl"] .color-form .form-item label{float:right;}[dir="rtl"] .color-form .color-palette .lock{right:-20px;left:0;}
diff --git a/sites/default/files/css/css_om0epbVVnth3n593PLHbtyw6FQbpIsphy-YuGA1obFc.css.gz b/sites/default/files/css/css_om0epbVVnth3n593PLHbtyw6FQbpIsphy-YuGA1obFc.css.gz
new file mode 100644
index 0000000..8d1c47b
--- /dev/null
+++ b/sites/default/files/css/css_om0epbVVnth3n593PLHbtyw6FQbpIsphy-YuGA1obFc.css.gz
@@ -0,0 +1,29 @@
+     =ێ:r4;4AC`s0-5:G%a"os0x{ǖb,uwr$W/2{>CꩬJuE^mCm}^</H1OwIy
+ܧw!{֤ʷF,6iL|n&Ȧ&/Cy 5mTѺlrJ2Zo+*Lɿe[nNuȠ(B ˺,rGw?iMJz"wUawe7
+p7ҳ!,};f1JぎyBA$=;
+AC9'ZjSeM+뀎Ze7Q6AJci eWB1@3\(-蠩Tmj<ڤ5YYtCG{v.o(eF
+ٚmvUyze]?ʆ#}|ȖHb/ȶazp^&-ͪ)a0J_W48?eywUS):8oFX/ׄ994w9NF?CY9h)aG,"{<,$pqW(vNe]`n[:^g8B?6&";gy},gJ%?R=Yہ@(=5&NIi
+1b`fO<ҢC|-HQ;w53/ѽBn6IX9\L,)1Vp)pf܊Рf&KnmY3B+ߧ*V,`Xٗ#%źDlp.Mĺ\$wxYP!ߔ11N_R'.'C[6d0ef3*nAJ+IfeŷSƳelw3xJ)#8ĚnHY~1 ޓI2LN{б*GJٖڝMQ̨m~}ԃf1ݖݤG@8ɷAV#?Lm:_1~m(sFM4FT'=eTjmc5#=-_gQڃ'x_PcS,iS)69|:y1riuAS4U>1zц)QmB!òueg9jO{-<2kS[6ۜ]{肉XUfWRi7R/L.^OYڴǊ).Q?FǷ7a{uH/׸JHt,*&lZ(5l`{wd栩cYlVHጹBѺU=]OYU&Go(;<ӊiTFvF<@<d7. ZXgEؘ㢋ưPigؘhv4=WG^9H!'`#HNE/:p&[Nv~gh*9.yj~Ӻ띉!Rc7+CΝnnDX8$uܘ㙉e	Ԡ|IKa|2t3&H}u7U4*8:q%ntlMA$;sٰmIpĮ$&'d%ylJ~FiU1gu^C33TmZۥDiQ4bzKP5NtfK:sN ]K+Z.},SM]R؋Xj_rkCޚ]@co:Y8t_	Ruz_<Y[,Y|N?$!xzt6t` i7r[E
+o!5ϱj_HF
+uޮv_#bsR<AX9'VQyYW^~g?pY
+!$jc3 ъ:dL+iDL4vY]7cΝzQ92B* ;am]FuV0~z|.rr-_\f+P]b<	W;Vݾ ^/Z_; qHV$| DH۞R4߄$0I+%aJ4|;C;2缉`cf9݈>Н</lyfmV̮uU^M{Ov';%;o$[%tJ1GA?bFv;*>(7i+#Of_|Yu:"yǄq#_Uq.o+r$ivNG)%ƭc-,(IͼRPzhCM{g|</ģ}ߐ=;,Mb:^E#AkNmC6s뢡+|t`wayrָKK^ޛolyz;	o"!oiy[	-HL瀂~יVo=q_6ǚIbM5Qb}|[k̿%:.3-,_gj[
+&nuXԤdܧ)<[jNk<*[gvxr:Z n0ȞA|HNoZWAL5YBZ	\xoJ5?2;fvbx	?Z^1 Ϊ>Q,T4 qy$m]=(iYǲj9
+p2^Sl#_Y[o^tNޒ9|.;Au>ͩc+.}FX '@!XiAj''cKο;+;)=;W*0kڑ8AG)3)󁠄WB%یgU%WdZ_	?LU3W7I}u}Fo6RSH1]-]9Άkɉ[A,'C=7GM_<di,9$fcOBS>¾ջlHfR(d3n׬uuKcT6 (zL7V)jyƍpLe16&t7SLt>$	gI8bnE<ǩJ9=a7>1GG`3Z Yp[K͌{	kLsoڜm5iCKF4/P`p2G')3e\WTƎ =ێf+A]yp8ޢtחlqNEbx
+I]@DE4GTY&_ԛ*v=4 /uYdԟ(t6N/xjB"iXlʠ'URM`K3.2x98oD.t@>!)يݗݾh(${:~tL}8ה FZpmDcXȄ |9oɪe@<n#aNF`_Je0hAq	`{e Ǜ|GS9y!s˹	<FÉ1."Վ<u{rq+xݍT  b@C mԬ槲ixq9>j];0kѵgX˗7G\Dx~Z8."AFK#eCş-lqL6#X5dQU#nʨkol
+Ӟi\[IΉ*Yk5\Xuc:q`H߁Vևkco)}WZB_1x9/EN2=/Zk>.rS`<3P=]sCNCgO;iv:E6hlFdrFw-Հuv	$v i8oF3D0Wq$h]vT\kW뭬"CDŉh_VhcN( j<)QG@w@NOE'R4ne&i~#m|%-E1#~r8k9sO!<-C}pF̈/ۢ|,? |u҃ϟ[;!,cbjvz2)G֋0ySDL50
+s#ތ
+- <s9cZؾŀ9^L>:$m`/0f/( Y|Rϗ@?z!xF`^B?\T6A['IѲ9:[{_gD+4V" )#݁6:O!Nr$l.cXu3瑯p͐,[p$%j|#tgA=qTܭ,EET*Y񋾚2LK-`+u.Ww*)H&cM+n͎I`G([aNjP+5f;;Do|jܻJX)&nd1E7~(0 3ј<cuIE]0"ګe~t9xh:j_|4  ˿ (*;/FtyZtxmXKmgٝ/NG	FG^E-4%S
+p.yh-UAjZ1<As]QtqÑ.k۱ۺlFL5XF%JUYn_30vIVgeKP_MFU.!9B ;2PPA*=fy@ݙF-	&f\HxRPNCl+H#տGT=R{HWVo(j	N8oq;[xAT)R({T(tnkQggl8S0
+Y ߛKOI"?ֹUGF3QUT)t>+!H4N[~ !m<$[x-U
+T*s4=g=G>3GE-+ڰB͵zdVLVfVV*T7WWӘVdz:N^Gg~}Fllq7[A'Gwd=XQQC4 sW7:hÒ7sCx#YK֥~jByAػ쿏t>Q\*.CEi`\;{9u#ShC
+ x:t࿴5P]cg$bv[m]mK^WZLǮ/$WFuVxZm{II'kl6kj폝C|ふ<4;n09lrn4瓚|ܜYe[Jd.:D'B9~`
+˨q~ oq!%=yspLhy,i;oOC(LA:<tiʿQܽZq_#OoQ';O&L*=lv2a &,J*w( +sz0D<eT}+IWݩ+-z`ϘWk&=!DL5qÕ_@?eDg-5YZt$%%L#TG߀ɑUC4çsEhH=SyH=vYĢRESԦy' 2R^ <k.*2sC6{}|PW+Sw})ճ-1ӷK H=X]Ԯ8SS|[]@|%̱r;bJ*MLϲU95F2Xxb,W9@>%==k$k-s~dY{|cJ޷ZĒ}+҆Ǉ[Eu+iө^ɋ0LڤjYZ#.o4Y`sN&4g==G|_aAzAb!Gȃ!}!"
+ŕ[yY)]wC跪&fzMPHr-k	m
+z+_buˑvP[G	b#\Lj`{[&zc7қluzJ:euGO{޾b8AeXz,R%^:uw;ɵ|W9I!\":Z^0jvy
+oKQt#R	|Vȉ{fu|%lfN]{V\]0#e˂iAX]<o}w)sMFr9ᤞ>a87ۈ=oԉ"$"(֥]3l&LOwKh>B{QbvYqWGPsAꙶXG;NH&.=CQۜM8u>VFtoᑺGݔ>9R_uvQ0\L古v<ԭKBBQyMn<]WY}L"x,lJ'I%=
+;'69dCܩ3t{Sq0ו-. \<-W"Oxʺ$.#s j&<GW/A	5%[|ڥz̶{bC-4WɄX|$4J?]1.^`i`,[vW>ʳ^˦;_bwҟB<kE8f)8BKYȐ=!BK~dp̽=y-cU<GE6xV?]teiׄȇ
+۱#BxF[Ap5tS'ӊ_f("@LiH\C9zZ6A0CGʦsKS06].O}ւ6̱	Zn[E֔y$8 Y9f*vC;;:GH5x/#XM6uֈcq6靠_o-> @<iRѽ02@$k +i`45N:AhxRwEUo.R}=6mADpKh;5./>K՜)3HzuO0{߁<뮂dJbYqFL);!Y9M7]2-ʒkw#>vɑ@_ Ԕe7mo3Qy׏)]rq\0)#ѪE}M	}6qo&Uip4tw`hv(N޻=@ܸ))1(iLrB=kQ6_nNt
+F9dJߥ{e$ڡ
+F7qMi]$!NYJmYu dVQ_+lΘmgՒmJb}XTz|Ȩ S\(mȎXCős(
+j=x,+/ aǪ$j7Rd,2 O1@-$pu]Tfn+**eD>,kh䩎D2D̓LBЕ`ڐPKD -o-L-pxѳ9OWp鹯`1b?p!T:j3U^eRԸawFlt4@G~7El=c[`s];(,=U$Yɸ4<"K	B oV$u+a3A`ɲiG\KS$>$X܎xqHcypj$@o5'K>mS\tޥ/;ӡuz]#1iDrhT	|ʗZRiqeA/J)!M]bR7onZg܅	2 3:{)ዤCKF 8Q
+jU]OoM{97'f+#T {etq{}n%snFۛ.a*C\>GW6p6UA|J?WkzS35U<9ea;a	o)(gpãFE}40gL*/Os8efr!&Y:'A>𵸌}0^Ґ<li)li$%l͸{E'uo=v.3SN,aU<YuhˡּuMXyVٻ6<S"ץ^p^OXWcmփ͝Z B  
\ No newline at end of file
diff --git a/sites/default/files/css/css_uImWk5nmRPAzgA6YevE555hbtuEtzpXpeTetOVTIREk.css b/sites/default/files/css/css_uImWk5nmRPAzgA6YevE555hbtuEtzpXpeTetOVTIREk.css
new file mode 100644
index 0000000..29048a1
--- /dev/null
+++ b/sites/default/files/css/css_uImWk5nmRPAzgA6YevE555hbtuEtzpXpeTetOVTIREk.css
@@ -0,0 +1,11 @@
+.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;}.ui-helper-clearfix:after{clear:both;}.ui-helper-clearfix{min-height:0;}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-front{z-index:100;}.ui-state-disabled{cursor:default !important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%;}
+.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:right;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:left;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{margin:0;padding-left:1.3333em;text-indent:-9999px;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{padding-right:1.3333em;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);}.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab.hidden{display:none;}
+.toolbar .menu,[dir="rtl"] .toolbar .menu{list-style:none;margin:0;padding:0;}.toolbar .toolbar-box{display:block;line-height:1em;position:relative;width:auto;}.toolbar .toolbar-tray-horizontal .menu .toolbar-handle,.toolbar .toolbar-tray-horizontal .menu ul,.toolbar .toolbar-tray-vertical .menu ul{display:none;}.toolbar .toolbar-tray-vertical li.open > ul{display:block;}.toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-right:3em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-left:3em;margin-right:0;}.toolbar .toolbar-tray .menu-item--active-trail > .toolbar-box a,.toolbar .toolbar-tray a.is-active{color:#000;font-weight:bold;}@media screen and (max-width:319px){.toolbar .toolbar-tray-vertical.is-active{width:100%;}}.toolbar .level-2 > ul{background-color:#fafafa;border-bottom-color:#cccccc;border-top-color:#e5e5e5;}.toolbar .level-3 > ul{background-color:#f5f5f5;border-bottom-color:#c5c5c5;border-top-color:#dddddd;}.toolbar .level-4 > ul{background-color:#eeeeee;border-bottom-color:#bbbbbb;border-top-color:#d5d5d5;}.toolbar .level-5 > ul{background-color:#e5e5e5;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-6 > ul{background-color:#eeeeee;border-bottom-color:#aaaaaa;border-top-color:#c5c5c5;}.toolbar .level-7 > ul{background-color:#fafafa;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-8 > ul{background-color:#dddddd;border-bottom-color:#cccccc;border-top-color:#dddddd;}.toolbar .toolbar-handle:hover{cursor:pointer;}.toolbar .toolbar-icon.toolbar-handle{bottom:0;display:block;height:100%;padding:0;position:absolute;right:0;top:0;z-index:1;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle{left:0;padding:0;right:auto;}
+.layout-container{margin:0 1.5em;}.layout-container:after{content:"";display:table;clear:both;}@media screen and (min-width:38em){.layout-container{margin:0 2.5em;}.layout-column{float:left;box-sizing:border-box;}[dir="rtl"] .layout-column{float:right;}.layout-column + .layout-column{padding-left:10px;}[dir="rtl"] .layout-column + .layout-column{padding-right:10px;padding-left:0;}.layout-column.half{width:50%;}.layout-column.quarter{width:25%;}.layout-column.three-quarter{width:75%;}}.panel{padding:5px 5px 15px;}.panel__description{margin:0 0 3px;padding:2px 0 3px 0;}.compact-link{margin:0 0 0.5em 0;}small .admin-link:before{content:' [';}small .admin-link:after{content:']';}.system-modules thead > tr{border:0;}.system-modules div.incompatible{font-weight:bold;}.system-modules td.checkbox{min-width:25px;width:4%;}.system-modules td.module{width:25%;}.system-modules td{vertical-align:top;}.system-modules label,.system-modules-uninstall label{color:#1d1d1d;font-size:1.15em;}.system-modules details{color:#5c5c5b;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.system-modules details[open]{height:auto;overflow:visible;white-space:normal;}.system-modules details[open] summary .text{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;text-transform:none;}.system-modules td details a{color:#5C5C5B;border:0px;}.system-modules td details{border:0;margin:0;height:20px;}.system-modules td details summary{padding:0;text-transform:none;font-weight:normal;cursor:default;}.system-modules td{padding-left:0;}@media screen and (max-width:40em){.system-modules td.name{width:20%;}.system-modules td.description{width:40%;}}.system-modules .requirements{padding:5px 0;max-width:490px;}.system-modules .links{overflow:hidden;}.system-modules .checkbox{margin:0 5px;}.system-modules .checkbox .form-item{margin-bottom:0;}.admin-requirements,.admin-required{font-size:0.9em;color:#666;}.admin-enabled{color:#080;}.admin-missing{color:#f00;}.module-link{display:block;padding:2px 20px;white-space:nowrap;margin-top:2px;float:left;}[dir="rtl"] .module-link{float:right;}.module-link-help{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg) 0 50% no-repeat;}.module-link-permissions{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/key.svg) 0 50% no-repeat;}.module-link-configure{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/cog.svg) 0 50% no-repeat;}.system-status-report td{vertical-align:top;}.system-status-report__status-icon{width:16px;padding-right:0;}[dir="rtl"] .system-status-report__status-icon{padding-left:0;padding-right:6px;}.system-status-report__status-icon:before{content:"";background-repeat:no-repeat;height:16px;width:16px;margin-top:2px;display:block;}.system-status-report__status-icon--error:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ea2800/error.svg);}.system-status-report__status-icon--warning:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/e29700/warning.svg);}.system-status-report__status-title{width:25%;}.theme-info__header{margin-bottom:0;font-weight:normal;}.theme-default .theme-info__header{font-weight:bold;}.theme-info__description{margin-top:0;}.system-themes-list{margin-bottom:20px;}.system-themes-list-uninstalled{border-top:1px solid #cdcdcd;padding-top:20px;}.system-themes-list__header{margin:0;}.theme-selector{padding-top:20px;}.theme-selector .screenshot,.theme-selector .no-screenshot{border:1px solid #e0e0d8;padding:2px;vertical-align:bottom;max-width:100%;height:auto;text-align:center;}.theme-default .screenshot{border:1px solid #aaa;}.system-themes-list-uninstalled .screenshot,.system-themes-list-uninstalled .no-screenshot{max-width:194px;height:auto;}@media screen and (min-width:45em){body:not(.toolbar-vertical) .system-themes-list-installed .screenshot,body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot{float:left;margin:0 20px 0 0;width:294px;}[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .screenshot,[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot{float:right;margin:0 0 0 20px;}body:not(.toolbar-vertical) .system-themes-list-installed .system-themes-list__header{margin-top:0;}body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector{box-sizing:border-box;width:31.25%;float:left;padding:20px 20px 20px 0;}[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector{float:right;padding:20px 0 20px 20px;}body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-info{min-height:170px;}}@media screen and (min-width:60em){.toolbar-vertical .system-themes-list-installed .screenshot,.toolbar-vertical .system-themes-list-installed .no-screenshot{float:left;margin:0 20px 0 0;width:294px;}[dir="rtl"] .toolbar-vertical .system-themes-list-installed .screenshot,[dir="rtl"] .toolbar-vertical .system-themes-list-installed .no-screenshot{float:right;margin:0 0 0 20px;}.toolbar-vertical .system-themes-list-installed .theme-info__header{margin-top:0;}.toolbar-vertical .system-themes-list-uninstalled .theme-selector{box-sizing:border-box;width:31.25%;float:left;padding:20px 20px 20px 0;}[dir="rtl"] .toolbar-vertical .system-themes-list-uninstalled .theme-selector{float:right;padding:20px 0 20px 20px;}.toolbar-vertical .system-themes-list-uninstalled .theme-info{min-height:170px;}}.system-themes-list-installed .theme-info{max-width:940px;}.theme-selector .incompatible{margin-top:10px;font-weight:bold;}.theme-selector .operations{margin:10px 0 0 0;padding:0;}.theme-selector .operations li{float:left;margin:0;padding:0 0.7em;list-style-type:none;border-right:1px solid #cdcdcd;}[dir="rtl"] .theme-selector .operations li{float:right;border-left:1px solid #cdcdcd;border-right:none;}.theme-selector .operations li:last-child{padding:0 0 0 0.7em;border-right:none;}[dir="rtl"] .theme-selector .operations li:last-child{padding:0 0.7em 0 0;border-left:none;}.theme-selector .operations li:first-child{padding:0 0.7em 0 0;}[dir="rtl"] .theme-selector .operations li:first-child{padding:0 0 0 0.7em;}.system-themes-admin-form{clear:left;}
+.contextual{position:absolute;right:0;top:6px;z-index:500;}[dir="rtl"] .contextual{left:0;right:auto;}.contextual-region.focus{outline:1px dashed #d6d6d6;outline-offset:1px;}.contextual .trigger{background-attachment:scroll;background-color:#fff;border:1px solid #ccc;border-radius:13px;float:right;margin:0;overflow:hidden;padding:0 2px;position:relative;right:6px;cursor:pointer;}[dir="rtl"] .contextual .trigger{float:left;right:auto;left:6px;}.contextual.open .trigger{border:1px solid #ccc;border-bottom-color:transparent;border-radius:13px 13px 0 0;box-shadow:none;z-index:2;}.contextual-region .contextual .contextual-links{background-color:#fff;border:1px solid #ccc;border-radius:4px 0 4px 4px;clear:both;float:right;margin:0;padding:0.25em 0;position:relative;right:6px;text-align:left;top:-1px;white-space:nowrap;}[dir="rtl"] .contextual-region .contextual .contextual-links{border-radius:0 4px 4px 4px;float:left;left:6px;right:auto;text-align:right;}.contextual-region .contextual .contextual-links li{background-color:#fff;border:none;list-style:none;list-style-image:none;margin:0;padding:0;line-height:100%;}.contextual-region .contextual .contextual-links a{background-color:#fff;color:#333;display:block;font-family:sans-serif;font-size:small;line-height:0.8em;margin:0.25em 0;padding:0.4em 0.6em;}.touch .contextual-region .contextual .contextual-links a{font-size:large;}.contextual-region .contextual .contextual-links a,.contextual-region .contextual .contextual-links a:hover{text-decoration:none;}.no-touch .contextual-region .contextual .contextual-links li a:hover{color:white;background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);}
+.toolbar-bar .toolbar-icon-edit:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);}.toolbar-bar .toolbar-icon-edit:active:before,.toolbar-bar .toolbar-icon-edit.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/pencil.svg);}.contextual .trigger{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);background-position:center center;background-repeat:no-repeat;background-size:16px 16px;height:26px !important;width:26px !important;text-indent:-9999px;}.contextual .trigger:hover{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/pencil.svg);}.contextual .trigger:focus{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/pencil.svg);outline:none;}
+.toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:right;padding:1em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:left;}.toolbar .toolbar-tray-horizontal .edit-shortcuts{float:right;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .edit-shortcuts{float:left;}.add-or-remove-shortcuts{display:inline-block;margin-left:0.3em;}[dir="rtl"] .add-or-remove-shortcuts{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts .text{background:#000000;background:rgba(0,0,0,0.5);border-radius:5px;padding:0 5px;color:#ffffff;display:inline-block;margin-left:0.3em;opacity:0;-ms-transform:translateY(-12px);-webkit-transform:translateY(-12px);transform:translateY(-12px);-webkit-transition:all 200ms ease-out;transition:all 200ms ease-out;-ms-backface-visibility:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;}[dir="rtl"] .add-or-remove-shortcuts .text{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts a:hover .text,.add-or-remove-shortcuts a:focus .text{opacity:1;-ms-transform:translateY(-2px);-webkit-transform:translateY(-2px);transform:translateY(-2px);}
+.toolbar-bar .toolbar-icon-shortcut:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/star.svg);}.toolbar-bar .toolbar-icon-shortcut:active:before,.toolbar-bar .toolbar-icon-shortcut.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/star.svg);}.add-or-remove-shortcuts .icon{background:transparent url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar.svg) no-repeat left top;width:20px;height:20px;display:inline-block;vertical-align:-2px;}[dir="rtl"] .add-or-remove-shortcuts .icon{background-image:url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar-rtl.svg);}.add-shortcut a:hover .icon,.add-shortcut a:focus .icon{background-position:-20px top;}.remove-shortcut .icon{background-position:-40px top;}.remove-shortcut a:focus .icon,.remove-shortcut a:hover .icon{background-position:-60px top;}
+.toolbar{font-family:"Source Sans Pro","Lucida Grande",Verdana,sans-serif;font-size:0.8125rem;-moz-tap-highlight-color:rgba(0,0,0,0);-o-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0);-moz-touch-callout:none;-o-touch-callout:none;-webkit-touch-callout:none;touch-callout:none;}.toolbar .toolbar-item{cursor:pointer;padding:1em 1.3333em;line-height:1em;text-decoration:none;}.toolbar .toolbar-item:hover,.toolbar .toolbar-item:focus{text-decoration:underline;}.toolbar .toolbar-bar{background-color:#0f0f0f;box-shadow:-1px 0 3px 1px rgba(0,0,0,0.3333);color:#dddddd;}[dir="rtl"] .toolbar .toolbar-bar{box-shadow:1px 0 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-bar .toolbar-item{color:#ffffff;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item{font-weight:bold;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:hover,.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:focus{background-image:-webkit-linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);text-decoration:none;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);}.toolbar .toolbar-tray{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:5em;}[dir="rtl"] .toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:0;padding-left:5em;}.toolbar .toolbar-tray-vertical{background-color:#f5f5f5;border-right:1px solid #aaaaaa;box-shadow:-1px 0 5px 2px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-vertical{border-left:1px solid #aaaaaa;border-right:0 none;box-shadow:1px 0 5px 2px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal{border-bottom:1px solid #aaaaaa;box-shadow:-2px 1px 3px 1px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-horizontal{box-shadow:2px 1px 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal .toolbar-tray{background-color:#f5f5f5;}.toolbar-tray a{color:#565656;cursor:pointer;padding:1em 1.3333em;text-decoration:none;}.toolbar-tray a:hover,.toolbar-tray a:active,.toolbar-tray a:focus,.toolbar-tray a.is-active{color:#000;text-decoration:underline;}.toolbar .menu{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:0 none;border-right:1px solid #dddddd;}.toolbar .toolbar-tray-horizontal .menu-item:last-child{border-right:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item:last-child{border-left:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item + .menu-item{border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child{border-bottom:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item .menu-item{border:0 none;}.toolbar .toolbar-tray-vertical .menu ul ul{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child > ul{border-bottom:0;}.toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0.25em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0;margin-right:0.25em;}.toolbar .menu .menu a{color:#434343;}.toolbar .toolbar-toggle-orientation{background-color:#f5f5f5;padding:0.6667em;}.toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:1px solid #c9c9c9;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:0 none;border-right:1px solid #c9c9c9;}.toolbar .toolbar-toggle-orientation > .toolbar-lining{float:right;padding:0.1667em;}[dir="rtl"] .toolbar .toolbar-toggle-orientation > .toolbar-lining{float:left;}.toolbar .toolbar-toggle-orientation button{cursor:pointer;display:inline-block;}
+.toolbar .toolbar-icon{padding-left:2.75em;position:relative;}[dir="rtl"] .toolbar .toolbar-icon{padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-icon:before{background-attachment:scroll;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:100% auto;content:'';display:block;height:100%;left:0.6667em;position:absolute;top:0;width:20px;}[dir="rtl"] .toolbar .toolbar-icon:before{left:auto;right:0.6667em;}.toolbar button.toolbar-icon{background-color:transparent;border:0;font-size:1em;}.toolbar .menu ul .toolbar-icon{padding-left:1.3333em;}[dir="rtl"] .toolbar .menu ul .toolbar-icon{padding-left:0;padding-right:1.3333em;}.toolbar .menu ul a.toolbar-icon:before{display:none;}.toolbar .toolbar-tray-vertical .menu ul a{padding-left:2.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul a{padding-left:0;padding-right:2.75em;}.toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:3.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:0;padding-right:3.75em;}.toolbar .toolbar-tray-vertical .menu a{padding-left:2.75em;padding-right:4em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu a{padding-left:4em;padding-right:2.75em;}.toolbar-bar .toolbar-icon-menu:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/hamburger.svg);}.toolbar-bar .toolbar-icon-menu:active:before,.toolbar-bar .toolbar-icon-menu.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/hamburger.svg);}.toolbar-bar .toolbar-icon-help:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/questionmark-disc.svg);}.toolbar-bar .toolbar-icon-help:active:before,.toolbar-bar .toolbar-icon-help.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/questionmark-disc.svg);}.toolbar-icon-system-admin-content:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/file.svg);}.toolbar-icon-system-admin-content:active:before,.toolbar-icon-system-admin-content.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/file.svg);}.toolbar-icon-system-admin-structure:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/orgchart.svg);}.toolbar-icon-system-admin-structure:active:before,.toolbar-icon-system-admin-structure.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/orgchart.svg);}.toolbar-icon-system-themes-page:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/paintbrush.svg);}.toolbar-icon-system-themes-page:active:before,.toolbar-icon-system-themes-page.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/paintbrush.svg);}.toolbar-icon-entity-user-collection:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/people.svg);}.toolbar-icon-entity-user-collection:active:before,.toolbar-icon-entity-user-collection.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/people.svg);}.toolbar-icon-system-modules-list:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/puzzlepiece.svg);}.toolbar-icon-system-modules-list:active:before,.toolbar-icon-system-modules-list.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/puzzlepiece.svg);}.toolbar-icon-system-admin-config:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/wrench.svg);}.toolbar-icon-system-admin-config:active:before,.toolbar-icon-system-admin-config.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/wrench.svg);}.toolbar-icon-system-admin-reports:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/barchart.svg);}.toolbar-icon-system-admin-reports:active:before,.toolbar-icon-system-admin-reports.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/barchart.svg);}.toolbar-icon-help-main:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg);}.toolbar-icon-help-main:active:before,.toolbar-icon-help-main.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/questionmark-disc.svg);}.toolbar .toolbar-bar .toolbar-icon:before{min-height:3em;}@media only screen and (min-width:16.5em){.toolbar .toolbar-bar .toolbar-icon{margin-left:0;margin-right:0;padding-left:0;padding-right:0;text-indent:-9999px;width:4em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:42% auto;left:0;width:100%;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:auto;right:0;}}@media only screen and (min-width:36em){.toolbar .toolbar-bar .toolbar-icon{background-position:left center;padding-left:2.75em;padding-right:1.3333em;text-indent:0;width:auto;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon{background-position:right center;padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:100% auto;left:0.6667em;width:20px;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:0;right:0.6667em;}}.toolbar-tab a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tab a{border-left:none;border-right:2px solid transparent;}.toolbar-tab a:focus{outline:none;border-color:#ddd;}.toolbar-lining button:focus{outline:none;}.toolbar-tray-horizontal a,.toolbar-box a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tray-horizontal a,[dir="rtl"] .toolbar-box a{border-left:none;border-right:2px solid transparent;}.toolbar-tray-horizontal a:focus,.toolbar-box a:focus{outline:none;border-color:#4479C0;background-color:#f5f5f5;text-decoration:none;}.toolbar-box a:hover:focus{text-decoration:underline;}.toolbar .toolbar-icon.toolbar-handle:focus{outline:none;background-color:#f5f5f5;}.toolbar .toolbar-icon.toolbar-handle{width:4em;text-indent:-9999px;}.toolbar .toolbar-icon.toolbar-handle:before{left:1.6667em;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle:before{left:auto;right:1.6667em;}.toolbar .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/chevron-disc-down.svg);}.toolbar .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/chevron-disc-up.svg);}.toolbar .menu .menu .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/twistie-down.svg);background-size:75%;}.toolbar .menu .menu .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/twistie-up.svg);background-size:75%;}.toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-left.svg);}[dir="rtl"] .toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-right.svg);}.toolbar .toolbar-toggle-orientation button{height:16px;padding:0;text-indent:-999em;width:20px;}.toolbar .toolbar-toggle-orientation button:before{left:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation button:before{left:auto;right:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation .toolbar-icon{padding-right:0;}.toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-left.svg);}.toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,.toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-left.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-right.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-right.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-up.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:hover:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-up.svg);}
+.toolbar-bar .toolbar-icon-user:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/person.svg);}.toolbar-bar .toolbar-icon-user:active:before,.toolbar-bar .toolbar-icon-user.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/person.svg);}
diff --git a/sites/default/files/css/css_uImWk5nmRPAzgA6YevE555hbtuEtzpXpeTetOVTIREk.css.gz b/sites/default/files/css/css_uImWk5nmRPAzgA6YevE555hbtuEtzpXpeTetOVTIREk.css.gz
new file mode 100644
index 0000000..35fdfd2
--- /dev/null
+++ b/sites/default/files/css/css_uImWk5nmRPAzgA6YevE555hbtuEtzpXpeTetOVTIREk.css.gz
@@ -0,0 +1,10 @@
+     <ko붒+)&XˑIl~_.(pEQm	GT=c%)QNZ89DΓ7'QSTE^7Y\0UR|eMӤؔ8^7',o#*I40hEQ FWI<mj}I:d2J\a$Jwy(*>jJ"~>_SAbTo%}S@qVoB5q*0OSTTx#p`fױd@i<b$	Qu^	}m~^0_>IE4LK`O#F5sst
+MIk?c5j:inW)d?aPPM(0Acp~ r	b*~yP/>AnPI%}#J_:{/HB208J(7}|*"Ǿ<@YipyR]gIݘH7}Mjh~(Q _aw8[f˻/iFnfl\xdl{φvF,#ΚYCIji.KŢ)U:7AKy|Qʨ(Rf|RCݯtKy^UD0WO	<"!QA'ϧvY$!ic fz60vym눣yUXb$]7ؔ*>II="pA(#3\;+,XV2`觏ކӏˎ~LXVcYY0XV2`aY&s?Gic}uob9'FpqP-Lnd(ef9ORqhLPdBr`,u
+XIl |$Sgk,(Aۻ(W :{nfWjjPIDZ,Wuv+jTдY<ok;˗NwQYB'z#V#4*HRp("j'>?{ljF"NGM+1$e5yQ:kb{h8JBn.WE;F'W}&l,E;azo$Eȉ>K^Bl0J|D£&NӤjC W}ξbq8jxZx	chJ#༪9hxKqV1,~Ro(?(dѣS{:@(d\Ӧ?蔲vk?|ꌹdysYM`xPݟ:3 0OhBiM%IJr])H(91"IvLke'ys"hy	﷾0z/:u5?<Ch^qs6<@1G{aD2#զ0m9$Ԁf[9x;F'4%EhL.6@J㼪of%-erMȯ-	dۇGr +Ih k||'d:
+\RY&+~u! CSFz>fI毩|zo--V4㢂[D >P{ݺmUz^a
+e	SLG-":v#/AH(Z P;bX/_H4,OM`ܪlEղ@[W>i4Xjb`e%%`DޏaDvf(NqX GmS*Y̉>$jqQ[b0H^WNwkbPV7HI7	[rʵD=0(>J_PgG$oY_k!Dw@QّtZL,)&>!PH'LThf91!sb%3/a7D,n{;,o.()f1:GL.8dv-|Ϟ.m65!9{sXd$d5x簌uO|xھ&Q~-)(d,M40mr,ۃ {C7)8IĖ'X3 t' Zyq"v frf ^Q?H!@V×n_N\U1̳5D%y)T`ek$ְ1oaSEJjks2Iqy$Wtm}K"7iJ^ka{TXT6h@%H a|E"`w1&HYz|Sj_H[^FUWFE#-ɨ{Eu+,P$z.=ASE3`[)R%CK&,wwwZ:=:&릂fLRHm4<rO~׼8	c6:R@lzn,|#1Ii΋Vr=[.wW ueb~oއP}q"u7B+ik[wAO?#"Rෆe<JDK울uZRA._`jw&qB{ذxCqpZRG+ ɰSy	{\hlQj &, ~Nj0<F%K̓ɕ_,i![W/핑FR(늮-&[Ie*lso;rڕݓjno~hߵf+<P|͓2Q?%4	!*i5E@h2I\sP=wl.Pb@MZP}4mtUqREq2qD.-	4ʍ[疘n##;xEρQm9zYY73g:m'#XuoK䚁[=;)_e~5g&,W2BnP[,W@*Q0:R2BPN`vrF6tE"k*FN
+΁G~n+0nII(=UW,g,%Aj9cX{rɩ%puxnZѬ}혒*|%BNlA0 LbUhGZa`ݎL0#o  i&{}8A;tJ?o;4ŜB}"Ih#Ōj9q6vre>,FC3!%K<<Yv:aoi&gQ1Kn܆$%rylH3}iڢ5..pzp!wݦst.A#ݩFran~$7OS/;2yvpdt.%Xq:T}p=R.\#]@
+\8pWM=YIzfyEwked,?RK]cP3c7z~F[m@dx"	h.2/#OF8rG`QAՙ3fEL	)ae|{דjX]eJ
+Aѭm_2J\TH(lJyFaa3o9EiR'E_1B?{bz ҙqaou:Ȼ7N$
+͢S!ޟG~Ԉ%7 bt5;PRw HO`4͇	Ir*i9ReLVy)|%5$Xjpaɲ-gGlº)%ř0Fe=g]>G.BႠXlؕJ?G#\|IWqHKeX'Ή^RzQ6߿HpN`Hi>9\R/0	cgJx*h9"uѮ.)N@1>G|?ս$⺎!9>Gxc{Y%r~R4Wqz Ln׬xyH҉B<;_8ݡQޭ]i~*__u(//Ȼ(H伡>ds5eޔmZZș{x*zNUHX^'M߬){4S_z>=f}$gHGoR$Bx-ZZFv|N5}FGև_aY!'hib`3k %NJ1~.GKfuKF7
+uMѣM޵X(tk4V.:BخBT`q_2">gC"d)?Q2`ZP0L6QnCCJl\yѳM˃\V`SPyLdʑGЫh# ~&[!Aic~|*~.'ΖС]$|كegGfK84j  
\ No newline at end of file
diff --git a/sites/default/files/css/css_ulYYDqljc9WXlPh07faHWZ8YsaY2dVXO7CHQUnG_HGc.css b/sites/default/files/css/css_ulYYDqljc9WXlPh07faHWZ8YsaY2dVXO7CHQUnG_HGc.css
new file mode 100644
index 0000000..b6ff737
--- /dev/null
+++ b/sites/default/files/css/css_ulYYDqljc9WXlPh07faHWZ8YsaY2dVXO7CHQUnG_HGc.css
@@ -0,0 +1,13 @@
+.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:right;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab{float:left;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{margin:0;padding-left:1.3333em;text-indent:-9999px;}[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item{padding-right:1.3333em;}.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%);}.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab.hidden{display:none;}
+.toolbar .menu,[dir="rtl"] .toolbar .menu{list-style:none;margin:0;padding:0;}.toolbar .toolbar-box{display:block;line-height:1em;position:relative;width:auto;}.toolbar .toolbar-tray-horizontal .menu .toolbar-handle,.toolbar .toolbar-tray-horizontal .menu ul,.toolbar .toolbar-tray-vertical .menu ul{display:none;}.toolbar .toolbar-tray-vertical li.open > ul{display:block;}.toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-right:3em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-handle + a{margin-left:3em;margin-right:0;}.toolbar .toolbar-tray .menu-item--active-trail > .toolbar-box a,.toolbar .toolbar-tray a.is-active{color:#000;font-weight:bold;}@media screen and (max-width:319px){.toolbar .toolbar-tray-vertical.is-active{width:100%;}}.toolbar .level-2 > ul{background-color:#fafafa;border-bottom-color:#cccccc;border-top-color:#e5e5e5;}.toolbar .level-3 > ul{background-color:#f5f5f5;border-bottom-color:#c5c5c5;border-top-color:#dddddd;}.toolbar .level-4 > ul{background-color:#eeeeee;border-bottom-color:#bbbbbb;border-top-color:#d5d5d5;}.toolbar .level-5 > ul{background-color:#e5e5e5;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-6 > ul{background-color:#eeeeee;border-bottom-color:#aaaaaa;border-top-color:#c5c5c5;}.toolbar .level-7 > ul{background-color:#fafafa;border-bottom-color:#b5b5b5;border-top-color:#cccccc;}.toolbar .level-8 > ul{background-color:#dddddd;border-bottom-color:#cccccc;border-top-color:#dddddd;}.toolbar .toolbar-handle:hover{cursor:pointer;}.toolbar .toolbar-icon.toolbar-handle{bottom:0;display:block;height:100%;padding:0;position:absolute;right:0;top:0;z-index:1;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle{left:0;padding:0;right:auto;}
+.layout-container{margin:0 1.5em;}.layout-container:after{content:"";display:table;clear:both;}@media screen and (min-width:38em){.layout-container{margin:0 2.5em;}.layout-column{float:left;box-sizing:border-box;}[dir="rtl"] .layout-column{float:right;}.layout-column + .layout-column{padding-left:10px;}[dir="rtl"] .layout-column + .layout-column{padding-right:10px;padding-left:0;}.layout-column.half{width:50%;}.layout-column.quarter{width:25%;}.layout-column.three-quarter{width:75%;}}.panel{padding:5px 5px 15px;}.panel__description{margin:0 0 3px;padding:2px 0 3px 0;}.compact-link{margin:0 0 0.5em 0;}small .admin-link:before{content:' [';}small .admin-link:after{content:']';}.system-modules thead > tr{border:0;}.system-modules div.incompatible{font-weight:bold;}.system-modules td.checkbox{min-width:25px;width:4%;}.system-modules td.module{width:25%;}.system-modules td{vertical-align:top;}.system-modules label,.system-modules-uninstall label{color:#1d1d1d;font-size:1.15em;}.system-modules details{color:#5c5c5b;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.system-modules details[open]{height:auto;overflow:visible;white-space:normal;}.system-modules details[open] summary .text{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;text-transform:none;}.system-modules td details a{color:#5C5C5B;border:0px;}.system-modules td details{border:0;margin:0;height:20px;}.system-modules td details summary{padding:0;text-transform:none;font-weight:normal;cursor:default;}.system-modules td{padding-left:0;}@media screen and (max-width:40em){.system-modules td.name{width:20%;}.system-modules td.description{width:40%;}}.system-modules .requirements{padding:5px 0;max-width:490px;}.system-modules .links{overflow:hidden;}.system-modules .checkbox{margin:0 5px;}.system-modules .checkbox .form-item{margin-bottom:0;}.admin-requirements,.admin-required{font-size:0.9em;color:#666;}.admin-enabled{color:#080;}.admin-missing{color:#f00;}.module-link{display:block;padding:2px 20px;white-space:nowrap;margin-top:2px;float:left;}[dir="rtl"] .module-link{float:right;}.module-link-help{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg) 0 50% no-repeat;}.module-link-permissions{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/key.svg) 0 50% no-repeat;}.module-link-configure{background:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/cog.svg) 0 50% no-repeat;}.system-status-report td{vertical-align:top;}.system-status-report__status-icon{width:16px;padding-right:0;}[dir="rtl"] .system-status-report__status-icon{padding-left:0;padding-right:6px;}.system-status-report__status-icon:before{content:"";background-repeat:no-repeat;height:16px;width:16px;margin-top:2px;display:block;}.system-status-report__status-icon--error:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ea2800/error.svg);}.system-status-report__status-icon--warning:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/e29700/warning.svg);}.system-status-report__status-title{width:25%;}.theme-info__header{margin-bottom:0;font-weight:normal;}.theme-default .theme-info__header{font-weight:bold;}.theme-info__description{margin-top:0;}.system-themes-list{margin-bottom:20px;}.system-themes-list-uninstalled{border-top:1px solid #cdcdcd;padding-top:20px;}.system-themes-list__header{margin:0;}.theme-selector{padding-top:20px;}.theme-selector .screenshot,.theme-selector .no-screenshot{border:1px solid #e0e0d8;padding:2px;vertical-align:bottom;max-width:100%;height:auto;text-align:center;}.theme-default .screenshot{border:1px solid #aaa;}.system-themes-list-uninstalled .screenshot,.system-themes-list-uninstalled .no-screenshot{max-width:194px;height:auto;}@media screen and (min-width:45em){body:not(.toolbar-vertical) .system-themes-list-installed .screenshot,body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot{float:left;margin:0 20px 0 0;width:294px;}[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .screenshot,[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot{float:right;margin:0 0 0 20px;}body:not(.toolbar-vertical) .system-themes-list-installed .system-themes-list__header{margin-top:0;}body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector{box-sizing:border-box;width:31.25%;float:left;padding:20px 20px 20px 0;}[dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector{float:right;padding:20px 0 20px 20px;}body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-info{min-height:170px;}}@media screen and (min-width:60em){.toolbar-vertical .system-themes-list-installed .screenshot,.toolbar-vertical .system-themes-list-installed .no-screenshot{float:left;margin:0 20px 0 0;width:294px;}[dir="rtl"] .toolbar-vertical .system-themes-list-installed .screenshot,[dir="rtl"] .toolbar-vertical .system-themes-list-installed .no-screenshot{float:right;margin:0 0 0 20px;}.toolbar-vertical .system-themes-list-installed .theme-info__header{margin-top:0;}.toolbar-vertical .system-themes-list-uninstalled .theme-selector{box-sizing:border-box;width:31.25%;float:left;padding:20px 20px 20px 0;}[dir="rtl"] .toolbar-vertical .system-themes-list-uninstalled .theme-selector{float:right;padding:20px 0 20px 20px;}.toolbar-vertical .system-themes-list-uninstalled .theme-info{min-height:170px;}}.system-themes-list-installed .theme-info{max-width:940px;}.theme-selector .incompatible{margin-top:10px;font-weight:bold;}.theme-selector .operations{margin:10px 0 0 0;padding:0;}.theme-selector .operations li{float:left;margin:0;padding:0 0.7em;list-style-type:none;border-right:1px solid #cdcdcd;}[dir="rtl"] .theme-selector .operations li{float:right;border-left:1px solid #cdcdcd;border-right:none;}.theme-selector .operations li:last-child{padding:0 0 0 0.7em;border-right:none;}[dir="rtl"] .theme-selector .operations li:last-child{padding:0 0.7em 0 0;border-left:none;}.theme-selector .operations li:first-child{padding:0 0.7em 0 0;}[dir="rtl"] .theme-selector .operations li:first-child{padding:0 0 0 0.7em;}.system-themes-admin-form{clear:left;}
+.contextual{position:absolute;right:0;top:6px;z-index:500;}[dir="rtl"] .contextual{left:0;right:auto;}.contextual-region.focus{outline:1px dashed #d6d6d6;outline-offset:1px;}.contextual .trigger{background-attachment:scroll;background-color:#fff;border:1px solid #ccc;border-radius:13px;float:right;margin:0;overflow:hidden;padding:0 2px;position:relative;right:6px;cursor:pointer;}[dir="rtl"] .contextual .trigger{float:left;right:auto;left:6px;}.contextual.open .trigger{border:1px solid #ccc;border-bottom-color:transparent;border-radius:13px 13px 0 0;box-shadow:none;z-index:2;}.contextual-region .contextual .contextual-links{background-color:#fff;border:1px solid #ccc;border-radius:4px 0 4px 4px;clear:both;float:right;margin:0;padding:0.25em 0;position:relative;right:6px;text-align:left;top:-1px;white-space:nowrap;}[dir="rtl"] .contextual-region .contextual .contextual-links{border-radius:0 4px 4px 4px;float:left;left:6px;right:auto;text-align:right;}.contextual-region .contextual .contextual-links li{background-color:#fff;border:none;list-style:none;list-style-image:none;margin:0;padding:0;line-height:100%;}.contextual-region .contextual .contextual-links a{background-color:#fff;color:#333;display:block;font-family:sans-serif;font-size:small;line-height:0.8em;margin:0.25em 0;padding:0.4em 0.6em;}.touch .contextual-region .contextual .contextual-links a{font-size:large;}.contextual-region .contextual .contextual-links a,.contextual-region .contextual .contextual-links a:hover{text-decoration:none;}.no-touch .contextual-region .contextual .contextual-links li a:hover{color:white;background-image:-webkit-linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);background-image:linear-gradient(rgb(78,159,234) 0%,rgb(65,126,210) 100%);}
+.toolbar-bar .toolbar-icon-edit:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);}.toolbar-bar .toolbar-icon-edit:active:before,.toolbar-bar .toolbar-icon-edit.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/pencil.svg);}.contextual .trigger{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/pencil.svg);background-position:center center;background-repeat:no-repeat;background-size:16px 16px;height:26px !important;width:26px !important;text-indent:-9999px;}.contextual .trigger:hover{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/pencil.svg);}.contextual .trigger:focus{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/pencil.svg);outline:none;}
+.js .dropbutton-widget{background-color:white;border:1px solid #cccccc;}.js .dropbutton-widget:hover{border-color:#b8b8b8;}.dropbutton .dropbutton-action > *{padding:0.1em 0.5em;white-space:nowrap;}.dropbutton .secondary-action{border-top:1px solid #e8e8e8;}.dropbutton-multiple .dropbutton{border-right:1px solid #e8e8e8;}[dir="rtl"] .dropbutton-multiple .dropbutton{border-left:1px solid #e8e8e8;border-right:0 none;}.dropbutton-multiple .dropbutton .dropbutton-action > *{margin-right:0.25em;}[dir="rtl"] .dropbutton-multiple .dropbutton .dropbutton-action > *{margin-left:0.25em;margin-right:0;}
+.views-admin .links{list-style:none outside none;margin:0;}.views-admin a:hover{text-decoration:none;}.box-padding{padding-left:12px;padding-right:12px;}.box-margin{margin:12px 12px 0 12px;}.views-admin .icon{height:16px;width:16px;}.views-admin .icon,.views-admin .icon-text{background-attachment:scroll;background-image:url(http://localhost/pub_html/contri/drupal/core/modules/views_ui/images/sprites.png);background-position:left top;background-repeat:no-repeat;}[dir="rtl"] .views-admin .icon,[dir="rtl"] .views-admin .icon-text{background-position:right top;}.views-admin a.icon{background-image:url(http://localhost/pub_html/contri/drupal/core/modules/views_ui/images/sprites.png),-webkit-gradient(linear,left top,left bottom,color-stop(0.0,rgba(255,255,255,1.0)),color-stop(1.0,rgba(232,232,232,1.0)));background-image:url(http://localhost/pub_html/contri/drupal/core/modules/views_ui/images/sprites.png),-webkit-linear-gradient(-90deg,#fff 0,#e8e8e8 100%);background-repeat:no-repeat,repeat-y;border:1px solid #ddd;border-radius:4px;box-shadow:0 0 0 rgba(0,0,0,0.3333) inset;}.views-admin a.icon:hover{border-color:#d0d0d0;box-shadow:0 0 1px rgba(0,0,0,0.3333) inset;}.views-admin a.icon:active{border-color:#c0c0c0;}.views-admin span.icon{display:inline-block;float:left;position:relative;}[dir="rtl"] .views-admin span.icon{float:right;}.views-admin .icon.compact{display:block;overflow:hidden;text-indent:-9999px;}.views-admin .icon-text{padding-left:19px;}[dir="rtl"] .views-admin .icon-text{padding-left:0;padding-right:19px;}.views-admin .icon.linked{background-position:center -153px;}.views-admin .icon.unlinked{background-position:center -195px;}.views-admin .icon.add{background-position:center 3px;}.views-admin a.icon.add{background-position:center 3px,left top;}[dir="rtl"] .views-admin a.icon.add{background-position:center 3px,right top;}.views-admin .icon.delete{background-position:center -52px;}.views-admin a.icon.delete{background-position:center -52px,left top;}[dir="rtl"] .views-admin a.icon.delete{background-position:center -52px,right top;}.views-admin .icon.rearrange{background-position:center -111px;}.views-admin a.icon.rearrange{background-position:center -111px,left top;}[dir="rtl"] .views-admin a.icon.rearrange{background-position:center -111px,right top;}.views-displays .secondary a:hover > .icon.add{background-position:center -25px;}.views-displays .secondary .open a:hover > .icon.add{background-position:center 3px;}details.box-padding{border:none;}.views-admin details details{margin-bottom:0;}.form-item{margin-top:9px;padding-bottom:0;padding-top:0;}.form-type-checkbox{margin-top:6px;}input.form-checkbox,input.form-radio{vertical-align:baseline;}.form-submit:not(.js-hide) + .form-submit,.views-admin a.button:not(.js-hide) + a.button{margin-left:1em;}[dir="rtl"] .form-submit:not(.js-hide) + .form-submit,[dir="rtl"] .views-admin a.button:not(.js-hide) + a.button{margin-left:0;margin-right:1em;}.container-inline{padding-top:15px;padding-bottom:15px;}.container-inline > * + *,.container-inline .details-wrapper > * + *{padding-left:4px;}[dir="rtl"] .container-inline > * + *,[dir="rtl"] .container-inline .details-wrapper > * + *{padding-left:0;padding-right:4px;}.views-admin details details.container-inline{margin-bottom:1em;margin-top:1em;padding-top:0;}.views-admin details details.container-inline > .details-wrapper{padding-bottom:0;}.views-admin .form-type-checkbox + .form-wrapper{margin-left:16px;}[dir="rtl"] .views-admin .form-type-checkbox + .form-wrapper{margin-left:0;margin-right:16px;}.views-remove-checkbox{display:none;}.views-admin .form-type-checkbox label,.views-admin .form-type-radio label{line-height:2;}.views-admin-dependent .form-item{margin-bottom:6px;margin-top:6px;}.views-ui-view-title{font-weight:bold;margin-top:0;}.view-changed{margin-bottom:21px;}.views-admin h1.unit-title{font-size:15px;line-height:1.6154;margin-bottom:0;margin-top:18px;}th.views-ui-name{width:18%;}th.views-ui-description{width:26%;}th.views-ui-tag{width:8%;}th.views-ui-path{width:auto;}th.views-ui-operations{width:24%;}.form-item-description-enable + .form-item-description{margin-top:0;}.form-item-description-enable label{font-weight:bold;}.form-item-page-create,.form-item-block-create{margin-top:13px;}.form-item-page-create label,.form-item-block-create label,.form-item-rest-export-create label{font-weight:bold;}.form-item-page-style-style-plugin > label,.form-item-block-style-style-plugin > label{display:block;}.views-attachment .options-set label{font-weight:normal;}.group-populated{display:none;}td.group-title{font-weight:bold;}.views-ui-dialog td.group-title{margin:0;padding:0;}.views-ui-dialog td.group-title span{display:block;height:1px;overflow:hidden;}.group-message .form-submit,.views-remove-group-link,#views-add-group{float:right;clear:both;}[dir="rtl"] .group-message .form-submit,[dir="rtl"] .views-remove-group-link,[dir="rtl"] #views-add-group{float:left;}.views-operator-label{font-style:italic;font-weight:bold;padding-left:0.5em;text-transform:uppercase;}[dir="rtl"] .views-operator-label{padding-left:0;padding-right:0.5em;}.grouped-description,.exposed-description{float:left;padding-top:3px;padding-right:10px;}[dir="rtl"] .grouped-description,[dir="rtl"] .exposed-description{float:right;padding-left:10px;padding-right:0;}#edit-options-more{clear:both;}.views-displays{border:1px solid #ccc;padding-bottom:36px;}.views-display-top{background-color:#e1e2dc;border-bottom:1px solid #ccc;padding:8px 8px 8px;position:relative;}[dir="rtl"] .views-display-top{padding:8px 8px 8px;}.views-display-top .secondary{margin-right:18em;}[dir="rtl"] .views-display-top .secondary{margin-left:18em;margin-right:0;}.views-display-top .secondary > li{margin-right:6px;padding-left:0;}[dir="rtl"] .views-display-top .secondary > li{margin-left:6px;margin-right:0.3em;padding-right:0;}.views-display-top .secondary > li:last-child{margin-right:0;}[dir="rtl"] .views-display-top .secondary > li:last-child{margin-left:0;margin-right:0.3em;}.views-display-top #views-display-top{max-width:180px;}.form-edit .form-actions{background-color:#e1e2dc;border-right:1px solid #ccc;border-bottom:1px solid #ccc;border-left:1px solid #ccc;margin-top:0;padding:8px 12px;}.views-displays .tabs.secondary{margin-right:200px;border:0;}[dir="rtl"] .views-displays .tabs.secondary{margin-left:200px;margin-right:0;}.views-displays .tabs.secondary li,.views-displays .tabs.secondary li.is-active{background:transparent;margin-bottom:5px;border:0;padding:0;width:auto;}.views-displays .tabs.secondary li.add ul.action-list li{margin:0;}.views-displays .tabs.secondary li{margin:0 5px 0 6px;}[dir="rtl"] .views-displays .tabs.secondary li{margin-left:5px;margin-right:6px;}.views-displays .tabs.secondary .tabs__tab + .tabs__tab{border-top:0;}.views-displays .tabs.secondary li.tabs__tab:hover{border:0;padding-left:0;}[dir="rtl"] .views-displays .tabs.secondary li.tabs__tab:hover{padding-left:15px;padding-right:0;}.views-displays .tabs.secondary a{border:1px solid #cbcbcb;border-radius:7px;display:inline-block;font-size:small;line-height:1.3333;padding:3px 7px;}.views-displays .tabs.secondary li.is-active a.is-active.error,.views-displays .tabs.secondary a.error{border:2px solid #ed541d;padding:1px 6px;}.views-displays .tabs.secondary a:focus{outline:none;}.views-displays .tabs.secondary li a{background-color:#fff;}.views-displays .tabs.secondary li a:hover,.views-displays .tabs.secondary li.is-active a,.views-displays .tabs.secondary li.is-active a.is-active{background-color:#555;color:#fff;}.views-displays .tabs.secondary .open > a{background-color:#f1f1f1;border-bottom:1px solid transparent;position:relative;}.views-displays .tabs.secondary .open > a:hover{color:#0074bd;background-color:#f1f1f1;}.views-displays .tabs.secondary .action-list  li{background-color:#f1f1f1;border-color:#cbcbcb;border-style:solid;border-width:0 1px;padding:2px 9px;}.views-displays .tabs.secondary .action-list  li:first-child{border-width:1px 1px 0;}.views-displays .secondary .action-list  li:last-child{border-width:0 1px 1px;}.views-displays .tabs.secondary .action-list  li:last-child{border-width:0 1px 1px;}.views-displays .tabs.secondary .action-list input.form-submit{background:none repeat scroll 0 0 transparent;border:medium none;margin:0;padding:0;}.views-displays .tabs.secondary .action-list input.form-submit:hover{box-shadow:none;}.views-displays .tabs.secondary .action-list li:hover{background-color:#ddd;}#edit-display-settings{margin:12px 12px 0 12px}#edit-display-settings-title{font-size:14px;line-height:1.5;margin:0;}#edit-display-settings-top{border:1px solid #f3f3f3;line-height:20px;margin:0 0 15px 0;padding-top:4px;padding-bottom:4px;position:relative;}#edit-displays-settings-settings-content{margin-top:12px;}.views-display-column{border:1px solid #f3f3f3;}.views-display-column + .views-display-column{margin-top:0;}#views-ui-preview-form .form-type-checkbox{margin-top:2px;margin-left:2px;}[dir="rtl"] #views-ui-preview-form .form-type-checkbox{margin-left:0;margin-right:2px;}#views-ui-preview-form .form-item-view-args,#views-ui-preview-form .form-actions{margin-top:5px;}#views-ui-preview-form .arguments-preview{font-size:1em;}#views-ui-preview-form .arguments-preview,#views-ui-preview-form .form-item-view-args{margin-left:10px;}[dir="rtl"] #views-ui-preview-form .arguments-preview,[dir="rtl"] #views-ui-preview-form .form-item-view-args{margin-left:0;margin-right:10px;}#views-ui-preview-form .form-item-view-args label{display:inline-block;float:left;font-weight:normal;height:6ex;margin-right:0.75em;}[dir="rtl"] #views-ui-preview-form .form-item-view-args label{float:right;margin-left:0.75em;margin-right:0.2em;}.form-item-live-preview,.form-item-view-args,#preview-submit-wrapper{display:inline-block;}.form-item-live-preview,#preview-submit-wrapper{vertical-align:top;}@media screen and (min-width:45em){#views-ui-preview-form .form-type-textfield .description{white-space:nowrap;}}.views-ui-display-tab-bucket{border-bottom:1px solid #f3f3f3;line-height:20px;margin:0;padding-top:4px;}.views-ui-display-tab-bucket:last-of-type{border-bottom:none;}.views-ui-display-tab-bucket + .views-ui-display-tab-bucket{border-top:medium none;}.views-ui-display-tab-bucket > h3,.views-ui-display-tab-bucket > .views-display-setting{padding:2px 6px 4px;}.views-ui-display-tab-bucket h3{font-size:small;margin:0;}.views-ui-display-tab-bucket.access{padding-top:0;}.views-ui-display-tab-bucket.page-settings{border-bottom:medium none;}.views-display-setting .views-ajax-link{margin-left:0.2083em;margin-right:0.2083em;}.views-ui-display-tab-setting.overridden,.views-ui-display-tab-bucket.overridden > h3{font-style:italic;}.views-ui-display-tab-bucket{position:relative;}.views-ui-display-tab-bucket .views-display-setting{color:#666;font-size:12px;padding-bottom:2px;}.views-ui-display-tab-bucket .views-display-setting:nth-of-type(even){background-color:#f3f5ee;}.views-ui-display-tab-actions.views-ui-display-tab-bucket .views-display-setting{background-color:transparent;}.views-ui-display-tab-bucket .views-group-text{margin-top:6px;margin-bottom:6px;}.views-display-setting .label{margin-right:3px;}[dir="rtl"] .views-display-setting .label{margin-left:3px;margin-right:0;}.views-edit-view{margin-bottom:15px;}.views-filterable-options .form-type-checkbox{border:1px solid #ccc;padding:5px 8px;border-top:none;}.views-filterable-options{border-top:1px solid #ccc;}.views-filterable-options .filterable-option.odd .form-type-checkbox{background-color:#f3f4ee;}.filterable-option .form-item{margin-bottom:0;margin-top:0;}.views-filterable-options .form-type-checkbox .description{margin-top:0;margin-bottom:0;}#views-filterable-options-controls{margin:1em 0;}#views-filterable-options-controls .form-item{width:30%;margin:0 0 0 2%;}}[dir="rtl"] #views-filterable-options-controls .form-item{margin:0 2% 0 0;}#views-filterable-options-controls input,#views-filterable-options-controls select{width:100%;}.views-ui-dialog .ui-dialog-content{padding:0;}.views-ui-dialog .views-filterable-options{margin-bottom:10px;}.views-ui-dialog .views-add-form-selected.container-inline{padding:0;}.views-ui-dialog .views-add-form-selected.container-inline > div{display:block;}.views-ui-dialog #edit-selected{margin:0;padding:6px 16px;}.views-ui-dialog #views-ajax-title,.views-ui-dialog .views-override{background-color:#f3f4ee;}.views-ui-dialog.views-ui-dialog-scroll .ui-dialog-titlebar{border:none;}.views-ui-dialog .views-override{padding:8px 13px;}.views-ui-dialog [data-drupal-views-offset]{border:1px solid #ccc;}.views-ui-dialog [data-drupal-views-offset="top"]{border-width:0 0 1px;}.views-ui-dialog [data-drupal-views-offset="bottom"]{border-width:1px 0 0;}.views-ui-dialog .views-override > *{margin:0;}.views-ui-dialog #views-ajax-title h2{font-size:15px;padding:8px 13px;margin:0;}.views-ui-dialog #views-progress-indicator{color:#fff;font-size:11px;position:absolute;right:10px;top:32px;}[dir="rtl"] .views-ui-dialog #views-progress-indicator{left:10px;right:auto;}.views-ui-dialog #views-progress-indicator:before{content:"\003C\00A0";}.views-ui-dialog #views-progress-indicator:after{content:"\00A0\003E";}.views-ui-dialog details .item-list{padding-left:2em;}[dir="rtl"] .views-ui-dialog details .item-list{padding-left:0;padding-right:2em;}.form-type-checkboxes #edit-options-value,.form-type-checkboxes #edit-options-validate-options-node-types{border-color:#ccc;border-style:solid;border-width:1px;max-height:210px;overflow:auto;margin-top:5px;padding:0 5px;width:190px;}.views-ui-rearrange-filter-form table{border-collapse:collapse;}.views-ui-rearrange-filter-form tr td[rowspan]{border-color:#cdcdcd;border-style:solid;border-width:0 1px 1px 1px;}.views-ui-rearrange-filter-form tr[id^="views-row"]{border-right:1px solid #cdcdcd;}[dir="rtl"] .views-ui-rearrange-filter-form tr[id^="views-row"]{border-left:1px solid #cdcdcd;border-right:0;}.views-ui-rearrange-filter-form tr[id^="views-row"].even td{background-color:#f3f4ed;}.views-ui-rearrange-filter-form .views-group-title{border-top:1px solid #cdcdcd;}.views-ui-rearrange-filter-form .group-empty{border-bottom:1px solid #cdcdcd;}.form-item-options-expose-required,.form-item-options-expose-label,.form-item-options-expose-description{margin-bottom:6px;margin-left:18px;margin-top:6px;}[dir="rtl"] .form-item-options-expose-required,[dir="rtl"] .form-item-options-expose-label,[dir="rtl"] .form-item-options-expose-description{margin-left:0;margin-right:18px;}#views-preview-wrapper{border:1px solid #ccc;}.view-preview-form{position:relative;}.view-preview-form__title{background-color:#e1e2dc;border-bottom:1px solid #ccc;margin-top:0;padding:8px 12px;}.view-preview-form .form-item-live-preview{position:absolute;right:12px;top:3px;}[dir="rtl"] .view-preview-form .form-item-live-preview{right:auto;left:12px;}#views-live-preview{padding:12px;}#views-live-preview .views-query-info{overflow:auto;}#views-live-preview h1.section-title{color:#818181;display:inline-block;font-size:13px;font-weight:normal;line-height:1.6154;margin-bottom:0;margin-top:0;}#views-live-preview .view > *{margin-top:18px;}#views-live-preview .preview-section{border:1px dashed #dedede;margin:0 -5px;padding:3px 5px;}#views-live-preview li.views-row + li.views-row{margin-top:18px;}#views-live-preview div.views-row + div.views-row{margin-top:36px;}.views-query-info table{border-collapse:separate;border-color:#ddd;border-spacing:0;margin:10px 0;}.views-query-info table tr{background-color:#f9f9f9;}.views-query-info table th,.views-query-info table td{color:#666;padding:4px 10px;}#views-live-preview .views-view-grid th,#views-live-preview .views-view-grid td{vertical-align:top;}#views-live-preview .view-content > .item-list > ul{list-style-position:outside;padding-left:21px;}[dir="rtl"] #views-live-preview .view-content > .item-list > ul{padding-left:0;padding-right:21px;}#edit-options-default-action{width:300px;float:left;}#edit-options-exception{float:right;width:250px;margin-top:-2px;}div.messages{margin-bottom:18px;line-height:1.4555;}.dropbutton-multiple{position:absolute;}.dropbutton-widget{position:relative;}.js .views-edit-view .dropbutton-wrapper .dropbutton .dropbutton-action > *{font-size:10px;}.js .dropbutton-wrapper .dropbutton .dropbutton-action > .ajax-progress-throbber{position:absolute;right:-5px;top:-1px;z-index:2;}[dir="rtl"].js .dropbutton-wrapper .dropbutton .dropbutton-action > .ajax-progress-throbber{left:-5px;right:auto;}.js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:first-child a{border-radius:1.1em 0 0 0;}[dir="rtl"].js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:first-child a{border-radius:0 1.1em 0 0;}.js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:last-child a{border-radius:0 0 0 1.1em;}[dir="rtl"].js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:last-child a{border-radius:0 0 1.1em 0;}.views-display-top .dropbutton-wrapper{position:absolute;right:12px;top:7px;}[dir="rtl"] .views-display-top .dropbutton-wrapper{left:12px;right:auto;}.views-display-top .dropbutton-wrapper .dropbutton-widget .dropbutton-action a{width:auto;}.views-ui-display-tab-bucket .dropbutton-wrapper{position:absolute;right:5px;top:4px;}[dir="rtl"] .views-ui-display-tab-bucket .dropbutton-wrapper{left:5px;right:auto;}.views-ui-display-tab-bucket .dropbutton-wrapper .dropbutton-widget .dropbutton-action a{width:auto;}.views-ui-display-tab-actions .dropbutton-wrapper li a,.views-ui-display-tab-actions .dropbutton-wrapper input{background:none;border:medium;font-family:inherit;font-size:12px;padding-left:12px;margin-bottom:0;}[dir="rtl"] .views-ui-display-tab-actions .dropbutton-wrapper li a,[dir="rtl"] .views-ui-display-tab-actions .dropbutton-wrapper input{padding-left:0.5em;padding-right:12px;}.views-ui-display-tab-actions .dropbutton-wrapper input:hover{background:none;border:none;}.views-list-section{margin-bottom:2em;}.form-textarea-wrapper,.form-item-options-content{width:100%;}
+#views-live-preview .contextual-region-active{outline:medium none;}#views-live-preview div.contextual{right:auto;top:auto;}[dir="rtl"] #views-live-preview div.contextual{left:auto;}html.js #views-live-preview div.contextual{display:inline;}#views-live-preview a.contextual-links-trigger{display:block;}div.contextual ul.contextual-links{border-radius:0 4px 4px 4px;min-width:10em;padding:6px 6px 9px 6px;right:auto;}[dir="rtl"] div.contextual ul.contextual-links{border-radius:4px 0 4px 4px;left:auto;}ul.contextual-links li a,ul.contextual-links li span{padding-bottom:0.25em;padding-right:0.1667em;padding-top:0.25em;}[dir="rtl"] ul.contextual-links li a,[dir="rtl"] ul.contextual-links li span{padding-left:0.1667em;padding-right:0;}ul.contextual-links li span{font-weight:bold;}ul.contextual-links li a{color:#666 !important;margin:0.25em 0;padding-left:1em;}[dir="rtl"] ul.contextual-links li a{padding-left:0.1667em;padding-right:1em;}ul.contextual-links li a:hover{background-color:#badbec;}
+.toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:right;padding:1em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .edit-shortcuts{text-align:left;}.toolbar .toolbar-tray-horizontal .edit-shortcuts{float:right;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .edit-shortcuts{float:left;}.add-or-remove-shortcuts{display:inline-block;margin-left:0.3em;}[dir="rtl"] .add-or-remove-shortcuts{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts .text{background:#000000;background:rgba(0,0,0,0.5);border-radius:5px;padding:0 5px;color:#ffffff;display:inline-block;margin-left:0.3em;opacity:0;-ms-transform:translateY(-12px);-webkit-transform:translateY(-12px);transform:translateY(-12px);-webkit-transition:all 200ms ease-out;transition:all 200ms ease-out;-ms-backface-visibility:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;}[dir="rtl"] .add-or-remove-shortcuts .text{margin-left:0;margin-right:0.3em;}.add-or-remove-shortcuts a:hover .text,.add-or-remove-shortcuts a:focus .text{opacity:1;-ms-transform:translateY(-2px);-webkit-transform:translateY(-2px);transform:translateY(-2px);}
+.toolbar-bar .toolbar-icon-shortcut:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/star.svg);}.toolbar-bar .toolbar-icon-shortcut:active:before,.toolbar-bar .toolbar-icon-shortcut.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/star.svg);}.add-or-remove-shortcuts .icon{background:transparent url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar.svg) no-repeat left top;width:20px;height:20px;display:inline-block;vertical-align:-2px;}[dir="rtl"] .add-or-remove-shortcuts .icon{background-image:url(http://localhost/pub_html/contri/drupal/core/modules/shortcut/images/favstar-rtl.svg);}.add-shortcut a:hover .icon,.add-shortcut a:focus .icon{background-position:-20px top;}.remove-shortcut .icon{background-position:-40px top;}.remove-shortcut a:focus .icon,.remove-shortcut a:hover .icon{background-position:-60px top;}
+.toolbar{font-family:"Source Sans Pro","Lucida Grande",Verdana,sans-serif;font-size:0.8125rem;-moz-tap-highlight-color:rgba(0,0,0,0);-o-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0);-moz-touch-callout:none;-o-touch-callout:none;-webkit-touch-callout:none;touch-callout:none;}.toolbar .toolbar-item{cursor:pointer;padding:1em 1.3333em;line-height:1em;text-decoration:none;}.toolbar .toolbar-item:hover,.toolbar .toolbar-item:focus{text-decoration:underline;}.toolbar .toolbar-bar{background-color:#0f0f0f;box-shadow:-1px 0 3px 1px rgba(0,0,0,0.3333);color:#dddddd;}[dir="rtl"] .toolbar .toolbar-bar{box-shadow:1px 0 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-bar .toolbar-item{color:#ffffff;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item{font-weight:bold;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:hover,.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:focus{background-image:-webkit-linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.125) 20%,transparent 200%);text-decoration:none;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-item.is-active{background-image:-webkit-linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);background-image:linear-gradient(rgba(255,255,255,0.25) 20%,transparent 200%);}.toolbar .toolbar-tray{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:5em;}[dir="rtl"] .toolbar .toolbar-tray-horizontal > .toolbar-lining{padding-right:0;padding-left:5em;}.toolbar .toolbar-tray-vertical{background-color:#f5f5f5;border-right:1px solid #aaaaaa;box-shadow:-1px 0 5px 2px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-vertical{border-left:1px solid #aaaaaa;border-right:0 none;box-shadow:1px 0 5px 2px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal{border-bottom:1px solid #aaaaaa;box-shadow:-2px 1px 3px 1px rgba(0,0,0,0.3333);}[dir="rtl"] .toolbar .toolbar-tray-horizontal{box-shadow:2px 1px 3px 1px rgba(0,0,0,0.3333);}.toolbar .toolbar-tray-horizontal .toolbar-tray{background-color:#f5f5f5;}.toolbar-tray a{color:#565656;cursor:pointer;padding:1em 1.3333em;text-decoration:none;}.toolbar-tray a:hover,.toolbar-tray a:active,.toolbar-tray a:focus,.toolbar-tray a.is-active{color:#000;text-decoration:underline;}.toolbar .menu{background-color:#ffffff;}.toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item + .menu-item{border-left:0 none;border-right:1px solid #dddddd;}.toolbar .toolbar-tray-horizontal .menu-item:last-child{border-right:1px solid #dddddd;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item:last-child{border-left:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item + .menu-item{border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child{border-bottom:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item .menu-item{border:0 none;}.toolbar .toolbar-tray-vertical .menu ul ul{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;}.toolbar .toolbar-tray-vertical .menu-item:last-child > ul{border-bottom:0;}.toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0.25em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu .menu .menu .menu{margin-left:0;margin-right:0.25em;}.toolbar .menu .menu a{color:#434343;}.toolbar .toolbar-toggle-orientation{background-color:#f5f5f5;padding:0.6667em;}.toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:1px solid #c9c9c9;}[dir="rtl"] .toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation{border-left:0 none;border-right:1px solid #c9c9c9;}.toolbar .toolbar-toggle-orientation > .toolbar-lining{float:right;padding:0.1667em;}[dir="rtl"] .toolbar .toolbar-toggle-orientation > .toolbar-lining{float:left;}.toolbar .toolbar-toggle-orientation button{cursor:pointer;display:inline-block;}
+.toolbar .toolbar-icon{padding-left:2.75em;position:relative;}[dir="rtl"] .toolbar .toolbar-icon{padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-icon:before{background-attachment:scroll;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:100% auto;content:'';display:block;height:100%;left:0.6667em;position:absolute;top:0;width:20px;}[dir="rtl"] .toolbar .toolbar-icon:before{left:auto;right:0.6667em;}.toolbar button.toolbar-icon{background-color:transparent;border:0;font-size:1em;}.toolbar .menu ul .toolbar-icon{padding-left:1.3333em;}[dir="rtl"] .toolbar .menu ul .toolbar-icon{padding-left:0;padding-right:1.3333em;}.toolbar .menu ul a.toolbar-icon:before{display:none;}.toolbar .toolbar-tray-vertical .menu ul a{padding-left:2.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul a{padding-left:0;padding-right:2.75em;}.toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:3.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu ul ul a{padding-left:0;padding-right:3.75em;}.toolbar .toolbar-tray-vertical .menu a{padding-left:2.75em;padding-right:4em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .menu a{padding-left:4em;padding-right:2.75em;}.toolbar-bar .toolbar-icon-menu:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/hamburger.svg);}.toolbar-bar .toolbar-icon-menu:active:before,.toolbar-bar .toolbar-icon-menu.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/hamburger.svg);}.toolbar-bar .toolbar-icon-help:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/questionmark-disc.svg);}.toolbar-bar .toolbar-icon-help:active:before,.toolbar-bar .toolbar-icon-help.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/questionmark-disc.svg);}.toolbar-icon-system-admin-content:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/file.svg);}.toolbar-icon-system-admin-content:active:before,.toolbar-icon-system-admin-content.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/file.svg);}.toolbar-icon-system-admin-structure:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/orgchart.svg);}.toolbar-icon-system-admin-structure:active:before,.toolbar-icon-system-admin-structure.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/orgchart.svg);}.toolbar-icon-system-themes-page:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/paintbrush.svg);}.toolbar-icon-system-themes-page:active:before,.toolbar-icon-system-themes-page.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/paintbrush.svg);}.toolbar-icon-entity-user-collection:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/people.svg);}.toolbar-icon-entity-user-collection:active:before,.toolbar-icon-entity-user-collection.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/people.svg);}.toolbar-icon-system-modules-list:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/puzzlepiece.svg);}.toolbar-icon-system-modules-list:active:before,.toolbar-icon-system-modules-list.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/puzzlepiece.svg);}.toolbar-icon-system-admin-config:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/wrench.svg);}.toolbar-icon-system-admin-config:active:before,.toolbar-icon-system-admin-config.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/wrench.svg);}.toolbar-icon-system-admin-reports:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/barchart.svg);}.toolbar-icon-system-admin-reports:active:before,.toolbar-icon-system-admin-reports.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/barchart.svg);}.toolbar-icon-help-main:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/questionmark-disc.svg);}.toolbar-icon-help-main:active:before,.toolbar-icon-help-main.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/000000/questionmark-disc.svg);}.toolbar .toolbar-bar .toolbar-icon:before{min-height:3em;}@media only screen and (min-width:16.5em){.toolbar .toolbar-bar .toolbar-icon{margin-left:0;margin-right:0;padding-left:0;padding-right:0;text-indent:-9999px;width:4em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:42% auto;left:0;width:100%;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:auto;right:0;}}@media only screen and (min-width:36em){.toolbar .toolbar-bar .toolbar-icon{background-position:left center;padding-left:2.75em;padding-right:1.3333em;text-indent:0;width:auto;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon{background-position:right center;padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-bar .toolbar-icon:before{background-size:100% auto;left:0.6667em;width:20px;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-icon:before{left:0;right:0.6667em;}}.toolbar-tab a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tab a{border-left:none;border-right:2px solid transparent;}.toolbar-tab a:focus{outline:none;border-color:#ddd;}.toolbar-lining button:focus{outline:none;}.toolbar-tray-horizontal a,.toolbar-box a{border-left:2px solid transparent;}[dir="rtl"] .toolbar-tray-horizontal a,[dir="rtl"] .toolbar-box a{border-left:none;border-right:2px solid transparent;}.toolbar-tray-horizontal a:focus,.toolbar-box a:focus{outline:none;border-color:#4479C0;background-color:#f5f5f5;text-decoration:none;}.toolbar-box a:hover:focus{text-decoration:underline;}.toolbar .toolbar-icon.toolbar-handle:focus{outline:none;background-color:#f5f5f5;}.toolbar .toolbar-icon.toolbar-handle{width:4em;text-indent:-9999px;}.toolbar .toolbar-icon.toolbar-handle:before{left:1.6667em;}[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle:before{left:auto;right:1.6667em;}.toolbar .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/chevron-disc-down.svg);}.toolbar .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/chevron-disc-up.svg);}.toolbar .menu .menu .toolbar-icon.toolbar-handle:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/5181c6/twistie-down.svg);background-size:75%;}.toolbar .menu .menu .toolbar-icon.toolbar-handle.open:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/twistie-up.svg);background-size:75%;}.toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-left.svg);}[dir="rtl"] .toolbar .toolbar-icon-escape-admin:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/chevron-disc-right.svg);}.toolbar .toolbar-toggle-orientation button{height:16px;padding:0;text-indent:-999em;width:20px;}.toolbar .toolbar-toggle-orientation button:before{left:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation button:before{left:auto;right:0;}[dir="rtl"] .toolbar .toolbar-toggle-orientation .toolbar-icon{padding-right:0;}.toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-left.svg);}.toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,.toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-left.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-right.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-right.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/push-up.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:hover:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/787878/push-up.svg);}
+.toolbar-bar .toolbar-icon-user:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/bebebe/person.svg);}.toolbar-bar .toolbar-icon-user:active:before,.toolbar-bar .toolbar-icon-user.is-active:before{background-image:url(http://localhost/pub_html/contri/drupal/core/misc/icons/ffffff/person.svg);}
diff --git a/sites/default/files/css/css_ulYYDqljc9WXlPh07faHWZ8YsaY2dVXO7CHQUnG_HGc.css.gz b/sites/default/files/css/css_ulYYDqljc9WXlPh07faHWZ8YsaY2dVXO7CHQUnG_HGc.css.gz
new file mode 100644
index 0000000..aaa07ff
--- /dev/null
+++ b/sites/default/files/css/css_ulYYDqljc9WXlPh07faHWZ8YsaY2dVXO7CHQUnG_HGc.css.gz
@@ -0,0 +1,30 @@
+     =io㸒WhhLHؘ7XXDۚ-m/S8cz,źX,<Q/>#z(U6YU"$-~*{\`
+Oئe:FI>\)A Cҿ?7@Iӎҏ*}Duy}HtmBig"JR<vnG(NFIxAzA<?ޥ	^S,zYZ~jѡWz2 ̈́]
+]:jǼL4?,E 4v˨rĪ^]^?񜣌b>E$C#~ufk*
+e8?w+%Ao_e6ޯ^6y"ٸ P!aIA6϶|fx{^$l8b9jdu%ݣ$2.&$F}˔Sąh7GWanzD?$T&j	yUUbßU?@sQQ2al ceM~Lᣏ2B'oe((s((Fa9՗rMp͏y5Dajb=Q۰ZHh]Y]!]Ob</>eH'QPT;|cAEX]9	hS]@cbꪙ#֒ZVX U; 	;ǎD  R/ӟ0fU3ԙ3,ҕƲe;Aۻ3+K.6LA*HO[Lzj	nD^8Nك9̊>|xH^خBM[̗܉|q?b G +-}a%jF@}Lf_Fϓ:CWP`P'J$}gb<ZRr(E}1vJ5:qGY=,כeaJ֯顬N9a^@؜Q)JޏHdMNEA].uD/Q2-WO;l%^}0ghqOl"xxi	+0;z[SJ:
+S Sϡ,flrZ?Xq.$[ڭe5 &EgdJ,A*#cvDt{(d84"YrUJ(`ro$HyRYot.Fx7B.W&DGwɩݨSBŢHƶkAӲd6<HR!,&eضl`jf+1!i;qY
+O(Ɏ뮪˛Q9]n@MR*a|Lys{?kT`Dx~|b:;䘴GxQAh3:?Ћ&z|k,VU]yQFB[V~Pp-gZ<JeKnj/M~U]+b(ch0&wApC kST	|	&%6RUZ)V60loEAg~Liy&0cNl۳>)֥9'YZC֭\Xb-Mq	)$q#2e(d#[rW#cn}آ ɝ+VĠ$.q`E!q,/_'n#<˾gx"^l:O nY}mkNkτ7@#([k0i7!L &D
+яV[0q\$C6eǚ<:(,af|u'[=h&N4WǷr[PBt -	Π4]{s]۱r$gc!(,"_ª`xj؍*D1V
+6sKkG/KM[ǣ~rdgXU3w&KTiP~V{ExfIǧf 莸8 & 	MZtV3si"('zL@Sip<d
+`)v1ƛ<S^W%D>+7n`X&
+nWTUQ<VfI6261Ykږ`YiYHMؿ=	
+A}K)Ju$y
+L5	<w+vQ'N؝3Ĵt4<x6/qtJ9vg[:KSjC$,y΅QL?Y]5iF4aKdH`#~tBD4{Y,ҍp4C$Ԃ]8"G/3{`YuΘF@Bb4;?'8j(l9,m`ӕ b欳(,F0xs֙Mz;BEbwk,4㡻<hCgӺߣz/B5~#ic@.@- tQk?`*BM`{]zbIw{ޅBk<'E~\ؠ Q-tI|##NO,y|pEkqH9OEP%$*^$KGJ9)@#%xLON$q=@雟Ə)zbN?QVb&ȓWk*1r4юW79=9|h朻yNo<xǔ"`lvbsIw?Z@VJO1dqO2⤡PkDf5`D_'kUشziu	v$h;FLF#?Št}O 	FCnQ\{D$	BLw/$q :ʗ{I%aNhռTjʹ!.9J1L3w,{RUnjVBh8~8Z:sKwaWO}ȵ_#%:H&)eB$OlSq<`>'U`TDm70m `@'h)ܚ*.ODf6!Á`	HɂG2y%>0#i+d4=W
+}~MǺy\MZG%G(>e%sHjj]5y>A [qs5JJ!vx࿍'c>bG##_ݭ܆SUL
+K딒y<lB:=0WJ}4AHV%z?c_b߰,iҌn/ːwe!=<c%QBKwc{4ށrH7]KBl`[MYפhxg+U|wЫ]6}ⓅҤUxV|(n3fGCxqhp\͉Bp:bǏH{@~5P*+=CQj0=ceex{[/& &Y7CR0v8؁\.*a,EVIeSzpw!|+pOaب}7J>x?O#>Ȃ+@4VY;Hrcɨ4;m.Q"nvG)y3Μ1<&i}@)?I#o=IXA1-'z.tfmoI[/~Aql";vLIg^*#0uFG+q`@SER'9A$F15aY_w!.h!=f4_rop-?70}WѺ$Hv
+Ht/ۨ#[sqBjyu6Lr&]65x6ǣ%\%aP^Wi6mW)ꬖ
+NQ++IALf%+\ؒc6QYFv"'WzVFh;>pLgacːI;F%c<&tGè5:LjҼhq!|\Ryd);sʊM?\QY椉iQ˚LEe,9mn
+;I*+)X Q``!zY87L!~K=%Q zrrf'.2LeބSaP1񴼢.9
+^ڲ,L.ͅ,p@4G/x!ܑ	iu}+)[l_e)lc0y^0SXH89Uh8XOv"#%W:rk_Ǽk ܬ&5"#q4`Vy9:WQwC|[-k8BzV>!_	9[hd6!GJH+hS;{ge'We1d'JqMsGk]?m&k;ǡ;A%fJI &Bwo7P2S'Zk݃'\\cOcT'isE.DezAѳXIG`@)HB;Ns7[۝ XZ(#hnYLz9<P#L7sdSLOJpG 'K9ԏ>F%\;cKc#r.&lҬBꌲbWwM|Er $q܍8O3&Ҁt2EMVV -0ƱOֺ(`aqVzEi#Զz#ס;FU^vd9n~mN;7*$P
+J0D5~(X$匹G9E?mn
+x#LAmtUYhAX32:*pvqfߒ|bw$ +@
+8즂
+^BC-	1-|[`#( ?%yȱĢ\m}Q3 TwϿW(	&0<]m<RXu!9(i(Tzic<e9܇<1J5=vvCyύJ^ɲ*ё@[6WwTd>u,Ig,:hq_xUȟ E:[6Gw0[v-M+Ғ?Bí]g` }(llg~{H6	0MՑn<7zf%K0Zѝx585o	; .e-E.YY?.	H@!x2݀OB1Z-vm-F$ec]3H.O8-$^նiM;>_iJכg鸑ޯҟnAxBJkӢ	Kt.qvbHնCOG(UPF:
+02Ym軑[;sebk_+B@42̖^hb54\QH:V_a@-wB13=ya@M>5,WsﴣV$髡I9@%N&U`7^j}WPc5E+,ȚPaJ`wG0YrØ33dJU~~W{X$0V}lZ}~'mܚ,(!i0ug]L[T;Gܻn$&!iFRCEZΥZ"+;S5\	1VL9$SRٳm:!L|CbLJ4J#*L]hXo9ʼ}֒	>@:3V%h2?l3) e(_HO(ir5ItXe\ZH._C}%+$lUm\] y6Efhn2B5Z^CJOvxb1oNZ&0vȶkoU@x(62F@6`,]+g7
+_I}M=iLs'T/xY{K7bzK+uq̸,&A/=*ip
+mpiس|&W1!F]6_cVcȣ*KV"-_Ĺ)1HYXH&DygGyqM Ӿk	F*%Ǯs}k	8,}Hvެrn3ɫh#ej]f^Ҙ#c]3Eٱ'ig^1y"]gIf]ItF*.1^Utw;2f	ܥM-`<9'ʁZ~n?2|ez3$])E;ʣW;*)/>4/ҙҫ}*<`~$G$|z~ؼ\VpRyE^fUKM_we&CXqG	r&v&&kl}b\| 8W훴,nU/EMBN :gorLSZ "?!	>lr`q
+ҚB'Lu	A,OrK~	^gR-Dx
+ҥG7mk82aZ7y )x`+VN0fQn*)háPej]x5{1 h<pܕ-@`6"o6qbvW
+1"d4<HVgtG](e0_LoQlb}3rA3_5O-Je5Kf`2lo{'\6l`HiB,ˁ$Q> I7x%%:"oi-q o@`"#u
+)2rb]83Ui oA ͤS<z+Dt t]_9TO DLa%gJi-#JTCީs.YZ)K`^wI3䎈,=rvCYu\$9b3Q.CVwCKav]
+?=%^d*hEɊeX">0^ϟ:(vGǁYDR4~n/I';gLh*cH:tEU^x`GEőq(1$wKKRͮkQccׇg79Z,ArV-?d/mbLJ9]uv=V:̺H(d6a6ޛXY:rp%u,˧crsxͨ	qClyr=׽{")T=1j6"`譇-dW%.ݶ}$[&669FP.zsLG!dSw?vXdȈrz'S+d/8uK?ao]pvfuKz,';n$꣆xjz>Qکv/N[8'kڲ]QXia1߉d{[wT|m|[O`Q0`  ~(l #ۋ!ڪL.0_]񃚫\c]D&<EAl(9/Ig;x{+{ U,8ePCQrlq狒e~?$x8?B9R+p  
\ No newline at end of file
diff --git a/sites/default/files/js/js_7WLMk65_dQppS3F3LJt3qXbFiGIrv9_QvmLvmXoEOYM.js b/sites/default/files/js/js_7WLMk65_dQppS3F3LJt3qXbFiGIrv9_QvmLvmXoEOYM.js
new file mode 100644
index 0000000..fbdc5a0
--- /dev/null
+++ b/sites/default/files/js/js_7WLMk65_dQppS3F3LJt3qXbFiGIrv9_QvmLvmXoEOYM.js
@@ -0,0 +1,3243 @@
+/*! jQuery v2.1.4 | (c) 2005, 2015 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=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,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=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.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},n.extend=n.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||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},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=s(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(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;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=s(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&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=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)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(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||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(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 H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(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 pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(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 p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),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))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),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===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(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?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.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 ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.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},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.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=ga.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=ga.selectors={cacheLength:50,createPseudo:ia,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(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===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]||ga.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]&&ga.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(ca,da).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("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.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.replace(Q," ")+" ").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()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(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),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).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:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(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]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.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?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(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 ta(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 ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(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 wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(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?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(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 wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(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]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.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(ca,da),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(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(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&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.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?n.extend(a,d):d}},e={};return d.pipe=d.then,n.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&&n.isFunction(a.promise)?e:0,g=1===f?a:n.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]&&n.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;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(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};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){
+return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.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.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.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 L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.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=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!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(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},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 offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.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=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.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(g in a)this.on(g,b,c,a[g],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=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.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,n(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=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=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=ja(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=ja(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?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(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,n.cleanData(oa(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,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.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}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.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",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.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 za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(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+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.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}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(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":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.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))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,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||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=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):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.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,n.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 Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.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 Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),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:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.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(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.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)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(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=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.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)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.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})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.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=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)),
+void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.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 n.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=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.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||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.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){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.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(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(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(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.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&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.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){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.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 cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.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 sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(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}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,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":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e: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 c&&c.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||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(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]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=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,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;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)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.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,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.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?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
+
+//     Underscore.js 1.8.3
+//     http://underscorejs.org
+//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+//     Underscore may be freely distributed under the MIT license.
+(function(){function n(n){function t(t,r,e,u,i,o){for(;i>=0&&o>i;i+=n){var a=u?u[i]:i;e=r(e,t[a],a,t)}return e}return function(r,e,u,i){e=b(e,i,4);var o=!k(r)&&m.keys(r),a=(o||r).length,c=n>0?0:a-1;return arguments.length<3&&(u=r[o?o[c]:c],c+=n),t(r,e,u,o,c,a)}}function t(n){return function(t,r,e){r=x(r,e);for(var u=O(t),i=n>0?0:u-1;i>=0&&u>i;i+=n)if(r(t[i],i,t))return i;return-1}}function r(n,t,r){return function(e,u,i){var o=0,a=O(e);if("number"==typeof i)n>0?o=i>=0?i:Math.max(i+a,o):a=i>=0?Math.min(i+1,a):i+a+1;else if(r&&i&&a)return i=r(e,u),e[i]===u?i:-1;if(u!==u)return i=t(l.call(e,o,a),m.isNaN),i>=0?i+o:-1;for(i=n>0?o:a-1;i>=0&&a>i;i+=n)if(e[i]===u)return i;return-1}}function e(n,t){var r=I.length,e=n.constructor,u=m.isFunction(e)&&e.prototype||a,i="constructor";for(m.has(n,i)&&!m.contains(t,i)&&t.push(i);r--;)i=I[r],i in n&&n[i]!==u[i]&&!m.contains(t,i)&&t.push(i)}var u=this,i=u._,o=Array.prototype,a=Object.prototype,c=Function.prototype,f=o.push,l=o.slice,s=a.toString,p=a.hasOwnProperty,h=Array.isArray,v=Object.keys,g=c.bind,y=Object.create,d=function(){},m=function(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=m),exports._=m):u._=m,m.VERSION="1.8.3";var b=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}},x=function(n,t,r){return null==n?m.identity:m.isFunction(n)?b(n,t,r):m.isObject(n)?m.matcher(n):m.property(n)};m.iteratee=function(n,t){return x(n,t,1/0)};var _=function(n,t){return function(r){var e=arguments.length;if(2>e||null==r)return r;for(var u=1;e>u;u++)for(var i=arguments[u],o=n(i),a=o.length,c=0;a>c;c++){var f=o[c];t&&r[f]!==void 0||(r[f]=i[f])}return r}},j=function(n){if(!m.isObject(n))return{};if(y)return y(n);d.prototype=n;var t=new d;return d.prototype=null,t},w=function(n){return function(t){return null==t?void 0:t[n]}},A=Math.pow(2,53)-1,O=w("length"),k=function(n){var t=O(n);return"number"==typeof t&&t>=0&&A>=t};m.each=m.forEach=function(n,t,r){t=b(t,r);var e,u;if(k(n))for(e=0,u=n.length;u>e;e++)t(n[e],e,n);else{var i=m.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},m.map=m.collect=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=Array(u),o=0;u>o;o++){var a=e?e[o]:o;i[o]=t(n[a],a,n)}return i},m.reduce=m.foldl=m.inject=n(1),m.reduceRight=m.foldr=n(-1),m.find=m.detect=function(n,t,r){var e;return e=k(n)?m.findIndex(n,t,r):m.findKey(n,t,r),e!==void 0&&e!==-1?n[e]:void 0},m.filter=m.select=function(n,t,r){var e=[];return t=x(t,r),m.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e},m.reject=function(n,t,r){return m.filter(n,m.negate(x(t)),r)},m.every=m.all=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(!t(n[o],o,n))return!1}return!0},m.some=m.any=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(t(n[o],o,n))return!0}return!1},m.contains=m.includes=m.include=function(n,t,r,e){return k(n)||(n=m.values(n)),("number"!=typeof r||e)&&(r=0),m.indexOf(n,t,r)>=0},m.invoke=function(n,t){var r=l.call(arguments,2),e=m.isFunction(t);return m.map(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})},m.pluck=function(n,t){return m.map(n,m.property(t))},m.where=function(n,t){return m.filter(n,m.matcher(t))},m.findWhere=function(n,t){return m.find(n,m.matcher(t))},m.max=function(n,t,r){var e,u,i=-1/0,o=-1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],e>i&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(u>o||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},m.min=function(n,t,r){var e,u,i=1/0,o=1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],i>e&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(o>u||1/0===u&&1/0===i)&&(i=n,o=u)});return i},m.shuffle=function(n){for(var t,r=k(n)?n:m.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=m.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},m.sample=function(n,t,r){return null==t||r?(k(n)||(n=m.values(n)),n[m.random(n.length-1)]):m.shuffle(n).slice(0,Math.max(0,t))},m.sortBy=function(n,t,r){return t=x(t,r),m.pluck(m.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={};return r=x(r,e),m.each(t,function(e,i){var o=r(e,i,t);n(u,e,o)}),u}};m.groupBy=F(function(n,t,r){m.has(n,r)?n[r].push(t):n[r]=[t]}),m.indexBy=F(function(n,t,r){n[r]=t}),m.countBy=F(function(n,t,r){m.has(n,r)?n[r]++:n[r]=1}),m.toArray=function(n){return n?m.isArray(n)?l.call(n):k(n)?m.map(n,m.identity):m.values(n):[]},m.size=function(n){return null==n?0:k(n)?n.length:m.keys(n).length},m.partition=function(n,t,r){t=x(t,r);var e=[],u=[];return m.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},m.first=m.head=m.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:m.initial(n,n.length-t)},m.initial=function(n,t,r){return l.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},m.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:m.rest(n,Math.max(0,n.length-t))},m.rest=m.tail=m.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},m.compact=function(n){return m.filter(n,m.identity)};var S=function(n,t,r,e){for(var u=[],i=0,o=e||0,a=O(n);a>o;o++){var c=n[o];if(k(c)&&(m.isArray(c)||m.isArguments(c))){t||(c=S(c,t,r));var f=0,l=c.length;for(u.length+=l;l>f;)u[i++]=c[f++]}else r||(u[i++]=c)}return u};m.flatten=function(n,t){return S(n,t,!1)},m.without=function(n){return m.difference(n,l.call(arguments,1))},m.uniq=m.unique=function(n,t,r,e){m.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=x(r,e));for(var u=[],i=[],o=0,a=O(n);a>o;o++){var c=n[o],f=r?r(c,o,n):c;t?(o&&i===f||u.push(c),i=f):r?m.contains(i,f)||(i.push(f),u.push(c)):m.contains(u,c)||u.push(c)}return u},m.union=function(){return m.uniq(S(arguments,!0,!0))},m.intersection=function(n){for(var t=[],r=arguments.length,e=0,u=O(n);u>e;e++){var i=n[e];if(!m.contains(t,i)){for(var o=1;r>o&&m.contains(arguments[o],i);o++);o===r&&t.push(i)}}return t},m.difference=function(n){var t=S(arguments,!0,!0,1);return m.filter(n,function(n){return!m.contains(t,n)})},m.zip=function(){return m.unzip(arguments)},m.unzip=function(n){for(var t=n&&m.max(n,O).length||0,r=Array(t),e=0;t>e;e++)r[e]=m.pluck(n,e);return r},m.object=function(n,t){for(var r={},e=0,u=O(n);u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},m.findIndex=t(1),m.findLastIndex=t(-1),m.sortedIndex=function(n,t,r,e){r=x(r,e,1);for(var u=r(t),i=0,o=O(n);o>i;){var a=Math.floor((i+o)/2);r(n[a])<u?i=a+1:o=a}return i},m.indexOf=r(1,m.findIndex,m.sortedIndex),m.lastIndexOf=r(-1,m.findLastIndex),m.range=function(n,t,r){null==t&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var E=function(n,t,r,e,u){if(!(e instanceof t))return n.apply(r,u);var i=j(n.prototype),o=n.apply(i,u);return m.isObject(o)?o:i};m.bind=function(n,t){if(g&&n.bind===g)return g.apply(n,l.call(arguments,1));if(!m.isFunction(n))throw new TypeError("Bind must be called on a function");var r=l.call(arguments,2),e=function(){return E(n,e,t,this,r.concat(l.call(arguments)))};return e},m.partial=function(n){var t=l.call(arguments,1),r=function(){for(var e=0,u=t.length,i=Array(u),o=0;u>o;o++)i[o]=t[o]===m?arguments[e++]:t[o];for(;e<arguments.length;)i.push(arguments[e++]);return E(n,r,this,this,i)};return r},m.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=m.bind(n[r],n);return n},m.memoize=function(n,t){var r=function(e){var u=r.cache,i=""+(t?t.apply(this,arguments):e);return m.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},m.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},m.defer=m.partial(m.delay,m,1),m.throttle=function(n,t,r){var e,u,i,o=null,a=0;r||(r={});var c=function(){a=r.leading===!1?0:m.now(),o=null,i=n.apply(e,u),o||(e=u=null)};return function(){var f=m.now();a||r.leading!==!1||(a=f);var l=t-(f-a);return e=this,u=arguments,0>=l||l>t?(o&&(clearTimeout(o),o=null),a=f,i=n.apply(e,u),o||(e=u=null)):o||r.trailing===!1||(o=setTimeout(c,l)),i}},m.debounce=function(n,t,r){var e,u,i,o,a,c=function(){var f=m.now()-o;t>f&&f>=0?e=setTimeout(c,t-f):(e=null,r||(a=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,o=m.now();var f=r&&!e;return e||(e=setTimeout(c,t)),f&&(a=n.apply(i,u),i=u=null),a}},m.wrap=function(n,t){return m.partial(t,n)},m.negate=function(n){return function(){return!n.apply(this,arguments)}},m.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},m.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},m.before=function(n,t){var r;return function(){return--n>0&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}},m.once=m.partial(m.before,2);var M=!{toString:null}.propertyIsEnumerable("toString"),I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];m.keys=function(n){if(!m.isObject(n))return[];if(v)return v(n);var t=[];for(var r in n)m.has(n,r)&&t.push(r);return M&&e(n,t),t},m.allKeys=function(n){if(!m.isObject(n))return[];var t=[];for(var r in n)t.push(r);return M&&e(n,t),t},m.values=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},m.mapObject=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=u.length,o={},a=0;i>a;a++)e=u[a],o[e]=t(n[e],e,n);return o},m.pairs=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},m.invert=function(n){for(var t={},r=m.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},m.functions=m.methods=function(n){var t=[];for(var r in n)m.isFunction(n[r])&&t.push(r);return t.sort()},m.extend=_(m.allKeys),m.extendOwn=m.assign=_(m.keys),m.findKey=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=0,o=u.length;o>i;i++)if(e=u[i],t(n[e],e,n))return e},m.pick=function(n,t,r){var e,u,i={},o=n;if(null==o)return i;m.isFunction(t)?(u=m.allKeys(o),e=b(t,r)):(u=S(arguments,!1,!1,1),e=function(n,t,r){return t in r},o=Object(o));for(var a=0,c=u.length;c>a;a++){var f=u[a],l=o[f];e(l,f,o)&&(i[f]=l)}return i},m.omit=function(n,t,r){if(m.isFunction(t))t=m.negate(t);else{var e=m.map(S(arguments,!1,!1,1),String);t=function(n,t){return!m.contains(e,t)}}return m.pick(n,t,r)},m.defaults=_(m.allKeys,!0),m.create=function(n,t){var r=j(n);return t&&m.extendOwn(r,t),r},m.clone=function(n){return m.isObject(n)?m.isArray(n)?n.slice():m.extend({},n):n},m.tap=function(n,t){return t(n),n},m.isMatch=function(n,t){var r=m.keys(t),e=r.length;if(null==n)return!e;for(var u=Object(n),i=0;e>i;i++){var o=r[i];if(t[o]!==u[o]||!(o in u))return!1}return!0};var N=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof m&&(n=n._wrapped),t instanceof m&&(t=t._wrapped);var u=s.call(n);if(u!==s.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof t)return!1;var o=n.constructor,a=t.constructor;if(o!==a&&!(m.isFunction(o)&&o instanceof o&&m.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t)return!1}r=r||[],e=e||[];for(var c=r.length;c--;)if(r[c]===n)return e[c]===t;if(r.push(n),e.push(t),i){if(c=n.length,c!==t.length)return!1;for(;c--;)if(!N(n[c],t[c],r,e))return!1}else{var f,l=m.keys(n);if(c=l.length,m.keys(t).length!==c)return!1;for(;c--;)if(f=l[c],!m.has(t,f)||!N(n[f],t[f],r,e))return!1}return r.pop(),e.pop(),!0};m.isEqual=function(n,t){return N(n,t)},m.isEmpty=function(n){return null==n?!0:k(n)&&(m.isArray(n)||m.isString(n)||m.isArguments(n))?0===n.length:0===m.keys(n).length},m.isElement=function(n){return!(!n||1!==n.nodeType)},m.isArray=h||function(n){return"[object Array]"===s.call(n)},m.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},m.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(n){m["is"+n]=function(t){return s.call(t)==="[object "+n+"]"}}),m.isArguments(arguments)||(m.isArguments=function(n){return m.has(n,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(m.isFunction=function(n){return"function"==typeof n||!1}),m.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},m.isNaN=function(n){return m.isNumber(n)&&n!==+n},m.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===s.call(n)},m.isNull=function(n){return null===n},m.isUndefined=function(n){return n===void 0},m.has=function(n,t){return null!=n&&p.call(n,t)},m.noConflict=function(){return u._=i,this},m.identity=function(n){return n},m.constant=function(n){return function(){return n}},m.noop=function(){},m.property=w,m.propertyOf=function(n){return null==n?function(){}:function(t){return n[t]}},m.matcher=m.matches=function(n){return n=m.extendOwn({},n),function(t){return m.isMatch(t,n)}},m.times=function(n,t,r){var e=Array(Math.max(0,n));t=b(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},m.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},m.now=Date.now||function(){return(new Date).getTime()};var B={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},T=m.invert(B),R=function(n){var t=function(t){return n[t]},r="(?:"+m.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};m.escape=R(B),m.unescape=R(T),m.result=function(n,t,r){var e=null==n?void 0:n[t];return e===void 0&&(e=r),m.isFunction(e)?e.call(n):e};var q=0;m.uniqueId=function(n){var t=++q+"";return n?n+t:t},m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var K=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\u2028|\u2029/g,L=function(n){return"\\"+z[n]};m.template=function(n,t,r){!t&&r&&(t=r),t=m.defaults({},t,m.templateSettings);var e=RegExp([(t.escape||K).source,(t.interpolate||K).source,(t.evaluate||K).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,o,a){return i+=n.slice(u,a).replace(D,L),u=a+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":o&&(i+="';\n"+o+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var o=new Function(t.variable||"obj","_",i)}catch(a){throw a.source=i,a}var c=function(n){return o.call(this,n,m)},f=t.variable||"obj";return c.source="function("+f+"){\n"+i+"}",c},m.chain=function(n){var t=m(n);return t._chain=!0,t};var P=function(n,t){return n._chain?m(t).chain():t};m.mixin=function(n){m.each(m.functions(n),function(t){var r=m[t]=n[t];m.prototype[t]=function(){var n=[this._wrapped];return f.apply(n,arguments),P(this,r.apply(m,n))}})},m.mixin(m),m.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=o[n];m.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],P(this,r)}}),m.each(["concat","join","slice"],function(n){var t=o[n];m.prototype[n]=function(){return P(this,t.apply(this._wrapped,arguments))}}),m.prototype.value=function(){return this._wrapped},m.prototype.valueOf=m.prototype.toJSON=m.prototype.value,m.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return m})}).call(this);
+
+(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h<u;h++){t=o[h];if(a=this._events[t]){this._events[t]=s=[];if(e||r){for(l=0,f=a.length;l<f;l++){n=a[l];if(e&&e!==n.callback&&e!==n.callback._callback||r&&r!==n.context){s.push(n)}}}if(!s.length)delete this._events[t]}}return this},trigger:function(t){if(!this._events)return this;var e=o.call(arguments,1);if(!c(this,"trigger",t,e))return this;var i=this._events[t];var r=this._events.all;if(i)f(i,e);if(r)f(r,arguments);return this},stopListening:function(t,e,r){var s=this._listeningTo;if(!s)return this;var n=!e&&!r;if(!r&&typeof e==="object")r=this;if(t)(s={})[t._listenId]=t;for(var a in s){t=s[a];t.off(e,r,this);if(n||i.isEmpty(t._events))delete this._listeningTo[a]}return this}};var l=/\s+/;var c=function(t,e,i,r){if(!i)return true;if(typeof i==="object"){for(var s in i){t[e].apply(t,[s,i[s]].concat(r))}return false}if(l.test(i)){var n=i.split(l);for(var a=0,o=n.length;a<o;a++){t[e].apply(t,[n[a]].concat(r))}return false}return true};var f=function(t,e){var i,r=-1,s=t.length,n=e[0],a=e[1],o=e[2];switch(e.length){case 0:while(++r<s)(i=t[r]).callback.call(i.ctx);return;case 1:while(++r<s)(i=t[r]).callback.call(i.ctx,n);return;case 2:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a);return;case 3:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a,o);return;default:while(++r<s)(i=t[r]).callback.apply(i.ctx,e);return}};var d={listenTo:"on",listenToOnce:"once"};i.each(d,function(t,e){u[e]=function(e,r,s){var n=this._listeningTo||(this._listeningTo={});var a=e._listenId||(e._listenId=i.uniqueId("l"));n[a]=e;if(!s&&typeof r==="object")s=this;e[t](r,s,this);return this}});u.bind=u.on;u.unbind=u.off;i.extend(e,u);var p=e.Model=function(t,e){var r=t||{};e||(e={});this.cid=i.uniqueId("c");this.attributes={};if(e.collection)this.collection=e.collection;if(e.parse)r=this.parse(r,e)||{};r=i.defaults({},r,i.result(this,"defaults"));this.set(r,e);this.changed={};this.initialize.apply(this,arguments)};i.extend(p.prototype,u,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(t){return i.clone(this.attributes)},sync:function(){return e.sync.apply(this,arguments)},get:function(t){return this.attributes[t]},escape:function(t){return i.escape(this.get(t))},has:function(t){return this.get(t)!=null},set:function(t,e,r){var s,n,a,o,h,u,l,c;if(t==null)return this;if(typeof t==="object"){n=t;r=e}else{(n={})[t]=e}r||(r={});if(!this._validate(n,r))return false;a=r.unset;h=r.silent;o=[];u=this._changing;this._changing=true;if(!u){this._previousAttributes=i.clone(this.attributes);this.changed={}}c=this.attributes,l=this._previousAttributes;if(this.idAttribute in n)this.id=n[this.idAttribute];for(s in n){e=n[s];if(!i.isEqual(c[s],e))o.push(s);if(!i.isEqual(l[s],e)){this.changed[s]=e}else{delete this.changed[s]}a?delete c[s]:c[s]=e}if(!h){if(o.length)this._pending=r;for(var f=0,d=o.length;f<d;f++){this.trigger("change:"+o[f],this,c[o[f]],r)}}if(u)return this;if(!h){while(this._pending){r=this._pending;this._pending=false;this.trigger("change",this,r)}}this._pending=false;this._changing=false;return this},unset:function(t,e){return this.set(t,void 0,i.extend({},e,{unset:true}))},clear:function(t){var e={};for(var r in this.attributes)e[r]=void 0;return this.set(e,i.extend({},t,{unset:true}))},hasChanged:function(t){if(t==null)return!i.isEmpty(this.changed);return i.has(this.changed,t)},changedAttributes:function(t){if(!t)return this.hasChanged()?i.clone(this.changed):false;var e,r=false;var s=this._changing?this._previousAttributes:this.attributes;for(var n in t){if(i.isEqual(s[n],e=t[n]))continue;(r||(r={}))[n]=e}return r},previous:function(t){if(t==null||!this._previousAttributes)return null;return this._previousAttributes[t]},previousAttributes:function(){return i.clone(this._previousAttributes)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=this;var r=t.success;t.success=function(i){if(!e.set(e.parse(i,t),t))return false;if(r)r(e,i,t);e.trigger("sync",e,i,t)};q(this,t);return this.sync("read",this,t)},save:function(t,e,r){var s,n,a,o=this.attributes;if(t==null||typeof t==="object"){s=t;r=e}else{(s={})[t]=e}r=i.extend({validate:true},r);if(s&&!r.wait){if(!this.set(s,r))return false}else{if(!this._validate(s,r))return false}if(s&&r.wait){this.attributes=i.extend({},o,s)}if(r.parse===void 0)r.parse=true;var h=this;var u=r.success;r.success=function(t){h.attributes=o;var e=h.parse(t,r);if(r.wait)e=i.extend(s||{},e);if(i.isObject(e)&&!h.set(e,r)){return false}if(u)u(h,t,r);h.trigger("sync",h,t,r)};q(this,r);n=this.isNew()?"create":r.patch?"patch":"update";if(n==="patch")r.attrs=s;a=this.sync(n,this,r);if(s&&r.wait)this.attributes=o;return a},destroy:function(t){t=t?i.clone(t):{};var e=this;var r=t.success;var s=function(){e.trigger("destroy",e,e.collection,t)};t.success=function(i){if(t.wait||e.isNew())s();if(r)r(e,i,t);if(!e.isNew())e.trigger("sync",e,i,t)};if(this.isNew()){t.success();return false}q(this,t);var n=this.sync("delete",this,t);if(!t.wait)s();return n},url:function(){var t=i.result(this,"urlRoot")||i.result(this.collection,"url")||M();if(this.isNew())return t;return t.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(t,e){return t},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return this._validate({},i.extend(t||{},{validate:true}))},_validate:function(t,e){if(!e.validate||!this.validate)return true;t=i.extend({},this.attributes,t);var r=this.validationError=this.validate(t,e)||null;if(!r)return true;this.trigger("invalid",this,r,i.extend(e,{validationError:r}));return false}});var v=["keys","values","pairs","invert","pick","omit"];i.each(v,function(t){p.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.attributes);return i[t].apply(i,e)}});var g=e.Collection=function(t,e){e||(e={});if(e.model)this.model=e.model;if(e.comparator!==void 0)this.comparator=e.comparator;this._reset();this.initialize.apply(this,arguments);if(t)this.reset(t,i.extend({silent:true},e))};var m={add:true,remove:true,merge:true};var y={add:true,remove:false};i.extend(g.prototype,u,{model:p,initialize:function(){},toJSON:function(t){return this.map(function(e){return e.toJSON(t)})},sync:function(){return e.sync.apply(this,arguments)},add:function(t,e){return this.set(t,i.extend({merge:false},e,y))},remove:function(t,e){var r=!i.isArray(t);t=r?[t]:i.clone(t);e||(e={});var s,n,a,o;for(s=0,n=t.length;s<n;s++){o=t[s]=this.get(t[s]);if(!o)continue;delete this._byId[o.id];delete this._byId[o.cid];a=this.indexOf(o);this.models.splice(a,1);this.length--;if(!e.silent){e.index=a;o.trigger("remove",o,this,e)}this._removeReference(o,e)}return r?t[0]:t},set:function(t,e){e=i.defaults({},e,m);if(e.parse)t=this.parse(t,e);var r=!i.isArray(t);t=r?t?[t]:[]:i.clone(t);var s,n,a,o,h,u,l;var c=e.at;var f=this.model;var d=this.comparator&&c==null&&e.sort!==false;var v=i.isString(this.comparator)?this.comparator:null;var g=[],y=[],_={};var b=e.add,w=e.merge,x=e.remove;var E=!d&&b&&x?[]:false;for(s=0,n=t.length;s<n;s++){h=t[s]||{};if(h instanceof p){a=o=h}else{a=h[f.prototype.idAttribute||"id"]}if(u=this.get(a)){if(x)_[u.cid]=true;if(w){h=h===o?o.attributes:h;if(e.parse)h=u.parse(h,e);u.set(h,e);if(d&&!l&&u.hasChanged(v))l=true}t[s]=u}else if(b){o=t[s]=this._prepareModel(h,e);if(!o)continue;g.push(o);this._addReference(o,e)}o=u||o;if(E&&(o.isNew()||!_[o.id]))E.push(o);_[o.id]=true}if(x){for(s=0,n=this.length;s<n;++s){if(!_[(o=this.models[s]).cid])y.push(o)}if(y.length)this.remove(y,e)}if(g.length||E&&E.length){if(d)l=true;this.length+=g.length;if(c!=null){for(s=0,n=g.length;s<n;s++){this.models.splice(c+s,0,g[s])}}else{if(E)this.models.length=0;var k=E||g;for(s=0,n=k.length;s<n;s++){this.models.push(k[s])}}}if(l)this.sort({silent:true});if(!e.silent){for(s=0,n=g.length;s<n;s++){(o=g[s]).trigger("add",o,this,e)}if(l||E&&E.length)this.trigger("sort",this,e)}return r?t[0]:t},reset:function(t,e){e||(e={});for(var r=0,s=this.models.length;r<s;r++){this._removeReference(this.models[r],e)}e.previousModels=this.models;this._reset();t=this.add(t,i.extend({silent:true},e));if(!e.silent)this.trigger("reset",this,e);return t},push:function(t,e){return this.add(t,i.extend({at:this.length},e))},pop:function(t){var e=this.at(this.length-1);this.remove(e,t);return e},unshift:function(t,e){return this.add(t,i.extend({at:0},e))},shift:function(t){var e=this.at(0);this.remove(e,t);return e},slice:function(){return o.apply(this.models,arguments)},get:function(t){if(t==null)return void 0;return this._byId[t]||this._byId[t.id]||this._byId[t.cid]},at:function(t){return this.models[t]},where:function(t,e){if(i.isEmpty(t))return e?void 0:[];return this[e?"find":"filter"](function(e){for(var i in t){if(t[i]!==e.get(i))return false}return true})},findWhere:function(t){return this.where(t,true)},sort:function(t){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");t||(t={});if(i.isString(this.comparator)||this.comparator.length===1){this.models=this.sortBy(this.comparator,this)}else{this.models.sort(i.bind(this.comparator,this))}if(!t.silent)this.trigger("sort",this,t);return this},pluck:function(t){return i.invoke(this.models,"get",t)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=t.success;var r=this;t.success=function(i){var s=t.reset?"reset":"set";r[s](i,t);if(e)e(r,i,t);r.trigger("sync",r,i,t)};q(this,t);return this.sync("read",this,t)},create:function(t,e){e=e?i.clone(e):{};if(!(t=this._prepareModel(t,e)))return false;if(!e.wait)this.add(t,e);var r=this;var s=e.success;e.success=function(t,i){if(e.wait)r.add(t,e);if(s)s(t,i,e)};t.save(null,e);return t},parse:function(t,e){return t},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0;this.models=[];this._byId={}},_prepareModel:function(t,e){if(t instanceof p)return t;e=e?i.clone(e):{};e.collection=this;var r=new this.model(t,e);if(!r.validationError)return r;this.trigger("invalid",this,r.validationError,e);return false},_addReference:function(t,e){this._byId[t.cid]=t;if(t.id!=null)this._byId[t.id]=t;if(!t.collection)t.collection=this;t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){if(this===t.collection)delete t.collection;t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,i,r){if((t==="add"||t==="remove")&&i!==this)return;if(t==="destroy")this.remove(e,r);if(e&&t==="change:"+e.idAttribute){delete this._byId[e.previous(e.idAttribute)];if(e.id!=null)this._byId[e.id]=e}this.trigger.apply(this,arguments)}});var _=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];i.each(_,function(t){g.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.models);return i[t].apply(i,e)}});var b=["groupBy","countBy","sortBy","indexBy"];i.each(b,function(t){g.prototype[t]=function(e,r){var s=i.isFunction(e)?e:function(t){return t.get(e)};return i[t](this.models,s,r)}});var w=e.View=function(t){this.cid=i.uniqueId("view");t||(t={});i.extend(this,i.pick(t,E));this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()};var x=/^(\S+)\s*(.*)$/;var E=["model","collection","el","id","attributes","className","tagName","events"];i.extend(w.prototype,u,{tagName:"div",$:function(t){return this.$el.find(t)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();this.stopListening();return this},setElement:function(t,i){if(this.$el)this.undelegateEvents();this.$el=t instanceof e.$?t:e.$(t);this.el=this.$el[0];if(i!==false)this.delegateEvents();return this},delegateEvents:function(t){if(!(t||(t=i.result(this,"events"))))return this;this.undelegateEvents();for(var e in t){var r=t[e];if(!i.isFunction(r))r=this[t[e]];if(!r)continue;var s=e.match(x);var n=s[1],a=s[2];r=i.bind(r,this);n+=".delegateEvents"+this.cid;if(a===""){this.$el.on(n,r)}else{this.$el.on(n,a,r)}}return this},undelegateEvents:function(){this.$el.off(".delegateEvents"+this.cid);return this},_ensureElement:function(){if(!this.el){var t=i.extend({},i.result(this,"attributes"));if(this.id)t.id=i.result(this,"id");if(this.className)t["class"]=i.result(this,"className");var r=e.$("<"+i.result(this,"tagName")+">").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('<iframe src="javascript:0" tabindex="-1">');this.iframe=a.hide().appendTo("body")[0].contentWindow;this.navigate(r)}if(this._hasPushState){e.$(window).on("popstate",this.checkUrl)}else if(this._wantsHashChange&&"onhashchange"in window&&!n){e.$(window).on("hashchange",this.checkUrl)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}this.fragment=r;var o=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){this.fragment=this.getFragment(null,true);this.location.replace(this.root+"#"+this.fragment);return true}else if(this._hasPushState&&this.atRoot()&&o.hash){this.fragment=this.getHash().replace(R,"");this.history.replaceState({},document.title,this.root+this.fragment)}}if(!this.options.silent)return this.loadUrl()},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl);if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);N.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getFragment(this.getHash(this.iframe))}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){t=this.fragment=this.getFragment(t);return i.any(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!N.started)return false;if(!e||e===true)e={trigger:!!e};var i=this.root+(t=this.getFragment(t||""));t=t.replace(j,"");if(this.fragment===t)return;this.fragment=t;if(t===""&&i!=="/")i=i.slice(0,-1);if(this._hasPushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,i)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getFragment(this.getHash(this.iframe))){if(!e.replace)this.iframe.document.open().close();this._updateHash(this.iframe.location,t,e.replace)}}else{return this.location.assign(i)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new N;var U=function(t,e){var r=this;var s;if(t&&i.has(t,"constructor")){s=t.constructor}else{s=function(){return r.apply(this,arguments)}}i.extend(s,r,e);var n=function(){this.constructor=s};n.prototype=r.prototype;s.prototype=new n;if(t)i.extend(s.prototype,t);s.__super__=r.prototype;return s};p.extend=g.extend=$.extend=w.extend=N.extend=U;var M=function(){throw new Error('A "url" property or function must be specified')};var q=function(t,e){var i=e.error;e.error=function(r){if(i)i(t,r,e);t.trigger("error",t,r,e)}};return e});
+
+/*!
+ * jQuery Once v2.0.1 - http://github.com/robloach/jquery-once
+ * @license MIT, GPL-2.0
+ *   http://opensource.org/licenses/MIT
+ *   http://opensource.org/licenses/GPL-2.0
+ */
+(function(e){"use strict";if(typeof exports==="object"){e(require("jquery"))}else if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){"use strict";var n=function(e){e=e||"once";if(typeof e!=="string"){throw new Error("The jQuery Once id parameter must be a string")}return e};e.fn.once=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)!==true}).data(r,true)};e.fn.removeOnce=function(e){return this.findOnce(e).removeData("jquery-once-"+n(e))};e.fn.findOnce=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)===true})}});
+
+/**
+ * Base framework for Drupal-specific JavaScript, behaviors, and settings.
+ */
+window.Drupal = {behaviors: {}};
+
+// Class indicating that JS is enabled; used for styling purpose.
+document.documentElement.className += ' js';
+
+// Allow other JavaScript libraries to use $.
+if (window.jQuery) {
+  jQuery.noConflict();
+}
+
+// JavaScript should be made compatible with libraries other than jQuery by
+// wrapping it in an anonymous closure.
+(function (domready, Drupal, drupalSettings, drupalTranslations) {
+
+  "use strict";
+
+  /**
+   * Custom error type thrown after attach/detach if one or more behaviors failed.
+   *
+   * @param list
+   *   An array of errors thrown during attach/detach.
+   * @param event
+   *   A string containing either 'attach' or 'detach'.
+   */
+  function DrupalBehaviorError(list, event) {
+    this.name = 'DrupalBehaviorError';
+    this.event = event || 'attach';
+    this.list = list;
+    // Makes the list of errors readable.
+    var messageList = [];
+    messageList.push(this.event);
+    var il = this.list.length;
+    for (var i = 0; i < il; i++) {
+      messageList.push(this.list[i].behavior + ': ' + this.list[i].error.message);
+    }
+    this.message = messageList.join(' ; ');
+  }
+
+  DrupalBehaviorError.prototype = new Error();
+
+  /**
+   * Attach all registered behaviors to a page element.
+   *
+   * Behaviors are event-triggered actions that attach to page elements, enhancing
+   * default non-JavaScript UIs. Behaviors are registered in the Drupal.behaviors
+   * object using the method 'attach' and optionally also 'detach' as follows:
+   * @code
+   *    Drupal.behaviors.behaviorName = {
+   *      attach: function (context, settings) {
+   *        ...
+   *      },
+   *      detach: function (context, settings, trigger) {
+   *        ...
+   *      }
+   *    };
+   * @endcode
+   *
+   * Drupal.attachBehaviors is added below to the jQuery.ready event and therefore
+   * runs on initial page load. Developers implementing Ajax in their solutions
+   * should also call this function after new page content has been loaded,
+   * feeding in an element to be processed, in order to attach all behaviors to
+   * the new content.
+   *
+   * Behaviors should use
+   * @code
+   *   var elements = $(context).find(selector).once('behavior-name');
+   * @endcode
+   * to ensure the behavior is attached only once to a given element. (Doing so
+   * enables the reprocessing of given elements, which may be needed on occasion
+   * despite the ability to limit behavior attachment to a particular element.)
+   *
+   * @param context
+   *   An element to attach behaviors to. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none is given,
+   *   the global drupalSettings object is used.
+   */
+  Drupal.attachBehaviors = function (context, settings) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].attach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].attach(context, settings);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'attach');
+    }
+  };
+
+  // Attach all behaviors.
+  domready(function () { Drupal.attachBehaviors(document, drupalSettings); });
+
+  /**
+   * Detach registered behaviors from a page element.
+   *
+   * Developers implementing AHAH/Ajax in their solutions should call this
+   * function before page content is about to be removed, feeding in an element
+   * to be processed, in order to allow special behaviors to detach from the
+   * content.
+   *
+   * Such implementations should use .findOnce() and .removeOnce() to find
+   * elements with their corresponding Drupal.behaviors.behaviorName.attach
+   * implementation, i.e. .removeOnce('behaviorName'), to ensure the behavior is
+   * detached only from previously processed elements.
+   *
+   * @param context
+   *   An element to detach behaviors from. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none given, the
+   *   global drupalSettings object is used.
+   * @param trigger
+   *   A string containing what's causing the behaviors to be detached. The
+   *   possible triggers are:
+   *   - unload: (default) The context element is being removed from the DOM.
+   *   - move: The element is about to be moved within the DOM (for example,
+   *     during a tabledrag row swap). After the move is completed,
+   *     Drupal.attachBehaviors() is called, so that the behavior can undo
+   *     whatever it did in response to the move. Many behaviors won't need to
+   *     do anything simply in response to the element being moved, but because
+   *     IFRAME elements reload their "src" when being moved within the DOM,
+   *     behaviors bound to IFRAME elements (like WYSIWYG editors) may need to
+   *     take some action.
+   *   - serialize: When an Ajax form is submitted, this is called with the
+   *     form as the context. This provides every behavior within the form an
+   *     opportunity to ensure that the field elements have correct content
+   *     in them before the form is serialized. The canonical use-case is so
+   *     that WYSIWYG editors can update the hidden textarea to which they are
+   *     bound.
+   *
+   * @see Drupal.attachBehaviors
+   */
+  Drupal.detachBehaviors = function (context, settings, trigger) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    trigger = trigger || 'unload';
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].detach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].detach(context, settings, trigger);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'detach:' + trigger);
+    }
+  };
+
+  /**
+   * Helper to test document width for mobile configurations.
+   * @todo Temporary solution for the mobile initiative.
+   */
+  Drupal.checkWidthBreakpoint = function (width) {
+    width = width || drupalSettings.widthBreakpoint || 640;
+    return (document.documentElement.clientWidth > width);
+  };
+
+  /**
+   * Encode special characters in a plain-text string for display as HTML.
+   *
+   * @param str
+   *   The string to be encoded.
+   * @return
+   *   The encoded string.
+   * @ingroup sanitization
+   */
+  Drupal.checkPlain = function (str) {
+    str = str.toString()
+      .replace(/&/g, '&amp;')
+      .replace(/"/g, '&quot;')
+      .replace(/</g, '&lt;')
+      .replace(/>/g, '&gt;');
+    return str;
+  };
+
+  /**
+   * Replace placeholders with sanitized values in a string.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   An object of replacements pairs to make. Incidences of any key in this
+   *   array are replaced with the corresponding value. Based on the first
+   *   character of the key, the value is escaped and/or themed:
+   *    - !variable: inserted as is
+   *    - @variable: escape plain text to HTML (Drupal.checkPlain)
+   *    - %variable: escape text and theme as a placeholder for user-submitted
+   *      content (checkPlain + Drupal.theme('placeholder'))
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   *
+   * @see Drupal.t()
+   * @ingroup sanitization
+   */
+  Drupal.formatString = function (str, args) {
+    // Keep args intact.
+    var processedArgs = {};
+    // Transform arguments before inserting them.
+    for (var key in args) {
+      if (args.hasOwnProperty(key)) {
+        switch (key.charAt(0)) {
+          // Escaped only.
+          case '@':
+            processedArgs[key] = Drupal.checkPlain(args[key]);
+            break;
+          // Pass-through.
+          case '!':
+            processedArgs[key] = args[key];
+            break;
+          // Escaped and placeholder.
+          default:
+            processedArgs[key] = Drupal.theme('placeholder', args[key]);
+            break;
+        }
+      }
+    }
+
+    return Drupal.stringReplace(str, processedArgs, null);
+  };
+
+  /**
+   * Replace substring.
+   *
+   * The longest keys will be tried first. Once a substring has been replaced,
+   * its new value will not be searched again.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   Key-value pairs.
+   * @param {Array|null} keys
+   *   Array of keys from the "args".  Internal use only.
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   */
+  Drupal.stringReplace = function (str, args, keys) {
+    if (str.length === 0) {
+      return str;
+    }
+
+    // If the array of keys is not passed then collect the keys from the args.
+    if (!Array.isArray(keys)) {
+      keys = [];
+      for (var k in args) {
+        if (args.hasOwnProperty(k)) {
+          keys.push(k);
+        }
+      }
+
+      // Order the keys by the character length. The shortest one is the first.
+      keys.sort(function (a, b) { return a.length - b.length; });
+    }
+
+    if (keys.length === 0) {
+      return str;
+    }
+
+    // Take next longest one from the end.
+    var key = keys.pop();
+    var fragments = str.split(key);
+
+    if (keys.length) {
+      for (var i = 0; i < fragments.length; i++) {
+        // Process each fragment with a copy of remaining keys.
+        fragments[i] = Drupal.stringReplace(fragments[i], args, keys.slice(0));
+      }
+    }
+
+    return fragments.join(args[key]);
+  };
+
+  /**
+   * Translate strings to the page language or a given language.
+   *
+   * See the documentation of the server-side t() function for further details.
+   *
+   * @param str
+   *   A string containing the English string to translate.
+   * @param args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *
+   * @param options
+   *   - 'context' (defaults to the empty context): The context the source string
+   *     belongs to.
+   *
+   * @return
+   *   The translated string.
+   */
+  Drupal.t = function (str, args, options) {
+    options = options || {};
+    options.context = options.context || '';
+
+    // Fetch the localized version of the string.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.strings && drupalTranslations.strings[options.context] && drupalTranslations.strings[options.context][str]) {
+      str = drupalTranslations.strings[options.context][str];
+    }
+
+    if (args) {
+      str = Drupal.formatString(str, args);
+    }
+    return str;
+  };
+
+  /**
+   * Returns the URL to a Drupal page.
+   */
+  Drupal.url = function (path) {
+    return drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + path;
+  };
+
+  /**
+   * Format a string containing a count of items.
+   *
+   * This function ensures that the string is pluralized correctly. Since
+   * Drupal.t() is called by this function, make sure not to pass
+   * already-localized strings to it.
+   *
+   * See the documentation of the server-side
+   * \Drupal\Core\StringTranslation\TranslationInterface::formatPlural()
+   * function for more details.
+   *
+   * @param {Number} count
+   *   The item count to display.
+   * @param {String} singular
+   *   The string for the singular case. Please make sure it is clear this is
+   *   singular, to ease translation (e.g. use "1 new comment" instead of "1
+   *   new"). Do not use @count in the singular string.
+   * @param {String} plural
+   *   The string for the plural case. Please make sure it is clear this is
+   *   plural, to ease translation. Use @count in place of the item count, as in
+   *   "@count new comments".
+   * @param {Object} args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *   Note that you do not need to include @count in this array.
+   *   This replacement is done automatically for the plural case.
+   * @param {Object} options
+   *   The options to pass to the Drupal.t() function.
+   *
+   * @return {String}
+   *   A translated string.
+   */
+  Drupal.formatPlural = function (count, singular, plural, args, options) {
+    args = args || {};
+    args['@count'] = count;
+
+    var pluralDelimiter = drupalSettings.pluralDelimiter;
+    var translations = Drupal.t(singular + pluralDelimiter + plural, args, options).split(pluralDelimiter);
+    var index = 0;
+
+    // Determine the index of the plural form.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.pluralFormula) {
+      index = count in drupalTranslations.pluralFormula ? drupalTranslations.pluralFormula[count] : drupalTranslations.pluralFormula['default'];
+    }
+    else if (args['@count'] !== 1) {
+      index = 1;
+    }
+
+    return translations[index];
+  };
+
+  /**
+   * Encodes a Drupal path for use in a URL.
+   *
+   * For aesthetic reasons slashes are not escaped.
+   */
+  Drupal.encodePath = function (item) {
+    return window.encodeURIComponent(item).replace(/%2F/g, '/');
+  };
+
+  /**
+   * Generate the themed representation of a Drupal object.
+   *
+   * All requests for themed output must go through this function. It examines
+   * the request and routes it to the appropriate theme function. If the current
+   * theme does not provide an override function, the generic theme function is
+   * called.
+   *
+   * For example, to retrieve the HTML for text that should be emphasized and
+   * displayed as a placeholder inside a sentence, call
+   * Drupal.theme('placeholder', text).
+   *
+   * @param func
+   *   The name of the theme function to call.
+   * @param ...
+   *   Additional arguments to pass along to the theme function.
+   * @return
+   *   Any data the theme function returns. This could be a plain HTML string,
+   *   but also a complex object.
+   */
+  Drupal.theme = function (func) {
+    var args = Array.prototype.slice.apply(arguments, [1]);
+    if (func in Drupal.theme) {
+      return Drupal.theme[func].apply(this, args);
+    }
+  };
+
+  /**
+   * Formats text for emphasized display in a placeholder inside a sentence.
+   *
+   * @param str
+   *   The text to format (plain-text).
+   * @return
+   *   The formatted text (html).
+   */
+  Drupal.theme.placeholder = function (str) {
+    return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>';
+  };
+
+})(domready, Drupal, window.drupalSettings, window.drupalTranslations);
+;
+/*!
+ * jQuery UI Core 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,r){var i,s,o,u=t.nodeName.toLowerCase();return"area"===u?(i=t.parentNode,s=i.name,!t.href||!s||i.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap='#"+s+"']")[0],!!o&&n(o))):(/^(input|select|textarea|button|object)$/.test(u)?!t.disabled:"a"===u?t.href||r:r)&&n(t)}function n(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return e.css(this,"visibility")==="hidden"}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var n=this.css("position"),r=n==="absolute",i=t?/(auto|scroll|hidden)/:/(auto|scroll)/,s=this.parents().filter(function(){var t=e(this);return r&&t.css("position")==="static"?!1:i.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return n==="fixed"||!s.length?e(this[0].ownerDocument||document):s},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(n){return t(n,!isNaN(e.attr(n,"tabindex")))},tabbable:function(n){var r=e.attr(n,"tabindex"),i=isNaN(r);return(i||r>=0)&&t(n,!i)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,n){function o(t,n,i,s){return e.each(r,function(){n-=parseFloat(e.css(t,"padding"+this))||0,i&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var r=n==="Width"?["Left","Right"]:["Top","Bottom"],i=n.toLowerCase(),s={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+n]=function(t){return t===undefined?s["inner"+n].call(this):this.each(function(){e(this).css(i,o(this,t)+"px")})},e.fn["outer"+n]=function(t,r){return typeof t!="number"?s["outer"+n].call(this,t):this.each(function(){e(this).css(i,o(this,t,!0,r)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(n,r){return typeof n=="number"?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),r&&r.call(t)},n)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(t!==undefined)return this.css("zIndex",t);if(this.length){var n=e(this[0]),r,i;while(n.length&&n[0]!==document){r=n.css("position");if(r==="absolute"||r==="relative"||r==="fixed"){i=parseInt(n.css("zIndex"),10);if(!isNaN(i)&&i!==0)return i}n=n.parent()}}return 0}}),e.ui.plugin={add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n,r){var i,s=e.plugins[t];if(!s)return;if(!r&&(!e.element[0].parentNode||e.element[0].parentNode.nodeType===11))return;for(i=0;i<s.length;i++)e.options[s[i][0]]&&s[i][1].apply(e.element,n)}}});;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module.
+ */
+
+(function ($, Drupal, drupalSettings, _, Backbone, JSON, storage) {
+
+  "use strict";
+
+  var options = $.extend(drupalSettings.contextual,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        open: Drupal.t('Open'),
+        close: Drupal.t('Close')
+      }
+    }
+  );
+
+  // Clear the cached contextual links whenever the current user's set of
+  // permissions changes.
+  var cachedPermissionsHash = storage.getItem('Drupal.contextual.permissionsHash');
+  var permissionsHash = drupalSettings.user.permissionsHash;
+  if (cachedPermissionsHash !== permissionsHash) {
+    if (typeof permissionsHash === 'string') {
+      _.chain(storage).keys().each(function (key) {
+        if (key.substring(0, 18) === 'Drupal.contextual.') {
+          storage.removeItem(key);
+        }
+      });
+    }
+    storage.setItem('Drupal.contextual.permissionsHash', permissionsHash);
+  }
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   * @param string html
+   *   The server-side rendered HTML for this contextual link.
+   */
+  function initContextual($contextual, html) {
+    var $region = $contextual.closest('.contextual-region');
+    var contextual = Drupal.contextual;
+
+    $contextual
+      // Update the placeholder to contain its rendered contextual links.
+      .html(html)
+      // Use the placeholder as a wrapper with a specific class to provide
+      // positioning and behavior attachment context.
+      .addClass('contextual')
+      // Ensure a trigger element exists before the actual contextual links.
+      .prepend(Drupal.theme('contextualTrigger'));
+
+    // Set the destination parameter on each of the contextual links.
+    var destination = 'destination=' + Drupal.encodePath(drupalSettings.path.currentPath);
+    $contextual.find('.contextual-links a').each(function () {
+      var url = this.getAttribute('href');
+      var glue = (url.indexOf('?') === -1) ? '?' : '&';
+      this.setAttribute('href', url + glue + destination);
+    });
+
+    // Create a model and the appropriate views.
+    var model = new contextual.StateModel({
+      title: $region.find('h2').eq(0).text().trim()
+    });
+    var viewOptions = $.extend({el: $contextual, model: model}, options);
+    contextual.views.push({
+      visual: new contextual.VisualView(viewOptions),
+      aural: new contextual.AuralView(viewOptions),
+      keyboard: new contextual.KeyboardView(viewOptions)
+    });
+    contextual.regionViews.push(new contextual.RegionView(
+      $.extend({el: $region, model: model}, options))
+    );
+
+    // Add the model to the collection. This must happen after the views have been
+    // associated with it, otherwise collection change event handlers can't
+    // trigger the model change event handler in its views.
+    contextual.collection.add(model);
+
+    // Let other JavaScript react to the adding of a new contextual link.
+    $(document).trigger('drupalContextualLinkAdded', {
+      $el: $contextual,
+      $region: $region,
+      model: model
+    });
+
+    // Fix visual collisions between contextual link triggers.
+    adjustIfNestedAndOverlapping($contextual);
+  }
+
+  /**
+   * Determines if a contextual link is nested & overlapping, if so: adjusts it.
+   *
+   * This only deals with two levels of nesting; deeper levels are not touched.
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   */
+  function adjustIfNestedAndOverlapping($contextual) {
+    var $contextuals = $contextual
+      // @todo confirm that .closest() is not sufficient
+      .parents('.contextual-region').eq(-1)
+      .find('.contextual');
+
+    // Early-return when there's no nesting.
+    if ($contextuals.length === 1) {
+      return;
+    }
+
+    // If the two contextual links overlap, then we move the second one.
+    var firstTop = $contextuals.eq(0).offset().top;
+    var secondTop = $contextuals.eq(1).offset().top;
+    if (firstTop === secondTop) {
+      var $nestedContextual = $contextuals.eq(1);
+
+      // Retrieve height of nested contextual link.
+      var height = 0;
+      var $trigger = $nestedContextual.find('.trigger');
+      // Elements with the .visually-hidden class have no dimensions, so this
+      // class must be temporarily removed to the calculate the height.
+      $trigger.removeClass('visually-hidden');
+      height = $nestedContextual.height();
+      $trigger.addClass('visually-hidden');
+
+      // Adjust nested contextual link's position.
+      $nestedContextual.css({top: $nestedContextual.position().top + height});
+    }
+  }
+
+  /**
+   * Attaches outline behavior for regions associated with contextual links.
+   *
+   * Events
+   *   Contextual triggers an event that can be used by other scripts.
+   *   - drupalContextualLinkAdded: Triggered when a contextual link is added.
+   */
+  Drupal.behaviors.contextual = {
+    attach: function (context) {
+      var $context = $(context);
+
+      // Find all contextual links placeholders, if any.
+      var $placeholders = $context.find('[data-contextual-id]').once('contextual-render');
+      if ($placeholders.length === 0) {
+        return;
+      }
+
+      // Collect the IDs for all contextual links placeholders.
+      var ids = [];
+      $placeholders.each(function () {
+        ids.push($(this).attr('data-contextual-id'));
+      });
+
+      // Update all contextual links placeholders whose HTML is cached.
+      var uncachedIDs = _.filter(ids, function initIfCached(contextualID) {
+        var html = storage.getItem('Drupal.contextual.' + contextualID);
+        if (html !== null) {
+          // Initialize after the current execution cycle, to make the AJAX
+          // request for retrieving the uncached contextual links as soon as
+          // possible, but also to ensure that other Drupal behaviors have had the
+          // chance to set up an event listener on the Backbone collection
+          // Drupal.contextual.collection.
+          window.setTimeout(function () {
+            initContextual($context.find('[data-contextual-id="' + contextualID + '"]'), html);
+          });
+          return false;
+        }
+        return true;
+      });
+
+      // Perform an AJAX request to let the server render the contextual links for
+      // each of the placeholders.
+      if (uncachedIDs.length > 0) {
+        $.ajax({
+          url: Drupal.url('contextual/render'),
+          type: 'POST',
+          data: {'ids[]': uncachedIDs},
+          dataType: 'json',
+          success: function (results) {
+            _.each(results, function (html, contextualID) {
+              // Store the metadata.
+              storage.setItem('Drupal.contextual.' + contextualID, html);
+              // If the rendered contextual links are empty, then the current user
+              // does not have permission to access the associated links: don't
+              // render anything.
+              if (html.length > 0) {
+                // Update the placeholders to contain its rendered contextual links.
+                // Usually there will only be one placeholder, but it's possible for
+                // multiple identical placeholders exist on the page (probably
+                // because the same content appears more than once).
+                $placeholders = $context.find('[data-contextual-id="' + contextualID + '"]');
+
+                // Initialize the contextual links.
+                for (var i = 0; i < $placeholders.length; i++) {
+                  initContextual($placeholders.eq(i), html);
+                }
+              }
+            });
+          }
+        });
+      }
+    }
+  };
+
+  Drupal.contextual = {
+    // The Drupal.contextual.View instances associated with each list element of
+    // contextual links.
+    views: [],
+
+    // The Drupal.contextual.RegionView instances associated with each contextual
+    // region element.
+    regionViews: []
+  };
+
+  // A Backbone.Collection of Drupal.contextual.StateModel instances.
+  Drupal.contextual.collection = new Backbone.Collection([], {model: Drupal.contextual.StateModel});
+
+  /**
+   * A trigger is an interactive element often bound to a click handler.
+   *
+   * @return String
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.contextualTrigger = function () {
+    return '<button class="trigger visually-hidden focusable" type="button"></button>';
+  };
+
+})(jQuery, Drupal, drupalSettings, _, Backbone, window.JSON, window.sessionStorage);
+;
+/**
+ * @file
+ * A Backbone Model for the state of a contextual link's trigger, list & region.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of a contextual link's trigger, list & region.
+   */
+  Drupal.contextual.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // The title of the entity to which these contextual links apply.
+      title: '',
+      // Represents if the contextual region is being hovered.
+      regionIsHovered: false,
+      // Represents if the contextual trigger or options have focus.
+      hasFocus: false,
+      // Represents if the contextual options for an entity are available to
+      // be selected (i.e. whether the list of options is visible).
+      isOpen: false,
+      // When the model is locked, the trigger remains active.
+      isLocked: false
+    },
+
+    /**
+     * Opens or closes the contextual link.
+     *
+     * If it is opened, then also give focus.
+     */
+    toggleOpen: function () {
+      var newIsOpen = !this.get('isOpen');
+      this.set('isOpen', newIsOpen);
+      if (newIsOpen) {
+        this.focus();
+      }
+      return this;
+    },
+
+    /**
+     * Closes this contextual link.
+     *
+     * Does not call blur() because we want to allow a contextual link to have
+     * focus, yet be closed for example when hovering.
+     */
+    close: function () {
+      this.set('isOpen', false);
+      return this;
+    },
+
+    /**
+     * Gives focus to this contextual link.
+     *
+     * Also closes + removes focus from every other contextual link.
+     */
+    focus: function () {
+      this.set('hasFocus', true);
+      var cid = this.cid;
+      this.collection.each(function (model) {
+        if (model.cid !== cid) {
+          model.close().blur();
+        }
+      });
+      return this;
+    },
+
+    /**
+     * Removes focus from this contextual link, unless it is open.
+     */
+    blur: function () {
+      if (!this.get('isOpen')) {
+        this.set('hasFocus', false);
+      }
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of a contextual link (i.e. screen reader support).
+   */
+  Drupal.contextual.AuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+
+      // Use aria-role form so that the number of items in the list is spoken.
+      this.$el.attr('role', 'form');
+
+      // Initial render.
+      this.render();
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+
+      // Set the hidden property of the links.
+      this.$el.find('.contextual-links')
+        .prop('hidden', !isOpen);
+
+      // Update the view of the trigger.
+      this.$el.find('.trigger')
+        .text(Drupal.t('@action @title configuration options', {
+          '@action': (!isOpen) ? this.options.strings.open : this.options.strings.close,
+          '@title': this.model.get('title')
+        }))
+        .attr('aria-pressed', isOpen);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides keyboard interaction for a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Provides keyboard interaction for a contextual link.
+   */
+  Drupal.contextual.KeyboardView = Backbone.View.extend({
+    events: {
+      'focus .trigger': 'focus',
+      'focus .contextual-links a': 'focus',
+      'blur .trigger': function () { this.model.blur(); },
+      'blur .contextual-links a': function () {
+        // Set up a timeout to allow a user to tab between the trigger and the
+        // contextual links without the menu dismissing.
+        var that = this;
+        this.timer = window.setTimeout(function () {
+          that.model.close().blur();
+        }, 150);
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      // The timer is used to create a delay before dismissing the contextual
+      // links on blur. This is only necessary when keyboard users tab into
+      // contextual links without edit mode (i.e. without TabbingManager).
+      // That means that if we decide to disable tabbing of contextual links
+      // without edit mode, all this timer logic can go away.
+      this.timer = NaN;
+    },
+
+    /**
+     * Sets focus on the model; Clears the timer that dismisses the links.
+     */
+    focus: function () {
+      // Clear the timeout that might have been set by blurring a link.
+      window.clearTimeout(this.timer);
+      this.model.focus();
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that renders the visual view of a contextual region element.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual region element.
+   */
+  Drupal.contextual.RegionView = Backbone.View.extend({
+
+    events: function () {
+      var mapping = {
+        mouseenter: function () { this.model.set('regionIsHovered', true); },
+        mouseleave: function () {
+          this.model.close().blur().set('regionIsHovered', false);
+        }
+      };
+      // We don't want mouse hover events on touch.
+      if (Modernizr.touch) {
+        mapping = {};
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:hasFocus', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.$el.toggleClass('focus', this.model.get('hasFocus'));
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of a contextual link.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual link. Listens to mouse & touch.
+   */
+  Drupal.contextual.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+      var mapping = {
+        'click .trigger': function () { this.model.toggleOpen(); },
+        'touchend .trigger': touchEndToClick,
+        'click .contextual-links a': function () { this.model.close().blur(); },
+        'touchend .contextual-links a': touchEndToClick
+      };
+      // We only want mouse hover events on non-touch.
+      if (!Modernizr.touch) {
+        mapping.mouseenter = function () { this.model.focus(); };
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+      // The trigger should be visible when:
+      //  - the mouse hovered over the region,
+      //  - the trigger is locked,
+      //  - and for as long as the contextual menu is open.
+      var isVisible = this.model.get('isLocked') || this.model.get('regionIsHovered') || isOpen;
+
+      this.$el
+        // The open state determines if the links are visible.
+        .toggleClass('open', isOpen)
+        // Update the visibility of the trigger.
+        .find('.trigger').toggleClass('visually-hidden', !isVisible);
+
+      // Nested contextual region handling: hide any nested contextual triggers.
+      if ('isOpen' in this.model.changed) {
+        this.$el.closest('.contextual-region')
+          .find('.contextual .trigger:not(:first)')
+          .toggle(!isOpen);
+      }
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+/**
+ * @file
+ * Attaches behaviors for Drupal's active link marking.
+ */
+
+(function (Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Append is-active class.
+   *
+   * The link is only active if its path corresponds to the current path, the
+   * language of the linked path is equal to the current language, and if the
+   * query parameters of the link equal those of the current request, since the
+   * same request with different query parameters may yield a different page
+   * (e.g. pagers, exposed View filters).
+   *
+   * Does not discriminate based on element type, so allows you to set the
+   * is-active class on any element: a, li…
+   */
+  Drupal.behaviors.activeLinks = {
+    attach: function (context) {
+      // Start by finding all potentially active links.
+      var path = drupalSettings.path;
+      var queryString = JSON.stringify(path.currentQuery);
+      var querySelector = path.currentQuery ? "[data-drupal-link-query='" + queryString + "']" : ':not([data-drupal-link-query])';
+      var originalSelectors = ['[data-drupal-link-system-path="' + path.currentPath + '"]'];
+      var selectors;
+
+      // If this is the front page, we have to check for the <front> path as well.
+      if (path.isFront) {
+        originalSelectors.push('[data-drupal-link-system-path="<front>"]');
+      }
+
+      // Add language filtering.
+      selectors = [].concat(
+        // Links without any hreflang attributes (most of them).
+        originalSelectors.map(function (selector) { return selector + ':not([hreflang])'; }),
+        // Links with hreflang equals to the current language.
+        originalSelectors.map(function (selector) { return selector + '[hreflang="' + path.currentLanguage + '"]'; })
+      );
+
+      // Add query string selector for pagers, exposed filters.
+      selectors = selectors.map(function (current) { return current + querySelector; });
+
+      // Query the DOM.
+      var activeLinks = context.querySelectorAll(selectors.join(','));
+      var il = activeLinks.length;
+      for (var i = 0; i < il; i++) {
+        activeLinks[i].classList.add('is-active');
+      }
+    },
+    detach: function (context, settings, trigger) {
+      if (trigger === 'unload') {
+        var activeLinks = context.querySelectorAll('[data-drupal-link-system-path].is-active');
+        var il = activeLinks.length;
+        for (var i = 0; i < il; i++) {
+          activeLinks[i].classList.remove('is-active');
+        }
+      }
+    }
+  };
+
+})(Drupal, drupalSettings);
+;
+/**
+ * Limits the invocations of a function in a given time frame.
+ *
+ * Adapted from underscore.js with the addition Drupal namespace.
+ *
+ * The debounce function wrapper should be used sparingly. One clear use case
+ * is limiting the invocation of a callback attached to the window resize event.
+ *
+ * Before using the debounce function wrapper, consider first whether the
+ * callback could be attached to an event that fires less frequently or if the
+ * function can be written in such a way that it is only invoked under specific
+ * conditions.
+ *
+ * @param {Function} callback
+ *   The function to be invoked.
+ *
+ * @param {Number} wait
+ *   The time period within which the callback function should only be
+ *   invoked once. For example if the wait period is 250ms, then the callback
+ *   will only be called at most 4 times per second.
+ */
+Drupal.debounce = function (func, wait, immediate) {
+
+  "use strict";
+
+  var timeout;
+  var result;
+  return function () {
+    var context = this;
+    var args = arguments;
+    var later = function () {
+      timeout = null;
+      if (!immediate) {
+        result = func.apply(context, args);
+      }
+    };
+    var callNow = immediate && !timeout;
+    clearTimeout(timeout);
+    timeout = setTimeout(later, wait);
+    if (callNow) {
+      result = func.apply(context, args);
+    }
+    return result;
+  };
+};
+;
+/**
+ * Adds an HTML element and method to trigger audio UAs to read system messages.
+ *
+ * Use Drupal.announce() to indicate to screen reader users that an element on
+ * the page has changed state. For instance, if clicking a link loads 10 more
+ * items into a list, one might announce the change like this.
+ * $('#search-list')
+ *   .on('itemInsert', function (event, data) {
+ *     // Insert the new items.
+ *     $(data.container.el).append(data.items.el);
+ *     // Announce the change to the page contents.
+ *     Drupal.announce(Drupal.t('@count items added to @container',
+ *       {'@count': data.items.length, '@container': data.container.title}
+ *     ));
+ *   });
+ */
+(function (Drupal, debounce) {
+
+  "use strict";
+
+  var liveElement;
+  var announcements = [];
+
+  /**
+   * Builds a div element with the aria-live attribute and attaches it
+   * to the DOM.
+   */
+  Drupal.behaviors.drupalAnnounce = {
+    attach: function (context) {
+      // Create only one aria-live element.
+      if (!liveElement) {
+        liveElement = document.createElement('div');
+        liveElement.id = 'drupal-live-announce';
+        liveElement.className = 'visually-hidden';
+        liveElement.setAttribute('aria-live', 'polite');
+        liveElement.setAttribute('aria-busy', 'false');
+        document.body.appendChild(liveElement);
+      }
+    }
+  };
+
+  /**
+   * Concatenates announcements to a single string; appends to the live region.
+   */
+  function announce() {
+    var text = [];
+    var priority = 'polite';
+    var announcement;
+
+    // Create an array of announcement strings to be joined and appended to the
+    // aria live region.
+    var il = announcements.length;
+    for (var i = 0; i < il; i++) {
+      announcement = announcements.pop();
+      text.unshift(announcement.text);
+      // If any of the announcements has a priority of assertive then the group
+      // of joined announcements will have this priority.
+      if (announcement.priority === 'assertive') {
+        priority = 'assertive';
+      }
+    }
+
+    if (text.length) {
+      // Clear the liveElement so that repeated strings will be read.
+      liveElement.innerHTML = '';
+      // Set the busy state to true until the node changes are complete.
+      liveElement.setAttribute('aria-busy', 'true');
+      // Set the priority to assertive, or default to polite.
+      liveElement.setAttribute('aria-live', priority);
+      // Print the text to the live region. Text should be run through
+      // Drupal.t() before being passed to Drupal.announce().
+      liveElement.innerHTML = text.join('\n');
+      // The live text area is updated. Allow the AT to announce the text.
+      liveElement.setAttribute('aria-busy', 'false');
+    }
+  }
+
+  /**
+   * Triggers audio UAs to read the supplied text.
+   *
+   * The aria-live region will only read the text that currently populates its
+   * text node. Replacing text quickly in rapid calls to announce results in
+   * only the text from the most recent call to Drupal.announce() being read.
+   * By wrapping the call to announce in a debounce function, we allow for
+   * time for multiple calls to Drupal.announce() to queue up their messages.
+   * These messages are then joined and append to the aria-live region as one
+   * text node.
+   *
+   * @param String text
+   *   A string to be read by the UA.
+   * @param String priority
+   *   A string to indicate the priority of the message. Can be either
+   *   'polite' or 'assertive'. Polite is the default.
+   *
+   * @see http://www.w3.org/WAI/PF/aria-practices/#liveprops
+   */
+  Drupal.announce = function (text, priority) {
+    // Save the text and priority into a closure variable. Multiple simultaneous
+    // announcements will be concatenated and read in sequence.
+    announcements.push({
+      text: text,
+      priority: priority
+    });
+    // Immediately invoke the function that debounce returns. 200 ms is right at
+    // the cusp where humans notice a pause, so we will wait
+    // at most this much time before the set of queued announcements is read.
+    return (debounce(announce, 200)());
+  };
+}(Drupal, Drupal.debounce));
+;
+window.matchMedia||(window.matchMedia=function(){"use strict";var e=window.styleMedia||window.media;if(!e){var t=document.createElement("style"),i=document.getElementsByTagName("script")[0],n=null;t.type="text/css";t.id="matchmediajs-test";i.parentNode.insertBefore(t,i);n="getComputedStyle"in window&&window.getComputedStyle(t,null)||t.currentStyle;e={matchMedium:function(e){var i="@media "+e+"{ #matchmediajs-test { width: 1px; } }";if(t.styleSheet){t.styleSheet.cssText=i}else{t.textContent=i}return n.width==="1px"}}}return function(t){return{matches:e.matchMedium(t||"all"),media:t||"all"}}}());
+;
+(function(){if(window.matchMedia&&window.matchMedia("all").addListener){return false}var e=window.matchMedia,i=e("only all").matches,n=false,t=0,a=[],r=function(i){clearTimeout(t);t=setTimeout(function(){for(var i=0,n=a.length;i<n;i++){var t=a[i].mql,r=a[i].listeners||[],o=e(t.media).matches;if(o!==t.matches){t.matches=o;for(var s=0,l=r.length;s<l;s++){r[s].call(window,t)}}}},30)};window.matchMedia=function(t){var o=e(t),s=[],l=0;o.addListener=function(e){if(!i){return}if(!n){n=true;window.addEventListener("resize",r,true)}if(l===0){l=a.push({mql:o,listeners:s})}s.push(e)};o.removeListener=function(e){for(var i=0,n=s.length;i<n;i++){if(s[i]===e){s.splice(i,1)}}};return o}})();
+;
+/**
+ * Manages elements that can offset the size of the viewport.
+ *
+ * Measures and reports viewport offset dimensions from elements like the
+ * toolbar that can potentially displace the positioning of other elements.
+ */
+(function ($, Drupal, debounce) {
+
+  "use strict";
+
+  var offsets = {
+    top: 0,
+    right: 0,
+    bottom: 0,
+    left: 0
+  };
+
+  /**
+   * Registers a resize handler on the window.
+   */
+  Drupal.behaviors.drupalDisplace = {
+    attach: function () {
+      // Mark this behavior as processed on the first pass.
+      if (this.displaceProcessed) {
+        return;
+      }
+      this.displaceProcessed = true;
+
+      $(window).on('resize.drupalDisplace', debounce(displace, 200));
+    }
+  };
+
+  /**
+   * Informs listeners of the current offset dimensions.
+   *
+   * @param {boolean} broadcast
+   *   (optional) When true or undefined, causes the recalculated offsets values to be
+   *   broadcast to listeners.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function displace(broadcast) {
+    offsets = Drupal.displace.offsets = calculateOffsets();
+    if (typeof broadcast === 'undefined' || broadcast) {
+      $(document).trigger('drupalViewportOffsetChange', offsets);
+    }
+    return offsets;
+  }
+
+  /**
+   * Determines the viewport offsets.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function calculateOffsets() {
+    return {
+      top: calculateOffset('top'),
+      right: calculateOffset('right'),
+      bottom: calculateOffset('bottom'),
+      left: calculateOffset('left')
+    };
+  }
+
+  /**
+   * Gets a specific edge's offset.
+   *
+   * Any element with the attribute data-offset-{edge} e.g. data-offset-top will
+   * be considered in the viewport offset calculations. If the attribute has a
+   * numeric value, that value will be used. If no value is provided, one will
+   * be calculated using the element's dimensions and placement.
+   *
+   * @param {string} edge
+   *   The name of the edge to calculate. Can be 'top', 'right',
+   *   'bottom' or 'left'.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function calculateOffset(edge) {
+    var edgeOffset = 0;
+    var displacingElements = document.querySelectorAll('[data-offset-' + edge + ']');
+    var n = displacingElements.length;
+    for (var i = 0; i < n; i++) {
+      var el = displacingElements[i];
+      // If the element is not visible, do consider its dimensions.
+      if (el.style.display === 'none') {
+        continue;
+      }
+      // If the offset data attribute contains a displacing value, use it.
+      var displacement = parseInt(el.getAttribute('data-offset-' + edge), 10);
+      // If the element's offset data attribute exits
+      // but is not a valid number then get the displacement
+      // dimensions directly from the element.
+      if (isNaN(displacement)) {
+        displacement = getRawOffset(el, edge);
+      }
+      // If the displacement value is larger than the current value for this
+      // edge, use the displacement value.
+      edgeOffset = Math.max(edgeOffset, displacement);
+    }
+
+    return edgeOffset;
+  }
+
+  /**
+   * Calculates displacement for element based on its dimensions and placement.
+   *
+   * @param {jQuery} $el
+   *   The jQuery element whose dimensions and placement will be measured.
+   *
+   * @param {string} edge
+   *   The name of the edge of the viewport that the element is associated
+   *   with.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function getRawOffset(el, edge) {
+    var $el = $(el);
+    var documentElement = document.documentElement;
+    var displacement = 0;
+    var horizontal = (edge === 'left' || edge === 'right');
+    // Get the offset of the element itself.
+    var placement = $el.offset()[horizontal ? 'left' : 'top'];
+    // Subtract scroll distance from placement to get the distance
+    // to the edge of the viewport.
+    placement -= window['scroll' + (horizontal ? 'X' : 'Y')] || document.documentElement['scroll' + (horizontal) ? 'Left' : 'Top'] || 0;
+    // Find the displacement value according to the edge.
+    switch (edge) {
+      // Left and top elements displace as a sum of their own offset value
+      // plus their size.
+      case 'top':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerHeight();
+        break;
+
+      case 'left':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerWidth();
+        break;
+
+      // Right and bottom elements displace according to their left and
+      // top offset. Their size isn't important.
+      case 'bottom':
+        displacement = documentElement.clientHeight - placement;
+        break;
+
+      case 'right':
+        displacement = documentElement.clientWidth - placement;
+        break;
+
+      default:
+        displacement = 0;
+    }
+    return displacement;
+  }
+
+  /**
+   * Assign the displace function to a property of the Drupal global object.
+   */
+  Drupal.displace = displace;
+  $.extend(Drupal.displace, {
+    /**
+     * Expose offsets to other scripts to avoid having to recalculate offsets
+     */
+    offsets: offsets,
+    /**
+     * Expose method to compute a single edge offsets.
+     */
+    calculateOffset: calculateOffset
+  });
+
+})(jQuery, Drupal, Drupal.debounce);
+;
+/**
+ * Builds a nested accordion widget.
+ *
+ * Invoke on an HTML list element with the jQuery plugin pattern.
+ * - For example, $('.menu').drupalToolbarMenu();
+ */
+
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Store the open menu tray.
+   */
+  var activeItem = Drupal.url(drupalSettings.path.currentPath);
+
+  $.fn.drupalToolbarMenu = function () {
+
+    var ui = {
+      'handleOpen': Drupal.t('Extend'),
+      'handleClose': Drupal.t('Collapse')
+    };
+
+    /**
+     * Handle clicks from the disclosure button on an item with sub-items.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function toggleClickHandler(event) {
+      var $toggle = $(event.target);
+      var $item = $toggle.closest('li');
+      // Toggle the list item.
+      toggleList($item);
+      // Close open sibling menus.
+      var $openItems = $item.siblings().filter('.open');
+      toggleList($openItems, false);
+    }
+
+    /**
+     * Handle clicks from a menu item link.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function linkClickHandler(event) {
+      // If the toolbar is positioned fixed (and therefore hiding content
+      // underneath), then users expect clicks in the administration menu tray
+      // to take them to that destination but for the menu tray to be closed
+      // after clicking: otherwise the toolbar itself is obstructing the view
+      // of the destination they chose.
+      if (!Drupal.toolbar.models.toolbarModel.get('isFixed')) {
+        Drupal.toolbar.models.toolbarModel.set('activeTab', null);
+      }
+      // Stopping propagation to make sure that once a toolbar-box is clicked
+      // (the whitespace part), the page is not redirected anymore.
+      event.stopPropagation();
+    }
+
+    /**
+     * Toggle the open/close state of a list is a menu.
+     *
+     * @param {jQuery} $item
+     *   The li item to be toggled.
+     *
+     * @param {Boolean} switcher
+     *   A flag that forces toggleClass to add or a remove a class, rather than
+     *   simply toggling its presence.
+     */
+    function toggleList($item, switcher) {
+      var $toggle = $item.children('.toolbar-box').children('.toolbar-handle');
+      switcher = (typeof switcher !== 'undefined') ? switcher : !$item.hasClass('open');
+      // Toggle the item open state.
+      $item.toggleClass('open', switcher);
+      // Twist the toggle.
+      $toggle.toggleClass('open', switcher);
+      // Adjust the toggle text.
+      $toggle
+        .find('.action')
+        // Expand Structure, Collapse Structure
+        .text((switcher) ? ui.handleClose : ui.handleOpen);
+    }
+
+    /**
+     * Add markup to the menu elements.
+     *
+     * Items with sub-elements have a list toggle attached to them. Menu item
+     * links and the corresponding list toggle are wrapped with in a div
+     * classed with .toolbar-box. The .toolbar-box div provides a positioning
+     * context for the item list toggle.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu to be initialized.
+     */
+    function initItems($menu) {
+      var options = {
+        'class': 'toolbar-icon toolbar-handle',
+        'action': ui.handleOpen,
+        'text': ''
+      };
+      // Initialize items and their links.
+      $menu.find('li > a').wrap('<div class="toolbar-box">');
+      // Add a handle to each list item if it has a menu.
+      $menu.find('li').each(function (index, element) {
+        var $item = $(element);
+        if ($item.children('ul.menu').length) {
+          var $box = $item.children('.toolbar-box');
+          options.text = Drupal.t('@label', {'@label': $box.find('a').text()});
+          $item.children('.toolbar-box')
+            .append(Drupal.theme('toolbarMenuItemToggle', options));
+        }
+      });
+    }
+
+    /**
+     * Adds a level class to each list based on its depth in the menu.
+     *
+     * This function is called recursively on each sub level of lists elements
+     * until the depth of the menu is exhausted.
+     *
+     * @param {jQuery} $lists
+     *   A jQuery object of ul elements.
+     *
+     * @param {Integer} level
+     *   The current level number to be assigned to the list elements.
+     */
+    function markListLevels($lists, level) {
+      level = (!level) ? 1 : level;
+      var $lis = $lists.children('li').addClass('level-' + level);
+      $lists = $lis.children('ul');
+      if ($lists.length) {
+        markListLevels($lists, level + 1);
+      }
+    }
+
+    /**
+     * On page load, open the active menu item.
+     *
+     * Marks the trail of the active link in the menu back to the root of the
+     * menu with .menu-item--active-trail.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu.
+     */
+    function openActiveItem($menu) {
+      var pathItem = $menu.find('a[href="' + location.pathname + '"]');
+      if (pathItem.length && !activeItem) {
+        activeItem = location.pathname;
+      }
+      if (activeItem) {
+        var $activeItem = $menu.find('a[href="' + activeItem + '"]').addClass('menu-item--active');
+        var $activeTrail = $activeItem.parentsUntil('.root', 'li').addClass('menu-item--active-trail');
+        toggleList($activeTrail, true);
+      }
+    }
+
+    // Bind event handlers.
+    $(document)
+      .on('click.toolbar', '.toolbar-box', toggleClickHandler)
+      .on('click.toolbar', '.toolbar-box a', linkClickHandler);
+
+    // Return the jQuery object.
+    return this.each(function (selector) {
+      var $menu = $(this).once('toolbar-menu');
+      if ($menu.length) {
+        $menu.addClass('root');
+        initItems($menu);
+        markListLevels($menu);
+        // Restore previous and active states.
+        openActiveItem($menu);
+      }
+    });
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarMenuItemToggle = function (options) {
+    return '<button class="' + options['class'] + '"><span class="action">' + options.action + '</span><span class="label">' + options.text + '</span></button>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file toolbar.js
+ *
+ * Defines the behavior of the Drupal administration toolbar.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  // Merge run-time settings with the defaults.
+  var options = $.extend(
+    {
+      breakpoints: {
+        'toolbar.narrow': '',
+        'toolbar.standard': '',
+        'toolbar.wide': ''
+      }
+    },
+    drupalSettings.toolbar,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        horizontal: Drupal.t('Horizontal orientation'),
+        vertical: Drupal.t('Vertical orientation')
+      }
+    }
+  );
+
+  /**
+   * Registers tabs with the toolbar.
+   *
+   * The Drupal toolbar allows modules to register top-level tabs. These may
+   * point directly to a resource or toggle the visibility of a tray.
+   *
+   * Modules register tabs with hook_toolbar().
+   */
+  Drupal.behaviors.toolbar = {
+
+    attach: function (context) {
+      // Verify that the user agent understands media queries. Complex admin
+      // toolbar layouts require media query support.
+      if (!window.matchMedia('only screen').matches) {
+        return;
+      }
+      // Process the administrative toolbar.
+      $(context).find('#toolbar-administration').once('toolbar').each(function () {
+
+        // Establish the toolbar models and views.
+        var model = Drupal.toolbar.models.toolbarModel = new Drupal.toolbar.ToolbarModel({
+          locked: JSON.parse(localStorage.getItem('Drupal.toolbar.trayVerticalLocked')) || false,
+          activeTab: document.getElementById(JSON.parse(localStorage.getItem('Drupal.toolbar.activeTabID')))
+        });
+        Drupal.toolbar.views.toolbarVisualView = new Drupal.toolbar.ToolbarVisualView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.toolbarAuralView = new Drupal.toolbar.ToolbarAuralView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.bodyVisualView = new Drupal.toolbar.BodyVisualView({
+          el: this,
+          model: model
+        });
+
+        // Render collapsible menus.
+        var menuModel = Drupal.toolbar.models.menuModel = new Drupal.toolbar.MenuModel();
+        Drupal.toolbar.views.menuVisualView = new Drupal.toolbar.MenuVisualView({
+          el: $(this).find('.toolbar-menu-administration').get(0),
+          model: menuModel,
+          strings: options.strings
+        });
+
+        // Handle the resolution of Drupal.toolbar.setSubtrees.
+        // This is handled with a deferred so that the function may be invoked
+        // asynchronously.
+        Drupal.toolbar.setSubtrees.done(function (subtrees) {
+          menuModel.set('subtrees', subtrees);
+          localStorage.setItem('Drupal.toolbar.subtrees', JSON.stringify(subtrees));
+          // Indicate on the toolbarModel that subtrees are now loaded.
+          model.set('areSubtreesLoaded', true);
+        });
+
+        // Attach a listener to the configured media query breakpoints.
+        for (var label in options.breakpoints) {
+          if (options.breakpoints.hasOwnProperty(label)) {
+            var mq = options.breakpoints[label];
+            var mql = Drupal.toolbar.mql[label] = window.matchMedia(mq);
+            // Curry the model and the label of the media query breakpoint to
+            // the mediaQueryChangeHandler function.
+            mql.addListener(Drupal.toolbar.mediaQueryChangeHandler.bind(null, model, label));
+            // Fire the mediaQueryChangeHandler for each configured breakpoint
+            // so that they process once.
+            Drupal.toolbar.mediaQueryChangeHandler.call(null, model, label, mql);
+          }
+        }
+
+        // Trigger an initial attempt to load menu subitems. This first attempt
+        // is made after the media query handlers have had an opportunity to
+        // process. The toolbar starts in the vertical orientation by default,
+        // unless the viewport is wide enough to accommodate a horizontal
+        // orientation. Thus we give the Toolbar a chance to determine if it
+        // should be set to horizontal orientation before attempting to load
+        // menu subtrees.
+        Drupal.toolbar.views.toolbarVisualView.loadSubtrees();
+
+        $(document)
+          // Update the model when the viewport offset changes.
+          .on('drupalViewportOffsetChange.toolbar', function (event, offsets) {
+            model.set('offsets', offsets);
+          });
+
+        // Broadcast model changes to other modules.
+        model
+          .on('change:orientation', function (model, orientation) {
+            $(document).trigger('drupalToolbarOrientationChange', orientation);
+          })
+          .on('change:activeTab', function (model, tab) {
+            $(document).trigger('drupalToolbarTabChange', tab);
+          })
+          .on('change:activeTray', function (model, tray) {
+            $(document).trigger('drupalToolbarTrayChange', tray);
+          });
+
+        // If the toolbar's orientation is horizontal and no active tab is
+        // defined then show the tray of the first toolbar tab by default (but
+        // not the first 'Home' toolbar tab).
+        if (Drupal.toolbar.models.toolbarModel.get('orientation') === 'horizontal' && Drupal.toolbar.models.toolbarModel.get('activeTab') === null) {
+          Drupal.toolbar.models.toolbarModel.set({
+            'activeTab': $('.toolbar-bar .toolbar-tab:not(.home-toolbar-tab) a').get(0)
+          });
+        }
+      });
+    }
+  };
+
+  /**
+   * Toolbar methods of Backbone objects.
+   */
+  Drupal.toolbar = {
+
+    // A hash of View instances.
+    views: {},
+
+    // A hash of Model instances.
+    models: {},
+
+    // A hash of MediaQueryList objects tracked by the toolbar.
+    mql: {},
+
+    /**
+     * Accepts a list of subtree menu elements.
+     *
+     * A deferred object that is resolved by an inlined JavaScript callback.
+     *
+     * JSONP callback.
+     * @see toolbar_subtrees_jsonp().
+     */
+    setSubtrees: new $.Deferred(),
+
+    /**
+     * Respond to configured narrow media query changes.
+     */
+    mediaQueryChangeHandler: function (model, label, mql) {
+      switch (label) {
+        case 'toolbar.narrow':
+          model.set({
+            'isOriented': mql.matches,
+            'isTrayToggleVisible': false
+          });
+          // If the toolbar doesn't have an explicit orientation yet, or if the
+          // narrow media query doesn't match then set the orientation to
+          // vertical.
+          if (!mql.matches || !model.get('orientation')) {
+            model.set({'orientation': 'vertical'}, {validate: true});
+          }
+          break;
+        case 'toolbar.standard':
+          model.set({
+            'isFixed': mql.matches
+          });
+          break;
+        case 'toolbar.wide':
+          model.set({
+            'orientation': ((mql.matches) ? 'horizontal' : 'vertical')
+          }, {validate: true});
+          // The tray orientation toggle visibility does not need to be
+          // validated.
+          model.set({
+            'isTrayToggleVisible': mql.matches
+          });
+          break;
+        default:
+          break;
+      }
+    }
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarOrientationToggle = function () {
+    return '<div class="toolbar-toggle-orientation"><div class="toolbar-lining">' +
+      '<button class="toolbar-icon" type="button"></button>' +
+      '</div></div>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file
+ * A Backbone Model for collapsible menus.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone Model for collapsible menus.
+   */
+  Drupal.toolbar.MenuModel = Backbone.Model.extend({
+    defaults: {
+      subtrees: {}
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone Model for the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone model for the toolbar.
+   */
+  Drupal.toolbar.ToolbarModel = Backbone.Model.extend({
+    defaults: {
+      // The active toolbar tab. All other tabs should be inactive under
+      // normal circumstances. It will remain active across page loads. The
+      // active item is stored as an ID selector e.g. '#toolbar-item--1'.
+      activeTab: null,
+      // Represents whether a tray is open or not. Stored as an ID selector e.g.
+      // '#toolbar-item--1-tray'.
+      activeTray: null,
+      // Indicates whether the toolbar is displayed in an oriented fashion,
+      // either horizontal or vertical.
+      isOriented: false,
+      // Indicates whether the toolbar is positioned absolute (false) or fixed
+      // (true).
+      isFixed: false,
+      // Menu subtrees are loaded through an AJAX request only when the Toolbar
+      // is set to a vertical orientation.
+      areSubtreesLoaded: false,
+      // If the viewport overflow becomes constrained, isFixed must be true so
+      // that elements in the trays aren't lost off-screen and impossible to
+      // get to.
+      isViewportOverflowConstrained: false,
+      // The orientation of the active tray.
+      orientation: 'vertical',
+      // A tray is locked if a user toggled it to vertical. Otherwise a tray
+      // will switch between vertical and horizontal orientation based on the
+      // configured breakpoints. The locked state will be maintained across page
+      // loads.
+      locked: false,
+      // Indicates whether the tray orientation toggle is visible.
+      isTrayToggleVisible: false,
+      // The height of the toolbar.
+      height: null,
+      // The current viewport offsets determined by Drupal.displace(). The
+      // offsets suggest how a module might position is components relative to
+      // the viewport.
+      offsets: {
+        top: 0,
+        right: 0,
+        bottom: 0,
+        left: 0
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    validate: function (attributes, options) {
+      // Prevent the orientation being set to horizontal if it is locked, unless
+      // override has not been passed as an option.
+      if (attributes.orientation === 'horizontal' && this.get('locked') && !options.override) {
+        return Drupal.t('The toolbar cannot be set to a horizontal orientation when it is locked.');
+      }
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the body element.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Adjusts the body element with the toolbar position and dimension changes.
+   */
+  Drupal.toolbar.BodyVisualView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:orientation change:offsets change:activeTray change:isOriented change:isFixed change:isViewportOverflowConstrained', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var $body = $('body');
+      var orientation = this.model.get('orientation');
+      var isOriented = this.model.get('isOriented');
+      var isViewportOverflowConstrained = this.model.get('isViewportOverflowConstrained');
+
+      $body
+        // We are using JavaScript to control media-query handling for two
+        // reasons: (1) Using JavaScript let's us leverage the breakpoint
+        // configurations and (2) the CSS is really complex if we try to hide
+        // some styling from browsers that don't understand CSS media queries.
+        // If we drive the CSS from classes added through JavaScript,
+        // then the CSS becomes simpler and more robust.
+        .toggleClass('toolbar-vertical', (orientation === 'vertical'))
+        .toggleClass('toolbar-horizontal', (isOriented && orientation === 'horizontal'))
+        // When the toolbar is fixed, it will not scroll with page scrolling.
+        .toggleClass('toolbar-fixed', (isViewportOverflowConstrained || this.model.get('isFixed')))
+        // Toggle the toolbar-tray-open class on the body element. The class is
+        // applied when a toolbar tray is active. Padding might be applied to
+        // the body element to prevent the tray from overlapping content.
+        .toggleClass('toolbar-tray-open', !!this.model.get('activeTray'))
+        // Apply padding to the top of the body to offset the placement of the
+        // toolbar bar element.
+        .css('padding-top', this.model.get('offsets').top);
+    }
+  });
+
+}(jQuery, Drupal, Backbone));
+;
+/**
+ * @file
+ * A Backbone view for the collapsible menus.
+ */
+
+(function ($, Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone View for collapsible menus.
+   */
+  Drupal.toolbar.MenuVisualView = Backbone.View.extend({
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:subtrees', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var subtrees = this.model.get('subtrees');
+      // Add subtrees.
+      for (var id in subtrees) {
+        if (subtrees.hasOwnProperty(id)) {
+          this.$el
+            .find('#toolbar-link-' + id)
+            .once('toolbar-subtrees')
+            .after(subtrees[id]);
+        }
+      }
+      // Render the main menu as a nested, collapsible accordion.
+      if ('drupalToolbarMenu' in $.fn) {
+        this.$el
+          .children('.menu')
+          .drupalToolbarMenu();
+      }
+    }
+  });
+
+}(jQuery, Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the aural feedback of the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the aural feedback of the toolbar.
+   */
+  Drupal.toolbar.ToolbarAuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:orientation', this.onOrientationChange);
+      this.listenTo(this.model, 'change:activeTray', this.onActiveTrayChange);
+    },
+
+    /**
+     * Announces an orientation change.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param String orientation
+     *   The new value of the orientation attribute in the model.
+     */
+    onOrientationChange: function (model, orientation) {
+      Drupal.announce(Drupal.t('Tray orientation changed to @orientation.', {
+        '@orientation': orientation
+      }));
+    },
+
+    /**
+     * Announces a changed active tray.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param Element orientation
+     *   The new value of the tray attribute in the model.
+     */
+    onActiveTrayChange: function (model, tray) {
+      var relevantTray = (tray === null) ? model.previous('activeTray') : tray;
+      var action = (tray === null) ? Drupal.t('closed') : Drupal.t('opened');
+      var trayNameElement = relevantTray.querySelector('.toolbar-tray-name');
+      var text;
+      if (trayNameElement !== null) {
+        text = Drupal.t('Tray "@tray" @action.', {
+          '@tray': trayNameElement.textContent, '@action': action
+        });
+      }
+      else {
+        text = Drupal.t('Tray @action.', {'@action': action});
+      }
+      Drupal.announce(text);
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the toolbar element. Listens to mouse & touch.
+ */
+
+(function ($, Drupal, drupalSettings, Backbone) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the toolbar element. Listens to mouse & touch.
+   */
+  Drupal.toolbar.ToolbarVisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click .toolbar-bar .toolbar-tab': 'onTabClick',
+        'click .toolbar-toggle-orientation button': 'onOrientationToggleClick',
+        'touchend .toolbar-bar .toolbar-tab': touchEndToClick,
+        'touchend .toolbar-toggle-orientation button': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:activeTab change:orientation change:isOriented change:isTrayToggleVisible', this.render);
+      this.listenTo(this.model, 'change:mqMatches', this.onMediaQueryChange);
+      this.listenTo(this.model, 'change:offsets', this.adjustPlacement);
+
+      // Add the tray orientation toggles.
+      this.$el
+        .find('.toolbar-tray .toolbar-lining')
+        .append(Drupal.theme('toolbarOrientationToggle'));
+
+      // Trigger an activeTab change so that listening scripts can respond on
+      // page load. This will call render.
+      this.model.trigger('change:activeTab');
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.updateTabs();
+      this.updateTrayOrientation();
+      this.updateBarAttributes();
+      // Load the subtrees if the orientation of the toolbar is changed to
+      // vertical. This condition responds to the case that the toolbar switches
+      // from horizontal to vertical orientation. The toolbar starts in a
+      // vertical orientation by default and then switches to horizontal during
+      // initialization if the media query conditions are met. Simply checking
+      // that the orientation is vertical here would result in the subtrees
+      // always being loaded, even when the toolbar initialization ultimately
+      // results in a horizontal orientation.
+      //
+      // @see Drupal.behaviors.toolbar.attach() where admin menu subtrees
+      // loading is invoked during initialization after media query conditions
+      // have been processed.
+      if (this.model.changed.orientation === 'vertical' || this.model.changed.activeTab) {
+        this.loadSubtrees();
+      }
+      // Trigger a recalculation of viewport displacing elements. Use setTimeout
+      // to ensure this recalculation happens after changes to visual elements
+      // have processed.
+      window.setTimeout(function () {
+        Drupal.displace(true);
+      }, 0);
+      return this;
+    },
+
+    /**
+     * Responds to a toolbar tab click.
+     *
+     * @param jQuery.Event event
+     */
+    onTabClick: function (event) {
+      // If this tab has a tray associated with it, it is considered an
+      // activatable tab.
+      if (event.target.hasAttribute('data-toolbar-tray')) {
+        var activeTab = this.model.get('activeTab');
+        var clickedTab = event.target;
+
+        // Set the event target as the active item if it is not already.
+        this.model.set('activeTab', (!activeTab || clickedTab !== activeTab) ? clickedTab : null);
+
+        event.preventDefault();
+        event.stopPropagation();
+      }
+    },
+
+    /**
+     * Toggles the orientation of a toolbar tray.
+     *
+     * @param jQuery.Event event
+     */
+    onOrientationToggleClick: function (event) {
+      var orientation = this.model.get('orientation');
+      // Determine the toggle-to orientation.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      var locked = (antiOrientation === 'vertical') ? true : false;
+      // Remember the locked state.
+      if (locked) {
+        localStorage.setItem('Drupal.toolbar.trayVerticalLocked', 'true');
+      }
+      else {
+        localStorage.removeItem('Drupal.toolbar.trayVerticalLocked');
+      }
+      // Update the model.
+      this.model.set({
+        locked: locked,
+        orientation: antiOrientation
+      }, {
+        validate: true,
+        override: true
+      });
+
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Updates the display of the tabs: toggles a tab and the associated tray.
+     */
+    updateTabs: function () {
+      var $tab = $(this.model.get('activeTab'));
+      // Deactivate the previous tab.
+      $(this.model.previous('activeTab'))
+        .removeClass('is-active')
+        .prop('aria-pressed', false);
+      // Deactivate the previous tray.
+      $(this.model.previous('activeTray'))
+        .removeClass('is-active');
+
+      // Activate the selected tab.
+      if ($tab.length > 0) {
+        $tab
+          .addClass('is-active')
+          // Mark the tab as pressed.
+          .prop('aria-pressed', true);
+        var name = $tab.attr('data-toolbar-tray');
+        // Store the active tab name or remove the setting.
+        var id = $tab.get(0).id;
+        if (id) {
+          localStorage.setItem('Drupal.toolbar.activeTabID', JSON.stringify(id));
+        }
+        // Activate the associated tray.
+        var $tray = this.$el.find('[data-toolbar-tray="' + name + '"].toolbar-tray');
+        if ($tray.length) {
+          $tray.addClass('is-active');
+          this.model.set('activeTray', $tray.get(0));
+        }
+        else {
+          // There is no active tray.
+          this.model.set('activeTray', null);
+        }
+      }
+      else {
+        // There is no active tray.
+        this.model.set('activeTray', null);
+        localStorage.removeItem('Drupal.toolbar.activeTabID');
+      }
+    },
+
+    /**
+     * Update the attributes of the toolbar bar element.
+     */
+    updateBarAttributes: function () {
+      var isOriented = this.model.get('isOriented');
+      if (isOriented) {
+        this.$el.find('.toolbar-bar').attr('data-offset-top', '');
+      }
+      else {
+        this.$el.find('.toolbar-bar').removeAttr('data-offset-top');
+      }
+      // Toggle between a basic vertical view and a more sophisticated
+      // horizontal and vertical display of the toolbar bar and trays.
+      this.$el.toggleClass('toolbar-oriented', isOriented);
+    },
+
+    /**
+     * Updates the orientation of the active tray if necessary.
+     */
+    updateTrayOrientation: function () {
+      var orientation = this.model.get('orientation');
+      // The antiOrientation is used to render the view of action buttons like
+      // the tray orientation toggle.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      // Update the orientation of the trays.
+      var $trays = this.$el.find('.toolbar-tray')
+        .removeClass('toolbar-tray-horizontal toolbar-tray-vertical')
+        .addClass('toolbar-tray-' + orientation);
+
+      // Update the tray orientation toggle button.
+      var iconClass = 'toolbar-icon-toggle-' + orientation;
+      var iconAntiClass = 'toolbar-icon-toggle-' + antiOrientation;
+      var $orientationToggle = this.$el.find('.toolbar-toggle-orientation')
+        .toggle(this.model.get('isTrayToggleVisible'));
+      $orientationToggle.find('button')
+        .val(antiOrientation)
+        .attr('title', this.strings[antiOrientation])
+        .text(this.strings[antiOrientation])
+        .removeClass(iconClass)
+        .addClass(iconAntiClass);
+
+      // Update data offset attributes for the trays.
+      var dir = document.documentElement.dir;
+      var edge = (dir === 'rtl') ? 'right' : 'left';
+      // Remove data-offset attributes from the trays so they can be refreshed.
+      $trays.removeAttr('data-offset-left data-offset-right data-offset-top');
+      // If an active vertical tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-vertical.is-active').attr('data-offset-' + edge, '');
+      // If an active horizontal tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-horizontal.is-active').attr('data-offset-top', '');
+    },
+
+    /**
+     * Sets the tops of the trays so that they align with the bottom of the bar.
+     */
+    adjustPlacement: function () {
+      var $trays = this.$el.find('.toolbar-tray');
+      if (!this.model.get('isOriented')) {
+        $trays.css('padding-top', 0);
+        $trays.removeClass('toolbar-tray-horizontal').addClass('toolbar-tray-vertical');
+      }
+      else {
+        // The toolbar container is invisible. Its placement is used to
+        // determine the container for the trays.
+        $trays.css('padding-top', this.$el.find('.toolbar-bar').outerHeight());
+      }
+    },
+
+    /**
+     * Calls the endpoint URI that will return rendered subtrees with JSONP.
+     *
+     * The rendered admin menu subtrees HTML is cached on the client in
+     * localStorage until the cache of the admin menu subtrees on the server-
+     * side is invalidated. The subtreesHash is stored in localStorage as well
+     * and compared to the subtreesHash in drupalSettings to determine when the
+     * admin menu subtrees cache has been invalidated.
+     */
+    loadSubtrees: function () {
+      var $activeTab = $(this.model.get('activeTab'));
+      var orientation = this.model.get('orientation');
+      // Only load and render the admin menu subtrees if:
+      //   (1) They have not been loaded yet.
+      //   (2) The active tab is the administration menu tab, indicated by the
+      //       presence of the data-drupal-subtrees attribute.
+      //   (3) The orientation of the tray is vertical.
+      if (!this.model.get('areSubtreesLoaded') && typeof $activeTab.data('drupal-subtrees') !== 'undefined' && orientation === 'vertical') {
+        var subtreesHash = drupalSettings.toolbar.subtreesHash;
+        var langcode = drupalSettings.toolbar.langcode;
+        var endpoint = Drupal.url('toolbar/subtrees/' + subtreesHash + '/' + langcode);
+        var cachedSubtreesHash = localStorage.getItem('Drupal.toolbar.subtreesHash');
+        var cachedSubtrees = JSON.parse(localStorage.getItem('Drupal.toolbar.subtrees'));
+        var isVertical = this.model.get('orientation') === 'vertical';
+        // If we have the subtrees in localStorage and the subtree hash has not
+        // changed, then use the cached data.
+        if (isVertical && subtreesHash === cachedSubtreesHash && cachedSubtrees) {
+          Drupal.toolbar.setSubtrees.resolve(cachedSubtrees);
+        }
+        // Only make the call to get the subtrees if the orientation of the
+        // toolbar is vertical.
+        else if (isVertical) {
+          // Remove the cached menu information.
+          localStorage.removeItem('Drupal.toolbar.subtreesHash');
+          localStorage.removeItem('Drupal.toolbar.subtrees');
+          // The response from the server will call the resolve method of the
+          // Drupal.toolbar.setSubtrees Promise.
+          $.ajax(endpoint);
+          // Cache the hash for the subtrees locally.
+          localStorage.setItem('Drupal.toolbar.subtreesHash', subtreesHash);
+        }
+      }
+    }
+  });
+
+}(jQuery, Drupal, drupalSettings, Backbone));
+;
+/*! jquery.cookie v1.4.1 | MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});;
+/* jQuery Foundation Joyride Plugin 2.1 | Copyright 2012, ZURB | www.opensource.org/licenses/mit-license.php */
+(function(e,t,n){"use strict";var r={version:"2.0.3",tipLocation:"bottom",nubPosition:"auto",scroll:!0,scrollSpeed:300,timer:0,autoStart:!1,startTimerOnClick:!0,startOffset:0,nextButton:!0,tipAnimation:"fade",pauseAfter:[],tipAnimationFadeSpeed:300,cookieMonster:!1,cookieName:"joyride",cookieDomain:!1,cookiePath:!1,localStorage:!1,localStorageKey:"joyride",tipContainer:"body",modal:!1,expose:!1,postExposeCallback:e.noop,preRideCallback:e.noop,postRideCallback:e.noop,preStepCallback:e.noop,postStepCallback:e.noop,template:{link:'<a href="#close" class="joyride-close-tip">X</a>',timer:'<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',tip:'<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',wrapper:'<div class="joyride-content-wrapper" role="dialog"></div>',button:'<a href="#" class="joyride-next-tip"></a>',modal:'<div class="joyride-modal-bg"></div>',expose:'<div class="joyride-expose-wrapper"></div>',exposeCover:'<div class="joyride-expose-cover"></div>'}},i=i||!1,s={},o={init:function(n){return this.each(function(){e.isEmptyObject(s)?(s=e.extend(!0,r,n),s.document=t.document,s.$document=e(s.document),s.$window=e(t),s.$content_el=e(this),s.$body=e(s.tipContainer),s.body_offset=e(s.tipContainer).position(),s.$tip_content=e("> li",s.$content_el),s.paused=!1,s.attempts=0,s.tipLocationPatterns={top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},o.jquery_check(),e.isFunction(e.cookie)||(s.cookieMonster=!1),(!s.cookieMonster||!e.cookie(s.cookieName))&&(!s.localStorage||!o.support_localstorage()||!localStorage.getItem(s.localStorageKey))&&(s.$tip_content.each(function(t){o.create({$li:e(this),index:t})}),s.autoStart&&(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"))),s.$document.on("click.joyride",".joyride-next-tip, .joyride-modal-bg",function(e){e.preventDefault(),s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())}),s.$document.on("click.joyride",".joyride-close-tip",function(e){e.preventDefault(),o.end()}),s.$window.bind("resize.joyride",function(t){if(s.$li){if(s.exposed&&s.exposed.length>0){var n=e(s.exposed);n.each(function(){var t=e(this);o.un_expose(t),o.expose(t)})}o.is_phone()?o.pos_phone():o.pos_default()}})):o.restart()})},resume:function(){o.set_li(),o.show()},nextTip:function(){s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())},tip_template:function(t){var n,r,i;return t.tip_class=t.tip_class||"",n=e(s.template.tip).addClass(t.tip_class),r=e.trim(e(t.li).html())+o.button_text(t.button_text)+s.template.link+o.timer_instance(t.index),i=e(s.template.wrapper),t.li.attr("data-aria-labelledby")&&i.attr("aria-labelledby",t.li.attr("data-aria-labelledby")),t.li.attr("data-aria-describedby")&&i.attr("aria-describedby",t.li.attr("data-aria-describedby")),n.append(i),n.first().attr("data-index",t.index),e(".joyride-content-wrapper",n).append(r),n[0]},timer_instance:function(t){var n;return t===0&&s.startTimerOnClick&&s.timer>0||s.timer===0?n="":n=o.outerHTML(e(s.template.timer)[0]),n},button_text:function(t){return s.nextButton?(t=e.trim(t)||"Next",t=o.outerHTML(e(s.template.button).append(t)[0])):t="",t},create:function(t){var n=t.$li.attr("data-button")||t.$li.attr("data-text"),r=t.$li.attr("class"),i=e(o.tip_template({tip_class:r,index:t.index,button_text:n,li:t.$li}));e(s.tipContainer).append(i)},show:function(t){var r={},i,u=[],a=0,f,l=null;if(s.$li===n||e.inArray(s.$li.index(),s.pauseAfter)===-1){s.paused?s.paused=!1:o.set_li(t),s.attempts=0;if(s.$li.length&&s.$target.length>0){t&&(s.preRideCallback(s.$li.index(),s.$next_tip),s.modal&&o.show_modal()),s.preStepCallback(s.$li.index(),s.$next_tip),u=(s.$li.data("options")||":").split(";"),a=u.length;for(i=a-1;i>=0;i--)f=u[i].split(":"),f.length===2&&(r[e.trim(f[0])]=e.trim(f[1]));s.tipSettings=e.extend({},s,r),s.tipSettings.tipLocationPattern=s.tipLocationPatterns[s.tipSettings.tipLocation],s.modal&&s.expose&&o.expose(),!/body/i.test(s.$target.selector)&&s.scroll&&o.scroll_to(),o.is_phone()?o.pos_phone(!0):o.pos_default(!0),l=e(".joyride-timer-indicator",s.$next_tip),/pop/i.test(s.tipAnimation)?(l.outerWidth(0),s.timer>0?(s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.show()):/fade/i.test(s.tipAnimation)&&(l.outerWidth(0),s.timer>0?(s.$next_tip.fadeIn(s.tipAnimationFadeSpeed),s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.fadeIn(s.tipAnimationFadeSpeed)),s.$current_tip=s.$next_tip,e(".joyride-next-tip",s.$current_tip).focus(),o.tabbable(s.$current_tip)}else s.$li&&s.$target.length<1?o.show():o.end()}else s.paused=!0},is_phone:function(){return i?i.mq("only screen and (max-width: 767px)"):s.$window.width()<767?!0:!1},support_localstorage:function(){return i?i.localstorage:!!t.localStorage},hide:function(){s.modal&&s.expose&&o.un_expose(),s.modal||e(".joyride-modal-bg").hide(),s.$current_tip.hide(),s.postStepCallback(s.$li.index(),s.$current_tip)},set_li:function(e){e?(s.$li=s.$tip_content.eq(s.startOffset),o.set_next_tip(),s.$current_tip=s.$next_tip):(s.$li=s.$li.next(),o.set_next_tip()),o.set_target()},set_next_tip:function(){s.$next_tip=e(".joyride-tip-guide[data-index="+s.$li.index()+"]")},set_target:function(){var t=s.$li.attr("data-class"),n=s.$li.attr("data-id"),r=function(){return n?e(s.document.getElementById(n)):t?e("."+t).filter(":visible").first():e("body")};s.$target=r()},scroll_to:function(){var t,n;t=s.$window.height()/2,n=Math.ceil(s.$target.offset().top-t+s.$next_tip.outerHeight()),e("html, body").stop().animate({scrollTop:n},s.scrollSpeed)},paused:function(){return e.inArray(s.$li.index()+1,s.pauseAfter)===-1?!0:!1},destroy:function(){e.isEmptyObject(s)||s.$document.off(".joyride"),e(t).off(".joyride"),e(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),e(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(s.automate),s={}},restart:function(){s.autoStart?(o.hide(),s.$li=n,o.show("init")):(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"),s.autoStart=!0)},pos_default:function(t){var n=Math.ceil(s.$window.height()/2),r=s.$next_tip.offset(),i=e(".joyride-nub",s.$next_tip),u=Math.ceil(i.outerWidth()/2),a=Math.ceil(i.outerHeight()/2),f=t||!1;f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show());if(!/body/i.test(s.$target.selector)){var l=s.tipSettings.tipAdjustmentY?parseInt(s.tipSettings.tipAdjustmentY):0,c=s.tipSettings.tipAdjustmentX?parseInt(s.tipSettings.tipAdjustmentX):0;o.bottom()?(s.$next_tip.css({top:s.$target.offset().top+a+s.$target.outerHeight()+l,left:s.$target.offset().left+c}),/right/i.test(s.tipSettings.nubPosition)&&s.$next_tip.css("left",s.$target.offset().left-s.$next_tip.outerWidth()+s.$target.outerWidth()),o.nub_position(i,s.tipSettings.nubPosition,"top")):o.top()?(s.$next_tip.css({top:s.$target.offset().top-s.$next_tip.outerHeight()-a+l,left:s.$target.offset().left+c}),o.nub_position(i,s.tipSettings.nubPosition,"bottom")):o.right()?(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.outerWidth()+s.$target.offset().left+u+c}),o.nub_position(i,s.tipSettings.nubPosition,"left")):o.left()&&(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.offset().left-s.$next_tip.outerWidth()-u+c}),o.nub_position(i,s.tipSettings.nubPosition,"right")),!o.visible(o.corners(s.$next_tip))&&s.attempts<s.tipSettings.tipLocationPattern.length&&(i.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),s.tipSettings.tipLocation=s.tipSettings.tipLocationPattern[s.attempts],s.attempts++,o.pos_default(!0))}else s.$li.length&&o.pos_modal(i);f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_phone:function(t){var n=s.$next_tip.outerHeight(),r=s.$next_tip.offset(),i=s.$target.outerHeight(),u=e(".joyride-nub",s.$next_tip),a=Math.ceil(u.outerHeight()/2),f=t||!1;u.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show()),/body/i.test(s.$target.selector)?s.$li.length&&o.pos_modal(u):o.top()?(s.$next_tip.offset({top:s.$target.offset().top-n-a}),u.addClass("bottom")):(s.$next_tip.offset({top:s.$target.offset().top+i+a}),u.addClass("top")),f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_modal:function(e){o.center(),e.hide(),o.show_modal()},show_modal:function(){e(".joyride-modal-bg").length<1&&e("body").append(s.template.modal).show(),/pop/i.test(s.tipAnimation)?e(".joyride-modal-bg").show():e(".joyride-modal-bg").fadeIn(s.tipAnimationFadeSpeed)},expose:function(){var n,r,i,u,a="expose-"+Math.floor(Math.random()*1e4);if(arguments.length>0&&arguments[0]instanceof e)i=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;i=s.$target}if(i.length<1)return t.console&&console.error("element not valid",i),!1;n=e(s.template.expose),s.$body.append(n),n.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),r=e(s.template.exposeCover),u={zIndex:i.css("z-index"),position:i.css("position")},i.css("z-index",n.css("z-index")*1+1),u.position=="static"&&i.css("position","relative"),i.data("expose-css",u),r.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),s.$body.append(r),n.addClass(a),r.addClass(a),s.tipSettings.exposeClass&&(n.addClass(s.tipSettings.exposeClass),r.addClass(s.tipSettings.exposeClass)),i.data("expose",a),s.postExposeCallback(s.$li.index(),s.$next_tip,i),o.add_exposed(i)},un_expose:function(){var n,r,i,u,a=!1;if(arguments.length>0&&arguments[0]instanceof e)r=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;r=s.$target}if(r.length<1)return t.console&&console.error("element not valid",r),!1;n=r.data("expose"),i=e("."+n),arguments.length>1&&(a=arguments[1]),a===!0?e(".joyride-expose-wrapper,.joyride-expose-cover").remove():i.remove(),u=r.data("expose-css"),u.zIndex=="auto"?r.css("z-index",""):r.css("z-index",u.zIndex),u.position!=r.css("position")&&(u.position=="static"?r.css("position",""):r.css("position",u.position)),r.removeData("expose"),r.removeData("expose-z-index"),o.remove_exposed(r)},add_exposed:function(t){s.exposed=s.exposed||[],t instanceof e?s.exposed.push(t[0]):typeof t=="string"&&s.exposed.push(t)},remove_exposed:function(t){var n;t instanceof e?n=t[0]:typeof t=="string"&&(n=t),s.exposed=s.exposed||[];for(var r=0;r<s.exposed.length;r++)if(s.exposed[r]==n){s.exposed.splice(r,1);return}},center:function(){var e=s.$window;return s.$next_tip.css({top:(e.height()-s.$next_tip.outerHeight())/2+e.scrollTop(),left:(e.width()-s.$next_tip.outerWidth())/2+e.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(s.tipSettings.tipLocation)},top:function(){return/top/i.test(s.tipSettings.tipLocation)},right:function(){return/right/i.test(s.tipSettings.tipLocation)},left:function(){return/left/i.test(s.tipSettings.tipLocation)},corners:function(e){var t=s.$window,n=t.height()/2,r=Math.ceil(s.$target.offset().top-n+s.$next_tip.outerHeight()),i=t.width()+t.scrollLeft(),o=t.height()+r,u=t.height()+t.scrollTop(),a=t.scrollTop();return r<a&&(r<0?a=0:a=r),o>u&&(u=o),[e.offset().top<a,i<e.offset().left+e.outerWidth(),u<e.offset().top+e.outerHeight(),t.scrollLeft()>e.offset().left]},visible:function(e){var t=e.length;while(t--)if(e[t])return!1;return!0},nub_position:function(e,t,n){t==="auto"?e.addClass(n):e.addClass(t)},startTimer:function(){s.$li.length?s.automate=setTimeout(function(){o.hide(),o.show(),o.startTimer()},s.timer):clearTimeout(s.automate)},end:function(){s.cookieMonster&&e.cookie(s.cookieName,"ridden",{expires:365,domain:s.cookieDomain,path:s.cookiePath}),s.localStorage&&localStorage.setItem(s.localStorageKey,!0),s.timer>0&&clearTimeout(s.automate),s.modal&&s.expose&&o.un_expose(),s.$current_tip&&s.$current_tip.hide(),s.$li&&(s.postStepCallback(s.$li.index(),s.$current_tip),s.postRideCallback(s.$li.index(),s.$current_tip)),e(".joyride-modal-bg").hide()},jquery_check:function(){return e.isFunction(e.fn.on)?!0:(e.fn.on=function(e,t,n){return this.delegate(t,e,n)},e.fn.off=function(e,t,n){return this.undelegate(t,e,n)},!1)},outerHTML:function(e){return e.outerHTML||(new XMLSerializer).serializeToString(e)},version:function(){return s.version},tabbable:function(t){e(t).on("keydown",function(n){if(!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===27){n.preventDefault(),o.end();return}if(n.keyCode!==9)return;var r=e(t).find(":tabbable"),i=r.filter(":first"),s=r.filter(":last");n.target===s[0]&&!n.shiftKey?(i.focus(1),n.preventDefault()):n.target===i[0]&&n.shiftKey&&(s.focus(1),n.preventDefault())})}};e.fn.joyride=function(t){if(o[t])return o[t].apply(this,Array.prototype.slice.call(arguments,1));if(typeof t=="object"||!t)return o.init.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.joyride")}})(jQuery,this);
+;
+/**
+ * @file
+ * Attaches behaviors for the Tour module's toolbar tab.
+ */
+
+(function ($, Backbone, Drupal, document) {
+
+  "use strict";
+
+  var queryString = decodeURI(window.location.search);
+
+  /**
+   * Attaches the tour's toolbar tab behavior.
+   *
+   * It uses the query string for:
+   * - tour: When ?tour=1 is present, the tour will start automatically
+   *         after the page has loaded.
+   * - tips: Pass ?tips=class in the url to filter the available tips to
+   *         the subset which match the given class.
+   *
+   * Example:
+   *   http://example.com/foo?tour=1&tips=bar
+   */
+  Drupal.behaviors.tour = {
+    attach: function (context) {
+      $('body').once('tour').each(function () {
+        var model = new Drupal.tour.models.StateModel();
+        new Drupal.tour.views.ToggleTourView({
+          el: $(context).find('#toolbar-tab-tour'),
+          model: model
+        });
+
+        model
+          // Allow other scripts to respond to tour events.
+          .on('change:isActive', function (model, isActive) {
+            $(document).trigger((isActive) ? 'drupalTourStarted' : 'drupalTourStopped');
+          })
+          // Initialization: check whether a tour is available on the current page.
+          .set('tour', $(context).find('ol#tour'));
+
+        // Start the tour immediately if toggled via query string.
+        if (/tour=?/i.test(queryString)) {
+          model.set('isActive', true);
+        }
+      });
+    }
+  };
+
+  Drupal.tour = Drupal.tour || {models: {}, views: {}};
+
+  /**
+   * Backbone Model for tours.
+   */
+  Drupal.tour.models.StateModel = Backbone.Model.extend({
+    defaults: {
+      // Indicates whether the Drupal root window has a tour.
+      tour: [],
+      // Indicates whether the tour is currently running.
+      isActive: false,
+      // Indicates which tour is the active one (necessary to cleanly stop).
+      activeTour: []
+    }
+  });
+
+  /**
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.tour.views.ToggleTourView = Backbone.View.extend({
+
+    events: {'click': 'onClick'},
+
+    /**
+     * Implements Backbone Views' initialize().
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:tour change:isActive', this.render);
+      this.listenTo(this.model, 'change:isActive', this.toggleTour);
+    },
+
+    /**
+     * Implements Backbone Views' render().
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', this._getTour().length === 0);
+      // Render the state.
+      var isActive = this.model.get('isActive');
+      this.$el.find('button')
+        .toggleClass('is-active', isActive)
+        .prop('aria-pressed', isActive);
+      return this;
+    },
+
+    /**
+     * Model change handler; starts or stops the tour.
+     */
+    toggleTour: function () {
+      if (this.model.get('isActive')) {
+        var $tour = this._getTour();
+        this._removeIrrelevantTourItems($tour, this._getDocument());
+        var that = this;
+        if ($tour.find('li').length) {
+          $tour.joyride({
+            autoStart: true,
+            postRideCallback: function () { that.model.set('isActive', false); },
+            template: { // HTML segments for tip layout
+              link: '<a href=\"#close\" class=\"joyride-close-tip\">&times;</a>',
+              button: '<a href=\"#\" class=\"button button--primary joyride-next-tip\"></a>'
+            }
+          });
+          this.model.set({isActive: true, activeTour: $tour});
+        }
+      }
+      else {
+        this.model.get('activeTour').joyride('destroy');
+        this.model.set({isActive: false, activeTour: []});
+      }
+    },
+
+    /**
+     * Toolbar tab click event handler; toggles isActive.
+     */
+    onClick: function (event) {
+      this.model.set('isActive', !this.model.get('isActive'));
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Gets the tour.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to a <ol> containing tour items.
+     */
+    _getTour: function () {
+      return this.model.get('tour');
+    },
+
+    /**
+     * Gets the relevant document as a jQuery element.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to the document within which a tour would be
+     *   started given the current state.
+     */
+    _getDocument: function () {
+      return $(document);
+    },
+
+    /**
+     * Removes tour items for elements that don't have matching page elements or
+     * are explicitly filtered out via the 'tips' query string.
+     *
+     * Example:
+     *   http://example.com/foo?tips=bar
+     *
+     *   The above will filter out tips that do not have a matching page element or
+     *   don't have the "bar" class.
+     *
+     * @param jQuery $tour
+     *   A jQuery element pointing to a <ol> containing tour items.
+     * @param jQuery $document
+     *   A jQuery element pointing to the document within which the elements
+     *   should be sought.
+     *
+     * @see _getDocument()
+     */
+    _removeIrrelevantTourItems: function ($tour, $document) {
+      var removals = false;
+      var tips = /tips=([^&]+)/.exec(queryString);
+      $tour
+        .find('li')
+        .each(function () {
+          var $this = $(this);
+          var itemId = $this.attr('data-id');
+          var itemClass = $this.attr('data-class');
+          // If the query parameter 'tips' is set, remove all tips that don't
+          // have the matching class.
+          if (tips && !$(this).hasClass(tips[1])) {
+            removals = true;
+            $this.remove();
+            return;
+          }
+          // Remove tip from the DOM if there is no corresponding page element.
+          if ((!itemId && !itemClass) ||
+            (itemId && $document.find('#' + itemId).length) ||
+            (itemClass && $document.find('.' + itemClass).length)) {
+            return;
+          }
+          removals = true;
+          $this.remove();
+        });
+
+      // If there were removals, we'll have to do some clean-up.
+      if (removals) {
+        var total = $tour.find('li').length;
+        if (!total) {
+          this.model.set({tour: []});
+        }
+
+        $tour
+          .find('li')
+          // Rebuild the progress data.
+          .each(function (index) {
+            var progress = Drupal.t('!tour_item of !total', {'!tour_item': index + 1, '!total': total});
+            $(this).find('.tour-progress').text(progress);
+          })
+          // Update the last item to have "End tour" as the button.
+          .eq(-1)
+          .attr('data-text', Drupal.t('End tour'));
+      }
+    }
+
+  });
+
+})(jQuery, Backbone, Drupal, document);
+;
+/**
+ * @file
+ * Manages page tabbing modifications made by modules.
+ */
+
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Provides an API for managing page tabbing order modifications.
+   */
+  function TabbingManager() {
+    // Tabbing sets are stored as a stack. The active set is at the top of the
+    // stack. We use a JavaScript array as if it were a stack; we consider the
+    // first element to be the bottom and the last element to be the top. This
+    // allows us to use JavaScript's built-in Array.push() and Array.pop()
+    // methods.
+    this.stack = [];
+  }
+
+  /**
+   * Add public methods to the TabbingManager class.
+   */
+  $.extend(TabbingManager.prototype, {
+    /**
+     * Constrain tabbing to the specified set of elements only.
+     *
+     * Makes elements outside of the specified set of elements unreachable via the
+     * tab key.
+     *
+     * @param jQuery elements
+     *   The set of elements to which tabbing should be constrained. Can also be
+     *   a jQuery-compatible selector string.
+     *
+     * @return TabbingContext
+     */
+    constrain: function (elements) {
+      // Deactivate all tabbingContexts to prepare for the new constraint. A
+      // tabbingContext instance will only be reactivated if the stack is unwound
+      // to it in the _unwindStack() method.
+      var il = this.stack.length;
+      for (var i = 0; i < il; i++) {
+        this.stack[i].deactivate();
+      }
+
+      // The "active tabbing set" are the elements tabbing should be constrained
+      // to.
+      var $elements = $(elements).find(':tabbable').addBack(':tabbable');
+
+      var tabbingContext = new TabbingContext({
+        // The level is the current height of the stack before this new
+        // tabbingContext is pushed on top of the stack.
+        level: this.stack.length,
+        $tabbableElements: $elements
+      });
+
+      this.stack.push(tabbingContext);
+
+      // Activates the tabbingContext; this will manipulate the DOM to constrain
+      // tabbing.
+      tabbingContext.activate();
+
+      // Allow modules to respond to the constrain event.
+      $(document).trigger('drupalTabbingConstrained', tabbingContext);
+
+      return tabbingContext;
+    },
+
+    /**
+     * Restores a former tabbingContext when an active tabbingContext is released.
+     *
+     * The TabbingManager stack of tabbingContext instances will be unwound from
+     * the top-most released tabbingContext down to the first non-released
+     * tabbingContext instance. This non-released instance is then activated.
+     */
+    release: function () {
+      // Unwind as far as possible: find the topmost non-released tabbingContext.
+      var toActivate = this.stack.length - 1;
+      while (toActivate >= 0 && this.stack[toActivate].released) {
+        toActivate--;
+      }
+
+      // Delete all tabbingContexts after the to be activated one. They have
+      // already been deactivated, so their effect on the DOM has been reversed.
+      this.stack.splice(toActivate + 1);
+
+      // Get topmost tabbingContext, if one exists, and activate it.
+      if (toActivate >= 0) {
+        this.stack[toActivate].activate();
+      }
+    },
+
+    /**
+     * Makes all elements outside the of the tabbingContext's set untabbable.
+     *
+     * Elements made untabbable have their original tabindex and autofocus values
+     * stored so that they might be restored later when this tabbingContext
+     * is deactivated.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been activated.
+     */
+    activate: function (tabbingContext) {
+      var $set = tabbingContext.$tabbableElements;
+      var level = tabbingContext.level;
+      // Determine which elements are reachable via tabbing by default.
+      var $disabledSet = $(':tabbable')
+        // Exclude elements of the active tabbing set.
+        .not($set);
+      // Set the disabled set on the tabbingContext.
+      tabbingContext.$disabledElements = $disabledSet;
+      // Record the tabindex for each element, so we can restore it later.
+      var il = $disabledSet.length;
+      for (var i = 0; i < il; i++) {
+        this.recordTabindex($disabledSet.eq(i), level);
+      }
+      // Make all tabbable elements outside of the active tabbing set unreachable.
+      $disabledSet
+        .prop('tabindex', -1)
+        .prop('autofocus', false);
+
+      // Set focus on an element in the tabbingContext's set of tabbable elements.
+      // First, check if there is an element with an autofocus attribute. Select
+      // the last one from the DOM order.
+      var $hasFocus = $set.filter('[autofocus]').eq(-1);
+      // If no element in the tabbable set has an autofocus attribute, select the
+      // first element in the set.
+      if ($hasFocus.length === 0) {
+        $hasFocus = $set.eq(0);
+      }
+      $hasFocus.trigger('focus');
+    },
+
+    /**
+     * Restores that tabbable state of a tabbingContext's disabled elements.
+     *
+     * Elements that were made untabbable have their original tabindex and autofocus
+     * values restored.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been deactivated.
+     */
+    deactivate: function (tabbingContext) {
+      var $set = tabbingContext.$disabledElements;
+      var level = tabbingContext.level;
+      var il = $set.length;
+      for (var i = 0; i < il; i++) {
+        this.restoreTabindex($set.eq(i), level);
+      }
+    },
+
+    /**
+     * Records the tabindex and autofocus values of an untabbable element.
+     *
+     * @param jQuery $set
+     *   The set of elements that have been disabled.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be recorded.
+     */
+    recordTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices') || {};
+      tabInfo[level] = {
+        tabindex: $el[0].getAttribute('tabindex'),
+        autofocus: $el[0].hasAttribute('autofocus')
+      };
+      $el.data('drupalOriginalTabIndices', tabInfo);
+    },
+
+    /**
+     * Restores the tabindex and autofocus values of a reactivated element.
+     *
+     * @param jQuery $el
+     *   The element that is being reactivated.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be restored.
+     */
+    restoreTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices');
+      if (tabInfo && tabInfo[level]) {
+        var data = tabInfo[level];
+        if (data.tabindex) {
+          $el[0].setAttribute('tabindex', data.tabindex);
+        }
+        // If the element did not have a tabindex at this stack level then
+        // remove it.
+        else {
+          $el[0].removeAttribute('tabindex');
+        }
+        if (data.autofocus) {
+          $el[0].setAttribute('autofocus', 'autofocus');
+        }
+
+        // Clean up $.data.
+        if (level === 0) {
+          // Remove all data.
+          $el.removeData('drupalOriginalTabIndices');
+        }
+        else {
+          // Remove the data for this stack level and higher.
+          var levelToDelete = level;
+          while (tabInfo.hasOwnProperty(levelToDelete)) {
+            delete tabInfo[levelToDelete];
+            levelToDelete++;
+          }
+          $el.data('drupalOriginalTabIndices', tabInfo);
+        }
+      }
+    }
+  });
+
+  /**
+   * Stores a set of tabbable elements.
+   *
+   * This constraint can be removed with the release() method.
+   *
+   * @param Object options
+   *   A set of initiating values that include:
+   *   - Number level: The level in the TabbingManager's stack of this
+   *   tabbingContext.
+   *   - jQuery $tabbableElements: The DOM elements that should be reachable via
+   *   the tab key when this tabbingContext is active.
+   *   - jQuery $disabledElements: The DOM elements that should not be reachable
+   *   via the tab key when this tabbingContext is active.
+   *   - Boolean released: A released tabbingContext can never be activated again.
+   *   It will be cleaned up when the TabbingManager unwinds its stack.
+   *   - Boolean active: When true, the tabbable elements of this tabbingContext
+   *   will be reachable via the tab key and the disabled elements will not. Only
+   *   one tabbingContext can be active at a time.
+   */
+  function TabbingContext(options) {
+    $.extend(this, {
+      level: null,
+      $tabbableElements: $(),
+      $disabledElements: $(),
+      released: false,
+      active: false
+    }, options);
+  }
+
+  /**
+   * Add public methods to the TabbingContext class.
+   */
+  $.extend(TabbingContext.prototype, {
+    /**
+     * Releases this TabbingContext.
+     *
+     * Once a TabbingContext object is released, it can never be activated again.
+     */
+    release: function () {
+      if (!this.released) {
+        this.deactivate();
+        this.released = true;
+        Drupal.tabbingManager.release(this);
+        // Allow modules to respond to the tabbingContext release event.
+        $(document).trigger('drupalTabbingContextReleased', this);
+      }
+    },
+
+    /**
+     * Activates this TabbingContext.
+     */
+    activate: function () {
+      // A released TabbingContext object can never be activated again.
+      if (!this.active && !this.released) {
+        this.active = true;
+        Drupal.tabbingManager.activate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextActivated', this);
+      }
+    },
+
+    /**
+     * Deactivates this TabbingContext.
+     */
+    deactivate: function () {
+      if (this.active) {
+        this.active = false;
+        Drupal.tabbingManager.deactivate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextDeactivated', this);
+      }
+    }
+  });
+
+  // Mark this behavior as processed on the first pass and return if it is
+  // already processed.
+  if (Drupal.tabbingManager) {
+    return;
+  }
+  Drupal.tabbingManager = new TabbingManager();
+
+}(jQuery, Drupal));
+;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module's edit toolbar tab.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  var strings = {
+    tabbingReleased: Drupal.t('Tabbing is no longer constrained by the Contextual module.'),
+    tabbingConstrained: Drupal.t('Tabbing is constrained to a set of @contextualsCount and the edit mode toggle.'),
+    pressEsc: Drupal.t('Press the esc key to exit.')
+  };
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param DOM links
+   *   A contextual links DOM element as rendered by the server.
+   */
+  function initContextualToolbar(context) {
+    if (!Drupal.contextual || !Drupal.contextual.collection) {
+      return;
+    }
+
+    var contextualToolbar = Drupal.contextualToolbar;
+    var model = contextualToolbar.model = new contextualToolbar.StateModel({
+      // Checks whether localStorage indicates we should start in edit mode
+      // rather than view mode.
+      // @see Drupal.contextualToolbar.VisualView.persist()
+      isViewing: localStorage.getItem('Drupal.contextualToolbar.isViewing') !== 'false'
+    }, {
+      contextualCollection: Drupal.contextual.collection
+    });
+
+    var viewOptions = {
+      el: $('.toolbar .toolbar-bar .contextual-toolbar-tab'),
+      model: model,
+      strings: strings
+    };
+    new contextualToolbar.VisualView(viewOptions);
+    new contextualToolbar.AuralView(viewOptions);
+  }
+
+  /**
+   * Attaches contextual's edit toolbar tab behavior.
+   */
+  Drupal.behaviors.contextualToolbar = {
+    attach: function (context) {
+      if ($('body').once('contextualToolbar-init').length) {
+        initContextualToolbar(context);
+      }
+    }
+  };
+
+  Drupal.contextualToolbar = {
+    // The Drupal.contextualToolbar.Model instance.
+    model: null
+  };
+
+})(jQuery, Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone Model for the state of Contextual module's edit toolbar tab.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of the edit mode toggle.
+   */
+  Drupal.contextualToolbar.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // Indicates whether the toggle is currently in "view" or "edit" mode.
+      isViewing: true,
+      // Indicates whether the toggle should be visible or hidden. Automatically
+      // calculated, depends on contextualCount.
+      isVisible: false,
+      // Tracks how many contextual links exist on the page.
+      contextualCount: 0,
+      // A TabbingContext object as returned by Drupal.TabbingManager: the set
+      // of tabbable elements when edit mode is enabled.
+      tabbingContext: null
+    },
+
+    /**
+     * {@inheritdoc}
+     *
+     * @param Object attrs
+     * @param Object options
+     *   An object with the following option:
+     *     - Backbone.collection contextualCollection: the collection of
+     *       Drupal.contextual.StateModel models that represent the contextual
+     *       links on the page.
+     */
+    initialize: function (attrs, options) {
+      // Respond to new/removed contextual links.
+      this.listenTo(options.contextualCollection, {
+        'reset remove add': this.countContextualLinks,
+        'add': this.lockNewContextualLinks
+      });
+
+      this.listenTo(this, {
+        // Automatically determine visibility.
+        'change:contextualCount': this.updateVisibility,
+        // Whenever edit mode is toggled, lock all contextual links.
+        'change:isViewing': function (model, isViewing) {
+          options.contextualCollection.each(function (contextualModel) {
+            contextualModel.set('isLocked', !isViewing);
+          });
+        }
+      });
+    },
+
+    /**
+     * Tracks the number of contextual link models in the collection.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added or removed.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    countContextualLinks: function (contextualModel, contextualCollection) {
+      this.set('contextualCount', contextualCollection.length);
+    },
+
+    /**
+     * Lock newly added contextual links if edit mode is enabled.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    lockNewContextualLinks: function (contextualModel, contextualCollection) {
+      if (!this.get('isViewing')) {
+        contextualModel.set('isLocked', true);
+      }
+    },
+
+    /**
+     * Automatically updates visibility of the view/edit mode toggle.
+     */
+    updateVisibility: function () {
+      this.set('isVisible', this.get('contextualCount') > 0);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of the edit mode toggle.
+ */
+
+(function ($, Drupal, Backbone, _) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of the edit mode toggle (i.e.screen reader support).
+   */
+  Drupal.contextualToolbar.AuralView = Backbone.View.extend({
+
+    // Tracks whether the tabbing constraint announcement has been read once yet.
+    announcedOnce: false,
+
+    /*
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.manageTabbing);
+
+      $(document).on('keyup', _.bind(this.onKeypress, this));
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the state.
+      this.$el.find('button').attr('aria-pressed', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Limits tabbing to the contextual links and edit mode toolbar tab.
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    manageTabbing: function () {
+      var tabbingContext = this.model.get('tabbingContext');
+      // Always release an existing tabbing context.
+      if (tabbingContext) {
+        tabbingContext.release();
+        Drupal.announce(this.options.strings.tabbingReleased);
+      }
+      // Create a new tabbing context when edit mode is enabled.
+      if (!this.model.get('isViewing')) {
+        tabbingContext = Drupal.tabbingManager.constrain($('.contextual-toolbar-tab, .contextual'));
+        this.model.set('tabbingContext', tabbingContext);
+        this.announceTabbingConstraint();
+        this.announcedOnce = true;
+      }
+    },
+
+    /**
+     * Announces the current tabbing constraint.
+     */
+    announceTabbingConstraint: function () {
+      var strings = this.options.strings;
+      Drupal.announce(Drupal.formatString(strings.tabbingConstrained, {
+        '@contextualsCount': Drupal.formatPlural(Drupal.contextual.collection.length, '@count contextual link', '@count contextual links')
+      }));
+      Drupal.announce(strings.pressEsc);
+    },
+
+    /**
+     * Responds to esc and tab key press events.
+     *
+     * @param jQuery.Event event
+     */
+    onKeypress: function (event) {
+      // The first tab key press is tracked so that an annoucement about tabbing
+      // constraints can be raised if edit mode is enabled when the page is
+      // loaded.
+      if (!this.announcedOnce && event.keyCode === 9 && !this.model.get('isViewing')) {
+        this.announceTabbingConstraint();
+        // Set announce to true so that this conditional block won't run again.
+        this.announcedOnce = true;
+      }
+      // Respond to the ESC key. Exit out of edit mode.
+      if (event.keyCode === 27) {
+        this.model.set('isViewing', true);
+      }
+    }
+
+  });
+
+})(jQuery, Drupal, Backbone, _);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of the edit mode toggle.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of the edit mode toggle. Listens to mouse & touch.
+   *
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.contextualToolbar.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click': function () {
+          this.model.set('isViewing', !this.model.get('isViewing'));
+        },
+        'touchend': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.persist);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', !this.model.get('isVisible'));
+      // Render the state.
+      this.$el.find('button').toggleClass('is-active', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Model change handler; persists the isViewing value to localStorage.
+     *
+     * isViewing === true is the default, so only stores in localStorage when
+     * it's not the default value (i.e. false).
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    persist: function (model, isViewing) {
+      if (!isViewing) {
+        localStorage.setItem('Drupal.contextualToolbar.isViewing', 'false');
+      }
+      else {
+        localStorage.removeItem('Drupal.contextualToolbar.isViewing');
+      }
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ *
+ * Replaces the home link in toolbar with a back to site link.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  var pathInfo = drupalSettings.path;
+  var escapeAdminPath = sessionStorage.getItem('escapeAdminPath');
+  var windowLocation = window.location;
+
+  // Saves the last non-administrative page in the browser to be able to link back
+  // to it when browsing administrative pages. If there is a destination parameter
+  // there is not need to save the current path because the page is loaded within
+  // an existing "workflow".
+  if (!pathInfo.currentPathIsAdmin && !/destination=/.test(windowLocation.search)) {
+    sessionStorage.setItem('escapeAdminPath', windowLocation);
+  }
+
+  /**
+   * Replaces the "Home" link with "Back to site" link.
+   *
+   * Back to site link points to the last non-administrative page the user visited
+   * within the same browser tab.
+   */
+  Drupal.behaviors.escapeAdmin = {
+    attach: function () {
+      var $toolbarEscape = $('[data-toolbar-escape-admin]').once('escapeAdmin');
+      if ($toolbarEscape.length && pathInfo.currentPathIsAdmin) {
+        if (escapeAdminPath !== null) {
+          $toolbarEscape.attr('href', escapeAdminPath);
+        }
+        else {
+          $toolbarEscape.text(Drupal.t('Home'));
+        }
+        $toolbarEscape.closest('.toolbar-tab').removeClass('hidden');
+      }
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
diff --git a/sites/default/files/js/js_7WLMk65_dQppS3F3LJt3qXbFiGIrv9_QvmLvmXoEOYM.js.gz b/sites/default/files/js/js_7WLMk65_dQppS3F3LJt3qXbFiGIrv9_QvmLvmXoEOYM.js.gz
new file mode 100644
index 0000000..c5425f0
--- /dev/null
+++ b/sites/default/files/js/js_7WLMk65_dQppS3F3LJt3qXbFiGIrv9_QvmLvmXoEOYM.js.gz
@@ -0,0 +1,278 @@
+     {֕?WA	0!JrN8ӸcOPIH$AeE|Ϋ9/켒k.N9sZec_^.gZWM׷:Z?
+Zߋ8d2lX:T=tle}q4.G('0U:xq]yz||E'כW8mrRGAd
+d:i-ӛ:_:}iJZ7rLen͌^]z٢V}}ƞNe:twDYVH֭Qx)0CaJW|9J6.WbNH?nflr^,)^,_U܆(4w&$\/.rX0dIe~eq^~|r>h*Φኊ.ӳ}|v/鯃lƆVקIeg79&/ȉ!MFYoG|-"|y<]N7<O֮ih%󹏩LM	"зQ'='mtA$Q2̛M2.UHzrю3 ?=4+cpd4׭wR(HVM*M}b09Gx"G4z>R񸓬V[գ@l]lUϩ<I7Lb(n'm9|W9zz}^`~9>8J`]mmF
+.IXJhSOXx/!-SN-&8L	! 3nG{_0Я⣋l4YZ9=>ivounO	zgTT wvztǳ.*"<+;OJ-5le\({	~Gq<FV_ϓl)sp1otz=?p'Qa%#ܭҐ|޿IJy6npzhjο#Z2:k<^AYy2Jg%=/4FGa
+S*A".|#~ӏhipXGFMMDӿe:)	CE?zQ7Gv	><]%"v'DO7T,F92oV@RMzGQ+\ǖuA߼x\bm#j
+05j;44yQm%dio ڠH'dC2_J/	fp-EH_J*>hz20wF4٤)vuD&%3#~-t02ShT	M7JiOVG\g7p{`@54?'3_|h>,?i}?¸9Di\PwFDN;Bw8TP&Bl1`HSzO4&/%?_i,G	} ]uZa>w*_fFW0{n0a	uɈx ]t8wzM5S{.t&m5	 RqwLAsnalF4ôKizj ΈPSlhԝ>t'8>"?RVg)0\k L-ŌӢn )kD0FA׀D@.*hgķ8	+lp=	fF7	)%1vAuÁ:cS%~
+a;:MvI@[73§nb]WؽoAkEHs-=t5~L?ZM;$,"]YhyaxVayhO`vڐn1jBk4&6wty	>9R&ڶїVwC]TN,«:p*$&^<Ya:`|C#g	gY|O(GAHk4//gWe;|/B$ć09d}ƏGݑtE1$ZӋ}u:މLIq&"}nNnpN̲8]nNno<;|9)	5c/>_^n./ח_ƞߋ.Ύ
+ܜv_)MA_xw;Wwy߷~J`w߃^'ķMߓA08]z\z;7ةZ./ϯcwK{h~E5?v*w}͉7)}}lsſJnjo>~~?n7H7)ShR'4އ=w_¿WY@~^<J~>ɛ74P?UR۷?F^
+oUuw/t-Yb7?''@n
+xlh1^M //¯zuL-?'BR7_iTeOY9J4&`ytCvN^@uq#>CjQiΐ&_βr>r7h_]/d}H[7g;w~ſ&I|֧aCyIR()ACچt2Qv2Dړ<8;Ht5FP@=w&|t]m"_>~|q/ǻG,L;<_{^!eB덞R2bB,}F?q5~)~aGD{áLp"Rׄ(M?;2]?S}F3XREkqG>>\&c{D͊%U֟:ǔ_xҿp?W3j}n틱G3jvեf2ەy(|ȌIҳz~}45Cw<7o)dqLBȽyr@m%n)Pu3uRy}9=&-X9.u%oH<Z$szmObuApSKZɆQlL|B0fP{A4!"]Aq; q^'>M$z\k	-4sgKUI )f*o)ڰyewI}LRJS5MUq[͏Ԉ7ݽ`E<:Bبy1$/b^y9>SoI
+N1&? ɯeq2Mf_oħ<n_%QME5>xAw&h.DAra}fNRt;FG `;	-wr<O~: ikjPW8v&pͷQ).TaKhHF$b&	¨GzvㅻPR(s,ObܐFT4@p)|h/w#(t`XO
+#$#M)	dSZyB D~?ӥUi/k8N6~O	Dy3	%rV%U
+FV-ϞۗߗoD+\pF iEi}۩jwz2/hҳt,	*hi'ü>+6)WyO"Rlan\
+<-NxyALh\Wj&1QRW5!pشvUS1DUsuyQpUCBަʁ..݆G
+Q1	Omh;WƝ*ʙlhQ3ȦtYK"K6z7ܾoWμ CA+j/hV|טͬ?C2ߦϡ+	q3$wZ1l&1R6jATiǀwN! 9L#3Kc	Mz~XauǍU m1#ՉlWvm}.	YIKx-ȏ>K-
+r28i-
+Q~	WVO~v&B?¤z^\/2dRc'NWe{'JCueeMѻ"nƾj27~iw6+LM*+xbZ嬅
+U;Q6sW*'Kа{vh>7)..>4iUM_^5jyF2<0_EZz$ɩW]޹Ie,^,_M%Clʊ:4QNB"_awjlG,ߛwTm|&-33wFQy"Cǃp}SlIeO*IAEeqƢ;)G4ݳ$+iJcIlT"(yk x$Ct~{zXyWtGtz4<ޘIr.a]ǘu{ONXCqC7PAzZa`(JQ._k?ԧ1hZC;2&v٘pngq?\~8"|8 85~4uO2*@w']+;3lX԰T斒v5w!Tr/"b"AxǭD~bgm1PFЋO\kșbׂۭkuMACјv96
+Ze>0\ʄh*FļhoBg?f`酣8g2KnɰR2襬?ZiSҜ&+czYk1tU:&Y:MDƈXIf|fcKr25ҏuZlyDẗMxuJ]	l6<t"F|s0!xs-@֟@`џ@i%b=	G(e&|_M)434oadyy&H&r>I~.VD隭rc1j'U&]<p5vlKi+?JOrv\Za+O	n(;G[<uny%!#Ђ:!w`3{8[GEjxO:B*߇[;>oR /1T09 O	⿿ѪcBDa|=`h 9vۗf&+]ӗAONoh=_ⶏ?P zp.}&㱾PX+^[4#4OfGu:z؈qyʣߤ8tSG(Y3jap^s{npSc#牻Z_
+ƧF}}jVzG%o6މH_Vzrm_ X6`RqЯAZYsCkIUYUM4^{mOwKF>l}ǎKʦ=Hsh6'z,G~߃>nQ~K{h_/7=p	8YX[c;5P@j;]jTܾީA'OUG7FČ]O`Ncf1ӯ)^^ő+8 dҏc<949k˂fć">ʎf8O4'
+F:j s֛zk6WYڣnhs6M4Hw0|=Epwo	a?c6XW@lq|s||E"\<sØr`Fn9FM-,e|@W>yz|n/8KwEܿe[boxt}GǤz{1:7.4wɟKN0Q2Uo`q4(Y,HI(8g@[op-Xc(!3$qRp蜺c	 E~&!!589mU,w*Ƕkaςʁqy1kG'sx(PDw|eMVna01 i<ւv@c057s
+3gIPl-=d"CfE,XTp~j;%%q"ab'I@s<YNw1>=o|[
+kqbpMUsy@<7V畛1G"&L@>XUIVL$+k#QkY,P(8vecѵzXSz$#`JK2n[k+~l4 @3Iu$©F3d?1Py>W}sM;SOGh+THcYxV0}&LC_.n=bȘ_j9,&?
+pk#nΣ>dKjCmRkfdN;ӓDhc嵣O/P&}_-a%QoF#.Iy6c;d7QT>MSGg_l==ՌKL?v{6 N2J{|NYs#IdO"A&_q-)˕Vb;\dP-8zfha8!>Ia{\bX[2'vBpn`Z'a,Iٰ$	Qi.'Frq֠lK=SդP(QurzPpLEh⭩SmN(GBΕ:\mF8GNOdpDLliq[W~g4T hGT#olxG}ѯXY`fobh (u;gj]>EEoM^cR\#a:G]
+j(W'V{^-c_s:/*TzP	i 9WP3TU9-w
+{Wɐ⎏gFA!3QD☼nJV*ͅQ:54sX~:PH{emq4`JZiMH89{SχU ^QūX\&	Δ\1'\l%bsp.8]pĥ1XkT824+0>=JYg(,bV|طpBۇ^864hƒ/Gx"U Շx#P'$IZzA4޳E8q %iٯbx.ƿ
+1xq_p5躿+Ȗ<`9.-hy֍+YtGuStĂ
+ܿ_h~A#ӿBAdy|Jiy5-eO`JvϘ"܅cC&tn\qGY_НBb^,jf8 3W9aA8?P/*H*D>?B!}kU<KT~Н<κx:cX upЂn ;U^SZMe"r)m,4nRT[|nDH7t艳Ӌ@PtքGReby{'lveUf@4!uRճyd5/4)4maĨQnf]7PDC}N;6U!a[UmV<ߴc86I]"oĺ\K*15tX=5cp|<0^,do0ƠC3FzpU1Ѫ :*5rΉhʞ+bݮ>~o,"P ^cdE ¬)Ls/c#B!7A4fTl=fi l9/;Q	
+!JUnA@&=NrNL)ܣIJ ,5sPsBJ^#7_<!Pq*kbl3a:!gbRc(h7	Z]oI;Zqa8Ysu$FUHwF~bf ..bQvq&oJ, 'Ȕ"|k)%L/ISHt&ղ]B_ʛQ2oe׋mX7퉏^p-Y<pyǀ٫T0e|(6߉zEU4D(IuND_c,ͦ&of^xlzjzo"HWͦqh;c g0es	>1n)j<4NbE1wtX1gBaҡS!*ݲfgctk+ 4ʌðر6tA8M0\7?q7zJ=#WkZ*ZF-Q"Uۡq_~O%=2&s։[##엯9N˳ˋ;ם/.pUd|n09WYvd0Yl!2`Vg24Y6SfYcjfYEF->1L}-j\׵@\Ȱ-sV074g	+CPUMuٞGBDRi7eæݤ9տc&-7b] k'(5Zj-C0H[ՌR,HC+dŅ]tf;>xP3OG B3ut|w8m:9R%vX[B{Ř6UbF_\}~y<xSgr'	83\Z-**Q>k-^l|񗽾|>~GBF},^%m#j1kwt'[d9B=hqPm2?(FV;8#hA	ת8AO]!b[QO܈{Ucvt;}g fqvE$ts<g:)^n&qo;vS(1z4<D_!~	'
+Ol6^B#[H&@nZnD§]Q	>ˋ8C*L]aLZBkUF`H[;)E)HAÑv5*Gr#]XsHD!^Wvh3u, 0Es(	:H@+o'.P,+\#=FVgp΍>lU3[SBD c*pM7e!Zu>IpY9.vU}
+
+[PӍf Z/ @7hC6	uP+OAKDXd<n\KFUJn@(URuT"{_ԏ*bt#>nVEyK#rpBDf]>-˥X3H8us/S)G)^V-=lyl0XMqP'ZϜ3>Wz#C
+}WY4!k"o-!čAAnCI1GOaR0ɩ15AO7]f)[ܐ7VOk-
+:Ib?.ߴϦcg?HZg?ggX JsH%57[,݇ʷv$-tNl0|\Zxn|}{|<Mq|+?λ$NOS3rr1[&_Z~bVH!izL+zhCףkm`[]HB}6=Q}C^a%`*j4A`)^(a\I%v[x[.Se{'&w8IP\~( (*A~$aHK̴y31lO&ᔯ`m,alI8cfW!!jjCiGKjufPqofpF8u@5V`lӜ	;8CqԯO<  Px uWͣ>_wtEwM>"F\ck73^7:-~dp_%fUvB|)CowWlc-M6@)+g)8#y~4e#Bhxv0,gCv]6K8u@HS̢v=Nf4qY&^?ݴaTuQ8 .2±=s2QG-4`eYrVΜ pGV74K&92}BptDٌ08a};ǈJ[cx
+^/Y&z'd@i@O=C<!iTqԼc_zs0=c)gQiRbfpbw3K,aXK8 vH%@ɽDdâSnzx#\US}YbF֛*c<n7kHA9x?`;c[B)|Jץ[E<W<>\7JF`"UG:©9k'=XȶjYɛ]!$Dg(1=U1Jۑ{]+ac{ga>en8?>bߕfe;".j:MUV׆pxO&IP_nx^T~Sa^@&%ڥ󄃣_aqi[y8G,C7 j"ݼi :^:q(QF#hB7BC]
+{w(pĤg8)i)*(gK?]ͷ':1MU<e83!;¼лgx2HzA!+DL2YIOI Y`+HxF{ޕtwb;*kAgo|Uc'7uz[lkLWO7$Lr{0PDU8\(ni2>S5AQ T<#9t#xmfhh Y<8aXw!j:q2Yr4ukRM.k*ʜNʱ$BI6o^n7lP3SdQ/lԫeV>ڨ^/GaP#O6XvjNxDؑw`Tٜצ=c'CVs9=FwrrFB.q Oa&0.rq\\T1r1Y<-gXMWGɺ,AV0F*&{T?;9~x] gׯ3esתU^rzcSm#
+SX1<+&KDRj0L-'Yo8:/u{y Drqڣ'QSyV29!^:-qӷzQ/{玖LC\̦zV&{(]c﫵;Xj"<1+)G\KF<18grG˛SX)@LtJٸ kxB&]$1Vڤ-n<p"{j`7ikElMC &b,%ۚY]󋉃ӇJD`fTf|On,&qPB8:Y^;3q|=uW(i+ikk`, tO}$eG!OCޒX%7ILΦtM)ύLL E68wj2J0åc8|Rw\<.L;AˎjMAFZE(Mc}pOёX1XTTH؄/iS)۬āksVY5\'1bDl|މ:rPchz4<UTٴJG|G1/L1!Y&Vc[yG<ٝ׼e(P{!TkD!ay`Xh&pSlҁ*aZV\Ɉtae".mf޹ZR@0)+#;R;BgtFO]Rp'Rܝz`/;rܦ~|/vT>q{vM>lAPSB48F`i*sU[aCuG$@?{h4:u2eGhͮb5y}Q䇞?jJ/t-Wi 牂ULH3%t>3̹Uj.(Onudo<-M=h9I;.ȷE[rw|}F_]?KAUv3oאD8Od!$t-
+i>\;_D	G e܋|jU
+XI;kagF:GPum3IڗXgB?ҹ9{'S*E_T
+o-	ħިG+1[;mĴ^^awN5(9! y ^:aj y>F0p? )祈v
+S.뾱I2,DS%~ڛwaLiC!1,vyxp9M
+^$q-IrYP`sU?ISih\:0"i_.~i%X=B񱺰.$p
+'qVSgdTWx4@jA,3Pt9U)kfyEda`J}|\ڍ;	o[C."g' W@[qREgI{Q!rMO|\!d-xQބw/	l!+eg*`|1PL}<s̽=I{d3dk(f6>l˕̠;,ZaN]KcbAP\_Vj,ݣ)8~Zdݸ7z,Kj$`H%8V5kFD@^.Gkߧ##ӕvRazӣ!m,0wF}	XbΗ;,%>9>cgi[韪:~4I_r6NO#/[^=8Y /YaM-phYVGї3b57sk܁OH0	3T'u	>fs!]¼UViV!aե;i{*̅@iDvZ^kߝv+OVvgpW݀8
+_dAJ?Ą]WzU2 o69q$ *kE/re1Em|4d
+} v.JGo! =pހ'y4xzK_b9d[x,N{3J*c{[IU,9uŜcUhcr0P u5M.0U;{>a6|>b@}ܒun݊JZb!Tv2o#+drDh>ҹu9>WU+0''.錶kձI:G1Iu/t!ES>q#L^VM16O!߯Np!rN>sY,s4)7Sͦ>B1vx-/6z`ޗ1L,9=|jÌˬ}|Ǚ]RsdeXAķ4J5qeٌ"c	*}ޝq$v0aS_[%$N8qO7Mae ;[R2ʈX/Ĉ"aգxon87fЦ3XYNY*"/o޶h:ǤFJ; d7	
+pt
+0WǲMHlŪhff!Zuo4 џ-zTQvz:n7tg/iT+HeYSfK~hM|2!1gmgV1Zg&WZO=ѭqDNjԓB:||:mem]i |u*JK΃S)%8ȉRoUrm8眷z3;wBcd{DsYnȪQ&'0
+ikL0
+9Cuo7v_7fU
+R7Ad_ڑ& !k,iB6feL\ϗOYۦyc*Ը< J"l @tN$AjbbЄ;D{i|"9'=dttC(g?P6T;t3v=y G\|UQRk7{G͎}:txχ)Tt؂E 7062,~IGZg.@"[l%7J@7=YYFK6Us"*bT+ug0\{5
+h0fɀDJZX!{>ll҄ ,k)TCM&A2`O{=P(JZDČQ"fb.kI0rVlq4tAIE"VD510z6iޗTY/(X
+S[B7\niJ~KR3M{z@wLp1ktkOy|Hc«:S՝|n'c3sEw%"1.wy`L根FTb\ Ή=kv70a9*vLnCbºɂ2xKӧ^)Q&pVk,il0õs$i-"dyӋn+U">]#yQJvTkv;T3	D1BlD,)7$$-#i|EZ6	3fjQ'ͺu:^uN?"S9)^&G!7
+>7ToDLH@0J	6I|BB쨓	Ȋ&J;cA^k;"ʉFZ aѪ]vSKsCw()a?B֘X9Y_-s>wbXkT\zZ{M2:ЬJkwk+]7[t2n-wPHxKoѠ-˳g,reY8w˛v,KSj+6+β0zQxZuPlB~y<WɇdI 5)^b
+tRfx@|}gO>HrT4̒NBEZEdfi|N3yC$$!C{u9iV#k;bb.}EUʗnQjjѯ7kU|#ϑnFj=&_f\u=fؚ.]%e#[wJl=ЍJm^ Εzm2o=xlؤUfrC( Lׯi>Ev(]T;Jjrj'Ib8R(VOsRAZn*t#c~hsBOLNH^r*4ˤA/(Z6VRZcdcH cqv76Sk5JEDH2X"0: eSө,v̂cLE^@S2|u8d>>GQJ1I$<8ͦO#&N p4y"@%I){9um.rh-bCl:Lʆ^ݲ_5T3FUG)4U0je8HSpcULlS"hY9Uށ3K{zB`dF 0͘aՔ	BD"V#bfsУq݅rJbz4zrA؝'Di`XQOu	DOcm*n yg(9nd4{k7'wB"=6,!ӔcA7j#čsFuR5<?jہ&{]"9xnkϽ	'LЍ\Q򜧁OdDN&gjO'bYmrɡWE>3NjIxrЃS-!4ih]aɓu6Oh* )[֡CmY׵Vh^kU|Xon'}+		j
+Sx.aEó?U:ЮrKj? v༥3/ej[OwVqgĮ*ӆn٧!	e?Y>/aDw:Q+5lo4Z1?MzK{h7vU~wk(è*L	/!K38uT@B%n
+hD6f)5
+Qn#U0a$bTJ:8M@GQBY/D꠱;,柉ds(m[8=kٺ͡ꑧɋsD|1xC"ak&-ʨd8IՕʹS@q 8?Uˡk%'3Qae<c]}Tdk<g"챉B-=:XW<SEZQ~)%G˅"\qj}9|ߊek "s鎏S~ 8Z4I=⑾lzsXy]?;:t)	
+i"vlF}2oaomn=Qq|X1fɈJW]b*ZYYc
++$,LQ,{a^V̾';Qqh0λS5;sY#5-%"t54R*z2Z^˴)%T	
++n| 'myriԥ6O0{Q P q2q<KS
+HOKSKQ<|vc~,D:D̜ca>	I)0sPL*0m\Ԧ:\y/VM:~88mAoQƑxܵIݻX(#0ME{O2HYR$d,qOOZߌ$.ψ90Z=mDx6ىW{!G{NnML<?Qw_m~@9#r4VR|}Eh=9%h\rfC/>41k+qc3dmaq2(am̵V7R4ʬ6)vg "[oz|y!}JʳM:_!X什ii=
+>LsnT)5iap@w:*"76{4072HDIl{j꣒{'p60ȕCM߆zL(ؓ}wyW<]lMt'o+o.v4Fɰ^Dds90ޤ;}Zd"tOj:DPRo~xѢZFU\m!M,JT<0<@̺woQ;3=j	4Ud\`_1Vtd6)>Iyóc:O7f@Q}ēω[aZe?A&X x6Wuvı~&''5uP *xđپ	Yj 1p
+jOm5fM̲':UHt)*2h{. : irvJ"ÖHl_A}p;>%j|: ZyhRM*
+=%lKYyY6K/>&@|U2b]09{}+2.
+o`طA,*PA7Bi+!I4?!觃(Vms|"e~"~Ciȉ18G2O DC[wk,I<b֞"^I<Ɇa.8FyǓ?
+<ruO&Ψ#sq7겧6,ڪ^]Q(G uN+ۋãZٜ}QY%K:=5E;Lb+nѢgi\)^A	3]J+8;oDoqpaI=FS%pMYh+Hc`lk7MPm$5/qsfVT3c> 	J^>!
+RWa0ruR*6ɔ+/߈ju͆H6A ^pP.GQtFJd;b2NL V^ӆ{j~h帮Lrfʁu	CC
+a2_`Ta#اޅyR?lCw#%cT[o:[^Et7ϖw.Y䍴sU/؃	]<XΛ<Zˊ+"Sjl*LQpwcePKqZr,s;Ne#fMS8@A	DEdUEFl)N/)ѧG4:% IhWGȟ	G혉^]|<^?g5ÊOǫ9~36ЀZ21ROU^,rdd@`9oXW	%uW<52)Ad$E2WQ4gypgFP$鈐j.AtHZѪGi6HJPAM/הzUz?Aqnr(rOm*In{bD81Sv>Ղ\; Y(10hCᤳ%f?&a?D^8ԌߍH\$/kI.8LXJܣj7rܬ#8~RxaG{7p~gaP6ܨ] ҭB :x*?NP_2P&0^8mQ/2Z5e`O󦐨9ݐ*4V٤:h@_WYH#=I|/'~kIO 'Aw&M_-9#z(S&L({uq`"jdі$7*{'K%q<-'qPhrHh Vg\	Z1UF76HyۆUD>ј;vn~5>)Zߙ6"~0	ËwګkF(4S;aޕ+6Jɻ٤yd0# &ռNhBTZj	/%>9tIDWhF-q	`/nr0`ސYTnJJ#Oŗz7taweH=,,u,MnffoF	q7<Fd,ǆ ?($55`܁'D47]Ft<׀.4+=$'HIC"r쀝wɜEJP5gOS%%$zQpu+H#
+L,rՎXiC+)v|A2#&H3e[NqFqޚ3j{/ųPå7'R+ *2A3
+=iOw;EMYo.hQqh0p:$; :8O#;[۲cpz\*PԍQ.LZ3VG"Z&v'3L'"{: =!Z6tmK6c[!+Gìj	oU$n&8H8oY-c}h嘭Up9B9o20\}n#/'_u4 0lVN)jvZzq!lJ's"\gulvW=3qņEWѵV˹ܪK۔q93s4N9=OQo.7p<Qece32׾Rћ'tu!^Xd;G$Dqܦ/{묌3Vnt|i pwֳp?==4[;$޻iRid\|
+UW.sI:e{a02-W[@SwVqLc|1:'eNo|<U
+~~3Bzr`B%ϻ79!roFrUXHbG+1OD}b=m2A':2
+TccQubS7x`9	kpS}p븞&6a#`LP k磋񲉿>B^ɺV,t*љ}`_%:Q[%t! :7	WXǴ("+AA A!0Q!]'O4I\γN9=g^V	 yJhFfjBq@,ŻǀJ@cpXf@.;2^o<;ZV"D[l-?U*b<d/.rjCu#YǩL!ah@ Wۢ8:gbx+bq7	a{fKغۏ[J?!־,԰,nj0W6ͳzUfz:ïwL{zB`?'/T-D9wS~]`]RU<X{7Y:+#k(T-LLA7Qqܨ%$NtƧ
+F#bFC9bpg}PU$E* vs'ż0f@'yLl%(Hns"sUk~^]q
+o{abC6ZMKh/9&@|>*TUfpؗᓄm֛Y_sk> >a~}H;܇rջ{D2J&J8!?+v`h:Ăedˬ)ҐÑqztcґ>dNbũR=̪BHq]]Qhi]ͦHr!qMRI7N~|emC1tQ6'gql1#vXҔ]hNpO]Opzx~$$⟞v	>JW{ʯ8Gt'< tɢ#/HBTQp }H֩p8Y"{+=(79W,Q+yyf.3NPu(Ӫ\1Ábl3CIdnWK盧;i׃2y0Yt2tկKJDek85׈-! +9Ŝq娐C~ӊqգrj4y_,Ա篶$/TEni?:Zףj$hbFU^H
+3LX5awAH8"dX`uGFiӜ/*"ίP:$tl	T*y|ehK#}	2tB͔+	t[_R^.ϼCLДD8'-)6#0>_+M'=/Օ(vV9[CH&CMed<ԕ+ņ~l*Xά3Zƞ ?zLIh'&'0+{f𞱨6bo8*#c#I_IS gRXKn;{a 7dKJY\WYKb]k<79yć(^4c?!:ɡ7L$E	E!X
+''ԘSx ڛ_I|ЍXnl-zϊܘS)]tb3)TZJ]CS'\46NaGʄ@ܛ\RP!I?R|p[1L,÷G&Gၹ.;$joV%sTepz5UNE7ߔuUeW7<뿒!'UfCR;#Mx|Ir\g7i<H5.?*"H`P>H?R*FqȦqߩSa	I)t#$'-!.'ߏ^q9}LU8;𿥫͓a0~h$i/JZ3
+
+j7/a6J[v Vb)SqZ)㈗u,lRX7k2cjpZ2d\VzV)u:AE]^Űvh6nCfCN.caý35r}e;$kNFR.|kuM7j\]mexX8D5LHHR`t\a|ֿ\/ٴLOM]6du%	3WՈ.=1 (3??qUe1g6]"`7YQN:^=κhU0l,-M=Q
+l\aS%Jm(ꑯcⰊfpӐ`/J!5b3
+ڄ-9?z6<VdބjE9f)l۲^]VI-VЍLCh(*I7NbAg^\U0GL`BRA	 T#xcuRi4avC9SI#OE(߽3/޽p[˷DU,9Os0@0գe='fp\Z??x2T]^!uh|!U]eW/</)ւWHP jH=AUYdQRh<7g9h6t4X*aG&KQm43iCO{1wԶG6щCpKHyi!Rk|V
+%h	~^s)iK2g~pJq:q*	EU ,ҷ1ۑdUPǙL%S*\V
+Yߔd7%ּc"IĺCCʦ5orΨin)򧧧-[+0/$7w'U->@}wW8%ԥM;tdLnl%S8d{zId-r̛^mGZ{H>-槥2N״%v-#tp.g	rj_I٘Z6sSfkBDv6H
+&:' D@3êgjZN2G:ۙ1j}g=9D숱v8_D(GȽ4H6M.kT>@&3t6sCm|s P潇oP0pVwFͫ ϥ"g(|C'Vαびw8zxo90h>.ԶDY)itjHyU31#{}Jр"{P6d4C<|pNY8By~r3xLߊ"E%i
+NMN>e`.`8!Q{;,hЎl9/ԋcrQE_w·~_%q<m
+a5<k01r^J`L2)`H	/7RK(В։{m6%&vE	3<1Q$*Ȏ\cj<C7TLg!~l& a~\}rϔA!snۥAo;J{G+lQy	hfgpw;Jٰ*vŰR,;UMPߊdl'bZa`YihI/`6&&nv`.QNq64$ZC:25wX\dǚʏiAߥɘ"6q`jf`(glWZE̬Ft4Fj7Frޒ=46"~DH|(Ƌt)qa
+SZ7v=#8 #Ab=n8/ҏSvubvN-hJX$֋ktf|\P9HN]-Xs>z}N󜍃ae16Qd	/4gh8yy [	)3T[2dZ gʖ)6O=e+Z\2mf0"XX<IM{!o&D4MY ~\Oe/Gý&!@rY /q6H"`K7	CDw<ʇ!RzD(0+'5fC q `DYs43R
+cHieB>ܜ*.Nt9"	mF~{G/YЋ%dƅ$oH^ex mN<Q%MjS_Isҙ_A}nT#ԝJjb1/M+oodJ"*B{ǗQ*&Ve/0_skbaE:YҰ<\fՂl\3P(OJ0BCەr"RCÅNy犓c!b$Kۧ|8<0^HT$qǻ@z9S鯁X,3rdC~pvyX{Ak(}si.ry:4NnQK@\Jf_Ǉѧ'y[ECHT/ثHh2Mm nRrZ0-ACKF$srsClTE9k4'[8s]o㜖!߳MAC$j+yACX֍綻֨w_By'==5_t f ćatб<qŗ]> x-fZLs{5ͷ3I%I;t3D5xmH*i}hIz"F6:'/s}-'q+RX*Gp>{&g&lYE`GP܋OvVqmr:x||q(=2.f$f	$Cs ]e]un3QUHu^BmKiY=ƈ0*?尠g8*Q(B25>{1YjhEx	~J@Żk`cۍx*&$&./D2NQދɩ.s&#T텵/YI}@;*F3ϖ^p<a$}4TR-Af<wϲsҖAˏ{^Hryuda_/hai"
+k]Xԑoӕ8V:PeMpm%J̗ȝBхb/Bu>P$N5S	w,)GEer>l d~b$T$ѥ9<
+Cwh$φZyq=nO`Һ~O/BbaBw=9>JVL	anÛc<\&~'咵40Iai罯"k$G4/+gBlo5'o-nt{W=o5hk414!^4k>SzРW	+{AGxf;-s)1[]0ѴP$#%7T9@h%G1#h>V^r} rAv[)%=[%	x+Y4G@;P݊b88_'OՖ3{T76|\+CGǲT߼aAб|`h3pzԣBVs;e%,Û^Uf'JYKD`FFFecm	s4%WUF@CiA Ow˛uBA*:[dX0L@Ψ '.V,SE-ON?Q]DPɍS$FSITT:r~ᠥSeҸڴՒ(%Gheo}z#A4tr.77ؽ7XueS rc噑lH/	)$bG!mg2I)*:w~j.P؉u|=QqyPQc~V|gl@9xp~d3ߪ09Vlc4`::,|9TȒ+?=&DEmmB(Nrn&Z>82i1c00ͤ\ݰF%ō4G x6<t_b~P;EHsGC"٥0ؗI弫yW:?rJ'MR^Cj2~,ai;qhFG!0WyIJʆDA^`͒ykcZ%9KK]PCء++
+:FXF>֔
+HJnGdEֺWJVuw;9@5^RiW@PĮa9~H4}BFAOGw!~fH+s{戢梒*Oj	?֮3&'"/nY)qQ;	R26>O\=g/ӋGBk>-==K^#¦dOa?p8,">:z+"+O)iCԋbj
+(䜤U%*wWFČ8P!ל/va:DSѮ%IQk9rIcvISU6='h"OڧSN^XThu(<kpaQwXrk DBl̤,	N"R?sj6H\h?#o*VWtܣJ^zWgTSZk4٤Wǡd*ɰ($K%ƅSTQQ59hCU	=[ѢStPZܡX *{|B0'*'5߈b%`rMB=>E*eźv6,ilmz>.am!Qx_Km3grR.Tb=q<6TzQiKMeg`whd:	JBK>Ȕ4@h y!X?Ò-.{~/>=v=1tUya=C	𗷽wvy	н@R؃j.a/V\<З2T#'js;A> 
+_uAg(|%3ܜ:ɬ0p-=!6ec?q妸aCϚ>PŅL8Gm/9y٦I7IZ5S}XXYe2IeZyj]HX(+O2Y Tg*Q
+#ğdOlde1sQ8*p"˪_ǔ%$p2 ǉ?ľ@`qrJr~,HD"_|IaёG+Gcj뚫9hPw>]_q6Q&h3T\5J9"q\{[@1WkI:*G1QMA%,|\,DSY~g@krʁ0HIlFh̉OP"9qijIQcÊRU=%|I3BSBsՐ:a+\	`?*2,oI?ՌbNrRQ_щUzN@쉇8]s6RQuZ.{tF\|j>o3 )U\h qYڙK%c"x|z,wֽ`l̙y/#MjL(+:H8u8`ܝ=E6R]x3e:"|Z \4&h!Y-O^]>J@t@-U7'{)}>"sBJ|1&⤖raF|ro<?^$'ql~QLfܽ2So	>󩬇R
+)<H`3u+s-TvŇipcVH󔉧{~1=1 7"^45&*4؂je+pݧf-P:	QAE\W&dmvC}\7BL[!i,׀Lʭ9QϤݲ./4ic乂M7iTXdCP%9ikؼ3Lz޴?D`_Imå}4	ǽI*o	ڨ*2$ٕ O JF)IghB;KJI,#jrJ&_7Q>28N#`DI^Ʊ,K-w~#rR[Qbt֔Hg5^ܩn4 M̓O"Rf Y#(Htm<ЫY	db`S"KzD0eFygSw5>f'M:,B0;ODNo&&M~;b}ON!#R޿cOPi8;Lh3kXeިۿ"*>ԲG,ּFK_|qv?-dE珝/+ =;ۚWSfN_d֓bv."li<ߎ[4ӭ)3S(ۨquQSkܶikNmkEznњ/޶ ¥!_KXpMHnKLs.݌&?޶Њo fs5JqUopG{¯ _0No$w-{|;Ӌ7篿du?A8BwÍj8-I>=?3h~7sGКjDD2꭫	Y9ix'6XY1:"z2B9y-b9_gaLWy!![Ü[bN1Iʧ47f;&Nf+eJ;U)Jfd H'el&{@{bڹ՟(ua?و+#ڂYK<f~x/T)waq䐖U#ΣQ<9WKbk.ʗ`_	Z4W7K%UiLtSi 8݇±K"c`r3%K_gn1iyEJoZDn *Gྡྷ7\-#oG$WqE `;!x߼xC1RDt)aawSrJ}QQB["<G!JT˥E<m_F(z*:}@ZR(6y%[e'oonV]F>܄/Mj@Jy$HMKV?rgJNc^*U8#IZmk0B}nX=l= ~b	h疞wJ Z?b#qa(=;nޱyЭ4;vR.yr6"blMr87Û&`ife7:樂PgH1܏^ߓtnҧWR*TMӆɓ QH s\UaqC.$De_L\R/qMiYhqZK7MV(KfMf5Ա4KG(z`a:׏WL)أe0wGNe`.nby7א X?Dy7}cV*Cx;Jy9#y-yڥ̚^;(84${m|!ǣA]@ĜO/zK-#
+B鲩eBln9'9zjÅ/@uS*sԆZw/:K0Scp
+uBƢCx_Xf	E,33X0Ohp^GC|Nw;:+heDQʲ![6|zPwUg?yFJOT=UzcolI5[Moe;;/0[7݄KtMQGjª>⸬!	͛\mسsGa_:2R2rV ]k(:zt.I@_c8d&e'6A6ި'mFB
+%y;uHeq揷uR\dm'|imՆa6XkuPIFBkث,s-ÍD!:6$gfgl7	Fg,7ݺ7e4 FCl'äonU]Tu'$lru8Z͒H/]aEWn <&>^boF~a	Uܝ%(Z70z5+.-[9Hv#4|WAkG˅XoHio|\lÅFv6m?썂1e3MEbX#[Da]ĩsLud(Q.`ݰ^sHw-ԌZh6p>Pu:$C%*8y?@\fBš|=m.M {>LO-bA8Y66p
+Jd`k7ЁaT+bf:o LFʊ÷PTDW 2E\O쇸p|v;S,:~xho<M^,t`n;<DA<xB}\dI*%(yg	@T5BomK11#2G"p&gjy7$^4ণQwsa&HzD랣BՅLm4.Iqę=̈ƙs>7tTEoQkʗPk-Z+1`W%ͫqŔZ,4skWck֣*t`6b^*lu`nBd.1he*0Iienw7jJ8\qZ!ګl.0jXMo.7׿0 b]B8l(Qk9VKEKO9v=r$z}qRR(p]\S:(V 8pĪ-!cDnh_lepFypx0㽴6c)>#DRߞliM0%]ٕWs\p|,)g̃^e8[+'mMHuY@ˉu+_ժXN}CǇ=k583|Zaa@O/z"k_<PDYˎ78ɼaFci첩%SU=Ni\6t7p>~3^to+VI
+ǈ;NmSM ->|8عT;Ǵ~9LeOK7rHU"dČulDu!*`F0r*X	+IsbL$ 3S'9sXX\S+a8U%݄h݀''qOԟ@׃|?/u'q3Axbgs=VzA~F!~e{!I{'1C#?͉O'8OlNQYϚgEg獳g*7.!Ȟd{HJax4_'CZJP5z'~Bki+/.nb+6̏e60] t5-Pb=p[X̑rMx.8L~
+ՄMhX2kn
+1KDB/;m Q#E|IuRq_U&^ekͅ)zM5!vl?(pgJJsfC*6Xe>jS͈.la֖HI^-J"Y^}'6aAAAO21BcCqoUùZ_62XW`}Я5ֵ3d O&L^I͢{l6/&$tB˱%e||yJEM\ZV縿}m!6mPfVA*'end&f@ASe7@q[/P9Ѵug>ꙏ8Oԟ03ˇ"4-Ug0Tz3 C84|AwHi\F
+6qopz:V[E(Pf5t$pna9ZW6lI:~0^G{hҘb/PQEcw6ZA=gߩkVY:4G#89	glmv#?pmNРA'ܘ ^m^jc'S?mGzCXԼ`}JՃ6ۊQTtjETY
+ym,tK~`{ S^gMsQ8kوZ3jש?܋Bc2q5ҍRPM_{MbG Ebh)q`{jVL_6BMARW|dwÈi'ahrπgKaOB1{Rbx$2D2FD9N¹cMuf;HBwI<G#GmXOڼ9ɿX﷕.~;AD}ǄGrNX:YiY;!ړp7M|i±ִ׌vWŠ7jnG h=Upxfϡ[=:bTܵЉ׻. ؃. GP]_I 4x>3莺aJdn/gBXAҫf'ISbgAΙu78rGr)zip>P4Ycx<bQ^"<?De!A9- ö,#T5ki]:>^^MnO#ذg*=m셲B|>Usjrqkafe*eg*5聘iq:Tp{bϒλKW۠$6:rl;P|l8ie~f{u8qXu	W}q9wB9??}|]oL?6CK"m	D|!Rg TDl}zSJH(;2lC)QZܿD Rp,8AgX.	qL۞g$zKbPYߤ&q	;Dn"C/7v/gӐW\+exsZ~#k|w__	 'tA@/Zy}tt#ԃ?=./w'r'Mj
+|m3f[y(b0mIZ(
+z`卞v*#{j'^j[ZGg%g2iԺGe߽ľ^9Y	`wrSc i8]ZvަWr.thZ3ScZDl(Y#'rmB,>9WO(+A }Q=:9	jI%9'BV5tL;Ǘ&fA&j&ʱEJ_ Cj->JP:Lh\y	,ɖxbjH:9-H- DD>VRp+DW=`xqajG&7soyy/2UX~! ,Xuևߜ/!/ x*_w	daAD8P}8btѾ@	6:*\AH
+ Ţp]TU+{#[OE럼}9!rXX.$rX9y{@ŞCM EVjrjpZ헚5!<f*:03V0/]v%r<g:}1]T>cH5;'qvM&Ep RA5sGEl*L Tavm1Lw]{yѓAkE؂-ȄlI~n~<v:ޙX-76MF*28Ag7p
+r~{k 4FǄ;+M؝&kc6c3̵<uu@<u*e1kC"70y8=Б -vBLZ_>!^iny8OL&v4GF8rWCxGeJpwڵ;z۝A$<c}R]rX"Cc8pYt'ד.?)ۘ꽝jdy)Ђ{d=2tњ2<<;%5 JnuPUKYu"PeпPgz]pRlYI08h;\zs#$_êXft|] tKqAbnxԎGFLD/m{etvYϪYˉn:;4sʍ@-05De`-#63#]\xXrk<#ɜܺ%_r|ZnrW&JeӋ 8{>^U4Hb믋D䍐ugkx(n%>0)o6Jʤ7L
+@<bB^f	aw3aayhƩpL957$yf0-݄Owqf57G*zV
+0|E+!H';VDzw	+ө6^Q_洱 u#;nذCd Y#OH6*V[s/0"vf>IW3_S8^D-	2.~r~=TعZ9rᝪmȐh$sq>$Ƣ[D&%vrUYg˾.T80kjR;kVOJß!
+͒`R(6Y?u%BUX,}x]'	<R4>H{kly`).N$tӝUAg`jocM[Y--qhIpNpvSx
+{9@/Bz?G`$2/\~߹}gz\F'=G# 5K:j)smT8-S<zܝ0G:G4y휏9[|FƺSԔOA3ֽhZ~bGGĨݝuṟ9J;lP'5 %_0S84en:-+
+OVx>rLXl 1|p^a.1Kܱ^i##+#=+*{wh+F3nT0hA, -	eЭ68S<0$X)}AIV/$aluSŦV$% .a#F
+QV*h\YE)PRRDdl\, ^(JYN$2j(Cz}z(Q¡l~%,[@\$+@cN*ٓdԫ|.Bȉ_ދUyiե٥^u}iə^@cVy ОYNu7SzW63>Ϊ!|P%daOPC}g+̯UƓ9MWEWivȖtK_fx$Ol{=7ey܏n	嵼ewT;Ө4(hw#.l]aebjDjҤM\<̏yAwv8x).@{ܣf/gyASNmpe @囲\7Ob&5.AڞfVx
+S<ԄPߗLٛҼ"ڕG &͢+7S%YFZcH==Aw$9<{P:Z]{ZW4cͺYzIȡO;O_^4S``5#EX +Aef-k1'攋waPQTTZwxOC$ל)Jz9Y[cu<hO(RGG Q?I@>%y
+63Рnbi@GͺVg$n9(q6FLQ_/DC fZm	-]ko_9A^(
+#
+x
+u'8pB*"'I7B#Jyi50&zD7U,ˊ3Um\uZ9Q~d 3{|<&1aQA{܊_ZWz~S?o]!:57-#]ɴ`GRphX;I9s}V:0I<OJvP۴@L>[8aA3^h.,ުa=-g!To]C̹=o17<dgISQ&yk6;uATIxF[.xs
+lyV׌nK&H}Dc@C|n`0jܭݎ_Hn_5i@vStwoĲ[Rj`ԁ{[_K|(&5_f<u0hђ'.]ChLCu?>Q$K!QHh_TJl{ydU;޸X{ldrE	WA맘8%LN=:ꎔU`~[wU'Vq~olm,νPxȸ?'@%	>RQ]ϭ,Ӻk[p'4=^I/oPbLxxfHIVgP0GCh)[_r(s-d \LKͣ;Nq{hZD8(`on2Qs2pb&|?aviJTB8ZD.7e/V<lYuM<	Zs8uUsTQ8>7M	+56h!jm~.x[f4!e/V@?Rjb,JácX:ڔ[tfD:jZl6{(ϜYVgG^qoU" 6%X7@>ϥwg->	|HtSA8iiԵO>-8'nXq8K4*R9*Qe.ؒEkybظ0)/LwP̥@l{*̣g_M+[#-]p
+ְ]o~LKLaRNTɗb%fyˍp^QGe}&dr?!z߲~%ds?f{;pXs\q0/>Pc[㻒q?U=*L	VX@Y[=22~V7ͬ;1fo+O5HD]:j4@|ќsD	kCwخMՇr)lSxu1>ſ|.~aL)Pn&y'ܞUYSTSu%Ʀ:2rT^?xჃ|t.9&RҤ@ܺR	VO[~8<#GwuD΃1?`gVVBTdg枵&-h\rok/V9RkA5a(&DU륣.%/4)Q4iV]mB?l2l^c2ه#̋ӄ7of$U^EeQ[GH-=G[ur]@p6Ej˘=pZ>4kW
+M^Kvz	:ty S9Kx-}8gج"sx;OD%c{-CF$H(ִF	~̭3ak	cObE2e: Vٓ8qq+3>t,Og[_
+*CJ-Q[ӛS׋SOM{SYr'>ш^֓޳?\߽~w2TN!~-P*mtI:.m{S& S; t|N_IT-?upAoysfOHQl7OFHn^fu^McuGLn
+rj>)k
+]>+z]D0y)usjY8+Ov{) A("b	t,Ԗ*& n:}t΃e8zGR^!W{s>(cP4\O񹌙κqv.)?.>/^Ћ.o*޾w넗<P	A	VSr	*9ʿsi]r{x)zXMt3 e:ޏu2ڼNDt,l,8.þ'#kNI_
+`c$ӛ%:Me
+hdheV#砀SI.VH<U]EUKW̧	UԱ@R($'XީUzH!=M0.Qy7hޖqo@F"R@BY]^eqyf0z<(Vj hװa#YPpak Ŀ3zaɑӺAX ፍh-w.q#%͎:ff'0)E׊\X!x}/ VTYG(<.^˳GEMg\;SU|C w2%0*jẸߟv|DA3Xsΐ鱕y¦<IwI1k8DrzN'J94#vLdZ:2YR7:MB= dfosHh^iJm+1=PAլ1@|G2U*]O̢׏㾆MJ+mtRR-c|%FޙUP3xoIqf1q2+>[SY9wT.ҁ>YQׂםmLQoӤH`xDHu$4msۦ;_eKjܚt$|M[z{Wɇ&:Zd(XDb\1~ L6a>@Fg&fq #bhƽN<! Bg/8%S3D&-kTaXYyl&
+lMn` wjiʶ >jK6rmwM{SkNsXTO9oC}Wy%*_q64].wWb2P:.dLk *y8M!ήvW+UP7H#i1	wRtp'{v*6YJYNkߕV-̈Vaj,SUqxd,&	TJtRW646S{I1[4t#e^pmiD^8q9l4SOODAw2P~O/.zws
+343Q(C,xil'I3aU\ ƀi@aNIjS5R@62 y
+L4b186\ʬ,uqM5f#r^j`PxuTR`tVBKEIuONq:9H05y1
+lE(`]]wJPJF_/~R}J/'OZjo­|mo*e,:jCb#STUZRVmT΄}zؒ@h-'i}x9\N[fMl;:\fgaL -	?|6lT^t%؎g|qF|V9[%CF[Wg#ƩuA-GSU.6uEwh2ф݃; `BAv-VZd*i
+f	v&KVUy9z굗~\NemPYK,A> `<z-'ׯJ=X8kc_(T8XjvC@74d&__&d~o*3BreZvrJoŭ;S:jΥFZOq٢| M/oZYJ:BRlnڮEMVVՎ['D{2Ik:K&Gs/IKкԉjH=WTX|]$Tr7Mu+4[31֌%]ۢ6`en|
+P-X󯎩߮e1g_`@4ҎSz8K}A~V }SiaS}X4pRn!z<hPj[B5bחa	SB-e4Y>:NDj:f.eQҐAD1oL1ngAT?er$o`;-vL"K-<UyZLw64Nǭ.|Mq	v$n^:
+թZw[X'n넿l2E%8A̟ZHآyh &AN
+8)̞*n*I$(5YsTVF[3]JʤE)?(:rЙTMBjT)5XJ|owзh1hni*lVB{8,"֤A6ǝ)RShAV8й[[՚}WXb3Ly*cA*b@\hy7V\=&-&#GT>i=಩V|Oj3"| &)!;?!ne>+r:VS<I1S &?
+Z1<u+*z"kG0+hZڼ $5+Ԯ!z;Dׁ=]8DQ]XtZ¸{UaMy,rvjD0h1&hrLR)LlkePpwK̛YFHpjB3%y>%F*Ha6H~̳EZovn'	>;]NX)hBB*ޭLtZUɡغ41ڮhAu'>!2)ھ?KPa}E]χ33^Ps+
+oi8b;[-<c~4K*j>T$[J3@,:subkN=Gol`N-rvKeC\ԇ/抓FH*'3vʣVʛHBd7ZBi8.|Cݫ][+971QhL9syJHAt[
+sLFj&0ku~仳dPC-ӣs2U&2:-U#4d*B&KI*EN=-$*=44kV0[!	5"iɒL('lZrx?^*(DNӓ <L_5us,O\{3fH|AD2f+|8$CN
+V('^N*'.~{.:F-_.>6$Q/H6-fA٫[pΗZycӏ7H	Z y:^'<M
+:'HDuj`:v8.d\qlV;6يEECYCͣ#t<a{6ըQf_ 
+Vk'/[N
+mxzҥ[Seiu?޼?"|aLqmpkO%UV{4L "!XT̺hoa>}}Ȉ!o]eg㥭-_Aw]* C),[&,cgH4Rni /3#)V(&PxW>g	(M^8k."Ml*-(39D/fUP+?KW4\cv]X3Zsw|%\&D,r	MX>挹&tQ3
+tA8)lOǢIMJf˞o#\5vrOHb[rJET_!OƂ4!=gO*Ïf	Sg>2P&2s"BD{
+kD9oYU.Gpn	W^>f*sNs
+ 5ٔ SϞz6Z^_>S,-$au~ZwϑL%)Xi=d{waM9;Ik:D)Tbđ!yVG׵(*zT1mbY(lڞV͉ß)gC6<Hǆ_'H'	ZnKeÖd0;cc\NV?VpprlA0iO;wW8%C(Q4l7lYPd#V7m .銟ѺY>COuԶIIU^PpvAT9*X*OL(Hq^1#q'UcjXVʮ9w:yPn8%Ng}NLsnx.X|L=[9UEȪzu&K	9ApZ/ s|97BwnǁQ|E魨Ɍ@8A`nƞ3))A'þe{iR7lՇް^fy9x͈(ML >BZ /u\	^YJJ&[%@JWM4s&Ñd1t\VGn
+B*g8D1nL,_3ԏwH<<IB9mFkV~ڽe	"7/zj&UB~KXMT$ŉJ@PnclϚNLmf%AZ݈.nܶ4@Żeq76[4Z;6])c
+Z6ZZ(Ot3et%vy<$x,[[XT0a5KA.O-<_NY1s䢍V_,cX[6	וȳXean3M(ǉюMK4eba5^{O$3͔	Ct@C2uKOVW}I oS-[HB/#m\blAe<Ot~߃XO/1$[2Jъ'o>b<LvW8]Kof7REŃ!1?ѧƷzM
+ডHE7%l.2?wUtZAҿzScqO};-Xnm
+ygyKKS.ptǜ"<l-Ζ w?ltwA-	`E9_)5ҴNRaz=O!yx=ᎮM*̡-?L;m{2m88-&ܻЕ-+zAϲR2`{+ʇC~*uW$ NvBV
+!A_8?ӿ:ͷ8[JsȖ)ZZuݛ]ЬpǌNđ,yb+ FS`\43 (?G|\+*s6vi ld"Q\>03|"z2s-N+}cji"VٸUfkA0=bbg`Z["]V3crRJS=3O[OseV'=|UY~nT.oK .gʀTxw|يdYJ_͓b=RvN
+Rqa{oc&2]3{qZ gwO[%To7F\yKiQ,!`[UǊP	RڥPU:S}^nmRT 3*a:WQ1#tvZgR>i,qH%sS<7ஷ6t!c6)|н·ap.u`$d*߈S@8OL|@sMeȜz+(>!oæHBՌ\XpEƜJא(%@veZnz[c!M&Śm& l/
+uik>U!Q)ب͂>GׇGO;r$<8|r-+lKqwZA{W{pm,]<>q4A*[,=.9EvVzтdպ\\t-_؃i]#[E	f'+֬Ax l11l*勷-0ީ5麓dunN6;%8=snɣ,+krxIbN%,a6tDشJ1{048,+?'!BG[bC@}p9G2Eq{b'Oy8Txt/<?ϖDvOo;ZM		ImУоdS]\G uo7zI?o|Ζ
+GM@Y1b=^ޝQQ\;q =OQJ;[Daf٤R'RE@&:ӿyW/_>.PF_!|?D_x}{yO^?{ݫϣ/~۷ї~/^G_~~WϢ??wTOo?(>q5\-vVyuё!E^H;!`pg:_]I\q兯]ǛjGb IA7S؝<vmó
+t#rr<c$GH'=CxgJiTqXvI2N_b>rvj\lr{n&@%*?E6Qڏu$Q|αm"Buwc"U%b"ݎ^3!y4ٞRKq }㚨^)ex?$?Ą_"TCn}Hw:|RZCOb8>d|93EHWkzߥek]:#ybJTx1v'_a?dsC#`;3Dn.=d)V䏂8Ղl4A .*A6{ߧ䄑T71DO4Y,.B(wr1bfC	tɃοy GW嵗)HVB
+Ṉu,u[/Gn͛[C/GToGxtNhz(.rd:# Y*1c%.|DU5@gV!xx1x@O'Dc;7!"3 .r%WZ0SjfZ
+(J˔[t0@̀C`Ey-R
+TF۠9k5hڣ6|A7JSr#!ƨn3spB繥#_R['-jI-iW^)
+&הW<ⶴ]r[-IjDDR
+5|䩌N=n%@ND0}
+MoúFYy]I9{ᕨB^ iAxq.Rf*۹X_K:YͷDK$}P3e!BUؽ} &M}nO #'3WYF뎐[8kL^Vr\\tG2#|R^SMcUĳxVAXcsZ橜oykSnp*[:vB^4k9]k
+ϯhLB͑1V-sZ`<D?[^l76\cI/"ǐ
+"{LrOz [)/ dh.iliG֚g	#u8)8m>V8J)
+8	dUMx)y&]'ZdY?::j,XCI!mT>pM-55Y+m]3$DP&}lcW5~i>;'eH=ByJŦfY2AџamL''}ar.U_*-N8+zR{`5upCָj܊j$86O[h;NUVқEن3cQZl|/}g!7j C$%aYS)y✔:]:>̾o;8ؐ63PempDu]+ŗ1	j>([2:i9nӣ]us4DsN_vN?fvxHOS>nJ'A`	Eo	*ުs斱1\m	d/+rcA Pv}6$O=1XE0[>}bqN^^n[QkA%^nKmw4u)K	UT9`lCo,qxlmU;[[щR v)QByMf_tJD2Wt]gnP!nz곂Dձ#°-	j=ӃYz\E҄8lR潯ڮ̝TppޤaDʗlmYug3N¡f
+v'R>B`FOn­[e*ޝt']F_M*w٥3v4йp5|6 ~P"acq=L GL~Oş c0R53o
+y3a&eRM|A2e~1pJ:~#\"˺2K{<\k똍0T!Jy.*vzg&s&og]*{$Ƣviث^Ͳ2eqgT@avUl'Ĳdʢ uXȫek$z~{-A.Oа^MkuNPp*ԖA`(ne7**ޒ\BQ|2!":,uz?hMELCqlk(3d=uYz]Gm4cŽ3uv4ʲuӸvR^f/Z)"@P1c9fJ8g̥%%&EuNq4K#N*ixHzz(J6UtWvf>W)jjzCv8OxXZ80= ;djxX#~Q
+ƈMajo=%'8с\l9c#ƝPfR81R֨TfH8o)	P4~M6䬻N`2IcuRxpۖrnQF%f72-{>us_<}'-r:(pYJ,-R|ND'EQN="Ra;}jG=z\зxf1<$dRMݒ
++6=!^bՆvݎ+{cГ<\6\GFzn"S+QCkY	&A)WB3$]JʢėR
+Ue0F{ե7@,MWRhZN]:]ufnZiU<obtBMx1dݩݮb3C<tQYOlӺ;DW˽:
+wvsH
+	uPuy|:EIЩNgګ Ye>UrY#zƈU)ϣ]"xQl)PA0ӡr*jV-Y\TD$j	KÔ*8	N6 JUJ.x´AK=fF{3_s}6Ub󀎲PB-mA6s1ќAHHa_S&J0./,8q\t_FݾABaat&3b2Y6keTmf>Ur*/E37T*!{eݶWuҚ74ƪПgbE8D!sIڙgkm|S
+aBr0񒇞K!9Q;*mԜ6"^;nUUbc2{3*p3-./&1cF?Gr'jʾ9VY7=m|2t"c2v֡I5|*y826qr:c3KA&k+(]!-|;y	k ͭs"YR|ˆn]!K=YI6O8zCy[bGXX7T%)tNC10$8+^N׼З|t-ѯMwh	u~eU_Kbh,,'/&*|Tg""Qi		vtA8%@H'27V'_͛~YRا[ @L`CTKgisX5X3i7D%4u]Da6e*dSTR=fg5ܫiʟix?=;O8f[)uLb[?TLNc8r^{FXe	AE%g,~JXCeT6W7?giCvPfwnyћI}XUy.M!1{ELC~3w'ӟN NH,>~Vk$L ['GeKq_!4Gmh_ZH^*W{	3.ߊE:l$fx]V%|6xz"*60+m<HJTZ>QK#ɔOL1;CUbf-mSrO8(cha6lLF3<cqQshb"kMأtbkr,$j^	uW+j~5,U̝8j!GnwF$
+N`Ð2ՈK*YYR_V*ך0p1|h!\"H@`,[W9 O[i>P[g$	q	0CX\2sgWˊa#X*H)
+;T[l͙>uu>ߟW\uu!*>t
+WMR8&i/6e`dFGie
+}5i0m{	wbz6s/e wp4ѹٺq#r=7`j붲Z7+39ϧ0x&vJzܖp7F3#vAD"ǣVd{006^pf8UI\lOoY/	"<v8Fe2T@!oZS"~GI|?!i!tF!.ap`r;*$#嵜?`Cz`5Sr!α{*^"s7DNW">`=M5Wn7T1R\Q$
+KlÔjItM܆V)oDm	m7:TBz2|;y`[kjI_TdHנ{vOP=5n&YtQv?NTsN˨D VSbXkӼa|v:+=iFqI݃>:
+THv@	?SP櫕b#	#[ux<'|s6,JEY,89E%I'{pC))84T98	JNY 2'z;ipHMaQ)!|lb}PX+~)7Sif͏燚abJTaFetLeyxk
+'<MƬ22Z?b̋K@slDωJxE?@+?EkLuZZ'ebͨZ&lštmmZὓ&/kAں"*7!=Rǖ^[|RLYmqG#$ojm!E-gMb0$<a~\=*_)9#wp%)U'49oW)P8-=yZ	?a[y{PX5w,RU{-h.1f+	2R
+&>7o98ZV剩tS,>ZRGȁۅ\O5UЕ1&&5gZ
+FCX"cY"7
+5w&+E)7F'FjNlnf5XC6,ܙ ˏK68]F@8b8cA91;]ݾK?	lD%~1*YL0p3ZZt+L*!N80g z6ܭˆV]4SlNTדܷt]'j$쩜5=I̲yԩ [CfO
+s:ɕh>I*ͫ*9QAa5=̢4NdS^}}pR=R?*Ç|R4q
+2٠.CK17NVc>ܹr<*]{ qJFf#'Vb%4>/C|`X?G`)-YRG )ZrڟPT").> zuPu*Fݐ* F+f;49R7kdE+#yInpk[!ߌN.ܽJjioj:MmS4qY.Zd2-(hPR;n-Eߟ/
+ϣ4oʎկEݠEQ|j@ba<~_L5uУw*
+	ET:u2Pf-s$yQQi%Thv;Irb(CjjFR#gZѕ*mW]̺@5:^K	(:%.MS9HКgv孟#!ĆE"N)JK.Z&N4F4+U{>ZGd'Vj	QZV{y-ZGèV)m?!;!(33^;y|ħ$jCvbU|h͜PV௡>;)tIA#ƌ+'p*"Lus Q~CeoBQ0aHb{*Уa{JRMZGs*NIz:3.|]m7lg}wȕwcDIeZq;3iU{} Ц5@ZVd{U
+ E~E uvgЧkLGf)η]g-ä|A"rO\ׂ!}f&,3QoTXm߱=~{b1SEB.7Nt.ɺ:RlUߒ!~m97rv+'%셁0}^/0kDj+Q89/(5SnN'5pj'n̥jԄ4[C$X8Ւq
+1#s؉	$kqm&vB3Z-|9ߍ@jiP1!Zp.9N+NN4`f.ru냏4ٺGc*R{X~DAѵȊvIIs~;,/2n~@	%n8Y+3Xs
+K fB	y[S:Vдu7ix.uRQ$P%l٤%6ՄOqONBs=BrGgar0>뾕
+F!u3ٻf#WW0b	簨C:'צR
+8B2bŶ5JVN[H	2~QIIƇ?$	5yEd`fsw%#gyʧPJN-*+p.,;OJ)'uHC'-4;JE[55[TV%3Q5Phωa ?iE-(q~>j+緭/X
+"p`F^Dѫ)ң5=W`pukno(_}qsG4uwf%ˋd7ipEjB/|<y|@v,A<#ID%	@"ЋxGӿ׎tYx٫4Jlq rՓ%~u $r8\5HP_ru^Y$ P&IfFT4KE?&|br,r@x;?5uQhHZVqʖW8U>&&E ~qZ_sC_ ׼ ])84e@r_\Kž$@a>$,3N%/GQ;i]F@}T¦F(H g`ãŤbfXfoO}D#ӧuQ>sT Nz%|wBǣd{ge/w!1)֘lDbvy2`xy=Gf0O=+`ɨcƄ&lsc[\%dH)u|A77gjNx &obx*GI{̗Kv Uf.g͐͝M94B*,VMA0/τ.f3,9)O*m~:?괖<L<#lNs0\m8ǒz	wQi'>ȼD	Wt)k1[LJځV=6S*%Go,6`9L!wqZ?aSԍE(GdהS(e$iRrŉ@jծWGPEt8QՇ3/kU>J<HDRkk$,g9=Vp0d:GjXB])y0]eYs?9kjO0"&ϞLYE-+ө}ЭSDWY_& rJ:Ů=Ki
+봿2#]dr\YF5NprcƆl`'bUe6f%<	{L0J@Q\ٙW*@"sĮ}*lU-Eeuj7v=)T6V$L* a*AλB5UxC|&%Ouw3||:o~ϏƮ$n?,R=mne{Nҝ6ڈ̥}՛b?9	nO=Gt2o|ōw\?v4[pZV.s)iL/B.\j+Y'i#.3
+Z\!ې zu4DvѷJJ`n;B^אAu,JyC^(1읧~SC p$j#ɬXD flt:m4:l R^*>ƁXf?
+r/0Ϭ+NnYn]]T'j7鿵ٓ0\Y󽖌EdȠ[QB
+HAZ(!&lba jP f1Tgbi ב>mAirx0 GU>E+_+7)	)(/4ߒ/l 5NbĔ 'hF7;p45	;3ǸC-sh^2<jSWz}iPvTMB{ 8pO pH*I]bu/đquyZތl*ܾ+m"gPK%-ѫ_Uw59&dt-!	{-ġTmx'M0rjzp|z:[V]J,~F6t>qZsp/}-{rRz?[%言ҩ}C=b-GlJMe5P69%9sj |)qjդjgynj j
+F!low73ۈ*;;I{_K]IϹmK킢"9z8.IHd`lP`Z8"p	9w)&'{~ě׀ۦuV"8O..ܝ\x_3DR%jy՚mygfB`hoJPǻ致\c-GѦwgƻd	ĝɱq蓝 E/>I_@;XDpl	vq,Owu1OX
+rFL	Mp'=\0Qba:Ҷ;_4pww0 }V.SܳM-d8vy%^5`H%\y}c^+p }
+bmDcϡo*eum#z\>6|^NE\GbǊޡIg@r42/NAc|'ܡ|I%mP$iԕ۬j&8m_pٰMf(#]]nk@ENNI?xZUQebS)h=YJ+f'$F\W^w8Wƙlҡ'"0j⫐<66$8S+)֟,qC-
+.Iv F"e/ɳLvJ&e2:-E;+?R-7;2]7T,y9j@4% 풺<Qn1i:Щ׾?Sdh}Z^|N| yQuڲX$9|:مՔR,!MK{J8
+ȢցG(iOuZ;ܙ:|yڨ--"h'xލn2-JE@KqZ\NFōwSa7?G2G_V"2HbɁ&.g
+1*#w1mp0 !JdÄ t_:Im.GP&":%PG47yPfbSfN;-o	E8<$P/]%-8!ir?+@xSL
+qTkxz=zw Rs'AAs`a0X_dy/^L-^u^?gI4th:Ã-?JA!D^YClxLuMQD$hjR/jxZwL<;v,/ajsA+,d7R\1J.7چZү?95j`(%©ĶVKe{|eBY^r@շ0j Wk{	4ʩ!uq#4 IHc69x qpSoinlт89k~-OG'hrd\Z^ 8kQ\y6Z;F>ټ9fh1*8eCćC'1Ibb6	E"Bkoz?I=jJܩ]."ԶJR܌ kf.!Ka=§	"m6ꎅkvhPY Gs{kH'&I%2.
+TDcm;7Eypm|IkKO!	zm`G+$mQm_؂/ih@=o,ibf,C[Ib_+ZB+DLQ'q^Ӑkҋ"mQ"BIzPuא(!3_2H@V#Fm:1/OO~K/9b`@"O۰1`abĉM6'Tqȡy&RiS<W]PE )72hѣX^qZ.=Id. mH$"o3heլH|@s)*j,3#b6gDj9XTehGod;Ӱ_YXG0ru&S*gy.\3\XHc<3%nQD_DjJ^K	Qs3c r9uߴeY'7&j
+b88GLMa?a~(V]	
+Tj\QW0?f`>31rN߅o@qOmȇpK3"ӯO?d^SNL$|R0GΕO_y.OA$SA 9̵RkKH*t5Ri@=_{Ưo_mUhu-uTT~ݳ?-#w}b]{vc௃o٠#![IxS1z`!^m<L׃&+o"^4&BxEM7||`6o/_d]WQsǴKr-Oph<0*S4[Kh* A<ɦEn%(y9b+~(^TE:JI-@yx'-*\is|jU}'m.8cD'6Jt[#4}x->[p3ik8"oZ
+Rg3Lð"tXUځxN-6e>'gc8LBe<G^S _?Sg
+w#~qup!|0(޻9%
+ꚃ-ذN{&~bK[Yd4W[/3&]jL26)X#ҽ>""!֋dT+QHhN+LN[9[i;BvΥ(EXVSal䲕y'(/{0*vڑI'I\![.Vtm6%KZf*>7c\/IAjHM-HE#ayBUE =
+#)լn;/gԼ!V5u4jtDwr
+Z?#PشƐ?x-JRV%n10FFךCrDR%U@PX^}[dK@a[@3~}l[C\9˵[¦1-;BVy J0y3OrA.]I8NKƊNO7IRb!#DɝK-f0),dQYh1WLmƨ?Mftaks/܈ak>p7ۘiS!{CA <׍&yW޻rq j$1GH7`&p<~&Ӥ^m$pW*ebvԆJRDo|U|gTG~YϐtYFa~Bmu6YS-gx^Le@Xo1ZdLIQ}@7E֎T\un.p:M(آ1FE7lv,pml-,4``A{9
+= 5,6Y%a9{ʜE;Kms>cvQ^tCbms[y{fy{ھ:GZ҉l[0 3[S|ynPnifP+[7jfZʵ9sIͦ5]wfR\sPȑ|h}VNBc&F(C'dɀ%b!Ma+5EBr~Kh6ʺ^m'120<kqt@Q"yF8:I}%ƖE&viؔ`<}Nwmx芪kȆB		#I8"o0'.CZ/yqhۦ3&.dgjYoj~HAqEQ?D Z5rYM裲V-[X2!=G|Zb"AG8&W!<"WƪNY @)4ldU|ORP+v&KS0~v"Jw9CWԯ,'dzۧU@9m{E!wD.D8˗78	nq6tG>*E-+.EI^fJ
+\=
+[F|-\
+^2(@yy 8a;ƨ^vxMC:KeoDJ0_sxPB*o2:&xgg^ms@}\_Wd.2֙sOe.z3p*Tc	
+gx<$Q܏ AvMF$M59@uNo:/k"K~oK_Lʡ,,<īn -~Nl«7<q@JmLu<2~86o#Qfi')ib)HЃ\x?+pV;R@rd%<jvK}?r1c7/AW?f)
+mz6͛ 0F
+eUYg̠)	k0s\<GUM/im6Ių2jH^y#9=z*΋@n%KPD-ΪxyIj#.֬R)~MrK;'1aqe&)КL3JTq*rx,4(W])mWcUfR$f 0cD I&QwW723S!QaM{ZhɁ(n=i+-bLGkL׋ 'a*)T-?QG1K7Nϝx3瘿mfA#jރCeUD	b={m^1a46lՉ{Al
+Ǿ}=L%[O
+?v
+m:Gp%"ENm,2PGuWFMxaGEi1{ۙܺڒ*
+y,4qˊfU߆zs@}َ)e>y(!915Zݨ۵ !Jj$:v䃤%	0pgAum`T+t0˺܍3U=ߡDB tΝ|4m5fP~j~Rz:_WJěo|;1([,isvE:46Œ1hE	m/0QyX:0OG@a荛qdF1ǵx`5Fhzòw<p#V$8M,'&W7ʛuФb*.娝NzU\M/Gg>@;BZFRRݙFIԳ5|%-Gm~xDȆ
+1'7lHrDrl@0NBt)׊X`}A >D>̅/єm,GQ=!ԃd6,IM7iϯsM"o=mF&B(vm~Ր0:`:ib#ZTc#A'M,IT.'71.)MkRzQ~c^`|;QN׃pLoVF[@^4ܲGM?H)bQqeu])ʌ	Иٵ&[ND٪r䴠$Ign#qo'P t4k)ypoeruՌ;=jɮ)]]íc8
+̰|E3z_|F ۜ3SmQ	ƴHUY	־:rf;&El[C.;|ԭZQ%{j(e3r,+89>sMF["@"`d^G"} -sט8MbkIYMOd:	dAF1VQq7F!$ˠ. .S1q"<lF-mBq*{ӆ./Ʀµq]i!AmR0X	ĬA_Ҹ$Ḿ5L&I=Cf9`XwJop<an'Cv^~ÞL7KipԤMVMV ]DoTH~zaudWWl2Ђ5v"}i!841P7qRoQ0tO-Q2яfT&zD)x"(HTiW%ǃ4<TB%UPR^\#vDG("Co隶4_ƅts"rgҶ>ٸ}SHπ<vbTؤ?1~FOYA	9tB@ֵjFDrjJQy.H[3mKG,.fs+fqP)hmZ%k~aD%pژ,Vm!dֽp[y|VFM#p6>m/ ^Kރ54]F()i]8A>o3+ƚ3gg~ƋKs<[ko
+I3Ѫ =Z]^CKrj7Ā+ߣfĀX.,v\ERgVޡ{|LqWcZԔ+Sy>];4XV;d 4|vQT=@`kyyK`+vW79$LţsX{Gݗ-ASݰ^&Al%Ul_3X8FlY,C/Q(1Ͷ۝֭mӶG(q;ʙ>C0+yGڮ)NT2/xrO<s5^'4A1MǇl<,>^zl5CyQVy[A,=cCc.[^+>
+,5wђ/I_=݌8M.1(izV]ldU]@&ad$nE-
+5_Èt6<a}SɁ$/y$4w|d5fVi66A
+9|
+=/y#IT7)ՙYɽ{--i-fKs(yxszp~[V0rcZ꼂uP.6ZSCѡڠ͝2U>MX"FnԬk-d{=m8VNy1| q6|K&[tDG.Ro(ap@gݹ?33$vWAlu^Hy1|޴ao~3슻F~lR<K9¾q'!1 yґ`d
+u_lq1t/rivkx}MPMTDhބ
+ܶX+Pt\QE+s䢅<jF!
+]5bʶ|9M=6U茄f-nY,|I| *ޡ$t%Ikh(wiilj9Ms1?xŮL%Z#J)k>~r\P{Q15UQÏGOǁ҉k/\^Vʭ(}~;\p4˝*iN D(iY/@v:0zyw^lxD&OjvN{\sm=A,Rg2q&}n/a/GUvsŅ֮ȴ,Xdf.Gx&`h9= ړ('~?|dz^LawV5E_g?{lYjwI[]A(@/olx=>i&<Ag>:&A.tx<̆\L܅~^xMܲEZ%,\<yv1
+(k"LAi )k65{O(_Gg~ǿ럆kӜHO993\;%Zso=`W%EO9~O@첲bTI~̓:D8~y@mDG]⭖ϓzT_(Z:/`'*Q4:;	o?}O~;
+G~'0Lh?.B^v]w;	jɢ0Sv*TQ:SyKP)j""eW__㛛pʧQY]㉇K޿*{ct}y-òL@gm(LClq7tY\'y"=ֹ@{jYR_o|6AYΪA߽AaJΩxL҃%!ͯIŕt^z 3O+Ou~6O<=yk<N^oM=Џ
+)Rc1j _~K^8-:Y
+>j_}1Vd|,l@";xoOg}Y XR?W{"檎v|p!qڸ޻XTWQA贠Go>͊l^^\l	֘+ܲ<U<S쭍ҫ3Sl֯aTm,8/\:-&ŧOx;!;pt0Rzy=1[zx<'?8vq>كOYw|zGړo;;7ߏh@wR=|{̋^$~Ff6I3Zk|Q-`&TT4iHx/wN{U-Έw.-O˵w]=
+(t{vZ@J8Dq}=aoˑ{G/j~1vZa@p£ޕ)\|px^u/5?\x ݾ,o=Us`+J̗ciG{ɨqS!}y1ZP~ya#<4ñtg1ǁ0A9A-}n͹$?=`zv,_Lft˳fthѠEܨk$!sta3|AS ~4]"n^^rW_xs׽]Y ҅
+]O;ߟ>[KKc2#cH &|k<\^͡'/wl綿nHcw'B  ܆ccHx|v'>~uَg9ӝomQz.4)`h`]2pcz:uhs/} BM'?>7^LJ1ӝnrSA/zRn7%5:/D2ac8\"0F=mrdOq/b0=a'OwcqE r'xjpUC1:$JӽCZ.hHg#r}XBv<A_'7<-LJFl	wk@u$le5dXI<4.oo:u,`6<G(&QǷ7<N|S:z;:}xDkR-)u9ie:O;(Σ\tgOR!iw˒t JI̻'WuydEz1|Z̖\"8w7Xb,]mBvp
+~زXETީ2]=bI)\TN:
+GִOdwcܤ-M񄌕-t y]jY3vbt3;{<o=awoxޞ«㝃!``2)s!r=%Py3N6*N닚5X/q %e{?`1P\w`UF@#n\GtIJvYIи!1Ǡ+c3/9ƾv)s<9*Ā;3fGycF!{Rʖi^}X-w-@&'vC6W	餼/=2trQiv[=~/vQlf``[$i)ؤ<\۝EنSDE	΃S{)"%/yj ҸΞyhaՃءx'[ssz1+.;+͚oh<,Qztz.:9|^ڃ^EN{Y21;n9&˅!_tS=۪A=G ݓr0<nL Dۉnk^Yݝƴ>ߝQ$ir.qњwV9rvvut=h:)^̈́=|f%7mc&nQZJ&5usHiӲ}ҎU}R2YrS#Y[&ׯS?FS6CۻW,mr!V"]*: \plhUJVeSztܽ~'-28h+o6uq]L/k!8R.PΫyqQE8v<q|*
+U?IьoQՌdmHWp zbQ8e5?+ao"IuOgoUn~bb_!MAӎpgX#h}9(*KOS?7г,)<Τk@`}UTqEd
+YVdR	 KT.aw(G|_2IQii'aup_J-ԪV]@NW0ERFiGQ&_q1:?*^&t&Vf,-QYiO.*</;*Q{p=dZ7÷xO@xi谓Zq>.:D;OJ87qw\EgZI^S<ҷ)&Ҷ{m
+٢&O0{ػ\m2c] яg}C2޴K#&GZGd0S@֨i>C^Sf<ⓜ{ޑKTNWwS١).xdK~GR[TЋTCŷ/e}#zCyR~@Y|!fYoS\tJe^F%[ݯ]lRP2X4-V@e${zMq69g I9LOOxG<7iXF;+T\.?]5;ث}(DJ_ GmfwzѦw+p'-䂴1ț]a Hm q;?=SIgQM앵w=y&LwnN}2kq"5a],Ǆ'`nZ'v3u
+=_P9IOأ4,<EZą7Xܨ!s:^4M^1}}RJnRKh; b=.l,-ЅqH\N%p -FPE9͟ݢ!RoaڙLSYP7^Yy{YPcgG g	fCYǦpA}Y
+٫Ƚ43Q~ߒfJv:\*qX	>lݮc_qfowKfe
+>,nPٝ-w	Av_ h.&\UF_[ R.:+Q	NbÉ&-l.^wF[YUa7ݐ8	yİh.h5s`$K:OPꂢWIR#IpO0ˉ@	#^q]7uO$%d*
+~#ð	b𵠘ڀR@-b?L0p_4o?ft\.Ew^2O0qBd%fTxzAʱ)%p1qP=4C8A`JGeح1FxL`3|.iaqoSSz0YB$zňyy^[@0d,t)+3a!Hl K߅8q*2m#Z8|Z^_[hFo8% 
+8ajVv
+:>	f?m.Q9/0B9pqE0;	F%\!p>cRQN2QҩfWӧ8[OH;@q^6P-iɱAT#O`nmq*˥$P}lXa(MMlXjXu<
+8jUkp))7Lmx>f	ٺ9fK
+[XV%;֣8mm뎳Lq
+).;a
+ܺo3/I>/R\MW7Hۆqs7%	zfpU6Oj]v!5r0<jm#g8VzrOքr>!?H'JqWGy^/\K倉&&f,V(~',K__:ambcyE؁	?/u|V{Nuk~w	<.eAiثW|)yv8xN\F#	L#KjNS`WHc%9|7D\n;Ih?ާ[1dHHw^5Q6'j/IynΆ|IK)"DEl`PƤFO3 JN;Az+3#?%YNHTaǿȀ	OADb!p,,cj% {iRq!Rڬ	.MzAHƁd>++Y|{@&ex\-IQI_V>,ܔB	V!HD#f؉qݞ-tGbK\/ޡ$Ky);6e`wl'`f*c[/x
+\IO{apOAA>6aa¤iY܋ĝ^rJTQHg_+z msУ̀(z16_̦Mv;vS{~x$ّQc271
+-fՐ)8
+0"QTtQLW蒌LJI7ؑE&>|l_{8uK#Jir6y׌l:7V>l$+%κYQбZ&3C;xP ءñݲ\<
+?k9벛V|&"&UPhmMk9w/(`y(u'T'lC1O::!zӆaF	AoRth⌇4-)bWpI^0σa$S3ZcS:3&+KuU0't᱇SlXrYfCO!	灧 a?X+#6څBMF sM<];p*`kX`Gq-!XV9_s͒?e79$$ M!vՑӱwr`_A8#w^ `=~	,bD!!ЇEbW$?N[}о6%׫3`^KX{.cUIyC(QehU|
+qa;qًy#=jZ'%ww]E䌬k(7glO8\
+IKݿfe tGKtIԧClPMHfԵ@iRIcMm(yn2%!'N	Př"=v2".{;xN@_`7.{
+%F1*83[h65JzDyw	\qd
+ʅ28^#C|`ݎ]6{hHL>W;a-Y~^jj8@v\\ZO8-'ÖL<4P	;Aq|"vz՚ ֔#"hkLϝ;Js,A#Evcc<zmUkVw):A5Q7dƫiDOn?-RsS~9M{7vr#s+9!~Jո*҉{Q.ks|PB>J E:-R&
+9Qޢ	.@,](]%J$d_RJivսk#@Ȼ0_%&a;1<&RUTI~~:%vy_P\4frġL3f5ⵇIsE bih;);mUi*k~IY6Z ;)(H04eIN}%R@fn &5Jum^mbGM%Mz6RaG8L$3?r2(C[3'CV1fxhac@?_5~:{C]}#)tYyYY)r`o${6ev\V#OAժy%!sFElYXڞ^նՊu"]?#^#otHUKc,ǀc4;.ET:3u(PXtS)QQǛ=5S5S5d\qO(bIGhlI5 &t]S[$S8qQ>cɑN{S,[^n5z$xq)~֒))uos)ּyGq=\ϿR܅Ϻ[Z}BKLzxjWB*G3\n&$uHxY!硑Η(x>z2)+w=oot|E4{qJY4rq^j 	rL0=:cR6<th]˞Ro'.@oe7vK0eu7]O[QmvSn7kʸ
+$ xWM
+F!um/l^[-bgbC卞D7~#/<Su>LhG;`͊032]ت],,w-}ǧn"ܶb&,fZ3ġ5Y]'G͌r<#*q瘀-vc{XK?=C܆'0&IpZ
+oI$X,i-x >Zͦ.#g*721)˼AIǥTڢL
+R;FL;sn;9	]fB QԅIdsl;Y6I1)fڝTC}}"B-Xk$qlfu?Ha?b~p^`P>/_%aպAulW˥| G?*e6,@]kc-o {VVjX&ĩ%!pYeRQl3'AUmW=K @Q1fี=fEz2,Lgصlkd{\Bܷߣ̖ŝhakHQMtRS[9)vعJ[B %̑6hJEAkKV 2Ak\n]m`1}XZnrtOo:f.BhrK7>`yt_
+;ZFl8mLK?3]i2TVy5lU9.՗*74 #E1{yYޜGSz$8DÇbȤG>% z:Sk~pTG7vߝrvy4{
+eÖQ](W*"lGڤ@om5RzJ4).Qز'@V\);Ɛ A
+m2Ȭbj-CC?\s	)i1-4sT#VrHθqݶQddo^}j[aNMHt'L2ĵ$CQ]G_#N0`c5cRW?Lv&ON/-8ٴ$\'CQ5}_APJτGFپ~fMEv<_E`]ZG`$dƊ IaoLZ^qqܜ=<GK2l4Vϻ1.ޠ;(ht[( P1Cl}mx-a&0J8D\!!:nIʳ13NI%ryy:4*<jV&j_YӐWצId/T"!ӝVw֥Xn͈#u+~fdwE
+M(tۤbq}TۊZ='Wz2K>7Csl`Ep7~Vp61!}	f}q+;lK`)w~}d؎ά]5E1sqS*)IAJEzO&NG6)y+6L`濡M[=׊D߅S?
+o`?Кhn#ƣ+6/s쬂=p)z[}xz}я0jatik/"Zx˷T6sYq as֘Y
+7%c;y+D,{;Z7 CUyJ[K71I U븈R;L9ȧ :і֘LDAn~V_gmMň0ٙ>ÀJI=:܂w=hjсrXLYd3TNVn,oj?cJ6D/V(5P8o.f6(緫k(n$\u4=[ ցx&xY̐'JMfW:£Ҟ+7ouHW|Bry-9B	T+mEl >&ufSFᔖy/^c~?fҰ )U؃;(Rڿ RMPzԎM9&mDX1*,^&%.]_9,l
+CWBdT^v}hl)V2Ɲ@mnNս9ؤ`Z?w1~3ģӑh-j J&$B#=eGZ}NtlFY~@8La#3B39qjЖ5rDE2⡋@p,<c;z-֧Rq[L=<(l3R8XZN[Xe|&ע4l'9;_vX.ԟ -?M _Ij :c~2&ԖdyuuqzsEQ0o--~O%kܘ4^@6m{]3
+O3+1(bX/'+<(uX0(K
+{rP;Ls,U,>]s$tX(vt2Y$HqqPF@A		3Y NwOEN56>S4("hA4vp5od{DW<SqAH]3+;'۸.5Tz0DDFH9ΟϮ
+a~	BK4LӠ(+>lPH3dX[!J2[*oj$OAYlJBG͉8]6qz1X Abu84Zq09{
+s\g0[>88B怜ޟ˛z9:nܗ531}$N=`ݵit-6&vq׀nku{wuO׹o7 Kҝwh|7xDrJ=q،Zoi+3+ԸwX pB#:^k/V<a@B
+.+BQGAB\Lst@FIDrA 
\ No newline at end of file
diff --git a/sites/default/files/js/js_BKcMdIbOMdbTdLn9dkUq3KCJfIKKo2SvKoQ1AnB8D-g.js b/sites/default/files/js/js_BKcMdIbOMdbTdLn9dkUq3KCJfIKKo2SvKoQ1AnB8D-g.js
new file mode 100644
index 0000000..64c8e27
--- /dev/null
+++ b/sites/default/files/js/js_BKcMdIbOMdbTdLn9dkUq3KCJfIKKo2SvKoQ1AnB8D-g.js
@@ -0,0 +1,4 @@
+/*!
+  * domready (c) Dustin Diaz 2014 - License MIT
+  */
+!function(e,t){typeof module!="undefined"?module.exports=t():typeof define=="function"&&typeof define.amd=="object"?define(t):this[e]=t()}("domready",function(){var e=[],t,n=document,r=n.documentElement.doScroll,i="DOMContentLoaded",s=(r?/^loaded|^c/:/^loaded|^i|^c/).test(n.readyState);return s||n.addEventListener(i,t=function(){n.removeEventListener(i,t),s=1;while(t=e.shift())t()}),function(t){s?setTimeout(t,0):e.push(t)}});
diff --git a/sites/default/files/js/js_BKcMdIbOMdbTdLn9dkUq3KCJfIKKo2SvKoQ1AnB8D-g.js.gz b/sites/default/files/js/js_BKcMdIbOMdbTdLn9dkUq3KCJfIKKo2SvKoQ1AnB8D-g.js.gz
new file mode 100644
index 0000000..756ba7b
--- /dev/null
+++ b/sites/default/files/js/js_BKcMdIbOMdbTdLn9dkUq3KCJfIKKo2SvKoQ1AnB8D-g.js.gz
@@ -0,0 +1,4 @@
+     ePn!MOꡉlo4`֪^Vkmn>Ѯ=a'X25'l xZA[F[q@~\Ic]EPfNy
+/5z$7:
+مd*҆?rO@_
++bWV^HxYxW(:}^<:\"(>oKs%|$VZvm	)<3կGi*Sż]o[, L."C1cN|ZW  
\ No newline at end of file
diff --git a/sites/default/files/js/js_IaU4wfZlByZ8at0yjyUe8AB03hw-jS1ZW5dZD4ep-wI.js b/sites/default/files/js/js_IaU4wfZlByZ8at0yjyUe8AB03hw-jS1ZW5dZD4ep-wI.js
new file mode 100644
index 0000000..2353822
--- /dev/null
+++ b/sites/default/files/js/js_IaU4wfZlByZ8at0yjyUe8AB03hw-jS1ZW5dZD4ep-wI.js
@@ -0,0 +1,4 @@
+/**
+ * @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+ */
+!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.2",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b)}(this,document);;
diff --git a/sites/default/files/js/js_IaU4wfZlByZ8at0yjyUe8AB03hw-jS1ZW5dZD4ep-wI.js.gz b/sites/default/files/js/js_IaU4wfZlByZ8at0yjyUe8AB03hw-jS1ZW5dZD4ep-wI.js.gz
new file mode 100644
index 0000000..166d7b5
--- /dev/null
+++ b/sites/default/files/js/js_IaU4wfZlByZ8at0yjyUe8AB03hw-jS1ZW5dZD4ep-wI.js.gz
@@ -0,0 +1,7 @@
+     }V[6~W(DuvY;n09[G2HW=%nؒu<{yLk+isT[,-}J<9%4Z@ƅ_[F}R7RكrSF@f`	gr+?*Q%TB[rwqTJQr9Ra&r+ƢTi-mHEOhOYe0cR.1O+hܫRUdZ]\*zQEĘ,	AԕtHdp"ǹ&&	QOҭGPT#IƧi
+:Gi,c笹˯WWCr쩝Ni8a6	͏
+̀SܨeQ*9v;!Ydd"Ky	Wge+;#ddud̜Gwg-;t"QQl[jfg5Zj
+rT2d{=$/P[d]>}P
+`_[Oid2XVR\ŢNyeqxQuʻRv|d.!ndP*11v=VѥΔҕF4gEi4Ǆ{#btѨ{pՁZ孢roǶ(ǁ )cPZYWe<tV;$AXw	)LOdLC>J⡜#]'Z7{WދÒM&aF`╤(!PPD(,7Vҥ1NZjxlj-mdՍP8`/*Hk=/kv򠦱0*>fr[ъY3ҭ#X}>,8sjl;ڛ:Vq-iS6䧙5As^_*YF:_>S_>/|_ǹktۻ;37bMպʢ/mMH`쮿GW B`|y~t]TBH)7bOX`jSM?3p{&VawRi)Fۑ]@^/݇=08Vl2$'=~ncvf2}29fA'ʐ\(?/J5@Ue92t 3H1fIBGj]Ы)_!=yHYƎ N%b&[iִ5կ&MfSƺ^iM?DYEGSWwb(paaSZ][U
+zϲr\SR5tK-zP
+  
\ No newline at end of file
diff --git a/sites/default/files/js/js_SbKV-JXlOCIOjLz1NdsIyI-OJbII0gqcc14iXdml1r8.js b/sites/default/files/js/js_SbKV-JXlOCIOjLz1NdsIyI-OJbII0gqcc14iXdml1r8.js
new file mode 100644
index 0000000..ff25d9c
--- /dev/null
+++ b/sites/default/files/js/js_SbKV-JXlOCIOjLz1NdsIyI-OJbII0gqcc14iXdml1r8.js
@@ -0,0 +1,364 @@
+/**
+ * @file
+ *
+ * Dialog API inspired by HTML5 dialog element:
+ * http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#the-dialog-element
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  drupalSettings.dialog = {
+    autoOpen: true,
+    dialogClass: '',
+    // Drupal-specific extensions: see dialog.jquery-ui.js.
+    buttonClass: 'button',
+    buttonPrimaryClass: 'button--primary',
+    // When using this API directly (when generating dialogs on the client side),
+    // you may want to override this method and do
+    // @code
+    // jQuery(event.target).remove()
+    // @endcode
+    // as well, to remove the dialog on closing.
+    close: function (event) {
+      Drupal.detachBehaviors(event.target, null, 'unload');
+    }
+  };
+
+  Drupal.dialog = function (element, options) {
+
+    function openDialog(settings) {
+      settings = $.extend({}, drupalSettings.dialog, options, settings);
+      // Trigger a global event to allow scripts to bind events to the dialog.
+      $(window).trigger('dialog:beforecreate', [dialog, $element, settings]);
+      $element.dialog(settings);
+      dialog.open = true;
+      $(window).trigger('dialog:aftercreate', [dialog, $element, settings]);
+    }
+
+    function closeDialog(value) {
+      $(window).trigger('dialog:beforeclose', [dialog, $element]);
+      $element.dialog('close');
+      dialog.returnValue = value;
+      dialog.open = false;
+      $(window).trigger('dialog:afterclose', [dialog, $element]);
+    }
+
+    var undef;
+    var $element = $(element);
+    var dialog = {
+      open: false,
+      returnValue: undef,
+      show: function () {
+        openDialog({modal: false});
+      },
+      showModal: function () {
+        openDialog({modal: true});
+      },
+      close: closeDialog
+    };
+
+    return dialog;
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
+(function ($, Drupal, drupalSettings, debounce, displace) {
+
+  "use strict";
+
+  // autoResize option will turn off resizable and draggable.
+  drupalSettings.dialog = $.extend({autoResize: true, maxHeight: '95%'}, drupalSettings.dialog);
+
+  /**
+   * Resets the current options for positioning.
+   *
+   * This is used as a window resize and scroll callback to reposition the
+   * jQuery UI dialog. Although not a built-in jQuery UI option, this can
+   * be disabled by setting autoResize: false in the options array when creating
+   * a new Drupal.dialog().
+   */
+  function resetSize(event) {
+    var positionOptions = ['width', 'height', 'minWidth', 'minHeight', 'maxHeight', 'maxWidth', 'position'];
+    var adjustedOptions = {};
+    var windowHeight = $(window).height();
+    var option;
+    var optionValue;
+    var adjustedValue;
+    for (var n = 0; n < positionOptions.length; n++) {
+      option = positionOptions[n];
+      optionValue = event.data.settings[option];
+      if (optionValue) {
+        // jQuery UI does not support percentages on heights, convert to pixels.
+        if (typeof optionValue === 'string' && /%$/.test(optionValue) && /height/i.test(option)) {
+          // Take offsets in account.
+          windowHeight -= displace.offsets.top + displace.offsets.bottom;
+          adjustedValue = parseInt(0.01 * parseInt(optionValue, 10) * windowHeight, 10);
+          // Don't force the dialog to be bigger vertically than needed.
+          if (option === 'height' && event.data.$element.parent().outerHeight() < adjustedValue) {
+            adjustedValue = 'auto';
+          }
+          adjustedOptions[option] = adjustedValue;
+        }
+      }
+    }
+    // Offset the dialog center to be at the center of Drupal.displace.offsets.
+    adjustedOptions = resetPosition(adjustedOptions);
+    event.data.$element
+      .dialog('option', adjustedOptions)
+      .trigger('dialogContentResize');
+  }
+
+  /**
+   * Position the dialog's center at the center of displace.offsets boundaries.
+   */
+  function resetPosition(options) {
+    var offsets = displace.offsets;
+    var left = offsets.left - offsets.right;
+    var top = offsets.top - offsets.bottom;
+
+    var leftString = (left > 0 ? '+' : '-') + Math.abs(Math.round(left / 2)) + 'px';
+    var topString = (top > 0 ? '+' : '-') + Math.abs(Math.round(top / 2)) + 'px';
+    options.position = {
+      my: 'center' + (left !== 0 ? leftString : '') + ' center' + (top !== 0 ? topString : ''),
+      of: window
+    };
+    return options;
+  }
+
+  $(window).on({
+    'dialog:aftercreate': function (event, dialog, $element, settings) {
+      var autoResize = debounce(resetSize, 20);
+      var eventData = {settings: settings, $element: $element};
+      if (settings.autoResize === true || settings.autoResize === 'true') {
+        $element
+          .dialog('option', {resizable: false, draggable: false})
+          .dialog('widget').css('position', 'fixed');
+        $(window)
+          .on('resize.dialogResize scroll.dialogResize', eventData, autoResize)
+          .trigger('resize.dialogResize');
+        $(document).on('drupalViewportOffsetChange', eventData, autoResize);
+      }
+    },
+    'dialog:beforeclose': function (event, dialog, $element) {
+      $(window).off('.dialogResize');
+    }
+  });
+
+})(jQuery, Drupal, drupalSettings, Drupal.debounce, Drupal.displace);
+;
+/**
+ * @file
+ * Adds default classes to buttons for styling purposes.
+ */
+(function ($) {
+
+  "use strict";
+
+  $.widget('ui.dialog', $.ui.dialog, {
+    options: {
+      buttonClass: 'button',
+      buttonPrimaryClass: 'button--primary'
+    },
+    _createButtons: function () {
+      var opts = this.options;
+      var primaryIndex;
+      var $buttons;
+      var index;
+      var il = opts.buttons.length;
+      for (index = 0; index < il; index++) {
+        if (opts.buttons[index].primary && opts.buttons[index].primary === true) {
+          primaryIndex = index;
+          delete opts.buttons[index].primary;
+          break;
+        }
+      }
+      this._super();
+      $buttons = this.uiButtonSet.children().addClass(opts.buttonClass);
+      if (typeof primaryIndex !== 'undefined') {
+        $buttons.eq(index).addClass(opts.buttonPrimaryClass);
+      }
+    }
+  });
+
+})(jQuery);
+;
+/**
+ * @file
+ * Extends the Drupal AJAX functionality to integrate the dialog API.
+ */
+
+(function ($, Drupal) {
+
+  "use strict";
+
+  Drupal.behaviors.dialog = {
+    attach: function (context, settings) {
+      var $context = $(context);
+
+      // Provide a known 'drupal-modal' DOM element for Drupal-based modal
+      // dialogs. Non-modal dialogs are responsible for creating their own
+      // elements, since there can be multiple non-modal dialogs at a time.
+      if (!$('#drupal-modal').length) {
+        // Add 'ui-front' jQuery UI class so jQuery UI widgets like autocomplete
+        // sit on top of dialogs. For more information see
+        // http://api.jqueryui.com/theming/stacking-elements/.
+        $('<div id="drupal-modal" class="ui-front"/>').hide().appendTo('body');
+      }
+
+      // Special behaviors specific when attaching content within a dialog.
+      // These behaviors usually fire after a validation error inside a dialog.
+      var $dialog = $context.closest('.ui-dialog-content');
+      if ($dialog.length) {
+        // Remove and replace the dialog buttons with those from the new form.
+        if ($dialog.dialog('option', 'drupalAutoButtons')) {
+          // Trigger an event to detect/sync changes to buttons.
+          $dialog.trigger('dialogButtonsChange');
+        }
+
+        // Force focus on the modal when the behavior is run.
+        $dialog.dialog('widget').trigger('focus');
+      }
+
+      var originalClose = settings.dialog.close;
+      // Overwrite the close method to remove the dialog on closing.
+      settings.dialog.close = function (event) {
+        originalClose.apply(settings.dialog, arguments);
+        $(event.target).remove();
+      };
+    },
+
+    /**
+     * Scan a dialog for any primary buttons and move them to the button area.
+     *
+     * @param $dialog
+     *   An jQuery object containing the element that is the dialog target.
+     * @return
+     *   An array of buttons that need to be added to the button area.
+     */
+    prepareDialogButtons: function ($dialog) {
+      var buttons = [];
+      var $buttons = $dialog.find('.form-actions input[type=submit]');
+      $buttons.each(function () {
+        // Hidden form buttons need special attention. For browser consistency,
+        // the button needs to be "visible" in order to have the enter key fire
+        // the form submit event. So instead of a simple "hide" or
+        // "display: none", we set its dimensions to zero.
+        // See http://mattsnider.com/how-forms-submit-when-pressing-enter/
+        var $originalButton = $(this).css({
+          width: 0,
+          height: 0,
+          padding: 0,
+          border: 0
+        });
+        buttons.push({
+          'text': $originalButton.html() || $originalButton.attr('value'),
+          'class': $originalButton.attr('class'),
+          'click': function (e) {
+            $originalButton.trigger('mousedown').trigger('click').trigger('mouseup');
+            e.preventDefault();
+          }
+        });
+      });
+      return buttons;
+    }
+  };
+
+  /**
+   * Command to open a dialog.
+   */
+  Drupal.AjaxCommands.prototype.openDialog = function (ajax, response, status) {
+    if (!response.selector) {
+      return false;
+    }
+    var $dialog = $(response.selector);
+    if (!$dialog.length) {
+      // Create the element if needed.
+      $dialog = $('<div id="' + response.selector.replace(/^#/, '') + '"/>').appendTo('body');
+    }
+    // Set up the wrapper, if there isn't one.
+    if (!ajax.wrapper) {
+      ajax.wrapper = $dialog.attr('id');
+    }
+
+    // Use the ajax.js insert command to populate the dialog contents.
+    response.command = 'insert';
+    response.method = 'html';
+    ajax.commands.insert(ajax, response, status);
+
+    // Move the buttons to the jQuery UI dialog buttons area.
+    if (!response.dialogOptions.buttons) {
+      response.dialogOptions.drupalAutoButtons = true;
+      response.dialogOptions.buttons = Drupal.behaviors.dialog.prepareDialogButtons($dialog);
+    }
+
+    // Bind dialogButtonsChange
+    $dialog.on('dialogButtonsChange', function () {
+      var buttons = Drupal.behaviors.dialog.prepareDialogButtons($dialog);
+      $dialog.dialog('option', 'buttons', buttons);
+    });
+
+    // Open the dialog itself.
+    response.dialogOptions = response.dialogOptions || {};
+    var dialog = Drupal.dialog($dialog.get(0), response.dialogOptions);
+    if (response.dialogOptions.modal) {
+      dialog.showModal();
+    }
+    else {
+      dialog.show();
+    }
+
+    // Add the standard Drupal class for buttons for style consistency.
+    $dialog.parent().find('.ui-dialog-buttonset').addClass('form-actions');
+  };
+
+  /**
+   * Command to close a dialog.
+   *
+   * If no selector is given, it defaults to trying to close the modal.
+   */
+  Drupal.AjaxCommands.prototype.closeDialog = function (ajax, response, status) {
+    var $dialog = $(response.selector);
+    if ($dialog.length) {
+      Drupal.dialog($dialog.get(0)).close();
+      if (!response.persist) {
+        $dialog.remove();
+      }
+    }
+
+    // Unbind dialogButtonsChange
+    $dialog.off('dialogButtonsChange');
+  };
+
+  /**
+   * Command to set a dialog property.
+   *
+   * jQuery UI specific way of setting dialog options.
+   */
+  Drupal.AjaxCommands.prototype.setDialogOption = function (ajax, response, status) {
+    var $dialog = $(response.selector);
+    if ($dialog.length) {
+      $dialog.dialog('option', response.optionName, response.optionValue);
+    }
+  };
+
+  /**
+   * Binds a listener on dialog creation to handle the cancel link.
+   */
+  $(window).on('dialog:aftercreate', function (e, dialog, $element, settings) {
+    $element.on('click.dialog', '.dialog-cancel', function (e) {
+      dialog.close('cancel');
+      e.preventDefault();
+      e.stopPropagation();
+    });
+  });
+
+  /**
+   * Removes all 'dialog' listeners.
+   */
+  $(window).on('dialog:beforeclose', function (e, dialog, $element) {
+    $element.off('.dialog');
+  });
+
+})(jQuery, Drupal);
+;
diff --git a/sites/default/files/js/js_SbKV-JXlOCIOjLz1NdsIyI-OJbII0gqcc14iXdml1r8.js.gz b/sites/default/files/js/js_SbKV-JXlOCIOjLz1NdsIyI-OJbII0gqcc14iXdml1r8.js.gz
new file mode 100644
index 0000000..7d385b0
--- /dev/null
+++ b/sites/default/files/js/js_SbKV-JXlOCIOjLz1NdsIyI-OJbII0gqcc14iXdml1r8.js.gz
@@ -0,0 +1,17 @@
+     Zms6_nI5vΪ{uvKf2DBld	Њ. Jܙtb }yv_/w+Y
+J^kvyJ5[ٳW/5+hPb+*}7Z7nvwnsՈ\wb9My׶`+lZzUޖꍘ3Пʵ+MӶkx9e{-ZMػN;%ҭ_ĳ2ft9m'MyRrY;CJLբRLSBuhNf7*3kuғ%KWvϘzsFTS 	p<.,ZT(G1P}2%1uǶ|vt;Ѷ0oaE|ׅp7BaSq3۵Г[N
+Q"Np!5ڣvF!I{ Yof=@f%+{wnUҔUtUY",{#،p_83c̇<&U-s<ˌUM~ԨU+k2e%3"yY;V6Zዥ#3nfɝ;R&&iBΗbUEkLkڙׄg΍Y9*⣌_~p0p|T|\:qZ3k_q{ܰ1/Ճ1*x˺t3 qOAxdƺω}tN݈ԻS{Mm낗}H慝PZhS#lL (VT8Y<('X0O/X¸gej_"rk|>gB7R߾,9&+R(uX\^a>A gd$IysgKRzppC"E~y<]UNz&`&q8(-1,*ԡ86PUFym1gb5
+A*I:!5OԢa8:y_ڽ.d'O6VVY?N>Ypww^tJ}?J'DLpAHA>ڇp5ZLc/7CdzcMdy1zKxg.q~\4XFuBSS]ԭfdx֠-Rx^WLn[QĽ*%u>?;gZ(3#\ÓgV`0>f΂Y1.|L{tzYL.JVNgρ0S	\wX`%"x #T)g(BY#&U[Bs;03k`Ր`@IByG%pI/(9P7hR!G0̘ue-Qգ$ѐ8 <Oj	]G*VD91J0=B^aR9t>bө<c&OFWS?[D
+X߲,y0Hd~MƗ*5?ZW4o&2@8Yx,{G'pJ.kpCq77LuЯ^۠ _,_ޜM!eK`_.<,L=J2G7<D&fT|ٱ'$aH;U=@H`ГI+  
+RfyRH+!iIZYLF48?#Dcf:Ldx ;@Zvidva! m!pɨ 1yH3+$S.",
+V]J	jLU
+JKڦkM JgYMtJ>júWZqlƅg;IjբaX|dAH?Rmj+|'d	@^s6ao`j<fΛ@C.Đ(d00b->D8C;@sp[ϞB'̳|#p<^C0ZI(1Ya
+;>CÁ:ԧҜ],y)PB]`!ZzN886,]-F<yfMiO,18CmU*f#4w9alvfNOv3xMs 87$j}ԚU=)%neE%
+PȡM@:ZnE'gii$z&0V'g%	L+
+*BBymB}}+~~鷐r@[nNRh⍴W a9hbJ+0[nv<iM!,.NCOIS'[i_i}8M.x[ߐ}Ti BcZ@S5W4c`"/+HAmk؊5glYKLz>,gIqnU
+COw%!n_ǝ
+w	d`2҃pUeQzUrB|nAahkP?
+#4<;vU`=R#vgr>Lr	J6&Qwk26C|ߜIro_yU,NUX_cLt`*.zDuobhVfO|̽e7r.+}RE%#Zw1"M}`mCNRGMOC3*Γ=yf4bP n=95tdt5"-RIR& 4W0`$HWh1+s!na)%e[s|?:B2N|˺->K@[AaxH0GFOC4N1!S*r瘹GHt):^R"K* ߚw3K͈"/R&=@sOʜS2R.inc/y&6x4}4ޙEөMkF@#?uh߱1LE+htBq<B
+\։d0k'͘*{*tx7l*|w	}c>{Ea}KӴѷ4JfO<7f
+bdש=?4!EO~yb(>ÒcGY|꺉$!CyȺpkqn;EVK7^*Tlf2oL&-Qܾ(,h)ﭡTp'ZVAJtE<fku-<f7R|F7φ4whg&8: 60y|RA'!4=$;=Epyk{,o7NVc r5Htw46 y!nߟ;~x2=B,-G^$|_ఱG}+ER:/T#<E(}l}hw˱ʁ8Ф\k%ൄN.9r7CQ_HG%*2	Fu faE=qנjP}UE$+)2pQozP>uqŤ#~,0Oķ%][Ҹ'W>iAQyTKDI4 pw<3%&~;q0
+싯 /|NTwx}(::Lpݕ\q@.  
\ No newline at end of file
diff --git a/sites/default/files/js/js_VhqXmo4azheUjYC30rijnR_Dddo0WjWkF27k5gTL8S4.js b/sites/default/files/js/js_VhqXmo4azheUjYC30rijnR_Dddo0WjWkF27k5gTL8S4.js
new file mode 100644
index 0000000..ecd72f2
--- /dev/null
+++ b/sites/default/files/js/js_VhqXmo4azheUjYC30rijnR_Dddo0WjWkF27k5gTL8S4.js
@@ -0,0 +1,2 @@
+/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */
+if("document" in self){if(!("classList" in document.createElement("_"))){(function(j){"use strict";if(!("Element" in j)){return}var a="classList",f="prototype",m=j.Element[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.getAttribute("class")||""),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.setAttribute("class",this.toString())}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(){var s=arguments,r=0,p=s.length,q,o=false;do{q=s[r]+"";if(g(this,q)===-1){this.push(q);o=true}}while(++r<p);if(o){this._updateClassName()}};e.remove=function(){var t=arguments,s=0,p=t.length,r,o=false,q;do{r=t[s]+"";q=g(this,r);while(q!==-1){this.splice(q,1);o=true;q=g(this,r)}}while(++s<p);if(o){this._updateClassName()}};e.toggle=function(p,q){p+="";var o=this.contains(p),r=o?q!==true&&"remove":q!==false&&"add";if(r){this[r](p)}if(q===true||q===false){return q}else{return !o}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))}else{(function(){var b=document.createElement("_");b.classList.add("c1","c2");if(!b.classList.contains("c2")){var c=function(e){var d=DOMTokenList.prototype[e];DOMTokenList.prototype[e]=function(h){var g,f=arguments.length;for(g=0;g<f;g++){h=arguments[g];d.call(this,h)}}};c("add");c("remove")}b.classList.toggle("c3",false);if(b.classList.contains("c3")){var a=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(d,e){if(1 in arguments&&!this.contains(d)===!e){return e}else{return a.call(this,d)}}}b=null}())}};;
diff --git a/sites/default/files/js/js_VhqXmo4azheUjYC30rijnR_Dddo0WjWkF27k5gTL8S4.js.gz b/sites/default/files/js/js_VhqXmo4azheUjYC30rijnR_Dddo0WjWkF27k5gTL8S4.js.gz
new file mode 100644
index 0000000..3f52e19
--- /dev/null
+++ b/sites/default/files/js/js_VhqXmo4azheUjYC30rijnR_Dddo0WjWkF27k5gTL8S4.js.gz
@@ -0,0 +1,5 @@
+     Umo6_!!֜$0D!:#]2Z:(Tߑm9M}Aw{9)L<F>y*я:Hs5 *Rs
+Xk4ȣu*O<7QRN^:
+lp{{c{3#	\Us.!d%M\ފlF#VonVh/A7lt8DVRh+p隭u,Wi}B2MvY|	U#??)u]҈M!/cz@j1*
+f
+(S^X]Ll*3=mՏ'--A+%_]G"揫Tn&)²x)FR<8%s?s}7{qu{RwZ"{^#E*S+GUI1&*5(	_ӏ-.N/n+8(5KÕQ%P##^6ƇTzɾtOAO5b/*]bfUU0|6]kfY5*j,ib6IiҶXrb gd/i^I)$.Bs8Dn˦(Z4eXLa;0#PtxǤW1.SϊJLWv5.ᅂ0O\=rMA>J%	Odmxq{1&a-)==,='whmJgYO#Q<Hpduqo-Ҵa'bW&~jU,Fw͖P6Ѳ3kmfe[H:aJoǐ%)ER?vE([<Pb)$_pnHP*ӆZ>nxkiAڈ(2;2 NO~ӳӟO%^kxm3=h/٬8͍g7xO4dy28V,n'6sN|:O(Y⃹oKٛ0H̼`3KaMV+%<=b0I;;FtO_g>E_{z5`sb}$b3FƀcٙjGw"_	  
\ No newline at end of file
diff --git a/sites/default/files/js/js__RU3yYFyCdMKuglxOdv_6wbJjoKAJVeGfOYqMsPFV4k.js b/sites/default/files/js/js__RU3yYFyCdMKuglxOdv_6wbJjoKAJVeGfOYqMsPFV4k.js
new file mode 100644
index 0000000..5ee127f
--- /dev/null
+++ b/sites/default/files/js/js__RU3yYFyCdMKuglxOdv_6wbJjoKAJVeGfOYqMsPFV4k.js
@@ -0,0 +1,2475 @@
+/*! jQuery v2.1.4 | (c) 2005, 2015 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=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,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=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.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},n.extend=n.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||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},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=s(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(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;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=s(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&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=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)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(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||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(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 H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(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 pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(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 p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),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))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),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===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(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?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.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 ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.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},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.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=ga.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=ga.selectors={cacheLength:50,createPseudo:ia,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(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===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]||ga.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]&&ga.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(ca,da).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("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.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.replace(Q," ")+" ").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()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(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),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).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:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(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]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.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?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(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 ta(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 ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(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 wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(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?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(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 wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(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]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.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(ca,da),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(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(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&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.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?n.extend(a,d):d}},e={};return d.pipe=d.then,n.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&&n.isFunction(a.promise)?e:0,g=1===f?a:n.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]&&n.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;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(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};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){
+return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.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.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.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 L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.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=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!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(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},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 offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.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=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.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(g in a)this.on(g,b,c,a[g],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=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.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,n(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=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=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=ja(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=ja(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?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(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,n.cleanData(oa(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,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.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}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.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",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.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 za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(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+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.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}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(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":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.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))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,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||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=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):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.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,n.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 Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.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 Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),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:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.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(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.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)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(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=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.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)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.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})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.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=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)),
+void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.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 n.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=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.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||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.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){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.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(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(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(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.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&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.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){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.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 cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.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 sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(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}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,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":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e: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 c&&c.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||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(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]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=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,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;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)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.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,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.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?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
+
+//     Underscore.js 1.8.3
+//     http://underscorejs.org
+//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+//     Underscore may be freely distributed under the MIT license.
+(function(){function n(n){function t(t,r,e,u,i,o){for(;i>=0&&o>i;i+=n){var a=u?u[i]:i;e=r(e,t[a],a,t)}return e}return function(r,e,u,i){e=b(e,i,4);var o=!k(r)&&m.keys(r),a=(o||r).length,c=n>0?0:a-1;return arguments.length<3&&(u=r[o?o[c]:c],c+=n),t(r,e,u,o,c,a)}}function t(n){return function(t,r,e){r=x(r,e);for(var u=O(t),i=n>0?0:u-1;i>=0&&u>i;i+=n)if(r(t[i],i,t))return i;return-1}}function r(n,t,r){return function(e,u,i){var o=0,a=O(e);if("number"==typeof i)n>0?o=i>=0?i:Math.max(i+a,o):a=i>=0?Math.min(i+1,a):i+a+1;else if(r&&i&&a)return i=r(e,u),e[i]===u?i:-1;if(u!==u)return i=t(l.call(e,o,a),m.isNaN),i>=0?i+o:-1;for(i=n>0?o:a-1;i>=0&&a>i;i+=n)if(e[i]===u)return i;return-1}}function e(n,t){var r=I.length,e=n.constructor,u=m.isFunction(e)&&e.prototype||a,i="constructor";for(m.has(n,i)&&!m.contains(t,i)&&t.push(i);r--;)i=I[r],i in n&&n[i]!==u[i]&&!m.contains(t,i)&&t.push(i)}var u=this,i=u._,o=Array.prototype,a=Object.prototype,c=Function.prototype,f=o.push,l=o.slice,s=a.toString,p=a.hasOwnProperty,h=Array.isArray,v=Object.keys,g=c.bind,y=Object.create,d=function(){},m=function(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=m),exports._=m):u._=m,m.VERSION="1.8.3";var b=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}},x=function(n,t,r){return null==n?m.identity:m.isFunction(n)?b(n,t,r):m.isObject(n)?m.matcher(n):m.property(n)};m.iteratee=function(n,t){return x(n,t,1/0)};var _=function(n,t){return function(r){var e=arguments.length;if(2>e||null==r)return r;for(var u=1;e>u;u++)for(var i=arguments[u],o=n(i),a=o.length,c=0;a>c;c++){var f=o[c];t&&r[f]!==void 0||(r[f]=i[f])}return r}},j=function(n){if(!m.isObject(n))return{};if(y)return y(n);d.prototype=n;var t=new d;return d.prototype=null,t},w=function(n){return function(t){return null==t?void 0:t[n]}},A=Math.pow(2,53)-1,O=w("length"),k=function(n){var t=O(n);return"number"==typeof t&&t>=0&&A>=t};m.each=m.forEach=function(n,t,r){t=b(t,r);var e,u;if(k(n))for(e=0,u=n.length;u>e;e++)t(n[e],e,n);else{var i=m.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},m.map=m.collect=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=Array(u),o=0;u>o;o++){var a=e?e[o]:o;i[o]=t(n[a],a,n)}return i},m.reduce=m.foldl=m.inject=n(1),m.reduceRight=m.foldr=n(-1),m.find=m.detect=function(n,t,r){var e;return e=k(n)?m.findIndex(n,t,r):m.findKey(n,t,r),e!==void 0&&e!==-1?n[e]:void 0},m.filter=m.select=function(n,t,r){var e=[];return t=x(t,r),m.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e},m.reject=function(n,t,r){return m.filter(n,m.negate(x(t)),r)},m.every=m.all=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(!t(n[o],o,n))return!1}return!0},m.some=m.any=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(t(n[o],o,n))return!0}return!1},m.contains=m.includes=m.include=function(n,t,r,e){return k(n)||(n=m.values(n)),("number"!=typeof r||e)&&(r=0),m.indexOf(n,t,r)>=0},m.invoke=function(n,t){var r=l.call(arguments,2),e=m.isFunction(t);return m.map(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})},m.pluck=function(n,t){return m.map(n,m.property(t))},m.where=function(n,t){return m.filter(n,m.matcher(t))},m.findWhere=function(n,t){return m.find(n,m.matcher(t))},m.max=function(n,t,r){var e,u,i=-1/0,o=-1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],e>i&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(u>o||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},m.min=function(n,t,r){var e,u,i=1/0,o=1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],i>e&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(o>u||1/0===u&&1/0===i)&&(i=n,o=u)});return i},m.shuffle=function(n){for(var t,r=k(n)?n:m.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=m.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},m.sample=function(n,t,r){return null==t||r?(k(n)||(n=m.values(n)),n[m.random(n.length-1)]):m.shuffle(n).slice(0,Math.max(0,t))},m.sortBy=function(n,t,r){return t=x(t,r),m.pluck(m.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={};return r=x(r,e),m.each(t,function(e,i){var o=r(e,i,t);n(u,e,o)}),u}};m.groupBy=F(function(n,t,r){m.has(n,r)?n[r].push(t):n[r]=[t]}),m.indexBy=F(function(n,t,r){n[r]=t}),m.countBy=F(function(n,t,r){m.has(n,r)?n[r]++:n[r]=1}),m.toArray=function(n){return n?m.isArray(n)?l.call(n):k(n)?m.map(n,m.identity):m.values(n):[]},m.size=function(n){return null==n?0:k(n)?n.length:m.keys(n).length},m.partition=function(n,t,r){t=x(t,r);var e=[],u=[];return m.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},m.first=m.head=m.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:m.initial(n,n.length-t)},m.initial=function(n,t,r){return l.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},m.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:m.rest(n,Math.max(0,n.length-t))},m.rest=m.tail=m.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},m.compact=function(n){return m.filter(n,m.identity)};var S=function(n,t,r,e){for(var u=[],i=0,o=e||0,a=O(n);a>o;o++){var c=n[o];if(k(c)&&(m.isArray(c)||m.isArguments(c))){t||(c=S(c,t,r));var f=0,l=c.length;for(u.length+=l;l>f;)u[i++]=c[f++]}else r||(u[i++]=c)}return u};m.flatten=function(n,t){return S(n,t,!1)},m.without=function(n){return m.difference(n,l.call(arguments,1))},m.uniq=m.unique=function(n,t,r,e){m.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=x(r,e));for(var u=[],i=[],o=0,a=O(n);a>o;o++){var c=n[o],f=r?r(c,o,n):c;t?(o&&i===f||u.push(c),i=f):r?m.contains(i,f)||(i.push(f),u.push(c)):m.contains(u,c)||u.push(c)}return u},m.union=function(){return m.uniq(S(arguments,!0,!0))},m.intersection=function(n){for(var t=[],r=arguments.length,e=0,u=O(n);u>e;e++){var i=n[e];if(!m.contains(t,i)){for(var o=1;r>o&&m.contains(arguments[o],i);o++);o===r&&t.push(i)}}return t},m.difference=function(n){var t=S(arguments,!0,!0,1);return m.filter(n,function(n){return!m.contains(t,n)})},m.zip=function(){return m.unzip(arguments)},m.unzip=function(n){for(var t=n&&m.max(n,O).length||0,r=Array(t),e=0;t>e;e++)r[e]=m.pluck(n,e);return r},m.object=function(n,t){for(var r={},e=0,u=O(n);u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},m.findIndex=t(1),m.findLastIndex=t(-1),m.sortedIndex=function(n,t,r,e){r=x(r,e,1);for(var u=r(t),i=0,o=O(n);o>i;){var a=Math.floor((i+o)/2);r(n[a])<u?i=a+1:o=a}return i},m.indexOf=r(1,m.findIndex,m.sortedIndex),m.lastIndexOf=r(-1,m.findLastIndex),m.range=function(n,t,r){null==t&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var E=function(n,t,r,e,u){if(!(e instanceof t))return n.apply(r,u);var i=j(n.prototype),o=n.apply(i,u);return m.isObject(o)?o:i};m.bind=function(n,t){if(g&&n.bind===g)return g.apply(n,l.call(arguments,1));if(!m.isFunction(n))throw new TypeError("Bind must be called on a function");var r=l.call(arguments,2),e=function(){return E(n,e,t,this,r.concat(l.call(arguments)))};return e},m.partial=function(n){var t=l.call(arguments,1),r=function(){for(var e=0,u=t.length,i=Array(u),o=0;u>o;o++)i[o]=t[o]===m?arguments[e++]:t[o];for(;e<arguments.length;)i.push(arguments[e++]);return E(n,r,this,this,i)};return r},m.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=m.bind(n[r],n);return n},m.memoize=function(n,t){var r=function(e){var u=r.cache,i=""+(t?t.apply(this,arguments):e);return m.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},m.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},m.defer=m.partial(m.delay,m,1),m.throttle=function(n,t,r){var e,u,i,o=null,a=0;r||(r={});var c=function(){a=r.leading===!1?0:m.now(),o=null,i=n.apply(e,u),o||(e=u=null)};return function(){var f=m.now();a||r.leading!==!1||(a=f);var l=t-(f-a);return e=this,u=arguments,0>=l||l>t?(o&&(clearTimeout(o),o=null),a=f,i=n.apply(e,u),o||(e=u=null)):o||r.trailing===!1||(o=setTimeout(c,l)),i}},m.debounce=function(n,t,r){var e,u,i,o,a,c=function(){var f=m.now()-o;t>f&&f>=0?e=setTimeout(c,t-f):(e=null,r||(a=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,o=m.now();var f=r&&!e;return e||(e=setTimeout(c,t)),f&&(a=n.apply(i,u),i=u=null),a}},m.wrap=function(n,t){return m.partial(t,n)},m.negate=function(n){return function(){return!n.apply(this,arguments)}},m.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},m.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},m.before=function(n,t){var r;return function(){return--n>0&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}},m.once=m.partial(m.before,2);var M=!{toString:null}.propertyIsEnumerable("toString"),I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];m.keys=function(n){if(!m.isObject(n))return[];if(v)return v(n);var t=[];for(var r in n)m.has(n,r)&&t.push(r);return M&&e(n,t),t},m.allKeys=function(n){if(!m.isObject(n))return[];var t=[];for(var r in n)t.push(r);return M&&e(n,t),t},m.values=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},m.mapObject=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=u.length,o={},a=0;i>a;a++)e=u[a],o[e]=t(n[e],e,n);return o},m.pairs=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},m.invert=function(n){for(var t={},r=m.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},m.functions=m.methods=function(n){var t=[];for(var r in n)m.isFunction(n[r])&&t.push(r);return t.sort()},m.extend=_(m.allKeys),m.extendOwn=m.assign=_(m.keys),m.findKey=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=0,o=u.length;o>i;i++)if(e=u[i],t(n[e],e,n))return e},m.pick=function(n,t,r){var e,u,i={},o=n;if(null==o)return i;m.isFunction(t)?(u=m.allKeys(o),e=b(t,r)):(u=S(arguments,!1,!1,1),e=function(n,t,r){return t in r},o=Object(o));for(var a=0,c=u.length;c>a;a++){var f=u[a],l=o[f];e(l,f,o)&&(i[f]=l)}return i},m.omit=function(n,t,r){if(m.isFunction(t))t=m.negate(t);else{var e=m.map(S(arguments,!1,!1,1),String);t=function(n,t){return!m.contains(e,t)}}return m.pick(n,t,r)},m.defaults=_(m.allKeys,!0),m.create=function(n,t){var r=j(n);return t&&m.extendOwn(r,t),r},m.clone=function(n){return m.isObject(n)?m.isArray(n)?n.slice():m.extend({},n):n},m.tap=function(n,t){return t(n),n},m.isMatch=function(n,t){var r=m.keys(t),e=r.length;if(null==n)return!e;for(var u=Object(n),i=0;e>i;i++){var o=r[i];if(t[o]!==u[o]||!(o in u))return!1}return!0};var N=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof m&&(n=n._wrapped),t instanceof m&&(t=t._wrapped);var u=s.call(n);if(u!==s.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof t)return!1;var o=n.constructor,a=t.constructor;if(o!==a&&!(m.isFunction(o)&&o instanceof o&&m.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t)return!1}r=r||[],e=e||[];for(var c=r.length;c--;)if(r[c]===n)return e[c]===t;if(r.push(n),e.push(t),i){if(c=n.length,c!==t.length)return!1;for(;c--;)if(!N(n[c],t[c],r,e))return!1}else{var f,l=m.keys(n);if(c=l.length,m.keys(t).length!==c)return!1;for(;c--;)if(f=l[c],!m.has(t,f)||!N(n[f],t[f],r,e))return!1}return r.pop(),e.pop(),!0};m.isEqual=function(n,t){return N(n,t)},m.isEmpty=function(n){return null==n?!0:k(n)&&(m.isArray(n)||m.isString(n)||m.isArguments(n))?0===n.length:0===m.keys(n).length},m.isElement=function(n){return!(!n||1!==n.nodeType)},m.isArray=h||function(n){return"[object Array]"===s.call(n)},m.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},m.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(n){m["is"+n]=function(t){return s.call(t)==="[object "+n+"]"}}),m.isArguments(arguments)||(m.isArguments=function(n){return m.has(n,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(m.isFunction=function(n){return"function"==typeof n||!1}),m.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},m.isNaN=function(n){return m.isNumber(n)&&n!==+n},m.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===s.call(n)},m.isNull=function(n){return null===n},m.isUndefined=function(n){return n===void 0},m.has=function(n,t){return null!=n&&p.call(n,t)},m.noConflict=function(){return u._=i,this},m.identity=function(n){return n},m.constant=function(n){return function(){return n}},m.noop=function(){},m.property=w,m.propertyOf=function(n){return null==n?function(){}:function(t){return n[t]}},m.matcher=m.matches=function(n){return n=m.extendOwn({},n),function(t){return m.isMatch(t,n)}},m.times=function(n,t,r){var e=Array(Math.max(0,n));t=b(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},m.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},m.now=Date.now||function(){return(new Date).getTime()};var B={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},T=m.invert(B),R=function(n){var t=function(t){return n[t]},r="(?:"+m.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};m.escape=R(B),m.unescape=R(T),m.result=function(n,t,r){var e=null==n?void 0:n[t];return e===void 0&&(e=r),m.isFunction(e)?e.call(n):e};var q=0;m.uniqueId=function(n){var t=++q+"";return n?n+t:t},m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var K=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\u2028|\u2029/g,L=function(n){return"\\"+z[n]};m.template=function(n,t,r){!t&&r&&(t=r),t=m.defaults({},t,m.templateSettings);var e=RegExp([(t.escape||K).source,(t.interpolate||K).source,(t.evaluate||K).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,o,a){return i+=n.slice(u,a).replace(D,L),u=a+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":o&&(i+="';\n"+o+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var o=new Function(t.variable||"obj","_",i)}catch(a){throw a.source=i,a}var c=function(n){return o.call(this,n,m)},f=t.variable||"obj";return c.source="function("+f+"){\n"+i+"}",c},m.chain=function(n){var t=m(n);return t._chain=!0,t};var P=function(n,t){return n._chain?m(t).chain():t};m.mixin=function(n){m.each(m.functions(n),function(t){var r=m[t]=n[t];m.prototype[t]=function(){var n=[this._wrapped];return f.apply(n,arguments),P(this,r.apply(m,n))}})},m.mixin(m),m.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=o[n];m.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],P(this,r)}}),m.each(["concat","join","slice"],function(n){var t=o[n];m.prototype[n]=function(){return P(this,t.apply(this._wrapped,arguments))}}),m.prototype.value=function(){return this._wrapped},m.prototype.valueOf=m.prototype.toJSON=m.prototype.value,m.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return m})}).call(this);
+
+(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h<u;h++){t=o[h];if(a=this._events[t]){this._events[t]=s=[];if(e||r){for(l=0,f=a.length;l<f;l++){n=a[l];if(e&&e!==n.callback&&e!==n.callback._callback||r&&r!==n.context){s.push(n)}}}if(!s.length)delete this._events[t]}}return this},trigger:function(t){if(!this._events)return this;var e=o.call(arguments,1);if(!c(this,"trigger",t,e))return this;var i=this._events[t];var r=this._events.all;if(i)f(i,e);if(r)f(r,arguments);return this},stopListening:function(t,e,r){var s=this._listeningTo;if(!s)return this;var n=!e&&!r;if(!r&&typeof e==="object")r=this;if(t)(s={})[t._listenId]=t;for(var a in s){t=s[a];t.off(e,r,this);if(n||i.isEmpty(t._events))delete this._listeningTo[a]}return this}};var l=/\s+/;var c=function(t,e,i,r){if(!i)return true;if(typeof i==="object"){for(var s in i){t[e].apply(t,[s,i[s]].concat(r))}return false}if(l.test(i)){var n=i.split(l);for(var a=0,o=n.length;a<o;a++){t[e].apply(t,[n[a]].concat(r))}return false}return true};var f=function(t,e){var i,r=-1,s=t.length,n=e[0],a=e[1],o=e[2];switch(e.length){case 0:while(++r<s)(i=t[r]).callback.call(i.ctx);return;case 1:while(++r<s)(i=t[r]).callback.call(i.ctx,n);return;case 2:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a);return;case 3:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a,o);return;default:while(++r<s)(i=t[r]).callback.apply(i.ctx,e);return}};var d={listenTo:"on",listenToOnce:"once"};i.each(d,function(t,e){u[e]=function(e,r,s){var n=this._listeningTo||(this._listeningTo={});var a=e._listenId||(e._listenId=i.uniqueId("l"));n[a]=e;if(!s&&typeof r==="object")s=this;e[t](r,s,this);return this}});u.bind=u.on;u.unbind=u.off;i.extend(e,u);var p=e.Model=function(t,e){var r=t||{};e||(e={});this.cid=i.uniqueId("c");this.attributes={};if(e.collection)this.collection=e.collection;if(e.parse)r=this.parse(r,e)||{};r=i.defaults({},r,i.result(this,"defaults"));this.set(r,e);this.changed={};this.initialize.apply(this,arguments)};i.extend(p.prototype,u,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(t){return i.clone(this.attributes)},sync:function(){return e.sync.apply(this,arguments)},get:function(t){return this.attributes[t]},escape:function(t){return i.escape(this.get(t))},has:function(t){return this.get(t)!=null},set:function(t,e,r){var s,n,a,o,h,u,l,c;if(t==null)return this;if(typeof t==="object"){n=t;r=e}else{(n={})[t]=e}r||(r={});if(!this._validate(n,r))return false;a=r.unset;h=r.silent;o=[];u=this._changing;this._changing=true;if(!u){this._previousAttributes=i.clone(this.attributes);this.changed={}}c=this.attributes,l=this._previousAttributes;if(this.idAttribute in n)this.id=n[this.idAttribute];for(s in n){e=n[s];if(!i.isEqual(c[s],e))o.push(s);if(!i.isEqual(l[s],e)){this.changed[s]=e}else{delete this.changed[s]}a?delete c[s]:c[s]=e}if(!h){if(o.length)this._pending=r;for(var f=0,d=o.length;f<d;f++){this.trigger("change:"+o[f],this,c[o[f]],r)}}if(u)return this;if(!h){while(this._pending){r=this._pending;this._pending=false;this.trigger("change",this,r)}}this._pending=false;this._changing=false;return this},unset:function(t,e){return this.set(t,void 0,i.extend({},e,{unset:true}))},clear:function(t){var e={};for(var r in this.attributes)e[r]=void 0;return this.set(e,i.extend({},t,{unset:true}))},hasChanged:function(t){if(t==null)return!i.isEmpty(this.changed);return i.has(this.changed,t)},changedAttributes:function(t){if(!t)return this.hasChanged()?i.clone(this.changed):false;var e,r=false;var s=this._changing?this._previousAttributes:this.attributes;for(var n in t){if(i.isEqual(s[n],e=t[n]))continue;(r||(r={}))[n]=e}return r},previous:function(t){if(t==null||!this._previousAttributes)return null;return this._previousAttributes[t]},previousAttributes:function(){return i.clone(this._previousAttributes)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=this;var r=t.success;t.success=function(i){if(!e.set(e.parse(i,t),t))return false;if(r)r(e,i,t);e.trigger("sync",e,i,t)};q(this,t);return this.sync("read",this,t)},save:function(t,e,r){var s,n,a,o=this.attributes;if(t==null||typeof t==="object"){s=t;r=e}else{(s={})[t]=e}r=i.extend({validate:true},r);if(s&&!r.wait){if(!this.set(s,r))return false}else{if(!this._validate(s,r))return false}if(s&&r.wait){this.attributes=i.extend({},o,s)}if(r.parse===void 0)r.parse=true;var h=this;var u=r.success;r.success=function(t){h.attributes=o;var e=h.parse(t,r);if(r.wait)e=i.extend(s||{},e);if(i.isObject(e)&&!h.set(e,r)){return false}if(u)u(h,t,r);h.trigger("sync",h,t,r)};q(this,r);n=this.isNew()?"create":r.patch?"patch":"update";if(n==="patch")r.attrs=s;a=this.sync(n,this,r);if(s&&r.wait)this.attributes=o;return a},destroy:function(t){t=t?i.clone(t):{};var e=this;var r=t.success;var s=function(){e.trigger("destroy",e,e.collection,t)};t.success=function(i){if(t.wait||e.isNew())s();if(r)r(e,i,t);if(!e.isNew())e.trigger("sync",e,i,t)};if(this.isNew()){t.success();return false}q(this,t);var n=this.sync("delete",this,t);if(!t.wait)s();return n},url:function(){var t=i.result(this,"urlRoot")||i.result(this.collection,"url")||M();if(this.isNew())return t;return t.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(t,e){return t},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return this._validate({},i.extend(t||{},{validate:true}))},_validate:function(t,e){if(!e.validate||!this.validate)return true;t=i.extend({},this.attributes,t);var r=this.validationError=this.validate(t,e)||null;if(!r)return true;this.trigger("invalid",this,r,i.extend(e,{validationError:r}));return false}});var v=["keys","values","pairs","invert","pick","omit"];i.each(v,function(t){p.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.attributes);return i[t].apply(i,e)}});var g=e.Collection=function(t,e){e||(e={});if(e.model)this.model=e.model;if(e.comparator!==void 0)this.comparator=e.comparator;this._reset();this.initialize.apply(this,arguments);if(t)this.reset(t,i.extend({silent:true},e))};var m={add:true,remove:true,merge:true};var y={add:true,remove:false};i.extend(g.prototype,u,{model:p,initialize:function(){},toJSON:function(t){return this.map(function(e){return e.toJSON(t)})},sync:function(){return e.sync.apply(this,arguments)},add:function(t,e){return this.set(t,i.extend({merge:false},e,y))},remove:function(t,e){var r=!i.isArray(t);t=r?[t]:i.clone(t);e||(e={});var s,n,a,o;for(s=0,n=t.length;s<n;s++){o=t[s]=this.get(t[s]);if(!o)continue;delete this._byId[o.id];delete this._byId[o.cid];a=this.indexOf(o);this.models.splice(a,1);this.length--;if(!e.silent){e.index=a;o.trigger("remove",o,this,e)}this._removeReference(o,e)}return r?t[0]:t},set:function(t,e){e=i.defaults({},e,m);if(e.parse)t=this.parse(t,e);var r=!i.isArray(t);t=r?t?[t]:[]:i.clone(t);var s,n,a,o,h,u,l;var c=e.at;var f=this.model;var d=this.comparator&&c==null&&e.sort!==false;var v=i.isString(this.comparator)?this.comparator:null;var g=[],y=[],_={};var b=e.add,w=e.merge,x=e.remove;var E=!d&&b&&x?[]:false;for(s=0,n=t.length;s<n;s++){h=t[s]||{};if(h instanceof p){a=o=h}else{a=h[f.prototype.idAttribute||"id"]}if(u=this.get(a)){if(x)_[u.cid]=true;if(w){h=h===o?o.attributes:h;if(e.parse)h=u.parse(h,e);u.set(h,e);if(d&&!l&&u.hasChanged(v))l=true}t[s]=u}else if(b){o=t[s]=this._prepareModel(h,e);if(!o)continue;g.push(o);this._addReference(o,e)}o=u||o;if(E&&(o.isNew()||!_[o.id]))E.push(o);_[o.id]=true}if(x){for(s=0,n=this.length;s<n;++s){if(!_[(o=this.models[s]).cid])y.push(o)}if(y.length)this.remove(y,e)}if(g.length||E&&E.length){if(d)l=true;this.length+=g.length;if(c!=null){for(s=0,n=g.length;s<n;s++){this.models.splice(c+s,0,g[s])}}else{if(E)this.models.length=0;var k=E||g;for(s=0,n=k.length;s<n;s++){this.models.push(k[s])}}}if(l)this.sort({silent:true});if(!e.silent){for(s=0,n=g.length;s<n;s++){(o=g[s]).trigger("add",o,this,e)}if(l||E&&E.length)this.trigger("sort",this,e)}return r?t[0]:t},reset:function(t,e){e||(e={});for(var r=0,s=this.models.length;r<s;r++){this._removeReference(this.models[r],e)}e.previousModels=this.models;this._reset();t=this.add(t,i.extend({silent:true},e));if(!e.silent)this.trigger("reset",this,e);return t},push:function(t,e){return this.add(t,i.extend({at:this.length},e))},pop:function(t){var e=this.at(this.length-1);this.remove(e,t);return e},unshift:function(t,e){return this.add(t,i.extend({at:0},e))},shift:function(t){var e=this.at(0);this.remove(e,t);return e},slice:function(){return o.apply(this.models,arguments)},get:function(t){if(t==null)return void 0;return this._byId[t]||this._byId[t.id]||this._byId[t.cid]},at:function(t){return this.models[t]},where:function(t,e){if(i.isEmpty(t))return e?void 0:[];return this[e?"find":"filter"](function(e){for(var i in t){if(t[i]!==e.get(i))return false}return true})},findWhere:function(t){return this.where(t,true)},sort:function(t){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");t||(t={});if(i.isString(this.comparator)||this.comparator.length===1){this.models=this.sortBy(this.comparator,this)}else{this.models.sort(i.bind(this.comparator,this))}if(!t.silent)this.trigger("sort",this,t);return this},pluck:function(t){return i.invoke(this.models,"get",t)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=t.success;var r=this;t.success=function(i){var s=t.reset?"reset":"set";r[s](i,t);if(e)e(r,i,t);r.trigger("sync",r,i,t)};q(this,t);return this.sync("read",this,t)},create:function(t,e){e=e?i.clone(e):{};if(!(t=this._prepareModel(t,e)))return false;if(!e.wait)this.add(t,e);var r=this;var s=e.success;e.success=function(t,i){if(e.wait)r.add(t,e);if(s)s(t,i,e)};t.save(null,e);return t},parse:function(t,e){return t},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0;this.models=[];this._byId={}},_prepareModel:function(t,e){if(t instanceof p)return t;e=e?i.clone(e):{};e.collection=this;var r=new this.model(t,e);if(!r.validationError)return r;this.trigger("invalid",this,r.validationError,e);return false},_addReference:function(t,e){this._byId[t.cid]=t;if(t.id!=null)this._byId[t.id]=t;if(!t.collection)t.collection=this;t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){if(this===t.collection)delete t.collection;t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,i,r){if((t==="add"||t==="remove")&&i!==this)return;if(t==="destroy")this.remove(e,r);if(e&&t==="change:"+e.idAttribute){delete this._byId[e.previous(e.idAttribute)];if(e.id!=null)this._byId[e.id]=e}this.trigger.apply(this,arguments)}});var _=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];i.each(_,function(t){g.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.models);return i[t].apply(i,e)}});var b=["groupBy","countBy","sortBy","indexBy"];i.each(b,function(t){g.prototype[t]=function(e,r){var s=i.isFunction(e)?e:function(t){return t.get(e)};return i[t](this.models,s,r)}});var w=e.View=function(t){this.cid=i.uniqueId("view");t||(t={});i.extend(this,i.pick(t,E));this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()};var x=/^(\S+)\s*(.*)$/;var E=["model","collection","el","id","attributes","className","tagName","events"];i.extend(w.prototype,u,{tagName:"div",$:function(t){return this.$el.find(t)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();this.stopListening();return this},setElement:function(t,i){if(this.$el)this.undelegateEvents();this.$el=t instanceof e.$?t:e.$(t);this.el=this.$el[0];if(i!==false)this.delegateEvents();return this},delegateEvents:function(t){if(!(t||(t=i.result(this,"events"))))return this;this.undelegateEvents();for(var e in t){var r=t[e];if(!i.isFunction(r))r=this[t[e]];if(!r)continue;var s=e.match(x);var n=s[1],a=s[2];r=i.bind(r,this);n+=".delegateEvents"+this.cid;if(a===""){this.$el.on(n,r)}else{this.$el.on(n,a,r)}}return this},undelegateEvents:function(){this.$el.off(".delegateEvents"+this.cid);return this},_ensureElement:function(){if(!this.el){var t=i.extend({},i.result(this,"attributes"));if(this.id)t.id=i.result(this,"id");if(this.className)t["class"]=i.result(this,"className");var r=e.$("<"+i.result(this,"tagName")+">").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('<iframe src="javascript:0" tabindex="-1">');this.iframe=a.hide().appendTo("body")[0].contentWindow;this.navigate(r)}if(this._hasPushState){e.$(window).on("popstate",this.checkUrl)}else if(this._wantsHashChange&&"onhashchange"in window&&!n){e.$(window).on("hashchange",this.checkUrl)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}this.fragment=r;var o=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){this.fragment=this.getFragment(null,true);this.location.replace(this.root+"#"+this.fragment);return true}else if(this._hasPushState&&this.atRoot()&&o.hash){this.fragment=this.getHash().replace(R,"");this.history.replaceState({},document.title,this.root+this.fragment)}}if(!this.options.silent)return this.loadUrl()},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl);if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);N.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getFragment(this.getHash(this.iframe))}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){t=this.fragment=this.getFragment(t);return i.any(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!N.started)return false;if(!e||e===true)e={trigger:!!e};var i=this.root+(t=this.getFragment(t||""));t=t.replace(j,"");if(this.fragment===t)return;this.fragment=t;if(t===""&&i!=="/")i=i.slice(0,-1);if(this._hasPushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,i)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getFragment(this.getHash(this.iframe))){if(!e.replace)this.iframe.document.open().close();this._updateHash(this.iframe.location,t,e.replace)}}else{return this.location.assign(i)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new N;var U=function(t,e){var r=this;var s;if(t&&i.has(t,"constructor")){s=t.constructor}else{s=function(){return r.apply(this,arguments)}}i.extend(s,r,e);var n=function(){this.constructor=s};n.prototype=r.prototype;s.prototype=new n;if(t)i.extend(s.prototype,t);s.__super__=r.prototype;return s};p.extend=g.extend=$.extend=w.extend=N.extend=U;var M=function(){throw new Error('A "url" property or function must be specified')};var q=function(t,e){var i=e.error;e.error=function(r){if(i)i(t,r,e);t.trigger("error",t,r,e)}};return e});
+
+/*!
+ * jQuery Once v2.0.1 - http://github.com/robloach/jquery-once
+ * @license MIT, GPL-2.0
+ *   http://opensource.org/licenses/MIT
+ *   http://opensource.org/licenses/GPL-2.0
+ */
+(function(e){"use strict";if(typeof exports==="object"){e(require("jquery"))}else if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){"use strict";var n=function(e){e=e||"once";if(typeof e!=="string"){throw new Error("The jQuery Once id parameter must be a string")}return e};e.fn.once=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)!==true}).data(r,true)};e.fn.removeOnce=function(e){return this.findOnce(e).removeData("jquery-once-"+n(e))};e.fn.findOnce=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)===true})}});
+
+/**
+ * Base framework for Drupal-specific JavaScript, behaviors, and settings.
+ */
+window.Drupal = {behaviors: {}};
+
+// Class indicating that JS is enabled; used for styling purpose.
+document.documentElement.className += ' js';
+
+// Allow other JavaScript libraries to use $.
+if (window.jQuery) {
+  jQuery.noConflict();
+}
+
+// JavaScript should be made compatible with libraries other than jQuery by
+// wrapping it in an anonymous closure.
+(function (domready, Drupal, drupalSettings, drupalTranslations) {
+
+  "use strict";
+
+  /**
+   * Custom error type thrown after attach/detach if one or more behaviors failed.
+   *
+   * @param list
+   *   An array of errors thrown during attach/detach.
+   * @param event
+   *   A string containing either 'attach' or 'detach'.
+   */
+  function DrupalBehaviorError(list, event) {
+    this.name = 'DrupalBehaviorError';
+    this.event = event || 'attach';
+    this.list = list;
+    // Makes the list of errors readable.
+    var messageList = [];
+    messageList.push(this.event);
+    var il = this.list.length;
+    for (var i = 0; i < il; i++) {
+      messageList.push(this.list[i].behavior + ': ' + this.list[i].error.message);
+    }
+    this.message = messageList.join(' ; ');
+  }
+
+  DrupalBehaviorError.prototype = new Error();
+
+  /**
+   * Attach all registered behaviors to a page element.
+   *
+   * Behaviors are event-triggered actions that attach to page elements, enhancing
+   * default non-JavaScript UIs. Behaviors are registered in the Drupal.behaviors
+   * object using the method 'attach' and optionally also 'detach' as follows:
+   * @code
+   *    Drupal.behaviors.behaviorName = {
+   *      attach: function (context, settings) {
+   *        ...
+   *      },
+   *      detach: function (context, settings, trigger) {
+   *        ...
+   *      }
+   *    };
+   * @endcode
+   *
+   * Drupal.attachBehaviors is added below to the jQuery.ready event and therefore
+   * runs on initial page load. Developers implementing Ajax in their solutions
+   * should also call this function after new page content has been loaded,
+   * feeding in an element to be processed, in order to attach all behaviors to
+   * the new content.
+   *
+   * Behaviors should use
+   * @code
+   *   var elements = $(context).find(selector).once('behavior-name');
+   * @endcode
+   * to ensure the behavior is attached only once to a given element. (Doing so
+   * enables the reprocessing of given elements, which may be needed on occasion
+   * despite the ability to limit behavior attachment to a particular element.)
+   *
+   * @param context
+   *   An element to attach behaviors to. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none is given,
+   *   the global drupalSettings object is used.
+   */
+  Drupal.attachBehaviors = function (context, settings) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].attach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].attach(context, settings);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'attach');
+    }
+  };
+
+  // Attach all behaviors.
+  domready(function () { Drupal.attachBehaviors(document, drupalSettings); });
+
+  /**
+   * Detach registered behaviors from a page element.
+   *
+   * Developers implementing AHAH/Ajax in their solutions should call this
+   * function before page content is about to be removed, feeding in an element
+   * to be processed, in order to allow special behaviors to detach from the
+   * content.
+   *
+   * Such implementations should use .findOnce() and .removeOnce() to find
+   * elements with their corresponding Drupal.behaviors.behaviorName.attach
+   * implementation, i.e. .removeOnce('behaviorName'), to ensure the behavior is
+   * detached only from previously processed elements.
+   *
+   * @param context
+   *   An element to detach behaviors from. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none given, the
+   *   global drupalSettings object is used.
+   * @param trigger
+   *   A string containing what's causing the behaviors to be detached. The
+   *   possible triggers are:
+   *   - unload: (default) The context element is being removed from the DOM.
+   *   - move: The element is about to be moved within the DOM (for example,
+   *     during a tabledrag row swap). After the move is completed,
+   *     Drupal.attachBehaviors() is called, so that the behavior can undo
+   *     whatever it did in response to the move. Many behaviors won't need to
+   *     do anything simply in response to the element being moved, but because
+   *     IFRAME elements reload their "src" when being moved within the DOM,
+   *     behaviors bound to IFRAME elements (like WYSIWYG editors) may need to
+   *     take some action.
+   *   - serialize: When an Ajax form is submitted, this is called with the
+   *     form as the context. This provides every behavior within the form an
+   *     opportunity to ensure that the field elements have correct content
+   *     in them before the form is serialized. The canonical use-case is so
+   *     that WYSIWYG editors can update the hidden textarea to which they are
+   *     bound.
+   *
+   * @see Drupal.attachBehaviors
+   */
+  Drupal.detachBehaviors = function (context, settings, trigger) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    trigger = trigger || 'unload';
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].detach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].detach(context, settings, trigger);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'detach:' + trigger);
+    }
+  };
+
+  /**
+   * Helper to test document width for mobile configurations.
+   * @todo Temporary solution for the mobile initiative.
+   */
+  Drupal.checkWidthBreakpoint = function (width) {
+    width = width || drupalSettings.widthBreakpoint || 640;
+    return (document.documentElement.clientWidth > width);
+  };
+
+  /**
+   * Encode special characters in a plain-text string for display as HTML.
+   *
+   * @param str
+   *   The string to be encoded.
+   * @return
+   *   The encoded string.
+   * @ingroup sanitization
+   */
+  Drupal.checkPlain = function (str) {
+    str = str.toString()
+      .replace(/&/g, '&amp;')
+      .replace(/"/g, '&quot;')
+      .replace(/</g, '&lt;')
+      .replace(/>/g, '&gt;');
+    return str;
+  };
+
+  /**
+   * Replace placeholders with sanitized values in a string.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   An object of replacements pairs to make. Incidences of any key in this
+   *   array are replaced with the corresponding value. Based on the first
+   *   character of the key, the value is escaped and/or themed:
+   *    - !variable: inserted as is
+   *    - @variable: escape plain text to HTML (Drupal.checkPlain)
+   *    - %variable: escape text and theme as a placeholder for user-submitted
+   *      content (checkPlain + Drupal.theme('placeholder'))
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   *
+   * @see Drupal.t()
+   * @ingroup sanitization
+   */
+  Drupal.formatString = function (str, args) {
+    // Keep args intact.
+    var processedArgs = {};
+    // Transform arguments before inserting them.
+    for (var key in args) {
+      if (args.hasOwnProperty(key)) {
+        switch (key.charAt(0)) {
+          // Escaped only.
+          case '@':
+            processedArgs[key] = Drupal.checkPlain(args[key]);
+            break;
+          // Pass-through.
+          case '!':
+            processedArgs[key] = args[key];
+            break;
+          // Escaped and placeholder.
+          default:
+            processedArgs[key] = Drupal.theme('placeholder', args[key]);
+            break;
+        }
+      }
+    }
+
+    return Drupal.stringReplace(str, processedArgs, null);
+  };
+
+  /**
+   * Replace substring.
+   *
+   * The longest keys will be tried first. Once a substring has been replaced,
+   * its new value will not be searched again.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   Key-value pairs.
+   * @param {Array|null} keys
+   *   Array of keys from the "args".  Internal use only.
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   */
+  Drupal.stringReplace = function (str, args, keys) {
+    if (str.length === 0) {
+      return str;
+    }
+
+    // If the array of keys is not passed then collect the keys from the args.
+    if (!Array.isArray(keys)) {
+      keys = [];
+      for (var k in args) {
+        if (args.hasOwnProperty(k)) {
+          keys.push(k);
+        }
+      }
+
+      // Order the keys by the character length. The shortest one is the first.
+      keys.sort(function (a, b) { return a.length - b.length; });
+    }
+
+    if (keys.length === 0) {
+      return str;
+    }
+
+    // Take next longest one from the end.
+    var key = keys.pop();
+    var fragments = str.split(key);
+
+    if (keys.length) {
+      for (var i = 0; i < fragments.length; i++) {
+        // Process each fragment with a copy of remaining keys.
+        fragments[i] = Drupal.stringReplace(fragments[i], args, keys.slice(0));
+      }
+    }
+
+    return fragments.join(args[key]);
+  };
+
+  /**
+   * Translate strings to the page language or a given language.
+   *
+   * See the documentation of the server-side t() function for further details.
+   *
+   * @param str
+   *   A string containing the English string to translate.
+   * @param args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *
+   * @param options
+   *   - 'context' (defaults to the empty context): The context the source string
+   *     belongs to.
+   *
+   * @return
+   *   The translated string.
+   */
+  Drupal.t = function (str, args, options) {
+    options = options || {};
+    options.context = options.context || '';
+
+    // Fetch the localized version of the string.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.strings && drupalTranslations.strings[options.context] && drupalTranslations.strings[options.context][str]) {
+      str = drupalTranslations.strings[options.context][str];
+    }
+
+    if (args) {
+      str = Drupal.formatString(str, args);
+    }
+    return str;
+  };
+
+  /**
+   * Returns the URL to a Drupal page.
+   */
+  Drupal.url = function (path) {
+    return drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + path;
+  };
+
+  /**
+   * Format a string containing a count of items.
+   *
+   * This function ensures that the string is pluralized correctly. Since
+   * Drupal.t() is called by this function, make sure not to pass
+   * already-localized strings to it.
+   *
+   * See the documentation of the server-side
+   * \Drupal\Core\StringTranslation\TranslationInterface::formatPlural()
+   * function for more details.
+   *
+   * @param {Number} count
+   *   The item count to display.
+   * @param {String} singular
+   *   The string for the singular case. Please make sure it is clear this is
+   *   singular, to ease translation (e.g. use "1 new comment" instead of "1
+   *   new"). Do not use @count in the singular string.
+   * @param {String} plural
+   *   The string for the plural case. Please make sure it is clear this is
+   *   plural, to ease translation. Use @count in place of the item count, as in
+   *   "@count new comments".
+   * @param {Object} args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *   Note that you do not need to include @count in this array.
+   *   This replacement is done automatically for the plural case.
+   * @param {Object} options
+   *   The options to pass to the Drupal.t() function.
+   *
+   * @return {String}
+   *   A translated string.
+   */
+  Drupal.formatPlural = function (count, singular, plural, args, options) {
+    args = args || {};
+    args['@count'] = count;
+
+    var pluralDelimiter = drupalSettings.pluralDelimiter;
+    var translations = Drupal.t(singular + pluralDelimiter + plural, args, options).split(pluralDelimiter);
+    var index = 0;
+
+    // Determine the index of the plural form.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.pluralFormula) {
+      index = count in drupalTranslations.pluralFormula ? drupalTranslations.pluralFormula[count] : drupalTranslations.pluralFormula['default'];
+    }
+    else if (args['@count'] !== 1) {
+      index = 1;
+    }
+
+    return translations[index];
+  };
+
+  /**
+   * Encodes a Drupal path for use in a URL.
+   *
+   * For aesthetic reasons slashes are not escaped.
+   */
+  Drupal.encodePath = function (item) {
+    return window.encodeURIComponent(item).replace(/%2F/g, '/');
+  };
+
+  /**
+   * Generate the themed representation of a Drupal object.
+   *
+   * All requests for themed output must go through this function. It examines
+   * the request and routes it to the appropriate theme function. If the current
+   * theme does not provide an override function, the generic theme function is
+   * called.
+   *
+   * For example, to retrieve the HTML for text that should be emphasized and
+   * displayed as a placeholder inside a sentence, call
+   * Drupal.theme('placeholder', text).
+   *
+   * @param func
+   *   The name of the theme function to call.
+   * @param ...
+   *   Additional arguments to pass along to the theme function.
+   * @return
+   *   Any data the theme function returns. This could be a plain HTML string,
+   *   but also a complex object.
+   */
+  Drupal.theme = function (func) {
+    var args = Array.prototype.slice.apply(arguments, [1]);
+    if (func in Drupal.theme) {
+      return Drupal.theme[func].apply(this, args);
+    }
+  };
+
+  /**
+   * Formats text for emphasized display in a placeholder inside a sentence.
+   *
+   * @param str
+   *   The text to format (plain-text).
+   * @return
+   *   The formatted text (html).
+   */
+  Drupal.theme.placeholder = function (str) {
+    return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>';
+  };
+
+})(domready, Drupal, window.drupalSettings, window.drupalTranslations);
+;
+/*!
+ * jQuery UI Core 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,r){var i,s,o,u=t.nodeName.toLowerCase();return"area"===u?(i=t.parentNode,s=i.name,!t.href||!s||i.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap='#"+s+"']")[0],!!o&&n(o))):(/^(input|select|textarea|button|object)$/.test(u)?!t.disabled:"a"===u?t.href||r:r)&&n(t)}function n(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return e.css(this,"visibility")==="hidden"}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var n=this.css("position"),r=n==="absolute",i=t?/(auto|scroll|hidden)/:/(auto|scroll)/,s=this.parents().filter(function(){var t=e(this);return r&&t.css("position")==="static"?!1:i.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return n==="fixed"||!s.length?e(this[0].ownerDocument||document):s},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(n){return t(n,!isNaN(e.attr(n,"tabindex")))},tabbable:function(n){var r=e.attr(n,"tabindex"),i=isNaN(r);return(i||r>=0)&&t(n,!i)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,n){function o(t,n,i,s){return e.each(r,function(){n-=parseFloat(e.css(t,"padding"+this))||0,i&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var r=n==="Width"?["Left","Right"]:["Top","Bottom"],i=n.toLowerCase(),s={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+n]=function(t){return t===undefined?s["inner"+n].call(this):this.each(function(){e(this).css(i,o(this,t)+"px")})},e.fn["outer"+n]=function(t,r){return typeof t!="number"?s["outer"+n].call(this,t):this.each(function(){e(this).css(i,o(this,t,!0,r)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(n,r){return typeof n=="number"?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),r&&r.call(t)},n)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(t!==undefined)return this.css("zIndex",t);if(this.length){var n=e(this[0]),r,i;while(n.length&&n[0]!==document){r=n.css("position");if(r==="absolute"||r==="relative"||r==="fixed"){i=parseInt(n.css("zIndex"),10);if(!isNaN(i)&&i!==0)return i}n=n.parent()}}return 0}}),e.ui.plugin={add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n,r){var i,s=e.plugins[t];if(!s)return;if(!r&&(!e.element[0].parentNode||e.element[0].parentNode.nodeType===11))return;for(i=0;i<s.length;i++)e.options[s[i][0]]&&s[i][1].apply(e.element,n)}}});;
+/*!
+ * jQuery UI Widget 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){var t=0,n=Array.prototype.slice;return e.cleanData=function(t){return function(n){var r,i,s;for(s=0;(i=n[s])!=null;s++)try{r=e._data(i,"events"),r&&r.remove&&e(i).triggerHandler("remove")}catch(o){}t(n)}}(e.cleanData),e.widget=function(t,n,r){var i,s,o,u,a={},f=t.split(".")[0];return t=t.split(".")[1],i=f+"-"+t,r||(r=n,n=e.Widget),e.expr[":"][i.toLowerCase()]=function(t){return!!e.data(t,i)},e[f]=e[f]||{},s=e[f][t],o=e[f][t]=function(e,t){if(!this._createWidget)return new o(e,t);arguments.length&&this._createWidget(e,t)},e.extend(o,s,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),u=new n,u.options=e.widget.extend({},u.options),e.each(r,function(t,r){if(!e.isFunction(r)){a[t]=r;return}a[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},i=function(e){return n.prototype[t].apply(this,e)};return function(){var t=this._super,n=this._superApply,s;return this._super=e,this._superApply=i,s=r.apply(this,arguments),this._super=t,this._superApply=n,s}}()}),o.prototype=e.widget.extend(u,{widgetEventPrefix:s?u.widgetEventPrefix||t:t},a,{constructor:o,namespace:f,widgetName:t,widgetFullName:i}),s?(e.each(s._childConstructors,function(t,n){var r=n.prototype;e.widget(r.namespace+"."+r.widgetName,o,n._proto)}),delete s._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){var r=n.call(arguments,1),i=0,s=r.length,o,u;for(;i<s;i++)for(o in r[i])u=r[i][o],r[i].hasOwnProperty(o)&&u!==undefined&&(e.isPlainObject(u)?t[o]=e.isPlainObject(t[o])?e.widget.extend({},t[o],u):e.widget.extend({},u):t[o]=u);return t},e.widget.bridge=function(t,r){var i=r.prototype.widgetFullName||t;e.fn[t]=function(s){var o=typeof s=="string",u=n.call(arguments,1),a=this;return o?this.each(function(){var n,r=e.data(this,i);if(s==="instance")return a=r,!1;if(!r)return e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+s+"'");if(!e.isFunction(r[s])||s.charAt(0)==="_")return e.error("no such method '"+s+"' for "+t+" widget instance");n=r[s].apply(r,u);if(n!==r&&n!==undefined)return a=n&&n.jquery?a.pushStack(n.get()):n,!1}):(u.length&&(s=e.widget.extend.apply(null,[s].concat(u))),this.each(function(){var t=e.data(this,i);t?(t.option(s||{}),t._init&&t._init()):e.data(this,i,new r(s,this))})),a}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(n,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=t++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),n),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,n){var r=t,i,s,o;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof t=="string"){r={},i=t.split("."),t=i.shift();if(i.length){s=r[t]=e.widget.extend({},this.options[t]);for(o=0;o<i.length-1;o++)s[i[o]]=s[i[o]]||{},s=s[i[o]];t=i.pop();if(arguments.length===1)return s[t]===undefined?null:s[t];s[t]=n}else{if(arguments.length===1)return this.options[t]===undefined?null:this.options[t];r[t]=n}}return this._setOptions(r),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,e==="disabled"&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,n,r){var i,s=this;typeof t!="boolean"&&(r=n,n=t,t=!1),r?(n=i=e(n),this.bindings=this.bindings.add(n)):(r=n,n=this.element,i=this.widget()),e.each(r,function(r,o){function u(){if(!t&&(s.options.disabled===!0||e(this).hasClass("ui-state-disabled")))return;return(typeof o=="string"?s[o]:o).apply(s,arguments)}typeof o!="string"&&(u.guid=o.guid=o.guid||u.guid||e.guid++);var a=r.match(/^([\w:-]*)\s*(.*)$/),f=a[1]+s.eventNamespace,l=a[2];l?i.delegate(l,f,u):n.bind(f,u)})},_off:function(t,n){n=(n||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(n).undelegate(n),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function n(){return(typeof e=="string"?r[e]:e).apply(r,arguments)}var r=this;return setTimeout(n,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,n,r){var i,s,o=this.options[t];r=r||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],s=n.originalEvent;if(s)for(i in s)i in n||(n[i]=s[i]);return this.element.trigger(n,r),!(e.isFunction(o)&&o.apply(this.element[0],[n].concat(r))===!1||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(r,i,s){typeof i=="string"&&(i={effect:i});var o,u=i?i===!0||typeof i=="number"?n:i.effect||n:t;i=i||{},typeof i=="number"&&(i={duration:i}),o=!e.isEmptyObject(i),i.complete=s,i.delay&&r.delay(i.delay),o&&e.effects&&e.effects.effect[u]?r[t](i):u!==t&&r[u]?r[u](i.duration,i.easing,s):r.queue(function(n){e(this)[t](),s&&s.call(r[0]),n()})}}),e.widget});;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module.
+ */
+
+(function ($, Drupal, drupalSettings, _, Backbone, JSON, storage) {
+
+  "use strict";
+
+  var options = $.extend(drupalSettings.contextual,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        open: Drupal.t('Open'),
+        close: Drupal.t('Close')
+      }
+    }
+  );
+
+  // Clear the cached contextual links whenever the current user's set of
+  // permissions changes.
+  var cachedPermissionsHash = storage.getItem('Drupal.contextual.permissionsHash');
+  var permissionsHash = drupalSettings.user.permissionsHash;
+  if (cachedPermissionsHash !== permissionsHash) {
+    if (typeof permissionsHash === 'string') {
+      _.chain(storage).keys().each(function (key) {
+        if (key.substring(0, 18) === 'Drupal.contextual.') {
+          storage.removeItem(key);
+        }
+      });
+    }
+    storage.setItem('Drupal.contextual.permissionsHash', permissionsHash);
+  }
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   * @param string html
+   *   The server-side rendered HTML for this contextual link.
+   */
+  function initContextual($contextual, html) {
+    var $region = $contextual.closest('.contextual-region');
+    var contextual = Drupal.contextual;
+
+    $contextual
+      // Update the placeholder to contain its rendered contextual links.
+      .html(html)
+      // Use the placeholder as a wrapper with a specific class to provide
+      // positioning and behavior attachment context.
+      .addClass('contextual')
+      // Ensure a trigger element exists before the actual contextual links.
+      .prepend(Drupal.theme('contextualTrigger'));
+
+    // Set the destination parameter on each of the contextual links.
+    var destination = 'destination=' + Drupal.encodePath(drupalSettings.path.currentPath);
+    $contextual.find('.contextual-links a').each(function () {
+      var url = this.getAttribute('href');
+      var glue = (url.indexOf('?') === -1) ? '?' : '&';
+      this.setAttribute('href', url + glue + destination);
+    });
+
+    // Create a model and the appropriate views.
+    var model = new contextual.StateModel({
+      title: $region.find('h2').eq(0).text().trim()
+    });
+    var viewOptions = $.extend({el: $contextual, model: model}, options);
+    contextual.views.push({
+      visual: new contextual.VisualView(viewOptions),
+      aural: new contextual.AuralView(viewOptions),
+      keyboard: new contextual.KeyboardView(viewOptions)
+    });
+    contextual.regionViews.push(new contextual.RegionView(
+      $.extend({el: $region, model: model}, options))
+    );
+
+    // Add the model to the collection. This must happen after the views have been
+    // associated with it, otherwise collection change event handlers can't
+    // trigger the model change event handler in its views.
+    contextual.collection.add(model);
+
+    // Let other JavaScript react to the adding of a new contextual link.
+    $(document).trigger('drupalContextualLinkAdded', {
+      $el: $contextual,
+      $region: $region,
+      model: model
+    });
+
+    // Fix visual collisions between contextual link triggers.
+    adjustIfNestedAndOverlapping($contextual);
+  }
+
+  /**
+   * Determines if a contextual link is nested & overlapping, if so: adjusts it.
+   *
+   * This only deals with two levels of nesting; deeper levels are not touched.
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   */
+  function adjustIfNestedAndOverlapping($contextual) {
+    var $contextuals = $contextual
+      // @todo confirm that .closest() is not sufficient
+      .parents('.contextual-region').eq(-1)
+      .find('.contextual');
+
+    // Early-return when there's no nesting.
+    if ($contextuals.length === 1) {
+      return;
+    }
+
+    // If the two contextual links overlap, then we move the second one.
+    var firstTop = $contextuals.eq(0).offset().top;
+    var secondTop = $contextuals.eq(1).offset().top;
+    if (firstTop === secondTop) {
+      var $nestedContextual = $contextuals.eq(1);
+
+      // Retrieve height of nested contextual link.
+      var height = 0;
+      var $trigger = $nestedContextual.find('.trigger');
+      // Elements with the .visually-hidden class have no dimensions, so this
+      // class must be temporarily removed to the calculate the height.
+      $trigger.removeClass('visually-hidden');
+      height = $nestedContextual.height();
+      $trigger.addClass('visually-hidden');
+
+      // Adjust nested contextual link's position.
+      $nestedContextual.css({top: $nestedContextual.position().top + height});
+    }
+  }
+
+  /**
+   * Attaches outline behavior for regions associated with contextual links.
+   *
+   * Events
+   *   Contextual triggers an event that can be used by other scripts.
+   *   - drupalContextualLinkAdded: Triggered when a contextual link is added.
+   */
+  Drupal.behaviors.contextual = {
+    attach: function (context) {
+      var $context = $(context);
+
+      // Find all contextual links placeholders, if any.
+      var $placeholders = $context.find('[data-contextual-id]').once('contextual-render');
+      if ($placeholders.length === 0) {
+        return;
+      }
+
+      // Collect the IDs for all contextual links placeholders.
+      var ids = [];
+      $placeholders.each(function () {
+        ids.push($(this).attr('data-contextual-id'));
+      });
+
+      // Update all contextual links placeholders whose HTML is cached.
+      var uncachedIDs = _.filter(ids, function initIfCached(contextualID) {
+        var html = storage.getItem('Drupal.contextual.' + contextualID);
+        if (html !== null) {
+          // Initialize after the current execution cycle, to make the AJAX
+          // request for retrieving the uncached contextual links as soon as
+          // possible, but also to ensure that other Drupal behaviors have had the
+          // chance to set up an event listener on the Backbone collection
+          // Drupal.contextual.collection.
+          window.setTimeout(function () {
+            initContextual($context.find('[data-contextual-id="' + contextualID + '"]'), html);
+          });
+          return false;
+        }
+        return true;
+      });
+
+      // Perform an AJAX request to let the server render the contextual links for
+      // each of the placeholders.
+      if (uncachedIDs.length > 0) {
+        $.ajax({
+          url: Drupal.url('contextual/render'),
+          type: 'POST',
+          data: {'ids[]': uncachedIDs},
+          dataType: 'json',
+          success: function (results) {
+            _.each(results, function (html, contextualID) {
+              // Store the metadata.
+              storage.setItem('Drupal.contextual.' + contextualID, html);
+              // If the rendered contextual links are empty, then the current user
+              // does not have permission to access the associated links: don't
+              // render anything.
+              if (html.length > 0) {
+                // Update the placeholders to contain its rendered contextual links.
+                // Usually there will only be one placeholder, but it's possible for
+                // multiple identical placeholders exist on the page (probably
+                // because the same content appears more than once).
+                $placeholders = $context.find('[data-contextual-id="' + contextualID + '"]');
+
+                // Initialize the contextual links.
+                for (var i = 0; i < $placeholders.length; i++) {
+                  initContextual($placeholders.eq(i), html);
+                }
+              }
+            });
+          }
+        });
+      }
+    }
+  };
+
+  Drupal.contextual = {
+    // The Drupal.contextual.View instances associated with each list element of
+    // contextual links.
+    views: [],
+
+    // The Drupal.contextual.RegionView instances associated with each contextual
+    // region element.
+    regionViews: []
+  };
+
+  // A Backbone.Collection of Drupal.contextual.StateModel instances.
+  Drupal.contextual.collection = new Backbone.Collection([], {model: Drupal.contextual.StateModel});
+
+  /**
+   * A trigger is an interactive element often bound to a click handler.
+   *
+   * @return String
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.contextualTrigger = function () {
+    return '<button class="trigger visually-hidden focusable" type="button"></button>';
+  };
+
+})(jQuery, Drupal, drupalSettings, _, Backbone, window.JSON, window.sessionStorage);
+;
+/**
+ * @file
+ * A Backbone Model for the state of a contextual link's trigger, list & region.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of a contextual link's trigger, list & region.
+   */
+  Drupal.contextual.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // The title of the entity to which these contextual links apply.
+      title: '',
+      // Represents if the contextual region is being hovered.
+      regionIsHovered: false,
+      // Represents if the contextual trigger or options have focus.
+      hasFocus: false,
+      // Represents if the contextual options for an entity are available to
+      // be selected (i.e. whether the list of options is visible).
+      isOpen: false,
+      // When the model is locked, the trigger remains active.
+      isLocked: false
+    },
+
+    /**
+     * Opens or closes the contextual link.
+     *
+     * If it is opened, then also give focus.
+     */
+    toggleOpen: function () {
+      var newIsOpen = !this.get('isOpen');
+      this.set('isOpen', newIsOpen);
+      if (newIsOpen) {
+        this.focus();
+      }
+      return this;
+    },
+
+    /**
+     * Closes this contextual link.
+     *
+     * Does not call blur() because we want to allow a contextual link to have
+     * focus, yet be closed for example when hovering.
+     */
+    close: function () {
+      this.set('isOpen', false);
+      return this;
+    },
+
+    /**
+     * Gives focus to this contextual link.
+     *
+     * Also closes + removes focus from every other contextual link.
+     */
+    focus: function () {
+      this.set('hasFocus', true);
+      var cid = this.cid;
+      this.collection.each(function (model) {
+        if (model.cid !== cid) {
+          model.close().blur();
+        }
+      });
+      return this;
+    },
+
+    /**
+     * Removes focus from this contextual link, unless it is open.
+     */
+    blur: function () {
+      if (!this.get('isOpen')) {
+        this.set('hasFocus', false);
+      }
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of a contextual link (i.e. screen reader support).
+   */
+  Drupal.contextual.AuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+
+      // Use aria-role form so that the number of items in the list is spoken.
+      this.$el.attr('role', 'form');
+
+      // Initial render.
+      this.render();
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+
+      // Set the hidden property of the links.
+      this.$el.find('.contextual-links')
+        .prop('hidden', !isOpen);
+
+      // Update the view of the trigger.
+      this.$el.find('.trigger')
+        .text(Drupal.t('@action @title configuration options', {
+          '@action': (!isOpen) ? this.options.strings.open : this.options.strings.close,
+          '@title': this.model.get('title')
+        }))
+        .attr('aria-pressed', isOpen);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides keyboard interaction for a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Provides keyboard interaction for a contextual link.
+   */
+  Drupal.contextual.KeyboardView = Backbone.View.extend({
+    events: {
+      'focus .trigger': 'focus',
+      'focus .contextual-links a': 'focus',
+      'blur .trigger': function () { this.model.blur(); },
+      'blur .contextual-links a': function () {
+        // Set up a timeout to allow a user to tab between the trigger and the
+        // contextual links without the menu dismissing.
+        var that = this;
+        this.timer = window.setTimeout(function () {
+          that.model.close().blur();
+        }, 150);
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      // The timer is used to create a delay before dismissing the contextual
+      // links on blur. This is only necessary when keyboard users tab into
+      // contextual links without edit mode (i.e. without TabbingManager).
+      // That means that if we decide to disable tabbing of contextual links
+      // without edit mode, all this timer logic can go away.
+      this.timer = NaN;
+    },
+
+    /**
+     * Sets focus on the model; Clears the timer that dismisses the links.
+     */
+    focus: function () {
+      // Clear the timeout that might have been set by blurring a link.
+      window.clearTimeout(this.timer);
+      this.model.focus();
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that renders the visual view of a contextual region element.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual region element.
+   */
+  Drupal.contextual.RegionView = Backbone.View.extend({
+
+    events: function () {
+      var mapping = {
+        mouseenter: function () { this.model.set('regionIsHovered', true); },
+        mouseleave: function () {
+          this.model.close().blur().set('regionIsHovered', false);
+        }
+      };
+      // We don't want mouse hover events on touch.
+      if (Modernizr.touch) {
+        mapping = {};
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:hasFocus', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.$el.toggleClass('focus', this.model.get('hasFocus'));
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of a contextual link.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual link. Listens to mouse & touch.
+   */
+  Drupal.contextual.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+      var mapping = {
+        'click .trigger': function () { this.model.toggleOpen(); },
+        'touchend .trigger': touchEndToClick,
+        'click .contextual-links a': function () { this.model.close().blur(); },
+        'touchend .contextual-links a': touchEndToClick
+      };
+      // We only want mouse hover events on non-touch.
+      if (!Modernizr.touch) {
+        mapping.mouseenter = function () { this.model.focus(); };
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+      // The trigger should be visible when:
+      //  - the mouse hovered over the region,
+      //  - the trigger is locked,
+      //  - and for as long as the contextual menu is open.
+      var isVisible = this.model.get('isLocked') || this.model.get('regionIsHovered') || isOpen;
+
+      this.$el
+        // The open state determines if the links are visible.
+        .toggleClass('open', isOpen)
+        // Update the visibility of the trigger.
+        .find('.trigger').toggleClass('visually-hidden', !isVisible);
+
+      // Nested contextual region handling: hide any nested contextual triggers.
+      if ('isOpen' in this.model.changed) {
+        this.$el.closest('.contextual-region')
+          .find('.contextual .trigger:not(:first)')
+          .toggle(!isOpen);
+      }
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+(function ($) {
+
+  "use strict";
+
+  /**
+   * This script transforms a set of details into a stack of vertical
+   * tabs. Another tab pane can be selected by clicking on the respective
+   * tab.
+   *
+   * Each tab may have a summary which can be updated by another
+   * script. For that to work, each details element has an associated
+   * 'verticalTabCallback' (with jQuery.data() attached to the details),
+   * which is called every time the user performs an update to a form
+   * element inside the tab pane.
+   */
+  Drupal.behaviors.verticalTabs = {
+    attach: function (context) {
+
+      if (!Drupal.checkWidthBreakpoint()) {
+        return;
+      }
+
+      $(context).find('[data-vertical-tabs-panes]').once('vertical-tabs').each(function () {
+        var $this = $(this).addClass('vertical-tabs__panes');
+        var focusID = $this.find(':hidden.vertical-tabs__active-tab').val();
+        var tab_focus;
+
+        // Check if there are some details that can be converted to vertical-tabs
+        var $details = $this.find('> details');
+        if ($details.length === 0) {
+          return;
+        }
+
+        // Create the tab column.
+        var tab_list = $('<ul class="vertical-tabs__menu"></ul>');
+        $this.wrap('<div class="vertical-tabs clearfix"></div>').before(tab_list);
+
+        // Transform each details into a tab.
+        $details.each(function () {
+          var $that = $(this);
+          var vertical_tab = new Drupal.verticalTab({
+            title: $that.find('> summary').text(),
+            details: $that
+          });
+          tab_list.append(vertical_tab.item);
+          $that
+            .removeClass('collapsed')
+            // prop() can't be used on browsers not supporting details element,
+            // the style won't apply to them if prop() is used.
+            .attr('open', true)
+            .addClass('vertical-tabs__pane')
+            .data('verticalTab', vertical_tab);
+          if (this.id === focusID) {
+            tab_focus = $that;
+          }
+        });
+
+        $(tab_list).find('> li').eq(0).addClass('first');
+        $(tab_list).find('> li').eq(-1).addClass('last');
+
+        if (!tab_focus) {
+          // If the current URL has a fragment and one of the tabs contains an
+          // element that matches the URL fragment, activate that tab.
+          var $locationHash = $this.find(window.location.hash);
+          if (window.location.hash && $locationHash.length) {
+            tab_focus = $locationHash.closest('.vertical-tabs__pane');
+          }
+          else {
+            tab_focus = $this.find('> .vertical-tabs__pane').eq(0);
+          }
+        }
+        if (tab_focus.length) {
+          tab_focus.data('verticalTab').focus();
+        }
+      });
+    }
+  };
+
+  /**
+   * The vertical tab object represents a single tab within a tab group.
+   *
+   * @param settings
+   *   An object with the following keys:
+   *   - title: The name of the tab.
+   *   - details: The jQuery object of the details element that is the tab pane.
+   */
+  Drupal.verticalTab = function (settings) {
+    var self = this;
+    $.extend(this, settings, Drupal.theme('verticalTab', settings));
+
+    this.link.attr('href', '#' + settings.details.attr('id'));
+
+    this.link.on('click', function (e) {
+      e.preventDefault();
+      self.focus();
+    });
+
+    // Keyboard events added:
+    // Pressing the Enter key will open the tab pane.
+    this.link.on('keydown', function (event) {
+      event.preventDefault();
+      if (event.keyCode === 13) {
+        self.focus();
+        // Set focus on the first input field of the visible details/tab pane.
+        $(".vertical-tabs__pane :input:visible:enabled").eq(0).trigger('focus');
+      }
+    });
+
+    this.details
+      .on('summaryUpdated', function () {
+        self.updateSummary();
+      })
+      .trigger('summaryUpdated');
+  };
+
+  Drupal.verticalTab.prototype = {
+    /**
+     * Displays the tab's content pane.
+     */
+    focus: function () {
+      this.details
+        .siblings('.vertical-tabs__pane')
+        .each(function () {
+          var tab = $(this).data('verticalTab');
+          tab.details.hide();
+          tab.item.removeClass('is-selected');
+        })
+        .end()
+        .show()
+        .siblings(':hidden.vertical-tabs__active-tab')
+        .val(this.details.attr('id'));
+      this.item.addClass('is-selected');
+      // Mark the active tab for screen readers.
+      $('#active-vertical-tab').remove();
+      this.link.append('<span id="active-vertical-tab" class="visually-hidden">' + Drupal.t('(active tab)') + '</span>');
+    },
+
+    /**
+     * Updates the tab's summary.
+     */
+    updateSummary: function () {
+      this.summary.html(this.details.drupalGetSummary());
+    },
+
+    /**
+     * Shows a vertical tab pane.
+     */
+    tabShow: function () {
+      // Display the tab.
+      this.item.show();
+      // Show the vertical tabs.
+      this.item.closest('.js-form-type-vertical-tabs').show();
+      // Update .first marker for items. We need recurse from parent to retain the
+      // actual DOM element order as jQuery implements sortOrder, but not as public
+      // method.
+      this.item.parent().children('.vertical-tabs__menu-item').removeClass('first')
+        .filter(':visible').eq(0).addClass('first');
+      // Display the details element.
+      this.details.removeClass('vertical-tab--hidden').show();
+      // Focus this tab.
+      this.focus();
+      return this;
+    },
+
+    /**
+     * Hides a vertical tab pane.
+     */
+    tabHide: function () {
+      // Hide this tab.
+      this.item.hide();
+      // Update .first marker for items. We need recurse from parent to retain the
+      // actual DOM element order as jQuery implements sortOrder, but not as public
+      // method.
+      this.item.parent().children('.vertical-tabs__menu-item').removeClass('first')
+        .filter(':visible').eq(0).addClass('first');
+      // Hide the details element.
+      this.details.addClass('vertical-tab--hidden').hide();
+      // Focus the first visible tab (if there is one).
+      var $firstTab = this.details.siblings('.vertical-tabs__pane:not(.vertical-tab--hidden)').eq(0);
+      if ($firstTab.length) {
+        $firstTab.data('verticalTab').focus();
+      }
+      // Hide the vertical tabs (if no tabs remain).
+      else {
+        this.item.closest('.js-form-type-vertical-tabs').hide();
+      }
+      return this;
+    }
+  };
+
+  /**
+   * Theme function for a vertical tab.
+   *
+   * @param settings
+   *   An object with the following keys:
+   *   - title: The name of the tab.
+   * @return
+   *   This function has to return an object with at least these keys:
+   *   - item: The root tab jQuery element
+   *   - link: The anchor tag that acts as the clickable area of the tab
+   *       (jQuery version)
+   *   - summary: The jQuery element that contains the tab summary
+   */
+  Drupal.theme.verticalTab = function (settings) {
+    var tab = {};
+    tab.item = $('<li class="vertical-tabs__menu-item" tabindex="-1"></li>')
+      .append(tab.link = $('<a href="#"></a>')
+        .append(tab.title = $('<strong class="vertical-tabs__menu-item-title"></strong>').text(settings.title))
+        .append(tab.summary = $('<span class="vertical-tabs__menu-item-summary"></span>')
+        )
+      );
+    return tab;
+  };
+
+})(jQuery);
+;
+/**
+ * @file
+ * Attaches behaviors for Drupal's active link marking.
+ */
+
+(function (Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Append is-active class.
+   *
+   * The link is only active if its path corresponds to the current path, the
+   * language of the linked path is equal to the current language, and if the
+   * query parameters of the link equal those of the current request, since the
+   * same request with different query parameters may yield a different page
+   * (e.g. pagers, exposed View filters).
+   *
+   * Does not discriminate based on element type, so allows you to set the
+   * is-active class on any element: a, li…
+   */
+  Drupal.behaviors.activeLinks = {
+    attach: function (context) {
+      // Start by finding all potentially active links.
+      var path = drupalSettings.path;
+      var queryString = JSON.stringify(path.currentQuery);
+      var querySelector = path.currentQuery ? "[data-drupal-link-query='" + queryString + "']" : ':not([data-drupal-link-query])';
+      var originalSelectors = ['[data-drupal-link-system-path="' + path.currentPath + '"]'];
+      var selectors;
+
+      // If this is the front page, we have to check for the <front> path as well.
+      if (path.isFront) {
+        originalSelectors.push('[data-drupal-link-system-path="<front>"]');
+      }
+
+      // Add language filtering.
+      selectors = [].concat(
+        // Links without any hreflang attributes (most of them).
+        originalSelectors.map(function (selector) { return selector + ':not([hreflang])'; }),
+        // Links with hreflang equals to the current language.
+        originalSelectors.map(function (selector) { return selector + '[hreflang="' + path.currentLanguage + '"]'; })
+      );
+
+      // Add query string selector for pagers, exposed filters.
+      selectors = selectors.map(function (current) { return current + querySelector; });
+
+      // Query the DOM.
+      var activeLinks = context.querySelectorAll(selectors.join(','));
+      var il = activeLinks.length;
+      for (var i = 0; i < il; i++) {
+        activeLinks[i].classList.add('is-active');
+      }
+    },
+    detach: function (context, settings, trigger) {
+      if (trigger === 'unload') {
+        var activeLinks = context.querySelectorAll('[data-drupal-link-system-path].is-active');
+        var il = activeLinks.length;
+        for (var i = 0; i < il; i++) {
+          activeLinks[i].classList.remove('is-active');
+        }
+      }
+    }
+  };
+
+})(Drupal, drupalSettings);
+;
+/**
+ * Limits the invocations of a function in a given time frame.
+ *
+ * Adapted from underscore.js with the addition Drupal namespace.
+ *
+ * The debounce function wrapper should be used sparingly. One clear use case
+ * is limiting the invocation of a callback attached to the window resize event.
+ *
+ * Before using the debounce function wrapper, consider first whether the
+ * callback could be attached to an event that fires less frequently or if the
+ * function can be written in such a way that it is only invoked under specific
+ * conditions.
+ *
+ * @param {Function} callback
+ *   The function to be invoked.
+ *
+ * @param {Number} wait
+ *   The time period within which the callback function should only be
+ *   invoked once. For example if the wait period is 250ms, then the callback
+ *   will only be called at most 4 times per second.
+ */
+Drupal.debounce = function (func, wait, immediate) {
+
+  "use strict";
+
+  var timeout;
+  var result;
+  return function () {
+    var context = this;
+    var args = arguments;
+    var later = function () {
+      timeout = null;
+      if (!immediate) {
+        result = func.apply(context, args);
+      }
+    };
+    var callNow = immediate && !timeout;
+    clearTimeout(timeout);
+    timeout = setTimeout(later, wait);
+    if (callNow) {
+      result = func.apply(context, args);
+    }
+    return result;
+  };
+};
+;
+/*! jquery.cookie v1.4.1 | MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});;
+(function ($, Drupal, debounce) {
+
+  "use strict";
+
+  /**
+   * Retrieves the summary for the first element.
+   */
+  $.fn.drupalGetSummary = function () {
+    var callback = this.data('summaryCallback');
+    return (this[0] && callback) ? $.trim(callback(this[0])) : '';
+  };
+
+  /**
+   * Sets the summary for all matched elements.
+   *
+   * @param callback
+   *   Either a function that will be called each time the summary is
+   *   retrieved or a string (which is returned each time).
+   */
+  $.fn.drupalSetSummary = function (callback) {
+    var self = this;
+
+    // To facilitate things, the callback should always be a function. If it's
+    // not, we wrap it into an anonymous function which just returns the value.
+    if (typeof callback !== 'function') {
+      var val = callback;
+      callback = function () { return val; };
+    }
+
+    return this
+      .data('summaryCallback', callback)
+      // To prevent duplicate events, the handlers are first removed and then
+      // (re-)added.
+      .off('formUpdated.summary')
+      .on('formUpdated.summary', function () {
+        self.trigger('summaryUpdated');
+      })
+      // The actual summaryUpdated handler doesn't fire when the callback is
+      // changed, so we have to do this manually.
+      .trigger('summaryUpdated');
+  };
+
+  /**
+   * Prevents consecutive form submissions of identical form values.
+   *
+   * Repetitive form submissions that would submit the identical form values are
+   * prevented, unless the form values are different to the previously submitted
+   * values.
+   *
+   * This is a simplified re-implementation of a user-agent behavior that should
+   * be natively supported by major web browsers, but at this time, only Firefox
+   * has a built-in protection.
+   *
+   * A form value-based approach ensures that the constraint is triggered for
+   * consecutive, identical form submissions only. Compared to that, a form
+   * button-based approach would (1) rely on [visible] buttons to exist where
+   * technically not required and (2) require more complex state management if
+   * there are multiple buttons in a form.
+   *
+   * This implementation is based on form-level submit events only and relies on
+   * jQuery's serialize() method to determine submitted form values. As such, the
+   * following limitations exist:
+   *
+   * - Event handlers on form buttons that preventDefault() do not receive a
+   *   double-submit protection. That is deemed to be fine, since such button
+   *   events typically trigger reversible client-side or server-side operations
+   *   that are local to the context of a form only.
+   * - Changed values in advanced form controls, such as file inputs, are not part
+   *   of the form values being compared between consecutive form submits (due to
+   *   limitations of jQuery.serialize()). That is deemed to be acceptable,
+   *   because if the user forgot to attach a file, then the size of HTTP payload
+   *   will most likely be small enough to be fully passed to the server endpoint
+   *   within (milli)seconds. If a user mistakenly attached a wrong file and is
+   *   technically versed enough to cancel the form submission (and HTTP payload)
+   *   in order to attach a different file, then that edge-case is not supported
+   *   here.
+   *
+   * Lastly, all forms submitted via HTTP GET are idempotent by definition of HTTP
+   * standards, so excluded in this implementation.
+   */
+  Drupal.behaviors.formSingleSubmit = {
+    attach: function () {
+      function onFormSubmit(e) {
+        var $form = $(e.currentTarget);
+        var formValues = $form.serialize();
+        var previousValues = $form.attr('data-drupal-form-submit-last');
+        if (previousValues === formValues) {
+          e.preventDefault();
+        }
+        else {
+          $form.attr('data-drupal-form-submit-last', formValues);
+        }
+      }
+
+      $('body').once('form-single-submit')
+        .on('submit.singleSubmit', 'form:not([method~="GET"])', onFormSubmit);
+    }
+  };
+
+  /**
+   * Sends a 'formUpdated' event each time a form element is modified.
+   */
+  function triggerFormUpdated(element) {
+    $(element).trigger('formUpdated');
+  }
+
+  /**
+   * Collects the IDs of all form fields in the given form.
+   *
+   * @param {HTMLFormElement} form
+   * @return {Array}
+   */
+  function fieldsList(form) {
+    var $fieldList = $(form).find('[name]').map(function (index, element) {
+      // We use id to avoid name duplicates on radio fields and filter out
+      // elements with a name but no id.
+      return element.getAttribute('id');
+    });
+    // Return a true array.
+    return $.makeArray($fieldList);
+  }
+
+  /**
+   * Triggers the 'formUpdated' event on form elements when they are modified.
+   */
+  Drupal.behaviors.formUpdated = {
+    attach: function (context) {
+      var $context = $(context);
+      var contextIsForm = $context.is('form');
+      var $forms = (contextIsForm ? $context : $context.find('form')).once('form-updated');
+      var formFields;
+
+      if ($forms.length) {
+        // Initialize form behaviors, use $.makeArray to be able to use native
+        // forEach array method and have the callback parameters in the right order.
+        $.makeArray($forms).forEach(function (form) {
+          var events = 'change.formUpdated keypress.formUpdated';
+          var eventHandler = debounce(function (event) { triggerFormUpdated(event.target); }, 300);
+          formFields = fieldsList(form).join(',');
+
+          form.setAttribute('data-drupal-form-fields', formFields);
+          $(form).on(events, eventHandler);
+        });
+      }
+      // On ajax requests context is the form element.
+      if (contextIsForm) {
+        formFields = fieldsList(context).join(',');
+        // @todo replace with form.getAttribute() when #1979468 is in.
+        var currentFields = $(context).attr('data-drupal-form-fields');
+        // if there has been a change in the fields or their order, trigger
+        // formUpdated.
+        if (formFields !== currentFields) {
+          triggerFormUpdated(context);
+        }
+      }
+
+    },
+    detach: function (context, settings, trigger) {
+      var $context = $(context);
+      var contextIsForm = $context.is('form');
+      if (trigger === 'unload') {
+        var $forms = (contextIsForm ? $context : $context.find('form')).removeOnce('form-updated');
+        if ($forms.length) {
+          $.makeArray($forms).forEach(function (form) {
+            form.removeAttribute('data-drupal-form-fields');
+            $(form).off('.formUpdated');
+          });
+        }
+      }
+    }
+  };
+
+  /**
+   * Prepopulate form fields with information from the visitor browser.
+   */
+  Drupal.behaviors.fillUserInfoFromBrowser = {
+    attach: function (context, settings) {
+      var userInfo = ['name', 'mail', 'homepage'];
+      var $forms = $('[data-user-info-from-browser]').once('user-info-from-browser');
+      if ($forms.length) {
+        userInfo.map(function (info) {
+          var $element = $forms.find('[name=' + info + ']');
+          var browserData = localStorage.getItem('Drupal.visitor.' + info);
+          var emptyOrDefault = ($element.val() === '' || ($element.attr('data-drupal-default-value') === $element.val()));
+          if ($element.length && emptyOrDefault && browserData) {
+            $element.val(browserData);
+          }
+        });
+      }
+      $forms.on('submit', function () {
+        userInfo.map(function (info) {
+          var $element = $forms.find('[name=' + info + ']');
+          if ($element.length) {
+            localStorage.setItem('Drupal.visitor.' + info, $element.val());
+          }
+        });
+      });
+    }
+  };
+
+})(jQuery, Drupal, Drupal.debounce);
+;
+(function ($, Modernizr, Drupal) {
+
+  "use strict";
+
+  /**
+   * The collapsible details object represents a single collapsible details element.
+   */
+  function CollapsibleDetails(node) {
+    this.$node = $(node);
+    this.$node.data('details', this);
+    // Expand details if there are errors inside, or if it contains an
+    // element that is targeted by the URI fragment identifier.
+    var anchor = location.hash && location.hash !== '#' ? ', ' + location.hash : '';
+    if (this.$node.find('.error' + anchor).length) {
+      this.$node.attr('open', true);
+    }
+    // Initialize and setup the summary,
+    this.setupSummary();
+    // Initialize and setup the legend.
+    this.setupLegend();
+  }
+
+  /**
+   * Extend CollapsibleDetails function.
+   */
+  $.extend(CollapsibleDetails, {
+    /**
+     * Holds references to instantiated CollapsibleDetails objects.
+     */
+    instances: []
+  });
+
+  /**
+   * Extend CollapsibleDetails prototype.
+   */
+  $.extend(CollapsibleDetails.prototype, {
+    /**
+     * Initialize and setup summary events and markup.
+     */
+    setupSummary: function () {
+      this.$summary = $('<span class="summary"></span>');
+      this.$node
+        .on('summaryUpdated', $.proxy(this.onSummaryUpdated, this))
+        .trigger('summaryUpdated');
+    },
+    /**
+     * Initialize and setup legend markup.
+     */
+    setupLegend: function () {
+      // Turn the summary into a clickable link.
+      var $legend = this.$node.find('> summary');
+
+      $('<span class="details-summary-prefix visually-hidden"></span>')
+        .append(this.$node.attr('open') ? Drupal.t('Hide') : Drupal.t('Show'))
+        .prependTo($legend)
+        .after(document.createTextNode(' '));
+
+      // .wrapInner() does not retain bound events.
+      $('<a class="details-title"></a>')
+        .attr('href', '#' + this.$node.attr('id'))
+        .prepend($legend.contents())
+        .appendTo($legend);
+
+      $legend
+        .append(this.$summary)
+        .on('click', $.proxy(this.onLegendClick, this));
+    },
+    /**
+     * Handle legend clicks
+     */
+    onLegendClick: function (e) {
+      this.toggle();
+      e.preventDefault();
+    },
+    /**
+     * Update summary
+     */
+    onSummaryUpdated: function () {
+      var text = $.trim(this.$node.drupalGetSummary());
+      this.$summary.html(text ? ' (' + text + ')' : '');
+    },
+    /**
+     * Toggle the visibility of a details element using smooth animations.
+     */
+    toggle: function () {
+      var isOpen = !!this.$node.attr('open');
+      var $summaryPrefix = this.$node.find('> summary span.details-summary-prefix');
+      if (isOpen) {
+        $summaryPrefix.html(Drupal.t('Show'));
+      }
+      else {
+        $summaryPrefix.html(Drupal.t('Hide'));
+      }
+      this.$node.attr('open', !isOpen);
+    }
+  });
+
+  Drupal.behaviors.collapse = {
+    attach: function (context) {
+      if (Modernizr.details) {
+        return;
+      }
+      var $collapsibleDetails = $(context).find('details').once('collapse').addClass('collapse-processed');
+      if ($collapsibleDetails.length) {
+        for (var i = 0; i < $collapsibleDetails.length; i++) {
+          CollapsibleDetails.instances.push(new CollapsibleDetails($collapsibleDetails[i]));
+        }
+      }
+    }
+  };
+
+  // Expose constructor in the public space.
+  Drupal.CollapsibleDetails = CollapsibleDetails;
+
+})(jQuery, Modernizr, Drupal);
+;
+/**
+ * @file
+ * Defines Javascript behaviors for the block_content module.
+ */
+
+(function ($) {
+
+  "use strict";
+
+  Drupal.behaviors.blockContentDetailsSummaries = {
+    attach: function (context) {
+      var $context = $(context);
+      $context.find('.block-content-form-revision-information').drupalSetSummary(function (context) {
+        var $revisionContext = $(context);
+        var revisionCheckbox = $revisionContext.find('.form-item-revision input');
+
+        // Return 'New revision' if the 'Create new revision' checkbox is checked,
+        // or if the checkbox doesn't exist, but the revision log does. For users
+        // without the "Administer content" permission the checkbox won't appear,
+        // but the revision log will if the content type is set to auto-revision.
+        if (revisionCheckbox.is(':checked') || (!revisionCheckbox.length && $revisionContext.find('.form-item-revision-log textarea').length)) {
+          return Drupal.t('New revision');
+        }
+
+        return Drupal.t('No revision');
+      });
+
+      $context.find('fieldset.block-content-translation-options').drupalSetSummary(function (context) {
+        var $translationContext = $(context);
+        var translate;
+        var $checkbox = $translationContext.find('.form-item-translation-translate input');
+
+        if ($checkbox.size()) {
+          translate = $checkbox.is(':checked') ? Drupal.t('Needs to be updated') : Drupal.t('Does not need to be updated');
+        }
+        else {
+          $checkbox = $translationContext.find('.form-item-translation-retranslate input');
+          translate = $checkbox.is(':checked') ? Drupal.t('Flag other translations as outdated') : Drupal.t('Do not flag other translations as outdated');
+        }
+
+        return translate;
+      });
+    }
+  };
+
+})(jQuery);
+;
+/**
+ * @file
+ * Attaches behavior for the Filter module.
+ */
+
+(function ($) {
+
+  "use strict";
+
+  /**
+   * Displays the guidelines of the selected text format automatically.
+   */
+  Drupal.behaviors.filterGuidelines = {
+    attach: function (context) {
+
+      function updateFilterGuidelines(event) {
+        var $this = $(event.target);
+        var value = $this.val();
+        $this.closest('.filter-wrapper')
+          .find('.filter-guidelines-item').hide()
+          .filter('.filter-guidelines-' + value).show();
+      }
+
+      $(context).find('.filter-guidelines').once('filter-guidelines')
+        .find(':header').hide()
+        .closest('.filter-wrapper').find('select.filter-list')
+        .on('change.filterGuidelines', updateFilterGuidelines)
+        // Need to trigger the namespaced event to avoid triggering formUpdated
+        // when initializing the select.
+        .trigger('change.filterGuidelines');
+    }
+  };
+
+})(jQuery);
+;
+/**
+ * Manages elements that can offset the size of the viewport.
+ *
+ * Measures and reports viewport offset dimensions from elements like the
+ * toolbar that can potentially displace the positioning of other elements.
+ */
+(function ($, Drupal, debounce) {
+
+  "use strict";
+
+  var offsets = {
+    top: 0,
+    right: 0,
+    bottom: 0,
+    left: 0
+  };
+
+  /**
+   * Registers a resize handler on the window.
+   */
+  Drupal.behaviors.drupalDisplace = {
+    attach: function () {
+      // Mark this behavior as processed on the first pass.
+      if (this.displaceProcessed) {
+        return;
+      }
+      this.displaceProcessed = true;
+
+      $(window).on('resize.drupalDisplace', debounce(displace, 200));
+    }
+  };
+
+  /**
+   * Informs listeners of the current offset dimensions.
+   *
+   * @param {boolean} broadcast
+   *   (optional) When true or undefined, causes the recalculated offsets values to be
+   *   broadcast to listeners.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function displace(broadcast) {
+    offsets = Drupal.displace.offsets = calculateOffsets();
+    if (typeof broadcast === 'undefined' || broadcast) {
+      $(document).trigger('drupalViewportOffsetChange', offsets);
+    }
+    return offsets;
+  }
+
+  /**
+   * Determines the viewport offsets.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function calculateOffsets() {
+    return {
+      top: calculateOffset('top'),
+      right: calculateOffset('right'),
+      bottom: calculateOffset('bottom'),
+      left: calculateOffset('left')
+    };
+  }
+
+  /**
+   * Gets a specific edge's offset.
+   *
+   * Any element with the attribute data-offset-{edge} e.g. data-offset-top will
+   * be considered in the viewport offset calculations. If the attribute has a
+   * numeric value, that value will be used. If no value is provided, one will
+   * be calculated using the element's dimensions and placement.
+   *
+   * @param {string} edge
+   *   The name of the edge to calculate. Can be 'top', 'right',
+   *   'bottom' or 'left'.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function calculateOffset(edge) {
+    var edgeOffset = 0;
+    var displacingElements = document.querySelectorAll('[data-offset-' + edge + ']');
+    var n = displacingElements.length;
+    for (var i = 0; i < n; i++) {
+      var el = displacingElements[i];
+      // If the element is not visible, do consider its dimensions.
+      if (el.style.display === 'none') {
+        continue;
+      }
+      // If the offset data attribute contains a displacing value, use it.
+      var displacement = parseInt(el.getAttribute('data-offset-' + edge), 10);
+      // If the element's offset data attribute exits
+      // but is not a valid number then get the displacement
+      // dimensions directly from the element.
+      if (isNaN(displacement)) {
+        displacement = getRawOffset(el, edge);
+      }
+      // If the displacement value is larger than the current value for this
+      // edge, use the displacement value.
+      edgeOffset = Math.max(edgeOffset, displacement);
+    }
+
+    return edgeOffset;
+  }
+
+  /**
+   * Calculates displacement for element based on its dimensions and placement.
+   *
+   * @param {jQuery} $el
+   *   The jQuery element whose dimensions and placement will be measured.
+   *
+   * @param {string} edge
+   *   The name of the edge of the viewport that the element is associated
+   *   with.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function getRawOffset(el, edge) {
+    var $el = $(el);
+    var documentElement = document.documentElement;
+    var displacement = 0;
+    var horizontal = (edge === 'left' || edge === 'right');
+    // Get the offset of the element itself.
+    var placement = $el.offset()[horizontal ? 'left' : 'top'];
+    // Subtract scroll distance from placement to get the distance
+    // to the edge of the viewport.
+    placement -= window['scroll' + (horizontal ? 'X' : 'Y')] || document.documentElement['scroll' + (horizontal) ? 'Left' : 'Top'] || 0;
+    // Find the displacement value according to the edge.
+    switch (edge) {
+      // Left and top elements displace as a sum of their own offset value
+      // plus their size.
+      case 'top':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerHeight();
+        break;
+
+      case 'left':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerWidth();
+        break;
+
+      // Right and bottom elements displace according to their left and
+      // top offset. Their size isn't important.
+      case 'bottom':
+        displacement = documentElement.clientHeight - placement;
+        break;
+
+      case 'right':
+        displacement = documentElement.clientWidth - placement;
+        break;
+
+      default:
+        displacement = 0;
+    }
+    return displacement;
+  }
+
+  /**
+   * Assign the displace function to a property of the Drupal global object.
+   */
+  Drupal.displace = displace;
+  $.extend(Drupal.displace, {
+    /**
+     * Expose offsets to other scripts to avoid having to recalculate offsets
+     */
+    offsets: offsets,
+    /**
+     * Expose method to compute a single edge offsets.
+     */
+    calculateOffset: calculateOffset
+  });
+
+})(jQuery, Drupal, Drupal.debounce);
+;
+/*!
+ * jQuery UI Button 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/button/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./widget"],e):e(jQuery)})(function(e){var t,n="ui-button ui-widget ui-state-default ui-corner-all",r="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",i=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},s=function(t){var n=t.name,r=t.form,i=e([]);return n&&(n=n.replace(/'/g,"\\'"),r?i=e(r).find("[name='"+n+"'][type=radio]"):i=e("[name='"+n+"'][type=radio]",t.ownerDocument).filter(function(){return!this.form})),i};return e.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,i),typeof this.options.disabled!="boolean"?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var r=this,o=this.options,u=this.type==="checkbox"||this.type==="radio",a=u?"":"ui-state-active";o.label===null&&(o.label=this.type==="input"?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(n).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){if(o.disabled)return;this===t&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){if(o.disabled)return;e(this).removeClass(a)}).bind("click"+this.eventNamespace,function(e){o.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),u&&this.element.bind("change"+this.eventNamespace,function(){r.refresh()}),this.type==="checkbox"?this.buttonElement.bind("click"+this.eventNamespace,function(){if(o.disabled)return!1}):this.type==="radio"?this.buttonElement.bind("click"+this.eventNamespace,function(){if(o.disabled)return!1;e(this).addClass("ui-state-active"),r.buttonElement.attr("aria-pressed","true");var t=r.element[0];s(t).not(t).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){if(o.disabled)return!1;e(this).addClass("ui-state-active"),t=this,r.document.one("mouseup",function(){t=null})}).bind("mouseup"+this.eventNamespace,function(){if(o.disabled)return!1;e(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(t){if(o.disabled)return!1;(t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active")}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",o.disabled),this._resetButton()},_determineButtonType:function(){var e,t,n;this.element.is("[type=checkbox]")?this.type="checkbox":this.element.is("[type=radio]")?this.type="radio":this.element.is("input")?this.type="input":this.type="button",this.type==="checkbox"||this.type==="radio"?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),n=this.element.is(":checked"),n&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",n)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(n+" ui-state-active "+r).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){this._super(e,t);if(e==="disabled"){this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),t&&(this.type==="checkbox"||this.type==="radio"?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active"));return}this._resetButton()},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),this.type==="radio"?s(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):this.type==="checkbox"&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if(this.type==="input"){this.options.label&&this.element.val(this.options.label);return}var t=this.buttonElement.removeClass(r),n=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),i=this.options.icons,s=i.primary&&i.secondary,o=[];i.primary||i.secondary?(this.options.text&&o.push("ui-button-text-icon"+(s?"s":i.primary?"-primary":"-secondary")),i.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+i.primary+"'></span>"),i.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+i.secondary+"'></span>"),this.options.text||(o.push(s?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(n)))):o.push("ui-button-text-only"),t.addClass(o.join(" "))}}),e.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){e==="disabled"&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t=this.element.css("direction")==="rtl",n=this.element.find(this.options.items),r=n.filter(":ui-button");n.not(":ui-button").button(),r.button("refresh"),this.buttons=n.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}}),e.ui.button});;
+/*!
+ * jQuery UI Mouse 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/mouse/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./widget"],e):e(jQuery)})(function(e){var t=!1;return e(document).mouseup(function(){t=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(n){if(!0===e.data(n.target,t.widgetName+".preventClickEvent"))return e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(n){if(t)return;this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(n),this._mouseDownEvent=n;var r=this,i=n.which===1,s=typeof this.options.cancel=="string"&&n.target.nodeName?e(n.target).closest(this.options.cancel).length:!1;if(!i||s||!this._mouseCapture(n))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){r.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(n)&&this._mouseDelayMet(n)){this._mouseStarted=this._mouseStart(n)!==!1;if(!this._mouseStarted)return n.preventDefault(),!0}return!0===e.data(n.target,this.widgetName+".preventClickEvent")&&e.removeData(n.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return r._mouseMove(e)},this._mouseUpDelegate=function(e){return r._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),n.preventDefault(),t=!0,!0},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}if(t.which||t.button)this._mouseMoved=!0;return this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(n){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,n.target===this._mouseDownEvent.target&&e.data(n.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(n)),t=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})});;
+/*!
+ * jQuery UI Draggable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/draggable/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./mouse","./widget"],e):e(jQuery)})(function(e){return e.widget("ui.draggable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){this.options.helper==="original"&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),e==="handle"&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){if((this.helper||this.element).is(".ui-draggable-dragging")){this.destroyOnClear=!0;return}this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy()},_mouseCapture:function(t){var n=this.options;return this._blurActiveElement(t),this.helper||n.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(this._blockFrames(n.iframeFix===!0?"iframe":n.iframeFix),!0):!1)},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this);return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var n=this.document[0];if(!this.handleElement.is(t.target))return;try{n.activeElement&&n.activeElement.nodeName.toLowerCase()!=="body"&&e(n.activeElement).blur()}catch(r){}},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return e(this).css("position")==="fixed"}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._normalizeRightBottom(),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,n){this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=this,r=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(r=e.ui.ddmanager.drop(this,t)),this.dropped&&(r=this.dropped,this.dropped=!1),this.options.revert==="invalid"&&!r||this.options.revert==="valid"&&r||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,r)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){n._trigger("stop",t)!==!1&&n._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper),i=r?e(n.helper.apply(this.element[0],[t])):n.helper==="clone"?this.element.clone().removeAttr("id"):this.element;return i.parents("body").length||i.appendTo(n.appendTo==="parent"?this.element[0].parentNode:n.appendTo),r&&i[0]===this.element[0]&&this._setPositionRelative(),i[0]!==this.element[0]&&!/(fixed|absolute)/.test(i.css("position"))&&i.css("position","absolute"),i},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),n=this.document[0];return this.cssPosition==="absolute"&&this.scrollParent[0]!==n&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition!=="relative")return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,r,i=this.options,s=this.document[0];this.relativeContainer=null;if(!i.containment){this.containment=null;return}if(i.containment==="window"){this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||s.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return}if(i.containment==="document"){this.containment=[0,0,e(s).width()-this.helperProportions.width-this.margins.left,(e(s).height()||s.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return}if(i.containment.constructor===Array){this.containment=i.containment;return}i.containment==="parent"&&(i.containment=this.helper[0].parentNode),n=e(i.containment),r=n[0];if(!r)return;t=/(scroll|auto)/.test(n.css("overflow")),this.containment=[(parseInt(n.css("borderLeftWidth"),10)||0)+(parseInt(n.css("paddingLeft"),10)||0),(parseInt(n.css("borderTopWidth"),10)||0)+(parseInt(n.css("paddingTop"),10)||0),(t?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(n.css("borderRightWidth"),10)||0)-(parseInt(n.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(n.css("borderBottomWidth"),10)||0)-(parseInt(n.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=n},_convertPositionTo:function(e,t){t||(t=this.position);var n=e==="absolute"?1:-1,r=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*n+this.offset.parent.top*n-(this.cssPosition==="fixed"?-this.offset.scroll.top:r?0:this.offset.scroll.top)*n,left:t.left+this.offset.relative.left*n+this.offset.parent.left*n-(this.cssPosition==="fixed"?-this.offset.scroll.left:r?0:this.offset.scroll.left)*n}},_generatePosition:function(e,t){var n,r,i,s,o=this.options,u=this._isRootNode(this.scrollParent[0]),a=e.pageX,f=e.pageY;if(!u||!this.offset.scroll)this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()};return t&&(this.containment&&(this.relativeContainer?(r=this.relativeContainer.offset(),n=[this.containment[0]+r.left,this.containment[1]+r.top,this.containment[2]+r.left,this.containment[3]+r.top]):n=this.containment,e.pageX-this.offset.click.left<n[0]&&(a=n[0]+this.offset.click.left),e.pageY-this.offset.click.top<n[1]&&(f=n[1]+this.offset.click.top),e.pageX-this.offset.click.left>n[2]&&(a=n[2]+this.offset.click.left),e.pageY-this.offset.click.top>n[3]&&(f=n[3]+this.offset.click.top)),o.grid&&(i=o.grid[1]?this.originalPageY+Math.round((f-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,f=n?i-this.offset.click.top>=n[1]||i-this.offset.click.top>n[3]?i:i-this.offset.click.top>=n[1]?i-o.grid[1]:i+o.grid[1]:i,s=o.grid[0]?this.originalPageX+Math.round((a-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,a=n?s-this.offset.click.left>=n[0]||s-this.offset.click.left>n[2]?s:s-this.offset.click.left>=n[0]?s-o.grid[0]:s+o.grid[0]:s),o.axis==="y"&&(a=this.originalPageX),o.axis==="x"&&(f=this.originalPageY)),{top:f-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition==="fixed"?-this.offset.scroll.top:u?0:this.offset.scroll.top),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition==="fixed"?-this.offset.scroll.left:u?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!==this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){this.options.axis!=="y"&&this.helper.css("right")!=="auto"&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),this.options.axis!=="x"&&this.helper.css("bottom")!=="auto"&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(t,n,r){return r=r||this._uiHash(),e.ui.plugin.call(this,t,[n,r,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),r.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,n,r)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,n,r){var i=e.extend({},n,{item:r.element});r.sortables=[],e(r.options.connectToSortable).each(function(){var n=e(this).sortable("instance");n&&!n.options.disabled&&(r.sortables.push(n),n.refreshPositions(),n._trigger("activate",t,i))})},stop:function(t,n,r){var i=e.extend({},n,{item:r.element});r.cancelHelperRemoval=!1,e.each(r.sortables,function(){var e=this;e.isOver?(e.isOver=0,r.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,i))})},drag:function(t,n,r){e.each(r.sortables,function(){var i=!1,s=this;s.positionAbs=r.positionAbs,s.helperProportions=r.helperProportions,s.offset.click=r.offset.click,s._intersectsWith(s.containerCache)&&(i=!0,e.each(r.sortables,function(){return this.positionAbs=r.positionAbs,this.helperProportions=r.helperProportions,this.offset.click=r.offset.click,this!==s&&this._intersectsWith(this.containerCache)&&e.contains(s.element[0],this.element[0])&&(i=!1),i})),i?(s.isOver||(s.isOver=1,r._parent=n.helper.parent(),s.currentItem=n.helper.appendTo(s.element).data("ui-sortable-item",!0),s.options._helper=s.options.helper,s.options.helper=function(){return n.helper[0]},t.target=s.currentItem[0],s._mouseCapture(t,!0),s._mouseStart(t,!0,!0),s.offset.click.top=r.offset.click.top,s.offset.click.left=r.offset.click.left,s.offset.parent.left-=r.offset.parent.left-s.offset.parent.left,s.offset.parent.top-=r.offset.parent.top-s.offset.parent.top,r._trigger("toSortable",t),r.dropped=s.element,e.each(r.sortables,function(){this.refreshPositions()}),r.currentItem=r.element,s.fromOutside=r),s.currentItem&&(s._mouseDrag(t),n.position=s.position)):s.isOver&&(s.isOver=0,s.cancelHelperRemoval=!0,s.options._revert=s.options.revert,s.options.revert=!1,s._trigger("out",t,s._uiHash(s)),s._mouseStop(t,!0),s.options.revert=s.options._revert,s.options.helper=s.options._helper,s.placeholder&&s.placeholder.remove(),n.helper.appendTo(r._parent),r._refreshOffsets(t),n.position=r._generatePosition(t,!0),r._trigger("fromSortable",t),r.dropped=!1,e.each(r.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,n,r){var i=e("body"),s=r.options;i.css("cursor")&&(s._cursor=i.css("cursor")),i.css("cursor",s.cursor)},stop:function(t,n,r){var i=r.options;i._cursor&&e("body").css("cursor",i._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n,r){var i=e(n.helper),s=r.options;i.css("opacity")&&(s._opacity=i.css("opacity")),i.css("opacity",s.opacity)},stop:function(t,n,r){var i=r.options;i._opacity&&e(n.helper).css("opacity",i._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&n.scrollParentNotHidden[0].tagName!=="HTML"&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(t,n,r){var i=r.options,s=!1,o=r.scrollParentNotHidden[0],u=r.document[0];if(o!==u&&o.tagName!=="HTML"){if(!i.axis||i.axis!=="x")r.overflowOffset.top+o.offsetHeight-t.pageY<i.scrollSensitivity?o.scrollTop=s=o.scrollTop+i.scrollSpeed:t.pageY-r.overflowOffset.top<i.scrollSensitivity&&(o.scrollTop=s=o.scrollTop-i.scrollSpeed);if(!i.axis||i.axis!=="y")r.overflowOffset.left+o.offsetWidth-t.pageX<i.scrollSensitivity?o.scrollLeft=s=o.scrollLeft+i.scrollSpeed:t.pageX-r.overflowOffset.left<i.scrollSensitivity&&(o.scrollLeft=s=o.scrollLeft-i.scrollSpeed)}else{if(!i.axis||i.axis!=="x")t.pageY-e(u).scrollTop()<i.scrollSensitivity?s=e(u).scrollTop(e(u).scrollTop()-i.scrollSpeed):e(window).height()-(t.pageY-e(u).scrollTop())<i.scrollSensitivity&&(s=e(u).scrollTop(e(u).scrollTop()+i.scrollSpeed));if(!i.axis||i.axis!=="y")t.pageX-e(u).scrollLeft()<i.scrollSensitivity?s=e(u).scrollLeft(e(u).scrollLeft()-i.scrollSpeed):e(window).width()-(t.pageX-e(u).scrollLeft())<i.scrollSensitivity&&(s=e(u).scrollLeft(e(u).scrollLeft()+i.scrollSpeed))}s!==!1&&e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(r,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,n,r){var i=r.options;r.snapElements=[],e(i.snap.constructor!==String?i.snap.items||":data(ui-draggable)":i.snap).each(function(){var t=e(this),n=t.offset();this!==r.element[0]&&r.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:n.top,left:n.left})})},drag:function(t,n,r){var i,s,o,u,a,f,l,c,h,p,d=r.options,v=d.snapTolerance,m=n.offset.left,g=m+r.helperProportions.width,y=n.offset.top,b=y+r.helperProportions.height;for(h=r.snapElements.length-1;h>=0;h--){a=r.snapElements[h].left-r.margins.left,f=a+r.snapElements[h].width,l=r.snapElements[h].top-r.margins.top,c=l+r.snapElements[h].height;if(g<a-v||m>f+v||b<l-v||y>c+v||!e.contains(r.snapElements[h].item.ownerDocument,r.snapElements[h].item)){r.snapElements[h].snapping&&r.options.snap.release&&r.options.snap.release.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[h].item})),r.snapElements[h].snapping=!1;continue}d.snapMode!=="inner"&&(i=Math.abs(l-b)<=v,s=Math.abs(c-y)<=v,o=Math.abs(a-g)<=v,u=Math.abs(f-m)<=v,i&&(n.position.top=r._convertPositionTo("relative",{top:l-r.helperProportions.height,left:0}).top),s&&(n.position.top=r._convertPositionTo("relative",{top:c,left:0}).top),o&&(n.position.left=r._convertPositionTo("relative",{top:0,left:a-r.helperProportions.width}).left),u&&(n.position.left=r._convertPositionTo("relative",{top:0,left:f}).left)),p=i||s||o||u,d.snapMode!=="outer"&&(i=Math.abs(l-y)<=v,s=Math.abs(c-b)<=v,o=Math.abs(a-m)<=v,u=Math.abs(f-g)<=v,i&&(n.position.top=r._convertPositionTo("relative",{top:l,left:0}).top),s&&(n.position.top=r._convertPositionTo("relative",{top:c-r.helperProportions.height,left:0}).top),o&&(n.position.left=r._convertPositionTo("relative",{top:0,left:a}).left),u&&(n.position.left=r._convertPositionTo("relative",{top:0,left:f-r.helperProportions.width}).left)),!r.snapElements[h].snapping&&(i||s||o||u||p)&&r.options.snap.snap&&r.options.snap.snap.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[h].item})),r.snapElements[h].snapping=i||s||o||u||p}}}),e.ui.plugin.add("draggable","stack",{start:function(t,n,r){var i,s=r.options,o=e.makeArray(e(s.stack)).sort(function(t,n){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(n).css("zIndex"),10)||0)});if(!o.length)return;i=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",i+t)}),this.css("zIndex",i+o.length)}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,n,r){var i=e(n.helper),s=r.options;i.css("zIndex")&&(s._zIndex=i.css("zIndex")),i.css("zIndex",s.zIndex)},stop:function(t,n,r){var i=r.options;i._zIndex&&e(n.helper).css("zIndex",i._zIndex)}}),e.ui.draggable});;
+/*!
+ * jQuery UI Position 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){return function(){function h(e,t,n){return[parseFloat(e[0])*(l.test(e[0])?t/100:1),parseFloat(e[1])*(l.test(e[1])?n/100:1)]}function p(t,n){return parseInt(e.css(t,n),10)||0}function d(t){var n=t[0];return n.nodeType===9?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(n)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:n.preventDefault?{width:0,height:0,offset:{top:n.pageY,left:n.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var t,n,r=Math.max,i=Math.abs,s=Math.round,o=/left|center|right/,u=/top|center|bottom/,a=/[\+\-]\d+(\.[\d]+)?%?/,f=/^\w+/,l=/%$/,c=e.fn.position;e.position={scrollbarWidth:function(){if(t!==undefined)return t;var n,r,i=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),s=i.children()[0];return e("body").append(i),n=s.offsetWidth,i.css("overflow","scroll"),r=s.offsetWidth,n===r&&(r=i[0].clientWidth),i.remove(),t=n-r},getScrollInfo:function(t){var n=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),r=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width<t.element[0].scrollWidth,s=r==="scroll"||r==="auto"&&t.height<t.element[0].scrollHeight;return{width:s?e.position.scrollbarWidth():0,height:i?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var n=e(t||window),r=e.isWindow(n[0]),i=!!n[0]&&n[0].nodeType===9;return{element:n,isWindow:r,isDocument:i,offset:n.offset()||{left:0,top:0},scrollLeft:n.scrollLeft(),scrollTop:n.scrollTop(),width:r||i?n.width():n.outerWidth(),height:r||i?n.height():n.outerHeight()}}},e.fn.position=function(t){if(!t||!t.of)return c.apply(this,arguments);t=e.extend({},t);var l,v,m,g,y,b,w=e(t.of),E=e.position.getWithinInfo(t.within),S=e.position.getScrollInfo(E),x=(t.collision||"flip").split(" "),T={};return b=d(w),w[0].preventDefault&&(t.at="left top"),v=b.width,m=b.height,g=b.offset,y=e.extend({},g),e.each(["my","at"],function(){var e=(t[this]||"").split(" "),n,r;e.length===1&&(e=o.test(e[0])?e.concat(["center"]):u.test(e[0])?["center"].concat(e):["center","center"]),e[0]=o.test(e[0])?e[0]:"center",e[1]=u.test(e[1])?e[1]:"center",n=a.exec(e[0]),r=a.exec(e[1]),T[this]=[n?n[0]:0,r?r[0]:0],t[this]=[f.exec(e[0])[0],f.exec(e[1])[0]]}),x.length===1&&(x[1]=x[0]),t.at[0]==="right"?y.left+=v:t.at[0]==="center"&&(y.left+=v/2),t.at[1]==="bottom"?y.top+=m:t.at[1]==="center"&&(y.top+=m/2),l=h(T.at,v,m),y.left+=l[0],y.top+=l[1],this.each(function(){var o,u,a=e(this),f=a.outerWidth(),c=a.outerHeight(),d=p(this,"marginLeft"),b=p(this,"marginTop"),N=f+d+p(this,"marginRight")+S.width,C=c+b+p(this,"marginBottom")+S.height,k=e.extend({},y),L=h(T.my,a.outerWidth(),a.outerHeight());t.my[0]==="right"?k.left-=f:t.my[0]==="center"&&(k.left-=f/2),t.my[1]==="bottom"?k.top-=c:t.my[1]==="center"&&(k.top-=c/2),k.left+=L[0],k.top+=L[1],n||(k.left=s(k.left),k.top=s(k.top)),o={marginLeft:d,marginTop:b},e.each(["left","top"],function(n,r){e.ui.position[x[n]]&&e.ui.position[x[n]][r](k,{targetWidth:v,targetHeight:m,elemWidth:f,elemHeight:c,collisionPosition:o,collisionWidth:N,collisionHeight:C,offset:[l[0]+L[0],l[1]+L[1]],my:t.my,at:t.at,within:E,elem:a})}),t.using&&(u=function(e){var n=g.left-k.left,s=n+v-f,o=g.top-k.top,u=o+m-c,l={target:{element:w,left:g.left,top:g.top,width:v,height:m},element:{element:a,left:k.left,top:k.top,width:f,height:c},horizontal:s<0?"left":n>0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};v<f&&i(n+s)<v&&(l.horizontal="center"),m<c&&i(o+u)<m&&(l.vertical="middle"),r(i(n),i(s))>r(i(o),i(u))?l.important="horizontal":l.important="vertical",t.using.call(this,e,l)}),a.offset(e.extend(k,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p<i(a))e.left+=l+c+h}else if(f>0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)<f)e.left+=l+c+h}},top:function(e,t){var n=t.within,r=n.offset.top+n.scrollTop,s=n.height,o=n.isWindow?n.scrollTop:n.offset.top,u=e.top-t.collisionPosition.marginTop,a=u-o,f=u+t.collisionHeight-s-o,l=t.my[1]==="top",c=l?-t.elemHeight:t.my[1]==="bottom"?t.elemHeight:0,h=t.at[1]==="top"?t.targetHeight:t.at[1]==="bottom"?-t.targetHeight:0,p=-2*t.offset[1],d,v;if(a<0){v=e.top+c+h+p+t.collisionHeight-s-r;if(v<0||v<i(a))e.top+=c+h+p}else if(f>0){d=e.top-t.collisionPosition.marginTop+c+h+p-o;if(d>0||i(d)<f)e.top+=c+h+p}}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,r,i,s,o,u=document.getElementsByTagName("body")[0],a=document.createElement("div");t=document.createElement(u?"div":"body"),i={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},u&&e.extend(i,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in i)t.style[o]=i[o];t.appendChild(a),r=u||document.documentElement,r.insertBefore(t,r.firstChild),a.style.cssText="position: absolute; left: 10.7432222px;",s=e(a).offset().left,n=s>10&&s<11,t.innerHTML="",r.removeChild(t)}()}(),e.ui.position});;
+/*!
+ * jQuery UI Resizable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/resizable/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./mouse","./widget"],e):e(jQuery)})(function(e){return e.widget("ui.resizable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,n){if(e(t).css("overflow")==="hidden")return!1;var r=n&&n==="left"?"scrollLeft":"scrollTop",i=!1;return t[r]>0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)},_create:function(){var t,n,r,i,s,o=this,u=this.options;this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!u.aspectRatio,aspectRatio:u.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:u.helper||u.ghost||u.animate?u.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=u.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e();if(this.handles.constructor===String){this.handles==="all"&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={};for(n=0;n<t.length;n++)r=e.trim(t[n]),s="ui-resizable-"+r,i=e("<div class='ui-resizable-handle "+s+"'></div>"),i.css({zIndex:u.zIndex}),"se"===r&&i.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[r]=".ui-resizable-"+r,this.element.append(i)}this._renderAxis=function(t){var n,r,i,s;t=t||this.element;for(n in this.handles){if(this.handles[n].constructor===String)this.handles[n]=this.element.children(this.handles[n]).first().show();else if(this.handles[n].jquery||this.handles[n].nodeType)this.handles[n]=e(this.handles[n]),this._on(this.handles[n],{mousedown:o._mouseDown});this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(r=e(this.handles[n],this.element),s=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth(),i=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[n])}},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=i&&i[1]?i[1]:"se")}),u.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(u.disabled)return;e(this).removeClass("ui-resizable-autohide"),o._handles.show()}).mouseleave(function(){if(u.disabled)return;o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,n=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(n(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),n(this.originalElement),this},_mouseCapture:function(t){var n,r,i=!1;for(n in this.handles){r=e(this.handles[n])[0];if(r===t.target||e.contains(r,t.target))i=!0}return!this.options.disabled&&i},_mouseStart:function(t){var n,r,i,s=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),n=this._num(this.helper.css("left")),r=this._num(this.helper.css("top")),s.containment&&(n+=e(s.containment).scrollLeft()||0,r+=e(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:n,top:r},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:n,top:r},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof s.aspectRatio=="number"?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,i=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor",i==="auto"?this.axis+"-resize":i),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var n,r,i=this.originalMousePosition,s=this.axis,o=t.pageX-i.left||0,u=t.pageY-i.top||0,a=this._change[s];this._updatePrevProperties();if(!a)return!1;n=a.apply(this,[t,o,u]),this._updateVirtualBoundaries(t.shiftKey);if(this._aspectRatio||t.shiftKey)n=this._updateRatio(n,t);return n=this._respectSize(n,t),this._updateCache(n),this._propagate("resize",t),r=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(r)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1},_mouseStop:function(t){this.resizing=!1;var n,r,i,s,o,u,a,f=this.options,l=this;return this._helper&&(n=this._proportionallyResizeElements,r=n.length&&/textarea/i.test(n[0].nodeName),i=r&&this._hasScroll(n[0],"left")?0:l.sizeDiff.height,s=r?0:l.sizeDiff.width,o={width:l.helper.width()-s,height:l.helper.height()-i},u=parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left)||null,a=parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top)||null,f.animate||this.element.css(e.extend(o,{top:a,left:u})),l.helper.height(l.size.height),l.helper.width(l.size.width),this._helper&&!f.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,n,r,i,s,o=this.options;s={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:Infinity,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:Infinity};if(this._aspectRatio||e)t=s.minHeight*this.aspectRatio,r=s.minWidth/this.aspectRatio,n=s.maxHeight*this.aspectRatio,i=s.maxWidth/this.aspectRatio,t>s.minWidth&&(s.minWidth=t),r>s.minHeight&&(s.minHeight=r),n<s.maxWidth&&(s.maxWidth=n),i<s.maxHeight&&(s.maxHeight=i);this._vBoundaries=s},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,n=this.size,r=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),r==="sw"&&(e.left=t.left+(n.width-e.width),e.top=null),r==="nw"&&(e.top=t.top+(n.height-e.height),e.left=t.left+(n.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,n=this.axis,r=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,i=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,s=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,u=this.originalPosition.left+this.originalSize.width,a=this.position.top+this.size.height,f=/sw|nw|w/.test(n),l=/nw|ne|n/.test(n);return s&&(e.width=t.minWidth),o&&(e.height=t.minHeight),r&&(e.width=t.maxWidth),i&&(e.height=t.maxHeight),s&&f&&(e.left=u-t.minWidth),r&&f&&(e.left=u-t.maxWidth),o&&l&&(e.top=a-t.minHeight),i&&l&&(e.top=a-t.maxHeight),!e.width&&!e.height&&!e.left&&e.top?e.top=null:!e.width&&!e.height&&!e.top&&e.left&&(e.left=null),e},_getPaddingPlusBorderDimensions:function(e){var t=0,n=[],r=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],i=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];for(;t<4;t++)n[t]=parseInt(r[t],10)||0,n[t]+=parseInt(i[t],10)||0;return{height:n[0]+n[2],width:n[1]+n[3]}},_proportionallyResize:function(){if(!this._proportionallyResizeElements.length)return;var e,t=0,n=this.helper||this.element;for(;t<this._proportionallyResizeElements.length;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:n.height()-this.outerDimensions.height||0,width:n.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,n=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var n=this.originalSize,r=this.originalPosition;return{left:r.left+t,width:n.width-t}},n:function(e,t,n){var r=this.originalSize,i=this.originalPosition;return{top:i.top+n,height:r.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!=="resize"&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var n=e(this).resizable("instance"),r=n.options,i=n._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&n._hasScroll(i[0],"left")?0:n.sizeDiff.height,u=s?0:n.sizeDiff.width,a={width:n.size.width-u,height:n.size.height-o},f=parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left)||null,l=parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top)||null;n.element.animate(e.extend(a,l&&f?{top:l,left:f}:{}),{duration:r.animateDuration,easing:r.animateEasing,step:function(){var r={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};i&&i.length&&e(i[0]).css({width:r.width,height:r.height}),n._updateCache(r),n._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,n,r,i,s,o,u,a=e(this).resizable("instance"),f=a.options,l=a.element,c=f.containment,h=c instanceof e?c.get(0):/parent/.test(c)?l.parent().get(0):c;if(!h)return;a.containerElement=e(h),/document/.test(c)||c===document?(a.containerOffset={left:0,top:0},a.containerPosition={left:0,top:0},a.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(h),n=[],e(["Top","Right","Left","Bottom"]).each(function(e,r){n[e]=a._num(t.css("padding"+r))}),a.containerOffset=t.offset(),a.containerPosition=t.position(),a.containerSize={height:t.innerHeight()-n[3],width:t.innerWidth()-n[1]},r=a.containerOffset,i=a.containerSize.height,s=a.containerSize.width,o=a._hasScroll(h,"left")?h.scrollWidth:s,u=a._hasScroll(h)?h.scrollHeight:i,a.parentData={element:h,left:r.left,top:r.top,width:o,height:u})},resize:function(t){var n,r,i,s,o=e(this).resizable("instance"),u=o.options,a=o.containerOffset,f=o.position,l=o._aspectRatio||t.shiftKey,c={top:0,left:0},h=o.containerElement,p=!0;h[0]!==document&&/static/.test(h.css("position"))&&(c=a),f.left<(o._helper?a.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-a.left:o.position.left-c.left),l&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=u.helper?a.left:0),f.top<(o._helper?a.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-a.top:o.position.top),l&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?a.top:0),i=o.containerElement.get(0)===o.element.parent().get(0),s=/relative|absolute/.test(o.containerElement.css("position")),i&&s?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),n=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-c.left:o.offset.left-a.left)),r=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-c.top:o.offset.top-a.top)),n+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-n,l&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),r+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-r,l&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),n=t.options,r=t.containerOffset,i=t.containerPosition,s=t.containerElement,o=e(t.helper),u=o.offset(),a=o.outerWidth()-t.sizeDiff.width,f=o.outerHeight()-t.sizeDiff.height;t._helper&&!n.animate&&/relative/.test(s.css("position"))&&e(this).css({left:u.left-i.left-r.left,width:a,height:f}),t._helper&&!n.animate&&/static/.test(s.css("position"))&&e(this).css({left:u.left-i.left-r.left,width:a,height:f})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),n=t.options;e(n.alsoResize).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})},resize:function(t,n){var r=e(this).resizable("instance"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0};e(i.alsoResize).each(function(){var t=e(this),r=e(this).data("ui-resizable-alsoresize"),i={},s=t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(s,function(e,t){var n=(r[t]||0)+(u[t]||0);n&&n>=0&&(i[t]=n||null)}),t.css(i)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),n=t.options,r=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:r.height,width:r.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof n.ghost=="string"?n.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,n=e(this).resizable("instance"),r=n.options,i=n.size,s=n.originalSize,o=n.originalPosition,u=n.axis,a=typeof r.grid=="number"?[r.grid,r.grid]:r.grid,f=a[0]||1,l=a[1]||1,c=Math.round((i.width-s.width)/f)*f,h=Math.round((i.height-s.height)/l)*l,p=s.width+c,d=s.height+h,v=r.maxWidth&&r.maxWidth<p,m=r.maxHeight&&r.maxHeight<d,g=r.minWidth&&r.minWidth>p,y=r.minHeight&&r.minHeight>d;r.grid=a,g&&(p+=f),y&&(d+=l),v&&(p-=f),m&&(d-=l);if(/^(se|s|e)$/.test(u))n.size.width=p,n.size.height=d;else if(/^(ne)$/.test(u))n.size.width=p,n.size.height=d,n.position.top=o.top-h;else if(/^(sw)$/.test(u))n.size.width=p,n.size.height=d,n.position.left=o.left-c;else{if(d-l<=0||p-f<=0)t=n._getPaddingPlusBorderDimensions(this);d-l>0?(n.size.height=d,n.position.top=o.top-h):(d=l-t.height,n.size.height=d,n.position.top=o.top+s.height-d),p-f>0?(n.size.width=p,n.position.left=o.left-c):(p=f-t.width,n.size.width=p,n.position.left=o.left+s.width-p)}}}),e.ui.resizable});;
+/*!
+ * jQuery UI Dialog 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/dialog/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./widget","./button","./draggable","./mouse","./position","./resizable"],e):e(jQuery)})(function(e){return e.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var n,r=this;if(!this._isOpen||this._trigger("beforeClose",t)===!1)return;this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance();if(!this.opener.filter(":focusable").focus().length)try{n=this.document[0].activeElement,n&&n.nodeName.toLowerCase()!=="body"&&e(n).blur()}catch(i){}this._hide(this.uiDialog,this.options.hide,function(){r._trigger("close",t)})},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,n){var r=!1,i=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),s=Math.max.apply(null,i);return s>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",s+1),r=!0),r&&!n&&this._trigger("focus",t),r},open:function(){var t=this;if(this._isOpen){this._moveToTop()&&this._focusTabbable();return}this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open")},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function n(){var t=this.document[0].activeElement,n=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);n||this._focusTabbable()}t.preventDefault(),n.call(this),this._delay(n)},_createWrapper:function(){this.uiDialog=e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE){t.preventDefault(),this.close(t);return}if(t.keyCode!==e.ui.keyCode.TAB||t.isDefaultPrevented())return;var n=this.uiDialog.find(":tabbable"),r=n.filter(":first"),i=n.filter(":last");t.target!==i[0]&&t.target!==this.uiDialog[0]||!!t.shiftKey?(t.target===r[0]||t.target===this.uiDialog[0])&&t.shiftKey&&(this._delay(function(){i.focus()}),t.preventDefault()):(this._delay(function(){r.focus()}),t.preventDefault())},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html("&#160;"),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,n=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty();if(e.isEmptyObject(n)||e.isArray(n)&&!n.length){this.uiDialog.removeClass("ui-dialog-buttons");return}e.each(n,function(n,r){var i,s;r=e.isFunction(r)?{click:r,text:n}:r,r=e.extend({type:"button"},r),i=r.click,r.click=function(){i.apply(t.element[0],arguments)},s={icons:r.icons,text:r.showText},delete r.icons,delete r.showText,e("<button></button>",r).button(s).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog)},_makeDraggable:function(){function r(e){return{position:e.position,offset:e.offset}}var t=this,n=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){e(this).addClass("ui-dialog-dragging"),t._blockFrames(),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,s){var o=s.offset.left-t.document.scrollLeft(),u=s.offset.top-t.document.scrollTop();n.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" "+"top"+(u>=0?"+":"")+u,of:t.window},e(this).removeClass("ui-dialog-dragging"),t._unblockFrames(),t._trigger("dragStop",i,r(s))}})},_makeResizable:function(){function o(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var t=this,n=this.options,r=n.resizable,i=this.uiDialog.css("position"),s=typeof r=="string"?r:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:n.maxWidth,maxHeight:n.maxHeight,minWidth:n.minWidth,minHeight:this._minHeight(),handles:s,start:function(n,r){e(this).addClass("ui-dialog-resizing"),t._blockFrames(),t._trigger("resizeStart",n,o(r))},resize:function(e,n){t._trigger("resize",e,o(n))},stop:function(r,i){var s=t.uiDialog.offset(),u=s.left-t.document.scrollLeft(),a=s.top-t.document.scrollTop();n.height=t.uiDialog.height(),n.width=t.uiDialog.width(),n.position={my:"left top",at:"left"+(u>=0?"+":"")+u+" "+"top"+(a>=0?"+":"")+a,of:t.window},e(this).removeClass("ui-dialog-resizing"),t._unblockFrames(),t._trigger("resizeStop",r,o(i))}}).css("position",i)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=e(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),n=e.inArray(this,t);n!==-1&&t.splice(n,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var n=this,r=!1,i={};e.each(t,function(e,t){n._setOption(e,t),e in n.sizeRelatedOptions&&(r=!0),e in n.resizableRelatedOptions&&(i[e]=t)}),r&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",i)},_setOption:function(e,t){var n,r,i=this.uiDialog;e==="dialogClass"&&i.removeClass(this.options.dialogClass).addClass(t);if(e==="disabled")return;this._super(e,t),e==="appendTo"&&this.uiDialog.appendTo(this._appendTo()),e==="buttons"&&this._createButtons(),e==="closeText"&&this.uiDialogTitlebarClose.button({label:""+t}),e==="draggable"&&(n=i.is(":data(ui-draggable)"),n&&!t&&i.draggable("destroy"),!n&&t&&this._makeDraggable()),e==="position"&&this._position(),e==="resizable"&&(r=i.is(":data(ui-resizable)"),r&&!t&&i.resizable("destroy"),r&&typeof t=="string"&&i.resizable("option","handles",t),!r&&t!==!1&&this._makeResizable()),e==="title"&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title"))},_size:function(){var e,t,n,r=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),r.minWidth>r.width&&(r.width=r.minWidth),e=this.uiDialog.css({height:"auto",width:r.width}).outerHeight(),t=Math.max(0,r.minHeight-e),n=typeof r.maxHeight=="number"?Math.max(0,r.maxHeight-e):"none",r.height==="auto"?this.element.css({minHeight:t,maxHeight:n,height:"auto"}):this.element.height(Math.max(0,r.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(!this.options.modal)return;var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){if(t)return;this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)},_destroyOverlay:function(){if(!this.options.modal)return;if(this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}})});;
+/**
+ * @file
+ *
+ * Dialog API inspired by HTML5 dialog element:
+ * http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#the-dialog-element
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  drupalSettings.dialog = {
+    autoOpen: true,
+    dialogClass: '',
+    // Drupal-specific extensions: see dialog.jquery-ui.js.
+    buttonClass: 'button',
+    buttonPrimaryClass: 'button--primary',
+    // When using this API directly (when generating dialogs on the client side),
+    // you may want to override this method and do
+    // @code
+    // jQuery(event.target).remove()
+    // @endcode
+    // as well, to remove the dialog on closing.
+    close: function (event) {
+      Drupal.detachBehaviors(event.target, null, 'unload');
+    }
+  };
+
+  Drupal.dialog = function (element, options) {
+
+    function openDialog(settings) {
+      settings = $.extend({}, drupalSettings.dialog, options, settings);
+      // Trigger a global event to allow scripts to bind events to the dialog.
+      $(window).trigger('dialog:beforecreate', [dialog, $element, settings]);
+      $element.dialog(settings);
+      dialog.open = true;
+      $(window).trigger('dialog:aftercreate', [dialog, $element, settings]);
+    }
+
+    function closeDialog(value) {
+      $(window).trigger('dialog:beforeclose', [dialog, $element]);
+      $element.dialog('close');
+      dialog.returnValue = value;
+      dialog.open = false;
+      $(window).trigger('dialog:afterclose', [dialog, $element]);
+    }
+
+    var undef;
+    var $element = $(element);
+    var dialog = {
+      open: false,
+      returnValue: undef,
+      show: function () {
+        openDialog({modal: false});
+      },
+      showModal: function () {
+        openDialog({modal: true});
+      },
+      close: closeDialog
+    };
+
+    return dialog;
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
+(function ($, Drupal, drupalSettings, debounce, displace) {
+
+  "use strict";
+
+  // autoResize option will turn off resizable and draggable.
+  drupalSettings.dialog = $.extend({autoResize: true, maxHeight: '95%'}, drupalSettings.dialog);
+
+  /**
+   * Resets the current options for positioning.
+   *
+   * This is used as a window resize and scroll callback to reposition the
+   * jQuery UI dialog. Although not a built-in jQuery UI option, this can
+   * be disabled by setting autoResize: false in the options array when creating
+   * a new Drupal.dialog().
+   */
+  function resetSize(event) {
+    var positionOptions = ['width', 'height', 'minWidth', 'minHeight', 'maxHeight', 'maxWidth', 'position'];
+    var adjustedOptions = {};
+    var windowHeight = $(window).height();
+    var option;
+    var optionValue;
+    var adjustedValue;
+    for (var n = 0; n < positionOptions.length; n++) {
+      option = positionOptions[n];
+      optionValue = event.data.settings[option];
+      if (optionValue) {
+        // jQuery UI does not support percentages on heights, convert to pixels.
+        if (typeof optionValue === 'string' && /%$/.test(optionValue) && /height/i.test(option)) {
+          // Take offsets in account.
+          windowHeight -= displace.offsets.top + displace.offsets.bottom;
+          adjustedValue = parseInt(0.01 * parseInt(optionValue, 10) * windowHeight, 10);
+          // Don't force the dialog to be bigger vertically than needed.
+          if (option === 'height' && event.data.$element.parent().outerHeight() < adjustedValue) {
+            adjustedValue = 'auto';
+          }
+          adjustedOptions[option] = adjustedValue;
+        }
+      }
+    }
+    // Offset the dialog center to be at the center of Drupal.displace.offsets.
+    adjustedOptions = resetPosition(adjustedOptions);
+    event.data.$element
+      .dialog('option', adjustedOptions)
+      .trigger('dialogContentResize');
+  }
+
+  /**
+   * Position the dialog's center at the center of displace.offsets boundaries.
+   */
+  function resetPosition(options) {
+    var offsets = displace.offsets;
+    var left = offsets.left - offsets.right;
+    var top = offsets.top - offsets.bottom;
+
+    var leftString = (left > 0 ? '+' : '-') + Math.abs(Math.round(left / 2)) + 'px';
+    var topString = (top > 0 ? '+' : '-') + Math.abs(Math.round(top / 2)) + 'px';
+    options.position = {
+      my: 'center' + (left !== 0 ? leftString : '') + ' center' + (top !== 0 ? topString : ''),
+      of: window
+    };
+    return options;
+  }
+
+  $(window).on({
+    'dialog:aftercreate': function (event, dialog, $element, settings) {
+      var autoResize = debounce(resetSize, 20);
+      var eventData = {settings: settings, $element: $element};
+      if (settings.autoResize === true || settings.autoResize === 'true') {
+        $element
+          .dialog('option', {resizable: false, draggable: false})
+          .dialog('widget').css('position', 'fixed');
+        $(window)
+          .on('resize.dialogResize scroll.dialogResize', eventData, autoResize)
+          .trigger('resize.dialogResize');
+        $(document).on('drupalViewportOffsetChange', eventData, autoResize);
+      }
+    },
+    'dialog:beforeclose': function (event, dialog, $element) {
+      $(window).off('.dialogResize');
+    }
+  });
+
+})(jQuery, Drupal, drupalSettings, Drupal.debounce, Drupal.displace);
+;
+/**
+ * @file
+ * Adds default classes to buttons for styling purposes.
+ */
+(function ($) {
+
+  "use strict";
+
+  $.widget('ui.dialog', $.ui.dialog, {
+    options: {
+      buttonClass: 'button',
+      buttonPrimaryClass: 'button--primary'
+    },
+    _createButtons: function () {
+      var opts = this.options;
+      var primaryIndex;
+      var $buttons;
+      var index;
+      var il = opts.buttons.length;
+      for (index = 0; index < il; index++) {
+        if (opts.buttons[index].primary && opts.buttons[index].primary === true) {
+          primaryIndex = index;
+          delete opts.buttons[index].primary;
+          break;
+        }
+      }
+      this._super();
+      $buttons = this.uiButtonSet.children().addClass(opts.buttonClass);
+      if (typeof primaryIndex !== 'undefined') {
+        $buttons.eq(index).addClass(opts.buttonPrimaryClass);
+      }
+    }
+  });
+
+})(jQuery);
+;
+/**
+ * @file
+ * Attaches behavior for the Editor module.
+ */
+
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Finds the text area field associated with the given text format selector.
+   *
+   * @param jQuery $formatSelector
+   *   A text format selector DOM element.
+   *
+   * @return DOM
+   *   The text area DOM element, if it was found.
+   */
+  function findFieldForFormatSelector($formatSelector) {
+    var field_id = $formatSelector.attr('data-editor-for');
+    // This selector will only find text areas in the top-level document. We do
+    // not support attaching editors on text areas within iframes.
+    return $('#' + field_id).get(0);
+  }
+
+  /**
+   * Changes the text editor on a text area.
+   *
+   * @param DOM field
+   *   The text area DOM element.
+   * @param String newFormatID
+   *   The text format we're changing to; the text editor for the currently
+   *   active text format will be detached, and the text editor for the new text
+   *   format will be attached.
+   */
+  function changeTextEditor(field, newFormatID) {
+    var previousFormatID = field.getAttribute('data-editor-active-text-format');
+
+    // Detach the current editor (if any) and attach a new editor.
+    if (drupalSettings.editor.formats[previousFormatID]) {
+      Drupal.editorDetach(field, drupalSettings.editor.formats[previousFormatID]);
+    }
+    // When no text editor is currently active, stop tracking changes.
+    else {
+      $(field).off('.editor');
+    }
+
+    // Attach the new text editor (if any).
+    if (drupalSettings.editor.formats[newFormatID]) {
+      var format = drupalSettings.editor.formats[newFormatID];
+      filterXssWhenSwitching(field, format, previousFormatID, Drupal.editorAttach);
+    }
+
+    // Store the new active format.
+    field.setAttribute('data-editor-active-text-format', newFormatID);
+  }
+
+  /**
+   * Handles changes in text format.
+   *
+   * @param jQuery.Event event
+   */
+  function onTextFormatChange(event) {
+    var $select = $(event.target);
+    var field = event.data.field;
+    var activeFormatID = field.getAttribute('data-editor-active-text-format');
+    var newFormatID = $select.val();
+
+    // Prevent double-attaching if the change event is triggered manually.
+    if (newFormatID === activeFormatID) {
+      return;
+    }
+
+    // When changing to a text format that has a text editor associated
+    // with it that supports content filtering, then first ask for
+    // confirmation, because switching text formats might cause certain
+    // markup to be stripped away.
+    var supportContentFiltering = drupalSettings.editor.formats[newFormatID] && drupalSettings.editor.formats[newFormatID].editorSupportsContentFiltering;
+    // If there is no content yet, it's always safe to change the text format.
+    var hasContent = field.value !== '';
+    if (hasContent && supportContentFiltering) {
+      var message = Drupal.t('Changing the text format to %text_format will permanently remove content that is not allowed in that text format.<br><br>Save your changes before switching the text format to avoid losing data.', {
+        '%text_format': $select.find('option:selected').text()
+      });
+      var confirmationDialog = Drupal.dialog('<div>' + message + '</div>', {
+        title: Drupal.t('Change text format?'),
+        dialogClass: 'editor-change-text-format-modal',
+        resizable: false,
+        buttons: [
+          {
+            text: Drupal.t('Continue'),
+            'class': 'button button--primary',
+            click: function () {
+              changeTextEditor(field, newFormatID);
+              confirmationDialog.close();
+            }
+          },
+          {
+            text: Drupal.t('Cancel'),
+            'class': 'button',
+            click: function () {
+              // Restore the active format ID: cancel changing text format. We cannot
+              // simply call event.preventDefault() because jQuery's change event is
+              // only triggered after the change has already been accepted.
+              $select.val(activeFormatID);
+              confirmationDialog.close();
+            }
+          }
+        ],
+        // Prevent this modal from being closed without the user making a choice
+        // as per http://stackoverflow.com/a/5438771.
+        closeOnEscape: false,
+        create: function () {
+          $(this).parent().find('.ui-dialog-titlebar-close').remove();
+        },
+        beforeClose: false,
+        close: function (event) {
+          // Automatically destroy the DOM element that was used for the dialog.
+          $(event.target).remove();
+        }
+      });
+
+      confirmationDialog.showModal();
+    }
+    else {
+      changeTextEditor(field, newFormatID);
+    }
+  }
+
+  /**
+   * Initialize an empty object for editors to place their attachment code.
+   */
+  Drupal.editors = {};
+
+  /**
+   * Enables editors on text_format elements.
+   */
+  Drupal.behaviors.editor = {
+    attach: function (context, settings) {
+      // If there are no editor settings, there are no editors to enable.
+      if (!settings.editor) {
+        return;
+      }
+
+      $(context).find('[data-editor-for]').once('editor').each(function () {
+        var $this = $(this);
+        var field = findFieldForFormatSelector($this);
+
+        // Opt-out if no supported text area was found.
+        if (!field) {
+          return;
+        }
+
+        // Store the current active format.
+        var activeFormatID = $this.val();
+        field.setAttribute('data-editor-active-text-format', activeFormatID);
+
+        // Directly attach this text editor, if the text format is enabled.
+        if (settings.editor.formats[activeFormatID]) {
+          // XSS protection for the current text format/editor is performed on the
+          // server side, so we don't need to do anything special here.
+          Drupal.editorAttach(field, settings.editor.formats[activeFormatID]);
+        }
+        // When there is no text editor for this text format, still track changes,
+        // because the user has the ability to switch to some text editor, other-
+        // wise this code would not be executed.
+        else {
+          $(field).on('change.editor keypress.editor', function () {
+            field.setAttribute('data-editor-value-is-changed', 'true');
+            // Just knowing that the value was changed is enough, stop tracking.
+            $(field).off('.editor');
+          });
+        }
+
+        // Attach onChange handler to text format selector element.
+        if ($this.is('select')) {
+          $this.on('change.editorAttach', {field: field}, onTextFormatChange);
+        }
+        // Detach any editor when the containing form is submitted.
+        $this.parents('form').on('submit', function (event) {
+          // Do not detach if the event was canceled.
+          if (event.isDefaultPrevented()) {
+            return;
+          }
+          // Detach the current editor (if any).
+          if (settings.editor.formats[activeFormatID]) {
+            Drupal.editorDetach(field, settings.editor.formats[activeFormatID], 'serialize');
+          }
+        });
+      });
+    },
+
+    detach: function (context, settings, trigger) {
+      var editors;
+      // The 'serialize' trigger indicates that we should simply update the
+      // underlying element with the new text, without destroying the editor.
+      if (trigger === 'serialize') {
+        // Removing the editor-processed class guarantees that the editor will
+        // be reattached. Only do this if we're planning to destroy the editor.
+        editors = $(context).find('[data-editor-for]').findOnce('editor');
+      }
+      else {
+        editors = $(context).find('[data-editor-for]').removeOnce('editor');
+      }
+
+      editors.each(function () {
+        var $this = $(this);
+        var activeFormatID = $this.val();
+        var field = findFieldForFormatSelector($this);
+        if (field && activeFormatID in settings.editor.formats) {
+          Drupal.editorDetach(field, settings.editor.formats[activeFormatID], trigger);
+        }
+      });
+    }
+  };
+
+  Drupal.editorAttach = function (field, format) {
+    if (format.editor) {
+      // HTML5 validation cannot ever work for WYSIWYG editors, because WYSIWYG
+      // editors always hide the underlying textarea element, which prevents
+      // browsers from putting the error message bubble in the right location.
+      // Hence: disable HTML5 validation for this element.
+      if ('required' in field.attributes) {
+        field.setAttribute('data-editor-required', true);
+        field.removeAttribute('required');
+      }
+
+      // Attach the text editor.
+      Drupal.editors[format.editor].attach(field, format);
+
+      // Ensures form.js' 'formUpdated' event is triggered even for changes that
+      // happen within the text editor.
+      Drupal.editors[format.editor].onChange(field, function () {
+        $(field).trigger('formUpdated');
+
+        // Keep track of changes, so we know what to do when switching text
+        // formats and guaranteeing XSS protection.
+        field.setAttribute('data-editor-value-is-changed', 'true');
+      });
+    }
+  };
+
+  Drupal.editorDetach = function (field, format, trigger) {
+    if (format.editor) {
+      // Restore the HTML5 validation "required" attribute if it was removed in
+      // Drupal.editorAttach().
+      if ('data-editor-required' in field.attributes) {
+        field.setAttribute('required', 'required');
+        field.removeAttribute('data-editor-required');
+      }
+
+      Drupal.editors[format.editor].detach(field, format, trigger);
+
+      // Restore the original value if the user didn't make any changes yet.
+      if (field.getAttribute('data-editor-value-is-changed') === 'false') {
+        field.value = field.getAttribute('data-editor-value-original');
+      }
+    }
+  };
+
+  /**
+   * Filter away XSS attack vectors when switching text formats.
+   *
+   * @param DOM field
+   *   The textarea DOM element.
+   * @param Object format
+   *   The text format that's being activated, from drupalSettings.editor.formats.
+   * @param String originalFormatID
+   *   The text format ID of the original text format.
+   * @param Function callback
+   *   A callback to be called (with no parameters) after the field's value has
+   *   been XSS filtered.
+   */
+  function filterXssWhenSwitching(field, format, originalFormatID, callback) {
+    // A text editor that already is XSS-safe needs no additional measures.
+    if (format.editor.isXssSafe) {
+      callback(field, format);
+    }
+    // Otherwise, ensure XSS safety: let the server XSS filter this value.
+    else {
+      $.ajax({
+        url: Drupal.url('editor/filter_xss/' + format.format),
+        type: 'POST',
+        data: {
+          'value': field.value,
+          'original_format_id': originalFormatID
+        },
+        dataType: 'json',
+        success: function (xssFilteredValue) {
+          // If the server returns false, then no XSS filtering is needed.
+          if (xssFilteredValue !== false) {
+            field.value = xssFilteredValue;
+          }
+          callback(field, format);
+        }
+      });
+    }
+  }
+
+})(jQuery, Drupal, drupalSettings);
+;
diff --git a/sites/default/files/js/js__RU3yYFyCdMKuglxOdv_6wbJjoKAJVeGfOYqMsPFV4k.js.gz b/sites/default/files/js/js__RU3yYFyCdMKuglxOdv_6wbJjoKAJVeGfOYqMsPFV4k.js.gz
new file mode 100644
index 0000000..8dcb0d5
--- /dev/null
+++ b/sites/default/files/js/js__RU3yYFyCdMKuglxOdv_6wbJjoKAJVeGfOYqMsPFV4k.js.gz
@@ -0,0 +1,301 @@
+     ֕/޿B=`B=-hN6=ӦC1 	H&@ˊ_ A9Mk\{z=<j]&]߶>>\tnm[(h=:?CH/_oezu<"m=<dˇW⸼]Ǜyz||E'eѫIg6tYTyنl"A9[7ezz^kSX6:-ZI&[MVNuZn"{4t-ӱw+'*gYVG1YFqQ)]()	]6,Ց~z=	g.Yߖl9foo*]5
+͝		ǋ˸5LĲ3YRCYovaҿ,.7߾OOm4\QEqz~N89uMpؐzӊ,)R?uryc;hdz3*utt9-gyXO֮ih%󹏩LӲz(NzOJ6~:R gZVm+UbE4E\B7A<fl~[}wafQu[
+eɪi\O]LV~&OdT/g*wj~z2`P̓{^PCÔ;+vw'ɨQャ4-HE4	BImj	O.ETR;18u!b܏40?lgX*>NΆy>OEc*V* öA4n)Z
+NOndEEgeGI @+x/(1~y-e1Nc<N.}9
+z#ddu[2W4Ti1ƭs.BO5 MwDtB"^__%嬳u'?|NX0+~Lmtt :8$*2W.07Ѱ=ujDWO=P880T:5|sd 	U.oyB$h_~Cb4@6,qn$wt%.<>>Uyl)KQUq^,VmCtUPQۡy	%mϋvXݺKfL"?{y>L/>&KE7i!^IGBMOF^h&ebb^1Zg+zIdiR;3_wf|-3 ~L Q~dAf(1dzExv|׼TC3{9sM/h
+ڇ#NI4JuKhmL4,t'On*nLKj"j
+4׻tNsoR/p[0er]@@ەʁz\5VsmЭ#j&Xiiz ^
+~'#N/fjzOESbڤ1Dj ;z2i1hA<ͨtfv)M^t3'T,>uO&	50HOq,?5)3}.45 h&ցbDiQ75"RIk@k"tӈ3pl]?5
+	fF7	)%1vAuÁ}.Q=
+KJvuN4	6b!nO	'݄f5ޡ̱{":L-Zz-jhN_|Zdw1/IXE:ö7{/oZ=+ljiC|ƨ&Dy%HhےG_Y0a;tYWu82UH#,2^<Ya:Ï`|Cg	gSY|O(GAHk,x91uYv*_/DK!Lt>YcQw$ !]QIkb-Ftt"3ER.GdS~Wo4؎Iގ"Y6mVzΉ.62[-n%1ΗۭRP[#z1cyeyy\^^N^*^tIuTtBOor>^CP˾=PUۣ@=E'mҫR?PVryI}~3^^۫7~@0lkaPK4G`mS?hN)Msc+EU:t+T>~P~~IE	Lџ*Ec]:08>칳mM*s|yTy{5O߾jDO߽1uy/Ͼ{}kz-4e9ÿS6)Q~Ǵz6?[ꅺm3(^Imq>PEi:.>)jXgY*ҘdDv1q;{q]ʖM!!7e/gYTnv9h/.eRfY^ji/o/z@uIiXgᐮho^>J*89.?x$  <NF+?=5fPO=:_<%gDqƗO\oGcxq9..\}ؘK[>v AX{wﵢ?ġL~qUW%RRL%o'7ݽS/@O5ng8iN^z3	?a'Y犸oc UzF"KHxM|7]wvYdx}'B}O.jFORܾWAx4fgP]ik ]g<XZ<o78>.I.@'G^C8tS|s.B${ƨZe?[)>S w>#>}i$qxC$!k{t+0Wwy<e$dczԀ!0$$aixZ^8sɞy>:qto$"XKh (坫<[Lʧ Hao6o:|V<QvmpdK-ի:QTgz.@xFZ9!#1ڐg@"{1a?lRI~}.;Sݗm2K\R3 >q*qjjjqvh5AFpta&][@@v0uRŐJ4: cIh)Ky!O[ۼR>
+.]ıhkYҗPnψu;x\F@6G%pN(o%F=һ/܅PfB`y4Rg~}TK@{AۤӸ=W$JR( iJI 3'U0"ЄG?&.*{^9u҈	~vxJp )Op?~_"ge^RI`dmՂ9y߽{}F?NZќ:>w/iHx =K'	қNR ˊv1YQԏ#GAbvRP9/mq˫:`D"rU4i2	Ʀ%?X*,_$:ۧ jy@[ _W9żE:"V!"&᩿wqʸyM9M->sԘ.k	0CdF?Qnyfh0q`.|E_P!5'B3I+1oRP{MϭAV6bv1R6jATiǀwN! 9L#3Kc	Mvz~XauǍU m1#lvv]9IKxO%O>>NZfi|B贕ƓCO0_=_v`pnAlu]BR[v^н͡2]w7|c_5~k?lN&<1sMݺpHr(+j%hX=?4Mx֎}Qt*IӯB/Қ<OJvF {f"-ty
+ԫ6ܤ|U-׆ySɢbd&rP_DG<Qo fU%n-Ijn(vQ ulޛ ,q-$[AIK^iiX΁Ϙh,
+crL={I4v?|Mu*͎qE7L29JȨ7WO+<.`N^37 Ԡz`D1f]螧1VGиMa5Ti~c0JRԽW>8<x/Ď	]6YO8DH# NM_)n&M̷J-I:(VF(5l.Ĭ?cF?ݶp@M]o"U#니i-o1^q+9?qMpu	#S'.@C{șbݮׂkuMACјl96
+Ze>0\ʄh*F̼hoBg?f`酣82KnɰV2襬?ZiSҜ&+cz5Yk=c:8tMtܛg>M-[:ek:nV(`ډLf}#"6&BC٨|0qSEx+s0!xs-@֟@`џ@i%b=	G(e&|_M)434`dyy&H&r>Y~.VD=[/69ei1j'U&]<p5vl+ik?JOrv\Za+O	n(;G[<Mny%!#Ђ:!w`3x8[GEjxO:B*ۅ[;>oR /1Ԅ05 O	ѪcBDa|=`h 9vۗ
+e9蕮髠z74ݞqO]E=z{8	ʾbXPW qŝ.h9Gh63͎;<u#P%GKq	Pr3ֿģT_0#Fw"n - +k5YU*z'#'|d-͔k#b_~e*_ZϪj2k;0[15aC?v\T6AüEÞ=yg9t%]_jlDC}AN¢4_L۩ :o+ݺ}nSN:y}toA؅44`>?12)58PI&9Ɠ#HC**haF|+,hDsnny<=g᭷fSy=fi9gЄ̏+#ٙOqC3׃pz|\wS;fce|7WD!EA81/f6i"^+|峑GuDx^ZŠ+F')/JׇztLà|I~NsthtCX%QUqJsʊſ䜄1~vϱ7R5OzP:N8SM-mΩ= R-]H'aRVrO{l,8Ov~;uMt(kRX܈g Q0c-ha 4VA	SSx10p6Cf)1dVToIaA}f`8SZ=N$ܯtD|>	$GCs;OmCqpL0&=S8ooҧ<tN+r#}B& Zz$F&UITɺDrV9J{!]٘<ot,'/;Òmwtߤ3[$M=Hl'|"̮"AR~0pꬦB;!O|r e8+}^Us\'T
+ RXV"9UL)}hK5ԥíG,uSmV36gCao.cmy4܅lɽZPj횹(>j $gX{h$I?KX	dшKt_1L(H	}O}_|yQvOO uu5J5/?6f"IFp`8xΛ5)~W$H1E2]` ^
+VWlp_~)X>$NmeRW1?$ĖL]PX	iKa<6z.q6I¸c_	x+fܳ5()RT5)T$JTngA'T/Sxg`T۰)~'J瑸suۨe-Qs?[iZn0;{1ZH9Ѭgu_A+-VYX'$t<;z2fOQ[ƘT2D>׈CQB>!=
+U՞ýWwCל$ꋚ>0TBn0@N+nhÜVUӇ;=kdH`gq3#ΠFuԏ"U☼R+fU(l9,S?=2ҶI0%v?[Cc*yt]/̨̂U,CgJJS}^9xO8aDLn.8Ҙv,5kS,3*
+VD1+>[XV8IC/YO4cCח	<wW*\̌u<^$ F"smW1}t_XprN8gt_dj[4<Rߕ)s:bvw|_i4 ZI|p_S{C<`>_<њz0ʂHgL1TE!:7.ŸNC1@	a5pN3U (WDN`yW$r"v!HDӇBڵ*Յ%*t7NdL<GձfjuJ8hA7؝*/D)Y2T96tY%܆nۭhh7fO"|	fE
+(:KkE#G[16H;в?Ɏ?*3 :)O<ew{h0b(ɓs7hf(>'|{v|L*|ljVU¼>?7X 9i\ޓXk	^%Ӡ>@Sx0f84Bc&CAqv#VHpuzN`3&Z!DGVնV9MՓseP̚:OEd
+ "i\աޙ8% celDJ;CYD]nO&c̑K:PΦgIр"@iT_uZjtob1p|-(Ą,=*1ximbi=^ë8;'D<"~sn%^IqV!\66q+&(5&vӛ%VsEWZZs?w\q~HbTtg'FAn2+"eI=^i=4rbL	!·6ZT($0qylI{`R-5!@(Vv؄=+./6{56jƽjf|{1B(:!n׉苶tVnoq9gӣtEu˭3GU}QGdmlƊ3vpS50q>3㖢fC$[sGsv.&Z8-kz1vAwoWq;6tc׆.fKqW븴SQǸZmR2*o=?{/1,%['nt#t*8_s(	8={˳ˋ'[ם//pUd|n09WYvb0Yl!2`Vc24ܳmۏcgqoݪReh0lCOsNr rN s"^	[n0H'!@U7e{	I"8ܔFPu搷NxV,г=#wMOp /Ԕ;tַk`] E4GlU3J1~$#Yjσ㽐=0X!/.z6}>'"S{?<8iϑ*ou|1L/No_%aq˓í?<Mfƙ7nQlVx> \kb`=EA>B5u4꣸f	8 =(nAxhޱvG1!~E X&a'GЍ{M7 숷oC9fQY0 C#<{Tpԅ2*uč3a^w!I8fWKw{| m7jw<+[$NB9ɯ|fl𶃰l=/ykGc{i.I0~Ϯ9Fo%Dk 7d-eͷ z>J!X^90Rg8gZfXx>D$]Jw(5GI(\NFQ9#>ƚcF:&21b@Df.Q	KS43ϋ^vr"il.{nѹ2tjƔu~JdL.b,D8	0K2'ӮQأCBXajьV1RKdB4mf2.PjI|!;~!K͑QU$yU> T7nqk1ڽX2݈ϥ-}Q\\kц.CR,Xcd:E9r)n/LC`6	<Tn&w(M|-}xPN]+|`[xډGR!>[,G5l{eF{Ee  !PڣObOG졢15AO7]f[ܐ7VOk-:Ib.߶Ϧc?HZg`gX FsH57< 4Yoc%0HZ`>ϵFLx&:W~~3+8wIȝ<vBg0=Z9bd2_^~bVH!izL+zhCףkm`[]HB}6=Q}C^a-`*j4A`%^(a\I%ۙ[x[.Se;'&w8IP\~( (*A~$aHK̴y3	lO&ᔯ`m,alI8cfW!!jnCiGKjufPqofpF8u@5V`li҄e|Y!z'P saDC;z"绦^#1е	9bfs}o#|I?2BQ e*;!>蔡7Im+yMn=|
+ڷ|<YaJ9H/lDo~lj9s	iYԮg	׌f14⧛uu5;E,UD>pl\zQ{,mzDը3烶.U2M%ͅDlaE|y_F34G-%Q6c;L,N?ǉc{%ݱLk</J,ؑxK24b'!SACFq8jޱ/9P਴f)138M0CK8 vH%@ɽDdâsnzx#\S}(e_7UpxDv!<'r>~r2vƖBRUn+$yD;6xdý;}	4@(-4W	PwXP`q#ίJ4dY$o2w]?cyQa,{bj#u!~z89::HG(~|\)䜊}Wy_4UZ{{\e>'AMIu]>JM}'cz	z4hRD*7~}ƕm8=vk*ނ|-|S :~u:3P4䓣d1<F1
+e3d|
+-&L1_w)@7õڟᤄ[0~\wEg,`w:4ߞPP4Wn+G5gJ{ohDbB,ԯk"~QDF0aʨWLϞI Y`HxF{Utwb;*kAgo|Mc'7uz|uoH`VpaPvad|jcGÂP't=[V< &y:8p=iè$C$Jud^ix7פ\֚U:9TcI4m޺ѽvؠgȨ竣^hkS}UWˎa"}<T^/Ga/XGl.ԝ#	*9M+9zNLirzBa!䔍\0L0cIAL`\Q#xrQȝHc	PLa6!g_X%Y+jS	C[JNn{]DfT!]cӔzmYuyϣfD$ee$RiӈMRB$w=j{rE?`8=u׷`%RBGq5hW9};Wwh|TwoV}RmqA}Oa=qL* #t3DL}&Ι&,V
+p:}l\t5<g{!H`ST.+mh7J=F0Rؙ̋մ"Y&Dj!P1Zmͬ.Ce%js0W)3\^78(s
+gtApNt,/m؝8S}W(iki@Yx6&&HTOBğ@%0h;KnD%MRAlq-U$(Is0K-;5]j]"1d7i=GGbeĠcRQ!a>@M'vDr#oj.Yes	kp,ĈQx'Ժ2AY@lQe*I?9h$2@f{0Z[mM,v4gw_V@P!8+-4i7`c%yzL
+MIz\iUA Js&#ӷ1"jI\/ƛIz&kQH~¤$F Kvu>uJHqw:聽?lqnmpR?}]BG7yY> |{()!U#O4GQD9rjQb:# =T4z\W:#4fWb1Џs<SACφ5tnHd+4y_Djw&+:eO̵G-,s|9+~J1{9p8OiSO870wZNȺ.MnWy,VoѼog)j7ߔfIDrɎAK?ݠ̥EБ~@Xfʽn:χYQp*鰦̮VfxD09O5Y6N9Ù}uF x-+w?{RuIe֒O|z8S)
+$tGAq&ؐ	tiσ5D,X'W1GLyOuTrY}Ny?g!*޼cJ{BD4dtÃ^ǖs<iR"CnH:zc
+L@H&xF+ցIC"ΨwGfty8ڬՅu!YS8] LU]uc=uvN MvjqL5~u@cj
+4V2#U[hkZSUrLfWD
+QeǕ;|:"rapGd@Z{u"t BւяMhx񂘜L|ϖ\~Ws9{ГtG9C	lfoj`sz&\YSªԵd=&`v=-Eލ;Ρ?FB Tn]AjM	tzOYjTp|4sddҎX*lWOpz4aߙE΁ݨ/kYrW', GZ0V <?8MRF\̓g#yk@9KBŲ#!SZViQULA}~w;0$bUGb"I]¡dOz!mAC0*4+󏐰d	4=_ 4܉Y@^RPx ԵN'+SX@L38ɏn@qAq/ W%nb.P+s@*r ɷeN9	9yrˢ`YeB/vz/4=BK [Fr}|<_7Ib^x2%Eo<5^VqUKoN'q{]3#F48"Ņ{(:Wj*f0Z=1?>}n:wߊJVZb!Tv2ov#+drDh>ҹu9>WU+0''.6kձI:G1Iu/t!ES>q#L^VM16O!߯Op!rN>sY,s4)7Sͦ>B1vx-/Jn0Xv+&b>5aƆUV> pL.Q@dZ922[gԚlFPc>8f;İpIcx8Oo⛦ܰ2坭^TFIeDWhbtǆSQfg{37{<l.΍/)VSV(KP]瘴֨\񪲳ZRoHLPàcU<m"}[&U#6<
+!
+!5yC>Moյh@?hi[p](tn_0w]y^\Vd§/͖д3?[dBb-pbN2WZ=ѭqDN>AO
+=m괕}v9ԩ*<8N|rp"'S?+WV-ܟs^	n .U*>e	 FG{h(Za3Ֆ?xC+HՁW}Kߘ@Wv+Km*}jGV>#hB	\Taח1q=_I<e'o2i|zSN(مFw5D a95+&#ڳL3Ph9!wB9b!|73 "D4ApZKLb1XVWG1xJQ7;҅^A>D'SNa^hdd'iU i4lW4f:)M8d@f[U{JhGTWω@ў^X`L(?{ډuQ6Z
+c֚1xZLԹ_[B++pg҆aLBe`d9v.2F1bzyهXoZ`&[jPQsMLG=~|@ ?CQq	jLoivZtMS[pϔi*v; c^G_Ӧ[{c^Ձ*u>ѯםkr a55t)ytokDOE9n*ɵ(MAûfP}6bw6$V(K
+,H)S4}EN[!M1aRY
+xa5ƒfV3w#8eCl>Z7|zM{Sħk$7JɎ
+ݞN%aYSj3	D1nBlD,)7$$#i|EZ6	3fj~4NuYut2c4Dr<&R>GM/B0oHO}n8qk߈=3!Y(%ؘ&MleZ9	Nr& +kT.*AܓOfci{+']jVh5GvMa.IBTS+MoC0ܡp`Yc6|f*f2|'VFNuUQT!++$#Xl0^oŐXz-[!lyzgK[|m\=9f+Sonǿ]޴gXHnV(o)WeaJ//`ӵ6؄`{yF%6-@jS<<.*y|O=oIr'T4̒NBE{,p"2Sfy}|&xD$q\y.!jd^>)+)f/uzU)_EEkU|#ϑnFتrMAsycN ,3[ӥsdnyAEݏ@4tx$߹ROܾK=m@u^LN}u59hj{g^[IMNMY#IG*ų9iN1ׂܷ["KmRbE?9'&'/>&s/DPD9NeҠC^6VURZcdcH cqv76Sk5JEDH6X"0: USө,v̂cLE^@S2|u8t>?2o}4
+ceUKxp MFL;AbciEJRr\΁[&uT;ye?On V`g3RiL>5V?Pa&;4pp@,_OD*<PѲRsg6(Ɍ@8a"1ê)N!D8IGņ͒lG-ɟ," 9hN*;S'/O:D
+v0PTl@6Pq"d%i$q&oN*&"=6,!ӔcA7j#čsFuR5<?jہ&{]"9xnkϽ	'LЍ\QꜧOdDN&gjO'b&CpO+}5jgp!0G䎡47ZBi*P'mNSCڲk0N=y\?׺^Xon'}+		$\ɋg?
+t]8y &؁8_J٪1l/ؿYŝLU'fM7|(<^ÈyͿ[98t@ԛ7rk2)hcxw?՛n(J#68'PxQU0v_UCf3fpꨆSK:>5U~D<٘(DIXT׆9|R#(Y6iJ=2zI$`Kΰr1B'CiCTd꙽Xy
+8G7#~/9Ap(fҢHsQ˟T_:;NNc_(Yup/6b&j:Gbˡb4;_lU=6Y蠣Ggk'qV+4x/?h<^+Nm~[a#\oT*MDE'x0[\9|#h^i.D]v*B]jG*h?9<DL[[[OT*VYr2U`s5AF>
+=	"o3^WIbN)}1C\V@fUMKHd$a0bM2m-hkaf	9Ղ?G\y#u.<a(ӧL=F9HlJ9RԬTCk8ߨX"K-=xNDn3':xHuR	\$~%94:}b.!,WզLo r ;8c<v6")c7{eDuB޵hI@99KT
+{M"maJ3ú%!>pZpڎ7묄$N*`އ0y=qr+hDeYQ,ܴ/էoa_++BY]a(A㒃0Y;nXӘ![Ghc̈#Ak;eڌYҔ$7Tf턖6NŰ;0fu|ԋS]<URo
+2x?M۞Ms!Z4FBQ!tw>"ylw>Ms#|A9V)>7y0l\>mǄrh=y׉~eE<էlSەJ%"{aZ'Nͩo~z3i3!<._j~QAy+Q'cDk̓r4㚲+QD 1ſF T(%TmqE"L~eux>s aGLow!M[yv ~17#HROֈwH<K =Hpx{8}!f
+qdoyc=	Hm{OmU5fM̲':UHt)*2h{. : irvJ"ÖHl_A}p[>%j|: ZyhRM*
+=#lKˏYyVF,ӥex݉C}NQ >*ay1	R!ʽHBj5{J7X[EAs]UCD`m핃T
+ȋjK^A{֫6ɹl>*??Uz͇4Dgpܿ#vhcq' 5|$gkO
+/Ҥz_GdM#IwҎ@:{mjg]9˸JuSGmUh(G uN+ۋã^[9ų3J(3t{kwVܨEҸJ"=f8Ο  u-V'Bq?qi(?8r{ug-7e 􇃹s\h4Avx3LLД0PU*8YUz{\vRI\{q|VUƨm6G9	Tw)l8NioDƱ#/*S}Bakx0aOTsPL9.a|D=Uȿ*wE0BޅTŐ(݈b~pdkn駿}vΖ|gQ?ͳem'j,9y#~}ip`a;ohV&#Of}8CAܩlhR@0Bֆz0G눸YS'%T($<4."Cb:qY>FѬQ ~aJ Nbo |ņ"{g-2Q;f/>e	a'UԜF?Kh@[O*/|92n oXW	_%uW<52)Ad$E2WQ4gyp眸FP$鈐j.AtHZѪGi6HJP^\3)"p!Źɡ=ᶩ3'M]kW4CL23G{B/#pTs g"¸AvwΖ@D_yqP3~7"q%-Tҗv2ic)F"r>4# FVw; P۽fkeR?T;>sGمfwk=ގF}G>׬1n_Lm(TIHx` wm,w4!8hmCbx͈o*>[#,=\ft:o
+J9NaMuݚ4ғفNʧj◿U$Aĺrtq9nt-	rk<.jʌl!A;e;iτ\W^6.yK֥$Q;Y*Y\n8bEGX8CDm%Po:i}Xeo~cpiPE3o\sh#<h~VmBY=<]LWL}d&%ȋ_'!?4dwڅ{0뀦.t@p@R[^*QLDqfdpMDϢj3uR猟x:M{O8Q|w~CI}WJߴ9hY57;0jL1f'c56ؕA&qD<Y7&|:8e5({ȗo^gɧxBCr$|?$/WHy	;J^@*P}64UI{2L;;[p[^Pg6405ĢN!W_^e6tBm$=b>SVиkaY<&:Y<5\zi{(Llϐk-I9ГtE[+ DK 튌mbIBc="U:ΥQnEݨ0`´5рmu|t8	a-~`l7~2;t"׏	KQAAjeCwzжd]<Q9Jݿ7Ȱbp9̪V=[Lo	f!HeL :n3'A޸!7m+Om.84=6wͪ8%۞qA;GDH>ۀҡɜ|?7סٹ' :6zzWѸbPIUZ\IOTHcnՎImJu߸9iZ'Ψ7ovJ2kVqsy~:JdCSB\KrңNp8[n
+HcuVHW:RCE8;Y_\݇ryD4)zK4@R.>Zګe$tV2{a02-W[@SsVqLc|1:'eNo>|<U
+~~3Bzr`Bϻ49!roFrUXHbG+1OD}b=m2A':2
+ccQubS7x`9	kpS}pq=Hl&7GF זG]eO}&9un_YTx3$8K_uJQ[%t! :7	WX'("+AA A!0Q!]'O4I\γN9`^V	 yZhFfjBq@ĻǀJ@cpXf@.;2^o<;ZV"D{ٷZ~ث-Ux0`_\^ՆfGS2Iz\yjk^1nu㸃*ᝮX&\uGbfXn?>vou(uğZ|PZD%?ox\4ꕾWyS\A*czk3)uz6wP{$ټ#j'x
+߻1$, 6	_YCjm9Gb
+NwJ=E@F-)'qKn|Nh4"at|<#gH|7	e[ERtBk=wRc|2G^R=oK!Byn=WU<~!6aմ#͍ocBe\^,>|&z0ks d'̯iPUvzwO*H8\DP'gݮB-TXl3>Er82NnLB:>gzbI8UGYU)kx+=$ZZW)nH\m.E{S_(-^`(}S38F;,i.]'8⮧Up~7x~$$⟞v	>JW{ʯ8Gt'< tɢ#/HBTQp }H֩p8Y"{+=79W,Q+yyf.3NPu(Ӫ\1Ábl3CIdnWK盧;i׃2y0Yt2tկK*Dek85׈! +9Ŝq娐C~ӊqգwrj4y_.Ա7k"NU>Zףj$hbFu^H
+3LX5awxd $GWnqGNO	#4RiaWL(|
+ч	DTqpȏ<*ݑvyEZT}3%J]+zF,WԻW⥫347ItK2zDsEi$%
+Ewn*gka$8`?i<s?LJy~su91
+d3댇'y>G'	B.áI Ş#2g,+=S%t}lz3	3	pJlC
+k4׭pgx~?=l`#YlC)UՒXnMf~!J5G`5OȠNr6Ic!}rV@z	5T~%5gG=sLjLa@76ɖa=gEB	nLծx:Z*-L]ءjO~#eSY ́u(bʤS)@e8BL&\r`V]Hjj57Ix928=r͚*I\a
+ƛ̆oʺ2e+lI!'fCJ;#Mxj.ogӠy(k@f]~TEס|fն	SMWR0VGJN[A\  .9qVs?r<hL!pwKW7'E`<Ir_f777o_?QImX!'f7 `RSR㴂S/YB5fK-fCq٤Zod({(f͒jɐsq^[3Xauէ;ڡٌMʛa86p;}`]IT9MƯ[%gHZRwoa6}Ы%su)W	bK7ajLr
+E0!!*MXqeY\_./'illɸ)JfD?]jz{"b@"Qf~~Hbl@E"nV:uнzu3@` Yc7Z!z{УH)ظ0ÐQJ6Pr9#_#=?nra!n_%TC(%kf5	[+;vr۴O :X]ymm*"z}Y'XCC72$F
+x;g1zq^VwT[\0P`U2i#
+U?K P9`IAByb`AևOD?Y4~޼xޫm>"W\3`XZj<c Y@-K91p\xx\DC?gz*|xIiw/{U 
+Fmo!(J9L5@jCfԢcs7ֆ6K%ub0v&mIzo7D1Mit6R8iF%pmT;Z9B*f9ۯ4q%wK
+?8UF
+%u$T8 "*{'iocp?*LlgOFuPv{pZ,o*b[ޛk1VMIpbUˡ!e=orΨin)򧧧-[+0/$7w'->@]wW8%ԕM;tdLnl%S8d{zId-r̛g/Ƚ=$":1ҧ}Z*OKi!e\kٯiK[GZ\.8f% -1l榖քD)5$pH
+&:' D@6gUUi{:-PXlg*?0; !bGE"B9B=Aib$]fIdl2g1:Ɓ7Ei{U =A>	`%zgIK_߾	\J |·?>n`:8|b{<8{y]WoPߚHv/bNmKNEFAၔ\a=3?KڧT(e#OVJ3gᄮ~x!Tn .CdzVMl(*dH{pVwZ:N1&#[PD-fx³˳˳_/oA;
+sP/z<muD]9n[Y8}><>*94|4
+Wz(yM+)10tzu 5l&nW;HU.Kǣ@KZ'PX_17"%x&@T#Dc";rmúa;BXP]3yX sU<S5MvI+=!`R&3+ v{a"YaU츋aXv۴,oEg2OJeְwXV!Zu?dA}8XI	ݥ̅!c9)ΆDaYGlX3Z1-V44UT$w8QjWTᚙHp&H톾W`SxSH[2FďH%x1.%U5N9LaJPz'=r$Gxd$O繙Ͱ1Eqwjy_pp՟M	zQzM0W,10G ө߲ekQ!`iq0L0&=4l0řWcCc=|M'/`:9!e
+a@[L27>霳qzEQkהKro
+o)a@^ٹYI*d4hڛGyK5!9fj=ņ}8SwN #e!R$#--X.6yC>PzaV|ODk͆* 4rE@2Zhg .ƐӰ9ʄ}:9U\RsrDڸy?O^(3-K<!Iɑ	.+--a:UAڜxJ 
+ռ}Q'>渥3>.䩾G+;%vŸc^$l0m-)WnQ4<T1rDJ-U+	хv6/=TL	_DϫOa:51	uaK<\fٸf0Q$aJM6+z1'D^{KUϝ4'BĆIpEϒqx`HwhsngT-_#XX3rdC~pvyG	<PH\hthc/- q;(ڛ]EgCn!5S4c#,ʽIͪi<GMo,	ṉͽ!qJ1'iҬGo4-{w=zR9-	>@`>#\EH՚$mۍQ Oz;'7Ek(@H
+?Gcy8/|@4Z̔j2o{ggJvi9D5xmH*i}hIz"F6:'/s}-'qkRX)Gp>{&g&ެ,Wy:"믿">b\[_wJhOp˩;'z0@`W/kb?t.LThU(1aPv9JZV1"=O5,(r)/EagƫP)ŻLOoxwLs2Z;^Bҹpb's{F9!P}p>#Fvc3)ʳf}8Lz|SGTrr˜U{ޗ$FJ~HgKS|8vq0NGIx>[Oa l)3XgYViˊ~͠wM[q=/$nu9l{ևs~:հKW4BV^5.Y,HfJPs+fcxt̲&R6%KtNB1q޺}T'FLک;#9Ez6 h2Y/ź	ItiO{/SR8o!~ҲǍ	LWZ7OEX,L<' 'j):,Mx~]z*GpRXKO$qqLV&)yr:F$~tN	οz-6q9i=op۫ ~CA=m^	7{]Tгt"N`\:l#O˅H79$n?tGrT@VğBO8:HSn: FYӗjO4[y=v	L ]9@SXl`nrV'dш^H:Bu+42T~m<S[SMpH{#s/RCb򍚃S9Qs܏
+Y?̩zT|boJxU(1gY.}j
+%x_(LzZ̿0 BJy2[ެrU3չ"KUWƂ`:grFOu8{td%*l1|r"%JHnD4=Mb4LEH_.gZ:&ڛ$
+z	Z[_.Anˍ.vM#V_a&ͲXufd-ҋ:fb$ؑzH[LRʬʦ)_mZ+?BKi4vb>ϡGu#ӣ]6!0O;jlʐMH/OlԻ\[u&Gʘ}-pF!-i2'<"*Yq"BCشGJ{Cmo:Lgj{;L3)W7Q	iq$k^̓0"$צ3X?ԎpѐHvix3v|Ce9j UΏ\҉G1Th7P/tL²_:KCZ;-3NlQ1p6LU-}Ҭ#QжW'wdژFIRq)vhJBa5%4
+[yF6Y{n:>UmUmPTwTelkAX9MQCQ@! YF?ъܞ9訹ZO	)ǉ+˕ (cos2x+z 2)Y*6%x6ɀaA_X!YyN	e,_!
+R/b)0s[T}]QI;3D 7C\s	xOqG&EqqtJU&t۵'ǓN]̷Mgp~>UkO9#Goz{U`Qeԡd_@5@J#]#A ec&m`IpSA
+'Dc!0xS}{I=z$;uVM55*zLCMq}}HƩB"Xb\h=Ll<Mݝsp(:!{arxy:Z4>tjT
+UkB[Y`OTQYcDsQLiQǧV=XӆE:mSSӧò-$
+?S;{V,gp)">,֣cMUd]F|6{<>N}g[F ȭ*Z⃏LYAM,`{#@([XEHJG8v(AX^4./07W	{P1p!/b⃞GTJ{}Wd\>{~6ȇD!k.ecS25>ʓp¦>u ׳5uYi%!W"?T2&)Z˼lX9)؅)EQ&STu${xx&
+c>XL%J{ļS֙L㉍l4f.
+g[NdYW}kcsC8SW [`HQ"YMINۏH/i6,:w;~,;@m]s4Mѱ9nاk;9v=٣S&z8ߝs枺Y)'aCD<k{o^}5ZbSG(=ʴ)h3ˏ{ 7#hRN9)mM9Q	T`[69a B2)0_{ZtXSj<D:47iTȣqwJh7T'x%Z8ޗlgRW[_4=I縞QIn[*=;B8?:J=cF*ʵNKѥco60^OUaf %1=} QP6n8_;s$rLON/pκ,93/⥠zt3VMɰ0ã=ʢ(:m,Ne|%w3mOmep~@<8LٹH,	ZHG˓3ϧ2|<8#PK1CpJP:0;sIĀd8Kd90#	I7HFSlQ	/8y6](}3	B^oiO)wTCJ\+;$0Wٙi|C:GfƵ9U	w4W1Y7JSO$yƽA?lb KJB/x~arlA5S3@I(U ׋j.+xfroۗC}\7BL[!i,׀Lʭ9QϤݲ./4ic乂M7iRӃɆJrְyfi42wƇKh{(qwU8Qud$IkAߟ 3U򣇍>}#S&>w6P6YFY1;(L*~Dd^;*&Ic{'y2/YS܉_`YtImU
+FYS"׬>8NNcr+}O$n<$"e1	R?92|T/Ν. [M@-6)GHSIolw8{'<_hFqR0Yߦ"@Nfb䷓,4	x2R.8ƫ@{\?̟	Äv 1 ~(U]捺B-{Bnk԰DߝOKh:G:%uS+-@6Tzt~Gh5%]ˤ[x67t#mlf6uB$|]Hn[ô5Y5
+"=nqhM֫ZH@Υ!_KXpMHnCLs.݌&?ަЊ|IVvu7C_d y|t]]tZ=9GE(l{9hݰTEð>7kd֞;ȼlK7BkV6ːo]M9Mk8Aԯt$щ^ԓ._lI/s޶/̙8c	d0PsJ$+ҤB|BbL;g8Mf+qfK7sT*uR"&^FSY9iTԅeK~R+#ڂYK<f~x'T)7aq䐖U#ΣQ<9WKbk.ʗ`_	Z47K%UiLuSi 8݇±K"vc`r3%K_gn1iyEJoZDn *'ྡྷ7\#oG$WqE `{6!x߾|C1RDt)aawSrJ}QQB["CyC]K?dCyۖ/Qj7X}ut7~G/vMk(JEGHŖɫ,{?x*[u	{_(szW7i*I 5kZU^+b:yWՓT$i5@ɦAc,7&m[zvMTh+huu"@G/zQ;rw$Sݼc[i]wZ]"blMr87+wM4ڥ[SIߴ"QӋu|{2έ^UJ:i*<}*Dh_%1}0MrwK'i7eiiI.U4YXţ,u|5}D.P,1 U1\C_?I_50`=Z9=$:Dmn\CVp`|݌~bY5۫Z(I砧K SLJi2kzu8lPEJkC͏GKoՃ059]^ZGeSbrlOrԆe#:_HKuS*sԆZw/:K0Scp
+uBƢCxhűXKXffȁ9ax,oO;:+heDQʲ![6|zPwUg?yFNOT=Uzc
++
+7xH-jgG%BU |㦛pneL} &3l)?$yӁ{vN?l+AG[YY
+2XFKTbZGOnBE4	+}̤,&ĥ}B&o$\R78p#PTcٓ1fnA:>Qd/#0k6* U b{NeXJdO倰	%=3;cýIp4z?cYnߌ}Ӱ^W5P*f
+=ԾW};1t%a|,lDz`ZT;D,*pFD`T{铵O+N/vV)hO8o eL.1EZ9֬"7o :HK__-	I,b]lI71AΠϹXɅFfY~I~9{`aGL~Qăk-Qn?`ثi{ԹT:2(qn( ]&5Z.TW4'48J.a@G?er~N0Tdekh2B/U;iStu|+=]^Xfج)(ݤBQpKURaF鼁0o)+ BzBQ=J\Qqq"<nNHF?	!w<6yЁiɤmh#Fr K M.<TNKQV́yg	@T{߅f}gėbc,BGeD8˰d3a	̉
+jt5̼}p{kRpѨ[\x	15:"mѺh&!~&E&dua` Slb1ͻKi.:qf3u&e,#p[`=K(5OI+jIXw$bJXMcvs5Aw:`6>UT<ѷف\b?u`"f-wK5knk.f8gѐX6nC5R[DDd!C/&.XWPo~(j0G:qD(
++`wZlո8jғyNgh	ozY/<N*J%8Rn=yi
+^*CF|i!jKȬ߅#4~yΈ#=ffboJԷ'[Z}IWvWKd(c(*Gp8N!j0&I45rj]aV#rm-6ECT1nVbZ+S_`aZ{èVg4~i`Xq|-X~F(?E"Cr᫛>ӂhT1KBt>7p֨sxB2]6dj;Ug"-Wz[9r2/q.#"Vsw0zm`ifԾd\*ĎcTMyJWGYͥcp2b:en4$@CFtCv9aeB{#I0rNDVdf:gkKwJNUI7!&Z7")	Iܓy\S@zоx$o's6$Nz&4` OlJs7(DЯl'?$)ut#y|h9QiE_yF\,~fz8Lfҥ#aS j/IVk4&pduHK*WoOh܀;-mEZܥ32`Xvlib;LJ7o㉦~rz||q'*	t者SѰ/Kaex"cV$_GwڦAFEŒ^3/^Oˊ7{S0jBQnS+/:v:8O-n͆$U2dm<!"}8]-*~cƓ0:O0%*"Y^}'6aAAAO21@cCqoUùZld<P:=4ġ_mk»ΐIfd6f<g,0zqF&7	\LЕcKvˈ".ĵzqBLmڠͬBgQ
+Nʪ34DLnj'x=n*_1v<_i#|63Eqޟ?'ag60WEV6-g0Ttn`[6RWMY:TGwp%ڬ0p2u5kD:~Gu&Y{B.
+K\BR}YfLL$a>ni:gCzpc"KxzqV:N,ح!!1=ڮHGuIXԼ`}JՃҎEmĨc:}i5SRz,6uJk/Ydp.Jgm5_kyNZR:U;Qb~8Q&&"SXQk@{ϡiT_A@"H`;>NyZ͊kQ!T+|5
+Gv7ؘvV*k}d/'!FG!3m@$cDXnzjp$;F]\7az$ts4r$\ɪvn~'DA0LƚpD	"zX9afjTמDVi:`KC#fTtհ_ʐFd
+Ϭ9tGGʕ:z7Х{ *T>'xQ7X0Y+H\yLD"i[,htr9Ǽ\)Wg Zoq:H;#:+C$]+._(ܸRX>*U?iCZ;EZ潬,WWvvۓ6왊0`x{,/҃'~y <qn^O>nQ05v֬,WEL laCA=3u"-X
+NtO5[YywJ	*2^hs#':˶s ŗV)x:p^71.k9XyPC'Upc\K\>'	]~GnxvX˴7Ac=$z~/ږH-"u
+NEס7N>AS,s:H&I(YQ[?NO;n.HD9 "uǂTZ@{FKO* I7dy@$2]аT%y1g_o^oOΦ!z^F:,N"./ @#] ^rџF~Ճ?&z]^nOr+ԟ(.];5:o,2&PD0mIZ/plf=JC83X{y<pzcB߯׵ږVBp"ny=LF;QY}6'+NNjlxT3*}E,N9tih,$\Mku*pLK-Rw:k{;ĔS2{"슸
+3몖\RY<ᐃJz"iU#NѺp|ibdo[Y;:e8dGWi*Z	+/1%ٲO,\I;:ea s􃈝h٧ZCCv~*w/.ޑIhĜ[7|㫃ty iމw__qEV7K-WebsB9,+ˠM"a>?h_Y.t $zHjbQ@paƌ=ƑNح'
+vƁ}VyXX-$r~sPT	ӛ|qZ:	Nگ4kB$xO])Uu{aUgJa&^"ڍ8K xj{uacN}:Zk O$le?U"E]x Eޠ܁"v&*Mn;.ؽ<ɃxMJ J5"]l@ӿ{PdBC$?7?S;L&Go#
+vЙ$F ;Q1ZA`>,nD!vFژSтpj9VG ǰnZE}3>umH$#zӃ.Yb(D+w'+M8'V\;Ď2Rj/_<.{4QtNqg|~]{Ǜ| kV[ÁC
+眠;OsT\ʊ_xocBvV@KWStEkTrPm]
+UX4>OdJ5]+vP2_}eA#ܩԻ{?B5n]PJ@:__q٭č׷[KL+_]CTMewh
+z)<t wh Z#ak"@[Fmf&F ùxF9ϫǧuKr|ZmrS&JUӋ 8{>^U4HbE@"Qw9y#d*ė~gtD/2L~s?29q|'.נYBvLqX]M%q*@<3nBاٻ83ߛ#=`+NMvw|$Ɠ[zAw#}tYÕTWrq7lX!I2^$ôD#jK)z{䆝YkjL/1*cK)Tŏ1W^ٯ
+;W+'X&S5dc;Χ60?3y٘DXTҤTΰڼ"bi/ZΚUkgHg8X:M/`F]ö}5K^WIT)6[B-Xq&	>-3*,njv=/=mn6hy:;		Z*jǁ9e'O@B.L#zVI"C8wzWe]S/P4PnFr<FŁ2œI4?9k|LΙ6"{;u@HMiTt=ij'~a}d@8YoX'4o	e{_BZ3CþM6˽6E/_G   +>TvKwlwWو
+HjڊQm.yr[v%Z( =eK!AYtk'	:VI_Pѩe0}SŦVw$%ߒ^a	P
+QFFJ65WwQ
+TT1!װ=p&H@j70]RfVI! "Gh^#e+*p([lh`	K;7I
+ИN_RY>!/䪺\Y/ziə^@cVTCWKm
+pJhϬ'纛)tFcvlvgu>􆰌'f^!>y*I+⢫4;dKMHٯO~n3cug6=JОю^U2Wǒ;ݦzvdy@ٶhU4j3ڝnq1[WCX%Q4k1KDqgQW24^=hry6!+Й4eTXpT)ez4k vpo??uodrP:٭,s5NK_jB+
+lvYQDC>ĤYrf*a4K:B]]~\H`	U"N64x!}ou+G{RU Xs_rѬu=$PW秝gVޯ.)迀
+B_", 2	ER5/EsEaqET69]2P05'bv1L:{RGG QݿI@>'y
+63Рnbi@GͺVg$n9(q6FLQ!q]36赇/P٠/rcl:^C8!OOhY
+⤛[l!4wTGJэ}3pmnCk!'Vʂo6Yvf^sG#<&,*h[cYڗAo
+-3Dp~+Vh||<<>ԣAJk'i>g
+^y<:gc|P
+sHڧ} g4L7hvF\cT%3熷L14#+97Ͳ1F l065;i*
+#!ӄ@67-t8>s~/.^J#ȝ"vkۅ0~]-QmEݤݢbh/&P͕tzƨ]EZsv;u`VxR;IYpAO7iE`.BCIrGbCK!4!E?Qc%D!QHh_TJl{ydVU;޸X{lͤ*V|ՠSL&MHuGʪH;O8i6iQr׶LPxȸ?'@%	>RQ]Xu;ֶNliEK{ȓ_ޠܙVXJIVgP0GCh%[_r(^g)eq+A
+Gw;$<U~&ƍq|Q{rkTe"dLb4~xlJ+kV!pM"EW@ڛ2vVV<lYuM<	Zs8u]sTQ1p|M	{	;3Y++Wj&(mB*=U\9hBXM#HV]`XwO(aeVYeojU\_4#X%I]baܫG̲8+gmH{]|V'Rਬ4썵|.ϗ<lMXC
+©mLK݄o}=ah9iw#ĊK%\QQ	l*8pQU\VĞn__-+f¤;P\
+TΖz<Z~	մ?Rg`ەGtȯ&(Rt:$*H/7[npO$*p?/[0Ѩ 8xCdG<F`s-$~016ہÚ/^犃A[ݪWTQaϨ*7O%VѕmfuwFމԆ6C+]ybp@"yWG*U哌朣$J2|ާb6iTʥMEֵm;,3@{<4睟 s{Ve2OR2hNՕȸnQU4"xҹ KqHfw)rjMPBx51>AkpxW+$8<!qje%DEIvfYk҂Ƶvjg_j wMh	ѤDz˕mgubMUcn>+`@ϣ2-ث͂r=&&⬱Dw4[94n{Q[֭>Rn%Vmm8' M}Qi2fnA57{ZAɃXiZ/Zgڝu{.d*qﾃuUwOTq	7cl|eHh$wU	v({&̖|5{ISLԝ2@*{2'.n}"sgܑn"ӝlra^AC`H	;{tzsssJzqJÑiO~z8Kv$#Ts'ћyV{^7O=N)7߾cj_{_RqAuo`cJt(#N
+Bϧ+5qo<D1QC\'
+wty;>>ڛ^"o2cΌ5~fi~V-ޫl΋|Rv~~=QwZ_!F	퓊?-5)YUAÑJ?J=Gr@c>:`(g<)]|l'ґP[zDBh"^Hҡv;*9Ky\UY|P._i2K3u'ޫ\gS~]|_]޴çT}/OvA	///ye1T1*	TsZ"^<S⡅et3 e:O:o5$`a%
+˰ȼڸ$SҗIzN?Du|D7&uZy9(TR5+OqGakQi~u,Ї`/
+		<w@E]il^"Rȃcx"̃<.lT!G9ځ埆x>azoFC=yY\^<=kk(HT8.fj=X _HAX ፍh-w.q#%͎:ff'0)E׊\X!x}/ VTYG(<l/^˳GoEMg\;SU|C w2%0:jẸ?I	;9gH	`J<aSP|]RN Q\bӉh~/=90"Ĉ:]'Ӻ<Vιl~o6mXǽIgbL8cnWi׋63,<m]me2j#7&WQ%kS(Oq_]&ܶilOv1V@#Sf@78r38_*SY9wT.ҁ>YQ7םMNQoH`xDH8_$4msۦ;_eKjܚt$<&ӭb=cR٪νV;h^˓3#@i7Ƿ^?h3C,N/(|b@4(mѸ׉4:]\`QT~#NԌ>._*dگT*VV)D,`A6Z- 6i{%9ζU즁́+HԵY9vҧ㜷	
+կr{,rJL
+*P'URi@DO :0ծUjU/THZqa-CdNe!k*S<Ze~2wv3ثpj,SuP:iTz
+COx*%Izwqkcw@QS{I1[4t#e^pmiDۭ^8q9l4SOODAw2P~O/zws
+34Q(C,xil'IaU\ ƀi@aNI>j쥲ld%A*2*hb8qm
+YAYp0	-"k&
+FWh=GJ0?0jߕ f-pV6bur`jc:6PbJWѡwݕ2ōA_rT:_OX[&wIߊU:&Y:>	tDՆ-F~mLe&1 .꩜	;'MB=<]aKQs:mrMrl	G3v0&߁^|S/ZlG3U8wCFWg#Ʃu^/x]lB<7`k.e	w JU޻YZYlZi-+ؙE'ؙ,%[~KYSkr*kZb	˝~7m9~]A͢( ᄿ=JAyքvfO՞JX-cVeF\HNLXrRNugJG;ڹY;[TSDRtnk)$/Eyl|f|o`quUH{Os`ّph9k=.
+ߵ:QnǕ;|3l82ᰩӞtF;`x8b&ƚqϗ|Sl4|-/X[c1u,LFTx"pxF[/_綰[u/oJsN+_ |Z ĢqzwwћA*VXR[Nh)/\q>HE'R5s)꿠(t5Z-%25|CgTN~["k$G~kkoeZ4^jbtͷv$>nw1v[OġVPW?t4$ڭ6cUy#*TvvZjmcybmXU0k"au
+ãu:v pBB:*7XBP3{$̂dQ[mtID*U*mSԚsAgR5	fQb	+@ߢŠY(rEZ	Ծf[o&9Lɖn6_E*ZNǹ߅΍tg\ja#5P]"UxB[~#Zqd "*QmXX V>˦`
+
+X=J>Έ$ԧFGXM$ML(hY,,^1X!Gìij&R  j@R ^@lB8_DwXZE}aiT5pqQ44?1I0-IiBݕ/	2ofM"	L:hZ%lEgZh3		>;]NX)hBB*ޭJtZUɡغ41ڬhAu'>!*}!ff,DJ,1Vp6vzUǷ[x!h.:u"N|h	8x]vIo$gJt+!YuʝzN.l`N-rvK$jCu;sI#Z$iUWauQ+M$څzm;SqZE|
+^KX\4T~Cݫ][+971QhL9syJHAt[s\Fj&0ku~dPC-ӣs*U&2:-U#4d*B&KI*EN=$*=24kV0[!	5"iɒL('lZrx?^(DNӓ <L_5us,O\{3fH|WAF2f+r8$CN
+V'^N*'.~{,:F-_.>6$Q/H6-fAW[pΗZycO7H	Z y:^'<M
+:HDuj`:v8.d\
+qlV;6يEECYCͣ#t<a{6ըQf_ 
+Vkǧ^XN
+mxzҥ[Smiϳ}EdLXׂ!Jj[@hڙ@0E*6C◱"u3X6$}_>CbCK[[~T|A
+R&Y:MX
+8hB1'@- /_f4FSPʝMt6|ǵ2lQ	 B
+p+\AE8u[PruWC!v$hOt}Rcf2JL؉X&}sMf-fʜƻtA8)lOǢɞ̖=@kF^k9nwounjQ?~}.WW=<'҄hS=?>%03OIotxCK8̉ݫN*V弥g]FVW]ٺU$_y\uH9]ϕk@Zk)A=[N;7|"/xYYHQ(ߵ,#e54KS˝zXw+trwQ##utS4R/#!~9Bo[魎k-QsUc<Ų>P؄=+3	?S.1lx&[{NӑNz:`-#^av h{p8U^҄+dL{jX6GM%vm3Bĩ$(=j@ȏV֦~߰eAARZoڐANo]"LK?u!P>COuԶIIU^PpvA9*X*OJ(Hq^1#q'UcjXVʮ9w:yPno8%Lg8>\vxp
+쏋U
+LVzrM[ul
+\1?0ZGa{'3ipR.A{`Χ'(SSO}v<pӤo05{an.rPeQȝӛ |,A^%hTLT	JXWBJWM4s&Ñd1t\Ao5܅jUFqwfϿůV2}"|͜R?qF#1$akmK5]PYkJ%޼YT	-M>b5QS6.'*AA=k281VOj_dw#*VRr{ ɪV[,l=0P҄ktkhUhij<H.pΔBVډxైom3cQzl/4>MZfb9g̑J=*XnePZ[6	ו⿙	UA(g <QZ7"V[QEij]*&W4S~&eJ+5&:A2"ص#Q[ޅP_FڤyϊuŖ>lTGo{k}z1I$R0	8Z}FO?~/#dwe/1f}S-T<(}n|?oִ~ nz-( \tY2tQTPIUʠ۟o
+ی=Z
+~b?+2P>ҧ
+җҷg$]
+08v\39!E:oxZ6=L~,z'b,Z&s%0SjPi.[fBr {:]TΡC3Z~ڙv.eqp8Z*Lw+["V`<g.TG?U^mgW
+iTH 
+r2S8SC6*N~Ku6wopV-S7Y5lʜđ,ybk FS`\43 (D|\+js6vi ld"Q\>03|"z2sN+}cji"V)]F*T|W{A0=bb`Z["]V3?H 48Gzf sz-%O{2p&썳~/R}.98x T:+S}ܽ-d+}g)mX8[l5OY*@Jɾ[pM'_v X%_ԐC{-4	IZًe9}ʮ'*|S6MҢVYB%`[UǊP	RڥPU:S}^nmRT 3*a:WQ1#tvZgGR>i,qH%sS<T7ஷ6t!c6)|}\.I
+Ԇ_S@8OL|@sMeȜzk(>%oæHBՌ\XpEƜJא(O@veZnz[c!M&Śm& l/
+ui)ܗ}|1pBZSQ1}.珬9PwIxpZ
+WYKqwZcpڌ=+ɉ=s6}u.h {CVW"zقdպ\\t-k|uFH{񷰋NVYA
+b8c
+*UZaפNVUqu6";׷g씘ιxxU<^U'qq88E,رiq%frc`hqY9WOBv$vWفrdŴO'E;pܩ(?>^y-mşh߶^e
+	IMУоdS]\G ů^=Vk]t>flgK&@Ĭ/Ψ(TA8'|بR[0l2lRғN"OI{F}޾yEWFS(Aa>?<{ctUo^DWW/~wW+|//g_}-7?*|ǗG>|CiGủDQO]6ZD*&[S</1GGNlz!A_̇ܶ2YTy|ivH+/|>>.9T$ELb`w&ڵ'>!(DI? 7 O)ғ#A❞+vUPAa%uBq:Cdc#Ov 0n*iOW/R席~|#!Hȍsvnl̾*fI̣|J,X:_/Fx h=D]GYCJL%BK<>؅t7\ԷX?i*97{ =rf<"PyBﻔpKr< [L* 4PC61?a.0CTCܑmA(_-˖N@r4aIM}:ANIu3;NMNdAS*"r-j#m>K@<;{/zqU^{9ri%DpJKqK]\'0k{OBi{Tkm\ޒza>K?£sjtFEq#ӹ=R+t$v)8ūƋS|:1h$+i_:st΀$~y\k1L!0j%*Rnnѽm]/+]H	djPADmՠh(*/P1oSgJz[ЇƺYH	y疎<IInYz%m{4^yȃ*|.J:_S^dofm5D+' z J9f`#OeDtRip+r"KUmzC-0rB
+GdM]D2qN+s	,2S2^*Љ|.xvj!Z"|QG.)Wd
+v1iSt~9ߖ8]w*ġ(%pV^cwB;=6v>0Iux>O5b`rJfWϪA'8M7ExJ䆇D~|,Ս*6i/<)Kd\ށ}D.9%I4UXܱw;ڧM/d*0I :x8k&mTU \CvDPD?&&3E ͪf~/EIǐKf:CCqIG5#JY |?"<~fC_Q@o#-Í޼JI3Ux`BjvIcnĆ?4H=Vy;Hp=I*M"Q;bIq2,@i9r'h}!6<AbMgv["|9N<XdGoT7j9Juxjr;;U‼c[b*ujS{Alx*33\:E]XZnB9lE !ƓLq3'lb!sNXN
+VVWq9(FV%um̵Is 	֩AUr+1ESf5_;,5ğܟiBP	d:}Dbqx/N|Z,Ζ$*	*cP4q>oZ"<7{oW˼U HJ>ZX+ܲ5UDM{/b\zNx1&f$%RPQH$Q P(Y-^KE@I	{L;|U
+A5Id@Gam^[z`?Opz^%tJ1OP5]lVHwTIdZKN9 *	&?Fy5M6v;#6v|mUhQlIwh1Ȩ5ZQgԥV42ٺ»zYxIƂ2,	>+~䉒1M{b؟ё뙒SE%~Ԝ#-^FD=Q5K
+<-izb,D7U>PvTad5f"Ht*lڼRoQQYʢjC0VeRy깚.4+G	px՚QqvHpЅA6) qjnQ\mޫo=gˤVej2V;&ޭYd5Y$v'7ZF_C*ZľD%LZ%k|-c,'5rݜx4կ]MTxM^:RQc{F~WK	ZjޯVwU#-5>Q( >t<;lb2YXMhGU9i FDZe;۷M|:v£#K]}YmNKq.n}mz=I.nSy-	&T$4GD{2by/s2zd5OokG4η[}CO}-4Eux[T+hFyXϊЯKԡMg
+(wۍMJhY7apY<T	I/:*Ѡ;e&?'ǵ,dRï_rZt~T!@~H 	)ji(Y)TiPcgID,IFqI#=6Z%MiC ۤtXVbRTV{J=)>
+slt +Bs܋8#=2l̖°4ڠt5<(7#8ԹLSX9h͑zwEjK-X/;9u8[&s59)}/nfr`_Q!?jF^P-]lKZst(77I˥"٣ܽޔޮۗ{'Zl@bg]:t=Sya`2E 2:%Im?VXAǬy]0˂i8dd\[Wǩjp.o3
+#(f:T74
+	I6&sEQ[[Q7ꬌO}9N7jrWz&~dZxx;7ɃHއ-;6lBD[#ÁL$Xk?#ӫ$HiSJ6}_g5nMiSk8^"r Sd]N^Iux&bHϔ[7rD;<[^{daYqpVp;*
+8I.ًUɍ4R,ӅͮM:GZ{Ֆ]aP!>pÒ0ܤd!eq6ITu(Ll<l])Fg?Dϧ&RJ⮭?+|½29QOKrf?\E*gQvTSlt)Pglֱp|] A=xD2r+ګ&%ٵ8P:/L5GR*-6$	bC~&<G>$s,-8K{*%OB+6y\k/8'՝w/ljϲpéد]8oUցWL0`_"ݲUi_sZ0Ka<>qB&&~
+͂ѯ)TU,[pОx c!(斱1qކ~SlE$^A7jaG7ӚB	[x=,Sʊ[>}b2ןN^^n[Qk"R~!7ܖ:i$,	
+,;2RshqئYTH>MhWdV8{t;g+s65}ܥUA%ܡH~v>FeWO}VЛ>cCN/ےqwxz"k<Y>zeeBd6nSGWmN*88oҰ"OcUX2FeDqz``FUZG{3̈MVu+LYuieQKr]:cG	qf{p|qFYmŃ804?|dT)Re>`,]SkYٽmI=Ot&0-oR7We #HW/'?NIO%%K+_ic8:feUkEZ=΋1Nqȋ±f]*8ILgrkW_.eU^2 ccsTo#fB,Kϙ	P]0>1]v8 "YoO?b rB4WӆpG`[`Q/d50":i%96;+Z(*O&:uYY&4tUPe:.ztЌ?j7;=vfTY4n3C/zË:T~a,03RIE$j&EuNRErI*%sӉxHzz(IWvf>-|Sl9jp>?&+p`z$Ek/Jw]{א	q7a[0P6|G9x{-5Nt &Y*j	8<&$)`\8NR֨$eH8_Ӿ-Q:UC;k[ v
+'^L孻-TB۝6_fB~ƃ
+cw2 nZŵϜ@/ctǖ!l:(pa({pŉ JM8E	3	k7aX՛<ゾmswP˴+5u+*<Db]Onbg6vp2zק?W!oW0ѬFtƭ>ܠbҘ$gSJʢbFn@qZ*8bSThpDzjTޱW_z;*72ri^Ӧ3&&m5oҵJĀ`YG[6z )JW)Ԅ' hII=$W'ߝz9;]lxa蔇n=jy݉[w'zwRUA،٥#@L:8W&"A!!amu|LЩN YU>UP#*M+VaZyE!I_E0>[,fruJOH";L9ӐĬQڭTtAhHV1+5j#@mSu*_oIJ"-aWob9eM^øʾ|1yqn}mwh:6,,8hzc{F Y6kwVk|&m9
+T4_kzUBw^u֡JkІOкSz~jILcDl:$I;lt5MOV&^DK?ll/DA cN1={L*DØ1Ay%Yr&.3N_(X澹n%
+C@-Z#9d[kTHp%Iirf< _uJ'gbL.PB&.[YL^,Ǒp_ZZ0'@%ŷխ+dQy'<R1	'Pޖ sY`*>1f8ax;^CbrB_ѵd5U搢%=U
+%8_ 0̢Ȳ|rB}Huf)b R~T`- ~@ ~OoǯMh(NS-v~J[
+뙞4=2L5X3i7DKJ}]Da6e*ָ夕1?W^M30/fvdVB^HEy
+pQ0V
+b]g<6EC]g*c{1Ւ\1ecm/@8s45EUL!*aV9R@a/giCAPfwnuћI,WqoW
+F71{$3TS8,urrp$HB1ZKrn}DX645@ݿgK0Y9G
+oU|l#I#Ƚdu"'ļ#uU[ wZJf(Eg` +2jOPiG	Jܯ|.lZ'S>=L2MՉR\JJЬZE06>`e:,_цuiha,5jNm[lRd=iwa:+5L9vOsm]۶+m%1=MV'L**^K΂HHBXiY-q5_rp@IgUey}=MF:̃GMM4ALf^4ᴳ>uvgFXH)dRTύTQ*ך[QjR:Zd1\v-P MAh/q]U oDHǥmkR_oYNrVW@JέIss#[Q}	R%KN~{|]E,tFMe	ۚD0%ʫ1<Hp8~w9Wtw%wE]&	w[$bsg2T1- {uA^Es^WXR|[lD vh>3BwԻubN-}F^֮XFSb*~;_dğ	ϯQ $cGtH촪X}IcEx7xde:#g~8crb;YG8&ϴ㾾n|&a+?b|,
+mf76l>tj^Iӟ1?L]Vc~V2nP%:SjODc]n?qԩPNǴȞoѧrJGn7G\+|IJWAC/:O<!%#<}IYi#5f4L14ڏ$−ځwhnboPQ?)pjaBl0QI<xfK1zW8-%rǿځ_N)36UVxSL~n*īK>/.OI-$s04-)d	'XĽ᳸ɊM#VFw4GV|1lpT(*)iwPӬЦG!wƟOx:YWePLF?*_9y( 71l+͙!QTRJ4RJ.cb4)4tX2Hr$f2-!0 +ZN*~д䙂w70U0-Ĩ!VoUap<	*dn5[4 	kM­u0 U&#4Hp1oR lsa2	=6yE̒$i 9[J::;ԝ9P2|*˦{X|[vjK5FZk}]&hD/f֟mCh^oQN[MX0o>p< zQko[%;,vʠuOZ~mn-kݬYlnIg>,Ԃ'XEMJgx^Py^}|WGl FmݧS}lxxH; \0w|!K^r8M䝺%yUdRׂ[fBn;	euKm>X",0$O~5ed2HF4=$ Aҡd}sMQC.<L{@:zKHQW841=|uQHs";^;jOܪڳe!|@R\t;9XEbk;rF'q` E`&հ+o)(A@R7-0i9:;{(И)gR9LtpPkhJ)`<b,c|ŴXfwU1Dhj}wrD+ʎ}xKR>$3Yܜ3|\?n <=ɓ[cdiYϼHC%h]'zYrq7CC+I]pnWJtMsY+R5cҘ;/-c%$,{=J:z\OE<T\TL"{qω )6tpKPL"Pt^~B$a-cgy5I	`\8֩([,ߞ}axD-$6zTdԞOUXu;H'#Fll5d񈳼4fKDq{fr(݌|_ȸ5:#C&%XAa[|f:خa"?H9r"|x.KTLQ˼`+T-=DK]DzvΆcsnEKq##8F0E:ad8A%C]*ꌌ]9	(M<jNdY(
+9
+Flw+ć[nl;m͡8+𻋍cXWKC/f8-HI!6M@.f+o)	&Z1_ԣ 3Y>mP
+D8 YgȔScdzdehX=t{cM"a]q$^"]iuÿ7`Q?@??f"fŁ҆R0CZJ"&G]\1.'jzYxE9X--Akf@3FǉY.hCN&2Jc8,!2\R#&)/jq3V`|E !%Yf9|,_pS̹yb0cr*56HbLzD
+4iYAW\v|ivGCu
+dGt}R	B	,M`'2a( +N65D3f,zq;)&NF2Q:5hc߶nj|qSP@6+m{sAcnWWW%z{,N11TqI~dlul|jbo1l\0(
+FFmrl4䎙F	e6Xf_wCv¢+|-dlPLPQ=s0Ndw|o.=FgsqGnDb=naUbCNΒZyd>5jp a2^00=.ҡ;͸\nE#ae	q6j"A"X`4C#u2@|Rs*w.rpmDh0UKdSgv:Iwqchݕ4	E\7y?Ehܢg2['JwNr^ML.C!:
+Ioxv\>4Όc3ZV_q.xQ\B'X/umd8t5|ܜf|̦qX,Fv@j96b(N[7բi 3-9I릣(Bv"}MQL5M1&"{.}1Lb{w%1l~r(ov^3Bl.	EOLf+$n#o^P6fJlh=Ja`ljIb;184E%'tq?IC{3ApVD'KU@vfbp.\-yƄbKRp)hIL`7dzaAN*E\%CWڜ^,V#`+Le]$w$CP$H҆4< }+bf
+T!f0R[0jmLU\u&]-Ӄ@D<ft:hAfBbGW=mrބjbx&|;T,hYRޖs42ܕI4iG'ؑ;:	P<05=~Ax0ĸq8PWtڏ 1If8!NXot0-ŁI;_iq(6xto[2:=H8;nL>L~39I߽y r`@y.	8gwR|-."X^d+"MZg1 Oivo6dV7UqwVL9O~es0vtkLʼYeTL0YԘ_N^ؔ(a٨W-V%KWx9o@W:"T*	12kqXb;֎jt8W<PHsn^Yz6Ri^G=qr'cuVQM5Oٳ
+TP&fќ-4k
+.1-7/wNVpN߫o)˿Ys[/G%9.3͝Nmyph^O޽8 X@$8X?AGE'hQcRb5L e͊ȲE^Nan`g&=И_du~5}͋ʎsbzHliʗ2 +`濧jʮKޖ<H:Z4}|-~,v1w JiWd:,UA6m:>D;/ܑۡ{xrN	b'N홸x>;W!-te}i()Ϗ/sNbXhexU\z852\'FbaihLj'HKŐq<n+`HIXq`pJ+6vzL&*fy& y6M8(ܰfMB"Љ
+.ꦾGo2R8M9	*`1>P`U-DxbaE>Cp,X:vQYWxeMb%tPå2$:Hm[Zcduu5Gb51iXN_ǉ/n2@ah4&G䕱eaO1Q;ƹ-j|F,W4
+$$Dc>},U> :'cD]DicmWQ*8J5q_Ə;fwfIcc05.'cDU,Nv[ߕAm y WGn-/7b=(ډoUzR!n(^e6&	YGP(@bX@fF')5\L.Ij95{^9q0aS0U/87x(.e׮9ebk$iit$)^
+{0
+sՈJY"JbWj@;lB\j- {/%ъ$x)-ԙɘXT+q|b8yލer 
+E(̤	I4ĽjkhpVۈG3}qFX4tb86d)qк@/*AڲX},к[-K6n3Ά8Lϐ.aQFMԁg0fgږ`A9B" TEiU"%twdQ-GªEd)V{teY7nh[+ L@Ⓩmr[hJY% 9%7fb[~!u l!Ai6^-/a31
+5wzƤ.(.GH蛢]/9;Z*xTA [VDbJo4,(*5LX9{Yq =yK1o-ue5kO5Geǻ mKJU$?l\=~YN>&QbeW6Dv:_Rb:nV{,s{ife37m/kpQV@"fޖ]-ƥH\|('
+6瘸cN[$m#y#9C%?Bkr!aLxVQj0!MnzIS<|Z̸TōM}YQх*Y,ˀuA$!CòͰ*Us%d|fvؼڟ*FSTWR=IRLrtҸ}E9kw.JٙﻀE<@MZP*vdbȯxf{9nWlBWk<`2ba
+T,# t6QI3@_r6(j5,cw&vGWs7F8W^FBȃ=u_Oc-|-2܈,G](sBxQpǾ1 jxyVuhN:|~	"q김E¿s(9~	,nX4hu<2ɿwcĬƌWs1> (6ԅz`ub`7&-I22qC\"iq~n|aO,nf}x%GGir3IzE sfi]VU+HN=F8kyͼ_r/d74F&H A|[T{ܖh[H\ͼH32(=Ȇ:wD(q-PR93b=_vbȸ)A}+;6;mQV"ҡq#>CUgt($kr-m| EϞ7\/)^+o9^F%[c$Z`ԉCĨ{\m+&HxG-lҖj..)d t|xAzq	5*W_fbW;p@8K$58b&/bŰ_C5Uy6U 4%hut2UAi,Ug~6 nĮuY'AQ=}ExzfG-Y7^*Nd>p&礦BOk6Fd6WKB	{+v[חv@-N9N=vSvVH!14/
+e:
+pl8jԓXu7 s@s[gf;ihI'Eץ8+F ذv<D{
+<S/PkF2%+L?Zha)K6sT?7Kb7nPtb	Jӎ񋞕)8~[N@x@k=xZAqkNpо;;?lrl^}P$TKm9>y";{$rщ#>mӠ\3#FA'|wtϨ'qtsOU'/g{#N}$Ac\&Wb~ϬAwD-;=5`Qx6qr1H{kF|"dͩMh!#W>"֛Vs6'";nw_SyEm?DqXWv7=\j%7'cg4WϪ3	pX&.碢H TCюa@;5R/Dnam1"(h;1EC63c(kL{(f)&˗-deVm[]hCQ0E7mUcΈ]x`eIhlY7fE}w9$+qքA!c,H(Cbd;ĩi4xvNjĖPQ'iâK3t쮺;zf0ڲmUڹF&gޖ8n%3)6	~(%s _ >w|Zze1wk6wF  
+t󊩠]Aǁ"BSx%͌woOɺ`1fS gIM {xch>"v4kpLHdhdalV5UKfzC@1{P_1zh#N/ηmTbD+\rлo\dO.ϙ\19-+	clV53\ʂ\<ZM!md^AlOjHڹ?iGFӹ8I%Ldʘq(>u&L/ylրX㢼o]-&ll"$GML|[9 	23~rkx=<6#9AːW%H˒_ojVs5'l d ,--h=dGu؟Ȥ-H{\S*ʙI
+B+1d'Ęk?ڌ9:a	HA0 Ĩ'i925#Hg˙ 6x±AOuHU!s,yLIvDGf
+]RN,@첊-l);"P 1re̘;{d8P򩫞~R*}׻&sU<x7(<ۡ	^%Sb;-S_n翕ҖH,4a+9wN5"JkmB0{ˍQ8Ӕ/Wrj|
+y3CEd=Fȗ2φߑ%%r@R1[Z]ՏE$/9M` qnO &̟H6kK$m YEHZ+*j-{Ab:	ѶΫDr٘	Ȅ\:5%w=HUoʈmCI4Ȳw83BkWYw\z=`!idJ8#,g8Oֲ+0Q]UVvVp~[|;r<z@߿/؁"iWݠ(q	oVM	=mPǑ}yuӘ-c0>? &wVUܙɅven0q0Zj缇;c?ǡ"t.PTt
+|m`fU`]KHWBé-ȡ	ꚢ11u.δ)_ ³ ؔװg6!1QVƹC1iJ}[ 
+\TTc3GЈab6kV_ؙO0ٻ9*Q93b#ݠV(zM-۠Zfb⓴BLt7İ	`u;(>dxiu0
+*)aycGIq
+Arp֙TmY dpd`nn{q:R vOvƻ'vBObQqqvt//ڶ#Ű,(h%t?7wDms+ZӟieP,bM)*\Z+ FIC#zꏬO# EhLZɂi<`=:||_|f"t$x|I1*7f^N8ᦚP A2]	kcJAJI$mPbU̸aBVcF,X\4#*bYMaq|#$eE|srgl09Ⱥ㮂Y.2&cuC
+۬jCI_E5^cbj
+1S_POåc/UE&boU"d\'3Kɾtʈu05	Vժlo6;5^	k `/.LٳQ6Ki:+cpX9yp_)U"[O.W_hӜ$U[i9-2d\ -J9ňn8[_OdWzn*w4w8سM}Iˈ~!Eeط}}S< ~p-RO+㮯Yɔ_`1{ɷ};o+j)2?TQ nl0xfB;Eq#
+Y,"%4L4S]@h-*eePCZv@#l+'QPa3A<b*v{?W͚V*¾uͪrmF/[\<.L8jxv{vĮUCt{جNfwd)H*&Gfb;'[~c:FUSD]M
+zY+].	YN̍ %۴gut\tԻnt0?r֌jWFB0iX7ˁ˚6	P'o${$ yw~~=+s8Hy<j.O.h1Hhd#wv/7dD7HL.gHh:3L@,F)L̀?#ΉIJo@wYLd޴n%F^|{Ef>.9OcQvN0 RLsJ32RC
+{\<YD+a<6g@}	DWƨTƮܛr>]s%]:옚(DLxNc7mƷô{tkallDxw,40eI0dpJ Bs%H<~W$N|W˧' g#6/\v  B`-Cՠsf0`1p'8 SNOtYm
+8!80K8>َU=]ysX+ێܮ1Pt#8W&Ⱥ]bq9m𧑈q`S(OC;7<5!<HN}B11VX1'2iVҗ[nX%	e@zB`0.M?
+${ڼ3§/NͷGۙ36Y.rp8j`j;hs0XI&&q6׵~T!)>'b8͜)`콳mOjZ7o;4,?&fQ(t0OvqD	=Y(j$m
+A@DΉ4c
+9{qwt Wa)1KOD#G(-;|k&楂-2C9{'plt	e;ԸA#Vٓ$x^b5qt(vd,ޘAX|:ۃƶOo#Te:@?Z\[CO:zߡ忦E?qoa~pbHQȯ<m[MSCO`VL1*e hzEq?=>(Тӈ؈'"#!,ɓ+9Nڗj&Ck̃[V88PьWX?wH3+9Qu@qݩAuR#)& .=M~rw?,ME3?iIkW6WK-qay**n(	Щ1u$8l	'Y|Ipv|ԨJ#0a>>8|Y,a%]"=]	g8u-[ɯr~vgOJ	]APm6ynYrLt2Wh?Ϟ}*<VN9D^񳱫&gO8?f}@l7@gzIBHit18-`-DF&J0
+A+őqd.9>6 y杊UqM{z=ߏ9>1,<wAXDlaay[@ӱ
+`,^MtPN2炷`0|@?6qI!&R } VEvk bqybZvu1%b(l|Gh͌o|+
+Gp(\h逕X]Mgy>\dU۬2/_vϧ_|.,ahYǟ"^bpov,K(A
+8=}tlW,XKl-7\](Wqau1{%f_bGO~±"{^{^eq md$V2mOVfA'viNvWvt0Vq/4䑇|%}.#qCQQDb_OAt&yEfr1d!4]R'۝"`m=ٽʻﲫ[^g}
+J (8j^6 XVOLd	{qLɴE
+ңw5b3 T<:_=Ipr8ՠƗX}*JLBotmB*Iy5
+{fMj-aLjwf9ҤwJlm\X
+.6Ȍv,9_5 >@sT_u$	n(^ad|ܕ@`rZU)aj
+"x!q*85Ԡ93M
+\s$RsȮt}	i(^cEjcIY}aZ!
+#A7r5Ϋ`-L4=8^W`kQl}ejhz3˷ ՘B5a'7t?E>X$%(明GclA>|ii4352 2!(}FBQ.Y~q6+<E/lYVXn*gvtrT"w_=ɶ` ,ry7ŷ~Y|cѓ{j=>)̳"[Me@.t~qRuz6Z&<zeHKwfb_$0ܞΕJWJͨZQ@g6h㒩-S+s۽n>nWA{T7\~PP~gk,[|G{eՒ>[(]13:_.%ͻHocMxm֠[L~	ƴ RK684//{!3!J"+ ;Zf9P"R<Վhcõ/A)ў{10dnlBseF{D`B1b:{>ZwάAzV+u̼quvop3m_ݤftaa~9'әUTJz/3;__v$/}u980k`'<*4UUlZyدWOSmg!22x*2vAшHGLӣ!
+-ڬbvAGgcxtU,
+_:(D}f_̮Ry'i.՚2)Nc	hZ_'@!ȮD0!lDu%1*l"8^MADFHBMDnH26^a
+Fh'=L>*ɨt}G%:{l\.|]~ 8SV㕩1FB]fmqVN%yP7x[zq=9cf^F1.!KJ}
+P6p:RxF{P'XOQB'*Dԡx>y+<fZ=~-3Ѫ¡-gV߷7K>Y坳}QkI'43H5LX" ;[6c2-_l:[YERb`.!&r8J:{qAyiBMPt`0ēP"l ?ގ͠&>C7g2l;7,l*=}\Ea 31SQyMS0G"꘶n6S zsb+VF!xV:fd:xdTEWa82 W=,f=-v]όJLNq8Y#
+C 4x_#(t>/1FE*_ȑ, =d:>V?r8e}߿ǣZ3sXkR2)eQR|HD=x_L`hGb=%Y _!<QgopiNG/in>g*9|qy=JTB˯+Z*]SaYLb5WF]"Bi86rq->15P9h:_#͚	zᥛOYWyHHyV~ո[ =2_nA 3ccJgtgmhv_:MNfvǑ)Nr}-hoRDv D8ȝ*lHᏹ-6g>9Q7fA+*zпQy0-.Um䵘sĞ޷Sg(n-fk5w $~'Tp3H7o4q;ih|)R{G!VUlҚh=}+HJUoUeHwR,EQh158?ɲym3~;ESuXW= 2fڥo*i\˃|l׭*p lg ڃ {h[37JTIOM-ݓVjW-D~Җ0V;39tGNϒBKm$-5͋fQܲm|)y0${¢Hj8i)/߾h5apo<fWv8a		OE۬tYpD:sb&C{ ܤWap㈕䫫,0tZyrDɴoT
+7:ZnʔR𮡻ZAȅchCp3~8SqKB;`ē>A,^9돏gߪ}K8íZ3
+ue;VEQ|di)*;b!PCKmimF7D\Хw-C2rLfsy,FmImTueLrڹgPi쮬NqrA e;+nR*C|G"N4Ams`KBcYf%ĴwzU0`gϼGKYwϚ9ڵS3tLK{'!2U~Rqދ2XS|ØPHpх@zM,^mON1Eȼ1N
+']j=RO/ SV4t6)6%\U=_m"#VE3\%*WUdݾ~ouX<|
+v]UhM
+hó#h+d|fXt̀* jq<k8G1y:4ɟRc=M##qL㪫dr99_;C<"3ܖCD>x<(
+vQ_iT_tǞzk-럯G}5xጷlwlOY.O\>`s0dEy&(@3H1>$"'%y*QccH>$9q8ںƶeB\Ɋ*[d&[fs_<CùoW}ޖƁ]<ӫf5Ƀ%a͋f<N!+*/%ydHȋ<Y Å3~x|}qu./ζ'J1R @JЮ8D{=Z6'NyÂؘ:h2-8 o0&b|>? `^5WW[zU%!#J,hGY.fA;ߎ{4tZ޳F>4[[y|dN}w'/;y럶?v?y'z&`]~|\D_otO+'(nF4KK(G9q>eUe5Fr%2-yUm(v:1MHmhwJVMbɥ:?90OyͰa;_so&e\㱠,O'26)XoTHe	_/LHFq$ͼr'^9x:tlb~RzSc935x!LòZ4S3@	N`7PN`Ǳ}5YKdMV>P-t[<L\)tNs`,Ѡ.>¡<(##`"?:_:90=#wG@G@ŗ+{Ş:Nw~2AT̀o↮OQc.1rrˇ~JȧF=^~<Ť*srQ)	ERG%2j1_0~|W	TȚXۈ8t/??ng֚&ǫmv]RKo&kF̬Ze0Sw?Ҩ~LMW9Y0Y,>_{8h^W*V6g'> R{dŶƨa5QBgX,lM<IR";LhZgZw
+R<`phxY\5}@FrNV,=DВR̩8X ќ|xZg٦kϢcVCv]gevergM(foB^|$EWj	'fc|GwY`&5K/s'oavM:U5#Ac2Z1'SͰ1S޸w=ILfp.-a?hQ BV˰|:ځH5:/`+é1P6{s3<2 㫳i uWN|dG=>>RY/zgNa|B]WRJT'7۩ͭ_"Bi.p
+RlB#" %^yv/	1%yfoEm
+8gA`B=OohY0`9b]_Movyg(o[糩ͭ_{َop;v|ہEhGj
+F Șv,rkO7gϽs\
+CAW/W0m!'^mw][>2ccqoRosCZC\6+t 2FW3c;lZl0cF_uL^~_^m&ooǳ}NhSss1}mWQE>=vʹZp{VmfUJ~?5"8.U3(	HN@gϪQ}ئ?,&iv|ŚMixtTeV)/M-&-.)`}&Y5m-p@@tdW,6ӺK^ՔA3:L?xն~ҁ= 6ո:Yێ4|=ۼ8~xM|7tZ`֓^t08lcZ$OBj[l^Y&Qk*(%ϊ}G2bY^~]_DkwyoqqrRǮ-BJ⋆C7
+$ܕ;t |'X$ Ql I:w%a1NCx˺_p!@HCc_Rexe,9dRpvx
+.?>.W"MtP2|Hhmߪqg[<}~ǡZyCXі#uТmΉp&o(,_q}-s(XliC"x/A7N.k]viVN|
+	#x3YPZ(Z+(wOei~a4Q1(b*#\آMC̵}sF%jY`.xnuDP?x;M1{M28l[ʬu(b*o0>9FY߀<mShNtΛN5GK8Dݼn6Ѩ|5T)(M6kw08|L#Lh_ˏ-
+țՏ(k|qb62@þ|0Ȍχ6:D?43ߧg株c6]1C:?M֋AKgy }ޡgVr=K_WX뛦hp	.		LSD1>'-28LQoncxBJPM iۑ_}&oeAcLe6%`LN$]Ymi %`brw>@8g~]FYF8Ll	j:Sks@M<f<{0QHEaiL+ۼgX;hz~;i%6B!|f?vO6%-?Ѭ?f|$T󑓎=VGUD[hz+J_ u2:*tiO	/f
+xf.Gq/LSr^D޻~o?Og<s}yΊ垪2QG
+dMJEmU<){;;>[Tr 2ϒl j6)dw` o*=vc|;&S&Ǭ;݆Zwp}x嶝-;eaSls/.Ʀ^ g
+jcAa?wF(ھ(A[~5>ST0n᢬/P]Cעbpa{8XTBlT
+Ro
+'c-,x^cc2+Ƀl5_`4Fo}`~*^:dqmTTN}ߠP^m#R)>p7raLhˈ/t_vm:LidYܦћF$N.FXucף.;h~l5^`zDQD\#nxMQiu ϝ׿M]-MUt B{xOdv0=gP=ił4V[3	 HAj6Lzk񙆵'mB7ol#<<ޥ +&DR1e bW2N
+t$clk$'=)FyDPY5}څyJ_([cٸXB5/8IdS<ޱ
+78V'7H|<M%nl+Q b7˦gB|Ck_\%w>$kAfu<5?vI$E`{.k.^*AL4ֱ)i0&OIY=?NdǒS>èaAj>X(3РBX{{GR2dF1j<]s0kIzPHLpj0g~tc&z"oq_UWWyqqߵZwAI펐QK-G 	gigiyVG<BѸh/1a=3UcAFӊnf/	*0w/@l.^_rE8.\rOF3;4Wo\v]_raDVtB[LEN8ퟣ:_zS,$5
+YQ]gyisvM	EM}hM."4j {cJhNY|sXFzI܃vJGUtf^.]=Z7=kfr4#v&S/1{<̂|ytqFևFGsi֗e(.SIO﩮W{5Uu3[$`8OoxlHQ1k5&EZR/+FaHC;,3<9y1`{QDv&r,r~Àt@bǮS:C{r̴@K~%Hg0{{#pA_{J'ܟ2 hѦ+fSu8C|^N3yXmɡbߔ:4trFFY]9j&%=I|
+ZMLbw4$}Oқ=vbX4/C
+|tGde:VsO49CgX0Z]ܶ_!GΨԭD ykL
+	#	:xtO
+䵎sFr{tj1*Of!dG()DOdtG}fδ<!z&tlAFxKZٔ{#5%ە}YGi۷.j`ytV`@\*{.祥vkN4D~Yv^~7yout8Ge/<,b޻;#aGٚElcS<{/98|5Sf~3-87w`{rS3{}ŉ(NIIb~I&_UxfN1 P?/{"	L?eOTӔJe4QOTFR<]t7ô>__X&aOOtjbz`BRJ̂d6fwUOhƛs%si==K\	>(ز`uM^r i_f]-kHulaqHe	lOBSV`r"t6{UT{M㓧Lpw֖E9/UnfLԘզe๷\K]zχNR%cDfeCnGp+v0J`ӑTw64s{@	^h{쮧gVwzf&dHDeɜ֗*UR!(vc^zM]^RSnQθ܅=3ăy9Qȩ@Zixp 
+p+_`ڕVHo7yW*A8Ǜ\>n@;){ADq[jmԑ!bMZmFjH37t;	Y {d\JoRw6륮s_Q,eT}I{7i{&4J XSqUMT	a2GG
+z|0 Y~gVkl]tz=ܘlK^"raiql2\NZqi/R^Hsv?ơkWm:kv|Nvel8yECī>//`,cesؒyI606$2ru>>)Lߖ Tn7.*1x4E-!n2Ve3'C۾AVi<&o+w:W\xSRqym:,[ǧ7@.PCw\r*81L\S2oáS	:i |=¶+'Ɠ/)PT<v0LM.M<~UIG!VwYWA)C`JxP(מ7 ¦9>[q[iyÉ{>ABYdNvSeyW&caM2d8
+	S_UD?TAF{6)3^ O(<MW=8fN )@ҦT1aJ[woTt?t[9L!7rs,O׎eDm-#*Fp)J#IK(6SSY|95nͽT~mO=:.R!dƘ'lp.>?sCX5!WܕW\ʧnFM	niFLd}wgَꈷq;6Sby݄8poN&4GKzQ>mfQ_A*9}F7T6yԋ<FcDm ƖK0`ɯ~:}:|?`37B<V׉g|ZZɛ);E\3BꚡY_{
+gI;1S~p.VgO=/!
+5!_Q"{vdb*WyXM~͜#@VK_^c	0hzH JKj2̾)dM!_9Vev˟Ժyx>Ϯ񣱚_,{3VSY"X*0o0_(\F!J\T}	7i\e	['mq	Y˜ũ&VsB6)&{JdT|q|6oLXif}P2>rz[Wc!\j
+1<ps>いEs_3М	!$'
+O7fȐ`'	"l4!$L^M3)d-_bY7z񬦃sqgt]aitP>r~f^,0(nm4bm7WSncNWG1ׂQbԓZϏ}&@Ԩ4ۅFWX̺Z/d	1,0EO3̙_om0$~HU3۴m_nx<T#QοSЭ?0\٩gQ@%,aOh4 }ٶRa  &_#!ul+}N)=1[[LR}uLw,Uyl6	=!Ӈ*F|R׶JF"PG3{ۯO3嚑1I:Rg Ro4C^Ig9Wq(^8=^Qγm9V߈17;wOtX]],Y܆Tb֚6f39wQ߁a{]`zHjHs(􇺂1{LM<N4 l,qdqِ̈0KCg-ReɥtԴ+g5Iio3} 2+k*-)úܗ1Ij㇄r:lwKԔsqSj[19T;A,ܓbQd̬orhQz@vPʵtr v(H>HT ymivLWl}+5|ႆѐOW"ZR].kjnJbiuo3C?5߸tw[֧n]:ͯߐz?g	%|g$E4e,drdAij]qyLdCq B{q8ikXއQ#=0!5ޮQ!#
+\~u?
+gծWeל&*:ۘ
+_ROoV>?U-rۯ2\ \ҪzdHCSon  46@mU!Q;O s/ĩ$45+8cF/6aS	sĄlۦOU9ҳ 4l9Z{
+$	 Q8^yy9a	U'q/Ƕ3S0[V>zŗ3$ Q!I1g/a#$0X=0ҽ9/B||<8@g#-"KUM 0SADzႢ[jw=5^Uչʾ[j5HpUc f겜_.4h#AXaK3]DL^>'x-S}S(jVgX]Up*JÓcr4nvtT01|i
+ ۀZ%(͇>ev1J3NXO5&`MƧ'˯SuO,0{-o˝5i}pT|KHR/DbǮ/)'7h'qGݲ<YzjE:M6e!]mޯ ^XNND{GgF#0Sܴ4uJf<{{'a*uNRrmiYIk D1cM-
+o]_*)mxc5x *r]&<jb0gk.h[n;AYg{0i,*yyMvJWl 郢^f(XLݻCa'br^6R,:1igY^aٌd>
+)(DADXePN; p͚wH8[ň?uR%p' R76PZm56-ytTT;keBs+}\ sl#q
+:ıYMOC'$8\<oB5 Q'Xml>:!3zH{
+WOKk)tx:t,:'Q-K9+DhgVy4(LqcY曚uR|YcYJ_`u+:!2Vԕ*,6i@CUwJüXODoa575qμpȯۣ5&jfdD8A'f=2CSLWegh	%t5RbY\ƄD΁dh,T:o^H{:3ǧг22JY	]F429|~baƼVMVbg(	 JĥDY9Q+#ƇA+HD./u3X 	HV9E	GMrKkgġݠI /P̓pZ;DTQ	rL2by_06CtY#.mZbh5S\3KsD	_IcA }TmBgZUbU?jhrl
+K!(8>1<@l9!Fkr;}
+ApĚb`'gb_8=Z4 "'=2*Zڕq_.;To癱Ý7ZqK2WftZ5 T	:>nґ.mS_+T7 kb йE!$+|%hʀtϾޚVXD#.ch)1I}'ʡDn)ABEs+onicÃҀ=@08DGC&g=Jv2^J4٭rXDUh.#BGFQ]jZ _F+3'hX`Fqzx☎}2e&W܏gN4H7K?o3C+2b2EƉɾ_ں=߿ jUΓ36Upl&w7A=+/ lB|4kVnT+p4knohIMSа3sYj,Y2oϒd  1[N_J$	gLדjSf5JOC~yt$q^U5KHjͱ#,87o2
+,s>}Z-x,.;?ݔuB&ji=>k4)p26AMjFZ`nR}In85oM3'ǊyUuK}` LnM tei50\D0^=6 L,Pgl`""6_7ŇYސ^4|R-% 68Dr0Kl43jXhsfq4df"^4")"ݐ{nbLvu'#%fɹs:38&uF/RJQ;}r nql!P,6ݖ'Ucyu)-GfNÈ/Uh^'KW<]G- zL<L^9Sr\Wc<qp[b[I}B4%^S^ !?y֧K^5u'sy@~Ȭ컧/eR}A]X$4D >0rE:q˚%?RC:!!g:8x-_)|+J$(Z>!@0xF,XOоW=쐛r/pOmoYC˗jWSG6+jnѢGJ.(j+<&tJ`R^Դ5Be'P+>!pއ/Uy0=o֊oW!n"%pآ2-s{s^#ČHt
+hS:x2K^EL =ыK
+U2r*ǐ:vM%Lug?kj^VE;1b_"ƙɐ%gٳI~^4:&N13P/[b68mS_a%E;uZ6F#OOxgg2Yrr7wԟW kG-"SC.v5r^ݹ-楖 G8O0_2l# ,@	"ŭqܵawVY?; ;m,2(,UY%*g(lAKք3:fj]G;L|4;g\}h Vb=RZ<3-G͖'[Tϛ2݆:#jEr%ax¹5͜ T(UˏCoMMbn͡,o=ޙ!1!N&NaMSQ% %OE
+NnC!64K]n!W呈e%&qں|%I!(-8`}؅[c-\qpK rW|fv`LCJ2&&wШY="aqL:*$`d)z=y恝ˈv1h I>}xW	.)b|bI'd+RCu<jBIG+}$Cyd54dY=q^QnUa#<Y&j켫B/X+,e¦ZLaPO~T!LkTb"cDBig0>INF́$!>Ѱ[}9$A(Ifq6g(lV۽Ye4$aHU#rnLwވx?.܅s\n"P8h"GռZf!y$T7kд:xUU.oYv+pouȋKn:k)IrE
+Twq\"IE~	I6S/=]h
+4B5Nuzoץia~Kc󸤽Cơ̒BMlNUAtbURkA`fme@zLgqdd}aW,37	IXwAo4 sW]PҬ4Q9^bS9,Bg$kE^)c0Q
+OV)sgɕV%MPp0\
+*}ɍqxc0r' }Jd0!&j!_t>\G6O}6tlumueˁGDr:(̜h`JqC_P2`"\}́ʓ0tmqN 5eN$;sJ3u9S$ϙ!HB!}gq9)&HFTxL65G1^W9qVzSe҄Y朥q'9Ȇǚk  MXpdඨ7( u?bQa"ཾnH#Kh;DTRA6QBxLqK­Ӿ~	(o9C`YAw\mrK"V.2+W١ ~YZ%*J
+Y4raH3ooeiy  pqzC؉(
+ۙI_IudȖ0q 0mqRAMF40{8h~AgLTvDa[L_^P٬b߅Pl$zf1t<L";dUoW [O
+WT[C2C*PW0r2GoTV.73+p*hlL
+࡭D/09wI_tOa_bWnH2$q^{Rdr4q2Jm1Tal͝ɛ	{999w8`Vv	g5@rw֑Cm>l[(Y.#q{E ^d~b+k_DsϲE-f.<,ժ݊2lX[X Y6լtT͕BGͯ?] ?lx.%4g/|.mFǈ׻xhM1<amfQlKi>AY>'71y\ǎgM]'H(@PtPݍam -+j|"\B/Rs9-KikICq.QK !a#Y%L+͟cNA[.HTs,dt
+灀bU/Da\ԩQَ]-1%,`#
+DivI1Ζb"b/DWFK(ֲA~YF$SɥLFmࢃ-0ͺ/r>B@[9k4Op\hfkZJ<.;.VL˅tm*hd_2Ss+]O$e P_m3E-UV#*L8d+?G7xۗ%գfc/iu HI`xq
+=Gm,}&?6;fU5<73H)+9_*a
+\9o#v4rwF~&0%fP<N@t"Q pqZ{CdEC,9dHHɚF]+b6ES/8z'a*(Sgp( '0=g]h_@I$))0p=`h5T&):д10JXܓ:HXStf|UNEW*CaF\mN>Agr)V%d)Du|ܼabu-C$<݋/y4i'ϼA_ym$jp?Frgg8zVIE
+ѡD8~ Tv%$K6T7+5'7˿Z1|),=JP#|Qnw7D$%mrmY\ܰq<ժ%$꙳,Mh̵)jpߝ!т{W78n|)v)4JRT2_kP~=bRxԯͩ IG&k	 +Q+ZșQkBGZ+3(r1tsGK,D]Å@2a7p|ۖjZPl.,C~>R	D!M/\1+8 1ñfaFm/Əыs9U00y=k./F~FaY_SB$C\Oe;2DRawE?K~1{АkApoY!>@w;vz>fgwFx[u[^}8%Kjf3jK%͕sm1O6k]rDv$Td0gH݀Ū2nF ^vHpU|-~A$8X۲lGq;Bm:{*YRuIXO8Ĉ.S1Ijac[)#n쇏m{Dfp<'%Q\dwo92<SҀSڵnHP8¡zǣ[,7*ŀ.6و=Xag⧦R+ŀa>N0%R
+m}E 
\ No newline at end of file
diff --git a/sites/default/files/js/js_ex5Like5ofXGLP9hwTA99FJzLLgETEjDP_y3NAPcFCo.js b/sites/default/files/js/js_ex5Like5ofXGLP9hwTA99FJzLLgETEjDP_y3NAPcFCo.js
new file mode 100644
index 0000000..678af46
--- /dev/null
+++ b/sites/default/files/js/js_ex5Like5ofXGLP9hwTA99FJzLLgETEjDP_y3NAPcFCo.js
@@ -0,0 +1,3209 @@
+(function (Drupal, debounce, CKEDITOR, $) {
+
+  "use strict";
+
+  Drupal.editors.ckeditor = {
+
+    attach: function (element, format) {
+      this._loadExternalPlugins(format);
+      // Also pass settings that are Drupal-specific.
+      format.editorSettings.drupal = {
+        format: format.format
+      };
+
+      // Set a title on the CKEditor instance that includes the text field's
+      // label so that screen readers say something that is understandable
+      // for end users.
+      var label = $('label[for=' + element.getAttribute('id') + ']').text();
+      format.editorSettings.title = Drupal.t("Rich Text Editor, !label field", {'!label': label});
+
+      // CKEditor initializes itself in a read-only state if the 'disabled'
+      // attribute is set. It does not respect the 'readonly' attribute,
+      // however, so we set the 'readOnly' configuration property manually in
+      // that case, for the CKEditor instance that's about to be created.
+      format.editorSettings.readOnly = element.hasAttribute('readonly');
+
+      return !!CKEDITOR.replace(element, format.editorSettings);
+    },
+
+    detach: function (element, format, trigger) {
+      var editor = CKEDITOR.dom.element.get(element).getEditor();
+      if (editor) {
+        if (trigger === 'serialize') {
+          editor.updateElement();
+        }
+        else {
+          editor.destroy();
+          element.removeAttribute('contentEditable');
+        }
+      }
+      return !!editor;
+    },
+
+    onChange: function (element, callback) {
+      var editor = CKEDITOR.dom.element.get(element).getEditor();
+      if (editor) {
+        editor.on('change', debounce(function () {
+          callback(editor.getData());
+        }, 400));
+      }
+      return !!editor;
+    },
+
+    attachInlineEditor: function (element, format, mainToolbarId, floatedToolbarId) {
+      this._loadExternalPlugins(format);
+      // Also pass settings that are Drupal-specific.
+      format.editorSettings.drupal = {
+        format: format.format
+      };
+
+      var settings = $.extend(true, {}, format.editorSettings);
+
+      // If a toolbar is already provided for "true WYSIWYG" (in-place editing),
+      // then use that toolbar instead: override the default settings to render
+      // CKEditor UI's top toolbar into mainToolbar, and don't render the bottom
+      // toolbar at all. (CKEditor doesn't need a floated toolbar.)
+      if (mainToolbarId) {
+        var settingsOverride = {
+          extraPlugins: 'sharedspace',
+          removePlugins: 'floatingspace,elementspath',
+          sharedSpaces: {
+            top: mainToolbarId
+          }
+        };
+
+        // Find the "Source" button, if any, and replace it with "Sourcedialog".
+        // (The 'sourcearea' plugin only works in CKEditor's iframe mode.)
+        var sourceButtonFound = false;
+        for (var i = 0; !sourceButtonFound && i < settings.toolbar.length; i++) {
+          if (settings.toolbar[i] !== '/') {
+            for (var j = 0; !sourceButtonFound && j < settings.toolbar[i].items.length; j++) {
+              if (settings.toolbar[i].items[j] === 'Source') {
+                sourceButtonFound = true;
+                // Swap sourcearea's "Source" button for sourcedialog's.
+                settings.toolbar[i].items[j] = 'Sourcedialog';
+                settingsOverride.extraPlugins += ',sourcedialog';
+                settingsOverride.removePlugins += ',sourcearea';
+              }
+            }
+          }
+        }
+
+        settings.extraPlugins += ',' + settingsOverride.extraPlugins;
+        settings.removePlugins += ',' + settingsOverride.removePlugins;
+        settings.sharedSpaces = settingsOverride.sharedSpaces;
+      }
+
+      // CKEditor requires an element to already have the contentEditable
+      // attribute set to "true", otherwise it won't attach an inline editor.
+      element.setAttribute('contentEditable', 'true');
+
+      return !!CKEDITOR.inline(element, settings);
+    },
+
+    _loadExternalPlugins: function (format) {
+      var externalPlugins = format.editorSettings.drupalExternalPlugins;
+      // Register and load additional CKEditor plugins as necessary.
+      if (externalPlugins) {
+        for (var pluginName in externalPlugins) {
+          if (externalPlugins.hasOwnProperty(pluginName)) {
+            CKEDITOR.plugins.addExternal(pluginName, externalPlugins[pluginName], '');
+          }
+        }
+        delete format.editorSettings.drupalExternalPlugins;
+      }
+    }
+
+  };
+
+  Drupal.ckeditor = {
+    /**
+     * Variable storing the current dialog's save callback.
+     */
+    saveCallback: null,
+
+    /**
+     * Open a dialog for a Drupal-based plugin.
+     *
+     * This dynamically loads jQuery UI (if necessary) using the Drupal AJAX
+     * framework, then opens a dialog at the specified Drupal path.
+     *
+     * @param editor
+     *   The CKEditor instance that is opening the dialog.
+     * @param string url
+     *   The URL that contains the contents of the dialog.
+     * @param Object existingValues
+     *   Existing values that will be sent via POST to the url for the dialog
+     *   contents.
+     * @param Function saveCallback
+     *   A function to be called upon saving the dialog.
+     * @param Object dialogSettings
+     *   An object containing settings to be passed to the jQuery UI.
+     */
+    openDialog: function (editor, url, existingValues, saveCallback, dialogSettings) {
+      // Locate a suitable place to display our loading indicator.
+      var $target = $(editor.container.$);
+      if (editor.elementMode === CKEDITOR.ELEMENT_MODE_REPLACE) {
+        $target = $target.find('.cke_contents');
+      }
+
+      // Remove any previous loading indicator.
+      $target.css('position', 'relative').find('.ckeditor-dialog-loading').remove();
+
+      // Add a consistent dialog class.
+      var classes = dialogSettings.dialogClass ? dialogSettings.dialogClass.split(' ') : [];
+      classes.push('editor-dialog');
+      dialogSettings.dialogClass = classes.join(' ');
+      dialogSettings.autoResize = Drupal.checkWidthBreakpoint(600);
+
+      // Add a "Loading…" message, hide it underneath the CKEditor toolbar, create
+      // a Drupal.ajax instance to load the dialog and trigger it.
+      var $content = $('<div class="ckeditor-dialog-loading"><span style="top: -40px;" class="ckeditor-dialog-loading-link">' + Drupal.t('Loading...') + '</span></div>');
+      $content.appendTo($target);
+
+      var ckeditorAjaxDialog = Drupal.ajax({
+        dialog: dialogSettings,
+        dialogType: 'modal',
+        selector: '.ckeditor-dialog-loading-link',
+        url: url,
+        progress: {'type': 'throbber'},
+        submit: {
+          editor_object: existingValues
+        }
+      });
+      ckeditorAjaxDialog.execute();
+
+      // After a short delay, show "Loading…" message.
+      window.setTimeout(function () {
+        $content.find('span').animate({top: '0px'});
+      }, 1000);
+
+      // Store the save callback to be executed when this dialog is closed.
+      Drupal.ckeditor.saveCallback = saveCallback;
+    }
+  };
+
+  // Respond to new dialogs that are opened by CKEditor, closing the AJAX loader.
+  $(window).on('dialog:beforecreate', function (e, dialog, $element, settings) {
+    $('.ckeditor-dialog-loading').animate({top: '-40px'}, function () {
+      $(this).remove();
+    });
+  });
+
+  // Respond to dialogs that are saved, sending data back to CKEditor.
+  $(window).on('editor:dialogsave', function (e, values) {
+    if (Drupal.ckeditor.saveCallback) {
+      Drupal.ckeditor.saveCallback(values);
+    }
+  });
+
+  // Respond to dialogs that are closed, removing the current save handler.
+  $(window).on('dialog:afterclose', function (e, dialog, $element) {
+    if (Drupal.ckeditor.saveCallback) {
+      Drupal.ckeditor.saveCallback = null;
+    }
+  });
+
+})(Drupal, Drupal.debounce, CKEDITOR, jQuery);
+;
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Theme function for the progress bar.
+   *
+   * @return
+   *   The HTML for the progress bar.
+   */
+  Drupal.theme.progressBar = function (id) {
+    return '<div id="' + id + '" class="progress" aria-live="polite">' +
+      '<div class="progress__label">&nbsp;</div>' +
+      '<div class="progress__track"><div class="progress__bar"></div></div>' +
+      '<div class="progress__percentage"></div>' +
+      '<div class="progress__description">&nbsp;</div>' +
+      '</div>';
+  };
+
+  /**
+   * A progressbar object. Initialized with the given id. Must be inserted into
+   * the DOM afterwards through progressBar.element.
+   *
+   * method is the function which will perform the HTTP request to get the
+   * progress bar state. Either "GET" or "POST".
+   *
+   * e.g. pb = new Drupal.ProgressBar('myProgressBar');
+   *      some_element.appendChild(pb.element);
+   */
+  Drupal.ProgressBar = function (id, updateCallback, method, errorCallback) {
+    this.id = id;
+    this.method = method || 'GET';
+    this.updateCallback = updateCallback;
+    this.errorCallback = errorCallback;
+
+    // The WAI-ARIA setting aria-live="polite" will announce changes after users
+    // have completed their current activity and not interrupt the screen reader.
+    this.element = $(Drupal.theme('progressBar', id));
+  };
+
+  $.extend(Drupal.ProgressBar.prototype, {
+    /**
+     * Set the percentage and status message for the progressbar.
+     */
+    setProgress: function (percentage, message, label) {
+      if (percentage >= 0 && percentage <= 100) {
+        $(this.element).find('div.progress__bar').css('width', percentage + '%');
+        $(this.element).find('div.progress__percentage').html(percentage + '%');
+      }
+      $('div.progress__description', this.element).html(message);
+      $('div.progress__label', this.element).html(label);
+      if (this.updateCallback) {
+        this.updateCallback(percentage, message, this);
+      }
+    },
+
+    /**
+     * Start monitoring progress via Ajax.
+     */
+    startMonitoring: function (uri, delay) {
+      this.delay = delay;
+      this.uri = uri;
+      this.sendPing();
+    },
+
+    /**
+     * Stop monitoring progress via Ajax.
+     */
+    stopMonitoring: function () {
+      clearTimeout(this.timer);
+      // This allows monitoring to be stopped from within the callback.
+      this.uri = null;
+    },
+
+    /**
+     * Request progress data from server.
+     */
+    sendPing: function () {
+      if (this.timer) {
+        clearTimeout(this.timer);
+      }
+      if (this.uri) {
+        var pb = this;
+        // When doing a post request, you need non-null data. Otherwise a
+        // HTTP 411 or HTTP 406 (with Apache mod_security) error may result.
+        $.ajax({
+          type: this.method,
+          url: this.uri,
+          data: '',
+          dataType: 'json',
+          success: function (progress) {
+            // Display errors.
+            if (progress.status === 0) {
+              pb.displayError(progress.data);
+              return;
+            }
+            // Update display.
+            pb.setProgress(progress.percentage, progress.message, progress.label);
+            // Schedule next timer.
+            pb.timer = setTimeout(function () { pb.sendPing(); }, pb.delay);
+          },
+          error: function (xmlhttp) {
+            var e = new Drupal.AjaxError(xmlhttp, pb.uri);
+            pb.displayError('<pre>' + e.message + '</pre>');
+          }
+        });
+      }
+    },
+
+    /**
+     * Display errors on the page.
+     */
+    displayError: function (string) {
+      var error = $('<div class="messages messages--error"></div>').html(string);
+      $(this.element).before(error).hide();
+
+      if (this.errorCallback) {
+        this.errorCallback(this);
+      }
+    }
+  });
+
+})(jQuery, Drupal);
+;
+(function ($, window, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Attaches the Ajax behavior to each Ajax form element.
+   */
+  Drupal.behaviors.AJAX = {
+    attach: function (context, settings) {
+
+      function loadAjaxBehavior(base) {
+        var element_settings = settings.ajax[base];
+        if (typeof element_settings.selector === 'undefined') {
+          element_settings.selector = '#' + base;
+        }
+        $(element_settings.selector).once('drupal-ajax').each(function () {
+          element_settings.element = this;
+          element_settings.base = base;
+          Drupal.ajax(element_settings);
+        });
+      }
+
+      // Load all Ajax behaviors specified in the settings.
+      for (var base in settings.ajax) {
+        if (settings.ajax.hasOwnProperty(base)) {
+          loadAjaxBehavior(base);
+        }
+      }
+
+      // Bind Ajax behaviors to all items showing the class.
+      $('.use-ajax').once('ajax').each(function () {
+        var element_settings = {};
+        // Clicked links look better with the throbber than the progress bar.
+        element_settings.progress = {'type': 'throbber'};
+
+        // For anchor tags, these will go to the target of the anchor rather
+        // than the usual location.
+        if ($(this).attr('href')) {
+          element_settings.url = $(this).attr('href');
+          element_settings.event = 'click';
+        }
+        element_settings.dialogType = $(this).data('dialog-type');
+        element_settings.dialog = $(this).data('dialog-options');
+        element_settings.base = $(this).attr('id');
+        element_settings.element = this;
+        Drupal.ajax(element_settings);
+      });
+
+      // This class means to submit the form to the action using Ajax.
+      $('.use-ajax-submit').once('ajax').each(function () {
+        var element_settings = {};
+
+        // Ajax submits specified in this manner automatically submit to the
+        // normal form action.
+        element_settings.url = $(this.form).attr('action');
+        // Form submit button clicks need to tell the form what was clicked so
+        // it gets passed in the POST request.
+        element_settings.setClick = true;
+        // Form buttons use the 'click' event rather than mousedown.
+        element_settings.event = 'click';
+        // Clicked form buttons look better with the throbber than the progress bar.
+        element_settings.progress = {'type': 'throbber'};
+        element_settings.base = $(this).attr('id');
+        element_settings.element = this;
+
+        Drupal.ajax(element_settings);
+      });
+    }
+  };
+
+  /**
+   * Extends Error to provide handling for Errors in Ajax.
+   */
+  Drupal.AjaxError = function (xmlhttp, uri) {
+
+    var statusCode;
+    var statusText;
+    var pathText;
+    var responseText;
+    var readyStateText;
+    if (xmlhttp.status) {
+      statusCode = "\n" + Drupal.t("An AJAX HTTP error occurred.") + "\n" + Drupal.t("HTTP Result Code: !status", {'!status': xmlhttp.status});
+    }
+    else {
+      statusCode = "\n" + Drupal.t("An AJAX HTTP request terminated abnormally.");
+    }
+    statusCode += "\n" + Drupal.t("Debugging information follows.");
+    pathText = "\n" + Drupal.t("Path: !uri", {'!uri': uri});
+    statusText = '';
+    // In some cases, when statusCode === 0, xmlhttp.statusText may not be defined.
+    // Unfortunately, testing for it with typeof, etc, doesn't seem to catch that
+    // and the test causes an exception. So we need to catch the exception here.
+    try {
+      statusText = "\n" + Drupal.t("StatusText: !statusText", {'!statusText': $.trim(xmlhttp.statusText)});
+    }
+    catch (e) {
+      // empty
+    }
+
+    responseText = '';
+    // Again, we don't have a way to know for sure whether accessing
+    // xmlhttp.responseText is going to throw an exception. So we'll catch it.
+    try {
+      responseText = "\n" + Drupal.t("ResponseText: !responseText", {'!responseText': $.trim(xmlhttp.responseText)});
+    }
+    catch (e) {
+      // Empty.
+    }
+
+    // Make the responseText more readable by stripping HTML tags and newlines.
+    responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, "");
+    responseText = responseText.replace(/[\n]+\s+/g, "\n");
+
+    // We don't need readyState except for status == 0.
+    readyStateText = xmlhttp.status === 0 ? ("\n" + Drupal.t("ReadyState: !readyState", {'!readyState': xmlhttp.readyState})) : "";
+
+    this.message = statusCode + pathText + statusText + responseText + readyStateText;
+    this.name = 'AjaxError';
+  };
+
+  Drupal.AjaxError.prototype = new Error();
+  Drupal.AjaxError.prototype.constructor = Drupal.AjaxError;
+
+  /**
+   * Provides Ajax page updating via jQuery $.ajax.
+   *
+   * This function is designed to improve developer experience by wrapping the
+   * initialization of Drupal.Ajax objects and storing all created object in the
+   * Drupal.ajax.instances array.
+   *
+   * @example
+   * Drupal.behaviors.myCustomAJAXStuff = {
+   *   attach: function (context, settings) {
+   *
+   *     var ajaxSettings = {
+   *       url: 'my/url/path',
+   *       // If the old version of Drupal.ajax() needs to be used those
+   *       // properties can be added
+   *       base: 'myBase',
+   *       element: $(context).find('.someElement')
+   *     };
+   *
+   *     var myAjaxObject = Drupal.ajax(ajaxSettings);
+   *
+   *     // Declare a new Ajax command specifically for this Ajax object.
+   *     myAjaxObject.commands.insert = function (ajax, response, status) {
+   *       $('#my-wrapper').append(response.data);
+   *       alert('New content was appended to #my-wrapper');
+   *     };
+   *
+   *     // This command will remove this Ajax object from the page.
+   *     myAjaxObject.commands.destroyObject = function (ajax, response, status) {
+   *       Drupal.ajax.instances[this.instanceIndex] = null;
+   *     };
+   *
+   *     // Programmatically trigger the Ajax request.
+   *     myAjaxObject.execute();
+   *   }
+   * };
+   *
+   * @see Drupal.AjaxCommands
+   *
+   * @param {object} settings
+   *   The settings object passed to Drupal.Ajax constructor.
+   * @param {string} [settings.base]
+   *   Base is passed to Drupal.Ajax constructor as the 'base' parameter.
+   * @param {HTMLElement} [settings.element]
+   *   Element parameter of Drupal.Ajax constructor, element on which
+   *   event listeners will be bound.
+   *
+   * @return {Drupal.Ajax}
+   */
+  Drupal.ajax = function (settings) {
+    if (arguments.length !== 1) {
+      throw new Error('Drupal.ajax() function must be called with one configuration object only');
+    }
+    // Map those config keys to variables for the old Drupal.ajax function.
+    var base = settings.base || false;
+    var element = settings.element || false;
+    delete settings.base;
+    delete settings.element;
+
+    // By default do not display progress for ajax calls without an element.
+    if (!settings.progress && !element) {
+      settings.progress = false;
+    }
+
+    var ajax = new Drupal.Ajax(base, element, settings);
+    ajax.instanceIndex = Drupal.ajax.instances.length;
+    Drupal.ajax.instances.push(ajax);
+
+    return ajax;
+  };
+
+  /**
+   * Contains all created Ajax objects.
+   *
+   * @type {Array}
+   */
+  Drupal.ajax.instances = [];
+
+  /**
+   * Ajax constructor.
+   *
+   * The Ajax request returns an array of commands encoded in JSON, which is
+   * then executed to make any changes that are necessary to the page.
+   *
+   * Drupal uses this file to enhance form elements with #ajax['url'] and
+   * #ajax['wrapper'] properties. If set, this file will automatically be
+   * included to provide Ajax capabilities.
+   *
+   * @constructor
+   *
+   * @param {string} [base]
+   *   Base parameter of Drupal.Ajax constructor
+   * @param {HTMLElement} [element]
+   *   Element parameter of Drupal.Ajax constructor, element on which
+   *   event listeners will be bound.
+   * @param {object} element_settings
+   * @param {string} element_settings.url
+   *   Target of the Ajax request.
+   * @param {string} [element_settings.event]
+   *   Event bound to settings.element which will trigger the Ajax request.
+   * @param {string} [element_settings.method]
+   *   Name of the jQuery method used to insert new content in the targeted
+   *   element.
+   */
+  Drupal.Ajax = function (base, element, element_settings) {
+    var defaults = {
+      event: element ? 'mousedown' : null,
+      keypress: true,
+      selector: base ? '#' + base : null,
+      effect: 'none',
+      speed: 'none',
+      method: 'replaceWith',
+      progress: {
+        type: 'throbber',
+        message: Drupal.t('Please wait...')
+      },
+      submit: {
+        'js': true
+      }
+    };
+
+    $.extend(this, defaults, element_settings);
+
+    this.commands = new Drupal.AjaxCommands();
+    this.instanceIndex = false;
+
+    // @todo Remove this after refactoring the PHP code to:
+    //   - Call this 'selector'.
+    //   - Include the '#' for ID-based selectors.
+    //   - Support non-ID-based selectors.
+    if (this.wrapper) {
+      this.wrapper = '#' + this.wrapper;
+    }
+
+    this.element = element;
+    this.element_settings = element_settings;
+
+    // If there isn't a form, jQuery.ajax() will be used instead, allowing us to
+    // bind Ajax to links as well.
+    if (this.element && this.element.form) {
+      this.$form = $(this.element.form);
+    }
+
+    // If no Ajax callback URL was given, use the link href or form action.
+    if (!this.url) {
+      var $element = $(this.element);
+      if ($element.is('a')) {
+        this.url = $element.attr('href');
+      }
+      else if (this.element && element.form) {
+        this.url = this.$form.attr('action');
+
+        // @todo If there's a file input on this form, then jQuery will submit the
+        //   Ajax response with a hidden Iframe rather than the XHR object. If the
+        //   response to the submission is an HTTP redirect, then the Iframe will
+        //   follow it, but the server won't content negotiate it correctly,
+        //   because there won't be an ajax_iframe_upload POST variable. Until we
+        //   figure out a work around to this problem, we prevent Ajax-enabling
+        //   elements that submit to the same URL as the form when there's a file
+        //   input. For example, this means the Delete button on the edit form of
+        //   an Article node doesn't open its confirmation form in a dialog.
+        if (this.$form.find(':file').length) {
+          return;
+        }
+      }
+    }
+
+    // Replacing 'nojs' with 'ajax' in the URL allows for an easy method to let
+    // the server detect when it needs to degrade gracefully.
+    // There are four scenarios to check for:
+    // 1. /nojs/
+    // 2. /nojs$ - The end of a URL string.
+    // 3. /nojs? - Followed by a query (e.g. path/nojs?destination=foobar).
+    // 4. /nojs# - Followed by a fragment (e.g.: path/nojs#myfragment).
+    this.url = this.url.replace(/\/nojs(\/|$|\?|#)/g, '/ajax$1');
+
+    // Set the options for the ajaxSubmit function.
+    // The 'this' variable will not persist inside of the options object.
+    var ajax = this;
+    ajax.options = {
+      url: ajax.url,
+      data: ajax.submit,
+      beforeSerialize: function (element_settings, options) {
+        return ajax.beforeSerialize(element_settings, options);
+      },
+      beforeSubmit: function (form_values, element_settings, options) {
+        ajax.ajaxing = true;
+        return ajax.beforeSubmit(form_values, element_settings, options);
+      },
+      beforeSend: function (xmlhttprequest, options) {
+        ajax.ajaxing = true;
+        return ajax.beforeSend(xmlhttprequest, options);
+      },
+      success: function (response, status) {
+        // Sanity check for browser support (object expected).
+        // When using iFrame uploads, responses must be returned as a string.
+        if (typeof response === 'string') {
+          response = $.parseJSON(response);
+        }
+        return ajax.success(response, status);
+      },
+      complete: function (response, status) {
+        ajax.ajaxing = false;
+        if (status === 'error' || status === 'parsererror') {
+          return ajax.error(response, ajax.url);
+        }
+      },
+      dataType: 'json',
+      type: 'POST'
+    };
+
+    if (element_settings.dialog) {
+      ajax.options.data.dialogOptions = element_settings.dialog;
+    }
+
+    // Ensure that we have a valid URL by adding ? when no query parameter is
+    // yet available, otherwise append using &.
+    if (ajax.options.url.indexOf('?') === -1) {
+      ajax.options.url += '?';
+    }
+    else {
+      ajax.options.url += '&';
+    }
+    ajax.options.url += Drupal.ajax.WRAPPER_FORMAT + '=drupal_' + (element_settings.dialogType || 'ajax');
+
+    // Bind the ajaxSubmit function to the element event.
+    $(ajax.element).on(element_settings.event, function (event) {
+      return ajax.eventResponse(this, event);
+    });
+
+    // If necessary, enable keyboard submission so that Ajax behaviors
+    // can be triggered through keyboard input as well as e.g. a mousedown
+    // action.
+    if (element_settings.keypress) {
+      $(ajax.element).on('keypress', function (event) {
+        return ajax.keypressResponse(this, event);
+      });
+    }
+
+    // If necessary, prevent the browser default action of an additional event.
+    // For example, prevent the browser default action of a click, even if the
+    // Ajax behavior binds to mousedown.
+    if (element_settings.prevent) {
+      $(ajax.element).on(element_settings.prevent, false);
+    }
+  };
+
+  /**
+   * URL query attribute to indicate the wrapper used to render a request.
+   *
+   * The wrapper format determines how the HTML is wrapped, for example in a
+   * modal dialog.
+   */
+  Drupal.ajax.WRAPPER_FORMAT = '_wrapper_format';
+
+  /**
+   * Execute the ajax request.
+   *
+   * Allows developers to execute an Ajax request manually without specifying
+   * an event to respond to.
+   */
+  Drupal.Ajax.prototype.execute = function () {
+    // Do not perform another ajax command if one is already in progress.
+    if (this.ajaxing) {
+      return;
+    }
+
+    try {
+      this.beforeSerialize(this.element, this.options);
+      $.ajax(this.options);
+    }
+    catch (e) {
+      // Unset the ajax.ajaxing flag here because it won't be unset during
+      // the complete response.
+      this.ajaxing = false;
+      window.alert("An error occurred while attempting to process " + this.options.url + ": " + e.message);
+    }
+  };
+
+  /**
+   * Handle a key press.
+   *
+   * The Ajax object will, if instructed, bind to a key press response. This
+   * will test to see if the key press is valid to trigger this event and
+   * if it is, trigger it for us and prevent other keypresses from triggering.
+   * In this case we're handling RETURN and SPACEBAR keypresses (event codes 13
+   * and 32. RETURN is often used to submit a form when in a textfield, and
+   * SPACE is often used to activate an element without submitting.
+   */
+  Drupal.Ajax.prototype.keypressResponse = function (element, event) {
+    // Create a synonym for this to reduce code confusion.
+    var ajax = this;
+
+    // Detect enter key and space bar and allow the standard response for them,
+    // except for form elements of type 'text', 'tel', 'number' and 'textarea',
+    // where the spacebar activation causes inappropriate activation if
+    // #ajax['keypress'] is TRUE. On a text-type widget a space should always be a
+    // space.
+    if (event.which === 13 || (event.which === 32 && element.type !== 'text' &&
+      element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number')) {
+      event.preventDefault();
+      event.stopPropagation();
+      $(ajax.element_settings.element).trigger(ajax.element_settings.event);
+    }
+  };
+
+  /**
+   * Handle an event that triggers an Ajax response.
+   *
+   * When an event that triggers an Ajax response happens, this method will
+   * perform the actual Ajax call. It is bound to the event using
+   * bind() in the constructor, and it uses the options specified on the
+   * Ajax object.
+   */
+  Drupal.Ajax.prototype.eventResponse = function (element, event) {
+    event.preventDefault();
+    event.stopPropagation();
+
+    // Create a synonym for this to reduce code confusion.
+    var ajax = this;
+
+    // Do not perform another Ajax command if one is already in progress.
+    if (ajax.ajaxing) {
+      return;
+    }
+
+    try {
+      if (ajax.$form) {
+        // If setClick is set, we must set this to ensure that the button's
+        // value is passed.
+        if (ajax.setClick) {
+          // Mark the clicked button. 'form.clk' is a special variable for
+          // ajaxSubmit that tells the system which element got clicked to
+          // trigger the submit. Without it there would be no 'op' or
+          // equivalent.
+          element.form.clk = element;
+        }
+
+        ajax.$form.ajaxSubmit(ajax.options);
+      }
+      else {
+        ajax.beforeSerialize(ajax.element, ajax.options);
+        $.ajax(ajax.options);
+      }
+    }
+    catch (e) {
+      // Unset the ajax.ajaxing flag here because it won't be unset during
+      // the complete response.
+      ajax.ajaxing = false;
+      window.alert("An error occurred while attempting to process " + ajax.options.url + ": " + e.message);
+    }
+  };
+
+  /**
+   * Handler for the form serialization.
+   *
+   * Runs before the beforeSend() handler (see below), and unlike that one, runs
+   * before field data is collected.
+   */
+  Drupal.Ajax.prototype.beforeSerialize = function (element, options) {
+    // Allow detaching behaviors to update field values before collecting them.
+    // This is only needed when field values are added to the POST data, so only
+    // when there is a form such that this.$form.ajaxSubmit() is used instead of
+    // $.ajax(). When there is no form and $.ajax() is used, beforeSerialize()
+    // isn't called, but don't rely on that: explicitly check this.$form.
+    if (this.$form) {
+      var settings = this.settings || drupalSettings;
+      Drupal.detachBehaviors(this.$form.get(0), settings, 'serialize');
+    }
+
+    // Prevent duplicate HTML ids in the returned markup.
+    // @see \Drupal\Component\Utility\Html::getUniqueId()
+    var ids = document.querySelectorAll('[id]');
+    var ajaxHtmlIds = [];
+    var il = ids.length;
+    for (var i = 0; i < il; i++) {
+      ajaxHtmlIds.push(ids[i].id);
+    }
+    // Join IDs to minimize request size.
+    options.data.ajax_html_ids = ajaxHtmlIds.join(' ');
+
+    // Allow Drupal to return new JavaScript and CSS files to load without
+    // returning the ones already loaded.
+    // @see \Drupal\Core\Theme\AjaxBasePageNegotiator
+    // @see \Drupal\Core\Asset\LibraryDependencyResolverInterface::getMinimalRepresentativeSubset()
+    // @see system_js_settings_alter()
+    var pageState = drupalSettings.ajaxPageState;
+    options.data['ajax_page_state[theme]'] = pageState.theme;
+    options.data['ajax_page_state[theme_token]'] = pageState.theme_token;
+    options.data['ajax_page_state[libraries]'] = pageState.libraries;
+  };
+
+  /**
+   * Modify form values prior to form submission.
+   */
+  Drupal.Ajax.prototype.beforeSubmit = function (form_values, element, options) {
+    // This function is left empty to make it simple to override for modules
+    // that wish to add functionality here.
+  };
+
+  /**
+   * Prepare the Ajax request before it is sent.
+   */
+  Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
+    // For forms without file inputs, the jQuery Form plugin serializes the form
+    // values, and then calls jQuery's $.ajax() function, which invokes this
+    // handler. In this circumstance, options.extraData is never used. For forms
+    // with file inputs, the jQuery Form plugin uses the browser's normal form
+    // submission mechanism, but captures the response in a hidden IFRAME. In this
+    // circumstance, it calls this handler first, and then appends hidden fields
+    // to the form to submit the values in options.extraData. There is no simple
+    // way to know which submission mechanism will be used, so we add to extraData
+    // regardless, and allow it to be ignored in the former case.
+    if (this.$form) {
+      options.extraData = options.extraData || {};
+
+      // Let the server know when the IFRAME submission mechanism is used. The
+      // server can use this information to wrap the JSON response in a TEXTAREA,
+      // as per http://jquery.malsup.com/form/#file-upload.
+      options.extraData.ajax_iframe_upload = '1';
+
+      // The triggering element is about to be disabled (see below), but if it
+      // contains a value (e.g., a checkbox, textfield, select, etc.), ensure that
+      // value is included in the submission. As per above, submissions that use
+      // $.ajax() are already serialized prior to the element being disabled, so
+      // this is only needed for IFRAME submissions.
+      var v = $.fieldValue(this.element);
+      if (v !== null) {
+        options.extraData[this.element.name] = v;
+      }
+    }
+
+    // Disable the element that received the change to prevent user interface
+    // interaction while the Ajax request is in progress. ajax.ajaxing prevents
+    // the element from triggering a new request, but does not prevent the user
+    // from changing its value.
+    $(this.element).prop('disabled', true);
+
+    if (!this.progress || !this.progress.type) {
+      return;
+    }
+
+    // Insert progress indicator
+    var progressIndicatorMethod = 'setProgressIndicator' + this.progress.type.slice(0, 1).toUpperCase() + this.progress.type.slice(1).toLowerCase();
+    if (progressIndicatorMethod in this && typeof this[progressIndicatorMethod] === 'function') {
+      this[progressIndicatorMethod].call(this);
+      $(this.element).after(this.progress.element);
+    }
+  };
+
+  /**
+   * Sets the progress bar progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorBar = function () {
+    var progressBar = new Drupal.ProgressBar('ajax-progress-' + this.element.id, $.noop, this.progress.method, $.noop);
+    if (this.progress.message) {
+      progressBar.setProgress(-1, this.progress.message);
+    }
+    if (this.progress.url) {
+      progressBar.startMonitoring(this.progress.url, this.progress.interval || 1500);
+    }
+    this.progress.element = $(progressBar.element).addClass('ajax-progress ajax-progress-bar');
+    this.progress.object = progressBar;
+    $(this.element).after(this.progress.element);
+  };
+
+  /**
+   * Sets the throbber progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorThrobber = function () {
+    this.progress.element = $('<div class="ajax-progress ajax-progress-throbber"><div class="throbber">&nbsp;</div></div>');
+    if (this.progress.message) {
+      this.progress.element.find('.throbber').after('<div class="message">' + this.progress.message + '</div>');
+    }
+    $(this.element).after(this.progress.element);
+  };
+
+  /**
+   * Sets the fullscreen progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
+    this.progress.element = $('<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>');
+    $('body').after(this.progress.element);
+  };
+
+  /**
+   * Handler for the form redirection completion.
+   */
+  Drupal.Ajax.prototype.success = function (response, status) {
+    // Remove the progress element.
+    if (this.progress.element) {
+      $(this.progress.element).remove();
+    }
+    if (this.progress.object) {
+      this.progress.object.stopMonitoring();
+    }
+    $(this.element).prop('disabled', false);
+
+    for (var i in response) {
+      if (response.hasOwnProperty(i) && response[i].command && this.commands[response[i].command]) {
+        this.commands[response[i].command](this, response[i], status);
+      }
+    }
+
+    // Reattach behaviors, if they were detached in beforeSerialize(). The
+    // attachBehaviors() called on the new content from processing the response
+    // commands is not sufficient, because behaviors from the entire form need
+    // to be reattached.
+    if (this.$form) {
+      var settings = this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+
+    // Remove any response-specific settings so they don't get used on the next
+    // call by mistake.
+    this.settings = null;
+  };
+
+  /**
+   * Build an effect object which tells us how to apply the effect when adding new HTML.
+   */
+  Drupal.Ajax.prototype.getEffect = function (response) {
+    var type = response.effect || this.effect;
+    var speed = response.speed || this.speed;
+
+    var effect = {};
+    if (type === 'none') {
+      effect.showEffect = 'show';
+      effect.hideEffect = 'hide';
+      effect.showSpeed = '';
+    }
+    else if (type === 'fade') {
+      effect.showEffect = 'fadeIn';
+      effect.hideEffect = 'fadeOut';
+      effect.showSpeed = speed;
+    }
+    else {
+      effect.showEffect = type + 'Toggle';
+      effect.hideEffect = type + 'Toggle';
+      effect.showSpeed = speed;
+    }
+
+    return effect;
+  };
+
+  /**
+   * Handler for the form redirection error.
+   */
+  Drupal.Ajax.prototype.error = function (response, uri) {
+    // Remove the progress element.
+    if (this.progress.element) {
+      $(this.progress.element).remove();
+    }
+    if (this.progress.object) {
+      this.progress.object.stopMonitoring();
+    }
+    // Undo hide.
+    $(this.wrapper).show();
+    // Re-enable the element.
+    $(this.element).prop('disabled', false);
+    // Reattach behaviors, if they were detached in beforeSerialize().
+    if (this.$form) {
+      var settings = response.settings || this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+    throw new Drupal.AjaxError(response, uri);
+  };
+
+  /**
+   * Provide a series of commands that the server can request the client perform.
+   */
+  Drupal.AjaxCommands = function () {};
+  Drupal.AjaxCommands.prototype = {
+    /**
+     * Command to insert new content into the DOM.
+     */
+    insert: function (ajax, response, status) {
+      // Get information from the response. If it is not there, default to
+      // our presets.
+      var wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
+      var method = response.method || ajax.method;
+      var effect = ajax.getEffect(response);
+      var settings;
+
+      // We don't know what response.data contains: it might be a string of text
+      // without HTML, so don't rely on jQuery correctly interpreting
+      // $(response.data) as new HTML rather than a CSS selector. Also, if
+      // response.data contains top-level text nodes, they get lost with either
+      // $(response.data) or $('<div></div>').replaceWith(response.data).
+      var new_content_wrapped = $('<div></div>').html(response.data);
+      var new_content = new_content_wrapped.contents();
+
+      // For legacy reasons, the effects processing code assumes that new_content
+      // consists of a single top-level element. Also, it has not been
+      // sufficiently tested whether attachBehaviors() can be successfully called
+      // with a context object that includes top-level text nodes. However, to
+      // give developers full control of the HTML appearing in the page, and to
+      // enable Ajax content to be inserted in places where DIV elements are not
+      // allowed (e.g., within TABLE, TR, and SPAN parents), we check if the new
+      // content satisfies the requirement of a single top-level element, and
+      // only use the container DIV created above when it doesn't. For more
+      // information, please see http://drupal.org/node/736066.
+      if (new_content.length !== 1 || new_content.get(0).nodeType !== 1) {
+        new_content = new_content_wrapped;
+      }
+
+      // If removing content from the wrapper, detach behaviors first.
+      switch (method) {
+        case 'html':
+        case 'replaceWith':
+        case 'replaceAll':
+        case 'empty':
+        case 'remove':
+          settings = response.settings || ajax.settings || drupalSettings;
+          Drupal.detachBehaviors(wrapper.get(0), settings);
+      }
+
+      // Add the new content to the page.
+      wrapper[method](new_content);
+
+      // Immediately hide the new content if we're using any effects.
+      if (effect.showEffect !== 'show') {
+        new_content.hide();
+      }
+
+      // Determine which effect to use and what content will receive the
+      // effect, then show the new content.
+      if (new_content.find('.ajax-new-content').length > 0) {
+        new_content.find('.ajax-new-content').hide();
+        new_content.show();
+        new_content.find('.ajax-new-content')[effect.showEffect](effect.showSpeed);
+      }
+      else if (effect.showEffect !== 'show') {
+        new_content[effect.showEffect](effect.showSpeed);
+      }
+
+      // Attach all JavaScript behaviors to the new content, if it was successfully
+      // added to the page, this if statement allows #ajax['wrapper'] to be
+      // optional.
+      if (new_content.parents('html').length > 0) {
+        // Apply any settings from the returned JSON if available.
+        settings = response.settings || ajax.settings || drupalSettings;
+        Drupal.attachBehaviors(new_content.get(0), settings);
+      }
+    },
+
+    /**
+     * Command to remove a chunk from the page.
+     */
+    remove: function (ajax, response, status) {
+      var settings = response.settings || ajax.settings || drupalSettings;
+      $(response.selector).each(function () {
+        Drupal.detachBehaviors(this, settings);
+      })
+        .remove();
+    },
+
+    /**
+     * Command to mark a chunk changed.
+     */
+    changed: function (ajax, response, status) {
+      if (!$(response.selector).hasClass('ajax-changed')) {
+        $(response.selector).addClass('ajax-changed');
+        if (response.asterisk) {
+          $(response.selector).find(response.asterisk).append(' <abbr class="ajax-changed" title="' + Drupal.t('Changed') + '">*</abbr> ');
+        }
+      }
+    },
+
+    /**
+     * Command to provide an alert.
+     */
+    alert: function (ajax, response, status) {
+      window.alert(response.text, response.title);
+    },
+
+    /**
+     * Command to set the window.location, redirecting the browser.
+     */
+    redirect: function (ajax, response, status) {
+      window.location = response.url;
+    },
+
+    /**
+     * Command to provide the jQuery css() function.
+     */
+    css: function (ajax, response, status) {
+      $(response.selector).css(response.argument);
+    },
+
+    /**
+     * Command to set the settings that will be used for other commands in this response.
+     */
+    settings: function (ajax, response, status) {
+      if (response.merge) {
+        $.extend(true, drupalSettings, response.settings);
+      }
+      else {
+        ajax.settings = response.settings;
+      }
+    },
+
+    /**
+     * Command to attach data using jQuery's data API.
+     */
+    data: function (ajax, response, status) {
+      $(response.selector).data(response.name, response.value);
+    },
+
+    /**
+     * Command to apply a jQuery method.
+     */
+    invoke: function (ajax, response, status) {
+      var $element = $(response.selector);
+      $element[response.method].apply($element, response.args);
+    },
+
+    /**
+     * Command to restripe a table.
+     */
+    restripe: function (ajax, response, status) {
+      // :even and :odd are reversed because jQuery counts from 0 and
+      // we count from 1, so we're out of sync.
+      // Match immediate children of the parent element to allow nesting.
+      $(response.selector).find('> tbody > tr:visible, > tr:visible')
+        .removeClass('odd even')
+        .filter(':even').addClass('odd').end()
+        .filter(':odd').addClass('even');
+    },
+
+    /**
+     * Command to update a form's build ID.
+     */
+    update_build_id: function (ajax, response, status) {
+      $('input[name="form_build_id"][value="' + response.old + '"]').val(response.new);
+    },
+
+    /**
+     * Command to add css.
+     *
+     * Uses the proprietary addImport method if available as browsers which
+     * support that method ignore @import statements in dynamically added
+     * stylesheets.
+     */
+    add_css: function (ajax, response, status) {
+      // Add the styles in the normal way.
+      $('head').prepend(response.data);
+      // Add imports in the styles using the addImport method if available.
+      var match;
+      var importMatch = /^@import url\("(.*)"\);$/igm;
+      if (document.styleSheets[0].addImport && importMatch.test(response.data)) {
+        importMatch.lastIndex = 0;
+        do {
+          match = importMatch.exec(response.data);
+          document.styleSheets[0].addImport(match[1]);
+        } while (match);
+      }
+    }
+  };
+
+})(jQuery, this, Drupal, drupalSettings);
+;
+(function ($) {
+
+  "use strict";
+
+  /**
+   * Auto-hide summary textarea if empty and show hide and unhide links.
+   */
+  Drupal.behaviors.textSummary = {
+    attach: function (context, settings) {
+      $(context).find('.js-text-summary').once('text-summary').each(function () {
+        var $widget = $(this).closest('.js-text-format-wrapper');
+
+        var $summary = $widget.find('.js-text-summary-wrapper');
+        var $summaryLabel = $summary.find('label').eq(0);
+        var $full = $widget.find('.js-text-full').closest('.form-item');
+        var $fullLabel = $full.find('label').eq(0);
+
+        // Create a placeholder label when the field cardinality is greater
+        // than 1.
+        if ($fullLabel.length === 0) {
+          $fullLabel = $('<label></label>').prependTo($full);
+        }
+
+        // Set up the edit/hide summary link.
+        var $link = $('<span class="field-edit-link"> (<button type="button" class="link link-edit-summary">' + Drupal.t('Hide summary') + '</button>)</span>');
+        var $button = $link.find('button');
+        var toggleClick = true;
+        $link.on('click', function (e) {
+          if (toggleClick) {
+            $summary.hide();
+            $button.html(Drupal.t('Edit summary'));
+            $link.appendTo($fullLabel);
+          }
+          else {
+            $summary.show();
+            $button.html(Drupal.t('Hide summary'));
+            $link.appendTo($summaryLabel);
+          }
+          e.preventDefault();
+          toggleClick = !toggleClick;
+        }).appendTo($summaryLabel);
+
+        // If no summary is set, hide the summary field.
+        if ($widget.find('.js-text-summary').val() === '') {
+          $link.trigger('click');
+        }
+      });
+    }
+  };
+
+})(jQuery);
+;
+/**
+ * Adds an HTML element and method to trigger audio UAs to read system messages.
+ *
+ * Use Drupal.announce() to indicate to screen reader users that an element on
+ * the page has changed state. For instance, if clicking a link loads 10 more
+ * items into a list, one might announce the change like this.
+ * $('#search-list')
+ *   .on('itemInsert', function (event, data) {
+ *     // Insert the new items.
+ *     $(data.container.el).append(data.items.el);
+ *     // Announce the change to the page contents.
+ *     Drupal.announce(Drupal.t('@count items added to @container',
+ *       {'@count': data.items.length, '@container': data.container.title}
+ *     ));
+ *   });
+ */
+(function (Drupal, debounce) {
+
+  "use strict";
+
+  var liveElement;
+  var announcements = [];
+
+  /**
+   * Builds a div element with the aria-live attribute and attaches it
+   * to the DOM.
+   */
+  Drupal.behaviors.drupalAnnounce = {
+    attach: function (context) {
+      // Create only one aria-live element.
+      if (!liveElement) {
+        liveElement = document.createElement('div');
+        liveElement.id = 'drupal-live-announce';
+        liveElement.className = 'visually-hidden';
+        liveElement.setAttribute('aria-live', 'polite');
+        liveElement.setAttribute('aria-busy', 'false');
+        document.body.appendChild(liveElement);
+      }
+    }
+  };
+
+  /**
+   * Concatenates announcements to a single string; appends to the live region.
+   */
+  function announce() {
+    var text = [];
+    var priority = 'polite';
+    var announcement;
+
+    // Create an array of announcement strings to be joined and appended to the
+    // aria live region.
+    var il = announcements.length;
+    for (var i = 0; i < il; i++) {
+      announcement = announcements.pop();
+      text.unshift(announcement.text);
+      // If any of the announcements has a priority of assertive then the group
+      // of joined announcements will have this priority.
+      if (announcement.priority === 'assertive') {
+        priority = 'assertive';
+      }
+    }
+
+    if (text.length) {
+      // Clear the liveElement so that repeated strings will be read.
+      liveElement.innerHTML = '';
+      // Set the busy state to true until the node changes are complete.
+      liveElement.setAttribute('aria-busy', 'true');
+      // Set the priority to assertive, or default to polite.
+      liveElement.setAttribute('aria-live', priority);
+      // Print the text to the live region. Text should be run through
+      // Drupal.t() before being passed to Drupal.announce().
+      liveElement.innerHTML = text.join('\n');
+      // The live text area is updated. Allow the AT to announce the text.
+      liveElement.setAttribute('aria-busy', 'false');
+    }
+  }
+
+  /**
+   * Triggers audio UAs to read the supplied text.
+   *
+   * The aria-live region will only read the text that currently populates its
+   * text node. Replacing text quickly in rapid calls to announce results in
+   * only the text from the most recent call to Drupal.announce() being read.
+   * By wrapping the call to announce in a debounce function, we allow for
+   * time for multiple calls to Drupal.announce() to queue up their messages.
+   * These messages are then joined and append to the aria-live region as one
+   * text node.
+   *
+   * @param String text
+   *   A string to be read by the UA.
+   * @param String priority
+   *   A string to indicate the priority of the message. Can be either
+   *   'polite' or 'assertive'. Polite is the default.
+   *
+   * @see http://www.w3.org/WAI/PF/aria-practices/#liveprops
+   */
+  Drupal.announce = function (text, priority) {
+    // Save the text and priority into a closure variable. Multiple simultaneous
+    // announcements will be concatenated and read in sequence.
+    announcements.push({
+      text: text,
+      priority: priority
+    });
+    // Immediately invoke the function that debounce returns. 200 ms is right at
+    // the cusp where humans notice a pause, so we will wait
+    // at most this much time before the set of queued announcements is read.
+    return (debounce(announce, 200)());
+  };
+}(Drupal, Drupal.debounce));
+;
+window.matchMedia||(window.matchMedia=function(){"use strict";var e=window.styleMedia||window.media;if(!e){var t=document.createElement("style"),i=document.getElementsByTagName("script")[0],n=null;t.type="text/css";t.id="matchmediajs-test";i.parentNode.insertBefore(t,i);n="getComputedStyle"in window&&window.getComputedStyle(t,null)||t.currentStyle;e={matchMedium:function(e){var i="@media "+e+"{ #matchmediajs-test { width: 1px; } }";if(t.styleSheet){t.styleSheet.cssText=i}else{t.textContent=i}return n.width==="1px"}}}return function(t){return{matches:e.matchMedium(t||"all"),media:t||"all"}}}());
+;
+(function(){if(window.matchMedia&&window.matchMedia("all").addListener){return false}var e=window.matchMedia,i=e("only all").matches,n=false,t=0,a=[],r=function(i){clearTimeout(t);t=setTimeout(function(){for(var i=0,n=a.length;i<n;i++){var t=a[i].mql,r=a[i].listeners||[],o=e(t.media).matches;if(o!==t.matches){t.matches=o;for(var s=0,l=r.length;s<l;s++){r[s].call(window,t)}}}},30)};window.matchMedia=function(t){var o=e(t),s=[],l=0;o.addListener=function(e){if(!i){return}if(!n){n=true;window.addEventListener("resize",r,true)}if(l===0){l=a.push({mql:o,listeners:s})}s.push(e)};o.removeListener=function(e){for(var i=0,n=s.length;i<n;i++){if(s[i]===e){s.splice(i,1)}}};return o}})();
+;
+/**
+ * Builds a nested accordion widget.
+ *
+ * Invoke on an HTML list element with the jQuery plugin pattern.
+ * - For example, $('.menu').drupalToolbarMenu();
+ */
+
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Store the open menu tray.
+   */
+  var activeItem = Drupal.url(drupalSettings.path.currentPath);
+
+  $.fn.drupalToolbarMenu = function () {
+
+    var ui = {
+      'handleOpen': Drupal.t('Extend'),
+      'handleClose': Drupal.t('Collapse')
+    };
+
+    /**
+     * Handle clicks from the disclosure button on an item with sub-items.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function toggleClickHandler(event) {
+      var $toggle = $(event.target);
+      var $item = $toggle.closest('li');
+      // Toggle the list item.
+      toggleList($item);
+      // Close open sibling menus.
+      var $openItems = $item.siblings().filter('.open');
+      toggleList($openItems, false);
+    }
+
+    /**
+     * Handle clicks from a menu item link.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function linkClickHandler(event) {
+      // If the toolbar is positioned fixed (and therefore hiding content
+      // underneath), then users expect clicks in the administration menu tray
+      // to take them to that destination but for the menu tray to be closed
+      // after clicking: otherwise the toolbar itself is obstructing the view
+      // of the destination they chose.
+      if (!Drupal.toolbar.models.toolbarModel.get('isFixed')) {
+        Drupal.toolbar.models.toolbarModel.set('activeTab', null);
+      }
+      // Stopping propagation to make sure that once a toolbar-box is clicked
+      // (the whitespace part), the page is not redirected anymore.
+      event.stopPropagation();
+    }
+
+    /**
+     * Toggle the open/close state of a list is a menu.
+     *
+     * @param {jQuery} $item
+     *   The li item to be toggled.
+     *
+     * @param {Boolean} switcher
+     *   A flag that forces toggleClass to add or a remove a class, rather than
+     *   simply toggling its presence.
+     */
+    function toggleList($item, switcher) {
+      var $toggle = $item.children('.toolbar-box').children('.toolbar-handle');
+      switcher = (typeof switcher !== 'undefined') ? switcher : !$item.hasClass('open');
+      // Toggle the item open state.
+      $item.toggleClass('open', switcher);
+      // Twist the toggle.
+      $toggle.toggleClass('open', switcher);
+      // Adjust the toggle text.
+      $toggle
+        .find('.action')
+        // Expand Structure, Collapse Structure
+        .text((switcher) ? ui.handleClose : ui.handleOpen);
+    }
+
+    /**
+     * Add markup to the menu elements.
+     *
+     * Items with sub-elements have a list toggle attached to them. Menu item
+     * links and the corresponding list toggle are wrapped with in a div
+     * classed with .toolbar-box. The .toolbar-box div provides a positioning
+     * context for the item list toggle.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu to be initialized.
+     */
+    function initItems($menu) {
+      var options = {
+        'class': 'toolbar-icon toolbar-handle',
+        'action': ui.handleOpen,
+        'text': ''
+      };
+      // Initialize items and their links.
+      $menu.find('li > a').wrap('<div class="toolbar-box">');
+      // Add a handle to each list item if it has a menu.
+      $menu.find('li').each(function (index, element) {
+        var $item = $(element);
+        if ($item.children('ul.menu').length) {
+          var $box = $item.children('.toolbar-box');
+          options.text = Drupal.t('@label', {'@label': $box.find('a').text()});
+          $item.children('.toolbar-box')
+            .append(Drupal.theme('toolbarMenuItemToggle', options));
+        }
+      });
+    }
+
+    /**
+     * Adds a level class to each list based on its depth in the menu.
+     *
+     * This function is called recursively on each sub level of lists elements
+     * until the depth of the menu is exhausted.
+     *
+     * @param {jQuery} $lists
+     *   A jQuery object of ul elements.
+     *
+     * @param {Integer} level
+     *   The current level number to be assigned to the list elements.
+     */
+    function markListLevels($lists, level) {
+      level = (!level) ? 1 : level;
+      var $lis = $lists.children('li').addClass('level-' + level);
+      $lists = $lis.children('ul');
+      if ($lists.length) {
+        markListLevels($lists, level + 1);
+      }
+    }
+
+    /**
+     * On page load, open the active menu item.
+     *
+     * Marks the trail of the active link in the menu back to the root of the
+     * menu with .menu-item--active-trail.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu.
+     */
+    function openActiveItem($menu) {
+      var pathItem = $menu.find('a[href="' + location.pathname + '"]');
+      if (pathItem.length && !activeItem) {
+        activeItem = location.pathname;
+      }
+      if (activeItem) {
+        var $activeItem = $menu.find('a[href="' + activeItem + '"]').addClass('menu-item--active');
+        var $activeTrail = $activeItem.parentsUntil('.root', 'li').addClass('menu-item--active-trail');
+        toggleList($activeTrail, true);
+      }
+    }
+
+    // Bind event handlers.
+    $(document)
+      .on('click.toolbar', '.toolbar-box', toggleClickHandler)
+      .on('click.toolbar', '.toolbar-box a', linkClickHandler);
+
+    // Return the jQuery object.
+    return this.each(function (selector) {
+      var $menu = $(this).once('toolbar-menu');
+      if ($menu.length) {
+        $menu.addClass('root');
+        initItems($menu);
+        markListLevels($menu);
+        // Restore previous and active states.
+        openActiveItem($menu);
+      }
+    });
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarMenuItemToggle = function (options) {
+    return '<button class="' + options['class'] + '"><span class="action">' + options.action + '</span><span class="label">' + options.text + '</span></button>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file toolbar.js
+ *
+ * Defines the behavior of the Drupal administration toolbar.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  // Merge run-time settings with the defaults.
+  var options = $.extend(
+    {
+      breakpoints: {
+        'toolbar.narrow': '',
+        'toolbar.standard': '',
+        'toolbar.wide': ''
+      }
+    },
+    drupalSettings.toolbar,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        horizontal: Drupal.t('Horizontal orientation'),
+        vertical: Drupal.t('Vertical orientation')
+      }
+    }
+  );
+
+  /**
+   * Registers tabs with the toolbar.
+   *
+   * The Drupal toolbar allows modules to register top-level tabs. These may
+   * point directly to a resource or toggle the visibility of a tray.
+   *
+   * Modules register tabs with hook_toolbar().
+   */
+  Drupal.behaviors.toolbar = {
+
+    attach: function (context) {
+      // Verify that the user agent understands media queries. Complex admin
+      // toolbar layouts require media query support.
+      if (!window.matchMedia('only screen').matches) {
+        return;
+      }
+      // Process the administrative toolbar.
+      $(context).find('#toolbar-administration').once('toolbar').each(function () {
+
+        // Establish the toolbar models and views.
+        var model = Drupal.toolbar.models.toolbarModel = new Drupal.toolbar.ToolbarModel({
+          locked: JSON.parse(localStorage.getItem('Drupal.toolbar.trayVerticalLocked')) || false,
+          activeTab: document.getElementById(JSON.parse(localStorage.getItem('Drupal.toolbar.activeTabID')))
+        });
+        Drupal.toolbar.views.toolbarVisualView = new Drupal.toolbar.ToolbarVisualView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.toolbarAuralView = new Drupal.toolbar.ToolbarAuralView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.bodyVisualView = new Drupal.toolbar.BodyVisualView({
+          el: this,
+          model: model
+        });
+
+        // Render collapsible menus.
+        var menuModel = Drupal.toolbar.models.menuModel = new Drupal.toolbar.MenuModel();
+        Drupal.toolbar.views.menuVisualView = new Drupal.toolbar.MenuVisualView({
+          el: $(this).find('.toolbar-menu-administration').get(0),
+          model: menuModel,
+          strings: options.strings
+        });
+
+        // Handle the resolution of Drupal.toolbar.setSubtrees.
+        // This is handled with a deferred so that the function may be invoked
+        // asynchronously.
+        Drupal.toolbar.setSubtrees.done(function (subtrees) {
+          menuModel.set('subtrees', subtrees);
+          localStorage.setItem('Drupal.toolbar.subtrees', JSON.stringify(subtrees));
+          // Indicate on the toolbarModel that subtrees are now loaded.
+          model.set('areSubtreesLoaded', true);
+        });
+
+        // Attach a listener to the configured media query breakpoints.
+        for (var label in options.breakpoints) {
+          if (options.breakpoints.hasOwnProperty(label)) {
+            var mq = options.breakpoints[label];
+            var mql = Drupal.toolbar.mql[label] = window.matchMedia(mq);
+            // Curry the model and the label of the media query breakpoint to
+            // the mediaQueryChangeHandler function.
+            mql.addListener(Drupal.toolbar.mediaQueryChangeHandler.bind(null, model, label));
+            // Fire the mediaQueryChangeHandler for each configured breakpoint
+            // so that they process once.
+            Drupal.toolbar.mediaQueryChangeHandler.call(null, model, label, mql);
+          }
+        }
+
+        // Trigger an initial attempt to load menu subitems. This first attempt
+        // is made after the media query handlers have had an opportunity to
+        // process. The toolbar starts in the vertical orientation by default,
+        // unless the viewport is wide enough to accommodate a horizontal
+        // orientation. Thus we give the Toolbar a chance to determine if it
+        // should be set to horizontal orientation before attempting to load
+        // menu subtrees.
+        Drupal.toolbar.views.toolbarVisualView.loadSubtrees();
+
+        $(document)
+          // Update the model when the viewport offset changes.
+          .on('drupalViewportOffsetChange.toolbar', function (event, offsets) {
+            model.set('offsets', offsets);
+          });
+
+        // Broadcast model changes to other modules.
+        model
+          .on('change:orientation', function (model, orientation) {
+            $(document).trigger('drupalToolbarOrientationChange', orientation);
+          })
+          .on('change:activeTab', function (model, tab) {
+            $(document).trigger('drupalToolbarTabChange', tab);
+          })
+          .on('change:activeTray', function (model, tray) {
+            $(document).trigger('drupalToolbarTrayChange', tray);
+          });
+
+        // If the toolbar's orientation is horizontal and no active tab is
+        // defined then show the tray of the first toolbar tab by default (but
+        // not the first 'Home' toolbar tab).
+        if (Drupal.toolbar.models.toolbarModel.get('orientation') === 'horizontal' && Drupal.toolbar.models.toolbarModel.get('activeTab') === null) {
+          Drupal.toolbar.models.toolbarModel.set({
+            'activeTab': $('.toolbar-bar .toolbar-tab:not(.home-toolbar-tab) a').get(0)
+          });
+        }
+      });
+    }
+  };
+
+  /**
+   * Toolbar methods of Backbone objects.
+   */
+  Drupal.toolbar = {
+
+    // A hash of View instances.
+    views: {},
+
+    // A hash of Model instances.
+    models: {},
+
+    // A hash of MediaQueryList objects tracked by the toolbar.
+    mql: {},
+
+    /**
+     * Accepts a list of subtree menu elements.
+     *
+     * A deferred object that is resolved by an inlined JavaScript callback.
+     *
+     * JSONP callback.
+     * @see toolbar_subtrees_jsonp().
+     */
+    setSubtrees: new $.Deferred(),
+
+    /**
+     * Respond to configured narrow media query changes.
+     */
+    mediaQueryChangeHandler: function (model, label, mql) {
+      switch (label) {
+        case 'toolbar.narrow':
+          model.set({
+            'isOriented': mql.matches,
+            'isTrayToggleVisible': false
+          });
+          // If the toolbar doesn't have an explicit orientation yet, or if the
+          // narrow media query doesn't match then set the orientation to
+          // vertical.
+          if (!mql.matches || !model.get('orientation')) {
+            model.set({'orientation': 'vertical'}, {validate: true});
+          }
+          break;
+        case 'toolbar.standard':
+          model.set({
+            'isFixed': mql.matches
+          });
+          break;
+        case 'toolbar.wide':
+          model.set({
+            'orientation': ((mql.matches) ? 'horizontal' : 'vertical')
+          }, {validate: true});
+          // The tray orientation toggle visibility does not need to be
+          // validated.
+          model.set({
+            'isTrayToggleVisible': mql.matches
+          });
+          break;
+        default:
+          break;
+      }
+    }
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarOrientationToggle = function () {
+    return '<div class="toolbar-toggle-orientation"><div class="toolbar-lining">' +
+      '<button class="toolbar-icon" type="button"></button>' +
+      '</div></div>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file
+ * A Backbone Model for collapsible menus.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone Model for collapsible menus.
+   */
+  Drupal.toolbar.MenuModel = Backbone.Model.extend({
+    defaults: {
+      subtrees: {}
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone Model for the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone model for the toolbar.
+   */
+  Drupal.toolbar.ToolbarModel = Backbone.Model.extend({
+    defaults: {
+      // The active toolbar tab. All other tabs should be inactive under
+      // normal circumstances. It will remain active across page loads. The
+      // active item is stored as an ID selector e.g. '#toolbar-item--1'.
+      activeTab: null,
+      // Represents whether a tray is open or not. Stored as an ID selector e.g.
+      // '#toolbar-item--1-tray'.
+      activeTray: null,
+      // Indicates whether the toolbar is displayed in an oriented fashion,
+      // either horizontal or vertical.
+      isOriented: false,
+      // Indicates whether the toolbar is positioned absolute (false) or fixed
+      // (true).
+      isFixed: false,
+      // Menu subtrees are loaded through an AJAX request only when the Toolbar
+      // is set to a vertical orientation.
+      areSubtreesLoaded: false,
+      // If the viewport overflow becomes constrained, isFixed must be true so
+      // that elements in the trays aren't lost off-screen and impossible to
+      // get to.
+      isViewportOverflowConstrained: false,
+      // The orientation of the active tray.
+      orientation: 'vertical',
+      // A tray is locked if a user toggled it to vertical. Otherwise a tray
+      // will switch between vertical and horizontal orientation based on the
+      // configured breakpoints. The locked state will be maintained across page
+      // loads.
+      locked: false,
+      // Indicates whether the tray orientation toggle is visible.
+      isTrayToggleVisible: false,
+      // The height of the toolbar.
+      height: null,
+      // The current viewport offsets determined by Drupal.displace(). The
+      // offsets suggest how a module might position is components relative to
+      // the viewport.
+      offsets: {
+        top: 0,
+        right: 0,
+        bottom: 0,
+        left: 0
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    validate: function (attributes, options) {
+      // Prevent the orientation being set to horizontal if it is locked, unless
+      // override has not been passed as an option.
+      if (attributes.orientation === 'horizontal' && this.get('locked') && !options.override) {
+        return Drupal.t('The toolbar cannot be set to a horizontal orientation when it is locked.');
+      }
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the body element.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Adjusts the body element with the toolbar position and dimension changes.
+   */
+  Drupal.toolbar.BodyVisualView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:orientation change:offsets change:activeTray change:isOriented change:isFixed change:isViewportOverflowConstrained', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var $body = $('body');
+      var orientation = this.model.get('orientation');
+      var isOriented = this.model.get('isOriented');
+      var isViewportOverflowConstrained = this.model.get('isViewportOverflowConstrained');
+
+      $body
+        // We are using JavaScript to control media-query handling for two
+        // reasons: (1) Using JavaScript let's us leverage the breakpoint
+        // configurations and (2) the CSS is really complex if we try to hide
+        // some styling from browsers that don't understand CSS media queries.
+        // If we drive the CSS from classes added through JavaScript,
+        // then the CSS becomes simpler and more robust.
+        .toggleClass('toolbar-vertical', (orientation === 'vertical'))
+        .toggleClass('toolbar-horizontal', (isOriented && orientation === 'horizontal'))
+        // When the toolbar is fixed, it will not scroll with page scrolling.
+        .toggleClass('toolbar-fixed', (isViewportOverflowConstrained || this.model.get('isFixed')))
+        // Toggle the toolbar-tray-open class on the body element. The class is
+        // applied when a toolbar tray is active. Padding might be applied to
+        // the body element to prevent the tray from overlapping content.
+        .toggleClass('toolbar-tray-open', !!this.model.get('activeTray'))
+        // Apply padding to the top of the body to offset the placement of the
+        // toolbar bar element.
+        .css('padding-top', this.model.get('offsets').top);
+    }
+  });
+
+}(jQuery, Drupal, Backbone));
+;
+/**
+ * @file
+ * A Backbone view for the collapsible menus.
+ */
+
+(function ($, Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone View for collapsible menus.
+   */
+  Drupal.toolbar.MenuVisualView = Backbone.View.extend({
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:subtrees', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var subtrees = this.model.get('subtrees');
+      // Add subtrees.
+      for (var id in subtrees) {
+        if (subtrees.hasOwnProperty(id)) {
+          this.$el
+            .find('#toolbar-link-' + id)
+            .once('toolbar-subtrees')
+            .after(subtrees[id]);
+        }
+      }
+      // Render the main menu as a nested, collapsible accordion.
+      if ('drupalToolbarMenu' in $.fn) {
+        this.$el
+          .children('.menu')
+          .drupalToolbarMenu();
+      }
+    }
+  });
+
+}(jQuery, Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the aural feedback of the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the aural feedback of the toolbar.
+   */
+  Drupal.toolbar.ToolbarAuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:orientation', this.onOrientationChange);
+      this.listenTo(this.model, 'change:activeTray', this.onActiveTrayChange);
+    },
+
+    /**
+     * Announces an orientation change.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param String orientation
+     *   The new value of the orientation attribute in the model.
+     */
+    onOrientationChange: function (model, orientation) {
+      Drupal.announce(Drupal.t('Tray orientation changed to @orientation.', {
+        '@orientation': orientation
+      }));
+    },
+
+    /**
+     * Announces a changed active tray.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param Element orientation
+     *   The new value of the tray attribute in the model.
+     */
+    onActiveTrayChange: function (model, tray) {
+      var relevantTray = (tray === null) ? model.previous('activeTray') : tray;
+      var action = (tray === null) ? Drupal.t('closed') : Drupal.t('opened');
+      var trayNameElement = relevantTray.querySelector('.toolbar-tray-name');
+      var text;
+      if (trayNameElement !== null) {
+        text = Drupal.t('Tray "@tray" @action.', {
+          '@tray': trayNameElement.textContent, '@action': action
+        });
+      }
+      else {
+        text = Drupal.t('Tray @action.', {'@action': action});
+      }
+      Drupal.announce(text);
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the toolbar element. Listens to mouse & touch.
+ */
+
+(function ($, Drupal, drupalSettings, Backbone) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the toolbar element. Listens to mouse & touch.
+   */
+  Drupal.toolbar.ToolbarVisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click .toolbar-bar .toolbar-tab': 'onTabClick',
+        'click .toolbar-toggle-orientation button': 'onOrientationToggleClick',
+        'touchend .toolbar-bar .toolbar-tab': touchEndToClick,
+        'touchend .toolbar-toggle-orientation button': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:activeTab change:orientation change:isOriented change:isTrayToggleVisible', this.render);
+      this.listenTo(this.model, 'change:mqMatches', this.onMediaQueryChange);
+      this.listenTo(this.model, 'change:offsets', this.adjustPlacement);
+
+      // Add the tray orientation toggles.
+      this.$el
+        .find('.toolbar-tray .toolbar-lining')
+        .append(Drupal.theme('toolbarOrientationToggle'));
+
+      // Trigger an activeTab change so that listening scripts can respond on
+      // page load. This will call render.
+      this.model.trigger('change:activeTab');
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.updateTabs();
+      this.updateTrayOrientation();
+      this.updateBarAttributes();
+      // Load the subtrees if the orientation of the toolbar is changed to
+      // vertical. This condition responds to the case that the toolbar switches
+      // from horizontal to vertical orientation. The toolbar starts in a
+      // vertical orientation by default and then switches to horizontal during
+      // initialization if the media query conditions are met. Simply checking
+      // that the orientation is vertical here would result in the subtrees
+      // always being loaded, even when the toolbar initialization ultimately
+      // results in a horizontal orientation.
+      //
+      // @see Drupal.behaviors.toolbar.attach() where admin menu subtrees
+      // loading is invoked during initialization after media query conditions
+      // have been processed.
+      if (this.model.changed.orientation === 'vertical' || this.model.changed.activeTab) {
+        this.loadSubtrees();
+      }
+      // Trigger a recalculation of viewport displacing elements. Use setTimeout
+      // to ensure this recalculation happens after changes to visual elements
+      // have processed.
+      window.setTimeout(function () {
+        Drupal.displace(true);
+      }, 0);
+      return this;
+    },
+
+    /**
+     * Responds to a toolbar tab click.
+     *
+     * @param jQuery.Event event
+     */
+    onTabClick: function (event) {
+      // If this tab has a tray associated with it, it is considered an
+      // activatable tab.
+      if (event.target.hasAttribute('data-toolbar-tray')) {
+        var activeTab = this.model.get('activeTab');
+        var clickedTab = event.target;
+
+        // Set the event target as the active item if it is not already.
+        this.model.set('activeTab', (!activeTab || clickedTab !== activeTab) ? clickedTab : null);
+
+        event.preventDefault();
+        event.stopPropagation();
+      }
+    },
+
+    /**
+     * Toggles the orientation of a toolbar tray.
+     *
+     * @param jQuery.Event event
+     */
+    onOrientationToggleClick: function (event) {
+      var orientation = this.model.get('orientation');
+      // Determine the toggle-to orientation.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      var locked = (antiOrientation === 'vertical') ? true : false;
+      // Remember the locked state.
+      if (locked) {
+        localStorage.setItem('Drupal.toolbar.trayVerticalLocked', 'true');
+      }
+      else {
+        localStorage.removeItem('Drupal.toolbar.trayVerticalLocked');
+      }
+      // Update the model.
+      this.model.set({
+        locked: locked,
+        orientation: antiOrientation
+      }, {
+        validate: true,
+        override: true
+      });
+
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Updates the display of the tabs: toggles a tab and the associated tray.
+     */
+    updateTabs: function () {
+      var $tab = $(this.model.get('activeTab'));
+      // Deactivate the previous tab.
+      $(this.model.previous('activeTab'))
+        .removeClass('is-active')
+        .prop('aria-pressed', false);
+      // Deactivate the previous tray.
+      $(this.model.previous('activeTray'))
+        .removeClass('is-active');
+
+      // Activate the selected tab.
+      if ($tab.length > 0) {
+        $tab
+          .addClass('is-active')
+          // Mark the tab as pressed.
+          .prop('aria-pressed', true);
+        var name = $tab.attr('data-toolbar-tray');
+        // Store the active tab name or remove the setting.
+        var id = $tab.get(0).id;
+        if (id) {
+          localStorage.setItem('Drupal.toolbar.activeTabID', JSON.stringify(id));
+        }
+        // Activate the associated tray.
+        var $tray = this.$el.find('[data-toolbar-tray="' + name + '"].toolbar-tray');
+        if ($tray.length) {
+          $tray.addClass('is-active');
+          this.model.set('activeTray', $tray.get(0));
+        }
+        else {
+          // There is no active tray.
+          this.model.set('activeTray', null);
+        }
+      }
+      else {
+        // There is no active tray.
+        this.model.set('activeTray', null);
+        localStorage.removeItem('Drupal.toolbar.activeTabID');
+      }
+    },
+
+    /**
+     * Update the attributes of the toolbar bar element.
+     */
+    updateBarAttributes: function () {
+      var isOriented = this.model.get('isOriented');
+      if (isOriented) {
+        this.$el.find('.toolbar-bar').attr('data-offset-top', '');
+      }
+      else {
+        this.$el.find('.toolbar-bar').removeAttr('data-offset-top');
+      }
+      // Toggle between a basic vertical view and a more sophisticated
+      // horizontal and vertical display of the toolbar bar and trays.
+      this.$el.toggleClass('toolbar-oriented', isOriented);
+    },
+
+    /**
+     * Updates the orientation of the active tray if necessary.
+     */
+    updateTrayOrientation: function () {
+      var orientation = this.model.get('orientation');
+      // The antiOrientation is used to render the view of action buttons like
+      // the tray orientation toggle.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      // Update the orientation of the trays.
+      var $trays = this.$el.find('.toolbar-tray')
+        .removeClass('toolbar-tray-horizontal toolbar-tray-vertical')
+        .addClass('toolbar-tray-' + orientation);
+
+      // Update the tray orientation toggle button.
+      var iconClass = 'toolbar-icon-toggle-' + orientation;
+      var iconAntiClass = 'toolbar-icon-toggle-' + antiOrientation;
+      var $orientationToggle = this.$el.find('.toolbar-toggle-orientation')
+        .toggle(this.model.get('isTrayToggleVisible'));
+      $orientationToggle.find('button')
+        .val(antiOrientation)
+        .attr('title', this.strings[antiOrientation])
+        .text(this.strings[antiOrientation])
+        .removeClass(iconClass)
+        .addClass(iconAntiClass);
+
+      // Update data offset attributes for the trays.
+      var dir = document.documentElement.dir;
+      var edge = (dir === 'rtl') ? 'right' : 'left';
+      // Remove data-offset attributes from the trays so they can be refreshed.
+      $trays.removeAttr('data-offset-left data-offset-right data-offset-top');
+      // If an active vertical tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-vertical.is-active').attr('data-offset-' + edge, '');
+      // If an active horizontal tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-horizontal.is-active').attr('data-offset-top', '');
+    },
+
+    /**
+     * Sets the tops of the trays so that they align with the bottom of the bar.
+     */
+    adjustPlacement: function () {
+      var $trays = this.$el.find('.toolbar-tray');
+      if (!this.model.get('isOriented')) {
+        $trays.css('padding-top', 0);
+        $trays.removeClass('toolbar-tray-horizontal').addClass('toolbar-tray-vertical');
+      }
+      else {
+        // The toolbar container is invisible. Its placement is used to
+        // determine the container for the trays.
+        $trays.css('padding-top', this.$el.find('.toolbar-bar').outerHeight());
+      }
+    },
+
+    /**
+     * Calls the endpoint URI that will return rendered subtrees with JSONP.
+     *
+     * The rendered admin menu subtrees HTML is cached on the client in
+     * localStorage until the cache of the admin menu subtrees on the server-
+     * side is invalidated. The subtreesHash is stored in localStorage as well
+     * and compared to the subtreesHash in drupalSettings to determine when the
+     * admin menu subtrees cache has been invalidated.
+     */
+    loadSubtrees: function () {
+      var $activeTab = $(this.model.get('activeTab'));
+      var orientation = this.model.get('orientation');
+      // Only load and render the admin menu subtrees if:
+      //   (1) They have not been loaded yet.
+      //   (2) The active tab is the administration menu tab, indicated by the
+      //       presence of the data-drupal-subtrees attribute.
+      //   (3) The orientation of the tray is vertical.
+      if (!this.model.get('areSubtreesLoaded') && typeof $activeTab.data('drupal-subtrees') !== 'undefined' && orientation === 'vertical') {
+        var subtreesHash = drupalSettings.toolbar.subtreesHash;
+        var langcode = drupalSettings.toolbar.langcode;
+        var endpoint = Drupal.url('toolbar/subtrees/' + subtreesHash + '/' + langcode);
+        var cachedSubtreesHash = localStorage.getItem('Drupal.toolbar.subtreesHash');
+        var cachedSubtrees = JSON.parse(localStorage.getItem('Drupal.toolbar.subtrees'));
+        var isVertical = this.model.get('orientation') === 'vertical';
+        // If we have the subtrees in localStorage and the subtree hash has not
+        // changed, then use the cached data.
+        if (isVertical && subtreesHash === cachedSubtreesHash && cachedSubtrees) {
+          Drupal.toolbar.setSubtrees.resolve(cachedSubtrees);
+        }
+        // Only make the call to get the subtrees if the orientation of the
+        // toolbar is vertical.
+        else if (isVertical) {
+          // Remove the cached menu information.
+          localStorage.removeItem('Drupal.toolbar.subtreesHash');
+          localStorage.removeItem('Drupal.toolbar.subtrees');
+          // The response from the server will call the resolve method of the
+          // Drupal.toolbar.setSubtrees Promise.
+          $.ajax(endpoint);
+          // Cache the hash for the subtrees locally.
+          localStorage.setItem('Drupal.toolbar.subtreesHash', subtreesHash);
+        }
+      }
+    }
+  });
+
+}(jQuery, Drupal, drupalSettings, Backbone));
+;
+/* jQuery Foundation Joyride Plugin 2.1 | Copyright 2012, ZURB | www.opensource.org/licenses/mit-license.php */
+(function(e,t,n){"use strict";var r={version:"2.0.3",tipLocation:"bottom",nubPosition:"auto",scroll:!0,scrollSpeed:300,timer:0,autoStart:!1,startTimerOnClick:!0,startOffset:0,nextButton:!0,tipAnimation:"fade",pauseAfter:[],tipAnimationFadeSpeed:300,cookieMonster:!1,cookieName:"joyride",cookieDomain:!1,cookiePath:!1,localStorage:!1,localStorageKey:"joyride",tipContainer:"body",modal:!1,expose:!1,postExposeCallback:e.noop,preRideCallback:e.noop,postRideCallback:e.noop,preStepCallback:e.noop,postStepCallback:e.noop,template:{link:'<a href="#close" class="joyride-close-tip">X</a>',timer:'<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',tip:'<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',wrapper:'<div class="joyride-content-wrapper" role="dialog"></div>',button:'<a href="#" class="joyride-next-tip"></a>',modal:'<div class="joyride-modal-bg"></div>',expose:'<div class="joyride-expose-wrapper"></div>',exposeCover:'<div class="joyride-expose-cover"></div>'}},i=i||!1,s={},o={init:function(n){return this.each(function(){e.isEmptyObject(s)?(s=e.extend(!0,r,n),s.document=t.document,s.$document=e(s.document),s.$window=e(t),s.$content_el=e(this),s.$body=e(s.tipContainer),s.body_offset=e(s.tipContainer).position(),s.$tip_content=e("> li",s.$content_el),s.paused=!1,s.attempts=0,s.tipLocationPatterns={top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},o.jquery_check(),e.isFunction(e.cookie)||(s.cookieMonster=!1),(!s.cookieMonster||!e.cookie(s.cookieName))&&(!s.localStorage||!o.support_localstorage()||!localStorage.getItem(s.localStorageKey))&&(s.$tip_content.each(function(t){o.create({$li:e(this),index:t})}),s.autoStart&&(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"))),s.$document.on("click.joyride",".joyride-next-tip, .joyride-modal-bg",function(e){e.preventDefault(),s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())}),s.$document.on("click.joyride",".joyride-close-tip",function(e){e.preventDefault(),o.end()}),s.$window.bind("resize.joyride",function(t){if(s.$li){if(s.exposed&&s.exposed.length>0){var n=e(s.exposed);n.each(function(){var t=e(this);o.un_expose(t),o.expose(t)})}o.is_phone()?o.pos_phone():o.pos_default()}})):o.restart()})},resume:function(){o.set_li(),o.show()},nextTip:function(){s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())},tip_template:function(t){var n,r,i;return t.tip_class=t.tip_class||"",n=e(s.template.tip).addClass(t.tip_class),r=e.trim(e(t.li).html())+o.button_text(t.button_text)+s.template.link+o.timer_instance(t.index),i=e(s.template.wrapper),t.li.attr("data-aria-labelledby")&&i.attr("aria-labelledby",t.li.attr("data-aria-labelledby")),t.li.attr("data-aria-describedby")&&i.attr("aria-describedby",t.li.attr("data-aria-describedby")),n.append(i),n.first().attr("data-index",t.index),e(".joyride-content-wrapper",n).append(r),n[0]},timer_instance:function(t){var n;return t===0&&s.startTimerOnClick&&s.timer>0||s.timer===0?n="":n=o.outerHTML(e(s.template.timer)[0]),n},button_text:function(t){return s.nextButton?(t=e.trim(t)||"Next",t=o.outerHTML(e(s.template.button).append(t)[0])):t="",t},create:function(t){var n=t.$li.attr("data-button")||t.$li.attr("data-text"),r=t.$li.attr("class"),i=e(o.tip_template({tip_class:r,index:t.index,button_text:n,li:t.$li}));e(s.tipContainer).append(i)},show:function(t){var r={},i,u=[],a=0,f,l=null;if(s.$li===n||e.inArray(s.$li.index(),s.pauseAfter)===-1){s.paused?s.paused=!1:o.set_li(t),s.attempts=0;if(s.$li.length&&s.$target.length>0){t&&(s.preRideCallback(s.$li.index(),s.$next_tip),s.modal&&o.show_modal()),s.preStepCallback(s.$li.index(),s.$next_tip),u=(s.$li.data("options")||":").split(";"),a=u.length;for(i=a-1;i>=0;i--)f=u[i].split(":"),f.length===2&&(r[e.trim(f[0])]=e.trim(f[1]));s.tipSettings=e.extend({},s,r),s.tipSettings.tipLocationPattern=s.tipLocationPatterns[s.tipSettings.tipLocation],s.modal&&s.expose&&o.expose(),!/body/i.test(s.$target.selector)&&s.scroll&&o.scroll_to(),o.is_phone()?o.pos_phone(!0):o.pos_default(!0),l=e(".joyride-timer-indicator",s.$next_tip),/pop/i.test(s.tipAnimation)?(l.outerWidth(0),s.timer>0?(s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.show()):/fade/i.test(s.tipAnimation)&&(l.outerWidth(0),s.timer>0?(s.$next_tip.fadeIn(s.tipAnimationFadeSpeed),s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.fadeIn(s.tipAnimationFadeSpeed)),s.$current_tip=s.$next_tip,e(".joyride-next-tip",s.$current_tip).focus(),o.tabbable(s.$current_tip)}else s.$li&&s.$target.length<1?o.show():o.end()}else s.paused=!0},is_phone:function(){return i?i.mq("only screen and (max-width: 767px)"):s.$window.width()<767?!0:!1},support_localstorage:function(){return i?i.localstorage:!!t.localStorage},hide:function(){s.modal&&s.expose&&o.un_expose(),s.modal||e(".joyride-modal-bg").hide(),s.$current_tip.hide(),s.postStepCallback(s.$li.index(),s.$current_tip)},set_li:function(e){e?(s.$li=s.$tip_content.eq(s.startOffset),o.set_next_tip(),s.$current_tip=s.$next_tip):(s.$li=s.$li.next(),o.set_next_tip()),o.set_target()},set_next_tip:function(){s.$next_tip=e(".joyride-tip-guide[data-index="+s.$li.index()+"]")},set_target:function(){var t=s.$li.attr("data-class"),n=s.$li.attr("data-id"),r=function(){return n?e(s.document.getElementById(n)):t?e("."+t).filter(":visible").first():e("body")};s.$target=r()},scroll_to:function(){var t,n;t=s.$window.height()/2,n=Math.ceil(s.$target.offset().top-t+s.$next_tip.outerHeight()),e("html, body").stop().animate({scrollTop:n},s.scrollSpeed)},paused:function(){return e.inArray(s.$li.index()+1,s.pauseAfter)===-1?!0:!1},destroy:function(){e.isEmptyObject(s)||s.$document.off(".joyride"),e(t).off(".joyride"),e(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),e(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(s.automate),s={}},restart:function(){s.autoStart?(o.hide(),s.$li=n,o.show("init")):(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"),s.autoStart=!0)},pos_default:function(t){var n=Math.ceil(s.$window.height()/2),r=s.$next_tip.offset(),i=e(".joyride-nub",s.$next_tip),u=Math.ceil(i.outerWidth()/2),a=Math.ceil(i.outerHeight()/2),f=t||!1;f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show());if(!/body/i.test(s.$target.selector)){var l=s.tipSettings.tipAdjustmentY?parseInt(s.tipSettings.tipAdjustmentY):0,c=s.tipSettings.tipAdjustmentX?parseInt(s.tipSettings.tipAdjustmentX):0;o.bottom()?(s.$next_tip.css({top:s.$target.offset().top+a+s.$target.outerHeight()+l,left:s.$target.offset().left+c}),/right/i.test(s.tipSettings.nubPosition)&&s.$next_tip.css("left",s.$target.offset().left-s.$next_tip.outerWidth()+s.$target.outerWidth()),o.nub_position(i,s.tipSettings.nubPosition,"top")):o.top()?(s.$next_tip.css({top:s.$target.offset().top-s.$next_tip.outerHeight()-a+l,left:s.$target.offset().left+c}),o.nub_position(i,s.tipSettings.nubPosition,"bottom")):o.right()?(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.outerWidth()+s.$target.offset().left+u+c}),o.nub_position(i,s.tipSettings.nubPosition,"left")):o.left()&&(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.offset().left-s.$next_tip.outerWidth()-u+c}),o.nub_position(i,s.tipSettings.nubPosition,"right")),!o.visible(o.corners(s.$next_tip))&&s.attempts<s.tipSettings.tipLocationPattern.length&&(i.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),s.tipSettings.tipLocation=s.tipSettings.tipLocationPattern[s.attempts],s.attempts++,o.pos_default(!0))}else s.$li.length&&o.pos_modal(i);f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_phone:function(t){var n=s.$next_tip.outerHeight(),r=s.$next_tip.offset(),i=s.$target.outerHeight(),u=e(".joyride-nub",s.$next_tip),a=Math.ceil(u.outerHeight()/2),f=t||!1;u.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show()),/body/i.test(s.$target.selector)?s.$li.length&&o.pos_modal(u):o.top()?(s.$next_tip.offset({top:s.$target.offset().top-n-a}),u.addClass("bottom")):(s.$next_tip.offset({top:s.$target.offset().top+i+a}),u.addClass("top")),f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_modal:function(e){o.center(),e.hide(),o.show_modal()},show_modal:function(){e(".joyride-modal-bg").length<1&&e("body").append(s.template.modal).show(),/pop/i.test(s.tipAnimation)?e(".joyride-modal-bg").show():e(".joyride-modal-bg").fadeIn(s.tipAnimationFadeSpeed)},expose:function(){var n,r,i,u,a="expose-"+Math.floor(Math.random()*1e4);if(arguments.length>0&&arguments[0]instanceof e)i=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;i=s.$target}if(i.length<1)return t.console&&console.error("element not valid",i),!1;n=e(s.template.expose),s.$body.append(n),n.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),r=e(s.template.exposeCover),u={zIndex:i.css("z-index"),position:i.css("position")},i.css("z-index",n.css("z-index")*1+1),u.position=="static"&&i.css("position","relative"),i.data("expose-css",u),r.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),s.$body.append(r),n.addClass(a),r.addClass(a),s.tipSettings.exposeClass&&(n.addClass(s.tipSettings.exposeClass),r.addClass(s.tipSettings.exposeClass)),i.data("expose",a),s.postExposeCallback(s.$li.index(),s.$next_tip,i),o.add_exposed(i)},un_expose:function(){var n,r,i,u,a=!1;if(arguments.length>0&&arguments[0]instanceof e)r=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;r=s.$target}if(r.length<1)return t.console&&console.error("element not valid",r),!1;n=r.data("expose"),i=e("."+n),arguments.length>1&&(a=arguments[1]),a===!0?e(".joyride-expose-wrapper,.joyride-expose-cover").remove():i.remove(),u=r.data("expose-css"),u.zIndex=="auto"?r.css("z-index",""):r.css("z-index",u.zIndex),u.position!=r.css("position")&&(u.position=="static"?r.css("position",""):r.css("position",u.position)),r.removeData("expose"),r.removeData("expose-z-index"),o.remove_exposed(r)},add_exposed:function(t){s.exposed=s.exposed||[],t instanceof e?s.exposed.push(t[0]):typeof t=="string"&&s.exposed.push(t)},remove_exposed:function(t){var n;t instanceof e?n=t[0]:typeof t=="string"&&(n=t),s.exposed=s.exposed||[];for(var r=0;r<s.exposed.length;r++)if(s.exposed[r]==n){s.exposed.splice(r,1);return}},center:function(){var e=s.$window;return s.$next_tip.css({top:(e.height()-s.$next_tip.outerHeight())/2+e.scrollTop(),left:(e.width()-s.$next_tip.outerWidth())/2+e.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(s.tipSettings.tipLocation)},top:function(){return/top/i.test(s.tipSettings.tipLocation)},right:function(){return/right/i.test(s.tipSettings.tipLocation)},left:function(){return/left/i.test(s.tipSettings.tipLocation)},corners:function(e){var t=s.$window,n=t.height()/2,r=Math.ceil(s.$target.offset().top-n+s.$next_tip.outerHeight()),i=t.width()+t.scrollLeft(),o=t.height()+r,u=t.height()+t.scrollTop(),a=t.scrollTop();return r<a&&(r<0?a=0:a=r),o>u&&(u=o),[e.offset().top<a,i<e.offset().left+e.outerWidth(),u<e.offset().top+e.outerHeight(),t.scrollLeft()>e.offset().left]},visible:function(e){var t=e.length;while(t--)if(e[t])return!1;return!0},nub_position:function(e,t,n){t==="auto"?e.addClass(n):e.addClass(t)},startTimer:function(){s.$li.length?s.automate=setTimeout(function(){o.hide(),o.show(),o.startTimer()},s.timer):clearTimeout(s.automate)},end:function(){s.cookieMonster&&e.cookie(s.cookieName,"ridden",{expires:365,domain:s.cookieDomain,path:s.cookiePath}),s.localStorage&&localStorage.setItem(s.localStorageKey,!0),s.timer>0&&clearTimeout(s.automate),s.modal&&s.expose&&o.un_expose(),s.$current_tip&&s.$current_tip.hide(),s.$li&&(s.postStepCallback(s.$li.index(),s.$current_tip),s.postRideCallback(s.$li.index(),s.$current_tip)),e(".joyride-modal-bg").hide()},jquery_check:function(){return e.isFunction(e.fn.on)?!0:(e.fn.on=function(e,t,n){return this.delegate(t,e,n)},e.fn.off=function(e,t,n){return this.undelegate(t,e,n)},!1)},outerHTML:function(e){return e.outerHTML||(new XMLSerializer).serializeToString(e)},version:function(){return s.version},tabbable:function(t){e(t).on("keydown",function(n){if(!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===27){n.preventDefault(),o.end();return}if(n.keyCode!==9)return;var r=e(t).find(":tabbable"),i=r.filter(":first"),s=r.filter(":last");n.target===s[0]&&!n.shiftKey?(i.focus(1),n.preventDefault()):n.target===i[0]&&n.shiftKey&&(s.focus(1),n.preventDefault())})}};e.fn.joyride=function(t){if(o[t])return o[t].apply(this,Array.prototype.slice.call(arguments,1));if(typeof t=="object"||!t)return o.init.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.joyride")}})(jQuery,this);
+;
+/**
+ * @file
+ * Attaches behaviors for the Tour module's toolbar tab.
+ */
+
+(function ($, Backbone, Drupal, document) {
+
+  "use strict";
+
+  var queryString = decodeURI(window.location.search);
+
+  /**
+   * Attaches the tour's toolbar tab behavior.
+   *
+   * It uses the query string for:
+   * - tour: When ?tour=1 is present, the tour will start automatically
+   *         after the page has loaded.
+   * - tips: Pass ?tips=class in the url to filter the available tips to
+   *         the subset which match the given class.
+   *
+   * Example:
+   *   http://example.com/foo?tour=1&tips=bar
+   */
+  Drupal.behaviors.tour = {
+    attach: function (context) {
+      $('body').once('tour').each(function () {
+        var model = new Drupal.tour.models.StateModel();
+        new Drupal.tour.views.ToggleTourView({
+          el: $(context).find('#toolbar-tab-tour'),
+          model: model
+        });
+
+        model
+          // Allow other scripts to respond to tour events.
+          .on('change:isActive', function (model, isActive) {
+            $(document).trigger((isActive) ? 'drupalTourStarted' : 'drupalTourStopped');
+          })
+          // Initialization: check whether a tour is available on the current page.
+          .set('tour', $(context).find('ol#tour'));
+
+        // Start the tour immediately if toggled via query string.
+        if (/tour=?/i.test(queryString)) {
+          model.set('isActive', true);
+        }
+      });
+    }
+  };
+
+  Drupal.tour = Drupal.tour || {models: {}, views: {}};
+
+  /**
+   * Backbone Model for tours.
+   */
+  Drupal.tour.models.StateModel = Backbone.Model.extend({
+    defaults: {
+      // Indicates whether the Drupal root window has a tour.
+      tour: [],
+      // Indicates whether the tour is currently running.
+      isActive: false,
+      // Indicates which tour is the active one (necessary to cleanly stop).
+      activeTour: []
+    }
+  });
+
+  /**
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.tour.views.ToggleTourView = Backbone.View.extend({
+
+    events: {'click': 'onClick'},
+
+    /**
+     * Implements Backbone Views' initialize().
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:tour change:isActive', this.render);
+      this.listenTo(this.model, 'change:isActive', this.toggleTour);
+    },
+
+    /**
+     * Implements Backbone Views' render().
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', this._getTour().length === 0);
+      // Render the state.
+      var isActive = this.model.get('isActive');
+      this.$el.find('button')
+        .toggleClass('is-active', isActive)
+        .prop('aria-pressed', isActive);
+      return this;
+    },
+
+    /**
+     * Model change handler; starts or stops the tour.
+     */
+    toggleTour: function () {
+      if (this.model.get('isActive')) {
+        var $tour = this._getTour();
+        this._removeIrrelevantTourItems($tour, this._getDocument());
+        var that = this;
+        if ($tour.find('li').length) {
+          $tour.joyride({
+            autoStart: true,
+            postRideCallback: function () { that.model.set('isActive', false); },
+            template: { // HTML segments for tip layout
+              link: '<a href=\"#close\" class=\"joyride-close-tip\">&times;</a>',
+              button: '<a href=\"#\" class=\"button button--primary joyride-next-tip\"></a>'
+            }
+          });
+          this.model.set({isActive: true, activeTour: $tour});
+        }
+      }
+      else {
+        this.model.get('activeTour').joyride('destroy');
+        this.model.set({isActive: false, activeTour: []});
+      }
+    },
+
+    /**
+     * Toolbar tab click event handler; toggles isActive.
+     */
+    onClick: function (event) {
+      this.model.set('isActive', !this.model.get('isActive'));
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Gets the tour.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to a <ol> containing tour items.
+     */
+    _getTour: function () {
+      return this.model.get('tour');
+    },
+
+    /**
+     * Gets the relevant document as a jQuery element.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to the document within which a tour would be
+     *   started given the current state.
+     */
+    _getDocument: function () {
+      return $(document);
+    },
+
+    /**
+     * Removes tour items for elements that don't have matching page elements or
+     * are explicitly filtered out via the 'tips' query string.
+     *
+     * Example:
+     *   http://example.com/foo?tips=bar
+     *
+     *   The above will filter out tips that do not have a matching page element or
+     *   don't have the "bar" class.
+     *
+     * @param jQuery $tour
+     *   A jQuery element pointing to a <ol> containing tour items.
+     * @param jQuery $document
+     *   A jQuery element pointing to the document within which the elements
+     *   should be sought.
+     *
+     * @see _getDocument()
+     */
+    _removeIrrelevantTourItems: function ($tour, $document) {
+      var removals = false;
+      var tips = /tips=([^&]+)/.exec(queryString);
+      $tour
+        .find('li')
+        .each(function () {
+          var $this = $(this);
+          var itemId = $this.attr('data-id');
+          var itemClass = $this.attr('data-class');
+          // If the query parameter 'tips' is set, remove all tips that don't
+          // have the matching class.
+          if (tips && !$(this).hasClass(tips[1])) {
+            removals = true;
+            $this.remove();
+            return;
+          }
+          // Remove tip from the DOM if there is no corresponding page element.
+          if ((!itemId && !itemClass) ||
+            (itemId && $document.find('#' + itemId).length) ||
+            (itemClass && $document.find('.' + itemClass).length)) {
+            return;
+          }
+          removals = true;
+          $this.remove();
+        });
+
+      // If there were removals, we'll have to do some clean-up.
+      if (removals) {
+        var total = $tour.find('li').length;
+        if (!total) {
+          this.model.set({tour: []});
+        }
+
+        $tour
+          .find('li')
+          // Rebuild the progress data.
+          .each(function (index) {
+            var progress = Drupal.t('!tour_item of !total', {'!tour_item': index + 1, '!total': total});
+            $(this).find('.tour-progress').text(progress);
+          })
+          // Update the last item to have "End tour" as the button.
+          .eq(-1)
+          .attr('data-text', Drupal.t('End tour'));
+      }
+    }
+
+  });
+
+})(jQuery, Backbone, Drupal, document);
+;
+/**
+ * @file
+ * Manages page tabbing modifications made by modules.
+ */
+
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Provides an API for managing page tabbing order modifications.
+   */
+  function TabbingManager() {
+    // Tabbing sets are stored as a stack. The active set is at the top of the
+    // stack. We use a JavaScript array as if it were a stack; we consider the
+    // first element to be the bottom and the last element to be the top. This
+    // allows us to use JavaScript's built-in Array.push() and Array.pop()
+    // methods.
+    this.stack = [];
+  }
+
+  /**
+   * Add public methods to the TabbingManager class.
+   */
+  $.extend(TabbingManager.prototype, {
+    /**
+     * Constrain tabbing to the specified set of elements only.
+     *
+     * Makes elements outside of the specified set of elements unreachable via the
+     * tab key.
+     *
+     * @param jQuery elements
+     *   The set of elements to which tabbing should be constrained. Can also be
+     *   a jQuery-compatible selector string.
+     *
+     * @return TabbingContext
+     */
+    constrain: function (elements) {
+      // Deactivate all tabbingContexts to prepare for the new constraint. A
+      // tabbingContext instance will only be reactivated if the stack is unwound
+      // to it in the _unwindStack() method.
+      var il = this.stack.length;
+      for (var i = 0; i < il; i++) {
+        this.stack[i].deactivate();
+      }
+
+      // The "active tabbing set" are the elements tabbing should be constrained
+      // to.
+      var $elements = $(elements).find(':tabbable').addBack(':tabbable');
+
+      var tabbingContext = new TabbingContext({
+        // The level is the current height of the stack before this new
+        // tabbingContext is pushed on top of the stack.
+        level: this.stack.length,
+        $tabbableElements: $elements
+      });
+
+      this.stack.push(tabbingContext);
+
+      // Activates the tabbingContext; this will manipulate the DOM to constrain
+      // tabbing.
+      tabbingContext.activate();
+
+      // Allow modules to respond to the constrain event.
+      $(document).trigger('drupalTabbingConstrained', tabbingContext);
+
+      return tabbingContext;
+    },
+
+    /**
+     * Restores a former tabbingContext when an active tabbingContext is released.
+     *
+     * The TabbingManager stack of tabbingContext instances will be unwound from
+     * the top-most released tabbingContext down to the first non-released
+     * tabbingContext instance. This non-released instance is then activated.
+     */
+    release: function () {
+      // Unwind as far as possible: find the topmost non-released tabbingContext.
+      var toActivate = this.stack.length - 1;
+      while (toActivate >= 0 && this.stack[toActivate].released) {
+        toActivate--;
+      }
+
+      // Delete all tabbingContexts after the to be activated one. They have
+      // already been deactivated, so their effect on the DOM has been reversed.
+      this.stack.splice(toActivate + 1);
+
+      // Get topmost tabbingContext, if one exists, and activate it.
+      if (toActivate >= 0) {
+        this.stack[toActivate].activate();
+      }
+    },
+
+    /**
+     * Makes all elements outside the of the tabbingContext's set untabbable.
+     *
+     * Elements made untabbable have their original tabindex and autofocus values
+     * stored so that they might be restored later when this tabbingContext
+     * is deactivated.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been activated.
+     */
+    activate: function (tabbingContext) {
+      var $set = tabbingContext.$tabbableElements;
+      var level = tabbingContext.level;
+      // Determine which elements are reachable via tabbing by default.
+      var $disabledSet = $(':tabbable')
+        // Exclude elements of the active tabbing set.
+        .not($set);
+      // Set the disabled set on the tabbingContext.
+      tabbingContext.$disabledElements = $disabledSet;
+      // Record the tabindex for each element, so we can restore it later.
+      var il = $disabledSet.length;
+      for (var i = 0; i < il; i++) {
+        this.recordTabindex($disabledSet.eq(i), level);
+      }
+      // Make all tabbable elements outside of the active tabbing set unreachable.
+      $disabledSet
+        .prop('tabindex', -1)
+        .prop('autofocus', false);
+
+      // Set focus on an element in the tabbingContext's set of tabbable elements.
+      // First, check if there is an element with an autofocus attribute. Select
+      // the last one from the DOM order.
+      var $hasFocus = $set.filter('[autofocus]').eq(-1);
+      // If no element in the tabbable set has an autofocus attribute, select the
+      // first element in the set.
+      if ($hasFocus.length === 0) {
+        $hasFocus = $set.eq(0);
+      }
+      $hasFocus.trigger('focus');
+    },
+
+    /**
+     * Restores that tabbable state of a tabbingContext's disabled elements.
+     *
+     * Elements that were made untabbable have their original tabindex and autofocus
+     * values restored.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been deactivated.
+     */
+    deactivate: function (tabbingContext) {
+      var $set = tabbingContext.$disabledElements;
+      var level = tabbingContext.level;
+      var il = $set.length;
+      for (var i = 0; i < il; i++) {
+        this.restoreTabindex($set.eq(i), level);
+      }
+    },
+
+    /**
+     * Records the tabindex and autofocus values of an untabbable element.
+     *
+     * @param jQuery $set
+     *   The set of elements that have been disabled.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be recorded.
+     */
+    recordTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices') || {};
+      tabInfo[level] = {
+        tabindex: $el[0].getAttribute('tabindex'),
+        autofocus: $el[0].hasAttribute('autofocus')
+      };
+      $el.data('drupalOriginalTabIndices', tabInfo);
+    },
+
+    /**
+     * Restores the tabindex and autofocus values of a reactivated element.
+     *
+     * @param jQuery $el
+     *   The element that is being reactivated.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be restored.
+     */
+    restoreTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices');
+      if (tabInfo && tabInfo[level]) {
+        var data = tabInfo[level];
+        if (data.tabindex) {
+          $el[0].setAttribute('tabindex', data.tabindex);
+        }
+        // If the element did not have a tabindex at this stack level then
+        // remove it.
+        else {
+          $el[0].removeAttribute('tabindex');
+        }
+        if (data.autofocus) {
+          $el[0].setAttribute('autofocus', 'autofocus');
+        }
+
+        // Clean up $.data.
+        if (level === 0) {
+          // Remove all data.
+          $el.removeData('drupalOriginalTabIndices');
+        }
+        else {
+          // Remove the data for this stack level and higher.
+          var levelToDelete = level;
+          while (tabInfo.hasOwnProperty(levelToDelete)) {
+            delete tabInfo[levelToDelete];
+            levelToDelete++;
+          }
+          $el.data('drupalOriginalTabIndices', tabInfo);
+        }
+      }
+    }
+  });
+
+  /**
+   * Stores a set of tabbable elements.
+   *
+   * This constraint can be removed with the release() method.
+   *
+   * @param Object options
+   *   A set of initiating values that include:
+   *   - Number level: The level in the TabbingManager's stack of this
+   *   tabbingContext.
+   *   - jQuery $tabbableElements: The DOM elements that should be reachable via
+   *   the tab key when this tabbingContext is active.
+   *   - jQuery $disabledElements: The DOM elements that should not be reachable
+   *   via the tab key when this tabbingContext is active.
+   *   - Boolean released: A released tabbingContext can never be activated again.
+   *   It will be cleaned up when the TabbingManager unwinds its stack.
+   *   - Boolean active: When true, the tabbable elements of this tabbingContext
+   *   will be reachable via the tab key and the disabled elements will not. Only
+   *   one tabbingContext can be active at a time.
+   */
+  function TabbingContext(options) {
+    $.extend(this, {
+      level: null,
+      $tabbableElements: $(),
+      $disabledElements: $(),
+      released: false,
+      active: false
+    }, options);
+  }
+
+  /**
+   * Add public methods to the TabbingContext class.
+   */
+  $.extend(TabbingContext.prototype, {
+    /**
+     * Releases this TabbingContext.
+     *
+     * Once a TabbingContext object is released, it can never be activated again.
+     */
+    release: function () {
+      if (!this.released) {
+        this.deactivate();
+        this.released = true;
+        Drupal.tabbingManager.release(this);
+        // Allow modules to respond to the tabbingContext release event.
+        $(document).trigger('drupalTabbingContextReleased', this);
+      }
+    },
+
+    /**
+     * Activates this TabbingContext.
+     */
+    activate: function () {
+      // A released TabbingContext object can never be activated again.
+      if (!this.active && !this.released) {
+        this.active = true;
+        Drupal.tabbingManager.activate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextActivated', this);
+      }
+    },
+
+    /**
+     * Deactivates this TabbingContext.
+     */
+    deactivate: function () {
+      if (this.active) {
+        this.active = false;
+        Drupal.tabbingManager.deactivate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextDeactivated', this);
+      }
+    }
+  });
+
+  // Mark this behavior as processed on the first pass and return if it is
+  // already processed.
+  if (Drupal.tabbingManager) {
+    return;
+  }
+  Drupal.tabbingManager = new TabbingManager();
+
+}(jQuery, Drupal));
+;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module's edit toolbar tab.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  var strings = {
+    tabbingReleased: Drupal.t('Tabbing is no longer constrained by the Contextual module.'),
+    tabbingConstrained: Drupal.t('Tabbing is constrained to a set of @contextualsCount and the edit mode toggle.'),
+    pressEsc: Drupal.t('Press the esc key to exit.')
+  };
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param DOM links
+   *   A contextual links DOM element as rendered by the server.
+   */
+  function initContextualToolbar(context) {
+    if (!Drupal.contextual || !Drupal.contextual.collection) {
+      return;
+    }
+
+    var contextualToolbar = Drupal.contextualToolbar;
+    var model = contextualToolbar.model = new contextualToolbar.StateModel({
+      // Checks whether localStorage indicates we should start in edit mode
+      // rather than view mode.
+      // @see Drupal.contextualToolbar.VisualView.persist()
+      isViewing: localStorage.getItem('Drupal.contextualToolbar.isViewing') !== 'false'
+    }, {
+      contextualCollection: Drupal.contextual.collection
+    });
+
+    var viewOptions = {
+      el: $('.toolbar .toolbar-bar .contextual-toolbar-tab'),
+      model: model,
+      strings: strings
+    };
+    new contextualToolbar.VisualView(viewOptions);
+    new contextualToolbar.AuralView(viewOptions);
+  }
+
+  /**
+   * Attaches contextual's edit toolbar tab behavior.
+   */
+  Drupal.behaviors.contextualToolbar = {
+    attach: function (context) {
+      if ($('body').once('contextualToolbar-init').length) {
+        initContextualToolbar(context);
+      }
+    }
+  };
+
+  Drupal.contextualToolbar = {
+    // The Drupal.contextualToolbar.Model instance.
+    model: null
+  };
+
+})(jQuery, Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone Model for the state of Contextual module's edit toolbar tab.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of the edit mode toggle.
+   */
+  Drupal.contextualToolbar.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // Indicates whether the toggle is currently in "view" or "edit" mode.
+      isViewing: true,
+      // Indicates whether the toggle should be visible or hidden. Automatically
+      // calculated, depends on contextualCount.
+      isVisible: false,
+      // Tracks how many contextual links exist on the page.
+      contextualCount: 0,
+      // A TabbingContext object as returned by Drupal.TabbingManager: the set
+      // of tabbable elements when edit mode is enabled.
+      tabbingContext: null
+    },
+
+    /**
+     * {@inheritdoc}
+     *
+     * @param Object attrs
+     * @param Object options
+     *   An object with the following option:
+     *     - Backbone.collection contextualCollection: the collection of
+     *       Drupal.contextual.StateModel models that represent the contextual
+     *       links on the page.
+     */
+    initialize: function (attrs, options) {
+      // Respond to new/removed contextual links.
+      this.listenTo(options.contextualCollection, {
+        'reset remove add': this.countContextualLinks,
+        'add': this.lockNewContextualLinks
+      });
+
+      this.listenTo(this, {
+        // Automatically determine visibility.
+        'change:contextualCount': this.updateVisibility,
+        // Whenever edit mode is toggled, lock all contextual links.
+        'change:isViewing': function (model, isViewing) {
+          options.contextualCollection.each(function (contextualModel) {
+            contextualModel.set('isLocked', !isViewing);
+          });
+        }
+      });
+    },
+
+    /**
+     * Tracks the number of contextual link models in the collection.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added or removed.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    countContextualLinks: function (contextualModel, contextualCollection) {
+      this.set('contextualCount', contextualCollection.length);
+    },
+
+    /**
+     * Lock newly added contextual links if edit mode is enabled.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    lockNewContextualLinks: function (contextualModel, contextualCollection) {
+      if (!this.get('isViewing')) {
+        contextualModel.set('isLocked', true);
+      }
+    },
+
+    /**
+     * Automatically updates visibility of the view/edit mode toggle.
+     */
+    updateVisibility: function () {
+      this.set('isVisible', this.get('contextualCount') > 0);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of the edit mode toggle.
+ */
+
+(function ($, Drupal, Backbone, _) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of the edit mode toggle (i.e.screen reader support).
+   */
+  Drupal.contextualToolbar.AuralView = Backbone.View.extend({
+
+    // Tracks whether the tabbing constraint announcement has been read once yet.
+    announcedOnce: false,
+
+    /*
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.manageTabbing);
+
+      $(document).on('keyup', _.bind(this.onKeypress, this));
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the state.
+      this.$el.find('button').attr('aria-pressed', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Limits tabbing to the contextual links and edit mode toolbar tab.
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    manageTabbing: function () {
+      var tabbingContext = this.model.get('tabbingContext');
+      // Always release an existing tabbing context.
+      if (tabbingContext) {
+        tabbingContext.release();
+        Drupal.announce(this.options.strings.tabbingReleased);
+      }
+      // Create a new tabbing context when edit mode is enabled.
+      if (!this.model.get('isViewing')) {
+        tabbingContext = Drupal.tabbingManager.constrain($('.contextual-toolbar-tab, .contextual'));
+        this.model.set('tabbingContext', tabbingContext);
+        this.announceTabbingConstraint();
+        this.announcedOnce = true;
+      }
+    },
+
+    /**
+     * Announces the current tabbing constraint.
+     */
+    announceTabbingConstraint: function () {
+      var strings = this.options.strings;
+      Drupal.announce(Drupal.formatString(strings.tabbingConstrained, {
+        '@contextualsCount': Drupal.formatPlural(Drupal.contextual.collection.length, '@count contextual link', '@count contextual links')
+      }));
+      Drupal.announce(strings.pressEsc);
+    },
+
+    /**
+     * Responds to esc and tab key press events.
+     *
+     * @param jQuery.Event event
+     */
+    onKeypress: function (event) {
+      // The first tab key press is tracked so that an annoucement about tabbing
+      // constraints can be raised if edit mode is enabled when the page is
+      // loaded.
+      if (!this.announcedOnce && event.keyCode === 9 && !this.model.get('isViewing')) {
+        this.announceTabbingConstraint();
+        // Set announce to true so that this conditional block won't run again.
+        this.announcedOnce = true;
+      }
+      // Respond to the ESC key. Exit out of edit mode.
+      if (event.keyCode === 27) {
+        this.model.set('isViewing', true);
+      }
+    }
+
+  });
+
+})(jQuery, Drupal, Backbone, _);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of the edit mode toggle.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of the edit mode toggle. Listens to mouse & touch.
+   *
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.contextualToolbar.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click': function () {
+          this.model.set('isViewing', !this.model.get('isViewing'));
+        },
+        'touchend': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.persist);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', !this.model.get('isVisible'));
+      // Render the state.
+      this.$el.find('button').toggleClass('is-active', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Model change handler; persists the isViewing value to localStorage.
+     *
+     * isViewing === true is the default, so only stores in localStorage when
+     * it's not the default value (i.e. false).
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    persist: function (model, isViewing) {
+      if (!isViewing) {
+        localStorage.setItem('Drupal.contextualToolbar.isViewing', 'false');
+      }
+      else {
+        localStorage.removeItem('Drupal.contextualToolbar.isViewing');
+      }
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ *
+ * Replaces the home link in toolbar with a back to site link.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  var pathInfo = drupalSettings.path;
+  var escapeAdminPath = sessionStorage.getItem('escapeAdminPath');
+  var windowLocation = window.location;
+
+  // Saves the last non-administrative page in the browser to be able to link back
+  // to it when browsing administrative pages. If there is a destination parameter
+  // there is not need to save the current path because the page is loaded within
+  // an existing "workflow".
+  if (!pathInfo.currentPathIsAdmin && !/destination=/.test(windowLocation.search)) {
+    sessionStorage.setItem('escapeAdminPath', windowLocation);
+  }
+
+  /**
+   * Replaces the "Home" link with "Back to site" link.
+   *
+   * Back to site link points to the last non-administrative page the user visited
+   * within the same browser tab.
+   */
+  Drupal.behaviors.escapeAdmin = {
+    attach: function () {
+      var $toolbarEscape = $('[data-toolbar-escape-admin]').once('escapeAdmin');
+      if ($toolbarEscape.length && pathInfo.currentPathIsAdmin) {
+        if (escapeAdminPath !== null) {
+          $toolbarEscape.attr('href', escapeAdminPath);
+        }
+        else {
+          $toolbarEscape.text(Drupal.t('Home'));
+        }
+        $toolbarEscape.closest('.toolbar-tab').removeClass('hidden');
+      }
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
diff --git a/sites/default/files/js/js_ex5Like5ofXGLP9hwTA99FJzLLgETEjDP_y3NAPcFCo.js.gz b/sites/default/files/js/js_ex5Like5ofXGLP9hwTA99FJzLLgETEjDP_y3NAPcFCo.js.gz
new file mode 100644
index 0000000..195cbf6
--- /dev/null
+++ b/sites/default/files/js/js_ex5Like5ofXGLP9hwTA99FJzLLgETEjDP_y3NAPcFCo.js.gz
@@ -0,0 +1,130 @@
+     ݽwF(>xM҆ ;=<ʴD=qk+U4:	II@j[dﯪU (*{}N"Uu}Gbe^VUyvV,^Goqyg':g`p$MYM(J&]N"OȖYyY-!G2E_}jHo닼G|,2ZuYE&JLƴ[Y~i@dU2iQ?q  Q5y"Ys!0&,bXϳiOMtgvY`VԠUYVDUγ
+&^ëe(*.d|	ӳE@GX&cZIhH×a(5I.栁=[7hχcx9<Ȯ@7.S)]>p8c'<Ff"0olq ݲX vɢ0<5d>tR3/l$:ly	 @]nP5*T`2ZV8/UJ~UjeZ5/4ZYZgt6ap02:"0mkbV2
+ۙ:WY=sjβ޸<"-j~^.?1`D}	?bcutMhwPIz5ܾ~p+[ !h
+gk(e1S臍naGW7pG>eZ\d;Kgx<fFdFOao/&52_?vOB
+<"/2ݸL,a,=>_µ}O a$Miv8<k13] ݸF1gs\D%A@cMnCVa!IU`<]/o{!~R0sq%blr(q$EN61: ގқ^3שON>5U*jv̼^>)`X8h.f=~tbo@aV}f 
+הEHkƻ$pGWysi>1./8:;0thWeF,{~^,Z.|K}ׇ)9{ky ^>%_dEs@q~+h/z~4_: @ɖ/X6rw#/ɰ<#֗_H_np6N]nmnNYU !xGNY nv~Nn{Ȧo~JX;xuj߻;>Wٯxm+Bzn.#1.AfU^3q! v`+='dh=ldc)ng,I(k WȻ"۵"29%|g% euZ]'}n+bZtDUVd6)E:vq8cVw76o@<àp%VCn0[
+	<hˊ}8³beTI1,=_7X/T'oV.5ȢsYE4;7_2$;~?Yup}n猁3`_nuy 8n=3jaaHp\߬R &<
+3> *uaہXx``9'8 ob+y_p7Wb2[cFo߼?B总t̐A|gh+ف#JlO`+nk2C~iΉ+_f?n9KēDh,t` :)530y^qPwMZ0K6ydYDq`DW?zG߼|u^Pu%0	ͩq~dA>>pUtYe;>5zI2w&|ȓ0(LHk,f	_G7L`f4ÝD''8YC܆>/e^V)eu*]f?[> D3Hg-^w"$p>.2*1/Ce~RDd.s-o.[5OGFtгϞP
+^dxipK]>!kCH$~П=݃<s`+ r$yiKL/nI#wB~G׫dsLӅk83JjDmB>YU(gК˪<;˪l}̛IJҊH6@f>Ψ,:W{l+rG2+MЮ&\q .i>Ӟѓzac"yͣ+PbxK_EY;|%AIrDk\++D)a]#S*FƊNlF8&elӳ	 mug0D=;ĭ"R_nH9{j6idV্D	sżiQ݄6}5jͷ"o5|@[brxm6;
+o,;7m"٠r5|v +;9!ɷ)Jsn̹|>񢲷2PU	JFݻ[MS=(վzi*X*;_tr}n	$m̳zV+DW#f⠞$:v9kq/ `<^:9Yd7#:5Wi5ǳXH-5MVr°;m$rPy@?:zKj&olNW9j:DhgAo%I:sWηnУZ.S3+f^\huf&+߫wӃES'e1z@
+)	r#}DP:5%:FK- c<?;<0_iMhWvΚ;\̜j+KSǼ&`'+zhDEthk2ҘZR>4^>_McVEwi1AJE,t
+ykTY1D=74zFy:1iTH8`ZHBP`e?Zp9 lQ/0EƑ'49&4mZq4;^wqsʳr|V-"%vBY"5k9*Yu~MFTȷ |ha;\uu74~To֝P}^Kr=z!kOFvjOtgqfuOn,OM5<-/'%hU֍`\(]M.XsQ!/OE?s4"N`.ɼ|ZPX]-a֋0XNI7/p QgUFbm,&R4JW&BQ-mfAk#FQw0u?2N]*7MCK:U |`|7g[z&NRT9 nVyv&d|`˦Yx&!bKOΦ>]U2 ֜>TO+v;BD`@鐵t2lˈԻ@;ݗ9kEFZsŲ{f1G]YƵ"m[eY| 7e2{13Ieh$xM:!͒SI)W6ꉰo!m*o5뀀^@VV٥eݳY4
+vyu03`yvq.-XﺎOq?WmceM=
+aG8Ш#oC\eh⣩{u̺|~i4d飭zM[P	g, /ٳ?xˋEho+?!hQ%Xtkwli_.85aHȽ(V̋bؖy(̎t]LkFF<eǷ4qOFpvqmFLQFU= $!ș'uAZӂۏXE,) PҐwzvs~s[	LP\Fd3h{<;ֆ3w$y^Uz-MH[fǒyȽ" 
+xI-&{6 r4➝iC'}Y7lBTTD\w_L3xCKwuD2g=y_1DYQSZA4Mߋr.{=x.',|ίߣN=@ bMM$PH:OjA_#)=BwQh7l<zQ;j01Y\xu
+/{G"HWdAE[xC*\*3a Y(Z82k$j GPP?:3@F<10I4kd&c7&Hy8ʚYl/,K8%YMT^mi՛D)nϐ^!sD@D^m`޾;݅ۖ6n㑍23-[E1Ε] rPW삿2\L"))`	3J\/JQH"54B;?g'm۠5x|z]R3<&)|Bth6dW.E0aFX=sppexÓ/᳽<o<v̦֮ch"o)h[)@<uiIki~4uo7E*G.{#[:"[:!{U*sx:˙hXF-~Y!п-_3J4rpXV5k0qG/
+&x$J۰<C{&l*l6/ո^i(_Ke6*~(1. Dk3O)OFN3~xϾoFMp{M)8JPrV{Ǟ{PI$b}̪Gc:ryM~Ηe$j<̀§|WȢpM0@ʹc.^<6X^
+C4ۢa!	mY\&Wz?I  uA#|hvï׻3 4S
+$]@O_a%3nVDZ8`<߄;KuGtcΐ0O'ږ?K̤K'uaւjǼ?|px}\&E/IHg_|Y`Eh2wfMt	'oIZîHÈgMvL`ݧyۭ|t[`<d |LDbBQuoJ}V]܄"(:@Vk
+[hV}-pwSW|)^BDYdAvYsñ6KCvMh	Eb_Q(
+/_t R{/#cJuFKLP՗PH^M#.l3umy hRQq&v,=Eʿ]3Q;@f8Q3y'xtM)Bųu"QW5ɿ\!	0WF^9g_޿k,ym"NY>py6ϨݕYdqŘd%h[$+ oɐ䩹nO "V] >L-dku#7]g"'z;n{6$xo#3T^vK]n/\ϔ٭SvȠiРPRM{r{c gbⰺ^BqgcP:Y-Q!-B=ÒD?L0
+݊}6)WNDse(gW4,ֵ.Jg!cmq)W	KTӎJ4ΛF4vҼ558mߋC.DMlܱZga	of3|qCl4w7M	w;%<r߿nQ
+%&C̑#GpRMk~Za}j=j:`C['|#M+)s]H&p@FɊbҤ0qd3wd*[,4) ˤQ}%.aBEi3q}ǰu])">]ttzl?ąu_{{NU|h~!͎ʺօny8L(LǜD^lbpVr22ޤ;HVqU;ri	E]׵ y0d!)㳵!S1X]MNaױ,#Ӌ*:,fO9WzEAd62UX4J0<E)?i.}Z'ʎcEf5&roSD5bHbg]C-K(./
+0bL ;c踋܇: v>HÍA1&˥ rQ5p,Ґz޴H#HBK6{xNȮ$UT֖SBYts@ԬaSγ*\g*5.غ|Ԍ"q |D{8=kyp20jpڮ$>oѹi+edؤuYZ-X_`) G&Wkn?!gj4y/??-B=\O,d"~Kɪ7HGlH3+T(`	l+ukŒީ`xv|}or~vdAl  !)M>~%[FtܶqipQ0f[a=:nޟpg	AtVM l4y0p6' vt˿+o)ks١^v缴0<@D3TvL©	V)3D-~J]ĝ{5s5=
+'Q&noN72M\$_DDȡ*<e9g>/97xΗ |8OnM14_ P%ye|4|Kgx`.^ߨxw}?;xջ޼{}p)Sv?EpsÅTMҎ̰}F 1LHYQ^?wY0g4UA7LfMx݀(q6"ļVaFg}84_7 GisځF(BD+tjD[޲[c'^68UĪ~7⹯Q̔nFQc4L9u.agELLԘ -s·/&F-`%-' s*rл:tM3C%Ӵ&7f3x!@%iet~nxYSѧ]/`/	Tkb阯S}(䏵FCN"e;m0u<&|^U@lFu"s2[^u#C~}?d<΅#>-	Fznӻؘ3=e1Z-Ң<Fs1"%C9nv"JBlVqY)rkh1_!sG3;9pJ?DdeFlX)w~|WW !x=9O_'-=o8S\JD&*uAy?RBeo)Axz$dFy("24_c>T3Vi]{dn)h2L]B0Q&%/aթN26oF2vC4d,bDD(wE hLD\UH-rzWIƬ?ŅR/(cu] $W;lDɟm=ZM=R2yB
+2[p7a1I}+o1CFrʑ
+\J+rfLs4ޮT]!V$^Zpe;1(SVKzLOe{턑CEљ\g麶fMZm̧K1NJg\hdzin?u>ּmx?@b(HW\O<S*J05,9oB_W7[A9'ѐŇ!!Z=/+y:s]ҘN}2LBdSُ$a
+ jA3N_p	zndY`Me7tfxe;3Õ5W0E\|.Zm>gN<6Y55 2f.9@G0B<R#FyM{:BΊˬ!>KF$e2.Y*3NN<Akz!%g'-Ιac}֫0Z<{;mck,M '|][@7LZFc]=;Mަ, nє"rXԸwڶUCBH1̝eOj]xk앳5`oEq'X2{aMK+ȹg/$/l5b2X修ù j(ӼwBv4<'fNGsjA-(7k²L"`;/@A/%%"_)4ӞH'/L/tʓսa7XqH~`I?)mߓkAmSxh@qSU3y޷U3rh_řC.Vi4?Uiu2bvbU(8C5"0]PT\\X 7pG`V@~8-[z@d 8E Hd1ł[>mY	_miAx̳:c_t8.59 r.s]so[]O+p7ls<8'e)]*/I92[)R}FfTnoO*w)\ʶ/ֺׄ- ĘpnbFxQV)^g)+ќ}B"/Ȱv7u/>cz{s;Y^5fR;.RҥzL$2ufpƫey;x	+r8}+;5kf7?a
+WӢLۚFeCD&l	CxKׅƓA]iSe'ѥޥ P]wii3`b>{<A;e랲0k<N]	AUI/`h!lW?:x@MkTDx'{{cެga}|;>$nhd'Rʔڊù_ԪE<.wlT 9ӳSUxMy3q;mu1}0`ľuR)/Ton-mo?˨!vh%n'LGr!DP9~䏤ĸ0iry͒Ue"vE@*0882TVRM+h	6z,ͨˊkۋ")-8R`d;y_
+?&G@{L~ac6H5so,[мymUnY#xHj8z2NG42 :o2ߺdH}2)0JqR0
+C?U74\<1OUv}ԭ]Ksֵ,a諍@̧vmУIQ8XPS؀ߪE?c]]NBg1}!{uuexfaDg{?Ps)>qRa 3["_D
+oْ}}6׵qe4ބ)3\d{϶ؒ3	CluWf.#]c ^ﳔ9b!ofHT  2zn={(svu$=2J=0XRX<}Z̠~bU\+{%n*7oQ-i&Dw|t
+q8KWmV\϶VX~A2;Ұ;9+v{I!O:6I
+MmLi>?g9)BlxWr PPR>0QꇘؠoUV]Gɍaؐ(dJ8`T2\G <5LL?vSK!ǌTl
+^[g*+_B@<qq-]H|͞;6T	M1]k%& L:o7Ŵ+O:vCeXt}/{v<:<ͺ4APO@W4LʋEq ?%ouiu7^Hj{	51mhһ4ݮBQw@?Z]e6)۲c}N&%f J(SK_7y1[)!|_7?lߎ7Ͽe-0P< ù,(+&f]
+{s쭧T!WlDUBFS7w7f;NPow)aEoOJ'e~q!HNð6#TsO߿BG6 9t?ΈJ|7xYR'.c+֒vAH{o]bdrUkh"D*M@0S2w"ePШ#[e
+kBJh[d˴.5KNn ஗&ƳU`w!Pؒl.0ɩkd{d"ZSt&+aߔ/>.4to$Bi̥S^N;џVHS'H_6Uÿ9OyJVH%؊\?w+"19z
+V(Ayn-wDc܆H=ED#'d恐lT"1>IM}|c'eu+?9QҺ^I	B92OL~9쪺tx}{
+.ڴ,jX_"N:VϻEy|t4@^T=n孌-8Ns`>o)¼0%<\.Al`$F^{mY/H\ZX]{/MxfZs_mFcNDLIj5A	T;?<&'<ߕ6L̯#][~+-|lQ(`vնe6e&x;Du9hOޕ-YȹieޤkIQmm^FLN4FxL,MP8tas8ߍs훠TdFu#ᷕz˻H=ȴ["KzTksƶa؈<VcG4yxA|=LglAmC?Om[u	hZi?gggQ7l:"flt<{t<D`dEBGwY/ΛK:86	Xa촀bGDGa'},bUX~$'Ϗt:wLeJLj;!RUI4QʑzΪ#.A쑭=ΰz*Ϻ\6 qpn'+{aPVrKN*suSx Ϯ֟-?9]5/h{ޒώIB#I`[ͭʨ^ލ>,qwTSN(E0)AFIVXMlZ}b5
+_>⡤ټ.fɎ
+]Fk3_́U3ۜc)NjKvnϢkǼ)E5l1rg"+D~nX&ߺ6-tg/UNi>1[1"119-^'0'xkvlcŏs" WQ"%5Q!+wd2#,XiI.79óbQ5 @rG^deOx) 59S"T.YfUe}H'֕a#6xgR+v2i}7<{R;7<{;Ak0GjQcr?v8ץY<F=dzD@hT]G4Zn#,>Q}:@}%O0$.FQnT\2O'eo\3^Kh5~w)gVfRd;qUrgz`.僨Z[- ?gfq&-IU/Lvftw>6	0Hz	x`p,DaMjخ$(nd,T1*Oi Ϟpܙ6AW6wp'>(<YȨ4]_E*	H`X}ǀaZK*Ny#!Srk/ߡ@/#C(Ldty644}weoTuèeTt7TxsOTygdc\.Vo^>F&<]yp'&1.Lao;zlTx2rMFt=IʓMr;`huE_4vF8eZRPÅ)Ec|"LaRo68nfd<)v%);)/h,bdrzL#h3j'2#"JL
+XhϨ<蘀RK&\'w.aeaZ5S.|=Djl|P5ܴHAwc@lh˜eg4>."h#3E.څȋb	T|̪WyPU
+T
+e7Z3FR7][8OX^,u<:^+Lh2lcQS('BW)r>eDH&@MGC;O*l]_cC#Q'!'<Fu_IFF7jFv嫲/nEEg3Q(éEʩμ
+e:1f2AJanenr衅Vd]ԗy3ߑs-v_KJoъȩfY\ܡI"E7eu4TVon1z̀^pEg񓈔nEVv`#O7f/=fi(Cӽj"xgbǰk]-)V.XWW:;zHsisl٥%XwPy8̠ua2+s-MJovⶕ~.<DҐYkQ:sH"8?"jvL#G6fd{Z`K۳JyFF6o]9- ^~tYd J7KT#zXNrWtM*b^00e
+Vҹ=1jEv5mb2ݟzM<0tr3<$畖d	73#Ss.Zb,\vrl<0~6(Q9]\Bu&v8u~\HaNⓄ[*y+tp=B֊@̲z+*V|g:ΒdȔGw%LW&ԁaW-u'-rmKt\g$~w-DMUdy>+~BuAyo) 8籱QBMKEpf-KN Iˉ^ٺ^z݊Y4ҙ=4u:B!s`ʄO4. %idny?Mȍ_SҚFT}2j=|Ɵ==ѽli1փq/0A>J/Pm0>~|S
+QY]Q^h4ҷ0\t]%8{S^ƃ2hK	d|iBgrb(ȧohxQh953o@H|D7ħ6?_谁4Agf_ ̃	^s 77#G<d̨e w,wb~71ŧ{4bhA
+SapD؍\C77e2h".ntz|Wn73dLjEXZ045LGE6wa_	ik=0Ćτ.fyo:m\MsZnkv1L~Vǵmaf9nx4q\#^FToW<ùYU?SRwǬjqA?A\Ŕ-`=^ 
+&el5o7B:/JZS~B1FR<~HڗmU܌GZEjCǛYY͙$=>!y8*I\6$?
+S W)vBGCz8QY.5<~̳K0oWo̅CDSMGS+!;D-͵ '4d-:yўF+UsUq	+rch>|Q.6%&KZ?V6+Қ%gFuyNo(膳]FqfPȬBXdȐ)v?AsB bif=-CnGm<>v#CR,Oy@|[A'ܘt}XjUMy{)X6ilq	J_Tl!O%)+f/rXoIxUzAsLl=OWy@"K=^xFZKLm/m*ƥmfzolqNθh?:L.=
+Μ].7=)%0y|c!}-c!ţls#d|
+`丮z]!{V~\*A%la.+;Eg+-d lS}-G+
+<
+c
+Q;Q|pnĻ&>}|FیN*r@Ȅ9M y7ҙh|a^3ːYϲZ4~a˭?_5hBE !q8Gp=w&=܅3D׿hgf]d@n E~n`v/ɀ>(H#9@h9*; 2,
+=9ǾQ5Ҳ6W
+DEwD͕gI|1Tv72xԓh 1/ΥOJU䦳mX䖶㹕 
+}ReuxOI4Ih{2~AHTkI sh&ψ x6vf6xQNy1JyI ,hy,J:COTRfSiA<LQ߶ [MIz&B*?Jl+V|1=.Ex6=G'V]gAr7 uP\1şѭY*ʛg+>U@rj`8%©\PRC8g*.us]< hX"nx>u9W& Jjm@Cs>@3t)zwv'AsY(jqtԎ2280Ë 6Rf4IOAIТW̜TCfԵJswC_˰ձ/-47]KR~)XKEQh_1"&43QbE"8?SU@-ءC~phz&>2!.n֤+mĠ2.
+Zѳl2TSKEdC3Fs/8asm@+$Pm؂PޱvT)02o1ϻWd퟉x_&1ܭ-&n8i5Eћ8/$D8wei;0vNn6擂B%]X3oZTabٗo^GUz*CLGsxZ۠ahc,_|a?so/)t@~ o@xolO\*7FK-$OKiq4]zJ6"k~\vbl㋭A	hp2'_="tVUyEH~kj9Z1-S5g"ofH(YZEY	(=˲.m4>/]71[MmZc.ТNZGi<&[95Ejiӹ pb|rRr%XO`8V*,ʪVH	[gT쏕~@dkQk;˲p*ϴ6Ԙsc94Ւʦ TP-NK3m9~s5<Ez]ڤ2SM$lndH5K+ojoh-ӟapvyzObSZzփ]j墷JZW%8̇Gꋑ[0mu6BsKK͑`6ŪǟD.'^Gw܂<|	U|~q*FnG>P]V?%wbmNⳕHntd|-֯7&E_ףnCk"oJ(>M$IV̐b|b͒y8%`ޯ 
+13s!8*W+NC+nY> s.UYNBf^乯Ӵb+hH}~:zU+HV7(1V
+x$d
+Wv啥U/TEJ~^p	/2^CFy~Eӗu l	G]ZvnGam8x(*dA9u!]	YԢƺ؁xV-Յ2֫OPYl>}?Y_ڳlΨXrM5rg:ZQ{M2	J}l== 4bDKOP^d"rcB>J"Ѥ^ǞḬKSLBAn[/S*Q.8F0Tzz|7_X[mEIJr+XdHha°R8qNCR5d_H(WtdD)=knʛ#l5+UiG.BY.ڎ3L!#MZDSosLX81ۜT,|M~C&WV4CR|1tz! V0YZ7255əCb7|33zQj6Q!{o\cFϲgѨ5<>,e 2:@	شܰNrn,VFksZ q#v"&QhtȂTFe6m~m<U9V-$NXvk7	-[ L C𲫞)`oj#RWPoSJ-@FgL~	!#D'gMM7`7h(mbd@qyJWДQ6VMm܁/ͮEN,@}aӢN#3&o[o9M&sj_XِU\kI'/eq{؁	Xo3&j6SS)K}fG[YC%z;#C:&%I'e&'9H]nRDA|
+^䳼5|+:n^&g|c*'N`r@кp@5=䱟}8M}.rd&$nf")ag!d5fco{mcla٦SIE#̷ֺk[l&(K%5"}΁a8?7"]Ővt[GAZޠ|7,&J'koɁMoUs]t)F@f62LoFXmM'sTHP¬ryי6k{~V;vLja{eOX9IwCP(#8[HL'|N6SY^c8ЖQY4MYUֵj]m\gY  -9|iEX)r>Nz24DRٲHѴB1jW8	5ݠ@pP`_`kubTn$A(<Wk\I8"oK`P_%O5Fe@B8X-:k1]^_k)Y9n2rw[,V]#G`GkDvj쪄Z!wBβYް:Fb3h1I}jUȌ$
+ @)4md^y~+Qt45Ha*d/;
+8P;z5SJsB
+ց=:l~ ALabƾA%β
+`ѧcL]Qg.[[-jY,GpH()\S)Վo07ֲueF8xہv^vMr@3 rz}q5G%!_F.hWqx&3"ԔI؉OS=9+[Zz9~s[Wٍ';N_%U7ɜj/׷%q<7VycŢWP_4qx	(=.4/r69}yG~i4@_SN>vL*RQ%?i~{s«[[l8 %Q66Ұ|?,vv_+96%\YT?<zґ'pOʴ?7bCPT;_ϡܲ{5KȡCU)psnR
+<tل7g9	j]OFTYalR$wCb
+|A)#ղ6[;ew]<+ s'c+΋TM.XӞ\r	7f?98
+0;I.׼26SrM,CAfɤ=TQU]SqFp<Y4jQxF Hm[6]c/'31%5X@+!$99}$`<MgĔ_v%8FbZh.Ɂ(n=ib+-ubL-JbkeQ;*9y!:}|޻K8}q1ʕL@#ݎl?@BZs|Af8ZJ_Љ4fҦqNwbPwn*m؂B@9wUoC;0;t/q9b!rжYԖC\a.|t(_nAX4:(1RՖ]P	GVg{ibY5D|a:+Poh/3zu3s>y)%9nj;Q %Jpiul;I	$E巺x#3\o$&UK0=1̲.G]:wLUgS:H\iM[NtuqLxէ}R[z:v=L2V"|𾩀ѿten}^,D-/Jxh$ڻ'6oB{1(7'&1=dJG1ux`ҍ`AO߈2	ǯb!q)c=*=6 RpVVa'sr
+]xy=?׳dwЇx!n	#)f!zދTjbn#tF+,egzsB\:AeB9^Bt)kk!#Z~XmliD?ԝdj.Z~in%Vm3寯qMo;@s6%[#;u*cg%;at jtM٢ZjtŒKe^!d!uw*<*UkRzQ=
+^6o|ѻBv-:S\#ZoA0і.UIDB\nJ͝$#rݖ"?@hn8?2LQ:IC	1dD`뛯+Iv=H,3tOԜ !lMȫͲjgq
+ld׌.aџVXRe&0e`zα5#T		gHm((֏(Mƴ69{	8rf;,}9/Mv!i`AK=?at1CFΟ5}1`~D!FC$"\T.K),Z33Uˡh*\ycSD%]8iT0z3a<F@4|ؤS4F9e><,u9ˉ#̣M,fr<ʁSbw./ɧmB֣7BV+H6s+~T2If}*J咤lJft_T0U+'?25.?{ML.;r=I780[Rwݓ	n^~Þ&of#F]^]4)<dl7^GA9>H~zaˌSYbPs6I:2h!<{/7D1M\7( ݑdMTt섂#^F|n>x<Թ@W[˜<1r
+C&ITisWhZ*S4ރR@'.{p^۴/U
+[-+Mlr!<;2O}O6!M&g茉J\.TrZ}0&މ q.~ie48%0eeKstѥI>Isߎ	yZR4ڶJ׮3qqYZeuM0;ʐo:~hmlbNVRNm#p6ޥm/$/حk7hx$SR;љϻLsͩ*4qhzoH?)˓O{>9 )+
+oȩ]w)lUE'<zn%2"mwon%,2:Ӫu`w0X_X
+Wgŀ҆"=?.^lK6Uhv?=Ez)rtN/vWCO7/aLAAX[襻/;Z{Qݲ[^6Al%U_:3@(#j䍳z8ht2
+lYvݺ0]{qwT5}`caaZi6UQ+<U#Ǔb_db^'T70Sڏ#8xns^/sguO\ &bu5Y+$`nrTH\!jyd Q|\
+1]5] 2̀SgC/ŦpݵdrƽMV]P61[F(~Qon0=6lu*9pÂEX-z?;O5fR'؄lb	gG9\Ŝ7DuR̹ޢ79L5cv"'Y--sJ9ʲ{^Uλ*eli=)r @i\MI+WƇT۽D{ƬfuLg={W[6]N'y7M	eu晟O\ˈbȆ@Ju$_gzbS>8DbvsӸ/d;;,iJC	n+wbg|;=Z&|ᷳ4+lhpso!=4`CJl{n
+5-W 9mq[\(6:DFH
+ϗIǦjWtב9?矚l>K;>nLاIKQмG;Ii)Ekh(owi
+l8MzwN+r_9f[	S
+o۷w0Jxž909+dmlZr*`
+CmwQ42Љph/l.eʮ(}qt˽*iN l
+O}x o8_'O/ыrub׏|G׏ﾅWWWTR$eug(2Q$˕WgM\?{N>kQOW?HEɀA\Jdrsc*?=~c=j8ޣޓܰzS[CN Kz|8(nAJa29>޻CƀRzU>×%Uަ%'ٵxa~Dzc"6>ʚ +BRJN(U\;z:dϻcf|صiq](``r|v.LjOgCYP/^
+UVX5()&FVjbZkwA7y(/4Z-˨bLwvJv|_;; ol8/l8_9~gX h9Kr\ܪz|TO3V6uZ1xz>F>s)+s-x>i_>1:Fޝ
+xv,ZK(|J$y=B(_T`"yK Mx@$|;s[XrX<%P=;KS/_`aѽ),ic %<5aoD*Cҋ_{ (#lfLfUDi"ʓf|kagy ~?{|þ,F׃1}>'XJ>`'AKIx(i]xHBd'UR'xF?[die%yy#N=QޖsȰoԹr`d^|DX<qO˳\AYލ-0Cd]HBssR4c:0&kn&wsC{&ID6t+\rWk
+=׽^,|ߐ'/_1-8R[㸂; 'r#yT&|yEG?R#	!&8|O ?1vJipg2W/ (ymy#g-Z7u#B L/ppMc> 1M?~^LI1-E!}Q_1rF!׉n7|C'0nnbas_"I^ޟeO=g*=mnOwkqyr/سo-,UpAU2Rct	R-f~+.hbIg#}r_AoěP8E2:,]<xD~MPSyK*ԁD&qRy3SSyF4}?ϧ|MsP5̭:z;dj=}Okjt[cb_rt6;q3(Q.q|oO݌rDH'_MIWLEzqxwGB_Urc"=>?S1W$eSlPt_x섐v5Bgܰ189,VI2,8	)~?UmJAqriMI0e|rCV:mB#dbRސ@ejLy,reiui< {x{
+{<0!,t}r^	N71s>qk%Pys+#=EmGēe{`1Ѧ-j Hgܸy%Q+;k:xad IKC0EU>'V=Z3-yc<2`l8H$33;f4a5u\&,_-#J׶<҄wQ@ZA(\CxLGjR )Rzd0䎣<z՘S
+wSד:-ds|~6 'o?쐤``34;yE>bIXyH>rE(J&EuH:;桃U6`kalMb=>{w"MoW}OT=Wf t]coeiŸQ9٥CzOǳMp}IY9?o!tQHX}`iG;|hv"iM=Qք=w[LvB8Xy;;<vv{)n2LQ>;ҶӃIo;Gnj+}rLJ9++k=1X#Y?M*6P&*iJ$#2^em:vs8QG|y{;|ܢ@n-?$JK`_'=.JWXzoߺ	>7Ѽb7vfEQ(8]6z4+yybe^xnX(~`>{ޢ1f@ kC0EYV#O!~qLgQ6Χ>1ݳNp0ؚL0iG 9\HLroth%GAXR֤mֲ@ro}T
+qEԌYVdR	 CT!ql:F8X?|	?f:`|6@K)ZuW5LQ,iHq !
+B%ծ3^W!:qj73QB7c}
+VrTPVCYsCY5lR5''xOAx'8NnN_'O%{^n0Og>xUxzaN]y:5.扼QxR^-YT[ڬ?: Fz=w.u}9j&3&1{_^UL|'9f23~4د=kGd:-
+5FUd,Fܛ$gNo(:~GYbUvh@mE++=?/RnY_P:7Ә7h| v{|Ms=&*ybV+luJؤף[T==*mV4EI:r[>[#84Yȼ}m{+}3x;ipfNeaһxD>T-OBj+ Z omg!sv#͎AΤ7^x mtJ3ɟ?9O/ٛ:^y^i{׃-o6-߫\-N&촋qtWdt_2	BϋE{'4ܧwa8q0,hw	xԾeY)+?G%^&5q	׉/cfKM1|Ȯ! 7{N%8p 	4yQ3'zsina lݛNAQ\`bFMgydCu~z02?o<i-OPf	:95vmioj|3٧!{uwfF7OkόNYF%P'V #C¿J2@Vh,H0޷LkG<jyqI
+aɳh-n77c]Y)9mFJ
+k6ťbA/%?.%I<nQZ.AiK3v+a)q~ns`  7Ἱ'.p	՗ܱN	)NkGwH)gJ8K	0j9$8z*穀nxuEa~|d8@c/8*|-U:.
+lp.%WGS8NcէM˦YM2~r,hRZBЩטC#9&GO*iiL1'gͳHtmۺ:y0N~)ꄳR#-&0>3`]m&ދ&2
+^q&;[,h>Hm.=CKw~('bU}>~[L=񟖫NBwepbp]gE6	"4oޔ\|3yg8_RmNRͫޣHAET:2AśE`ҠFU]ח/gMLϛr'\h;urtz*[al$I%kDxOnW.{E].
+Nۛ#q4T6f`z3q4}H2<{K6khCi=E+pґF;~zꐌ\pަX|HOGa8Me+:ά9 '͠O!ې5xه/0:sDyBD<g8]'uܒ~wLp	sΪ}Sࢬ9^_KT;2+g<$-@__Zٗrhypܓ?~_.<=HaMbki4$˸˂ְW)SR]['_Ek0l;a?K&vσgPeRs\r Q"=
+vaKSw?]n7'IyLYx}9(+fZ A	`ϫIIn
+Kޖ?L޽'xIo.k85](TNI@НnV
+#>CEw.<T̽x	u~2fCU-{Oɐ׍RRΆ*+Hk&DLi&s,NOD5N${YYh<6T1uܺ!'7Dyz%mqi|Ds՞+gLa
+'F$Y=75H#1~JWx^BfJ@=/eFul֢ H8xԕAF{Fxl	6)[WYl0LXdENarJy30_,íZϕB6+4's#fMlJP'a쎶G@ojO"{2k,[$0xCAE2Fv}Qɸɲ^y-l:YY:)<FdpvEї/F+["*2*#O՜׺Bb pH}(^~a#^)v2cEz$6є%}}=d?8벛b.ESDym4-]
+gOID0a<i_0nbΠ-vMǀQJ`~oRh^Xzkdhثʨ@B8l%ݱجg˺:-RrG'rxa9VjqӉPtSIM=$i#P)lG5O8Xx,}KL,0έT,Jgp⧌C_ҏ{pt'݈HTiY;gNfmVj㒢;墼oXGxR]`Y._cC&L)>>wh>44쒿2ڞxߨ$ϜT;J%kkri.siJ,la
+Y/7 Qmm%q#0fZVrfٝ_`nE]zRv){s?)&$3jDrTŴ`@ƴր6IUkmY8uJoz]1QyqI&ڟ{
+"x_iKmZ> 7z<Gz:hhuIE%{6k@KKwW6G6ܮ\)s5=GaFT dcG1:{GwB+ r.um2[-ڕx'Ռj4Q	;A~PU|
+;z,Vk}"h,gF%sa-Don,wh1TG_;V_cҵݚ]f4M?ul{gF]m@9uwM799!~w%Ӧz`D_ŮZ!]KpB>JEdi`h"rŕjh$̎& s.<^v')HȮ3 L$1{վ"/Me\nrZM]~]G
+r~Gԟɫ(;?8%P\
+9ЮPw~wJCӤBejy4λ>UkոuB|[JMDտTVAB)ɩC_֙D
+
+,"nB^#Lm`z?Rixhv#vX%3(A&1߭6~2sv?3l6Ky^4;Wf\kσZr,AR禐c\vȯg мsɒ:iA2-DgWjE:!<ٯ7BWaF$*Ye@T?AZbWEufP'aDR#xRQÛ=5SU੮2.8J+0&$#u4
+ޔεul{:A_I:%k)KLudV]Cv.F˛og-ۙPjՇKoIA;K K^HUwKu'^|ǻ/$#:2Wo&o		eS.ރvV7D7RYsc&']/2Ao ;b4݄́W"↾8<C%1V=%f=cՖ>C;x1=J `߃.m̶3ڸ4v [=6݊2m<v)\{VM#jS?pl#dHWp4-Q6Th
+#F/3TݽoSI,f\b(L̢&.cvES[ǧkvn	ͬiZHhA֫~Ү%HSh8rw
+biW:`e_:6<*E1kPkPxK"zsUZV5#y >gv6fSݣG}F@7R&F	IY
+"0.eB8+f$w=AH2҂DQ&͉փva4b{3t/R_s*I4Yj?e\Ӎ 4oi,ߖ%1)gqulZ`rހ2JK5PZ!cK^&S ͨZI8cIn1P@YzȗY5cmj	cF[c[t/'N=vmvms`7ٵk^.5li8֖D,k
+ۚb+h `s$+ص7hmiB *s]ԆuzEzU&G6cj#X*w_{`{q	[P#X(m\o0.f2TV&lU9./gU
+7N6 )blI6#n;d9ovzP{$X<Ӆ|@q?0x$ꆤS[ܜwqtcEYK! iZ*9/®_k#h}R z{zK.Ԭd@J%KlcI8p#h59i2g̎qJ  ζdVfhqs5WPjp!Ra"܂/Q)@5<
+YwLEÎmNBI+ߪ
+f{]صUq$nf'9XU*pZke(	&kE+̦S QaO6WRo-MzCpD/MMy 0bh;G]@NRgB&^yّxSu;A~.GHȌ$$i
+tܽ:Cͮwsr,Q+җt\[7VUٙ@RY~ۍui^]wAD6dkzA 6?tQ1Etm}8-CM <D~y	:Iڱ80+d8R$ȵu٨L£,1VqenQ_59C;p]DVKڤt
+X66#:F4ݯQL*3K(hV1s2&=\8.,KQDXF@}p`c
+B	6\̞/" .ĊtqbχV<(ؕ/՗R|kv|d52YvN/L(3cbnoaA%%!ibd>IӑbأIW)y+6L`澡MZ=&{0}!dqh%bX&9.bpǈm-\;;w\
+s伄V_K=^lldgIf>@Le9 I-p[6wYq a8kawc7y'V1%l{	I5:GPO<^'cij3/L;ٔO^]yuF[feb2/1u[qtz+ɪ6	Pgg*x
+FsVLYӢ
+Hy eѵqz4vcexxMlPSZuRqΛ	d
+ڜ&N ߳k#l4l^g$/H3R+iSFeNߧ'B[].ҿYo-gcˊ#̡(0a<N^XV#ߧW{@,kk6%_mNi)ܙ5Ӱn&-
+#}pQ%m"Z0Xwl9FԌhcӐk[aXb3q`gھ3oߠt3poL l%eٖfho&ݴ	%hh	װru!1mtE YIфDV(q~fnOe/tvڐNtlFY~@8Ma#3ʶ+4sv֡-ky:5Rj䵃Ҋ.ޱx@ɒ͟)s ؂hl}*%|KW Iǖ9sF
++,VaS[޿<ѫOT\R!X#uܝ-t%rS2w6=|%e``٥vm7٤L>J\^WK֛,zȔJJmn!}=*:7=7mڲV94g+ecP܉J~b،X	Ή;
+mEIA?I;*ҷ׺	4]*|Dv^[Jvt2YHq _YqjBLwd1oѩ{OEl)ZQ 4vp5odۡpHpIH]ѝC#̬۸nRzǰDD|/_2q|*w	d}i`S Uy`B1HrdU9UzgUyU#yTŦd"vT6't{mu3b@9kkƘ[mR}#l"-GP\ՇEy50^:%{XSq%9_
+}+Kkmwߪ;0{m߆Z7ۀJ9M]`.-X vYN+j˩'972*ĺ 0C{ް<!9ӊe~{b%f l 粉gwzRf~ؾ5=τ:|LTlD$y 
\ No newline at end of file
diff --git a/sites/default/files/js/js_h3YMl9d-NxA278jDXODsvVgPHYo-96eWiYmx25bgnvY.js b/sites/default/files/js/js_h3YMl9d-NxA278jDXODsvVgPHYo-96eWiYmx25bgnvY.js
new file mode 100644
index 0000000..3d845fb
--- /dev/null
+++ b/sites/default/files/js/js_h3YMl9d-NxA278jDXODsvVgPHYo-96eWiYmx25bgnvY.js
@@ -0,0 +1,8093 @@
+/*! jQuery v2.1.4 | (c) 2005, 2015 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=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,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=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.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},n.extend=n.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||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},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=s(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(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;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=s(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&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=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)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(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||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(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 H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(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 pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(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 p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),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))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),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===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(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?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.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 ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.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},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.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=ga.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=ga.selectors={cacheLength:50,createPseudo:ia,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(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===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]||ga.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]&&ga.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(ca,da).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("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.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.replace(Q," ")+" ").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()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(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),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).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:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(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]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.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?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(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 ta(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 ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(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 wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(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?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(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 wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(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]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.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(ca,da),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(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(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&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.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?n.extend(a,d):d}},e={};return d.pipe=d.then,n.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&&n.isFunction(a.promise)?e:0,g=1===f?a:n.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]&&n.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;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(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};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){
+return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.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.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.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 L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.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=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!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(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},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 offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.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=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.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(g in a)this.on(g,b,c,a[g],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=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.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,n(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=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=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=ja(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=ja(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?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(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,n.cleanData(oa(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,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.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}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.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",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.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 za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(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+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.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}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(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":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.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))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,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||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=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):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.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,n.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 Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.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 Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),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:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.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(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.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)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(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=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.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)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.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})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.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=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)),
+void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.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 n.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=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.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||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.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){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.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(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(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(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.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&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.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){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.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 cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.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 sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(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}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,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":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e: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 c&&c.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||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(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]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=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,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;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)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.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,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.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?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
+
+//     Underscore.js 1.8.3
+//     http://underscorejs.org
+//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+//     Underscore may be freely distributed under the MIT license.
+(function(){function n(n){function t(t,r,e,u,i,o){for(;i>=0&&o>i;i+=n){var a=u?u[i]:i;e=r(e,t[a],a,t)}return e}return function(r,e,u,i){e=b(e,i,4);var o=!k(r)&&m.keys(r),a=(o||r).length,c=n>0?0:a-1;return arguments.length<3&&(u=r[o?o[c]:c],c+=n),t(r,e,u,o,c,a)}}function t(n){return function(t,r,e){r=x(r,e);for(var u=O(t),i=n>0?0:u-1;i>=0&&u>i;i+=n)if(r(t[i],i,t))return i;return-1}}function r(n,t,r){return function(e,u,i){var o=0,a=O(e);if("number"==typeof i)n>0?o=i>=0?i:Math.max(i+a,o):a=i>=0?Math.min(i+1,a):i+a+1;else if(r&&i&&a)return i=r(e,u),e[i]===u?i:-1;if(u!==u)return i=t(l.call(e,o,a),m.isNaN),i>=0?i+o:-1;for(i=n>0?o:a-1;i>=0&&a>i;i+=n)if(e[i]===u)return i;return-1}}function e(n,t){var r=I.length,e=n.constructor,u=m.isFunction(e)&&e.prototype||a,i="constructor";for(m.has(n,i)&&!m.contains(t,i)&&t.push(i);r--;)i=I[r],i in n&&n[i]!==u[i]&&!m.contains(t,i)&&t.push(i)}var u=this,i=u._,o=Array.prototype,a=Object.prototype,c=Function.prototype,f=o.push,l=o.slice,s=a.toString,p=a.hasOwnProperty,h=Array.isArray,v=Object.keys,g=c.bind,y=Object.create,d=function(){},m=function(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=m),exports._=m):u._=m,m.VERSION="1.8.3";var b=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}},x=function(n,t,r){return null==n?m.identity:m.isFunction(n)?b(n,t,r):m.isObject(n)?m.matcher(n):m.property(n)};m.iteratee=function(n,t){return x(n,t,1/0)};var _=function(n,t){return function(r){var e=arguments.length;if(2>e||null==r)return r;for(var u=1;e>u;u++)for(var i=arguments[u],o=n(i),a=o.length,c=0;a>c;c++){var f=o[c];t&&r[f]!==void 0||(r[f]=i[f])}return r}},j=function(n){if(!m.isObject(n))return{};if(y)return y(n);d.prototype=n;var t=new d;return d.prototype=null,t},w=function(n){return function(t){return null==t?void 0:t[n]}},A=Math.pow(2,53)-1,O=w("length"),k=function(n){var t=O(n);return"number"==typeof t&&t>=0&&A>=t};m.each=m.forEach=function(n,t,r){t=b(t,r);var e,u;if(k(n))for(e=0,u=n.length;u>e;e++)t(n[e],e,n);else{var i=m.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},m.map=m.collect=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=Array(u),o=0;u>o;o++){var a=e?e[o]:o;i[o]=t(n[a],a,n)}return i},m.reduce=m.foldl=m.inject=n(1),m.reduceRight=m.foldr=n(-1),m.find=m.detect=function(n,t,r){var e;return e=k(n)?m.findIndex(n,t,r):m.findKey(n,t,r),e!==void 0&&e!==-1?n[e]:void 0},m.filter=m.select=function(n,t,r){var e=[];return t=x(t,r),m.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e},m.reject=function(n,t,r){return m.filter(n,m.negate(x(t)),r)},m.every=m.all=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(!t(n[o],o,n))return!1}return!0},m.some=m.any=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(t(n[o],o,n))return!0}return!1},m.contains=m.includes=m.include=function(n,t,r,e){return k(n)||(n=m.values(n)),("number"!=typeof r||e)&&(r=0),m.indexOf(n,t,r)>=0},m.invoke=function(n,t){var r=l.call(arguments,2),e=m.isFunction(t);return m.map(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})},m.pluck=function(n,t){return m.map(n,m.property(t))},m.where=function(n,t){return m.filter(n,m.matcher(t))},m.findWhere=function(n,t){return m.find(n,m.matcher(t))},m.max=function(n,t,r){var e,u,i=-1/0,o=-1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],e>i&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(u>o||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},m.min=function(n,t,r){var e,u,i=1/0,o=1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],i>e&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(o>u||1/0===u&&1/0===i)&&(i=n,o=u)});return i},m.shuffle=function(n){for(var t,r=k(n)?n:m.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=m.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},m.sample=function(n,t,r){return null==t||r?(k(n)||(n=m.values(n)),n[m.random(n.length-1)]):m.shuffle(n).slice(0,Math.max(0,t))},m.sortBy=function(n,t,r){return t=x(t,r),m.pluck(m.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={};return r=x(r,e),m.each(t,function(e,i){var o=r(e,i,t);n(u,e,o)}),u}};m.groupBy=F(function(n,t,r){m.has(n,r)?n[r].push(t):n[r]=[t]}),m.indexBy=F(function(n,t,r){n[r]=t}),m.countBy=F(function(n,t,r){m.has(n,r)?n[r]++:n[r]=1}),m.toArray=function(n){return n?m.isArray(n)?l.call(n):k(n)?m.map(n,m.identity):m.values(n):[]},m.size=function(n){return null==n?0:k(n)?n.length:m.keys(n).length},m.partition=function(n,t,r){t=x(t,r);var e=[],u=[];return m.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},m.first=m.head=m.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:m.initial(n,n.length-t)},m.initial=function(n,t,r){return l.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},m.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:m.rest(n,Math.max(0,n.length-t))},m.rest=m.tail=m.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},m.compact=function(n){return m.filter(n,m.identity)};var S=function(n,t,r,e){for(var u=[],i=0,o=e||0,a=O(n);a>o;o++){var c=n[o];if(k(c)&&(m.isArray(c)||m.isArguments(c))){t||(c=S(c,t,r));var f=0,l=c.length;for(u.length+=l;l>f;)u[i++]=c[f++]}else r||(u[i++]=c)}return u};m.flatten=function(n,t){return S(n,t,!1)},m.without=function(n){return m.difference(n,l.call(arguments,1))},m.uniq=m.unique=function(n,t,r,e){m.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=x(r,e));for(var u=[],i=[],o=0,a=O(n);a>o;o++){var c=n[o],f=r?r(c,o,n):c;t?(o&&i===f||u.push(c),i=f):r?m.contains(i,f)||(i.push(f),u.push(c)):m.contains(u,c)||u.push(c)}return u},m.union=function(){return m.uniq(S(arguments,!0,!0))},m.intersection=function(n){for(var t=[],r=arguments.length,e=0,u=O(n);u>e;e++){var i=n[e];if(!m.contains(t,i)){for(var o=1;r>o&&m.contains(arguments[o],i);o++);o===r&&t.push(i)}}return t},m.difference=function(n){var t=S(arguments,!0,!0,1);return m.filter(n,function(n){return!m.contains(t,n)})},m.zip=function(){return m.unzip(arguments)},m.unzip=function(n){for(var t=n&&m.max(n,O).length||0,r=Array(t),e=0;t>e;e++)r[e]=m.pluck(n,e);return r},m.object=function(n,t){for(var r={},e=0,u=O(n);u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},m.findIndex=t(1),m.findLastIndex=t(-1),m.sortedIndex=function(n,t,r,e){r=x(r,e,1);for(var u=r(t),i=0,o=O(n);o>i;){var a=Math.floor((i+o)/2);r(n[a])<u?i=a+1:o=a}return i},m.indexOf=r(1,m.findIndex,m.sortedIndex),m.lastIndexOf=r(-1,m.findLastIndex),m.range=function(n,t,r){null==t&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var E=function(n,t,r,e,u){if(!(e instanceof t))return n.apply(r,u);var i=j(n.prototype),o=n.apply(i,u);return m.isObject(o)?o:i};m.bind=function(n,t){if(g&&n.bind===g)return g.apply(n,l.call(arguments,1));if(!m.isFunction(n))throw new TypeError("Bind must be called on a function");var r=l.call(arguments,2),e=function(){return E(n,e,t,this,r.concat(l.call(arguments)))};return e},m.partial=function(n){var t=l.call(arguments,1),r=function(){for(var e=0,u=t.length,i=Array(u),o=0;u>o;o++)i[o]=t[o]===m?arguments[e++]:t[o];for(;e<arguments.length;)i.push(arguments[e++]);return E(n,r,this,this,i)};return r},m.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=m.bind(n[r],n);return n},m.memoize=function(n,t){var r=function(e){var u=r.cache,i=""+(t?t.apply(this,arguments):e);return m.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},m.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},m.defer=m.partial(m.delay,m,1),m.throttle=function(n,t,r){var e,u,i,o=null,a=0;r||(r={});var c=function(){a=r.leading===!1?0:m.now(),o=null,i=n.apply(e,u),o||(e=u=null)};return function(){var f=m.now();a||r.leading!==!1||(a=f);var l=t-(f-a);return e=this,u=arguments,0>=l||l>t?(o&&(clearTimeout(o),o=null),a=f,i=n.apply(e,u),o||(e=u=null)):o||r.trailing===!1||(o=setTimeout(c,l)),i}},m.debounce=function(n,t,r){var e,u,i,o,a,c=function(){var f=m.now()-o;t>f&&f>=0?e=setTimeout(c,t-f):(e=null,r||(a=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,o=m.now();var f=r&&!e;return e||(e=setTimeout(c,t)),f&&(a=n.apply(i,u),i=u=null),a}},m.wrap=function(n,t){return m.partial(t,n)},m.negate=function(n){return function(){return!n.apply(this,arguments)}},m.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},m.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},m.before=function(n,t){var r;return function(){return--n>0&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}},m.once=m.partial(m.before,2);var M=!{toString:null}.propertyIsEnumerable("toString"),I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];m.keys=function(n){if(!m.isObject(n))return[];if(v)return v(n);var t=[];for(var r in n)m.has(n,r)&&t.push(r);return M&&e(n,t),t},m.allKeys=function(n){if(!m.isObject(n))return[];var t=[];for(var r in n)t.push(r);return M&&e(n,t),t},m.values=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},m.mapObject=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=u.length,o={},a=0;i>a;a++)e=u[a],o[e]=t(n[e],e,n);return o},m.pairs=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},m.invert=function(n){for(var t={},r=m.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},m.functions=m.methods=function(n){var t=[];for(var r in n)m.isFunction(n[r])&&t.push(r);return t.sort()},m.extend=_(m.allKeys),m.extendOwn=m.assign=_(m.keys),m.findKey=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=0,o=u.length;o>i;i++)if(e=u[i],t(n[e],e,n))return e},m.pick=function(n,t,r){var e,u,i={},o=n;if(null==o)return i;m.isFunction(t)?(u=m.allKeys(o),e=b(t,r)):(u=S(arguments,!1,!1,1),e=function(n,t,r){return t in r},o=Object(o));for(var a=0,c=u.length;c>a;a++){var f=u[a],l=o[f];e(l,f,o)&&(i[f]=l)}return i},m.omit=function(n,t,r){if(m.isFunction(t))t=m.negate(t);else{var e=m.map(S(arguments,!1,!1,1),String);t=function(n,t){return!m.contains(e,t)}}return m.pick(n,t,r)},m.defaults=_(m.allKeys,!0),m.create=function(n,t){var r=j(n);return t&&m.extendOwn(r,t),r},m.clone=function(n){return m.isObject(n)?m.isArray(n)?n.slice():m.extend({},n):n},m.tap=function(n,t){return t(n),n},m.isMatch=function(n,t){var r=m.keys(t),e=r.length;if(null==n)return!e;for(var u=Object(n),i=0;e>i;i++){var o=r[i];if(t[o]!==u[o]||!(o in u))return!1}return!0};var N=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof m&&(n=n._wrapped),t instanceof m&&(t=t._wrapped);var u=s.call(n);if(u!==s.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof t)return!1;var o=n.constructor,a=t.constructor;if(o!==a&&!(m.isFunction(o)&&o instanceof o&&m.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t)return!1}r=r||[],e=e||[];for(var c=r.length;c--;)if(r[c]===n)return e[c]===t;if(r.push(n),e.push(t),i){if(c=n.length,c!==t.length)return!1;for(;c--;)if(!N(n[c],t[c],r,e))return!1}else{var f,l=m.keys(n);if(c=l.length,m.keys(t).length!==c)return!1;for(;c--;)if(f=l[c],!m.has(t,f)||!N(n[f],t[f],r,e))return!1}return r.pop(),e.pop(),!0};m.isEqual=function(n,t){return N(n,t)},m.isEmpty=function(n){return null==n?!0:k(n)&&(m.isArray(n)||m.isString(n)||m.isArguments(n))?0===n.length:0===m.keys(n).length},m.isElement=function(n){return!(!n||1!==n.nodeType)},m.isArray=h||function(n){return"[object Array]"===s.call(n)},m.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},m.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(n){m["is"+n]=function(t){return s.call(t)==="[object "+n+"]"}}),m.isArguments(arguments)||(m.isArguments=function(n){return m.has(n,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(m.isFunction=function(n){return"function"==typeof n||!1}),m.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},m.isNaN=function(n){return m.isNumber(n)&&n!==+n},m.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===s.call(n)},m.isNull=function(n){return null===n},m.isUndefined=function(n){return n===void 0},m.has=function(n,t){return null!=n&&p.call(n,t)},m.noConflict=function(){return u._=i,this},m.identity=function(n){return n},m.constant=function(n){return function(){return n}},m.noop=function(){},m.property=w,m.propertyOf=function(n){return null==n?function(){}:function(t){return n[t]}},m.matcher=m.matches=function(n){return n=m.extendOwn({},n),function(t){return m.isMatch(t,n)}},m.times=function(n,t,r){var e=Array(Math.max(0,n));t=b(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},m.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},m.now=Date.now||function(){return(new Date).getTime()};var B={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},T=m.invert(B),R=function(n){var t=function(t){return n[t]},r="(?:"+m.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};m.escape=R(B),m.unescape=R(T),m.result=function(n,t,r){var e=null==n?void 0:n[t];return e===void 0&&(e=r),m.isFunction(e)?e.call(n):e};var q=0;m.uniqueId=function(n){var t=++q+"";return n?n+t:t},m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var K=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\u2028|\u2029/g,L=function(n){return"\\"+z[n]};m.template=function(n,t,r){!t&&r&&(t=r),t=m.defaults({},t,m.templateSettings);var e=RegExp([(t.escape||K).source,(t.interpolate||K).source,(t.evaluate||K).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,o,a){return i+=n.slice(u,a).replace(D,L),u=a+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":o&&(i+="';\n"+o+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var o=new Function(t.variable||"obj","_",i)}catch(a){throw a.source=i,a}var c=function(n){return o.call(this,n,m)},f=t.variable||"obj";return c.source="function("+f+"){\n"+i+"}",c},m.chain=function(n){var t=m(n);return t._chain=!0,t};var P=function(n,t){return n._chain?m(t).chain():t};m.mixin=function(n){m.each(m.functions(n),function(t){var r=m[t]=n[t];m.prototype[t]=function(){var n=[this._wrapped];return f.apply(n,arguments),P(this,r.apply(m,n))}})},m.mixin(m),m.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=o[n];m.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],P(this,r)}}),m.each(["concat","join","slice"],function(n){var t=o[n];m.prototype[n]=function(){return P(this,t.apply(this._wrapped,arguments))}}),m.prototype.value=function(){return this._wrapped},m.prototype.valueOf=m.prototype.toJSON=m.prototype.value,m.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return m})}).call(this);
+
+(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h<u;h++){t=o[h];if(a=this._events[t]){this._events[t]=s=[];if(e||r){for(l=0,f=a.length;l<f;l++){n=a[l];if(e&&e!==n.callback&&e!==n.callback._callback||r&&r!==n.context){s.push(n)}}}if(!s.length)delete this._events[t]}}return this},trigger:function(t){if(!this._events)return this;var e=o.call(arguments,1);if(!c(this,"trigger",t,e))return this;var i=this._events[t];var r=this._events.all;if(i)f(i,e);if(r)f(r,arguments);return this},stopListening:function(t,e,r){var s=this._listeningTo;if(!s)return this;var n=!e&&!r;if(!r&&typeof e==="object")r=this;if(t)(s={})[t._listenId]=t;for(var a in s){t=s[a];t.off(e,r,this);if(n||i.isEmpty(t._events))delete this._listeningTo[a]}return this}};var l=/\s+/;var c=function(t,e,i,r){if(!i)return true;if(typeof i==="object"){for(var s in i){t[e].apply(t,[s,i[s]].concat(r))}return false}if(l.test(i)){var n=i.split(l);for(var a=0,o=n.length;a<o;a++){t[e].apply(t,[n[a]].concat(r))}return false}return true};var f=function(t,e){var i,r=-1,s=t.length,n=e[0],a=e[1],o=e[2];switch(e.length){case 0:while(++r<s)(i=t[r]).callback.call(i.ctx);return;case 1:while(++r<s)(i=t[r]).callback.call(i.ctx,n);return;case 2:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a);return;case 3:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a,o);return;default:while(++r<s)(i=t[r]).callback.apply(i.ctx,e);return}};var d={listenTo:"on",listenToOnce:"once"};i.each(d,function(t,e){u[e]=function(e,r,s){var n=this._listeningTo||(this._listeningTo={});var a=e._listenId||(e._listenId=i.uniqueId("l"));n[a]=e;if(!s&&typeof r==="object")s=this;e[t](r,s,this);return this}});u.bind=u.on;u.unbind=u.off;i.extend(e,u);var p=e.Model=function(t,e){var r=t||{};e||(e={});this.cid=i.uniqueId("c");this.attributes={};if(e.collection)this.collection=e.collection;if(e.parse)r=this.parse(r,e)||{};r=i.defaults({},r,i.result(this,"defaults"));this.set(r,e);this.changed={};this.initialize.apply(this,arguments)};i.extend(p.prototype,u,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(t){return i.clone(this.attributes)},sync:function(){return e.sync.apply(this,arguments)},get:function(t){return this.attributes[t]},escape:function(t){return i.escape(this.get(t))},has:function(t){return this.get(t)!=null},set:function(t,e,r){var s,n,a,o,h,u,l,c;if(t==null)return this;if(typeof t==="object"){n=t;r=e}else{(n={})[t]=e}r||(r={});if(!this._validate(n,r))return false;a=r.unset;h=r.silent;o=[];u=this._changing;this._changing=true;if(!u){this._previousAttributes=i.clone(this.attributes);this.changed={}}c=this.attributes,l=this._previousAttributes;if(this.idAttribute in n)this.id=n[this.idAttribute];for(s in n){e=n[s];if(!i.isEqual(c[s],e))o.push(s);if(!i.isEqual(l[s],e)){this.changed[s]=e}else{delete this.changed[s]}a?delete c[s]:c[s]=e}if(!h){if(o.length)this._pending=r;for(var f=0,d=o.length;f<d;f++){this.trigger("change:"+o[f],this,c[o[f]],r)}}if(u)return this;if(!h){while(this._pending){r=this._pending;this._pending=false;this.trigger("change",this,r)}}this._pending=false;this._changing=false;return this},unset:function(t,e){return this.set(t,void 0,i.extend({},e,{unset:true}))},clear:function(t){var e={};for(var r in this.attributes)e[r]=void 0;return this.set(e,i.extend({},t,{unset:true}))},hasChanged:function(t){if(t==null)return!i.isEmpty(this.changed);return i.has(this.changed,t)},changedAttributes:function(t){if(!t)return this.hasChanged()?i.clone(this.changed):false;var e,r=false;var s=this._changing?this._previousAttributes:this.attributes;for(var n in t){if(i.isEqual(s[n],e=t[n]))continue;(r||(r={}))[n]=e}return r},previous:function(t){if(t==null||!this._previousAttributes)return null;return this._previousAttributes[t]},previousAttributes:function(){return i.clone(this._previousAttributes)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=this;var r=t.success;t.success=function(i){if(!e.set(e.parse(i,t),t))return false;if(r)r(e,i,t);e.trigger("sync",e,i,t)};q(this,t);return this.sync("read",this,t)},save:function(t,e,r){var s,n,a,o=this.attributes;if(t==null||typeof t==="object"){s=t;r=e}else{(s={})[t]=e}r=i.extend({validate:true},r);if(s&&!r.wait){if(!this.set(s,r))return false}else{if(!this._validate(s,r))return false}if(s&&r.wait){this.attributes=i.extend({},o,s)}if(r.parse===void 0)r.parse=true;var h=this;var u=r.success;r.success=function(t){h.attributes=o;var e=h.parse(t,r);if(r.wait)e=i.extend(s||{},e);if(i.isObject(e)&&!h.set(e,r)){return false}if(u)u(h,t,r);h.trigger("sync",h,t,r)};q(this,r);n=this.isNew()?"create":r.patch?"patch":"update";if(n==="patch")r.attrs=s;a=this.sync(n,this,r);if(s&&r.wait)this.attributes=o;return a},destroy:function(t){t=t?i.clone(t):{};var e=this;var r=t.success;var s=function(){e.trigger("destroy",e,e.collection,t)};t.success=function(i){if(t.wait||e.isNew())s();if(r)r(e,i,t);if(!e.isNew())e.trigger("sync",e,i,t)};if(this.isNew()){t.success();return false}q(this,t);var n=this.sync("delete",this,t);if(!t.wait)s();return n},url:function(){var t=i.result(this,"urlRoot")||i.result(this.collection,"url")||M();if(this.isNew())return t;return t.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(t,e){return t},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return this._validate({},i.extend(t||{},{validate:true}))},_validate:function(t,e){if(!e.validate||!this.validate)return true;t=i.extend({},this.attributes,t);var r=this.validationError=this.validate(t,e)||null;if(!r)return true;this.trigger("invalid",this,r,i.extend(e,{validationError:r}));return false}});var v=["keys","values","pairs","invert","pick","omit"];i.each(v,function(t){p.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.attributes);return i[t].apply(i,e)}});var g=e.Collection=function(t,e){e||(e={});if(e.model)this.model=e.model;if(e.comparator!==void 0)this.comparator=e.comparator;this._reset();this.initialize.apply(this,arguments);if(t)this.reset(t,i.extend({silent:true},e))};var m={add:true,remove:true,merge:true};var y={add:true,remove:false};i.extend(g.prototype,u,{model:p,initialize:function(){},toJSON:function(t){return this.map(function(e){return e.toJSON(t)})},sync:function(){return e.sync.apply(this,arguments)},add:function(t,e){return this.set(t,i.extend({merge:false},e,y))},remove:function(t,e){var r=!i.isArray(t);t=r?[t]:i.clone(t);e||(e={});var s,n,a,o;for(s=0,n=t.length;s<n;s++){o=t[s]=this.get(t[s]);if(!o)continue;delete this._byId[o.id];delete this._byId[o.cid];a=this.indexOf(o);this.models.splice(a,1);this.length--;if(!e.silent){e.index=a;o.trigger("remove",o,this,e)}this._removeReference(o,e)}return r?t[0]:t},set:function(t,e){e=i.defaults({},e,m);if(e.parse)t=this.parse(t,e);var r=!i.isArray(t);t=r?t?[t]:[]:i.clone(t);var s,n,a,o,h,u,l;var c=e.at;var f=this.model;var d=this.comparator&&c==null&&e.sort!==false;var v=i.isString(this.comparator)?this.comparator:null;var g=[],y=[],_={};var b=e.add,w=e.merge,x=e.remove;var E=!d&&b&&x?[]:false;for(s=0,n=t.length;s<n;s++){h=t[s]||{};if(h instanceof p){a=o=h}else{a=h[f.prototype.idAttribute||"id"]}if(u=this.get(a)){if(x)_[u.cid]=true;if(w){h=h===o?o.attributes:h;if(e.parse)h=u.parse(h,e);u.set(h,e);if(d&&!l&&u.hasChanged(v))l=true}t[s]=u}else if(b){o=t[s]=this._prepareModel(h,e);if(!o)continue;g.push(o);this._addReference(o,e)}o=u||o;if(E&&(o.isNew()||!_[o.id]))E.push(o);_[o.id]=true}if(x){for(s=0,n=this.length;s<n;++s){if(!_[(o=this.models[s]).cid])y.push(o)}if(y.length)this.remove(y,e)}if(g.length||E&&E.length){if(d)l=true;this.length+=g.length;if(c!=null){for(s=0,n=g.length;s<n;s++){this.models.splice(c+s,0,g[s])}}else{if(E)this.models.length=0;var k=E||g;for(s=0,n=k.length;s<n;s++){this.models.push(k[s])}}}if(l)this.sort({silent:true});if(!e.silent){for(s=0,n=g.length;s<n;s++){(o=g[s]).trigger("add",o,this,e)}if(l||E&&E.length)this.trigger("sort",this,e)}return r?t[0]:t},reset:function(t,e){e||(e={});for(var r=0,s=this.models.length;r<s;r++){this._removeReference(this.models[r],e)}e.previousModels=this.models;this._reset();t=this.add(t,i.extend({silent:true},e));if(!e.silent)this.trigger("reset",this,e);return t},push:function(t,e){return this.add(t,i.extend({at:this.length},e))},pop:function(t){var e=this.at(this.length-1);this.remove(e,t);return e},unshift:function(t,e){return this.add(t,i.extend({at:0},e))},shift:function(t){var e=this.at(0);this.remove(e,t);return e},slice:function(){return o.apply(this.models,arguments)},get:function(t){if(t==null)return void 0;return this._byId[t]||this._byId[t.id]||this._byId[t.cid]},at:function(t){return this.models[t]},where:function(t,e){if(i.isEmpty(t))return e?void 0:[];return this[e?"find":"filter"](function(e){for(var i in t){if(t[i]!==e.get(i))return false}return true})},findWhere:function(t){return this.where(t,true)},sort:function(t){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");t||(t={});if(i.isString(this.comparator)||this.comparator.length===1){this.models=this.sortBy(this.comparator,this)}else{this.models.sort(i.bind(this.comparator,this))}if(!t.silent)this.trigger("sort",this,t);return this},pluck:function(t){return i.invoke(this.models,"get",t)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=t.success;var r=this;t.success=function(i){var s=t.reset?"reset":"set";r[s](i,t);if(e)e(r,i,t);r.trigger("sync",r,i,t)};q(this,t);return this.sync("read",this,t)},create:function(t,e){e=e?i.clone(e):{};if(!(t=this._prepareModel(t,e)))return false;if(!e.wait)this.add(t,e);var r=this;var s=e.success;e.success=function(t,i){if(e.wait)r.add(t,e);if(s)s(t,i,e)};t.save(null,e);return t},parse:function(t,e){return t},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0;this.models=[];this._byId={}},_prepareModel:function(t,e){if(t instanceof p)return t;e=e?i.clone(e):{};e.collection=this;var r=new this.model(t,e);if(!r.validationError)return r;this.trigger("invalid",this,r.validationError,e);return false},_addReference:function(t,e){this._byId[t.cid]=t;if(t.id!=null)this._byId[t.id]=t;if(!t.collection)t.collection=this;t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){if(this===t.collection)delete t.collection;t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,i,r){if((t==="add"||t==="remove")&&i!==this)return;if(t==="destroy")this.remove(e,r);if(e&&t==="change:"+e.idAttribute){delete this._byId[e.previous(e.idAttribute)];if(e.id!=null)this._byId[e.id]=e}this.trigger.apply(this,arguments)}});var _=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];i.each(_,function(t){g.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.models);return i[t].apply(i,e)}});var b=["groupBy","countBy","sortBy","indexBy"];i.each(b,function(t){g.prototype[t]=function(e,r){var s=i.isFunction(e)?e:function(t){return t.get(e)};return i[t](this.models,s,r)}});var w=e.View=function(t){this.cid=i.uniqueId("view");t||(t={});i.extend(this,i.pick(t,E));this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()};var x=/^(\S+)\s*(.*)$/;var E=["model","collection","el","id","attributes","className","tagName","events"];i.extend(w.prototype,u,{tagName:"div",$:function(t){return this.$el.find(t)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();this.stopListening();return this},setElement:function(t,i){if(this.$el)this.undelegateEvents();this.$el=t instanceof e.$?t:e.$(t);this.el=this.$el[0];if(i!==false)this.delegateEvents();return this},delegateEvents:function(t){if(!(t||(t=i.result(this,"events"))))return this;this.undelegateEvents();for(var e in t){var r=t[e];if(!i.isFunction(r))r=this[t[e]];if(!r)continue;var s=e.match(x);var n=s[1],a=s[2];r=i.bind(r,this);n+=".delegateEvents"+this.cid;if(a===""){this.$el.on(n,r)}else{this.$el.on(n,a,r)}}return this},undelegateEvents:function(){this.$el.off(".delegateEvents"+this.cid);return this},_ensureElement:function(){if(!this.el){var t=i.extend({},i.result(this,"attributes"));if(this.id)t.id=i.result(this,"id");if(this.className)t["class"]=i.result(this,"className");var r=e.$("<"+i.result(this,"tagName")+">").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('<iframe src="javascript:0" tabindex="-1">');this.iframe=a.hide().appendTo("body")[0].contentWindow;this.navigate(r)}if(this._hasPushState){e.$(window).on("popstate",this.checkUrl)}else if(this._wantsHashChange&&"onhashchange"in window&&!n){e.$(window).on("hashchange",this.checkUrl)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}this.fragment=r;var o=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){this.fragment=this.getFragment(null,true);this.location.replace(this.root+"#"+this.fragment);return true}else if(this._hasPushState&&this.atRoot()&&o.hash){this.fragment=this.getHash().replace(R,"");this.history.replaceState({},document.title,this.root+this.fragment)}}if(!this.options.silent)return this.loadUrl()},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl);if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);N.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getFragment(this.getHash(this.iframe))}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){t=this.fragment=this.getFragment(t);return i.any(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!N.started)return false;if(!e||e===true)e={trigger:!!e};var i=this.root+(t=this.getFragment(t||""));t=t.replace(j,"");if(this.fragment===t)return;this.fragment=t;if(t===""&&i!=="/")i=i.slice(0,-1);if(this._hasPushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,i)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getFragment(this.getHash(this.iframe))){if(!e.replace)this.iframe.document.open().close();this._updateHash(this.iframe.location,t,e.replace)}}else{return this.location.assign(i)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new N;var U=function(t,e){var r=this;var s;if(t&&i.has(t,"constructor")){s=t.constructor}else{s=function(){return r.apply(this,arguments)}}i.extend(s,r,e);var n=function(){this.constructor=s};n.prototype=r.prototype;s.prototype=new n;if(t)i.extend(s.prototype,t);s.__super__=r.prototype;return s};p.extend=g.extend=$.extend=w.extend=N.extend=U;var M=function(){throw new Error('A "url" property or function must be specified')};var q=function(t,e){var i=e.error;e.error=function(r){if(i)i(t,r,e);t.trigger("error",t,r,e)}};return e});
+
+/*!
+ * jQuery Once v2.0.1 - http://github.com/robloach/jquery-once
+ * @license MIT, GPL-2.0
+ *   http://opensource.org/licenses/MIT
+ *   http://opensource.org/licenses/GPL-2.0
+ */
+(function(e){"use strict";if(typeof exports==="object"){e(require("jquery"))}else if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){"use strict";var n=function(e){e=e||"once";if(typeof e!=="string"){throw new Error("The jQuery Once id parameter must be a string")}return e};e.fn.once=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)!==true}).data(r,true)};e.fn.removeOnce=function(e){return this.findOnce(e).removeData("jquery-once-"+n(e))};e.fn.findOnce=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)===true})}});
+
+/**
+ * Base framework for Drupal-specific JavaScript, behaviors, and settings.
+ */
+window.Drupal = {behaviors: {}};
+
+// Class indicating that JS is enabled; used for styling purpose.
+document.documentElement.className += ' js';
+
+// Allow other JavaScript libraries to use $.
+if (window.jQuery) {
+  jQuery.noConflict();
+}
+
+// JavaScript should be made compatible with libraries other than jQuery by
+// wrapping it in an anonymous closure.
+(function (domready, Drupal, drupalSettings, drupalTranslations) {
+
+  "use strict";
+
+  /**
+   * Custom error type thrown after attach/detach if one or more behaviors failed.
+   *
+   * @param list
+   *   An array of errors thrown during attach/detach.
+   * @param event
+   *   A string containing either 'attach' or 'detach'.
+   */
+  function DrupalBehaviorError(list, event) {
+    this.name = 'DrupalBehaviorError';
+    this.event = event || 'attach';
+    this.list = list;
+    // Makes the list of errors readable.
+    var messageList = [];
+    messageList.push(this.event);
+    var il = this.list.length;
+    for (var i = 0; i < il; i++) {
+      messageList.push(this.list[i].behavior + ': ' + this.list[i].error.message);
+    }
+    this.message = messageList.join(' ; ');
+  }
+
+  DrupalBehaviorError.prototype = new Error();
+
+  /**
+   * Attach all registered behaviors to a page element.
+   *
+   * Behaviors are event-triggered actions that attach to page elements, enhancing
+   * default non-JavaScript UIs. Behaviors are registered in the Drupal.behaviors
+   * object using the method 'attach' and optionally also 'detach' as follows:
+   * @code
+   *    Drupal.behaviors.behaviorName = {
+   *      attach: function (context, settings) {
+   *        ...
+   *      },
+   *      detach: function (context, settings, trigger) {
+   *        ...
+   *      }
+   *    };
+   * @endcode
+   *
+   * Drupal.attachBehaviors is added below to the jQuery.ready event and therefore
+   * runs on initial page load. Developers implementing Ajax in their solutions
+   * should also call this function after new page content has been loaded,
+   * feeding in an element to be processed, in order to attach all behaviors to
+   * the new content.
+   *
+   * Behaviors should use
+   * @code
+   *   var elements = $(context).find(selector).once('behavior-name');
+   * @endcode
+   * to ensure the behavior is attached only once to a given element. (Doing so
+   * enables the reprocessing of given elements, which may be needed on occasion
+   * despite the ability to limit behavior attachment to a particular element.)
+   *
+   * @param context
+   *   An element to attach behaviors to. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none is given,
+   *   the global drupalSettings object is used.
+   */
+  Drupal.attachBehaviors = function (context, settings) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].attach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].attach(context, settings);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'attach');
+    }
+  };
+
+  // Attach all behaviors.
+  domready(function () { Drupal.attachBehaviors(document, drupalSettings); });
+
+  /**
+   * Detach registered behaviors from a page element.
+   *
+   * Developers implementing AHAH/Ajax in their solutions should call this
+   * function before page content is about to be removed, feeding in an element
+   * to be processed, in order to allow special behaviors to detach from the
+   * content.
+   *
+   * Such implementations should use .findOnce() and .removeOnce() to find
+   * elements with their corresponding Drupal.behaviors.behaviorName.attach
+   * implementation, i.e. .removeOnce('behaviorName'), to ensure the behavior is
+   * detached only from previously processed elements.
+   *
+   * @param context
+   *   An element to detach behaviors from. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none given, the
+   *   global drupalSettings object is used.
+   * @param trigger
+   *   A string containing what's causing the behaviors to be detached. The
+   *   possible triggers are:
+   *   - unload: (default) The context element is being removed from the DOM.
+   *   - move: The element is about to be moved within the DOM (for example,
+   *     during a tabledrag row swap). After the move is completed,
+   *     Drupal.attachBehaviors() is called, so that the behavior can undo
+   *     whatever it did in response to the move. Many behaviors won't need to
+   *     do anything simply in response to the element being moved, but because
+   *     IFRAME elements reload their "src" when being moved within the DOM,
+   *     behaviors bound to IFRAME elements (like WYSIWYG editors) may need to
+   *     take some action.
+   *   - serialize: When an Ajax form is submitted, this is called with the
+   *     form as the context. This provides every behavior within the form an
+   *     opportunity to ensure that the field elements have correct content
+   *     in them before the form is serialized. The canonical use-case is so
+   *     that WYSIWYG editors can update the hidden textarea to which they are
+   *     bound.
+   *
+   * @see Drupal.attachBehaviors
+   */
+  Drupal.detachBehaviors = function (context, settings, trigger) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    trigger = trigger || 'unload';
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].detach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].detach(context, settings, trigger);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'detach:' + trigger);
+    }
+  };
+
+  /**
+   * Helper to test document width for mobile configurations.
+   * @todo Temporary solution for the mobile initiative.
+   */
+  Drupal.checkWidthBreakpoint = function (width) {
+    width = width || drupalSettings.widthBreakpoint || 640;
+    return (document.documentElement.clientWidth > width);
+  };
+
+  /**
+   * Encode special characters in a plain-text string for display as HTML.
+   *
+   * @param str
+   *   The string to be encoded.
+   * @return
+   *   The encoded string.
+   * @ingroup sanitization
+   */
+  Drupal.checkPlain = function (str) {
+    str = str.toString()
+      .replace(/&/g, '&amp;')
+      .replace(/"/g, '&quot;')
+      .replace(/</g, '&lt;')
+      .replace(/>/g, '&gt;');
+    return str;
+  };
+
+  /**
+   * Replace placeholders with sanitized values in a string.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   An object of replacements pairs to make. Incidences of any key in this
+   *   array are replaced with the corresponding value. Based on the first
+   *   character of the key, the value is escaped and/or themed:
+   *    - !variable: inserted as is
+   *    - @variable: escape plain text to HTML (Drupal.checkPlain)
+   *    - %variable: escape text and theme as a placeholder for user-submitted
+   *      content (checkPlain + Drupal.theme('placeholder'))
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   *
+   * @see Drupal.t()
+   * @ingroup sanitization
+   */
+  Drupal.formatString = function (str, args) {
+    // Keep args intact.
+    var processedArgs = {};
+    // Transform arguments before inserting them.
+    for (var key in args) {
+      if (args.hasOwnProperty(key)) {
+        switch (key.charAt(0)) {
+          // Escaped only.
+          case '@':
+            processedArgs[key] = Drupal.checkPlain(args[key]);
+            break;
+          // Pass-through.
+          case '!':
+            processedArgs[key] = args[key];
+            break;
+          // Escaped and placeholder.
+          default:
+            processedArgs[key] = Drupal.theme('placeholder', args[key]);
+            break;
+        }
+      }
+    }
+
+    return Drupal.stringReplace(str, processedArgs, null);
+  };
+
+  /**
+   * Replace substring.
+   *
+   * The longest keys will be tried first. Once a substring has been replaced,
+   * its new value will not be searched again.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   Key-value pairs.
+   * @param {Array|null} keys
+   *   Array of keys from the "args".  Internal use only.
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   */
+  Drupal.stringReplace = function (str, args, keys) {
+    if (str.length === 0) {
+      return str;
+    }
+
+    // If the array of keys is not passed then collect the keys from the args.
+    if (!Array.isArray(keys)) {
+      keys = [];
+      for (var k in args) {
+        if (args.hasOwnProperty(k)) {
+          keys.push(k);
+        }
+      }
+
+      // Order the keys by the character length. The shortest one is the first.
+      keys.sort(function (a, b) { return a.length - b.length; });
+    }
+
+    if (keys.length === 0) {
+      return str;
+    }
+
+    // Take next longest one from the end.
+    var key = keys.pop();
+    var fragments = str.split(key);
+
+    if (keys.length) {
+      for (var i = 0; i < fragments.length; i++) {
+        // Process each fragment with a copy of remaining keys.
+        fragments[i] = Drupal.stringReplace(fragments[i], args, keys.slice(0));
+      }
+    }
+
+    return fragments.join(args[key]);
+  };
+
+  /**
+   * Translate strings to the page language or a given language.
+   *
+   * See the documentation of the server-side t() function for further details.
+   *
+   * @param str
+   *   A string containing the English string to translate.
+   * @param args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *
+   * @param options
+   *   - 'context' (defaults to the empty context): The context the source string
+   *     belongs to.
+   *
+   * @return
+   *   The translated string.
+   */
+  Drupal.t = function (str, args, options) {
+    options = options || {};
+    options.context = options.context || '';
+
+    // Fetch the localized version of the string.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.strings && drupalTranslations.strings[options.context] && drupalTranslations.strings[options.context][str]) {
+      str = drupalTranslations.strings[options.context][str];
+    }
+
+    if (args) {
+      str = Drupal.formatString(str, args);
+    }
+    return str;
+  };
+
+  /**
+   * Returns the URL to a Drupal page.
+   */
+  Drupal.url = function (path) {
+    return drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + path;
+  };
+
+  /**
+   * Format a string containing a count of items.
+   *
+   * This function ensures that the string is pluralized correctly. Since
+   * Drupal.t() is called by this function, make sure not to pass
+   * already-localized strings to it.
+   *
+   * See the documentation of the server-side
+   * \Drupal\Core\StringTranslation\TranslationInterface::formatPlural()
+   * function for more details.
+   *
+   * @param {Number} count
+   *   The item count to display.
+   * @param {String} singular
+   *   The string for the singular case. Please make sure it is clear this is
+   *   singular, to ease translation (e.g. use "1 new comment" instead of "1
+   *   new"). Do not use @count in the singular string.
+   * @param {String} plural
+   *   The string for the plural case. Please make sure it is clear this is
+   *   plural, to ease translation. Use @count in place of the item count, as in
+   *   "@count new comments".
+   * @param {Object} args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *   Note that you do not need to include @count in this array.
+   *   This replacement is done automatically for the plural case.
+   * @param {Object} options
+   *   The options to pass to the Drupal.t() function.
+   *
+   * @return {String}
+   *   A translated string.
+   */
+  Drupal.formatPlural = function (count, singular, plural, args, options) {
+    args = args || {};
+    args['@count'] = count;
+
+    var pluralDelimiter = drupalSettings.pluralDelimiter;
+    var translations = Drupal.t(singular + pluralDelimiter + plural, args, options).split(pluralDelimiter);
+    var index = 0;
+
+    // Determine the index of the plural form.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.pluralFormula) {
+      index = count in drupalTranslations.pluralFormula ? drupalTranslations.pluralFormula[count] : drupalTranslations.pluralFormula['default'];
+    }
+    else if (args['@count'] !== 1) {
+      index = 1;
+    }
+
+    return translations[index];
+  };
+
+  /**
+   * Encodes a Drupal path for use in a URL.
+   *
+   * For aesthetic reasons slashes are not escaped.
+   */
+  Drupal.encodePath = function (item) {
+    return window.encodeURIComponent(item).replace(/%2F/g, '/');
+  };
+
+  /**
+   * Generate the themed representation of a Drupal object.
+   *
+   * All requests for themed output must go through this function. It examines
+   * the request and routes it to the appropriate theme function. If the current
+   * theme does not provide an override function, the generic theme function is
+   * called.
+   *
+   * For example, to retrieve the HTML for text that should be emphasized and
+   * displayed as a placeholder inside a sentence, call
+   * Drupal.theme('placeholder', text).
+   *
+   * @param func
+   *   The name of the theme function to call.
+   * @param ...
+   *   Additional arguments to pass along to the theme function.
+   * @return
+   *   Any data the theme function returns. This could be a plain HTML string,
+   *   but also a complex object.
+   */
+  Drupal.theme = function (func) {
+    var args = Array.prototype.slice.apply(arguments, [1]);
+    if (func in Drupal.theme) {
+      return Drupal.theme[func].apply(this, args);
+    }
+  };
+
+  /**
+   * Formats text for emphasized display in a placeholder inside a sentence.
+   *
+   * @param str
+   *   The text to format (plain-text).
+   * @return
+   *   The formatted text (html).
+   */
+  Drupal.theme.placeholder = function (str) {
+    return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>';
+  };
+
+})(domready, Drupal, window.drupalSettings, window.drupalTranslations);
+;
+/*!
+ * jQuery UI Core 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,r){var i,s,o,u=t.nodeName.toLowerCase();return"area"===u?(i=t.parentNode,s=i.name,!t.href||!s||i.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap='#"+s+"']")[0],!!o&&n(o))):(/^(input|select|textarea|button|object)$/.test(u)?!t.disabled:"a"===u?t.href||r:r)&&n(t)}function n(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return e.css(this,"visibility")==="hidden"}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var n=this.css("position"),r=n==="absolute",i=t?/(auto|scroll|hidden)/:/(auto|scroll)/,s=this.parents().filter(function(){var t=e(this);return r&&t.css("position")==="static"?!1:i.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return n==="fixed"||!s.length?e(this[0].ownerDocument||document):s},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(n){return t(n,!isNaN(e.attr(n,"tabindex")))},tabbable:function(n){var r=e.attr(n,"tabindex"),i=isNaN(r);return(i||r>=0)&&t(n,!i)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,n){function o(t,n,i,s){return e.each(r,function(){n-=parseFloat(e.css(t,"padding"+this))||0,i&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var r=n==="Width"?["Left","Right"]:["Top","Bottom"],i=n.toLowerCase(),s={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+n]=function(t){return t===undefined?s["inner"+n].call(this):this.each(function(){e(this).css(i,o(this,t)+"px")})},e.fn["outer"+n]=function(t,r){return typeof t!="number"?s["outer"+n].call(this,t):this.each(function(){e(this).css(i,o(this,t,!0,r)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(n,r){return typeof n=="number"?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),r&&r.call(t)},n)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(t!==undefined)return this.css("zIndex",t);if(this.length){var n=e(this[0]),r,i;while(n.length&&n[0]!==document){r=n.css("position");if(r==="absolute"||r==="relative"||r==="fixed"){i=parseInt(n.css("zIndex"),10);if(!isNaN(i)&&i!==0)return i}n=n.parent()}}return 0}}),e.ui.plugin={add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n,r){var i,s=e.plugins[t];if(!s)return;if(!r&&(!e.element[0].parentNode||e.element[0].parentNode.nodeType===11))return;for(i=0;i<s.length;i++)e.options[s[i][0]]&&s[i][1].apply(e.element,n)}}});;
+/*!
+ * jQuery UI Widget 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){var t=0,n=Array.prototype.slice;return e.cleanData=function(t){return function(n){var r,i,s;for(s=0;(i=n[s])!=null;s++)try{r=e._data(i,"events"),r&&r.remove&&e(i).triggerHandler("remove")}catch(o){}t(n)}}(e.cleanData),e.widget=function(t,n,r){var i,s,o,u,a={},f=t.split(".")[0];return t=t.split(".")[1],i=f+"-"+t,r||(r=n,n=e.Widget),e.expr[":"][i.toLowerCase()]=function(t){return!!e.data(t,i)},e[f]=e[f]||{},s=e[f][t],o=e[f][t]=function(e,t){if(!this._createWidget)return new o(e,t);arguments.length&&this._createWidget(e,t)},e.extend(o,s,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),u=new n,u.options=e.widget.extend({},u.options),e.each(r,function(t,r){if(!e.isFunction(r)){a[t]=r;return}a[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},i=function(e){return n.prototype[t].apply(this,e)};return function(){var t=this._super,n=this._superApply,s;return this._super=e,this._superApply=i,s=r.apply(this,arguments),this._super=t,this._superApply=n,s}}()}),o.prototype=e.widget.extend(u,{widgetEventPrefix:s?u.widgetEventPrefix||t:t},a,{constructor:o,namespace:f,widgetName:t,widgetFullName:i}),s?(e.each(s._childConstructors,function(t,n){var r=n.prototype;e.widget(r.namespace+"."+r.widgetName,o,n._proto)}),delete s._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){var r=n.call(arguments,1),i=0,s=r.length,o,u;for(;i<s;i++)for(o in r[i])u=r[i][o],r[i].hasOwnProperty(o)&&u!==undefined&&(e.isPlainObject(u)?t[o]=e.isPlainObject(t[o])?e.widget.extend({},t[o],u):e.widget.extend({},u):t[o]=u);return t},e.widget.bridge=function(t,r){var i=r.prototype.widgetFullName||t;e.fn[t]=function(s){var o=typeof s=="string",u=n.call(arguments,1),a=this;return o?this.each(function(){var n,r=e.data(this,i);if(s==="instance")return a=r,!1;if(!r)return e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+s+"'");if(!e.isFunction(r[s])||s.charAt(0)==="_")return e.error("no such method '"+s+"' for "+t+" widget instance");n=r[s].apply(r,u);if(n!==r&&n!==undefined)return a=n&&n.jquery?a.pushStack(n.get()):n,!1}):(u.length&&(s=e.widget.extend.apply(null,[s].concat(u))),this.each(function(){var t=e.data(this,i);t?(t.option(s||{}),t._init&&t._init()):e.data(this,i,new r(s,this))})),a}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(n,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=t++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),n),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,n){var r=t,i,s,o;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof t=="string"){r={},i=t.split("."),t=i.shift();if(i.length){s=r[t]=e.widget.extend({},this.options[t]);for(o=0;o<i.length-1;o++)s[i[o]]=s[i[o]]||{},s=s[i[o]];t=i.pop();if(arguments.length===1)return s[t]===undefined?null:s[t];s[t]=n}else{if(arguments.length===1)return this.options[t]===undefined?null:this.options[t];r[t]=n}}return this._setOptions(r),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,e==="disabled"&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,n,r){var i,s=this;typeof t!="boolean"&&(r=n,n=t,t=!1),r?(n=i=e(n),this.bindings=this.bindings.add(n)):(r=n,n=this.element,i=this.widget()),e.each(r,function(r,o){function u(){if(!t&&(s.options.disabled===!0||e(this).hasClass("ui-state-disabled")))return;return(typeof o=="string"?s[o]:o).apply(s,arguments)}typeof o!="string"&&(u.guid=o.guid=o.guid||u.guid||e.guid++);var a=r.match(/^([\w:-]*)\s*(.*)$/),f=a[1]+s.eventNamespace,l=a[2];l?i.delegate(l,f,u):n.bind(f,u)})},_off:function(t,n){n=(n||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(n).undelegate(n),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function n(){return(typeof e=="string"?r[e]:e).apply(r,arguments)}var r=this;return setTimeout(n,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,n,r){var i,s,o=this.options[t];r=r||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],s=n.originalEvent;if(s)for(i in s)i in n||(n[i]=s[i]);return this.element.trigger(n,r),!(e.isFunction(o)&&o.apply(this.element[0],[n].concat(r))===!1||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(r,i,s){typeof i=="string"&&(i={effect:i});var o,u=i?i===!0||typeof i=="number"?n:i.effect||n:t;i=i||{},typeof i=="number"&&(i={duration:i}),o=!e.isEmptyObject(i),i.complete=s,i.delay&&r.delay(i.delay),o&&e.effects&&e.effects.effect[u]?r[t](i):u!==t&&r[u]?r[u](i.duration,i.easing,s):r.queue(function(n){e(this)[t](),s&&s.call(r[0]),n()})}}),e.widget});;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module.
+ */
+
+(function ($, Drupal, drupalSettings, _, Backbone, JSON, storage) {
+
+  "use strict";
+
+  var options = $.extend(drupalSettings.contextual,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        open: Drupal.t('Open'),
+        close: Drupal.t('Close')
+      }
+    }
+  );
+
+  // Clear the cached contextual links whenever the current user's set of
+  // permissions changes.
+  var cachedPermissionsHash = storage.getItem('Drupal.contextual.permissionsHash');
+  var permissionsHash = drupalSettings.user.permissionsHash;
+  if (cachedPermissionsHash !== permissionsHash) {
+    if (typeof permissionsHash === 'string') {
+      _.chain(storage).keys().each(function (key) {
+        if (key.substring(0, 18) === 'Drupal.contextual.') {
+          storage.removeItem(key);
+        }
+      });
+    }
+    storage.setItem('Drupal.contextual.permissionsHash', permissionsHash);
+  }
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   * @param string html
+   *   The server-side rendered HTML for this contextual link.
+   */
+  function initContextual($contextual, html) {
+    var $region = $contextual.closest('.contextual-region');
+    var contextual = Drupal.contextual;
+
+    $contextual
+      // Update the placeholder to contain its rendered contextual links.
+      .html(html)
+      // Use the placeholder as a wrapper with a specific class to provide
+      // positioning and behavior attachment context.
+      .addClass('contextual')
+      // Ensure a trigger element exists before the actual contextual links.
+      .prepend(Drupal.theme('contextualTrigger'));
+
+    // Set the destination parameter on each of the contextual links.
+    var destination = 'destination=' + Drupal.encodePath(drupalSettings.path.currentPath);
+    $contextual.find('.contextual-links a').each(function () {
+      var url = this.getAttribute('href');
+      var glue = (url.indexOf('?') === -1) ? '?' : '&';
+      this.setAttribute('href', url + glue + destination);
+    });
+
+    // Create a model and the appropriate views.
+    var model = new contextual.StateModel({
+      title: $region.find('h2').eq(0).text().trim()
+    });
+    var viewOptions = $.extend({el: $contextual, model: model}, options);
+    contextual.views.push({
+      visual: new contextual.VisualView(viewOptions),
+      aural: new contextual.AuralView(viewOptions),
+      keyboard: new contextual.KeyboardView(viewOptions)
+    });
+    contextual.regionViews.push(new contextual.RegionView(
+      $.extend({el: $region, model: model}, options))
+    );
+
+    // Add the model to the collection. This must happen after the views have been
+    // associated with it, otherwise collection change event handlers can't
+    // trigger the model change event handler in its views.
+    contextual.collection.add(model);
+
+    // Let other JavaScript react to the adding of a new contextual link.
+    $(document).trigger('drupalContextualLinkAdded', {
+      $el: $contextual,
+      $region: $region,
+      model: model
+    });
+
+    // Fix visual collisions between contextual link triggers.
+    adjustIfNestedAndOverlapping($contextual);
+  }
+
+  /**
+   * Determines if a contextual link is nested & overlapping, if so: adjusts it.
+   *
+   * This only deals with two levels of nesting; deeper levels are not touched.
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   */
+  function adjustIfNestedAndOverlapping($contextual) {
+    var $contextuals = $contextual
+      // @todo confirm that .closest() is not sufficient
+      .parents('.contextual-region').eq(-1)
+      .find('.contextual');
+
+    // Early-return when there's no nesting.
+    if ($contextuals.length === 1) {
+      return;
+    }
+
+    // If the two contextual links overlap, then we move the second one.
+    var firstTop = $contextuals.eq(0).offset().top;
+    var secondTop = $contextuals.eq(1).offset().top;
+    if (firstTop === secondTop) {
+      var $nestedContextual = $contextuals.eq(1);
+
+      // Retrieve height of nested contextual link.
+      var height = 0;
+      var $trigger = $nestedContextual.find('.trigger');
+      // Elements with the .visually-hidden class have no dimensions, so this
+      // class must be temporarily removed to the calculate the height.
+      $trigger.removeClass('visually-hidden');
+      height = $nestedContextual.height();
+      $trigger.addClass('visually-hidden');
+
+      // Adjust nested contextual link's position.
+      $nestedContextual.css({top: $nestedContextual.position().top + height});
+    }
+  }
+
+  /**
+   * Attaches outline behavior for regions associated with contextual links.
+   *
+   * Events
+   *   Contextual triggers an event that can be used by other scripts.
+   *   - drupalContextualLinkAdded: Triggered when a contextual link is added.
+   */
+  Drupal.behaviors.contextual = {
+    attach: function (context) {
+      var $context = $(context);
+
+      // Find all contextual links placeholders, if any.
+      var $placeholders = $context.find('[data-contextual-id]').once('contextual-render');
+      if ($placeholders.length === 0) {
+        return;
+      }
+
+      // Collect the IDs for all contextual links placeholders.
+      var ids = [];
+      $placeholders.each(function () {
+        ids.push($(this).attr('data-contextual-id'));
+      });
+
+      // Update all contextual links placeholders whose HTML is cached.
+      var uncachedIDs = _.filter(ids, function initIfCached(contextualID) {
+        var html = storage.getItem('Drupal.contextual.' + contextualID);
+        if (html !== null) {
+          // Initialize after the current execution cycle, to make the AJAX
+          // request for retrieving the uncached contextual links as soon as
+          // possible, but also to ensure that other Drupal behaviors have had the
+          // chance to set up an event listener on the Backbone collection
+          // Drupal.contextual.collection.
+          window.setTimeout(function () {
+            initContextual($context.find('[data-contextual-id="' + contextualID + '"]'), html);
+          });
+          return false;
+        }
+        return true;
+      });
+
+      // Perform an AJAX request to let the server render the contextual links for
+      // each of the placeholders.
+      if (uncachedIDs.length > 0) {
+        $.ajax({
+          url: Drupal.url('contextual/render'),
+          type: 'POST',
+          data: {'ids[]': uncachedIDs},
+          dataType: 'json',
+          success: function (results) {
+            _.each(results, function (html, contextualID) {
+              // Store the metadata.
+              storage.setItem('Drupal.contextual.' + contextualID, html);
+              // If the rendered contextual links are empty, then the current user
+              // does not have permission to access the associated links: don't
+              // render anything.
+              if (html.length > 0) {
+                // Update the placeholders to contain its rendered contextual links.
+                // Usually there will only be one placeholder, but it's possible for
+                // multiple identical placeholders exist on the page (probably
+                // because the same content appears more than once).
+                $placeholders = $context.find('[data-contextual-id="' + contextualID + '"]');
+
+                // Initialize the contextual links.
+                for (var i = 0; i < $placeholders.length; i++) {
+                  initContextual($placeholders.eq(i), html);
+                }
+              }
+            });
+          }
+        });
+      }
+    }
+  };
+
+  Drupal.contextual = {
+    // The Drupal.contextual.View instances associated with each list element of
+    // contextual links.
+    views: [],
+
+    // The Drupal.contextual.RegionView instances associated with each contextual
+    // region element.
+    regionViews: []
+  };
+
+  // A Backbone.Collection of Drupal.contextual.StateModel instances.
+  Drupal.contextual.collection = new Backbone.Collection([], {model: Drupal.contextual.StateModel});
+
+  /**
+   * A trigger is an interactive element often bound to a click handler.
+   *
+   * @return String
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.contextualTrigger = function () {
+    return '<button class="trigger visually-hidden focusable" type="button"></button>';
+  };
+
+})(jQuery, Drupal, drupalSettings, _, Backbone, window.JSON, window.sessionStorage);
+;
+/**
+ * @file
+ * A Backbone Model for the state of a contextual link's trigger, list & region.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of a contextual link's trigger, list & region.
+   */
+  Drupal.contextual.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // The title of the entity to which these contextual links apply.
+      title: '',
+      // Represents if the contextual region is being hovered.
+      regionIsHovered: false,
+      // Represents if the contextual trigger or options have focus.
+      hasFocus: false,
+      // Represents if the contextual options for an entity are available to
+      // be selected (i.e. whether the list of options is visible).
+      isOpen: false,
+      // When the model is locked, the trigger remains active.
+      isLocked: false
+    },
+
+    /**
+     * Opens or closes the contextual link.
+     *
+     * If it is opened, then also give focus.
+     */
+    toggleOpen: function () {
+      var newIsOpen = !this.get('isOpen');
+      this.set('isOpen', newIsOpen);
+      if (newIsOpen) {
+        this.focus();
+      }
+      return this;
+    },
+
+    /**
+     * Closes this contextual link.
+     *
+     * Does not call blur() because we want to allow a contextual link to have
+     * focus, yet be closed for example when hovering.
+     */
+    close: function () {
+      this.set('isOpen', false);
+      return this;
+    },
+
+    /**
+     * Gives focus to this contextual link.
+     *
+     * Also closes + removes focus from every other contextual link.
+     */
+    focus: function () {
+      this.set('hasFocus', true);
+      var cid = this.cid;
+      this.collection.each(function (model) {
+        if (model.cid !== cid) {
+          model.close().blur();
+        }
+      });
+      return this;
+    },
+
+    /**
+     * Removes focus from this contextual link, unless it is open.
+     */
+    blur: function () {
+      if (!this.get('isOpen')) {
+        this.set('hasFocus', false);
+      }
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of a contextual link (i.e. screen reader support).
+   */
+  Drupal.contextual.AuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+
+      // Use aria-role form so that the number of items in the list is spoken.
+      this.$el.attr('role', 'form');
+
+      // Initial render.
+      this.render();
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+
+      // Set the hidden property of the links.
+      this.$el.find('.contextual-links')
+        .prop('hidden', !isOpen);
+
+      // Update the view of the trigger.
+      this.$el.find('.trigger')
+        .text(Drupal.t('@action @title configuration options', {
+          '@action': (!isOpen) ? this.options.strings.open : this.options.strings.close,
+          '@title': this.model.get('title')
+        }))
+        .attr('aria-pressed', isOpen);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides keyboard interaction for a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Provides keyboard interaction for a contextual link.
+   */
+  Drupal.contextual.KeyboardView = Backbone.View.extend({
+    events: {
+      'focus .trigger': 'focus',
+      'focus .contextual-links a': 'focus',
+      'blur .trigger': function () { this.model.blur(); },
+      'blur .contextual-links a': function () {
+        // Set up a timeout to allow a user to tab between the trigger and the
+        // contextual links without the menu dismissing.
+        var that = this;
+        this.timer = window.setTimeout(function () {
+          that.model.close().blur();
+        }, 150);
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      // The timer is used to create a delay before dismissing the contextual
+      // links on blur. This is only necessary when keyboard users tab into
+      // contextual links without edit mode (i.e. without TabbingManager).
+      // That means that if we decide to disable tabbing of contextual links
+      // without edit mode, all this timer logic can go away.
+      this.timer = NaN;
+    },
+
+    /**
+     * Sets focus on the model; Clears the timer that dismisses the links.
+     */
+    focus: function () {
+      // Clear the timeout that might have been set by blurring a link.
+      window.clearTimeout(this.timer);
+      this.model.focus();
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that renders the visual view of a contextual region element.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual region element.
+   */
+  Drupal.contextual.RegionView = Backbone.View.extend({
+
+    events: function () {
+      var mapping = {
+        mouseenter: function () { this.model.set('regionIsHovered', true); },
+        mouseleave: function () {
+          this.model.close().blur().set('regionIsHovered', false);
+        }
+      };
+      // We don't want mouse hover events on touch.
+      if (Modernizr.touch) {
+        mapping = {};
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:hasFocus', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.$el.toggleClass('focus', this.model.get('hasFocus'));
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of a contextual link.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual link. Listens to mouse & touch.
+   */
+  Drupal.contextual.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+      var mapping = {
+        'click .trigger': function () { this.model.toggleOpen(); },
+        'touchend .trigger': touchEndToClick,
+        'click .contextual-links a': function () { this.model.close().blur(); },
+        'touchend .contextual-links a': touchEndToClick
+      };
+      // We only want mouse hover events on non-touch.
+      if (!Modernizr.touch) {
+        mapping.mouseenter = function () { this.model.focus(); };
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+      // The trigger should be visible when:
+      //  - the mouse hovered over the region,
+      //  - the trigger is locked,
+      //  - and for as long as the contextual menu is open.
+      var isVisible = this.model.get('isLocked') || this.model.get('regionIsHovered') || isOpen;
+
+      this.$el
+        // The open state determines if the links are visible.
+        .toggleClass('open', isOpen)
+        // Update the visibility of the trigger.
+        .find('.trigger').toggleClass('visually-hidden', !isVisible);
+
+      // Nested contextual region handling: hide any nested contextual triggers.
+      if ('isOpen' in this.model.changed) {
+        this.$el.closest('.contextual-region')
+          .find('.contextual .trigger:not(:first)')
+          .toggle(!isOpen);
+      }
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Store the state of weight columns display for all tables.
+   * Default value is to hide weight columns.
+   */
+  var showWeight = JSON.parse(localStorage.getItem('Drupal.tableDrag.showWeight'));
+
+  /**
+   * Drag and drop table rows with field manipulation.
+   *
+   * Using the drupal_attach_tabledrag() function, any table with weights or
+   * parent relationships may be made into draggable tables. Columns containing a
+   * field may optionally be hidden, providing a better user experience.
+   *
+   * Created tableDrag instances may be modified with custom behaviors by
+   * overriding the .onDrag, .onDrop, .row.onSwap, and .row.onIndent methods.
+   * See blocks.js for an example of adding additional functionality to tableDrag.
+   */
+  Drupal.behaviors.tableDrag = {
+    attach: function (context, settings) {
+      function initTableDrag(table, base) {
+        if (table.length) {
+          // Create the new tableDrag instance. Save in the Drupal variable
+          // to allow other scripts access to the object.
+          Drupal.tableDrag[base] = new Drupal.tableDrag(table[0], settings.tableDrag[base]);
+        }
+      }
+
+      for (var base in settings.tableDrag) {
+        if (settings.tableDrag.hasOwnProperty(base)) {
+          initTableDrag($(context).find('#' + base).once('tabledrag'), base);
+        }
+      }
+    }
+  };
+
+  /**
+   * Constructor for the tableDrag object. Provides table and field manipulation.
+   *
+   * @param table
+   *   DOM object for the table to be made draggable.
+   * @param tableSettings
+   *   Settings for the table added via drupal_add_dragtable().
+   */
+  Drupal.tableDrag = function (table, tableSettings) {
+    var self = this;
+    var $table = $(table);
+
+    // Required object variables.
+    this.$table = $(table);
+    this.table = table;
+    this.tableSettings = tableSettings;
+    this.dragObject = null; // Used to hold information about a current drag operation.
+    this.rowObject = null; // Provides operations for row manipulation.
+    this.oldRowElement = null; // Remember the previous element.
+    this.oldY = 0; // Used to determine up or down direction from last mouse move.
+    this.changed = false; // Whether anything in the entire table has changed.
+    this.maxDepth = 0; // Maximum amount of allowed parenting.
+    this.rtl = $(this.table).css('direction') === 'rtl' ? -1 : 1; // Direction of the table.
+    this.striping = $(this.table).data('striping') === 1;
+
+    // Configure the scroll settings.
+    this.scrollSettings = {amount: 4, interval: 50, trigger: 70};
+    this.scrollInterval = null;
+    this.scrollY = 0;
+    this.windowHeight = 0;
+
+    // Check this table's settings to see if there are parent relationships in
+    // this table. For efficiency, large sections of code can be skipped if we
+    // don't need to track horizontal movement and indentations.
+    this.indentEnabled = false;
+    for (var group in tableSettings) {
+      if (tableSettings.hasOwnProperty(group)) {
+        for (var n in tableSettings[group]) {
+          if (tableSettings[group].hasOwnProperty(n)) {
+            if (tableSettings[group][n].relationship === 'parent') {
+              this.indentEnabled = true;
+            }
+            if (tableSettings[group][n].limit > 0) {
+              this.maxDepth = tableSettings[group][n].limit;
+            }
+          }
+        }
+      }
+    }
+    if (this.indentEnabled) {
+      this.indentCount = 1; // Total width of indents, set in makeDraggable.
+      // Find the width of indentations to measure mouse movements against.
+      // Because the table doesn't need to start with any indentations, we
+      // manually append 2 indentations in the first draggable row, measure
+      // the offset, then remove.
+      var indent = Drupal.theme('tableDragIndentation');
+      var testRow = $('<tr/>').addClass('draggable').appendTo(table);
+      var testCell = $('<td/>').appendTo(testRow).prepend(indent).prepend(indent);
+      var $indentation = testCell.find('.js-indentation');
+      this.indentAmount = $indentation.get(1).offsetLeft - $indentation.get(0).offsetLeft;
+      testRow.remove();
+    }
+
+    // Make each applicable row draggable.
+    // Match immediate children of the parent element to allow nesting.
+    $table.find('> tr.draggable, > tbody > tr.draggable').each(function () { self.makeDraggable(this); });
+
+    // Add a link before the table for users to show or hide weight columns.
+    $table.before($('<button type="button" class="link tabledrag-toggle-weight"></button>')
+      .attr('title', Drupal.t('Re-order rows by numerical weight instead of dragging.'))
+      .on('click', $.proxy(function (e) {
+        e.preventDefault();
+        this.toggleColumns();
+      }, this))
+      .wrap('<div class="tabledrag-toggle-weight-wrapper"></div>')
+      .parent()
+    );
+
+    // Initialize the specified columns (for example, weight or parent columns)
+    // to show or hide according to user preference. This aids accessibility
+    // so that, e.g., screen reader users can choose to enter weight values and
+    // manipulate form elements directly, rather than using drag-and-drop..
+    self.initColumns();
+
+    // Add event bindings to the document. The self variable is passed along
+    // as event handlers do not have direct access to the tableDrag object.
+    if (Modernizr.touch) {
+      $(document).on('touchmove', function (event) { return self.dragRow(event.originalEvent.touches[0], self); });
+      $(document).on('touchend', function (event) { return self.dropRow(event.originalEvent.touches[0], self); });
+    }
+    else {
+      $(document).on('mousemove', function (event) { return self.dragRow(event, self); });
+      $(document).on('mouseup', function (event) { return self.dropRow(event, self); });
+    }
+
+    // React to localStorage event showing or hiding weight columns.
+    $(window).on('storage', $.proxy(function (e) {
+      // Only react to 'Drupal.tableDrag.showWeight' value change.
+      if (e.originalEvent.key === 'Drupal.tableDrag.showWeight') {
+        // This was changed in another window, get the new value for this window.
+        showWeight = JSON.parse(e.originalEvent.newValue);
+        this.displayColumns(showWeight);
+      }
+    }, this));
+  };
+
+  /**
+   * Initialize columns containing form elements to be hidden by default,
+   * according to the settings for this tableDrag instance.
+   *
+   * Identify and mark each cell with a CSS class so we can easily toggle
+   * show/hide it. Finally, hide columns if user does not have a
+   * 'Drupal.tableDrag.showWeight' localStorage value.
+   */
+  Drupal.tableDrag.prototype.initColumns = function () {
+    var $table = this.$table;
+    var hidden;
+    var cell;
+    var columnIndex;
+    for (var group in this.tableSettings) {
+      if (this.tableSettings.hasOwnProperty(group)) { // Find the first field in this group.
+        for (var d in this.tableSettings[group]) {
+          if (this.tableSettings[group].hasOwnProperty(d)) {
+            var field = $table.find('.' + this.tableSettings[group][d].target).eq(0);
+            if (field.length && this.tableSettings[group][d].hidden) {
+              hidden = this.tableSettings[group][d].hidden;
+              cell = field.closest('td');
+              break;
+            }
+          }
+        }
+
+        // Mark the column containing this field so it can be hidden.
+        if (hidden && cell[0]) {
+          // Add 1 to our indexes. The nth-child selector is 1 based, not 0 based.
+          // Match immediate children of the parent element to allow nesting.
+          columnIndex = cell.parent().find('> td').index(cell.get(0)) + 1;
+          $table.find('> thead > tr, > tbody > tr, > tr').each(this.addColspanClass(columnIndex));
+        }
+      }
+    }
+    this.displayColumns(showWeight);
+  };
+
+  /**
+   * Mark cells that have colspan so we can adjust the colspan
+   * instead of hiding them altogether.
+   */
+  Drupal.tableDrag.prototype.addColspanClass = function (columnIndex) {
+    return function () {
+      // Get the columnIndex and adjust for any colspans in this row.
+      var $row = $(this);
+      var index = columnIndex;
+      var cells = $row.children();
+      var cell;
+      cells.each(function (n) {
+        if (n < index && this.colSpan && this.colSpan > 1) {
+          index -= this.colSpan - 1;
+        }
+      });
+      if (index > 0) {
+        cell = cells.filter(':nth-child(' + index + ')');
+        if (cell[0].colSpan && cell[0].colSpan > 1) {
+          // If this cell has a colspan, mark it so we can reduce the colspan.
+          cell.addClass('tabledrag-has-colspan');
+        }
+        else {
+          // Mark this cell so we can hide it.
+          cell.addClass('tabledrag-hide');
+        }
+      }
+    };
+  };
+
+  /**
+   * Hide or display weight columns. Triggers an event on change.
+   *
+   * @param bool displayWeight
+   *   'true' will show weight columns.
+   */
+  Drupal.tableDrag.prototype.displayColumns = function (displayWeight) {
+    if (displayWeight) {
+      this.showColumns();
+    }
+    // Default action is to hide columns.
+    else {
+      this.hideColumns();
+    }
+    // Trigger an event to allow other scripts to react to this display change.
+    // Force the extra parameter as a bool.
+    $('table').findOnce('tabledrag').trigger('columnschange', !!displayWeight);
+  };
+
+  /**
+   * Toggle the weight column depending on 'showWeight' value.
+   * Store only default override.
+   */
+  Drupal.tableDrag.prototype.toggleColumns = function () {
+    showWeight = !showWeight;
+    this.displayColumns(showWeight);
+    if (showWeight) {
+      // Save default override.
+      localStorage.setItem('Drupal.tableDrag.showWeight', showWeight);
+    }
+    else {
+      // Reset the value to its default.
+      localStorage.removeItem('Drupal.tableDrag.showWeight');
+    }
+  };
+
+  /**
+   * Hide the columns containing weight/parent form elements.
+   * Undo showColumns().
+   */
+  Drupal.tableDrag.prototype.hideColumns = function () {
+    var $tables = $('table').findOnce('tabledrag');
+    // Hide weight/parent cells and headers.
+    $tables.find('.tabledrag-hide').css('display', 'none');
+    // Show TableDrag handles.
+    $tables.find('.tabledrag-handle').css('display', '');
+    // Reduce the colspan of any effected multi-span columns.
+    $tables.find('.tabledrag-has-colspan').each(function () {
+      this.colSpan = this.colSpan - 1;
+    });
+    // Change link text.
+    $('.tabledrag-toggle-weight').text(Drupal.t('Show row weights'));
+  };
+
+  /**
+   * Show the columns containing weight/parent form elements
+   * Undo hideColumns().
+   */
+  Drupal.tableDrag.prototype.showColumns = function () {
+    var $tables = $('table').findOnce('tabledrag');
+    // Show weight/parent cells and headers.
+    $tables.find('.tabledrag-hide').css('display', '');
+    // Hide TableDrag handles.
+    $tables.find('.tabledrag-handle').css('display', 'none');
+    // Increase the colspan for any columns where it was previously reduced.
+    $tables.find('.tabledrag-has-colspan').each(function () {
+      this.colSpan = this.colSpan + 1;
+    });
+    // Change link text.
+    $('.tabledrag-toggle-weight').text(Drupal.t('Hide row weights'));
+  };
+
+  /**
+   * Find the target used within a particular row and group.
+   */
+  Drupal.tableDrag.prototype.rowSettings = function (group, row) {
+    var field = $(row).find('.' + group);
+    var tableSettingsGroup = this.tableSettings[group];
+    for (var delta in tableSettingsGroup) {
+      if (tableSettingsGroup.hasOwnProperty(delta)) {
+        var targetClass = tableSettingsGroup[delta].target;
+        if (field.is('.' + targetClass)) {
+          // Return a copy of the row settings.
+          var rowSettings = {};
+          for (var n in tableSettingsGroup[delta]) {
+            if (tableSettingsGroup[delta].hasOwnProperty(n)) {
+              rowSettings[n] = tableSettingsGroup[delta][n];
+            }
+          }
+          return rowSettings;
+        }
+      }
+    }
+  };
+
+  /**
+   * Take an item and add event handlers to make it become draggable.
+   */
+  Drupal.tableDrag.prototype.makeDraggable = function (item) {
+    var self = this;
+    var $item = $(item);
+    // Add a class to the title link
+    $item.find('td').eq(0).find('a').addClass('menu-item__link');
+    // Create the handle.
+    var handle = $('<a href="#" class="tabledrag-handle"><div class="handle">&nbsp;</div></a>').attr('title', Drupal.t('Drag to re-order'));
+    // Insert the handle after indentations (if any).
+    var $indentationLast = $item.find('td').eq(0).find('.js-indentation').eq(-1);
+    if ($indentationLast.length) {
+      $indentationLast.after(handle);
+      // Update the total width of indentation in this entire table.
+      self.indentCount = Math.max($item.find('.js-indentation').length, self.indentCount);
+    }
+    else {
+      $item.find('td').eq(0).prepend(handle);
+    }
+
+    if (Modernizr.touch) {
+      handle.on('touchstart', function (event) {
+        event.preventDefault();
+        event = event.originalEvent.touches[0];
+        self.dragStart(event, self, item);
+      });
+    }
+    else {
+      handle.on('mousedown', function (event) {
+        event.preventDefault();
+        self.dragStart(event, self, item);
+      });
+    }
+
+    // Prevent the anchor tag from jumping us to the top of the page.
+    handle.on('click', function (e) {
+      e.preventDefault();
+    });
+
+    // Set blur cleanup when a handle is focused.
+    handle.on('focus', function () {
+      self.safeBlur = true;
+    });
+
+    // On blur, fire the same function as a touchend/mouseup. This is used to
+    // update values after a row has been moved through the keyboard support.
+    handle.on('blur', function (event) {
+      if (self.rowObject && self.safeBlur) {
+        self.dropRow(event, self);
+      }
+    });
+
+    // Add arrow-key support to the handle.
+    handle.on('keydown', function (event) {
+      // If a rowObject doesn't yet exist and this isn't the tab key.
+      if (event.keyCode !== 9 && !self.rowObject) {
+        self.rowObject = new self.row(item, 'keyboard', self.indentEnabled, self.maxDepth, true);
+      }
+
+      var keyChange = false;
+      var groupHeight;
+      switch (event.keyCode) {
+        case 37: // Left arrow.
+        case 63234: // Safari left arrow.
+          keyChange = true;
+          self.rowObject.indent(-1 * self.rtl);
+          break;
+        case 38: // Up arrow.
+        case 63232: // Safari up arrow.
+          var $previousRow = $(self.rowObject.element).prev('tr').eq(0);
+          var previousRow = $previousRow.get(0);
+          while (previousRow && $previousRow.is(':hidden')) {
+            $previousRow = $(previousRow).prev('tr').eq(0);
+            previousRow = $previousRow.get(0);
+          }
+          if (previousRow) {
+            self.safeBlur = false; // Do not allow the onBlur cleanup.
+            self.rowObject.direction = 'up';
+            keyChange = true;
+
+            if ($(item).is('.tabledrag-root')) {
+              // Swap with the previous top-level row.
+              groupHeight = 0;
+              while (previousRow && $previousRow.find('.js-indentation').length) {
+                $previousRow = $(previousRow).prev('tr').eq(0);
+                previousRow = $previousRow.get(0);
+                groupHeight += $previousRow.is(':hidden') ? 0 : previousRow.offsetHeight;
+              }
+              if (previousRow) {
+                self.rowObject.swap('before', previousRow);
+                // No need to check for indentation, 0 is the only valid one.
+                window.scrollBy(0, -groupHeight);
+              }
+            }
+            else if (self.table.tBodies[0].rows[0] !== previousRow || $previousRow.is('.draggable')) {
+              // Swap with the previous row (unless previous row is the first one
+              // and undraggable).
+              self.rowObject.swap('before', previousRow);
+              self.rowObject.interval = null;
+              self.rowObject.indent(0);
+              window.scrollBy(0, -parseInt(item.offsetHeight, 10));
+            }
+            handle.trigger('focus'); // Regain focus after the DOM manipulation.
+          }
+          break;
+        case 39: // Right arrow.
+        case 63235: // Safari right arrow.
+          keyChange = true;
+          self.rowObject.indent(self.rtl);
+          break;
+        case 40: // Down arrow.
+        case 63233: // Safari down arrow.
+          var $nextRow = $(self.rowObject.group).eq(-1).next('tr').eq(0);
+          var nextRow = $nextRow.get(0);
+          while (nextRow && $nextRow.is(':hidden')) {
+            $nextRow = $(nextRow).next('tr').eq(0);
+            nextRow = $nextRow.get(0);
+          }
+          if (nextRow) {
+            self.safeBlur = false; // Do not allow the onBlur cleanup.
+            self.rowObject.direction = 'down';
+            keyChange = true;
+
+            if ($(item).is('.tabledrag-root')) {
+              // Swap with the next group (necessarily a top-level one).
+              groupHeight = 0;
+              var nextGroup = new self.row(nextRow, 'keyboard', self.indentEnabled, self.maxDepth, false);
+              if (nextGroup) {
+                $(nextGroup.group).each(function () {
+                  groupHeight += $(this).is(':hidden') ? 0 : this.offsetHeight;
+                });
+                var nextGroupRow = $(nextGroup.group).eq(-1).get(0);
+                self.rowObject.swap('after', nextGroupRow);
+                // No need to check for indentation, 0 is the only valid one.
+                window.scrollBy(0, parseInt(groupHeight, 10));
+              }
+            }
+            else {
+              // Swap with the next row.
+              self.rowObject.swap('after', nextRow);
+              self.rowObject.interval = null;
+              self.rowObject.indent(0);
+              window.scrollBy(0, parseInt(item.offsetHeight, 10));
+            }
+            handle.trigger('focus'); // Regain focus after the DOM manipulation.
+          }
+          break;
+      }
+
+      if (self.rowObject && self.rowObject.changed === true) {
+        $(item).addClass('drag');
+        if (self.oldRowElement) {
+          $(self.oldRowElement).removeClass('drag-previous');
+        }
+        self.oldRowElement = item;
+        if (self.striping === true) {
+          self.restripeTable();
+        }
+        self.onDrag();
+      }
+
+      // Returning false if we have an arrow key to prevent scrolling.
+      if (keyChange) {
+        return false;
+      }
+    });
+
+    // Compatibility addition, return false on keypress to prevent unwanted scrolling.
+    // IE and Safari will suppress scrolling on keydown, but all other browsers
+    // need to return false on keypress. http://www.quirksmode.org/js/keys.html
+    handle.on('keypress', function (event) {
+      switch (event.keyCode) {
+        case 37: // Left arrow.
+        case 38: // Up arrow.
+        case 39: // Right arrow.
+        case 40: // Down arrow.
+          return false;
+      }
+    });
+  };
+
+  /**
+   * Pointer event initiator, creates drag object and information.
+   *
+   * @param jQuery.Event event
+   *   The event object that trigger the drag.
+   * @param Drupal.tableDrag self
+   *   The drag handle.
+   * @param DOM item
+   *   The item that that is being dragged.
+   */
+  Drupal.tableDrag.prototype.dragStart = function (event, self, item) {
+    // Create a new dragObject recording the pointer information.
+    self.dragObject = {};
+    self.dragObject.initOffset = self.getPointerOffset(item, event);
+    self.dragObject.initPointerCoords = self.pointerCoords(event);
+    if (self.indentEnabled) {
+      self.dragObject.indentPointerPos = self.dragObject.initPointerCoords;
+    }
+
+    // If there's a lingering row object from the keyboard, remove its focus.
+    if (self.rowObject) {
+      $(self.rowObject.element).find('a.tabledrag-handle').trigger('blur');
+    }
+
+    // Create a new rowObject for manipulation of this row.
+    self.rowObject = new self.row(item, 'pointer', self.indentEnabled, self.maxDepth, true);
+
+    // Save the position of the table.
+    self.table.topY = $(self.table).offset().top;
+    self.table.bottomY = self.table.topY + self.table.offsetHeight;
+
+    // Add classes to the handle and row.
+    $(item).addClass('drag');
+
+    // Set the document to use the move cursor during drag.
+    $('body').addClass('drag');
+    if (self.oldRowElement) {
+      $(self.oldRowElement).removeClass('drag-previous');
+    }
+  };
+
+  /**
+   * Pointer movement handler, bound to document.
+   */
+  Drupal.tableDrag.prototype.dragRow = function (event, self) {
+    if (self.dragObject) {
+      self.currentPointerCoords = self.pointerCoords(event);
+      var y = self.currentPointerCoords.y - self.dragObject.initOffset.y;
+      var x = self.currentPointerCoords.x - self.dragObject.initOffset.x;
+
+      // Check for row swapping and vertical scrolling.
+      if (y !== self.oldY) {
+        self.rowObject.direction = y > self.oldY ? 'down' : 'up';
+        self.oldY = y; // Update the old value.
+
+        // Check if the window should be scrolled (and how fast).
+        var scrollAmount = self.checkScroll(self.currentPointerCoords.y);
+        // Stop any current scrolling.
+        clearInterval(self.scrollInterval);
+        // Continue scrolling if the mouse has moved in the scroll direction.
+        if (scrollAmount > 0 && self.rowObject.direction === 'down' || scrollAmount < 0 && self.rowObject.direction === 'up') {
+          self.setScroll(scrollAmount);
+        }
+
+        // If we have a valid target, perform the swap and restripe the table.
+        var currentRow = self.findDropTargetRow(x, y);
+        if (currentRow) {
+          if (self.rowObject.direction === 'down') {
+            self.rowObject.swap('after', currentRow, self);
+          }
+          else {
+            self.rowObject.swap('before', currentRow, self);
+          }
+          if (self.striping === true) {
+            self.restripeTable();
+          }
+        }
+      }
+
+      // Similar to row swapping, handle indentations.
+      if (self.indentEnabled) {
+        var xDiff = self.currentPointerCoords.x - self.dragObject.indentPointerPos.x;
+        // Set the number of indentations the pointer has been moved left or right.
+        var indentDiff = Math.round(xDiff / self.indentAmount);
+        // Indent the row with our estimated diff, which may be further
+        // restricted according to the rows around this row.
+        var indentChange = self.rowObject.indent(indentDiff);
+        // Update table and pointer indentations.
+        self.dragObject.indentPointerPos.x += self.indentAmount * indentChange * self.rtl;
+        self.indentCount = Math.max(self.indentCount, self.rowObject.indents);
+      }
+
+      return false;
+    }
+  };
+
+  /**
+   * Pointerup behavior.
+   */
+  Drupal.tableDrag.prototype.dropRow = function (event, self) {
+    var droppedRow;
+    var $droppedRow;
+
+    // Drop row functionality.
+    if (self.rowObject !== null) {
+      droppedRow = self.rowObject.element;
+      $droppedRow = $(droppedRow);
+      // The row is already in the right place so we just release it.
+      if (self.rowObject.changed === true) {
+        // Update the fields in the dropped row.
+        self.updateFields(droppedRow);
+
+        // If a setting exists for affecting the entire group, update all the
+        // fields in the entire dragged group.
+        for (var group in self.tableSettings) {
+          if (self.tableSettings.hasOwnProperty(group)) {
+            var rowSettings = self.rowSettings(group, droppedRow);
+            if (rowSettings.relationship === 'group') {
+              for (var n in self.rowObject.children) {
+                if (self.rowObject.children.hasOwnProperty(n)) {
+                  self.updateField(self.rowObject.children[n], group);
+                }
+              }
+            }
+          }
+        }
+
+        self.rowObject.markChanged();
+        if (self.changed === false) {
+          $(Drupal.theme('tableDragChangedWarning')).insertBefore(self.table).hide().fadeIn('slow');
+          self.changed = true;
+        }
+      }
+
+      if (self.indentEnabled) {
+        self.rowObject.removeIndentClasses();
+      }
+      if (self.oldRowElement) {
+        $(self.oldRowElement).removeClass('drag-previous');
+      }
+      $droppedRow.removeClass('drag').addClass('drag-previous');
+      self.oldRowElement = droppedRow;
+      self.onDrop();
+      self.rowObject = null;
+    }
+
+    // Functionality specific only to pointerup events.
+    if (self.dragObject !== null) {
+      self.dragObject = null;
+      $('body').removeClass('drag');
+      clearInterval(self.scrollInterval);
+    }
+  };
+
+  /**
+   * Get the coordinates from the event (allowing for browser differences).
+   */
+  Drupal.tableDrag.prototype.pointerCoords = function (event) {
+    if (event.pageX || event.pageY) {
+      return {x: event.pageX, y: event.pageY};
+    }
+    return {
+      x: event.clientX + document.body.scrollLeft - document.body.clientLeft,
+      y: event.clientY + document.body.scrollTop - document.body.clientTop
+    };
+  };
+
+  /**
+   * Given a target element and a pointer event, get the event offset from that
+   * element. To do this we need the element's position and the target position.
+   */
+  Drupal.tableDrag.prototype.getPointerOffset = function (target, event) {
+    var docPos = $(target).offset();
+    var pointerPos = this.pointerCoords(event);
+    return {x: pointerPos.x - docPos.left, y: pointerPos.y - docPos.top};
+  };
+
+  /**
+   * Find the row the mouse is currently over. This row is then taken and swapped
+   * with the one being dragged.
+   *
+   * @param x
+   *   The x coordinate of the mouse on the page (not the screen).
+   * @param y
+   *   The y coordinate of the mouse on the page (not the screen).
+   */
+  Drupal.tableDrag.prototype.findDropTargetRow = function (x, y) {
+    var rows = $(this.table.tBodies[0].rows).not(':hidden');
+    for (var n = 0; n < rows.length; n++) {
+      var row = rows[n];
+      var $row = $(row);
+      var rowY = $row.offset().top;
+      var rowHeight;
+      // Because Safari does not report offsetHeight on table rows, but does on
+      // table cells, grab the firstChild of the row and use that instead.
+      // http://jacob.peargrove.com/blog/2006/technical/table-row-offsettop-bug-in-safari.
+      if (row.offsetHeight === 0) {
+        rowHeight = parseInt(row.firstChild.offsetHeight, 10) / 2;
+      }
+      // Other browsers.
+      else {
+        rowHeight = parseInt(row.offsetHeight, 10) / 2;
+      }
+
+      // Because we always insert before, we need to offset the height a bit.
+      if ((y > (rowY - rowHeight)) && (y < (rowY + rowHeight))) {
+        if (this.indentEnabled) {
+          // Check that this row is not a child of the row being dragged.
+          for (n in this.rowObject.group) {
+            if (this.rowObject.group[n] === row) {
+              return null;
+            }
+          }
+        }
+        else {
+          // Do not allow a row to be swapped with itself.
+          if (row === this.rowObject.element) {
+            return null;
+          }
+        }
+
+        // Check that swapping with this row is allowed.
+        if (!this.rowObject.isValidSwap(row)) {
+          return null;
+        }
+
+        // We may have found the row the mouse just passed over, but it doesn't
+        // take into account hidden rows. Skip backwards until we find a draggable
+        // row.
+        while ($row.is(':hidden') && $row.prev('tr').is(':hidden')) {
+          $row = $row.prev('tr').eq(0);
+          row = $row.get(0);
+        }
+        return row;
+      }
+    }
+    return null;
+  };
+
+  /**
+   * After the row is dropped, update the table fields according to the settings
+   * set for this table.
+   *
+   * @param changedRow
+   *   DOM object for the row that was just dropped.
+   */
+  Drupal.tableDrag.prototype.updateFields = function (changedRow) {
+    for (var group in this.tableSettings) {
+      if (this.tableSettings.hasOwnProperty(group)) {
+        // Each group may have a different setting for relationship, so we find
+        // the source rows for each separately.
+        this.updateField(changedRow, group);
+      }
+    }
+  };
+
+  /**
+   * After the row is dropped, update a single table field according to specific
+   * settings.
+   *
+   * @param changedRow
+   *   DOM object for the row that was just dropped.
+   * @param group
+   *   The settings group on which field updates will occur.
+   */
+  Drupal.tableDrag.prototype.updateField = function (changedRow, group) {
+    var rowSettings = this.rowSettings(group, changedRow);
+    var $changedRow = $(changedRow);
+    var sourceRow;
+    var $previousRow;
+    var previousRow;
+    var useSibling;
+    // Set the row as its own target.
+    if (rowSettings.relationship === 'self' || rowSettings.relationship === 'group') {
+      sourceRow = changedRow;
+    }
+    // Siblings are easy, check previous and next rows.
+    else if (rowSettings.relationship === 'sibling') {
+      $previousRow = $changedRow.prev('tr').eq(0);
+      previousRow = $previousRow.get(0);
+      var $nextRow = $changedRow.next('tr').eq(0);
+      var nextRow = $nextRow.get(0);
+      sourceRow = changedRow;
+      if ($previousRow.is('.draggable') && $previousRow.find('.' + group).length) {
+        if (this.indentEnabled) {
+          if ($previousRow.find('.js-indentations').length === $changedRow.find('.js-indentations').length) {
+            sourceRow = previousRow;
+          }
+        }
+        else {
+          sourceRow = previousRow;
+        }
+      }
+      else if ($nextRow.is('.draggable') && $nextRow.find('.' + group).length) {
+        if (this.indentEnabled) {
+          if ($nextRow.find('.js-indentations').length === $changedRow.find('.js-indentations').length) {
+            sourceRow = nextRow;
+          }
+        }
+        else {
+          sourceRow = nextRow;
+        }
+      }
+    }
+    // Parents, look up the tree until we find a field not in this group.
+    // Go up as many parents as indentations in the changed row.
+    else if (rowSettings.relationship === 'parent') {
+      $previousRow = $changedRow.prev('tr');
+      previousRow = $previousRow;
+      while ($previousRow.length && $previousRow.find('.js-indentation').length >= this.rowObject.indents) {
+        $previousRow = $previousRow.prev('tr');
+        previousRow = $previousRow;
+      }
+      // If we found a row.
+      if ($previousRow.length) {
+        sourceRow = $previousRow.get(0);
+      }
+      // Otherwise we went all the way to the left of the table without finding
+      // a parent, meaning this item has been placed at the root level.
+      else {
+        // Use the first row in the table as source, because it's guaranteed to
+        // be at the root level. Find the first item, then compare this row
+        // against it as a sibling.
+        sourceRow = $(this.table).find('tr.draggable').eq(0).get(0);
+        if (sourceRow === this.rowObject.element) {
+          sourceRow = $(this.rowObject.group[this.rowObject.group.length - 1]).next('tr.draggable').get(0);
+        }
+        useSibling = true;
+      }
+    }
+
+    // Because we may have moved the row from one category to another,
+    // take a look at our sibling and borrow its sources and targets.
+    this.copyDragClasses(sourceRow, changedRow, group);
+    rowSettings = this.rowSettings(group, changedRow);
+
+    // In the case that we're looking for a parent, but the row is at the top
+    // of the tree, copy our sibling's values.
+    if (useSibling) {
+      rowSettings.relationship = 'sibling';
+      rowSettings.source = rowSettings.target;
+    }
+
+    var targetClass = '.' + rowSettings.target;
+    var targetElement = $changedRow.find(targetClass).get(0);
+
+    // Check if a target element exists in this row.
+    if (targetElement) {
+      var sourceClass = '.' + rowSettings.source;
+      var sourceElement = $(sourceClass, sourceRow).get(0);
+      switch (rowSettings.action) {
+        case 'depth':
+          // Get the depth of the target row.
+          targetElement.value = $(sourceElement).closest('tr').find('.js-indentation').length;
+          break;
+        case 'match':
+          // Update the value.
+          targetElement.value = sourceElement.value;
+          break;
+        case 'order':
+          var siblings = this.rowObject.findSiblings(rowSettings);
+          if ($(targetElement).is('select')) {
+            // Get a list of acceptable values.
+            var values = [];
+            $(targetElement).find('option').each(function () {
+              values.push(this.value);
+            });
+            var maxVal = values[values.length - 1];
+            // Populate the values in the siblings.
+            $(siblings).find(targetClass).each(function () {
+              // If there are more items than possible values, assign the maximum value to the row.
+              if (values.length > 0) {
+                this.value = values.shift();
+              }
+              else {
+                this.value = maxVal;
+              }
+            });
+          }
+          else {
+            // Assume a numeric input field.
+            var weight = parseInt($(siblings[0]).find(targetClass).val(), 10) || 0;
+            $(siblings).find(targetClass).each(function () {
+              this.value = weight;
+              weight++;
+            });
+          }
+          break;
+      }
+    }
+  };
+
+  /**
+   * Copy all special tableDrag classes from one row's form elements to a
+   * different one, removing any special classes that the destination row
+   * may have had.
+   */
+  Drupal.tableDrag.prototype.copyDragClasses = function (sourceRow, targetRow, group) {
+    var sourceElement = $(sourceRow).find('.' + group);
+    var targetElement = $(targetRow).find('.' + group);
+    if (sourceElement.length && targetElement.length) {
+      targetElement[0].className = sourceElement[0].className;
+    }
+  };
+
+  Drupal.tableDrag.prototype.checkScroll = function (cursorY) {
+    var de = document.documentElement;
+    var b = document.body;
+
+    var windowHeight = this.windowHeight = window.innerHeight || (de.clientHeight && de.clientWidth !== 0 ? de.clientHeight : b.offsetHeight);
+    var scrollY;
+    if (document.all) {
+      scrollY = this.scrollY = !de.scrollTop ? b.scrollTop : de.scrollTop;
+    }
+    else {
+      scrollY = this.scrollY = window.pageYOffset ? window.pageYOffset : window.scrollY;
+    }
+    var trigger = this.scrollSettings.trigger;
+    var delta = 0;
+
+    // Return a scroll speed relative to the edge of the screen.
+    if (cursorY - scrollY > windowHeight - trigger) {
+      delta = trigger / (windowHeight + scrollY - cursorY);
+      delta = (delta > 0 && delta < trigger) ? delta : trigger;
+      return delta * this.scrollSettings.amount;
+    }
+    else if (cursorY - scrollY < trigger) {
+      delta = trigger / (cursorY - scrollY);
+      delta = (delta > 0 && delta < trigger) ? delta : trigger;
+      return -delta * this.scrollSettings.amount;
+    }
+  };
+
+  Drupal.tableDrag.prototype.setScroll = function (scrollAmount) {
+    var self = this;
+
+    this.scrollInterval = setInterval(function () {
+      // Update the scroll values stored in the object.
+      self.checkScroll(self.currentPointerCoords.y);
+      var aboveTable = self.scrollY > self.table.topY;
+      var belowTable = self.scrollY + self.windowHeight < self.table.bottomY;
+      if (scrollAmount > 0 && belowTable || scrollAmount < 0 && aboveTable) {
+        window.scrollBy(0, scrollAmount);
+      }
+    }, this.scrollSettings.interval);
+  };
+
+  Drupal.tableDrag.prototype.restripeTable = function () {
+    // :even and :odd are reversed because jQuery counts from 0 and
+    // we count from 1, so we're out of sync.
+    // Match immediate children of the parent element to allow nesting.
+    $(this.table).find('> tbody > tr.draggable:visible, > tr.draggable:visible')
+      .removeClass('odd even')
+      .filter(':odd').addClass('even').end()
+      .filter(':even').addClass('odd');
+  };
+
+  /**
+   * Stub function. Allows a custom handler when a row begins dragging.
+   */
+  Drupal.tableDrag.prototype.onDrag = function () {
+    return null;
+  };
+
+  /**
+   * Stub function. Allows a custom handler when a row is dropped.
+   */
+  Drupal.tableDrag.prototype.onDrop = function () {
+    return null;
+  };
+
+  /**
+   * Constructor to make a new object to manipulate a table row.
+   *
+   * @param tableRow
+   *   The DOM element for the table row we will be manipulating.
+   * @param method
+   *   The method in which this row is being moved. Either 'keyboard' or 'mouse'.
+   * @param indentEnabled
+   *   Whether the containing table uses indentations. Used for optimizations.
+   * @param maxDepth
+   *   The maximum amount of indentations this row may contain.
+   * @param addClasses
+   *   Whether we want to add classes to this row to indicate child relationships.
+   */
+  Drupal.tableDrag.prototype.row = function (tableRow, method, indentEnabled, maxDepth, addClasses) {
+    var $tableRow = $(tableRow);
+
+    this.element = tableRow;
+    this.method = method;
+    this.group = [tableRow];
+    this.groupDepth = $tableRow.find('.js-indentation').length;
+    this.changed = false;
+    this.table = $tableRow.closest('table')[0];
+    this.indentEnabled = indentEnabled;
+    this.maxDepth = maxDepth;
+    this.direction = ''; // Direction the row is being moved.
+
+    if (this.indentEnabled) {
+      this.indents = $tableRow.find('.js-indentation').length;
+      this.children = this.findChildren(addClasses);
+      this.group = $.merge(this.group, this.children);
+      // Find the depth of this entire group.
+      for (var n = 0; n < this.group.length; n++) {
+        this.groupDepth = Math.max($(this.group[n]).find('.js-indentation').length, this.groupDepth);
+      }
+    }
+  };
+
+  /**
+   * Find all children of rowObject by indentation.
+   *
+   * @param addClasses
+   *   Whether we want to add classes to this row to indicate child relationships.
+   */
+  Drupal.tableDrag.prototype.row.prototype.findChildren = function (addClasses) {
+    var parentIndentation = this.indents;
+    var currentRow = $(this.element, this.table).next('tr.draggable');
+    var rows = [];
+    var child = 0;
+
+    function rowIndentation(el, indentNum) {
+      var self = $(el);
+      if (child === 1 && (indentNum === parentIndentation)) {
+        self.addClass('tree-child-first');
+      }
+      if (indentNum === parentIndentation) {
+        self.addClass('tree-child');
+      }
+      else if (indentNum > parentIndentation) {
+        self.addClass('tree-child-horizontal');
+      }
+    }
+
+    while (currentRow.length) {
+      // A greater indentation indicates this is a child.
+      if (currentRow.find('.js-indentation').length > parentIndentation) {
+        child++;
+        rows.push(currentRow[0]);
+        if (addClasses) {
+          currentRow.find('.js-indentation').each(rowIndentation);
+        }
+      }
+      else {
+        break;
+      }
+      currentRow = currentRow.next('tr.draggable');
+    }
+    if (addClasses && rows.length) {
+      $(rows[rows.length - 1]).find('.js-indentation:nth-child(' + (parentIndentation + 1) + ')').addClass('tree-child-last');
+    }
+    return rows;
+  };
+
+  /**
+   * Ensure that two rows are allowed to be swapped.
+   *
+   * @param row
+   *   DOM object for the row being considered for swapping.
+   */
+  Drupal.tableDrag.prototype.row.prototype.isValidSwap = function (row) {
+    var $row = $(row);
+    if (this.indentEnabled) {
+      var prevRow;
+      var nextRow;
+      if (this.direction === 'down') {
+        prevRow = row;
+        nextRow = $row.next('tr').get(0);
+      }
+      else {
+        prevRow = $row.prev('tr').get(0);
+        nextRow = row;
+      }
+      this.interval = this.validIndentInterval(prevRow, nextRow);
+
+      // We have an invalid swap if the valid indentations interval is empty.
+      if (this.interval.min > this.interval.max) {
+        return false;
+      }
+    }
+
+    // Do not let an un-draggable first row have anything put before it.
+    if (this.table.tBodies[0].rows[0] === row && $row.is(':not(.draggable)')) {
+      return false;
+    }
+
+    return true;
+  };
+
+  /**
+   * Perform the swap between two rows.
+   *
+   * @param position
+   *   Whether the swap will occur 'before' or 'after' the given row.
+   * @param row
+   *   DOM element what will be swapped with the row group.
+   */
+  Drupal.tableDrag.prototype.row.prototype.swap = function (position, row) {
+    // Makes sure only DOM object are passed to Drupal.detachBehaviors().
+    this.group.forEach(function (row) {
+      Drupal.detachBehaviors(row, drupalSettings, 'move');
+    });
+    $(row)[position](this.group);
+    // Makes sure only DOM object are passed to Drupal.attachBehaviors()s.
+    this.group.forEach(function (row) {
+      Drupal.attachBehaviors(row, drupalSettings);
+    });
+    this.changed = true;
+    this.onSwap(row);
+  };
+
+  /**
+   * Determine the valid indentations interval for the row at a given position
+   * in the table.
+   *
+   * @param prevRow
+   *   DOM object for the row before the tested position
+   *   (or null for first position in the table).
+   * @param nextRow
+   *   DOM object for the row after the tested position
+   *   (or null for last position in the table).
+   */
+  Drupal.tableDrag.prototype.row.prototype.validIndentInterval = function (prevRow, nextRow) {
+    var $prevRow = $(prevRow);
+    var minIndent;
+    var maxIndent;
+
+    // Minimum indentation:
+    // Do not orphan the next row.
+    minIndent = nextRow ? $(nextRow).find('.js-indentation').length : 0;
+
+    // Maximum indentation:
+    if (!prevRow || $prevRow.is(':not(.draggable)') || $(this.element).is('.tabledrag-root')) {
+      // Do not indent:
+      // - the first row in the table,
+      // - rows dragged below a non-draggable row,
+      // - 'root' rows.
+      maxIndent = 0;
+    }
+    else {
+      // Do not go deeper than as a child of the previous row.
+      maxIndent = $prevRow.find('.js-indentation').length + ($prevRow.is('.tabledrag-leaf') ? 0 : 1);
+      // Limit by the maximum allowed depth for the table.
+      if (this.maxDepth) {
+        maxIndent = Math.min(maxIndent, this.maxDepth - (this.groupDepth - this.indents));
+      }
+    }
+
+    return {'min': minIndent, 'max': maxIndent};
+  };
+
+  /**
+   * Indent a row within the legal bounds of the table.
+   *
+   * @param indentDiff
+   *   The number of additional indentations proposed for the row (can be
+   *   positive or negative). This number will be adjusted to nearest valid
+   *   indentation level for the row.
+   */
+  Drupal.tableDrag.prototype.row.prototype.indent = function (indentDiff) {
+    var $group = $(this.group);
+    // Determine the valid indentations interval if not available yet.
+    if (!this.interval) {
+      var prevRow = $(this.element).prev('tr').get(0);
+      var nextRow = $group.eq(-1).next('tr').get(0);
+      this.interval = this.validIndentInterval(prevRow, nextRow);
+    }
+
+    // Adjust to the nearest valid indentation.
+    var indent = this.indents + indentDiff;
+    indent = Math.max(indent, this.interval.min);
+    indent = Math.min(indent, this.interval.max);
+    indentDiff = indent - this.indents;
+
+    for (var n = 1; n <= Math.abs(indentDiff); n++) {
+      // Add or remove indentations.
+      if (indentDiff < 0) {
+        $group.find('.js-indentation').eq(0).remove();
+        this.indents--;
+      }
+      else {
+        $group.find('td').eq(0).prepend(Drupal.theme('tableDragIndentation'));
+        this.indents++;
+      }
+    }
+    if (indentDiff) {
+      // Update indentation for this row.
+      this.changed = true;
+      this.groupDepth += indentDiff;
+      this.onIndent();
+    }
+
+    return indentDiff;
+  };
+
+  /**
+   * Find all siblings for a row, either according to its subgroup or indentation.
+   * Note that the passed-in row is included in the list of siblings.
+   *
+   * @param settings
+   *   The field settings we're using to identify what constitutes a sibling.
+   */
+  Drupal.tableDrag.prototype.row.prototype.findSiblings = function (rowSettings) {
+    var siblings = [];
+    var directions = ['prev', 'next'];
+    var rowIndentation = this.indents;
+    var checkRowIndentation;
+    for (var d = 0; d < directions.length; d++) {
+      var checkRow = $(this.element)[directions[d]]();
+      while (checkRow.length) {
+        // Check that the sibling contains a similar target field.
+        if (checkRow.find('.' + rowSettings.target)) {
+          // Either add immediately if this is a flat table, or check to ensure
+          // that this row has the same level of indentation.
+          if (this.indentEnabled) {
+            checkRowIndentation = checkRow.find('.js-indentation').length;
+          }
+
+          if (!(this.indentEnabled) || (checkRowIndentation === rowIndentation)) {
+            siblings.push(checkRow[0]);
+          }
+          else if (checkRowIndentation < rowIndentation) {
+            // No need to keep looking for siblings when we get to a parent.
+            break;
+          }
+        }
+        else {
+          break;
+        }
+        checkRow = checkRow[directions[d]]();
+      }
+      // Since siblings are added in reverse order for previous, reverse the
+      // completed list of previous siblings. Add the current row and continue.
+      if (directions[d] === 'prev') {
+        siblings.reverse();
+        siblings.push(this.element);
+      }
+    }
+    return siblings;
+  };
+
+  /**
+   * Remove indentation helper classes from the current row group.
+   */
+  Drupal.tableDrag.prototype.row.prototype.removeIndentClasses = function () {
+    for (var n in this.children) {
+      if (this.children.hasOwnProperty(n)) {
+        $(this.children[n]).find('.js-indentation')
+          .removeClass('tree-child')
+          .removeClass('tree-child-first')
+          .removeClass('tree-child-last')
+          .removeClass('tree-child-horizontal');
+      }
+    }
+  };
+
+  /**
+   * Add an asterisk or other marker to the changed row.
+   */
+  Drupal.tableDrag.prototype.row.prototype.markChanged = function () {
+    var marker = Drupal.theme('tableDragChangedMarker');
+    var cell = $(this.element).find('td').eq(0);
+    if (cell.find('abbr.tabledrag-changed').length === 0) {
+      cell.append(marker);
+    }
+  };
+
+  /**
+   * Stub function. Allows a custom handler when a row is indented.
+   */
+  Drupal.tableDrag.prototype.row.prototype.onIndent = function () {
+    return null;
+  };
+
+  /**
+   * Stub function. Allows a custom handler when a row is swapped.
+   */
+  Drupal.tableDrag.prototype.row.prototype.onSwap = function (swappedRow) {
+    return null;
+  };
+
+  $.extend(Drupal.theme, {
+    tableDragChangedMarker: function () {
+      return '<abbr class="warning tabledrag-changed" title="' + Drupal.t('Changed') + '">*</abbr>';
+    },
+    tableDragIndentation: function () {
+      return '<div class="js-indentation indentation">&nbsp;</div>';
+    },
+    tableDragChangedWarning: function () {
+      return '<div class="tabledrag-changed-warning messages messages--warning" role="alert">' + Drupal.theme('tableDragChangedMarker') + ' ' + Drupal.t('You have unsaved changes.') + '</div>';
+    }
+  });
+
+})(jQuery, Drupal, drupalSettings);
+;
+/**
+ * @file
+ * Attaches behaviors for Drupal's active link marking.
+ */
+
+(function (Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Append is-active class.
+   *
+   * The link is only active if its path corresponds to the current path, the
+   * language of the linked path is equal to the current language, and if the
+   * query parameters of the link equal those of the current request, since the
+   * same request with different query parameters may yield a different page
+   * (e.g. pagers, exposed View filters).
+   *
+   * Does not discriminate based on element type, so allows you to set the
+   * is-active class on any element: a, li…
+   */
+  Drupal.behaviors.activeLinks = {
+    attach: function (context) {
+      // Start by finding all potentially active links.
+      var path = drupalSettings.path;
+      var queryString = JSON.stringify(path.currentQuery);
+      var querySelector = path.currentQuery ? "[data-drupal-link-query='" + queryString + "']" : ':not([data-drupal-link-query])';
+      var originalSelectors = ['[data-drupal-link-system-path="' + path.currentPath + '"]'];
+      var selectors;
+
+      // If this is the front page, we have to check for the <front> path as well.
+      if (path.isFront) {
+        originalSelectors.push('[data-drupal-link-system-path="<front>"]');
+      }
+
+      // Add language filtering.
+      selectors = [].concat(
+        // Links without any hreflang attributes (most of them).
+        originalSelectors.map(function (selector) { return selector + ':not([hreflang])'; }),
+        // Links with hreflang equals to the current language.
+        originalSelectors.map(function (selector) { return selector + '[hreflang="' + path.currentLanguage + '"]'; })
+      );
+
+      // Add query string selector for pagers, exposed filters.
+      selectors = selectors.map(function (current) { return current + querySelector; });
+
+      // Query the DOM.
+      var activeLinks = context.querySelectorAll(selectors.join(','));
+      var il = activeLinks.length;
+      for (var i = 0; i < il; i++) {
+        activeLinks[i].classList.add('is-active');
+      }
+    },
+    detach: function (context, settings, trigger) {
+      if (trigger === 'unload') {
+        var activeLinks = context.querySelectorAll('[data-drupal-link-system-path].is-active');
+        var il = activeLinks.length;
+        for (var i = 0; i < il; i++) {
+          activeLinks[i].classList.remove('is-active');
+        }
+      }
+    }
+  };
+
+})(Drupal, drupalSettings);
+;
+/*!
+ * jQuery Form Plugin
+ * version: 3.51.0-2014.06.20
+ * Requires jQuery v1.5 or later
+ * Copyright (c) 2014 M. Alsup
+ * Examples and documentation at: http://malsup.com/jquery/form/
+ * Project repository: https://github.com/malsup/form
+ * Dual licensed under the MIT and GPL licenses.
+ * https://github.com/malsup/form#copyright-and-license
+ */
+!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e("undefined"!=typeof jQuery?jQuery:window.Zepto)}(function(e){"use strict";function t(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).ajaxSubmit(r))}function r(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=this;if(i.clk=r,"image"==r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function a(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}var n={};n.fileapi=void 0!==e("<input type='file'/>").get(0).files,n.formdata=void 0!==window.FormData;var i=!!e.fn.prop;e.fn.attr2=function(){if(!i)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t){function r(r){var a,n,i=e.param(r,t.traditional).split("&"),o=i.length,s=[];for(a=0;o>a;a++)i[a]=i[a].replace(/\+/g," "),n=i[a].split("="),s.push([decodeURIComponent(n[0]),decodeURIComponent(n[1])]);return s}function o(a){for(var n=new FormData,i=0;i<a.length;i++)n.append(a[i].name,a[i].value);if(t.extraData){var o=r(t.extraData);for(i=0;i<o.length;i++)o[i]&&n.append(o[i][0],o[i][1])}t.data=null;var s=e.extend(!0,{},e.ajaxSettings,t,{contentType:!1,processData:!1,cache:!1,type:u||"POST"});t.uploadProgress&&(s.xhr=function(){var r=e.ajaxSettings.xhr();return r.upload&&r.upload.addEventListener("progress",function(e){var r=0,a=e.loaded||e.position,n=e.total;e.lengthComputable&&(r=Math.ceil(a/n*100)),t.uploadProgress(e,a,n,r)},!1),r}),s.data=null;var c=s.beforeSend;return s.beforeSend=function(e,r){r.data=t.formData?t.formData:n,c&&c.call(this,e,r)},e.ajax(s)}function s(r){function n(e){var t=null;try{e.contentWindow&&(t=e.contentWindow.document)}catch(r){a("cannot get iframe.contentWindow document: "+r)}if(t)return t;try{t=e.contentDocument?e.contentDocument:e.document}catch(r){a("cannot get iframe.contentDocument: "+r),t=e.document}return t}function o(){function t(){try{var e=n(g).readyState;a("state = "+e),e&&"uninitialized"==e.toLowerCase()&&setTimeout(t,50)}catch(r){a("Server abort: ",r," (",r.name,")"),s(k),j&&clearTimeout(j),j=void 0}}var r=f.attr2("target"),i=f.attr2("action"),o="multipart/form-data",c=f.attr("enctype")||f.attr("encoding")||o;w.setAttribute("target",p),(!u||/post/i.test(u))&&w.setAttribute("method","POST"),i!=m.url&&w.setAttribute("action",m.url),m.skipEncodingOverride||u&&!/post/i.test(u)||f.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),m.timeout&&(j=setTimeout(function(){T=!0,s(D)},m.timeout));var l=[];try{if(m.extraData)for(var d in m.extraData)m.extraData.hasOwnProperty(d)&&l.push(e.isPlainObject(m.extraData[d])&&m.extraData[d].hasOwnProperty("name")&&m.extraData[d].hasOwnProperty("value")?e('<input type="hidden" name="'+m.extraData[d].name+'">').val(m.extraData[d].value).appendTo(w)[0]:e('<input type="hidden" name="'+d+'">').val(m.extraData[d]).appendTo(w)[0]);m.iframeTarget||v.appendTo("body"),g.attachEvent?g.attachEvent("onload",s):g.addEventListener("load",s,!1),setTimeout(t,15);try{w.submit()}catch(h){var x=document.createElement("form").submit;x.apply(w)}}finally{w.setAttribute("action",i),w.setAttribute("enctype",c),r?w.setAttribute("target",r):f.removeAttr("target"),e(l).remove()}}function s(t){if(!x.aborted&&!F){if(M=n(g),M||(a("cannot access response document"),t=k),t===D&&x)return x.abort("timeout"),void S.reject(x,"timeout");if(t==k&&x)return x.abort("server abort"),void S.reject(x,"error","server abort");if(M&&M.location.href!=m.iframeSrc||T){g.detachEvent?g.detachEvent("onload",s):g.removeEventListener("load",s,!1);var r,i="success";try{if(T)throw"timeout";var o="xml"==m.dataType||M.XMLDocument||e.isXMLDoc(M);if(a("isXml="+o),!o&&window.opera&&(null===M.body||!M.body.innerHTML)&&--O)return a("requeing onLoad callback, DOM not available"),void setTimeout(s,250);var u=M.body?M.body:M.documentElement;x.responseText=u?u.innerHTML:null,x.responseXML=M.XMLDocument?M.XMLDocument:M,o&&(m.dataType="xml"),x.getResponseHeader=function(e){var t={"content-type":m.dataType};return t[e.toLowerCase()]},u&&(x.status=Number(u.getAttribute("status"))||x.status,x.statusText=u.getAttribute("statusText")||x.statusText);var c=(m.dataType||"").toLowerCase(),l=/(json|script|text)/.test(c);if(l||m.textarea){var f=M.getElementsByTagName("textarea")[0];if(f)x.responseText=f.value,x.status=Number(f.getAttribute("status"))||x.status,x.statusText=f.getAttribute("statusText")||x.statusText;else if(l){var p=M.getElementsByTagName("pre")[0],h=M.getElementsByTagName("body")[0];p?x.responseText=p.textContent?p.textContent:p.innerText:h&&(x.responseText=h.textContent?h.textContent:h.innerText)}}else"xml"==c&&!x.responseXML&&x.responseText&&(x.responseXML=X(x.responseText));try{E=_(x,c,m)}catch(y){i="parsererror",x.error=r=y||i}}catch(y){a("error caught: ",y),i="error",x.error=r=y||i}x.aborted&&(a("upload aborted"),i=null),x.status&&(i=x.status>=200&&x.status<300||304===x.status?"success":"error"),"success"===i?(m.success&&m.success.call(m.context,E,"success",x),S.resolve(x.responseText,"success",x),d&&e.event.trigger("ajaxSuccess",[x,m])):i&&(void 0===r&&(r=x.statusText),m.error&&m.error.call(m.context,x,i,r),S.reject(x,"error",r),d&&e.event.trigger("ajaxError",[x,m,r])),d&&e.event.trigger("ajaxComplete",[x,m]),d&&!--e.active&&e.event.trigger("ajaxStop"),m.complete&&m.complete.call(m.context,x,i),F=!0,m.timeout&&clearTimeout(j),setTimeout(function(){m.iframeTarget?v.attr("src",m.iframeSrc):v.remove(),x.responseXML=null},100)}}}var c,l,m,d,p,v,g,x,y,b,T,j,w=f[0],S=e.Deferred();if(S.abort=function(e){x.abort(e)},r)for(l=0;l<h.length;l++)c=e(h[l]),i?c.prop("disabled",!1):c.removeAttr("disabled");if(m=e.extend(!0,{},e.ajaxSettings,t),m.context=m.context||m,p="jqFormIO"+(new Date).getTime(),m.iframeTarget?(v=e(m.iframeTarget),b=v.attr2("name"),b?p=b:v.attr2("name",p)):(v=e('<iframe name="'+p+'" src="'+m.iframeSrc+'" />'),v.css({position:"absolute",top:"-1000px",left:"-1000px"})),g=v[0],x={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var r="timeout"===t?"timeout":"aborted";a("aborting upload... "+r),this.aborted=1;try{g.contentWindow.document.execCommand&&g.contentWindow.document.execCommand("Stop")}catch(n){}v.attr("src",m.iframeSrc),x.error=r,m.error&&m.error.call(m.context,x,r,t),d&&e.event.trigger("ajaxError",[x,m,r]),m.complete&&m.complete.call(m.context,x,r)}},d=m.global,d&&0===e.active++&&e.event.trigger("ajaxStart"),d&&e.event.trigger("ajaxSend",[x,m]),m.beforeSend&&m.beforeSend.call(m.context,x,m)===!1)return m.global&&e.active--,S.reject(),S;if(x.aborted)return S.reject(),S;y=w.clk,y&&(b=y.name,b&&!y.disabled&&(m.extraData=m.extraData||{},m.extraData[b]=y.value,"image"==y.type&&(m.extraData[b+".x"]=w.clk_x,m.extraData[b+".y"]=w.clk_y)));var D=1,k=2,A=e("meta[name=csrf-token]").attr("content"),L=e("meta[name=csrf-param]").attr("content");L&&A&&(m.extraData=m.extraData||{},m.extraData[L]=A),m.forceSync?o():setTimeout(o,10);var E,M,F,O=50,X=e.parseXML||function(e,t){return window.ActiveXObject?(t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!=t.documentElement.nodeName?t:null},C=e.parseJSON||function(e){return window.eval("("+e+")")},_=function(t,r,a){var n=t.getResponseHeader("content-type")||"",i="xml"===r||!r&&n.indexOf("xml")>=0,o=i?t.responseXML:t.responseText;return i&&"parsererror"===o.documentElement.nodeName&&e.error&&e.error("parsererror"),a&&a.dataFilter&&(o=a.dataFilter(o,r)),"string"==typeof o&&("json"===r||!r&&n.indexOf("json")>=0?o=C(o):("script"===r||!r&&n.indexOf("javascript")>=0)&&e.globalEval(o)),o};return S}if(!this.length)return a("ajaxSubmit: skipping submit process - no element selected"),this;var u,c,l,f=this;"function"==typeof t?t={success:t}:void 0===t&&(t={}),u=t.type||this.attr2("method"),c=t.url||this.attr2("action"),l="string"==typeof c?e.trim(c):"",l=l||window.location.href||"",l&&(l=(l.match(/^([^#]+)/)||[])[1]),t=e.extend(!0,{url:l,success:e.ajaxSettings.success,type:u||e.ajaxSettings.type,iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var m={};if(this.trigger("form-pre-serialize",[this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(t.beforeSerialize&&t.beforeSerialize(this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var d=t.traditional;void 0===d&&(d=e.ajaxSettings.traditional);var p,h=[],v=this.formToArray(t.semantic,h);if(t.data&&(t.extraData=t.data,p=e.param(t.data,d)),t.beforeSubmit&&t.beforeSubmit(v,this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[v,this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var g=e.param(v,d);p&&(g=g?g+"&"+p:p),"GET"==t.type.toUpperCase()?(t.url+=(t.url.indexOf("?")>=0?"&":"?")+g,t.data=null):t.data=g;var x=[];if(t.resetForm&&x.push(function(){f.resetForm()}),t.clearForm&&x.push(function(){f.clearForm(t.includeHidden)}),!t.dataType&&t.target){var y=t.success||function(){};x.push(function(r){var a=t.replaceTarget?"replaceWith":"html";e(t.target)[a](r).each(y,arguments)})}else t.success&&x.push(t.success);if(t.success=function(e,r,a){for(var n=t.context||this,i=0,o=x.length;o>i;i++)x[i].apply(n,[e,r,a||f,f])},t.error){var b=t.error;t.error=function(e,r,a){var n=t.context||this;b.apply(n,[e,r,a,f])}}if(t.complete){var T=t.complete;t.complete=function(e,r){var a=t.context||this;T.apply(a,[e,r,f])}}var j=e("input[type=file]:enabled",this).filter(function(){return""!==e(this).val()}),w=j.length>0,S="multipart/form-data",D=f.attr("enctype")==S||f.attr("encoding")==S,k=n.fileapi&&n.formdata;a("fileAPI :"+k);var A,L=(w||D)&&!k;t.iframe!==!1&&(t.iframe||L)?t.closeKeepAlive?e.get(t.closeKeepAlive,function(){A=s(v)}):A=s(v):A=(w||D)&&k?o(v):e.ajax(t),f.removeData("jqxhr").data("jqxhr",A);for(var E=0;E<h.length;E++)h[E]=null;return this.trigger("form-submit-notify",[this,t]),this},e.fn.ajaxForm=function(n){if(n=n||{},n.delegation=n.delegation&&e.isFunction(e.fn.on),!n.delegation&&0===this.length){var i={s:this.selector,c:this.context};return!e.isReady&&i.s?(a("DOM not ready, queuing ajaxForm"),e(function(){e(i.s,i.c).ajaxForm(n)}),this):(a("terminating; zero elements found by selector"+(e.isReady?"":" (DOM not ready)")),this)}return n.delegation?(e(document).off("submit.form-plugin",this.selector,t).off("click.form-plugin",this.selector,r).on("submit.form-plugin",this.selector,n,t).on("click.form-plugin",this.selector,n,r),this):this.ajaxFormUnbind().bind("submit.form-plugin",n,t).bind("click.form-plugin",n,r)},e.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")},e.fn.formToArray=function(t,r){var a=[];if(0===this.length)return a;var i,o=this[0],s=this.attr("id"),u=t?o.getElementsByTagName("*"):o.elements;if(u&&!/MSIE [678]/.test(navigator.userAgent)&&(u=e(u).get()),s&&(i=e(':input[form="'+s+'"]').get(),i.length&&(u=(u||[]).concat(i))),!u||!u.length)return a;var c,l,f,m,d,p,h;for(c=0,p=u.length;p>c;c++)if(d=u[c],f=d.name,f&&!d.disabled)if(t&&o.clk&&"image"==d.type)o.clk==d&&(a.push({name:f,value:e(d).val(),type:d.type}),a.push({name:f+".x",value:o.clk_x},{name:f+".y",value:o.clk_y}));else if(m=e.fieldValue(d,!0),m&&m.constructor==Array)for(r&&r.push(d),l=0,h=m.length;h>l;l++)a.push({name:f,value:m[l]});else if(n.fileapi&&"file"==d.type){r&&r.push(d);var v=d.files;if(v.length)for(l=0;l<v.length;l++)a.push({name:f,value:v[l],type:d.type});else a.push({name:f,value:"",type:d.type})}else null!==m&&"undefined"!=typeof m&&(r&&r.push(d),a.push({name:f,value:m,type:d.type,required:d.required}));if(!t&&o.clk){var g=e(o.clk),x=g[0];f=x.name,f&&!x.disabled&&"image"==x.type&&(a.push({name:f,value:g.val()}),a.push({name:f+".x",value:o.clk_x},{name:f+".y",value:o.clk_y}))}return a},e.fn.formSerialize=function(t){return e.param(this.formToArray(t))},e.fn.fieldSerialize=function(t){var r=[];return this.each(function(){var a=this.name;if(a){var n=e.fieldValue(this,t);if(n&&n.constructor==Array)for(var i=0,o=n.length;o>i;i++)r.push({name:a,value:n[i]});else null!==n&&"undefined"!=typeof n&&r.push({name:this.name,value:n})}}),e.param(r)},e.fn.fieldValue=function(t){for(var r=[],a=0,n=this.length;n>a;a++){var i=this[a],o=e.fieldValue(i,t);null===o||"undefined"==typeof o||o.constructor==Array&&!o.length||(o.constructor==Array?e.merge(r,o):r.push(o))}return r},e.fieldValue=function(t,r){var a=t.name,n=t.type,i=t.tagName.toLowerCase();if(void 0===r&&(r=!0),r&&(!a||t.disabled||"reset"==n||"button"==n||("checkbox"==n||"radio"==n)&&!t.checked||("submit"==n||"image"==n)&&t.form&&t.form.clk!=t||"select"==i&&-1==t.selectedIndex))return null;if("select"==i){var o=t.selectedIndex;if(0>o)return null;for(var s=[],u=t.options,c="select-one"==n,l=c?o+1:u.length,f=c?o:0;l>f;f++){var m=u[f];if(m.selected){var d=m.value;if(d||(d=m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value),c)return d;s.push(d)}}return s}return e(t).val()},e.fn.clearForm=function(t){return this.each(function(){e("input,select,textarea",this).clearFields(t)})},e.fn.clearFields=e.fn.clearInputs=function(t){var r=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var a=this.type,n=this.tagName.toLowerCase();r.test(a)||"textarea"==n?this.value="":"checkbox"==a||"radio"==a?this.checked=!1:"select"==n?this.selectedIndex=-1:"file"==a?/MSIE/.test(navigator.userAgent)?e(this).replaceWith(e(this).clone(!0)):e(this).val(""):t&&(t===!0&&/hidden/.test(a)||"string"==typeof t&&e(this).is(t))&&(this.value="")})},e.fn.resetForm=function(){return this.each(function(){("function"==typeof this.reset||"object"==typeof this.reset&&!this.reset.nodeType)&&this.reset()})},e.fn.enable=function(e){return void 0===e&&(e=!0),this.each(function(){this.disabled=!e})},e.fn.selected=function(t){return void 0===t&&(t=!0),this.each(function(){var r=this.type;if("checkbox"==r||"radio"==r)this.checked=t;else if("option"==this.tagName.toLowerCase()){var a=e(this).parent("select");t&&a[0]&&"select-one"==a[0].type&&a.find("option").selected(!1),this.selected=t}})},e.fn.ajaxSubmit.debug=!1});
+;
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Theme function for the progress bar.
+   *
+   * @return
+   *   The HTML for the progress bar.
+   */
+  Drupal.theme.progressBar = function (id) {
+    return '<div id="' + id + '" class="progress" aria-live="polite">' +
+      '<div class="progress__label">&nbsp;</div>' +
+      '<div class="progress__track"><div class="progress__bar"></div></div>' +
+      '<div class="progress__percentage"></div>' +
+      '<div class="progress__description">&nbsp;</div>' +
+      '</div>';
+  };
+
+  /**
+   * A progressbar object. Initialized with the given id. Must be inserted into
+   * the DOM afterwards through progressBar.element.
+   *
+   * method is the function which will perform the HTTP request to get the
+   * progress bar state. Either "GET" or "POST".
+   *
+   * e.g. pb = new Drupal.ProgressBar('myProgressBar');
+   *      some_element.appendChild(pb.element);
+   */
+  Drupal.ProgressBar = function (id, updateCallback, method, errorCallback) {
+    this.id = id;
+    this.method = method || 'GET';
+    this.updateCallback = updateCallback;
+    this.errorCallback = errorCallback;
+
+    // The WAI-ARIA setting aria-live="polite" will announce changes after users
+    // have completed their current activity and not interrupt the screen reader.
+    this.element = $(Drupal.theme('progressBar', id));
+  };
+
+  $.extend(Drupal.ProgressBar.prototype, {
+    /**
+     * Set the percentage and status message for the progressbar.
+     */
+    setProgress: function (percentage, message, label) {
+      if (percentage >= 0 && percentage <= 100) {
+        $(this.element).find('div.progress__bar').css('width', percentage + '%');
+        $(this.element).find('div.progress__percentage').html(percentage + '%');
+      }
+      $('div.progress__description', this.element).html(message);
+      $('div.progress__label', this.element).html(label);
+      if (this.updateCallback) {
+        this.updateCallback(percentage, message, this);
+      }
+    },
+
+    /**
+     * Start monitoring progress via Ajax.
+     */
+    startMonitoring: function (uri, delay) {
+      this.delay = delay;
+      this.uri = uri;
+      this.sendPing();
+    },
+
+    /**
+     * Stop monitoring progress via Ajax.
+     */
+    stopMonitoring: function () {
+      clearTimeout(this.timer);
+      // This allows monitoring to be stopped from within the callback.
+      this.uri = null;
+    },
+
+    /**
+     * Request progress data from server.
+     */
+    sendPing: function () {
+      if (this.timer) {
+        clearTimeout(this.timer);
+      }
+      if (this.uri) {
+        var pb = this;
+        // When doing a post request, you need non-null data. Otherwise a
+        // HTTP 411 or HTTP 406 (with Apache mod_security) error may result.
+        $.ajax({
+          type: this.method,
+          url: this.uri,
+          data: '',
+          dataType: 'json',
+          success: function (progress) {
+            // Display errors.
+            if (progress.status === 0) {
+              pb.displayError(progress.data);
+              return;
+            }
+            // Update display.
+            pb.setProgress(progress.percentage, progress.message, progress.label);
+            // Schedule next timer.
+            pb.timer = setTimeout(function () { pb.sendPing(); }, pb.delay);
+          },
+          error: function (xmlhttp) {
+            var e = new Drupal.AjaxError(xmlhttp, pb.uri);
+            pb.displayError('<pre>' + e.message + '</pre>');
+          }
+        });
+      }
+    },
+
+    /**
+     * Display errors on the page.
+     */
+    displayError: function (string) {
+      var error = $('<div class="messages messages--error"></div>').html(string);
+      $(this.element).before(error).hide();
+
+      if (this.errorCallback) {
+        this.errorCallback(this);
+      }
+    }
+  });
+
+})(jQuery, Drupal);
+;
+(function ($, window, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Attaches the Ajax behavior to each Ajax form element.
+   */
+  Drupal.behaviors.AJAX = {
+    attach: function (context, settings) {
+
+      function loadAjaxBehavior(base) {
+        var element_settings = settings.ajax[base];
+        if (typeof element_settings.selector === 'undefined') {
+          element_settings.selector = '#' + base;
+        }
+        $(element_settings.selector).once('drupal-ajax').each(function () {
+          element_settings.element = this;
+          element_settings.base = base;
+          Drupal.ajax(element_settings);
+        });
+      }
+
+      // Load all Ajax behaviors specified in the settings.
+      for (var base in settings.ajax) {
+        if (settings.ajax.hasOwnProperty(base)) {
+          loadAjaxBehavior(base);
+        }
+      }
+
+      // Bind Ajax behaviors to all items showing the class.
+      $('.use-ajax').once('ajax').each(function () {
+        var element_settings = {};
+        // Clicked links look better with the throbber than the progress bar.
+        element_settings.progress = {'type': 'throbber'};
+
+        // For anchor tags, these will go to the target of the anchor rather
+        // than the usual location.
+        if ($(this).attr('href')) {
+          element_settings.url = $(this).attr('href');
+          element_settings.event = 'click';
+        }
+        element_settings.dialogType = $(this).data('dialog-type');
+        element_settings.dialog = $(this).data('dialog-options');
+        element_settings.base = $(this).attr('id');
+        element_settings.element = this;
+        Drupal.ajax(element_settings);
+      });
+
+      // This class means to submit the form to the action using Ajax.
+      $('.use-ajax-submit').once('ajax').each(function () {
+        var element_settings = {};
+
+        // Ajax submits specified in this manner automatically submit to the
+        // normal form action.
+        element_settings.url = $(this.form).attr('action');
+        // Form submit button clicks need to tell the form what was clicked so
+        // it gets passed in the POST request.
+        element_settings.setClick = true;
+        // Form buttons use the 'click' event rather than mousedown.
+        element_settings.event = 'click';
+        // Clicked form buttons look better with the throbber than the progress bar.
+        element_settings.progress = {'type': 'throbber'};
+        element_settings.base = $(this).attr('id');
+        element_settings.element = this;
+
+        Drupal.ajax(element_settings);
+      });
+    }
+  };
+
+  /**
+   * Extends Error to provide handling for Errors in Ajax.
+   */
+  Drupal.AjaxError = function (xmlhttp, uri) {
+
+    var statusCode;
+    var statusText;
+    var pathText;
+    var responseText;
+    var readyStateText;
+    if (xmlhttp.status) {
+      statusCode = "\n" + Drupal.t("An AJAX HTTP error occurred.") + "\n" + Drupal.t("HTTP Result Code: !status", {'!status': xmlhttp.status});
+    }
+    else {
+      statusCode = "\n" + Drupal.t("An AJAX HTTP request terminated abnormally.");
+    }
+    statusCode += "\n" + Drupal.t("Debugging information follows.");
+    pathText = "\n" + Drupal.t("Path: !uri", {'!uri': uri});
+    statusText = '';
+    // In some cases, when statusCode === 0, xmlhttp.statusText may not be defined.
+    // Unfortunately, testing for it with typeof, etc, doesn't seem to catch that
+    // and the test causes an exception. So we need to catch the exception here.
+    try {
+      statusText = "\n" + Drupal.t("StatusText: !statusText", {'!statusText': $.trim(xmlhttp.statusText)});
+    }
+    catch (e) {
+      // empty
+    }
+
+    responseText = '';
+    // Again, we don't have a way to know for sure whether accessing
+    // xmlhttp.responseText is going to throw an exception. So we'll catch it.
+    try {
+      responseText = "\n" + Drupal.t("ResponseText: !responseText", {'!responseText': $.trim(xmlhttp.responseText)});
+    }
+    catch (e) {
+      // Empty.
+    }
+
+    // Make the responseText more readable by stripping HTML tags and newlines.
+    responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, "");
+    responseText = responseText.replace(/[\n]+\s+/g, "\n");
+
+    // We don't need readyState except for status == 0.
+    readyStateText = xmlhttp.status === 0 ? ("\n" + Drupal.t("ReadyState: !readyState", {'!readyState': xmlhttp.readyState})) : "";
+
+    this.message = statusCode + pathText + statusText + responseText + readyStateText;
+    this.name = 'AjaxError';
+  };
+
+  Drupal.AjaxError.prototype = new Error();
+  Drupal.AjaxError.prototype.constructor = Drupal.AjaxError;
+
+  /**
+   * Provides Ajax page updating via jQuery $.ajax.
+   *
+   * This function is designed to improve developer experience by wrapping the
+   * initialization of Drupal.Ajax objects and storing all created object in the
+   * Drupal.ajax.instances array.
+   *
+   * @example
+   * Drupal.behaviors.myCustomAJAXStuff = {
+   *   attach: function (context, settings) {
+   *
+   *     var ajaxSettings = {
+   *       url: 'my/url/path',
+   *       // If the old version of Drupal.ajax() needs to be used those
+   *       // properties can be added
+   *       base: 'myBase',
+   *       element: $(context).find('.someElement')
+   *     };
+   *
+   *     var myAjaxObject = Drupal.ajax(ajaxSettings);
+   *
+   *     // Declare a new Ajax command specifically for this Ajax object.
+   *     myAjaxObject.commands.insert = function (ajax, response, status) {
+   *       $('#my-wrapper').append(response.data);
+   *       alert('New content was appended to #my-wrapper');
+   *     };
+   *
+   *     // This command will remove this Ajax object from the page.
+   *     myAjaxObject.commands.destroyObject = function (ajax, response, status) {
+   *       Drupal.ajax.instances[this.instanceIndex] = null;
+   *     };
+   *
+   *     // Programmatically trigger the Ajax request.
+   *     myAjaxObject.execute();
+   *   }
+   * };
+   *
+   * @see Drupal.AjaxCommands
+   *
+   * @param {object} settings
+   *   The settings object passed to Drupal.Ajax constructor.
+   * @param {string} [settings.base]
+   *   Base is passed to Drupal.Ajax constructor as the 'base' parameter.
+   * @param {HTMLElement} [settings.element]
+   *   Element parameter of Drupal.Ajax constructor, element on which
+   *   event listeners will be bound.
+   *
+   * @return {Drupal.Ajax}
+   */
+  Drupal.ajax = function (settings) {
+    if (arguments.length !== 1) {
+      throw new Error('Drupal.ajax() function must be called with one configuration object only');
+    }
+    // Map those config keys to variables for the old Drupal.ajax function.
+    var base = settings.base || false;
+    var element = settings.element || false;
+    delete settings.base;
+    delete settings.element;
+
+    // By default do not display progress for ajax calls without an element.
+    if (!settings.progress && !element) {
+      settings.progress = false;
+    }
+
+    var ajax = new Drupal.Ajax(base, element, settings);
+    ajax.instanceIndex = Drupal.ajax.instances.length;
+    Drupal.ajax.instances.push(ajax);
+
+    return ajax;
+  };
+
+  /**
+   * Contains all created Ajax objects.
+   *
+   * @type {Array}
+   */
+  Drupal.ajax.instances = [];
+
+  /**
+   * Ajax constructor.
+   *
+   * The Ajax request returns an array of commands encoded in JSON, which is
+   * then executed to make any changes that are necessary to the page.
+   *
+   * Drupal uses this file to enhance form elements with #ajax['url'] and
+   * #ajax['wrapper'] properties. If set, this file will automatically be
+   * included to provide Ajax capabilities.
+   *
+   * @constructor
+   *
+   * @param {string} [base]
+   *   Base parameter of Drupal.Ajax constructor
+   * @param {HTMLElement} [element]
+   *   Element parameter of Drupal.Ajax constructor, element on which
+   *   event listeners will be bound.
+   * @param {object} element_settings
+   * @param {string} element_settings.url
+   *   Target of the Ajax request.
+   * @param {string} [element_settings.event]
+   *   Event bound to settings.element which will trigger the Ajax request.
+   * @param {string} [element_settings.method]
+   *   Name of the jQuery method used to insert new content in the targeted
+   *   element.
+   */
+  Drupal.Ajax = function (base, element, element_settings) {
+    var defaults = {
+      event: element ? 'mousedown' : null,
+      keypress: true,
+      selector: base ? '#' + base : null,
+      effect: 'none',
+      speed: 'none',
+      method: 'replaceWith',
+      progress: {
+        type: 'throbber',
+        message: Drupal.t('Please wait...')
+      },
+      submit: {
+        'js': true
+      }
+    };
+
+    $.extend(this, defaults, element_settings);
+
+    this.commands = new Drupal.AjaxCommands();
+    this.instanceIndex = false;
+
+    // @todo Remove this after refactoring the PHP code to:
+    //   - Call this 'selector'.
+    //   - Include the '#' for ID-based selectors.
+    //   - Support non-ID-based selectors.
+    if (this.wrapper) {
+      this.wrapper = '#' + this.wrapper;
+    }
+
+    this.element = element;
+    this.element_settings = element_settings;
+
+    // If there isn't a form, jQuery.ajax() will be used instead, allowing us to
+    // bind Ajax to links as well.
+    if (this.element && this.element.form) {
+      this.$form = $(this.element.form);
+    }
+
+    // If no Ajax callback URL was given, use the link href or form action.
+    if (!this.url) {
+      var $element = $(this.element);
+      if ($element.is('a')) {
+        this.url = $element.attr('href');
+      }
+      else if (this.element && element.form) {
+        this.url = this.$form.attr('action');
+
+        // @todo If there's a file input on this form, then jQuery will submit the
+        //   Ajax response with a hidden Iframe rather than the XHR object. If the
+        //   response to the submission is an HTTP redirect, then the Iframe will
+        //   follow it, but the server won't content negotiate it correctly,
+        //   because there won't be an ajax_iframe_upload POST variable. Until we
+        //   figure out a work around to this problem, we prevent Ajax-enabling
+        //   elements that submit to the same URL as the form when there's a file
+        //   input. For example, this means the Delete button on the edit form of
+        //   an Article node doesn't open its confirmation form in a dialog.
+        if (this.$form.find(':file').length) {
+          return;
+        }
+      }
+    }
+
+    // Replacing 'nojs' with 'ajax' in the URL allows for an easy method to let
+    // the server detect when it needs to degrade gracefully.
+    // There are four scenarios to check for:
+    // 1. /nojs/
+    // 2. /nojs$ - The end of a URL string.
+    // 3. /nojs? - Followed by a query (e.g. path/nojs?destination=foobar).
+    // 4. /nojs# - Followed by a fragment (e.g.: path/nojs#myfragment).
+    this.url = this.url.replace(/\/nojs(\/|$|\?|#)/g, '/ajax$1');
+
+    // Set the options for the ajaxSubmit function.
+    // The 'this' variable will not persist inside of the options object.
+    var ajax = this;
+    ajax.options = {
+      url: ajax.url,
+      data: ajax.submit,
+      beforeSerialize: function (element_settings, options) {
+        return ajax.beforeSerialize(element_settings, options);
+      },
+      beforeSubmit: function (form_values, element_settings, options) {
+        ajax.ajaxing = true;
+        return ajax.beforeSubmit(form_values, element_settings, options);
+      },
+      beforeSend: function (xmlhttprequest, options) {
+        ajax.ajaxing = true;
+        return ajax.beforeSend(xmlhttprequest, options);
+      },
+      success: function (response, status) {
+        // Sanity check for browser support (object expected).
+        // When using iFrame uploads, responses must be returned as a string.
+        if (typeof response === 'string') {
+          response = $.parseJSON(response);
+        }
+        return ajax.success(response, status);
+      },
+      complete: function (response, status) {
+        ajax.ajaxing = false;
+        if (status === 'error' || status === 'parsererror') {
+          return ajax.error(response, ajax.url);
+        }
+      },
+      dataType: 'json',
+      type: 'POST'
+    };
+
+    if (element_settings.dialog) {
+      ajax.options.data.dialogOptions = element_settings.dialog;
+    }
+
+    // Ensure that we have a valid URL by adding ? when no query parameter is
+    // yet available, otherwise append using &.
+    if (ajax.options.url.indexOf('?') === -1) {
+      ajax.options.url += '?';
+    }
+    else {
+      ajax.options.url += '&';
+    }
+    ajax.options.url += Drupal.ajax.WRAPPER_FORMAT + '=drupal_' + (element_settings.dialogType || 'ajax');
+
+    // Bind the ajaxSubmit function to the element event.
+    $(ajax.element).on(element_settings.event, function (event) {
+      return ajax.eventResponse(this, event);
+    });
+
+    // If necessary, enable keyboard submission so that Ajax behaviors
+    // can be triggered through keyboard input as well as e.g. a mousedown
+    // action.
+    if (element_settings.keypress) {
+      $(ajax.element).on('keypress', function (event) {
+        return ajax.keypressResponse(this, event);
+      });
+    }
+
+    // If necessary, prevent the browser default action of an additional event.
+    // For example, prevent the browser default action of a click, even if the
+    // Ajax behavior binds to mousedown.
+    if (element_settings.prevent) {
+      $(ajax.element).on(element_settings.prevent, false);
+    }
+  };
+
+  /**
+   * URL query attribute to indicate the wrapper used to render a request.
+   *
+   * The wrapper format determines how the HTML is wrapped, for example in a
+   * modal dialog.
+   */
+  Drupal.ajax.WRAPPER_FORMAT = '_wrapper_format';
+
+  /**
+   * Execute the ajax request.
+   *
+   * Allows developers to execute an Ajax request manually without specifying
+   * an event to respond to.
+   */
+  Drupal.Ajax.prototype.execute = function () {
+    // Do not perform another ajax command if one is already in progress.
+    if (this.ajaxing) {
+      return;
+    }
+
+    try {
+      this.beforeSerialize(this.element, this.options);
+      $.ajax(this.options);
+    }
+    catch (e) {
+      // Unset the ajax.ajaxing flag here because it won't be unset during
+      // the complete response.
+      this.ajaxing = false;
+      window.alert("An error occurred while attempting to process " + this.options.url + ": " + e.message);
+    }
+  };
+
+  /**
+   * Handle a key press.
+   *
+   * The Ajax object will, if instructed, bind to a key press response. This
+   * will test to see if the key press is valid to trigger this event and
+   * if it is, trigger it for us and prevent other keypresses from triggering.
+   * In this case we're handling RETURN and SPACEBAR keypresses (event codes 13
+   * and 32. RETURN is often used to submit a form when in a textfield, and
+   * SPACE is often used to activate an element without submitting.
+   */
+  Drupal.Ajax.prototype.keypressResponse = function (element, event) {
+    // Create a synonym for this to reduce code confusion.
+    var ajax = this;
+
+    // Detect enter key and space bar and allow the standard response for them,
+    // except for form elements of type 'text', 'tel', 'number' and 'textarea',
+    // where the spacebar activation causes inappropriate activation if
+    // #ajax['keypress'] is TRUE. On a text-type widget a space should always be a
+    // space.
+    if (event.which === 13 || (event.which === 32 && element.type !== 'text' &&
+      element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number')) {
+      event.preventDefault();
+      event.stopPropagation();
+      $(ajax.element_settings.element).trigger(ajax.element_settings.event);
+    }
+  };
+
+  /**
+   * Handle an event that triggers an Ajax response.
+   *
+   * When an event that triggers an Ajax response happens, this method will
+   * perform the actual Ajax call. It is bound to the event using
+   * bind() in the constructor, and it uses the options specified on the
+   * Ajax object.
+   */
+  Drupal.Ajax.prototype.eventResponse = function (element, event) {
+    event.preventDefault();
+    event.stopPropagation();
+
+    // Create a synonym for this to reduce code confusion.
+    var ajax = this;
+
+    // Do not perform another Ajax command if one is already in progress.
+    if (ajax.ajaxing) {
+      return;
+    }
+
+    try {
+      if (ajax.$form) {
+        // If setClick is set, we must set this to ensure that the button's
+        // value is passed.
+        if (ajax.setClick) {
+          // Mark the clicked button. 'form.clk' is a special variable for
+          // ajaxSubmit that tells the system which element got clicked to
+          // trigger the submit. Without it there would be no 'op' or
+          // equivalent.
+          element.form.clk = element;
+        }
+
+        ajax.$form.ajaxSubmit(ajax.options);
+      }
+      else {
+        ajax.beforeSerialize(ajax.element, ajax.options);
+        $.ajax(ajax.options);
+      }
+    }
+    catch (e) {
+      // Unset the ajax.ajaxing flag here because it won't be unset during
+      // the complete response.
+      ajax.ajaxing = false;
+      window.alert("An error occurred while attempting to process " + ajax.options.url + ": " + e.message);
+    }
+  };
+
+  /**
+   * Handler for the form serialization.
+   *
+   * Runs before the beforeSend() handler (see below), and unlike that one, runs
+   * before field data is collected.
+   */
+  Drupal.Ajax.prototype.beforeSerialize = function (element, options) {
+    // Allow detaching behaviors to update field values before collecting them.
+    // This is only needed when field values are added to the POST data, so only
+    // when there is a form such that this.$form.ajaxSubmit() is used instead of
+    // $.ajax(). When there is no form and $.ajax() is used, beforeSerialize()
+    // isn't called, but don't rely on that: explicitly check this.$form.
+    if (this.$form) {
+      var settings = this.settings || drupalSettings;
+      Drupal.detachBehaviors(this.$form.get(0), settings, 'serialize');
+    }
+
+    // Prevent duplicate HTML ids in the returned markup.
+    // @see \Drupal\Component\Utility\Html::getUniqueId()
+    var ids = document.querySelectorAll('[id]');
+    var ajaxHtmlIds = [];
+    var il = ids.length;
+    for (var i = 0; i < il; i++) {
+      ajaxHtmlIds.push(ids[i].id);
+    }
+    // Join IDs to minimize request size.
+    options.data.ajax_html_ids = ajaxHtmlIds.join(' ');
+
+    // Allow Drupal to return new JavaScript and CSS files to load without
+    // returning the ones already loaded.
+    // @see \Drupal\Core\Theme\AjaxBasePageNegotiator
+    // @see \Drupal\Core\Asset\LibraryDependencyResolverInterface::getMinimalRepresentativeSubset()
+    // @see system_js_settings_alter()
+    var pageState = drupalSettings.ajaxPageState;
+    options.data['ajax_page_state[theme]'] = pageState.theme;
+    options.data['ajax_page_state[theme_token]'] = pageState.theme_token;
+    options.data['ajax_page_state[libraries]'] = pageState.libraries;
+  };
+
+  /**
+   * Modify form values prior to form submission.
+   */
+  Drupal.Ajax.prototype.beforeSubmit = function (form_values, element, options) {
+    // This function is left empty to make it simple to override for modules
+    // that wish to add functionality here.
+  };
+
+  /**
+   * Prepare the Ajax request before it is sent.
+   */
+  Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
+    // For forms without file inputs, the jQuery Form plugin serializes the form
+    // values, and then calls jQuery's $.ajax() function, which invokes this
+    // handler. In this circumstance, options.extraData is never used. For forms
+    // with file inputs, the jQuery Form plugin uses the browser's normal form
+    // submission mechanism, but captures the response in a hidden IFRAME. In this
+    // circumstance, it calls this handler first, and then appends hidden fields
+    // to the form to submit the values in options.extraData. There is no simple
+    // way to know which submission mechanism will be used, so we add to extraData
+    // regardless, and allow it to be ignored in the former case.
+    if (this.$form) {
+      options.extraData = options.extraData || {};
+
+      // Let the server know when the IFRAME submission mechanism is used. The
+      // server can use this information to wrap the JSON response in a TEXTAREA,
+      // as per http://jquery.malsup.com/form/#file-upload.
+      options.extraData.ajax_iframe_upload = '1';
+
+      // The triggering element is about to be disabled (see below), but if it
+      // contains a value (e.g., a checkbox, textfield, select, etc.), ensure that
+      // value is included in the submission. As per above, submissions that use
+      // $.ajax() are already serialized prior to the element being disabled, so
+      // this is only needed for IFRAME submissions.
+      var v = $.fieldValue(this.element);
+      if (v !== null) {
+        options.extraData[this.element.name] = v;
+      }
+    }
+
+    // Disable the element that received the change to prevent user interface
+    // interaction while the Ajax request is in progress. ajax.ajaxing prevents
+    // the element from triggering a new request, but does not prevent the user
+    // from changing its value.
+    $(this.element).prop('disabled', true);
+
+    if (!this.progress || !this.progress.type) {
+      return;
+    }
+
+    // Insert progress indicator
+    var progressIndicatorMethod = 'setProgressIndicator' + this.progress.type.slice(0, 1).toUpperCase() + this.progress.type.slice(1).toLowerCase();
+    if (progressIndicatorMethod in this && typeof this[progressIndicatorMethod] === 'function') {
+      this[progressIndicatorMethod].call(this);
+      $(this.element).after(this.progress.element);
+    }
+  };
+
+  /**
+   * Sets the progress bar progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorBar = function () {
+    var progressBar = new Drupal.ProgressBar('ajax-progress-' + this.element.id, $.noop, this.progress.method, $.noop);
+    if (this.progress.message) {
+      progressBar.setProgress(-1, this.progress.message);
+    }
+    if (this.progress.url) {
+      progressBar.startMonitoring(this.progress.url, this.progress.interval || 1500);
+    }
+    this.progress.element = $(progressBar.element).addClass('ajax-progress ajax-progress-bar');
+    this.progress.object = progressBar;
+    $(this.element).after(this.progress.element);
+  };
+
+  /**
+   * Sets the throbber progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorThrobber = function () {
+    this.progress.element = $('<div class="ajax-progress ajax-progress-throbber"><div class="throbber">&nbsp;</div></div>');
+    if (this.progress.message) {
+      this.progress.element.find('.throbber').after('<div class="message">' + this.progress.message + '</div>');
+    }
+    $(this.element).after(this.progress.element);
+  };
+
+  /**
+   * Sets the fullscreen progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
+    this.progress.element = $('<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>');
+    $('body').after(this.progress.element);
+  };
+
+  /**
+   * Handler for the form redirection completion.
+   */
+  Drupal.Ajax.prototype.success = function (response, status) {
+    // Remove the progress element.
+    if (this.progress.element) {
+      $(this.progress.element).remove();
+    }
+    if (this.progress.object) {
+      this.progress.object.stopMonitoring();
+    }
+    $(this.element).prop('disabled', false);
+
+    for (var i in response) {
+      if (response.hasOwnProperty(i) && response[i].command && this.commands[response[i].command]) {
+        this.commands[response[i].command](this, response[i], status);
+      }
+    }
+
+    // Reattach behaviors, if they were detached in beforeSerialize(). The
+    // attachBehaviors() called on the new content from processing the response
+    // commands is not sufficient, because behaviors from the entire form need
+    // to be reattached.
+    if (this.$form) {
+      var settings = this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+
+    // Remove any response-specific settings so they don't get used on the next
+    // call by mistake.
+    this.settings = null;
+  };
+
+  /**
+   * Build an effect object which tells us how to apply the effect when adding new HTML.
+   */
+  Drupal.Ajax.prototype.getEffect = function (response) {
+    var type = response.effect || this.effect;
+    var speed = response.speed || this.speed;
+
+    var effect = {};
+    if (type === 'none') {
+      effect.showEffect = 'show';
+      effect.hideEffect = 'hide';
+      effect.showSpeed = '';
+    }
+    else if (type === 'fade') {
+      effect.showEffect = 'fadeIn';
+      effect.hideEffect = 'fadeOut';
+      effect.showSpeed = speed;
+    }
+    else {
+      effect.showEffect = type + 'Toggle';
+      effect.hideEffect = type + 'Toggle';
+      effect.showSpeed = speed;
+    }
+
+    return effect;
+  };
+
+  /**
+   * Handler for the form redirection error.
+   */
+  Drupal.Ajax.prototype.error = function (response, uri) {
+    // Remove the progress element.
+    if (this.progress.element) {
+      $(this.progress.element).remove();
+    }
+    if (this.progress.object) {
+      this.progress.object.stopMonitoring();
+    }
+    // Undo hide.
+    $(this.wrapper).show();
+    // Re-enable the element.
+    $(this.element).prop('disabled', false);
+    // Reattach behaviors, if they were detached in beforeSerialize().
+    if (this.$form) {
+      var settings = response.settings || this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+    throw new Drupal.AjaxError(response, uri);
+  };
+
+  /**
+   * Provide a series of commands that the server can request the client perform.
+   */
+  Drupal.AjaxCommands = function () {};
+  Drupal.AjaxCommands.prototype = {
+    /**
+     * Command to insert new content into the DOM.
+     */
+    insert: function (ajax, response, status) {
+      // Get information from the response. If it is not there, default to
+      // our presets.
+      var wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
+      var method = response.method || ajax.method;
+      var effect = ajax.getEffect(response);
+      var settings;
+
+      // We don't know what response.data contains: it might be a string of text
+      // without HTML, so don't rely on jQuery correctly interpreting
+      // $(response.data) as new HTML rather than a CSS selector. Also, if
+      // response.data contains top-level text nodes, they get lost with either
+      // $(response.data) or $('<div></div>').replaceWith(response.data).
+      var new_content_wrapped = $('<div></div>').html(response.data);
+      var new_content = new_content_wrapped.contents();
+
+      // For legacy reasons, the effects processing code assumes that new_content
+      // consists of a single top-level element. Also, it has not been
+      // sufficiently tested whether attachBehaviors() can be successfully called
+      // with a context object that includes top-level text nodes. However, to
+      // give developers full control of the HTML appearing in the page, and to
+      // enable Ajax content to be inserted in places where DIV elements are not
+      // allowed (e.g., within TABLE, TR, and SPAN parents), we check if the new
+      // content satisfies the requirement of a single top-level element, and
+      // only use the container DIV created above when it doesn't. For more
+      // information, please see http://drupal.org/node/736066.
+      if (new_content.length !== 1 || new_content.get(0).nodeType !== 1) {
+        new_content = new_content_wrapped;
+      }
+
+      // If removing content from the wrapper, detach behaviors first.
+      switch (method) {
+        case 'html':
+        case 'replaceWith':
+        case 'replaceAll':
+        case 'empty':
+        case 'remove':
+          settings = response.settings || ajax.settings || drupalSettings;
+          Drupal.detachBehaviors(wrapper.get(0), settings);
+      }
+
+      // Add the new content to the page.
+      wrapper[method](new_content);
+
+      // Immediately hide the new content if we're using any effects.
+      if (effect.showEffect !== 'show') {
+        new_content.hide();
+      }
+
+      // Determine which effect to use and what content will receive the
+      // effect, then show the new content.
+      if (new_content.find('.ajax-new-content').length > 0) {
+        new_content.find('.ajax-new-content').hide();
+        new_content.show();
+        new_content.find('.ajax-new-content')[effect.showEffect](effect.showSpeed);
+      }
+      else if (effect.showEffect !== 'show') {
+        new_content[effect.showEffect](effect.showSpeed);
+      }
+
+      // Attach all JavaScript behaviors to the new content, if it was successfully
+      // added to the page, this if statement allows #ajax['wrapper'] to be
+      // optional.
+      if (new_content.parents('html').length > 0) {
+        // Apply any settings from the returned JSON if available.
+        settings = response.settings || ajax.settings || drupalSettings;
+        Drupal.attachBehaviors(new_content.get(0), settings);
+      }
+    },
+
+    /**
+     * Command to remove a chunk from the page.
+     */
+    remove: function (ajax, response, status) {
+      var settings = response.settings || ajax.settings || drupalSettings;
+      $(response.selector).each(function () {
+        Drupal.detachBehaviors(this, settings);
+      })
+        .remove();
+    },
+
+    /**
+     * Command to mark a chunk changed.
+     */
+    changed: function (ajax, response, status) {
+      if (!$(response.selector).hasClass('ajax-changed')) {
+        $(response.selector).addClass('ajax-changed');
+        if (response.asterisk) {
+          $(response.selector).find(response.asterisk).append(' <abbr class="ajax-changed" title="' + Drupal.t('Changed') + '">*</abbr> ');
+        }
+      }
+    },
+
+    /**
+     * Command to provide an alert.
+     */
+    alert: function (ajax, response, status) {
+      window.alert(response.text, response.title);
+    },
+
+    /**
+     * Command to set the window.location, redirecting the browser.
+     */
+    redirect: function (ajax, response, status) {
+      window.location = response.url;
+    },
+
+    /**
+     * Command to provide the jQuery css() function.
+     */
+    css: function (ajax, response, status) {
+      $(response.selector).css(response.argument);
+    },
+
+    /**
+     * Command to set the settings that will be used for other commands in this response.
+     */
+    settings: function (ajax, response, status) {
+      if (response.merge) {
+        $.extend(true, drupalSettings, response.settings);
+      }
+      else {
+        ajax.settings = response.settings;
+      }
+    },
+
+    /**
+     * Command to attach data using jQuery's data API.
+     */
+    data: function (ajax, response, status) {
+      $(response.selector).data(response.name, response.value);
+    },
+
+    /**
+     * Command to apply a jQuery method.
+     */
+    invoke: function (ajax, response, status) {
+      var $element = $(response.selector);
+      $element[response.method].apply($element, response.args);
+    },
+
+    /**
+     * Command to restripe a table.
+     */
+    restripe: function (ajax, response, status) {
+      // :even and :odd are reversed because jQuery counts from 0 and
+      // we count from 1, so we're out of sync.
+      // Match immediate children of the parent element to allow nesting.
+      $(response.selector).find('> tbody > tr:visible, > tr:visible')
+        .removeClass('odd even')
+        .filter(':even').addClass('odd').end()
+        .filter(':odd').addClass('even');
+    },
+
+    /**
+     * Command to update a form's build ID.
+     */
+    update_build_id: function (ajax, response, status) {
+      $('input[name="form_build_id"][value="' + response.old + '"]').val(response.new);
+    },
+
+    /**
+     * Command to add css.
+     *
+     * Uses the proprietary addImport method if available as browsers which
+     * support that method ignore @import statements in dynamically added
+     * stylesheets.
+     */
+    add_css: function (ajax, response, status) {
+      // Add the styles in the normal way.
+      $('head').prepend(response.data);
+      // Add imports in the styles using the addImport method if available.
+      var match;
+      var importMatch = /^@import url\("(.*)"\);$/igm;
+      if (document.styleSheets[0].addImport && importMatch.test(response.data)) {
+        importMatch.lastIndex = 0;
+        do {
+          match = importMatch.exec(response.data);
+          document.styleSheets[0].addImport(match[1]);
+        } while (match);
+      }
+    }
+  };
+
+})(jQuery, this, Drupal, drupalSettings);
+;
+/*!
+ * jQuery UI Tabs 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/tabs/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./widget"],e):e(jQuery)})(function(e){return e.widget("ui.tabs",{version:"1.11.4",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var e=/#.*$/;return function(t){var n,r;t=t.cloneNode(!1),n=t.href.replace(e,""),r=location.href.replace(e,"");try{n=decodeURIComponent(n)}catch(i){}try{r=decodeURIComponent(r)}catch(i){}return t.hash.length>1&&n===r}}(),_create:function(){var t=this,n=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",n.collapsible),this._processTabs(),n.active=this._initialActive(),e.isArray(n.disabled)&&(n.disabled=e.unique(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(n.active):this.active=e(),this._refresh(),this.active.length&&this.load(n.active)},_initialActive:function(){var t=this.options.active,n=this.options.collapsible,r=location.hash.substring(1);if(t===null){r&&this.tabs.each(function(n,i){if(e(i).attr("aria-controls")===r)return t=n,!1}),t===null&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active")));if(t===null||t===-1)t=this.tabs.length?0:!1}return t!==!1&&(t=this.tabs.index(this.tabs.eq(t)),t===-1&&(t=n?!1:0)),!n&&t===!1&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(this.document[0].activeElement).closest("li"),r=this.tabs.index(n),i=!0;if(this._handlePageNav(t))return;switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:t.preventDefault(),clearTimeout(this.activating),this._activate(r);return;case e.ui.keyCode.ENTER:t.preventDefault(),clearTimeout(this.activating),this._activate(r===this.options.active?!1:r);return;default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),!t.ctrlKey&&!t.metaKey&&(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",r)},this.delay))},_panelKeydown:function(t){if(this._handlePageNav(t))return;t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP)return this._activate(this._focusNextTab(this.options.active-1,!1)),!0;if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN)return this._activate(this._focusNextTab(this.options.active+1,!0)),!0},_findNextTab:function(t,n){function i(){return t>r&&(t=0),t<0&&(t=r),t}var r=this.tabs.length-1;while(e.inArray(i(),this.options.disabled)!==-1)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="disabled"){this._setupDisabled(t);return}this._super(e,t),e==="collapsible"&&(this.element.toggleClass("ui-tabs-collapsible",t),!t&&this.options.active===!1&&this._activate(0)),e==="event"&&this._setupEvents(t),e==="heightStyle"&&this._setupHeightStyle(t)},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,n=this.tablist.children(":has(a[href])");t.disabled=e.map(n.filter(".ui-state-disabled"),function(e){return n.index(e)}),this._processTabs(),t.active===!1||!this.anchors.length?(t.active=!1,this.active=e()):this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this,n=this.tabs,r=this.anchors,i=this.panels;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(n,r){var i,s,o,u=e(r).uniqueId().attr("id"),a=e(r).closest("li"),f=a.attr("aria-controls");t._isLocal(r)?(i=r.hash,o=i.substring(1),s=t.element.find(t._sanitizeSelector(i))):(o=a.attr("aria-controls")||e({}).uniqueId()[0].id,i="#"+o,s=t.element.find(i),s.length||(s=t._createPanel(o),s.insertAfter(t.panels[n-1]||t.tablist)),s.attr("aria-live","polite")),s.length&&(t.panels=t.panels.add(s)),f&&a.data("ui-tabs-aria-controls",f),a.attr({"aria-controls":o,"aria-labelledby":u}),s.attr("aria-labelledby",u)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),n&&(this._off(n.not(this.tabs)),this._off(r.not(this.anchors)),this._off(i.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var n=0,r;r=this.tabs[n];n++)t===!0||e.inArray(n,t)!==-1?e(r).addClass("ui-state-disabled").attr("aria-disabled","true"):e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var n={};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(e){e.preventDefault()}}),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r=this.element.parent();t==="fill"?(n=r.height(),n-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),r=t.css("position");if(r==="absolute"||r==="fixed")return;n-=t.outerHeight(!0)}),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):t==="auto"&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i.closest("li"),o=s[0]===r[0],u=o&&n.collapsible,a=u?e():this._getPanelForTab(s),f=r.length?this._getPanelForTab(r):e(),l={oldTab:r,oldPanel:f,newTab:u?e():s,newPanel:a};t.preventDefault();if(s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",t,l)===!1)return;n.active=u?!1:this.tabs.index(s),this.active=o?e():s,this.xhr&&this.xhr.abort(),!f.length&&!a.length&&e.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,l)},_toggle:function(t,n){function o(){r.running=!1,r._trigger("activate",t,n)}function u(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,o):(i.show(),o())}var r=this,i=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s.hide(),u()),s.attr("aria-hidden","true"),n.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),i.attr("aria-hidden","false"),n.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);if(r[0]===this.active[0])return;r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return typeof e=="string"&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),this.options.heightStyle!=="content"&&this.panels.css("height","")},enable:function(t){var n=this.options.disabled;if(n===!1)return;t===undefined?n=!1:(t=this._getIndex(t),e.isArray(n)?n=e.map(n,function(e){return e!==t?e:null}):n=e.map(this.tabs,function(e,n){return n!==t?n:null})),this._setupDisabled(n)},disable:function(t){var n=this.options.disabled;if(n===!0)return;if(t===undefined)n=!0;else{t=this._getIndex(t);if(e.inArray(t,n)!==-1)return;e.isArray(n)?n=e.merge([t],n).sort():n=[t]}this._setupDisabled(n)},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),s=i.find(".ui-tabs-anchor"),o=this._getPanelForTab(i),u={tab:i,panel:o},a=function(e,t){t==="abort"&&r.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr};if(this._isLocal(s[0]))return;this.xhr=e.ajax(this._ajaxSettings(s,n,u)),this.xhr&&this.xhr.statusText!=="canceled"&&(i.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.done(function(e,t,i){setTimeout(function(){o.html(e),r._trigger("load",n,u),a(i,t)},1)}).fail(function(e,t){setTimeout(function(){a(e,t)},1)}))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href"),beforeSend:function(t,s){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:s},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}})});;
+/*!
+ * jQuery UI Button 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/button/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./widget"],e):e(jQuery)})(function(e){var t,n="ui-button ui-widget ui-state-default ui-corner-all",r="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",i=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},s=function(t){var n=t.name,r=t.form,i=e([]);return n&&(n=n.replace(/'/g,"\\'"),r?i=e(r).find("[name='"+n+"'][type=radio]"):i=e("[name='"+n+"'][type=radio]",t.ownerDocument).filter(function(){return!this.form})),i};return e.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,i),typeof this.options.disabled!="boolean"?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var r=this,o=this.options,u=this.type==="checkbox"||this.type==="radio",a=u?"":"ui-state-active";o.label===null&&(o.label=this.type==="input"?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(n).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){if(o.disabled)return;this===t&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){if(o.disabled)return;e(this).removeClass(a)}).bind("click"+this.eventNamespace,function(e){o.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),u&&this.element.bind("change"+this.eventNamespace,function(){r.refresh()}),this.type==="checkbox"?this.buttonElement.bind("click"+this.eventNamespace,function(){if(o.disabled)return!1}):this.type==="radio"?this.buttonElement.bind("click"+this.eventNamespace,function(){if(o.disabled)return!1;e(this).addClass("ui-state-active"),r.buttonElement.attr("aria-pressed","true");var t=r.element[0];s(t).not(t).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){if(o.disabled)return!1;e(this).addClass("ui-state-active"),t=this,r.document.one("mouseup",function(){t=null})}).bind("mouseup"+this.eventNamespace,function(){if(o.disabled)return!1;e(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(t){if(o.disabled)return!1;(t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active")}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",o.disabled),this._resetButton()},_determineButtonType:function(){var e,t,n;this.element.is("[type=checkbox]")?this.type="checkbox":this.element.is("[type=radio]")?this.type="radio":this.element.is("input")?this.type="input":this.type="button",this.type==="checkbox"||this.type==="radio"?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),n=this.element.is(":checked"),n&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",n)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(n+" ui-state-active "+r).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){this._super(e,t);if(e==="disabled"){this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),t&&(this.type==="checkbox"||this.type==="radio"?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active"));return}this._resetButton()},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),this.type==="radio"?s(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):this.type==="checkbox"&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if(this.type==="input"){this.options.label&&this.element.val(this.options.label);return}var t=this.buttonElement.removeClass(r),n=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),i=this.options.icons,s=i.primary&&i.secondary,o=[];i.primary||i.secondary?(this.options.text&&o.push("ui-button-text-icon"+(s?"s":i.primary?"-primary":"-secondary")),i.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+i.primary+"'></span>"),i.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+i.secondary+"'></span>"),this.options.text||(o.push(s?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(n)))):o.push("ui-button-text-only"),t.addClass(o.join(" "))}}),e.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){e==="disabled"&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t=this.element.css("direction")==="rtl",n=this.element.find(this.options.items),r=n.filter(":ui-button");n.not(":ui-button").button(),r.button("refresh"),this.buttons=n.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}}),e.ui.button});;
+/*!
+ * jQuery UI Mouse 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/mouse/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./widget"],e):e(jQuery)})(function(e){var t=!1;return e(document).mouseup(function(){t=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(n){if(!0===e.data(n.target,t.widgetName+".preventClickEvent"))return e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(n){if(t)return;this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(n),this._mouseDownEvent=n;var r=this,i=n.which===1,s=typeof this.options.cancel=="string"&&n.target.nodeName?e(n.target).closest(this.options.cancel).length:!1;if(!i||s||!this._mouseCapture(n))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){r.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(n)&&this._mouseDelayMet(n)){this._mouseStarted=this._mouseStart(n)!==!1;if(!this._mouseStarted)return n.preventDefault(),!0}return!0===e.data(n.target,this.widgetName+".preventClickEvent")&&e.removeData(n.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return r._mouseMove(e)},this._mouseUpDelegate=function(e){return r._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),n.preventDefault(),t=!0,!0},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}if(t.which||t.button)this._mouseMoved=!0;return this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(n){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,n.target===this._mouseDownEvent.target&&e.data(n.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(n)),t=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})});;
+/*!
+ * jQuery UI Draggable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/draggable/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./mouse","./widget"],e):e(jQuery)})(function(e){return e.widget("ui.draggable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){this.options.helper==="original"&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),e==="handle"&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){if((this.helper||this.element).is(".ui-draggable-dragging")){this.destroyOnClear=!0;return}this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy()},_mouseCapture:function(t){var n=this.options;return this._blurActiveElement(t),this.helper||n.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(this._blockFrames(n.iframeFix===!0?"iframe":n.iframeFix),!0):!1)},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this);return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var n=this.document[0];if(!this.handleElement.is(t.target))return;try{n.activeElement&&n.activeElement.nodeName.toLowerCase()!=="body"&&e(n.activeElement).blur()}catch(r){}},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return e(this).css("position")==="fixed"}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._normalizeRightBottom(),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,n){this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=this,r=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(r=e.ui.ddmanager.drop(this,t)),this.dropped&&(r=this.dropped,this.dropped=!1),this.options.revert==="invalid"&&!r||this.options.revert==="valid"&&r||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,r)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){n._trigger("stop",t)!==!1&&n._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper),i=r?e(n.helper.apply(this.element[0],[t])):n.helper==="clone"?this.element.clone().removeAttr("id"):this.element;return i.parents("body").length||i.appendTo(n.appendTo==="parent"?this.element[0].parentNode:n.appendTo),r&&i[0]===this.element[0]&&this._setPositionRelative(),i[0]!==this.element[0]&&!/(fixed|absolute)/.test(i.css("position"))&&i.css("position","absolute"),i},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),n=this.document[0];return this.cssPosition==="absolute"&&this.scrollParent[0]!==n&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition!=="relative")return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,r,i=this.options,s=this.document[0];this.relativeContainer=null;if(!i.containment){this.containment=null;return}if(i.containment==="window"){this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||s.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return}if(i.containment==="document"){this.containment=[0,0,e(s).width()-this.helperProportions.width-this.margins.left,(e(s).height()||s.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return}if(i.containment.constructor===Array){this.containment=i.containment;return}i.containment==="parent"&&(i.containment=this.helper[0].parentNode),n=e(i.containment),r=n[0];if(!r)return;t=/(scroll|auto)/.test(n.css("overflow")),this.containment=[(parseInt(n.css("borderLeftWidth"),10)||0)+(parseInt(n.css("paddingLeft"),10)||0),(parseInt(n.css("borderTopWidth"),10)||0)+(parseInt(n.css("paddingTop"),10)||0),(t?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(n.css("borderRightWidth"),10)||0)-(parseInt(n.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(n.css("borderBottomWidth"),10)||0)-(parseInt(n.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=n},_convertPositionTo:function(e,t){t||(t=this.position);var n=e==="absolute"?1:-1,r=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*n+this.offset.parent.top*n-(this.cssPosition==="fixed"?-this.offset.scroll.top:r?0:this.offset.scroll.top)*n,left:t.left+this.offset.relative.left*n+this.offset.parent.left*n-(this.cssPosition==="fixed"?-this.offset.scroll.left:r?0:this.offset.scroll.left)*n}},_generatePosition:function(e,t){var n,r,i,s,o=this.options,u=this._isRootNode(this.scrollParent[0]),a=e.pageX,f=e.pageY;if(!u||!this.offset.scroll)this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()};return t&&(this.containment&&(this.relativeContainer?(r=this.relativeContainer.offset(),n=[this.containment[0]+r.left,this.containment[1]+r.top,this.containment[2]+r.left,this.containment[3]+r.top]):n=this.containment,e.pageX-this.offset.click.left<n[0]&&(a=n[0]+this.offset.click.left),e.pageY-this.offset.click.top<n[1]&&(f=n[1]+this.offset.click.top),e.pageX-this.offset.click.left>n[2]&&(a=n[2]+this.offset.click.left),e.pageY-this.offset.click.top>n[3]&&(f=n[3]+this.offset.click.top)),o.grid&&(i=o.grid[1]?this.originalPageY+Math.round((f-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,f=n?i-this.offset.click.top>=n[1]||i-this.offset.click.top>n[3]?i:i-this.offset.click.top>=n[1]?i-o.grid[1]:i+o.grid[1]:i,s=o.grid[0]?this.originalPageX+Math.round((a-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,a=n?s-this.offset.click.left>=n[0]||s-this.offset.click.left>n[2]?s:s-this.offset.click.left>=n[0]?s-o.grid[0]:s+o.grid[0]:s),o.axis==="y"&&(a=this.originalPageX),o.axis==="x"&&(f=this.originalPageY)),{top:f-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition==="fixed"?-this.offset.scroll.top:u?0:this.offset.scroll.top),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition==="fixed"?-this.offset.scroll.left:u?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!==this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){this.options.axis!=="y"&&this.helper.css("right")!=="auto"&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),this.options.axis!=="x"&&this.helper.css("bottom")!=="auto"&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(t,n,r){return r=r||this._uiHash(),e.ui.plugin.call(this,t,[n,r,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),r.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,n,r)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,n,r){var i=e.extend({},n,{item:r.element});r.sortables=[],e(r.options.connectToSortable).each(function(){var n=e(this).sortable("instance");n&&!n.options.disabled&&(r.sortables.push(n),n.refreshPositions(),n._trigger("activate",t,i))})},stop:function(t,n,r){var i=e.extend({},n,{item:r.element});r.cancelHelperRemoval=!1,e.each(r.sortables,function(){var e=this;e.isOver?(e.isOver=0,r.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,i))})},drag:function(t,n,r){e.each(r.sortables,function(){var i=!1,s=this;s.positionAbs=r.positionAbs,s.helperProportions=r.helperProportions,s.offset.click=r.offset.click,s._intersectsWith(s.containerCache)&&(i=!0,e.each(r.sortables,function(){return this.positionAbs=r.positionAbs,this.helperProportions=r.helperProportions,this.offset.click=r.offset.click,this!==s&&this._intersectsWith(this.containerCache)&&e.contains(s.element[0],this.element[0])&&(i=!1),i})),i?(s.isOver||(s.isOver=1,r._parent=n.helper.parent(),s.currentItem=n.helper.appendTo(s.element).data("ui-sortable-item",!0),s.options._helper=s.options.helper,s.options.helper=function(){return n.helper[0]},t.target=s.currentItem[0],s._mouseCapture(t,!0),s._mouseStart(t,!0,!0),s.offset.click.top=r.offset.click.top,s.offset.click.left=r.offset.click.left,s.offset.parent.left-=r.offset.parent.left-s.offset.parent.left,s.offset.parent.top-=r.offset.parent.top-s.offset.parent.top,r._trigger("toSortable",t),r.dropped=s.element,e.each(r.sortables,function(){this.refreshPositions()}),r.currentItem=r.element,s.fromOutside=r),s.currentItem&&(s._mouseDrag(t),n.position=s.position)):s.isOver&&(s.isOver=0,s.cancelHelperRemoval=!0,s.options._revert=s.options.revert,s.options.revert=!1,s._trigger("out",t,s._uiHash(s)),s._mouseStop(t,!0),s.options.revert=s.options._revert,s.options.helper=s.options._helper,s.placeholder&&s.placeholder.remove(),n.helper.appendTo(r._parent),r._refreshOffsets(t),n.position=r._generatePosition(t,!0),r._trigger("fromSortable",t),r.dropped=!1,e.each(r.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,n,r){var i=e("body"),s=r.options;i.css("cursor")&&(s._cursor=i.css("cursor")),i.css("cursor",s.cursor)},stop:function(t,n,r){var i=r.options;i._cursor&&e("body").css("cursor",i._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n,r){var i=e(n.helper),s=r.options;i.css("opacity")&&(s._opacity=i.css("opacity")),i.css("opacity",s.opacity)},stop:function(t,n,r){var i=r.options;i._opacity&&e(n.helper).css("opacity",i._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&n.scrollParentNotHidden[0].tagName!=="HTML"&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(t,n,r){var i=r.options,s=!1,o=r.scrollParentNotHidden[0],u=r.document[0];if(o!==u&&o.tagName!=="HTML"){if(!i.axis||i.axis!=="x")r.overflowOffset.top+o.offsetHeight-t.pageY<i.scrollSensitivity?o.scrollTop=s=o.scrollTop+i.scrollSpeed:t.pageY-r.overflowOffset.top<i.scrollSensitivity&&(o.scrollTop=s=o.scrollTop-i.scrollSpeed);if(!i.axis||i.axis!=="y")r.overflowOffset.left+o.offsetWidth-t.pageX<i.scrollSensitivity?o.scrollLeft=s=o.scrollLeft+i.scrollSpeed:t.pageX-r.overflowOffset.left<i.scrollSensitivity&&(o.scrollLeft=s=o.scrollLeft-i.scrollSpeed)}else{if(!i.axis||i.axis!=="x")t.pageY-e(u).scrollTop()<i.scrollSensitivity?s=e(u).scrollTop(e(u).scrollTop()-i.scrollSpeed):e(window).height()-(t.pageY-e(u).scrollTop())<i.scrollSensitivity&&(s=e(u).scrollTop(e(u).scrollTop()+i.scrollSpeed));if(!i.axis||i.axis!=="y")t.pageX-e(u).scrollLeft()<i.scrollSensitivity?s=e(u).scrollLeft(e(u).scrollLeft()-i.scrollSpeed):e(window).width()-(t.pageX-e(u).scrollLeft())<i.scrollSensitivity&&(s=e(u).scrollLeft(e(u).scrollLeft()+i.scrollSpeed))}s!==!1&&e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(r,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,n,r){var i=r.options;r.snapElements=[],e(i.snap.constructor!==String?i.snap.items||":data(ui-draggable)":i.snap).each(function(){var t=e(this),n=t.offset();this!==r.element[0]&&r.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:n.top,left:n.left})})},drag:function(t,n,r){var i,s,o,u,a,f,l,c,h,p,d=r.options,v=d.snapTolerance,m=n.offset.left,g=m+r.helperProportions.width,y=n.offset.top,b=y+r.helperProportions.height;for(h=r.snapElements.length-1;h>=0;h--){a=r.snapElements[h].left-r.margins.left,f=a+r.snapElements[h].width,l=r.snapElements[h].top-r.margins.top,c=l+r.snapElements[h].height;if(g<a-v||m>f+v||b<l-v||y>c+v||!e.contains(r.snapElements[h].item.ownerDocument,r.snapElements[h].item)){r.snapElements[h].snapping&&r.options.snap.release&&r.options.snap.release.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[h].item})),r.snapElements[h].snapping=!1;continue}d.snapMode!=="inner"&&(i=Math.abs(l-b)<=v,s=Math.abs(c-y)<=v,o=Math.abs(a-g)<=v,u=Math.abs(f-m)<=v,i&&(n.position.top=r._convertPositionTo("relative",{top:l-r.helperProportions.height,left:0}).top),s&&(n.position.top=r._convertPositionTo("relative",{top:c,left:0}).top),o&&(n.position.left=r._convertPositionTo("relative",{top:0,left:a-r.helperProportions.width}).left),u&&(n.position.left=r._convertPositionTo("relative",{top:0,left:f}).left)),p=i||s||o||u,d.snapMode!=="outer"&&(i=Math.abs(l-y)<=v,s=Math.abs(c-b)<=v,o=Math.abs(a-m)<=v,u=Math.abs(f-g)<=v,i&&(n.position.top=r._convertPositionTo("relative",{top:l,left:0}).top),s&&(n.position.top=r._convertPositionTo("relative",{top:c-r.helperProportions.height,left:0}).top),o&&(n.position.left=r._convertPositionTo("relative",{top:0,left:a}).left),u&&(n.position.left=r._convertPositionTo("relative",{top:0,left:f-r.helperProportions.width}).left)),!r.snapElements[h].snapping&&(i||s||o||u||p)&&r.options.snap.snap&&r.options.snap.snap.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[h].item})),r.snapElements[h].snapping=i||s||o||u||p}}}),e.ui.plugin.add("draggable","stack",{start:function(t,n,r){var i,s=r.options,o=e.makeArray(e(s.stack)).sort(function(t,n){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(n).css("zIndex"),10)||0)});if(!o.length)return;i=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",i+t)}),this.css("zIndex",i+o.length)}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,n,r){var i=e(n.helper),s=r.options;i.css("zIndex")&&(s._zIndex=i.css("zIndex")),i.css("zIndex",s.zIndex)},stop:function(t,n,r){var i=r.options;i._zIndex&&e(n.helper).css("zIndex",i._zIndex)}}),e.ui.draggable});;
+/*!
+ * jQuery UI Position 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){return function(){function h(e,t,n){return[parseFloat(e[0])*(l.test(e[0])?t/100:1),parseFloat(e[1])*(l.test(e[1])?n/100:1)]}function p(t,n){return parseInt(e.css(t,n),10)||0}function d(t){var n=t[0];return n.nodeType===9?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(n)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:n.preventDefault?{width:0,height:0,offset:{top:n.pageY,left:n.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var t,n,r=Math.max,i=Math.abs,s=Math.round,o=/left|center|right/,u=/top|center|bottom/,a=/[\+\-]\d+(\.[\d]+)?%?/,f=/^\w+/,l=/%$/,c=e.fn.position;e.position={scrollbarWidth:function(){if(t!==undefined)return t;var n,r,i=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),s=i.children()[0];return e("body").append(i),n=s.offsetWidth,i.css("overflow","scroll"),r=s.offsetWidth,n===r&&(r=i[0].clientWidth),i.remove(),t=n-r},getScrollInfo:function(t){var n=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),r=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width<t.element[0].scrollWidth,s=r==="scroll"||r==="auto"&&t.height<t.element[0].scrollHeight;return{width:s?e.position.scrollbarWidth():0,height:i?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var n=e(t||window),r=e.isWindow(n[0]),i=!!n[0]&&n[0].nodeType===9;return{element:n,isWindow:r,isDocument:i,offset:n.offset()||{left:0,top:0},scrollLeft:n.scrollLeft(),scrollTop:n.scrollTop(),width:r||i?n.width():n.outerWidth(),height:r||i?n.height():n.outerHeight()}}},e.fn.position=function(t){if(!t||!t.of)return c.apply(this,arguments);t=e.extend({},t);var l,v,m,g,y,b,w=e(t.of),E=e.position.getWithinInfo(t.within),S=e.position.getScrollInfo(E),x=(t.collision||"flip").split(" "),T={};return b=d(w),w[0].preventDefault&&(t.at="left top"),v=b.width,m=b.height,g=b.offset,y=e.extend({},g),e.each(["my","at"],function(){var e=(t[this]||"").split(" "),n,r;e.length===1&&(e=o.test(e[0])?e.concat(["center"]):u.test(e[0])?["center"].concat(e):["center","center"]),e[0]=o.test(e[0])?e[0]:"center",e[1]=u.test(e[1])?e[1]:"center",n=a.exec(e[0]),r=a.exec(e[1]),T[this]=[n?n[0]:0,r?r[0]:0],t[this]=[f.exec(e[0])[0],f.exec(e[1])[0]]}),x.length===1&&(x[1]=x[0]),t.at[0]==="right"?y.left+=v:t.at[0]==="center"&&(y.left+=v/2),t.at[1]==="bottom"?y.top+=m:t.at[1]==="center"&&(y.top+=m/2),l=h(T.at,v,m),y.left+=l[0],y.top+=l[1],this.each(function(){var o,u,a=e(this),f=a.outerWidth(),c=a.outerHeight(),d=p(this,"marginLeft"),b=p(this,"marginTop"),N=f+d+p(this,"marginRight")+S.width,C=c+b+p(this,"marginBottom")+S.height,k=e.extend({},y),L=h(T.my,a.outerWidth(),a.outerHeight());t.my[0]==="right"?k.left-=f:t.my[0]==="center"&&(k.left-=f/2),t.my[1]==="bottom"?k.top-=c:t.my[1]==="center"&&(k.top-=c/2),k.left+=L[0],k.top+=L[1],n||(k.left=s(k.left),k.top=s(k.top)),o={marginLeft:d,marginTop:b},e.each(["left","top"],function(n,r){e.ui.position[x[n]]&&e.ui.position[x[n]][r](k,{targetWidth:v,targetHeight:m,elemWidth:f,elemHeight:c,collisionPosition:o,collisionWidth:N,collisionHeight:C,offset:[l[0]+L[0],l[1]+L[1]],my:t.my,at:t.at,within:E,elem:a})}),t.using&&(u=function(e){var n=g.left-k.left,s=n+v-f,o=g.top-k.top,u=o+m-c,l={target:{element:w,left:g.left,top:g.top,width:v,height:m},element:{element:a,left:k.left,top:k.top,width:f,height:c},horizontal:s<0?"left":n>0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};v<f&&i(n+s)<v&&(l.horizontal="center"),m<c&&i(o+u)<m&&(l.vertical="middle"),r(i(n),i(s))>r(i(o),i(u))?l.important="horizontal":l.important="vertical",t.using.call(this,e,l)}),a.offset(e.extend(k,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p<i(a))e.left+=l+c+h}else if(f>0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)<f)e.left+=l+c+h}},top:function(e,t){var n=t.within,r=n.offset.top+n.scrollTop,s=n.height,o=n.isWindow?n.scrollTop:n.offset.top,u=e.top-t.collisionPosition.marginTop,a=u-o,f=u+t.collisionHeight-s-o,l=t.my[1]==="top",c=l?-t.elemHeight:t.my[1]==="bottom"?t.elemHeight:0,h=t.at[1]==="top"?t.targetHeight:t.at[1]==="bottom"?-t.targetHeight:0,p=-2*t.offset[1],d,v;if(a<0){v=e.top+c+h+p+t.collisionHeight-s-r;if(v<0||v<i(a))e.top+=c+h+p}else if(f>0){d=e.top-t.collisionPosition.marginTop+c+h+p-o;if(d>0||i(d)<f)e.top+=c+h+p}}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,r,i,s,o,u=document.getElementsByTagName("body")[0],a=document.createElement("div");t=document.createElement(u?"div":"body"),i={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},u&&e.extend(i,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in i)t.style[o]=i[o];t.appendChild(a),r=u||document.documentElement,r.insertBefore(t,r.firstChild),a.style.cssText="position: absolute; left: 10.7432222px;",s=e(a).offset().left,n=s>10&&s<11,t.innerHTML="",r.removeChild(t)}()}(),e.ui.position});;
+/*!
+ * jQuery UI Resizable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/resizable/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./mouse","./widget"],e):e(jQuery)})(function(e){return e.widget("ui.resizable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,n){if(e(t).css("overflow")==="hidden")return!1;var r=n&&n==="left"?"scrollLeft":"scrollTop",i=!1;return t[r]>0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)},_create:function(){var t,n,r,i,s,o=this,u=this.options;this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!u.aspectRatio,aspectRatio:u.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:u.helper||u.ghost||u.animate?u.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=u.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e();if(this.handles.constructor===String){this.handles==="all"&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={};for(n=0;n<t.length;n++)r=e.trim(t[n]),s="ui-resizable-"+r,i=e("<div class='ui-resizable-handle "+s+"'></div>"),i.css({zIndex:u.zIndex}),"se"===r&&i.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[r]=".ui-resizable-"+r,this.element.append(i)}this._renderAxis=function(t){var n,r,i,s;t=t||this.element;for(n in this.handles){if(this.handles[n].constructor===String)this.handles[n]=this.element.children(this.handles[n]).first().show();else if(this.handles[n].jquery||this.handles[n].nodeType)this.handles[n]=e(this.handles[n]),this._on(this.handles[n],{mousedown:o._mouseDown});this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(r=e(this.handles[n],this.element),s=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth(),i=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[n])}},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=i&&i[1]?i[1]:"se")}),u.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(u.disabled)return;e(this).removeClass("ui-resizable-autohide"),o._handles.show()}).mouseleave(function(){if(u.disabled)return;o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,n=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(n(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),n(this.originalElement),this},_mouseCapture:function(t){var n,r,i=!1;for(n in this.handles){r=e(this.handles[n])[0];if(r===t.target||e.contains(r,t.target))i=!0}return!this.options.disabled&&i},_mouseStart:function(t){var n,r,i,s=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),n=this._num(this.helper.css("left")),r=this._num(this.helper.css("top")),s.containment&&(n+=e(s.containment).scrollLeft()||0,r+=e(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:n,top:r},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:n,top:r},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof s.aspectRatio=="number"?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,i=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor",i==="auto"?this.axis+"-resize":i),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var n,r,i=this.originalMousePosition,s=this.axis,o=t.pageX-i.left||0,u=t.pageY-i.top||0,a=this._change[s];this._updatePrevProperties();if(!a)return!1;n=a.apply(this,[t,o,u]),this._updateVirtualBoundaries(t.shiftKey);if(this._aspectRatio||t.shiftKey)n=this._updateRatio(n,t);return n=this._respectSize(n,t),this._updateCache(n),this._propagate("resize",t),r=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(r)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1},_mouseStop:function(t){this.resizing=!1;var n,r,i,s,o,u,a,f=this.options,l=this;return this._helper&&(n=this._proportionallyResizeElements,r=n.length&&/textarea/i.test(n[0].nodeName),i=r&&this._hasScroll(n[0],"left")?0:l.sizeDiff.height,s=r?0:l.sizeDiff.width,o={width:l.helper.width()-s,height:l.helper.height()-i},u=parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left)||null,a=parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top)||null,f.animate||this.element.css(e.extend(o,{top:a,left:u})),l.helper.height(l.size.height),l.helper.width(l.size.width),this._helper&&!f.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,n,r,i,s,o=this.options;s={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:Infinity,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:Infinity};if(this._aspectRatio||e)t=s.minHeight*this.aspectRatio,r=s.minWidth/this.aspectRatio,n=s.maxHeight*this.aspectRatio,i=s.maxWidth/this.aspectRatio,t>s.minWidth&&(s.minWidth=t),r>s.minHeight&&(s.minHeight=r),n<s.maxWidth&&(s.maxWidth=n),i<s.maxHeight&&(s.maxHeight=i);this._vBoundaries=s},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,n=this.size,r=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),r==="sw"&&(e.left=t.left+(n.width-e.width),e.top=null),r==="nw"&&(e.top=t.top+(n.height-e.height),e.left=t.left+(n.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,n=this.axis,r=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,i=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,s=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,u=this.originalPosition.left+this.originalSize.width,a=this.position.top+this.size.height,f=/sw|nw|w/.test(n),l=/nw|ne|n/.test(n);return s&&(e.width=t.minWidth),o&&(e.height=t.minHeight),r&&(e.width=t.maxWidth),i&&(e.height=t.maxHeight),s&&f&&(e.left=u-t.minWidth),r&&f&&(e.left=u-t.maxWidth),o&&l&&(e.top=a-t.minHeight),i&&l&&(e.top=a-t.maxHeight),!e.width&&!e.height&&!e.left&&e.top?e.top=null:!e.width&&!e.height&&!e.top&&e.left&&(e.left=null),e},_getPaddingPlusBorderDimensions:function(e){var t=0,n=[],r=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],i=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];for(;t<4;t++)n[t]=parseInt(r[t],10)||0,n[t]+=parseInt(i[t],10)||0;return{height:n[0]+n[2],width:n[1]+n[3]}},_proportionallyResize:function(){if(!this._proportionallyResizeElements.length)return;var e,t=0,n=this.helper||this.element;for(;t<this._proportionallyResizeElements.length;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:n.height()-this.outerDimensions.height||0,width:n.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,n=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var n=this.originalSize,r=this.originalPosition;return{left:r.left+t,width:n.width-t}},n:function(e,t,n){var r=this.originalSize,i=this.originalPosition;return{top:i.top+n,height:r.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!=="resize"&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var n=e(this).resizable("instance"),r=n.options,i=n._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&n._hasScroll(i[0],"left")?0:n.sizeDiff.height,u=s?0:n.sizeDiff.width,a={width:n.size.width-u,height:n.size.height-o},f=parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left)||null,l=parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top)||null;n.element.animate(e.extend(a,l&&f?{top:l,left:f}:{}),{duration:r.animateDuration,easing:r.animateEasing,step:function(){var r={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};i&&i.length&&e(i[0]).css({width:r.width,height:r.height}),n._updateCache(r),n._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,n,r,i,s,o,u,a=e(this).resizable("instance"),f=a.options,l=a.element,c=f.containment,h=c instanceof e?c.get(0):/parent/.test(c)?l.parent().get(0):c;if(!h)return;a.containerElement=e(h),/document/.test(c)||c===document?(a.containerOffset={left:0,top:0},a.containerPosition={left:0,top:0},a.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(h),n=[],e(["Top","Right","Left","Bottom"]).each(function(e,r){n[e]=a._num(t.css("padding"+r))}),a.containerOffset=t.offset(),a.containerPosition=t.position(),a.containerSize={height:t.innerHeight()-n[3],width:t.innerWidth()-n[1]},r=a.containerOffset,i=a.containerSize.height,s=a.containerSize.width,o=a._hasScroll(h,"left")?h.scrollWidth:s,u=a._hasScroll(h)?h.scrollHeight:i,a.parentData={element:h,left:r.left,top:r.top,width:o,height:u})},resize:function(t){var n,r,i,s,o=e(this).resizable("instance"),u=o.options,a=o.containerOffset,f=o.position,l=o._aspectRatio||t.shiftKey,c={top:0,left:0},h=o.containerElement,p=!0;h[0]!==document&&/static/.test(h.css("position"))&&(c=a),f.left<(o._helper?a.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-a.left:o.position.left-c.left),l&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=u.helper?a.left:0),f.top<(o._helper?a.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-a.top:o.position.top),l&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?a.top:0),i=o.containerElement.get(0)===o.element.parent().get(0),s=/relative|absolute/.test(o.containerElement.css("position")),i&&s?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),n=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-c.left:o.offset.left-a.left)),r=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-c.top:o.offset.top-a.top)),n+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-n,l&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),r+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-r,l&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),n=t.options,r=t.containerOffset,i=t.containerPosition,s=t.containerElement,o=e(t.helper),u=o.offset(),a=o.outerWidth()-t.sizeDiff.width,f=o.outerHeight()-t.sizeDiff.height;t._helper&&!n.animate&&/relative/.test(s.css("position"))&&e(this).css({left:u.left-i.left-r.left,width:a,height:f}),t._helper&&!n.animate&&/static/.test(s.css("position"))&&e(this).css({left:u.left-i.left-r.left,width:a,height:f})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),n=t.options;e(n.alsoResize).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})},resize:function(t,n){var r=e(this).resizable("instance"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0};e(i.alsoResize).each(function(){var t=e(this),r=e(this).data("ui-resizable-alsoresize"),i={},s=t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(s,function(e,t){var n=(r[t]||0)+(u[t]||0);n&&n>=0&&(i[t]=n||null)}),t.css(i)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),n=t.options,r=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:r.height,width:r.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof n.ghost=="string"?n.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,n=e(this).resizable("instance"),r=n.options,i=n.size,s=n.originalSize,o=n.originalPosition,u=n.axis,a=typeof r.grid=="number"?[r.grid,r.grid]:r.grid,f=a[0]||1,l=a[1]||1,c=Math.round((i.width-s.width)/f)*f,h=Math.round((i.height-s.height)/l)*l,p=s.width+c,d=s.height+h,v=r.maxWidth&&r.maxWidth<p,m=r.maxHeight&&r.maxHeight<d,g=r.minWidth&&r.minWidth>p,y=r.minHeight&&r.minHeight>d;r.grid=a,g&&(p+=f),y&&(d+=l),v&&(p-=f),m&&(d-=l);if(/^(se|s|e)$/.test(u))n.size.width=p,n.size.height=d;else if(/^(ne)$/.test(u))n.size.width=p,n.size.height=d,n.position.top=o.top-h;else if(/^(sw)$/.test(u))n.size.width=p,n.size.height=d,n.position.left=o.left-c;else{if(d-l<=0||p-f<=0)t=n._getPaddingPlusBorderDimensions(this);d-l>0?(n.size.height=d,n.position.top=o.top-h):(d=l-t.height,n.size.height=d,n.position.top=o.top+s.height-d),p-f>0?(n.size.width=p,n.position.left=o.left-c):(p=f-t.width,n.size.width=p,n.position.left=o.left+s.width-p)}}}),e.ui.resizable});;
+/*!
+ * jQuery UI Dialog 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/dialog/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./widget","./button","./draggable","./mouse","./position","./resizable"],e):e(jQuery)})(function(e){return e.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var n,r=this;if(!this._isOpen||this._trigger("beforeClose",t)===!1)return;this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance();if(!this.opener.filter(":focusable").focus().length)try{n=this.document[0].activeElement,n&&n.nodeName.toLowerCase()!=="body"&&e(n).blur()}catch(i){}this._hide(this.uiDialog,this.options.hide,function(){r._trigger("close",t)})},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,n){var r=!1,i=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),s=Math.max.apply(null,i);return s>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",s+1),r=!0),r&&!n&&this._trigger("focus",t),r},open:function(){var t=this;if(this._isOpen){this._moveToTop()&&this._focusTabbable();return}this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open")},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function n(){var t=this.document[0].activeElement,n=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);n||this._focusTabbable()}t.preventDefault(),n.call(this),this._delay(n)},_createWrapper:function(){this.uiDialog=e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE){t.preventDefault(),this.close(t);return}if(t.keyCode!==e.ui.keyCode.TAB||t.isDefaultPrevented())return;var n=this.uiDialog.find(":tabbable"),r=n.filter(":first"),i=n.filter(":last");t.target!==i[0]&&t.target!==this.uiDialog[0]||!!t.shiftKey?(t.target===r[0]||t.target===this.uiDialog[0])&&t.shiftKey&&(this._delay(function(){i.focus()}),t.preventDefault()):(this._delay(function(){r.focus()}),t.preventDefault())},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html("&#160;"),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,n=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty();if(e.isEmptyObject(n)||e.isArray(n)&&!n.length){this.uiDialog.removeClass("ui-dialog-buttons");return}e.each(n,function(n,r){var i,s;r=e.isFunction(r)?{click:r,text:n}:r,r=e.extend({type:"button"},r),i=r.click,r.click=function(){i.apply(t.element[0],arguments)},s={icons:r.icons,text:r.showText},delete r.icons,delete r.showText,e("<button></button>",r).button(s).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog)},_makeDraggable:function(){function r(e){return{position:e.position,offset:e.offset}}var t=this,n=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){e(this).addClass("ui-dialog-dragging"),t._blockFrames(),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,s){var o=s.offset.left-t.document.scrollLeft(),u=s.offset.top-t.document.scrollTop();n.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" "+"top"+(u>=0?"+":"")+u,of:t.window},e(this).removeClass("ui-dialog-dragging"),t._unblockFrames(),t._trigger("dragStop",i,r(s))}})},_makeResizable:function(){function o(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var t=this,n=this.options,r=n.resizable,i=this.uiDialog.css("position"),s=typeof r=="string"?r:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:n.maxWidth,maxHeight:n.maxHeight,minWidth:n.minWidth,minHeight:this._minHeight(),handles:s,start:function(n,r){e(this).addClass("ui-dialog-resizing"),t._blockFrames(),t._trigger("resizeStart",n,o(r))},resize:function(e,n){t._trigger("resize",e,o(n))},stop:function(r,i){var s=t.uiDialog.offset(),u=s.left-t.document.scrollLeft(),a=s.top-t.document.scrollTop();n.height=t.uiDialog.height(),n.width=t.uiDialog.width(),n.position={my:"left top",at:"left"+(u>=0?"+":"")+u+" "+"top"+(a>=0?"+":"")+a,of:t.window},e(this).removeClass("ui-dialog-resizing"),t._unblockFrames(),t._trigger("resizeStop",r,o(i))}}).css("position",i)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=e(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),n=e.inArray(this,t);n!==-1&&t.splice(n,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var n=this,r=!1,i={};e.each(t,function(e,t){n._setOption(e,t),e in n.sizeRelatedOptions&&(r=!0),e in n.resizableRelatedOptions&&(i[e]=t)}),r&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",i)},_setOption:function(e,t){var n,r,i=this.uiDialog;e==="dialogClass"&&i.removeClass(this.options.dialogClass).addClass(t);if(e==="disabled")return;this._super(e,t),e==="appendTo"&&this.uiDialog.appendTo(this._appendTo()),e==="buttons"&&this._createButtons(),e==="closeText"&&this.uiDialogTitlebarClose.button({label:""+t}),e==="draggable"&&(n=i.is(":data(ui-draggable)"),n&&!t&&i.draggable("destroy"),!n&&t&&this._makeDraggable()),e==="position"&&this._position(),e==="resizable"&&(r=i.is(":data(ui-resizable)"),r&&!t&&i.resizable("destroy"),r&&typeof t=="string"&&i.resizable("option","handles",t),!r&&t!==!1&&this._makeResizable()),e==="title"&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title"))},_size:function(){var e,t,n,r=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),r.minWidth>r.width&&(r.width=r.minWidth),e=this.uiDialog.css({height:"auto",width:r.width}).outerHeight(),t=Math.max(0,r.minHeight-e),n=typeof r.maxHeight=="number"?Math.max(0,r.maxHeight-e):"none",r.height==="auto"?this.element.css({minHeight:t,maxHeight:n,height:"auto"}):this.element.height(Math.max(0,r.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(!this.options.modal)return;var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){if(t)return;this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)},_destroyOverlay:function(){if(!this.options.modal)return;if(this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}})});;
+/**
+ * Drupal's states library.
+ */
+(function ($) {
+
+  "use strict";
+
+  /**
+   * The base States namespace.
+   *
+   * Having the local states variable allows us to use the States namespace
+   * without having to always declare "Drupal.states".
+   */
+  var states = Drupal.states = {
+    // An array of functions that should be postponed.
+    postponed: []
+  };
+
+  /**
+   * Attaches the states.
+   */
+  Drupal.behaviors.states = {
+    attach: function (context, settings) {
+      var $states = $(context).find('[data-drupal-states]');
+      var config;
+      var state;
+      var il = $states.length;
+      for (var i = 0; i < il; i++) {
+        config = JSON.parse($states[i].getAttribute('data-drupal-states'));
+        for (state in config) {
+          if (config.hasOwnProperty(state)) {
+            new states.Dependent({
+              element: $($states[i]),
+              state: states.State.sanitize(state),
+              constraints: config[state]
+            });
+          }
+        }
+      }
+
+      // Execute all postponed functions now.
+      while (states.postponed.length) {
+        (states.postponed.shift())();
+      }
+    }
+  };
+
+  /**
+   * Object representing an element that depends on other elements.
+   *
+   * @param args
+   *   Object with the following keys (all of which are required):
+   *   - element: A jQuery object of the dependent element
+   *   - state: A State object describing the state that is dependent
+   *   - constraints: An object with dependency specifications. Lists all elements
+   *     that this element depends on. It can be nested and can contain arbitrary
+   *     AND and OR clauses.
+   */
+  states.Dependent = function (args) {
+    $.extend(this, {values: {}, oldValue: null}, args);
+
+    this.dependees = this.getDependees();
+    for (var selector in this.dependees) {
+      if (this.dependees.hasOwnProperty(selector)) {
+        this.initializeDependee(selector, this.dependees[selector]);
+      }
+    }
+  };
+
+  /**
+   * Comparison functions for comparing the value of an element with the
+   * specification from the dependency settings. If the object type can't be
+   * found in this list, the === operator is used by default.
+   */
+  states.Dependent.comparisons = {
+    'RegExp': function (reference, value) {
+      return reference.test(value);
+    },
+    'Function': function (reference, value) {
+      // The "reference" variable is a comparison function.
+      return reference(value);
+    },
+    'Number': function (reference, value) {
+      // If "reference" is a number and "value" is a string, then cast reference
+      // as a string before applying the strict comparison in compare(). Otherwise
+      // numeric keys in the form's #states array fail to match string values
+      // returned from jQuery's val().
+      return (typeof value === 'string') ? compare(reference.toString(), value) : compare(reference, value);
+    }
+  };
+
+  states.Dependent.prototype = {
+    /**
+     * Initializes one of the elements this dependent depends on.
+     *
+     * @param selector
+     *   The CSS selector describing the dependee.
+     * @param dependeeStates
+     *   The list of states that have to be monitored for tracking the
+     *   dependee's compliance status.
+     */
+    initializeDependee: function (selector, dependeeStates) {
+      var state;
+      var self = this;
+
+      function stateEventHandler(e) {
+        self.update(e.data.selector, e.data.state, e.value);
+      }
+
+      // Cache for the states of this dependee.
+      this.values[selector] = {};
+
+      for (var i in dependeeStates) {
+        if (dependeeStates.hasOwnProperty(i)) {
+          state = dependeeStates[i];
+          // Make sure we're not initializing this selector/state combination twice.
+          if ($.inArray(state, dependeeStates) === -1) {
+            continue;
+          }
+
+          state = states.State.sanitize(state);
+
+          // Initialize the value of this state.
+          this.values[selector][state.name] = null;
+
+          // Monitor state changes of the specified state for this dependee.
+          $(selector).on('state:' + state, {selector: selector, state: state}, stateEventHandler);
+
+          // Make sure the event we just bound ourselves to is actually fired.
+          new states.Trigger({selector: selector, state: state});
+        }
+      }
+    },
+
+    /**
+     * Compares a value with a reference value.
+     *
+     * @param reference
+     *   The value used for reference.
+     * @param selector
+     *   CSS selector describing the dependee.
+     * @param state
+     *   A State object describing the dependee's updated state.
+     *
+     * @return
+     *   true or false.
+     */
+    compare: function (reference, selector, state) {
+      var value = this.values[selector][state.name];
+      if (reference.constructor.name in states.Dependent.comparisons) {
+        // Use a custom compare function for certain reference value types.
+        return states.Dependent.comparisons[reference.constructor.name](reference, value);
+      }
+      else {
+        // Do a plain comparison otherwise.
+        return compare(reference, value);
+      }
+    },
+
+    /**
+     * Update the value of a dependee's state.
+     *
+     * @param selector
+     *   CSS selector describing the dependee.
+     * @param state
+     *   A State object describing the dependee's updated state.
+     * @param value
+     *   The new value for the dependee's updated state.
+     */
+    update: function (selector, state, value) {
+      // Only act when the 'new' value is actually new.
+      if (value !== this.values[selector][state.name]) {
+        this.values[selector][state.name] = value;
+        this.reevaluate();
+      }
+    },
+
+    /**
+     * Triggers change events in case a state changed.
+     */
+    reevaluate: function () {
+      // Check whether any constraint for this dependent state is satisfied.
+      var value = this.verifyConstraints(this.constraints);
+
+      // Only invoke a state change event when the value actually changed.
+      if (value !== this.oldValue) {
+        // Store the new value so that we can compare later whether the value
+        // actually changed.
+        this.oldValue = value;
+
+        // Normalize the value to match the normalized state name.
+        value = invert(value, this.state.invert);
+
+        // By adding "trigger: true", we ensure that state changes don't go into
+        // infinite loops.
+        this.element.trigger({type: 'state:' + this.state, value: value, trigger: true});
+      }
+    },
+
+    /**
+     * Evaluates child constraints to determine if a constraint is satisfied.
+     *
+     * @param constraints
+     *   A constraint object or an array of constraints.
+     * @param selector
+     *   The selector for these constraints. If undefined, there isn't yet a
+     *   selector that these constraints apply to. In that case, the keys of the
+     *   object are interpreted as the selector if encountered.
+     *
+     * @return
+     *   true or false, depending on whether these constraints are satisfied.
+     */
+    verifyConstraints: function (constraints, selector) {
+      var result;
+      if ($.isArray(constraints)) {
+        // This constraint is an array (OR or XOR).
+        var hasXor = $.inArray('xor', constraints) === -1;
+        var len = constraints.length;
+        for (var i = 0; i < len; i++) {
+          if (constraints[i] !== 'xor') {
+            var constraint = this.checkConstraints(constraints[i], selector, i);
+            // Return if this is OR and we have a satisfied constraint or if this
+            // is XOR and we have a second satisfied constraint.
+            if (constraint && (hasXor || result)) {
+              return hasXor;
+            }
+            result = result || constraint;
+          }
+        }
+      }
+      // Make sure we don't try to iterate over things other than objects. This
+      // shouldn't normally occur, but in case the condition definition is bogus,
+      // we don't want to end up with an infinite loop.
+      else if ($.isPlainObject(constraints)) {
+        // This constraint is an object (AND).
+        for (var n in constraints) {
+          if (constraints.hasOwnProperty(n)) {
+            result = ternary(result, this.checkConstraints(constraints[n], selector, n));
+            // False and anything else will evaluate to false, so return when any
+            // false condition is found.
+            if (result === false) { return false; }
+          }
+        }
+      }
+      return result;
+    },
+
+    /**
+     * Checks whether the value matches the requirements for this constraint.
+     *
+     * @param value
+     *   Either the value of a state or an array/object of constraints. In the
+     *   latter case, resolving the constraint continues.
+     * @param selector
+     *   The selector for this constraint. If undefined, there isn't yet a
+     *   selector that this constraint applies to. In that case, the state key is
+     *   propagates to a selector and resolving continues.
+     * @param state
+     *   The state to check for this constraint. If undefined, resolving
+     *   continues.
+     *   If both selector and state aren't undefined and valid non-numeric
+     *   strings, a lookup for the actual value of that selector's state is
+     *   performed. This parameter is not a State object but a pristine state
+     *   string.
+     *
+     * @return
+     *   true or false, depending on whether this constraint is satisfied.
+     */
+    checkConstraints: function (value, selector, state) {
+      // Normalize the last parameter. If it's non-numeric, we treat it either as
+      // a selector (in case there isn't one yet) or as a trigger/state.
+      if (typeof state !== 'string' || (/[0-9]/).test(state[0])) {
+        state = null;
+      }
+      else if (typeof selector === 'undefined') {
+        // Propagate the state to the selector when there isn't one yet.
+        selector = state;
+        state = null;
+      }
+
+      if (state !== null) {
+        // constraints is the actual constraints of an element to check for.
+        state = states.State.sanitize(state);
+        return invert(this.compare(value, selector, state), state.invert);
+      }
+      else {
+        // Resolve this constraint as an AND/OR operator.
+        return this.verifyConstraints(value, selector);
+      }
+    },
+
+    /**
+     * Gathers information about all required triggers.
+     */
+    getDependees: function () {
+      var cache = {};
+      // Swivel the lookup function so that we can record all available selector-
+      // state combinations for initialization.
+      var _compare = this.compare;
+      this.compare = function (reference, selector, state) {
+        (cache[selector] || (cache[selector] = [])).push(state.name);
+        // Return nothing (=== undefined) so that the constraint loops are not
+        // broken.
+      };
+
+      // This call doesn't actually verify anything but uses the resolving
+      // mechanism to go through the constraints array, trying to look up each
+      // value. Since we swivelled the compare function, this comparison returns
+      // undefined and lookup continues until the very end. Instead of lookup up
+      // the value, we record that combination of selector and state so that we
+      // can initialize all triggers.
+      this.verifyConstraints(this.constraints);
+      // Restore the original function.
+      this.compare = _compare;
+
+      return cache;
+    }
+  };
+
+  states.Trigger = function (args) {
+    $.extend(this, args);
+
+    if (this.state in states.Trigger.states) {
+      this.element = $(this.selector);
+
+      // Only call the trigger initializer when it wasn't yet attached to this
+      // element. Otherwise we'd end up with duplicate events.
+      if (!this.element.data('trigger:' + this.state)) {
+        this.initialize();
+      }
+    }
+  };
+
+  states.Trigger.prototype = {
+    initialize: function () {
+      var trigger = states.Trigger.states[this.state];
+
+      if (typeof trigger === 'function') {
+        // We have a custom trigger initialization function.
+        trigger.call(window, this.element);
+      }
+      else {
+        for (var event in trigger) {
+          if (trigger.hasOwnProperty(event)) {
+            this.defaultTrigger(event, trigger[event]);
+          }
+        }
+      }
+
+      // Mark this trigger as initialized for this element.
+      this.element.data('trigger:' + this.state, true);
+    },
+
+    defaultTrigger: function (event, valueFn) {
+      var oldValue = valueFn.call(this.element);
+
+      // Attach the event callback.
+      this.element.on(event, $.proxy(function (e) {
+        var value = valueFn.call(this.element, e);
+        // Only trigger the event if the value has actually changed.
+        if (oldValue !== value) {
+          this.element.trigger({type: 'state:' + this.state, value: value, oldValue: oldValue});
+          oldValue = value;
+        }
+      }, this));
+
+      states.postponed.push($.proxy(function () {
+        // Trigger the event once for initialization purposes.
+        this.element.trigger({type: 'state:' + this.state, value: oldValue, oldValue: null});
+      }, this));
+    }
+  };
+
+  /**
+   * This list of states contains functions that are used to monitor the state
+   * of an element. Whenever an element depends on the state of another element,
+   * one of these trigger functions is added to the dependee so that the
+   * dependent element can be updated.
+   */
+  states.Trigger.states = {
+    // 'empty' describes the state to be monitored
+    empty: {
+      // 'keyup' is the (native DOM) event that we watch for.
+      'keyup': function () {
+        // The function associated to that trigger returns the new value for the
+        // state.
+        return this.val() === '';
+      }
+    },
+
+    checked: {
+      'change': function () {
+        // prop() and attr() only takes the first element into account. To support
+        // selectors matching multiple checkboxes, iterate over all and return
+        // whether any is checked.
+        var checked = false;
+        this.each(function () {
+          // Use prop() here as we want a boolean of the checkbox state.
+          // @see http://api.jquery.com/prop/
+          checked = $(this).prop('checked');
+          // Break the each() loop if this is checked.
+          return !checked;
+        });
+        return checked;
+      }
+    },
+
+    // For radio buttons, only return the value if the radio button is selected.
+    value: {
+      'keyup': function () {
+        // Radio buttons share the same :input[name="key"] selector.
+        if (this.length > 1) {
+          // Initial checked value of radios is undefined, so we return false.
+          return this.filter(':checked').val() || false;
+        }
+        return this.val();
+      },
+      'change': function () {
+        // Radio buttons share the same :input[name="key"] selector.
+        if (this.length > 1) {
+          // Initial checked value of radios is undefined, so we return false.
+          return this.filter(':checked').val() || false;
+        }
+        return this.val();
+      }
+    },
+
+    collapsed: {
+      'collapsed': function (e) {
+        return (typeof e !== 'undefined' && 'value' in e) ? e.value : !this.is('[open]');
+      }
+    }
+  };
+
+  /**
+   * A state object is used for describing the state and performing aliasing.
+   */
+  states.State = function (state) {
+    // We may need the original unresolved name later.
+    this.pristine = this.name = state;
+
+    // Normalize the state name.
+    var process = true;
+    do {
+      // Iteratively remove exclamation marks and invert the value.
+      while (this.name.charAt(0) === '!') {
+        this.name = this.name.substring(1);
+        this.invert = !this.invert;
+      }
+
+      // Replace the state with its normalized name.
+      if (this.name in states.State.aliases) {
+        this.name = states.State.aliases[this.name];
+      }
+      else {
+        process = false;
+      }
+    } while (process);
+  };
+
+  /**
+   * Creates a new State object by sanitizing the passed value.
+   */
+  states.State.sanitize = function (state) {
+    if (state instanceof states.State) {
+      return state;
+    }
+    else {
+      return new states.State(state);
+    }
+  };
+
+  /**
+   * This list of aliases is used to normalize states and associates negated names
+   * with their respective inverse state.
+   */
+  states.State.aliases = {
+    'enabled': '!disabled',
+    'invisible': '!visible',
+    'invalid': '!valid',
+    'untouched': '!touched',
+    'optional': '!required',
+    'filled': '!empty',
+    'unchecked': '!checked',
+    'irrelevant': '!relevant',
+    'expanded': '!collapsed',
+    'open': '!collapsed',
+    'closed': 'collapsed',
+    'readwrite': '!readonly'
+  };
+
+  states.State.prototype = {
+    invert: false,
+
+    /**
+     * Ensures that just using the state object returns the name.
+     */
+    toString: function () {
+      return this.name;
+    }
+  };
+
+  /**
+   * Global state change handlers. These are bound to "document" to cover all
+   * elements whose state changes. Events sent to elements within the page
+   * bubble up to these handlers. We use this system so that themes and modules
+   * can override these state change handlers for particular parts of a page.
+   */
+
+  $(document).on('state:disabled', function (e) {
+    // Only act when this change was triggered by a dependency and not by the
+    // element monitoring itself.
+    if (e.trigger) {
+      $(e.target)
+        .prop('disabled', e.value)
+        .closest('.form-item, .js-form-submit, .form-wrapper').toggleClass('form-disabled', e.value)
+        .find('select, input, textarea').prop('disabled', e.value);
+
+      // Note: WebKit nightlies don't reflect that change correctly.
+      // See https://bugs.webkit.org/show_bug.cgi?id=23789
+    }
+  });
+
+  $(document).on('state:required', function (e) {
+    if (e.trigger) {
+      if (e.value) {
+        var $label = $(e.target).attr({'required': 'required', 'aria-required': 'aria-required'}).closest('.form-item, .form-wrapper').find('label');
+        // Avoids duplicate required markers on initialization.
+        if (!$label.hasClass('form-required').length) {
+          $label.addClass('form-required');
+        }
+      }
+      else {
+        $(e.target).removeAttr('required aria-required').closest('.form-item, .form-wrapper').find('label.form-required').removeClass('form-required');
+      }
+    }
+  });
+
+  $(document).on('state:visible', function (e) {
+    if (e.trigger) {
+      $(e.target).closest('.form-item, .js-form-submit, .form-wrapper').toggle(e.value);
+    }
+  });
+
+  $(document).on('state:checked', function (e) {
+    if (e.trigger) {
+      $(e.target).prop('checked', e.value);
+    }
+  });
+
+  $(document).on('state:collapsed', function (e) {
+    if (e.trigger) {
+      if ($(e.target).is('[open]') === e.value) {
+        $(e.target).find('> summary a').trigger('click');
+      }
+    }
+  });
+
+  /**
+   * These are helper functions implementing addition "operators" and don't
+   * implement any logic that is particular to states.
+   */
+
+  /**
+   * Bitwise AND with a third undefined state.
+   */
+  function ternary(a, b) {
+    if (typeof a === 'undefined') {
+      return b;
+    }
+    else if (typeof b === 'undefined') {
+      return a;
+    }
+    else {
+      return a && b;
+    }
+  }
+
+  /**
+   * Inverts a (if it's not undefined) when invertState is true.
+   */
+  function invert(a, invertState) {
+    return (invertState && typeof a !== 'undefined') ? !a : a;
+  }
+
+  /**
+   * Compares two values while ignoring undefined values.
+   */
+  function compare(a, b) {
+    if (a === b) {
+      return typeof a === 'undefined' ? a : true;
+    }
+    else {
+      return typeof a === 'undefined' || typeof b === 'undefined';
+    }
+  }
+
+})(jQuery);
+;
+/*! jquery.cookie v1.4.1 | MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});;
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Process elements with the .dropbutton class on page load.
+   */
+  Drupal.behaviors.dropButton = {
+    attach: function (context, settings) {
+      var $dropbuttons = $(context).find('.dropbutton-wrapper').once('dropbutton');
+      if ($dropbuttons.length) {
+        // Adds the delegated handler that will toggle dropdowns on click.
+        var $body = $('body').once('dropbutton-click');
+        if ($body.length) {
+          $body.on('click', '.dropbutton-toggle', dropbuttonClickHandler);
+        }
+        // Initialize all buttons.
+        var il = $dropbuttons.length;
+        for (var i = 0; i < il; i++) {
+          DropButton.dropbuttons.push(new DropButton($dropbuttons[i], settings.dropbutton));
+        }
+      }
+    }
+  };
+
+  /**
+   * Delegated callback for opening and closing dropbutton secondary actions.
+   */
+  function dropbuttonClickHandler(e) {
+    e.preventDefault();
+    $(e.target).closest('.dropbutton-wrapper').toggleClass('open');
+  }
+
+  /**
+   * A DropButton presents an HTML list as a button with a primary action.
+   *
+   * All secondary actions beyond the first in the list are presented in a
+   * dropdown list accessible through a toggle arrow associated with the button.
+   *
+   * @param {jQuery} $dropbutton
+   *   A jQuery element.
+   *
+   * @param {Object} settings
+   *   A list of options including:
+   *    - {String} title: The text inside the toggle link element. This text is
+   *      hidden from visual UAs.
+   */
+  function DropButton(dropbutton, settings) {
+    // Merge defaults with settings.
+    var options = $.extend({'title': Drupal.t('List additional actions')}, settings);
+    var $dropbutton = $(dropbutton);
+    this.$dropbutton = $dropbutton;
+    this.$list = $dropbutton.find('.dropbutton');
+    // Find actions and mark them.
+    this.$actions = this.$list.find('li').addClass('dropbutton-action');
+
+    // Add the special dropdown only if there are hidden actions.
+    if (this.$actions.length > 1) {
+      // Identify the first element of the collection.
+      var $primary = this.$actions.slice(0, 1);
+      // Identify the secondary actions.
+      var $secondary = this.$actions.slice(1);
+      $secondary.addClass('secondary-action');
+      // Add toggle link.
+      $primary.after(Drupal.theme('dropbuttonToggle', options));
+      // Bind mouse events.
+      this.$dropbutton
+        .addClass('dropbutton-multiple')
+        .on({
+          /**
+           * Adds a timeout to close the dropdown on mouseleave.
+           */
+          'mouseleave.dropbutton': $.proxy(this.hoverOut, this),
+          /**
+           * Clears timeout when mouseout of the dropdown.
+           */
+          'mouseenter.dropbutton': $.proxy(this.hoverIn, this),
+          /**
+           * Similar to mouseleave/mouseenter, but for keyboard navigation.
+           */
+          'focusout.dropbutton': $.proxy(this.focusOut, this),
+          'focusin.dropbutton': $.proxy(this.focusIn, this)
+        });
+    }
+    else {
+      this.$dropbutton.addClass('dropbutton-single');
+    }
+  }
+
+  /**
+   * Extend the DropButton constructor.
+   */
+  $.extend(DropButton, {
+    /**
+     * Store all processed DropButtons.
+     *
+     * @type {Array}
+     */
+    dropbuttons: []
+  });
+
+  /**
+   * Extend the DropButton prototype.
+   */
+  $.extend(DropButton.prototype, {
+    /**
+     * Toggle the dropbutton open and closed.
+     *
+     * @param {Boolean} show
+     *   (optional) Force the dropbutton to open by passing true or to close by
+     *   passing false.
+     */
+    toggle: function (show) {
+      var isBool = typeof show === 'boolean';
+      show = isBool ? show : !this.$dropbutton.hasClass('open');
+      this.$dropbutton.toggleClass('open', show);
+    },
+
+    hoverIn: function () {
+      // Clear any previous timer we were using.
+      if (this.timerID) {
+        window.clearTimeout(this.timerID);
+      }
+    },
+
+    hoverOut: function () {
+      // Wait half a second before closing.
+      this.timerID = window.setTimeout($.proxy(this, 'close'), 500);
+    },
+
+    open: function () {
+      this.toggle(true);
+    },
+
+    close: function () {
+      this.toggle(false);
+    },
+
+    focusOut: function (e) {
+      this.hoverOut.call(this, e);
+    },
+
+    focusIn: function (e) {
+      this.hoverIn.call(this, e);
+    }
+  });
+
+  $.extend(Drupal.theme, {
+    /**
+     * A toggle is an interactive element often bound to a click handler.
+     *
+     * @param {Object} options
+     *   - {String} title: (optional) The HTML anchor title attribute and
+     *     text for the inner span element.
+     *
+     * @return {String}
+     *   A string representing a DOM fragment.
+     */
+    dropbuttonToggle: function (options) {
+      return '<li class="dropbutton-toggle"><button type="button"><span class="dropbutton-arrow"><span class="visually-hidden">' + options.title + '</span></span></button></li>';
+    }
+  });
+
+  // Expose constructor in the public space.
+  Drupal.DropButton = DropButton;
+
+})(jQuery, Drupal);
+;
+/**
+ * @file
+ * Some basic behaviors and utility functions for Views.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  Drupal.Views = {};
+
+  /**
+   * Helper function to parse a querystring.
+   */
+  Drupal.Views.parseQueryString = function (query) {
+    var args = {};
+    var pos = query.indexOf('?');
+    if (pos !== -1) {
+      query = query.substring(pos + 1);
+    }
+    var pair;
+    var pairs = query.split('&');
+    for (var i = 0; i < pairs.length; i++) {
+      pair = pairs[i].split('=');
+      // Ignore the 'q' path argument, if present.
+      if (pair[0] !== 'q' && pair[1]) {
+        args[decodeURIComponent(pair[0].replace(/\+/g, ' '))] = decodeURIComponent(pair[1].replace(/\+/g, ' '));
+      }
+    }
+    return args;
+  };
+
+  /**
+   * Helper function to return a view's arguments based on a path.
+   */
+  Drupal.Views.parseViewArgs = function (href, viewPath) {
+    var returnObj = {};
+    var path = Drupal.Views.getPath(href);
+    // Ensure we have a correct path.
+    if (viewPath && path.substring(0, viewPath.length + 1) === viewPath + '/') {
+      var args = decodeURIComponent(path.substring(viewPath.length + 1, path.length));
+      returnObj.view_args = args;
+      returnObj.view_path = path;
+    }
+    return returnObj;
+  };
+
+  /**
+   * Strip off the protocol plus domain from an href.
+   */
+  Drupal.Views.pathPortion = function (href) {
+    // Remove e.g. http://example.com if present.
+    var protocol = window.location.protocol;
+    if (href.substring(0, protocol.length) === protocol) {
+      // 2 is the length of the '//' that normally follows the protocol
+      href = href.substring(href.indexOf('/', protocol.length + 2));
+    }
+    return href;
+  };
+
+  /**
+   * Return the Drupal path portion of an href.
+   */
+  Drupal.Views.getPath = function (href) {
+    href = Drupal.Views.pathPortion(href);
+    href = href.substring(drupalSettings.path.baseUrl.length, href.length);
+    // 3 is the length of the '?q=' added to the url without clean urls.
+    if (href.substring(0, 3) === '?q=') {
+      href = href.substring(3, href.length);
+    }
+    var chars = ['#', '?', '&'];
+    for (var i = 0; i < chars.length; i++) {
+      if (href.indexOf(chars[i]) > -1) {
+        href = href.substr(0, href.indexOf(chars[i]));
+      }
+    }
+    return href;
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
+/**
+ * @file
+ * Handles AJAX fetching of views, including filter submission and response.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Attaches the AJAX behavior to Views exposed filter forms and key View links.
+   */
+  Drupal.behaviors.ViewsAjaxView = {};
+  Drupal.behaviors.ViewsAjaxView.attach = function () {
+    if (drupalSettings && drupalSettings.views && drupalSettings.views.ajaxViews) {
+      var ajaxViews = drupalSettings.views.ajaxViews;
+      for (var i in ajaxViews) {
+        if (ajaxViews.hasOwnProperty(i)) {
+          Drupal.views.instances[i] = new Drupal.views.ajaxView(ajaxViews[i]);
+        }
+      }
+    }
+  };
+
+  Drupal.views = {};
+  Drupal.views.instances = {};
+
+  /**
+   * Javascript object for a certain view.
+   */
+  Drupal.views.ajaxView = function (settings) {
+    var selector = '.view-dom-id-' + settings.view_dom_id;
+    this.$view = $(selector);
+
+    // Retrieve the path to use for views' ajax.
+    var ajax_path = drupalSettings.views.ajax_path;
+
+    // If there are multiple views this might've ended up showing up multiple times.
+    if (ajax_path.constructor.toString().indexOf("Array") !== -1) {
+      ajax_path = ajax_path[0];
+    }
+
+    // Check if there are any GET parameters to send to views.
+    var queryString = window.location.search || '';
+    if (queryString !== '') {
+      // Remove the question mark and Drupal path component if any.
+      queryString = queryString.slice(1).replace(/q=[^&]+&?|&?render=[^&]+/, '');
+      if (queryString !== '') {
+        // If there is a '?' in ajax_path, clean url are on and & should be used to add parameters.
+        queryString = ((/\?/.test(ajax_path)) ? '&' : '?') + queryString;
+      }
+    }
+
+    this.element_settings = {
+      url: ajax_path + queryString,
+      submit: settings,
+      setClick: true,
+      event: 'click',
+      selector: selector,
+      progress: {type: 'fullscreen'}
+    };
+
+    this.settings = settings;
+
+    // Add the ajax to exposed forms.
+    this.$exposed_form = $('form#views-exposed-form-' + settings.view_name.replace(/_/g, '-') + '-' + settings.view_display_id.replace(/_/g, '-'));
+    this.$exposed_form.once('exposed-form').each(jQuery.proxy(this.attachExposedFormAjax, this));
+
+    // Add the ajax to pagers.
+    this.$view
+      // Don't attach to nested views. Doing so would attach multiple behaviors
+      // to a given element.
+      .filter(jQuery.proxy(this.filterNestedViews, this))
+      .once('ajax-pager').each(jQuery.proxy(this.attachPagerAjax, this));
+
+    // Add a trigger to update this view specifically. In order to trigger a
+    // refresh use the following code.
+    //
+    // @code
+    // jQuery('.view-name').trigger('RefreshView');
+    // @endcode
+    var self_settings = $.extend({}, this.element_settings, {
+      event: 'RefreshView',
+      base: this.selector,
+      element: this.$view
+    });
+    this.refreshViewAjax = Drupal.ajax(self_settings);
+  };
+
+  Drupal.views.ajaxView.prototype.attachExposedFormAjax = function () {
+    var button = $('input[type=submit], input[type=image]', this.$exposed_form);
+    button = button[0];
+
+    var self_settings = $.extend({}, this.element_settings, {
+      base: $(button).attr('id'),
+      element: button
+    });
+    this.exposedFormAjax = Drupal.ajax(self_settings);
+  };
+
+  Drupal.views.ajaxView.prototype.filterNestedViews = function () {
+    // If there is at least one parent with a view class, this view
+    // is nested (e.g., an attachment). Bail.
+    return !this.$view.parents('.view').size();
+  };
+
+  /**
+   * Attach the ajax behavior to each link.
+   */
+  Drupal.views.ajaxView.prototype.attachPagerAjax = function () {
+    this.$view.find('ul.pager__items > li > a, th.views-field a, .attachment .views-summary a')
+      .each(jQuery.proxy(this.attachPagerLinkAjax, this));
+  };
+
+  /**
+   * Attach the ajax behavior to a singe link.
+   */
+  Drupal.views.ajaxView.prototype.attachPagerLinkAjax = function (id, link) {
+    var $link = $(link);
+    var viewData = {};
+    var href = $link.attr('href');
+    // Construct an object using the settings defaults and then overriding
+    // with data specific to the link.
+    $.extend(
+      viewData,
+      this.settings,
+      Drupal.Views.parseQueryString(href),
+      // Extract argument data from the URL.
+      Drupal.Views.parseViewArgs(href, this.settings.view_base_path)
+    );
+
+    var self_settings = $.extend({}, this.element_settings, {
+      submit: viewData,
+      base: false,
+      element: $link
+    });
+    this.pagerAjax = Drupal.ajax(self_settings);
+  };
+
+  Drupal.AjaxCommands.prototype.viewsScrollTop = function (ajax, response) {
+    // Scroll to the top of the view. This will allow users
+    // to browse newly loaded content after e.g. clicking a pager
+    // link.
+    var offset = $(response.selector).offset();
+    // We can't guarantee that the scrollable object should be
+    // the body, as the view could be embedded in something
+    // more complex such as a modal popup. Recurse up the DOM
+    // and scroll the first element that has a non-zero top.
+    var scrollTarget = response.selector;
+    while ($(scrollTarget).scrollTop() === 0 && $(scrollTarget).parent()) {
+      scrollTarget = $(scrollTarget).parent();
+    }
+    // Only scroll upward
+    if (offset.top - 10 < $(scrollTarget).scrollTop()) {
+      $(scrollTarget).animate({scrollTop: (offset.top - 10)}, 500);
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
+/**
+ * @file
+ * Handles AJAX submission and response in Views UI.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  Drupal.AjaxCommands.prototype.viewsHighlight = function (ajax, response, status) {
+    $('.hilited').removeClass('hilited');
+    $(response.selector).addClass('hilited');
+  };
+
+  Drupal.AjaxCommands.prototype.viewsShowButtons = function (ajax, response, status) {
+    $('div.views-edit-view div.form-actions').removeClass('js-hide');
+    if (response.changed) {
+      $('div.views-edit-view div.view-changed.messages').removeClass('js-hide');
+    }
+  };
+
+  Drupal.AjaxCommands.prototype.viewsTriggerPreview = function (ajax, response, status) {
+    if ($('input#edit-displays-live-preview').is(':checked')) {
+      $('#preview-submit').trigger('click');
+    }
+  };
+
+  Drupal.AjaxCommands.prototype.viewsReplaceTitle = function (ajax, response, status) {
+    var doc = document;
+    // For the <title> element, make a best-effort attempt to replace the page
+    // title and leave the site name alone. If the theme doesn't use the site
+    // name in the <title> element, this will fail.
+    var oldTitle = doc.title;
+    // Escape the site name, in case it has special characters in it, so we can
+    // use it in our regex.
+    var escapedSiteName = response.siteName.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+    var re = new RegExp('.+ (.) ' + escapedSiteName);
+    doc.title = oldTitle.replace(re, response.title + ' $1 ' + response.siteName);
+
+    $('h1.page-title').text(response.title);
+  };
+
+  /**
+   * Get rid of irritating tabledrag messages
+   */
+  Drupal.theme.tableDragChangedWarning = function () {
+    return [];
+  };
+
+  /**
+   * Trigger preview when the "live preview" checkbox is checked.
+   */
+  Drupal.behaviors.livePreview = {
+    attach: function (context) {
+      $('input#edit-displays-live-preview', context).once('views-ajax').on('click', function () {
+        if ($(this).is(':checked')) {
+          $('#preview-submit').trigger('click');
+        }
+      });
+    }
+  };
+
+  /**
+   * Sync preview display.
+   */
+  Drupal.behaviors.syncPreviewDisplay = {
+    attach: function (context) {
+      $("#views-tabset a").once('views-ajax').on('click', function () {
+        var href = $(this).attr('href');
+        // Cut of #views-tabset.
+        var display_id = href.substr(11);
+        // Set the form element.
+        $("#views-live-preview #preview-display-id").val(display_id);
+      });
+    }
+  };
+
+  Drupal.behaviors.viewsAjax = {
+    collapseReplaced: false,
+    attach: function (context, settings) {
+      var base_element_settings = {
+        'event': 'click',
+        'progress': {'type': 'fullscreen'}
+      };
+      // Bind AJAX behaviors to all items showing the class.
+      $('a.views-ajax-link', context).once('views-ajax').each(function () {
+        var element_settings = base_element_settings;
+        element_settings.base = base;
+        element_settings.element = this;
+        // Set the URL to go to the anchor.
+        if ($(this).attr('href')) {
+          element_settings.url = $(this).attr('href');
+        }
+        var base = $(this).attr('id');
+        Drupal.ajax(element_settings);
+      });
+
+      $('div#views-live-preview a')
+        .once('views-ajax').each(function () {
+          // We don't bind to links without a URL.
+          if (!$(this).attr('href')) {
+            return true;
+          }
+
+          var element_settings = base_element_settings;
+          // Set the URL to go to the anchor.
+          element_settings.url = $(this).attr('href');
+          if (Drupal.Views.getPath(element_settings.url).substring(0, 21) !== 'admin/structure/views') {
+            return true;
+          }
+
+          element_settings.wrapper = 'views-preview-wrapper';
+          element_settings.method = 'replaceWith';
+          element_settings.base = base;
+          element_settings.element = this;
+          var base = $(this).attr('id');
+          Drupal.ajax(element_settings);
+        });
+
+      // Within a live preview, make exposed widget form buttons re-trigger the
+      // Preview button.
+      // @todo Revisit this after fixing Views UI to display a Preview outside
+      //   of the main Edit form.
+      $('div#views-live-preview input[type=submit]')
+        .once('views-ajax').each(function (event) {
+          $(this).on('click', function () {
+            this.form.clk = this;
+            return true;
+          });
+          var element_settings = base_element_settings;
+          // Set the URL to go to the anchor.
+          element_settings.url = $(this.form).attr('action');
+          if (Drupal.Views.getPath(element_settings.url).substring(0, 21) !== 'admin/structure/views') {
+            return true;
+          }
+
+          element_settings.wrapper = 'views-preview-wrapper';
+          element_settings.method = 'replaceWith';
+          element_settings.event = 'click';
+          element_settings.base = base;
+          element_settings.element = this;
+
+          var base = $(this).attr('id');
+          Drupal.ajax(element_settings);
+        });
+
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  function handleDialogResize(e) {
+    var $modal = $(e.currentTarget);
+    var $viewsOverride = $modal.find('[data-drupal-views-offset]');
+    var $scroll = $modal.find('[data-drupal-views-scroll]');
+    var offset = 0;
+    var modalHeight;
+    if ($scroll.length) {
+      // Add a class to do some styles adjustments.
+      $modal.closest('.views-ui-dialog').addClass('views-ui-dialog-scroll');
+      // Let scroll element take all the height available.
+      $scroll.css({overflow: 'visible', height: 'auto'});
+      modalHeight = $modal.height();
+      $viewsOverride.each(function () { offset += $(this).outerHeight(); });
+
+      // Take internal padding into account.
+      var scrollOffset = $scroll.outerHeight() - $scroll.height();
+      $scroll.height(modalHeight - offset - scrollOffset);
+      // Reset scrolling properties.
+      $modal.css('overflow', 'hidden');
+      $scroll.css('overflow', 'auto');
+    }
+  }
+
+  Drupal.behaviors.viewsModalContent = {
+    attach: function (context) {
+      $('body').once('viewsDialog').on('dialogContentResize.viewsDialog', '.ui-dialog-content', handleDialogResize);
+      // When expanding details, make sure the modal is resized.
+      $(context).find('.scroll').once('detailsUpdate').on('click', 'summary', function (e) {
+        $(e.currentTarget).trigger('dialogContentResize');
+      });
+    },
+    detach: function (context, settings, trigger) {
+      if (trigger === 'unload') {
+        $('body').removeOnce('viewsDialog').off('.viewsDialog');
+      }
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
+/**
+ * @file
+ * Some basic behaviors and utility functions for Views UI.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  Drupal.viewsUi = {};
+
+  /**
+   * Improve the user experience of the views edit interface.
+   */
+  Drupal.behaviors.viewsUiEditView = {
+    attach: function () {
+      // Only show the SQL rewrite warning when the user has chosen the
+      // corresponding checkbox.
+      $('#edit-query-options-disable-sql-rewrite').on('click', function () {
+        $('.sql-rewrite-warning').toggleClass('js-hide');
+      });
+    }
+  };
+
+  /**
+   * In the add view wizard, use the view name to prepopulate form fields such as
+   * page title and menu link.
+   */
+  Drupal.behaviors.viewsUiAddView = {
+    attach: function (context) {
+      var $context = $(context);
+      // Set up regular expressions to allow only numbers, letters, and dashes.
+      var exclude = new RegExp('[^a-z0-9\\-]+', 'g');
+      var replace = '-';
+      var suffix;
+
+      // The page title, block title, and menu link fields can all be prepopulated
+      // with the view name - no regular expression needed.
+      var $fields = $context.find('[id^="edit-page-title"], [id^="edit-block-title"], [id^="edit-page-link-properties-title"]');
+      if ($fields.length) {
+        if (!this.fieldsFiller) {
+          this.fieldsFiller = new Drupal.viewsUi.FormFieldFiller($fields);
+        }
+        else {
+          // After an AJAX response, this.fieldsFiller will still have event
+          // handlers bound to the old version of the form fields (which don't exist
+          // anymore). The event handlers need to be unbound and then rebound to the
+          // new markup. Note that jQuery.live is difficult to make work in this
+          // case because the IDs of the form fields change on every AJAX response.
+          this.fieldsFiller.rebind($fields);
+        }
+      }
+
+      // Prepopulate the path field with a URLified version of the view name.
+      var $pathField = $context.find('[id^="edit-page-path"]');
+      if ($pathField.length) {
+        if (!this.pathFiller) {
+          this.pathFiller = new Drupal.viewsUi.FormFieldFiller($pathField, exclude, replace);
+        }
+        else {
+          this.pathFiller.rebind($pathField);
+        }
+      }
+
+      // Populate the RSS feed field with a URLified version of the view name, and
+      // an .xml suffix (to make it unique).
+      var $feedField = $context.find('[id^="edit-page-feed-properties-path"]');
+      if ($feedField.length) {
+        if (!this.feedFiller) {
+          suffix = '.xml';
+          this.feedFiller = new Drupal.viewsUi.FormFieldFiller($feedField, exclude, replace, suffix);
+        }
+        else {
+          this.feedFiller.rebind($feedField);
+        }
+      }
+    }
+  };
+
+  /**
+   * Constructor for the Drupal.viewsUi.FormFieldFiller object.
+   *
+   * Prepopulates a form field based on the view name.
+   *
+   * @param $target
+   *   A jQuery object representing the form field or fields to prepopulate.
+   * @param exclude
+   *   (optional) A regular expression representing characters to exclude from
+   *   the target field.
+   * @param replace
+   *   (optional) A string to use as the replacement value for disallowed
+   *   characters.
+   * @param suffix
+   *   (optional) A suffix to append at the end of the target field content.
+   */
+  Drupal.viewsUi.FormFieldFiller = function ($target, exclude, replace, suffix) {
+    this.source = $('#edit-label');
+    this.target = $target;
+    this.exclude = exclude || false;
+    this.replace = replace || '';
+    this.suffix = suffix || '';
+
+    // Create bound versions of this instance's object methods to use as event
+    // handlers. This will let us easily unbind those specific handlers later on.
+    // NOTE: jQuery.proxy will not work for this because it assumes we want only
+    // one bound version of an object method, whereas we need one version per
+    // object instance.
+    var self = this;
+    this.populate = function () { return self._populate.call(self); };
+    this.unbind = function () { return self._unbind.call(self); };
+
+    this.bind();
+    // Object constructor; no return value.
+  };
+
+  $.extend(Drupal.viewsUi.FormFieldFiller.prototype, {
+    /**
+     * Bind the form-filling behavior.
+     */
+    bind: function () {
+      this.unbind();
+      // Populate the form field when the source changes.
+      this.source.on('keyup.viewsUi change.viewsUi', this.populate);
+      // Quit populating the field as soon as it gets focus.
+      this.target.on('focus.viewsUi', this.unbind);
+    },
+
+    /**
+     * Get the source form field value as altered by the passed-in parameters.
+     */
+    getTransliterated: function () {
+      var from = this.source.val();
+      if (this.exclude) {
+        from = from.toLowerCase().replace(this.exclude, this.replace);
+      }
+      return from;
+    },
+
+    /**
+     * Populate the target form field with the altered source field value.
+     */
+    _populate: function () {
+      var transliterated = this.getTransliterated();
+      var suffix = this.suffix;
+      this.target.each(function (i) {
+        // Ensure that the maxlength is not exceeded by prepopulating the field.
+        var maxlength = $(this).attr('maxlength') - suffix.length;
+        $(this).val(transliterated.substr(0, maxlength) + suffix);
+      });
+    },
+
+    /**
+     * Stop prepopulating the form fields.
+     */
+    _unbind: function () {
+      this.source.off('keyup.viewsUi change.viewsUi', this.populate);
+      this.target.off('focus.viewsUi', this.unbind);
+    },
+
+    /**
+     * Bind event handlers to the new form fields, after they're replaced via AJAX.
+     */
+    rebind: function ($fields) {
+      this.target = $fields;
+      this.bind();
+    }
+  });
+
+  Drupal.behaviors.addItemForm = {
+    attach: function (context) {
+      var $context = $(context);
+      var $form = $context;
+      // The add handler form may have an id of views-ui-add-handler-form--n.
+      if (!$context.is('form[id^="views-ui-add-handler-form"]')) {
+        $form = $context.find('form[id^="views-ui-add-handler-form"]');
+      }
+      if ($form.once('views-ui-add-handler-form').length) {
+        // If we we have an unprocessed views-ui-add-handler-form, let's instantiate.
+        new Drupal.viewsUi.AddItemForm($form);
+      }
+    }
+  };
+
+  Drupal.viewsUi.AddItemForm = function ($form) {
+    this.$form = $form;
+    this.$form.find('.views-filterable-options :checkbox').on('click', $.proxy(this.handleCheck, this));
+    // Find the wrapper of the displayed text.
+    this.$selected_div = this.$form.find('.views-selected-options').parent();
+    this.$selected_div.hide();
+    this.checkedItems = [];
+  };
+
+  Drupal.viewsUi.AddItemForm.prototype.handleCheck = function (event) {
+    var $target = $(event.target);
+    var label = $.trim($target.next().text());
+    // Add/remove the checked item to the list.
+    if ($target.is(':checked')) {
+      this.$selected_div.show().css('display', 'block');
+      this.checkedItems.push(label);
+    }
+    else {
+      var position = $.inArray(label, this.checkedItems);
+      // Delete the item from the list and make sure that the list doesn't have undefined items left.
+      for (var i = 0; i < this.checkedItems.length; i++) {
+        if (i === position) {
+          this.checkedItems.splice(i, 1);
+          i--;
+          break;
+        }
+      }
+      // Hide it again if none item is selected.
+      if (this.checkedItems.length === 0) {
+        this.$selected_div.hide();
+      }
+    }
+    this.refreshCheckedItems();
+  };
+
+  /**
+   * Refresh the display of the checked items.
+   */
+  Drupal.viewsUi.AddItemForm.prototype.refreshCheckedItems = function () {
+    // Perhaps we should precache the text div, too.
+    this.$selected_div.find('.views-selected-options')
+      .html(this.checkedItems.join(', '))
+      .trigger('dialogContentResize');
+  };
+
+  /**
+   * The input field items that add displays must be rendered as <input> elements.
+   * The following behavior detaches the <input> elements from the DOM, wraps them
+   * in an unordered list, then appends them to the list of tabs.
+   */
+  Drupal.behaviors.viewsUiRenderAddViewButton = {
+    attach: function (context) {
+      // Build the add display menu and pull the display input buttons into it.
+      var $menu = $(context).find('#views-display-menu-tabs').once('views-ui-render-add-view-button');
+      if (!$menu.length) {
+        return;
+      }
+
+      var $addDisplayDropdown = $('<li class="add"><a href="#"><span class="icon add"></span>' + Drupal.t('Add') + '</a><ul class="action-list" style="display:none;"></ul></li>');
+      var $displayButtons = $menu.nextAll('input.add-display').detach();
+      $displayButtons.appendTo($addDisplayDropdown.find('.action-list')).wrap('<li>')
+        .parent().eq(0).addClass('first').end().eq(-1).addClass('last');
+      // Remove the 'Add ' prefix from the button labels since they're being placed
+      // in an 'Add' dropdown.
+      // @todo This assumes English, but so does $addDisplayDropdown above. Add
+      //   support for translation.
+      $displayButtons.each(function () {
+        var label = $(this).val();
+        if (label.substr(0, 4) === 'Add ') {
+          $(this).val(label.substr(4));
+        }
+      });
+      $addDisplayDropdown.appendTo($menu);
+
+      // Add the click handler for the add display button
+      $menu.find('li.add > a').on('click', function (event) {
+        event.preventDefault();
+        var $trigger = $(this);
+        Drupal.behaviors.viewsUiRenderAddViewButton.toggleMenu($trigger);
+      });
+      // Add a mouseleave handler to close the dropdown when the user mouses
+      // away from the item. We use mouseleave instead of mouseout because
+      // the user is going to trigger mouseout when she moves from the trigger
+      // link to the sub menu items.
+      // We use the live binder because the open class on this item will be
+      // toggled on and off and we want the handler to take effect in the cases
+      // that the class is present, but not when it isn't.
+      $('li.add', $menu).on('mouseleave', function (event) {
+        var $this = $(this);
+        var $trigger = $this.children('a[href="#"]');
+        if ($this.children('.action-list').is(':visible')) {
+          Drupal.behaviors.viewsUiRenderAddViewButton.toggleMenu($trigger);
+        }
+      });
+    }
+  };
+
+  /**
+   * @note [@jessebeach] I feel like the following should be a more generic function and
+   * not written specifically for this UI, but I'm not sure where to put it.
+   */
+  Drupal.behaviors.viewsUiRenderAddViewButton.toggleMenu = function ($trigger) {
+    $trigger.parent().toggleClass('open');
+    $trigger.next().slideToggle('fast');
+  };
+
+  Drupal.behaviors.viewsUiSearchOptions = {
+    attach: function (context) {
+      var $context = $(context);
+      var $form = $context;
+      // The add handler form may have an id of views-ui-add-handler-form--n.
+      if (!$context.is('form[id^="views-ui-add-handler-form"]')) {
+        $form = $context.find('form[id^="views-ui-add-handler-form"]');
+      }
+      // Make sure we don't add more than one event handler to the same form.
+      if ($form.once('views-ui-filter-options').length) {
+        new Drupal.viewsUi.OptionsSearch($form);
+      }
+    }
+  };
+
+  /**
+   * Constructor for the viewsUi.OptionsSearch object.
+   *
+   * The OptionsSearch object filters the available options on a form according
+   * to the user's search term. Typing in "taxonomy" will show only those options
+   * containing "taxonomy" in their label.
+   */
+  Drupal.viewsUi.OptionsSearch = function ($form) {
+    this.$form = $form;
+    // Add a keyup handler to the search box.
+    this.$searchBox = this.$form.find('#edit-override-controls-options-search');
+    this.$searchBox.on('keyup', $.proxy(this.handleKeyup, this));
+    // Get a list of option labels and their corresponding divs and maintain it
+    // in memory, so we have as little overhead as possible at keyup time.
+    this.options = this.getOptions(this.$form.find('.filterable-option'));
+    // Restripe on initial loading.
+    this.handleKeyup();
+    // Trap the ENTER key in the search box so that it doesn't submit the form.
+    this.$searchBox.on('keypress', function (event) {
+      if (event.which === 13) {
+        event.preventDefault();
+      }
+    });
+  };
+
+  $.extend(Drupal.viewsUi.OptionsSearch.prototype, {
+    /**
+     * Assemble a list of all the filterable options on the form.
+     *
+     * @param $allOptions
+     *   A $ object representing the rows of filterable options to be
+     *   shown and hidden depending on the user's search terms.
+     */
+    getOptions: function ($allOptions) {
+      var $label;
+      var $description;
+      var $option;
+      var options = [];
+      var length = $allOptions.length;
+      for (var i = 0; i < length; i++) {
+        $option = $($allOptions[i]);
+        $label = $option.find('label');
+        $description = $option.find('div.description');
+        options[i] = {
+          // Search on the lowercase version of the label text + description.
+          'searchText': $label.text().toLowerCase() + " " + $description.text().toLowerCase(),
+          // Maintain a reference to the jQuery object for each row, so we don't
+          // have to create a new object inside the performance-sensitive keyup
+          // handler.
+          '$div': $option
+        };
+      }
+      return options;
+    },
+
+    /**
+     * Keyup handler for the search box that hides or shows the relevant options.
+     */
+    handleKeyup: function (event) {
+      var found;
+      var option;
+      var zebraClass;
+
+      // Determine the user's search query. The search text has been converted to
+      // lowercase.
+      var search = this.$searchBox.val().toLowerCase();
+      var words = search.split(' ');
+      var wordsLength = words.length;
+
+      // Start the counter for restriping rows.
+      var zebraCounter = 0;
+
+      // Search through the search texts in the form for matching text.
+      var length = this.options.length;
+      for (var i = 0; i < length; i++) {
+        // Use a local variable for the option being searched, for performance.
+        option = this.options[i];
+        found = true;
+        // Each word in the search string has to match the item in order for the
+        // item to be shown.
+        for (var j = 0; j < wordsLength; j++) {
+          if (option.searchText.indexOf(words[j]) === -1) {
+            found = false;
+          }
+        }
+        if (found) {
+          zebraClass = (zebraCounter % 2) ? 'odd' : 'even';
+          // Show the checkbox row, and restripe it.
+          option.$div.removeClass('even odd');
+          option.$div.addClass(zebraClass);
+          option.$div.show();
+          zebraCounter++;
+        }
+        else {
+          // The search string wasn't found; hide this item.
+          option.$div.hide();
+        }
+      }
+    }
+  });
+
+  Drupal.behaviors.viewsUiPreview = {
+    attach: function (context) {
+      // Only act on the edit view form.
+      var $contextualFiltersBucket = $(context).find('.views-display-column .views-ui-display-tab-bucket.argument');
+      if ($contextualFiltersBucket.length === 0) {
+        return;
+      }
+
+      // If the display has no contextual filters, hide the form where you enter
+      // the contextual filters for the live preview. If it has contextual filters,
+      // show the form.
+      var $contextualFilters = $contextualFiltersBucket.find('.views-display-setting a');
+      if ($contextualFilters.length) {
+        $('#preview-args').parent().show();
+      }
+      else {
+        $('#preview-args').parent().hide();
+      }
+
+      // Executes an initial preview.
+      if ($('#edit-displays-live-preview').once('edit-displays-live-preview').is(':checked')) {
+        $('#preview-submit').once('edit-displays-live-preview').trigger('click');
+      }
+    }
+  };
+
+  Drupal.behaviors.viewsUiRearrangeFilter = {
+    attach: function (context) {
+      // Only act on the rearrange filter form.
+      if (typeof Drupal.tableDrag === 'undefined' || typeof Drupal.tableDrag['views-rearrange-filters'] === 'undefined') {
+        return;
+      }
+      var $context = $(context);
+      var $table = $context.find('#views-rearrange-filters').once('views-rearrange-filters');
+      var $operator = $context.find('.form-item-filter-groups-operator').once('views-rearrange-filters');
+      if ($table.length) {
+        new Drupal.viewsUi.RearrangeFilterHandler($table, $operator);
+      }
+    }
+  };
+
+  /**
+   * Improve the UI of the rearrange filters dialog box.
+   */
+  Drupal.viewsUi.RearrangeFilterHandler = function ($table, $operator) {
+    // Keep a reference to the <table> being altered and to the div containing
+    // the filter groups operator dropdown (if it exists).
+    this.table = $table;
+    this.operator = $operator;
+    this.hasGroupOperator = this.operator.length > 0;
+
+    // Keep a reference to all draggable rows within the table.
+    this.draggableRows = $table.find('.draggable');
+
+    // Keep a reference to the buttons for adding and removing filter groups.
+    this.addGroupButton = $('input#views-add-group');
+    this.removeGroupButtons = $table.find('input.views-remove-group');
+
+    // Add links that duplicate the functionality of the (hidden) add and remove
+    // buttons.
+    this.insertAddRemoveFilterGroupLinks();
+
+    // When there is a filter groups operator dropdown on the page, create
+    // duplicates of the dropdown between each pair of filter groups.
+    if (this.hasGroupOperator) {
+      this.dropdowns = this.duplicateGroupsOperator();
+      this.syncGroupsOperators();
+    }
+
+    // Add methods to the tableDrag instance to account for operator cells (which
+    // span multiple rows), the operator labels next to each filter (e.g., "And"
+    // or "Or"), the filter groups, and other special aspects of this tableDrag
+    // instance.
+    this.modifyTableDrag();
+
+    // Initialize the operator labels (e.g., "And" or "Or") that are displayed
+    // next to the filters in each group, and bind a handler so that they change
+    // based on the values of the operator dropdown within that group.
+    this.redrawOperatorLabels();
+    $table.find('.views-group-title select')
+      .once('views-rearrange-filter-handler')
+      .on('change.views-rearrange-filter-handler', $.proxy(this, 'redrawOperatorLabels'));
+
+    // Bind handlers so that when a "Remove" link is clicked, we:
+    // - Update the rowspans of cells containing an operator dropdown (since they
+    //   need to change to reflect the number of rows in each group).
+    // - Redraw the operator labels next to the filters in the group (since the
+    //   filter that is currently displayed last in each group is not supposed to
+    //   have a label display next to it).
+    $table.find('a.views-groups-remove-link')
+      .once('views-rearrange-filter-handler')
+      .on('click.views-rearrange-filter-handler', $.proxy(this, 'updateRowspans'))
+      .on('click.views-rearrange-filter-handler', $.proxy(this, 'redrawOperatorLabels'));
+  };
+
+  $.extend(Drupal.viewsUi.RearrangeFilterHandler.prototype, {
+    /**
+     * Insert links that allow filter groups to be added and removed.
+     */
+    insertAddRemoveFilterGroupLinks: function () {
+
+      // Insert a link for adding a new group at the top of the page, and make it
+      // match the action link styling used in a typical page.html.twig. Since
+      // Drupal does not provide a theme function for this markup this is the best
+      // we can do.
+      $('<ul class="action-links"><li><a id="views-add-group-link" href="#">' + this.addGroupButton.val() + '</a></li></ul>')
+        .prependTo(this.table.parent())
+        // When the link is clicked, dynamically click the hidden form button for
+        // adding a new filter group.
+        .once('views-rearrange-filter-handler')
+        .on('click.views-rearrange-filter-handler', $.proxy(this, 'clickAddGroupButton'));
+
+      // Find each (visually hidden) button for removing a filter group and insert
+      // a link next to it.
+      var length = this.removeGroupButtons.length;
+      var i;
+      for (i = 0; i < length; i++) {
+        var $removeGroupButton = $(this.removeGroupButtons[i]);
+        var buttonId = $removeGroupButton.attr('id');
+        $('<a href="#" class="views-remove-group-link">' + Drupal.t('Remove group') + '</a>')
+          .insertBefore($removeGroupButton)
+          // When the link is clicked, dynamically click the corresponding form
+          // button.
+          .once('views-rearrange-filter-handler')
+          .on('click.views-rearrange-filter-handler', {buttonId: buttonId}, $.proxy(this, 'clickRemoveGroupButton'));
+      }
+    },
+
+    /**
+     * Dynamically click the button that adds a new filter group.
+     */
+    clickAddGroupButton: function (event) {
+      // Due to conflicts between Drupal core's AJAX system and the Views AJAX
+      // system, the only way to get this to work seems to be to trigger both the
+      // mousedown and submit events.
+      this.addGroupButton
+        .trigger('mousedown')
+        .trigger('submit');
+      event.preventDefault();
+    },
+
+    /**
+     * Dynamically click a button for removing a filter group.
+     *
+     * @param event
+     *   Event being triggered, with event.data.buttonId set to the ID of the
+     *   form button that should be clicked.
+     */
+    clickRemoveGroupButton: function (event) {
+      // For some reason, here we only need to trigger .submit(), unlike for
+      // Drupal.viewsUi.RearrangeFilterHandler.prototype.clickAddGroupButton()
+      // where we had to trigger .mousedown() also.
+      this.table.find('#' + event.data.buttonId).trigger('submit');
+      event.preventDefault();
+    },
+
+    /**
+     * Move the groups operator so that it's between the first two groups, and
+     * duplicate it between any subsequent groups.
+     */
+    duplicateGroupsOperator: function () {
+      var dropdowns;
+      var newRow;
+      var titleRow;
+
+      var titleRows = $('tr.views-group-title');
+
+      // Get rid of the explanatory text around the operator; its placement is
+      // explanatory enough.
+      this.operator.find('label').add('div.description').addClass('visually-hidden');
+      this.operator.find('select').addClass('form-select');
+
+      // Keep a list of the operator dropdowns, so we can sync their behavior later.
+      dropdowns = this.operator;
+
+      // Move the operator to a new row just above the second group.
+      titleRow = $('tr#views-group-title-2');
+      this.operator.find('label').add('div.description').addClass('visually-hidden');
+      this.operator.find('select').addClass('form-select');
+
+      // Keep a list of the operator dropdowns, so we can sync their behavior later.
+      dropdowns = this.operator;
+
+      // Move the operator to a new row just above the second group.
+      titleRow = $('tr#views-group-title-2');
+      newRow = $('<tr class="filter-group-operator-row"><td colspan="5"></td></tr>');
+      newRow.find('td').append(this.operator);
+      newRow.insertBefore(titleRow);
+      var length = titleRows.length;
+      // Starting with the third group, copy the operator to a new row above the
+      // group title.
+      for (var i = 2; i < length; i++) {
+        titleRow = $(titleRows[i]);
+        // Make a copy of the operator dropdown and put it in a new table row.
+        var fakeOperator = this.operator.clone();
+        fakeOperator.attr('id', '');
+        newRow = $('<tr class="filter-group-operator-row"><td colspan="5"></td></tr>');
+        newRow.find('td').append(fakeOperator);
+        newRow.insertBefore(titleRow);
+        dropdowns = dropdowns.add(fakeOperator);
+      }
+
+      return dropdowns;
+    },
+
+    /**
+     * Make the duplicated groups operators change in sync with each other.
+     */
+    syncGroupsOperators: function () {
+      if (this.dropdowns.length < 2) {
+        // We only have one dropdown (or none at all), so there's nothing to sync.
+        return;
+      }
+
+      this.dropdowns.on('change', $.proxy(this, 'operatorChangeHandler'));
+    },
+
+    /**
+     * Click handler for the operators that appear between filter groups.
+     *
+     * Forces all operator dropdowns to have the same value.
+     */
+    operatorChangeHandler: function (event) {
+      var $target = $(event.target);
+      var operators = this.dropdowns.find('select').not($target);
+
+      // Change the other operators to match this new value.
+      operators.val($target.val());
+    },
+
+    modifyTableDrag: function () {
+      var tableDrag = Drupal.tableDrag['views-rearrange-filters'];
+      var filterHandler = this;
+
+      /**
+       * Override the row.onSwap method from tabledrag.js.
+       *
+       * When a row is dragged to another place in the table, several things need
+       * to occur.
+       * - The row needs to be moved so that it's within one of the filter groups.
+       * - The operator cells that span multiple rows need their rowspan attributes
+       *   updated to reflect the number of rows in each group.
+       * - The operator labels that are displayed next to each filter need to be
+       *   redrawn, to account for the row's new location.
+       */
+      tableDrag.row.prototype.onSwap = function () {
+        if (filterHandler.hasGroupOperator) {
+          // Make sure the row that just got moved (this.group) is inside one of
+          // the filter groups (i.e. below an empty marker row or a draggable). If
+          // it isn't, move it down one.
+          var thisRow = $(this.group);
+          var previousRow = thisRow.prev('tr');
+          if (previousRow.length && !previousRow.hasClass('group-message') && !previousRow.hasClass('draggable')) {
+            // Move the dragged row down one.
+            var next = thisRow.next();
+            if (next.is('tr')) {
+              this.swap('after', next);
+            }
+          }
+          filterHandler.updateRowspans();
+        }
+        // Redraw the operator labels that are displayed next to each filter, to
+        // account for the row's new location.
+        filterHandler.redrawOperatorLabels();
+      };
+
+      /**
+       * Override the onDrop method from tabledrag.js.
+       */
+      tableDrag.onDrop = function () {
+        // If the tabledrag change marker (i.e., the "*") has been inserted inside
+        // a row after the operator label (i.e., "And" or "Or") rearrange the items
+        // so the operator label continues to appear last.
+        var changeMarker = $(this.oldRowElement).find('.tabledrag-changed');
+        if (changeMarker.length) {
+          // Search for occurrences of the operator label before the change marker,
+          // and reverse them.
+          var operatorLabel = changeMarker.prevAll('.views-operator-label');
+          if (operatorLabel.length) {
+            operatorLabel.insertAfter(changeMarker);
+          }
+        }
+
+        // Make sure the "group" dropdown is properly updated when rows are dragged
+        // into an empty filter group. This is borrowed heavily from the block.js
+        // implementation of tableDrag.onDrop().
+        var groupRow = $(this.rowObject.element).prevAll('tr.group-message').get(0);
+        var groupName = groupRow.className.replace(/([^ ]+[ ]+)*group-([^ ]+)-message([ ]+[^ ]+)*/, '$2');
+        var groupField = $('select.views-group-select', this.rowObject.element);
+        if ($(this.rowObject.element).prev('tr').is('.group-message') && !groupField.is('.views-group-select-' + groupName)) {
+          var oldGroupName = groupField.attr('class').replace(/([^ ]+[ ]+)*views-group-select-([^ ]+)([ ]+[^ ]+)*/, '$2');
+          groupField.removeClass('views-group-select-' + oldGroupName).addClass('views-group-select-' + groupName);
+          groupField.val(groupName);
+        }
+      };
+    },
+
+    /**
+     * Redraw the operator labels that are displayed next to each filter.
+     */
+    redrawOperatorLabels: function () {
+      for (var i = 0; i < this.draggableRows.length; i++) {
+        // Within the row, the operator labels are displayed inside the first table
+        // cell (next to the filter name).
+        var $draggableRow = $(this.draggableRows[i]);
+        var $firstCell = $draggableRow.find('td').eq(0);
+        if ($firstCell.length) {
+          // The value of the operator label ("And" or "Or") is taken from the
+          // first operator dropdown we encounter, going backwards from the current
+          // row. This dropdown is the one associated with the current row's filter
+          // group.
+          var operatorValue = $draggableRow.prevAll('.views-group-title').find('option:selected').html();
+          var operatorLabel = '<span class="views-operator-label">' + operatorValue + '</span>';
+          // If the next visible row after this one is a draggable filter row,
+          // display the operator label next to the current row. (Checking for
+          // visibility is necessary here since the "Remove" links hide the removed
+          // row but don't actually remove it from the document).
+          var $nextRow = $draggableRow.nextAll(':visible').eq(0);
+          var $existingOperatorLabel = $firstCell.find('.views-operator-label');
+          if ($nextRow.hasClass('draggable')) {
+            // If an operator label was already there, replace it with the new one.
+            if ($existingOperatorLabel.length) {
+              $existingOperatorLabel.replaceWith(operatorLabel);
+            }
+            // Otherwise, append the operator label to the end of the table cell.
+            else {
+              $firstCell.append(operatorLabel);
+            }
+          }
+          // If the next row doesn't contain a filter, then this is the last row
+          // in the group. We don't want to display the operator there (since
+          // operators should only display between two related filters, e.g.
+          // "filter1 AND filter2 AND filter3"). So we remove any existing label
+          // that this row has.
+          else {
+            $existingOperatorLabel.remove();
+          }
+        }
+      }
+    },
+
+    /**
+     * Update the rowspan attribute of each cell containing an operator dropdown.
+     */
+    updateRowspans: function () {
+      var $row;
+      var $currentEmptyRow;
+      var draggableCount;
+      var $operatorCell;
+      var rows = $(this.table).find('tr');
+      var length = rows.length;
+      for (var i = 0; i < length; i++) {
+        $row = $(rows[i]);
+        if ($row.hasClass('views-group-title')) {
+          // This row is a title row.
+          // Keep a reference to the cell containing the dropdown operator.
+          $operatorCell = $row.find('td.group-operator');
+          // Assume this filter group is empty, until we find otherwise.
+          draggableCount = 0;
+          $currentEmptyRow = $row.next('tr');
+          $currentEmptyRow.removeClass('group-populated').addClass('group-empty');
+          // The cell with the dropdown operator should span the title row and
+          // the "this group is empty" row.
+          $operatorCell.attr('rowspan', 2);
+        }
+        else if ($row.hasClass('draggable') && $row.is(':visible')) {
+          // We've found a visible filter row, so we now know the group isn't empty.
+          draggableCount++;
+          $currentEmptyRow.removeClass('group-empty').addClass('group-populated');
+          // The operator cell should span all draggable rows, plus the title.
+          $operatorCell.attr('rowspan', draggableCount + 1);
+        }
+      }
+    }
+  });
+
+  /**
+   * Add a select all checkbox, which checks each checkbox at once.
+   */
+  Drupal.behaviors.viewsFilterConfigSelectAll = {
+    attach: function (context) {
+      // Show the select all checkbox.
+      $(context).find('#views-ui-handler-form div.form-item-options-value-all').once('filterConfigSelectAll')
+        .show()
+        .find('input[type=checkbox]')
+        .on('click', function () {
+          var checked = $(this).is(':checked');
+          // Update all checkbox beside the select all checkbox.
+          $(this).parents('.form-checkboxes').find('input[type=checkbox]').each(function () {
+            $(this).attr('checked', checked);
+          });
+        });
+      // Uncheck the select all checkbox if any of the others are unchecked.
+      $('#views-ui-handler-form').find('div.js-form-type-checkbox').not($('.form-item-options-value-all'))
+        .find('input[type=checkbox]')
+        .on('click', function () {
+          if ($(this).is('checked') === false) {
+            $('#edit-options-value-all').prop('checked', false);
+          }
+        });
+    }
+  };
+
+  /**
+   * Remove icon class from elements that are themed as buttons or dropbuttons.
+   */
+  Drupal.behaviors.viewsRemoveIconClass = {
+    attach: function (context) {
+      $(context).find('.dropbutton').once('dropbutton-icon').find('.icon').removeClass('icon');
+    }
+  };
+
+  /**
+   * Change "Expose filter" buttons into checkboxes.
+   */
+  Drupal.behaviors.viewsUiCheckboxify = {
+    attach: function (context, settings) {
+      var $buttons = $('#edit-options-expose-button-button, #edit-options-group-button-button').once('views-ui-checkboxify');
+      var length = $buttons.length;
+      var i;
+      for (i = 0; i < length; i++) {
+        new Drupal.viewsUi.Checkboxifier($buttons[i]);
+      }
+    }
+  };
+
+  /**
+   * Change the default widget to select the default group according to the
+   * selected widget for the exposed group.
+   */
+  Drupal.behaviors.viewsUiChangeDefaultWidget = {
+    attach: function () {
+      function changeDefaultWidget(event) {
+        if ($(event.target).prop('checked')) {
+          $('input.default-radios').hide();
+          $('td.any-default-radios-row').parent().hide();
+          $('input.default-checkboxes').show();
+        }
+        else {
+          $('input.default-checkboxes').hide();
+          $('td.any-default-radios-row').parent().show();
+          $('input.default-radios').show();
+        }
+      }
+
+      // Update on widget change.
+      $('input[name="options[group_info][multiple]"]')
+        .on('change', changeDefaultWidget)
+        // Update the first time the form is rendered.
+        .trigger('change');
+    }
+  };
+
+  /**
+   * Attaches an expose filter button to a checkbox that triggers its click event.
+   *
+   * @param button
+   *   The DOM object representing the button to be checkboxified.
+   */
+  Drupal.viewsUi.Checkboxifier = function (button) {
+    this.$button = $(button);
+    this.$parent = this.$button.parent('div.views-expose, div.views-grouped');
+    this.$input = this.$parent.find('input:checkbox, input:radio');
+    // Hide the button and its description.
+    this.$button.hide();
+    this.$parent.find('.exposed-description, .grouped-description').hide();
+
+    this.$input.on('click', $.proxy(this, 'clickHandler'));
+
+  };
+
+  /**
+   * When the checkbox is checked or unchecked, simulate a button press.
+   */
+  Drupal.viewsUi.Checkboxifier.prototype.clickHandler = function (e) {
+    this.$button
+      .trigger('click')
+      .trigger('submit');
+  };
+
+  /**
+   * Change the Apply button text based upon the override select state.
+   */
+  Drupal.behaviors.viewsUiOverrideSelect = {
+    attach: function (context) {
+      $(context).find('#edit-override-dropdown').once('views-ui-override-button-text').each(function () {
+        // Closures! :(
+        var $context = $(context);
+        var $submit = $context.find('[id^=edit-submit]');
+        var old_value = $submit.val();
+
+        $submit.once('views-ui-override-button-text')
+          .on('mouseup', function () {
+            $(this).val(old_value);
+            return true;
+          });
+
+        $(this).on('change', function () {
+          var $this = $(this);
+          if ($this.val() === 'default') {
+            $submit.val(Drupal.t('Apply (all displays)'));
+          }
+          else if ($this.val() === 'default_revert') {
+            $submit.val(Drupal.t('Revert to default'));
+          }
+          else {
+            $submit.val(Drupal.t('Apply (this display)'));
+          }
+          var $dialog = $context.closest('.ui-dialog-content');
+          $dialog.trigger('dialogButtonsChange');
+        })
+          .trigger('change');
+      });
+
+    }
+  };
+
+  Drupal.behaviors.viewsUiHandlerRemoveLink = {
+    attach: function (context) {
+      var $context = $(context);
+      // Handle handler deletion by looking for the hidden checkbox and hiding the
+      // row.
+      $context.find('a.views-remove-link').once('views').on('click', function (event) {
+        var id = $(this).attr('id').replace('views-remove-link-', '');
+        $context.find('#views-row-' + id).hide();
+        $context.find('#views-removed-' + id).prop('checked', true);
+        event.preventDefault();
+      });
+
+      // Handle display deletion by looking for the hidden checkbox and hiding the
+      // row.
+      $context.find('a.display-remove-link').once('display').on('click', function (event) {
+        var id = $(this).attr('id').replace('display-remove-link-', '');
+        $context.find('#display-row-' + id).hide();
+        $context.find('#display-removed-' + id).prop('checked', true);
+        event.preventDefault();
+      });
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
+/**
+ * Limits the invocations of a function in a given time frame.
+ *
+ * Adapted from underscore.js with the addition Drupal namespace.
+ *
+ * The debounce function wrapper should be used sparingly. One clear use case
+ * is limiting the invocation of a callback attached to the window resize event.
+ *
+ * Before using the debounce function wrapper, consider first whether the
+ * callback could be attached to an event that fires less frequently or if the
+ * function can be written in such a way that it is only invoked under specific
+ * conditions.
+ *
+ * @param {Function} callback
+ *   The function to be invoked.
+ *
+ * @param {Number} wait
+ *   The time period within which the callback function should only be
+ *   invoked once. For example if the wait period is 250ms, then the callback
+ *   will only be called at most 4 times per second.
+ */
+Drupal.debounce = function (func, wait, immediate) {
+
+  "use strict";
+
+  var timeout;
+  var result;
+  return function () {
+    var context = this;
+    var args = arguments;
+    var later = function () {
+      timeout = null;
+      if (!immediate) {
+        result = func.apply(context, args);
+      }
+    };
+    var callNow = immediate && !timeout;
+    clearTimeout(timeout);
+    timeout = setTimeout(later, wait);
+    if (callNow) {
+      result = func.apply(context, args);
+    }
+    return result;
+  };
+};
+;
+(function ($, Drupal, debounce) {
+
+  "use strict";
+
+  /**
+   * Retrieves the summary for the first element.
+   */
+  $.fn.drupalGetSummary = function () {
+    var callback = this.data('summaryCallback');
+    return (this[0] && callback) ? $.trim(callback(this[0])) : '';
+  };
+
+  /**
+   * Sets the summary for all matched elements.
+   *
+   * @param callback
+   *   Either a function that will be called each time the summary is
+   *   retrieved or a string (which is returned each time).
+   */
+  $.fn.drupalSetSummary = function (callback) {
+    var self = this;
+
+    // To facilitate things, the callback should always be a function. If it's
+    // not, we wrap it into an anonymous function which just returns the value.
+    if (typeof callback !== 'function') {
+      var val = callback;
+      callback = function () { return val; };
+    }
+
+    return this
+      .data('summaryCallback', callback)
+      // To prevent duplicate events, the handlers are first removed and then
+      // (re-)added.
+      .off('formUpdated.summary')
+      .on('formUpdated.summary', function () {
+        self.trigger('summaryUpdated');
+      })
+      // The actual summaryUpdated handler doesn't fire when the callback is
+      // changed, so we have to do this manually.
+      .trigger('summaryUpdated');
+  };
+
+  /**
+   * Prevents consecutive form submissions of identical form values.
+   *
+   * Repetitive form submissions that would submit the identical form values are
+   * prevented, unless the form values are different to the previously submitted
+   * values.
+   *
+   * This is a simplified re-implementation of a user-agent behavior that should
+   * be natively supported by major web browsers, but at this time, only Firefox
+   * has a built-in protection.
+   *
+   * A form value-based approach ensures that the constraint is triggered for
+   * consecutive, identical form submissions only. Compared to that, a form
+   * button-based approach would (1) rely on [visible] buttons to exist where
+   * technically not required and (2) require more complex state management if
+   * there are multiple buttons in a form.
+   *
+   * This implementation is based on form-level submit events only and relies on
+   * jQuery's serialize() method to determine submitted form values. As such, the
+   * following limitations exist:
+   *
+   * - Event handlers on form buttons that preventDefault() do not receive a
+   *   double-submit protection. That is deemed to be fine, since such button
+   *   events typically trigger reversible client-side or server-side operations
+   *   that are local to the context of a form only.
+   * - Changed values in advanced form controls, such as file inputs, are not part
+   *   of the form values being compared between consecutive form submits (due to
+   *   limitations of jQuery.serialize()). That is deemed to be acceptable,
+   *   because if the user forgot to attach a file, then the size of HTTP payload
+   *   will most likely be small enough to be fully passed to the server endpoint
+   *   within (milli)seconds. If a user mistakenly attached a wrong file and is
+   *   technically versed enough to cancel the form submission (and HTTP payload)
+   *   in order to attach a different file, then that edge-case is not supported
+   *   here.
+   *
+   * Lastly, all forms submitted via HTTP GET are idempotent by definition of HTTP
+   * standards, so excluded in this implementation.
+   */
+  Drupal.behaviors.formSingleSubmit = {
+    attach: function () {
+      function onFormSubmit(e) {
+        var $form = $(e.currentTarget);
+        var formValues = $form.serialize();
+        var previousValues = $form.attr('data-drupal-form-submit-last');
+        if (previousValues === formValues) {
+          e.preventDefault();
+        }
+        else {
+          $form.attr('data-drupal-form-submit-last', formValues);
+        }
+      }
+
+      $('body').once('form-single-submit')
+        .on('submit.singleSubmit', 'form:not([method~="GET"])', onFormSubmit);
+    }
+  };
+
+  /**
+   * Sends a 'formUpdated' event each time a form element is modified.
+   */
+  function triggerFormUpdated(element) {
+    $(element).trigger('formUpdated');
+  }
+
+  /**
+   * Collects the IDs of all form fields in the given form.
+   *
+   * @param {HTMLFormElement} form
+   * @return {Array}
+   */
+  function fieldsList(form) {
+    var $fieldList = $(form).find('[name]').map(function (index, element) {
+      // We use id to avoid name duplicates on radio fields and filter out
+      // elements with a name but no id.
+      return element.getAttribute('id');
+    });
+    // Return a true array.
+    return $.makeArray($fieldList);
+  }
+
+  /**
+   * Triggers the 'formUpdated' event on form elements when they are modified.
+   */
+  Drupal.behaviors.formUpdated = {
+    attach: function (context) {
+      var $context = $(context);
+      var contextIsForm = $context.is('form');
+      var $forms = (contextIsForm ? $context : $context.find('form')).once('form-updated');
+      var formFields;
+
+      if ($forms.length) {
+        // Initialize form behaviors, use $.makeArray to be able to use native
+        // forEach array method and have the callback parameters in the right order.
+        $.makeArray($forms).forEach(function (form) {
+          var events = 'change.formUpdated keypress.formUpdated';
+          var eventHandler = debounce(function (event) { triggerFormUpdated(event.target); }, 300);
+          formFields = fieldsList(form).join(',');
+
+          form.setAttribute('data-drupal-form-fields', formFields);
+          $(form).on(events, eventHandler);
+        });
+      }
+      // On ajax requests context is the form element.
+      if (contextIsForm) {
+        formFields = fieldsList(context).join(',');
+        // @todo replace with form.getAttribute() when #1979468 is in.
+        var currentFields = $(context).attr('data-drupal-form-fields');
+        // if there has been a change in the fields or their order, trigger
+        // formUpdated.
+        if (formFields !== currentFields) {
+          triggerFormUpdated(context);
+        }
+      }
+
+    },
+    detach: function (context, settings, trigger) {
+      var $context = $(context);
+      var contextIsForm = $context.is('form');
+      if (trigger === 'unload') {
+        var $forms = (contextIsForm ? $context : $context.find('form')).removeOnce('form-updated');
+        if ($forms.length) {
+          $.makeArray($forms).forEach(function (form) {
+            form.removeAttribute('data-drupal-form-fields');
+            $(form).off('.formUpdated');
+          });
+        }
+      }
+    }
+  };
+
+  /**
+   * Prepopulate form fields with information from the visitor browser.
+   */
+  Drupal.behaviors.fillUserInfoFromBrowser = {
+    attach: function (context, settings) {
+      var userInfo = ['name', 'mail', 'homepage'];
+      var $forms = $('[data-user-info-from-browser]').once('user-info-from-browser');
+      if ($forms.length) {
+        userInfo.map(function (info) {
+          var $element = $forms.find('[name=' + info + ']');
+          var browserData = localStorage.getItem('Drupal.visitor.' + info);
+          var emptyOrDefault = ($element.val() === '' || ($element.attr('data-drupal-default-value') === $element.val()));
+          if ($element.length && emptyOrDefault && browserData) {
+            $element.val(browserData);
+          }
+        });
+      }
+      $forms.on('submit', function () {
+        userInfo.map(function (info) {
+          var $element = $forms.find('[name=' + info + ']');
+          if ($element.length) {
+            localStorage.setItem('Drupal.visitor.' + info, $element.val());
+          }
+        });
+      });
+    }
+  };
+
+})(jQuery, Drupal, Drupal.debounce);
+;
+(function ($, Modernizr, Drupal) {
+
+  "use strict";
+
+  /**
+   * The collapsible details object represents a single collapsible details element.
+   */
+  function CollapsibleDetails(node) {
+    this.$node = $(node);
+    this.$node.data('details', this);
+    // Expand details if there are errors inside, or if it contains an
+    // element that is targeted by the URI fragment identifier.
+    var anchor = location.hash && location.hash !== '#' ? ', ' + location.hash : '';
+    if (this.$node.find('.error' + anchor).length) {
+      this.$node.attr('open', true);
+    }
+    // Initialize and setup the summary,
+    this.setupSummary();
+    // Initialize and setup the legend.
+    this.setupLegend();
+  }
+
+  /**
+   * Extend CollapsibleDetails function.
+   */
+  $.extend(CollapsibleDetails, {
+    /**
+     * Holds references to instantiated CollapsibleDetails objects.
+     */
+    instances: []
+  });
+
+  /**
+   * Extend CollapsibleDetails prototype.
+   */
+  $.extend(CollapsibleDetails.prototype, {
+    /**
+     * Initialize and setup summary events and markup.
+     */
+    setupSummary: function () {
+      this.$summary = $('<span class="summary"></span>');
+      this.$node
+        .on('summaryUpdated', $.proxy(this.onSummaryUpdated, this))
+        .trigger('summaryUpdated');
+    },
+    /**
+     * Initialize and setup legend markup.
+     */
+    setupLegend: function () {
+      // Turn the summary into a clickable link.
+      var $legend = this.$node.find('> summary');
+
+      $('<span class="details-summary-prefix visually-hidden"></span>')
+        .append(this.$node.attr('open') ? Drupal.t('Hide') : Drupal.t('Show'))
+        .prependTo($legend)
+        .after(document.createTextNode(' '));
+
+      // .wrapInner() does not retain bound events.
+      $('<a class="details-title"></a>')
+        .attr('href', '#' + this.$node.attr('id'))
+        .prepend($legend.contents())
+        .appendTo($legend);
+
+      $legend
+        .append(this.$summary)
+        .on('click', $.proxy(this.onLegendClick, this));
+    },
+    /**
+     * Handle legend clicks
+     */
+    onLegendClick: function (e) {
+      this.toggle();
+      e.preventDefault();
+    },
+    /**
+     * Update summary
+     */
+    onSummaryUpdated: function () {
+      var text = $.trim(this.$node.drupalGetSummary());
+      this.$summary.html(text ? ' (' + text + ')' : '');
+    },
+    /**
+     * Toggle the visibility of a details element using smooth animations.
+     */
+    toggle: function () {
+      var isOpen = !!this.$node.attr('open');
+      var $summaryPrefix = this.$node.find('> summary span.details-summary-prefix');
+      if (isOpen) {
+        $summaryPrefix.html(Drupal.t('Show'));
+      }
+      else {
+        $summaryPrefix.html(Drupal.t('Hide'));
+      }
+      this.$node.attr('open', !isOpen);
+    }
+  });
+
+  Drupal.behaviors.collapse = {
+    attach: function (context) {
+      if (Modernizr.details) {
+        return;
+      }
+      var $collapsibleDetails = $(context).find('details').once('collapse').addClass('collapse-processed');
+      if ($collapsibleDetails.length) {
+        for (var i = 0; i < $collapsibleDetails.length; i++) {
+          CollapsibleDetails.instances.push(new CollapsibleDetails($collapsibleDetails[i]));
+        }
+      }
+    }
+  };
+
+  // Expose constructor in the public space.
+  Drupal.CollapsibleDetails = CollapsibleDetails;
+
+})(jQuery, Modernizr, Drupal);
+;
+/**
+ * Adds an HTML element and method to trigger audio UAs to read system messages.
+ *
+ * Use Drupal.announce() to indicate to screen reader users that an element on
+ * the page has changed state. For instance, if clicking a link loads 10 more
+ * items into a list, one might announce the change like this.
+ * $('#search-list')
+ *   .on('itemInsert', function (event, data) {
+ *     // Insert the new items.
+ *     $(data.container.el).append(data.items.el);
+ *     // Announce the change to the page contents.
+ *     Drupal.announce(Drupal.t('@count items added to @container',
+ *       {'@count': data.items.length, '@container': data.container.title}
+ *     ));
+ *   });
+ */
+(function (Drupal, debounce) {
+
+  "use strict";
+
+  var liveElement;
+  var announcements = [];
+
+  /**
+   * Builds a div element with the aria-live attribute and attaches it
+   * to the DOM.
+   */
+  Drupal.behaviors.drupalAnnounce = {
+    attach: function (context) {
+      // Create only one aria-live element.
+      if (!liveElement) {
+        liveElement = document.createElement('div');
+        liveElement.id = 'drupal-live-announce';
+        liveElement.className = 'visually-hidden';
+        liveElement.setAttribute('aria-live', 'polite');
+        liveElement.setAttribute('aria-busy', 'false');
+        document.body.appendChild(liveElement);
+      }
+    }
+  };
+
+  /**
+   * Concatenates announcements to a single string; appends to the live region.
+   */
+  function announce() {
+    var text = [];
+    var priority = 'polite';
+    var announcement;
+
+    // Create an array of announcement strings to be joined and appended to the
+    // aria live region.
+    var il = announcements.length;
+    for (var i = 0; i < il; i++) {
+      announcement = announcements.pop();
+      text.unshift(announcement.text);
+      // If any of the announcements has a priority of assertive then the group
+      // of joined announcements will have this priority.
+      if (announcement.priority === 'assertive') {
+        priority = 'assertive';
+      }
+    }
+
+    if (text.length) {
+      // Clear the liveElement so that repeated strings will be read.
+      liveElement.innerHTML = '';
+      // Set the busy state to true until the node changes are complete.
+      liveElement.setAttribute('aria-busy', 'true');
+      // Set the priority to assertive, or default to polite.
+      liveElement.setAttribute('aria-live', priority);
+      // Print the text to the live region. Text should be run through
+      // Drupal.t() before being passed to Drupal.announce().
+      liveElement.innerHTML = text.join('\n');
+      // The live text area is updated. Allow the AT to announce the text.
+      liveElement.setAttribute('aria-busy', 'false');
+    }
+  }
+
+  /**
+   * Triggers audio UAs to read the supplied text.
+   *
+   * The aria-live region will only read the text that currently populates its
+   * text node. Replacing text quickly in rapid calls to announce results in
+   * only the text from the most recent call to Drupal.announce() being read.
+   * By wrapping the call to announce in a debounce function, we allow for
+   * time for multiple calls to Drupal.announce() to queue up their messages.
+   * These messages are then joined and append to the aria-live region as one
+   * text node.
+   *
+   * @param String text
+   *   A string to be read by the UA.
+   * @param String priority
+   *   A string to indicate the priority of the message. Can be either
+   *   'polite' or 'assertive'. Polite is the default.
+   *
+   * @see http://www.w3.org/WAI/PF/aria-practices/#liveprops
+   */
+  Drupal.announce = function (text, priority) {
+    // Save the text and priority into a closure variable. Multiple simultaneous
+    // announcements will be concatenated and read in sequence.
+    announcements.push({
+      text: text,
+      priority: priority
+    });
+    // Immediately invoke the function that debounce returns. 200 ms is right at
+    // the cusp where humans notice a pause, so we will wait
+    // at most this much time before the set of queued announcements is read.
+    return (debounce(announce, 200)());
+  };
+}(Drupal, Drupal.debounce));
+;
+window.matchMedia||(window.matchMedia=function(){"use strict";var e=window.styleMedia||window.media;if(!e){var t=document.createElement("style"),i=document.getElementsByTagName("script")[0],n=null;t.type="text/css";t.id="matchmediajs-test";i.parentNode.insertBefore(t,i);n="getComputedStyle"in window&&window.getComputedStyle(t,null)||t.currentStyle;e={matchMedium:function(e){var i="@media "+e+"{ #matchmediajs-test { width: 1px; } }";if(t.styleSheet){t.styleSheet.cssText=i}else{t.textContent=i}return n.width==="1px"}}}return function(t){return{matches:e.matchMedium(t||"all"),media:t||"all"}}}());
+;
+(function(){if(window.matchMedia&&window.matchMedia("all").addListener){return false}var e=window.matchMedia,i=e("only all").matches,n=false,t=0,a=[],r=function(i){clearTimeout(t);t=setTimeout(function(){for(var i=0,n=a.length;i<n;i++){var t=a[i].mql,r=a[i].listeners||[],o=e(t.media).matches;if(o!==t.matches){t.matches=o;for(var s=0,l=r.length;s<l;s++){r[s].call(window,t)}}}},30)};window.matchMedia=function(t){var o=e(t),s=[],l=0;o.addListener=function(e){if(!i){return}if(!n){n=true;window.addEventListener("resize",r,true)}if(l===0){l=a.push({mql:o,listeners:s})}s.push(e)};o.removeListener=function(e){for(var i=0,n=s.length;i<n;i++){if(s[i]===e){s.splice(i,1)}}};return o}})();
+;
+/**
+ * Manages elements that can offset the size of the viewport.
+ *
+ * Measures and reports viewport offset dimensions from elements like the
+ * toolbar that can potentially displace the positioning of other elements.
+ */
+(function ($, Drupal, debounce) {
+
+  "use strict";
+
+  var offsets = {
+    top: 0,
+    right: 0,
+    bottom: 0,
+    left: 0
+  };
+
+  /**
+   * Registers a resize handler on the window.
+   */
+  Drupal.behaviors.drupalDisplace = {
+    attach: function () {
+      // Mark this behavior as processed on the first pass.
+      if (this.displaceProcessed) {
+        return;
+      }
+      this.displaceProcessed = true;
+
+      $(window).on('resize.drupalDisplace', debounce(displace, 200));
+    }
+  };
+
+  /**
+   * Informs listeners of the current offset dimensions.
+   *
+   * @param {boolean} broadcast
+   *   (optional) When true or undefined, causes the recalculated offsets values to be
+   *   broadcast to listeners.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function displace(broadcast) {
+    offsets = Drupal.displace.offsets = calculateOffsets();
+    if (typeof broadcast === 'undefined' || broadcast) {
+      $(document).trigger('drupalViewportOffsetChange', offsets);
+    }
+    return offsets;
+  }
+
+  /**
+   * Determines the viewport offsets.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function calculateOffsets() {
+    return {
+      top: calculateOffset('top'),
+      right: calculateOffset('right'),
+      bottom: calculateOffset('bottom'),
+      left: calculateOffset('left')
+    };
+  }
+
+  /**
+   * Gets a specific edge's offset.
+   *
+   * Any element with the attribute data-offset-{edge} e.g. data-offset-top will
+   * be considered in the viewport offset calculations. If the attribute has a
+   * numeric value, that value will be used. If no value is provided, one will
+   * be calculated using the element's dimensions and placement.
+   *
+   * @param {string} edge
+   *   The name of the edge to calculate. Can be 'top', 'right',
+   *   'bottom' or 'left'.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function calculateOffset(edge) {
+    var edgeOffset = 0;
+    var displacingElements = document.querySelectorAll('[data-offset-' + edge + ']');
+    var n = displacingElements.length;
+    for (var i = 0; i < n; i++) {
+      var el = displacingElements[i];
+      // If the element is not visible, do consider its dimensions.
+      if (el.style.display === 'none') {
+        continue;
+      }
+      // If the offset data attribute contains a displacing value, use it.
+      var displacement = parseInt(el.getAttribute('data-offset-' + edge), 10);
+      // If the element's offset data attribute exits
+      // but is not a valid number then get the displacement
+      // dimensions directly from the element.
+      if (isNaN(displacement)) {
+        displacement = getRawOffset(el, edge);
+      }
+      // If the displacement value is larger than the current value for this
+      // edge, use the displacement value.
+      edgeOffset = Math.max(edgeOffset, displacement);
+    }
+
+    return edgeOffset;
+  }
+
+  /**
+   * Calculates displacement for element based on its dimensions and placement.
+   *
+   * @param {jQuery} $el
+   *   The jQuery element whose dimensions and placement will be measured.
+   *
+   * @param {string} edge
+   *   The name of the edge of the viewport that the element is associated
+   *   with.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function getRawOffset(el, edge) {
+    var $el = $(el);
+    var documentElement = document.documentElement;
+    var displacement = 0;
+    var horizontal = (edge === 'left' || edge === 'right');
+    // Get the offset of the element itself.
+    var placement = $el.offset()[horizontal ? 'left' : 'top'];
+    // Subtract scroll distance from placement to get the distance
+    // to the edge of the viewport.
+    placement -= window['scroll' + (horizontal ? 'X' : 'Y')] || document.documentElement['scroll' + (horizontal) ? 'Left' : 'Top'] || 0;
+    // Find the displacement value according to the edge.
+    switch (edge) {
+      // Left and top elements displace as a sum of their own offset value
+      // plus their size.
+      case 'top':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerHeight();
+        break;
+
+      case 'left':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerWidth();
+        break;
+
+      // Right and bottom elements displace according to their left and
+      // top offset. Their size isn't important.
+      case 'bottom':
+        displacement = documentElement.clientHeight - placement;
+        break;
+
+      case 'right':
+        displacement = documentElement.clientWidth - placement;
+        break;
+
+      default:
+        displacement = 0;
+    }
+    return displacement;
+  }
+
+  /**
+   * Assign the displace function to a property of the Drupal global object.
+   */
+  Drupal.displace = displace;
+  $.extend(Drupal.displace, {
+    /**
+     * Expose offsets to other scripts to avoid having to recalculate offsets
+     */
+    offsets: offsets,
+    /**
+     * Expose method to compute a single edge offsets.
+     */
+    calculateOffset: calculateOffset
+  });
+
+})(jQuery, Drupal, Drupal.debounce);
+;
+/**
+ * Builds a nested accordion widget.
+ *
+ * Invoke on an HTML list element with the jQuery plugin pattern.
+ * - For example, $('.menu').drupalToolbarMenu();
+ */
+
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Store the open menu tray.
+   */
+  var activeItem = Drupal.url(drupalSettings.path.currentPath);
+
+  $.fn.drupalToolbarMenu = function () {
+
+    var ui = {
+      'handleOpen': Drupal.t('Extend'),
+      'handleClose': Drupal.t('Collapse')
+    };
+
+    /**
+     * Handle clicks from the disclosure button on an item with sub-items.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function toggleClickHandler(event) {
+      var $toggle = $(event.target);
+      var $item = $toggle.closest('li');
+      // Toggle the list item.
+      toggleList($item);
+      // Close open sibling menus.
+      var $openItems = $item.siblings().filter('.open');
+      toggleList($openItems, false);
+    }
+
+    /**
+     * Handle clicks from a menu item link.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function linkClickHandler(event) {
+      // If the toolbar is positioned fixed (and therefore hiding content
+      // underneath), then users expect clicks in the administration menu tray
+      // to take them to that destination but for the menu tray to be closed
+      // after clicking: otherwise the toolbar itself is obstructing the view
+      // of the destination they chose.
+      if (!Drupal.toolbar.models.toolbarModel.get('isFixed')) {
+        Drupal.toolbar.models.toolbarModel.set('activeTab', null);
+      }
+      // Stopping propagation to make sure that once a toolbar-box is clicked
+      // (the whitespace part), the page is not redirected anymore.
+      event.stopPropagation();
+    }
+
+    /**
+     * Toggle the open/close state of a list is a menu.
+     *
+     * @param {jQuery} $item
+     *   The li item to be toggled.
+     *
+     * @param {Boolean} switcher
+     *   A flag that forces toggleClass to add or a remove a class, rather than
+     *   simply toggling its presence.
+     */
+    function toggleList($item, switcher) {
+      var $toggle = $item.children('.toolbar-box').children('.toolbar-handle');
+      switcher = (typeof switcher !== 'undefined') ? switcher : !$item.hasClass('open');
+      // Toggle the item open state.
+      $item.toggleClass('open', switcher);
+      // Twist the toggle.
+      $toggle.toggleClass('open', switcher);
+      // Adjust the toggle text.
+      $toggle
+        .find('.action')
+        // Expand Structure, Collapse Structure
+        .text((switcher) ? ui.handleClose : ui.handleOpen);
+    }
+
+    /**
+     * Add markup to the menu elements.
+     *
+     * Items with sub-elements have a list toggle attached to them. Menu item
+     * links and the corresponding list toggle are wrapped with in a div
+     * classed with .toolbar-box. The .toolbar-box div provides a positioning
+     * context for the item list toggle.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu to be initialized.
+     */
+    function initItems($menu) {
+      var options = {
+        'class': 'toolbar-icon toolbar-handle',
+        'action': ui.handleOpen,
+        'text': ''
+      };
+      // Initialize items and their links.
+      $menu.find('li > a').wrap('<div class="toolbar-box">');
+      // Add a handle to each list item if it has a menu.
+      $menu.find('li').each(function (index, element) {
+        var $item = $(element);
+        if ($item.children('ul.menu').length) {
+          var $box = $item.children('.toolbar-box');
+          options.text = Drupal.t('@label', {'@label': $box.find('a').text()});
+          $item.children('.toolbar-box')
+            .append(Drupal.theme('toolbarMenuItemToggle', options));
+        }
+      });
+    }
+
+    /**
+     * Adds a level class to each list based on its depth in the menu.
+     *
+     * This function is called recursively on each sub level of lists elements
+     * until the depth of the menu is exhausted.
+     *
+     * @param {jQuery} $lists
+     *   A jQuery object of ul elements.
+     *
+     * @param {Integer} level
+     *   The current level number to be assigned to the list elements.
+     */
+    function markListLevels($lists, level) {
+      level = (!level) ? 1 : level;
+      var $lis = $lists.children('li').addClass('level-' + level);
+      $lists = $lis.children('ul');
+      if ($lists.length) {
+        markListLevels($lists, level + 1);
+      }
+    }
+
+    /**
+     * On page load, open the active menu item.
+     *
+     * Marks the trail of the active link in the menu back to the root of the
+     * menu with .menu-item--active-trail.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu.
+     */
+    function openActiveItem($menu) {
+      var pathItem = $menu.find('a[href="' + location.pathname + '"]');
+      if (pathItem.length && !activeItem) {
+        activeItem = location.pathname;
+      }
+      if (activeItem) {
+        var $activeItem = $menu.find('a[href="' + activeItem + '"]').addClass('menu-item--active');
+        var $activeTrail = $activeItem.parentsUntil('.root', 'li').addClass('menu-item--active-trail');
+        toggleList($activeTrail, true);
+      }
+    }
+
+    // Bind event handlers.
+    $(document)
+      .on('click.toolbar', '.toolbar-box', toggleClickHandler)
+      .on('click.toolbar', '.toolbar-box a', linkClickHandler);
+
+    // Return the jQuery object.
+    return this.each(function (selector) {
+      var $menu = $(this).once('toolbar-menu');
+      if ($menu.length) {
+        $menu.addClass('root');
+        initItems($menu);
+        markListLevels($menu);
+        // Restore previous and active states.
+        openActiveItem($menu);
+      }
+    });
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarMenuItemToggle = function (options) {
+    return '<button class="' + options['class'] + '"><span class="action">' + options.action + '</span><span class="label">' + options.text + '</span></button>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file toolbar.js
+ *
+ * Defines the behavior of the Drupal administration toolbar.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  // Merge run-time settings with the defaults.
+  var options = $.extend(
+    {
+      breakpoints: {
+        'toolbar.narrow': '',
+        'toolbar.standard': '',
+        'toolbar.wide': ''
+      }
+    },
+    drupalSettings.toolbar,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        horizontal: Drupal.t('Horizontal orientation'),
+        vertical: Drupal.t('Vertical orientation')
+      }
+    }
+  );
+
+  /**
+   * Registers tabs with the toolbar.
+   *
+   * The Drupal toolbar allows modules to register top-level tabs. These may
+   * point directly to a resource or toggle the visibility of a tray.
+   *
+   * Modules register tabs with hook_toolbar().
+   */
+  Drupal.behaviors.toolbar = {
+
+    attach: function (context) {
+      // Verify that the user agent understands media queries. Complex admin
+      // toolbar layouts require media query support.
+      if (!window.matchMedia('only screen').matches) {
+        return;
+      }
+      // Process the administrative toolbar.
+      $(context).find('#toolbar-administration').once('toolbar').each(function () {
+
+        // Establish the toolbar models and views.
+        var model = Drupal.toolbar.models.toolbarModel = new Drupal.toolbar.ToolbarModel({
+          locked: JSON.parse(localStorage.getItem('Drupal.toolbar.trayVerticalLocked')) || false,
+          activeTab: document.getElementById(JSON.parse(localStorage.getItem('Drupal.toolbar.activeTabID')))
+        });
+        Drupal.toolbar.views.toolbarVisualView = new Drupal.toolbar.ToolbarVisualView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.toolbarAuralView = new Drupal.toolbar.ToolbarAuralView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.bodyVisualView = new Drupal.toolbar.BodyVisualView({
+          el: this,
+          model: model
+        });
+
+        // Render collapsible menus.
+        var menuModel = Drupal.toolbar.models.menuModel = new Drupal.toolbar.MenuModel();
+        Drupal.toolbar.views.menuVisualView = new Drupal.toolbar.MenuVisualView({
+          el: $(this).find('.toolbar-menu-administration').get(0),
+          model: menuModel,
+          strings: options.strings
+        });
+
+        // Handle the resolution of Drupal.toolbar.setSubtrees.
+        // This is handled with a deferred so that the function may be invoked
+        // asynchronously.
+        Drupal.toolbar.setSubtrees.done(function (subtrees) {
+          menuModel.set('subtrees', subtrees);
+          localStorage.setItem('Drupal.toolbar.subtrees', JSON.stringify(subtrees));
+          // Indicate on the toolbarModel that subtrees are now loaded.
+          model.set('areSubtreesLoaded', true);
+        });
+
+        // Attach a listener to the configured media query breakpoints.
+        for (var label in options.breakpoints) {
+          if (options.breakpoints.hasOwnProperty(label)) {
+            var mq = options.breakpoints[label];
+            var mql = Drupal.toolbar.mql[label] = window.matchMedia(mq);
+            // Curry the model and the label of the media query breakpoint to
+            // the mediaQueryChangeHandler function.
+            mql.addListener(Drupal.toolbar.mediaQueryChangeHandler.bind(null, model, label));
+            // Fire the mediaQueryChangeHandler for each configured breakpoint
+            // so that they process once.
+            Drupal.toolbar.mediaQueryChangeHandler.call(null, model, label, mql);
+          }
+        }
+
+        // Trigger an initial attempt to load menu subitems. This first attempt
+        // is made after the media query handlers have had an opportunity to
+        // process. The toolbar starts in the vertical orientation by default,
+        // unless the viewport is wide enough to accommodate a horizontal
+        // orientation. Thus we give the Toolbar a chance to determine if it
+        // should be set to horizontal orientation before attempting to load
+        // menu subtrees.
+        Drupal.toolbar.views.toolbarVisualView.loadSubtrees();
+
+        $(document)
+          // Update the model when the viewport offset changes.
+          .on('drupalViewportOffsetChange.toolbar', function (event, offsets) {
+            model.set('offsets', offsets);
+          });
+
+        // Broadcast model changes to other modules.
+        model
+          .on('change:orientation', function (model, orientation) {
+            $(document).trigger('drupalToolbarOrientationChange', orientation);
+          })
+          .on('change:activeTab', function (model, tab) {
+            $(document).trigger('drupalToolbarTabChange', tab);
+          })
+          .on('change:activeTray', function (model, tray) {
+            $(document).trigger('drupalToolbarTrayChange', tray);
+          });
+
+        // If the toolbar's orientation is horizontal and no active tab is
+        // defined then show the tray of the first toolbar tab by default (but
+        // not the first 'Home' toolbar tab).
+        if (Drupal.toolbar.models.toolbarModel.get('orientation') === 'horizontal' && Drupal.toolbar.models.toolbarModel.get('activeTab') === null) {
+          Drupal.toolbar.models.toolbarModel.set({
+            'activeTab': $('.toolbar-bar .toolbar-tab:not(.home-toolbar-tab) a').get(0)
+          });
+        }
+      });
+    }
+  };
+
+  /**
+   * Toolbar methods of Backbone objects.
+   */
+  Drupal.toolbar = {
+
+    // A hash of View instances.
+    views: {},
+
+    // A hash of Model instances.
+    models: {},
+
+    // A hash of MediaQueryList objects tracked by the toolbar.
+    mql: {},
+
+    /**
+     * Accepts a list of subtree menu elements.
+     *
+     * A deferred object that is resolved by an inlined JavaScript callback.
+     *
+     * JSONP callback.
+     * @see toolbar_subtrees_jsonp().
+     */
+    setSubtrees: new $.Deferred(),
+
+    /**
+     * Respond to configured narrow media query changes.
+     */
+    mediaQueryChangeHandler: function (model, label, mql) {
+      switch (label) {
+        case 'toolbar.narrow':
+          model.set({
+            'isOriented': mql.matches,
+            'isTrayToggleVisible': false
+          });
+          // If the toolbar doesn't have an explicit orientation yet, or if the
+          // narrow media query doesn't match then set the orientation to
+          // vertical.
+          if (!mql.matches || !model.get('orientation')) {
+            model.set({'orientation': 'vertical'}, {validate: true});
+          }
+          break;
+        case 'toolbar.standard':
+          model.set({
+            'isFixed': mql.matches
+          });
+          break;
+        case 'toolbar.wide':
+          model.set({
+            'orientation': ((mql.matches) ? 'horizontal' : 'vertical')
+          }, {validate: true});
+          // The tray orientation toggle visibility does not need to be
+          // validated.
+          model.set({
+            'isTrayToggleVisible': mql.matches
+          });
+          break;
+        default:
+          break;
+      }
+    }
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarOrientationToggle = function () {
+    return '<div class="toolbar-toggle-orientation"><div class="toolbar-lining">' +
+      '<button class="toolbar-icon" type="button"></button>' +
+      '</div></div>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file
+ * A Backbone Model for collapsible menus.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone Model for collapsible menus.
+   */
+  Drupal.toolbar.MenuModel = Backbone.Model.extend({
+    defaults: {
+      subtrees: {}
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone Model for the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone model for the toolbar.
+   */
+  Drupal.toolbar.ToolbarModel = Backbone.Model.extend({
+    defaults: {
+      // The active toolbar tab. All other tabs should be inactive under
+      // normal circumstances. It will remain active across page loads. The
+      // active item is stored as an ID selector e.g. '#toolbar-item--1'.
+      activeTab: null,
+      // Represents whether a tray is open or not. Stored as an ID selector e.g.
+      // '#toolbar-item--1-tray'.
+      activeTray: null,
+      // Indicates whether the toolbar is displayed in an oriented fashion,
+      // either horizontal or vertical.
+      isOriented: false,
+      // Indicates whether the toolbar is positioned absolute (false) or fixed
+      // (true).
+      isFixed: false,
+      // Menu subtrees are loaded through an AJAX request only when the Toolbar
+      // is set to a vertical orientation.
+      areSubtreesLoaded: false,
+      // If the viewport overflow becomes constrained, isFixed must be true so
+      // that elements in the trays aren't lost off-screen and impossible to
+      // get to.
+      isViewportOverflowConstrained: false,
+      // The orientation of the active tray.
+      orientation: 'vertical',
+      // A tray is locked if a user toggled it to vertical. Otherwise a tray
+      // will switch between vertical and horizontal orientation based on the
+      // configured breakpoints. The locked state will be maintained across page
+      // loads.
+      locked: false,
+      // Indicates whether the tray orientation toggle is visible.
+      isTrayToggleVisible: false,
+      // The height of the toolbar.
+      height: null,
+      // The current viewport offsets determined by Drupal.displace(). The
+      // offsets suggest how a module might position is components relative to
+      // the viewport.
+      offsets: {
+        top: 0,
+        right: 0,
+        bottom: 0,
+        left: 0
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    validate: function (attributes, options) {
+      // Prevent the orientation being set to horizontal if it is locked, unless
+      // override has not been passed as an option.
+      if (attributes.orientation === 'horizontal' && this.get('locked') && !options.override) {
+        return Drupal.t('The toolbar cannot be set to a horizontal orientation when it is locked.');
+      }
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the body element.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Adjusts the body element with the toolbar position and dimension changes.
+   */
+  Drupal.toolbar.BodyVisualView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:orientation change:offsets change:activeTray change:isOriented change:isFixed change:isViewportOverflowConstrained', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var $body = $('body');
+      var orientation = this.model.get('orientation');
+      var isOriented = this.model.get('isOriented');
+      var isViewportOverflowConstrained = this.model.get('isViewportOverflowConstrained');
+
+      $body
+        // We are using JavaScript to control media-query handling for two
+        // reasons: (1) Using JavaScript let's us leverage the breakpoint
+        // configurations and (2) the CSS is really complex if we try to hide
+        // some styling from browsers that don't understand CSS media queries.
+        // If we drive the CSS from classes added through JavaScript,
+        // then the CSS becomes simpler and more robust.
+        .toggleClass('toolbar-vertical', (orientation === 'vertical'))
+        .toggleClass('toolbar-horizontal', (isOriented && orientation === 'horizontal'))
+        // When the toolbar is fixed, it will not scroll with page scrolling.
+        .toggleClass('toolbar-fixed', (isViewportOverflowConstrained || this.model.get('isFixed')))
+        // Toggle the toolbar-tray-open class on the body element. The class is
+        // applied when a toolbar tray is active. Padding might be applied to
+        // the body element to prevent the tray from overlapping content.
+        .toggleClass('toolbar-tray-open', !!this.model.get('activeTray'))
+        // Apply padding to the top of the body to offset the placement of the
+        // toolbar bar element.
+        .css('padding-top', this.model.get('offsets').top);
+    }
+  });
+
+}(jQuery, Drupal, Backbone));
+;
+/**
+ * @file
+ * A Backbone view for the collapsible menus.
+ */
+
+(function ($, Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone View for collapsible menus.
+   */
+  Drupal.toolbar.MenuVisualView = Backbone.View.extend({
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:subtrees', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var subtrees = this.model.get('subtrees');
+      // Add subtrees.
+      for (var id in subtrees) {
+        if (subtrees.hasOwnProperty(id)) {
+          this.$el
+            .find('#toolbar-link-' + id)
+            .once('toolbar-subtrees')
+            .after(subtrees[id]);
+        }
+      }
+      // Render the main menu as a nested, collapsible accordion.
+      if ('drupalToolbarMenu' in $.fn) {
+        this.$el
+          .children('.menu')
+          .drupalToolbarMenu();
+      }
+    }
+  });
+
+}(jQuery, Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the aural feedback of the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the aural feedback of the toolbar.
+   */
+  Drupal.toolbar.ToolbarAuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:orientation', this.onOrientationChange);
+      this.listenTo(this.model, 'change:activeTray', this.onActiveTrayChange);
+    },
+
+    /**
+     * Announces an orientation change.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param String orientation
+     *   The new value of the orientation attribute in the model.
+     */
+    onOrientationChange: function (model, orientation) {
+      Drupal.announce(Drupal.t('Tray orientation changed to @orientation.', {
+        '@orientation': orientation
+      }));
+    },
+
+    /**
+     * Announces a changed active tray.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param Element orientation
+     *   The new value of the tray attribute in the model.
+     */
+    onActiveTrayChange: function (model, tray) {
+      var relevantTray = (tray === null) ? model.previous('activeTray') : tray;
+      var action = (tray === null) ? Drupal.t('closed') : Drupal.t('opened');
+      var trayNameElement = relevantTray.querySelector('.toolbar-tray-name');
+      var text;
+      if (trayNameElement !== null) {
+        text = Drupal.t('Tray "@tray" @action.', {
+          '@tray': trayNameElement.textContent, '@action': action
+        });
+      }
+      else {
+        text = Drupal.t('Tray @action.', {'@action': action});
+      }
+      Drupal.announce(text);
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the toolbar element. Listens to mouse & touch.
+ */
+
+(function ($, Drupal, drupalSettings, Backbone) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the toolbar element. Listens to mouse & touch.
+   */
+  Drupal.toolbar.ToolbarVisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click .toolbar-bar .toolbar-tab': 'onTabClick',
+        'click .toolbar-toggle-orientation button': 'onOrientationToggleClick',
+        'touchend .toolbar-bar .toolbar-tab': touchEndToClick,
+        'touchend .toolbar-toggle-orientation button': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:activeTab change:orientation change:isOriented change:isTrayToggleVisible', this.render);
+      this.listenTo(this.model, 'change:mqMatches', this.onMediaQueryChange);
+      this.listenTo(this.model, 'change:offsets', this.adjustPlacement);
+
+      // Add the tray orientation toggles.
+      this.$el
+        .find('.toolbar-tray .toolbar-lining')
+        .append(Drupal.theme('toolbarOrientationToggle'));
+
+      // Trigger an activeTab change so that listening scripts can respond on
+      // page load. This will call render.
+      this.model.trigger('change:activeTab');
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.updateTabs();
+      this.updateTrayOrientation();
+      this.updateBarAttributes();
+      // Load the subtrees if the orientation of the toolbar is changed to
+      // vertical. This condition responds to the case that the toolbar switches
+      // from horizontal to vertical orientation. The toolbar starts in a
+      // vertical orientation by default and then switches to horizontal during
+      // initialization if the media query conditions are met. Simply checking
+      // that the orientation is vertical here would result in the subtrees
+      // always being loaded, even when the toolbar initialization ultimately
+      // results in a horizontal orientation.
+      //
+      // @see Drupal.behaviors.toolbar.attach() where admin menu subtrees
+      // loading is invoked during initialization after media query conditions
+      // have been processed.
+      if (this.model.changed.orientation === 'vertical' || this.model.changed.activeTab) {
+        this.loadSubtrees();
+      }
+      // Trigger a recalculation of viewport displacing elements. Use setTimeout
+      // to ensure this recalculation happens after changes to visual elements
+      // have processed.
+      window.setTimeout(function () {
+        Drupal.displace(true);
+      }, 0);
+      return this;
+    },
+
+    /**
+     * Responds to a toolbar tab click.
+     *
+     * @param jQuery.Event event
+     */
+    onTabClick: function (event) {
+      // If this tab has a tray associated with it, it is considered an
+      // activatable tab.
+      if (event.target.hasAttribute('data-toolbar-tray')) {
+        var activeTab = this.model.get('activeTab');
+        var clickedTab = event.target;
+
+        // Set the event target as the active item if it is not already.
+        this.model.set('activeTab', (!activeTab || clickedTab !== activeTab) ? clickedTab : null);
+
+        event.preventDefault();
+        event.stopPropagation();
+      }
+    },
+
+    /**
+     * Toggles the orientation of a toolbar tray.
+     *
+     * @param jQuery.Event event
+     */
+    onOrientationToggleClick: function (event) {
+      var orientation = this.model.get('orientation');
+      // Determine the toggle-to orientation.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      var locked = (antiOrientation === 'vertical') ? true : false;
+      // Remember the locked state.
+      if (locked) {
+        localStorage.setItem('Drupal.toolbar.trayVerticalLocked', 'true');
+      }
+      else {
+        localStorage.removeItem('Drupal.toolbar.trayVerticalLocked');
+      }
+      // Update the model.
+      this.model.set({
+        locked: locked,
+        orientation: antiOrientation
+      }, {
+        validate: true,
+        override: true
+      });
+
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Updates the display of the tabs: toggles a tab and the associated tray.
+     */
+    updateTabs: function () {
+      var $tab = $(this.model.get('activeTab'));
+      // Deactivate the previous tab.
+      $(this.model.previous('activeTab'))
+        .removeClass('is-active')
+        .prop('aria-pressed', false);
+      // Deactivate the previous tray.
+      $(this.model.previous('activeTray'))
+        .removeClass('is-active');
+
+      // Activate the selected tab.
+      if ($tab.length > 0) {
+        $tab
+          .addClass('is-active')
+          // Mark the tab as pressed.
+          .prop('aria-pressed', true);
+        var name = $tab.attr('data-toolbar-tray');
+        // Store the active tab name or remove the setting.
+        var id = $tab.get(0).id;
+        if (id) {
+          localStorage.setItem('Drupal.toolbar.activeTabID', JSON.stringify(id));
+        }
+        // Activate the associated tray.
+        var $tray = this.$el.find('[data-toolbar-tray="' + name + '"].toolbar-tray');
+        if ($tray.length) {
+          $tray.addClass('is-active');
+          this.model.set('activeTray', $tray.get(0));
+        }
+        else {
+          // There is no active tray.
+          this.model.set('activeTray', null);
+        }
+      }
+      else {
+        // There is no active tray.
+        this.model.set('activeTray', null);
+        localStorage.removeItem('Drupal.toolbar.activeTabID');
+      }
+    },
+
+    /**
+     * Update the attributes of the toolbar bar element.
+     */
+    updateBarAttributes: function () {
+      var isOriented = this.model.get('isOriented');
+      if (isOriented) {
+        this.$el.find('.toolbar-bar').attr('data-offset-top', '');
+      }
+      else {
+        this.$el.find('.toolbar-bar').removeAttr('data-offset-top');
+      }
+      // Toggle between a basic vertical view and a more sophisticated
+      // horizontal and vertical display of the toolbar bar and trays.
+      this.$el.toggleClass('toolbar-oriented', isOriented);
+    },
+
+    /**
+     * Updates the orientation of the active tray if necessary.
+     */
+    updateTrayOrientation: function () {
+      var orientation = this.model.get('orientation');
+      // The antiOrientation is used to render the view of action buttons like
+      // the tray orientation toggle.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      // Update the orientation of the trays.
+      var $trays = this.$el.find('.toolbar-tray')
+        .removeClass('toolbar-tray-horizontal toolbar-tray-vertical')
+        .addClass('toolbar-tray-' + orientation);
+
+      // Update the tray orientation toggle button.
+      var iconClass = 'toolbar-icon-toggle-' + orientation;
+      var iconAntiClass = 'toolbar-icon-toggle-' + antiOrientation;
+      var $orientationToggle = this.$el.find('.toolbar-toggle-orientation')
+        .toggle(this.model.get('isTrayToggleVisible'));
+      $orientationToggle.find('button')
+        .val(antiOrientation)
+        .attr('title', this.strings[antiOrientation])
+        .text(this.strings[antiOrientation])
+        .removeClass(iconClass)
+        .addClass(iconAntiClass);
+
+      // Update data offset attributes for the trays.
+      var dir = document.documentElement.dir;
+      var edge = (dir === 'rtl') ? 'right' : 'left';
+      // Remove data-offset attributes from the trays so they can be refreshed.
+      $trays.removeAttr('data-offset-left data-offset-right data-offset-top');
+      // If an active vertical tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-vertical.is-active').attr('data-offset-' + edge, '');
+      // If an active horizontal tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-horizontal.is-active').attr('data-offset-top', '');
+    },
+
+    /**
+     * Sets the tops of the trays so that they align with the bottom of the bar.
+     */
+    adjustPlacement: function () {
+      var $trays = this.$el.find('.toolbar-tray');
+      if (!this.model.get('isOriented')) {
+        $trays.css('padding-top', 0);
+        $trays.removeClass('toolbar-tray-horizontal').addClass('toolbar-tray-vertical');
+      }
+      else {
+        // The toolbar container is invisible. Its placement is used to
+        // determine the container for the trays.
+        $trays.css('padding-top', this.$el.find('.toolbar-bar').outerHeight());
+      }
+    },
+
+    /**
+     * Calls the endpoint URI that will return rendered subtrees with JSONP.
+     *
+     * The rendered admin menu subtrees HTML is cached on the client in
+     * localStorage until the cache of the admin menu subtrees on the server-
+     * side is invalidated. The subtreesHash is stored in localStorage as well
+     * and compared to the subtreesHash in drupalSettings to determine when the
+     * admin menu subtrees cache has been invalidated.
+     */
+    loadSubtrees: function () {
+      var $activeTab = $(this.model.get('activeTab'));
+      var orientation = this.model.get('orientation');
+      // Only load and render the admin menu subtrees if:
+      //   (1) They have not been loaded yet.
+      //   (2) The active tab is the administration menu tab, indicated by the
+      //       presence of the data-drupal-subtrees attribute.
+      //   (3) The orientation of the tray is vertical.
+      if (!this.model.get('areSubtreesLoaded') && typeof $activeTab.data('drupal-subtrees') !== 'undefined' && orientation === 'vertical') {
+        var subtreesHash = drupalSettings.toolbar.subtreesHash;
+        var langcode = drupalSettings.toolbar.langcode;
+        var endpoint = Drupal.url('toolbar/subtrees/' + subtreesHash + '/' + langcode);
+        var cachedSubtreesHash = localStorage.getItem('Drupal.toolbar.subtreesHash');
+        var cachedSubtrees = JSON.parse(localStorage.getItem('Drupal.toolbar.subtrees'));
+        var isVertical = this.model.get('orientation') === 'vertical';
+        // If we have the subtrees in localStorage and the subtree hash has not
+        // changed, then use the cached data.
+        if (isVertical && subtreesHash === cachedSubtreesHash && cachedSubtrees) {
+          Drupal.toolbar.setSubtrees.resolve(cachedSubtrees);
+        }
+        // Only make the call to get the subtrees if the orientation of the
+        // toolbar is vertical.
+        else if (isVertical) {
+          // Remove the cached menu information.
+          localStorage.removeItem('Drupal.toolbar.subtreesHash');
+          localStorage.removeItem('Drupal.toolbar.subtrees');
+          // The response from the server will call the resolve method of the
+          // Drupal.toolbar.setSubtrees Promise.
+          $.ajax(endpoint);
+          // Cache the hash for the subtrees locally.
+          localStorage.setItem('Drupal.toolbar.subtreesHash', subtreesHash);
+        }
+      }
+    }
+  });
+
+}(jQuery, Drupal, drupalSettings, Backbone));
+;
+/* jQuery Foundation Joyride Plugin 2.1 | Copyright 2012, ZURB | www.opensource.org/licenses/mit-license.php */
+(function(e,t,n){"use strict";var r={version:"2.0.3",tipLocation:"bottom",nubPosition:"auto",scroll:!0,scrollSpeed:300,timer:0,autoStart:!1,startTimerOnClick:!0,startOffset:0,nextButton:!0,tipAnimation:"fade",pauseAfter:[],tipAnimationFadeSpeed:300,cookieMonster:!1,cookieName:"joyride",cookieDomain:!1,cookiePath:!1,localStorage:!1,localStorageKey:"joyride",tipContainer:"body",modal:!1,expose:!1,postExposeCallback:e.noop,preRideCallback:e.noop,postRideCallback:e.noop,preStepCallback:e.noop,postStepCallback:e.noop,template:{link:'<a href="#close" class="joyride-close-tip">X</a>',timer:'<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',tip:'<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',wrapper:'<div class="joyride-content-wrapper" role="dialog"></div>',button:'<a href="#" class="joyride-next-tip"></a>',modal:'<div class="joyride-modal-bg"></div>',expose:'<div class="joyride-expose-wrapper"></div>',exposeCover:'<div class="joyride-expose-cover"></div>'}},i=i||!1,s={},o={init:function(n){return this.each(function(){e.isEmptyObject(s)?(s=e.extend(!0,r,n),s.document=t.document,s.$document=e(s.document),s.$window=e(t),s.$content_el=e(this),s.$body=e(s.tipContainer),s.body_offset=e(s.tipContainer).position(),s.$tip_content=e("> li",s.$content_el),s.paused=!1,s.attempts=0,s.tipLocationPatterns={top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},o.jquery_check(),e.isFunction(e.cookie)||(s.cookieMonster=!1),(!s.cookieMonster||!e.cookie(s.cookieName))&&(!s.localStorage||!o.support_localstorage()||!localStorage.getItem(s.localStorageKey))&&(s.$tip_content.each(function(t){o.create({$li:e(this),index:t})}),s.autoStart&&(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"))),s.$document.on("click.joyride",".joyride-next-tip, .joyride-modal-bg",function(e){e.preventDefault(),s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())}),s.$document.on("click.joyride",".joyride-close-tip",function(e){e.preventDefault(),o.end()}),s.$window.bind("resize.joyride",function(t){if(s.$li){if(s.exposed&&s.exposed.length>0){var n=e(s.exposed);n.each(function(){var t=e(this);o.un_expose(t),o.expose(t)})}o.is_phone()?o.pos_phone():o.pos_default()}})):o.restart()})},resume:function(){o.set_li(),o.show()},nextTip:function(){s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())},tip_template:function(t){var n,r,i;return t.tip_class=t.tip_class||"",n=e(s.template.tip).addClass(t.tip_class),r=e.trim(e(t.li).html())+o.button_text(t.button_text)+s.template.link+o.timer_instance(t.index),i=e(s.template.wrapper),t.li.attr("data-aria-labelledby")&&i.attr("aria-labelledby",t.li.attr("data-aria-labelledby")),t.li.attr("data-aria-describedby")&&i.attr("aria-describedby",t.li.attr("data-aria-describedby")),n.append(i),n.first().attr("data-index",t.index),e(".joyride-content-wrapper",n).append(r),n[0]},timer_instance:function(t){var n;return t===0&&s.startTimerOnClick&&s.timer>0||s.timer===0?n="":n=o.outerHTML(e(s.template.timer)[0]),n},button_text:function(t){return s.nextButton?(t=e.trim(t)||"Next",t=o.outerHTML(e(s.template.button).append(t)[0])):t="",t},create:function(t){var n=t.$li.attr("data-button")||t.$li.attr("data-text"),r=t.$li.attr("class"),i=e(o.tip_template({tip_class:r,index:t.index,button_text:n,li:t.$li}));e(s.tipContainer).append(i)},show:function(t){var r={},i,u=[],a=0,f,l=null;if(s.$li===n||e.inArray(s.$li.index(),s.pauseAfter)===-1){s.paused?s.paused=!1:o.set_li(t),s.attempts=0;if(s.$li.length&&s.$target.length>0){t&&(s.preRideCallback(s.$li.index(),s.$next_tip),s.modal&&o.show_modal()),s.preStepCallback(s.$li.index(),s.$next_tip),u=(s.$li.data("options")||":").split(";"),a=u.length;for(i=a-1;i>=0;i--)f=u[i].split(":"),f.length===2&&(r[e.trim(f[0])]=e.trim(f[1]));s.tipSettings=e.extend({},s,r),s.tipSettings.tipLocationPattern=s.tipLocationPatterns[s.tipSettings.tipLocation],s.modal&&s.expose&&o.expose(),!/body/i.test(s.$target.selector)&&s.scroll&&o.scroll_to(),o.is_phone()?o.pos_phone(!0):o.pos_default(!0),l=e(".joyride-timer-indicator",s.$next_tip),/pop/i.test(s.tipAnimation)?(l.outerWidth(0),s.timer>0?(s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.show()):/fade/i.test(s.tipAnimation)&&(l.outerWidth(0),s.timer>0?(s.$next_tip.fadeIn(s.tipAnimationFadeSpeed),s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.fadeIn(s.tipAnimationFadeSpeed)),s.$current_tip=s.$next_tip,e(".joyride-next-tip",s.$current_tip).focus(),o.tabbable(s.$current_tip)}else s.$li&&s.$target.length<1?o.show():o.end()}else s.paused=!0},is_phone:function(){return i?i.mq("only screen and (max-width: 767px)"):s.$window.width()<767?!0:!1},support_localstorage:function(){return i?i.localstorage:!!t.localStorage},hide:function(){s.modal&&s.expose&&o.un_expose(),s.modal||e(".joyride-modal-bg").hide(),s.$current_tip.hide(),s.postStepCallback(s.$li.index(),s.$current_tip)},set_li:function(e){e?(s.$li=s.$tip_content.eq(s.startOffset),o.set_next_tip(),s.$current_tip=s.$next_tip):(s.$li=s.$li.next(),o.set_next_tip()),o.set_target()},set_next_tip:function(){s.$next_tip=e(".joyride-tip-guide[data-index="+s.$li.index()+"]")},set_target:function(){var t=s.$li.attr("data-class"),n=s.$li.attr("data-id"),r=function(){return n?e(s.document.getElementById(n)):t?e("."+t).filter(":visible").first():e("body")};s.$target=r()},scroll_to:function(){var t,n;t=s.$window.height()/2,n=Math.ceil(s.$target.offset().top-t+s.$next_tip.outerHeight()),e("html, body").stop().animate({scrollTop:n},s.scrollSpeed)},paused:function(){return e.inArray(s.$li.index()+1,s.pauseAfter)===-1?!0:!1},destroy:function(){e.isEmptyObject(s)||s.$document.off(".joyride"),e(t).off(".joyride"),e(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),e(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(s.automate),s={}},restart:function(){s.autoStart?(o.hide(),s.$li=n,o.show("init")):(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"),s.autoStart=!0)},pos_default:function(t){var n=Math.ceil(s.$window.height()/2),r=s.$next_tip.offset(),i=e(".joyride-nub",s.$next_tip),u=Math.ceil(i.outerWidth()/2),a=Math.ceil(i.outerHeight()/2),f=t||!1;f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show());if(!/body/i.test(s.$target.selector)){var l=s.tipSettings.tipAdjustmentY?parseInt(s.tipSettings.tipAdjustmentY):0,c=s.tipSettings.tipAdjustmentX?parseInt(s.tipSettings.tipAdjustmentX):0;o.bottom()?(s.$next_tip.css({top:s.$target.offset().top+a+s.$target.outerHeight()+l,left:s.$target.offset().left+c}),/right/i.test(s.tipSettings.nubPosition)&&s.$next_tip.css("left",s.$target.offset().left-s.$next_tip.outerWidth()+s.$target.outerWidth()),o.nub_position(i,s.tipSettings.nubPosition,"top")):o.top()?(s.$next_tip.css({top:s.$target.offset().top-s.$next_tip.outerHeight()-a+l,left:s.$target.offset().left+c}),o.nub_position(i,s.tipSettings.nubPosition,"bottom")):o.right()?(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.outerWidth()+s.$target.offset().left+u+c}),o.nub_position(i,s.tipSettings.nubPosition,"left")):o.left()&&(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.offset().left-s.$next_tip.outerWidth()-u+c}),o.nub_position(i,s.tipSettings.nubPosition,"right")),!o.visible(o.corners(s.$next_tip))&&s.attempts<s.tipSettings.tipLocationPattern.length&&(i.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),s.tipSettings.tipLocation=s.tipSettings.tipLocationPattern[s.attempts],s.attempts++,o.pos_default(!0))}else s.$li.length&&o.pos_modal(i);f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_phone:function(t){var n=s.$next_tip.outerHeight(),r=s.$next_tip.offset(),i=s.$target.outerHeight(),u=e(".joyride-nub",s.$next_tip),a=Math.ceil(u.outerHeight()/2),f=t||!1;u.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show()),/body/i.test(s.$target.selector)?s.$li.length&&o.pos_modal(u):o.top()?(s.$next_tip.offset({top:s.$target.offset().top-n-a}),u.addClass("bottom")):(s.$next_tip.offset({top:s.$target.offset().top+i+a}),u.addClass("top")),f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_modal:function(e){o.center(),e.hide(),o.show_modal()},show_modal:function(){e(".joyride-modal-bg").length<1&&e("body").append(s.template.modal).show(),/pop/i.test(s.tipAnimation)?e(".joyride-modal-bg").show():e(".joyride-modal-bg").fadeIn(s.tipAnimationFadeSpeed)},expose:function(){var n,r,i,u,a="expose-"+Math.floor(Math.random()*1e4);if(arguments.length>0&&arguments[0]instanceof e)i=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;i=s.$target}if(i.length<1)return t.console&&console.error("element not valid",i),!1;n=e(s.template.expose),s.$body.append(n),n.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),r=e(s.template.exposeCover),u={zIndex:i.css("z-index"),position:i.css("position")},i.css("z-index",n.css("z-index")*1+1),u.position=="static"&&i.css("position","relative"),i.data("expose-css",u),r.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),s.$body.append(r),n.addClass(a),r.addClass(a),s.tipSettings.exposeClass&&(n.addClass(s.tipSettings.exposeClass),r.addClass(s.tipSettings.exposeClass)),i.data("expose",a),s.postExposeCallback(s.$li.index(),s.$next_tip,i),o.add_exposed(i)},un_expose:function(){var n,r,i,u,a=!1;if(arguments.length>0&&arguments[0]instanceof e)r=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;r=s.$target}if(r.length<1)return t.console&&console.error("element not valid",r),!1;n=r.data("expose"),i=e("."+n),arguments.length>1&&(a=arguments[1]),a===!0?e(".joyride-expose-wrapper,.joyride-expose-cover").remove():i.remove(),u=r.data("expose-css"),u.zIndex=="auto"?r.css("z-index",""):r.css("z-index",u.zIndex),u.position!=r.css("position")&&(u.position=="static"?r.css("position",""):r.css("position",u.position)),r.removeData("expose"),r.removeData("expose-z-index"),o.remove_exposed(r)},add_exposed:function(t){s.exposed=s.exposed||[],t instanceof e?s.exposed.push(t[0]):typeof t=="string"&&s.exposed.push(t)},remove_exposed:function(t){var n;t instanceof e?n=t[0]:typeof t=="string"&&(n=t),s.exposed=s.exposed||[];for(var r=0;r<s.exposed.length;r++)if(s.exposed[r]==n){s.exposed.splice(r,1);return}},center:function(){var e=s.$window;return s.$next_tip.css({top:(e.height()-s.$next_tip.outerHeight())/2+e.scrollTop(),left:(e.width()-s.$next_tip.outerWidth())/2+e.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(s.tipSettings.tipLocation)},top:function(){return/top/i.test(s.tipSettings.tipLocation)},right:function(){return/right/i.test(s.tipSettings.tipLocation)},left:function(){return/left/i.test(s.tipSettings.tipLocation)},corners:function(e){var t=s.$window,n=t.height()/2,r=Math.ceil(s.$target.offset().top-n+s.$next_tip.outerHeight()),i=t.width()+t.scrollLeft(),o=t.height()+r,u=t.height()+t.scrollTop(),a=t.scrollTop();return r<a&&(r<0?a=0:a=r),o>u&&(u=o),[e.offset().top<a,i<e.offset().left+e.outerWidth(),u<e.offset().top+e.outerHeight(),t.scrollLeft()>e.offset().left]},visible:function(e){var t=e.length;while(t--)if(e[t])return!1;return!0},nub_position:function(e,t,n){t==="auto"?e.addClass(n):e.addClass(t)},startTimer:function(){s.$li.length?s.automate=setTimeout(function(){o.hide(),o.show(),o.startTimer()},s.timer):clearTimeout(s.automate)},end:function(){s.cookieMonster&&e.cookie(s.cookieName,"ridden",{expires:365,domain:s.cookieDomain,path:s.cookiePath}),s.localStorage&&localStorage.setItem(s.localStorageKey,!0),s.timer>0&&clearTimeout(s.automate),s.modal&&s.expose&&o.un_expose(),s.$current_tip&&s.$current_tip.hide(),s.$li&&(s.postStepCallback(s.$li.index(),s.$current_tip),s.postRideCallback(s.$li.index(),s.$current_tip)),e(".joyride-modal-bg").hide()},jquery_check:function(){return e.isFunction(e.fn.on)?!0:(e.fn.on=function(e,t,n){return this.delegate(t,e,n)},e.fn.off=function(e,t,n){return this.undelegate(t,e,n)},!1)},outerHTML:function(e){return e.outerHTML||(new XMLSerializer).serializeToString(e)},version:function(){return s.version},tabbable:function(t){e(t).on("keydown",function(n){if(!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===27){n.preventDefault(),o.end();return}if(n.keyCode!==9)return;var r=e(t).find(":tabbable"),i=r.filter(":first"),s=r.filter(":last");n.target===s[0]&&!n.shiftKey?(i.focus(1),n.preventDefault()):n.target===i[0]&&n.shiftKey&&(s.focus(1),n.preventDefault())})}};e.fn.joyride=function(t){if(o[t])return o[t].apply(this,Array.prototype.slice.call(arguments,1));if(typeof t=="object"||!t)return o.init.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.joyride")}})(jQuery,this);
+;
+/**
+ * @file
+ * Attaches behaviors for the Tour module's toolbar tab.
+ */
+
+(function ($, Backbone, Drupal, document) {
+
+  "use strict";
+
+  var queryString = decodeURI(window.location.search);
+
+  /**
+   * Attaches the tour's toolbar tab behavior.
+   *
+   * It uses the query string for:
+   * - tour: When ?tour=1 is present, the tour will start automatically
+   *         after the page has loaded.
+   * - tips: Pass ?tips=class in the url to filter the available tips to
+   *         the subset which match the given class.
+   *
+   * Example:
+   *   http://example.com/foo?tour=1&tips=bar
+   */
+  Drupal.behaviors.tour = {
+    attach: function (context) {
+      $('body').once('tour').each(function () {
+        var model = new Drupal.tour.models.StateModel();
+        new Drupal.tour.views.ToggleTourView({
+          el: $(context).find('#toolbar-tab-tour'),
+          model: model
+        });
+
+        model
+          // Allow other scripts to respond to tour events.
+          .on('change:isActive', function (model, isActive) {
+            $(document).trigger((isActive) ? 'drupalTourStarted' : 'drupalTourStopped');
+          })
+          // Initialization: check whether a tour is available on the current page.
+          .set('tour', $(context).find('ol#tour'));
+
+        // Start the tour immediately if toggled via query string.
+        if (/tour=?/i.test(queryString)) {
+          model.set('isActive', true);
+        }
+      });
+    }
+  };
+
+  Drupal.tour = Drupal.tour || {models: {}, views: {}};
+
+  /**
+   * Backbone Model for tours.
+   */
+  Drupal.tour.models.StateModel = Backbone.Model.extend({
+    defaults: {
+      // Indicates whether the Drupal root window has a tour.
+      tour: [],
+      // Indicates whether the tour is currently running.
+      isActive: false,
+      // Indicates which tour is the active one (necessary to cleanly stop).
+      activeTour: []
+    }
+  });
+
+  /**
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.tour.views.ToggleTourView = Backbone.View.extend({
+
+    events: {'click': 'onClick'},
+
+    /**
+     * Implements Backbone Views' initialize().
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:tour change:isActive', this.render);
+      this.listenTo(this.model, 'change:isActive', this.toggleTour);
+    },
+
+    /**
+     * Implements Backbone Views' render().
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', this._getTour().length === 0);
+      // Render the state.
+      var isActive = this.model.get('isActive');
+      this.$el.find('button')
+        .toggleClass('is-active', isActive)
+        .prop('aria-pressed', isActive);
+      return this;
+    },
+
+    /**
+     * Model change handler; starts or stops the tour.
+     */
+    toggleTour: function () {
+      if (this.model.get('isActive')) {
+        var $tour = this._getTour();
+        this._removeIrrelevantTourItems($tour, this._getDocument());
+        var that = this;
+        if ($tour.find('li').length) {
+          $tour.joyride({
+            autoStart: true,
+            postRideCallback: function () { that.model.set('isActive', false); },
+            template: { // HTML segments for tip layout
+              link: '<a href=\"#close\" class=\"joyride-close-tip\">&times;</a>',
+              button: '<a href=\"#\" class=\"button button--primary joyride-next-tip\"></a>'
+            }
+          });
+          this.model.set({isActive: true, activeTour: $tour});
+        }
+      }
+      else {
+        this.model.get('activeTour').joyride('destroy');
+        this.model.set({isActive: false, activeTour: []});
+      }
+    },
+
+    /**
+     * Toolbar tab click event handler; toggles isActive.
+     */
+    onClick: function (event) {
+      this.model.set('isActive', !this.model.get('isActive'));
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Gets the tour.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to a <ol> containing tour items.
+     */
+    _getTour: function () {
+      return this.model.get('tour');
+    },
+
+    /**
+     * Gets the relevant document as a jQuery element.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to the document within which a tour would be
+     *   started given the current state.
+     */
+    _getDocument: function () {
+      return $(document);
+    },
+
+    /**
+     * Removes tour items for elements that don't have matching page elements or
+     * are explicitly filtered out via the 'tips' query string.
+     *
+     * Example:
+     *   http://example.com/foo?tips=bar
+     *
+     *   The above will filter out tips that do not have a matching page element or
+     *   don't have the "bar" class.
+     *
+     * @param jQuery $tour
+     *   A jQuery element pointing to a <ol> containing tour items.
+     * @param jQuery $document
+     *   A jQuery element pointing to the document within which the elements
+     *   should be sought.
+     *
+     * @see _getDocument()
+     */
+    _removeIrrelevantTourItems: function ($tour, $document) {
+      var removals = false;
+      var tips = /tips=([^&]+)/.exec(queryString);
+      $tour
+        .find('li')
+        .each(function () {
+          var $this = $(this);
+          var itemId = $this.attr('data-id');
+          var itemClass = $this.attr('data-class');
+          // If the query parameter 'tips' is set, remove all tips that don't
+          // have the matching class.
+          if (tips && !$(this).hasClass(tips[1])) {
+            removals = true;
+            $this.remove();
+            return;
+          }
+          // Remove tip from the DOM if there is no corresponding page element.
+          if ((!itemId && !itemClass) ||
+            (itemId && $document.find('#' + itemId).length) ||
+            (itemClass && $document.find('.' + itemClass).length)) {
+            return;
+          }
+          removals = true;
+          $this.remove();
+        });
+
+      // If there were removals, we'll have to do some clean-up.
+      if (removals) {
+        var total = $tour.find('li').length;
+        if (!total) {
+          this.model.set({tour: []});
+        }
+
+        $tour
+          .find('li')
+          // Rebuild the progress data.
+          .each(function (index) {
+            var progress = Drupal.t('!tour_item of !total', {'!tour_item': index + 1, '!total': total});
+            $(this).find('.tour-progress').text(progress);
+          })
+          // Update the last item to have "End tour" as the button.
+          .eq(-1)
+          .attr('data-text', Drupal.t('End tour'));
+      }
+    }
+
+  });
+
+})(jQuery, Backbone, Drupal, document);
+;
+/**
+ * @file
+ * Manages page tabbing modifications made by modules.
+ */
+
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Provides an API for managing page tabbing order modifications.
+   */
+  function TabbingManager() {
+    // Tabbing sets are stored as a stack. The active set is at the top of the
+    // stack. We use a JavaScript array as if it were a stack; we consider the
+    // first element to be the bottom and the last element to be the top. This
+    // allows us to use JavaScript's built-in Array.push() and Array.pop()
+    // methods.
+    this.stack = [];
+  }
+
+  /**
+   * Add public methods to the TabbingManager class.
+   */
+  $.extend(TabbingManager.prototype, {
+    /**
+     * Constrain tabbing to the specified set of elements only.
+     *
+     * Makes elements outside of the specified set of elements unreachable via the
+     * tab key.
+     *
+     * @param jQuery elements
+     *   The set of elements to which tabbing should be constrained. Can also be
+     *   a jQuery-compatible selector string.
+     *
+     * @return TabbingContext
+     */
+    constrain: function (elements) {
+      // Deactivate all tabbingContexts to prepare for the new constraint. A
+      // tabbingContext instance will only be reactivated if the stack is unwound
+      // to it in the _unwindStack() method.
+      var il = this.stack.length;
+      for (var i = 0; i < il; i++) {
+        this.stack[i].deactivate();
+      }
+
+      // The "active tabbing set" are the elements tabbing should be constrained
+      // to.
+      var $elements = $(elements).find(':tabbable').addBack(':tabbable');
+
+      var tabbingContext = new TabbingContext({
+        // The level is the current height of the stack before this new
+        // tabbingContext is pushed on top of the stack.
+        level: this.stack.length,
+        $tabbableElements: $elements
+      });
+
+      this.stack.push(tabbingContext);
+
+      // Activates the tabbingContext; this will manipulate the DOM to constrain
+      // tabbing.
+      tabbingContext.activate();
+
+      // Allow modules to respond to the constrain event.
+      $(document).trigger('drupalTabbingConstrained', tabbingContext);
+
+      return tabbingContext;
+    },
+
+    /**
+     * Restores a former tabbingContext when an active tabbingContext is released.
+     *
+     * The TabbingManager stack of tabbingContext instances will be unwound from
+     * the top-most released tabbingContext down to the first non-released
+     * tabbingContext instance. This non-released instance is then activated.
+     */
+    release: function () {
+      // Unwind as far as possible: find the topmost non-released tabbingContext.
+      var toActivate = this.stack.length - 1;
+      while (toActivate >= 0 && this.stack[toActivate].released) {
+        toActivate--;
+      }
+
+      // Delete all tabbingContexts after the to be activated one. They have
+      // already been deactivated, so their effect on the DOM has been reversed.
+      this.stack.splice(toActivate + 1);
+
+      // Get topmost tabbingContext, if one exists, and activate it.
+      if (toActivate >= 0) {
+        this.stack[toActivate].activate();
+      }
+    },
+
+    /**
+     * Makes all elements outside the of the tabbingContext's set untabbable.
+     *
+     * Elements made untabbable have their original tabindex and autofocus values
+     * stored so that they might be restored later when this tabbingContext
+     * is deactivated.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been activated.
+     */
+    activate: function (tabbingContext) {
+      var $set = tabbingContext.$tabbableElements;
+      var level = tabbingContext.level;
+      // Determine which elements are reachable via tabbing by default.
+      var $disabledSet = $(':tabbable')
+        // Exclude elements of the active tabbing set.
+        .not($set);
+      // Set the disabled set on the tabbingContext.
+      tabbingContext.$disabledElements = $disabledSet;
+      // Record the tabindex for each element, so we can restore it later.
+      var il = $disabledSet.length;
+      for (var i = 0; i < il; i++) {
+        this.recordTabindex($disabledSet.eq(i), level);
+      }
+      // Make all tabbable elements outside of the active tabbing set unreachable.
+      $disabledSet
+        .prop('tabindex', -1)
+        .prop('autofocus', false);
+
+      // Set focus on an element in the tabbingContext's set of tabbable elements.
+      // First, check if there is an element with an autofocus attribute. Select
+      // the last one from the DOM order.
+      var $hasFocus = $set.filter('[autofocus]').eq(-1);
+      // If no element in the tabbable set has an autofocus attribute, select the
+      // first element in the set.
+      if ($hasFocus.length === 0) {
+        $hasFocus = $set.eq(0);
+      }
+      $hasFocus.trigger('focus');
+    },
+
+    /**
+     * Restores that tabbable state of a tabbingContext's disabled elements.
+     *
+     * Elements that were made untabbable have their original tabindex and autofocus
+     * values restored.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been deactivated.
+     */
+    deactivate: function (tabbingContext) {
+      var $set = tabbingContext.$disabledElements;
+      var level = tabbingContext.level;
+      var il = $set.length;
+      for (var i = 0; i < il; i++) {
+        this.restoreTabindex($set.eq(i), level);
+      }
+    },
+
+    /**
+     * Records the tabindex and autofocus values of an untabbable element.
+     *
+     * @param jQuery $set
+     *   The set of elements that have been disabled.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be recorded.
+     */
+    recordTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices') || {};
+      tabInfo[level] = {
+        tabindex: $el[0].getAttribute('tabindex'),
+        autofocus: $el[0].hasAttribute('autofocus')
+      };
+      $el.data('drupalOriginalTabIndices', tabInfo);
+    },
+
+    /**
+     * Restores the tabindex and autofocus values of a reactivated element.
+     *
+     * @param jQuery $el
+     *   The element that is being reactivated.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be restored.
+     */
+    restoreTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices');
+      if (tabInfo && tabInfo[level]) {
+        var data = tabInfo[level];
+        if (data.tabindex) {
+          $el[0].setAttribute('tabindex', data.tabindex);
+        }
+        // If the element did not have a tabindex at this stack level then
+        // remove it.
+        else {
+          $el[0].removeAttribute('tabindex');
+        }
+        if (data.autofocus) {
+          $el[0].setAttribute('autofocus', 'autofocus');
+        }
+
+        // Clean up $.data.
+        if (level === 0) {
+          // Remove all data.
+          $el.removeData('drupalOriginalTabIndices');
+        }
+        else {
+          // Remove the data for this stack level and higher.
+          var levelToDelete = level;
+          while (tabInfo.hasOwnProperty(levelToDelete)) {
+            delete tabInfo[levelToDelete];
+            levelToDelete++;
+          }
+          $el.data('drupalOriginalTabIndices', tabInfo);
+        }
+      }
+    }
+  });
+
+  /**
+   * Stores a set of tabbable elements.
+   *
+   * This constraint can be removed with the release() method.
+   *
+   * @param Object options
+   *   A set of initiating values that include:
+   *   - Number level: The level in the TabbingManager's stack of this
+   *   tabbingContext.
+   *   - jQuery $tabbableElements: The DOM elements that should be reachable via
+   *   the tab key when this tabbingContext is active.
+   *   - jQuery $disabledElements: The DOM elements that should not be reachable
+   *   via the tab key when this tabbingContext is active.
+   *   - Boolean released: A released tabbingContext can never be activated again.
+   *   It will be cleaned up when the TabbingManager unwinds its stack.
+   *   - Boolean active: When true, the tabbable elements of this tabbingContext
+   *   will be reachable via the tab key and the disabled elements will not. Only
+   *   one tabbingContext can be active at a time.
+   */
+  function TabbingContext(options) {
+    $.extend(this, {
+      level: null,
+      $tabbableElements: $(),
+      $disabledElements: $(),
+      released: false,
+      active: false
+    }, options);
+  }
+
+  /**
+   * Add public methods to the TabbingContext class.
+   */
+  $.extend(TabbingContext.prototype, {
+    /**
+     * Releases this TabbingContext.
+     *
+     * Once a TabbingContext object is released, it can never be activated again.
+     */
+    release: function () {
+      if (!this.released) {
+        this.deactivate();
+        this.released = true;
+        Drupal.tabbingManager.release(this);
+        // Allow modules to respond to the tabbingContext release event.
+        $(document).trigger('drupalTabbingContextReleased', this);
+      }
+    },
+
+    /**
+     * Activates this TabbingContext.
+     */
+    activate: function () {
+      // A released TabbingContext object can never be activated again.
+      if (!this.active && !this.released) {
+        this.active = true;
+        Drupal.tabbingManager.activate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextActivated', this);
+      }
+    },
+
+    /**
+     * Deactivates this TabbingContext.
+     */
+    deactivate: function () {
+      if (this.active) {
+        this.active = false;
+        Drupal.tabbingManager.deactivate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextDeactivated', this);
+      }
+    }
+  });
+
+  // Mark this behavior as processed on the first pass and return if it is
+  // already processed.
+  if (Drupal.tabbingManager) {
+    return;
+  }
+  Drupal.tabbingManager = new TabbingManager();
+
+}(jQuery, Drupal));
+;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module's edit toolbar tab.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  var strings = {
+    tabbingReleased: Drupal.t('Tabbing is no longer constrained by the Contextual module.'),
+    tabbingConstrained: Drupal.t('Tabbing is constrained to a set of @contextualsCount and the edit mode toggle.'),
+    pressEsc: Drupal.t('Press the esc key to exit.')
+  };
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param DOM links
+   *   A contextual links DOM element as rendered by the server.
+   */
+  function initContextualToolbar(context) {
+    if (!Drupal.contextual || !Drupal.contextual.collection) {
+      return;
+    }
+
+    var contextualToolbar = Drupal.contextualToolbar;
+    var model = contextualToolbar.model = new contextualToolbar.StateModel({
+      // Checks whether localStorage indicates we should start in edit mode
+      // rather than view mode.
+      // @see Drupal.contextualToolbar.VisualView.persist()
+      isViewing: localStorage.getItem('Drupal.contextualToolbar.isViewing') !== 'false'
+    }, {
+      contextualCollection: Drupal.contextual.collection
+    });
+
+    var viewOptions = {
+      el: $('.toolbar .toolbar-bar .contextual-toolbar-tab'),
+      model: model,
+      strings: strings
+    };
+    new contextualToolbar.VisualView(viewOptions);
+    new contextualToolbar.AuralView(viewOptions);
+  }
+
+  /**
+   * Attaches contextual's edit toolbar tab behavior.
+   */
+  Drupal.behaviors.contextualToolbar = {
+    attach: function (context) {
+      if ($('body').once('contextualToolbar-init').length) {
+        initContextualToolbar(context);
+      }
+    }
+  };
+
+  Drupal.contextualToolbar = {
+    // The Drupal.contextualToolbar.Model instance.
+    model: null
+  };
+
+})(jQuery, Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone Model for the state of Contextual module's edit toolbar tab.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of the edit mode toggle.
+   */
+  Drupal.contextualToolbar.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // Indicates whether the toggle is currently in "view" or "edit" mode.
+      isViewing: true,
+      // Indicates whether the toggle should be visible or hidden. Automatically
+      // calculated, depends on contextualCount.
+      isVisible: false,
+      // Tracks how many contextual links exist on the page.
+      contextualCount: 0,
+      // A TabbingContext object as returned by Drupal.TabbingManager: the set
+      // of tabbable elements when edit mode is enabled.
+      tabbingContext: null
+    },
+
+    /**
+     * {@inheritdoc}
+     *
+     * @param Object attrs
+     * @param Object options
+     *   An object with the following option:
+     *     - Backbone.collection contextualCollection: the collection of
+     *       Drupal.contextual.StateModel models that represent the contextual
+     *       links on the page.
+     */
+    initialize: function (attrs, options) {
+      // Respond to new/removed contextual links.
+      this.listenTo(options.contextualCollection, {
+        'reset remove add': this.countContextualLinks,
+        'add': this.lockNewContextualLinks
+      });
+
+      this.listenTo(this, {
+        // Automatically determine visibility.
+        'change:contextualCount': this.updateVisibility,
+        // Whenever edit mode is toggled, lock all contextual links.
+        'change:isViewing': function (model, isViewing) {
+          options.contextualCollection.each(function (contextualModel) {
+            contextualModel.set('isLocked', !isViewing);
+          });
+        }
+      });
+    },
+
+    /**
+     * Tracks the number of contextual link models in the collection.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added or removed.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    countContextualLinks: function (contextualModel, contextualCollection) {
+      this.set('contextualCount', contextualCollection.length);
+    },
+
+    /**
+     * Lock newly added contextual links if edit mode is enabled.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    lockNewContextualLinks: function (contextualModel, contextualCollection) {
+      if (!this.get('isViewing')) {
+        contextualModel.set('isLocked', true);
+      }
+    },
+
+    /**
+     * Automatically updates visibility of the view/edit mode toggle.
+     */
+    updateVisibility: function () {
+      this.set('isVisible', this.get('contextualCount') > 0);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of the edit mode toggle.
+ */
+
+(function ($, Drupal, Backbone, _) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of the edit mode toggle (i.e.screen reader support).
+   */
+  Drupal.contextualToolbar.AuralView = Backbone.View.extend({
+
+    // Tracks whether the tabbing constraint announcement has been read once yet.
+    announcedOnce: false,
+
+    /*
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.manageTabbing);
+
+      $(document).on('keyup', _.bind(this.onKeypress, this));
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the state.
+      this.$el.find('button').attr('aria-pressed', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Limits tabbing to the contextual links and edit mode toolbar tab.
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    manageTabbing: function () {
+      var tabbingContext = this.model.get('tabbingContext');
+      // Always release an existing tabbing context.
+      if (tabbingContext) {
+        tabbingContext.release();
+        Drupal.announce(this.options.strings.tabbingReleased);
+      }
+      // Create a new tabbing context when edit mode is enabled.
+      if (!this.model.get('isViewing')) {
+        tabbingContext = Drupal.tabbingManager.constrain($('.contextual-toolbar-tab, .contextual'));
+        this.model.set('tabbingContext', tabbingContext);
+        this.announceTabbingConstraint();
+        this.announcedOnce = true;
+      }
+    },
+
+    /**
+     * Announces the current tabbing constraint.
+     */
+    announceTabbingConstraint: function () {
+      var strings = this.options.strings;
+      Drupal.announce(Drupal.formatString(strings.tabbingConstrained, {
+        '@contextualsCount': Drupal.formatPlural(Drupal.contextual.collection.length, '@count contextual link', '@count contextual links')
+      }));
+      Drupal.announce(strings.pressEsc);
+    },
+
+    /**
+     * Responds to esc and tab key press events.
+     *
+     * @param jQuery.Event event
+     */
+    onKeypress: function (event) {
+      // The first tab key press is tracked so that an annoucement about tabbing
+      // constraints can be raised if edit mode is enabled when the page is
+      // loaded.
+      if (!this.announcedOnce && event.keyCode === 9 && !this.model.get('isViewing')) {
+        this.announceTabbingConstraint();
+        // Set announce to true so that this conditional block won't run again.
+        this.announcedOnce = true;
+      }
+      // Respond to the ESC key. Exit out of edit mode.
+      if (event.keyCode === 27) {
+        this.model.set('isViewing', true);
+      }
+    }
+
+  });
+
+})(jQuery, Drupal, Backbone, _);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of the edit mode toggle.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of the edit mode toggle. Listens to mouse & touch.
+   *
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.contextualToolbar.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click': function () {
+          this.model.set('isViewing', !this.model.get('isViewing'));
+        },
+        'touchend': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.persist);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', !this.model.get('isVisible'));
+      // Render the state.
+      this.$el.find('button').toggleClass('is-active', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Model change handler; persists the isViewing value to localStorage.
+     *
+     * isViewing === true is the default, so only stores in localStorage when
+     * it's not the default value (i.e. false).
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    persist: function (model, isViewing) {
+      if (!isViewing) {
+        localStorage.setItem('Drupal.contextualToolbar.isViewing', 'false');
+      }
+      else {
+        localStorage.removeItem('Drupal.contextualToolbar.isViewing');
+      }
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ *
+ * Replaces the home link in toolbar with a back to site link.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  var pathInfo = drupalSettings.path;
+  var escapeAdminPath = sessionStorage.getItem('escapeAdminPath');
+  var windowLocation = window.location;
+
+  // Saves the last non-administrative page in the browser to be able to link back
+  // to it when browsing administrative pages. If there is a destination parameter
+  // there is not need to save the current path because the page is loaded within
+  // an existing "workflow".
+  if (!pathInfo.currentPathIsAdmin && !/destination=/.test(windowLocation.search)) {
+    sessionStorage.setItem('escapeAdminPath', windowLocation);
+  }
+
+  /**
+   * Replaces the "Home" link with "Back to site" link.
+   *
+   * Back to site link points to the last non-administrative page the user visited
+   * within the same browser tab.
+   */
+  Drupal.behaviors.escapeAdmin = {
+    attach: function () {
+      var $toolbarEscape = $('[data-toolbar-escape-admin]').once('escapeAdmin');
+      if ($toolbarEscape.length && pathInfo.currentPathIsAdmin) {
+        if (escapeAdminPath !== null) {
+          $toolbarEscape.attr('href', escapeAdminPath);
+        }
+        else {
+          $toolbarEscape.text(Drupal.t('Home'));
+        }
+        $toolbarEscape.closest('.toolbar-tab').removeClass('hidden');
+      }
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
diff --git a/sites/default/files/js/js_h3YMl9d-NxA278jDXODsvVgPHYo-96eWiYmx25bgnvY.js.gz b/sites/default/files/js/js_h3YMl9d-NxA278jDXODsvVgPHYo-96eWiYmx25bgnvY.js.gz
new file mode 100644
index 0000000..191b4f7
--- /dev/null
+++ b/sites/default/files/js/js_h3YMl9d-NxA278jDXODsvVgPHYo-96eWiYmx25bgnvY.js.gz
@@ -0,0 +1,555 @@
+     ֕/޿B=`B=-hN6=ӦC1 	H&@ˊ_ A9Mk\{z=<j]&]߶>>\tnm[(h=:?CH/_oezu<"m=<dˇW⸼]Ǜyz||E'eѫIg6tYTyنl"A9[7ezz^kSX6:-ZI&[MVNuZn"{4t-ӱw+'*gYVG1YFqQ)]()	]6,Ց~z=	g.Yߖl9foo*]5
+͝		ǋ˸5LĲ3YRCYovaҿ,.7߾OOm4\QEqz~N89uMpؐzӊ,)R?uryc;hdz3*utt9-gyXO֮ih%󹏩LӲz(NzOJ6~:R gZVm+UbE4E\B7A<fl~[}wafQu[
+eɪi\O]LV~&OdT/g*wj~z2`P̓{^PCÔ;+vw'ɨQャ4-HE4	BImj	O.ETR;18u!b܏40?lgX*>NΆy>OEc*V* öA4n)Z
+NOndEEgeGI @+x/(1~y-e1Nc<N.}9
+z#ddu[2W4Ti1ƭs.BO5 MwDtB"^__%嬳u'?|NX0+~Lmtt :8$*2W.07Ѱ=ujDWO=P880T:5|sd 	U.oyB$h_~Cb4@6,qn$wt%.<>>Uyl)KQUq^,VmCtUPQۡy	%mϋvXݺKfL"?{y>L/>&KE7i!^IGBMOF^h&ebb^1Zg+zIdiR;3_wf|-3 ~L Q~dAf(1dzExv|׼TC3{9sM/h
+ڇ#NI4JuKhmL4,t'On*nLKj"j
+4׻tNsoR/p[0er]@@ەʁz\5VsmЭ#j&Xiiz ^
+~'#N/fjzOESbڤ1Dj ;z2i1hA<ͨtfv)M^t3'T,>uO&	50HOq,?5)3}.45 h&ցbDiQ75"RIk@k"tӈ3pl]?5
+	fF7	)%1vAuÁ}.Q=
+KJvuN4	6b!nO	'݄f5ޡ̱{":L-Zz-jhN_|Zdw1/IXE:ö7{/oZ=+ljiC|ƨ&Dy%HhےG_Y0a;tYWu82UH#,2^<Ya:Ï`|Cg	gSY|O(GAHk,x91uYv*_/DK!Lt>YcQw$ !]QIkb-Ftt"3ER.GdS~Wo4؎Iގ"Y6mVzΉ.62[-n%1ΗۭRP[#z1cyeyy\^^N^*^tIuTtBOor>^CP˾=PUۣ@=E'mҫR?PVryI}~3^^۫7~@0lkaPK4G`mS?hN)Msc+EU:t+T>~P~~IE	Lџ*Ec]:08>칳mM*s|yTy{5O߾jDO߽1uy/Ͼ{}kz-4e9ÿS6)Q~Ǵz6?[ꅺm3(^Imq>PEi:.>)jXgY*ҘdDv1q;{q]ʖM!!7e/gYTnv9h/.eRfY^ji/o/z@uIiXgᐮho^>J*89.?x$  <NF+?=5fPO=:_<%gDqƗO\oGcxq9..\}ؘK[>v AX{wﵢ?ġL~qUW%RRL%o'7ݽS/@O5ng8iN^z3	?a'Y犸oc UzF"KHxM|7]wvYdx}'B}O.jFORܾWAx4fgP]ik ]g<XZ<o78>.I.@'G^C8tS|s.B${ƨZe?[)>S w>#>}i$qxC$!k{t+0Wwy<e$dczԀ!0$$aixZ^8sɞy>:qto$"XKh (坫<[Lʧ Hao6o:|V<QvmpdK-ի:QTgz.@xFZ9!#1ڐg@"{1a?lRI~}.;Sݗm2K\R3 >q*qjjjqvh5AFpta&][@@v0uRŐJ4: cIh)Ky!O[ۼR>
+.]ıhkYҗPnψu;x\F@6G%pN(o%F=һ/܅PfB`y4Rg~}TK@{AۤӸ=W$JR( iJI 3'U0"ЄG?&.*{^9u҈	~vxJp )Op?~_"ge^RI`dmՂ9y߽{}F?NZќ:>w/iHx =K'	қNR ˊv1YQԏ#GAbvRP9/mq˫:`D"rU4i2	Ʀ%?X*,_$:ۧ jy@[ _W9żE:"V!"&᩿wqʸyM9M->sԘ.k	0CdF?Qnyfh0q`.|E_P!5'B3I+1oRP{MϭAV6bv1R6jATiǀwN! 9L#3Kc	Mvz~XauǍU m1#lvv]9IKxO%O>>NZfi|B贕ƓCO0_=_v`pnAlu]BR[v^н͡2]w7|c_5~k?lN&<1sMݺpHr(+j%hX=?4Mx֎}Qt*IӯB/Қ<OJvF {f"-ty
+ԫ6ܤ|U-׆ySɢbd&rP_DG<Qo fU%n-Ijn(vQ ulޛ ,q-$[AIK^iiX΁Ϙh,
+crL={I4v?|Mu*͎qE7L29JȨ7WO+<.`N^37 Ԡz`D1f]螧1VGиMa5Ti~c0JRԽW>8<x/Ď	]6YO8DH# NM_)n&M̷J-I:(VF(5l.Ĭ?cF?ݶp@M]o"U#니i-o1^q+9?qMpu	#S'.@C{șbݮׂkuMACјl96
+Ze>0\ʄh*F̼hoBg?f`酣82KnɰV2襬?ZiSҜ&+cz5Yk=c:8tMtܛg>M-[:ek:nV(`ډLf}#"6&BC٨|0qSEx+s0!xs-@֟@`џ@i%b=	G(e&|_M)434`dyy&H&r>Y~.VD=[/69ei1j'U&]<p5vl+ik?JOrv\Za+O	n(;G[<Mny%!#Ђ:!w`3x8[GEjxO:B*ۅ[;>oR /1Ԅ05 O	ѪcBDa|=`h 9vۗ
+e9蕮髠z74ݞqO]E=z{8	ʾbXPW qŝ.h9Gh63͎;<u#P%GKq	Pr3ֿģT_0#Fw"n - +k5YU*z'#'|d-͔k#b_~e*_ZϪj2k;0[15aC?v\T6AüEÞ=yg9t%]_jlDC}AN¢4_L۩ :o+ݺ}nSN:y}toA؅44`>?12)58PI&9Ɠ#HC**haF|+,hDsnny<=g᭷fSy=fi9gЄ̏+#ٙOqC3׃pz|\wS;fce|7WD!EA81/f6i"^+|峑GuDx^ZŠ+F')/JׇztLà|I~NsthtCX%QUqJsʊſ䜄1~vϱ7R5OzP:N8SM-mΩ= R-]H'aRVrO{l,8Ov~;uMt(kRX܈g Q0c-ha 4VA	SSx10p6Cf)1dVToIaA}f`8SZ=N$ܯtD|>	$GCs;OmCqpL0&=S8ooҧ<tN+r#}B& Zz$F&UITɺDrV9J{!]٘<ot,'/;Òmwtߤ3[$M=Hl'|"̮"AR~0pꬦB;!O|r e8+}^Us\'T
+ RXV"9UL)}hK5ԥíG,uSmV36gCao.cmy4܅lɽZPj횹(>j $gX{h$I?KX	dшKt_1L(H	}O}_|yQvOO uu5J5/?6f"IFp`8xΛ5)~W$H1E2]` ^
+VWlp_~)X>$NmeRW1?$ĖL]PX	iKa<6z.q6I¸c_	x+fܳ5()RT5)T$JTngA'T/Sxg`T۰)~'J瑸suۨe-Qs?[iZn0;{1ZH9Ѭgu_A+-VYX'$t<;z2fOQ[ƘT2D>׈CQB>!=
+U՞ýWwCל$ꋚ>0TBn0@N+nhÜVUӇ;=kdH`gq3#ΠFuԏ"U☼R+fU(l9,S?=2ҶI0%v?[Cc*yt]/̨̂U,CgJJS}^9xO8aDLn.8Ҙv,5kS,3*
+VD1+>[XV8IC/YO4cCח	<wW*\̌u<^$ F"smW1}t_XprN8gt_dj[4<Rߕ)s:bvw|_i4 ZI|p_S{C<`>_<њz0ʂHgL1TE!:7.ŸNC1@	a5pN3U (WDN`yW$r"v!HDӇBڵ*Յ%*t7NdL<GձfjuJ8hA7؝*/D)Y2T96tY%܆nۭhh7fO"|	fE
+(:KkE#G[16H;в?Ɏ?*3 :)O<ew{h0b(ɓs7hf(>'|{v|L*|ljVU¼>?7X 9i\ޓXk	^%Ӡ>@Sx0f84Bc&CAqv#VHpuzN`3&Z!DGVնV9MՓseP̚:OEd
+ "i\աޙ8% celDJ;CYD]nO&c̑K:PΦgIр"@iT_uZjtob1p|-(Ą,=*1ximbi=^ë8;'D<"~sn%^IqV!\66q+&(5&vӛ%VsEWZZs?w\q~HbTtg'FAn2+"eI=^i=4rbL	!·6ZT($0qylI{`R-5!@(Vv؄=+./6{56jƽjf|{1B(:!n׉苶tVnoq9gӣtEu˭3GU}QGdmlƊ3vpS50q>3㖢fC$[sGsv.&Z8-kz1vAwoWq;6tc׆.fKqW븴SQǸZmR2*o=?{/1,%['nt#t*8_s(	8={˳ˋ'[ם//pUd|n09WYvb0Yl!2`Vc24ܳmۏcgqoݪReh0lCOsNr rN s"^	[n0H'!@U7e{	I"8ܔFPu搷NxV,г=#wMOp /Ԕ;tַk`] E4GlU3J1~$#Yjσ㽐=0X!/.z6}>'"S{?<8iϑ*ou|1L/No_%aq˓í?<Mfƙ7nQlVx> \kb`=EA>B5u4꣸f	8 =(nAxhޱvG1!~E X&a'GЍ{M7 숷oC9fQY0 C#<{Tpԅ2*uč3a^w!I8fWKw{| m7jw<+[$NB9ɯ|fl𶃰l=/ykGc{i.I0~Ϯ9Fo%Dk 7d-eͷ z>J!X^90Rg8gZfXx>D$]Jw(5GI(\NFQ9#>ƚcF:&21b@Df.Q	KS43ϋ^vr"il.{nѹ2tjƔu~JdL.b,D8	0K2'ӮQأCBXajьV1RKdB4mf2.PjI|!;~!K͑QU$yU> T7nqk1ڽX2݈ϥ-}Q\\kц.CR,Xcd:E9r)n/LC`6	<Tn&w(M|-}xPN]+|`[xډGR!>[,G5l{eF{Ee  !PڣObOG졢15AO7]f[ܐ7VOk-:Ib.߶Ϧc?HZg`gX FsH57< 4Yoc%0HZ`>ϵFLx&:W~~3+8wIȝ<vBg0=Z9bd2_^~bVH!izL+zhCףkm`[]HB}6=Q}C^a-`*j4A`%^(a\I%ۙ[x[.Se;'&w8IP\~( (*A~$aHK̴y3	lO&ᔯ`m,alI8cfW!!jnCiGKjufPqofpF8u@5V`li҄e|Y!z'P saDC;z"绦^#1е	9bfs}o#|I?2BQ e*;!>蔡7Im+yMn=|
+ڷ|<YaJ9H/lDo~lj9s	iYԮg	׌f14⧛uu5;E,UD>pl\zQ{,mzDը3烶.U2M%ͅDlaE|y_F34G-%Q6c;L,N?ǉc{%ݱLk</J,ؑxK24b'!SACFq8jޱ/9P਴f)138M0CK8 vH%@ɽDdâsnzx#\S}(e_7UpxDv!<'r>~r2vƖBRUn+$yD;6xdý;}	4@(-4W	PwXP`q#ίJ4dY$o2w]?cyQa,{bj#u!~z89::HG(~|\)䜊}Wy_4UZ{{\e>'AMIu]>JM}'cz	z4hRD*7~}ƕm8=vk*ނ|-|S :~u:3P4䓣d1<F1
+e3d|
+-&L1_w)@7õڟᤄ[0~\wEg,`w:4ߞPP4Wn+G5gJ{ohDbB,ԯk"~QDF0aʨWLϞI Y`HxF{Utwb;*kAgo|Mc'7uz|uoH`VpaPvad|jcGÂP't=[V< &y:8p=iè$C$Jud^ix7פ\֚U:9TcI4m޺ѽvؠgȨ竣^hkS}UWˎa"}<T^/Ga/XGl.ԝ#	*9M+9zNLirzBa!䔍\0L0cIAL`\Q#xrQȝHc	PLa6!g_X%Y+jS	C[JNn{]DfT!]cӔzmYuyϣfD$ee$RiӈMRB$w=j{rE?`8=u׷`%RBGq5hW9};Wwh|TwoV}RmqA}Oa=qL* #t3DL}&Ι&,V
+p:}l\t5<g{!H`ST.+mh7J=F0Rؙ̋մ"Y&Dj!P1Zmͬ.Ce%js0W)3\^78(s
+gtApNt,/m؝8S}W(iki@Yx6&&HTOBğ@%0h;KnD%MRAlq-U$(Is0K-;5]j]"1d7i=GGbeĠcRQ!a>@M'vDr#oj.Yes	kp,ĈQx'Ժ2AY@lQe*I?9h$2@f{0Z[mM,v4gw_V@P!8+-4i7`c%yzL
+MIz\iUA Js&#ӷ1"jI\/ƛIz&kQH~¤$F Kvu>uJHqw:聽?lqnmpR?}]BG7yY> |{()!U#O4GQD9rjQb:# =T4z\W:#4fWb1Џs<SACφ5tnHd+4y_Djw&+:eO̵G-,s|9+~J1{9p8OiSO870wZNȺ.MnWy,VoѼog)j7ߔfIDrɎAK?ݠ̥EБ~@Xfʽn:χYQp*鰦̮VfxD09O5Y6N9Ù}uF x-+w?{RuIe֒O|z8S)
+$tGAq&ؐ	tiσ5D,X'W1GLyOuTrY}Ny?g!*޼cJ{BD4dtÃ^ǖs<iR"CnH:zc
+L@H&xF+ցIC"ΨwGfty8ڬՅu!YS8] LU]uc=uvN MvjqL5~u@cj
+4V2#U[hkZSUrLfWD
+QeǕ;|:"rapGd@Z{u"t BւяMhx񂘜L|ϖ\~Ws9{ГtG9C	lfoj`sz&\YSªԵd=&`v=-Eލ;Ρ?FB Tn]AjM	tzOYjTp|4sddҎX*lWOpz4aߙE΁ݨ/kYrW', GZ0V <?8MRF\̓g#yk@9KBŲ#!SZViQULA}~w;0$bUGb"I]¡dOz!mAC0*4+󏐰d	4=_ 4܉Y@^RPx ԵN'+SX@L38ɏn@qAq/ W%nb.P+s@*r ɷeN9	9yrˢ`YeB/vz/4=BK [Fr}|<_7Ib^x2%Eo<5^VqUKoN'q{]3#F48"Ņ{(:Wj*f0Z=1?>}n:wߊJVZb!Tv2ov#+drDh>ҹu9>WU+0''.6kձI:G1Iu/t!ES>q#L^VM16O!߯Op!rN>sY,s4)7Sͦ>B1vx-/Jn0Xv+&b>5aƆUV> pL.Q@dZ922[gԚlFPc>8f;İpIcx8Oo⛦ܰ2坭^TFIeDWhbtǆSQfg{37{<l.΍/)VSV(KP]瘴֨\񪲳ZRoHLPàcU<m"}[&U#6<
+!
+!5yC>Moյh@?hi[p](tn_0w]y^\Vd§/͖д3?[dBb-pbN2WZ=ѭqDN>AO
+=m괕}v9ԩ*<8N|rp"'S?+WV-ܟs^	n .U*>e	 FG{h(Za3Ֆ?xC+HՁW}Kߘ@Wv+Km*}jGV>#hB	\Taח1q=_I<e'o2i|zSN(مFw5D a95+&#ڳL3Ph9!wB9b!|73 "D4ApZKLb1XVWG1xJQ7;҅^A>D'SNa^hdd'iU i4lW4f:)M8d@f[U{JhGTWω@ў^X`L(?{ډuQ6Z
+c֚1xZLԹ_[B++pg҆aLBe`d9v.2F1bzyهXoZ`&[jPQsMLG=~|@ ?CQq	jLoivZtMS[pϔi*v; c^G_Ӧ[{c^Ձ*u>ѯםkr a55t)ytokDOE9n*ɵ(MAûfP}6bw6$V(K
+,H)S4}EN[!M1aRY
+xa5ƒfV3w#8eCl>Z7|zM{Sħk$7JɎ
+ݞN%aYSj3	D1nBlD,)7$$#i|EZ6	3fj~4NuYut2c4Dr<&R>GM/B0oHO}n8qk߈=3!Y(%ؘ&MleZ9	Nr& +kT.*AܓOfci{+']jVh5GvMa.IBTS+MoC0ܡp`Yc6|f*f2|'VFNuUQT!++$#Xl0^oŐXz-[!lyzgK[|m\=9f+Sonǿ]޴gXHnV(o)WeaJ//`ӵ6؄`{yF%6-@jS<<.*y|O=oIr'T4̒NBE{,p"2Sfy}|&xD$q\y.!jd^>)+)f/uzU)_EEkU|#ϑnFتrMAsycN ,3[ӥsdnyAEݏ@4tx$߹ROܾK=m@u^LN}u59hj{g^[IMNMY#IG*ų9iN1ׂܷ["KmRbE?9'&'/>&s/DPD9NeҠC^6VURZcdcH cqv76Sk5JEDH6X"0: USө,v̂cLE^@S2|u8t>?2o}4
+ceUKxp MFL;AbciEJRr\΁[&uT;ye?On V`g3RiL>5V?Pa&;4pp@,_OD*<PѲRsg6(Ɍ@8a"1ê)N!D8IGņ͒lG-ɟ," 9hN*;S'/O:D
+v0PTl@6Pq"d%i$q&oN*&"=6,!ӔcA7j#čsFuR5<?jہ&{]"9xnkϽ	'LЍ\QꜧOdDN&gjO'b&CpO+}5jgp!0G䎡47ZBi*P'mNSCڲk0N=y\?׺^Xon'}+		$\ɋg?
+t]8y &؁8_J٪1l/ؿYŝLU'fM7|(<^ÈyͿ[98t@ԛ7rk2)hcxw?՛n(J#68'PxQU0v_UCf3fpꨆSK:>5U~D<٘(DIXT׆9|R#(Y6iJ=2zI$`Kΰr1B'CiCTd꙽Xy
+8G7#~/9Ap(fҢHsQ˟T_:;NNc_(Yup/6b&j:Gbˡb4;_lU=6Y蠣Ggk'qV+4x/?h<^+Nm~[a#\oT*MDE'x0[\9|#h^i.D]v*B]jG*h?9<DL[[[OT*VYr2U`s5AF>
+=	"o3^WIbN)}1C\V@fUMKHd$a0bM2m-hkaf	9Ղ?G\y#u.<a(ӧL=F9HlJ9RԬTCk8ߨX"K-=xNDn3':xHuR	\$~%94:}b.!,WզLo r ;8c<v6")c7{eDuB޵hI@99KT
+{M"maJ3ú%!>pZpڎ7묄$N*`އ0y=qr+hDeYQ,ܴ/էoa_++BY]a(A㒃0Y;nXӘ![Ghc̈#Ak;eڌYҔ$7Tf턖6NŰ;0fu|ԋS]<URo
+2x?M۞Ms!Z4FBQ!tw>"ylw>Ms#|A9V)>7y0l\>mǄrh=y׉~eE<էlSەJ%"{aZ'Nͩo~z3i3!<._j~QAy+Q'cDk̓r4㚲+QD 1ſF T(%TmqE"L~eux>s aGLow!M[yv ~17#HROֈwH<K =Hpx{8}!f
+qdoyc=	Hm{OmU5fM̲':UHt)*2h{. : irvJ"ÖHl_A}p[>%j|: ZyhRM*
+=#lKˏYyVF,ӥex݉C}NQ >*ay1	R!ʽHBj5{J7X[EAs]UCD`m핃T
+ȋjK^A{֫6ɹl>*??Uz͇4Dgpܿ#vhcq' 5|$gkO
+/Ҥz_GdM#IwҎ@:{mjg]9˸JuSGmUh(G uN+ۋã^[9ų3J(3t{kwVܨEҸJ"=f8Ο  u-V'Bq?qi(?8r{ug-7e 􇃹s\h4Avx3LLД0PU*8YUz{\vRI\{q|VUƨm6G9	Tw)l8NioDƱ#/*S}Bakx0aOTsPL9.a|D=Uȿ*wE0BޅTŐ(݈b~pdkn駿}vΖ|gQ?ͳem'j,9y#~}ip`a;ohV&#Of}8CAܩlhR@0Bֆz0G눸YS'%T($<4."Cb:qY>FѬQ ~aJ Nbo |ņ"{g-2Q;f/>e	a'UԜF?Kh@[O*/|92n oXW	_%uW<52)Ad$E2WQ4gyp眸FP$鈐j.AtHZѪGi6HJP^\3)"p!Źɡ=ᶩ3'M]kW4CL23G{B/#pTs g"¸AvwΖ@D_yqP3~7"q%-Tҗv2ic)F"r>4# FVw; P۽fkeR?T;>sGمfwk=ގF}G>׬1n_Lm(TIHx` wm,w4!8hmCbx͈o*>[#,=\ft:o
+J9NaMuݚ4ғفNʧj◿U$Aĺrtq9nt-	rk<.jʌl!A;e;iτ\W^6.yK֥$Q;Y*Y\n8bEGX8CDm%Po:i}Xeo~cpiPE3o\sh#<h~VmBY=<]LWL}d&%ȋ_'!?4dwڅ{0뀦.t@p@R[^*QLDqfdpMDϢj3uR猟x:M{O8Q|w~CI}WJߴ9hY57;0jL1f'c56ؕA&qD<Y7&|:8e5({ȗo^gɧxBCr$|?$/WHy	;J^@*P}64UI{2L;;[p[^Pg6405ĢN!W_^e6tBm$=b>SVиkaY<&:Y<5\zi{(Llϐk-I9ГtE[+ DK 튌mbIBc="U:ΥQnEݨ0`´5рmu|t8	a-~`l7~2;t"׏	KQAAjeCwzжd]<Q9Jݿ7Ȱbp9̪V=[Lo	f!HeL :n3'A޸!7m+Om.84=6wͪ8%۞qA;GDH>ۀҡɜ|?7סٹ' :6zzWѸbPIUZ\IOTHcnՎImJu߸9iZ'Ψ7ovJ2kVqsy~:JdCSB\KrңNp8[n
+HcuVHW:RCE8;Y_\݇ryD4)zK4@R.>Zګe$tV2{a02-W[@SsVqLc|1:'eNo>|<U
+~~3Bzr`Bϻ49!roFrUXHbG+1OD}b=m2A':2
+ccQubS7x`9	kpS}pq=Hl&7GF זG]eO}&9un_YTx3$8K_uJQ[%t! :7	WX'("+AA A!0Q!]'O4I\γN9`^V	 yZhFfjBq@ĻǀJ@cpXf@.;2^o<;ZV"D{ٷZ~ث-Ux0`_\^ՆfGS2Iz\yjk^1nu㸃*ᝮX&\uGbfXn?>vou(uğZ|PZD%?ox\4ꕾWyS\A*czk3)uz6wP{$ټ#j'x
+߻1$, 6	_YCjm9Gb
+NwJ=E@F-)'qKn|Nh4"at|<#gH|7	e[ERtBk=wRc|2G^R=oK!Byn=WU<~!6aմ#͍ocBe\^,>|&z0ks d'̯iPUvzwO*H8\DP'gݮB-TXl3>Er82NnLB:>gzbI8UGYU)kx+=$ZZW)nH\m.E{S_(-^`(}S38F;,i.]'8⮧Up~7x~$$⟞v	>JW{ʯ8Gt'< tɢ#/HBTQp }H֩p8Y"{+=79W,Q+yyf.3NPu(Ӫ\1Ábl3CIdnWK盧;i׃2y0Yt2tկK*Dek85׈! +9Ŝq娐C~ӊqգwrj4y_.Ա7k"NU>Zףj$hbFu^H
+3LX5awxd $GWnqGNO	#4RiaWL(|
+ч	DTqpȏ<*ݑvyEZT}3%J]+zF,WԻW⥫347ItK2zDsEi$%
+Ewn*gka$8`?i<s?LJy~su91
+d3댇'y>G'	B.áI Ş#2g,+=S%t}lz3	3	pJlC
+k4׭pgx~?=l`#YlC)UՒXnMf~!J5G`5OȠNr6Ic!}rV@z	5T~%5gG=sLjLa@76ɖa=gEB	nLծx:Z*-L]ءjO~#eSY ́u(bʤS)@e8BL&\r`V]Hjj57Ix928=r͚*I\a
+ƛ̆oʺ2e+lI!'fCJ;#Mxj.ogӠy(k@f]~TEס|fն	SMWR0VGJN[A\  .9qVs?r<hL!pwKW7'E`<Ir_f777o_?QImX!'f7 `RSR㴂S/YB5fK-fCq٤Zod({(f͒jɐsq^[3Xauէ;ڡٌMʛa86p;}`]IT9MƯ[%gHZRwoa6}Ы%su)W	bK7ajLr
+E0!!*MXqeY\_./'illɸ)JfD?]jz{"b@"Qf~~Hbl@E"nV:uнzu3@` Yc7Z!z{УH)ظ0ÐQJ6Pr9#_#=?nra!n_%TC(%kf5	[+;vr۴O :X]ymm*"z}Y'XCC72$F
+x;g1zq^VwT[\0P`U2i#
+U?K P9`IAByb`AևOD?Y4~޼xޫm>"W\3`XZj<c Y@-K91p\xx\DC?gz*|xIiw/{U 
+Fmo!(J9L5@jCfԢcs7ֆ6K%ub0v&mIzo7D1Mit6R8iF%pmT;Z9B*f9ۯ4q%wK
+?8UF
+%u$T8 "*{'iocp?*LlgOFuPv{pZ,o*b[ޛk1VMIpbUˡ!e=orΨin)򧧧-[+0/$7w'->@]wW8%ԕM;tdLnl%S8d{zId-r̛g/Ƚ=$":1ҧ}Z*OKi!e\kٯiK[GZ\.8f% -1l榖քD)5$pH
+&:' D@6gUUi{:-PXlg*?0; !bGE"B9B=Aib$]fIdl2g1:Ɓ7Ei{U =A>	`%zgIK_߾	\J |·?>n`:8|b{<8{y]WoPߚHv/bNmKNEFAၔ\a=3?KڧT(e#OVJ3gᄮ~x!Tn .CdzVMl(*dH{pVwZ:N1&#[PD-fx³˳˳_/oA;
+sP/z<muD]9n[Y8}><>*94|4
+Wz(yM+)10tzu 5l&nW;HU.Kǣ@KZ'PX_17"%x&@T#Dc";rmúa;BXP]3yX sU<S5MvI+=!`R&3+ v{a"YaU츋aXv۴,oEg2OJeְwXV!Zu?dA}8XI	ݥ̅!c9)ΆDaYGlX3Z1-V44UT$w8QjWTᚙHp&H톾W`SxSH[2FďH%x1.%U5N9LaJPz'=r$Gxd$O繙Ͱ1Eqwjy_pp՟M	zQzM0W,10G ө߲ekQ!`iq0L0&=4l0řWcCc=|M'/`:9!e
+a@[L27>霳qzEQkהKro
+o)a@^ٹYI*d4hڛGyK5!9fj=ņ}8SwN #e!R$#--X.6yC>PzaV|ODk͆* 4rE@2Zhg .ƐӰ9ʄ}:9U\RsrDڸy?O^(3-K<!Iɑ	.+--a:UAڜxJ 
+ռ}Q'>渥3>.䩾G+;%vŸc^$l0m-)WnQ4<T1rDJ-U+	хv6/=TL	_DϫOa:51	uaK<\fٸf0Q$aJM6+z1'D^{KUϝ4'BĆIpEϒqx`HwhsngT-_#XX3rdC~pvyG	<PH\hthc/- q;(ڛ]EgCn!5S4c#,ʽIͪi<GMo,	ṉͽ!qJ1'iҬGo4-{w=zR9-	>@`>#\EH՚$mۍQ Oz;'7Ek(@H
+?Gcy8/|@4Z̔j2o{ggJvi9D5xmH*i}hIz"F6:'/s}-'qkRX)Gp>{&g&ެ,Wy:"믿">b\[_wJhOp˩;'z0@`W/kb?t.LThU(1aPv9JZV1"=O5,(r)/EagƫP)ŻLOoxwLs2Z;^Bҹpb's{F9!P}p>#Fvc3)ʳf}8Lz|SGTrr˜U{ޗ$FJ~HgKS|8vq0NGIx>[Oa l)3XgYViˊ~͠wM[q=/$nu9l{ևs~:հKW4BV^5.Y,HfJPs+fcxt̲&R6%KtNB1q޺}T'FLک;#9Ez6 h2Y/ź	ItiO{/SR8o!~ҲǍ	LWZ7OEX,L<' 'j):,Mx~]z*GpRXKO$qqLV&)yr:F$~tN	οz-6q9i=op۫ ~CA=m^	7{]Tгt"N`\:l#O˅H79$n?tGrT@VğBO8:HSn: FYӗjO4[y=v	L ]9@SXl`nrV'dш^H:Bu+42T~m<S[SMpH{#s/RCb򍚃S9Qs܏
+Y?̩zT|boJxU(1gY.}j
+%x_(LzZ̿0 BJy2[ެrU3չ"KUWƂ`:grFOu8{td%*l1|r"%JHnD4=Mb4LEH_.gZ:&ڛ$
+z	Z[_.Anˍ.vM#V_a&ͲXufd-ҋ:fb$ؑzH[LRʬʦ)_mZ+?BKi4vb>ϡGu#ӣ]6!0O;jlʐMH/OlԻ\[u&Gʘ}-pF!-i2'<"*Yq"BCشGJ{Cmo:Lgj{;L3)W7Q	iq$k^̓0"$צ3X?ԎpѐHvix3v|Ce9j UΏ\҉G1Th7P/tL²_:KCZ;-3NlQ1p6LU-}Ҭ#QжW'wdژFIRq)vhJBa5%4
+[yF6Y{n:>UmUmPTwTelkAX9MQCQ@! YF?ъܞ9訹ZO	)ǉ+˕ (cos2x+z 2)Y*6%x6ɀaA_X!YyN	e,_!
+R/b)0s[T}]QI;3D 7C\s	xOqG&EqqtJU&t۵'ǓN]̷Mgp~>UkO9#Goz{U`Qeԡd_@5@J#]#A ec&m`IpSA
+'Dc!0xS}{I=z$;uVM55*zLCMq}}HƩB"Xb\h=Ll<Mݝsp(:!{arxy:Z4>tjT
+UkB[Y`OTQYcDsQLiQǧV=XӆE:mSSӧò-$
+?S;{V,gp)">,֣cMUd]F|6{<>N}g[F ȭ*Z⃏LYAM,`{#@([XEHJG8v(AX^4./07W	{P1p!/b⃞GTJ{}Wd\>{~6ȇD!k.ecS25>ʓp¦>u ׳5uYi%!W"?T2&)Z˼lX9)؅)EQ&STu${xx&
+c>XL%J{ļS֙L㉍l4f.
+g[NdYW}kcsC8SW [`HQ"YMINۏH/i6,:w;~,;@m]s4Mѱ9nاk;9v=٣S&z8ߝs枺Y)'aCD<k{o^}5ZbSG(=ʴ)h3ˏ{ 7#hRN9)mM9Q	T`[69a B2)0_{ZtXSj<D:47iTȣqwJh7T'x%Z8ޗlgRW[_4=I縞QIn[*=;B8?:J=cF*ʵNKѥco60^OUaf %1=} QP6n8_;s$rLON/pκ,93/⥠zt3VMɰ0ã=ʢ(:m,Ne|%w3mOmep~@<8LٹH,	ZHG˓3ϧ2|<8#PK1CpJP:0;sIĀd8Kd90#	I7HFSlQ	/8y6](}3	B^oiO)wTCJ\+;$0Wٙi|C:GfƵ9U	w4W1Y7JSO$yƽA?lb KJB/x~arlA5S3@I(U ׋j.+xfroۗC}\7BL[!i,׀Lʭ9QϤݲ./4ic乂M7iRӃɆJrְyfi42wƇKh{(qwU8Qud$IkAߟ 3U򣇍>}#S&>w6P6YFY1;(L*~Dd^;*&Ic{'y2/YS܉_`YtImU
+FYS"׬>8NNcr+}O$n<$"e1	R?92|T/Ν. [M@-6)GHSIolw8{'<_hFqR0Yߦ"@Nfb䷓,4	x2R.8ƫ@{\?̟	Äv 1 ~(U]捺B-{Bnk԰DߝOKh:G:%uS+-@6Tzt~Gh5%]ˤ[x67t#mlf6uB$|]Hn[ô5Y5
+"=nqhM֫ZH@Υ!_KXpMHnCLs.݌&?ަЊ|IVvu7C_d y|t]]tZ=9GE(l{9hݰTEð>7kd֞;ȼlK7BkV6ːo]M9Mk8Aԯt$щ^ԓ._lI/s޶/̙8c	d0PsJ$+ҤB|BbL;g8Mf+qfK7sT*uR"&^FSY9iTԅeK~R+#ڂYK<f~x'T)7aq䐖U#ΣQ<9WKbk.ʗ`_	Z47K%UiLuSi 8݇±K"vc`r3%K_gn1iyEJoZDn *'ྡྷ7\#oG$WqE `{6!x߾|C1RDt)aawSrJ}QQB["CyC]K?dCyۖ/Qj7X}ut7~G/vMk(JEGHŖɫ,{?x*[u	{_(szW7i*I 5kZU^+b:yWՓT$i5@ɦAc,7&m[zvMTh+huu"@G/zQ;rw$Sݼc[i]wZ]"blMr87+wM4ڥ[SIߴ"QӋu|{2έ^UJ:i*<}*Dh_%1}0MrwK'i7eiiI.U4YXţ,u|5}D.P,1 U1\C_?I_50`=Z9=$:Dmn\CVp`|݌~bY5۫Z(I砧K SLJi2kzu8lPEJkC͏GKoՃ059]^ZGeSbrlOrԆe#:_HKuS*sԆZw/:K0Scp
+uBƢCxhűXKXffȁ9ax,oO;:+heDQʲ![6|zPwUg?yFNOT=Uzc
++
+7xH-jgG%BU |㦛pneL} &3l)?$yӁ{vN?l+AG[YY
+2XFKTbZGOnBE4	+}̤,&ĥ}B&o$\R78p#PTcٓ1fnA:>Qd/#0k6* U b{NeXJdO倰	%=3;cýIp4z?cYnߌ}Ӱ^W5P*f
+=ԾW};1t%a|,lDz`ZT;D,*pFD`T{铵O+N/vV)hO8o eL.1EZ9֬"7o :HK__-	I,b]lI71AΠϹXɅFfY~I~9{`aGL~Qăk-Qn?`ثi{ԹT:2(qn( ]&5Z.TW4'48J.a@G?er~N0Tdekh2B/U;iStu|+=]^Xfج)(ݤBQpKURaF鼁0o)+ BzBQ=J\Qqq"<nNHF?	!w<6yЁiɤmh#Fr K M.<TNKQV́yg	@T{߅f}gėbc,BGeD8˰d3a	̉
+jt5̼}p{kRpѨ[\x	15:"mѺh&!~&E&dua` Slb1ͻKi.:qf3u&e,#p[`=K(5OI+jIXw$bJXMcvs5Aw:`6>UT<ѷف\b?u`"f-wK5knk.f8gѐX6nC5R[DDd!C/&.XWPo~(j0G:qD(
++`wZlո8jғyNgh	ozY/<N*J%8Rn=yi
+^*CF|i!jKȬ߅#4~yΈ#=ffboJԷ'[Z}IWvWKd(c(*Gp8N!j0&I45rj]aV#rm-6ECT1nVbZ+S_`aZ{èVg4~i`Xq|-X~F(?E"Cr᫛>ӂhT1KBt>7p֨sxB2]6dj;Ug"-Wz[9r2/q.#"Vsw0zm`ifԾd\*ĎcTMyJWGYͥcp2b:en4$@CFtCv9aeB{#I0rNDVdf:gkKwJNUI7!&Z7")	Iܓy\S@zоx$o's6$Nz&4` OlJs7(DЯl'?$)ut#y|h9QiE_yF\,~fz8Lfҥ#aS j/IVk4&pduHK*WoOh܀;-mEZܥ32`Xvlib;LJ7o㉦~rz||q'*	t者SѰ/Kaex"cV$_GwڦAFEŒ^3/^Oˊ7{S0jBQnS+/:v:8O-n͆$U2dm<!"}8]-*~cƓ0:O0%*"Y^}'6aAAAO21@cCqoUùZld<P:=4ġ_mk»ΐIfd6f<g,0zqF&7	\LЕcKvˈ".ĵzqBLmڠͬBgQ
+Nʪ34DLnj'x=n*_1v<_i#|63Eqޟ?'ag60WEV6-g0Ttn`[6RWMY:TGwp%ڬ0p2u5kD:~Gu&Y{B.
+K\BR}YfLL$a>ni:gCzpc"KxzqV:N,ح!!1=ڮHGuIXԼ`}JՃҎEmĨc:}i5SRz,6uJk/Ydp.Jgm5_kyNZR:U;Qb~8Q&&"SXQk@{ϡiT_A@"H`;>NyZ͊kQ!T+|5
+Gv7ؘvV*k}d/'!FG!3m@$cDXnzjp$;F]\7az$ts4r$\ɪvn~'DA0LƚpD	"zX9afjTמDVi:`KC#fTtհ_ʐFd
+Ϭ9tGGʕ:z7Х{ *T>'xQ7X0Y+H\yLD"i[,htr9Ǽ\)Wg Zoq:H;#:+C$]+._(ܸRX>*U?iCZ;EZ潬,WWvvۓ6왊0`x{,/҃'~y <qn^O>nQ05v֬,WEL laCA=3u"-X
+NtO5[YywJ	*2^hs#':˶s ŗV)x:p^71.k9XyPC'Upc\K\>'	]~GnxvX˴7Ac=$z~/ږH-"u
+NEס7N>AS,s:H&I(YQ[?NO;n.HD9 "uǂTZ@{FKO* I7dy@$2]аT%y1g_o^oOΦ!z^F:,N"./ @#] ^rџF~Ճ?&z]^nOr+ԟ(.];5:o,2&PD0mIZ/plf=JC83X{y<pzcB߯׵ږVBp"ny=LF;QY}6'+NNjlxT3*}E,N9tih,$\Mku*pLK-Rw:k{;ĔS2{"슸
+3몖\RY<ᐃJz"iU#NѺp|ibdo[Y;:e8dGWi*Z	+/1%ٲO,\I;:ea s􃈝h٧ZCCv~*w/.ޑIhĜ[7|㫃ty iމw__qEV7K-WebsB9,+ˠM"a>?h_Y.t $zHjbQ@paƌ=ƑNح'
+vƁ}VyXX-$r~sPT	ӛ|qZ:	Nگ4kB$xO])Uu{aUgJa&^"ڍ8K xj{uacN}:Zk O$le?U"E]x Eޠ܁"v&*Mn;.ؽ<ɃxMJ J5"]l@ӿ{PdBC$?7?S;L&Go#
+vЙ$F ;Q1ZA`>,nD!vFژSтpj9VG ǰnZE}3>umH$#zӃ.Yb(D+w'+M8'V\;Ď2Rj/_<.{4QtNqg|~]{Ǜ| kV[ÁC
+眠;OsT\ʊ_xocBvV@KWStEkTrPm]
+UX4>OdJ5]+vP2_}eA#ܩԻ{?B5n]PJ@:__q٭č׷[KL+_]CTMewh
+z)<t wh Z#ak"@[Fmf&F ùxF9ϫǧuKr|ZmrS&JUӋ 8{>^U4HbE@"Qw9y#d*ė~gtD/2L~s?29q|'.נYBvLqX]M%q*@<3nBاٻ83ߛ#=`+NMvw|$Ɠ[zAw#}tYÕTWrq7lX!I2^$ôD#jK)z{䆝YkjL/1*cK)Tŏ1W^ٯ
+;W+'X&S5dc;Χ60?3y٘DXTҤTΰڼ"bi/ZΚUkgHg8X:M/`F]ö}5K^WIT)6[B-Xq&	>-3*,njv=/=mn6hy:;		Z*jǁ9e'O@B.L#zVI"C8wzWe]S/P4PnFr<FŁ2œI4?9k|LΙ6"{;u@HMiTt=ij'~a}d@8YoX'4o	e{_BZ3CþM6˽6E/_G   +>TvKwlwWو
+HjڊQm.yr[v%Z( =eK!AYtk'	:VI_Pѩe0}SŦVw$%ߒ^a	P
+QFFJ65WwQ
+TT1!װ=p&H@j70]RfVI! "Gh^#e+*p([lh`	K;7I
+ИN_RY>!/䪺\Y/ziə^@cVTCWKm
+pJhϬ'纛)tFcvlvgu>􆰌'f^!>y*I+⢫4;dKMHٯO~n3cug6=JОю^U2Wǒ;ݦzvdy@ٶhU4j3ڝnq1[WCX%Q4k1KDqgQW24^=hry6!+Й4eTXpT)ez4k vpo??uodrP:٭,s5NK_jB+
+lvYQDC>ĤYrf*a4K:B]]~\H`	U"N64x!}ou+G{RU Xs_rѬu=$PW秝gVޯ.)迀
+B_", 2	ER5/EsEaqET69]2P05'bv1L:{RGG QݿI@>'y
+63Рnbi@GͺVg$n9(q6FLQ!q]36赇/P٠/rcl:^C8!OOhY
+⤛[l!4wTGJэ}3pmnCk!'Vʂo6Yvf^sG#<&,*h[cYڗAo
+-3Dp~+Vh||<<>ԣAJk'i>g
+^y<:gc|P
+sHڧ} g4L7hvF\cT%3熷L14#+97Ͳ1F l065;i*
+#!ӄ@67-t8>s~/.^J#ȝ"vkۅ0~]-QmEݤݢbh/&P͕tzƨ]EZsv;u`VxR;IYpAO7iE`.BCIrGbCK!4!E?Qc%D!QHh_TJl{ydVU;޸X{lͤ*V|ՠSL&MHuGʪH;O8i6iQr׶LPxȸ?'@%	>RQ]Xu;ֶNliEK{ȓ_ޠܙVXJIVgP0GCh%[_r(^g)eq+A
+Gw;$<U~&ƍq|Q{rkTe"dLb4~xlJ+kV!pM"EW@ڛ2vVV<lYuM<	Zs8u]sTQ1p|M	{	;3Y++Wj&(mB*=U\9hBXM#HV]`XwO(aeVYeojU\_4#X%I]baܫG̲8+gmH{]|V'Rਬ4썵|.ϗ<lMXC
+©mLK݄o}=ah9iw#ĊK%\QQ	l*8pQU\VĞn__-+f¤;P\
+TΖz<Z~	մ?Rg`ەGtȯ&(Rt:$*H/7[npO$*p?/[0Ѩ 8xCdG<F`s-$~016ہÚ/^犃A[ݪWTQaϨ*7O%VѕmfuwFމԆ6C+]ybp@"yWG*U哌朣$J2|ާb6iTʥMEֵm;,3@{<4睟 s{Ve2OR2hNՕȸnQU4"xҹ KqHfw)rjMPBx51>AkpxW+$8<!qje%DEIvfYk҂Ƶvjg_j wMh	ѤDz˕mgubMUcn>+`@ϣ2-ث͂r=&&⬱Dw4[94n{Q[֭>Rn%Vmm8' M}Qi2fnA57{ZAɃXiZ/Zgڝu{.d*qﾃuUwOTq	7cl|eHh$wU	v({&̖|5{ISLԝ2@*{2'.n}"sgܑn"ӝlra^AC`H	;{tzsssJzqJÑiO~z8Kv$#Ts'ћyV{^7O=N)7߾cj_{_RqAuo`cJt(#N
+Bϧ+5qo<D1QC\'
+wty;>>ڛ^"o2cΌ5~fi~V-ޫl΋|Rv~~=QwZ_!F	퓊?-5)YUAÑJ?J=Gr@c>:`(g<)]|l'ґP[zDBh"^Hҡv;*9Ky\UY|P._i2K3u'ޫ\gS~]|_]޴çT}/OvA	///ye1T1*	TsZ"^<S⡅et3 e:O:o5$`a%
+˰ȼڸ$SҗIzN?Du|D7&uZy9(TR5+OqGakQi~u,Ї`/
+		<w@E]il^"Rȃcx"̃<.lT!G9ځ埆x>azoFC=yY\^<=kk(HT8.fj=X _HAX ፍh-w.q#%͎:ff'0)E׊\X!x}/ VTYG(<l/^˳GoEMg\;SU|C w2%0:jẸ?I	;9gH	`J<aSP|]RN Q\bӉh~/=90"Ĉ:]'Ӻ<Vιl~o6mXǽIgbL8cnWi׋63,<m]me2j#7&WQ%kS(Oq_]&ܶilOv1V@#Sf@78r38_*SY9wT.ҁ>YQ7םMNQoH`xDH8_$4msۦ;_eKjܚt$<&ӭb=cR٪νV;h^˓3#@i7Ƿ^?h3C,N/(|b@4(mѸ׉4:]\`QT~#NԌ>._*dگT*VV)D,`A6Z- 6i{%9ζU즁́+HԵY9vҧ㜷	
+կr{,rJL
+*P'URi@DO :0ծUjU/THZqa-CdNe!k*S<Ze~2wv3ثpj,SuP:iTz
+COx*%Izwqkcw@QS{I1[4t#e^pmiDۭ^8q9l4SOODAw2P~O/zws
+34Q(C,xil'IaU\ ƀi@aNI>j쥲ld%A*2*hb8qm
+YAYp0	-"k&
+FWh=GJ0?0jߕ f-pV6bur`jc:6PbJWѡwݕ2ōA_rT:_OX[&wIߊU:&Y:>	tDՆ-F~mLe&1 .꩜	;'MB=<]aKQs:mrMrl	G3v0&߁^|S/ZlG3U8wCFWg#Ʃu^/x]lB<7`k.e	w JU޻YZYlZi-+ؙE'ؙ,%[~KYSkr*kZb	˝~7m9~]A͢( ᄿ=JAyքvfO՞JX-cVeF\HNLXrRNugJG;ڹY;[TSDRtnk)$/Eyl|f|o`quUH{Os`ّph9k=.
+ߵ:QnǕ;|3l82ᰩӞtF;`x8b&ƚqϗ|Sl4|-/X[c1u,LFTx"pxF[/_綰[u/oJsN+_ |Z ĢqzwwћA*VXR[Nh)/\q>HE'R5s)꿠(t5Z-%25|CgTN~["k$G~kkoeZ4^jbtͷv$>nw1v[OġVPW?t4$ڭ6cUy#*TvvZjmcybmXU0k"au
+ãu:v pBB:*7XBP3{$̂dQ[mtID*U*mSԚsAgR5	fQb	+@ߢŠY(rEZ	Ծf[o&9Lɖn6_E*ZNǹ߅΍tg\ja#5P]"UxB[~#Zqd "*QmXX V>˦`
+
+X=J>Έ$ԧFGXM$ML(hY,,^1X!Gìij&R  j@R ^@lB8_DwXZE}aiT5pqQ44?1I0-IiBݕ/	2ofM"	L:hZ%lEgZh3		>;]NX)hBB*ޭJtZUɡغ41ڬhAu'>!*}!ff,DJ,1Vp6vzUǷ[x!h.:u"N|h	8x]vIo$gJt+!YuʝzN.l`N-rvK$jCu;sI#Z$iUWauQ+M$څzm;SqZE|
+^KX\4T~Cݫ][+971QhL9syJHAt[s\Fj&0ku~dPC-ӣs*U&2:-U#4d*B&KI*EN=$*=24kV0[!	5"iɒL('lZrx?^(DNӓ <L_5us,O\{3fH|WAF2f+r8$CN
+V'^N*'.~{,:F-_.>6$Q/H6-fAW[pΗZycO7H	Z y:^'<M
+:HDuj`:v8.d\
+qlV;6يEECYCͣ#t<a{6ըQf_ 
+Vkǧ^XN
+mxzҥ[Smiϳ}EdLXׂ!Jj[@hڙ@0E*6C◱"u3X6$}_>CbCK[[~T|A
+R&Y:MX
+8hB1'@- /_f4FSPʝMt6|ǵ2lQ	 B
+p+\AE8u[PruWC!v$hOt}Rcf2JL؉X&}sMf-fʜƻtA8)lOǢɞ̖=@kF^k9nwounjQ?~}.WW=<'҄hS=?>%03OIotxCK8̉ݫN*V弥g]FVW]ٺU$_y\uH9]ϕk@Zk)A=[N;7|"/xYYHQ(ߵ,#e54KS˝zXw+trwQ##utS4R/#!~9Bo[魎k-QsUc<Ų>P؄=+3	?S.1lx&[{NӑNz:`-#^av h{p8U^҄+dL{jX6GM%vm3Bĩ$(=j@ȏV֦~߰eAARZoڐANo]"LK?u!P>COuԶIIU^PpvA9*X*OJ(Hq^1#q'UcjXVʮ9w:yPno8%Lg8>\vxp
+쏋U
+LVzrM[ul
+\1?0ZGa{'3ipR.A{`Χ'(SSO}v<pӤo05{an.rPeQȝӛ |,A^%hTLT	JXWBJWM4s&Ñd1t\Ao5܅jUFqwfϿůV2}"|͜R?qF#1$akmK5]PYkJ%޼YT	-M>b5QS6.'*AA=k281VOj_dw#*VRr{ ɪV[,l=0P҄ktkhUhij<H.pΔBVډxైom3cQzl/4>MZfb9g̑J=*XnePZ[6	ו⿙	UA(g <QZ7"V[QEij]*&W4S~&eJ+5&:A2"ص#Q[ޅP_FڤyϊuŖ>lTGo{k}z1I$R0	8Z}FO?~/#dwe/1f}S-T<(}n|?oִ~ nz-( \tY2tQTPIUʠ۟o
+ی=Z
+~b?+2P>ҧ
+җҷg$]
+08v\39!E:oxZ6=L~,z'b,Z&s%0SjPi.[fBr {:]TΡC3Z~ڙv.eqp8Z*Lw+["V`<g.TG?U^mgW
+iTH 
+r2S8SC6*N~Ku6wopV-S7Y5lʜđ,ybk FS`\43 (D|\+js6vi ld"Q\>03|"z2sN+}cji"V)]F*T|W{A0=bb`Z["]V3?H 48Gzf sz-%O{2p&썳~/R}.98x T:+S}ܽ-d+}g)mX8[l5OY*@Jɾ[pM'_v X%_ԐC{-4	IZًe9}ʮ'*|S6MҢVYB%`[UǊP	RڥPU:S}^nmRT 3*a:WQ1#tvZgGR>i,qH%sS<T7ஷ6t!c6)|}\.I
+Ԇ_S@8OL|@sMeȜzk(>%oæHBՌ\XpEƜJא(O@veZnz[c!M&Śm& l/
+ui)ܗ}|1pBZSQ1}.珬9PwIxpZ
+WYKqwZcpڌ=+ɉ=s6}u.h {CVW"zقdպ\\t-k|uFH{񷰋NVYA
+b8c
+*UZaפNVUqu6";׷g씘ιxxU<^U'qq88E,رiq%frc`hqY9WOBv$vWفrdŴO'E;pܩ(?>^y-mşh߶^e
+	IMУоdS]\G ů^=Vk]t>flgK&@Ĭ/Ψ(TA8'|بR[0l2lRғN"OI{F}޾yEWFS(Aa>?<{ctUo^DWW/~wW+|//g_}-7?*|ǗG>|CiGủDQO]6ZD*&[S</1GGNlz!A_̇ܶ2YTy|ivH+/|>>.9T$ELb`w&ڵ'>!(DI? 7 O)ғ#A❞+vUPAa%uBq:Cdc#Ov 0n*iOW/R席~|#!Hȍsvnl̾*fI̣|J,X:_/Fx h=D]GYCJL%BK<>؅t7\ԷX?i*97{ =rf<"PyBﻔpKr< [L* 4PC61?a.0CTCܑmA(_-˖N@r4aIM}:ANIu3;NMNdAS*"r-j#m>K@<;{/zqU^{9ri%DpJKqK]\'0k{OBi{Tkm\ޒza>K?£sjtFEq#ӹ=R+t$v)8ūƋS|:1h$+i_:st΀$~y\k1L!0j%*Rnnѽm]/+]H	djPADmՠh(*/P1oSgJz[ЇƺYH	y疎<IInYz%m{4^yȃ*|.J:_S^dofm5D+' z J9f`#OeDtRip+r"KUmzC-0rB
+GdM]D2qN+s	,2S2^*Љ|.xvj!Z"|QG.)Wd
+v1iSt~9ߖ8]w*ġ(%pV^cwB;=6v>0Iux>O5b`rJfWϪA'8M7ExJ䆇D~|,Ս*6i/<)Kd\ށ}D.9%I4UXܱw;ڧM/d*0I :x8k&mTU \CvDPD?&&3E ͪf~/EIǐKf:CCqIG5#JY |?"<~fC_Q@o#-Í޼JI3Ux`BjvIcnĆ?4H=Vy;Hp=I*M"Q;bIq2,@i9r'h}!6<AbMgv["|9N<XdGoT7j9Juxjr;;U‼c[b*ujS{Alx*33\:E]XZnB9lE !ƓLq3'lb!sNXN
+VVWq9(FV%um̵Is 	֩AUr+1ESf5_;,5ğܟiBP	d:}Dbqx/N|Z,Ζ$*	*cP4q>oZ"<7{oW˼U HJ>ZX+ܲ5UDM{/b\zNx1&f$%RPQH$Q P(Y-^KE@I	{L;|U
+A5Id@Gam^[z`?Opz^%tJ1OP5]lVHwTIdZKN9 *	&?Fy5M6v;#6v|mUhQlIwh1Ȩ5ZQgԥV42ٺ»zYxIƂ2,	>+~䉒1M{b؟ё뙒SE%~Ԝ#-^FD=Q5K
+<-izb,D7U>PvTad5f"Ht*lڼRoQQYʢjC0VeRy깚.4+G	px՚QqvHpЅA6) qjnQ\mޫo=gˤVej2V;&ޭYd5Y$v'7ZF_C*ZľD%LZ%k|-c,'5rݜx4կ]MTxM^:RQc{F~WK	ZjޯVwU#-5>Q( >t<;lb2YXMhGU9i FDZe;۷M|:v£#K]}YmNKq.n}mz=I.nSy-	&T$4GD{2by/s2zd5OokG4η[}CO}-4Eux[T+hFyXϊЯKԡMg
+(wۍMJhY7apY<T	I/:*Ѡ;e&?'ǵ,dRï_rZt~T!@~H 	)ji(Y)TiPcgID,IFqI#=6Z%MiC ۤtXVbRTV{J=)>
+slt +Bs܋8#=2l̖°4ڠt5<(7#8ԹLSX9h͑zwEjK-X/;9u8[&s59)}/nfr`_Q!?jF^P-]lKZst(77I˥"٣ܽޔޮۗ{'Zl@bg]:t=Sya`2E 2:%Im?VXAǬy]0˂i8dd\[Wǩjp.o3
+#(f:T74
+	I6&sEQ[[Q7ꬌO}9N7jrWz&~dZxx;7ɃHއ-;6lBD[#ÁL$Xk?#ӫ$HiSJ6}_g5nMiSk8^"r Sd]N^Iux&bHϔ[7rD;<[^{daYqpVp;*
+8I.ًUɍ4R,ӅͮM:GZ{Ֆ]aP!>pÒ0ܤd!eq6ITu(Ll<l])Fg?Dϧ&RJ⮭?+|½29QOKrf?\E*gQvTSlt)Pglֱp|] A=xD2r+ګ&%ٵ8P:/L5GR*-6$	bC~&<G>$s,-8K{*%OB+6y\k/8'՝w/ljϲpéد]8oUցWL0`_"ݲUi_sZ0Ka<>qB&&~
+͂ѯ)TU,[pОx c!(斱1qކ~SlE$^A7jaG7ӚB	[x=,Sʊ[>}b2ןN^^n[Qk"R~!7ܖ:i$,	
+,;2RshqئYTH>MhWdV8{t;g+s65}ܥUA%ܡH~v>FeWO}VЛ>cCN/ےqwxz"k<Y>zeeBd6nSGWmN*88oҰ"OcUX2FeDqz``FUZG{3̈MVu+LYuieQKr]:cG	qf{p|qFYmŃ804?|dT)Re>`,]SkYٽmI=Ot&0-oR7We #HW/'?NIO%%K+_ic8:feUkEZ=΋1Nqȋ±f]*8ILgrkW_.eU^2 ccsTo#fB,Kϙ	P]0>1]v8 "YoO?b rB4WӆpG`[`Q/d50":i%96;+Z(*O&:uYY&4tUPe:.ztЌ?j7;=vfTY4n3C/zË:T~a,03RIE$j&EuNRErI*%sӉxHzz(IWvf>-|Sl9jp>?&+p`z$Ek/Jw]{א	q7a[0P6|G9x{-5Nt &Y*j	8<&$)`\8NR֨$eH8_Ӿ-Q:UC;k[ v
+'^L孻-TB۝6_fB~ƃ
+cw2 nZŵϜ@/ctǖ!l:(pa({pŉ JM8E	3	k7aX՛<ゾmswP˴+5u+*<Db]Onbg6vp2zק?W!oW0ѬFtƭ>ܠbҘ$gSJʢbFn@qZ*8bSThpDzjTޱW_z;*72ri^Ӧ3&&m5oҵJĀ`YG[6z )JW)Ԅ' hII=$W'ߝz9;]lxa蔇n=jy݉[w'zwRUA،٥#@L:8W&"A!!amu|LЩN YU>UP#*M+VaZyE!I_E0>[,fruJOH";L9ӐĬQڭTtAhHV1+5j#@mSu*_oIJ"-aWob9eM^øʾ|1yqn}mwh:6,,8hzc{F Y6kwVk|&m9
+T4_kzUBw^u֡JkІOкSz~jILcDl:$I;lt5MOV&^DK?ll/DA cN1={L*DØ1Ay%Yr&.3N_(X澹n%
+C@-Z#9d[kTHp%Iirf< _uJ'gbL.PB&.[YL^,Ǒp_ZZ0'@%ŷխ+dQy'<R1	'Pޖ sY`*>1f8ax;^CbrB_ѵd5U搢%=U
+%8_ 0̢Ȳ|rB}Huf)b R~T`- ~@ ~OoǯMh(NS-v~J[
+뙞4=2L5X3i7DKJ}]Da6e*ָ夕1?W^M30/fvdVB^HEy
+pQ0V
+b]g<6EC]g*c{1Ւ\1ecm/@8s45EUL!*aV9R@a/giCAPfwnuћI,WqoW
+F71{$3TS8,urrp$HB1ZKrn}DX645@ݿgK0Y9G
+oU|l#I#Ƚdu"'ļ#uU[ wZJf(Eg` +2jOPiG	Jܯ|.lZ'S>=L2MՉR\JJЬZE06>`e:,_цuiha,5jNm[lRd=iwa:+5L9vOse_8DaDf$]U}Nز$ǲ$]54K_HiLĬyyyٷ	RY%"3;vf#Mj1b$k5LLZŷ1`"ؐaHqS%KJWډ5U7
+ttɀ/.TycS b.n; m^z9 ވ4HeGSbkjCUHɹ!inU{nqd5e9C?b7_GIid)Qk&s˺e	ךD휱a*sWcy-lhp(~s9WtSܛ`-G̳Ruƹ3~HCZHIuJ :Gg`jRX.R|Y)D vh>3B~:'>y#Oohkki}JLeg,=w0J2DNuY,Љx;j~ttV u>v$O9qm}]Lb┕O9+a0.>`م֦M'=LTJ^`Ym]lK
+hzvL?1èQ{҆r;'
+";G#1+颦\s7=4Wh*ZAXwvvF	AR<tRСl3WSL[=Ov㳮m#8`*G-,s?[ TbŮ(	(pjaB\0QI<q{#b5?J7*
+qb1J1;R2TY1H0c5/z/4OI-$s4-)d	J,力"Cx7Yqq:1ΊߊanBfȪyZBER98mA*|!Ə{<MaxYT9+O:.ÝWm~
+!!_IZ/J6YՌ. 0rq2Y<04Mq8@\T?yT)xr?0jn_§n)ltj#յ9ˬ,kIl ~;/@̡a;6%i.11vql.e=e6ωa熽EEciZt[OoD~I`Fj
+)~^(&cyϮ21ìtjͪT7ܒ$4k7Jl.~ûk /k;vOe7_[H:]1-bP ۆM^~rgI´{֐ZM{=TqY/.)!roɸE+.;f+ #E$ܐ_xȎq'b~`6aGj5ÒH|a`gZteqTM AGiDG^JwRoFDlEJⒸ2fYh~%9Ľpwzen.D|[#?2.}FZC厑
+g3OrdX|}]K`|;|{S 7ġI<f x5OQhYc92Vm^]bk.A6Ȉ>j1[]cn-!'Y/Z M[Hʶj^Du  eP}#3& C 1-"evCc rꞫ.O/%eQ>~.)7GWz`аv>a %7PO/u!Y¢=P,=b':̨:/
+Poy֓ޟR֡]a?阮D0l5 ~T᛿Qv{V8W#\X_8mT1gM
+ FxVFs|,Kta<~(,s3Ha-R ..$<nUɁ3eu'a8`#5`1>	)T&-No
+޿A=XM(fľEqY!"Dw-75@^
+x_!l]cbA2("K'һ'`~9949Z`T[_)oF1%N`DUjd%{PyKXV,QkOrrMd,Lx:`.Sg?s`69="_,L3snVNzz!JFK3*bsRRK7E%4 iFmg!Nc''V	v13;\tŊ|Na(`8%Xŋ,3@cQ
+`uZozh&"'^,m:Z	]QW$@zKaέ`ėP0lWkˇFܮvc3
+R.m>Ĭ,8A5`хKF z`}ZnJzkEsxY悥ήO4/G|)F)|0yXE_V#!TR95k:XȱMB*&g@wN3-TӘX40dPC
+fvQ9y2FI5?r)bM&`@([Ecc^:,fNv6f唈&%WIqPN9oEy~tfZYBψiD;׳ѫapu G?07"X	.'\Z.24&WӣϜ]dhZZ+'l(2k}Iabfo3'yo/j\hv.SY;Y;]Xl8N1.-v	áBS-\#Zv0gmXh%ǧ7,<ˁ<aa}q&3V_fGEOpxNBfnI5J]|=YL;;yO{-`SXz4%s6^zT57 mS.N%>Nc`tÝ,<>n>h8yY_8OR<Ά'b!a0[l0j<y-޶6c,'iڡՌ惖k) Ώc5{PHXA`{y]6t쇭91|{RA qFfjא^)W#bQe"+S:0]Ygw`qu,:Rf !t4?2J>DOa412+?VJj>tQ7m<Č	/θ{v93sauI \×zwzؿ+ɼxXuycXV˚_@Bb`)F6h`qE32ԳүA?;ܣ66FZ'W|x,k0gw+ k%XA>|REiR& +9XzkX8Y'{r.;$^#}iae';rjQ#& m8}6toDYLS)rB!zdёw>uq"aZՋx+)3vSAF[0ʇ*qt4{tTUxVudnd2,Y# (hjM:ޕAk$	ˋ.'#=T@t,Y( ?ީySku["&V&gIt *vЅ=7O$؞wH 5,
+|f|A;OX 2U!f*" i*i\5u?bhΪ lD"Bh ]nge㗖WG3
+&CP?@H ݓ3w _L fZk2(V$!3V+$Cu«䀽PQl2BWf x',2"qB-ؠP+-`ٍy'YD SUֲvVRJȹkrLՌ*X,R4FJZ[XZKz$ߢWw!V5
+1'>?DdyjgXG4ƺ[!O<+(F)U-S{:z"	?6CC+"ggȀ)#,tSYd,FY3M5\Liͻ'i<dӽ#:4tajc0@)=!G9OƏbfߢt+$[ڭ4!Z;5)U'{qfٴDo0Ieiٞ:mEc_6cMO$[5lVJEQ%DlWVzǴbo"UMhf+FwKO]p%6&R/jC,<6A6
+QaJ%B2Lum|cO_aZP=GHQ%8(0=Qô]a.gQ<rW9%19$pVk8mn0[g?XJtjh~jh}QC@2ncH 9F4ǒbiˍb5񗥵
+e|~m_lٚX35al)D߳)^p`LOV]L8يwg?~?MXVtEo)$iǖw<9ks_A!raьf06骹ˢD5oG=&LW(*!>1YvBR5j}&PC~1yNd)=mBv3nƴ7X/\@b(e6uUI<ut	\X#JSMN+ l@hOsw`{GDw!6>F
+EहFSMjʪa,w5+;jS.n-T65os%Py|uGj7/۫yA#r>m}wwІǟHW%R\`%-⭺.m	~Z7Fб#P8i`?IbOLH&͆e'Bȶc\týuY߂u诹|MiWu9?!#%mOkz.රZ5$?hS)nÔۇ{؀»ش__~|ňohcf0w#(vY&(ga;tq]2.ӴDVIC?X>]C.wEj1c(@9BF޻@[We/쭟{MЕZnQBJZ	'nbnvsLNK2Lbi2YcDP׹؏V։-AۛӗjH/%21VR6Z@Ze]b5`P(=zE$l^rWçS$15qbZN,cqU}KŚ1ۊ¨6a#.lB޷-!8sUU踑|G̝>&1=ilZl1/Fov1)ΝUBPh]Ts?[@`ERF(뻬j/Lh$Tg:p<AKSGd{L:/*_cZC݄ŔN.tCe{6xwOn9)CcIÉH>OsSv(_Z6fbd:<i/};2Gۋ?H.YGVSGbh9J%I;qZV_͆fvF獯 dWx0+a&(hF`k߃.>.nmCY/݇5BHMLg583QC7`MootKi{Kt1"k wל35JݐPl_Z( ul0Y4 l/wEa`~ĄZ^L$f(s#**Ǒ |;˚U'yB606>l9$*Vk	{$EM"!ŽE~`(׹(e:6kD+J$]}̛3`̎ڷث!Uao#LYWբ\<W, :[Yi8%y<Ewjm,`TxFenl}b<#(.Qj/Z'W,~0/MSd(悴߈n!iTݐg)Y!1![w(g^R09JBR	z|%
+@"Nh,Ywp'aeq񑛩?mH6MCfkRY7PZ-ϲ錇xnghHT8dE9RiʰS~`eBWE2Dw]mX^F>0(F1(jICz>A66$?6`}MwZf,HbŘRźy٭I-a;(AiG93W,?{U>ZD[;ώ1=IPCcqyz۬6 }͇1>
+Q͟2tG+8rf/#d5YT~ y)%O@r/MHCQAޕpZ4k/d"ltnhK	#"cCEnYހ([q>FJODEkdwg@AN=*ZhO/n"-ؚEu\sYC*d[kGk7_:15a{=B18*Đ!<KeK3ӛhн(@ Sh\.4NFj>PÙ{ȳjbCPǈeRw,5q<Ȕ7Zn9blt	Cug>^s^Z9hޘ+T :FÑ$x*zCgdS9(h %cL7Òc,-&bwOrġZhyA\jEI-mѸ-[ֈK9k	9MtºS*_*. `Sgzb!)E:$yxf¢[%U%/@]YuwU>(Q8G=)EQQf;,/.LB[}\ږޗ!i^%vٌ#uvxO/F:AXڔ:[L5eCO|ZHĴa'2xWfڸH3eaX#T;%mqv<>v
+ +/1;awENSarݑ({'O'Jт?tDg"
+/9-H$X/wH"]̇4&I|7ƽw=f3${A{xM`fcA,O		&|hoq[T-SU,<j;BFϭMp4VỴ3WA<=!&[0d@_Klo%0^aPB}fOP	]R!zЎ_16.hr\UY|-D(Z^x Ck-?hz䴡_y7 .XT4l_V̀\8>ͩ3	~eu
+hٽ%1Z×?+w^}W.lQ!!4&@;4'gx~vA30̳&d2d0nn[)trD
+]+T]NضeA΅p=Vlk^{ʷjZ޽lBZcw]ߠ.ӺڈP
+XEU}Db;-jq=葈"dLbYHHކP^$c[j A~LbJU*3\{Z܈ѽj9C&y0i7 AiY낹khC2m$F
+q^& D\j$Sٙ+:$
+UO~YV̋L=F$<(Pz¨\.i0:[xqIyGݖdB^j9N9z(L
+5@9u()4a;8q(5GMM
+Rr(8"LyE3 9ϫ RR=471&ME"N+A
+W)#t:<FzGQٵӄD
+Etbu>  Yȝ%(~D@w%zhfp5p8t[)=P'
+wafS';ގ&Ǘ}W5Wi"[W)gaQhiD+8GS}ljaP(6[-ߙ_.gԑ!oZƛߺZ=KoP{ 2q!"k6	\O+p[z?<C.Lh3F	Xg3*ic Lq<3=<Wz\upd.OI±4p?T/&ٙI;7BeUkSپ˞-<KɓkcBGGspMcWj =[bD={y;_#i%p<جZ̴aqۇyG";	kB߸\GW)pLo0$
+#|Sn M;˓dArS(+NYLƭEf>PaǨ-u=LDOG+wH.Fn͍RyG:y_);\2hR:_lJS5Skb~֭XTBCGgcſ(˼p\h,}EDëQ/,9z:^-n3πj@_:rOmY2rˉ௺'Xq̝ƲCKnC \Kd\O>?#l$HW&t?=Aad,e f{We׶5`=rhO]WGjjх\m郦ת{g9sX&j [RccؑIBaH~<;V5~UW;uz4]51/6C&@"L~i^vZ
+mwz/xR	JL&@^hy`gGB넺LV>(ܔ9uDrs=*O;޻Ȟ%p%gF>y\lۅ+Mc5VSEs3Z4&l0[eS?*Q`n4sZJ5"49<Qϙ3hҿ?޶Arԙ* ADW\7ok^!9	?ǽWٹ_~'E.s/]$jg9?S@#1_hEr2QsB&:p& b b~r^,>lIfR٫p Yi]}疣1U,KpcS$HVWu1F9:l5꤀!jYDe!YdA?a*߀CWJOM?5VvJ0$\x==Vs^~7꣔Bbٮvz\5$7BfV4;hrh|A'U⨂i*ԃNPZm,4MfFtL-jeȆ`֗FٍPQ*MO]kI˹NH/;zColyM_袪=$QX1nP!A$06x@5|9RZ`Jf<p}W_4wHCer!"Jm'\`t"zQDawF}3ơ^:&BC*u-ue1$޷⏠^Uky^ilUv2E|#eQ&M}qX)V;0Uo7	صԇmb$`AFCRެTHq_ii(9xʑB&0!.\D'ޠƗe`הY޺#d7!𼇊-2|KX0|qt$ZڡO	xAN5S9ƹ46L069b;'Y<w\-ǞAqQAso&^$qGRMd7zzJb,|uyk=Ǫvj<<sfy)WJ̈́Nr}U0W+l(2`>W8wi]"`3nE$Д!Շym'; %PCBiVQ5.[!zO.$CzGJ`ku"7[B2GW'ʂ}QIK%riuHgEhwB>f&΋xlܽ)	T{?bbD=@ioE<غʀơGzn\&x>uy՛7s3.=[+"l-`,HҠm}BO"YJ&z,N)ʡ}QoJaF  3& ZL}7X`f	,s8i""|ƘkZ*ؙpHig iPf`L;҃19zW0mi>tb6Weu4B}|bAFxri	n!bBƯ[
+hNimU|@z>ɮDk)!(CiVN//9˱;X<-eG$7!MhtIIGN	2C4$YRi,eS&1ί%@vAŘ֧[U,?6ړ-sga=#\N̺1Ag7,hU(e>_l{KwkЇܟ'Arz4zy氬<U][<clccWx~rΩ!K͈X]-eԗ҃2l;r$()F^8SXlvkXId[A3XrbJym0}KgBspY/rNӰiJ|{ɞ929Ze|SのAͣpVu]Μ"FG#4Cú
+"G`V؝ۜ5$'5N& <iYVC([BZ;m]d<p~V 5vE`}ަWiE
+mC!%i!ۑP>vt#bc01_P[mNQXozcRNMLZd~ EZSMwC]ow_e[P@:+'/1Ԇ9Җ~OSnTj!eҋ>K냧 ʦkCkC"2]/ֶ싧{3ݤ5{Ϙŕx4?{R6ç{PO?ûmȬ%D=l~̧> Q?K$kfݺl2a4c.$$CiN=p;gFGG+0֌Tp?~$ #RGkkNp/a8L#酖_3e/a42c7
+y[USC|["3[-[A7aꤜ̵w'\nմuQ57KDNtnqrbÍk O,"	,)Lt^4X#
+zQҙ"CQ)cGlF٣p7I/Ka?w7-H9e>H>6! iòZ!?o44[Yic|eV5}wG)^sX81LUQu4(;* F8Upu绽ए)HQ$! Ut0`@nsG_vۘFkFS3Rg#
+[!`k,o~L'C5ਸ'^ɓ1@,[؄spQg"Bt]hxY5&̥ʯ՞eTh`Yb6LpQqj68;6}kG-z97sP`53	˘K#-51`s'Rp*Q1Wm,+zO
+-Uǅx~l<x(  
+JӶ"ƋҜ*T\dăVkeE0aeKJ &~k_5A|8x2rI101`|u0s(VǊ]9pr2BFS+d$Jߗ߿V16C]I[R{Vj9)Uz4Ԣ%u97Hog<_ff#=D0ɭG͗t`yE	g#9<'iLaǌ_SLă/WUvpܒ~#bY^~ۘnK"n:L^/٧wb5d,up!P8dh{?L~Sq	8prYOxڇ_=zZlMɿ
+i}؆z%*qKB?|roR~scPdR4*$"@ț^c%QKcꙏ-iG!&=Wa!xyfi.Ozu(I^?PC :MڇE]OEu~~`e叙FOc@Wu]]fÐu9,5ϖm{FO5qUGD/L15!/$l_N~(cԊ7,"Rp	5O94QJU3(&ލ@[!K˴cb2u
+gΌyK2n@'$ %ra,;~,)w Aw{P/~<g<%pcFl'ɉ]}5`v0"5
+?,fǻ4o~Ip(0^J7]A;O_7^_{;-mV-B= d (M
+rd`6]K>2yd،?]}b]ZZyBR0He^K颟껌{dfyrQV n$f0zJv# DW~.IIa k$7ZϦ͘]2[Q܊me:2=y2cH/y	B2dWd#[7'D04xg$F6adJC_˒k0<hkK){z3mmLԪN6y$g~6n$͓'@fa"[ RkJmu/2>ynU}UN9jn
+FoQÏI6&O3-
+	_>MPp8!!%cQ#~:~KdzULU3!ewᵹWњzN`	OI@wuhq9?bJ=,]]';Avfesŋi6z?_uxM!H_*m	~w4Z.BYQ?nx~aK}.'GLjI=lfAـ_}5F7}];J/ǌ8eݕ+ǐ& sxAwȑ4W$M29\4pw^3wcNcOSkF~v 9'<CIׂڌ"IO3kLDT𜎹Ep7.Y1	C}5zC2}Ctiz"LH#3|䓹Y	(#CP)u@N?7
+ɑ<yȄ3qCӻzvw>=_$:) ^n!Q7kZAE]]2tKhތ[s!iS4bfo.n; RCB 6EoKFߛ5HQRϪC*"aRWI[泖NM+ߧp룵0멷GM
+sL|(|}SK.њv6[&iiTú~G5v$'pgӎVO}U5BmǕ.{_CruGڬ=:g5;uxVׅqlycF8ROJYl#4\]/,x/F^tKg<
+ezq=MXnrAUzOWP0E>;C߄/Wg饹n OYiL?0Cq8]o+sO=yG*%{Ŋyx6rgɏOw?2,ԾryFG~2u96WR)Ih܂(.᜺_˙DRSzy$f4;&;@;,>i&K YXTc(x,WղC78z;2$eEUMI+aMz܁ɕ\A*gXyLsMzOIg/2?I1{9rk#Y&i>8^G3!S>Go}^~Z<]NePQ $sNBI\a:tzeHfӣt/P}㩾%ݗ@`S{oOƳ̤±[#(tM#ش~"o`>^^}
+22_𩃲Mx,>9L nn3ľ2̾[Jp>Z0DFKd`㱈8H;$8 IeV~Haϸ fy 2r`j8:>[vw;XFB'6g1pS{@	tG\D30솇49O.M-}Lo
+9ް "t-<UnQHh3!5nn췛D/)K}cB	>yy)!¤>gLۓs>خYUdn
+.Mu_X7ANi	Ov/,9qrSꪩVĝ|q!]}ZX$d2D%<꒍`$D1Cwj+'a3m<Gj&}afzs|ER1όZvf>_ t$Uh!3mϦ:Z~4ÖܡժstoɏW9IeΈz PO^ 	R>2]iQ5}1*3sQXl.#W;#Ff)&=R&gCDSo1BvR#"-uzj{u̓fbin7IF?V'>JrώrDN S+w 6Dgc6<Nv= ufFPTft)]k>-4'{##erv}ȃjrʏM*KTS|"+k YaiVr]嫪6$D>]Yݜ12A*Ls7JM+`{2޽\ЊCiO=]<!Qk2W9	P@Yz!ZD*@ݶQ&@3S7
+$ʈ d5XMA\z.aΧG'd	(_Me~\.VDSPhcwS놫Y|[FB>	_Q4<L6qıvߒ!eYYXD89ma؋o}yX]
+\<TW	T怏7b#aH@<yԳ{X9ᇫg(|B[Vs1NN~X˳<m4h&%e{s~x~'肋;./HĒ:dcW[͇'".D p>Ouq_ո默&^inM0Ii?M>|x}whhG'B{|wmrb}.F;uf|`LgFb ,Z!J. Щ2Os6!:~ʉc^]:am>Ee=yL89wR2yy:RH"
+IQmlv۰NgIIiȾ-Z/<yR#5hJ&_ԦC됰[(;\-β{zcC;>Ҵq4mfBfBD [Sr(fS~@%Y>I4bU=`1vIH7(6-T .굛7M+rc*3QC&# ~"fjIwHTu(\'xB6o޽~;?OD[UfWGU@>?G lfK )V'12e.:yHXR(XS$쬣%Gzfp-pg@vg'-Yrs[ jBA
+0F"3gczk-19KI3b2I#U*lRvIMCa4E,O,1;@"LN	lH^u>GFmHK*$xqqn'(ڎ+D8WfǜpJ磝_A@2-܎d$ֲſD^Ӛ})l~s/ Çh!?稶<B'%'9to$3f,
+sd;xĢ*x#,]\rhi;C'	CVz.<(dy-C˗@)`SZMK }I֖[!o-J3qa)fշ-8(XTwwjNuwWE`-c%ruZ%z堨&ivZR8I`HƷ8~VA s&I<!L(z"q<N'2
+#ݼm؂9XohO?e 368p)Itt2qxPngWؓX7l*
+|vTL5 }vvxf .3".m4VEX|SVqO\rLZGl2vtf6?ll1py<|#EqRbjbRьnwDkl &jQw(XPWx_fX;y1鮫z~Wcڝ]ܭQ5^^PIHELe(ͷ  sOWG%SG%;p@tT8H6<([#Y+Yм̇pч1} GYV'{l
+iGԛ+_͈q^ul	ac	R{(
+};t#c4xIdtҁt'M@?ٸ
+$`V0U'L9>t@71,~MaYpg{	Yq#[b?D+bͦCsp6䒫+F=y`ߴ	|`gzYť(rK="_ewD 8Ŝ}aű=hʎe(V9f/";AОj?'j-z~p?<gMO;Id{qcb9@+
+̷=(\0LbF	a 4RJ?H4.zc9 ٧DќRk?A7Q|忐`e̊(pyӠC'Ч5}aMM.DllpKJ7NdQ-0*wE1]|~<?==zsf!ryG$xX;1Rv8A!_{Tfn8qY LfjC	u&'bn.(]-dipYuLjjJ{gSΘ^=k1xd!ABFykJKiUQ-5lpc|m(8H{~Ԥ,m-_.l+lZ=#ȤL?
+wQAɒCs olq9H1zvwk
+z
+∺6p(~@{F]-V=0dP@%ڊ$stT}(퉛P)1ju
+3/Z|r.IgڛhEn9NNB-#!la51J(Nn/%tp-ސ(Ktݘhr@〼K(`,z?fmgCN}#p`#G ͪobK	hxfh"TT30hM.w,$l9y%"vLKȠ;u4z/-o|T"DR\?*phmWyt@pi'KbSÓsh.if8%ԓKL9@|Ȑ8HP6a4\|Ҥ3ˑ퉆l1(:EQ5Nbcag qFi#|[bI<~&1<"]d2}On/C.C`sALmK҉քl	Z	&TǄuQw>\M}u8B(;(cE#3+Y!aGFǣQzҸy3 _8|yQi(jKEuMՅ˴5T޿|(h@1
+=t+K%R>gQiT"l1ud dim9|5f)g2
++#g&2*%ەu4#?tPt9cc1 m=h#ݯhe2FSBuEΑR=Հ?kڂi|k. D$_YIF`IE,6P|=N>Hkn
+ƽl.gLR6YA/eZ[ΘHa]z]YVIM<vq9	np)(Tb5&ebg! I'AY+ǧ=
+`-uAtŸz?v{xE⻦G2
+(UN`RbDMYVZAm<?ޑ#(&̔{@L\粯$0%&JC]qjPɷĥIoG1 ޔ gŖ4 p70^݇jv7KT%dE))aq<7~_3Wxp6뒴(e^Q+(Ai.]%r8պ<^)%(6\H~^/TM9@'.!r٥4^EP\к,_rwH7״"=@q¯`ûs6EQ;t3,cj/TCl{aN_ϳp
+׌srC3maJk`L#f^7pW"0>S(VZηǽ7E<`Y_᲎d23^b.ofKC[!)fN~9"~t<|ѿmp$_<;/^vsysAi e0ȯoQ8t0cQoMS<4
+`&0sOYd5ХC{!!{U*sx:͙HXF]V[ |T|Ä.
+Xˉ8΢f?P{oh8/H= *mc.rg8_CK;b| -FT@MFz&S%%p)B696WI.o^P)g߭֔5֨(raR7h˛=ƒ/z~ZW-&lZ.:rrT6ACK.ۚS	RHpHlF67W#p7ôp7)	Rzj 1"0c6kI`,`KXOjz/n˛A82M50U(pLB3|&,e!H"5p|ۊ_Սݪ\<H'Z=Kd6y)HZ3yats?@$K<|ˋ Yyag5S{
+McOL_,ٞ`HtD`ݧyۭq̈́x[pɴBb;6N-bJ׻U]lBd[F:D;@VhM?6~)^*$<+׵\f mD-%}oq_])&0/$mC@0(΁c%V*ۋ0L[DIMFj;+/%z:˒1Dmi˓'`sSD(q@I~"dXy	i%Ȏt^v|1F|as_+GGI!?'DDpEq觱_"+G,?7X,5D0aK0͖yxǗ92Y}cҤ[xqЖsr_D=]$@iN䭹nO4F"U]' >DW4^lV=r[mu}TIZq[Z%XSC3خюDx11X]M/jG׳J]`8Y=$2=ʦO,L`)vn6(HnЎ<AI`PJu<|ɫoǊꂍ$Yӈd`2qtY6ϵ5i$ԋk~Jqھ\֞%2G6C,,mln5fm]Uw[<	rsAT}C<@F=Vz.#SH~9⼥.n\VU9*j-j`C['+̶HPrei䚵n7yVICੵ; ,Z~/3,) ɤYc%l\0]gbow%*(.{W'v.뱶F)NbvQ4.j^n	[Zse43%*Q-3x$iu=sH "o{AWJV+VqW[rnҶ&$u4"FD4/jtbA:^OIRl.2?Vʊ1 &7iN9U ʰt>HlR]j\8+ghiOꗤ|#3*۞68]4E++o@dL&5"RT(ÈY31HأwQ-r=v6ÍHޒt_ꔀmM|,	PLpB0A3oF:\la(ZG6e'*af+^b儦`-Y~FrAc{v.˄loqog^|)/UO.0Qh=_)P&isMb%UiV'?I[hP57q|K{t4ΥJß|t5B=ܦ2?bdK3l 3K7H6`	lW^;&bMiGŒ/yPi68Z'R>oEvn0$3uB=<g:BAFD#8Yo-\|`?]1Q0jM:dּ?+ΥD?' gu(@TQqɄ݊
+۫qyvhW岽PB\l a&1FRiqV|y)d3@)~bbwwXُYj|s;94F"u"&B
+UID}\8҅CM |8OaMorso"E G{FG5Y-[w4贍╏BП>Wo?|7ߣsʔM? _8flddޅE2C3eE0DDT[|{mM1V
+(RJeNk|;wӌEEfkM1o#)%%sֶ*`[KadFnR-/ee|S[mpу!3{%;AA-i؈Ǌf89clsPd@j`W]h|:wUJSw"aTc0s^(1j)|T^gE`:W&pK\r-Ml[/iO{ֵ!6X(ю.Y&]QÍ_İSk*!4xYSVlѧM/ PJdk"}ɔ\!pʢ*"BN<e#߶H`ew!g윬7 HaM	4%<GسvȨy ȅ#6b-i2lӻ{	}>gFPcoi/
+IX[[b(ʵO*N$^	\0S p*Y-C z4XSORrG5;pCJˌVo_wxAnH2h/Ǧ.\gg+y[оBni	1ΰ*%_7&C%8Ր!߂ȏܔUyslL(UZ7Ǚ["C4uWvX:+xFj3"\LM{W 	4P\8܀z8l5aEcǅ𢄫54̴#JgK྾q{[9Gf&.p䟦Iw"3XUmZM=q/|zYhm/:
++=INKwWP*kM<gq](uK+/5`=1S5VKrL#OV3&S'Υucm䧞2.񕱤p4V);ۖMB3&'y(N<'L؊Cs!z'IVTO<Wb*HK0ht[$sքL=ҕ/L!k9?L-@Uߔy9is֘NWߔɐBdU7^8 Kcy5zbY\$!%qd I`^9Ko bxmqgõUW0Y~S63'~NHw0]⣜N#if_s[Dr$2^p0o){:
+츞^|%#bKC. B-aIFעlκS'CaeE}֪Z<};m	F'
+I|]ۦ)֟24zu0#aR0WZ́nշP'oL󣺘c$ j]4ZygLnВ |@`1˼1UU\^Zx y<?cd r+4b2X_粰HlU%3  ธ;|=7&ņmvmmBA달M6V0#S1ͼxeoEY\)4xM<?Y1`x<Y/pg>bK4#ϯ{]e(wȴFC1Pf,|k)<CX ~'rFk=Jci7/sr|)g7o9uxٿ3`gf9JSᦰ^L*|E%ʷ<gip^h~0[tL
+
+zLq2ObSOiiAXM؎10S͋FsaX g6Dc)ަcO˹V_5/T $5j^Vbq*uބ9Fn;Lp˷Ǣ"tiE+|#1aUCYLiʾIz)Ƞq75/ ذŞ%*fDdEؘ-Jt\"GF+ev=LE%2htd+pʫ	Y&mXl`߼Sj.oRQwVԸvY9ژqYynT90B>v=o]l<3S"bt.󬆩58wiqkBT`P\vi4٠LҶŧ,-kNA%"^QCID ._󷯞ŬAAdo"L =P? $}ׂ#f`RʕڲHcR[$;g9,57^F" U բhIӁq3Ic"W|f NgK tzswki}ic!uh%dFX&k5O"9'%OU|k=ka]K7KZ:@);R1'l1TEf/"mfh+K3@"c(oX48RA!Upe,(x(khh^2aks$X9ѶI(V9VDw-d.іزuF1nʇi n+Neu:GapP&z	'Oش
+ߏoL?ziyc2'柪t]jZA"[sۖ0vSstFunZ |x\V26$6jb,{I(ƣv+ց5GPoW#<GN )!,p_S"h2T㇏~Hv) {\΋hmp-Nb?$3CYXfR_+G]7} $_ﳕ_IdIN%*7N@fb6-A10y'BPy(xI=2jQ	[!EP
+Y3!XJݸH*7_Q,ixG
+\ܶcImINu.zZv!ϵEى	!O7I
+	mDi>;+f	Bl^r P\>0"WbP%Ǘ̂L%7"2-bEZ*Ů3
+F!MU1W>Djz&OdZhR1#bYpie;=#EBkǰ$=w)lmzTM]8=$	m<9&ve)Ca܎~O6>%;mv,;,>,zm,@^ i@l/9^hNݐ*{\di0PZƕԡIkAIƟw> ubcz?U+X1ǰHܖ7^kSd6(1Q@£7r^|Vj9)#E$/Ʒc|GK6Dv~-DReL)+&ʓ7
+z$ {-4cHszU{62!R%~UD஥6$IZ"Z8`~qo$#]CaX'Eo_!#AŜ+"qn&d;7<=_4UjxE[r@?yڳ~H&#W^nr$~q@02w,e(
+K6[ˬJ1L5$'L`pח&Uw.PXtf]`6	S7#</
+HDb$vl0&+fo>nЮ4сbFiSj۝ ?9n&H՞ܗ&J=F_Og)O*]|o_oS!]s>7	8zZ(U9+k8ض-.OQc"ȉ98zwq $1kK>JM}|c|wt__Ɗ[WŞDns*{X֥gOb]*tpQmf}(_^E\$xnu|{hW#HE޽1[b'E\|>o	¸hmK7|}y	l/ ʸ6@&6W5y% vl_JcMehI|~91&U!GTQ5USM~$m3?3ki-d2a~Ŧ}f
+lA2~Ic~;Q]ڒwib=2V#t.{Z7ZR|f[] !ːqPDIbE*{@6恳M3׾	#Ab|$7oˏߖᒟ<}Bĸmɻ0*C9CketlH1M^~ΪAt@juGV'V̀ĭ&މL8]ĴfUZ@'0cC[OgAlț[=s60'  2.3ҬIV:)( Đ1<\WL^~Ɗ*KaA	#7(T䠱	Yl1 (}eO=K>P+1J}eu\1m6|697<I\ԣ5wxUhq)_}njȲAϚ̏Jts5/h{ޒbǁdL#I ͭ)^+E}X_?SL91ä%4SE}5Eifkd9jd+<⁄޼)gG-Rt.b1RH/nsVm+jBk Vh
+
+Q-"@L\\] /?Jc^"+M.lpNI\}P?Ȭ۴O19"c	O`N]avf?} D\M^_R<CkrG6.<e75$ogX oQKE\Nng^sJ)\K*ޗ<CYyW $ɶ')eK<Z-Qf膟srx8xdn{"`^nU&w(Kq:[gCjDӥb"Ө-$CƟB>>|# <?N`'4y&uYs&Zۜg<w7^KcWXgb7b2l<;bN9#Oqv9?>O`N'iLrYYwcc.<àp@VMt/SR<|Bys9[҅19H9AӋc̕Q¿L~b]Ȼolk~(o~_L[ҾM0ޡ~^2Wxjw7F~?IMzon<GM̏o_[al(<Hn7Xu)
+<;xNf3L,sTNuCz%Na<Kj{zW_F2o ʼmGy4)X=&\ɔc'kH|\4gX)BzF`E@_fKVhő#j^o$7qJ9La< e3,;=S$df. p/3;<<z!>u#X6SV1l$ZD牤e
+ssp&#5A<1k?-ӝYچ]qM-A"Ϫ{GxwFnK6ip=[ȄG8d픰NP
+Gߡ9ڤsiHY/&mx`H6_W5*Bn`PI5N=\tSW<fIQ~WLbOkOCbOpϮpMdPä-X?}7wwOa?Cַ~?)֣QgW߽ȴt7~gA7iGiJg@kXB]YsM!Zt_= FpB\q&>k
+ʚO+D^ |>y67886/0gN:J`)HFC$P@clODt$cG#fkl@ Ɉ3KQ -u8[w,6#oh G\XMBa𚕲j2uV[t~ֈ)֭8@g%S)0,Ѳ#Ny=G䆙+G+'mAK Zgs7,4^O\U%4>B\UMOF!5o`q[:*}Lwl34S<_
+Zb3TGJ=/v{çgG'??O??~O&&2o;f4q ̆1''	2%DF:lToz_}ۉC[ȰM&1vr%PO <&G{Bɨs&[]
+~	Q&6YyT}H%
+ N͎(.I# rXȴuQu 4.)7Hot"nOp{hRс %UHUc]ΑA71Hr5S``,$=$[$61mLoU?'Ý l(iY vc6Id
+W"_ z&d(P6.t1]9i݁ >)hosE!]:V
+KRu1FۆAzh+vwR*i]*j\	.rX
+X(4WFe} ĀC-xI=-j"m*]O*BϨMK#IZGbZ#'Ha|lR"S<zˇ=rd9Uww7"$L33$?geYrtprw2 `A53e(V(-I=lٓ'kݶ{3L`<,g?M*A4GSӛd	>$=@G
+-Oժ 
+QCuvԒ#oLυM%R%]T۹CJN
+}uUۖm̞WW7;4 j$@ȩ!'Arx'Si}8MHԶrb%Lx#1ti;ֈ	&T_Mp瑆(7]uc."ߓ3\%aϕǫiMFi	#Ho;vVMr4;瓷/Ӎj^.("I[ti-oqVsO0d@ȓhJ6"	\բ4, VP1kTkב"닚O"xZJO$ن.o(YR$5qM1j'L?h!dͤZ5Ѫ񰢩%krd	tK@Lr}EuzU%N4W=n>Cq(g~6%pɍ"a)jQYzZ=yiڀY3m4H[5)	ZQ$UC̯w# [ 6V7:tF ~:̻;7])$
+dEB
+i_@;V2Oz(8;%e`sd)þo0)&,0
+Ec]#8jc!gzwVHxhp.SV&[i'b[8N!2G0bV@E46'BC"sRj}EXu9$ihgQikF~o2]jD@$9wV緩dRK1kMkQYX"8N<0ߺq1r'"Oޮ螘wo'9ţ	ƸV[ĩ᥉K.1lZ8*Tdn枴jDq\-p^LD5$K<y
+WHYK2yS\("㐍hvAnɑ h"8ע/|iX@u|>+&"X[N*/b4l<VI{U{k55Х!#
+p>mRvJ,;"ң$Wy(dΏJ2*kv[D!ӹWGlt)eNSGJ~.	ȹTf7S*;D#;Rګ@	[
+kBdqxDcpq
+ dU)V0R	^;d 4L['kQwi4Egj"%,5e60_l>CkzY0۞We>悰|H!YOcO3`$\9@,+CgfkݧVŃ1 Ӈu$L{lL"7Np/߼Ro4Ɛl6L)Ȍu[jj5P7B"ÈEWM>fO.\xzx(>ڥCJWmT`q^(I*-]bߚGb}]aE6$ rm%|4]Gn/vD(j$xIfG+
+yLHL1<VC2JquRfNMepx]ØWD/@q'\Yi;&ps&;)Qv~r+,>f_Ĝ|^TaDu氯@PSELY?Vvv|y=2T6lm_ӭ67sƅQ2Eּ''~靷`=z%k!O<"}rp}~(:ƴv޼Z!GYD(7PxELJ(E;dAi5 r<ybEKmm^5Ƴfyvri'mߜhHh-)ZgcGܺZ4Oz=7-hB?&KA-]z>|;'ȁu R7PJe}W !ڼ.4AkWo9F(\vs:˾e5e	P7oD}[GwNzr=AC8|+!x}Kж.st7P/q󦃌FIQG$T-ʀ
+7B)\TQv'91IiНG97gU]W^Q~pϠK߷h	9#4=rt#Ҿ_5#E@daOծSk;s:"1I݊V ֕5崵cZx2/32Q~X6)]l^-:.E͖EC%Pq|pr6b}ف-:?aGm"$ ǐ'sIUh+ nwi@JGQu1ъۙƥѨ}2WPi<壉.nF\N:m$bBo`r N	ɉO(Fpϴaf='o@w4jU>(=#7#"8+ B)1 D8LT )^DI1§owwۑ36IQew6w7$hx$j *!)>Uc .06m{%$ֶ=!mݾo
+$,0tF|߾<UW0?u2cMC/UQ2I"rNFDVYf"hYW';N鿲T_h贗	2z/|k,&楂-rrxHJruLjQ'7퐝KETJܯI==u<-3R!T?q\⓾^_޹VlLAp#ﯠy{eMKЇ=q=T#">Xy8ݱ1rg.ӶM)V̈灩Rǒܠ9f!
+t(0"'x(KGlN^Br[mMDpP~9fJ\ݾǿso+z6uiE/Q(FցY̗kO\xb%	*,cGS_y^ǥhRMZy,׹wx%]Ko´<,)p&:cFԑ|rC;-8GH#&0aqwטp
+<#%}79kiW}poQ'_O:d8[]APmi
+s޲ijHc8WҕXzŎӉs]GcA^*+~645v3ǩAR 4ܱ2?)~	E'dViPzW."
+ImԳn@;uvN-Y:N{>FQQ{p]0&O qam4{/[CXsҍGc2ja ra]剎e$__YKIrc&+d*"5{\{۝2R>)LKcnO1U673G-F
+B ŧI*pykF82f{U5Aq]7U=a_yzN_b9b"Ӥ_eYk#||Vn*~]a&hy?mf22s]-8=  /1=ƿxM ~}z~_-8.,f?Y~ڊ>	J(w.
+
+(=YLBV2mOV@#ރ*fv.G'=,sp<ڴ*L$vDHHn	b
+/2Jߗ/Q'"`/zo*ofWI'ڕ<hj,qvV-VnaKٹwjkgQٓ'.55"RQbb
+|v\?PDDxZB8TWD=$~ |<;krz?%M92cs;'K/j *]T_UFQ
+཰@c>Zateakw:(mPЫt"SZ 0;7r*rϡHuˬ±&UĵKj,jQZ MsL &"̶lJCKl3FʠknU)khש=q(GsƏG6v'/{,VM
+#Y 0_H)u˺YȾK6WP݇/ffLA{vGK$r( 	5rn.+Jx9M-⶯{8݈U&.:)
+*>[$Bcbgf<3/o,5z2t 2Z<W~F7`;NJN#CvUseHKuI҇bQ$Ma=ՕJWJɨڠuM:_'4l*5dvymnw F>>nW~{T7\ {XZkMVx}?zZeՒ>:u(Qbfu ~ǐBHg	V|mנ],	1f RK6ь{7r=X_M?ղoHl:X<&0\$R>}O!P4\U(\YVjC&6u'J;2ҹZ_gdg' cug8ZDpֱgf۾Z0rtFfuÚ?wKs:bZjАޔ20LW'I2)RUBCdk"4U=le#cJaQ0:ifM\<)T#WaDT3i񊐪NЂMo{M6R-Z,u7tAN2}Q3{0IcG]*OvE0 	[ f[{;o.Fphx1t6M!I5%&aqnʽ*{owx|윌*N7D
+&J#:<(.|_֡>iFOYWa!(f&XL[[Jy!p:KٺWv>s3Q/ÀKHGy}
+P6p:xFl4#18|(f	?7_z0qhl/^Fw˼rDlśiWG{vP:b'4k!VUZWYA~~!{)eGSվ RN%hS0a-aމ'RZInd(l0N`џ6m$%2ob+R|.y]X]#5!L<
+f`JIX(6Do_fP
+ή{}͛3~6kc╥6ٳ/kd۾~n~T|^H5A9WǶ.6K
+D/nN7ţPm2m._og/v[Ea$h}w6q0:/FO-FOOuu0QH|`뿡$:Z;I5!F:ܣN-Jvd|)#G ۣHqE_af-Α{5|Qzg1Q"싒Y_l>N)O4vѽ[yDt&Jxlm%WJE*G'inY>RaDGFry=n-~BJJJ'$3,mZ|e%/1}屡ll?ve{86hǮq`J4Kw?aGm.!óQ@g'_؟vA 3]eJGdkmhu_@~d񦘵;}7'<j`Hm{Lׇ]~8_}  LE"widKEp_ϥwm-e\9[nXQUn&ʃyna-6Wy vԷqRvk1;NIϖXD<%wTR]ķQML7itb0F!VUlҚ&#aM`+q]UmXXhE[zt>!U߆<wd)rF+4L:P&獲<f<zV,2Kh#Ub2X[YUWu?m[3'k͟xs )|76LOwy]Z][6i	c:=O@xz%:$Hu)0m;0rSCLÐ`	:﯐40]}hh_{7]%X:lLx¯,ݤg!-0 w/>6t2̻'b&C{ ܤWapZ?1j~N"GLPtv'D҄]k}!m`yhME)<v'|(fX)=oSUk8SPg]+Ҏܲ#V4t|H[})I".Cһ!x{)K&iDY^1l~ƈ+FZ]_Ƅ:VJ3(ʴvWcQЁSR`[$,ZUSibY:EH%T")*m!vRU6u$RhALqZBK#{KYϚ=m\j;.J$_`r]	xmK}I{A+~0&~ 	/i]Aע-qūI;#ȴM#2oy_m3.5=ͺR/ SV4R7/6]"Zƕ]e	n߼-e5%iGuADӺs4zZ~4mrXS2>,jR3 J)@F~&*'>OicMn"#qLU2l1:=3H7spsjAVzL:zor&[Ժ׻Xpl\^||6~y~45Hߋ~ly?`!(.v"`(ߑ| uww} X&y@&<:;=?6ACb-q/{il_Z&T˥4KE:K/e:Wxj:{)M|z[wWv:Ub,	/M/F6_0Rgl]GH9DͦH2\8O峳]stO7f8v~4^(J|^zhk%EYab,	9ACμ(7LLY6bt<^`_F7r9ZWgKzU%}eHn%onXƣRi~eoGX4o:gCQ}t9b:wpOk'o;yNwۯa"Iwᐡ廻eBO:Fwrl'47
+IS?%)rc"9E}Q9#)JHl?$oĒ
+mR䖳ySnEcՁBdB*iQ{-\34Yt،g0\!ۉ2nvXP,e0	!el~.2 v2!.QV{$x騔r'Rٞ;RXs囧<gJ
+C17iTf=$ƟN`7PL`}d)c 6Zh-a"껻[vNs:5#@Ep(w3JwGg(=yV{i6;y'ut~"zT|>>sWr;x'ΎN^mj֨q*1rz7̋fjP!/e1鷑L8nTJtCQn%zvQ,uW佒H@ִr$+c5FVĉ~QaytDlOuTMzQK˳*kF,aʕb7D55Q_LɂIwwǎpl"gsTpyk2U6c^9H8Lܑ-(;(;Bda[Lwvē$ٙ˄&ejN 58a1~F|$ߤWMJ"6S}wWKb$4(,0МoLyZY}NlÕg!Uz7izjM(B_%I"NMOoit>=&& 3a~ϸ8~	s?yoQ/1d[&)3Xq<40R6}V'.>#I2Y)
+D}j)ZG;P[ZS^N3{>pj#M'|;SL '@v~užbwt#WMu/+;NnMXy1BIj]ꋅFD JE+=̼$|*7|5|7=۝_fl4(c<X@Go[M8/ (oXN&[^7JÖD}ӵ+V(-nGގoq;P(И³H3f[ēyjvrq^p1BPD$d1eR~e\xE,0Vνj/tKps^ڦي@wzFqru4̘QNyu̴ܽmzZ^f)d'f*ůr]{rjU?U3SuI/J|?MPT̠^O*,' 9_5
+l?OϞ<)n<Y]7LU%3]LM[GXh*|X'b\\*+r'dlbf({d&۳im數)σ~43u"~P55LA)FjWdo3*ҳhlɓthx&t=:K&[c=UL2ی6&aK4fP=Wtݴ+R5฾YѹPFVWZ니v m//^_\A\qkKh?Ѝ@nkv5z0 _?3X
+(XV$]IhĬO"oYu	Eq}cHii_ x/e:Glt?]s؝^&Qcb%9TzP6تqg
+[?<yzCU{]uhz[?E۞LPta#^jGw2Eb+vm-wO4O_Ɂ]_F'Ce6N.hk]v]5+'>r]ę4(]@-xpOei~aQ1(ybFąG8sE9 	ݟWkJLf1:-b~C=794'mPg	"uΡ`e}}ZvI>eHV=:ϡ pבl7LqQ6@I}ChT^)m!UG
+c͚=xj>&=+`{?~	-?Sl oV?܊Ӄ  ~jh@,jژ&$Ou(hf;AUscT]1C6E!ٳ~o3͚e>[ŒTvbq~Q5tͤ._:t};\>I~*v	~KOy[eX:2z(&T;@;-nBɋaabYB(pͮ|tT-aGqFs Osz]JiDP66	aԸ;t&怚z=Hߋ*aiM+ۼaX6w$whӤX	
+SJ>Kz> oYV^e͝ɪyGI68'+.ϓ{ED3_eK%au:SJtiGTy<vʿQ)x<{Q7]xZ7Ug9'D&6[O7AWWSwgAa2{1eHn;l~=?GY?GS8H޷O߾-t96]_wwxIkR?5naB~q
+M?|wӪWn*@ٲU6+-[e^fas_!شLA>`A]y/SzAa8}EӴ/rX>]	*^apQ'o(p9^;t,[!Ib*|aXW_gӓ#%,h^dc#2+Ƀ-ؘ#H3?h*-4tUt]TT3$A WJ%]\T J{dB[F}yՕ nDzkWO*eqFoG qra`h=X[ 5we~W^Cw]c&GATIE8rt(]>^b=h:P֙-^M]-UQt 8-1ܵ&az/΃ZBw2*ўI8_ A
+RkZ[1mLX{2_H4ͺ`ņH*0x;ƕ"9@9@
+[fݙfArd}IOJo<1}څyرH__孱^yEwki`ezfrD+{d.~WF{2<zv['`?"_{~iv~!Y$-=M",qFD\s5tDRc	9{21]ǉ0j.A?է0]q4Zv?xi>^ޑٶQZ`nbI X˝a.|}Y*,]2>d꺊*{x8Ǘ4(ҀӨs?l[YSlPf#d@FRKɔ"_A"~ZZ^=O.a|. &D٪ IA7~^s2̝R(M%7ǅ@R.I[Uf.;Ϗ/ac:Bg)%$Q䄓9i()
+Ox6WljlfdDq_Ӧvm	1>,њԸLBp74ŷ7o4lG\itYmEoru/0am3t}ю?G3ؚ .@_3334m}Hnh\&KY3dҊ社$I'{c!xqQc0"D#la>yE{)>FmMԌGDi}Y5jeDyyI}ŒvD2ݚPhS䥑4;v-mڑC"4#=>`,X}'-{[#C2A_=BU4hSږ3I=NЯiP
+L~MiXEX7ֽ5	-]CU5[5Y]9Kr~SWBL%0Fi^c=Ij#}u17)gt\yal_F]W\,kx?S2_	ՕO]Uh{T|?\9 6x40.0خA
+pԮ HQgdnV-F^%>]&['ĆDOdG}亽Τ{jQB=خ
+Io1{(^Rj.И,#EvC|X)w{vJ4wض~iuHگ;w=:!Hs4LweQ{}wm%7[׾30{!}%1ɧa>5,g6#Of[1,,pf#oEo^;*G LD$u$u,.1𖗫͞}r~w$D;ݙ~|M'#	hj<(x:!WIy:qLBO&~u
+@gS-""m8v<5~ESuEԗ0N?ĕc-6^ fˮcZӾYw?1[X>RnYBV4ۑԈn+0S
+?jM~ި5c^1Ǵitpq4nڱ-(-ny0[mIk-MTj<@;]asχAJnA&GMيʆ펊FaكyVG>R+߅gh+LhEBg9̬'t13fH&nGb%(K派$4R%#nK."AKUڇ[Ա3$`^/b7
+9xQ+Mv/nb Nnp+LsPjmKo˖v=mJ5qujdE*Ec6(7*Km*R/֤fd6K?;ҡ6 Iz;7 8Hs; mV2'j]vY/:wRKݵPds6hBc!.'ڗgCh
+7QϦ#>eJG
+b>XJflzzZuˏf5O&{l-íɶR-"'	\q~mͦSv4T5רX5:CӋ@RE}U_l1$̽hda\ʆs1;	cxu	ExL]N>\6EǖKJ
+۰!9m(0K0@AN|~0L/t	:]	(p*ZTlY:`Y[yT/;{/KI`jt9?t@ey9t*gPǘV8~AV?
+UpIH]>*O
+CASS
+T 4h풮ބWn[3zb}4j{7	6Ai*;i05GJ@ش$<?c_?x5i5o9qG5hU־t!Q(`7_f&0om2n|$CzIrW3}"2Ĩg˰VQ+<IwwVm}n44\Og[!j HRІ+mվQ)"J`Cm`oi`:
+ih<
+p,#JgaQ`&ulb| 
+H\[b3;ߵSI5?|1PkmV7(1Gms0-BsN'}۾&~:+-X{r[^]kɧnʘ
+1>b2[f}(Ć8#fXF}߱aXO&WMhۓC	2)Q,eFyw_E|6GTs4򼉤Buȣ^ޔ=pQ;5°'#j?0\чs$.N>[oxd	^}R07?7v[gAi5jiL)/Nݙz h8@p. l~Ħx)@hel+c~򟓉<M3
+h_k"lYy/;K8/`do| JKjR̾)dEz5Յt^'cݠsh&g?z*b~(ˑq;=KR[5ߝ.C.GG%E{#<1$22ӹgKːB7\愬e$VOltLwlh35.FVxЬw@TonAwHAv@Gp{>い^٢:EhNcA]NYC<~$А&$7@@ë~#,p7f-sF/0դS.S+S;7,ΙGn1~p?APͳ卋ƚl]I(Z0JlxR1bUvp
+˓Y,܇a~i~R9ď)=fVmKQ7/lH%||dF>ހmG([}S;jv.KvY>h $O#i q06	]NJteqD-[$'-R%eS17=![0}8~b'uJ{ĠkX#0p`r7~}rQ.׌)u6)FA:0Wt~Șs|pnCųR?SyeX]mOY}#^\ƾ!}?9}DH@Kva!ե6qVF0=]`zHJkHs0cY_χmw̘)<
+$ l,~NlHEJ	fE<ÒPY`||**v%Lx52=oڛTl&9 ELR?Qű%eX})&5!16_[^nTxjr8	m194vV,T^q6CVވQ̬o~0١hp\(Z2>];mfZHn%*ż64]Z*kweU7)/\0a4HA%90v>M(Z,eƶn[Whg|lox?%|$E4a,drdAMƇT	B	XlaãFH+cC0p9sSz~t`GtW5BMG#.޳_s\?
+}gնWefUt1>'awxa2Zz!*SPKZU۬=]qy?`JX ]@fp&Φԑ*$jnMgqQm̪3'Q'\X'	[$Mus L4{n?72-H ޣ\q?sXchEO?!ջxǶ3S0W5u U]ˎܹ+sIAԋ0vv)ŀYb6évıG^hWo	rUUW@uKm 	E6"lVpE31
+}];ڞb'&`ZasG+)NEDuY2->+Uƕ'ӌI5ⓙQ|fQXGL% Lw5ЂXهR";6@a2..fbhF}Md|sپfJ|}+K3Log|+jyhieF+k W!w-BND,vlR||\Op/x?luW+ribd.嫇 	+n116ޛ8=8ɉh5_8f413a 2M+N^&d#]V^bP)$!':|#9-5rjqĤ/ʎ4E(T'S %Ҧ4[r5 U6)\m*єHS8FfVACoEine^w#aI,w<<%;5rWl6 郢^og(XL!0u'br^6i`uRc~)(%Y|]gJlVYGa "Os(]&-	y8mfwJ8kWň?TsIseȒlvճQ'nR7u\E-&
+]uyRR
+X<Tt:
+ՖZ޶rߤ#?[(y+[oI¨Q?$0DFVu&tPkJdch#	\)BKk)TJG<\ZRh-s95"	o4䳫oqm=z&m۸5,m͘>,'VL>,۱,;/\xpvWjKy,6IzKCQvJb^~Qڃ [X8g^F8{ŚBqQ2^ 2A_	~3h='KLspA|.&$rl$S垰PӫT^J;:ǧ s2<JY	]V4-L7le0,mA)ۍ1]ƼصBo?-o@I P".%:7?Y[N4>\ZAmښ(&rAyH@C8.7u--34:f&B5imqRECTq!+`Ea5ئ-kV(05s4w_tHҗE6tSPg,FXtiV:`!e6cv3HYbf,爭tP#3;e?nѢ9PGL~)+\׷[3c;9oTr27.蠳j+PLn!H-GGjӷ$,V&o &vxE"|(EHg+,L#6+}.?Ct"qYkDLY6L<tJ&d/XTׯѰ2YnF[1?9.zY>$V 'h2sVгC	Mvc6U"p*4J!q!kQ.5-N/#픉UYc3RW$NbÇ~{L>2+>wGV,."/dɄ''z-M9(N묾AG{Iѣ^;+~j-{|}-[{=)MvI(
+ {[0:ޅYAkX<- 	<1q$6=<b^yːiuz@iԽZ9w|o6=_`ЬG7*i&RF'=)$.J{WhHQccSTrG\dP8o~Q,iUgUR(BqؓN19Т=:=Ab,]{deWWђE|]J\{264pxEz=g؍<IRebZ#x7Y	>po{Xe&SF-<=
+mW,%2
+z,/
+8CrQja1Jx0`U:k` gYT>lsZbrM,OX'{i
+q1,1U3]_Eϓib<YvѹSU=`iEZsx` (R2g7=P޷Ejhj&{v{WlN7":-VxI}gVh-<Ap2K'݃wwI{b8
+mtrȰw'O^ xiHhS1Ie;FtkiLA*iprqyQ],;8CUGnPt4#@ɕ .l$` /YI UJ5WJex4ޠsҬ 2yo6?i9`A[=>/0QtD/0Ǭ7kѸcPpGl=>Ր,݁5+7`J؊Gvܰ="QMxrĈ q}	tHaR,(9Jiˈ7-Ґ_j'rޑlz.f˺ZUtb,]Gk#F1O_LCr<b^P_{]p4Z2Cmw
+f 3'dQx<.@F\7f({FpOVv&ġ!lTrߐM)rǺc 	<8Rc7
+'$>!F#y,#
+_|] qw6+^iE@3}2WS07Gpu>jv! f,.fvfM5AH#Rܧ#F>g莫ĨU!iLpA/o9rcPp3Pdrɸ*&Gݞ>9֌&mֲ'uEFehjl*'AZ Gb[Y1\E} Qr~F݂w7!2?LvMl.e5 MKF>^46OMQCETmF ?69g @5,$N D6PSؖG}EG8p%_V0"]ZcdrD~$8	Hq ?M4"98%"M_ːsG;@FzLplZl=}>yXK7rQ1'
+i_Eב^Io^\䳏`$%i]~J @S4xQ;#g7/pY}%mq7ٽ>2WUn?؆F!M-:0m*s0C+.nk<=&tS	ˣMC .?$~_q(JMZ8#[ҼB9s5ղ	Vۤ+{33j^	)s-u簝EH`A>!Vmi1K<PNWZ.ɽ6P,Q0ќ5Lܚ|\c!K-,0<cנLOFz%܉(̀B"JF:za-c@fǼv4OL^4zyh42}p0-N/߿M魁o=ǐ>U Փ5ءWuxqꁆ)늠LKYd8%B	PBPtXflgxh7SڽeC! $dn#W:a_mPwmj5GɓPvNࣥԲ$"y`4zOr^7QvWtvP,8F[8hu_;l;v^Y:"p86	+~ZԵhuΩ0"Oҿ8ƚF7Ϟ^cgOW1r$BqNeVEQzLkD@ю:]kWX(4D?AE*vhX>fbL4Nχtw;$B5m"BŹ^m/*ȘQSLq_@-"ȗ(̲ZXFRb /PB>65V;{>/ީljwJ1roheۤO `9ZHb !̰	h%Rңa%k iT<(|p_4+$bNVvZ!ZӤ񝂫1"^A7X§^8Sġ@}8+ͤfoێRpu=;^"QT"gitD{1&MAp`6q|0Z":!EqAih_|>GF.Eb?OLMƜDh [BH0p_QxCڣ+ҁOmCDٓu`Ndr]\1.dgz
+pXLphPM׸UleZ`d2CsE>OJxw1r\Ocd y6lOsbW+	HnB,-T͝ܮFΘŅW9s+bHs"h:$webS9xO9(Œ 27b<:jX{W!Y `R~ 5g
+(_ϫ
+ iVy6Gd#Kנ:eG)N5ZvxތxM	gF5αJݲ|	 =>MaU!懚i1keC65-$Y0` & T,7]ܥ#yxηnYѠB}5:LXޮɁOI&#یֺ-7kFnet Oi[GHd)kmؾ39ޛ ⾋ز@{'nͺ*Xw$9V}L'a&?2j35j玽109"[,%Z>9iRdB.}	_|js^Y&`l1:t#`Q=II{K¬RqX٢AkU8Mۺ|qIVLĉ:ir(/k-Vu-jEc&ز:vMPUr&eLW"YNM,yȸ(D#&܊z|*Z{]Zn\(2Zx\-#_k	
+h>}1Y/7aIw9կ5M5+@`eDVQ@u+``31ah n7nFff0xGY  J>ZSK?dD*q}kKAHHp_^/xZ}ʁDv|DTHm$}]쉘70_+`dH iU-4vfm>h80S݈K@:>2ңpxiSk],'LF+l^T=2X5\]lZy	V}A{50|Mr^#K;CS=I޳AĜnlh`NY|RB&vw4 컛n]K'[6>4%@īN
+D~.bݛ+c+NfAq9kΉV HqnQd;)-1t陈?,#.YlʊEEQT!V8rުM9<?BPF{"%02KK
+\0p瘒oڝA#ٸ*Ã0䞩۩xz͗lbhC*mBee`gvοAc[^w͚J)Ze0SC'rKNCwS V6Z^bJA
+)tjœȺ#k]fJKzwNY`"n$o	Қ\Q)U3[g:Nocb+P[vQȟ| *ZP>C,df4 #~3fl.OG]u)94U-+BZ 5Pa6Ghxc1DhɠQXB򞠜s3ҊpHB'Ɓ-N'v/Sr䦚rmD=< ]Jҕ:[.mTc9bFlpzoOQW^
+kqK$BoU~K9c|0G
+Ul]si/:iY*fE?YIH3ݘ~7Ũ}xa3+cLP	ȆcF@,-c|v qlsEL0I˴7#ܙFkΑ1	7o[;LClØ  ~WO*V'E	ق\I? V3
+ w>obEC1\x9G|Wwx0qqh1"[Ư[r@
+A*IoPxI::Z+A_UżQ*FZUvWEB;$'k";zH9h/85 ^`z¿}{j_9V_߽?4AhQ%!^3߲:\ϜAv/|38ʾ1	it:l-bf.c?WŊ%D.~JcЮvōjNKu"	s"U{gq
+T'o毉CgXX+6`0{ge.oFld)]pG7	n"AF$yyɴ81m
+wMv({]kǽ$&a#W޳Rc(8LwF˒[{:o}fɤϤKpsM$d6PoWή	z߾ͭJd%Y*|kr:[*(H38Didc}؈~6D1W>HGxdKw?/-I19mETuzzƛIvF|6<Mgp>:PDtYr4ΓɜO~ޅq^*9Ʃ/ΆHᔞ?yvP|)h0~
+(|L=EK}|7}qw?S/~I627PF|
+`ڟ9.{}_*^]`qKeWYQGE'h0Xa0/UQ}&ۋ4?Ez]NY}5V	&/i54Jճ\N/ScOҿOgå{ӥ>R'O0ߓlX)*y6k`xO݁m0'Rd5`zs0TC,M60UCz1!SYxolDُ@h4.QͷGz7HtG$)zmѴIFj3 47U_OFg&{Le!W>̿4n2J,\B<.x޽r.<H[KOAYo.N|=#Q%Zpu{duBH~K< %ti^]5F4n8!| >
++g?TT%wLI;(0;Eaۓɐ4i$p#ͷ,&Oc7>hͿwߠKY _Beb"EJ k3sEI<Hp[6HYk	 5D"	ktw({-ߡ'#V饙ܢ(?:s!DpIwQ*tyiqoT&ʌq`y{rlvo4 zoiG	`QBT+RI/Q^@͍-I٨2TǦTub?@E;VJłUO&lQS%DuѨۆA<Z4xlԟi@[{đflƛvjU;Ngk&38&67@v FvNcW5P2q23:'J%"5 e7Aԇ"Ϯ<S	UH5\2{A[{):;:P'd(^}z]>dXBdZn{v4;c~sZe5h@X'sm%@bWαe <U\v)@ǽwE`ڎɱo(J53p=
+MybiCmgحvȝ72	AʒA\nbC;vNCFOFoj :8!K
+R=7ʳW
+E12b\P|hp;J|M)*1٘HisZG|FMjg Ǿ; m#\TkFG5dIe^L;){h~ٸi#)+0Ex׉tk-FT,I~jq'ЉuP~U:9[8'ǣͼ.(;֏phIr+iJd	vA
+wl۬B<X)"R(K }Nx~v :ƔDkc=ٹn-D[RtQR3/I(Gj|fFhq3bD<xG))zQ< 2/{;\0lZJXYA\X]uIXi+3g*&E~ݴ.P܃)/&Sk.BlՑxH`BBxpT&ΰ Ru-x7'moXcGA܎%vTsXv2KVԇޓ%ƃ'0gQ#%[	
+R	L"M=N52}@ɍ,t;[<ޗ`Z'fzuE%=hVR̠7BGǫīN
+#Fjg v]R͑hm|p RjN9 	X;;܂yԚ$&Gn@R:}/*c@JTlorr\[ui=A0]1 =-u?# a	,Dπ\.֍hXhsW?T5msJVlcLZ'LyD,W.O	5ewӼ/0уl4Nx& `8ѢͽAkX 
+_&Idfd:o">(Kvyܲ]r:Jѵg_yTwL9*-c>~zaӘ(I](
+ؖ9N&`PȲ{o2`բZKFbJ{; N
+cY\&| I#OG2U9ђs3(ccaanK,G<%Dmؘqv=Dj
+-jq&Z/0"͊p_Y&LУwӪk~n$܏YUaK!책4iŎ0p:*#J(|P̵>{P)>ȯrG'~9 6'C,t&#$IN/b=ymx4lݖWzyA]!$'-BbG^$tOBEM2+adM!YGκt!tnl"}-IKkII=Y}>=ۓ'GwOjܢ_8,mm>(PF,O=L,Ji&Wq=Kp&8ypy/=DAנQ#W>_A[YB?(6ySXYOs1aD8[/\t>5	SZU?H>yzQāh71V  jTzLbG2H8JS,ZW,ˊ_CQ|`*As[#<I,ud_PQ \YgEGxq+#u)h>X{}2iX$.XU=6
+#l"vYDUK1SyDhoa\eKol&[>^+)#29wnEק_ANeq㙸c+sHHBL
+@ZV:~U*Hqz=Y#@=wN<\3{i@Lך&Ӵ`GިUZpTp~	ʜ6*cHh%>wIb[ynhF(6F%EvVQ(kX.΂@ o΂|BWʨB/EFvԝ=t|gqq)&./Vn9˨ϒ9FEvQOP\|G4!Hl+I<e<[Hj
+,,,٦I!g*GvVo4yWGV\آ>18,>qvR
+Sg|v'3UZ&
+( !"B1ո {EOqX]dJunfk-럲vj͖jo4$ C"1!>'e8=,w݀OksxEͼ17A}Cbyl+s
+@XB"踩/[Z^a$;UXa"Ēek┥Gl/yrbGƚTmG|:roRtmg|[Az͞BT*[8?.Є	0$}9ǸZ|0 uA:s()g&_#z-{'"H]M^45l[% 㜩fR>Xr{_7׉PîCU]B#e 
+@[^%՟'̛չi33I~00R꿔WFYimU_Βc%!)_ӼX-ħ\v؂	kG΢ޝI՗|zQgX	Y5_8O
+ SbQMa}v#XEN뛬
+CFTya(TpЬķQ_'7-oȾє Jv& s0|rھTY<ǚF'  @;(w`T y-\zFX/ l.2-	nUt+{X~e}l)ƹy~+՟J*$FIPM0
+\ޚ25Oeq._T˝}ل'}8Kn,E_~}gD^C/(MF8SX0x%̇@pゕΘE3D~ e	ea@TL Qi$iC(u#K&B)&[Ta`O~xAu8p 4N2ֱ-o&ً*˽=_#(>uCyA\Us<kؚy7[r>s$Eg?QY?~SFaasJ4q$vǸI.ŋk^MZxٍhQ 06C;D!\Ø 'xqe.2@3G:Pxx3t]G)6Q F?IeZ)8M>tm[I,i>ѣnOOL_%N1z@.C%i4F|ٶLQ~7=eus릸G.YN!	9%y`Y|͟DΧc eBL- r
+1+SZՋ (uɪuR~ +z>?͙c	ˮDkp|ֳu܌P@fm.TXk%u|~,b=q&?s#XLhg?̧gF7O_+<Y	rnʶMR[ge2qM  j)̰?][ 3q/@7,k4U{j $s5t84uiXNI xƓE~23Ev$q榟H;Y֗S8{1I_zUSK֝^v F8Y8{h~ &y-0׫qKxz=${gz$g7yAe!L~嵇mJZvy$L莫/컺!ă$ƞ	JDM[ =hg@XW#%;PnRנX8Y#Ā3#JR칏c
+Ϝ=&îrZzDIy
+|Cmdۼa<[y>'wK:pb?H,5\@gESBVn092_7[k\E}?:Fl䒍k+_3YɌNIrdfCaWF{$P\2ϛEj#z N҈vJA88EĞss!A1=4W_oh,F tUcs/%H`Fj?@4~i@,߼=+< ^'?_~^5*Q4xW]ϯ[eLe='Uv PЛpMZp.#5l?^fvE+5 ;(M|	~Z^0i =W^Ja4q$2-zI:PsDQ2`ZunkW𿘧ߘ-`Arŏ[ﳦqޟYiN"Ye4WW`2\vDLຢ^mWSaJB@u .AvhG1B¢44>_/eeݼ#k,J1υ=f B{˞ms3rrC׳96~q?4?tƞ5|t<`x譞xlpTn#mx&xMrR`Mv!ut2K/͍=ypmW5Onmo3W÷ȃd23v|+tw8nӮ{w֤`>Uxy&#7CAГ	ViK
+)Ov3,_ʼx@UObwסLN U 
+ñ}6GfLN)F m:+H L5픁9#J$w	yxu:thomnd<d+BL62Dh"2R
+ir~n#Xʧ;lpj۪uBtiQ/lDQ]*	BV;L^|?Mt >
+UP$E(]C))4Һ4Yt`
+ڜYlL>pqR8*=]hr+7.zkO<eo`\S"nl	pm u1̄}I'hsxE9<+k"&"|*3HpUtJM4/ zsy^Jj)h5ֳB5G% 5T]҄6fOR͟/uC&U7su 'eM=0:h]reǴ^XǜMK*-'[?ۡyj.ݑKM_5iw<JB`n9u}V:Jux4jvY%p_،xdRR#><"\>鞆܁OBQ`%%sB#pJawt6`,oh82@gdw5̣acE1+@·^ y\I+coz+T/_,(Ht~[~)5 M(L`UB֕gޝ>4-ܕ\/ԻAPYIܱ瑮{?KV́FСR}{no}De]lPhcKr+X!:ԁÉ8	ئ0fqQZKx([`50{궖}{1~sy/JP3X=΅ofk\ԬxWjsqP(<DuʁH{}ۑG_`Gtt!dػYY!X}v[Ղ%:aY'l3TBp^Wdv(wYXo|;((wIpy<ň5k05*uli2MEC1)BLH:T' KGfE	'ʇKhOUyFМ{P,3}9/PT#1Dbë́auƠ$lu,;I;;Ndќ \Cc Ԩ@!~h3tࡏ}
+`ȸSw"|"ٴp"fJ>_˚!9vk{Ew-y[˅u
+=xe҂KT+^Xm6R鋃K%^?z$(800VgH84"<hS9_y|p!˕1AFQ܀	f^)}hodpk_\*M'%gB`-+k֓UJdDx("r՘!O\G:Wmt_Gab9^ OԤ{lw5%kceTs\`9M:y)'6b=:5=#m7hjc3aݮ/ ZzJ]ؒJ;u9(1GլO\+Vi!=-^(Yh!JM@(҉)'13^͉%Iمr 34ٱLSWƕ 3_5jz ]QU~JŤC5ndqg8]sd·);c3W0޴˪ QzLj1֭4F''d'̽R3uUsF| XBZn'mf%iF2$X]mht);3rR$8ONiV	r`f8^x<PȻAC愀rZTESkگ\A=BF??}><Ƿ	ѷkϒԪnD?LTϞU֍ۥBe5)15ޠս/%{N!XaTUBN5㑩J~BoƻM[1"`$:hdslJ,9 }mM5m42*PWՀC$Tͪ	KdWvc;Ї!j~W)
+oek#a` 3nxԱo1
+@΁fxE^
+v9N`!Z
+arg Θ.j2kjZB V*owlԵvC5D\``I5^I_h,sQ:eVZWUi0ghb
+vXfw&6KOn1d34OSeXIr7
+HoZB%w]`݂%u=<8ϯܰx| OC\1o;F@5C߶*+-
+"Eͮ6s]m;/8.`Q%DzQnt06?ZXkB(&z}!0c#w1?l!U
+D1#)+GE*Iꋢ3qK~\oCv-VX'`f:ûEPl[S)=x]|_HYIҿ8nrʵʜUaTe!>RqQ`VC+W*)Fx!ȧ/=K#D;re`/$,eʋYƐK/ŤݽJD\PC	WqNӀ{YXj5,!I|dc\*Y!^=I*CKyAqtej@jH_%μP,PGd9x0Nڳc~+8BPwJpHAr,H2U$\iC-B	90.;3ݽkzAb.s/!3unhx3$ 
+NlG+ Η?jzXŜNty~zʏ'J&A2FO?zp8UEaNeØ)^'X#7v?L# $C7Fztm)ՉOG,o
+P]EOʦBF/kLqJ,} \spR{whz'\;tM-`7ҚiPsq
+sz^=dmh(leӑZ<>`A?\섧F ;}{O9 $;Y ꆛHݠuEW	rD!2Ěbf¤`.4?"=o(˻ >g_@L-Iȑ1g:UI
+צ.G6M^׼zd󞉃0fOq hA$3P5ؼ}ueNLxsO7ȐfD0U+T3.,Z/3zofu`Qq]!0刭="=v~ЙAMhFw4QQ8*`ٞFhQ5ض!fMMي Mٙkq-X:Zؼͱw!i!ҰھV> к`t?*R0^-͕8"$>Pbyil/8T<ugkpj1eM2xoIMaG-v\5\zQ\țdXSNB؎lyn*hJ֖[;!,y2q!d-2mao>]
+YwfZt{BaPR-~Pmd05I2;衮Ȇ	"65Dd@c@ 1.0I~"nDΆq{dِ(`$D?%S.rcqo<[?5,7*>Z13#(#H}P$R:ɼ,\d<5y{yޘzk4KۜJq	nw9^%#;w·ocD1rQDBhjэk˕k(ZQR p0:[]Y_^,4K؉8laߡąI{57x\Hڈ<Go^56&:ҦQ,qqU3DqRF@֤ru'¥+!/5WDR7C'uR$,H_ݾ+u&|{|T;-; nU| .x@.b\.1PCfQwP ml ԟC7#䏲Sq~pgE`쑶E9_䢭骵3f AZpP/eWX :uh᫚2bS5W!)8ʎWY3mHs2T,{ۃQvھ|nF` {#ed@ahqf9`Ȳ5}U ] V>fTf%uHp,}˞g#a+uWvĲt c9QX0yl 	É_a5chqAZCwR]e5siY}ʕ*4ok /msJXK-2"V-#WMWz*AF`|Wݐ73s30Jo/*)!: dIkUxt]O63/fphUQiSHٱs9+
+-Ҵaa j9!qX)-Ug'l^ŧوFdHұQV m}6gH \-Ga+(I[#o랴)Gc-+	dw16닫l5HZM\ffm/K<N5.Rb슋ҠW#rNL{~9xԡmiiWkl =?nod(vӝ.v-d/Ex[$ؒItIݿ#Eln^|2B8b7PI!nj(l5NI(Pgm%pk šʐ?/+=t5&(,DAN7B*O)ٲ,ފaKxY50C7]\OKnP.lʆ{詹%X&h
+6'lsA7	+rӽ9J`[m#*|s_3I~iU.oW`CT$K튆
+h?Em=]L#xUtd4
+?{
+t]ې3U!5MyF$!&1빋)4!S8z̀>Fɔ2PգNA;W*0m`7cTfEf<fWp.b!x~Xh(/}F9c3L+ĸ!u0(*J1Hݚc}InBN7b>p`-b醵M\+5JT*yJ%`Y J+;FQk'u^vS+@F\0MĂnbu(;IOζuYj㳄cTA"(TCvH6!HAP< Vֱ=^VuiF/hB˅!	PȆ.uW0_7	Y2'G<8As8F)cҧapBfT	'
+aUU:ibr2;0)so}i{ 	5c70ef^V@3K`YMYl|tly-_qg(>awa#h8v{jCB~*w̽iU:P-~%GwM/ci觯7XWߞErALo?Ro$]xn8Nw]
+"<%K2Iu鏗tR&/gzݲ&'1*wߣ!m.+P^k֟^74G)W9ontYG?ayu~~{~ZPN!Wp}ҁDCBwEe-Q$BpbPGer&%Ĝ5'0
+z^&7f_W:-=%oM ]6X@wA~oH0I_ek.ߜDECZ,!%1ረ!] 8oajcHe`qXHH_+
+aZ(-4k]MscshMa0sez$.Κ/"KQzqEL[;ƞLT=EtZ=`ҳ
+4K4>Z1_PDIЫ<4ٟQ']Ј}!^<Ң	VCvm,>s5	A8sDᄯVǏ&ePߚ|rZ-8/E	]$A/oz]-41Kghޯٷ^JF͹ͽQIkgB9/-qؾ(ķ?p6Ae	
+,3hдWR\^[&%:MGAx-rF&(mLi
+ˣAةcn>CU{AߨB Ъ\16ENhW-s3c|tlQR/4;<IgMB-;j) _A氾О[AħPљ8|_0Bne-%Iq<De&DnVYomx{:ۦ4uۨna\,׭ݷ# |/MN%6q\% _2h򝷗кuuR.iIŵWA&n3KuIJƭ=)[%Rg&#<3*;td?k>5\@&MC'SA+9jZM,>M@Ϻ}6R/Qh`?Wz| $6{2:+GW$&ɯ-td'p
+ý!tzD0qg+/0B;jGǹ~D'aT
+m k,:gt"VB=7DLG4Xj_ޭ@.
+G t|s|m}'W@0
+(W"x+s7Wa"nJj8f\o4(ڈ]Sgr_,҂2iu(}!qߨW&]mmMŋ
+8g ^I/\	5eǦH!}V7\x]	p.!gA^CRz[V'ѡ׋EHKT:sJ""/M?k|Z30Ѧ@zAtOI1D2ծP՚^T屃M ,Ԙ|+&JbUZ4q;I53q-LdOF:xEbac
+Y7N%6yD&`GK[zIMtbklÚh򜪧ڴ+$ލ<ON(۔]=X^Y)K/_Bp^kWHbeH%]"X-vDa_a٬t@t겆 V2^MHW
+vBMoNzx^\􎔵q;}YY-(siM~;Ii-wP;9L@=$=B	}E[z}>_F߀zs7.iӔ\B)R;i.CGxh#ga!:N]DznxE4ہ&x_V\`؁_@mIJu-SwZΒ(泃G"d}wϢSnm|̰$L/1v\t>8?tۯBS}/mwHc	$gl\=/K;JS>`mJ _'?,eCu13wQ8ir,s-<Y`X6-djbAfV "FPE?Jb 3K ^^e
+!*vZ9VB3/hb17
+xie@uGHd(.bTúY!x vm(5а0(@uqBG1g< ;[f
+33]aﲼ%97̖ڣ4YL?pOv
+{Va [&\|4eBNƫe{゚{9ģBa҇Yoyk#`BXG`mKLIR`s#@=_R69Ի0'2`WCg)J~Da`H*Pt!<q98ɍA7a1/謵-c@Z2'ڡJ^ѪkN]:=%1vۊ252ț_\ͷ]C\F:IkszC$TS)?W# D$ s?N94˯yYd@UJ2yEϧIegh
+I2X8o+VQO$Ep9I>@2^XnP:bak.UU'ӝWuuptFmH%4k;[IC_7Bf*]GBd}bVJ)qrMYu²>!̠TW$_#.ݨrb2F:]G=Чih{k-bS8dWF?\͵`UDE,[ݑGmbu X_g4m+SBSuqa(V-6	N2
+Yb^5j	M^I,\^q_|v,49(-ۤ,c՞I~JpO0As {ΦcHռY'f,Rj~0qR!c̦r5)pZ@ʄ̒ljEV;U6B9)*	ZSBGOsMõlNĵ鏉(a @`CH:]HĀIb /T7cikdSb6N9?"IΝRO%(4Dh[)nYB*{SHRP(ÉhQ×<iQHԕEE\ȩɄq,=JPC>/r[/5FI+5KFx#H2
+)У{xr2
+%bܬcP5ݍy.W3qTI+Y'e&-Dƻ {=)q5Y Ssq`73$qfle@H@iQoi)S4ق|>/.Aڒڬao7dJ0J5CUt+3+({)-̇j Ǒ֞\I^Bk䋼mO
+auY\MkB8o@A7G`rBmt[x_2fҢ-Q})j^Y	&h&SޮW)0V1eNH<_+2xhF9be	N(aby⍸{nWQW?7Xt Z>8`}_lq1]}wER'$HR"(ly`qސP9bבGzq3!<[(ȏv`K6B_xz[ƜrrH>d3G&
+lrҍkp$ROe?A'xg+i :yƆ~<x-V4M~uݝas#]C/3xLWz_([VK`i|
+/zІWڣJ0A<NBxqhpΩ}ڴ]bF1'$hk]u @q!Gnm"{ 0u1*̈́+;e~I2,>o*K234U=^_ᾘplXi6If)D]@3Sҵts, 4̪x]يoLdq/(փEY"5<4Hanp?ւyS2=,N?Aݎ(`.ٯFӡbo̭hN:>,bSƬ_
+qIk]ʄ.瑼ޯu!6j)}RE㱯1ۿ?MhQ4v*C{S8\{ 5T_bOvddAUT`nEvr-ێhbe퓫 ?JSɶrgD?EQp'{uhʶW,q'Xт/6O,GvM6<7`>57fZ8Xy^.gyU|LDK)F ?uF"lS4d`aG;#f"\&jq0ٻhq=3S2ߣ(0cUq>8OܱLZ촅/VXttO|R"I=~CnH<wvh/jX7ݾ~osWi\^F%N-غ0h}Qk*[}'l4,p!˶NЉwvXOQeF2/,~nX9 Pp :K4u#)Ǭ=_H$_}bNI/Gnj~XlЈ'xyi,kL A0%wU}B̢(*?:RKBS#-,ӢZdA?ᯣz=<Ћ3+7WH)cW@U\RQOSF(?ݿt,&FUӠFY 0n$im0@k0$~Pu3@jwO \[9xyCmDؿ(D5G7E Uuss%U:37P$6ӕ:l g\9!^9^+S]!@8eT_LaU  yUoƮ^S 16U~X$r 3i$կl<``NM&q{r=zVw'W;8D~#/'9k}w4?$Ss;|_(Szu^)K_A4%47lܥeĻ/ܭfg$dmkW%if@k?J&@:߭[=Sxo!
+م=<( Z'%ib06D[<sZ`%dY2?z/Y[:w&"(2JE~4T֞6$+$')%MvnF$#@.!qsshb}lV"Ocטz6xESdCR
+?Ș6:g3'p^UdbuҚ M;YU:0fk[ǙW.@%}LE7yn ƶxxFs|h,{Ý\g4&B,_G#eǺQ-OuM>L@b`	R݄շOEMKSi#I>iF#~Mkij,ANJk7їvJȾL3GݺD&[
+t2MOe䒇_r
+/6X%Ru3 (XRڡEJh~/̝ז!Q\C,0BpO|'QE><^W <;;wH/vsəMQT>B.}Mq)u\EcD] sݙ  yRbzI[ug6$A$0tM
+/U-llNu՞'~/]{WQ$]VXxvI~eڃ<Y&FƱGPzt	&2ۯi`QB	t(lAj^!뀻[PjQYWX1.F{!(_ƙī̟tuQ7XW:4;GzR͡IdٱKfJҰUSVJQ@%T6k ";5w! oP\v<ܿTBlk	]Y	#́}>GʟdXBYHm/@ՆTvG"TġX!mfu
+?6"'&p&M~aE6i4;1ܺ51n"@#}坷H.W*y#;ٱf< J&6GFD%,P oG׈~@7%+DD2œ,XNu/a<(.%w	_aM-ֳZ]Lݻ.齿=y~p.lR}im(wNt%-Ӻa4EtQaV/wBa6Vk Qyiy9SlDx?+~+%dSo+usf	!-ړIxY}@b=<_\l}Wh5{KNye8R+AxCdxBS"P,&01[!7vAE gӧQ緙hSБ?ղ6	~y2U?;Q=`bŏSP&̋{5?JfF!0B@m;}e6~m'6HmZ
+NZ1A2<NV1i%~1hWq}>ȫQcUgG@[%Ň:zhߜjQ+3	cV^#	O`~d©2lȚ:Hlv'BNLMfi`
+e8ީ45yC6f~Q`0м/2BZH}h%aa<hC"]OQ8j.jbf2j4&<[N%ϡ\!Lfַf }5.gRm}o=MWc7G4N[X~~p)[qBaq?S8GBMwli(,!1wZ:5mfDEoJXgM6k!X}&z<&EXQTHNPKH{"|LQk_F*JU]/ƍ}JLf"(/~@|1âj*7  찃W4O0^_jU.x?>)_^$iԞ"쒇wt#!SJ:h[Y7JD:"Y/͙hUY~=SoWhHd,PbW/yk!BEzQtr$ío%m=aLU~g;vohGC*V$-+P;L&@)rD,!:ddqޞolyQi\K
+X㑝P;"{b%4R+"ᖕcy0в)%l*#+Ϙ:{*X<h??=,`-wo2W#wGCp,*K{Mt=z^$y~vIƴi[M 0u\/ႁ#4rQѲ%٭rA^'U\h*C*OiD84l	Ղ}o W?:/RjBR1LƊk\]܌w9sfd&L6C\ G5uۏ_ Y; ozJa),(	nޡ"X_鴼ՓQ2ږP}g,BL6bI
+81zMɽah a59#Q= %-ߌ`l8M.*lɥ 2B+0(OYCS%'\FY:l%H:b79NO-YB6*
+'t4tBoS㝶̨FvÐr/G尷`r,O$\C2fTwP\k2sR
+QՈh.JNDG %ufHQoMw512@^u?xc̡
+Ѿ]oh|FXydz>^UBj6װ3*׽4BtLf?#R4 Aßd0Uh徝%=p#5dlg>/B}35X9/^ZSꚒZpeߵ,LuA͢ʹj0^5aDOFj~,F5qSODo*?Hdȹ+-lPP/D# [ƕsݫ:,NPxFRx3a'p~GgJ}ҶiI"Z 190tY1-iMש;klw
+%Ʌ:(|GoS#ӅSB:˂m<P=:zddhXэ˧+sOb٫bx)h*hbW3z8f3_Fogʷ%RBbh!u:MVՂispC樳b, )Wo
+Wj]{Kk6Z-!~}(gY;=(Rx/>bLUl}ueh!b]O$8!OK/EAObKϊ	@SU['J$b*_*ieWGcYAE.>ˬ!6õ'2S<en;l'2淪N~]v5'ePyoĶA6)({^#Fm(̀kApdk	qQ~lReU(x}'҇+7*b3N߀J.^j(YSlե'b=S@"6) q	z ^V	yhXj-A~<L=K^p秹\	 w ˢ>&RM/lg1,i)kD2w`$$TX rϨ)^ 'n/bqV߉<=w(|$E_;߉/TġyOCP4N(
+˂/pfpB_Q}` P	xՎ9v9b͝isG5x z6;O|?4E>/"bp	6%\wYaK7ܵ'^wyZX8u]khY9h7mzܞ>6J/0<UPREF6+ҊVku>AQ,y!WWS+X21Z{uKX5\e!>r#鑇rL`y1\,|Kle->kiz?*h9.[O/!U2j%ZDMLˍ)sh3AY͵'Y2a!l'}<yi|>T+2&	e^(-]l4@
+xz)R@2[t[qʴ[G}?غ2@&16H	5GBUp.1ǞMb}`
+}.[j_\їCC]w'"FX7-aؼ^ܭ9ЗՒ\v	o	"YnWe|DxPzq'B%]OC`Yekk@s> 'h0J;f-H'̵t%UVqt9z쨹}Cxg-olLo'E/+h!+8%cEU; qAXggh9AQ$u[Hk]o'*	56C0'&qC <&x}ZwDiGrv`\P	xz;{>fK%ovc2l
+Tgu?ZWu}2|W
+hQ[{!\0P
+I#f?7bA1X]k)(T<4|AsN?Wnwn	]An!n9q-E::LDcJs4܅EU8b0pbeJ$Fys/p
+YT"}!oÇl.e1yrGrIF u/3^
+`#ߣ<eծo&X~miel(	lĦ`>לb39K+%'	}\XǣjF]MS_.vJu痀Fw702:1f?[w~JMts49_R\yGWo:p㾀z3bhDY0bV(V[X/η`4IgY.,
+acj9ܻ䬮߽dB3qaּ<r8XgQ=]O>%fzŧj7a_U
+Vٯm0Mb>!m|C,O(+8N_-apv5rXl=JLw!AҖP_<Po
+ow o^%F ciTOX?}"QzviIabtmϟ^{1ZS_v7{[%$q#er7uÈ[m΍+bF"<|O/6&Fd/hB@CNg!Dg+l\nǱu!xϗ$zjZZh<^欖4$	) ^JP6\ݺgM]aˬo+huoӴE^Hy	%ގ vdujucE34-p&R%Zst
+6O0PDjI*xRBԯwy+Y7BB5y	i//W5! ;apG>ߖA"Z9-(	A릹b'ܭY*d\Pf_FɤT37w{Akۙ g<.Q4&6)lzZ;NHaY=?JX 'CL4ǆQd1)J@Eai<!P-ȿptc<HFH\T7
+
+3^Wbb"6RtK3ܺSKDB,ywE'n?aFyݽYQ/:IJNiL6+v3hMXHƮcdwmmNzi2GSb/v 5%4`48&4BKfbϦZ_׃3w
+'2YtD[ՠ?˞@vapUq?c +7hbӾAsCNHn,Vb5stU)7b(`KqXk8U2:^{lNy1ߎ2]Ƨy$ʘqsfזQ;m׎aovl=ffiu&1%^*U?RpGcH%1<+whpy2Z&sԇ4'&$_~b,c@yF\Q)>n%bZ)7:2@a&Ra?<%4[Յ@t-ZJz;{sML2`e:[{qg=ڴLʜEN%߈|Utg`TyY ׀u[比elGVAC9HۡX
+b\y
+E[]fiUT:aZ0[j|w뼇=KP^G*6bAfw9Bvc
+;6w6vL]:`4R]c꠾Xyyz1()]f7Ayl!=p7=XNWF/OJ t;H Msw(1C+Y:oXGK7y>gyD;|XNItu] fR䫝KMT8q\IPFr?)U^$9BD漧Τ-s(xɬ>ieůOqO	͹Q5ec=P!?Mݶ.$*S^Z9,0J?K$ptI*_T+h~&r1"L!g׷k3
+Gb~ELn$A*ßX"2M{
+!|}+LGp2w2e
+E23stج]xw{}-?h ' ìB>{ڒ<jeZ#`]Ԧ >.F}kNNq<r2 PZy?KAqYr2R3CyK,rCڭ5Du'vH~tj.T[O!49pǛoyrUbu	`7VƘ;CZ԰fY,epY^Xek՞e+Hn/;\|>	?0b9c/*ArM}>-_S8`9ŉa`8|mBoqy.1DTaA<ЫPmY*Wz~NwEjj]\_Q1G`]9es_-9	!c8\O(WÎ2Ӄ0t%G`xn
+9 z ;a|g
+m@UVxՏ o(މ`s\gIy߅QVCv'g,jeOSO:6r2?7b\7:k0v}e۸{X3K:z'qK1u#eݯ+h:Dٴn)LKFٍ,d@\5YW0]z>Osi2z0N~\sn1/t&tK<+o7o G9xѰK`1vTo+7p{^ xIÏ.E#>Sx[$P[veWGbEDkti/_ǆd*Vddt5ҌR5*dkM#LLiQ̂+aƐAH?-6[lF|9$p0lt55A=9ǻ9HǾ7->xNfb2t ('AB
+ln%Wa`mki	[o|= < qD/Լ}˹5>Λ|&0Y^g61{Hl v۵}s_vR
+jk0ކvaw^PoO$$hYV.GUE+,WMEYiX]½:]^ayY`/B;UCX/N60>?(ќFn`?H(n48y#-AXB]uo'7Xl j%Uk0=9̼/1
+
+Kg[48%= ]ZB
+|:Lurܷ/3is~w]{C|wvۉi>VW09"=$֗Œ)EN6 {#H	m@2Ы0'&!=hͰ)~+Ձ|oi>!)e_q$	ǶJx Ҿ_%U(Bk?lw~6^;[PKj{(yP_Ϲ^а8A^@l(s=#D @(޲AX{! ӹ:p5ꦱKM#
+n[ N1h7'V2^P쏓^~7hE߯T_g;it@(mb#ZTco*$*BF~Zv*w5p	1m7em@x'K)6ͷ#Yjdw3u,tvgJuI{8HZ9`Mr%$ڄ'T44)rJ1;& _bX?Z3;{87iGP  \t4˰%FPoreT8"kI)^].?|@ʊz]`c2BH0dN1(]cJ*oF8zokÅ+E;3g6j-Xn1iOl
+_XeV'?*$13d­@L(wv:'ŘUl5+|4qE6S/C}J%hT\%TFH'[DæD|8B:<JMJU;#FZZ4}UM뇐;{u%1j3}sް(UHٔXK$ը:ԣ[n搩qcl*X7{@7XI߅T7gnB
+x.GªVKM^M]3@4qza煔Wa	d bkpk w}alD:s$ꍃݱdTtjN#ս{h*<c!y*z
+C$@e}*9zC
+y^*\*[A.?l-l{P'-"JǥBH7,/*u;wĂ1<Ҏ([
+]tgsBoXGg8
+]04*J5Ok:F\Hg]H\~̝Xu@k]3BqIళXP]$b$J+gKڠu@%&쭝z7N]:Iw^HVHK.5tCF<)yC@s+SgU~륿]Z'֣Z!<I|}P!ZhGWCk
+U~G 1`?QYxBCh(I0Ue9*@̛dd̻
+ӲJ܄\ic6p/@+kx,w:cacEm_Yf[vz{t]սW2 N/wvCO7/!'f~w_GZ{mvDG]uK?wnվQ BLorUr^v4)[fpGu[Ygxepf=J+>TN&\W	mLJaD!9p#9l5uQ8&"suY*$ 69{8ćl(ȔJwCԬ5eb^m= C/ҪM
+k:{4ڝnm|}0|_	n0=.bu)qa%Ͻ̵Vcp.?͗K"(#ϯ!qV7IX)\x-tkjb,őT8)mܖ9Tʊ{湽h>O50Y|#TtӬ7`6\HMWo
+==q" }OzgW[wI}ҷJy'SeEqdS 9aXeߌ=D>5swtJ7E-	,6srGq_޵$tcLi\mecmNVC&(5y<)\|2Nf2wyewߓun2E?u/Ío+hlmq-G.n"?T#lAm}쑫uxgS0瓔tdOk44÷{Ȝι/E|!-Ħfi_qh|T:RxW;\޼abs䬒Am:ֿPl=Yka$|"S0WgL"ZŹ/υL=Z5nHN `)< g{} Ss~$aM??|yy%ũIV7pҨr«3*UZ?zA>hاoٟ骼+M]j}ߧ|)|No\bSLzbă4/+r^×#A+vxf*y 'Oyo`]YR~WZ*ҫ|u?+ՎSaWYn)9-/R#6-u~6D7Ī`!*zrצÇyBu`|&Lj?yC=5yMX쪛	Te
+b
+h\
+Q`a4F{~i-fE/Ӂml^z:k$KKE+EMULѷaSopoϮrV~p:g!ZnjFEVߟ_^"?Bim{I[k
+9w+f~μ-32]pS}	<xKL:F؈y7%rw	!Y`2F<ogQe-MeVlI\cXҁy}0oVٝWX|f?XVdfq:3q:j] '܁5c3WzZz02݊~3byS4x{YNetu=sܹbY}9 ]fx?5U2-OdOsSw!	ZeUXI}<384|YDK!#L;QZչr#/\z˓Ei[<?xx"L_g-,߆jsn^A)Yu@5-drH#f"0BA|,Z_r`.׶^zpe.gx<P40Rn*szy60,xf8;[/H]oɣ5ļV0?G·8>@ rX_4( s8ھ~㴒FX mJ+_+͙]viҁQi]?}?l0V/~bQ\jQpmǣ\7'f	{Wx2LW)0ݹoCN;`t@Ygԍ>1m>MJ͵MBuWvqL1L3#lF@9I3~kHՓɯG
+:JͫHyey(96;BI Po:C$L|y1^ֳׁ	u`r5gRynF,</&l}X6K[szw4z`pTlNZ6צ(r:{?;r'(#_=.[ UWLEz~x_R
+>]nLZ7:ƒNS5"W$ec%|10
+RT1#;j<qq*ޚ2<GNr˰HS#Rx.*#HX]F+hac-(MтLE,u7쑩Tf|픏7\u[;?Lh]0Ұ{I<z|eC[Vt8K],Wknuȇº_C{QzE0|لo#(ȸB\dlkbtb4.?|JNzpwp4঩iGiCA\(%걶5{+jwF20	 }{ffjg4~13xβyQ.}AµMVw5CB&4& 1W頾Vr(4wD9F^5tM\58bdwhRx5KOɽcE
+	>TbkXyH:rUJ_:I>;!"{ءP8L1i` ]åw'By鏪ϓ
+L'd粽CD.1H[E2Z#h1|~!=ovsvӴo{4VƏ;68U]4~w~mEz"rO	Y{tSB8X(Z˴w0dCF5嬓|0LF0f[OJz\x8Lk4s'R|d7r6r^7FoHY?ܦZ}p&*iGHگζHY
+M;t-q[j_+o/ރ0.slhUJ^)v5=߿uInٛka[w˻a[č/B\ڐ9ܠ3΋yF+p޹cz1*+(~0&{JO7H<b7vV!]0`.e]7#1*7H_?(	!kB0;GbϮOb\})ce)3~m)ꏭ@;h3{C@+0'ºe/+؛ҿRPx+ݸf/H0 xǿ?GKuItwv?Sewof/xO}5ev[	e0t6S(ؖ4;r!C\wy. xākMGVↇeeÇWT]s;5wY=8[}fW;iqzt*:R<:`&8px&wkք)v07sp?O@4g~8RcK!IEffO  0Ѵ؅\۳
+|2S_$!pcEtDA_>2Eǌn&roQݻc(qfZF͋Q>:%#<Ʌ3[kDY֦үtynY"o*ޫ=/B0[0sTwu}z@C}~@=SV\.6	֨LZd&jI4~]y{֪J+ooa>ч|fmhfV<-=&]?Vg(h:e=˳Ҥ'8wH>TOèj`]+2
+EB4΀;a қY^-xFۈIaEeS??
+7): j"Q;whv[޽]=Nh&8éq]:4A'U*ޭS,S0)8aVi/NN6~Ygw9A?}XMscO# RKμa=.lTʰJ$Vx2kǁ#n$#Ui(ԟUo@¦aѭߘp
+zS5J1G>oC/d}玙D{VylU? %x>.c-HL v<3AZ^a|f~: Z *e-.82+YF
++r$ݶm`o4;HuAXÌh=ncIpJ?˸6^7\0uzw).Z>H~*@%Ifɢȟ_?/l҄9Dy3?-e+na)f?}|		d+lkJ߳X_r;S<=.p k)%84y*n|ui~td(A}^.	Eռ_+8.LsϒsWǟOR8Nr7vV{l.{'ukqUu)}$cߍiiLuxι<0]n( &^  afF:ձXNda,CgmLu&2	wSa{qG%Bq\}XVeK5_ 1,"TNX}{T-Ƚ8%!/{Z_\h2?u{!- \7oDO[T/xx^.Dp1q{xXPtMԩ	P/Vj>}J>O)"q=Nv}n_"&_^voq&iz%2ãʙV45R$ :0GiJz,֛5r9AGx~ڂ.ΐ
+	WAG9XW#Sb)T%;~vꐌĈkXW>$l`ehüpΛVu[m3 'eo
+C)55pCz&Z(F '4 邟ytOقk߻	=1lŜf_
+\='<EA`aB63`g}˷Bd-P6v߯0fj],̑6hY=#Rw5ńᰲ ˰Ee6HImqJGo"YW^2Ħ!ۿH6/_ɤݧElTc~kb<.5Y^מ|xpzwP#e:4:(+zZ A	`ϫ@KWaIm!"[NgZ8nLTlW`!?u<F~؆TwMۭԊĻ}>²NEw	#tkełKTpc5 }eq
+pV	.)Cza.bE޾V71? V	B* ^>=iv\Z?߬+\}ODc A`dB=	g禦腀yLe[+ByM/B<cMz}z=&Pʿ}4q[[tVӄaPQWA6tCZם{FK(枢jAqnv r6aD`@݋(=',Cf op$eCb B9YXR)E OYG@';w[<k([0$C5
+}+k?6| e|P`N^7lN
+v8-4ݑq7{喰c'>IԷ4]MaVCQ~.Kx	#ͥCCHD+5ζ>/P0Y_hD&T3V
+zd}_!osŻUGm?uu\pє ((?mAW'cy꓄&E݃46<0>3eNA-n&ұYQjoR*`uMQm/(=ksq0dثʨSzgجg%yW9TÓ~98`ʓ+qDn(MѦz92B݀%3ٮmDcv+X}B2
+0,B#'ߠ4N bP*ҝnV0s\h0kDeG%Ele}	o&pRW#3B 1,MH9><kEr>6«|(Ⓙ3ڟx[LkQ*43Dg49xo*gfj٩8"VzɌdֺjׁri4wv)
+y)`)kEɹН=H	7 'A6އ Qۯ=*&h +mj䉪	}mI9uiJ
+@%Lz?K['yl.79Do\ 1?wv%*,kKkC+]b?1 _6(~{!OCԼQeQD_;{p󎋓Z*=Lڀ*ŵnirmf׮<fUTÉrڹQn^̧ ZoTRo_S/-X^@!JT]9Z4~cC"6{}ťk7E2%ʟ:pU=8E_նh͹+nPMNPy.ymi5l
+"dޯj"o;$?_8VHGJ,RAGg @ql- K4BmEg2IèS!F@gGW|21g曞ȅܐ\:~]Gbc勔ϔMRV
+`nnTE8Ю¨33wNIפTtgNjyksO5]W}9`;մ?DԿ`1jJS"F{qI%Xjԗua.2x47RǢlaK["Ͽ{ZJ4kH<8RKH=]~֧=~XYx;נW7s~2I6%CcKE«78۞8?̗녶FEr"AVի,K!o*B=ׯJR|sJDIݚ!k28AEȪ!68kb	XnܧguF+XV QhFж6LܡFIBTR,#xRQ~=5mSUc]!\,srV̘@Qk"ݳآi;(9\Z]#D_"cIs$pʚ_dƷkRȻh0].+vlJ;>.Z3!ת޲`ϻw]JK^H%r(/tvr͵[Q>HY&>lcmw6tze}~\C|nBr/Q	xNW'5f=cՖ!>A@xClF#i=:Pv7Lou"7COe;q]3|FM[2Q	 .@2򹛐w2<
+%A8:^o	QxDSm{eBb&Eo
+X	tS.WY]w+9>qڅdJhaMj!5Y_$nm.EBBAB}@9*a_
+l	?3f,AmA!򲂠Y];ꑳ|Mgw9?n(,\LoQX
+"0leco6*f{6LA |iMxlsUO6lE|_wL׺꘯X[}&n!ެ^*5.pG(mUtc%]]#ZqӜoO&7HФLpV!c	^%#jeTϤ]8$w֬5EP6#Ktl5vwƋUː` vYi-Bct/'A,_.fM~46 ff-A󑂙h+m)pE\&xJZ/? @s$+Znwh҂xW}]Ԏ}zů[֪}qz1B;lU#v(n$tY!۾Tc-ۼln6s^Nܤ:T cPQ.516N.zgI)Y:)/:_: x$
+iYg^n.:P(|wYWn\;L /}*޳,ܶ>א*bGjD۹gIhhu	Җm8*n- MR  ]UhCAh)ӭ5UHH5L 7/ӧs	fx
+YEÎ]m^y%
+ݧ
+[AlO?bݥKf" &jrN6!%>V.̲`ײ5@im(7?nm~)eEp>7M6m3~I~P;'᚞(t
+gՠw+;Roɺ:⚈ %?;;+ $48M"wFz8'eOȢ=}qG*scE(ę}ލuii{owPHxt[0m ?tq1ŉt>yBȒ'!5h9C<.
+  FfUk'^$V,@8hr`g UhTxEr5Z'Bx}G//M횋YɤlUQiZdsU8>~[Vf_ʕï1s?RGF*5fԠ"`r@$n	R}}N{3((C6BR9ˍa"soH~Y5b*=lb19Pt?AWο8To_ݞ cDN>JU^$H(1Wa#%0H)HХҷ҉ahÞ⇾b΄	f$<P冰߃b^vCxi%U \
+^_=nllgYf=@!LfFGD$RĴm*bYgeTo>IgdDbl{jF\1T)Af,:,uV+BJNc;NY'/:!\HN&e"Ftݶ&oVkɨCsHң$z`nFs'VLy22' :/+	z໱2&Yqԑbjk6DV-`:of5(WI
+-l;փxƉxYf1N&DR9\O֛w\"<n969Ϳ08B}GŃ5L;QR|C#?WG@?Y^WmڠV39j,ډӰa&p>زjX6A-v=ݩ=D;';,oX1&,ܳHnoW7~?SWBT?-;O.d!![2_1|@Jʹ㩳ڡWK9GlӒL'`_'*C8;6т BB/>2r<R6 Nntl%7 Z3i#혲Yim@[^;.4	!5ֵ`XܹdFps;0O%Ȼx3R#ppbͺv>V7O!YT؋Z-^|8cR\dߣCRZߥG#\f Lc~2&Ԏ=#WˀeNumyNvsNYfVW-!,l\5Uvn({*N/X} mHvkcs6hLV˩93c5EG7
+]^/	űy@} bUZwKGk5CEK7aZl@WV84i;+dQuvH%^sƆy#^\ԅ3 Cs),
+ 6q[5ݓRzǠgDed2"r~Q<YP̼9ډw	ޤ5zӀ2RϴT员7{^Li4Z+A PITDXŦ%ShN(H63B@eE8{r-8fEj:.9Yf|XpTeݼ;Y֗r%q۰[\gQ%ɥ쑜`۾LxD<P iw"݁Ю۾	tmF2F@ p#k;욣|7D|Jo	z␰ٖAlO3w#8^Y/xnlAB6*|pCD7kC(򌹳/@Et%;%M 
\ No newline at end of file
diff --git a/sites/default/files/js/js_lp7pugh9Swjldm3AqIrxY4KoaovR5f9p57NxpKcOd7s.js b/sites/default/files/js/js_lp7pugh9Swjldm3AqIrxY4KoaovR5f9p57NxpKcOd7s.js
new file mode 100644
index 0000000..a3bdbc8
--- /dev/null
+++ b/sites/default/files/js/js_lp7pugh9Swjldm3AqIrxY4KoaovR5f9p57NxpKcOd7s.js
@@ -0,0 +1,501 @@
+(function ($, Drupal, displace) {
+
+  "use strict";
+
+  /**
+   * Attaches sticky table headers.
+   */
+  Drupal.behaviors.tableHeader = {
+    attach: function (context) {
+      $(window).one('scroll.TableHeaderInit', {context: context}, tableHeaderInitHandler);
+    }
+  };
+
+  function scrollValue(position) {
+    return document.documentElement[position] || document.body[position];
+  }
+
+  // Select and initialize sticky table headers.
+  function tableHeaderInitHandler(e) {
+    var $tables = $(e.data.context).find('table.sticky-enabled').once('tableheader');
+    var il = $tables.length;
+    for (var i = 0; i < il; i++) {
+      TableHeader.tables.push(new TableHeader($tables[i]));
+    }
+    forTables('onScroll');
+  }
+
+  // Helper method to loop through tables and execute a method.
+  function forTables(method, arg) {
+    var tables = TableHeader.tables;
+    var il = tables.length;
+    for (var i = 0; i < il; i++) {
+      tables[i][method](arg);
+    }
+  }
+
+  function tableHeaderResizeHandler(e) {
+    forTables('recalculateSticky');
+  }
+
+  function tableHeaderOnScrollHandler(e) {
+    forTables('onScroll');
+  }
+
+  function tableHeaderOffsetChangeHandler(e, offsets) {
+    forTables('stickyPosition', offsets.top);
+  }
+
+  // Bind event that need to change all tables.
+  $(window).on({
+    /**
+     * When resizing table width can change, recalculate everything.
+     */
+    'resize.TableHeader': tableHeaderResizeHandler,
+
+    /**
+     * Bind only one event to take care of calling all scroll callbacks.
+     */
+    'scroll.TableHeader': tableHeaderOnScrollHandler
+  });
+  // Bind to custom Drupal events.
+  $(document).on({
+    /**
+     * Recalculate columns width when window is resized and when show/hide
+     * weight is triggered.
+     */
+    'columnschange.TableHeader': tableHeaderResizeHandler,
+
+    /**
+     * Recalculate TableHeader.topOffset when viewport is resized
+     */
+    'drupalViewportOffsetChange.TableHeader': tableHeaderOffsetChangeHandler
+  });
+
+  /**
+   * Constructor for the tableHeader object. Provides sticky table headers.
+   *
+   * TableHeader will make the current table header stick to the top of the page
+   * if the table is very long.
+   *
+   * @param table
+   *   DOM object for the table to add a sticky header to.
+   *
+   * @constructor
+   */
+  function TableHeader(table) {
+    var $table = $(table);
+
+    this.$originalTable = $table;
+    this.$originalHeader = $table.children('thead');
+    this.$originalHeaderCells = this.$originalHeader.find('> tr > th');
+    this.displayWeight = null;
+
+    this.$originalTable.addClass('sticky-table');
+    this.tableHeight = $table[0].clientHeight;
+    this.tableOffset = this.$originalTable.offset();
+
+    // React to columns change to avoid making checks in the scroll callback.
+    this.$originalTable.on('columnschange', {tableHeader: this}, function (e, display) {
+      var tableHeader = e.data.tableHeader;
+      if (tableHeader.displayWeight === null || tableHeader.displayWeight !== display) {
+        tableHeader.recalculateSticky();
+      }
+      tableHeader.displayWeight = display;
+    });
+
+    // Create and display sticky header.
+    this.createSticky();
+  }
+
+  /**
+   * Store the state of TableHeader.
+   */
+  $.extend(TableHeader, {
+    /**
+     * This will store the state of all processed tables.
+     *
+     * @type {Array}
+     */
+    tables: []
+  });
+
+  /**
+   * Extend TableHeader prototype.
+   */
+  $.extend(TableHeader.prototype, {
+    /**
+     * Minimum height in pixels for the table to have a sticky header.
+     */
+    minHeight: 100,
+
+    /**
+     * Absolute position of the table on the page.
+     */
+    tableOffset: null,
+
+    /**
+     * Absolute position of the table on the page.
+     */
+    tableHeight: null,
+
+    /**
+     * Boolean storing the sticky header visibility state.
+     */
+    stickyVisible: false,
+
+    /**
+     * Create the duplicate header.
+     */
+    createSticky: function () {
+      // Clone the table header so it inherits original jQuery properties.
+      var $stickyHeader = this.$originalHeader.clone(true);
+      // Hide the table to avoid a flash of the header clone upon page load.
+      this.$stickyTable = $('<table class="sticky-header"/>')
+        .css({
+          visibility: 'hidden',
+          position: 'fixed',
+          top: '0px'
+        })
+        .append($stickyHeader)
+        .insertBefore(this.$originalTable);
+
+      this.$stickyHeaderCells = $stickyHeader.find('> tr > th');
+
+      // Initialize all computations.
+      this.recalculateSticky();
+    },
+
+    /**
+     * Set absolute position of sticky.
+     *
+     * @param offsetTop
+     * @param offsetLeft
+     */
+    stickyPosition: function (offsetTop, offsetLeft) {
+      var css = {};
+      if (typeof offsetTop === 'number') {
+        css.top = offsetTop + 'px';
+      }
+      if (typeof offsetLeft === 'number') {
+        css.left = (this.tableOffset.left - offsetLeft) + 'px';
+      }
+      return this.$stickyTable.css(css);
+    },
+
+    /**
+     * Returns true if sticky is currently visible.
+     */
+    checkStickyVisible: function () {
+      var scrollTop = scrollValue('scrollTop');
+      var tableTop = this.tableOffset.top - displace.offsets.top;
+      var tableBottom = tableTop + this.tableHeight;
+      var visible = false;
+
+      if (tableTop < scrollTop && scrollTop < (tableBottom - this.minHeight)) {
+        visible = true;
+      }
+
+      this.stickyVisible = visible;
+      return visible;
+    },
+
+    /**
+     * Check if sticky header should be displayed.
+     *
+     * This function is throttled to once every 250ms to avoid unnecessary calls.
+     *
+     * @param event
+     */
+    onScroll: function (e) {
+      this.checkStickyVisible();
+      // Track horizontal positioning relative to the viewport.
+      this.stickyPosition(null, scrollValue('scrollLeft'));
+      this.$stickyTable.css('visibility', this.stickyVisible ? 'visible' : 'hidden');
+    },
+
+    /**
+     * Event handler: recalculates position of the sticky table header.
+     *
+     * @param event
+     *   Event being triggered.
+     */
+    recalculateSticky: function (event) {
+      // Update table size.
+      this.tableHeight = this.$originalTable[0].clientHeight;
+
+      // Update offset top.
+      displace.offsets.top = displace.calculateOffset('top');
+      this.tableOffset = this.$originalTable.offset();
+      this.stickyPosition(displace.offsets.top, scrollValue('scrollLeft'));
+
+      // Update columns width.
+      var $that = null;
+      var $stickyCell = null;
+      var display = null;
+      // Resize header and its cell widths.
+      // Only apply width to visible table cells. This prevents the header from
+      // displaying incorrectly when the sticky header is no longer visible.
+      var il = this.$originalHeaderCells.length;
+      for (var i = 0; i < il; i++) {
+        $that = $(this.$originalHeaderCells[i]);
+        $stickyCell = this.$stickyHeaderCells.eq($that.index());
+        display = $that.css('display');
+        if (display !== 'none') {
+          $stickyCell.css({'width': $that.css('width'), 'display': display});
+        }
+        else {
+          $stickyCell.css('display', 'none');
+        }
+      }
+      this.$stickyTable.css('width', this.$originalTable.outerWidth());
+    }
+  });
+
+  // Expose constructor in the public space.
+  Drupal.TableHeader = TableHeader;
+
+}(jQuery, Drupal, window.parent.Drupal.displace));
+;
+(function ($, Drupal, window) {
+
+  "use strict";
+
+  /**
+   * Attach the tableResponsive function to Drupal.behaviors.
+   */
+  Drupal.behaviors.tableResponsive = {
+    attach: function (context, settings) {
+      var $tables = $(context).find('table.responsive-enabled').once('tableresponsive');
+      if ($tables.length) {
+        var il = $tables.length;
+        for (var i = 0; i < il; i++) {
+          TableResponsive.tables.push(new TableResponsive($tables[i]));
+        }
+      }
+    }
+  };
+
+  /**
+   * The TableResponsive object optimizes table presentation for all screen sizes.
+   *
+   * A responsive table hides columns at small screen sizes, leaving the most
+   * important columns visible to the end user. Users should not be prevented from
+   * accessing all columns, however. This class adds a toggle to a table with
+   * hidden columns that exposes the columns. Exposing the columns will likely
+   * break layouts, but it provides the user with a means to access data, which
+   * is a guiding principle of responsive design.
+   */
+  function TableResponsive(table) {
+    this.table = table;
+    this.$table = $(table);
+    this.showText = Drupal.t('Show all columns');
+    this.hideText = Drupal.t('Hide lower priority columns');
+    // Store a reference to the header elements of the table so that the DOM is
+    // traversed only once to find them.
+    this.$headers = this.$table.find('th');
+    // Add a link before the table for users to show or hide weight columns.
+    this.$link = $('<button type="button" class="link tableresponsive-toggle"></button>')
+      .attr('title', Drupal.t('Show table cells that were hidden to make the table fit within a small screen.'))
+      .on('click', $.proxy(this, 'eventhandlerToggleColumns'));
+
+    this.$table.before($('<div class="tableresponsive-toggle-columns"></div>').append(this.$link));
+
+    // Attach a resize handler to the window.
+    $(window)
+      .on('resize.tableresponsive', $.proxy(this, 'eventhandlerEvaluateColumnVisibility'))
+      .trigger('resize.tableresponsive');
+  }
+
+  /**
+   * Extend the TableResponsive function with a list of managed tables.
+   */
+  $.extend(TableResponsive, {
+    tables: []
+  });
+
+  /**
+   * Associates an action link with the table that will show hidden columns.
+   *
+   * Columns are assumed to be hidden if their header has the class priority-low
+   * or priority-medium.
+   */
+  $.extend(TableResponsive.prototype, {
+    eventhandlerEvaluateColumnVisibility: function (e) {
+      var pegged = parseInt(this.$link.data('pegged'), 10);
+      var hiddenLength = this.$headers.filter('.priority-medium:hidden, .priority-low:hidden').length;
+      // If the table has hidden columns, associate an action link with the table
+      // to show the columns.
+      if (hiddenLength > 0) {
+        this.$link.show().text(this.showText);
+      }
+      // When the toggle is pegged, its presence is maintained because the user
+      // has interacted with it. This is necessary to keep the link visible if the
+      // user adjusts screen size and changes the visibility of columns.
+      if (!pegged && hiddenLength === 0) {
+        this.$link.hide().text(this.hideText);
+      }
+    },
+    // Toggle the visibility of columns classed with either 'priority-low' or
+    // 'priority-medium'.
+    eventhandlerToggleColumns: function (e) {
+      e.preventDefault();
+      var self = this;
+      var $hiddenHeaders = this.$headers.filter('.priority-medium:hidden, .priority-low:hidden');
+      this.$revealedCells = this.$revealedCells || $();
+      // Reveal hidden columns.
+      if ($hiddenHeaders.length > 0) {
+        $hiddenHeaders.each(function (index, element) {
+          var $header = $(this);
+          var position = $header.prevAll('th').length;
+          self.$table.find('tbody tr').each(function () {
+            var $cells = $(this).find('td').eq(position);
+            $cells.show();
+            // Keep track of the revealed cells, so they can be hidden later.
+            self.$revealedCells = $().add(self.$revealedCells).add($cells);
+          });
+          $header.show();
+          // Keep track of the revealed headers, so they can be hidden later.
+          self.$revealedCells = $().add(self.$revealedCells).add($header);
+        });
+        this.$link.text(this.hideText).data('pegged', 1);
+      }
+      // Hide revealed columns.
+      else {
+        this.$revealedCells.hide();
+        // Strip the 'display:none' declaration from the style attributes of
+        // the table cells that .hide() added.
+        this.$revealedCells.each(function (index, element) {
+          var $cell = $(this);
+          var properties = $cell.attr('style').split(';');
+          var newProps = [];
+          // The hide method adds display none to the element. The element should
+          // be returned to the same state it was in before the columns were
+          // revealed, so it is necessary to remove the display none
+          // value from the style attribute.
+          var match = /^display\s*\:\s*none$/;
+          for (var i = 0; i < properties.length; i++) {
+            var prop = properties[i];
+            prop.trim();
+            // Find the display:none property and remove it.
+            var isDisplayNone = match.exec(prop);
+            if (isDisplayNone) {
+              continue;
+            }
+            newProps.push(prop);
+          }
+          // Return the rest of the style attribute values to the element.
+          $cell.attr('style', newProps.join(';'));
+        });
+        this.$link.text(this.showText).data('pegged', 0);
+        // Refresh the toggle link.
+        $(window).trigger('resize.tableresponsive');
+      }
+    }
+  });
+  // Make the TableResponsive object available in the Drupal namespace.
+  Drupal.TableResponsive = TableResponsive;
+
+})(jQuery, Drupal, window);
+;
+(function ($, Drupal) {
+
+  "use strict";
+
+  Drupal.behaviors.tableSelect = {
+    attach: function (context, settings) {
+      // Select the inner-most table in case of nested tables.
+      $(context).find('th.select-all').closest('table').once('table-select').each(Drupal.tableSelect);
+    }
+  };
+
+  Drupal.tableSelect = function () {
+    // Do not add a "Select all" checkbox if there are no rows with checkboxes in the table
+    if ($(this).find('td input[type="checkbox"]').length === 0) {
+      return;
+    }
+
+    // Keep track of the table, which checkbox is checked and alias the settings.
+    var table = this;
+    var checkboxes;
+    var lastChecked;
+    var $table = $(table);
+    var strings = {'selectAll': Drupal.t('Select all rows in this table'), 'selectNone': Drupal.t('Deselect all rows in this table')};
+    var updateSelectAll = function (state) {
+      // Update table's select-all checkbox (and sticky header's if available).
+      $table.prev('table.sticky-header').addBack().find('th.select-all input[type="checkbox"]').each(function () {
+        $(this).attr('title', state ? strings.selectNone : strings.selectAll);
+        this.checked = state;
+      });
+    };
+
+    // Find all <th> with class select-all, and insert the check all checkbox.
+    $table.find('th.select-all').prepend($('<input type="checkbox" class="form-checkbox" />').attr('title', strings.selectAll)).on('click', function (event) {
+      if ($(event.target).is('input[type="checkbox"]')) {
+        // Loop through all checkboxes and set their state to the select all checkbox' state.
+        checkboxes.each(function () {
+          this.checked = event.target.checked;
+          // Either add or remove the selected class based on the state of the check all checkbox.
+          $(this).closest('tr').toggleClass('selected', this.checked);
+        });
+        // Update the title and the state of the check all box.
+        updateSelectAll(event.target.checked);
+      }
+    });
+
+    // For each of the checkboxes within the table that are not disabled.
+    checkboxes = $table.find('td input[type="checkbox"]:enabled').on('click', function (e) {
+      // Either add or remove the selected class based on the state of the check all checkbox.
+      $(this).closest('tr').toggleClass('selected', this.checked);
+
+      // If this is a shift click, we need to highlight everything in the range.
+      // Also make sure that we are actually checking checkboxes over a range and
+      // that a checkbox has been checked or unchecked before.
+      if (e.shiftKey && lastChecked && lastChecked !== e.target) {
+        // We use the checkbox's parent TR to do our range searching.
+        Drupal.tableSelectRange($(e.target).closest('tr')[0], $(lastChecked).closest('tr')[0], e.target.checked);
+      }
+
+      // If all checkboxes are checked, make sure the select-all one is checked too, otherwise keep unchecked.
+      updateSelectAll((checkboxes.length === checkboxes.filter(':checked').length));
+
+      // Keep track of the last checked checkbox.
+      lastChecked = e.target;
+    });
+
+    // If all checkboxes are checked on page load, make sure the select-all one
+    // is checked too, otherwise keep unchecked.
+    updateSelectAll((checkboxes.length === checkboxes.filter(':checked').length));
+  };
+
+  Drupal.tableSelectRange = function (from, to, state) {
+    // We determine the looping mode based on the order of from and to.
+    var mode = from.rowIndex > to.rowIndex ? 'previousSibling' : 'nextSibling';
+
+    // Traverse through the sibling nodes.
+    for (var i = from[mode]; i; i = i[mode]) {
+      var $i;
+      // Make sure that we're only dealing with elements.
+      if (i.nodeType !== 1) {
+        continue;
+      }
+      $i = $(i);
+      // Either add or remove the selected class based on the state of the target checkbox.
+      $i.toggleClass('selected', state);
+      $i.find('input[type="checkbox"]').prop('checked', state);
+
+      if (to.nodeType) {
+        // If we are at the end of the range, stop.
+        if (i === to) {
+          break;
+        }
+      }
+      // A faster alternative to doing $(i).filter(to).length.
+      else if ($.filter(to, [i]).r.length) {
+        break;
+      }
+    }
+  };
+
+})(jQuery, Drupal);
+;
diff --git a/sites/default/files/js/js_lp7pugh9Swjldm3AqIrxY4KoaovR5f9p57NxpKcOd7s.js.gz b/sites/default/files/js/js_lp7pugh9Swjldm3AqIrxY4KoaovR5f9p57NxpKcOd7s.js.gz
new file mode 100644
index 0000000..3cbe41f
--- /dev/null
+++ b/sites/default/files/js/js_lp7pugh9Swjldm3AqIrxY4KoaovR5f9p57NxpKcOd7s.js.gz
@@ -0,0 +1,21 @@
+     [YsF~(3(7Az#)ʫkc=pht5QՃyԉ-3P(deeV!u)]d!4.b]Tzt$qJv*Kp|geE)[OWײi3sL7[2PиoiI`ȉRx
+]wcwjq>zO3]4iFWUv}W.Y_͓KaG}J6Dz{ZWLwUxrȮojEu/o+n;o~J-xO<ײE'%7W_rV%Ҳ7 Tf3+lLdg_%\HsN *Yw%F4\\0~Wcm1	ni'ik3gv`Y[ٕz-:-*w+ߗH-?ʢH~ys։v nYlhLhdYUWy'I(h$}6&Im6^y}Y\M	l?IЬӻH*w_\"*8<	lޗG18Zw(\@8oԕ0<3DoBTd嬲GCNhQCi A/iߪB>q*/>nQ3fh.؊ٷޚ`7-w
+]ۺ52}Di:jY:QՖTkiI=Ju_v8lzN3k?d9rsc3f|Y~6B8m9!7EJWʐЫ_ dF? j&*Kڢ!٢oQ&GCsį^2ALO $?1.o-+~g`v-NG/E\<
+gMJ|N4X1#!YQj"Ċ,۔:kYU[l_GaJ}Uͳ_WyqQ4dRn/R`|c88S+U,d^PTaDlTVkAo 6!J"cDlvx 1p%=(уOiaO.;H\4cP-W󣾀Q#&D(x8o(n$<fLkξ5ǏCH\$T*1J"70'ǥvL߮хl[.ۨ@q{I˦ɟQKq{7gsQt:/"s& mrBN}œ8mU޸__\UN U<]ra^I[IҺP݄J9U+U-!c*	e^r<1x$w*הCsU>b5~+PR6kR◿Nn锳YNF s&3B, &E\l VG;!):Lʜ&ϙpd&w|"9u1++ &-En-8:	0_>&>+#U݂_I08]0:Nũ|/1<zJamm$P[5|嘭QcpyF&/7݄mZy􍭝}!iJIoW^2<_=Ln#AhAs%ѓXY7aP=p=׃@6zPHQ+q7##\?0WâjÇ:cpBσ|edf=\<gB{m%	iU]kTSXKWkKb5B5NX֖ ،ض>u-pqp;TG&e5!ɠDndvi^n@ݢ/]wl$4HdAЖX6Ĥ 19usO^s
+	~#D3oRr=LT՟
+ϓ$A^(3D:#ݚBPlq57ƥ݈4LÖTp\vp>n7)FhuQk*BbT%!6k$@*40GOWٸf0"ɮ\6zz)4:UOɇYc$kM-TbD}O|'t0\"-@L3%ʀczS$ʎgD0MHm2͗NͲLԅ4r5&?DŴl4ܒ9у|Ojv
+*7MN	(G"1(nn<J'w4M3}
+PYod~td~wb:6FuF^&Q%xn:lvw=[RIujѶ5"d6۝>s"qǅfxjL),D%
+Lbδ÷rHq)a	Lᳵll`h#3! d$*ұo0ͭdjw%96's#coYXY=1U#D`jw|WKNl^3E	l0)Wky@R`jQ[Ǆ! pIkB @k*$j~MZ"haj,l-BZ͚+ZKkrl]FݾRnþ/r	cCeKڟTvc
+[OӠ\@m=kaD{N`Ab(ǱmAѰA;cc?~GTqTZb X@1Һ6̲ш!Q< g	i+2;@&6>ހbXSZ=XLHe A I{M"f<|	Wh> <͋r^x>?`Djp1DJ6x`	ٮ탗mEcA7`f6`0h~˽PwUen7%` 0AS>J=J kwuX(m	AEuO(E(ýQUָ"%́~nUQVaM{6
+5@hѲ^h/I"4JJA-ĺ"QA׷j"Glsra@Zu`E?l$|KCJq[Yr?xf,/Q}Dx&H6a_ؘyc GwV8>`}Iht
+H-i+3.Jϼ	e13XJry\P⫿4hsC邪:ua`3xeǒ^VCQ%H,E1GnK1Ke$?eF|dWrRiÈhR>с8ug[t.`"/+
+oWGy
+6Ě :tSA	21γDE86VҒHPPAjL>AC YK8Bb>M̊sYpo/:*S`
+e2z?ΰ@9nLmtwFO)ob@Gηlú߀cbV{`CtLaU{66
+_g(}%| P~S㆒("Eªa;b[%D(GuhnվEgx<E07EO#UUaY;h}wvK	rۡD+/Z328*Qܝp=uL0UŧWYs^9Ў+>lv:f>5QpesK{|`WRhNYKr|1 *iJ-3i1%^#zǆ7Uug+V)@5F2XC;z+8v}w*~ʃý],YM34|^)S[f++⧳:ny*kzy\+%:<Gg~V# dԜYca=F{6z½D@sv<i7T/E@й	#Ue_BT
+ԙN:Ǽ }LF
+Xd^b9BFkkLWLN}MH)Yޕ/Psɯja^k#wUL(cG[q 4yNb1' 홿zN΁l?'+"^BSm̩-Tp]4:PA:֞E~It՞#JŁvåp5Xªy >}Hݱn©޾`f[҆85K9I _KNh%_@Jhֱ4z9tAi6;ܲ7}'9|I)=̡NRNЪ If_ˊw6G7z'j͞M7>/kqo
+@4n;:hܒ
+}.
+p?^U!p]O؛R'36q=b#kG$;Z7f̛"xKQLw8t2o/éro"-a#d1z!4iPIޮti8`\Υ\|plP4zsP6"<XP,yN!54@d0=n$[eޯW_z-hzq}J#aE2ao	klKZZ:6ZCuc{]ݘMt9A_)xݥPtI4FƝi:`0 x2ut6~̈́Ex_}?=ǩC	K?,hAcvU<:w&Ƕ68jKtSxݧvGE]^B~B815%P!D  
\ No newline at end of file
diff --git a/sites/default/files/js/js_tUFPozzAXDcfvGucObZMuFl50VML2xlXlbRNs445R7k.js b/sites/default/files/js/js_tUFPozzAXDcfvGucObZMuFl50VML2xlXlbRNs445R7k.js
new file mode 100644
index 0000000..57baf8b
--- /dev/null
+++ b/sites/default/files/js/js_tUFPozzAXDcfvGucObZMuFl50VML2xlXlbRNs445R7k.js
@@ -0,0 +1,6706 @@
+/*! jQuery v2.1.4 | (c) 2005, 2015 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=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,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=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.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},n.extend=n.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||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},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=s(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(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;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=s(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&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=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)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(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||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(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 H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(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 pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(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 p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),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))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),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===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(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?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.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 ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.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},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.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=ga.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=ga.selectors={cacheLength:50,createPseudo:ia,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(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===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]||ga.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]&&ga.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(ca,da).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("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.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.replace(Q," ")+" ").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()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(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),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).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:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(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]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.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?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(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 ta(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 ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(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 wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(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?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(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 wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(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]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.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(ca,da),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(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(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&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.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?n.extend(a,d):d}},e={};return d.pipe=d.then,n.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&&n.isFunction(a.promise)?e:0,g=1===f?a:n.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]&&n.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;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(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};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){
+return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.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.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.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 L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.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=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!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(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},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 offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.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=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.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(g in a)this.on(g,b,c,a[g],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=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.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,n(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=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=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=ja(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=ja(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?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(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,n.cleanData(oa(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,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.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}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.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",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.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 za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(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+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.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}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(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":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.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))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,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||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=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):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.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,n.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 Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.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 Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),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:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.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(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.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)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(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=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.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)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.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})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.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=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)),
+void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.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 n.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=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.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||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.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){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.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(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(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(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.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&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.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){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.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 cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.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 sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(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}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,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":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e: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 c&&c.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||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(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]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=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,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;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)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.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,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.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?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
+
+//     Underscore.js 1.8.3
+//     http://underscorejs.org
+//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+//     Underscore may be freely distributed under the MIT license.
+(function(){function n(n){function t(t,r,e,u,i,o){for(;i>=0&&o>i;i+=n){var a=u?u[i]:i;e=r(e,t[a],a,t)}return e}return function(r,e,u,i){e=b(e,i,4);var o=!k(r)&&m.keys(r),a=(o||r).length,c=n>0?0:a-1;return arguments.length<3&&(u=r[o?o[c]:c],c+=n),t(r,e,u,o,c,a)}}function t(n){return function(t,r,e){r=x(r,e);for(var u=O(t),i=n>0?0:u-1;i>=0&&u>i;i+=n)if(r(t[i],i,t))return i;return-1}}function r(n,t,r){return function(e,u,i){var o=0,a=O(e);if("number"==typeof i)n>0?o=i>=0?i:Math.max(i+a,o):a=i>=0?Math.min(i+1,a):i+a+1;else if(r&&i&&a)return i=r(e,u),e[i]===u?i:-1;if(u!==u)return i=t(l.call(e,o,a),m.isNaN),i>=0?i+o:-1;for(i=n>0?o:a-1;i>=0&&a>i;i+=n)if(e[i]===u)return i;return-1}}function e(n,t){var r=I.length,e=n.constructor,u=m.isFunction(e)&&e.prototype||a,i="constructor";for(m.has(n,i)&&!m.contains(t,i)&&t.push(i);r--;)i=I[r],i in n&&n[i]!==u[i]&&!m.contains(t,i)&&t.push(i)}var u=this,i=u._,o=Array.prototype,a=Object.prototype,c=Function.prototype,f=o.push,l=o.slice,s=a.toString,p=a.hasOwnProperty,h=Array.isArray,v=Object.keys,g=c.bind,y=Object.create,d=function(){},m=function(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=m),exports._=m):u._=m,m.VERSION="1.8.3";var b=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}},x=function(n,t,r){return null==n?m.identity:m.isFunction(n)?b(n,t,r):m.isObject(n)?m.matcher(n):m.property(n)};m.iteratee=function(n,t){return x(n,t,1/0)};var _=function(n,t){return function(r){var e=arguments.length;if(2>e||null==r)return r;for(var u=1;e>u;u++)for(var i=arguments[u],o=n(i),a=o.length,c=0;a>c;c++){var f=o[c];t&&r[f]!==void 0||(r[f]=i[f])}return r}},j=function(n){if(!m.isObject(n))return{};if(y)return y(n);d.prototype=n;var t=new d;return d.prototype=null,t},w=function(n){return function(t){return null==t?void 0:t[n]}},A=Math.pow(2,53)-1,O=w("length"),k=function(n){var t=O(n);return"number"==typeof t&&t>=0&&A>=t};m.each=m.forEach=function(n,t,r){t=b(t,r);var e,u;if(k(n))for(e=0,u=n.length;u>e;e++)t(n[e],e,n);else{var i=m.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},m.map=m.collect=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=Array(u),o=0;u>o;o++){var a=e?e[o]:o;i[o]=t(n[a],a,n)}return i},m.reduce=m.foldl=m.inject=n(1),m.reduceRight=m.foldr=n(-1),m.find=m.detect=function(n,t,r){var e;return e=k(n)?m.findIndex(n,t,r):m.findKey(n,t,r),e!==void 0&&e!==-1?n[e]:void 0},m.filter=m.select=function(n,t,r){var e=[];return t=x(t,r),m.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e},m.reject=function(n,t,r){return m.filter(n,m.negate(x(t)),r)},m.every=m.all=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(!t(n[o],o,n))return!1}return!0},m.some=m.any=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(t(n[o],o,n))return!0}return!1},m.contains=m.includes=m.include=function(n,t,r,e){return k(n)||(n=m.values(n)),("number"!=typeof r||e)&&(r=0),m.indexOf(n,t,r)>=0},m.invoke=function(n,t){var r=l.call(arguments,2),e=m.isFunction(t);return m.map(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})},m.pluck=function(n,t){return m.map(n,m.property(t))},m.where=function(n,t){return m.filter(n,m.matcher(t))},m.findWhere=function(n,t){return m.find(n,m.matcher(t))},m.max=function(n,t,r){var e,u,i=-1/0,o=-1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],e>i&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(u>o||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},m.min=function(n,t,r){var e,u,i=1/0,o=1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],i>e&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(o>u||1/0===u&&1/0===i)&&(i=n,o=u)});return i},m.shuffle=function(n){for(var t,r=k(n)?n:m.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=m.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},m.sample=function(n,t,r){return null==t||r?(k(n)||(n=m.values(n)),n[m.random(n.length-1)]):m.shuffle(n).slice(0,Math.max(0,t))},m.sortBy=function(n,t,r){return t=x(t,r),m.pluck(m.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={};return r=x(r,e),m.each(t,function(e,i){var o=r(e,i,t);n(u,e,o)}),u}};m.groupBy=F(function(n,t,r){m.has(n,r)?n[r].push(t):n[r]=[t]}),m.indexBy=F(function(n,t,r){n[r]=t}),m.countBy=F(function(n,t,r){m.has(n,r)?n[r]++:n[r]=1}),m.toArray=function(n){return n?m.isArray(n)?l.call(n):k(n)?m.map(n,m.identity):m.values(n):[]},m.size=function(n){return null==n?0:k(n)?n.length:m.keys(n).length},m.partition=function(n,t,r){t=x(t,r);var e=[],u=[];return m.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},m.first=m.head=m.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:m.initial(n,n.length-t)},m.initial=function(n,t,r){return l.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},m.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:m.rest(n,Math.max(0,n.length-t))},m.rest=m.tail=m.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},m.compact=function(n){return m.filter(n,m.identity)};var S=function(n,t,r,e){for(var u=[],i=0,o=e||0,a=O(n);a>o;o++){var c=n[o];if(k(c)&&(m.isArray(c)||m.isArguments(c))){t||(c=S(c,t,r));var f=0,l=c.length;for(u.length+=l;l>f;)u[i++]=c[f++]}else r||(u[i++]=c)}return u};m.flatten=function(n,t){return S(n,t,!1)},m.without=function(n){return m.difference(n,l.call(arguments,1))},m.uniq=m.unique=function(n,t,r,e){m.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=x(r,e));for(var u=[],i=[],o=0,a=O(n);a>o;o++){var c=n[o],f=r?r(c,o,n):c;t?(o&&i===f||u.push(c),i=f):r?m.contains(i,f)||(i.push(f),u.push(c)):m.contains(u,c)||u.push(c)}return u},m.union=function(){return m.uniq(S(arguments,!0,!0))},m.intersection=function(n){for(var t=[],r=arguments.length,e=0,u=O(n);u>e;e++){var i=n[e];if(!m.contains(t,i)){for(var o=1;r>o&&m.contains(arguments[o],i);o++);o===r&&t.push(i)}}return t},m.difference=function(n){var t=S(arguments,!0,!0,1);return m.filter(n,function(n){return!m.contains(t,n)})},m.zip=function(){return m.unzip(arguments)},m.unzip=function(n){for(var t=n&&m.max(n,O).length||0,r=Array(t),e=0;t>e;e++)r[e]=m.pluck(n,e);return r},m.object=function(n,t){for(var r={},e=0,u=O(n);u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},m.findIndex=t(1),m.findLastIndex=t(-1),m.sortedIndex=function(n,t,r,e){r=x(r,e,1);for(var u=r(t),i=0,o=O(n);o>i;){var a=Math.floor((i+o)/2);r(n[a])<u?i=a+1:o=a}return i},m.indexOf=r(1,m.findIndex,m.sortedIndex),m.lastIndexOf=r(-1,m.findLastIndex),m.range=function(n,t,r){null==t&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var E=function(n,t,r,e,u){if(!(e instanceof t))return n.apply(r,u);var i=j(n.prototype),o=n.apply(i,u);return m.isObject(o)?o:i};m.bind=function(n,t){if(g&&n.bind===g)return g.apply(n,l.call(arguments,1));if(!m.isFunction(n))throw new TypeError("Bind must be called on a function");var r=l.call(arguments,2),e=function(){return E(n,e,t,this,r.concat(l.call(arguments)))};return e},m.partial=function(n){var t=l.call(arguments,1),r=function(){for(var e=0,u=t.length,i=Array(u),o=0;u>o;o++)i[o]=t[o]===m?arguments[e++]:t[o];for(;e<arguments.length;)i.push(arguments[e++]);return E(n,r,this,this,i)};return r},m.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=m.bind(n[r],n);return n},m.memoize=function(n,t){var r=function(e){var u=r.cache,i=""+(t?t.apply(this,arguments):e);return m.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},m.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},m.defer=m.partial(m.delay,m,1),m.throttle=function(n,t,r){var e,u,i,o=null,a=0;r||(r={});var c=function(){a=r.leading===!1?0:m.now(),o=null,i=n.apply(e,u),o||(e=u=null)};return function(){var f=m.now();a||r.leading!==!1||(a=f);var l=t-(f-a);return e=this,u=arguments,0>=l||l>t?(o&&(clearTimeout(o),o=null),a=f,i=n.apply(e,u),o||(e=u=null)):o||r.trailing===!1||(o=setTimeout(c,l)),i}},m.debounce=function(n,t,r){var e,u,i,o,a,c=function(){var f=m.now()-o;t>f&&f>=0?e=setTimeout(c,t-f):(e=null,r||(a=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,o=m.now();var f=r&&!e;return e||(e=setTimeout(c,t)),f&&(a=n.apply(i,u),i=u=null),a}},m.wrap=function(n,t){return m.partial(t,n)},m.negate=function(n){return function(){return!n.apply(this,arguments)}},m.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},m.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},m.before=function(n,t){var r;return function(){return--n>0&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}},m.once=m.partial(m.before,2);var M=!{toString:null}.propertyIsEnumerable("toString"),I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];m.keys=function(n){if(!m.isObject(n))return[];if(v)return v(n);var t=[];for(var r in n)m.has(n,r)&&t.push(r);return M&&e(n,t),t},m.allKeys=function(n){if(!m.isObject(n))return[];var t=[];for(var r in n)t.push(r);return M&&e(n,t),t},m.values=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},m.mapObject=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=u.length,o={},a=0;i>a;a++)e=u[a],o[e]=t(n[e],e,n);return o},m.pairs=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},m.invert=function(n){for(var t={},r=m.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},m.functions=m.methods=function(n){var t=[];for(var r in n)m.isFunction(n[r])&&t.push(r);return t.sort()},m.extend=_(m.allKeys),m.extendOwn=m.assign=_(m.keys),m.findKey=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=0,o=u.length;o>i;i++)if(e=u[i],t(n[e],e,n))return e},m.pick=function(n,t,r){var e,u,i={},o=n;if(null==o)return i;m.isFunction(t)?(u=m.allKeys(o),e=b(t,r)):(u=S(arguments,!1,!1,1),e=function(n,t,r){return t in r},o=Object(o));for(var a=0,c=u.length;c>a;a++){var f=u[a],l=o[f];e(l,f,o)&&(i[f]=l)}return i},m.omit=function(n,t,r){if(m.isFunction(t))t=m.negate(t);else{var e=m.map(S(arguments,!1,!1,1),String);t=function(n,t){return!m.contains(e,t)}}return m.pick(n,t,r)},m.defaults=_(m.allKeys,!0),m.create=function(n,t){var r=j(n);return t&&m.extendOwn(r,t),r},m.clone=function(n){return m.isObject(n)?m.isArray(n)?n.slice():m.extend({},n):n},m.tap=function(n,t){return t(n),n},m.isMatch=function(n,t){var r=m.keys(t),e=r.length;if(null==n)return!e;for(var u=Object(n),i=0;e>i;i++){var o=r[i];if(t[o]!==u[o]||!(o in u))return!1}return!0};var N=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof m&&(n=n._wrapped),t instanceof m&&(t=t._wrapped);var u=s.call(n);if(u!==s.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof t)return!1;var o=n.constructor,a=t.constructor;if(o!==a&&!(m.isFunction(o)&&o instanceof o&&m.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t)return!1}r=r||[],e=e||[];for(var c=r.length;c--;)if(r[c]===n)return e[c]===t;if(r.push(n),e.push(t),i){if(c=n.length,c!==t.length)return!1;for(;c--;)if(!N(n[c],t[c],r,e))return!1}else{var f,l=m.keys(n);if(c=l.length,m.keys(t).length!==c)return!1;for(;c--;)if(f=l[c],!m.has(t,f)||!N(n[f],t[f],r,e))return!1}return r.pop(),e.pop(),!0};m.isEqual=function(n,t){return N(n,t)},m.isEmpty=function(n){return null==n?!0:k(n)&&(m.isArray(n)||m.isString(n)||m.isArguments(n))?0===n.length:0===m.keys(n).length},m.isElement=function(n){return!(!n||1!==n.nodeType)},m.isArray=h||function(n){return"[object Array]"===s.call(n)},m.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},m.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(n){m["is"+n]=function(t){return s.call(t)==="[object "+n+"]"}}),m.isArguments(arguments)||(m.isArguments=function(n){return m.has(n,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(m.isFunction=function(n){return"function"==typeof n||!1}),m.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},m.isNaN=function(n){return m.isNumber(n)&&n!==+n},m.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===s.call(n)},m.isNull=function(n){return null===n},m.isUndefined=function(n){return n===void 0},m.has=function(n,t){return null!=n&&p.call(n,t)},m.noConflict=function(){return u._=i,this},m.identity=function(n){return n},m.constant=function(n){return function(){return n}},m.noop=function(){},m.property=w,m.propertyOf=function(n){return null==n?function(){}:function(t){return n[t]}},m.matcher=m.matches=function(n){return n=m.extendOwn({},n),function(t){return m.isMatch(t,n)}},m.times=function(n,t,r){var e=Array(Math.max(0,n));t=b(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},m.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},m.now=Date.now||function(){return(new Date).getTime()};var B={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},T=m.invert(B),R=function(n){var t=function(t){return n[t]},r="(?:"+m.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};m.escape=R(B),m.unescape=R(T),m.result=function(n,t,r){var e=null==n?void 0:n[t];return e===void 0&&(e=r),m.isFunction(e)?e.call(n):e};var q=0;m.uniqueId=function(n){var t=++q+"";return n?n+t:t},m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var K=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\u2028|\u2029/g,L=function(n){return"\\"+z[n]};m.template=function(n,t,r){!t&&r&&(t=r),t=m.defaults({},t,m.templateSettings);var e=RegExp([(t.escape||K).source,(t.interpolate||K).source,(t.evaluate||K).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,o,a){return i+=n.slice(u,a).replace(D,L),u=a+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":o&&(i+="';\n"+o+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var o=new Function(t.variable||"obj","_",i)}catch(a){throw a.source=i,a}var c=function(n){return o.call(this,n,m)},f=t.variable||"obj";return c.source="function("+f+"){\n"+i+"}",c},m.chain=function(n){var t=m(n);return t._chain=!0,t};var P=function(n,t){return n._chain?m(t).chain():t};m.mixin=function(n){m.each(m.functions(n),function(t){var r=m[t]=n[t];m.prototype[t]=function(){var n=[this._wrapped];return f.apply(n,arguments),P(this,r.apply(m,n))}})},m.mixin(m),m.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=o[n];m.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],P(this,r)}}),m.each(["concat","join","slice"],function(n){var t=o[n];m.prototype[n]=function(){return P(this,t.apply(this._wrapped,arguments))}}),m.prototype.value=function(){return this._wrapped},m.prototype.valueOf=m.prototype.toJSON=m.prototype.value,m.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return m})}).call(this);
+
+(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h<u;h++){t=o[h];if(a=this._events[t]){this._events[t]=s=[];if(e||r){for(l=0,f=a.length;l<f;l++){n=a[l];if(e&&e!==n.callback&&e!==n.callback._callback||r&&r!==n.context){s.push(n)}}}if(!s.length)delete this._events[t]}}return this},trigger:function(t){if(!this._events)return this;var e=o.call(arguments,1);if(!c(this,"trigger",t,e))return this;var i=this._events[t];var r=this._events.all;if(i)f(i,e);if(r)f(r,arguments);return this},stopListening:function(t,e,r){var s=this._listeningTo;if(!s)return this;var n=!e&&!r;if(!r&&typeof e==="object")r=this;if(t)(s={})[t._listenId]=t;for(var a in s){t=s[a];t.off(e,r,this);if(n||i.isEmpty(t._events))delete this._listeningTo[a]}return this}};var l=/\s+/;var c=function(t,e,i,r){if(!i)return true;if(typeof i==="object"){for(var s in i){t[e].apply(t,[s,i[s]].concat(r))}return false}if(l.test(i)){var n=i.split(l);for(var a=0,o=n.length;a<o;a++){t[e].apply(t,[n[a]].concat(r))}return false}return true};var f=function(t,e){var i,r=-1,s=t.length,n=e[0],a=e[1],o=e[2];switch(e.length){case 0:while(++r<s)(i=t[r]).callback.call(i.ctx);return;case 1:while(++r<s)(i=t[r]).callback.call(i.ctx,n);return;case 2:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a);return;case 3:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a,o);return;default:while(++r<s)(i=t[r]).callback.apply(i.ctx,e);return}};var d={listenTo:"on",listenToOnce:"once"};i.each(d,function(t,e){u[e]=function(e,r,s){var n=this._listeningTo||(this._listeningTo={});var a=e._listenId||(e._listenId=i.uniqueId("l"));n[a]=e;if(!s&&typeof r==="object")s=this;e[t](r,s,this);return this}});u.bind=u.on;u.unbind=u.off;i.extend(e,u);var p=e.Model=function(t,e){var r=t||{};e||(e={});this.cid=i.uniqueId("c");this.attributes={};if(e.collection)this.collection=e.collection;if(e.parse)r=this.parse(r,e)||{};r=i.defaults({},r,i.result(this,"defaults"));this.set(r,e);this.changed={};this.initialize.apply(this,arguments)};i.extend(p.prototype,u,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(t){return i.clone(this.attributes)},sync:function(){return e.sync.apply(this,arguments)},get:function(t){return this.attributes[t]},escape:function(t){return i.escape(this.get(t))},has:function(t){return this.get(t)!=null},set:function(t,e,r){var s,n,a,o,h,u,l,c;if(t==null)return this;if(typeof t==="object"){n=t;r=e}else{(n={})[t]=e}r||(r={});if(!this._validate(n,r))return false;a=r.unset;h=r.silent;o=[];u=this._changing;this._changing=true;if(!u){this._previousAttributes=i.clone(this.attributes);this.changed={}}c=this.attributes,l=this._previousAttributes;if(this.idAttribute in n)this.id=n[this.idAttribute];for(s in n){e=n[s];if(!i.isEqual(c[s],e))o.push(s);if(!i.isEqual(l[s],e)){this.changed[s]=e}else{delete this.changed[s]}a?delete c[s]:c[s]=e}if(!h){if(o.length)this._pending=r;for(var f=0,d=o.length;f<d;f++){this.trigger("change:"+o[f],this,c[o[f]],r)}}if(u)return this;if(!h){while(this._pending){r=this._pending;this._pending=false;this.trigger("change",this,r)}}this._pending=false;this._changing=false;return this},unset:function(t,e){return this.set(t,void 0,i.extend({},e,{unset:true}))},clear:function(t){var e={};for(var r in this.attributes)e[r]=void 0;return this.set(e,i.extend({},t,{unset:true}))},hasChanged:function(t){if(t==null)return!i.isEmpty(this.changed);return i.has(this.changed,t)},changedAttributes:function(t){if(!t)return this.hasChanged()?i.clone(this.changed):false;var e,r=false;var s=this._changing?this._previousAttributes:this.attributes;for(var n in t){if(i.isEqual(s[n],e=t[n]))continue;(r||(r={}))[n]=e}return r},previous:function(t){if(t==null||!this._previousAttributes)return null;return this._previousAttributes[t]},previousAttributes:function(){return i.clone(this._previousAttributes)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=this;var r=t.success;t.success=function(i){if(!e.set(e.parse(i,t),t))return false;if(r)r(e,i,t);e.trigger("sync",e,i,t)};q(this,t);return this.sync("read",this,t)},save:function(t,e,r){var s,n,a,o=this.attributes;if(t==null||typeof t==="object"){s=t;r=e}else{(s={})[t]=e}r=i.extend({validate:true},r);if(s&&!r.wait){if(!this.set(s,r))return false}else{if(!this._validate(s,r))return false}if(s&&r.wait){this.attributes=i.extend({},o,s)}if(r.parse===void 0)r.parse=true;var h=this;var u=r.success;r.success=function(t){h.attributes=o;var e=h.parse(t,r);if(r.wait)e=i.extend(s||{},e);if(i.isObject(e)&&!h.set(e,r)){return false}if(u)u(h,t,r);h.trigger("sync",h,t,r)};q(this,r);n=this.isNew()?"create":r.patch?"patch":"update";if(n==="patch")r.attrs=s;a=this.sync(n,this,r);if(s&&r.wait)this.attributes=o;return a},destroy:function(t){t=t?i.clone(t):{};var e=this;var r=t.success;var s=function(){e.trigger("destroy",e,e.collection,t)};t.success=function(i){if(t.wait||e.isNew())s();if(r)r(e,i,t);if(!e.isNew())e.trigger("sync",e,i,t)};if(this.isNew()){t.success();return false}q(this,t);var n=this.sync("delete",this,t);if(!t.wait)s();return n},url:function(){var t=i.result(this,"urlRoot")||i.result(this.collection,"url")||M();if(this.isNew())return t;return t.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(t,e){return t},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return this._validate({},i.extend(t||{},{validate:true}))},_validate:function(t,e){if(!e.validate||!this.validate)return true;t=i.extend({},this.attributes,t);var r=this.validationError=this.validate(t,e)||null;if(!r)return true;this.trigger("invalid",this,r,i.extend(e,{validationError:r}));return false}});var v=["keys","values","pairs","invert","pick","omit"];i.each(v,function(t){p.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.attributes);return i[t].apply(i,e)}});var g=e.Collection=function(t,e){e||(e={});if(e.model)this.model=e.model;if(e.comparator!==void 0)this.comparator=e.comparator;this._reset();this.initialize.apply(this,arguments);if(t)this.reset(t,i.extend({silent:true},e))};var m={add:true,remove:true,merge:true};var y={add:true,remove:false};i.extend(g.prototype,u,{model:p,initialize:function(){},toJSON:function(t){return this.map(function(e){return e.toJSON(t)})},sync:function(){return e.sync.apply(this,arguments)},add:function(t,e){return this.set(t,i.extend({merge:false},e,y))},remove:function(t,e){var r=!i.isArray(t);t=r?[t]:i.clone(t);e||(e={});var s,n,a,o;for(s=0,n=t.length;s<n;s++){o=t[s]=this.get(t[s]);if(!o)continue;delete this._byId[o.id];delete this._byId[o.cid];a=this.indexOf(o);this.models.splice(a,1);this.length--;if(!e.silent){e.index=a;o.trigger("remove",o,this,e)}this._removeReference(o,e)}return r?t[0]:t},set:function(t,e){e=i.defaults({},e,m);if(e.parse)t=this.parse(t,e);var r=!i.isArray(t);t=r?t?[t]:[]:i.clone(t);var s,n,a,o,h,u,l;var c=e.at;var f=this.model;var d=this.comparator&&c==null&&e.sort!==false;var v=i.isString(this.comparator)?this.comparator:null;var g=[],y=[],_={};var b=e.add,w=e.merge,x=e.remove;var E=!d&&b&&x?[]:false;for(s=0,n=t.length;s<n;s++){h=t[s]||{};if(h instanceof p){a=o=h}else{a=h[f.prototype.idAttribute||"id"]}if(u=this.get(a)){if(x)_[u.cid]=true;if(w){h=h===o?o.attributes:h;if(e.parse)h=u.parse(h,e);u.set(h,e);if(d&&!l&&u.hasChanged(v))l=true}t[s]=u}else if(b){o=t[s]=this._prepareModel(h,e);if(!o)continue;g.push(o);this._addReference(o,e)}o=u||o;if(E&&(o.isNew()||!_[o.id]))E.push(o);_[o.id]=true}if(x){for(s=0,n=this.length;s<n;++s){if(!_[(o=this.models[s]).cid])y.push(o)}if(y.length)this.remove(y,e)}if(g.length||E&&E.length){if(d)l=true;this.length+=g.length;if(c!=null){for(s=0,n=g.length;s<n;s++){this.models.splice(c+s,0,g[s])}}else{if(E)this.models.length=0;var k=E||g;for(s=0,n=k.length;s<n;s++){this.models.push(k[s])}}}if(l)this.sort({silent:true});if(!e.silent){for(s=0,n=g.length;s<n;s++){(o=g[s]).trigger("add",o,this,e)}if(l||E&&E.length)this.trigger("sort",this,e)}return r?t[0]:t},reset:function(t,e){e||(e={});for(var r=0,s=this.models.length;r<s;r++){this._removeReference(this.models[r],e)}e.previousModels=this.models;this._reset();t=this.add(t,i.extend({silent:true},e));if(!e.silent)this.trigger("reset",this,e);return t},push:function(t,e){return this.add(t,i.extend({at:this.length},e))},pop:function(t){var e=this.at(this.length-1);this.remove(e,t);return e},unshift:function(t,e){return this.add(t,i.extend({at:0},e))},shift:function(t){var e=this.at(0);this.remove(e,t);return e},slice:function(){return o.apply(this.models,arguments)},get:function(t){if(t==null)return void 0;return this._byId[t]||this._byId[t.id]||this._byId[t.cid]},at:function(t){return this.models[t]},where:function(t,e){if(i.isEmpty(t))return e?void 0:[];return this[e?"find":"filter"](function(e){for(var i in t){if(t[i]!==e.get(i))return false}return true})},findWhere:function(t){return this.where(t,true)},sort:function(t){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");t||(t={});if(i.isString(this.comparator)||this.comparator.length===1){this.models=this.sortBy(this.comparator,this)}else{this.models.sort(i.bind(this.comparator,this))}if(!t.silent)this.trigger("sort",this,t);return this},pluck:function(t){return i.invoke(this.models,"get",t)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=t.success;var r=this;t.success=function(i){var s=t.reset?"reset":"set";r[s](i,t);if(e)e(r,i,t);r.trigger("sync",r,i,t)};q(this,t);return this.sync("read",this,t)},create:function(t,e){e=e?i.clone(e):{};if(!(t=this._prepareModel(t,e)))return false;if(!e.wait)this.add(t,e);var r=this;var s=e.success;e.success=function(t,i){if(e.wait)r.add(t,e);if(s)s(t,i,e)};t.save(null,e);return t},parse:function(t,e){return t},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0;this.models=[];this._byId={}},_prepareModel:function(t,e){if(t instanceof p)return t;e=e?i.clone(e):{};e.collection=this;var r=new this.model(t,e);if(!r.validationError)return r;this.trigger("invalid",this,r.validationError,e);return false},_addReference:function(t,e){this._byId[t.cid]=t;if(t.id!=null)this._byId[t.id]=t;if(!t.collection)t.collection=this;t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){if(this===t.collection)delete t.collection;t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,i,r){if((t==="add"||t==="remove")&&i!==this)return;if(t==="destroy")this.remove(e,r);if(e&&t==="change:"+e.idAttribute){delete this._byId[e.previous(e.idAttribute)];if(e.id!=null)this._byId[e.id]=e}this.trigger.apply(this,arguments)}});var _=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];i.each(_,function(t){g.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.models);return i[t].apply(i,e)}});var b=["groupBy","countBy","sortBy","indexBy"];i.each(b,function(t){g.prototype[t]=function(e,r){var s=i.isFunction(e)?e:function(t){return t.get(e)};return i[t](this.models,s,r)}});var w=e.View=function(t){this.cid=i.uniqueId("view");t||(t={});i.extend(this,i.pick(t,E));this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()};var x=/^(\S+)\s*(.*)$/;var E=["model","collection","el","id","attributes","className","tagName","events"];i.extend(w.prototype,u,{tagName:"div",$:function(t){return this.$el.find(t)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();this.stopListening();return this},setElement:function(t,i){if(this.$el)this.undelegateEvents();this.$el=t instanceof e.$?t:e.$(t);this.el=this.$el[0];if(i!==false)this.delegateEvents();return this},delegateEvents:function(t){if(!(t||(t=i.result(this,"events"))))return this;this.undelegateEvents();for(var e in t){var r=t[e];if(!i.isFunction(r))r=this[t[e]];if(!r)continue;var s=e.match(x);var n=s[1],a=s[2];r=i.bind(r,this);n+=".delegateEvents"+this.cid;if(a===""){this.$el.on(n,r)}else{this.$el.on(n,a,r)}}return this},undelegateEvents:function(){this.$el.off(".delegateEvents"+this.cid);return this},_ensureElement:function(){if(!this.el){var t=i.extend({},i.result(this,"attributes"));if(this.id)t.id=i.result(this,"id");if(this.className)t["class"]=i.result(this,"className");var r=e.$("<"+i.result(this,"tagName")+">").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('<iframe src="javascript:0" tabindex="-1">');this.iframe=a.hide().appendTo("body")[0].contentWindow;this.navigate(r)}if(this._hasPushState){e.$(window).on("popstate",this.checkUrl)}else if(this._wantsHashChange&&"onhashchange"in window&&!n){e.$(window).on("hashchange",this.checkUrl)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}this.fragment=r;var o=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){this.fragment=this.getFragment(null,true);this.location.replace(this.root+"#"+this.fragment);return true}else if(this._hasPushState&&this.atRoot()&&o.hash){this.fragment=this.getHash().replace(R,"");this.history.replaceState({},document.title,this.root+this.fragment)}}if(!this.options.silent)return this.loadUrl()},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl);if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);N.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getFragment(this.getHash(this.iframe))}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){t=this.fragment=this.getFragment(t);return i.any(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!N.started)return false;if(!e||e===true)e={trigger:!!e};var i=this.root+(t=this.getFragment(t||""));t=t.replace(j,"");if(this.fragment===t)return;this.fragment=t;if(t===""&&i!=="/")i=i.slice(0,-1);if(this._hasPushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,i)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getFragment(this.getHash(this.iframe))){if(!e.replace)this.iframe.document.open().close();this._updateHash(this.iframe.location,t,e.replace)}}else{return this.location.assign(i)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new N;var U=function(t,e){var r=this;var s;if(t&&i.has(t,"constructor")){s=t.constructor}else{s=function(){return r.apply(this,arguments)}}i.extend(s,r,e);var n=function(){this.constructor=s};n.prototype=r.prototype;s.prototype=new n;if(t)i.extend(s.prototype,t);s.__super__=r.prototype;return s};p.extend=g.extend=$.extend=w.extend=N.extend=U;var M=function(){throw new Error('A "url" property or function must be specified')};var q=function(t,e){var i=e.error;e.error=function(r){if(i)i(t,r,e);t.trigger("error",t,r,e)}};return e});
+
+/*!
+ * jQuery Once v2.0.1 - http://github.com/robloach/jquery-once
+ * @license MIT, GPL-2.0
+ *   http://opensource.org/licenses/MIT
+ *   http://opensource.org/licenses/GPL-2.0
+ */
+(function(e){"use strict";if(typeof exports==="object"){e(require("jquery"))}else if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){"use strict";var n=function(e){e=e||"once";if(typeof e!=="string"){throw new Error("The jQuery Once id parameter must be a string")}return e};e.fn.once=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)!==true}).data(r,true)};e.fn.removeOnce=function(e){return this.findOnce(e).removeData("jquery-once-"+n(e))};e.fn.findOnce=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)===true})}});
+
+/**
+ * Base framework for Drupal-specific JavaScript, behaviors, and settings.
+ */
+window.Drupal = {behaviors: {}};
+
+// Class indicating that JS is enabled; used for styling purpose.
+document.documentElement.className += ' js';
+
+// Allow other JavaScript libraries to use $.
+if (window.jQuery) {
+  jQuery.noConflict();
+}
+
+// JavaScript should be made compatible with libraries other than jQuery by
+// wrapping it in an anonymous closure.
+(function (domready, Drupal, drupalSettings, drupalTranslations) {
+
+  "use strict";
+
+  /**
+   * Custom error type thrown after attach/detach if one or more behaviors failed.
+   *
+   * @param list
+   *   An array of errors thrown during attach/detach.
+   * @param event
+   *   A string containing either 'attach' or 'detach'.
+   */
+  function DrupalBehaviorError(list, event) {
+    this.name = 'DrupalBehaviorError';
+    this.event = event || 'attach';
+    this.list = list;
+    // Makes the list of errors readable.
+    var messageList = [];
+    messageList.push(this.event);
+    var il = this.list.length;
+    for (var i = 0; i < il; i++) {
+      messageList.push(this.list[i].behavior + ': ' + this.list[i].error.message);
+    }
+    this.message = messageList.join(' ; ');
+  }
+
+  DrupalBehaviorError.prototype = new Error();
+
+  /**
+   * Attach all registered behaviors to a page element.
+   *
+   * Behaviors are event-triggered actions that attach to page elements, enhancing
+   * default non-JavaScript UIs. Behaviors are registered in the Drupal.behaviors
+   * object using the method 'attach' and optionally also 'detach' as follows:
+   * @code
+   *    Drupal.behaviors.behaviorName = {
+   *      attach: function (context, settings) {
+   *        ...
+   *      },
+   *      detach: function (context, settings, trigger) {
+   *        ...
+   *      }
+   *    };
+   * @endcode
+   *
+   * Drupal.attachBehaviors is added below to the jQuery.ready event and therefore
+   * runs on initial page load. Developers implementing Ajax in their solutions
+   * should also call this function after new page content has been loaded,
+   * feeding in an element to be processed, in order to attach all behaviors to
+   * the new content.
+   *
+   * Behaviors should use
+   * @code
+   *   var elements = $(context).find(selector).once('behavior-name');
+   * @endcode
+   * to ensure the behavior is attached only once to a given element. (Doing so
+   * enables the reprocessing of given elements, which may be needed on occasion
+   * despite the ability to limit behavior attachment to a particular element.)
+   *
+   * @param context
+   *   An element to attach behaviors to. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none is given,
+   *   the global drupalSettings object is used.
+   */
+  Drupal.attachBehaviors = function (context, settings) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].attach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].attach(context, settings);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'attach');
+    }
+  };
+
+  // Attach all behaviors.
+  domready(function () { Drupal.attachBehaviors(document, drupalSettings); });
+
+  /**
+   * Detach registered behaviors from a page element.
+   *
+   * Developers implementing AHAH/Ajax in their solutions should call this
+   * function before page content is about to be removed, feeding in an element
+   * to be processed, in order to allow special behaviors to detach from the
+   * content.
+   *
+   * Such implementations should use .findOnce() and .removeOnce() to find
+   * elements with their corresponding Drupal.behaviors.behaviorName.attach
+   * implementation, i.e. .removeOnce('behaviorName'), to ensure the behavior is
+   * detached only from previously processed elements.
+   *
+   * @param context
+   *   An element to detach behaviors from. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none given, the
+   *   global drupalSettings object is used.
+   * @param trigger
+   *   A string containing what's causing the behaviors to be detached. The
+   *   possible triggers are:
+   *   - unload: (default) The context element is being removed from the DOM.
+   *   - move: The element is about to be moved within the DOM (for example,
+   *     during a tabledrag row swap). After the move is completed,
+   *     Drupal.attachBehaviors() is called, so that the behavior can undo
+   *     whatever it did in response to the move. Many behaviors won't need to
+   *     do anything simply in response to the element being moved, but because
+   *     IFRAME elements reload their "src" when being moved within the DOM,
+   *     behaviors bound to IFRAME elements (like WYSIWYG editors) may need to
+   *     take some action.
+   *   - serialize: When an Ajax form is submitted, this is called with the
+   *     form as the context. This provides every behavior within the form an
+   *     opportunity to ensure that the field elements have correct content
+   *     in them before the form is serialized. The canonical use-case is so
+   *     that WYSIWYG editors can update the hidden textarea to which they are
+   *     bound.
+   *
+   * @see Drupal.attachBehaviors
+   */
+  Drupal.detachBehaviors = function (context, settings, trigger) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    trigger = trigger || 'unload';
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].detach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].detach(context, settings, trigger);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'detach:' + trigger);
+    }
+  };
+
+  /**
+   * Helper to test document width for mobile configurations.
+   * @todo Temporary solution for the mobile initiative.
+   */
+  Drupal.checkWidthBreakpoint = function (width) {
+    width = width || drupalSettings.widthBreakpoint || 640;
+    return (document.documentElement.clientWidth > width);
+  };
+
+  /**
+   * Encode special characters in a plain-text string for display as HTML.
+   *
+   * @param str
+   *   The string to be encoded.
+   * @return
+   *   The encoded string.
+   * @ingroup sanitization
+   */
+  Drupal.checkPlain = function (str) {
+    str = str.toString()
+      .replace(/&/g, '&amp;')
+      .replace(/"/g, '&quot;')
+      .replace(/</g, '&lt;')
+      .replace(/>/g, '&gt;');
+    return str;
+  };
+
+  /**
+   * Replace placeholders with sanitized values in a string.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   An object of replacements pairs to make. Incidences of any key in this
+   *   array are replaced with the corresponding value. Based on the first
+   *   character of the key, the value is escaped and/or themed:
+   *    - !variable: inserted as is
+   *    - @variable: escape plain text to HTML (Drupal.checkPlain)
+   *    - %variable: escape text and theme as a placeholder for user-submitted
+   *      content (checkPlain + Drupal.theme('placeholder'))
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   *
+   * @see Drupal.t()
+   * @ingroup sanitization
+   */
+  Drupal.formatString = function (str, args) {
+    // Keep args intact.
+    var processedArgs = {};
+    // Transform arguments before inserting them.
+    for (var key in args) {
+      if (args.hasOwnProperty(key)) {
+        switch (key.charAt(0)) {
+          // Escaped only.
+          case '@':
+            processedArgs[key] = Drupal.checkPlain(args[key]);
+            break;
+          // Pass-through.
+          case '!':
+            processedArgs[key] = args[key];
+            break;
+          // Escaped and placeholder.
+          default:
+            processedArgs[key] = Drupal.theme('placeholder', args[key]);
+            break;
+        }
+      }
+    }
+
+    return Drupal.stringReplace(str, processedArgs, null);
+  };
+
+  /**
+   * Replace substring.
+   *
+   * The longest keys will be tried first. Once a substring has been replaced,
+   * its new value will not be searched again.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   Key-value pairs.
+   * @param {Array|null} keys
+   *   Array of keys from the "args".  Internal use only.
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   */
+  Drupal.stringReplace = function (str, args, keys) {
+    if (str.length === 0) {
+      return str;
+    }
+
+    // If the array of keys is not passed then collect the keys from the args.
+    if (!Array.isArray(keys)) {
+      keys = [];
+      for (var k in args) {
+        if (args.hasOwnProperty(k)) {
+          keys.push(k);
+        }
+      }
+
+      // Order the keys by the character length. The shortest one is the first.
+      keys.sort(function (a, b) { return a.length - b.length; });
+    }
+
+    if (keys.length === 0) {
+      return str;
+    }
+
+    // Take next longest one from the end.
+    var key = keys.pop();
+    var fragments = str.split(key);
+
+    if (keys.length) {
+      for (var i = 0; i < fragments.length; i++) {
+        // Process each fragment with a copy of remaining keys.
+        fragments[i] = Drupal.stringReplace(fragments[i], args, keys.slice(0));
+      }
+    }
+
+    return fragments.join(args[key]);
+  };
+
+  /**
+   * Translate strings to the page language or a given language.
+   *
+   * See the documentation of the server-side t() function for further details.
+   *
+   * @param str
+   *   A string containing the English string to translate.
+   * @param args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *
+   * @param options
+   *   - 'context' (defaults to the empty context): The context the source string
+   *     belongs to.
+   *
+   * @return
+   *   The translated string.
+   */
+  Drupal.t = function (str, args, options) {
+    options = options || {};
+    options.context = options.context || '';
+
+    // Fetch the localized version of the string.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.strings && drupalTranslations.strings[options.context] && drupalTranslations.strings[options.context][str]) {
+      str = drupalTranslations.strings[options.context][str];
+    }
+
+    if (args) {
+      str = Drupal.formatString(str, args);
+    }
+    return str;
+  };
+
+  /**
+   * Returns the URL to a Drupal page.
+   */
+  Drupal.url = function (path) {
+    return drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + path;
+  };
+
+  /**
+   * Format a string containing a count of items.
+   *
+   * This function ensures that the string is pluralized correctly. Since
+   * Drupal.t() is called by this function, make sure not to pass
+   * already-localized strings to it.
+   *
+   * See the documentation of the server-side
+   * \Drupal\Core\StringTranslation\TranslationInterface::formatPlural()
+   * function for more details.
+   *
+   * @param {Number} count
+   *   The item count to display.
+   * @param {String} singular
+   *   The string for the singular case. Please make sure it is clear this is
+   *   singular, to ease translation (e.g. use "1 new comment" instead of "1
+   *   new"). Do not use @count in the singular string.
+   * @param {String} plural
+   *   The string for the plural case. Please make sure it is clear this is
+   *   plural, to ease translation. Use @count in place of the item count, as in
+   *   "@count new comments".
+   * @param {Object} args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *   Note that you do not need to include @count in this array.
+   *   This replacement is done automatically for the plural case.
+   * @param {Object} options
+   *   The options to pass to the Drupal.t() function.
+   *
+   * @return {String}
+   *   A translated string.
+   */
+  Drupal.formatPlural = function (count, singular, plural, args, options) {
+    args = args || {};
+    args['@count'] = count;
+
+    var pluralDelimiter = drupalSettings.pluralDelimiter;
+    var translations = Drupal.t(singular + pluralDelimiter + plural, args, options).split(pluralDelimiter);
+    var index = 0;
+
+    // Determine the index of the plural form.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.pluralFormula) {
+      index = count in drupalTranslations.pluralFormula ? drupalTranslations.pluralFormula[count] : drupalTranslations.pluralFormula['default'];
+    }
+    else if (args['@count'] !== 1) {
+      index = 1;
+    }
+
+    return translations[index];
+  };
+
+  /**
+   * Encodes a Drupal path for use in a URL.
+   *
+   * For aesthetic reasons slashes are not escaped.
+   */
+  Drupal.encodePath = function (item) {
+    return window.encodeURIComponent(item).replace(/%2F/g, '/');
+  };
+
+  /**
+   * Generate the themed representation of a Drupal object.
+   *
+   * All requests for themed output must go through this function. It examines
+   * the request and routes it to the appropriate theme function. If the current
+   * theme does not provide an override function, the generic theme function is
+   * called.
+   *
+   * For example, to retrieve the HTML for text that should be emphasized and
+   * displayed as a placeholder inside a sentence, call
+   * Drupal.theme('placeholder', text).
+   *
+   * @param func
+   *   The name of the theme function to call.
+   * @param ...
+   *   Additional arguments to pass along to the theme function.
+   * @return
+   *   Any data the theme function returns. This could be a plain HTML string,
+   *   but also a complex object.
+   */
+  Drupal.theme = function (func) {
+    var args = Array.prototype.slice.apply(arguments, [1]);
+    if (func in Drupal.theme) {
+      return Drupal.theme[func].apply(this, args);
+    }
+  };
+
+  /**
+   * Formats text for emphasized display in a placeholder inside a sentence.
+   *
+   * @param str
+   *   The text to format (plain-text).
+   * @return
+   *   The formatted text (html).
+   */
+  Drupal.theme.placeholder = function (str) {
+    return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>';
+  };
+
+})(domready, Drupal, window.drupalSettings, window.drupalTranslations);
+;
+/*!
+ * jQuery UI Core 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,r){var i,s,o,u=t.nodeName.toLowerCase();return"area"===u?(i=t.parentNode,s=i.name,!t.href||!s||i.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap='#"+s+"']")[0],!!o&&n(o))):(/^(input|select|textarea|button|object)$/.test(u)?!t.disabled:"a"===u?t.href||r:r)&&n(t)}function n(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return e.css(this,"visibility")==="hidden"}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var n=this.css("position"),r=n==="absolute",i=t?/(auto|scroll|hidden)/:/(auto|scroll)/,s=this.parents().filter(function(){var t=e(this);return r&&t.css("position")==="static"?!1:i.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return n==="fixed"||!s.length?e(this[0].ownerDocument||document):s},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(n){return t(n,!isNaN(e.attr(n,"tabindex")))},tabbable:function(n){var r=e.attr(n,"tabindex"),i=isNaN(r);return(i||r>=0)&&t(n,!i)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,n){function o(t,n,i,s){return e.each(r,function(){n-=parseFloat(e.css(t,"padding"+this))||0,i&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var r=n==="Width"?["Left","Right"]:["Top","Bottom"],i=n.toLowerCase(),s={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+n]=function(t){return t===undefined?s["inner"+n].call(this):this.each(function(){e(this).css(i,o(this,t)+"px")})},e.fn["outer"+n]=function(t,r){return typeof t!="number"?s["outer"+n].call(this,t):this.each(function(){e(this).css(i,o(this,t,!0,r)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(n,r){return typeof n=="number"?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),r&&r.call(t)},n)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(t!==undefined)return this.css("zIndex",t);if(this.length){var n=e(this[0]),r,i;while(n.length&&n[0]!==document){r=n.css("position");if(r==="absolute"||r==="relative"||r==="fixed"){i=parseInt(n.css("zIndex"),10);if(!isNaN(i)&&i!==0)return i}n=n.parent()}}return 0}}),e.ui.plugin={add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n,r){var i,s=e.plugins[t];if(!s)return;if(!r&&(!e.element[0].parentNode||e.element[0].parentNode.nodeType===11))return;for(i=0;i<s.length;i++)e.options[s[i][0]]&&s[i][1].apply(e.element,n)}}});;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module.
+ */
+
+(function ($, Drupal, drupalSettings, _, Backbone, JSON, storage) {
+
+  "use strict";
+
+  var options = $.extend(drupalSettings.contextual,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        open: Drupal.t('Open'),
+        close: Drupal.t('Close')
+      }
+    }
+  );
+
+  // Clear the cached contextual links whenever the current user's set of
+  // permissions changes.
+  var cachedPermissionsHash = storage.getItem('Drupal.contextual.permissionsHash');
+  var permissionsHash = drupalSettings.user.permissionsHash;
+  if (cachedPermissionsHash !== permissionsHash) {
+    if (typeof permissionsHash === 'string') {
+      _.chain(storage).keys().each(function (key) {
+        if (key.substring(0, 18) === 'Drupal.contextual.') {
+          storage.removeItem(key);
+        }
+      });
+    }
+    storage.setItem('Drupal.contextual.permissionsHash', permissionsHash);
+  }
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   * @param string html
+   *   The server-side rendered HTML for this contextual link.
+   */
+  function initContextual($contextual, html) {
+    var $region = $contextual.closest('.contextual-region');
+    var contextual = Drupal.contextual;
+
+    $contextual
+      // Update the placeholder to contain its rendered contextual links.
+      .html(html)
+      // Use the placeholder as a wrapper with a specific class to provide
+      // positioning and behavior attachment context.
+      .addClass('contextual')
+      // Ensure a trigger element exists before the actual contextual links.
+      .prepend(Drupal.theme('contextualTrigger'));
+
+    // Set the destination parameter on each of the contextual links.
+    var destination = 'destination=' + Drupal.encodePath(drupalSettings.path.currentPath);
+    $contextual.find('.contextual-links a').each(function () {
+      var url = this.getAttribute('href');
+      var glue = (url.indexOf('?') === -1) ? '?' : '&';
+      this.setAttribute('href', url + glue + destination);
+    });
+
+    // Create a model and the appropriate views.
+    var model = new contextual.StateModel({
+      title: $region.find('h2').eq(0).text().trim()
+    });
+    var viewOptions = $.extend({el: $contextual, model: model}, options);
+    contextual.views.push({
+      visual: new contextual.VisualView(viewOptions),
+      aural: new contextual.AuralView(viewOptions),
+      keyboard: new contextual.KeyboardView(viewOptions)
+    });
+    contextual.regionViews.push(new contextual.RegionView(
+      $.extend({el: $region, model: model}, options))
+    );
+
+    // Add the model to the collection. This must happen after the views have been
+    // associated with it, otherwise collection change event handlers can't
+    // trigger the model change event handler in its views.
+    contextual.collection.add(model);
+
+    // Let other JavaScript react to the adding of a new contextual link.
+    $(document).trigger('drupalContextualLinkAdded', {
+      $el: $contextual,
+      $region: $region,
+      model: model
+    });
+
+    // Fix visual collisions between contextual link triggers.
+    adjustIfNestedAndOverlapping($contextual);
+  }
+
+  /**
+   * Determines if a contextual link is nested & overlapping, if so: adjusts it.
+   *
+   * This only deals with two levels of nesting; deeper levels are not touched.
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   */
+  function adjustIfNestedAndOverlapping($contextual) {
+    var $contextuals = $contextual
+      // @todo confirm that .closest() is not sufficient
+      .parents('.contextual-region').eq(-1)
+      .find('.contextual');
+
+    // Early-return when there's no nesting.
+    if ($contextuals.length === 1) {
+      return;
+    }
+
+    // If the two contextual links overlap, then we move the second one.
+    var firstTop = $contextuals.eq(0).offset().top;
+    var secondTop = $contextuals.eq(1).offset().top;
+    if (firstTop === secondTop) {
+      var $nestedContextual = $contextuals.eq(1);
+
+      // Retrieve height of nested contextual link.
+      var height = 0;
+      var $trigger = $nestedContextual.find('.trigger');
+      // Elements with the .visually-hidden class have no dimensions, so this
+      // class must be temporarily removed to the calculate the height.
+      $trigger.removeClass('visually-hidden');
+      height = $nestedContextual.height();
+      $trigger.addClass('visually-hidden');
+
+      // Adjust nested contextual link's position.
+      $nestedContextual.css({top: $nestedContextual.position().top + height});
+    }
+  }
+
+  /**
+   * Attaches outline behavior for regions associated with contextual links.
+   *
+   * Events
+   *   Contextual triggers an event that can be used by other scripts.
+   *   - drupalContextualLinkAdded: Triggered when a contextual link is added.
+   */
+  Drupal.behaviors.contextual = {
+    attach: function (context) {
+      var $context = $(context);
+
+      // Find all contextual links placeholders, if any.
+      var $placeholders = $context.find('[data-contextual-id]').once('contextual-render');
+      if ($placeholders.length === 0) {
+        return;
+      }
+
+      // Collect the IDs for all contextual links placeholders.
+      var ids = [];
+      $placeholders.each(function () {
+        ids.push($(this).attr('data-contextual-id'));
+      });
+
+      // Update all contextual links placeholders whose HTML is cached.
+      var uncachedIDs = _.filter(ids, function initIfCached(contextualID) {
+        var html = storage.getItem('Drupal.contextual.' + contextualID);
+        if (html !== null) {
+          // Initialize after the current execution cycle, to make the AJAX
+          // request for retrieving the uncached contextual links as soon as
+          // possible, but also to ensure that other Drupal behaviors have had the
+          // chance to set up an event listener on the Backbone collection
+          // Drupal.contextual.collection.
+          window.setTimeout(function () {
+            initContextual($context.find('[data-contextual-id="' + contextualID + '"]'), html);
+          });
+          return false;
+        }
+        return true;
+      });
+
+      // Perform an AJAX request to let the server render the contextual links for
+      // each of the placeholders.
+      if (uncachedIDs.length > 0) {
+        $.ajax({
+          url: Drupal.url('contextual/render'),
+          type: 'POST',
+          data: {'ids[]': uncachedIDs},
+          dataType: 'json',
+          success: function (results) {
+            _.each(results, function (html, contextualID) {
+              // Store the metadata.
+              storage.setItem('Drupal.contextual.' + contextualID, html);
+              // If the rendered contextual links are empty, then the current user
+              // does not have permission to access the associated links: don't
+              // render anything.
+              if (html.length > 0) {
+                // Update the placeholders to contain its rendered contextual links.
+                // Usually there will only be one placeholder, but it's possible for
+                // multiple identical placeholders exist on the page (probably
+                // because the same content appears more than once).
+                $placeholders = $context.find('[data-contextual-id="' + contextualID + '"]');
+
+                // Initialize the contextual links.
+                for (var i = 0; i < $placeholders.length; i++) {
+                  initContextual($placeholders.eq(i), html);
+                }
+              }
+            });
+          }
+        });
+      }
+    }
+  };
+
+  Drupal.contextual = {
+    // The Drupal.contextual.View instances associated with each list element of
+    // contextual links.
+    views: [],
+
+    // The Drupal.contextual.RegionView instances associated with each contextual
+    // region element.
+    regionViews: []
+  };
+
+  // A Backbone.Collection of Drupal.contextual.StateModel instances.
+  Drupal.contextual.collection = new Backbone.Collection([], {model: Drupal.contextual.StateModel});
+
+  /**
+   * A trigger is an interactive element often bound to a click handler.
+   *
+   * @return String
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.contextualTrigger = function () {
+    return '<button class="trigger visually-hidden focusable" type="button"></button>';
+  };
+
+})(jQuery, Drupal, drupalSettings, _, Backbone, window.JSON, window.sessionStorage);
+;
+/**
+ * @file
+ * A Backbone Model for the state of a contextual link's trigger, list & region.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of a contextual link's trigger, list & region.
+   */
+  Drupal.contextual.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // The title of the entity to which these contextual links apply.
+      title: '',
+      // Represents if the contextual region is being hovered.
+      regionIsHovered: false,
+      // Represents if the contextual trigger or options have focus.
+      hasFocus: false,
+      // Represents if the contextual options for an entity are available to
+      // be selected (i.e. whether the list of options is visible).
+      isOpen: false,
+      // When the model is locked, the trigger remains active.
+      isLocked: false
+    },
+
+    /**
+     * Opens or closes the contextual link.
+     *
+     * If it is opened, then also give focus.
+     */
+    toggleOpen: function () {
+      var newIsOpen = !this.get('isOpen');
+      this.set('isOpen', newIsOpen);
+      if (newIsOpen) {
+        this.focus();
+      }
+      return this;
+    },
+
+    /**
+     * Closes this contextual link.
+     *
+     * Does not call blur() because we want to allow a contextual link to have
+     * focus, yet be closed for example when hovering.
+     */
+    close: function () {
+      this.set('isOpen', false);
+      return this;
+    },
+
+    /**
+     * Gives focus to this contextual link.
+     *
+     * Also closes + removes focus from every other contextual link.
+     */
+    focus: function () {
+      this.set('hasFocus', true);
+      var cid = this.cid;
+      this.collection.each(function (model) {
+        if (model.cid !== cid) {
+          model.close().blur();
+        }
+      });
+      return this;
+    },
+
+    /**
+     * Removes focus from this contextual link, unless it is open.
+     */
+    blur: function () {
+      if (!this.get('isOpen')) {
+        this.set('hasFocus', false);
+      }
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of a contextual link (i.e. screen reader support).
+   */
+  Drupal.contextual.AuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+
+      // Use aria-role form so that the number of items in the list is spoken.
+      this.$el.attr('role', 'form');
+
+      // Initial render.
+      this.render();
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+
+      // Set the hidden property of the links.
+      this.$el.find('.contextual-links')
+        .prop('hidden', !isOpen);
+
+      // Update the view of the trigger.
+      this.$el.find('.trigger')
+        .text(Drupal.t('@action @title configuration options', {
+          '@action': (!isOpen) ? this.options.strings.open : this.options.strings.close,
+          '@title': this.model.get('title')
+        }))
+        .attr('aria-pressed', isOpen);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides keyboard interaction for a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Provides keyboard interaction for a contextual link.
+   */
+  Drupal.contextual.KeyboardView = Backbone.View.extend({
+    events: {
+      'focus .trigger': 'focus',
+      'focus .contextual-links a': 'focus',
+      'blur .trigger': function () { this.model.blur(); },
+      'blur .contextual-links a': function () {
+        // Set up a timeout to allow a user to tab between the trigger and the
+        // contextual links without the menu dismissing.
+        var that = this;
+        this.timer = window.setTimeout(function () {
+          that.model.close().blur();
+        }, 150);
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      // The timer is used to create a delay before dismissing the contextual
+      // links on blur. This is only necessary when keyboard users tab into
+      // contextual links without edit mode (i.e. without TabbingManager).
+      // That means that if we decide to disable tabbing of contextual links
+      // without edit mode, all this timer logic can go away.
+      this.timer = NaN;
+    },
+
+    /**
+     * Sets focus on the model; Clears the timer that dismisses the links.
+     */
+    focus: function () {
+      // Clear the timeout that might have been set by blurring a link.
+      window.clearTimeout(this.timer);
+      this.model.focus();
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that renders the visual view of a contextual region element.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual region element.
+   */
+  Drupal.contextual.RegionView = Backbone.View.extend({
+
+    events: function () {
+      var mapping = {
+        mouseenter: function () { this.model.set('regionIsHovered', true); },
+        mouseleave: function () {
+          this.model.close().blur().set('regionIsHovered', false);
+        }
+      };
+      // We don't want mouse hover events on touch.
+      if (Modernizr.touch) {
+        mapping = {};
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:hasFocus', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.$el.toggleClass('focus', this.model.get('hasFocus'));
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of a contextual link.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual link. Listens to mouse & touch.
+   */
+  Drupal.contextual.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+      var mapping = {
+        'click .trigger': function () { this.model.toggleOpen(); },
+        'touchend .trigger': touchEndToClick,
+        'click .contextual-links a': function () { this.model.close().blur(); },
+        'touchend .contextual-links a': touchEndToClick
+      };
+      // We only want mouse hover events on non-touch.
+      if (!Modernizr.touch) {
+        mapping.mouseenter = function () { this.model.focus(); };
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+      // The trigger should be visible when:
+      //  - the mouse hovered over the region,
+      //  - the trigger is locked,
+      //  - and for as long as the contextual menu is open.
+      var isVisible = this.model.get('isLocked') || this.model.get('regionIsHovered') || isOpen;
+
+      this.$el
+        // The open state determines if the links are visible.
+        .toggleClass('open', isOpen)
+        // Update the visibility of the trigger.
+        .find('.trigger').toggleClass('visually-hidden', !isVisible);
+
+      // Nested contextual region handling: hide any nested contextual triggers.
+      if ('isOpen' in this.model.changed) {
+        this.$el.closest('.contextual-region')
+          .find('.contextual .trigger:not(:first)')
+          .toggle(!isOpen);
+      }
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Store the state of weight columns display for all tables.
+   * Default value is to hide weight columns.
+   */
+  var showWeight = JSON.parse(localStorage.getItem('Drupal.tableDrag.showWeight'));
+
+  /**
+   * Drag and drop table rows with field manipulation.
+   *
+   * Using the drupal_attach_tabledrag() function, any table with weights or
+   * parent relationships may be made into draggable tables. Columns containing a
+   * field may optionally be hidden, providing a better user experience.
+   *
+   * Created tableDrag instances may be modified with custom behaviors by
+   * overriding the .onDrag, .onDrop, .row.onSwap, and .row.onIndent methods.
+   * See blocks.js for an example of adding additional functionality to tableDrag.
+   */
+  Drupal.behaviors.tableDrag = {
+    attach: function (context, settings) {
+      function initTableDrag(table, base) {
+        if (table.length) {
+          // Create the new tableDrag instance. Save in the Drupal variable
+          // to allow other scripts access to the object.
+          Drupal.tableDrag[base] = new Drupal.tableDrag(table[0], settings.tableDrag[base]);
+        }
+      }
+
+      for (var base in settings.tableDrag) {
+        if (settings.tableDrag.hasOwnProperty(base)) {
+          initTableDrag($(context).find('#' + base).once('tabledrag'), base);
+        }
+      }
+    }
+  };
+
+  /**
+   * Constructor for the tableDrag object. Provides table and field manipulation.
+   *
+   * @param table
+   *   DOM object for the table to be made draggable.
+   * @param tableSettings
+   *   Settings for the table added via drupal_add_dragtable().
+   */
+  Drupal.tableDrag = function (table, tableSettings) {
+    var self = this;
+    var $table = $(table);
+
+    // Required object variables.
+    this.$table = $(table);
+    this.table = table;
+    this.tableSettings = tableSettings;
+    this.dragObject = null; // Used to hold information about a current drag operation.
+    this.rowObject = null; // Provides operations for row manipulation.
+    this.oldRowElement = null; // Remember the previous element.
+    this.oldY = 0; // Used to determine up or down direction from last mouse move.
+    this.changed = false; // Whether anything in the entire table has changed.
+    this.maxDepth = 0; // Maximum amount of allowed parenting.
+    this.rtl = $(this.table).css('direction') === 'rtl' ? -1 : 1; // Direction of the table.
+    this.striping = $(this.table).data('striping') === 1;
+
+    // Configure the scroll settings.
+    this.scrollSettings = {amount: 4, interval: 50, trigger: 70};
+    this.scrollInterval = null;
+    this.scrollY = 0;
+    this.windowHeight = 0;
+
+    // Check this table's settings to see if there are parent relationships in
+    // this table. For efficiency, large sections of code can be skipped if we
+    // don't need to track horizontal movement and indentations.
+    this.indentEnabled = false;
+    for (var group in tableSettings) {
+      if (tableSettings.hasOwnProperty(group)) {
+        for (var n in tableSettings[group]) {
+          if (tableSettings[group].hasOwnProperty(n)) {
+            if (tableSettings[group][n].relationship === 'parent') {
+              this.indentEnabled = true;
+            }
+            if (tableSettings[group][n].limit > 0) {
+              this.maxDepth = tableSettings[group][n].limit;
+            }
+          }
+        }
+      }
+    }
+    if (this.indentEnabled) {
+      this.indentCount = 1; // Total width of indents, set in makeDraggable.
+      // Find the width of indentations to measure mouse movements against.
+      // Because the table doesn't need to start with any indentations, we
+      // manually append 2 indentations in the first draggable row, measure
+      // the offset, then remove.
+      var indent = Drupal.theme('tableDragIndentation');
+      var testRow = $('<tr/>').addClass('draggable').appendTo(table);
+      var testCell = $('<td/>').appendTo(testRow).prepend(indent).prepend(indent);
+      var $indentation = testCell.find('.js-indentation');
+      this.indentAmount = $indentation.get(1).offsetLeft - $indentation.get(0).offsetLeft;
+      testRow.remove();
+    }
+
+    // Make each applicable row draggable.
+    // Match immediate children of the parent element to allow nesting.
+    $table.find('> tr.draggable, > tbody > tr.draggable').each(function () { self.makeDraggable(this); });
+
+    // Add a link before the table for users to show or hide weight columns.
+    $table.before($('<button type="button" class="link tabledrag-toggle-weight"></button>')
+      .attr('title', Drupal.t('Re-order rows by numerical weight instead of dragging.'))
+      .on('click', $.proxy(function (e) {
+        e.preventDefault();
+        this.toggleColumns();
+      }, this))
+      .wrap('<div class="tabledrag-toggle-weight-wrapper"></div>')
+      .parent()
+    );
+
+    // Initialize the specified columns (for example, weight or parent columns)
+    // to show or hide according to user preference. This aids accessibility
+    // so that, e.g., screen reader users can choose to enter weight values and
+    // manipulate form elements directly, rather than using drag-and-drop..
+    self.initColumns();
+
+    // Add event bindings to the document. The self variable is passed along
+    // as event handlers do not have direct access to the tableDrag object.
+    if (Modernizr.touch) {
+      $(document).on('touchmove', function (event) { return self.dragRow(event.originalEvent.touches[0], self); });
+      $(document).on('touchend', function (event) { return self.dropRow(event.originalEvent.touches[0], self); });
+    }
+    else {
+      $(document).on('mousemove', function (event) { return self.dragRow(event, self); });
+      $(document).on('mouseup', function (event) { return self.dropRow(event, self); });
+    }
+
+    // React to localStorage event showing or hiding weight columns.
+    $(window).on('storage', $.proxy(function (e) {
+      // Only react to 'Drupal.tableDrag.showWeight' value change.
+      if (e.originalEvent.key === 'Drupal.tableDrag.showWeight') {
+        // This was changed in another window, get the new value for this window.
+        showWeight = JSON.parse(e.originalEvent.newValue);
+        this.displayColumns(showWeight);
+      }
+    }, this));
+  };
+
+  /**
+   * Initialize columns containing form elements to be hidden by default,
+   * according to the settings for this tableDrag instance.
+   *
+   * Identify and mark each cell with a CSS class so we can easily toggle
+   * show/hide it. Finally, hide columns if user does not have a
+   * 'Drupal.tableDrag.showWeight' localStorage value.
+   */
+  Drupal.tableDrag.prototype.initColumns = function () {
+    var $table = this.$table;
+    var hidden;
+    var cell;
+    var columnIndex;
+    for (var group in this.tableSettings) {
+      if (this.tableSettings.hasOwnProperty(group)) { // Find the first field in this group.
+        for (var d in this.tableSettings[group]) {
+          if (this.tableSettings[group].hasOwnProperty(d)) {
+            var field = $table.find('.' + this.tableSettings[group][d].target).eq(0);
+            if (field.length && this.tableSettings[group][d].hidden) {
+              hidden = this.tableSettings[group][d].hidden;
+              cell = field.closest('td');
+              break;
+            }
+          }
+        }
+
+        // Mark the column containing this field so it can be hidden.
+        if (hidden && cell[0]) {
+          // Add 1 to our indexes. The nth-child selector is 1 based, not 0 based.
+          // Match immediate children of the parent element to allow nesting.
+          columnIndex = cell.parent().find('> td').index(cell.get(0)) + 1;
+          $table.find('> thead > tr, > tbody > tr, > tr').each(this.addColspanClass(columnIndex));
+        }
+      }
+    }
+    this.displayColumns(showWeight);
+  };
+
+  /**
+   * Mark cells that have colspan so we can adjust the colspan
+   * instead of hiding them altogether.
+   */
+  Drupal.tableDrag.prototype.addColspanClass = function (columnIndex) {
+    return function () {
+      // Get the columnIndex and adjust for any colspans in this row.
+      var $row = $(this);
+      var index = columnIndex;
+      var cells = $row.children();
+      var cell;
+      cells.each(function (n) {
+        if (n < index && this.colSpan && this.colSpan > 1) {
+          index -= this.colSpan - 1;
+        }
+      });
+      if (index > 0) {
+        cell = cells.filter(':nth-child(' + index + ')');
+        if (cell[0].colSpan && cell[0].colSpan > 1) {
+          // If this cell has a colspan, mark it so we can reduce the colspan.
+          cell.addClass('tabledrag-has-colspan');
+        }
+        else {
+          // Mark this cell so we can hide it.
+          cell.addClass('tabledrag-hide');
+        }
+      }
+    };
+  };
+
+  /**
+   * Hide or display weight columns. Triggers an event on change.
+   *
+   * @param bool displayWeight
+   *   'true' will show weight columns.
+   */
+  Drupal.tableDrag.prototype.displayColumns = function (displayWeight) {
+    if (displayWeight) {
+      this.showColumns();
+    }
+    // Default action is to hide columns.
+    else {
+      this.hideColumns();
+    }
+    // Trigger an event to allow other scripts to react to this display change.
+    // Force the extra parameter as a bool.
+    $('table').findOnce('tabledrag').trigger('columnschange', !!displayWeight);
+  };
+
+  /**
+   * Toggle the weight column depending on 'showWeight' value.
+   * Store only default override.
+   */
+  Drupal.tableDrag.prototype.toggleColumns = function () {
+    showWeight = !showWeight;
+    this.displayColumns(showWeight);
+    if (showWeight) {
+      // Save default override.
+      localStorage.setItem('Drupal.tableDrag.showWeight', showWeight);
+    }
+    else {
+      // Reset the value to its default.
+      localStorage.removeItem('Drupal.tableDrag.showWeight');
+    }
+  };
+
+  /**
+   * Hide the columns containing weight/parent form elements.
+   * Undo showColumns().
+   */
+  Drupal.tableDrag.prototype.hideColumns = function () {
+    var $tables = $('table').findOnce('tabledrag');
+    // Hide weight/parent cells and headers.
+    $tables.find('.tabledrag-hide').css('display', 'none');
+    // Show TableDrag handles.
+    $tables.find('.tabledrag-handle').css('display', '');
+    // Reduce the colspan of any effected multi-span columns.
+    $tables.find('.tabledrag-has-colspan').each(function () {
+      this.colSpan = this.colSpan - 1;
+    });
+    // Change link text.
+    $('.tabledrag-toggle-weight').text(Drupal.t('Show row weights'));
+  };
+
+  /**
+   * Show the columns containing weight/parent form elements
+   * Undo hideColumns().
+   */
+  Drupal.tableDrag.prototype.showColumns = function () {
+    var $tables = $('table').findOnce('tabledrag');
+    // Show weight/parent cells and headers.
+    $tables.find('.tabledrag-hide').css('display', '');
+    // Hide TableDrag handles.
+    $tables.find('.tabledrag-handle').css('display', 'none');
+    // Increase the colspan for any columns where it was previously reduced.
+    $tables.find('.tabledrag-has-colspan').each(function () {
+      this.colSpan = this.colSpan + 1;
+    });
+    // Change link text.
+    $('.tabledrag-toggle-weight').text(Drupal.t('Hide row weights'));
+  };
+
+  /**
+   * Find the target used within a particular row and group.
+   */
+  Drupal.tableDrag.prototype.rowSettings = function (group, row) {
+    var field = $(row).find('.' + group);
+    var tableSettingsGroup = this.tableSettings[group];
+    for (var delta in tableSettingsGroup) {
+      if (tableSettingsGroup.hasOwnProperty(delta)) {
+        var targetClass = tableSettingsGroup[delta].target;
+        if (field.is('.' + targetClass)) {
+          // Return a copy of the row settings.
+          var rowSettings = {};
+          for (var n in tableSettingsGroup[delta]) {
+            if (tableSettingsGroup[delta].hasOwnProperty(n)) {
+              rowSettings[n] = tableSettingsGroup[delta][n];
+            }
+          }
+          return rowSettings;
+        }
+      }
+    }
+  };
+
+  /**
+   * Take an item and add event handlers to make it become draggable.
+   */
+  Drupal.tableDrag.prototype.makeDraggable = function (item) {
+    var self = this;
+    var $item = $(item);
+    // Add a class to the title link
+    $item.find('td').eq(0).find('a').addClass('menu-item__link');
+    // Create the handle.
+    var handle = $('<a href="#" class="tabledrag-handle"><div class="handle">&nbsp;</div></a>').attr('title', Drupal.t('Drag to re-order'));
+    // Insert the handle after indentations (if any).
+    var $indentationLast = $item.find('td').eq(0).find('.js-indentation').eq(-1);
+    if ($indentationLast.length) {
+      $indentationLast.after(handle);
+      // Update the total width of indentation in this entire table.
+      self.indentCount = Math.max($item.find('.js-indentation').length, self.indentCount);
+    }
+    else {
+      $item.find('td').eq(0).prepend(handle);
+    }
+
+    if (Modernizr.touch) {
+      handle.on('touchstart', function (event) {
+        event.preventDefault();
+        event = event.originalEvent.touches[0];
+        self.dragStart(event, self, item);
+      });
+    }
+    else {
+      handle.on('mousedown', function (event) {
+        event.preventDefault();
+        self.dragStart(event, self, item);
+      });
+    }
+
+    // Prevent the anchor tag from jumping us to the top of the page.
+    handle.on('click', function (e) {
+      e.preventDefault();
+    });
+
+    // Set blur cleanup when a handle is focused.
+    handle.on('focus', function () {
+      self.safeBlur = true;
+    });
+
+    // On blur, fire the same function as a touchend/mouseup. This is used to
+    // update values after a row has been moved through the keyboard support.
+    handle.on('blur', function (event) {
+      if (self.rowObject && self.safeBlur) {
+        self.dropRow(event, self);
+      }
+    });
+
+    // Add arrow-key support to the handle.
+    handle.on('keydown', function (event) {
+      // If a rowObject doesn't yet exist and this isn't the tab key.
+      if (event.keyCode !== 9 && !self.rowObject) {
+        self.rowObject = new self.row(item, 'keyboard', self.indentEnabled, self.maxDepth, true);
+      }
+
+      var keyChange = false;
+      var groupHeight;
+      switch (event.keyCode) {
+        case 37: // Left arrow.
+        case 63234: // Safari left arrow.
+          keyChange = true;
+          self.rowObject.indent(-1 * self.rtl);
+          break;
+        case 38: // Up arrow.
+        case 63232: // Safari up arrow.
+          var $previousRow = $(self.rowObject.element).prev('tr').eq(0);
+          var previousRow = $previousRow.get(0);
+          while (previousRow && $previousRow.is(':hidden')) {
+            $previousRow = $(previousRow).prev('tr').eq(0);
+            previousRow = $previousRow.get(0);
+          }
+          if (previousRow) {
+            self.safeBlur = false; // Do not allow the onBlur cleanup.
+            self.rowObject.direction = 'up';
+            keyChange = true;
+
+            if ($(item).is('.tabledrag-root')) {
+              // Swap with the previous top-level row.
+              groupHeight = 0;
+              while (previousRow && $previousRow.find('.js-indentation').length) {
+                $previousRow = $(previousRow).prev('tr').eq(0);
+                previousRow = $previousRow.get(0);
+                groupHeight += $previousRow.is(':hidden') ? 0 : previousRow.offsetHeight;
+              }
+              if (previousRow) {
+                self.rowObject.swap('before', previousRow);
+                // No need to check for indentation, 0 is the only valid one.
+                window.scrollBy(0, -groupHeight);
+              }
+            }
+            else if (self.table.tBodies[0].rows[0] !== previousRow || $previousRow.is('.draggable')) {
+              // Swap with the previous row (unless previous row is the first one
+              // and undraggable).
+              self.rowObject.swap('before', previousRow);
+              self.rowObject.interval = null;
+              self.rowObject.indent(0);
+              window.scrollBy(0, -parseInt(item.offsetHeight, 10));
+            }
+            handle.trigger('focus'); // Regain focus after the DOM manipulation.
+          }
+          break;
+        case 39: // Right arrow.
+        case 63235: // Safari right arrow.
+          keyChange = true;
+          self.rowObject.indent(self.rtl);
+          break;
+        case 40: // Down arrow.
+        case 63233: // Safari down arrow.
+          var $nextRow = $(self.rowObject.group).eq(-1).next('tr').eq(0);
+          var nextRow = $nextRow.get(0);
+          while (nextRow && $nextRow.is(':hidden')) {
+            $nextRow = $(nextRow).next('tr').eq(0);
+            nextRow = $nextRow.get(0);
+          }
+          if (nextRow) {
+            self.safeBlur = false; // Do not allow the onBlur cleanup.
+            self.rowObject.direction = 'down';
+            keyChange = true;
+
+            if ($(item).is('.tabledrag-root')) {
+              // Swap with the next group (necessarily a top-level one).
+              groupHeight = 0;
+              var nextGroup = new self.row(nextRow, 'keyboard', self.indentEnabled, self.maxDepth, false);
+              if (nextGroup) {
+                $(nextGroup.group).each(function () {
+                  groupHeight += $(this).is(':hidden') ? 0 : this.offsetHeight;
+                });
+                var nextGroupRow = $(nextGroup.group).eq(-1).get(0);
+                self.rowObject.swap('after', nextGroupRow);
+                // No need to check for indentation, 0 is the only valid one.
+                window.scrollBy(0, parseInt(groupHeight, 10));
+              }
+            }
+            else {
+              // Swap with the next row.
+              self.rowObject.swap('after', nextRow);
+              self.rowObject.interval = null;
+              self.rowObject.indent(0);
+              window.scrollBy(0, parseInt(item.offsetHeight, 10));
+            }
+            handle.trigger('focus'); // Regain focus after the DOM manipulation.
+          }
+          break;
+      }
+
+      if (self.rowObject && self.rowObject.changed === true) {
+        $(item).addClass('drag');
+        if (self.oldRowElement) {
+          $(self.oldRowElement).removeClass('drag-previous');
+        }
+        self.oldRowElement = item;
+        if (self.striping === true) {
+          self.restripeTable();
+        }
+        self.onDrag();
+      }
+
+      // Returning false if we have an arrow key to prevent scrolling.
+      if (keyChange) {
+        return false;
+      }
+    });
+
+    // Compatibility addition, return false on keypress to prevent unwanted scrolling.
+    // IE and Safari will suppress scrolling on keydown, but all other browsers
+    // need to return false on keypress. http://www.quirksmode.org/js/keys.html
+    handle.on('keypress', function (event) {
+      switch (event.keyCode) {
+        case 37: // Left arrow.
+        case 38: // Up arrow.
+        case 39: // Right arrow.
+        case 40: // Down arrow.
+          return false;
+      }
+    });
+  };
+
+  /**
+   * Pointer event initiator, creates drag object and information.
+   *
+   * @param jQuery.Event event
+   *   The event object that trigger the drag.
+   * @param Drupal.tableDrag self
+   *   The drag handle.
+   * @param DOM item
+   *   The item that that is being dragged.
+   */
+  Drupal.tableDrag.prototype.dragStart = function (event, self, item) {
+    // Create a new dragObject recording the pointer information.
+    self.dragObject = {};
+    self.dragObject.initOffset = self.getPointerOffset(item, event);
+    self.dragObject.initPointerCoords = self.pointerCoords(event);
+    if (self.indentEnabled) {
+      self.dragObject.indentPointerPos = self.dragObject.initPointerCoords;
+    }
+
+    // If there's a lingering row object from the keyboard, remove its focus.
+    if (self.rowObject) {
+      $(self.rowObject.element).find('a.tabledrag-handle').trigger('blur');
+    }
+
+    // Create a new rowObject for manipulation of this row.
+    self.rowObject = new self.row(item, 'pointer', self.indentEnabled, self.maxDepth, true);
+
+    // Save the position of the table.
+    self.table.topY = $(self.table).offset().top;
+    self.table.bottomY = self.table.topY + self.table.offsetHeight;
+
+    // Add classes to the handle and row.
+    $(item).addClass('drag');
+
+    // Set the document to use the move cursor during drag.
+    $('body').addClass('drag');
+    if (self.oldRowElement) {
+      $(self.oldRowElement).removeClass('drag-previous');
+    }
+  };
+
+  /**
+   * Pointer movement handler, bound to document.
+   */
+  Drupal.tableDrag.prototype.dragRow = function (event, self) {
+    if (self.dragObject) {
+      self.currentPointerCoords = self.pointerCoords(event);
+      var y = self.currentPointerCoords.y - self.dragObject.initOffset.y;
+      var x = self.currentPointerCoords.x - self.dragObject.initOffset.x;
+
+      // Check for row swapping and vertical scrolling.
+      if (y !== self.oldY) {
+        self.rowObject.direction = y > self.oldY ? 'down' : 'up';
+        self.oldY = y; // Update the old value.
+
+        // Check if the window should be scrolled (and how fast).
+        var scrollAmount = self.checkScroll(self.currentPointerCoords.y);
+        // Stop any current scrolling.
+        clearInterval(self.scrollInterval);
+        // Continue scrolling if the mouse has moved in the scroll direction.
+        if (scrollAmount > 0 && self.rowObject.direction === 'down' || scrollAmount < 0 && self.rowObject.direction === 'up') {
+          self.setScroll(scrollAmount);
+        }
+
+        // If we have a valid target, perform the swap and restripe the table.
+        var currentRow = self.findDropTargetRow(x, y);
+        if (currentRow) {
+          if (self.rowObject.direction === 'down') {
+            self.rowObject.swap('after', currentRow, self);
+          }
+          else {
+            self.rowObject.swap('before', currentRow, self);
+          }
+          if (self.striping === true) {
+            self.restripeTable();
+          }
+        }
+      }
+
+      // Similar to row swapping, handle indentations.
+      if (self.indentEnabled) {
+        var xDiff = self.currentPointerCoords.x - self.dragObject.indentPointerPos.x;
+        // Set the number of indentations the pointer has been moved left or right.
+        var indentDiff = Math.round(xDiff / self.indentAmount);
+        // Indent the row with our estimated diff, which may be further
+        // restricted according to the rows around this row.
+        var indentChange = self.rowObject.indent(indentDiff);
+        // Update table and pointer indentations.
+        self.dragObject.indentPointerPos.x += self.indentAmount * indentChange * self.rtl;
+        self.indentCount = Math.max(self.indentCount, self.rowObject.indents);
+      }
+
+      return false;
+    }
+  };
+
+  /**
+   * Pointerup behavior.
+   */
+  Drupal.tableDrag.prototype.dropRow = function (event, self) {
+    var droppedRow;
+    var $droppedRow;
+
+    // Drop row functionality.
+    if (self.rowObject !== null) {
+      droppedRow = self.rowObject.element;
+      $droppedRow = $(droppedRow);
+      // The row is already in the right place so we just release it.
+      if (self.rowObject.changed === true) {
+        // Update the fields in the dropped row.
+        self.updateFields(droppedRow);
+
+        // If a setting exists for affecting the entire group, update all the
+        // fields in the entire dragged group.
+        for (var group in self.tableSettings) {
+          if (self.tableSettings.hasOwnProperty(group)) {
+            var rowSettings = self.rowSettings(group, droppedRow);
+            if (rowSettings.relationship === 'group') {
+              for (var n in self.rowObject.children) {
+                if (self.rowObject.children.hasOwnProperty(n)) {
+                  self.updateField(self.rowObject.children[n], group);
+                }
+              }
+            }
+          }
+        }
+
+        self.rowObject.markChanged();
+        if (self.changed === false) {
+          $(Drupal.theme('tableDragChangedWarning')).insertBefore(self.table).hide().fadeIn('slow');
+          self.changed = true;
+        }
+      }
+
+      if (self.indentEnabled) {
+        self.rowObject.removeIndentClasses();
+      }
+      if (self.oldRowElement) {
+        $(self.oldRowElement).removeClass('drag-previous');
+      }
+      $droppedRow.removeClass('drag').addClass('drag-previous');
+      self.oldRowElement = droppedRow;
+      self.onDrop();
+      self.rowObject = null;
+    }
+
+    // Functionality specific only to pointerup events.
+    if (self.dragObject !== null) {
+      self.dragObject = null;
+      $('body').removeClass('drag');
+      clearInterval(self.scrollInterval);
+    }
+  };
+
+  /**
+   * Get the coordinates from the event (allowing for browser differences).
+   */
+  Drupal.tableDrag.prototype.pointerCoords = function (event) {
+    if (event.pageX || event.pageY) {
+      return {x: event.pageX, y: event.pageY};
+    }
+    return {
+      x: event.clientX + document.body.scrollLeft - document.body.clientLeft,
+      y: event.clientY + document.body.scrollTop - document.body.clientTop
+    };
+  };
+
+  /**
+   * Given a target element and a pointer event, get the event offset from that
+   * element. To do this we need the element's position and the target position.
+   */
+  Drupal.tableDrag.prototype.getPointerOffset = function (target, event) {
+    var docPos = $(target).offset();
+    var pointerPos = this.pointerCoords(event);
+    return {x: pointerPos.x - docPos.left, y: pointerPos.y - docPos.top};
+  };
+
+  /**
+   * Find the row the mouse is currently over. This row is then taken and swapped
+   * with the one being dragged.
+   *
+   * @param x
+   *   The x coordinate of the mouse on the page (not the screen).
+   * @param y
+   *   The y coordinate of the mouse on the page (not the screen).
+   */
+  Drupal.tableDrag.prototype.findDropTargetRow = function (x, y) {
+    var rows = $(this.table.tBodies[0].rows).not(':hidden');
+    for (var n = 0; n < rows.length; n++) {
+      var row = rows[n];
+      var $row = $(row);
+      var rowY = $row.offset().top;
+      var rowHeight;
+      // Because Safari does not report offsetHeight on table rows, but does on
+      // table cells, grab the firstChild of the row and use that instead.
+      // http://jacob.peargrove.com/blog/2006/technical/table-row-offsettop-bug-in-safari.
+      if (row.offsetHeight === 0) {
+        rowHeight = parseInt(row.firstChild.offsetHeight, 10) / 2;
+      }
+      // Other browsers.
+      else {
+        rowHeight = parseInt(row.offsetHeight, 10) / 2;
+      }
+
+      // Because we always insert before, we need to offset the height a bit.
+      if ((y > (rowY - rowHeight)) && (y < (rowY + rowHeight))) {
+        if (this.indentEnabled) {
+          // Check that this row is not a child of the row being dragged.
+          for (n in this.rowObject.group) {
+            if (this.rowObject.group[n] === row) {
+              return null;
+            }
+          }
+        }
+        else {
+          // Do not allow a row to be swapped with itself.
+          if (row === this.rowObject.element) {
+            return null;
+          }
+        }
+
+        // Check that swapping with this row is allowed.
+        if (!this.rowObject.isValidSwap(row)) {
+          return null;
+        }
+
+        // We may have found the row the mouse just passed over, but it doesn't
+        // take into account hidden rows. Skip backwards until we find a draggable
+        // row.
+        while ($row.is(':hidden') && $row.prev('tr').is(':hidden')) {
+          $row = $row.prev('tr').eq(0);
+          row = $row.get(0);
+        }
+        return row;
+      }
+    }
+    return null;
+  };
+
+  /**
+   * After the row is dropped, update the table fields according to the settings
+   * set for this table.
+   *
+   * @param changedRow
+   *   DOM object for the row that was just dropped.
+   */
+  Drupal.tableDrag.prototype.updateFields = function (changedRow) {
+    for (var group in this.tableSettings) {
+      if (this.tableSettings.hasOwnProperty(group)) {
+        // Each group may have a different setting for relationship, so we find
+        // the source rows for each separately.
+        this.updateField(changedRow, group);
+      }
+    }
+  };
+
+  /**
+   * After the row is dropped, update a single table field according to specific
+   * settings.
+   *
+   * @param changedRow
+   *   DOM object for the row that was just dropped.
+   * @param group
+   *   The settings group on which field updates will occur.
+   */
+  Drupal.tableDrag.prototype.updateField = function (changedRow, group) {
+    var rowSettings = this.rowSettings(group, changedRow);
+    var $changedRow = $(changedRow);
+    var sourceRow;
+    var $previousRow;
+    var previousRow;
+    var useSibling;
+    // Set the row as its own target.
+    if (rowSettings.relationship === 'self' || rowSettings.relationship === 'group') {
+      sourceRow = changedRow;
+    }
+    // Siblings are easy, check previous and next rows.
+    else if (rowSettings.relationship === 'sibling') {
+      $previousRow = $changedRow.prev('tr').eq(0);
+      previousRow = $previousRow.get(0);
+      var $nextRow = $changedRow.next('tr').eq(0);
+      var nextRow = $nextRow.get(0);
+      sourceRow = changedRow;
+      if ($previousRow.is('.draggable') && $previousRow.find('.' + group).length) {
+        if (this.indentEnabled) {
+          if ($previousRow.find('.js-indentations').length === $changedRow.find('.js-indentations').length) {
+            sourceRow = previousRow;
+          }
+        }
+        else {
+          sourceRow = previousRow;
+        }
+      }
+      else if ($nextRow.is('.draggable') && $nextRow.find('.' + group).length) {
+        if (this.indentEnabled) {
+          if ($nextRow.find('.js-indentations').length === $changedRow.find('.js-indentations').length) {
+            sourceRow = nextRow;
+          }
+        }
+        else {
+          sourceRow = nextRow;
+        }
+      }
+    }
+    // Parents, look up the tree until we find a field not in this group.
+    // Go up as many parents as indentations in the changed row.
+    else if (rowSettings.relationship === 'parent') {
+      $previousRow = $changedRow.prev('tr');
+      previousRow = $previousRow;
+      while ($previousRow.length && $previousRow.find('.js-indentation').length >= this.rowObject.indents) {
+        $previousRow = $previousRow.prev('tr');
+        previousRow = $previousRow;
+      }
+      // If we found a row.
+      if ($previousRow.length) {
+        sourceRow = $previousRow.get(0);
+      }
+      // Otherwise we went all the way to the left of the table without finding
+      // a parent, meaning this item has been placed at the root level.
+      else {
+        // Use the first row in the table as source, because it's guaranteed to
+        // be at the root level. Find the first item, then compare this row
+        // against it as a sibling.
+        sourceRow = $(this.table).find('tr.draggable').eq(0).get(0);
+        if (sourceRow === this.rowObject.element) {
+          sourceRow = $(this.rowObject.group[this.rowObject.group.length - 1]).next('tr.draggable').get(0);
+        }
+        useSibling = true;
+      }
+    }
+
+    // Because we may have moved the row from one category to another,
+    // take a look at our sibling and borrow its sources and targets.
+    this.copyDragClasses(sourceRow, changedRow, group);
+    rowSettings = this.rowSettings(group, changedRow);
+
+    // In the case that we're looking for a parent, but the row is at the top
+    // of the tree, copy our sibling's values.
+    if (useSibling) {
+      rowSettings.relationship = 'sibling';
+      rowSettings.source = rowSettings.target;
+    }
+
+    var targetClass = '.' + rowSettings.target;
+    var targetElement = $changedRow.find(targetClass).get(0);
+
+    // Check if a target element exists in this row.
+    if (targetElement) {
+      var sourceClass = '.' + rowSettings.source;
+      var sourceElement = $(sourceClass, sourceRow).get(0);
+      switch (rowSettings.action) {
+        case 'depth':
+          // Get the depth of the target row.
+          targetElement.value = $(sourceElement).closest('tr').find('.js-indentation').length;
+          break;
+        case 'match':
+          // Update the value.
+          targetElement.value = sourceElement.value;
+          break;
+        case 'order':
+          var siblings = this.rowObject.findSiblings(rowSettings);
+          if ($(targetElement).is('select')) {
+            // Get a list of acceptable values.
+            var values = [];
+            $(targetElement).find('option').each(function () {
+              values.push(this.value);
+            });
+            var maxVal = values[values.length - 1];
+            // Populate the values in the siblings.
+            $(siblings).find(targetClass).each(function () {
+              // If there are more items than possible values, assign the maximum value to the row.
+              if (values.length > 0) {
+                this.value = values.shift();
+              }
+              else {
+                this.value = maxVal;
+              }
+            });
+          }
+          else {
+            // Assume a numeric input field.
+            var weight = parseInt($(siblings[0]).find(targetClass).val(), 10) || 0;
+            $(siblings).find(targetClass).each(function () {
+              this.value = weight;
+              weight++;
+            });
+          }
+          break;
+      }
+    }
+  };
+
+  /**
+   * Copy all special tableDrag classes from one row's form elements to a
+   * different one, removing any special classes that the destination row
+   * may have had.
+   */
+  Drupal.tableDrag.prototype.copyDragClasses = function (sourceRow, targetRow, group) {
+    var sourceElement = $(sourceRow).find('.' + group);
+    var targetElement = $(targetRow).find('.' + group);
+    if (sourceElement.length && targetElement.length) {
+      targetElement[0].className = sourceElement[0].className;
+    }
+  };
+
+  Drupal.tableDrag.prototype.checkScroll = function (cursorY) {
+    var de = document.documentElement;
+    var b = document.body;
+
+    var windowHeight = this.windowHeight = window.innerHeight || (de.clientHeight && de.clientWidth !== 0 ? de.clientHeight : b.offsetHeight);
+    var scrollY;
+    if (document.all) {
+      scrollY = this.scrollY = !de.scrollTop ? b.scrollTop : de.scrollTop;
+    }
+    else {
+      scrollY = this.scrollY = window.pageYOffset ? window.pageYOffset : window.scrollY;
+    }
+    var trigger = this.scrollSettings.trigger;
+    var delta = 0;
+
+    // Return a scroll speed relative to the edge of the screen.
+    if (cursorY - scrollY > windowHeight - trigger) {
+      delta = trigger / (windowHeight + scrollY - cursorY);
+      delta = (delta > 0 && delta < trigger) ? delta : trigger;
+      return delta * this.scrollSettings.amount;
+    }
+    else if (cursorY - scrollY < trigger) {
+      delta = trigger / (cursorY - scrollY);
+      delta = (delta > 0 && delta < trigger) ? delta : trigger;
+      return -delta * this.scrollSettings.amount;
+    }
+  };
+
+  Drupal.tableDrag.prototype.setScroll = function (scrollAmount) {
+    var self = this;
+
+    this.scrollInterval = setInterval(function () {
+      // Update the scroll values stored in the object.
+      self.checkScroll(self.currentPointerCoords.y);
+      var aboveTable = self.scrollY > self.table.topY;
+      var belowTable = self.scrollY + self.windowHeight < self.table.bottomY;
+      if (scrollAmount > 0 && belowTable || scrollAmount < 0 && aboveTable) {
+        window.scrollBy(0, scrollAmount);
+      }
+    }, this.scrollSettings.interval);
+  };
+
+  Drupal.tableDrag.prototype.restripeTable = function () {
+    // :even and :odd are reversed because jQuery counts from 0 and
+    // we count from 1, so we're out of sync.
+    // Match immediate children of the parent element to allow nesting.
+    $(this.table).find('> tbody > tr.draggable:visible, > tr.draggable:visible')
+      .removeClass('odd even')
+      .filter(':odd').addClass('even').end()
+      .filter(':even').addClass('odd');
+  };
+
+  /**
+   * Stub function. Allows a custom handler when a row begins dragging.
+   */
+  Drupal.tableDrag.prototype.onDrag = function () {
+    return null;
+  };
+
+  /**
+   * Stub function. Allows a custom handler when a row is dropped.
+   */
+  Drupal.tableDrag.prototype.onDrop = function () {
+    return null;
+  };
+
+  /**
+   * Constructor to make a new object to manipulate a table row.
+   *
+   * @param tableRow
+   *   The DOM element for the table row we will be manipulating.
+   * @param method
+   *   The method in which this row is being moved. Either 'keyboard' or 'mouse'.
+   * @param indentEnabled
+   *   Whether the containing table uses indentations. Used for optimizations.
+   * @param maxDepth
+   *   The maximum amount of indentations this row may contain.
+   * @param addClasses
+   *   Whether we want to add classes to this row to indicate child relationships.
+   */
+  Drupal.tableDrag.prototype.row = function (tableRow, method, indentEnabled, maxDepth, addClasses) {
+    var $tableRow = $(tableRow);
+
+    this.element = tableRow;
+    this.method = method;
+    this.group = [tableRow];
+    this.groupDepth = $tableRow.find('.js-indentation').length;
+    this.changed = false;
+    this.table = $tableRow.closest('table')[0];
+    this.indentEnabled = indentEnabled;
+    this.maxDepth = maxDepth;
+    this.direction = ''; // Direction the row is being moved.
+
+    if (this.indentEnabled) {
+      this.indents = $tableRow.find('.js-indentation').length;
+      this.children = this.findChildren(addClasses);
+      this.group = $.merge(this.group, this.children);
+      // Find the depth of this entire group.
+      for (var n = 0; n < this.group.length; n++) {
+        this.groupDepth = Math.max($(this.group[n]).find('.js-indentation').length, this.groupDepth);
+      }
+    }
+  };
+
+  /**
+   * Find all children of rowObject by indentation.
+   *
+   * @param addClasses
+   *   Whether we want to add classes to this row to indicate child relationships.
+   */
+  Drupal.tableDrag.prototype.row.prototype.findChildren = function (addClasses) {
+    var parentIndentation = this.indents;
+    var currentRow = $(this.element, this.table).next('tr.draggable');
+    var rows = [];
+    var child = 0;
+
+    function rowIndentation(el, indentNum) {
+      var self = $(el);
+      if (child === 1 && (indentNum === parentIndentation)) {
+        self.addClass('tree-child-first');
+      }
+      if (indentNum === parentIndentation) {
+        self.addClass('tree-child');
+      }
+      else if (indentNum > parentIndentation) {
+        self.addClass('tree-child-horizontal');
+      }
+    }
+
+    while (currentRow.length) {
+      // A greater indentation indicates this is a child.
+      if (currentRow.find('.js-indentation').length > parentIndentation) {
+        child++;
+        rows.push(currentRow[0]);
+        if (addClasses) {
+          currentRow.find('.js-indentation').each(rowIndentation);
+        }
+      }
+      else {
+        break;
+      }
+      currentRow = currentRow.next('tr.draggable');
+    }
+    if (addClasses && rows.length) {
+      $(rows[rows.length - 1]).find('.js-indentation:nth-child(' + (parentIndentation + 1) + ')').addClass('tree-child-last');
+    }
+    return rows;
+  };
+
+  /**
+   * Ensure that two rows are allowed to be swapped.
+   *
+   * @param row
+   *   DOM object for the row being considered for swapping.
+   */
+  Drupal.tableDrag.prototype.row.prototype.isValidSwap = function (row) {
+    var $row = $(row);
+    if (this.indentEnabled) {
+      var prevRow;
+      var nextRow;
+      if (this.direction === 'down') {
+        prevRow = row;
+        nextRow = $row.next('tr').get(0);
+      }
+      else {
+        prevRow = $row.prev('tr').get(0);
+        nextRow = row;
+      }
+      this.interval = this.validIndentInterval(prevRow, nextRow);
+
+      // We have an invalid swap if the valid indentations interval is empty.
+      if (this.interval.min > this.interval.max) {
+        return false;
+      }
+    }
+
+    // Do not let an un-draggable first row have anything put before it.
+    if (this.table.tBodies[0].rows[0] === row && $row.is(':not(.draggable)')) {
+      return false;
+    }
+
+    return true;
+  };
+
+  /**
+   * Perform the swap between two rows.
+   *
+   * @param position
+   *   Whether the swap will occur 'before' or 'after' the given row.
+   * @param row
+   *   DOM element what will be swapped with the row group.
+   */
+  Drupal.tableDrag.prototype.row.prototype.swap = function (position, row) {
+    // Makes sure only DOM object are passed to Drupal.detachBehaviors().
+    this.group.forEach(function (row) {
+      Drupal.detachBehaviors(row, drupalSettings, 'move');
+    });
+    $(row)[position](this.group);
+    // Makes sure only DOM object are passed to Drupal.attachBehaviors()s.
+    this.group.forEach(function (row) {
+      Drupal.attachBehaviors(row, drupalSettings);
+    });
+    this.changed = true;
+    this.onSwap(row);
+  };
+
+  /**
+   * Determine the valid indentations interval for the row at a given position
+   * in the table.
+   *
+   * @param prevRow
+   *   DOM object for the row before the tested position
+   *   (or null for first position in the table).
+   * @param nextRow
+   *   DOM object for the row after the tested position
+   *   (or null for last position in the table).
+   */
+  Drupal.tableDrag.prototype.row.prototype.validIndentInterval = function (prevRow, nextRow) {
+    var $prevRow = $(prevRow);
+    var minIndent;
+    var maxIndent;
+
+    // Minimum indentation:
+    // Do not orphan the next row.
+    minIndent = nextRow ? $(nextRow).find('.js-indentation').length : 0;
+
+    // Maximum indentation:
+    if (!prevRow || $prevRow.is(':not(.draggable)') || $(this.element).is('.tabledrag-root')) {
+      // Do not indent:
+      // - the first row in the table,
+      // - rows dragged below a non-draggable row,
+      // - 'root' rows.
+      maxIndent = 0;
+    }
+    else {
+      // Do not go deeper than as a child of the previous row.
+      maxIndent = $prevRow.find('.js-indentation').length + ($prevRow.is('.tabledrag-leaf') ? 0 : 1);
+      // Limit by the maximum allowed depth for the table.
+      if (this.maxDepth) {
+        maxIndent = Math.min(maxIndent, this.maxDepth - (this.groupDepth - this.indents));
+      }
+    }
+
+    return {'min': minIndent, 'max': maxIndent};
+  };
+
+  /**
+   * Indent a row within the legal bounds of the table.
+   *
+   * @param indentDiff
+   *   The number of additional indentations proposed for the row (can be
+   *   positive or negative). This number will be adjusted to nearest valid
+   *   indentation level for the row.
+   */
+  Drupal.tableDrag.prototype.row.prototype.indent = function (indentDiff) {
+    var $group = $(this.group);
+    // Determine the valid indentations interval if not available yet.
+    if (!this.interval) {
+      var prevRow = $(this.element).prev('tr').get(0);
+      var nextRow = $group.eq(-1).next('tr').get(0);
+      this.interval = this.validIndentInterval(prevRow, nextRow);
+    }
+
+    // Adjust to the nearest valid indentation.
+    var indent = this.indents + indentDiff;
+    indent = Math.max(indent, this.interval.min);
+    indent = Math.min(indent, this.interval.max);
+    indentDiff = indent - this.indents;
+
+    for (var n = 1; n <= Math.abs(indentDiff); n++) {
+      // Add or remove indentations.
+      if (indentDiff < 0) {
+        $group.find('.js-indentation').eq(0).remove();
+        this.indents--;
+      }
+      else {
+        $group.find('td').eq(0).prepend(Drupal.theme('tableDragIndentation'));
+        this.indents++;
+      }
+    }
+    if (indentDiff) {
+      // Update indentation for this row.
+      this.changed = true;
+      this.groupDepth += indentDiff;
+      this.onIndent();
+    }
+
+    return indentDiff;
+  };
+
+  /**
+   * Find all siblings for a row, either according to its subgroup or indentation.
+   * Note that the passed-in row is included in the list of siblings.
+   *
+   * @param settings
+   *   The field settings we're using to identify what constitutes a sibling.
+   */
+  Drupal.tableDrag.prototype.row.prototype.findSiblings = function (rowSettings) {
+    var siblings = [];
+    var directions = ['prev', 'next'];
+    var rowIndentation = this.indents;
+    var checkRowIndentation;
+    for (var d = 0; d < directions.length; d++) {
+      var checkRow = $(this.element)[directions[d]]();
+      while (checkRow.length) {
+        // Check that the sibling contains a similar target field.
+        if (checkRow.find('.' + rowSettings.target)) {
+          // Either add immediately if this is a flat table, or check to ensure
+          // that this row has the same level of indentation.
+          if (this.indentEnabled) {
+            checkRowIndentation = checkRow.find('.js-indentation').length;
+          }
+
+          if (!(this.indentEnabled) || (checkRowIndentation === rowIndentation)) {
+            siblings.push(checkRow[0]);
+          }
+          else if (checkRowIndentation < rowIndentation) {
+            // No need to keep looking for siblings when we get to a parent.
+            break;
+          }
+        }
+        else {
+          break;
+        }
+        checkRow = checkRow[directions[d]]();
+      }
+      // Since siblings are added in reverse order for previous, reverse the
+      // completed list of previous siblings. Add the current row and continue.
+      if (directions[d] === 'prev') {
+        siblings.reverse();
+        siblings.push(this.element);
+      }
+    }
+    return siblings;
+  };
+
+  /**
+   * Remove indentation helper classes from the current row group.
+   */
+  Drupal.tableDrag.prototype.row.prototype.removeIndentClasses = function () {
+    for (var n in this.children) {
+      if (this.children.hasOwnProperty(n)) {
+        $(this.children[n]).find('.js-indentation')
+          .removeClass('tree-child')
+          .removeClass('tree-child-first')
+          .removeClass('tree-child-last')
+          .removeClass('tree-child-horizontal');
+      }
+    }
+  };
+
+  /**
+   * Add an asterisk or other marker to the changed row.
+   */
+  Drupal.tableDrag.prototype.row.prototype.markChanged = function () {
+    var marker = Drupal.theme('tableDragChangedMarker');
+    var cell = $(this.element).find('td').eq(0);
+    if (cell.find('abbr.tabledrag-changed').length === 0) {
+      cell.append(marker);
+    }
+  };
+
+  /**
+   * Stub function. Allows a custom handler when a row is indented.
+   */
+  Drupal.tableDrag.prototype.row.prototype.onIndent = function () {
+    return null;
+  };
+
+  /**
+   * Stub function. Allows a custom handler when a row is swapped.
+   */
+  Drupal.tableDrag.prototype.row.prototype.onSwap = function (swappedRow) {
+    return null;
+  };
+
+  $.extend(Drupal.theme, {
+    tableDragChangedMarker: function () {
+      return '<abbr class="warning tabledrag-changed" title="' + Drupal.t('Changed') + '">*</abbr>';
+    },
+    tableDragIndentation: function () {
+      return '<div class="js-indentation indentation">&nbsp;</div>';
+    },
+    tableDragChangedWarning: function () {
+      return '<div class="tabledrag-changed-warning messages messages--warning" role="alert">' + Drupal.theme('tableDragChangedMarker') + ' ' + Drupal.t('You have unsaved changes.') + '</div>';
+    }
+  });
+
+})(jQuery, Drupal, drupalSettings);
+;
+/**
+ * @file
+ * Attaches behaviors for Drupal's active link marking.
+ */
+
+(function (Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Append is-active class.
+   *
+   * The link is only active if its path corresponds to the current path, the
+   * language of the linked path is equal to the current language, and if the
+   * query parameters of the link equal those of the current request, since the
+   * same request with different query parameters may yield a different page
+   * (e.g. pagers, exposed View filters).
+   *
+   * Does not discriminate based on element type, so allows you to set the
+   * is-active class on any element: a, li…
+   */
+  Drupal.behaviors.activeLinks = {
+    attach: function (context) {
+      // Start by finding all potentially active links.
+      var path = drupalSettings.path;
+      var queryString = JSON.stringify(path.currentQuery);
+      var querySelector = path.currentQuery ? "[data-drupal-link-query='" + queryString + "']" : ':not([data-drupal-link-query])';
+      var originalSelectors = ['[data-drupal-link-system-path="' + path.currentPath + '"]'];
+      var selectors;
+
+      // If this is the front page, we have to check for the <front> path as well.
+      if (path.isFront) {
+        originalSelectors.push('[data-drupal-link-system-path="<front>"]');
+      }
+
+      // Add language filtering.
+      selectors = [].concat(
+        // Links without any hreflang attributes (most of them).
+        originalSelectors.map(function (selector) { return selector + ':not([hreflang])'; }),
+        // Links with hreflang equals to the current language.
+        originalSelectors.map(function (selector) { return selector + '[hreflang="' + path.currentLanguage + '"]'; })
+      );
+
+      // Add query string selector for pagers, exposed filters.
+      selectors = selectors.map(function (current) { return current + querySelector; });
+
+      // Query the DOM.
+      var activeLinks = context.querySelectorAll(selectors.join(','));
+      var il = activeLinks.length;
+      for (var i = 0; i < il; i++) {
+        activeLinks[i].classList.add('is-active');
+      }
+    },
+    detach: function (context, settings, trigger) {
+      if (trigger === 'unload') {
+        var activeLinks = context.querySelectorAll('[data-drupal-link-system-path].is-active');
+        var il = activeLinks.length;
+        for (var i = 0; i < il; i++) {
+          activeLinks[i].classList.remove('is-active');
+        }
+      }
+    }
+  };
+
+})(Drupal, drupalSettings);
+;
+/**
+ * Limits the invocations of a function in a given time frame.
+ *
+ * Adapted from underscore.js with the addition Drupal namespace.
+ *
+ * The debounce function wrapper should be used sparingly. One clear use case
+ * is limiting the invocation of a callback attached to the window resize event.
+ *
+ * Before using the debounce function wrapper, consider first whether the
+ * callback could be attached to an event that fires less frequently or if the
+ * function can be written in such a way that it is only invoked under specific
+ * conditions.
+ *
+ * @param {Function} callback
+ *   The function to be invoked.
+ *
+ * @param {Number} wait
+ *   The time period within which the callback function should only be
+ *   invoked once. For example if the wait period is 250ms, then the callback
+ *   will only be called at most 4 times per second.
+ */
+Drupal.debounce = function (func, wait, immediate) {
+
+  "use strict";
+
+  var timeout;
+  var result;
+  return function () {
+    var context = this;
+    var args = arguments;
+    var later = function () {
+      timeout = null;
+      if (!immediate) {
+        result = func.apply(context, args);
+      }
+    };
+    var callNow = immediate && !timeout;
+    clearTimeout(timeout);
+    timeout = setTimeout(later, wait);
+    if (callNow) {
+      result = func.apply(context, args);
+    }
+    return result;
+  };
+};
+;
+/**
+ * Manages elements that can offset the size of the viewport.
+ *
+ * Measures and reports viewport offset dimensions from elements like the
+ * toolbar that can potentially displace the positioning of other elements.
+ */
+(function ($, Drupal, debounce) {
+
+  "use strict";
+
+  var offsets = {
+    top: 0,
+    right: 0,
+    bottom: 0,
+    left: 0
+  };
+
+  /**
+   * Registers a resize handler on the window.
+   */
+  Drupal.behaviors.drupalDisplace = {
+    attach: function () {
+      // Mark this behavior as processed on the first pass.
+      if (this.displaceProcessed) {
+        return;
+      }
+      this.displaceProcessed = true;
+
+      $(window).on('resize.drupalDisplace', debounce(displace, 200));
+    }
+  };
+
+  /**
+   * Informs listeners of the current offset dimensions.
+   *
+   * @param {boolean} broadcast
+   *   (optional) When true or undefined, causes the recalculated offsets values to be
+   *   broadcast to listeners.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function displace(broadcast) {
+    offsets = Drupal.displace.offsets = calculateOffsets();
+    if (typeof broadcast === 'undefined' || broadcast) {
+      $(document).trigger('drupalViewportOffsetChange', offsets);
+    }
+    return offsets;
+  }
+
+  /**
+   * Determines the viewport offsets.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function calculateOffsets() {
+    return {
+      top: calculateOffset('top'),
+      right: calculateOffset('right'),
+      bottom: calculateOffset('bottom'),
+      left: calculateOffset('left')
+    };
+  }
+
+  /**
+   * Gets a specific edge's offset.
+   *
+   * Any element with the attribute data-offset-{edge} e.g. data-offset-top will
+   * be considered in the viewport offset calculations. If the attribute has a
+   * numeric value, that value will be used. If no value is provided, one will
+   * be calculated using the element's dimensions and placement.
+   *
+   * @param {string} edge
+   *   The name of the edge to calculate. Can be 'top', 'right',
+   *   'bottom' or 'left'.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function calculateOffset(edge) {
+    var edgeOffset = 0;
+    var displacingElements = document.querySelectorAll('[data-offset-' + edge + ']');
+    var n = displacingElements.length;
+    for (var i = 0; i < n; i++) {
+      var el = displacingElements[i];
+      // If the element is not visible, do consider its dimensions.
+      if (el.style.display === 'none') {
+        continue;
+      }
+      // If the offset data attribute contains a displacing value, use it.
+      var displacement = parseInt(el.getAttribute('data-offset-' + edge), 10);
+      // If the element's offset data attribute exits
+      // but is not a valid number then get the displacement
+      // dimensions directly from the element.
+      if (isNaN(displacement)) {
+        displacement = getRawOffset(el, edge);
+      }
+      // If the displacement value is larger than the current value for this
+      // edge, use the displacement value.
+      edgeOffset = Math.max(edgeOffset, displacement);
+    }
+
+    return edgeOffset;
+  }
+
+  /**
+   * Calculates displacement for element based on its dimensions and placement.
+   *
+   * @param {jQuery} $el
+   *   The jQuery element whose dimensions and placement will be measured.
+   *
+   * @param {string} edge
+   *   The name of the edge of the viewport that the element is associated
+   *   with.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function getRawOffset(el, edge) {
+    var $el = $(el);
+    var documentElement = document.documentElement;
+    var displacement = 0;
+    var horizontal = (edge === 'left' || edge === 'right');
+    // Get the offset of the element itself.
+    var placement = $el.offset()[horizontal ? 'left' : 'top'];
+    // Subtract scroll distance from placement to get the distance
+    // to the edge of the viewport.
+    placement -= window['scroll' + (horizontal ? 'X' : 'Y')] || document.documentElement['scroll' + (horizontal) ? 'Left' : 'Top'] || 0;
+    // Find the displacement value according to the edge.
+    switch (edge) {
+      // Left and top elements displace as a sum of their own offset value
+      // plus their size.
+      case 'top':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerHeight();
+        break;
+
+      case 'left':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerWidth();
+        break;
+
+      // Right and bottom elements displace according to their left and
+      // top offset. Their size isn't important.
+      case 'bottom':
+        displacement = documentElement.clientHeight - placement;
+        break;
+
+      case 'right':
+        displacement = documentElement.clientWidth - placement;
+        break;
+
+      default:
+        displacement = 0;
+    }
+    return displacement;
+  }
+
+  /**
+   * Assign the displace function to a property of the Drupal global object.
+   */
+  Drupal.displace = displace;
+  $.extend(Drupal.displace, {
+    /**
+     * Expose offsets to other scripts to avoid having to recalculate offsets
+     */
+    offsets: offsets,
+    /**
+     * Expose method to compute a single edge offsets.
+     */
+    calculateOffset: calculateOffset
+  });
+
+})(jQuery, Drupal, Drupal.debounce);
+;
+(function ($, Drupal, displace) {
+
+  "use strict";
+
+  /**
+   * Attaches sticky table headers.
+   */
+  Drupal.behaviors.tableHeader = {
+    attach: function (context) {
+      $(window).one('scroll.TableHeaderInit', {context: context}, tableHeaderInitHandler);
+    }
+  };
+
+  function scrollValue(position) {
+    return document.documentElement[position] || document.body[position];
+  }
+
+  // Select and initialize sticky table headers.
+  function tableHeaderInitHandler(e) {
+    var $tables = $(e.data.context).find('table.sticky-enabled').once('tableheader');
+    var il = $tables.length;
+    for (var i = 0; i < il; i++) {
+      TableHeader.tables.push(new TableHeader($tables[i]));
+    }
+    forTables('onScroll');
+  }
+
+  // Helper method to loop through tables and execute a method.
+  function forTables(method, arg) {
+    var tables = TableHeader.tables;
+    var il = tables.length;
+    for (var i = 0; i < il; i++) {
+      tables[i][method](arg);
+    }
+  }
+
+  function tableHeaderResizeHandler(e) {
+    forTables('recalculateSticky');
+  }
+
+  function tableHeaderOnScrollHandler(e) {
+    forTables('onScroll');
+  }
+
+  function tableHeaderOffsetChangeHandler(e, offsets) {
+    forTables('stickyPosition', offsets.top);
+  }
+
+  // Bind event that need to change all tables.
+  $(window).on({
+    /**
+     * When resizing table width can change, recalculate everything.
+     */
+    'resize.TableHeader': tableHeaderResizeHandler,
+
+    /**
+     * Bind only one event to take care of calling all scroll callbacks.
+     */
+    'scroll.TableHeader': tableHeaderOnScrollHandler
+  });
+  // Bind to custom Drupal events.
+  $(document).on({
+    /**
+     * Recalculate columns width when window is resized and when show/hide
+     * weight is triggered.
+     */
+    'columnschange.TableHeader': tableHeaderResizeHandler,
+
+    /**
+     * Recalculate TableHeader.topOffset when viewport is resized
+     */
+    'drupalViewportOffsetChange.TableHeader': tableHeaderOffsetChangeHandler
+  });
+
+  /**
+   * Constructor for the tableHeader object. Provides sticky table headers.
+   *
+   * TableHeader will make the current table header stick to the top of the page
+   * if the table is very long.
+   *
+   * @param table
+   *   DOM object for the table to add a sticky header to.
+   *
+   * @constructor
+   */
+  function TableHeader(table) {
+    var $table = $(table);
+
+    this.$originalTable = $table;
+    this.$originalHeader = $table.children('thead');
+    this.$originalHeaderCells = this.$originalHeader.find('> tr > th');
+    this.displayWeight = null;
+
+    this.$originalTable.addClass('sticky-table');
+    this.tableHeight = $table[0].clientHeight;
+    this.tableOffset = this.$originalTable.offset();
+
+    // React to columns change to avoid making checks in the scroll callback.
+    this.$originalTable.on('columnschange', {tableHeader: this}, function (e, display) {
+      var tableHeader = e.data.tableHeader;
+      if (tableHeader.displayWeight === null || tableHeader.displayWeight !== display) {
+        tableHeader.recalculateSticky();
+      }
+      tableHeader.displayWeight = display;
+    });
+
+    // Create and display sticky header.
+    this.createSticky();
+  }
+
+  /**
+   * Store the state of TableHeader.
+   */
+  $.extend(TableHeader, {
+    /**
+     * This will store the state of all processed tables.
+     *
+     * @type {Array}
+     */
+    tables: []
+  });
+
+  /**
+   * Extend TableHeader prototype.
+   */
+  $.extend(TableHeader.prototype, {
+    /**
+     * Minimum height in pixels for the table to have a sticky header.
+     */
+    minHeight: 100,
+
+    /**
+     * Absolute position of the table on the page.
+     */
+    tableOffset: null,
+
+    /**
+     * Absolute position of the table on the page.
+     */
+    tableHeight: null,
+
+    /**
+     * Boolean storing the sticky header visibility state.
+     */
+    stickyVisible: false,
+
+    /**
+     * Create the duplicate header.
+     */
+    createSticky: function () {
+      // Clone the table header so it inherits original jQuery properties.
+      var $stickyHeader = this.$originalHeader.clone(true);
+      // Hide the table to avoid a flash of the header clone upon page load.
+      this.$stickyTable = $('<table class="sticky-header"/>')
+        .css({
+          visibility: 'hidden',
+          position: 'fixed',
+          top: '0px'
+        })
+        .append($stickyHeader)
+        .insertBefore(this.$originalTable);
+
+      this.$stickyHeaderCells = $stickyHeader.find('> tr > th');
+
+      // Initialize all computations.
+      this.recalculateSticky();
+    },
+
+    /**
+     * Set absolute position of sticky.
+     *
+     * @param offsetTop
+     * @param offsetLeft
+     */
+    stickyPosition: function (offsetTop, offsetLeft) {
+      var css = {};
+      if (typeof offsetTop === 'number') {
+        css.top = offsetTop + 'px';
+      }
+      if (typeof offsetLeft === 'number') {
+        css.left = (this.tableOffset.left - offsetLeft) + 'px';
+      }
+      return this.$stickyTable.css(css);
+    },
+
+    /**
+     * Returns true if sticky is currently visible.
+     */
+    checkStickyVisible: function () {
+      var scrollTop = scrollValue('scrollTop');
+      var tableTop = this.tableOffset.top - displace.offsets.top;
+      var tableBottom = tableTop + this.tableHeight;
+      var visible = false;
+
+      if (tableTop < scrollTop && scrollTop < (tableBottom - this.minHeight)) {
+        visible = true;
+      }
+
+      this.stickyVisible = visible;
+      return visible;
+    },
+
+    /**
+     * Check if sticky header should be displayed.
+     *
+     * This function is throttled to once every 250ms to avoid unnecessary calls.
+     *
+     * @param event
+     */
+    onScroll: function (e) {
+      this.checkStickyVisible();
+      // Track horizontal positioning relative to the viewport.
+      this.stickyPosition(null, scrollValue('scrollLeft'));
+      this.$stickyTable.css('visibility', this.stickyVisible ? 'visible' : 'hidden');
+    },
+
+    /**
+     * Event handler: recalculates position of the sticky table header.
+     *
+     * @param event
+     *   Event being triggered.
+     */
+    recalculateSticky: function (event) {
+      // Update table size.
+      this.tableHeight = this.$originalTable[0].clientHeight;
+
+      // Update offset top.
+      displace.offsets.top = displace.calculateOffset('top');
+      this.tableOffset = this.$originalTable.offset();
+      this.stickyPosition(displace.offsets.top, scrollValue('scrollLeft'));
+
+      // Update columns width.
+      var $that = null;
+      var $stickyCell = null;
+      var display = null;
+      // Resize header and its cell widths.
+      // Only apply width to visible table cells. This prevents the header from
+      // displaying incorrectly when the sticky header is no longer visible.
+      var il = this.$originalHeaderCells.length;
+      for (var i = 0; i < il; i++) {
+        $that = $(this.$originalHeaderCells[i]);
+        $stickyCell = this.$stickyHeaderCells.eq($that.index());
+        display = $that.css('display');
+        if (display !== 'none') {
+          $stickyCell.css({'width': $that.css('width'), 'display': display});
+        }
+        else {
+          $stickyCell.css('display', 'none');
+        }
+      }
+      this.$stickyTable.css('width', this.$originalTable.outerWidth());
+    }
+  });
+
+  // Expose constructor in the public space.
+  Drupal.TableHeader = TableHeader;
+
+}(jQuery, Drupal, window.parent.Drupal.displace));
+;
+(function ($, window) {
+
+  "use strict";
+
+  /**
+   * Provide the summary information for the block settings vertical tabs.
+   */
+  Drupal.behaviors.blockSettingsSummary = {
+    attach: function () {
+      // The drupalSetSummary method required for this behavior is not available
+      // on the Blocks administration page, so we need to make sure this
+      // behavior is processed only if drupalSetSummary is defined.
+      if (typeof jQuery.fn.drupalSetSummary === 'undefined') {
+        return;
+      }
+
+      function checkboxesSummary(context) {
+        var vals = [];
+        var $checkboxes = $(context).find('input[type="checkbox"]:checked + label');
+        var il = $checkboxes.length;
+        for (var i = 0; i < il; i++) {
+          vals.push($($checkboxes[i]).text());
+        }
+        if (!vals.length) {
+          vals.push(Drupal.t('Not restricted'));
+        }
+        return vals.join(', ');
+      }
+
+      $('#edit-visibility-node-type, #edit-visibility-language, #edit-visibility-user-role').drupalSetSummary(checkboxesSummary);
+
+      $('#edit-visibility-request-path').drupalSetSummary(function (context) {
+        var $pages = $(context).find('textarea[name="visibility[request_path][pages]"]');
+        if (!$pages.val()) {
+          return Drupal.t('Not restricted');
+        }
+        else {
+          return Drupal.t('Restricted to certain pages');
+        }
+      });
+    }
+  };
+
+  /**
+   * Move a block in the blocks table from one region to another via select list.
+   *
+   * This behavior is dependent on the tableDrag behavior, since it uses the
+   * objects initialized in that behavior to update the row.
+   */
+  Drupal.behaviors.blockDrag = {
+    attach: function (context, settings) {
+      // tableDrag is required and we should be on the blocks admin page.
+      if (typeof Drupal.tableDrag === 'undefined' || typeof Drupal.tableDrag.blocks === 'undefined') {
+        return;
+      }
+
+      var table = $('#blocks');
+      var tableDrag = Drupal.tableDrag.blocks; // Get the blocks tableDrag object.
+
+      // Add a handler for when a row is swapped, update empty regions.
+      tableDrag.row.prototype.onSwap = function (swappedRow) {
+        checkEmptyRegions(table, this);
+      };
+
+      // Add a handler so when a row is dropped, update fields dropped into new regions.
+      tableDrag.onDrop = function () {
+        var dragObject = this;
+        var $rowElement = $(dragObject.rowObject.element);
+        // Use "region-message" row instead of "region" row because
+        // "region-{region_name}-message" is less prone to regexp match errors.
+        var regionRow = $rowElement.prevAll('tr.region-message').get(0);
+        var regionName = regionRow.className.replace(/([^ ]+[ ]+)*region-([^ ]+)-message([ ]+[^ ]+)*/, '$2');
+        var regionField = $rowElement.find('select.block-region-select');
+        // Check whether the newly picked region is available for this block.
+        if (regionField.find('option[value=' + regionName + ']').length === 0) {
+          // If not, alert the user and keep the block in its old region setting.
+          window.alert(Drupal.t('The block cannot be placed in this region.'));
+          // Simulate that there was a selected element change, so the row is put
+          // back to from where the user tried to drag it.
+          regionField.trigger('change');
+        }
+        else if ($rowElement.prev('tr').is('.region-message')) {
+          var weightField = $rowElement.find('select.block-weight');
+          var oldRegionName = weightField[0].className.replace(/([^ ]+[ ]+)*block-weight-([^ ]+)([ ]+[^ ]+)*/, '$2');
+
+          if (!regionField.is('.block-region-' + regionName)) {
+            regionField.removeClass('block-region-' + oldRegionName).addClass('block-region-' + regionName);
+            weightField.removeClass('block-weight-' + oldRegionName).addClass('block-weight-' + regionName);
+            regionField.val(regionName);
+          }
+        }
+      };
+
+      // Add the behavior to each region select list.
+      $(context).find('select.block-region-select').once('block-region-select').each(function () {
+        $(this).on('change', function (event) {
+          // Make our new row and select field.
+          var row = $(this).closest('tr');
+          var select = $(this);
+          tableDrag.rowObject = new tableDrag.row(row);
+
+          // Find the correct region and insert the row as the last in the region.
+          table.find('.region-' + select[0].value + '-message').nextUntil('.region-message').eq(-1).before(row);
+
+          // Modify empty regions with added or removed fields.
+          checkEmptyRegions(table, row);
+          // Remove focus from selectbox.
+          select.trigger('blur');
+        });
+      });
+
+      var checkEmptyRegions = function (table, rowObject) {
+        table.find('tr.region-message').each(function () {
+          var $this = $(this);
+          // If the dragged row is in this region, but above the message row, swap it down one space.
+          if ($this.prev('tr').get(0) === rowObject.element) {
+            // Prevent a recursion problem when using the keyboard to move rows up.
+            if ((rowObject.method !== 'keyboard' || rowObject.direction === 'down')) {
+              rowObject.swap('after', this);
+            }
+          }
+          // This region has become empty.
+          if ($this.next('tr').is(':not(.draggable)') || $this.next('tr').length === 0) {
+            $this.removeClass('region-populated').addClass('region-empty');
+          }
+          // This region has become populated.
+          else if ($this.is('.region-empty')) {
+            $this.removeClass('region-empty').addClass('region-populated');
+          }
+        });
+      };
+    }
+  };
+
+})(jQuery, window);
+;
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Theme function for the progress bar.
+   *
+   * @return
+   *   The HTML for the progress bar.
+   */
+  Drupal.theme.progressBar = function (id) {
+    return '<div id="' + id + '" class="progress" aria-live="polite">' +
+      '<div class="progress__label">&nbsp;</div>' +
+      '<div class="progress__track"><div class="progress__bar"></div></div>' +
+      '<div class="progress__percentage"></div>' +
+      '<div class="progress__description">&nbsp;</div>' +
+      '</div>';
+  };
+
+  /**
+   * A progressbar object. Initialized with the given id. Must be inserted into
+   * the DOM afterwards through progressBar.element.
+   *
+   * method is the function which will perform the HTTP request to get the
+   * progress bar state. Either "GET" or "POST".
+   *
+   * e.g. pb = new Drupal.ProgressBar('myProgressBar');
+   *      some_element.appendChild(pb.element);
+   */
+  Drupal.ProgressBar = function (id, updateCallback, method, errorCallback) {
+    this.id = id;
+    this.method = method || 'GET';
+    this.updateCallback = updateCallback;
+    this.errorCallback = errorCallback;
+
+    // The WAI-ARIA setting aria-live="polite" will announce changes after users
+    // have completed their current activity and not interrupt the screen reader.
+    this.element = $(Drupal.theme('progressBar', id));
+  };
+
+  $.extend(Drupal.ProgressBar.prototype, {
+    /**
+     * Set the percentage and status message for the progressbar.
+     */
+    setProgress: function (percentage, message, label) {
+      if (percentage >= 0 && percentage <= 100) {
+        $(this.element).find('div.progress__bar').css('width', percentage + '%');
+        $(this.element).find('div.progress__percentage').html(percentage + '%');
+      }
+      $('div.progress__description', this.element).html(message);
+      $('div.progress__label', this.element).html(label);
+      if (this.updateCallback) {
+        this.updateCallback(percentage, message, this);
+      }
+    },
+
+    /**
+     * Start monitoring progress via Ajax.
+     */
+    startMonitoring: function (uri, delay) {
+      this.delay = delay;
+      this.uri = uri;
+      this.sendPing();
+    },
+
+    /**
+     * Stop monitoring progress via Ajax.
+     */
+    stopMonitoring: function () {
+      clearTimeout(this.timer);
+      // This allows monitoring to be stopped from within the callback.
+      this.uri = null;
+    },
+
+    /**
+     * Request progress data from server.
+     */
+    sendPing: function () {
+      if (this.timer) {
+        clearTimeout(this.timer);
+      }
+      if (this.uri) {
+        var pb = this;
+        // When doing a post request, you need non-null data. Otherwise a
+        // HTTP 411 or HTTP 406 (with Apache mod_security) error may result.
+        $.ajax({
+          type: this.method,
+          url: this.uri,
+          data: '',
+          dataType: 'json',
+          success: function (progress) {
+            // Display errors.
+            if (progress.status === 0) {
+              pb.displayError(progress.data);
+              return;
+            }
+            // Update display.
+            pb.setProgress(progress.percentage, progress.message, progress.label);
+            // Schedule next timer.
+            pb.timer = setTimeout(function () { pb.sendPing(); }, pb.delay);
+          },
+          error: function (xmlhttp) {
+            var e = new Drupal.AjaxError(xmlhttp, pb.uri);
+            pb.displayError('<pre>' + e.message + '</pre>');
+          }
+        });
+      }
+    },
+
+    /**
+     * Display errors on the page.
+     */
+    displayError: function (string) {
+      var error = $('<div class="messages messages--error"></div>').html(string);
+      $(this.element).before(error).hide();
+
+      if (this.errorCallback) {
+        this.errorCallback(this);
+      }
+    }
+  });
+
+})(jQuery, Drupal);
+;
+(function ($, window, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Attaches the Ajax behavior to each Ajax form element.
+   */
+  Drupal.behaviors.AJAX = {
+    attach: function (context, settings) {
+
+      function loadAjaxBehavior(base) {
+        var element_settings = settings.ajax[base];
+        if (typeof element_settings.selector === 'undefined') {
+          element_settings.selector = '#' + base;
+        }
+        $(element_settings.selector).once('drupal-ajax').each(function () {
+          element_settings.element = this;
+          element_settings.base = base;
+          Drupal.ajax(element_settings);
+        });
+      }
+
+      // Load all Ajax behaviors specified in the settings.
+      for (var base in settings.ajax) {
+        if (settings.ajax.hasOwnProperty(base)) {
+          loadAjaxBehavior(base);
+        }
+      }
+
+      // Bind Ajax behaviors to all items showing the class.
+      $('.use-ajax').once('ajax').each(function () {
+        var element_settings = {};
+        // Clicked links look better with the throbber than the progress bar.
+        element_settings.progress = {'type': 'throbber'};
+
+        // For anchor tags, these will go to the target of the anchor rather
+        // than the usual location.
+        if ($(this).attr('href')) {
+          element_settings.url = $(this).attr('href');
+          element_settings.event = 'click';
+        }
+        element_settings.dialogType = $(this).data('dialog-type');
+        element_settings.dialog = $(this).data('dialog-options');
+        element_settings.base = $(this).attr('id');
+        element_settings.element = this;
+        Drupal.ajax(element_settings);
+      });
+
+      // This class means to submit the form to the action using Ajax.
+      $('.use-ajax-submit').once('ajax').each(function () {
+        var element_settings = {};
+
+        // Ajax submits specified in this manner automatically submit to the
+        // normal form action.
+        element_settings.url = $(this.form).attr('action');
+        // Form submit button clicks need to tell the form what was clicked so
+        // it gets passed in the POST request.
+        element_settings.setClick = true;
+        // Form buttons use the 'click' event rather than mousedown.
+        element_settings.event = 'click';
+        // Clicked form buttons look better with the throbber than the progress bar.
+        element_settings.progress = {'type': 'throbber'};
+        element_settings.base = $(this).attr('id');
+        element_settings.element = this;
+
+        Drupal.ajax(element_settings);
+      });
+    }
+  };
+
+  /**
+   * Extends Error to provide handling for Errors in Ajax.
+   */
+  Drupal.AjaxError = function (xmlhttp, uri) {
+
+    var statusCode;
+    var statusText;
+    var pathText;
+    var responseText;
+    var readyStateText;
+    if (xmlhttp.status) {
+      statusCode = "\n" + Drupal.t("An AJAX HTTP error occurred.") + "\n" + Drupal.t("HTTP Result Code: !status", {'!status': xmlhttp.status});
+    }
+    else {
+      statusCode = "\n" + Drupal.t("An AJAX HTTP request terminated abnormally.");
+    }
+    statusCode += "\n" + Drupal.t("Debugging information follows.");
+    pathText = "\n" + Drupal.t("Path: !uri", {'!uri': uri});
+    statusText = '';
+    // In some cases, when statusCode === 0, xmlhttp.statusText may not be defined.
+    // Unfortunately, testing for it with typeof, etc, doesn't seem to catch that
+    // and the test causes an exception. So we need to catch the exception here.
+    try {
+      statusText = "\n" + Drupal.t("StatusText: !statusText", {'!statusText': $.trim(xmlhttp.statusText)});
+    }
+    catch (e) {
+      // empty
+    }
+
+    responseText = '';
+    // Again, we don't have a way to know for sure whether accessing
+    // xmlhttp.responseText is going to throw an exception. So we'll catch it.
+    try {
+      responseText = "\n" + Drupal.t("ResponseText: !responseText", {'!responseText': $.trim(xmlhttp.responseText)});
+    }
+    catch (e) {
+      // Empty.
+    }
+
+    // Make the responseText more readable by stripping HTML tags and newlines.
+    responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, "");
+    responseText = responseText.replace(/[\n]+\s+/g, "\n");
+
+    // We don't need readyState except for status == 0.
+    readyStateText = xmlhttp.status === 0 ? ("\n" + Drupal.t("ReadyState: !readyState", {'!readyState': xmlhttp.readyState})) : "";
+
+    this.message = statusCode + pathText + statusText + responseText + readyStateText;
+    this.name = 'AjaxError';
+  };
+
+  Drupal.AjaxError.prototype = new Error();
+  Drupal.AjaxError.prototype.constructor = Drupal.AjaxError;
+
+  /**
+   * Provides Ajax page updating via jQuery $.ajax.
+   *
+   * This function is designed to improve developer experience by wrapping the
+   * initialization of Drupal.Ajax objects and storing all created object in the
+   * Drupal.ajax.instances array.
+   *
+   * @example
+   * Drupal.behaviors.myCustomAJAXStuff = {
+   *   attach: function (context, settings) {
+   *
+   *     var ajaxSettings = {
+   *       url: 'my/url/path',
+   *       // If the old version of Drupal.ajax() needs to be used those
+   *       // properties can be added
+   *       base: 'myBase',
+   *       element: $(context).find('.someElement')
+   *     };
+   *
+   *     var myAjaxObject = Drupal.ajax(ajaxSettings);
+   *
+   *     // Declare a new Ajax command specifically for this Ajax object.
+   *     myAjaxObject.commands.insert = function (ajax, response, status) {
+   *       $('#my-wrapper').append(response.data);
+   *       alert('New content was appended to #my-wrapper');
+   *     };
+   *
+   *     // This command will remove this Ajax object from the page.
+   *     myAjaxObject.commands.destroyObject = function (ajax, response, status) {
+   *       Drupal.ajax.instances[this.instanceIndex] = null;
+   *     };
+   *
+   *     // Programmatically trigger the Ajax request.
+   *     myAjaxObject.execute();
+   *   }
+   * };
+   *
+   * @see Drupal.AjaxCommands
+   *
+   * @param {object} settings
+   *   The settings object passed to Drupal.Ajax constructor.
+   * @param {string} [settings.base]
+   *   Base is passed to Drupal.Ajax constructor as the 'base' parameter.
+   * @param {HTMLElement} [settings.element]
+   *   Element parameter of Drupal.Ajax constructor, element on which
+   *   event listeners will be bound.
+   *
+   * @return {Drupal.Ajax}
+   */
+  Drupal.ajax = function (settings) {
+    if (arguments.length !== 1) {
+      throw new Error('Drupal.ajax() function must be called with one configuration object only');
+    }
+    // Map those config keys to variables for the old Drupal.ajax function.
+    var base = settings.base || false;
+    var element = settings.element || false;
+    delete settings.base;
+    delete settings.element;
+
+    // By default do not display progress for ajax calls without an element.
+    if (!settings.progress && !element) {
+      settings.progress = false;
+    }
+
+    var ajax = new Drupal.Ajax(base, element, settings);
+    ajax.instanceIndex = Drupal.ajax.instances.length;
+    Drupal.ajax.instances.push(ajax);
+
+    return ajax;
+  };
+
+  /**
+   * Contains all created Ajax objects.
+   *
+   * @type {Array}
+   */
+  Drupal.ajax.instances = [];
+
+  /**
+   * Ajax constructor.
+   *
+   * The Ajax request returns an array of commands encoded in JSON, which is
+   * then executed to make any changes that are necessary to the page.
+   *
+   * Drupal uses this file to enhance form elements with #ajax['url'] and
+   * #ajax['wrapper'] properties. If set, this file will automatically be
+   * included to provide Ajax capabilities.
+   *
+   * @constructor
+   *
+   * @param {string} [base]
+   *   Base parameter of Drupal.Ajax constructor
+   * @param {HTMLElement} [element]
+   *   Element parameter of Drupal.Ajax constructor, element on which
+   *   event listeners will be bound.
+   * @param {object} element_settings
+   * @param {string} element_settings.url
+   *   Target of the Ajax request.
+   * @param {string} [element_settings.event]
+   *   Event bound to settings.element which will trigger the Ajax request.
+   * @param {string} [element_settings.method]
+   *   Name of the jQuery method used to insert new content in the targeted
+   *   element.
+   */
+  Drupal.Ajax = function (base, element, element_settings) {
+    var defaults = {
+      event: element ? 'mousedown' : null,
+      keypress: true,
+      selector: base ? '#' + base : null,
+      effect: 'none',
+      speed: 'none',
+      method: 'replaceWith',
+      progress: {
+        type: 'throbber',
+        message: Drupal.t('Please wait...')
+      },
+      submit: {
+        'js': true
+      }
+    };
+
+    $.extend(this, defaults, element_settings);
+
+    this.commands = new Drupal.AjaxCommands();
+    this.instanceIndex = false;
+
+    // @todo Remove this after refactoring the PHP code to:
+    //   - Call this 'selector'.
+    //   - Include the '#' for ID-based selectors.
+    //   - Support non-ID-based selectors.
+    if (this.wrapper) {
+      this.wrapper = '#' + this.wrapper;
+    }
+
+    this.element = element;
+    this.element_settings = element_settings;
+
+    // If there isn't a form, jQuery.ajax() will be used instead, allowing us to
+    // bind Ajax to links as well.
+    if (this.element && this.element.form) {
+      this.$form = $(this.element.form);
+    }
+
+    // If no Ajax callback URL was given, use the link href or form action.
+    if (!this.url) {
+      var $element = $(this.element);
+      if ($element.is('a')) {
+        this.url = $element.attr('href');
+      }
+      else if (this.element && element.form) {
+        this.url = this.$form.attr('action');
+
+        // @todo If there's a file input on this form, then jQuery will submit the
+        //   Ajax response with a hidden Iframe rather than the XHR object. If the
+        //   response to the submission is an HTTP redirect, then the Iframe will
+        //   follow it, but the server won't content negotiate it correctly,
+        //   because there won't be an ajax_iframe_upload POST variable. Until we
+        //   figure out a work around to this problem, we prevent Ajax-enabling
+        //   elements that submit to the same URL as the form when there's a file
+        //   input. For example, this means the Delete button on the edit form of
+        //   an Article node doesn't open its confirmation form in a dialog.
+        if (this.$form.find(':file').length) {
+          return;
+        }
+      }
+    }
+
+    // Replacing 'nojs' with 'ajax' in the URL allows for an easy method to let
+    // the server detect when it needs to degrade gracefully.
+    // There are four scenarios to check for:
+    // 1. /nojs/
+    // 2. /nojs$ - The end of a URL string.
+    // 3. /nojs? - Followed by a query (e.g. path/nojs?destination=foobar).
+    // 4. /nojs# - Followed by a fragment (e.g.: path/nojs#myfragment).
+    this.url = this.url.replace(/\/nojs(\/|$|\?|#)/g, '/ajax$1');
+
+    // Set the options for the ajaxSubmit function.
+    // The 'this' variable will not persist inside of the options object.
+    var ajax = this;
+    ajax.options = {
+      url: ajax.url,
+      data: ajax.submit,
+      beforeSerialize: function (element_settings, options) {
+        return ajax.beforeSerialize(element_settings, options);
+      },
+      beforeSubmit: function (form_values, element_settings, options) {
+        ajax.ajaxing = true;
+        return ajax.beforeSubmit(form_values, element_settings, options);
+      },
+      beforeSend: function (xmlhttprequest, options) {
+        ajax.ajaxing = true;
+        return ajax.beforeSend(xmlhttprequest, options);
+      },
+      success: function (response, status) {
+        // Sanity check for browser support (object expected).
+        // When using iFrame uploads, responses must be returned as a string.
+        if (typeof response === 'string') {
+          response = $.parseJSON(response);
+        }
+        return ajax.success(response, status);
+      },
+      complete: function (response, status) {
+        ajax.ajaxing = false;
+        if (status === 'error' || status === 'parsererror') {
+          return ajax.error(response, ajax.url);
+        }
+      },
+      dataType: 'json',
+      type: 'POST'
+    };
+
+    if (element_settings.dialog) {
+      ajax.options.data.dialogOptions = element_settings.dialog;
+    }
+
+    // Ensure that we have a valid URL by adding ? when no query parameter is
+    // yet available, otherwise append using &.
+    if (ajax.options.url.indexOf('?') === -1) {
+      ajax.options.url += '?';
+    }
+    else {
+      ajax.options.url += '&';
+    }
+    ajax.options.url += Drupal.ajax.WRAPPER_FORMAT + '=drupal_' + (element_settings.dialogType || 'ajax');
+
+    // Bind the ajaxSubmit function to the element event.
+    $(ajax.element).on(element_settings.event, function (event) {
+      return ajax.eventResponse(this, event);
+    });
+
+    // If necessary, enable keyboard submission so that Ajax behaviors
+    // can be triggered through keyboard input as well as e.g. a mousedown
+    // action.
+    if (element_settings.keypress) {
+      $(ajax.element).on('keypress', function (event) {
+        return ajax.keypressResponse(this, event);
+      });
+    }
+
+    // If necessary, prevent the browser default action of an additional event.
+    // For example, prevent the browser default action of a click, even if the
+    // Ajax behavior binds to mousedown.
+    if (element_settings.prevent) {
+      $(ajax.element).on(element_settings.prevent, false);
+    }
+  };
+
+  /**
+   * URL query attribute to indicate the wrapper used to render a request.
+   *
+   * The wrapper format determines how the HTML is wrapped, for example in a
+   * modal dialog.
+   */
+  Drupal.ajax.WRAPPER_FORMAT = '_wrapper_format';
+
+  /**
+   * Execute the ajax request.
+   *
+   * Allows developers to execute an Ajax request manually without specifying
+   * an event to respond to.
+   */
+  Drupal.Ajax.prototype.execute = function () {
+    // Do not perform another ajax command if one is already in progress.
+    if (this.ajaxing) {
+      return;
+    }
+
+    try {
+      this.beforeSerialize(this.element, this.options);
+      $.ajax(this.options);
+    }
+    catch (e) {
+      // Unset the ajax.ajaxing flag here because it won't be unset during
+      // the complete response.
+      this.ajaxing = false;
+      window.alert("An error occurred while attempting to process " + this.options.url + ": " + e.message);
+    }
+  };
+
+  /**
+   * Handle a key press.
+   *
+   * The Ajax object will, if instructed, bind to a key press response. This
+   * will test to see if the key press is valid to trigger this event and
+   * if it is, trigger it for us and prevent other keypresses from triggering.
+   * In this case we're handling RETURN and SPACEBAR keypresses (event codes 13
+   * and 32. RETURN is often used to submit a form when in a textfield, and
+   * SPACE is often used to activate an element without submitting.
+   */
+  Drupal.Ajax.prototype.keypressResponse = function (element, event) {
+    // Create a synonym for this to reduce code confusion.
+    var ajax = this;
+
+    // Detect enter key and space bar and allow the standard response for them,
+    // except for form elements of type 'text', 'tel', 'number' and 'textarea',
+    // where the spacebar activation causes inappropriate activation if
+    // #ajax['keypress'] is TRUE. On a text-type widget a space should always be a
+    // space.
+    if (event.which === 13 || (event.which === 32 && element.type !== 'text' &&
+      element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number')) {
+      event.preventDefault();
+      event.stopPropagation();
+      $(ajax.element_settings.element).trigger(ajax.element_settings.event);
+    }
+  };
+
+  /**
+   * Handle an event that triggers an Ajax response.
+   *
+   * When an event that triggers an Ajax response happens, this method will
+   * perform the actual Ajax call. It is bound to the event using
+   * bind() in the constructor, and it uses the options specified on the
+   * Ajax object.
+   */
+  Drupal.Ajax.prototype.eventResponse = function (element, event) {
+    event.preventDefault();
+    event.stopPropagation();
+
+    // Create a synonym for this to reduce code confusion.
+    var ajax = this;
+
+    // Do not perform another Ajax command if one is already in progress.
+    if (ajax.ajaxing) {
+      return;
+    }
+
+    try {
+      if (ajax.$form) {
+        // If setClick is set, we must set this to ensure that the button's
+        // value is passed.
+        if (ajax.setClick) {
+          // Mark the clicked button. 'form.clk' is a special variable for
+          // ajaxSubmit that tells the system which element got clicked to
+          // trigger the submit. Without it there would be no 'op' or
+          // equivalent.
+          element.form.clk = element;
+        }
+
+        ajax.$form.ajaxSubmit(ajax.options);
+      }
+      else {
+        ajax.beforeSerialize(ajax.element, ajax.options);
+        $.ajax(ajax.options);
+      }
+    }
+    catch (e) {
+      // Unset the ajax.ajaxing flag here because it won't be unset during
+      // the complete response.
+      ajax.ajaxing = false;
+      window.alert("An error occurred while attempting to process " + ajax.options.url + ": " + e.message);
+    }
+  };
+
+  /**
+   * Handler for the form serialization.
+   *
+   * Runs before the beforeSend() handler (see below), and unlike that one, runs
+   * before field data is collected.
+   */
+  Drupal.Ajax.prototype.beforeSerialize = function (element, options) {
+    // Allow detaching behaviors to update field values before collecting them.
+    // This is only needed when field values are added to the POST data, so only
+    // when there is a form such that this.$form.ajaxSubmit() is used instead of
+    // $.ajax(). When there is no form and $.ajax() is used, beforeSerialize()
+    // isn't called, but don't rely on that: explicitly check this.$form.
+    if (this.$form) {
+      var settings = this.settings || drupalSettings;
+      Drupal.detachBehaviors(this.$form.get(0), settings, 'serialize');
+    }
+
+    // Prevent duplicate HTML ids in the returned markup.
+    // @see \Drupal\Component\Utility\Html::getUniqueId()
+    var ids = document.querySelectorAll('[id]');
+    var ajaxHtmlIds = [];
+    var il = ids.length;
+    for (var i = 0; i < il; i++) {
+      ajaxHtmlIds.push(ids[i].id);
+    }
+    // Join IDs to minimize request size.
+    options.data.ajax_html_ids = ajaxHtmlIds.join(' ');
+
+    // Allow Drupal to return new JavaScript and CSS files to load without
+    // returning the ones already loaded.
+    // @see \Drupal\Core\Theme\AjaxBasePageNegotiator
+    // @see \Drupal\Core\Asset\LibraryDependencyResolverInterface::getMinimalRepresentativeSubset()
+    // @see system_js_settings_alter()
+    var pageState = drupalSettings.ajaxPageState;
+    options.data['ajax_page_state[theme]'] = pageState.theme;
+    options.data['ajax_page_state[theme_token]'] = pageState.theme_token;
+    options.data['ajax_page_state[libraries]'] = pageState.libraries;
+  };
+
+  /**
+   * Modify form values prior to form submission.
+   */
+  Drupal.Ajax.prototype.beforeSubmit = function (form_values, element, options) {
+    // This function is left empty to make it simple to override for modules
+    // that wish to add functionality here.
+  };
+
+  /**
+   * Prepare the Ajax request before it is sent.
+   */
+  Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
+    // For forms without file inputs, the jQuery Form plugin serializes the form
+    // values, and then calls jQuery's $.ajax() function, which invokes this
+    // handler. In this circumstance, options.extraData is never used. For forms
+    // with file inputs, the jQuery Form plugin uses the browser's normal form
+    // submission mechanism, but captures the response in a hidden IFRAME. In this
+    // circumstance, it calls this handler first, and then appends hidden fields
+    // to the form to submit the values in options.extraData. There is no simple
+    // way to know which submission mechanism will be used, so we add to extraData
+    // regardless, and allow it to be ignored in the former case.
+    if (this.$form) {
+      options.extraData = options.extraData || {};
+
+      // Let the server know when the IFRAME submission mechanism is used. The
+      // server can use this information to wrap the JSON response in a TEXTAREA,
+      // as per http://jquery.malsup.com/form/#file-upload.
+      options.extraData.ajax_iframe_upload = '1';
+
+      // The triggering element is about to be disabled (see below), but if it
+      // contains a value (e.g., a checkbox, textfield, select, etc.), ensure that
+      // value is included in the submission. As per above, submissions that use
+      // $.ajax() are already serialized prior to the element being disabled, so
+      // this is only needed for IFRAME submissions.
+      var v = $.fieldValue(this.element);
+      if (v !== null) {
+        options.extraData[this.element.name] = v;
+      }
+    }
+
+    // Disable the element that received the change to prevent user interface
+    // interaction while the Ajax request is in progress. ajax.ajaxing prevents
+    // the element from triggering a new request, but does not prevent the user
+    // from changing its value.
+    $(this.element).prop('disabled', true);
+
+    if (!this.progress || !this.progress.type) {
+      return;
+    }
+
+    // Insert progress indicator
+    var progressIndicatorMethod = 'setProgressIndicator' + this.progress.type.slice(0, 1).toUpperCase() + this.progress.type.slice(1).toLowerCase();
+    if (progressIndicatorMethod in this && typeof this[progressIndicatorMethod] === 'function') {
+      this[progressIndicatorMethod].call(this);
+      $(this.element).after(this.progress.element);
+    }
+  };
+
+  /**
+   * Sets the progress bar progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorBar = function () {
+    var progressBar = new Drupal.ProgressBar('ajax-progress-' + this.element.id, $.noop, this.progress.method, $.noop);
+    if (this.progress.message) {
+      progressBar.setProgress(-1, this.progress.message);
+    }
+    if (this.progress.url) {
+      progressBar.startMonitoring(this.progress.url, this.progress.interval || 1500);
+    }
+    this.progress.element = $(progressBar.element).addClass('ajax-progress ajax-progress-bar');
+    this.progress.object = progressBar;
+    $(this.element).after(this.progress.element);
+  };
+
+  /**
+   * Sets the throbber progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorThrobber = function () {
+    this.progress.element = $('<div class="ajax-progress ajax-progress-throbber"><div class="throbber">&nbsp;</div></div>');
+    if (this.progress.message) {
+      this.progress.element.find('.throbber').after('<div class="message">' + this.progress.message + '</div>');
+    }
+    $(this.element).after(this.progress.element);
+  };
+
+  /**
+   * Sets the fullscreen progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
+    this.progress.element = $('<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>');
+    $('body').after(this.progress.element);
+  };
+
+  /**
+   * Handler for the form redirection completion.
+   */
+  Drupal.Ajax.prototype.success = function (response, status) {
+    // Remove the progress element.
+    if (this.progress.element) {
+      $(this.progress.element).remove();
+    }
+    if (this.progress.object) {
+      this.progress.object.stopMonitoring();
+    }
+    $(this.element).prop('disabled', false);
+
+    for (var i in response) {
+      if (response.hasOwnProperty(i) && response[i].command && this.commands[response[i].command]) {
+        this.commands[response[i].command](this, response[i], status);
+      }
+    }
+
+    // Reattach behaviors, if they were detached in beforeSerialize(). The
+    // attachBehaviors() called on the new content from processing the response
+    // commands is not sufficient, because behaviors from the entire form need
+    // to be reattached.
+    if (this.$form) {
+      var settings = this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+
+    // Remove any response-specific settings so they don't get used on the next
+    // call by mistake.
+    this.settings = null;
+  };
+
+  /**
+   * Build an effect object which tells us how to apply the effect when adding new HTML.
+   */
+  Drupal.Ajax.prototype.getEffect = function (response) {
+    var type = response.effect || this.effect;
+    var speed = response.speed || this.speed;
+
+    var effect = {};
+    if (type === 'none') {
+      effect.showEffect = 'show';
+      effect.hideEffect = 'hide';
+      effect.showSpeed = '';
+    }
+    else if (type === 'fade') {
+      effect.showEffect = 'fadeIn';
+      effect.hideEffect = 'fadeOut';
+      effect.showSpeed = speed;
+    }
+    else {
+      effect.showEffect = type + 'Toggle';
+      effect.hideEffect = type + 'Toggle';
+      effect.showSpeed = speed;
+    }
+
+    return effect;
+  };
+
+  /**
+   * Handler for the form redirection error.
+   */
+  Drupal.Ajax.prototype.error = function (response, uri) {
+    // Remove the progress element.
+    if (this.progress.element) {
+      $(this.progress.element).remove();
+    }
+    if (this.progress.object) {
+      this.progress.object.stopMonitoring();
+    }
+    // Undo hide.
+    $(this.wrapper).show();
+    // Re-enable the element.
+    $(this.element).prop('disabled', false);
+    // Reattach behaviors, if they were detached in beforeSerialize().
+    if (this.$form) {
+      var settings = response.settings || this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+    throw new Drupal.AjaxError(response, uri);
+  };
+
+  /**
+   * Provide a series of commands that the server can request the client perform.
+   */
+  Drupal.AjaxCommands = function () {};
+  Drupal.AjaxCommands.prototype = {
+    /**
+     * Command to insert new content into the DOM.
+     */
+    insert: function (ajax, response, status) {
+      // Get information from the response. If it is not there, default to
+      // our presets.
+      var wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
+      var method = response.method || ajax.method;
+      var effect = ajax.getEffect(response);
+      var settings;
+
+      // We don't know what response.data contains: it might be a string of text
+      // without HTML, so don't rely on jQuery correctly interpreting
+      // $(response.data) as new HTML rather than a CSS selector. Also, if
+      // response.data contains top-level text nodes, they get lost with either
+      // $(response.data) or $('<div></div>').replaceWith(response.data).
+      var new_content_wrapped = $('<div></div>').html(response.data);
+      var new_content = new_content_wrapped.contents();
+
+      // For legacy reasons, the effects processing code assumes that new_content
+      // consists of a single top-level element. Also, it has not been
+      // sufficiently tested whether attachBehaviors() can be successfully called
+      // with a context object that includes top-level text nodes. However, to
+      // give developers full control of the HTML appearing in the page, and to
+      // enable Ajax content to be inserted in places where DIV elements are not
+      // allowed (e.g., within TABLE, TR, and SPAN parents), we check if the new
+      // content satisfies the requirement of a single top-level element, and
+      // only use the container DIV created above when it doesn't. For more
+      // information, please see http://drupal.org/node/736066.
+      if (new_content.length !== 1 || new_content.get(0).nodeType !== 1) {
+        new_content = new_content_wrapped;
+      }
+
+      // If removing content from the wrapper, detach behaviors first.
+      switch (method) {
+        case 'html':
+        case 'replaceWith':
+        case 'replaceAll':
+        case 'empty':
+        case 'remove':
+          settings = response.settings || ajax.settings || drupalSettings;
+          Drupal.detachBehaviors(wrapper.get(0), settings);
+      }
+
+      // Add the new content to the page.
+      wrapper[method](new_content);
+
+      // Immediately hide the new content if we're using any effects.
+      if (effect.showEffect !== 'show') {
+        new_content.hide();
+      }
+
+      // Determine which effect to use and what content will receive the
+      // effect, then show the new content.
+      if (new_content.find('.ajax-new-content').length > 0) {
+        new_content.find('.ajax-new-content').hide();
+        new_content.show();
+        new_content.find('.ajax-new-content')[effect.showEffect](effect.showSpeed);
+      }
+      else if (effect.showEffect !== 'show') {
+        new_content[effect.showEffect](effect.showSpeed);
+      }
+
+      // Attach all JavaScript behaviors to the new content, if it was successfully
+      // added to the page, this if statement allows #ajax['wrapper'] to be
+      // optional.
+      if (new_content.parents('html').length > 0) {
+        // Apply any settings from the returned JSON if available.
+        settings = response.settings || ajax.settings || drupalSettings;
+        Drupal.attachBehaviors(new_content.get(0), settings);
+      }
+    },
+
+    /**
+     * Command to remove a chunk from the page.
+     */
+    remove: function (ajax, response, status) {
+      var settings = response.settings || ajax.settings || drupalSettings;
+      $(response.selector).each(function () {
+        Drupal.detachBehaviors(this, settings);
+      })
+        .remove();
+    },
+
+    /**
+     * Command to mark a chunk changed.
+     */
+    changed: function (ajax, response, status) {
+      if (!$(response.selector).hasClass('ajax-changed')) {
+        $(response.selector).addClass('ajax-changed');
+        if (response.asterisk) {
+          $(response.selector).find(response.asterisk).append(' <abbr class="ajax-changed" title="' + Drupal.t('Changed') + '">*</abbr> ');
+        }
+      }
+    },
+
+    /**
+     * Command to provide an alert.
+     */
+    alert: function (ajax, response, status) {
+      window.alert(response.text, response.title);
+    },
+
+    /**
+     * Command to set the window.location, redirecting the browser.
+     */
+    redirect: function (ajax, response, status) {
+      window.location = response.url;
+    },
+
+    /**
+     * Command to provide the jQuery css() function.
+     */
+    css: function (ajax, response, status) {
+      $(response.selector).css(response.argument);
+    },
+
+    /**
+     * Command to set the settings that will be used for other commands in this response.
+     */
+    settings: function (ajax, response, status) {
+      if (response.merge) {
+        $.extend(true, drupalSettings, response.settings);
+      }
+      else {
+        ajax.settings = response.settings;
+      }
+    },
+
+    /**
+     * Command to attach data using jQuery's data API.
+     */
+    data: function (ajax, response, status) {
+      $(response.selector).data(response.name, response.value);
+    },
+
+    /**
+     * Command to apply a jQuery method.
+     */
+    invoke: function (ajax, response, status) {
+      var $element = $(response.selector);
+      $element[response.method].apply($element, response.args);
+    },
+
+    /**
+     * Command to restripe a table.
+     */
+    restripe: function (ajax, response, status) {
+      // :even and :odd are reversed because jQuery counts from 0 and
+      // we count from 1, so we're out of sync.
+      // Match immediate children of the parent element to allow nesting.
+      $(response.selector).find('> tbody > tr:visible, > tr:visible')
+        .removeClass('odd even')
+        .filter(':even').addClass('odd').end()
+        .filter(':odd').addClass('even');
+    },
+
+    /**
+     * Command to update a form's build ID.
+     */
+    update_build_id: function (ajax, response, status) {
+      $('input[name="form_build_id"][value="' + response.old + '"]').val(response.new);
+    },
+
+    /**
+     * Command to add css.
+     *
+     * Uses the proprietary addImport method if available as browsers which
+     * support that method ignore @import statements in dynamically added
+     * stylesheets.
+     */
+    add_css: function (ajax, response, status) {
+      // Add the styles in the normal way.
+      $('head').prepend(response.data);
+      // Add imports in the styles using the addImport method if available.
+      var match;
+      var importMatch = /^@import url\("(.*)"\);$/igm;
+      if (document.styleSheets[0].addImport && importMatch.test(response.data)) {
+        importMatch.lastIndex = 0;
+        do {
+          match = importMatch.exec(response.data);
+          document.styleSheets[0].addImport(match[1]);
+        } while (match);
+      }
+    }
+  };
+
+})(jQuery, this, Drupal, drupalSettings);
+;
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Filters the block list by a text input search string.
+   *
+   * Text search input: input.block-filter-text
+   * Target element:    input.block-filter-text[data-element]
+   * Source text:       .block-filter-text-source
+   */
+  Drupal.behaviors.blockFilterByText = {
+    attach: function (context, settings) {
+      var $input = $('input.block-filter-text').once('block-filter-text');
+      var $element = $($input.attr('data-element'));
+      var $blocks;
+      var $details;
+
+      /**
+       * Hides the <details> element for a category if it has no visible blocks.
+       */
+      function hideCategoryDetails(index, element) {
+        var $catDetails = $(element);
+        $catDetails.toggle($catDetails.find('li:visible').length > 0);
+      }
+
+      /**
+       * Filters the block list.
+       */
+      function filterBlockList(e) {
+        var query = $(e.target).val().toLowerCase();
+
+        /**
+         * Shows or hides the block entry based on the query.
+         */
+        function showBlockEntry(index, block) {
+          var $block = $(block);
+          var $sources = $block.find('.block-filter-text-source');
+          var textMatch = $sources.text().toLowerCase().indexOf(query) !== -1;
+          $block.toggle(textMatch);
+        }
+
+        // Filter if the length of the query is at least 2 characters.
+        if (query.length >= 2) {
+          $blocks.each(showBlockEntry);
+
+          // Note that we first open all <details> to be able to use ':visible'.
+          // Mark the <details> elements that were closed before filtering, so
+          // they can be reclosed when filtering is removed.
+          $details.not('[open]').attr('data-drupal-block-state', 'forced-open');
+          // Hide the category <details> if they don't have any visible rows.
+          $details.attr('open', 'open').each(hideCategoryDetails);
+        }
+        else {
+          $blocks.show();
+          $details.show();
+          // Return <details> elements that had been closed before filtering
+          // to a closed state.
+          $details.filter('[data-drupal-block-state="forced-open"]').removeAttr('open data-drupal-block-state');
+        }
+      }
+
+      if ($element.length) {
+        $details = $element.find('details');
+        $blocks = $details.find('li');
+
+        $input.on('keyup', filterBlockList);
+      }
+    }
+  };
+
+  /**
+   * Highlights the block that was just placed into the block listing.
+   */
+  Drupal.behaviors.blockHighlightPlacement = {
+    attach: function (context, settings) {
+      if (settings.blockPlacement) {
+        $('#blocks').once('block-highlight').each(function () {
+          var $container = $(this);
+          // Just scrolling the document.body will not work in Firefox. The html
+          // element is needed as well.
+          $('html, body').animate({
+            scrollTop: $('.js-block-placed').offset().top - $container.offset().top + $container.scrollTop()
+          }, 500);
+        });
+      }
+    }
+  };
+
+}(jQuery, Drupal));
+;
+/*! jquery.cookie v1.4.1 | MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});;
+(function ($, Drupal, debounce) {
+
+  "use strict";
+
+  /**
+   * Retrieves the summary for the first element.
+   */
+  $.fn.drupalGetSummary = function () {
+    var callback = this.data('summaryCallback');
+    return (this[0] && callback) ? $.trim(callback(this[0])) : '';
+  };
+
+  /**
+   * Sets the summary for all matched elements.
+   *
+   * @param callback
+   *   Either a function that will be called each time the summary is
+   *   retrieved or a string (which is returned each time).
+   */
+  $.fn.drupalSetSummary = function (callback) {
+    var self = this;
+
+    // To facilitate things, the callback should always be a function. If it's
+    // not, we wrap it into an anonymous function which just returns the value.
+    if (typeof callback !== 'function') {
+      var val = callback;
+      callback = function () { return val; };
+    }
+
+    return this
+      .data('summaryCallback', callback)
+      // To prevent duplicate events, the handlers are first removed and then
+      // (re-)added.
+      .off('formUpdated.summary')
+      .on('formUpdated.summary', function () {
+        self.trigger('summaryUpdated');
+      })
+      // The actual summaryUpdated handler doesn't fire when the callback is
+      // changed, so we have to do this manually.
+      .trigger('summaryUpdated');
+  };
+
+  /**
+   * Prevents consecutive form submissions of identical form values.
+   *
+   * Repetitive form submissions that would submit the identical form values are
+   * prevented, unless the form values are different to the previously submitted
+   * values.
+   *
+   * This is a simplified re-implementation of a user-agent behavior that should
+   * be natively supported by major web browsers, but at this time, only Firefox
+   * has a built-in protection.
+   *
+   * A form value-based approach ensures that the constraint is triggered for
+   * consecutive, identical form submissions only. Compared to that, a form
+   * button-based approach would (1) rely on [visible] buttons to exist where
+   * technically not required and (2) require more complex state management if
+   * there are multiple buttons in a form.
+   *
+   * This implementation is based on form-level submit events only and relies on
+   * jQuery's serialize() method to determine submitted form values. As such, the
+   * following limitations exist:
+   *
+   * - Event handlers on form buttons that preventDefault() do not receive a
+   *   double-submit protection. That is deemed to be fine, since such button
+   *   events typically trigger reversible client-side or server-side operations
+   *   that are local to the context of a form only.
+   * - Changed values in advanced form controls, such as file inputs, are not part
+   *   of the form values being compared between consecutive form submits (due to
+   *   limitations of jQuery.serialize()). That is deemed to be acceptable,
+   *   because if the user forgot to attach a file, then the size of HTTP payload
+   *   will most likely be small enough to be fully passed to the server endpoint
+   *   within (milli)seconds. If a user mistakenly attached a wrong file and is
+   *   technically versed enough to cancel the form submission (and HTTP payload)
+   *   in order to attach a different file, then that edge-case is not supported
+   *   here.
+   *
+   * Lastly, all forms submitted via HTTP GET are idempotent by definition of HTTP
+   * standards, so excluded in this implementation.
+   */
+  Drupal.behaviors.formSingleSubmit = {
+    attach: function () {
+      function onFormSubmit(e) {
+        var $form = $(e.currentTarget);
+        var formValues = $form.serialize();
+        var previousValues = $form.attr('data-drupal-form-submit-last');
+        if (previousValues === formValues) {
+          e.preventDefault();
+        }
+        else {
+          $form.attr('data-drupal-form-submit-last', formValues);
+        }
+      }
+
+      $('body').once('form-single-submit')
+        .on('submit.singleSubmit', 'form:not([method~="GET"])', onFormSubmit);
+    }
+  };
+
+  /**
+   * Sends a 'formUpdated' event each time a form element is modified.
+   */
+  function triggerFormUpdated(element) {
+    $(element).trigger('formUpdated');
+  }
+
+  /**
+   * Collects the IDs of all form fields in the given form.
+   *
+   * @param {HTMLFormElement} form
+   * @return {Array}
+   */
+  function fieldsList(form) {
+    var $fieldList = $(form).find('[name]').map(function (index, element) {
+      // We use id to avoid name duplicates on radio fields and filter out
+      // elements with a name but no id.
+      return element.getAttribute('id');
+    });
+    // Return a true array.
+    return $.makeArray($fieldList);
+  }
+
+  /**
+   * Triggers the 'formUpdated' event on form elements when they are modified.
+   */
+  Drupal.behaviors.formUpdated = {
+    attach: function (context) {
+      var $context = $(context);
+      var contextIsForm = $context.is('form');
+      var $forms = (contextIsForm ? $context : $context.find('form')).once('form-updated');
+      var formFields;
+
+      if ($forms.length) {
+        // Initialize form behaviors, use $.makeArray to be able to use native
+        // forEach array method and have the callback parameters in the right order.
+        $.makeArray($forms).forEach(function (form) {
+          var events = 'change.formUpdated keypress.formUpdated';
+          var eventHandler = debounce(function (event) { triggerFormUpdated(event.target); }, 300);
+          formFields = fieldsList(form).join(',');
+
+          form.setAttribute('data-drupal-form-fields', formFields);
+          $(form).on(events, eventHandler);
+        });
+      }
+      // On ajax requests context is the form element.
+      if (contextIsForm) {
+        formFields = fieldsList(context).join(',');
+        // @todo replace with form.getAttribute() when #1979468 is in.
+        var currentFields = $(context).attr('data-drupal-form-fields');
+        // if there has been a change in the fields or their order, trigger
+        // formUpdated.
+        if (formFields !== currentFields) {
+          triggerFormUpdated(context);
+        }
+      }
+
+    },
+    detach: function (context, settings, trigger) {
+      var $context = $(context);
+      var contextIsForm = $context.is('form');
+      if (trigger === 'unload') {
+        var $forms = (contextIsForm ? $context : $context.find('form')).removeOnce('form-updated');
+        if ($forms.length) {
+          $.makeArray($forms).forEach(function (form) {
+            form.removeAttribute('data-drupal-form-fields');
+            $(form).off('.formUpdated');
+          });
+        }
+      }
+    }
+  };
+
+  /**
+   * Prepopulate form fields with information from the visitor browser.
+   */
+  Drupal.behaviors.fillUserInfoFromBrowser = {
+    attach: function (context, settings) {
+      var userInfo = ['name', 'mail', 'homepage'];
+      var $forms = $('[data-user-info-from-browser]').once('user-info-from-browser');
+      if ($forms.length) {
+        userInfo.map(function (info) {
+          var $element = $forms.find('[name=' + info + ']');
+          var browserData = localStorage.getItem('Drupal.visitor.' + info);
+          var emptyOrDefault = ($element.val() === '' || ($element.attr('data-drupal-default-value') === $element.val()));
+          if ($element.length && emptyOrDefault && browserData) {
+            $element.val(browserData);
+          }
+        });
+      }
+      $forms.on('submit', function () {
+        userInfo.map(function (info) {
+          var $element = $forms.find('[name=' + info + ']');
+          if ($element.length) {
+            localStorage.setItem('Drupal.visitor.' + info, $element.val());
+          }
+        });
+      });
+    }
+  };
+
+})(jQuery, Drupal, Drupal.debounce);
+;
+(function ($, Modernizr, Drupal) {
+
+  "use strict";
+
+  /**
+   * The collapsible details object represents a single collapsible details element.
+   */
+  function CollapsibleDetails(node) {
+    this.$node = $(node);
+    this.$node.data('details', this);
+    // Expand details if there are errors inside, or if it contains an
+    // element that is targeted by the URI fragment identifier.
+    var anchor = location.hash && location.hash !== '#' ? ', ' + location.hash : '';
+    if (this.$node.find('.error' + anchor).length) {
+      this.$node.attr('open', true);
+    }
+    // Initialize and setup the summary,
+    this.setupSummary();
+    // Initialize and setup the legend.
+    this.setupLegend();
+  }
+
+  /**
+   * Extend CollapsibleDetails function.
+   */
+  $.extend(CollapsibleDetails, {
+    /**
+     * Holds references to instantiated CollapsibleDetails objects.
+     */
+    instances: []
+  });
+
+  /**
+   * Extend CollapsibleDetails prototype.
+   */
+  $.extend(CollapsibleDetails.prototype, {
+    /**
+     * Initialize and setup summary events and markup.
+     */
+    setupSummary: function () {
+      this.$summary = $('<span class="summary"></span>');
+      this.$node
+        .on('summaryUpdated', $.proxy(this.onSummaryUpdated, this))
+        .trigger('summaryUpdated');
+    },
+    /**
+     * Initialize and setup legend markup.
+     */
+    setupLegend: function () {
+      // Turn the summary into a clickable link.
+      var $legend = this.$node.find('> summary');
+
+      $('<span class="details-summary-prefix visually-hidden"></span>')
+        .append(this.$node.attr('open') ? Drupal.t('Hide') : Drupal.t('Show'))
+        .prependTo($legend)
+        .after(document.createTextNode(' '));
+
+      // .wrapInner() does not retain bound events.
+      $('<a class="details-title"></a>')
+        .attr('href', '#' + this.$node.attr('id'))
+        .prepend($legend.contents())
+        .appendTo($legend);
+
+      $legend
+        .append(this.$summary)
+        .on('click', $.proxy(this.onLegendClick, this));
+    },
+    /**
+     * Handle legend clicks
+     */
+    onLegendClick: function (e) {
+      this.toggle();
+      e.preventDefault();
+    },
+    /**
+     * Update summary
+     */
+    onSummaryUpdated: function () {
+      var text = $.trim(this.$node.drupalGetSummary());
+      this.$summary.html(text ? ' (' + text + ')' : '');
+    },
+    /**
+     * Toggle the visibility of a details element using smooth animations.
+     */
+    toggle: function () {
+      var isOpen = !!this.$node.attr('open');
+      var $summaryPrefix = this.$node.find('> summary span.details-summary-prefix');
+      if (isOpen) {
+        $summaryPrefix.html(Drupal.t('Show'));
+      }
+      else {
+        $summaryPrefix.html(Drupal.t('Hide'));
+      }
+      this.$node.attr('open', !isOpen);
+    }
+  });
+
+  Drupal.behaviors.collapse = {
+    attach: function (context) {
+      if (Modernizr.details) {
+        return;
+      }
+      var $collapsibleDetails = $(context).find('details').once('collapse').addClass('collapse-processed');
+      if ($collapsibleDetails.length) {
+        for (var i = 0; i < $collapsibleDetails.length; i++) {
+          CollapsibleDetails.instances.push(new CollapsibleDetails($collapsibleDetails[i]));
+        }
+      }
+    }
+  };
+
+  // Expose constructor in the public space.
+  Drupal.CollapsibleDetails = CollapsibleDetails;
+
+})(jQuery, Modernizr, Drupal);
+;
+(function ($, Drupal, window) {
+
+  "use strict";
+
+  /**
+   * Attach the tableResponsive function to Drupal.behaviors.
+   */
+  Drupal.behaviors.tableResponsive = {
+    attach: function (context, settings) {
+      var $tables = $(context).find('table.responsive-enabled').once('tableresponsive');
+      if ($tables.length) {
+        var il = $tables.length;
+        for (var i = 0; i < il; i++) {
+          TableResponsive.tables.push(new TableResponsive($tables[i]));
+        }
+      }
+    }
+  };
+
+  /**
+   * The TableResponsive object optimizes table presentation for all screen sizes.
+   *
+   * A responsive table hides columns at small screen sizes, leaving the most
+   * important columns visible to the end user. Users should not be prevented from
+   * accessing all columns, however. This class adds a toggle to a table with
+   * hidden columns that exposes the columns. Exposing the columns will likely
+   * break layouts, but it provides the user with a means to access data, which
+   * is a guiding principle of responsive design.
+   */
+  function TableResponsive(table) {
+    this.table = table;
+    this.$table = $(table);
+    this.showText = Drupal.t('Show all columns');
+    this.hideText = Drupal.t('Hide lower priority columns');
+    // Store a reference to the header elements of the table so that the DOM is
+    // traversed only once to find them.
+    this.$headers = this.$table.find('th');
+    // Add a link before the table for users to show or hide weight columns.
+    this.$link = $('<button type="button" class="link tableresponsive-toggle"></button>')
+      .attr('title', Drupal.t('Show table cells that were hidden to make the table fit within a small screen.'))
+      .on('click', $.proxy(this, 'eventhandlerToggleColumns'));
+
+    this.$table.before($('<div class="tableresponsive-toggle-columns"></div>').append(this.$link));
+
+    // Attach a resize handler to the window.
+    $(window)
+      .on('resize.tableresponsive', $.proxy(this, 'eventhandlerEvaluateColumnVisibility'))
+      .trigger('resize.tableresponsive');
+  }
+
+  /**
+   * Extend the TableResponsive function with a list of managed tables.
+   */
+  $.extend(TableResponsive, {
+    tables: []
+  });
+
+  /**
+   * Associates an action link with the table that will show hidden columns.
+   *
+   * Columns are assumed to be hidden if their header has the class priority-low
+   * or priority-medium.
+   */
+  $.extend(TableResponsive.prototype, {
+    eventhandlerEvaluateColumnVisibility: function (e) {
+      var pegged = parseInt(this.$link.data('pegged'), 10);
+      var hiddenLength = this.$headers.filter('.priority-medium:hidden, .priority-low:hidden').length;
+      // If the table has hidden columns, associate an action link with the table
+      // to show the columns.
+      if (hiddenLength > 0) {
+        this.$link.show().text(this.showText);
+      }
+      // When the toggle is pegged, its presence is maintained because the user
+      // has interacted with it. This is necessary to keep the link visible if the
+      // user adjusts screen size and changes the visibility of columns.
+      if (!pegged && hiddenLength === 0) {
+        this.$link.hide().text(this.hideText);
+      }
+    },
+    // Toggle the visibility of columns classed with either 'priority-low' or
+    // 'priority-medium'.
+    eventhandlerToggleColumns: function (e) {
+      e.preventDefault();
+      var self = this;
+      var $hiddenHeaders = this.$headers.filter('.priority-medium:hidden, .priority-low:hidden');
+      this.$revealedCells = this.$revealedCells || $();
+      // Reveal hidden columns.
+      if ($hiddenHeaders.length > 0) {
+        $hiddenHeaders.each(function (index, element) {
+          var $header = $(this);
+          var position = $header.prevAll('th').length;
+          self.$table.find('tbody tr').each(function () {
+            var $cells = $(this).find('td').eq(position);
+            $cells.show();
+            // Keep track of the revealed cells, so they can be hidden later.
+            self.$revealedCells = $().add(self.$revealedCells).add($cells);
+          });
+          $header.show();
+          // Keep track of the revealed headers, so they can be hidden later.
+          self.$revealedCells = $().add(self.$revealedCells).add($header);
+        });
+        this.$link.text(this.hideText).data('pegged', 1);
+      }
+      // Hide revealed columns.
+      else {
+        this.$revealedCells.hide();
+        // Strip the 'display:none' declaration from the style attributes of
+        // the table cells that .hide() added.
+        this.$revealedCells.each(function (index, element) {
+          var $cell = $(this);
+          var properties = $cell.attr('style').split(';');
+          var newProps = [];
+          // The hide method adds display none to the element. The element should
+          // be returned to the same state it was in before the columns were
+          // revealed, so it is necessary to remove the display none
+          // value from the style attribute.
+          var match = /^display\s*\:\s*none$/;
+          for (var i = 0; i < properties.length; i++) {
+            var prop = properties[i];
+            prop.trim();
+            // Find the display:none property and remove it.
+            var isDisplayNone = match.exec(prop);
+            if (isDisplayNone) {
+              continue;
+            }
+            newProps.push(prop);
+          }
+          // Return the rest of the style attribute values to the element.
+          $cell.attr('style', newProps.join(';'));
+        });
+        this.$link.text(this.showText).data('pegged', 0);
+        // Refresh the toggle link.
+        $(window).trigger('resize.tableresponsive');
+      }
+    }
+  });
+  // Make the TableResponsive object available in the Drupal namespace.
+  Drupal.TableResponsive = TableResponsive;
+
+})(jQuery, Drupal, window);
+;
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Process elements with the .dropbutton class on page load.
+   */
+  Drupal.behaviors.dropButton = {
+    attach: function (context, settings) {
+      var $dropbuttons = $(context).find('.dropbutton-wrapper').once('dropbutton');
+      if ($dropbuttons.length) {
+        // Adds the delegated handler that will toggle dropdowns on click.
+        var $body = $('body').once('dropbutton-click');
+        if ($body.length) {
+          $body.on('click', '.dropbutton-toggle', dropbuttonClickHandler);
+        }
+        // Initialize all buttons.
+        var il = $dropbuttons.length;
+        for (var i = 0; i < il; i++) {
+          DropButton.dropbuttons.push(new DropButton($dropbuttons[i], settings.dropbutton));
+        }
+      }
+    }
+  };
+
+  /**
+   * Delegated callback for opening and closing dropbutton secondary actions.
+   */
+  function dropbuttonClickHandler(e) {
+    e.preventDefault();
+    $(e.target).closest('.dropbutton-wrapper').toggleClass('open');
+  }
+
+  /**
+   * A DropButton presents an HTML list as a button with a primary action.
+   *
+   * All secondary actions beyond the first in the list are presented in a
+   * dropdown list accessible through a toggle arrow associated with the button.
+   *
+   * @param {jQuery} $dropbutton
+   *   A jQuery element.
+   *
+   * @param {Object} settings
+   *   A list of options including:
+   *    - {String} title: The text inside the toggle link element. This text is
+   *      hidden from visual UAs.
+   */
+  function DropButton(dropbutton, settings) {
+    // Merge defaults with settings.
+    var options = $.extend({'title': Drupal.t('List additional actions')}, settings);
+    var $dropbutton = $(dropbutton);
+    this.$dropbutton = $dropbutton;
+    this.$list = $dropbutton.find('.dropbutton');
+    // Find actions and mark them.
+    this.$actions = this.$list.find('li').addClass('dropbutton-action');
+
+    // Add the special dropdown only if there are hidden actions.
+    if (this.$actions.length > 1) {
+      // Identify the first element of the collection.
+      var $primary = this.$actions.slice(0, 1);
+      // Identify the secondary actions.
+      var $secondary = this.$actions.slice(1);
+      $secondary.addClass('secondary-action');
+      // Add toggle link.
+      $primary.after(Drupal.theme('dropbuttonToggle', options));
+      // Bind mouse events.
+      this.$dropbutton
+        .addClass('dropbutton-multiple')
+        .on({
+          /**
+           * Adds a timeout to close the dropdown on mouseleave.
+           */
+          'mouseleave.dropbutton': $.proxy(this.hoverOut, this),
+          /**
+           * Clears timeout when mouseout of the dropdown.
+           */
+          'mouseenter.dropbutton': $.proxy(this.hoverIn, this),
+          /**
+           * Similar to mouseleave/mouseenter, but for keyboard navigation.
+           */
+          'focusout.dropbutton': $.proxy(this.focusOut, this),
+          'focusin.dropbutton': $.proxy(this.focusIn, this)
+        });
+    }
+    else {
+      this.$dropbutton.addClass('dropbutton-single');
+    }
+  }
+
+  /**
+   * Extend the DropButton constructor.
+   */
+  $.extend(DropButton, {
+    /**
+     * Store all processed DropButtons.
+     *
+     * @type {Array}
+     */
+    dropbuttons: []
+  });
+
+  /**
+   * Extend the DropButton prototype.
+   */
+  $.extend(DropButton.prototype, {
+    /**
+     * Toggle the dropbutton open and closed.
+     *
+     * @param {Boolean} show
+     *   (optional) Force the dropbutton to open by passing true or to close by
+     *   passing false.
+     */
+    toggle: function (show) {
+      var isBool = typeof show === 'boolean';
+      show = isBool ? show : !this.$dropbutton.hasClass('open');
+      this.$dropbutton.toggleClass('open', show);
+    },
+
+    hoverIn: function () {
+      // Clear any previous timer we were using.
+      if (this.timerID) {
+        window.clearTimeout(this.timerID);
+      }
+    },
+
+    hoverOut: function () {
+      // Wait half a second before closing.
+      this.timerID = window.setTimeout($.proxy(this, 'close'), 500);
+    },
+
+    open: function () {
+      this.toggle(true);
+    },
+
+    close: function () {
+      this.toggle(false);
+    },
+
+    focusOut: function (e) {
+      this.hoverOut.call(this, e);
+    },
+
+    focusIn: function (e) {
+      this.hoverIn.call(this, e);
+    }
+  });
+
+  $.extend(Drupal.theme, {
+    /**
+     * A toggle is an interactive element often bound to a click handler.
+     *
+     * @param {Object} options
+     *   - {String} title: (optional) The HTML anchor title attribute and
+     *     text for the inner span element.
+     *
+     * @return {String}
+     *   A string representing a DOM fragment.
+     */
+    dropbuttonToggle: function (options) {
+      return '<li class="dropbutton-toggle"><button type="button"><span class="dropbutton-arrow"><span class="visually-hidden">' + options.title + '</span></span></button></li>';
+    }
+  });
+
+  // Expose constructor in the public space.
+  Drupal.DropButton = DropButton;
+
+})(jQuery, Drupal);
+;
+window.matchMedia||(window.matchMedia=function(){"use strict";var e=window.styleMedia||window.media;if(!e){var t=document.createElement("style"),i=document.getElementsByTagName("script")[0],n=null;t.type="text/css";t.id="matchmediajs-test";i.parentNode.insertBefore(t,i);n="getComputedStyle"in window&&window.getComputedStyle(t,null)||t.currentStyle;e={matchMedium:function(e){var i="@media "+e+"{ #matchmediajs-test { width: 1px; } }";if(t.styleSheet){t.styleSheet.cssText=i}else{t.textContent=i}return n.width==="1px"}}}return function(t){return{matches:e.matchMedium(t||"all"),media:t||"all"}}}());
+;
+/**
+ * @file
+ * Responsive navigation tabs.
+ *
+ * This also supports collapsible navigable is the 'is-collapsible' class is
+ * added to the main element, and a target element is included.
+ */
+(function ($, Drupal) {
+
+  "use strict";
+
+  function init(i, tab) {
+    var $tab = $(tab);
+    var $target = $tab.find('[data-drupal-nav-tabs-target]');
+    var isCollapsible = $tab.hasClass('is-collapsible');
+
+    function openMenu(e) {
+      $target.toggleClass('is-open');
+    }
+
+    function handleResize(e) {
+      $tab.addClass('is-horizontal');
+      var $tabs = $tab.find('.tabs');
+      var isHorizontal = $tabs.outerHeight() <= $tabs.find('.tabs__tab').outerHeight();
+      $tab.toggleClass('is-horizontal', isHorizontal);
+      if (isCollapsible) {
+        $tab.toggleClass('is-collapse-enabled', !isHorizontal);
+      }
+      if (isHorizontal) {
+        $target.removeClass('is-open');
+      }
+    }
+
+    $tab.addClass('position-container is-horizontal-enabled');
+
+    $tab.on('click.tabs', '[data-drupal-nav-tabs-trigger]', openMenu);
+    $(window).on('resize.tabs', Drupal.debounce(handleResize, 150)).trigger('resize.tabs');
+  }
+
+  /**
+   * Initialise the tabs JS.
+   */
+  Drupal.behaviors.navTabs = {
+    attach: function (context, settings) {
+      var $tabs = $(context).find('[data-drupal-nav-tabs]');
+      if ($tabs.length) {
+        var notSmartPhone = window.matchMedia('(min-width: 300px)');
+        if (notSmartPhone.matches) {
+          $tabs.once('nav-tabs').each(init);
+        }
+      }
+    }
+  };
+
+})(jQuery, Drupal);
+;
+/**
+ * Adds an HTML element and method to trigger audio UAs to read system messages.
+ *
+ * Use Drupal.announce() to indicate to screen reader users that an element on
+ * the page has changed state. For instance, if clicking a link loads 10 more
+ * items into a list, one might announce the change like this.
+ * $('#search-list')
+ *   .on('itemInsert', function (event, data) {
+ *     // Insert the new items.
+ *     $(data.container.el).append(data.items.el);
+ *     // Announce the change to the page contents.
+ *     Drupal.announce(Drupal.t('@count items added to @container',
+ *       {'@count': data.items.length, '@container': data.container.title}
+ *     ));
+ *   });
+ */
+(function (Drupal, debounce) {
+
+  "use strict";
+
+  var liveElement;
+  var announcements = [];
+
+  /**
+   * Builds a div element with the aria-live attribute and attaches it
+   * to the DOM.
+   */
+  Drupal.behaviors.drupalAnnounce = {
+    attach: function (context) {
+      // Create only one aria-live element.
+      if (!liveElement) {
+        liveElement = document.createElement('div');
+        liveElement.id = 'drupal-live-announce';
+        liveElement.className = 'visually-hidden';
+        liveElement.setAttribute('aria-live', 'polite');
+        liveElement.setAttribute('aria-busy', 'false');
+        document.body.appendChild(liveElement);
+      }
+    }
+  };
+
+  /**
+   * Concatenates announcements to a single string; appends to the live region.
+   */
+  function announce() {
+    var text = [];
+    var priority = 'polite';
+    var announcement;
+
+    // Create an array of announcement strings to be joined and appended to the
+    // aria live region.
+    var il = announcements.length;
+    for (var i = 0; i < il; i++) {
+      announcement = announcements.pop();
+      text.unshift(announcement.text);
+      // If any of the announcements has a priority of assertive then the group
+      // of joined announcements will have this priority.
+      if (announcement.priority === 'assertive') {
+        priority = 'assertive';
+      }
+    }
+
+    if (text.length) {
+      // Clear the liveElement so that repeated strings will be read.
+      liveElement.innerHTML = '';
+      // Set the busy state to true until the node changes are complete.
+      liveElement.setAttribute('aria-busy', 'true');
+      // Set the priority to assertive, or default to polite.
+      liveElement.setAttribute('aria-live', priority);
+      // Print the text to the live region. Text should be run through
+      // Drupal.t() before being passed to Drupal.announce().
+      liveElement.innerHTML = text.join('\n');
+      // The live text area is updated. Allow the AT to announce the text.
+      liveElement.setAttribute('aria-busy', 'false');
+    }
+  }
+
+  /**
+   * Triggers audio UAs to read the supplied text.
+   *
+   * The aria-live region will only read the text that currently populates its
+   * text node. Replacing text quickly in rapid calls to announce results in
+   * only the text from the most recent call to Drupal.announce() being read.
+   * By wrapping the call to announce in a debounce function, we allow for
+   * time for multiple calls to Drupal.announce() to queue up their messages.
+   * These messages are then joined and append to the aria-live region as one
+   * text node.
+   *
+   * @param String text
+   *   A string to be read by the UA.
+   * @param String priority
+   *   A string to indicate the priority of the message. Can be either
+   *   'polite' or 'assertive'. Polite is the default.
+   *
+   * @see http://www.w3.org/WAI/PF/aria-practices/#liveprops
+   */
+  Drupal.announce = function (text, priority) {
+    // Save the text and priority into a closure variable. Multiple simultaneous
+    // announcements will be concatenated and read in sequence.
+    announcements.push({
+      text: text,
+      priority: priority
+    });
+    // Immediately invoke the function that debounce returns. 200 ms is right at
+    // the cusp where humans notice a pause, so we will wait
+    // at most this much time before the set of queued announcements is read.
+    return (debounce(announce, 200)());
+  };
+}(Drupal, Drupal.debounce));
+;
+(function(){if(window.matchMedia&&window.matchMedia("all").addListener){return false}var e=window.matchMedia,i=e("only all").matches,n=false,t=0,a=[],r=function(i){clearTimeout(t);t=setTimeout(function(){for(var i=0,n=a.length;i<n;i++){var t=a[i].mql,r=a[i].listeners||[],o=e(t.media).matches;if(o!==t.matches){t.matches=o;for(var s=0,l=r.length;s<l;s++){r[s].call(window,t)}}}},30)};window.matchMedia=function(t){var o=e(t),s=[],l=0;o.addListener=function(e){if(!i){return}if(!n){n=true;window.addEventListener("resize",r,true)}if(l===0){l=a.push({mql:o,listeners:s})}s.push(e)};o.removeListener=function(e){for(var i=0,n=s.length;i<n;i++){if(s[i]===e){s.splice(i,1)}}};return o}})();
+;
+/**
+ * Builds a nested accordion widget.
+ *
+ * Invoke on an HTML list element with the jQuery plugin pattern.
+ * - For example, $('.menu').drupalToolbarMenu();
+ */
+
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Store the open menu tray.
+   */
+  var activeItem = Drupal.url(drupalSettings.path.currentPath);
+
+  $.fn.drupalToolbarMenu = function () {
+
+    var ui = {
+      'handleOpen': Drupal.t('Extend'),
+      'handleClose': Drupal.t('Collapse')
+    };
+
+    /**
+     * Handle clicks from the disclosure button on an item with sub-items.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function toggleClickHandler(event) {
+      var $toggle = $(event.target);
+      var $item = $toggle.closest('li');
+      // Toggle the list item.
+      toggleList($item);
+      // Close open sibling menus.
+      var $openItems = $item.siblings().filter('.open');
+      toggleList($openItems, false);
+    }
+
+    /**
+     * Handle clicks from a menu item link.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function linkClickHandler(event) {
+      // If the toolbar is positioned fixed (and therefore hiding content
+      // underneath), then users expect clicks in the administration menu tray
+      // to take them to that destination but for the menu tray to be closed
+      // after clicking: otherwise the toolbar itself is obstructing the view
+      // of the destination they chose.
+      if (!Drupal.toolbar.models.toolbarModel.get('isFixed')) {
+        Drupal.toolbar.models.toolbarModel.set('activeTab', null);
+      }
+      // Stopping propagation to make sure that once a toolbar-box is clicked
+      // (the whitespace part), the page is not redirected anymore.
+      event.stopPropagation();
+    }
+
+    /**
+     * Toggle the open/close state of a list is a menu.
+     *
+     * @param {jQuery} $item
+     *   The li item to be toggled.
+     *
+     * @param {Boolean} switcher
+     *   A flag that forces toggleClass to add or a remove a class, rather than
+     *   simply toggling its presence.
+     */
+    function toggleList($item, switcher) {
+      var $toggle = $item.children('.toolbar-box').children('.toolbar-handle');
+      switcher = (typeof switcher !== 'undefined') ? switcher : !$item.hasClass('open');
+      // Toggle the item open state.
+      $item.toggleClass('open', switcher);
+      // Twist the toggle.
+      $toggle.toggleClass('open', switcher);
+      // Adjust the toggle text.
+      $toggle
+        .find('.action')
+        // Expand Structure, Collapse Structure
+        .text((switcher) ? ui.handleClose : ui.handleOpen);
+    }
+
+    /**
+     * Add markup to the menu elements.
+     *
+     * Items with sub-elements have a list toggle attached to them. Menu item
+     * links and the corresponding list toggle are wrapped with in a div
+     * classed with .toolbar-box. The .toolbar-box div provides a positioning
+     * context for the item list toggle.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu to be initialized.
+     */
+    function initItems($menu) {
+      var options = {
+        'class': 'toolbar-icon toolbar-handle',
+        'action': ui.handleOpen,
+        'text': ''
+      };
+      // Initialize items and their links.
+      $menu.find('li > a').wrap('<div class="toolbar-box">');
+      // Add a handle to each list item if it has a menu.
+      $menu.find('li').each(function (index, element) {
+        var $item = $(element);
+        if ($item.children('ul.menu').length) {
+          var $box = $item.children('.toolbar-box');
+          options.text = Drupal.t('@label', {'@label': $box.find('a').text()});
+          $item.children('.toolbar-box')
+            .append(Drupal.theme('toolbarMenuItemToggle', options));
+        }
+      });
+    }
+
+    /**
+     * Adds a level class to each list based on its depth in the menu.
+     *
+     * This function is called recursively on each sub level of lists elements
+     * until the depth of the menu is exhausted.
+     *
+     * @param {jQuery} $lists
+     *   A jQuery object of ul elements.
+     *
+     * @param {Integer} level
+     *   The current level number to be assigned to the list elements.
+     */
+    function markListLevels($lists, level) {
+      level = (!level) ? 1 : level;
+      var $lis = $lists.children('li').addClass('level-' + level);
+      $lists = $lis.children('ul');
+      if ($lists.length) {
+        markListLevels($lists, level + 1);
+      }
+    }
+
+    /**
+     * On page load, open the active menu item.
+     *
+     * Marks the trail of the active link in the menu back to the root of the
+     * menu with .menu-item--active-trail.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu.
+     */
+    function openActiveItem($menu) {
+      var pathItem = $menu.find('a[href="' + location.pathname + '"]');
+      if (pathItem.length && !activeItem) {
+        activeItem = location.pathname;
+      }
+      if (activeItem) {
+        var $activeItem = $menu.find('a[href="' + activeItem + '"]').addClass('menu-item--active');
+        var $activeTrail = $activeItem.parentsUntil('.root', 'li').addClass('menu-item--active-trail');
+        toggleList($activeTrail, true);
+      }
+    }
+
+    // Bind event handlers.
+    $(document)
+      .on('click.toolbar', '.toolbar-box', toggleClickHandler)
+      .on('click.toolbar', '.toolbar-box a', linkClickHandler);
+
+    // Return the jQuery object.
+    return this.each(function (selector) {
+      var $menu = $(this).once('toolbar-menu');
+      if ($menu.length) {
+        $menu.addClass('root');
+        initItems($menu);
+        markListLevels($menu);
+        // Restore previous and active states.
+        openActiveItem($menu);
+      }
+    });
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarMenuItemToggle = function (options) {
+    return '<button class="' + options['class'] + '"><span class="action">' + options.action + '</span><span class="label">' + options.text + '</span></button>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file toolbar.js
+ *
+ * Defines the behavior of the Drupal administration toolbar.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  // Merge run-time settings with the defaults.
+  var options = $.extend(
+    {
+      breakpoints: {
+        'toolbar.narrow': '',
+        'toolbar.standard': '',
+        'toolbar.wide': ''
+      }
+    },
+    drupalSettings.toolbar,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        horizontal: Drupal.t('Horizontal orientation'),
+        vertical: Drupal.t('Vertical orientation')
+      }
+    }
+  );
+
+  /**
+   * Registers tabs with the toolbar.
+   *
+   * The Drupal toolbar allows modules to register top-level tabs. These may
+   * point directly to a resource or toggle the visibility of a tray.
+   *
+   * Modules register tabs with hook_toolbar().
+   */
+  Drupal.behaviors.toolbar = {
+
+    attach: function (context) {
+      // Verify that the user agent understands media queries. Complex admin
+      // toolbar layouts require media query support.
+      if (!window.matchMedia('only screen').matches) {
+        return;
+      }
+      // Process the administrative toolbar.
+      $(context).find('#toolbar-administration').once('toolbar').each(function () {
+
+        // Establish the toolbar models and views.
+        var model = Drupal.toolbar.models.toolbarModel = new Drupal.toolbar.ToolbarModel({
+          locked: JSON.parse(localStorage.getItem('Drupal.toolbar.trayVerticalLocked')) || false,
+          activeTab: document.getElementById(JSON.parse(localStorage.getItem('Drupal.toolbar.activeTabID')))
+        });
+        Drupal.toolbar.views.toolbarVisualView = new Drupal.toolbar.ToolbarVisualView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.toolbarAuralView = new Drupal.toolbar.ToolbarAuralView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.bodyVisualView = new Drupal.toolbar.BodyVisualView({
+          el: this,
+          model: model
+        });
+
+        // Render collapsible menus.
+        var menuModel = Drupal.toolbar.models.menuModel = new Drupal.toolbar.MenuModel();
+        Drupal.toolbar.views.menuVisualView = new Drupal.toolbar.MenuVisualView({
+          el: $(this).find('.toolbar-menu-administration').get(0),
+          model: menuModel,
+          strings: options.strings
+        });
+
+        // Handle the resolution of Drupal.toolbar.setSubtrees.
+        // This is handled with a deferred so that the function may be invoked
+        // asynchronously.
+        Drupal.toolbar.setSubtrees.done(function (subtrees) {
+          menuModel.set('subtrees', subtrees);
+          localStorage.setItem('Drupal.toolbar.subtrees', JSON.stringify(subtrees));
+          // Indicate on the toolbarModel that subtrees are now loaded.
+          model.set('areSubtreesLoaded', true);
+        });
+
+        // Attach a listener to the configured media query breakpoints.
+        for (var label in options.breakpoints) {
+          if (options.breakpoints.hasOwnProperty(label)) {
+            var mq = options.breakpoints[label];
+            var mql = Drupal.toolbar.mql[label] = window.matchMedia(mq);
+            // Curry the model and the label of the media query breakpoint to
+            // the mediaQueryChangeHandler function.
+            mql.addListener(Drupal.toolbar.mediaQueryChangeHandler.bind(null, model, label));
+            // Fire the mediaQueryChangeHandler for each configured breakpoint
+            // so that they process once.
+            Drupal.toolbar.mediaQueryChangeHandler.call(null, model, label, mql);
+          }
+        }
+
+        // Trigger an initial attempt to load menu subitems. This first attempt
+        // is made after the media query handlers have had an opportunity to
+        // process. The toolbar starts in the vertical orientation by default,
+        // unless the viewport is wide enough to accommodate a horizontal
+        // orientation. Thus we give the Toolbar a chance to determine if it
+        // should be set to horizontal orientation before attempting to load
+        // menu subtrees.
+        Drupal.toolbar.views.toolbarVisualView.loadSubtrees();
+
+        $(document)
+          // Update the model when the viewport offset changes.
+          .on('drupalViewportOffsetChange.toolbar', function (event, offsets) {
+            model.set('offsets', offsets);
+          });
+
+        // Broadcast model changes to other modules.
+        model
+          .on('change:orientation', function (model, orientation) {
+            $(document).trigger('drupalToolbarOrientationChange', orientation);
+          })
+          .on('change:activeTab', function (model, tab) {
+            $(document).trigger('drupalToolbarTabChange', tab);
+          })
+          .on('change:activeTray', function (model, tray) {
+            $(document).trigger('drupalToolbarTrayChange', tray);
+          });
+
+        // If the toolbar's orientation is horizontal and no active tab is
+        // defined then show the tray of the first toolbar tab by default (but
+        // not the first 'Home' toolbar tab).
+        if (Drupal.toolbar.models.toolbarModel.get('orientation') === 'horizontal' && Drupal.toolbar.models.toolbarModel.get('activeTab') === null) {
+          Drupal.toolbar.models.toolbarModel.set({
+            'activeTab': $('.toolbar-bar .toolbar-tab:not(.home-toolbar-tab) a').get(0)
+          });
+        }
+      });
+    }
+  };
+
+  /**
+   * Toolbar methods of Backbone objects.
+   */
+  Drupal.toolbar = {
+
+    // A hash of View instances.
+    views: {},
+
+    // A hash of Model instances.
+    models: {},
+
+    // A hash of MediaQueryList objects tracked by the toolbar.
+    mql: {},
+
+    /**
+     * Accepts a list of subtree menu elements.
+     *
+     * A deferred object that is resolved by an inlined JavaScript callback.
+     *
+     * JSONP callback.
+     * @see toolbar_subtrees_jsonp().
+     */
+    setSubtrees: new $.Deferred(),
+
+    /**
+     * Respond to configured narrow media query changes.
+     */
+    mediaQueryChangeHandler: function (model, label, mql) {
+      switch (label) {
+        case 'toolbar.narrow':
+          model.set({
+            'isOriented': mql.matches,
+            'isTrayToggleVisible': false
+          });
+          // If the toolbar doesn't have an explicit orientation yet, or if the
+          // narrow media query doesn't match then set the orientation to
+          // vertical.
+          if (!mql.matches || !model.get('orientation')) {
+            model.set({'orientation': 'vertical'}, {validate: true});
+          }
+          break;
+        case 'toolbar.standard':
+          model.set({
+            'isFixed': mql.matches
+          });
+          break;
+        case 'toolbar.wide':
+          model.set({
+            'orientation': ((mql.matches) ? 'horizontal' : 'vertical')
+          }, {validate: true});
+          // The tray orientation toggle visibility does not need to be
+          // validated.
+          model.set({
+            'isTrayToggleVisible': mql.matches
+          });
+          break;
+        default:
+          break;
+      }
+    }
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarOrientationToggle = function () {
+    return '<div class="toolbar-toggle-orientation"><div class="toolbar-lining">' +
+      '<button class="toolbar-icon" type="button"></button>' +
+      '</div></div>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file
+ * A Backbone Model for collapsible menus.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone Model for collapsible menus.
+   */
+  Drupal.toolbar.MenuModel = Backbone.Model.extend({
+    defaults: {
+      subtrees: {}
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone Model for the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone model for the toolbar.
+   */
+  Drupal.toolbar.ToolbarModel = Backbone.Model.extend({
+    defaults: {
+      // The active toolbar tab. All other tabs should be inactive under
+      // normal circumstances. It will remain active across page loads. The
+      // active item is stored as an ID selector e.g. '#toolbar-item--1'.
+      activeTab: null,
+      // Represents whether a tray is open or not. Stored as an ID selector e.g.
+      // '#toolbar-item--1-tray'.
+      activeTray: null,
+      // Indicates whether the toolbar is displayed in an oriented fashion,
+      // either horizontal or vertical.
+      isOriented: false,
+      // Indicates whether the toolbar is positioned absolute (false) or fixed
+      // (true).
+      isFixed: false,
+      // Menu subtrees are loaded through an AJAX request only when the Toolbar
+      // is set to a vertical orientation.
+      areSubtreesLoaded: false,
+      // If the viewport overflow becomes constrained, isFixed must be true so
+      // that elements in the trays aren't lost off-screen and impossible to
+      // get to.
+      isViewportOverflowConstrained: false,
+      // The orientation of the active tray.
+      orientation: 'vertical',
+      // A tray is locked if a user toggled it to vertical. Otherwise a tray
+      // will switch between vertical and horizontal orientation based on the
+      // configured breakpoints. The locked state will be maintained across page
+      // loads.
+      locked: false,
+      // Indicates whether the tray orientation toggle is visible.
+      isTrayToggleVisible: false,
+      // The height of the toolbar.
+      height: null,
+      // The current viewport offsets determined by Drupal.displace(). The
+      // offsets suggest how a module might position is components relative to
+      // the viewport.
+      offsets: {
+        top: 0,
+        right: 0,
+        bottom: 0,
+        left: 0
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    validate: function (attributes, options) {
+      // Prevent the orientation being set to horizontal if it is locked, unless
+      // override has not been passed as an option.
+      if (attributes.orientation === 'horizontal' && this.get('locked') && !options.override) {
+        return Drupal.t('The toolbar cannot be set to a horizontal orientation when it is locked.');
+      }
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the body element.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Adjusts the body element with the toolbar position and dimension changes.
+   */
+  Drupal.toolbar.BodyVisualView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:orientation change:offsets change:activeTray change:isOriented change:isFixed change:isViewportOverflowConstrained', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var $body = $('body');
+      var orientation = this.model.get('orientation');
+      var isOriented = this.model.get('isOriented');
+      var isViewportOverflowConstrained = this.model.get('isViewportOverflowConstrained');
+
+      $body
+        // We are using JavaScript to control media-query handling for two
+        // reasons: (1) Using JavaScript let's us leverage the breakpoint
+        // configurations and (2) the CSS is really complex if we try to hide
+        // some styling from browsers that don't understand CSS media queries.
+        // If we drive the CSS from classes added through JavaScript,
+        // then the CSS becomes simpler and more robust.
+        .toggleClass('toolbar-vertical', (orientation === 'vertical'))
+        .toggleClass('toolbar-horizontal', (isOriented && orientation === 'horizontal'))
+        // When the toolbar is fixed, it will not scroll with page scrolling.
+        .toggleClass('toolbar-fixed', (isViewportOverflowConstrained || this.model.get('isFixed')))
+        // Toggle the toolbar-tray-open class on the body element. The class is
+        // applied when a toolbar tray is active. Padding might be applied to
+        // the body element to prevent the tray from overlapping content.
+        .toggleClass('toolbar-tray-open', !!this.model.get('activeTray'))
+        // Apply padding to the top of the body to offset the placement of the
+        // toolbar bar element.
+        .css('padding-top', this.model.get('offsets').top);
+    }
+  });
+
+}(jQuery, Drupal, Backbone));
+;
+/**
+ * @file
+ * A Backbone view for the collapsible menus.
+ */
+
+(function ($, Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone View for collapsible menus.
+   */
+  Drupal.toolbar.MenuVisualView = Backbone.View.extend({
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:subtrees', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var subtrees = this.model.get('subtrees');
+      // Add subtrees.
+      for (var id in subtrees) {
+        if (subtrees.hasOwnProperty(id)) {
+          this.$el
+            .find('#toolbar-link-' + id)
+            .once('toolbar-subtrees')
+            .after(subtrees[id]);
+        }
+      }
+      // Render the main menu as a nested, collapsible accordion.
+      if ('drupalToolbarMenu' in $.fn) {
+        this.$el
+          .children('.menu')
+          .drupalToolbarMenu();
+      }
+    }
+  });
+
+}(jQuery, Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the aural feedback of the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the aural feedback of the toolbar.
+   */
+  Drupal.toolbar.ToolbarAuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:orientation', this.onOrientationChange);
+      this.listenTo(this.model, 'change:activeTray', this.onActiveTrayChange);
+    },
+
+    /**
+     * Announces an orientation change.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param String orientation
+     *   The new value of the orientation attribute in the model.
+     */
+    onOrientationChange: function (model, orientation) {
+      Drupal.announce(Drupal.t('Tray orientation changed to @orientation.', {
+        '@orientation': orientation
+      }));
+    },
+
+    /**
+     * Announces a changed active tray.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param Element orientation
+     *   The new value of the tray attribute in the model.
+     */
+    onActiveTrayChange: function (model, tray) {
+      var relevantTray = (tray === null) ? model.previous('activeTray') : tray;
+      var action = (tray === null) ? Drupal.t('closed') : Drupal.t('opened');
+      var trayNameElement = relevantTray.querySelector('.toolbar-tray-name');
+      var text;
+      if (trayNameElement !== null) {
+        text = Drupal.t('Tray "@tray" @action.', {
+          '@tray': trayNameElement.textContent, '@action': action
+        });
+      }
+      else {
+        text = Drupal.t('Tray @action.', {'@action': action});
+      }
+      Drupal.announce(text);
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the toolbar element. Listens to mouse & touch.
+ */
+
+(function ($, Drupal, drupalSettings, Backbone) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the toolbar element. Listens to mouse & touch.
+   */
+  Drupal.toolbar.ToolbarVisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click .toolbar-bar .toolbar-tab': 'onTabClick',
+        'click .toolbar-toggle-orientation button': 'onOrientationToggleClick',
+        'touchend .toolbar-bar .toolbar-tab': touchEndToClick,
+        'touchend .toolbar-toggle-orientation button': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:activeTab change:orientation change:isOriented change:isTrayToggleVisible', this.render);
+      this.listenTo(this.model, 'change:mqMatches', this.onMediaQueryChange);
+      this.listenTo(this.model, 'change:offsets', this.adjustPlacement);
+
+      // Add the tray orientation toggles.
+      this.$el
+        .find('.toolbar-tray .toolbar-lining')
+        .append(Drupal.theme('toolbarOrientationToggle'));
+
+      // Trigger an activeTab change so that listening scripts can respond on
+      // page load. This will call render.
+      this.model.trigger('change:activeTab');
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.updateTabs();
+      this.updateTrayOrientation();
+      this.updateBarAttributes();
+      // Load the subtrees if the orientation of the toolbar is changed to
+      // vertical. This condition responds to the case that the toolbar switches
+      // from horizontal to vertical orientation. The toolbar starts in a
+      // vertical orientation by default and then switches to horizontal during
+      // initialization if the media query conditions are met. Simply checking
+      // that the orientation is vertical here would result in the subtrees
+      // always being loaded, even when the toolbar initialization ultimately
+      // results in a horizontal orientation.
+      //
+      // @see Drupal.behaviors.toolbar.attach() where admin menu subtrees
+      // loading is invoked during initialization after media query conditions
+      // have been processed.
+      if (this.model.changed.orientation === 'vertical' || this.model.changed.activeTab) {
+        this.loadSubtrees();
+      }
+      // Trigger a recalculation of viewport displacing elements. Use setTimeout
+      // to ensure this recalculation happens after changes to visual elements
+      // have processed.
+      window.setTimeout(function () {
+        Drupal.displace(true);
+      }, 0);
+      return this;
+    },
+
+    /**
+     * Responds to a toolbar tab click.
+     *
+     * @param jQuery.Event event
+     */
+    onTabClick: function (event) {
+      // If this tab has a tray associated with it, it is considered an
+      // activatable tab.
+      if (event.target.hasAttribute('data-toolbar-tray')) {
+        var activeTab = this.model.get('activeTab');
+        var clickedTab = event.target;
+
+        // Set the event target as the active item if it is not already.
+        this.model.set('activeTab', (!activeTab || clickedTab !== activeTab) ? clickedTab : null);
+
+        event.preventDefault();
+        event.stopPropagation();
+      }
+    },
+
+    /**
+     * Toggles the orientation of a toolbar tray.
+     *
+     * @param jQuery.Event event
+     */
+    onOrientationToggleClick: function (event) {
+      var orientation = this.model.get('orientation');
+      // Determine the toggle-to orientation.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      var locked = (antiOrientation === 'vertical') ? true : false;
+      // Remember the locked state.
+      if (locked) {
+        localStorage.setItem('Drupal.toolbar.trayVerticalLocked', 'true');
+      }
+      else {
+        localStorage.removeItem('Drupal.toolbar.trayVerticalLocked');
+      }
+      // Update the model.
+      this.model.set({
+        locked: locked,
+        orientation: antiOrientation
+      }, {
+        validate: true,
+        override: true
+      });
+
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Updates the display of the tabs: toggles a tab and the associated tray.
+     */
+    updateTabs: function () {
+      var $tab = $(this.model.get('activeTab'));
+      // Deactivate the previous tab.
+      $(this.model.previous('activeTab'))
+        .removeClass('is-active')
+        .prop('aria-pressed', false);
+      // Deactivate the previous tray.
+      $(this.model.previous('activeTray'))
+        .removeClass('is-active');
+
+      // Activate the selected tab.
+      if ($tab.length > 0) {
+        $tab
+          .addClass('is-active')
+          // Mark the tab as pressed.
+          .prop('aria-pressed', true);
+        var name = $tab.attr('data-toolbar-tray');
+        // Store the active tab name or remove the setting.
+        var id = $tab.get(0).id;
+        if (id) {
+          localStorage.setItem('Drupal.toolbar.activeTabID', JSON.stringify(id));
+        }
+        // Activate the associated tray.
+        var $tray = this.$el.find('[data-toolbar-tray="' + name + '"].toolbar-tray');
+        if ($tray.length) {
+          $tray.addClass('is-active');
+          this.model.set('activeTray', $tray.get(0));
+        }
+        else {
+          // There is no active tray.
+          this.model.set('activeTray', null);
+        }
+      }
+      else {
+        // There is no active tray.
+        this.model.set('activeTray', null);
+        localStorage.removeItem('Drupal.toolbar.activeTabID');
+      }
+    },
+
+    /**
+     * Update the attributes of the toolbar bar element.
+     */
+    updateBarAttributes: function () {
+      var isOriented = this.model.get('isOriented');
+      if (isOriented) {
+        this.$el.find('.toolbar-bar').attr('data-offset-top', '');
+      }
+      else {
+        this.$el.find('.toolbar-bar').removeAttr('data-offset-top');
+      }
+      // Toggle between a basic vertical view and a more sophisticated
+      // horizontal and vertical display of the toolbar bar and trays.
+      this.$el.toggleClass('toolbar-oriented', isOriented);
+    },
+
+    /**
+     * Updates the orientation of the active tray if necessary.
+     */
+    updateTrayOrientation: function () {
+      var orientation = this.model.get('orientation');
+      // The antiOrientation is used to render the view of action buttons like
+      // the tray orientation toggle.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      // Update the orientation of the trays.
+      var $trays = this.$el.find('.toolbar-tray')
+        .removeClass('toolbar-tray-horizontal toolbar-tray-vertical')
+        .addClass('toolbar-tray-' + orientation);
+
+      // Update the tray orientation toggle button.
+      var iconClass = 'toolbar-icon-toggle-' + orientation;
+      var iconAntiClass = 'toolbar-icon-toggle-' + antiOrientation;
+      var $orientationToggle = this.$el.find('.toolbar-toggle-orientation')
+        .toggle(this.model.get('isTrayToggleVisible'));
+      $orientationToggle.find('button')
+        .val(antiOrientation)
+        .attr('title', this.strings[antiOrientation])
+        .text(this.strings[antiOrientation])
+        .removeClass(iconClass)
+        .addClass(iconAntiClass);
+
+      // Update data offset attributes for the trays.
+      var dir = document.documentElement.dir;
+      var edge = (dir === 'rtl') ? 'right' : 'left';
+      // Remove data-offset attributes from the trays so they can be refreshed.
+      $trays.removeAttr('data-offset-left data-offset-right data-offset-top');
+      // If an active vertical tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-vertical.is-active').attr('data-offset-' + edge, '');
+      // If an active horizontal tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-horizontal.is-active').attr('data-offset-top', '');
+    },
+
+    /**
+     * Sets the tops of the trays so that they align with the bottom of the bar.
+     */
+    adjustPlacement: function () {
+      var $trays = this.$el.find('.toolbar-tray');
+      if (!this.model.get('isOriented')) {
+        $trays.css('padding-top', 0);
+        $trays.removeClass('toolbar-tray-horizontal').addClass('toolbar-tray-vertical');
+      }
+      else {
+        // The toolbar container is invisible. Its placement is used to
+        // determine the container for the trays.
+        $trays.css('padding-top', this.$el.find('.toolbar-bar').outerHeight());
+      }
+    },
+
+    /**
+     * Calls the endpoint URI that will return rendered subtrees with JSONP.
+     *
+     * The rendered admin menu subtrees HTML is cached on the client in
+     * localStorage until the cache of the admin menu subtrees on the server-
+     * side is invalidated. The subtreesHash is stored in localStorage as well
+     * and compared to the subtreesHash in drupalSettings to determine when the
+     * admin menu subtrees cache has been invalidated.
+     */
+    loadSubtrees: function () {
+      var $activeTab = $(this.model.get('activeTab'));
+      var orientation = this.model.get('orientation');
+      // Only load and render the admin menu subtrees if:
+      //   (1) They have not been loaded yet.
+      //   (2) The active tab is the administration menu tab, indicated by the
+      //       presence of the data-drupal-subtrees attribute.
+      //   (3) The orientation of the tray is vertical.
+      if (!this.model.get('areSubtreesLoaded') && typeof $activeTab.data('drupal-subtrees') !== 'undefined' && orientation === 'vertical') {
+        var subtreesHash = drupalSettings.toolbar.subtreesHash;
+        var langcode = drupalSettings.toolbar.langcode;
+        var endpoint = Drupal.url('toolbar/subtrees/' + subtreesHash + '/' + langcode);
+        var cachedSubtreesHash = localStorage.getItem('Drupal.toolbar.subtreesHash');
+        var cachedSubtrees = JSON.parse(localStorage.getItem('Drupal.toolbar.subtrees'));
+        var isVertical = this.model.get('orientation') === 'vertical';
+        // If we have the subtrees in localStorage and the subtree hash has not
+        // changed, then use the cached data.
+        if (isVertical && subtreesHash === cachedSubtreesHash && cachedSubtrees) {
+          Drupal.toolbar.setSubtrees.resolve(cachedSubtrees);
+        }
+        // Only make the call to get the subtrees if the orientation of the
+        // toolbar is vertical.
+        else if (isVertical) {
+          // Remove the cached menu information.
+          localStorage.removeItem('Drupal.toolbar.subtreesHash');
+          localStorage.removeItem('Drupal.toolbar.subtrees');
+          // The response from the server will call the resolve method of the
+          // Drupal.toolbar.setSubtrees Promise.
+          $.ajax(endpoint);
+          // Cache the hash for the subtrees locally.
+          localStorage.setItem('Drupal.toolbar.subtreesHash', subtreesHash);
+        }
+      }
+    }
+  });
+
+}(jQuery, Drupal, drupalSettings, Backbone));
+;
+/* jQuery Foundation Joyride Plugin 2.1 | Copyright 2012, ZURB | www.opensource.org/licenses/mit-license.php */
+(function(e,t,n){"use strict";var r={version:"2.0.3",tipLocation:"bottom",nubPosition:"auto",scroll:!0,scrollSpeed:300,timer:0,autoStart:!1,startTimerOnClick:!0,startOffset:0,nextButton:!0,tipAnimation:"fade",pauseAfter:[],tipAnimationFadeSpeed:300,cookieMonster:!1,cookieName:"joyride",cookieDomain:!1,cookiePath:!1,localStorage:!1,localStorageKey:"joyride",tipContainer:"body",modal:!1,expose:!1,postExposeCallback:e.noop,preRideCallback:e.noop,postRideCallback:e.noop,preStepCallback:e.noop,postStepCallback:e.noop,template:{link:'<a href="#close" class="joyride-close-tip">X</a>',timer:'<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',tip:'<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',wrapper:'<div class="joyride-content-wrapper" role="dialog"></div>',button:'<a href="#" class="joyride-next-tip"></a>',modal:'<div class="joyride-modal-bg"></div>',expose:'<div class="joyride-expose-wrapper"></div>',exposeCover:'<div class="joyride-expose-cover"></div>'}},i=i||!1,s={},o={init:function(n){return this.each(function(){e.isEmptyObject(s)?(s=e.extend(!0,r,n),s.document=t.document,s.$document=e(s.document),s.$window=e(t),s.$content_el=e(this),s.$body=e(s.tipContainer),s.body_offset=e(s.tipContainer).position(),s.$tip_content=e("> li",s.$content_el),s.paused=!1,s.attempts=0,s.tipLocationPatterns={top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},o.jquery_check(),e.isFunction(e.cookie)||(s.cookieMonster=!1),(!s.cookieMonster||!e.cookie(s.cookieName))&&(!s.localStorage||!o.support_localstorage()||!localStorage.getItem(s.localStorageKey))&&(s.$tip_content.each(function(t){o.create({$li:e(this),index:t})}),s.autoStart&&(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"))),s.$document.on("click.joyride",".joyride-next-tip, .joyride-modal-bg",function(e){e.preventDefault(),s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())}),s.$document.on("click.joyride",".joyride-close-tip",function(e){e.preventDefault(),o.end()}),s.$window.bind("resize.joyride",function(t){if(s.$li){if(s.exposed&&s.exposed.length>0){var n=e(s.exposed);n.each(function(){var t=e(this);o.un_expose(t),o.expose(t)})}o.is_phone()?o.pos_phone():o.pos_default()}})):o.restart()})},resume:function(){o.set_li(),o.show()},nextTip:function(){s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())},tip_template:function(t){var n,r,i;return t.tip_class=t.tip_class||"",n=e(s.template.tip).addClass(t.tip_class),r=e.trim(e(t.li).html())+o.button_text(t.button_text)+s.template.link+o.timer_instance(t.index),i=e(s.template.wrapper),t.li.attr("data-aria-labelledby")&&i.attr("aria-labelledby",t.li.attr("data-aria-labelledby")),t.li.attr("data-aria-describedby")&&i.attr("aria-describedby",t.li.attr("data-aria-describedby")),n.append(i),n.first().attr("data-index",t.index),e(".joyride-content-wrapper",n).append(r),n[0]},timer_instance:function(t){var n;return t===0&&s.startTimerOnClick&&s.timer>0||s.timer===0?n="":n=o.outerHTML(e(s.template.timer)[0]),n},button_text:function(t){return s.nextButton?(t=e.trim(t)||"Next",t=o.outerHTML(e(s.template.button).append(t)[0])):t="",t},create:function(t){var n=t.$li.attr("data-button")||t.$li.attr("data-text"),r=t.$li.attr("class"),i=e(o.tip_template({tip_class:r,index:t.index,button_text:n,li:t.$li}));e(s.tipContainer).append(i)},show:function(t){var r={},i,u=[],a=0,f,l=null;if(s.$li===n||e.inArray(s.$li.index(),s.pauseAfter)===-1){s.paused?s.paused=!1:o.set_li(t),s.attempts=0;if(s.$li.length&&s.$target.length>0){t&&(s.preRideCallback(s.$li.index(),s.$next_tip),s.modal&&o.show_modal()),s.preStepCallback(s.$li.index(),s.$next_tip),u=(s.$li.data("options")||":").split(";"),a=u.length;for(i=a-1;i>=0;i--)f=u[i].split(":"),f.length===2&&(r[e.trim(f[0])]=e.trim(f[1]));s.tipSettings=e.extend({},s,r),s.tipSettings.tipLocationPattern=s.tipLocationPatterns[s.tipSettings.tipLocation],s.modal&&s.expose&&o.expose(),!/body/i.test(s.$target.selector)&&s.scroll&&o.scroll_to(),o.is_phone()?o.pos_phone(!0):o.pos_default(!0),l=e(".joyride-timer-indicator",s.$next_tip),/pop/i.test(s.tipAnimation)?(l.outerWidth(0),s.timer>0?(s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.show()):/fade/i.test(s.tipAnimation)&&(l.outerWidth(0),s.timer>0?(s.$next_tip.fadeIn(s.tipAnimationFadeSpeed),s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.fadeIn(s.tipAnimationFadeSpeed)),s.$current_tip=s.$next_tip,e(".joyride-next-tip",s.$current_tip).focus(),o.tabbable(s.$current_tip)}else s.$li&&s.$target.length<1?o.show():o.end()}else s.paused=!0},is_phone:function(){return i?i.mq("only screen and (max-width: 767px)"):s.$window.width()<767?!0:!1},support_localstorage:function(){return i?i.localstorage:!!t.localStorage},hide:function(){s.modal&&s.expose&&o.un_expose(),s.modal||e(".joyride-modal-bg").hide(),s.$current_tip.hide(),s.postStepCallback(s.$li.index(),s.$current_tip)},set_li:function(e){e?(s.$li=s.$tip_content.eq(s.startOffset),o.set_next_tip(),s.$current_tip=s.$next_tip):(s.$li=s.$li.next(),o.set_next_tip()),o.set_target()},set_next_tip:function(){s.$next_tip=e(".joyride-tip-guide[data-index="+s.$li.index()+"]")},set_target:function(){var t=s.$li.attr("data-class"),n=s.$li.attr("data-id"),r=function(){return n?e(s.document.getElementById(n)):t?e("."+t).filter(":visible").first():e("body")};s.$target=r()},scroll_to:function(){var t,n;t=s.$window.height()/2,n=Math.ceil(s.$target.offset().top-t+s.$next_tip.outerHeight()),e("html, body").stop().animate({scrollTop:n},s.scrollSpeed)},paused:function(){return e.inArray(s.$li.index()+1,s.pauseAfter)===-1?!0:!1},destroy:function(){e.isEmptyObject(s)||s.$document.off(".joyride"),e(t).off(".joyride"),e(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),e(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(s.automate),s={}},restart:function(){s.autoStart?(o.hide(),s.$li=n,o.show("init")):(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"),s.autoStart=!0)},pos_default:function(t){var n=Math.ceil(s.$window.height()/2),r=s.$next_tip.offset(),i=e(".joyride-nub",s.$next_tip),u=Math.ceil(i.outerWidth()/2),a=Math.ceil(i.outerHeight()/2),f=t||!1;f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show());if(!/body/i.test(s.$target.selector)){var l=s.tipSettings.tipAdjustmentY?parseInt(s.tipSettings.tipAdjustmentY):0,c=s.tipSettings.tipAdjustmentX?parseInt(s.tipSettings.tipAdjustmentX):0;o.bottom()?(s.$next_tip.css({top:s.$target.offset().top+a+s.$target.outerHeight()+l,left:s.$target.offset().left+c}),/right/i.test(s.tipSettings.nubPosition)&&s.$next_tip.css("left",s.$target.offset().left-s.$next_tip.outerWidth()+s.$target.outerWidth()),o.nub_position(i,s.tipSettings.nubPosition,"top")):o.top()?(s.$next_tip.css({top:s.$target.offset().top-s.$next_tip.outerHeight()-a+l,left:s.$target.offset().left+c}),o.nub_position(i,s.tipSettings.nubPosition,"bottom")):o.right()?(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.outerWidth()+s.$target.offset().left+u+c}),o.nub_position(i,s.tipSettings.nubPosition,"left")):o.left()&&(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.offset().left-s.$next_tip.outerWidth()-u+c}),o.nub_position(i,s.tipSettings.nubPosition,"right")),!o.visible(o.corners(s.$next_tip))&&s.attempts<s.tipSettings.tipLocationPattern.length&&(i.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),s.tipSettings.tipLocation=s.tipSettings.tipLocationPattern[s.attempts],s.attempts++,o.pos_default(!0))}else s.$li.length&&o.pos_modal(i);f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_phone:function(t){var n=s.$next_tip.outerHeight(),r=s.$next_tip.offset(),i=s.$target.outerHeight(),u=e(".joyride-nub",s.$next_tip),a=Math.ceil(u.outerHeight()/2),f=t||!1;u.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show()),/body/i.test(s.$target.selector)?s.$li.length&&o.pos_modal(u):o.top()?(s.$next_tip.offset({top:s.$target.offset().top-n-a}),u.addClass("bottom")):(s.$next_tip.offset({top:s.$target.offset().top+i+a}),u.addClass("top")),f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_modal:function(e){o.center(),e.hide(),o.show_modal()},show_modal:function(){e(".joyride-modal-bg").length<1&&e("body").append(s.template.modal).show(),/pop/i.test(s.tipAnimation)?e(".joyride-modal-bg").show():e(".joyride-modal-bg").fadeIn(s.tipAnimationFadeSpeed)},expose:function(){var n,r,i,u,a="expose-"+Math.floor(Math.random()*1e4);if(arguments.length>0&&arguments[0]instanceof e)i=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;i=s.$target}if(i.length<1)return t.console&&console.error("element not valid",i),!1;n=e(s.template.expose),s.$body.append(n),n.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),r=e(s.template.exposeCover),u={zIndex:i.css("z-index"),position:i.css("position")},i.css("z-index",n.css("z-index")*1+1),u.position=="static"&&i.css("position","relative"),i.data("expose-css",u),r.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),s.$body.append(r),n.addClass(a),r.addClass(a),s.tipSettings.exposeClass&&(n.addClass(s.tipSettings.exposeClass),r.addClass(s.tipSettings.exposeClass)),i.data("expose",a),s.postExposeCallback(s.$li.index(),s.$next_tip,i),o.add_exposed(i)},un_expose:function(){var n,r,i,u,a=!1;if(arguments.length>0&&arguments[0]instanceof e)r=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;r=s.$target}if(r.length<1)return t.console&&console.error("element not valid",r),!1;n=r.data("expose"),i=e("."+n),arguments.length>1&&(a=arguments[1]),a===!0?e(".joyride-expose-wrapper,.joyride-expose-cover").remove():i.remove(),u=r.data("expose-css"),u.zIndex=="auto"?r.css("z-index",""):r.css("z-index",u.zIndex),u.position!=r.css("position")&&(u.position=="static"?r.css("position",""):r.css("position",u.position)),r.removeData("expose"),r.removeData("expose-z-index"),o.remove_exposed(r)},add_exposed:function(t){s.exposed=s.exposed||[],t instanceof e?s.exposed.push(t[0]):typeof t=="string"&&s.exposed.push(t)},remove_exposed:function(t){var n;t instanceof e?n=t[0]:typeof t=="string"&&(n=t),s.exposed=s.exposed||[];for(var r=0;r<s.exposed.length;r++)if(s.exposed[r]==n){s.exposed.splice(r,1);return}},center:function(){var e=s.$window;return s.$next_tip.css({top:(e.height()-s.$next_tip.outerHeight())/2+e.scrollTop(),left:(e.width()-s.$next_tip.outerWidth())/2+e.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(s.tipSettings.tipLocation)},top:function(){return/top/i.test(s.tipSettings.tipLocation)},right:function(){return/right/i.test(s.tipSettings.tipLocation)},left:function(){return/left/i.test(s.tipSettings.tipLocation)},corners:function(e){var t=s.$window,n=t.height()/2,r=Math.ceil(s.$target.offset().top-n+s.$next_tip.outerHeight()),i=t.width()+t.scrollLeft(),o=t.height()+r,u=t.height()+t.scrollTop(),a=t.scrollTop();return r<a&&(r<0?a=0:a=r),o>u&&(u=o),[e.offset().top<a,i<e.offset().left+e.outerWidth(),u<e.offset().top+e.outerHeight(),t.scrollLeft()>e.offset().left]},visible:function(e){var t=e.length;while(t--)if(e[t])return!1;return!0},nub_position:function(e,t,n){t==="auto"?e.addClass(n):e.addClass(t)},startTimer:function(){s.$li.length?s.automate=setTimeout(function(){o.hide(),o.show(),o.startTimer()},s.timer):clearTimeout(s.automate)},end:function(){s.cookieMonster&&e.cookie(s.cookieName,"ridden",{expires:365,domain:s.cookieDomain,path:s.cookiePath}),s.localStorage&&localStorage.setItem(s.localStorageKey,!0),s.timer>0&&clearTimeout(s.automate),s.modal&&s.expose&&o.un_expose(),s.$current_tip&&s.$current_tip.hide(),s.$li&&(s.postStepCallback(s.$li.index(),s.$current_tip),s.postRideCallback(s.$li.index(),s.$current_tip)),e(".joyride-modal-bg").hide()},jquery_check:function(){return e.isFunction(e.fn.on)?!0:(e.fn.on=function(e,t,n){return this.delegate(t,e,n)},e.fn.off=function(e,t,n){return this.undelegate(t,e,n)},!1)},outerHTML:function(e){return e.outerHTML||(new XMLSerializer).serializeToString(e)},version:function(){return s.version},tabbable:function(t){e(t).on("keydown",function(n){if(!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===27){n.preventDefault(),o.end();return}if(n.keyCode!==9)return;var r=e(t).find(":tabbable"),i=r.filter(":first"),s=r.filter(":last");n.target===s[0]&&!n.shiftKey?(i.focus(1),n.preventDefault()):n.target===i[0]&&n.shiftKey&&(s.focus(1),n.preventDefault())})}};e.fn.joyride=function(t){if(o[t])return o[t].apply(this,Array.prototype.slice.call(arguments,1));if(typeof t=="object"||!t)return o.init.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.joyride")}})(jQuery,this);
+;
+/**
+ * @file
+ * Attaches behaviors for the Tour module's toolbar tab.
+ */
+
+(function ($, Backbone, Drupal, document) {
+
+  "use strict";
+
+  var queryString = decodeURI(window.location.search);
+
+  /**
+   * Attaches the tour's toolbar tab behavior.
+   *
+   * It uses the query string for:
+   * - tour: When ?tour=1 is present, the tour will start automatically
+   *         after the page has loaded.
+   * - tips: Pass ?tips=class in the url to filter the available tips to
+   *         the subset which match the given class.
+   *
+   * Example:
+   *   http://example.com/foo?tour=1&tips=bar
+   */
+  Drupal.behaviors.tour = {
+    attach: function (context) {
+      $('body').once('tour').each(function () {
+        var model = new Drupal.tour.models.StateModel();
+        new Drupal.tour.views.ToggleTourView({
+          el: $(context).find('#toolbar-tab-tour'),
+          model: model
+        });
+
+        model
+          // Allow other scripts to respond to tour events.
+          .on('change:isActive', function (model, isActive) {
+            $(document).trigger((isActive) ? 'drupalTourStarted' : 'drupalTourStopped');
+          })
+          // Initialization: check whether a tour is available on the current page.
+          .set('tour', $(context).find('ol#tour'));
+
+        // Start the tour immediately if toggled via query string.
+        if (/tour=?/i.test(queryString)) {
+          model.set('isActive', true);
+        }
+      });
+    }
+  };
+
+  Drupal.tour = Drupal.tour || {models: {}, views: {}};
+
+  /**
+   * Backbone Model for tours.
+   */
+  Drupal.tour.models.StateModel = Backbone.Model.extend({
+    defaults: {
+      // Indicates whether the Drupal root window has a tour.
+      tour: [],
+      // Indicates whether the tour is currently running.
+      isActive: false,
+      // Indicates which tour is the active one (necessary to cleanly stop).
+      activeTour: []
+    }
+  });
+
+  /**
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.tour.views.ToggleTourView = Backbone.View.extend({
+
+    events: {'click': 'onClick'},
+
+    /**
+     * Implements Backbone Views' initialize().
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:tour change:isActive', this.render);
+      this.listenTo(this.model, 'change:isActive', this.toggleTour);
+    },
+
+    /**
+     * Implements Backbone Views' render().
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', this._getTour().length === 0);
+      // Render the state.
+      var isActive = this.model.get('isActive');
+      this.$el.find('button')
+        .toggleClass('is-active', isActive)
+        .prop('aria-pressed', isActive);
+      return this;
+    },
+
+    /**
+     * Model change handler; starts or stops the tour.
+     */
+    toggleTour: function () {
+      if (this.model.get('isActive')) {
+        var $tour = this._getTour();
+        this._removeIrrelevantTourItems($tour, this._getDocument());
+        var that = this;
+        if ($tour.find('li').length) {
+          $tour.joyride({
+            autoStart: true,
+            postRideCallback: function () { that.model.set('isActive', false); },
+            template: { // HTML segments for tip layout
+              link: '<a href=\"#close\" class=\"joyride-close-tip\">&times;</a>',
+              button: '<a href=\"#\" class=\"button button--primary joyride-next-tip\"></a>'
+            }
+          });
+          this.model.set({isActive: true, activeTour: $tour});
+        }
+      }
+      else {
+        this.model.get('activeTour').joyride('destroy');
+        this.model.set({isActive: false, activeTour: []});
+      }
+    },
+
+    /**
+     * Toolbar tab click event handler; toggles isActive.
+     */
+    onClick: function (event) {
+      this.model.set('isActive', !this.model.get('isActive'));
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Gets the tour.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to a <ol> containing tour items.
+     */
+    _getTour: function () {
+      return this.model.get('tour');
+    },
+
+    /**
+     * Gets the relevant document as a jQuery element.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to the document within which a tour would be
+     *   started given the current state.
+     */
+    _getDocument: function () {
+      return $(document);
+    },
+
+    /**
+     * Removes tour items for elements that don't have matching page elements or
+     * are explicitly filtered out via the 'tips' query string.
+     *
+     * Example:
+     *   http://example.com/foo?tips=bar
+     *
+     *   The above will filter out tips that do not have a matching page element or
+     *   don't have the "bar" class.
+     *
+     * @param jQuery $tour
+     *   A jQuery element pointing to a <ol> containing tour items.
+     * @param jQuery $document
+     *   A jQuery element pointing to the document within which the elements
+     *   should be sought.
+     *
+     * @see _getDocument()
+     */
+    _removeIrrelevantTourItems: function ($tour, $document) {
+      var removals = false;
+      var tips = /tips=([^&]+)/.exec(queryString);
+      $tour
+        .find('li')
+        .each(function () {
+          var $this = $(this);
+          var itemId = $this.attr('data-id');
+          var itemClass = $this.attr('data-class');
+          // If the query parameter 'tips' is set, remove all tips that don't
+          // have the matching class.
+          if (tips && !$(this).hasClass(tips[1])) {
+            removals = true;
+            $this.remove();
+            return;
+          }
+          // Remove tip from the DOM if there is no corresponding page element.
+          if ((!itemId && !itemClass) ||
+            (itemId && $document.find('#' + itemId).length) ||
+            (itemClass && $document.find('.' + itemClass).length)) {
+            return;
+          }
+          removals = true;
+          $this.remove();
+        });
+
+      // If there were removals, we'll have to do some clean-up.
+      if (removals) {
+        var total = $tour.find('li').length;
+        if (!total) {
+          this.model.set({tour: []});
+        }
+
+        $tour
+          .find('li')
+          // Rebuild the progress data.
+          .each(function (index) {
+            var progress = Drupal.t('!tour_item of !total', {'!tour_item': index + 1, '!total': total});
+            $(this).find('.tour-progress').text(progress);
+          })
+          // Update the last item to have "End tour" as the button.
+          .eq(-1)
+          .attr('data-text', Drupal.t('End tour'));
+      }
+    }
+
+  });
+
+})(jQuery, Backbone, Drupal, document);
+;
+/**
+ * @file
+ * Manages page tabbing modifications made by modules.
+ */
+
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Provides an API for managing page tabbing order modifications.
+   */
+  function TabbingManager() {
+    // Tabbing sets are stored as a stack. The active set is at the top of the
+    // stack. We use a JavaScript array as if it were a stack; we consider the
+    // first element to be the bottom and the last element to be the top. This
+    // allows us to use JavaScript's built-in Array.push() and Array.pop()
+    // methods.
+    this.stack = [];
+  }
+
+  /**
+   * Add public methods to the TabbingManager class.
+   */
+  $.extend(TabbingManager.prototype, {
+    /**
+     * Constrain tabbing to the specified set of elements only.
+     *
+     * Makes elements outside of the specified set of elements unreachable via the
+     * tab key.
+     *
+     * @param jQuery elements
+     *   The set of elements to which tabbing should be constrained. Can also be
+     *   a jQuery-compatible selector string.
+     *
+     * @return TabbingContext
+     */
+    constrain: function (elements) {
+      // Deactivate all tabbingContexts to prepare for the new constraint. A
+      // tabbingContext instance will only be reactivated if the stack is unwound
+      // to it in the _unwindStack() method.
+      var il = this.stack.length;
+      for (var i = 0; i < il; i++) {
+        this.stack[i].deactivate();
+      }
+
+      // The "active tabbing set" are the elements tabbing should be constrained
+      // to.
+      var $elements = $(elements).find(':tabbable').addBack(':tabbable');
+
+      var tabbingContext = new TabbingContext({
+        // The level is the current height of the stack before this new
+        // tabbingContext is pushed on top of the stack.
+        level: this.stack.length,
+        $tabbableElements: $elements
+      });
+
+      this.stack.push(tabbingContext);
+
+      // Activates the tabbingContext; this will manipulate the DOM to constrain
+      // tabbing.
+      tabbingContext.activate();
+
+      // Allow modules to respond to the constrain event.
+      $(document).trigger('drupalTabbingConstrained', tabbingContext);
+
+      return tabbingContext;
+    },
+
+    /**
+     * Restores a former tabbingContext when an active tabbingContext is released.
+     *
+     * The TabbingManager stack of tabbingContext instances will be unwound from
+     * the top-most released tabbingContext down to the first non-released
+     * tabbingContext instance. This non-released instance is then activated.
+     */
+    release: function () {
+      // Unwind as far as possible: find the topmost non-released tabbingContext.
+      var toActivate = this.stack.length - 1;
+      while (toActivate >= 0 && this.stack[toActivate].released) {
+        toActivate--;
+      }
+
+      // Delete all tabbingContexts after the to be activated one. They have
+      // already been deactivated, so their effect on the DOM has been reversed.
+      this.stack.splice(toActivate + 1);
+
+      // Get topmost tabbingContext, if one exists, and activate it.
+      if (toActivate >= 0) {
+        this.stack[toActivate].activate();
+      }
+    },
+
+    /**
+     * Makes all elements outside the of the tabbingContext's set untabbable.
+     *
+     * Elements made untabbable have their original tabindex and autofocus values
+     * stored so that they might be restored later when this tabbingContext
+     * is deactivated.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been activated.
+     */
+    activate: function (tabbingContext) {
+      var $set = tabbingContext.$tabbableElements;
+      var level = tabbingContext.level;
+      // Determine which elements are reachable via tabbing by default.
+      var $disabledSet = $(':tabbable')
+        // Exclude elements of the active tabbing set.
+        .not($set);
+      // Set the disabled set on the tabbingContext.
+      tabbingContext.$disabledElements = $disabledSet;
+      // Record the tabindex for each element, so we can restore it later.
+      var il = $disabledSet.length;
+      for (var i = 0; i < il; i++) {
+        this.recordTabindex($disabledSet.eq(i), level);
+      }
+      // Make all tabbable elements outside of the active tabbing set unreachable.
+      $disabledSet
+        .prop('tabindex', -1)
+        .prop('autofocus', false);
+
+      // Set focus on an element in the tabbingContext's set of tabbable elements.
+      // First, check if there is an element with an autofocus attribute. Select
+      // the last one from the DOM order.
+      var $hasFocus = $set.filter('[autofocus]').eq(-1);
+      // If no element in the tabbable set has an autofocus attribute, select the
+      // first element in the set.
+      if ($hasFocus.length === 0) {
+        $hasFocus = $set.eq(0);
+      }
+      $hasFocus.trigger('focus');
+    },
+
+    /**
+     * Restores that tabbable state of a tabbingContext's disabled elements.
+     *
+     * Elements that were made untabbable have their original tabindex and autofocus
+     * values restored.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been deactivated.
+     */
+    deactivate: function (tabbingContext) {
+      var $set = tabbingContext.$disabledElements;
+      var level = tabbingContext.level;
+      var il = $set.length;
+      for (var i = 0; i < il; i++) {
+        this.restoreTabindex($set.eq(i), level);
+      }
+    },
+
+    /**
+     * Records the tabindex and autofocus values of an untabbable element.
+     *
+     * @param jQuery $set
+     *   The set of elements that have been disabled.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be recorded.
+     */
+    recordTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices') || {};
+      tabInfo[level] = {
+        tabindex: $el[0].getAttribute('tabindex'),
+        autofocus: $el[0].hasAttribute('autofocus')
+      };
+      $el.data('drupalOriginalTabIndices', tabInfo);
+    },
+
+    /**
+     * Restores the tabindex and autofocus values of a reactivated element.
+     *
+     * @param jQuery $el
+     *   The element that is being reactivated.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be restored.
+     */
+    restoreTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices');
+      if (tabInfo && tabInfo[level]) {
+        var data = tabInfo[level];
+        if (data.tabindex) {
+          $el[0].setAttribute('tabindex', data.tabindex);
+        }
+        // If the element did not have a tabindex at this stack level then
+        // remove it.
+        else {
+          $el[0].removeAttribute('tabindex');
+        }
+        if (data.autofocus) {
+          $el[0].setAttribute('autofocus', 'autofocus');
+        }
+
+        // Clean up $.data.
+        if (level === 0) {
+          // Remove all data.
+          $el.removeData('drupalOriginalTabIndices');
+        }
+        else {
+          // Remove the data for this stack level and higher.
+          var levelToDelete = level;
+          while (tabInfo.hasOwnProperty(levelToDelete)) {
+            delete tabInfo[levelToDelete];
+            levelToDelete++;
+          }
+          $el.data('drupalOriginalTabIndices', tabInfo);
+        }
+      }
+    }
+  });
+
+  /**
+   * Stores a set of tabbable elements.
+   *
+   * This constraint can be removed with the release() method.
+   *
+   * @param Object options
+   *   A set of initiating values that include:
+   *   - Number level: The level in the TabbingManager's stack of this
+   *   tabbingContext.
+   *   - jQuery $tabbableElements: The DOM elements that should be reachable via
+   *   the tab key when this tabbingContext is active.
+   *   - jQuery $disabledElements: The DOM elements that should not be reachable
+   *   via the tab key when this tabbingContext is active.
+   *   - Boolean released: A released tabbingContext can never be activated again.
+   *   It will be cleaned up when the TabbingManager unwinds its stack.
+   *   - Boolean active: When true, the tabbable elements of this tabbingContext
+   *   will be reachable via the tab key and the disabled elements will not. Only
+   *   one tabbingContext can be active at a time.
+   */
+  function TabbingContext(options) {
+    $.extend(this, {
+      level: null,
+      $tabbableElements: $(),
+      $disabledElements: $(),
+      released: false,
+      active: false
+    }, options);
+  }
+
+  /**
+   * Add public methods to the TabbingContext class.
+   */
+  $.extend(TabbingContext.prototype, {
+    /**
+     * Releases this TabbingContext.
+     *
+     * Once a TabbingContext object is released, it can never be activated again.
+     */
+    release: function () {
+      if (!this.released) {
+        this.deactivate();
+        this.released = true;
+        Drupal.tabbingManager.release(this);
+        // Allow modules to respond to the tabbingContext release event.
+        $(document).trigger('drupalTabbingContextReleased', this);
+      }
+    },
+
+    /**
+     * Activates this TabbingContext.
+     */
+    activate: function () {
+      // A released TabbingContext object can never be activated again.
+      if (!this.active && !this.released) {
+        this.active = true;
+        Drupal.tabbingManager.activate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextActivated', this);
+      }
+    },
+
+    /**
+     * Deactivates this TabbingContext.
+     */
+    deactivate: function () {
+      if (this.active) {
+        this.active = false;
+        Drupal.tabbingManager.deactivate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextDeactivated', this);
+      }
+    }
+  });
+
+  // Mark this behavior as processed on the first pass and return if it is
+  // already processed.
+  if (Drupal.tabbingManager) {
+    return;
+  }
+  Drupal.tabbingManager = new TabbingManager();
+
+}(jQuery, Drupal));
+;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module's edit toolbar tab.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  var strings = {
+    tabbingReleased: Drupal.t('Tabbing is no longer constrained by the Contextual module.'),
+    tabbingConstrained: Drupal.t('Tabbing is constrained to a set of @contextualsCount and the edit mode toggle.'),
+    pressEsc: Drupal.t('Press the esc key to exit.')
+  };
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param DOM links
+   *   A contextual links DOM element as rendered by the server.
+   */
+  function initContextualToolbar(context) {
+    if (!Drupal.contextual || !Drupal.contextual.collection) {
+      return;
+    }
+
+    var contextualToolbar = Drupal.contextualToolbar;
+    var model = contextualToolbar.model = new contextualToolbar.StateModel({
+      // Checks whether localStorage indicates we should start in edit mode
+      // rather than view mode.
+      // @see Drupal.contextualToolbar.VisualView.persist()
+      isViewing: localStorage.getItem('Drupal.contextualToolbar.isViewing') !== 'false'
+    }, {
+      contextualCollection: Drupal.contextual.collection
+    });
+
+    var viewOptions = {
+      el: $('.toolbar .toolbar-bar .contextual-toolbar-tab'),
+      model: model,
+      strings: strings
+    };
+    new contextualToolbar.VisualView(viewOptions);
+    new contextualToolbar.AuralView(viewOptions);
+  }
+
+  /**
+   * Attaches contextual's edit toolbar tab behavior.
+   */
+  Drupal.behaviors.contextualToolbar = {
+    attach: function (context) {
+      if ($('body').once('contextualToolbar-init').length) {
+        initContextualToolbar(context);
+      }
+    }
+  };
+
+  Drupal.contextualToolbar = {
+    // The Drupal.contextualToolbar.Model instance.
+    model: null
+  };
+
+})(jQuery, Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone Model for the state of Contextual module's edit toolbar tab.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of the edit mode toggle.
+   */
+  Drupal.contextualToolbar.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // Indicates whether the toggle is currently in "view" or "edit" mode.
+      isViewing: true,
+      // Indicates whether the toggle should be visible or hidden. Automatically
+      // calculated, depends on contextualCount.
+      isVisible: false,
+      // Tracks how many contextual links exist on the page.
+      contextualCount: 0,
+      // A TabbingContext object as returned by Drupal.TabbingManager: the set
+      // of tabbable elements when edit mode is enabled.
+      tabbingContext: null
+    },
+
+    /**
+     * {@inheritdoc}
+     *
+     * @param Object attrs
+     * @param Object options
+     *   An object with the following option:
+     *     - Backbone.collection contextualCollection: the collection of
+     *       Drupal.contextual.StateModel models that represent the contextual
+     *       links on the page.
+     */
+    initialize: function (attrs, options) {
+      // Respond to new/removed contextual links.
+      this.listenTo(options.contextualCollection, {
+        'reset remove add': this.countContextualLinks,
+        'add': this.lockNewContextualLinks
+      });
+
+      this.listenTo(this, {
+        // Automatically determine visibility.
+        'change:contextualCount': this.updateVisibility,
+        // Whenever edit mode is toggled, lock all contextual links.
+        'change:isViewing': function (model, isViewing) {
+          options.contextualCollection.each(function (contextualModel) {
+            contextualModel.set('isLocked', !isViewing);
+          });
+        }
+      });
+    },
+
+    /**
+     * Tracks the number of contextual link models in the collection.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added or removed.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    countContextualLinks: function (contextualModel, contextualCollection) {
+      this.set('contextualCount', contextualCollection.length);
+    },
+
+    /**
+     * Lock newly added contextual links if edit mode is enabled.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    lockNewContextualLinks: function (contextualModel, contextualCollection) {
+      if (!this.get('isViewing')) {
+        contextualModel.set('isLocked', true);
+      }
+    },
+
+    /**
+     * Automatically updates visibility of the view/edit mode toggle.
+     */
+    updateVisibility: function () {
+      this.set('isVisible', this.get('contextualCount') > 0);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of the edit mode toggle.
+ */
+
+(function ($, Drupal, Backbone, _) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of the edit mode toggle (i.e.screen reader support).
+   */
+  Drupal.contextualToolbar.AuralView = Backbone.View.extend({
+
+    // Tracks whether the tabbing constraint announcement has been read once yet.
+    announcedOnce: false,
+
+    /*
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.manageTabbing);
+
+      $(document).on('keyup', _.bind(this.onKeypress, this));
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the state.
+      this.$el.find('button').attr('aria-pressed', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Limits tabbing to the contextual links and edit mode toolbar tab.
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    manageTabbing: function () {
+      var tabbingContext = this.model.get('tabbingContext');
+      // Always release an existing tabbing context.
+      if (tabbingContext) {
+        tabbingContext.release();
+        Drupal.announce(this.options.strings.tabbingReleased);
+      }
+      // Create a new tabbing context when edit mode is enabled.
+      if (!this.model.get('isViewing')) {
+        tabbingContext = Drupal.tabbingManager.constrain($('.contextual-toolbar-tab, .contextual'));
+        this.model.set('tabbingContext', tabbingContext);
+        this.announceTabbingConstraint();
+        this.announcedOnce = true;
+      }
+    },
+
+    /**
+     * Announces the current tabbing constraint.
+     */
+    announceTabbingConstraint: function () {
+      var strings = this.options.strings;
+      Drupal.announce(Drupal.formatString(strings.tabbingConstrained, {
+        '@contextualsCount': Drupal.formatPlural(Drupal.contextual.collection.length, '@count contextual link', '@count contextual links')
+      }));
+      Drupal.announce(strings.pressEsc);
+    },
+
+    /**
+     * Responds to esc and tab key press events.
+     *
+     * @param jQuery.Event event
+     */
+    onKeypress: function (event) {
+      // The first tab key press is tracked so that an annoucement about tabbing
+      // constraints can be raised if edit mode is enabled when the page is
+      // loaded.
+      if (!this.announcedOnce && event.keyCode === 9 && !this.model.get('isViewing')) {
+        this.announceTabbingConstraint();
+        // Set announce to true so that this conditional block won't run again.
+        this.announcedOnce = true;
+      }
+      // Respond to the ESC key. Exit out of edit mode.
+      if (event.keyCode === 27) {
+        this.model.set('isViewing', true);
+      }
+    }
+
+  });
+
+})(jQuery, Drupal, Backbone, _);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of the edit mode toggle.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of the edit mode toggle. Listens to mouse & touch.
+   *
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.contextualToolbar.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click': function () {
+          this.model.set('isViewing', !this.model.get('isViewing'));
+        },
+        'touchend': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.persist);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', !this.model.get('isVisible'));
+      // Render the state.
+      this.$el.find('button').toggleClass('is-active', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Model change handler; persists the isViewing value to localStorage.
+     *
+     * isViewing === true is the default, so only stores in localStorage when
+     * it's not the default value (i.e. false).
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    persist: function (model, isViewing) {
+      if (!isViewing) {
+        localStorage.setItem('Drupal.contextualToolbar.isViewing', 'false');
+      }
+      else {
+        localStorage.removeItem('Drupal.contextualToolbar.isViewing');
+      }
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ *
+ * Replaces the home link in toolbar with a back to site link.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  var pathInfo = drupalSettings.path;
+  var escapeAdminPath = sessionStorage.getItem('escapeAdminPath');
+  var windowLocation = window.location;
+
+  // Saves the last non-administrative page in the browser to be able to link back
+  // to it when browsing administrative pages. If there is a destination parameter
+  // there is not need to save the current path because the page is loaded within
+  // an existing "workflow".
+  if (!pathInfo.currentPathIsAdmin && !/destination=/.test(windowLocation.search)) {
+    sessionStorage.setItem('escapeAdminPath', windowLocation);
+  }
+
+  /**
+   * Replaces the "Home" link with "Back to site" link.
+   *
+   * Back to site link points to the last non-administrative page the user visited
+   * within the same browser tab.
+   */
+  Drupal.behaviors.escapeAdmin = {
+    attach: function () {
+      var $toolbarEscape = $('[data-toolbar-escape-admin]').once('escapeAdmin');
+      if ($toolbarEscape.length && pathInfo.currentPathIsAdmin) {
+        if (escapeAdminPath !== null) {
+          $toolbarEscape.attr('href', escapeAdminPath);
+        }
+        else {
+          $toolbarEscape.text(Drupal.t('Home'));
+        }
+        $toolbarEscape.closest('.toolbar-tab').removeClass('hidden');
+      }
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
diff --git a/sites/default/files/js/js_tUFPozzAXDcfvGucObZMuFl50VML2xlXlbRNs445R7k.js.gz b/sites/default/files/js/js_tUFPozzAXDcfvGucObZMuFl50VML2xlXlbRNs445R7k.js.gz
new file mode 100644
index 0000000..f2e9179
--- /dev/null
+++ b/sites/default/files/js/js_tUFPozzAXDcfvGucObZMuFl50VML2xlXlbRNs445R7k.js.gz
@@ -0,0 +1,399 @@
+     {֕7WA	0!Jr>-N63ӦC1> 	HBŲ#r^Yߵ eg;sZec_^.gZWW[u.:_vp!Я)q)ezu;锫ټuzxv9B0]P&HǛx;ϏnfoӬ3.GETy؆b"f*o[|*WaFmUneb92fFw vlQ+>a@c'2G}O~ͬXg(q:1CqNWr96.oY<#jһ}\Φ|Yi|E7lvêW5
+͝	i&bٙ,boqҿ\_ny7ڻi|CNӳ]zv/鯃lZīƆnOuF.ZNU)1y@Ni2֛v)W2^/ fǛj}mwF|bi<|Av>?J㬇?H +ʼdkJFWӜvQY_1CV}gYҼnbYEv4Jt:.f7xdg2XzJ#a+;jFb Syvo*krgQ!ss8=?>> Pr|pfv\$xM()MM?bӢ}P;)8u!b܏<0?vgX*=NΆe9ϳE*zTevװt#tFkvPKDiAMpgQx<"³k)Яa F?3=J1w|<+2)FQs?xؾEV21ݺ-ͧz+d4y_ֹv;":D./ͬEEU~3FyxvdDq18J˲qPYMG48#W&z?2ƉՔui=WŨ#YDduͼ̈DoY( <ree9Э^.݅GWǖuA߼\fg`^(ר<v$v駽YPhw^ټSB9fU1-dx+W)bKtl?رazIdiR;3_wOg|-3 ~Q(Q~lAf(3&yx渚f'r[_
+ڇ#N4JknڈitXN\ݘD-%iJ?6aڻ+ 53r+U+w[E0:T`9QudDTh.m:z;H=uMUi;Š9l?6eRaڥ4=^ gOYz4NOj`pџP)Z+BY~jS^e\h5 h&ցbDiQ75"RXHk@k"tӈpb\Ą?4
+i3#|J Uܺ@GETφŹjtMoMXSIz{5ޣ̱_":W-Zz-jhOi6 `^t?~
+v05u7 +ljiC|ƨ&DydHhےG1=IY\Wu<2.㛘G76ů}3~
+Ʒ=>п,#Wy"?_7 <i_}E,y禼_t!_C|>ǣHHAFBH->[f:Dflq9eM9$U9_$_:Y1]&/[lfhtэq)	5 ._^n./W _AK.Ύ
+ܞv_)Q;O_qp{Wipyߵa~"J`w_^'$MߓA0:]\;{7کZ./?DLa]Mj~:TMXeۇ`JS<Q"
+(_7|0zu/tn"S'hR'4އ=w_6F޽xx~>[}_xU$~͏IzUAs[nfw4ޕS 7<jVߦ]rgWPMa%(!o42맢OJY94&?];zuca/B}WfQiΐͦ\FΊ?r>r7h_]^٦x.oR>0MKxyK	+βO:tE{QACچt2Qv2Dړ<8K48@t5FP@=w&rt]m"J_>~|q/ǻ?G,Lݷy}r:}^+:Cʄhכ<Wz>bb,}F?s-5~)~aGD{áL3p"Rׄ(ml8;2_=S}&#3XREkqG>>\&c{DKl8Iv9 W12N=f4(y/Uͨٙ#T{m:d+P+@AK޳z~}45cw<?ɦ1	11K>%ܲFOiJ!HwkȑGhu6EIuJS`NQ8t
+q)\b="jROQʃ JupLnM\MI^A+i;Ө麽B\E42Zb>ite,!a!RmU^S'a?<ʎ'Œ1}K*NeԴ7UEh7?P#ިv6DNxH{ac6ǐyxL%)h:Y1لI~}.;Hsݗm\R; >q*sj*jq>vh#5AFpta&][@@v0ucH%h} FN1df<m6
+ci >9EZnWSb]+>{hIF騳$b	¨Gz	vㅻPR(s,ObܐFT4@p)|ht#(t`XO#$#M)	d)<!` MAAzk"ҍ5Sgxg?J%rVeU
+EFV-^훗7/|kisz֒F>i;pNcY>H{uNXnhy'üXorGv2#gEݸymK[Mz0ADQ:rU4iL厏
+2	Ʀ%?X*\$:~ȋ
+b>6=ȗUtH@GdvU*D]$4<n^8^w^<(gIGcP#
+e-F`,G8c>+}5`y$T_Ь 1=Y&=}6ϱ+	i3$wZ1l&1R6jATiǀDwN!9L#3Kc	Mz~XauǍ͛A1^a8Gp"v]9H[u=JdpZ*oG;OOpy#:mgg. ~owhV%++=Uv*%;QW*o5(=p7UﹹÆO;ﴡ]ajRY]*g-Tԭ
+G؉$R9a/A١itܴv軌ФKV7M~֔a|W˸0|E3ZgMzە|x]l^ebQl*<ĆبC#	\>]XDG<Q? ޥ;wJ>݁[XPf);rټuGruk?ٓzYK -}qƢ;)G4ݳ$+iJcIlT"(ykz
+ aQFFNZ={hC+̣}:=zePoLD$Pa]9O0J.c̺X='cСqjk}E0JRԽ>8<x/Ď	]6Y8DH#D NM_9n&M̷J-Y:ۥ(VF(5l.UĬ?cA?Ѹݶp@M]oU=\닄i,o1^q+9?qY[&8Ժu)ғ 1mrV+5È芺X&[ȠɡhLv
+-[Einod/eBn4z|sqP|~b^7UR3QSUL`B3%d\)rhSҜ&+czYDk1t77#a%6}64Z\2nm|TNůY5,5[A;).b^CRWj8"oc ;$6϶0&nj_
+#ހ9 H`O @0O41ٞD^̔2kbpjYo	70l<Fub$9Z,?|+t֋Mr1H}5Ç*v.Q;eX}64K9;o|.u0Jҕ7;G[<uIŌLc0@U>.x$wbj6A==nǫ}Qnj޷u~ӣoXOTIпSŀH>%TFu*
+a`?3K-r~o_<|LW/t{>@ǿ?=tbQa$\*Mpc}?ȷg@S@j{m]дs<mfj?wxa#&<J'Kq	Pr3ֿQ`̧T_G0#Fw n - +Ok5լ<o6މH_$nG3**l໡_CY6Litڞ6LezF>lH}ǎK=Hsd6z z,G~߃>nQ~$xh_/7<p	8YXKc;7P@j;]nTܾi@'OUG7F]O`O f1/(^^ő+8 1A4Pw񡣯xG3PwL'F: 7?Vl
+:G2YZ 4&co${2O{b`zOu%Dkc^Qx=x4`c91ݦs?ZX<z妼	q,ޡim1芑IC\=:&]ۋAaP>OqqTK\:4w:!,ɨ|iӜdo 9'l}sl2C'	='&ۖ
+6FK .z$8	ibfUy=\{T֎ӿHsqX;?GMd՝C:L&[hRX܈gu{@ bXy UlG|)0!~&?f[z,E<̊Y-38١5wJ=PKVDz5#	H=DO 9yhcJ}{8LV8ᚪJ/Ё;ynȉ1G&&@>XUIVL"d+۵,G(H5;J{!]Řltެ$/;Òmw:wt߬3[$M=Ȇl'|"̮"AR~0pꬦL;!O|r F{qWj澹&O#A,9UL_SjK[gX82櫦ڬfN?	l*φb'?\&HhْZPj횹(>*$gXyh$UKX	xɈKt^M&}es'i/>|QٗvOO uu5cgWn6f"IFIpgVٸ(xΛX~59~oH-Wc\lreAn.
+UNTRk3wݿ˜dm{c,ˈ-ΡVM8Z7W-0yrm]lqǨ4݅G#9Z̸gkPrjrH͢X9=N^8"4UT~a'RN#q!JQ#ZL#'2:~&Ҵ]-avz0ǳOb?#76s<SY꾢WZ"2`4	I:
+Awx3.&/֍12D>WCQB>!=
+yjޫŻskNg2EE`JO*!7M j&0gjp iE	l,xfdԨ2p:U@DY/Ƴ/b7F`a@l 	mր)iv7W"rhM=3WɣDxaFURqm('8SRbp(p=곕	{	#bptƴc!Q]Ь(g9|+RV|ط&޷xfm"h<Ɍ%w)\_&ܽIhn̨>^Z8eIIzi-;G)I~ǫxI7UŋksQ< [SW\vY5ַdU͙+*{GH⃓O
+=ݓ)J?JV=Ճ)MT%=cp9Lܸ><곾;ż-$X9X\@"r˻ p}G">DҮUd.lT,Q	Aw<ZF*HcwEf9SESX2yn^\ih7	"|	fE
+(:KkE#G[1	6H;в?.?* :)O<ew{h0b(s7hf(>'|v|Lj!a[UmV<~޶S86^ݮsHzOb]%xL;p|Mm݀Қ1^8>GwhXT/pMr7Laacm>ڏXB#=i<*Θ覝 :r5Ήhʞ<>W6\ŬӻݚId5v(@F]R^աޙ8% <Ā1G26"d{CY%]nN&c̑K8PΦgIр"@i\_uZj#(c\#x-(ĄH,=L1timbi=^ëU:'D<"~3"%^IqnCmF3lZ'Z,WLPjL%71B˻K>sEWZZs_?w\q~HbTt'F[@n2O=t	^w`Ȏ{Ǥ4ykTޞW91F[UK-qOd|Kʈ<6@B=0}R|Ary+^liOztD
+gxfSmøPl' ~/"hPnwhǺY^Lgm1̂']Ir+o"HWͦqh;c g095W_'1ܢ;:s]0©\nYtճō^ea{ȆnЍ](f{.yϧxJ7zJ=#oVFT[FO%DCO?6=KzdL 7播F:#엯8N˳ˋ;ם//xUd|n09WYv3ìu|03֬Axq=vwح*YVѺpOq_6Z8=.u-"g9!2$˒m#|TUS]gПTᦌ`4MC:Y;6krC*6=сppRShYJւ1t18U(Šd9=Nk!q/zz}aBV_\X6}:"S{?<8iϑ*Y:>_$t/_%a?Qǃ;!y͌3s7nQlVx> \kb`=NEA>C5u4꣸f	8 =(>F
+>xhޱvG1!~E ɖ#tyNNn8 ,/o߆X-s^`Dk C#<{yVqzBDۺb~Fޛ0:$s:=y6;ImD
+tuRo&Jq?vcO2tKl/^K4BB3w8';t	l!jtrSw z?MJ!X^qs`>pԵ(ͤH)d|I8Z<Qj:ik'%Zr9>I?h8ҮFȎwk"4Ĝ׋.m.ĂX0h!Ag^s7P?`E`]bknɹ2tjƔu~JdL.b,D8	0K2'iW(Mч!P 5hFkr%2tZ{y6$
+k3Pn($TM%ʵjT^rB$ʇ އ:p%~RUt/-mUջmQw*,b) #$.Αcd`w0LqçxYP`<h/8P٪a ޡ44Oyw	@m9uUg|Ro-h'I"Gto= iBEZH-BAAnCI1GOgOGPј ȧ.Sus-vnȣk'|Bqfgg1ݟ`wFir3-s,Rkg:Kqmp.惏+[\o|Q>a`_ofǣ.	TC;C̖)o^-kbVH!i(,zB+zdCדkm`[G	$D>٨!!/ŰCFx05 Ћ=3kWRnlKgYމ{v!(0.K(.A ʄ
+o4`*<%hRD3zA3yۓi<+؂e*g[yϘY9
+UHHPڑx҆ZƂE:Tܱ_!lKgbhRU
+Qlsa4aG'qրx 	 o%y4nGĈktfy٫F~?Xrq!(o	zYrt8d?wrSL> ȕogrޑ<imq.`XΆ젻amV73pꀐEz6 yhFMS_&^?ݼaTu3Q8 .
+±=sF2QG-4`eYrVΜ /pGV74Kg92}BӜptDق08q}3;ǈJ[ct
+^/Y&z'l@i@O=C<!yTqҼc/9P਴f9138M0C|Fl ;'aQ)7Mtp=<HЬu1WM1Cdj5	$O_]P>twK¹(G*sGv:;ЇkP@B	h LHPG<u6b-ĂKv~UV!"y"Or>cSTW6wz|ƪ>S#W9֛y_4WZy\e9'QEAuV]>{RM}Wfczz5hRDI|xSo[8G,À juyS,r	UQu}u:5P4䓣
+d1<FiBn2>&寣jQډIpR-S/*%XJʘ&*tvFLi퐝a^L]3<UdsBW=ݏ()&L]YOI Y`HxF{ynmݻ^15PΠq[37ưNc'7u|uoH`Vp_(ni
+>S5QQ TSđNpݳh@$u>'0mu5֝cU8N&XN&w~MeYSH $lMذv=3EFPB[˞v+JZvL>k㡍rDFu=dewtGI60q;11;S6rI8%Gy
+3FbqrQȝHg	PLaU6!g_Xe+_5a祉TLw̡-~~W'wr|rή_ga"i{?U-4%AFV{byWL`ZN")u2Mq	t^"	@䎃G@nۣ{NdrBt[(ہo쨗|sGK#;CGfS=~ݽT\
+ZUwZ;AuOa=qL<:菙xɈg">L;yj+kpҾdm6.:	y$)*oI67JF0R؛̋~ZG,["x	ffnbQG9ʌ)#׍dc4J蜴G]gcS93a9>vg3UǸ.%M5@t%mxmenoo@5 D	thYF4Qٔ)񹉉ŜȆnA QF	ft`l\O*}[kNвZlЅѪ%B#JvSvBt$UF:V-6dybʾlG$0a6+qrڜUVM?B)w=?N*$FU6Q%cJ"SL`dVbgO{v5oj/j(Y9lQ0a7Ol޿+l֣`R nM:PS"}*ͅNNOǈQ&1r68pofꝛE!3XIAX1:>3|*?t{7~xE6~ALL&aO_M&įe<%Dyaa	 2GP%J,6TqD$FC
+YeSvd?ovu s~( 9 =w(`?Ξ
+6\9(KwG"ӵ\y:Ƀ_'
+V3!tx/蔉?|ufjaYrO嫔(Onu˯<_#Nz¹rTwCuQn,|S[4h7",Y
+$--|$y"t9d' kinPHAfO߆"BH~%كr/a6G`֪avX%ٵόu&'	&)g8t((askh8O^}kR*$tzlzyn:ɣsԠ8lH愈r:txEpSXn4DLyOuTrY}Nyd!*	޼cJ{BD2dt+^s2.iRw"cnH:zϱVLD&͉s A<ʓցIC"-wGftO-y<BrODrt0UU5j@jhP2#U[hkJSUrLfWD
+QynEIr>"rapGf @-=mEHK:k:|
+!kxu &'F*S84_w4%,?!Bu@1\10>$}ΐd
+؜	.W2j9u-[Aq}?T;dMӖ"ƽ^R#!m C*q	,X 5&bG:U~wLWK	NO=;h\9%`M:K9_<K|r|5҂q?UAUiz2bJm8;&A9.;$q蛳,ti_,;Z.(ЊZ%_+oW`mq>j@ &Pu$&",%JF0tVy'XYU&H_n I/o}NJKvbEpS;VޟbڝI~\u*h~M*v<{,0Ψ)|)#'0RY;'/zER,,PnCV壁'Ss	>U:zQ=ɣCl}mma,:QRd*PokލD\`қI^W9Q6ƀxq!qPgQCJS,fCCzֹu++/Bսe%FievW劉=S=}szs}x73)j햊h`0T3ڮcT&"$kNƮ+|Xi,jd:e8\ja:Ŵ~?$aus29T#j`ιArm6YŔgYaZre[836Yޏ7S3ͻD%NjʰoiZx5qeٌ"c	*}ޝq$v4IaSpIcx8Oo⛦ܰ
+坭^TFIeDWhbtǆSIag{77j\3_hS,PY'A6-5mVsvVA=Gd(aP*\ڶ6"7Do44+\(D4UF3 yJKۢJOlGFpü/J{JT&>~6[C6/hZ~Vl	?h?֣U/VlmJܳȡ8)/
+1Gƈ	J=)3,cU0ϡNW<:RS}xZLjSx}n[ƹ?-Իٹ4 \##E%}r@V260]?QN+5\Pg-4Vg}Kߔ@oڭ.z%LYaZ~	̒&ksQi]_|!mʘn8Mc<l+R	 AN&&z&"ڳL3Ph9!wC9R!|姛) g@Di(g8%c:b_٣T?5nv3饋,|>̉N撯0^hl'iUi4b;4f:)M8d@תJhOTWω@IM/	0oB؟p:(\jƣ&buk ԋX!{!lloBt*&^y K]dL(%-"bgzyهToZ`&[jHĊHݹ&&&9#-{ ^@Tl}JtMS[pϔi*v; c^%_Ӧ[}^Ձ*u>ѯW+r 0֚޽浃#1曃SQpN{r8gJSddPy,VM؝2B
+&wf6G-M|IuS<)#*L*K
+/&XҌ*akH0Ӏ[6F<O/yϫ>G|F`{ v&jYvpPV!6P&Ĕ``.:_V`M8⌙+5oI.nWf8}`^d*c"1}(3]|>8熓		F)4ibX.X ZYHu3V Y1XäbvQ	T2c`l0H;mUb_9qRkb$8ZUnsI"\qxhz%7#GQSq2|'VFNuUQT!++,KϾ
+{Ga2!pծXLw,CzΎl.<{|6-!Wޜ#߻mw4^lvyGgEKepsK:إt́:(6b<]Q}G,a1O:3<J:IM'o\w$`p9c*lYz'iE|%p"2)nyzN3y8@$$!C{u9iV#+;p#̝f}EUʗnQjjѯ6+U|#ϑ0nA͆{5MIƣͤ,7={1۱5]|#[w+<	hF	6 |J=l ıIXUԇP@_i>	Ev(]T;8JjrjgIb8R(VOsRAZn*t#c~hs@LNAr*4ˬA/(Z6V)DG121?f18Ei"aWMPK@ep,}tHݸ7(~Xo2SQzahJ2מ#S?8!\}TC/7iĄ)DY.6&^:$i %|/ev"6<Ħc7<ênGKS\gXUjӔV}3j~Mywh OF19(W1Y"OTxWsg6(Ɍ@8a#1ê)ňN%D8IGbfsУq딏݅rʑbz5zrA؝ǹ'$ydXQO絇݇i8T6[7xy[$vD4$!Iŝ~HG5Bg4XMk9qh]naM@,*(v	^Wmf<, szs#.q	6tc,WvTߟ<r``ЛlӉɳD,kMnB 9]v	RsT1	Oz0~Q;%d_!&+5y	m^E>e;Ԗu]ۀmKV́U:f{P>"pШ&0O^4<sQY/P`[:r2[7ax۝Uʴ4d?Ḍu6k|͇2^FtWkC'
+tAy#f3FCnެǎv @aWWqG9;<V`}qf.Q	-SLu(<}j|G="lFSjn$G,`+>Juqҁn.LL^bAc);,柉ds(m[8ٵlPS9"}< {!C5epF2Je\)qvҸ^Fɪ~Z4;G	m>LTu\XCi<w;O/3{l"AGKc.ֺ \)|Vi _h2^7 ~ayn7Gttǹ(:Z4I⑾lzƱAJtiw 5gu	
+i"ՎT~6#rxZ>n^0ͷ68>VYr2UhK5AF>
+=}7x/HrՊ?y'*>Nyywjfug.{dt 3_<^A6"?(%L[`Y|NrߔI WnH]Ko@
+	}e>931XU@zZTbh;]Vsd%Oԉ51s3,^e^`uzhU$a2saMu\l75[NEqG9'}ǎrF$ewjbühֻ61= )'gJ7ﲔ_U[wX*=9?iq~3g<#BLðjIw@g'^0Gw]f<942,~/nG0hG;͇oa۬_78_W_a,A㲃0Y;nYӔ![Ghc[̈#A k;eڌYҔ$7Tf턖NŰ;0fu|ԋS]:[URo
+2x?MALY]UƐtLgsJI}aUX;YG JNZH7i)>ܛ?<G`Aί5}1(@}ru_t)o<l?7OnoT$9h=qlNC;|x]pOůH;#uՏ/w?#Z4_l-We]*܀&Y.7jbFi@-aj=0ŭ14)y~Ł@ߌ Hї<}Z#t9q+^, 5Hpx8}!BPSGyᘥ#	Ԗ!Dxv7[f7YQj8EAEfm/!@D0MNiTd+(tcDOG<DX<9@;#MA(U%UĲm}Xb^l>&eex݉C}FQ >M6bC0]9{+.bo9YU4wV9oWR)C"#34?!(Vms|">?>Qz͇4Dgxܿ#vhcq' 5|$gkO Ѥ&z_&dM#IwNE@:{mjg]9˸JuSGmF}T/:HgQf{k6xvF_TV	%SwƲxqM؊[uX+2=|>a1"RWR}"c--=3)0^wjn9my?̝m_F	ꖨ3׬C"οvJ3jfD0ASBUP68(c#dqpTAY<qyFnVJ&rk"VmN>$k#RX:网ǎLSq<0UyaÞZ9+sZ93!0]/0U"H`﷋!QQŒL1)W-YlU,΢~[sW
+OY䍴s[UY.؃;?@{S5/ri)9ů.Pw?p}>%Z!g2A^&L:"nԉxI;U!
+	#(!ND\DVOV4kf$"z}j;xD;ȭ4X2  ?@~u^@N'sQ3:p*g`u+)T"/GF֍{
+uU9/H	"#_-<˳=5"iNGT} bCKD9"iGvQ;~ ")bB953g\SQWE!Źɡ=ᶩS'M}k㈷nxefǟG%@ς'|qGH7'],$O5C!f$	fnD"yYKZt/9/dRD}hF@@P۽fKeS?T;ݎ>sGfw+=NpkVtH
+6WH?$j<0 ;A6g"¡M`q@^`3-Wegk$콜NM!Q	K!Ui4IuЀZFz8;[t'~'h}g};ysoYK\	wISfe )^H{&	[Ft}޲F[ܪL,,X.]C"A,!Q~ ,c7>J׊Y7rAz}6d"j	茷+vS%M	xIÇY|_4^\6BُίooԙȞMJ]Nv9B.	 ~hR{k0뀦.vK@p@R[^*QLDqfdp6%~3URx:M'(]=qRzYu,mnfvoF	q6<FdcCI]ix6IMk7XF'w ٪1Q']H!_":{5O>5J@	<eI\!;`p2'*{"3#>8߳Ac8}:QUIFAufu%z#q
+G
+~`^>r8RCLYA㖺siچ{w\f錚!g,p덧IԊ3Hf3=*>C&}PBOmx-l֛=-i/Q̒~'S^';D>c'y;Υ2QnEݨ0`⼯5рmu|t9	a-~`l7~2;t"׏KQAAjeCwzжd]<Q9Jݿ7ȰbpH9̪n<=kL`f!H2&pڇXV_ZEp
+ voܐݮ '6rUُNOcjf~rNV#3hgP:t?:?;@]pSꙩw,6/TZΕD>VIblSXiH:>qFp}hWjGI$F^fK+FoP"7=:'* ɵ$'=z y'h6 9ic8cJAjȗ"gABg=ȕܽ)y=M#O䝛&EoQ&HVʥG7Q|ղ\xNxE^X67 5LȕU\DӔ0M󘜓2'
+7`>I*~~3Bzr`Bڞ?7#9c*F,	$'re
+6J*(D:1րv<ݜD[b8_>t8uu\?2Ѱu0g&{(|kl﨏$s9Wn+#
+otf1c>})ҫl5Vz	?tH!d7V1m7JJPdIP+"A:k?TCɓ:M<SDϙFh(Dաjldh-fj3yz>XF Фe0xP)hlW׬ˎQf4a<gG+XJ}函R%s/L"6T78ep&If*41bqG>ᝮX&\uGlu3,::BOB>Ea-["ݒH7`<lgJ߫<)u_1Z=ŵA: g=;^Z(	?wS~]M`]RU<X{7Y:+#k(T-LA7Sqڨ%$NtƧ
+&#bFC9bpg}XU"E* 7vs'ż0e@)'yLlL%(H\m)DH7ϭ窊36Tԏ;Ć"l^9&Br>*TUfpIFlx6[uĬ950>c9V=q}~/q<5NJC-\XbYg|4pdݘt}:.مXqT2R\W+R-IN7$i_6	f/,>m(.JFxyxǮ9fA-r	ét.bZ/1^	IhOUpi++	 ]#-$h('kߨx;ҁuf5άg6DƖ3窡{gV~"8ceZ29X,f&j139AֈxN:8IɃ)GJ܌EE4c'ᠫ~]rBjll.\#7ۇrԿg+G@ßn_=z#jxIJZH{~jq^pMBUdߩu=ʡF<<Fo)Vkt]Ed!0ÄUv_dc-B6Ȁ)VwdFJ?""*	OA;!CBĖ@">_Ķ;җ./to^¡H׊^u%x;Mmsݲ&yDsEidKDuEwn*gka$8`?i<s?LR{%ѼoxMkљuW4C#	a.I Ş#2g,4:JHH?gg?"نiqgx~?=l`#YlC)k$V۵sG|czь$j01&L!N;O1
+x ڛYO1[{>2$[\	%19RVfRktm*uMU>im	@ܛ)RʤS)}u|2V!v&MQ|`.9+.$5Cͪ$rNC&J=!^AxِMYWUl}qͳ3KkrK8^eG8TiKu8mMF>Au/[D#-c 7H}ӫl!}N%$`Н8TC\ O .9qWs?r<hL!p	wCWq0g5@$I}QҚTTT#Iz!G*㓆۰CN(mnZ.NS	/YB5f-fCq٤Zol(5fjِsqV[3XVauէ{ڡٌMʛa86p{gj>0e;$kγ#1\\y-a6}Rҫ%su]/3$f"ǅE0!!&,鸲\]./'illɴ)JD?]*z{"b@"Qf~aHblHEE"nVO:^=.hU0b,-M=Ql\aS%Jm(ꑯ2SⰊfpӐ`/
+}tmw_xNnVqzAk2obM6ҿmYED.c{vF!?HoX֋[Qeq@}d +G~
+< P9`ABybso0(pr^A'O#O"(߾5/޾p[O[ZA*:#uL1edhYtωYf֏އ:}dWcHrU%%E&9{HUcWKʻ`|l,0 A*D6bIA!(J9̛5@jQCfԢcsV7ֆ6K%ub0v&oI~o7n|v"YCѦ4:qh`a)4o#‒q8\/UθVGlPqk5{1LSg]r< U20T(9z@©4'XVك>{#HK nGUAb3zڧU>A%ڹ~iYxb[ޛk>1VMIxbUˡ!eӚ\3*atGJic ǖqq
+&͝IEKO/|iJg۴AaLOv&_2cMdAocD= j<8@Jgi4?-ߧqU.~[bޒ<r-Ory-G7R2Z:SfnjlMHRCa.r{\PjUIV" [?fL~XLMpiY:Hg;S9Q-'1ɦv1tbev3dFcu_o.|AFC}JΈ`ҿ~}㹔Ado~]tph9x<r³W/@}+"#Ux͟sZ9-:iuJR^p+acg(^,iRe4<Y9;
+A6r<xxOPuߺ_ ÷lgCQeCڃNכrM]}1#[PB-<g³˳˳_/oA;sP/z<]uB]Ix9nG;Y<}><>*%4r4oPˊVRDcn耏u 5l&nW;oėK(Ғ։m6%&v獈E	3<1Q$*Ȏ\cհj<C7TL!~l& cw~>Jgʠ搹n7ՠ7Ez6xQy	hgpw;ٰ*vaXv|;yQk{eIUsNf	ԇc(5^;N.4]6Ã0DQXfp!:jёq*X8֌V~74<U	T$78QjWTZȣpgH톾WhSxSH[
+FďH%x1.%W5N9LaNPz'pr$Gxd$O繙1Eqwjy_"pt՟VހEk(j&LNw+Mk10G ө߰ekQ!biq0L0&=4l0řWcCc=|M#'/`:9!e
+a@[L27>	霳qzEQkהKFlUޮA4L={Ed&Vz#1$<	/[e	n %eSbYoه#1pDޓ\#%r\L
+MkE6v5Oa̧ .њ'
+ \Q80ܬJ43R#\(!ɧasT;pz{{{J8$q
+~z韂Xrg d YRyB˓#\{--q:՚9D@7yNN|}&qKgR}]@?$(P}׏VPwF?K(qsǂD6aZ<RLܢhxc*Z2"Wl_{DX	_B00	Ua6xP+ٸf0Q$aJM7bNHy;i+Ns;.=nf98x9"Q$ܮRLb񆘱m#
+}zcy;5NB7B+C@ <졄*o8>p>=nBjpzy"^k&sMj)4d$b1*7>Ⱥ*KX4Ii<&2iYBx*Z?Dּ4&exnmz G|ܣ?q/zYCԬp9n:!r+OYin1vpv1$I`gof)B%O#I/wX	h\DR!z$ETQx\x`G`rf96J?I_nj1+ǭcړ+#\rjFRΙ L24w U+Q,;]:ZJdX+fNK0F]TÂ;L,GRvf
+^)ej|};Cͧc^pъ"΅+;3	ꃋi6	L	T^L4IL\^d*
+S]uA:k_*v$"Uf-M
+-yĝ8I&,jnb(n	3XgYVi}͠wM[q^n]z9pFj׋%+`X!+QCbn,u$3kt%sy>T:fCf)\ue`:rir8o]>dt&FTKFxQـO= 4_Ƭoĺ	ItiO{/#糡VqB*e[E,nӋXdßN@(SUm!va.j>g-=Lt1qMRecqc"V_	,[m0DPm͖nVv-Qwy͞F2&dҋwgj#SqBQ8qe/(<,tGCe!'&q+qM|4-Gk$%7T9@h%G1h>V>I~% ;~[)[p_,s#Z^%b88cX'OՖ3{T76=VHEKmey͂c1Ffp7zS
+Y=w|%,Û^Uf'EJYD`&FFecm	s4%WUF@CiA OFwUv=xULuRX0L@Ψ#'.[LzyTdvT,<TDr#¥(6T2#}\c8hT46m$
+z	ZZ_.Anˍ^.7ijgFֲ!c& Lş$̪lܽF7+'Rح_УѾZ5geazoϦ-$g6s].Gu&Gʘ}W,pF!__2:+,EU(s"BCشGvXS!v0\|DG&3=f\qFԨCU/0ACkәA*ϟ~|jGihH$4F{/PYλ7H}+U:h26F=
+-Ԫ]/]XKg	{Hke&މC3:9׆)*eHRU6'
+n͋_(Y\2.8aF|+a([SB*P@#I`ݒ34)aX_6 xI?z_Aycs]B?~H4}BFQOGw!~f@+s{戒梒*Of+R}(qQ;R26>O\=g/ӋG/Bk!-==wmqS2\l鰟8:=:z+["+OW9χ)Q,<9Iݻ>\UXnvq"cCPu<ȧ]Kg\ȹ=&Mt۵'ǓNU,Mgp~>UkO9#Goz>2PxR:a`&,=PRi=HAP2c٘IiXh-D9~:l#E8|6GTn:GO={WgTSZk4٤0Tǡd*ɰ($2O%GB)f*(fz4vwz*-|h|Ծ
+UkB;Y`OTIYcDsQ&״(TST+ֵ7ȴaNcl;cuXD|%=&TΞ/\JS׫QU{-94YVK& r+
+V|)+j< 7C%[]^z{.{b %t7I0Rr{οJtpK< 6&Tsy;\HG|2_ ^vZ<'0($~-{:f9uɬ0KzBޓx¦>u ׳5uYi%!W"?T26[0b攦`S"L8̽u$؍@<<rG>SR`1/'u&tb#+VYVug?,!\`.{9Nta%RE})i|#t~%͆EG:x=ֿeǏek):ַC=t]m~s>n){tL!SsSr<+d2lqW rX=cŸG6EqMrfqf\Q) %I2'!/8ME&!hsl"*ǬK=%|I3BSBsՐ:c+\	`?OKlBz䗷PdɟjF1'~d/ID*=g  Cn (:-UGNU>p tzJt>U57ą}*m.P4@DBٸ,|¥1=>Y;^|6̼&X5A&C?aG=ʢ(:m,NeFNg۞"hBS)psXM-.gtOenx 9pFcEF哽>9t	av>qRKd90#	IHFSt^P	/8y6](}3b^oiO)7\CJ\){$0o3u+s-TvŇipIcV?(M=)Ob{f! (fGoD.)	hjL.Ti(ɱ՜VO %tTT_-,2Mlv/5n &BX![sϤݲ 6ic乂M7i+z,`jd5lA&io]	R>$]Nm`IJGw' w^~ѧo~Jķs&#H;+rWſMLF<+3H`"%4<vgyq,#:`˝HV`=5%љyͺ!9w89ȭA4$CÓY&HC=R8wl5]Gz59+l[l
+SdI (pjNxЌ`Ep/9Ĥo'[ui"6d\*7pWw~`jY>-3a	< cfAPu7DZHܚרaQw;;k῟tUN2n[mM+ū~M{ϧ/kN֓:_f븥yr;nL^,Ӗ.`~̡l[-DB*WzZck&<lr[y7-Hi$t~É/åsGQ"$%nb`nRmo/ISh7|IVU7C_ ezt"]tIeXv+-Z@wdn_}Fa~+GxpI[$s=7y<|z~g66}nl#2/[=//5+ne}eL[W$rN
+Nl<)StW$KXĜs&:>.hØBn#B>T/9	ĜnmbiR!>!1n=w]3LV&9wrL*}NNx.\gMG"ĴsQ²~=VA!EEk񏏗y
+^Rn;o2T'!-3FGTy8IKR/}%Ckш^.U$Jc7~Nq>+$b;v 7 1q[?cvI[ XѬH[ [¦rE~D*_f켥d׿?Wߧ#@d@g;!*vw}[`JNW/*:hK]$58ZwA6Gm⋤6~CW_&qwbhZ@Q*:Eb>&ϳ%Xhcm%a~MB\AnH3PI"׮iWyqvto$>U^Us9Pr!)ճ'Fyiy7SO :b}q֋##&Ou̓>Ncc''g!"$)s>mB fVV{nuo!Q/ӋUz2έ^
+UJ*i09y8  	*,nD+ip[>λ9-M#NKx*e5ۢۂ&r:fXߤ s5UShi٣%ݑcـKbCF-5de/I-'EߘU*ЫU>ގrxz0Ȥd^Kv)Wsz87Md<o8dxzf1ӋRPljY[NIxldcF]0 \5֝ǋΒ#̄ܶ"|8Yk)v9V$\ptСubgˏO;:+heDQʲ!ņ[6|jPwUg?NyFJOT=UzcBm
+7[R͖fd,ogG%BU M7R-݀C7tK2?ϰq8.HGA~WhLdL3@
+g݌hW"IYMM72	Av4徑"rI}`Ŏ$C3R8`nG݂u|,=\϶k`6j0h4ئ:$\ЋU9F"{H~_3ܛG3noKj RJ!aRA䆯?jY	ޫa}߻N]I ߫x[d^.ػ=N#ܨ>yUMba>boF~a	Uܝ%(Z70z+.-[%Hv#4|VA+G˅XoHio|\lÅFv6m?۔썂1e3MEbX#[DaS.kԹT:1(qnA
+9$ڻMjF-\F]d9R@(j:dC%*8y?@\DBš|ޞ6uNK&NO-bAW8Y66p
+J`+7ЁaT+&f:o LFʊ^·PTD2W 2E\O쇸p|v;S,:}xho<OM^,t`n;<FDA:xB}\dɗk*%y	@T5Bo,ޥmK1_1#2G"x&gjy7$]V4ওQwKa&Hz%,bՅLm4.Iqę=Hڙs>7|TEoQjʗXk-Z+1`WIXwbJXMcvK5Aw:xG0n~90&tmzv`242~4òY7`λ5+nk.f8gАXU6nC5ҦcBd_&.XWPo~(j0G:qD(
++`wJlո8jғyIâ]Fgh4k_$eyJ%8RnE0O/b
+пBZH2*%wH(/a9]FgđGxxNW3Kj3V~^RC8BD*ɖC_ҕ]y:ǒ2x62IS
+I,rM܄Zh8.!iz[zCT1nVfZ+_ߩϱ{hgVaaO_{o7tѳ\<g_մ"7fI3_Ö.;BX'uI˦LcV~gj,;[kµasAl*u,翭 Z%)#48aᦷ9O5wv O30$b`R9 v&?
++]Isʞf?4o.5Ë4FCT.8`@7Tl3V&d7#ĘH$mUAaOK氶XtVpJ1ѺI)̈Oi89$+;n7,<W腵)u'q3Qxbs=Vz_A~F1~{!I{'1C#?-O'8f6(g3mdY.3UIudOx2^DҸiMW!-Nf^?qU.nR+6̏e60] t5-Pb5p[X̑sMx.8L~
+ՄMhX2+n
+1=l"mIѝiFb|IuR(i_U&A4`4Մ۞Qns+:v:8O-nņ$U2de%<1"}8䧚],+~cƓ0:[0x"y5OmFYFcƼ4ުKaտld<X`}Я5V3d &L^Iul._LH	6cKvH߆"b:k1Moir6E<34DLi*'xpn/O`Wh:3mGlyZ'nI\A}(6MfK:8F7M0_4RWM[:\aڅ"vX(kFʚ:870Y[9,4f7Tsbͱ;{y㞋Y[5+p~N[(,\ۦ}F7G	7f,D,q8gɔBӣtT_o]ZhR`cǢbTE1>p3 )=UBA:K7]l`t{k,Ip.Jgm5	_TkyFZR:U{Qb~8Q!&"SXQ
+5q4*v H.FlǙ[=]Y1}>8p5%_#6+{=J-Ź>ًeIy<BQ!H4ddrkMOsǨ&vV@StF۰Iy#sP&m+\}w/n6;&<sBfjTekO"GE40RGZ^3rp:_52ߨ#T>nQr2C'_42` AEt!OAh|guÌ
+#^άޫf'sbgAΙu78r'r)zip>P4Ycx<bQ^"<?De!A9- F釚v.{YY^MnO#ذ*=m셲B|>˛[>֐4YPcoR}nS	d-n0hbX֡{D?K:.]on#OSmuDgvR*EqV61u!g+Pqșlq%\\>'	]ۖGnxT˴Qc=$a/	ږH"uF
+NEq0N>AS,s:H6IQvCm8=5oĺyM"8֠]W
+3^nrYwHڀŸa&w 0%1,ok븄"7o!׃v/gӘoʹzV^#[zv__	 'tA@/Zy}tOt#Ճ?=K./w'rgwMj
+|m3fZy(b0mIZ?(j`卞v݃*#}{NOL'նJ#!uKGPe6کU'e}Iàjsl$yƆQDi1Wy+*,eqM+Fe!q]дPyǴ"QtvG`OL	;TYzrB?WU8P!.̣zuru]ՒK*'rPIO0j4"Z/MP92c+JGgZ0}tu:
+YV,ՐtJsZP"UX×a͢PiHqȎ1].Ņ]@<=o@G'L:HwXpWEdy a~VpXUl}-9"oKUxwؒP7em ]mCuD%p+!cD*P>u7ƠZqOo̘cݚ|Bp(`_$M	kba	=ӛBqZkrjtZ{͚	SuW@JBA^BՙS/;H9^n+QթπX'RiDInfS"G]x Dޠ܁uj*L Tavm1Lw]{yГ骛AkE؂ȌlI~n~<v:ޙX-76MF*28A7r
+r~5GAh"	wV
+aq#
+;84M"m>$- 3: Fêaj2-׵!v<puAtH?:wW ψWxO͛\;Ď	kS)w5fL7=P@H3>ӮW| kbiשÁC
+眠;οtvfHƄVTS%K,6#	P,Ir (O˺E[ׅBU-.jՉl:8bBEDbgge)o+֛|	FS-u7%>B5n]PJH:QuM׋
+"ow,Wv<2b"
+&nVONor>d.'ՖSx@$)7AGDm"Ò[I<OK2}U,y7fL|Ӌxmi,G}b㽪hbkW_#68p7B!ᱫH|wֺAG/m\ϕIo̙;7eT߽´c^4\8&<3nBاٻ00#=`+MrwB$Ɠm->.dtͫo/Kq7lX!I2(P/ôD#j#ܧK)z{䆝Y+jB/1*cF-&c|ܽ_1vn`9N6dH4R98bDDcMcQI]ayEĲy/ZΚUkgHgl}n)t,͟!m*,>I\p)6[B-Xq&	>tgt&ĳtKP[yiwTnVܮ-qhIpNxvSx
+{9@_K;؅gUPpzUpvԟ,845Qq7Lqw$`K>&Ln}\XNR5AMSAl4-?#=1q8ްNY86Gy|'2IU[U3CC]vsMM_Qx;3`yŇ.qv'zF&V@GzT{ޡTL'ewкAbEbI8$4(+n-b$!PǼN^I@ǛŦV$'^aZoVV(+Zlk,( b"
+6B`{Ln` ;IL  u>Uz]Fʶ(ڡl~%,ջع
+WƜdO*o R$~y/&WҮK;KseR3RLF]/ZTB{am89L3]uh<;<7AEhPo	b$2^?8]e<`ptU&$]o_DU}%hhG*qx+;zv"dywl[~4*xgeu7ٸ+LS͒j^MI+,7qgQ2lo}4{<Dΐ,u*o, *ߔ2U|l;Ϗ4yq߁LJ4eθSIx&S0m<,Ue7Ҽ"y#fQxa4K;B]U~\H}0Vi?8Ptp~'pLb<(+~0кͽGuU*H:֬K.gJY ei-X	2, 0_n)_s0<_4\T8,:"c~K&DLU~:c'7A=C;*j0OI%vd&d?bhP74If]3MMW8"֨v_-kuA̴_Zk?KBe#PZG+b	z@*WfbX(她?:LWZ<mhSW@gn۸6|=rbQ~d 3{|<&1aQA{܊_ZWz~S??T1;Ctj<o[ iU*=t>К1hvs8Lg\g?q*AA8`ni1UoΈk,{ts)xDSueQ4&Y`o yv
+cS0-MxdtAl蹩D=9+b/Jfm?,[c4Fuͨ죧nR>bh&P͕=c^y䖔Zsn7u`VxR;IQ4w"0Zr{!}HltBcZyN]}EudE@UZe+@?+2wqVj&rEoʛbB0i:@;rVEm9W~ZMNRe8wOBa#T 'tHEAti<.8jOvmȋ8?I ܙV͸49qϨaz@=XQ/[_r(s-l!\LKͣ;Nq{hZD4^j2Qs2pb!|?aviJTB8ZD@:2vR==2iVh#;FS= +jnUܬ~&UTg5F67Mkv>5}/aaGy8+wE~ZHeZz8^ ֠񁰏jG*R2{PEi8t	#U}U\_4#X%IUbaܫG~̲8=2Ba{ŽU8x6n8|6K7;o%([|*tW馂p*uҨk7![l}4ZbqNRɡqhTlsT
+|.XOꢵB%6.L]@9s)R9[JhYd0WʖHKA5lW%!glq )$;Ul@eX|	Y~F8/Db`n
+
+_CGDHoY{kF?WI2㇊㹉Jn8y8(ɱխzOU
+}B8V!y*9r]n?fQuk䝘mh3#{Q{]V穀'9GIH)6z/ەI3P.m /b@?gay=8S
+~CI|	0w`U(CF*YͩcSY׭UEA  K	4+v78"TkfoXu6ϤH.z$8<!qje%DEIvfYkҢƵ迭1[KUEuׄMJTQm+>K^hShҬv!< sڲyN,(gcbR0/KzW@0O3޼CV	z}En%Zv{.i*l9GlJՖ1{4̵t}ieUЮԛ<j|uy[y@r|zx}8gج"sxϝ'vxϩ5%˘!IjMO$	+Z?vV0[Vtք1'"PL2Pwp uh3>t3Y.&C9[sP9R8=}8ش'?=u%w{60FOo	<{7O<V)^~&~_[_RѕZ|Mۣ`cNtv8)?/WĽ
+hD}+q*ex6D e>Ü5R3k0[[hUɦ0#&7krj>LDYl^i-g=Gwn!~z^m67j4akrƓޤwJ? @˦Hxb.)G)!ᅀ	H@+jG/Y}rWΪr:M?1Y7.Czet6Gߦgexًzm[=|BYnٿ{_T@:;IjJ"!p@8G7y5|.Ϳ[+A c㡿8V<pwS>\
+I|*m~VDt,lq?q"d(1MT&UBEuG7&u<Xjp*ޅ
+#ְ뵨j4:C0[*;yPQUq[8+^"9kȑ_zvm'1ld "/ěe/_^//_FQA J6q$ }3l5VqW|F/29ҷq^7$-%V%rl9SQTGl,]&qhBZX
+S*V9kHeg@W򬽣b]mg\;SUzC!w2%0*jE{͓?v|DA3Xsΐ鱕¦IԷzp[lODs{iX΁	!F*V;2Ya8qoo3%  %7NauFŨ<@[Wj[:ǭf	z:GT	ڬ~
+e~5ܵhRZ0ϗ-)=/o$20$8*kqS?6N_nfC+ёٍ~ѭ:ӿ<HTu:.G̝t͊b OrٮՓ)J#mzs"0*?$4msۦ;_ŸeKjܚt$|UL[(z*n6ydC1
+N/'$̈#PgZ7e lk!+
+@1\o2mѸ׉4:]\`QTeojF/D}zƊwʆm8<<l=<&wSK#WQ3m`Xlc7d^Ar\8Mק㒷	qGE+7fǶ~w%&
+	O1aIp 
+Cp+o]*PEUP7H#y1	wRtp'{v*6YOhew
+Q*aƂY<uY7͖bBOaODW I.7aesH3j#[]?EN9:RFW3gÆ'Vɜzr 
+S J{zဴݍ7l#)P`аDѢॱB覣
+$ت#τUss^LNksJR	ȫP`i)Ra5f$~A\l(]5)m{~Ssc«CPb~{YAfZ'1+>*:m}Gȶ\ޮ7[z߽A⁾닟Tn>Ū/*W6NGŤ'vկ-RT"FE3aC跳Gk=lI ?w.ZfsMl;٪\fgaL-	?|&nNhJ%6d\MT}Ylg[8Tmn-pJEGSZϏx]lB<7`+.e	w k
+UY-Z1nh-+؛E'ؙ,%[U=ei^s9Ae-H^?PƛҶ\zPŹ9
+@g%q8ֺǾP\qP^휇ܯhmnMhw?[moӣ_	f,Ӫ̈)iSKTaV)LuG;=k=qgJ!rJ6nVDPqԗ#n+{&+M{jD{2蕛Ik^W٪׭MZ:+&-}Bw-NTCǿsNYlUᰩӞtF;`uqL<E_.?.6`enr
+X-X󯎩߬z΄ш-Eqn[[vl!*9¢\6$h*B&yj=Ja@{kx]7a	SB-e˼Y>:NDj:f.eVҐAD1oL1ngAT?ev$o`;-vl'RTi1݉tB{kl;eλv[OġVPWt4$ڭ6cuTS{;-±OZ	6e{Kp"̟ZHآyh &AN
+8)̞*n*$(5YsTVF[3_JʤE)?Xw*933kQخV3x#EAb]-h@D;h5iqgJ$v*elG}ju:~;7{k[ZZs1Kl)@ev!Te1C-3ъ˾$ńTpj:g\6 SP
+UAvA$oĤ>Ewx==dG667ԭg=Zj'y>f
+GA+beAe\AJh>RfMV7 Pc5XrGb(*'҂(N]wϠ*)Sӎ@-YIZA
+"8Z& }Iy;+hNMhf7/GlMHa1/H~̋EZmvn'	>;]NX)hbB*ͧzg:*Pl]mW+]JOvf^Qg`)*bfƒK:g𖆳!ӫ*5s1G|ѩqڭCKZ%Au|R)ҭ@d։[+w="~xSʈԭ i)Z6:[M}hXbo8iD$->q[WX$]ֶw8'>\.as;pS]^uNtMoĤG3u+-?8"5{`kRFm+3ɊìA
+oAM@SLJ}dϫ MdtZFh=TL3*EN=-$*=5Tp{E4dSkT6]ߔG~N(FӎIDE{.ѽ_3o$bj}n
+?.)N>I䐓5+
+xI@zc;sSjŏD=mm`Vd v3ˎDKw h-z
+1r?Y<2j6:'HDuj`:v8#.d֥HyqlV;6ي\IdGgqnK45#恠cSzezn `e֋o~|EF^Atk3mv~ZἸ[_Zo7̘)x-)ځʪt	ZZvH2U$"n+fLXxO+Gb[yhWٙ xik+o.nI-zB$j)rD̴	}+xy+rg]L+q[j{B/?8k:l*-(39D/fUP+KW4\cv]X3͆ùkv|~#\&D,r[	MX>,挹&tQ3
+ƛ|A8)lOǢIMJf˞	#\ߔk9n귶:<ѫCQciB=gO*Ïfsg>2P&2s"BD}
+kD9oYU.Gpn3t:U.6+-@Zk)A=-mx7|,/x-$au~ZwVΑL%)Θw2ֽ0
+&|N<DҚ8zn
+`Xq$/GH<q0uQG׵(*zT1mbY(lʞV͉ß)gC6<ǆ_'H'L	ZnKeݖd0;cc\FNV?VpprkقzaxӞQk=tvA[0<q*;<C(Q4l7lYPl#V7m .?u!'|*=Y1's7<
+m4(*4<rT8r)$Uj9B O(Hq^1#q'叱O5,+eלoB<(Iz}
+J8>s\v>{>s
+쏋U
+Lz9AtZ/ sr97BwnǁQ|E魨ɂ@8A`nƞ3)oSSO}<pӤo0 5an)r͈(ML >BZ ɺ./,eހ*an2Vm &9H2OE
+b.z#{[wZQD1(DPi>׳rŜR?qF#1dqkmK5}FUֵ{%DZo^,L&(ZIX{'*AA=k281z'erѯpqU-[,l=2P҄ktmPj<Ȗ-.pΔ3!=vy<$=x,[[XT0aKA.-e&-3Zx΋̑6zX>oʎacm\&\WV3zmY?Q@V7y'F;n4G/Oij]*&I+f)?H6eJ+5&:A2 ص#Q[ޅP_Fڤf:bxP@V/[޷Jx^,bI~_>Jъ'o>wb<LvoBqe{of7REŃ!1?ѧƷÊMCOn߷K&_}.ԵڪUeϷ+JNXuN=Z~b?[+d|O-;w]>%RKy	!$Yapv1W{|`ԒV4i,9R*M$u:9$7;>ѵO94iBY-0%bvZJ^Y|2Huc+*8gR1XqO^wEPd+f Teۨ8ܨgXiuR1EU׽-ZcpvSR8Cb7Ol h
+f&HO>KpqEt3LD&+qfOdZO|ɝ|qr6z-MT/`名(XJhjVyS)Z#-y%Ѹuj1:&G*9=3d>W6h%.yޓ˗(_5aoH/}6HUlY8*o [;ibWl=A)kEw~
+Rqa{oc&/2_3{qvY3|Axǉ3Jnnq-EYB6!\[KoU+B%HhBUHW"wkR\Х"p`l +7Rk!hUeJEu"n˴͝yL? ւڀlR{\.I
+T 8OB|@sMe2Ȝz+(>!oæHɵT2B9̕د!S&Z<@veZnz[c!M&Śm& n/
+uik>U!QYQ1}.է9PwIxtZ
+Wf1ai3'|9
+Yx|1>jpT(="Vzтdպ\\t-k
+!.Jp0;Yf+fc(a+T/_i)NIם\5g7Eوp\}<gp<+;&WzNp*aqqoMgIĎMUʍ9Y)\!>2->b\9.L0(>Q|z>hɀNGG2,(J³_bIdo'D;mڔ˝`jF=K6/MyUP&ڛYqëJm;GQFĬ/hV1*v@z!bJmw°-$IJO;K &	)Mtr{Óϓ?O_|$ӟb	
+|٫||y?Y/篟>y߾z<wϿy|[//xWϒ??˷Tϱţ͓?(>qZ"ܔkxAR(*bYm'd{|iv$qŕv_oI9T$EBb`w&6ڕ'}@PCn0Ar'9G*=;=SNòKꄤq:CTc4 UOv 0~F*iOW/R席~|#!Hȍrvnl~*Xqkx6$Q0&Q.8>rc N~`\+%|a.1/[`ݰ5_ԷX=Ni*90*C$zFyEhҕ~9'~Z(y
+DAU8^i9&TٜH(QKsG
+U(^jAL\t  {	Lj	rHApҘK'"]]\yL/ew /콼rsH~U mҦSZ\$[R:^:Y;[/Gn͛4X9@/GToG|tNhz(.rd:# Y.1c%.|DT5@gV!~<uK ȧF"Fgvn9+-F)b5F
+nRr3vKFhph\t!lo@D6hJh͡_2e+&uԩd }1j'n$@e	j˹Zv@KsZUETa3Q҅'{XܖKn%_9U-葃HPsGʈV"DTӗZ0a*WGdM]D2qNnFŹfJYDoz`~.wDb><Cf%Z"|QG.)WdU0NIݛݮ?bԧ =q2s՚n$qUCQKDlo$!ŅNw$!>'U>48>櫋)^E<ge9=kT<m6o-c<<\Jo㖎$
+lDWpƚB+'#ӫBusd꼛9-0G^l76\cI/ǐ
+{LrOz [)/ di.iliG֚5G jqDjQz'pX=lDd3^
+D|V%>tnD·N*K.V?P6wG\SKEjGqzL6I#mƏ6yܺS$gķ)Tlj摞	l&y2z&ʚ\%ʏq͖K0iS(6u=R=UJN!k\T5FnEj2CJGe+·!pL5B^ea?]t( $l8K{*%OR+ֺ<SǧMu2ۼf->;c+mLjB!G<VNZhb%1<>q\<3㗪{XP;<z'l7I٣lB{bD[,Emt¶
+ܩe,y
+Gs:~{6ً)"
+\ XPvRÎobۦC5	4'ˡi+OL6މӋkm+it7$߫VsmΐF2<e)"*#5'0 Lm-%-*c'zky=:Q
+>%
+C_(½:_sϓJ$}EuFe櫧Xӛ:c|^%1B'xz"k2[kM}M`*hއIMv@x|yUg|?$k`zB*	--	D$Xu+LŻӑUdv飖B0tƎ:ƙ5VcYU8>|dwT	>`
+,]S?Yڎ'xonsv:n-SIY֥̕1]ZiWõCLT]+\$-[szb%iJ7=o2cQ4<ekY@ߟ#gH]bY
+eQL:jՀ5z l5x-A.Oа^MkuNPp*ԖA`,ne**ސMZQr2!":WX&4t3d=uYz]Gm4cŽ3uv4ʲuӸvR^f/Z)"@P1c9fJ8g̥%%&EuNQq4#N*ixHzz(J6UtWvf>W)jjzCv8OxXZ80= ;djxX#~Q
+ƈMaj5
+k{JNq68RQsF*4%;!I̒	dp:HYPK#55C$/:=hĕ-jlYwſd#3k&-xa/WӞS?oݢh=f7P^OD_1c+ƾ[ߡX
+@I}.NKoA%p":)v1	S;aM^Lrж;(F󴒐
++6=!^bՆv})cW@'}_6\GFznu	gW֘MpSfI:JE=/+`BEqů
+U>zJN1 &h{KM ּk~W*|Y{Vanۨ*]P 0;{L>;<q|]lxa씇n=i {Zw'j7R՚8dz;KG$
+o	uPuy|:EЩNgګ Y>}P*9ĬXNJc{*Q.ˏpK	N6(  d95׿YW*|HDaa'a%تJ^aƈ ^Y!oV%>6Ub󀎲PF-mA6s1ќAHHa_S&J0ٗwa8.mѶ}EЮ=lXXD찾N4e?֌U{F̜TF#1f=4q	so*4?~EO`-Gh憪wZ%$ћz4WZ6B֝X5,XLⴾg>wVb:d.I;bt5M> &$/yt3 o!qC
+04ς_ɕ!jϴP^ƌ	ku0.s
+H_s,낻_,Xf\D\<[܇PZ8AMbAS!$n.+uX
+2Y\A
+	h3\&_ǉp[Z0'@eoխ+dQy'<R>+P/PޖV9,W	l/]kf	.֯`h^LXy9&n	u~eUSYCf(&j42RY0F0<<W<plK(>OdnND7Sا[ @ԧVyzg%3M49,[p.^uu1g*dSTR=fg5ܫi_hC~zvpj+ͶR*8Jf~vu(pKAE%g,~JXC>G^K@aϛ341R;@(;ןEy9r_}?vUu}0:0$fiOP}NYdb16jMh%03ȹ-#Ʋ|X҆)6rַ0ʕj%kA0g2>7sa['r":"^5A骜n17t4HypS^6sRF	*q}syw`:<aRVh:fgJlEmJ G06>`e:)'[q$OXjԜ$ڶؤZ$h0^{Sߜ$PwQ[ {w]cbIR[y9r3",Wpk6)\._%U Ճʵ:8\:ZDD=1R.`X/*gAs @־ic+j⬂d#>Ap9N3f(+kW&nuub3jYQ"lY]);ER}8sv'Xu+..DPjI'dcY;-֦L(9mô̡F"͖yis8uBɆCl!+H$-"tnabna;∮uOMں֍erL)If=aDufȦ]qH1ٯ--4yF6yiU0nF>o/+cTv,cMu	Ti,~]&7 w3bb@g"/Hgu&gK2R^90>;Ԍ/8Bce\Dn&E|{jïn:S? ^"=b'
+KlÔjItM܆V)oDmJpolun/d<v ַ6h],Rz#\sa>CxKlECG9:Sa:4QӉXC#2ĸyPuVzҌ☓-i}u,b5(~竕b#	[ux<'|}[9U^lq1ל=!zJ5ο~6U<N"n.$ksW&@1DoSvKJѮ+MVlko0~3UfY?ԴUr\7Td7kh15M0)4uˠdYnm#s|L[C0sb|+&r]I֑". ֊لq84¢X2>nGr<Zgc?ܔu6BVf
+HYr]ʿ@r.eqU.SVߚtN<영Re8ǔ)%!@zVܬ91Ngjj
+cit7+
+:Q/lbD!^)㖙UFwoכrfb(5z:rQ- ݼ_ybofXBם+{:]f%ʠa~;ONn!b+ZrTT$jF5GˇkkiAfѯ( =c)/N[_u1[ ޥe2&uLf+N_D5O?XALAi~q_JݧIm?SNj­[P!"%咸,_^K:=Ћ,z=6t*_?|8E:ll*ԦZv=|iş,|x	m!ϭQ6wH赖Mt"a֩r=X93c|eZmZ/Y%:,oc[׏O8ٚdтxjBRWOuueN7 qy$`؟?-{$R1`v*PEn0vZiDGS",˗l0
+\@,D;1QNI:h%nm8$1B &K~oDV-\8b8"ŌN;u23Rs=i}ZUTH?'?%9i+%?*6:!݊U&F#cL ơd	r1εcAT>S^٬2XWpXsT)$Ns<~q,p%{/`	9L@R!`\GLZ}.=лjTeT.:e9$Bn8YP}msnfW*"oAU/)cT7%`Kà]ZOGOlʗӳ3vrhV9eMIu}xc2ǌ8
+F5$~"RO8ǸVwDQOvrWfbyXD0-6۸L1=j:{|9֦kx#l-O\W3jHdIwk{3_UՂ)\O19d˭K&h Njrrjd
+`#R"cXc41a'^;%ŋ Ǆ4:fX?QxKEJb 6,_OB
+$WAA*Y۪AKk4[+	$ɴ $	bK}`In)bǐ (Ze1ǎ=c" QiHǩle"$jE~hD0A^@(+IqzkR)[##HoZLzkrAhZ傴ήM?34HT)ĔV!ا!VQj1$L'92xwr7oN@z3'gA9
+S'95R{	GLj.j"HfPp'QJN c)(.dr7nQl*jRa4vP 4i&B&ܘ>PN](ہ"nLk%[?OXlBSCذdCTPH'4>MhR%=721=Uo׷]bNg4-'}_I
+< ф:a7Q5ȶB`n~$jC&2WiÇ	iE;Y.h/l]@M!1guPW]m=GNQYi)J8]Gw	8SVK%6YY48b<|CB}IҤa[7n%	f^!}TzQ=[*hJR)iJ9tm4
+Tm AB݈O)F@wʾDG%I*"<ݑn9hصy$,tj곭Y=<$N$c0p8P$Iup>#a-y?
+M?5~budI|<BkQPO>lLC
+p/f[NZį6#Q8dF/Gxhҏ_"<CTA։@f	vHlu (bjDd$#pbEpc"paftqF+KІC%}kk\	6{`Ab7z?:k?ˍɴpty%h-keM׬ )5PP݀;2P0,"x(0B;*{
+15
+?@.hBacJDfĞZ~X+
+ᣨREA`|9*ڔ{;pf	SJkM#{lOv~]@[NM1Oz!Ud}A{dɑw6u~*k^
+l^<[ItUzdr0mǤr:Z<>nx{6M@qgj EOϏ1aS;&rФ֋j|Жx5IK.j* {`o=C}KFSSE'(V|?t{ű[|7݉G$OȱwZaunZrzu
+_4ݸp_ +2bZ-1«zU n* j,\U:0nx쌰B lJdX.u9v沸5)0WGO*&wڠk-{n77hx
+~+l-fKt6!T~řqZ]i(
+Vh6 YC,ӏܴ-ʉ
+֐CzZ ^hn8'v"Ҽ\lkJ#T5siEk9DSKZ(d}HG똿.G:>Nv͗y2Ԫ[XQ6 =JB\JѬ^F7thfE,~mCB>"@
+ϑSFP[tSyӌd2M{ŖX*{]Q#:,xaBj5Nu=)7p{"
+FC;*PuP
+٤
+'M;9
+%`cv&T-=xT<a0=m5;-٬]FD9mu9ybːa3Q|FTBxZ.e]Q)Hx#i!D	̭ W ,jZbSO[_A[P#f`R.#(4mc;6h*x98[ȅ)/`h]{h{6dԘG`~ׁ)y&'(N[	
+0	Kg^Lg-sp9OK4g|yik
+YGY30u
+1SZ;U!9È.ayJlnJ%v__&+:+*[$Jf^BZx5ҁ&tuvK:"!aM0DW{sY45l	`n 'wߘ}}lD섬nk{wWu:0Cv>EN|MSFW0ji߮XM	ؒƦ7a:evlF-O6j뽛WJMptǆ͞fn}z}VK\5ɫr(S?֭|  Mw
+.JeS0
++H,=R5=Xrw%v{U=y¿O[-ߧOZhs+}= /3qpnW(aYtc$bn_Z9t>{iġ7m=z8
+a>Śr4D<0Nq`\\y
+^qU߂M{_pBW媳]'Jڄ64)X\C]w쾣,k)nww)ۯC],ua71@>`wlQz;_@?{mtw{ǥd
+qiZwY:]C#-DLzWĝm	o+''nh7z=%^crㅞ[Xл~V]:Bq݉AX<"d&e0L$̵^?78
+pZYYAʷ:mo8;ՈHluLI]YS=z,3$]S4Wdu\)eJ}B5.61Ekj\7~ibm%ta.e٭l޴ԑMU4[O1ܢ3wT5ReNo$=R[,HW8w^	օ4pƥB+7e(S뻬j0!b?lq!]g@*Po0GD 5,4|//=g)mJ_+uÁRʎ 	(ƍmzᎹ1<e,8)s4G?8!(t@aͲ){'E 2x]{ۙ9_|/]8/ӭTW6#O`h=J$_87zwYpU}禵ue4*Yf3t3m:Xw07/˻\wSm^gt%k$$jp$+)d|vΚ>ƨ|n#t޹d]rˆr&ٰ+T*ʂۨ X~c$LR1ջ" ؅Z^H3Jcq>hޝf'yBf}/;OĔ}xM^~MaZF@*!jږ2tlѲUJaξacaGT89>}ϧfmBً2FO8W:yYq 8#d%6xv<t<j.!ϮYt&o]k+"mB[ww7	i$"GP-{(r͌ʯϠ>7p	rjy@F|.nGR]tjh':+t6wDBxP禞2ٶFKN@qF#KDAXnZ}FAtbCh0Ry7PZ.OCVk7][0=Yz^Ȧ.M9v6Pa3y ]rrCtGU5,WٸX, aJ;Uaq82:0Aw|}-$?X7`}wZ!iĘ"3;S:{wQ!/7N`r[e䑸'V5'`j]<$ɍB.O텮W'ivAKo>H)Y T@:Z?~ôq9P˗ i/}#SuSDI䎓߬|]uL"9<QQRw7|㡏3،ew wC'HLSJܲ 9T[qhfD#Eh~q@WС{w7O%_3DT_kpk_o}L99dE}$ȕ_;j;2D23@^6	X搹b%<iyIVtv
+$*~t&ZPA dPGԎ_[k2Ojˬ5s< RMװi" ā,C# $՝Ox+ijQ+T5xC3|ж ZITdgaɆMJWx*aWDzo[A|o8-u#:\8`@iv5T:x7ĥQ|whU㶌9{É5%k9ηMtBS,_.`࣊SzT"z>(
+Wmt6aޗY|p|=ؔ(G`#JNo|TF-NM׊L(r?Ѡ%d_DxeG+lV⵼䲸	H۔;[UFZdh6  71EHv`Zh-u	JiƽED9>NuPrdsv|v<>
+
+"BDRE?2.4
+ׁ[z૲ڿv<^Kv_KԎU]%F;Rect}ׅ|HOe!5޼3i1{wY hW r5y=i{"]	*B/"SU,ܻ> k*3U~(0kyth2e	4˛>ޑvAAp	o{Z+䣳ٶeI0z+ PjJ9BRemvzLȺ .5і0ϛrq5Y~MD錚q D/-knqpxЯf_:Liɿ[cD<5թM)rB?|
+PRNꡡoӅ51ߵcq`?"yhἝh30,*gd2lj|=Mu.^[}0BWŮi䀀]!K]r%kmGvT5wc=ׁ`wͱ]71oר,@ ~Mub)lYFz`ЀZch2$\]1$o$/F4[ܓD	'7S)!>UaٓH۫mqABbBn[Ro7/+/QJv@k\	K.ʵ)HwF.\}o!Ld`ѓ:.MՌNX91zC@YT'e+yaʃ
+t[6C|(gH$;8j8*^;Ɠ	r L(	UԜh:ieN\nAqS:0)=G8/TvfXɩ-D	͢
+/@5F GAqr:i ݑxv4c:D'(/˾`0
+YUGxnajKsAM9VFIGx(˲{xc49>s%25ݓgda׈bT>}z}0Pu|Jftޟz91GKGq ocu=vhޠoGo/!7@g wv"=iW!٭SaSaQ|uݥ	q|1/cu63Kי>4͎eZ{#[\o[u>t
+˅.-PO+Ra8W5lKYq0:y>LǦ_PX^6k]C1;:<8X=oٽ!g&LddoP#-·8.12Zo9LG/#ۏ[>;XApEӧ0>7.7;xszzឳv770Ҩ
+4GIPn̆q'΂4,esse+q>}ȡBQ(-uQ^X"Oߧأ؝?t~xdTj E'-f y%vMզ;w]-
+Nu)p9t|V{:ժl9}y^4L}WDǫ,,9N=VRlJ߅ehiSӐ5NκyɉjN|Dpr`4u\b"pB K.5ĊO9?#$XWL~{otSyTsG}[(z|KC?IM/GڣeM^Ë3̀n6':ĩdyG
+{Ȟ!~	;;5HtbܠũDZy^]"\\ԗ8D̏ѵ"bS-tk$`KC~7n/Z*;,|ϮrPb5y 3B%й:.$SWt
+
+^fs,zB>x#{5c6y9OS1 ?ǅ+_rklv33ښe&jպp&n=g*߻g3z^}T_O QυsKX񝲿1F1:PS6R$eRzTP9^Tg ~#LEɩK/]$ۖig9UPC xa٘.D"_3\0%QVϴW3KO<_vߌ5m*8gv1qi%yfr9W'KͰzK}cT ^NH )e"J$SX}\>޵+;[|{1>tj_x5klD́{DkRJ\Kf6ک(.N7R
+G+MO#p*iRA<KbNPZ
+03tۿfAmMYճAJvXDHܸkx9J4{~s|~ש|Fƥ$#u75OqVt?GuS7܃0ie/ޑ
+RIJR9⛼ vk
+S0Ck:>\B=+78
+?U݇ m0EcczrAALC]ܛ]sn<Umxߋ?A~]Vz6_[ˆL
+=d^KgQ.OM8,\6Uܘv	5t}1\CMb`Ab!߬VӸ:A6 PCѓfxNNt` 3*ۮFH+?"d<EQFOss4d)}bg&AN%SMR	.MɆ-!w&`>(mb;ǐY+<wk.їc/H­2.j=hxep^ET7%V +l}\/_16d)쳙ꨧ3wAhձD.mUla9ĸRs#Jl!㶡 卄D5RNL"r7dH"#`LiVgD]lB!̤$>'[7H"SQAm_Pͤ٥9b`sۂsΞ7m]QG0fP*P^w^XnLIJO\CO{Ц:Zߊp'}쇊L|:oy`X%Ո>;G078iwղBM.7bYDyY{RT}
+Q60#O0L7'nS|'b
+i;XX`76ܜoDmc0/g\Za`'pimhN,8-&"_3f[CD| R)IjsY\ig~|l7~_T<W:('Hq4*b6GEg-hT̐&,gg1L~aNqF4_0">
+z1#Tr3i*[uYT=y{"HP Oht굑HہRmv2!^
+mut4\!)Kn) ,^14lO9t$I-s!ȞO x"`fC`J/SɅT-(*@8mO|	cnz|7'9KON/n?U63szϏ''
+LH%Zl2K/r#mYY:SXlR*K>o"lcNu_ǒfUxb{A\mI>6Ie3AӃ\s%>S8l/vW	.ߋ^gD.KSmT:Dj:|u}Z3sAW3@9H0|G(Kn9TS.JLZYǮ'5ctv}{Z YIj.yս*Uz E asq
+fyg1~w»,jfиG!vS?eP?vV;Ɣa
+0_F0,v˪cIz!loƊi7 %3uf"@՜6Jk_|K,:e{:s\;=?3޲}+SdJ9),̵ R6]q^f8E9$Meն'A{R}WK>d]>~`w+l4#%D=7TYɫ0G*=UO2^-YhqF;8ap@>9ה`7Yhl-p>IeTҚ܏D4c62tgt֔^$0~-]pUK!.h(#06eA'ԚbxE0-\l	Ln!ͯB)ݙWG\U꺨[ۚ̻ȊdNtaqQ[qzE\Per|>ߍaKU^f-@l0y#!iP}+n:D">(0
+fk_I?ߐn7Ͽ3S2죡"^	hjtVDj1<:C\7p0H(,A x(]7:Ξfy)FԉqM=su^)ɰ`sio+-GC
+4D{'}JK'y6-g
+=ROhE
+P,ZBT7PJsHi|ܜN2+pjQ'ɓّb3z%)ϠFMuzn}fkcZkEv}3V-v_4\y{_H.2u+cɄ>^sE:z\T/tm;j 2|2b@s~eMf|lɸCjϕ﫺U+RUcVWnзd<h'H VQǡ(J)9[-bP9QO81fp91l_'pKw3]"}=cKX#bT++@z ||b:\lKݴ*８Ĳɷs2߷bf+L%Qgk9QIp̗pBWG:'p%4;ٌKf_HoNc =$*zp!l3F	5<gcY/\d66EL;ۙ7)nL~jel(HQCzA^\}Xh6=6[Sfz.u	*lx70N6Yp̝Yo CDҴ(m9_.[*ӭPmG+^{_m"ƺ8crg044aCiv2af-kАcAf~Ӥ$} s0NreY\9"])9)u.޽쎚4sDOFlWe!Epl4Z[EMi}n.vA(9X<PIЊW4>
+.I,frMxBRP Humk])taSfK7Zr1iɘnRݭJ!}V.;kS'C1aE'`()%yբZGq yLH2	b'D	DuSʖE[Z݃O-oby5	p\f%e߭@˳/>vk]_b1Ji%u6dĲ0ic3sIohMpdn zbPҜ(bvZ<}&`<z-_>[;%*[ޕWdE#UbFs9ob11sdfM"-5
+0v;|]-EZBop^Km7l"!bw(lJAQ)iSGL
+lPN+i`.W=^7_osAA<[!qTbBr$
+lz?a;.j|ԀJ5H}5\g!G8zTiC'ze4@0yU`2ii/#&3XǪ7^'M3w91KS\&-"ɤQAk4q@&͎$b3T  apQu7 Pmƿa@1!okf͔VJAu)
+x	~?ѦT{k)*`ɺ@AjwR.	 $@\բ;hlFO"i<nD9b̔: gGF ,Dyy&՚k% 9A},?q_aZ!KE~Q$=]uCI(vI.OfC@yU~ťlvÑ㰻ܒqf~ʠ괨Y'b4MzM\{6'L y-P1̓v^zCB7Q@`tl}fgS~@q/D8(v '	^K>bƆ4:*1Tf\6SiwBW˚=4a</M6W"ͽ#KWH	RtT 1CdG0TPĔ( fLNh+g VAKDتjض\6Ѷ9!W#OH7]ّ$^"iw'Nb`SK^dlԬ6K@xV}3%ݫ4;̜NpuF{ܲݣ#pŦ	Y/g.}]؄sO?
+RN&&<Μcѩ[V̥5=/8-J?$qmd"m2>r:͂<="w_U`:@\f_(j7c]*Q,-V?f2b@<Rߒ*7I:V  ytZ/ ӽrg-- |L*w9$4(c;+m-#eZHQI}ᙸQZDK4W}YՂt{HnsL#X <Wf8<ߒ;`T\M=xF`5#Fsk6P0U;Sv'ڳ5fNQ7j
+S53j$RX[|G)pt[Svm	!OTJEKq3hp x*̽ ;'b'Q?\ 	
+ĠՔ^icscQ\[sp$ߛ`=D\:M|jN_ٚՋrR,E@(j/ռ8ɢe gOw5Vu{mر9tEYi|w쾬>FjY8fkMC3ԙ	sbHDƨ;`W,d,ܕM8s3kEt`R]q"<@X%,CElXaG&=
+9zXW'An]Wul4ز)h(nÉ.aqK)b xh!L-m ۭKKSq Z`!WKtg)l"YWfCN`Y0 vQ'2'wBjw(Q6EY"wt~>,[ݐQR{4Ԧ&$6A^pwP`g>>kڣT~$G]tA(pF/U>6x=e8=|_fN[s6Oʎ%k1ENضst__.#}jQmh'MPٿ}jB~q+QC]/85zw<_Ԍߕ5:G.33}?@K4'y#̠8hKԷM;#ۮh`2pr`8'S7U{DEg.n&Ypvr{G9s%z?sj=SUkf<m¹Qײ0u+U=>2e6"n}ؙ#G݊H1Wtqz9(]mE6 T|lEomQ3YĴW-wՋjީ%F/Fހm
+hx$pw/ejYk#!= :' d	zzZ}3px4',Q_}#Kn2NPc5{ԏ\[e0'{zlגX>W@{X_ֿ\`RNX	ѢjYq_ rGɷU	NYyi;>
+龚| #Cz9jc^oͷz.$f@jӢoÚEG~Z֧Y_Re>/P^i#>'!Uarw2[^:dk	i.qŢ]Tx6ED(8xulO{:{KETS'JE?RAqh	"|k=7(W9	1i?b9̜*k̃gP ?q~0k!lj3t)*>C$TٔMpA)%w"d:+ˀa֌N-@A){'uX>.[G<L}flE;CN Ɂ`ȴ4oYoOPI8<uʑ֣\G&L0adMvL֍n
+40a.jsYL (.s'~&ao=A0dQ*[lTXV1"M*dQ+Ss3UfRhIտBtt
+E}$t?ywZj}
+ect}9?2I&pӷ#]w !
+,oF0I43q?33_.QϏ^@UTq۵G1
+!P Xd"%	(f䘵Ѫ#ҏEIf5amwu1;UTǈ6*rsso1+8ѠVT5c{DZ^P%o\QmhJwd5,nMpJk<_༯
+F9*a'usį\N	6@TLB202kk6;p;}{'2GkhڛP$ZŪ	l󕊭(:oOn=rAeE1o@4yU
+[8_c%1jHv$v)ǉt|<\WleNz6b'Fh798d:[ ׮!bJ;/?^eJE"ޡI%A~XtY\E?3JBA?6~Uӣ41e?7wntzF=B*o
+9o!	ê_
+=F)b8FPbn<C|: \H	1_mϖM7GYV\ rcah%yHD(3|`iuTC5"ٽx5^bvZKy֫gu>tņ]q܍T"/R>jAuqJYO;4kT7<)pWs^cjFRhLlLΎ1tt	U\'swț.ZNw@+&ҩQUizp< [Pgnǈث:]~mkdӸ!e!&bFi^WVbliW&T9&+99$*4
+&ptcq'P*},fճ-#иiIb-S)57@%NrDˑǏ	d^M/I,rP-Na0+5Ny0(&cܓaO[DF 1FEZmcmVMmfIWW^EC+2fri]e֪JW*@If`f1`ckYcĿe'Vڑ,,́e\ػox5xo%ߙߠ{pq*F%.t\qZhDQКG p2ha:ۣRGAaMWst)?RK/+-yX/M<q^|-Il웾xw'fVgu벙J#d^RX뭾t!]@'JeF!2?P%k, 	=0kۣWSUz+d狣սW?9)s5;_N+|VFE_1aWDsӋr9@ zrO5W.<S[Cuf}Uo^s;]8}rg"&N#(dV*DS,d% AXIJi*0g_R|yIEiϰ;ZoXg71fcn-~D,V:?r#-j5r2б'?&|u)M=g0^4o}jt/6ŠkgGPQȶM@4QwxLs:fBaڗl*R|ݎMmqsM(y[?nz^.MCTSqnzJAdxa1޾jP[@$~7p9vXkޗqIKΥ1iþfSu|-5HL[dh1'ُp^V,tMx;ˣGp- 'lf5o[]ykqwǅ6PىKYLIώ/m;~,	k	c&I!'3"1/"4BsW,hg2iN]*5MCK:U4;ol7g,>lS@]T7UX'_/؇bYc>ZuSbR&%.Z=rY
+PQ$Yy@*ݝ_9Oռ}gꈉnI uvJt:]u&TfG?Ƨ(xLv[C|H0W\  B]ykæNщ&ӱ
+,42 (VǷU4Q]DQ)w.#A7i];|gcm
+ڧݴ]SW_@=hX<ew?M]rtC`Leinbdh=]&*Ң޼;p|Y1'5l0b}8=Հ6*#l1jH̸2бW 9a}z^۰tʗˮ\):֮
+7rA}HHY;iQl&yU,sTĀN7QEdowgp5M؋lP<^˲Xij#HK 2(i;=#9DzṦ#TA
+g/UR[lk;r*ї7P'7|ldk}7to'sČD[L-%&CaŠgGj\?)t/kF/wMTTDL7O3xCJm2&_7LxnI,<XvQ{^ّ3pPbƶ7v>騀k󪧓eAcB:	qO/kJ#N;D/7{6ϵޢVߏ^Y\6T~]n)HXV%d37M#7aX*[TЗ+ XHM`Џ[ R>b9YhcfIs%Y:vmY.	|XT%i) %YTotE2pc{s,x״o΂zwo`߇ ۨgJ>;mz=;/f]0gyݪ	">*H%Ksy#Adݎzo&T)OIo)ښ&K@Mjp@1d)/bZ'9=wES'_?zON_<yp^YO^:s{yi*ͼ1D=!hn0Qi6H|k)?d%"&fITVS\:w_lO^EAΓ}{U*sx:kH]vCQdX]K.b=B`OHwhxSIu"W-{ R\2˦*i3cĪn~2:e.dĦr2eC*Ἇfjy}ٞ[|ᘆtꍒ9ukUa1֟.x8eJČAEF2.,*v+x9Ƅ/	by+l&04oP	nY\&1(YxƮ&݃1W2Br{c'\j n3eO׽$3W)5OjY*~*wB+T<&O-{h)NV%ĸXvওS xp=HoTRk/agڬ&spӹ!=D
+uՊq>AsdmJ&۪XBK,'2 {XEP_~WM)PH[t7nߧ%;{qfP%֌:r69]=65f2r!x8 ׃^P>	zO%_x^___M)8d\_]	D=dLƅAPφ1 F~)ϵS=6	̜;U]GX7k^xpKtΈm$h;)!~bxBKD1u/IG]("sPL$3s͏?X!r%  ًFl X-,ͺI0镫IZLQHZ/\'/W g=O|jb7hru#؅qIr{z/gZ&hýeFPɟXc-̨XI1]gPH`Ȼ'AET\vkCA~wi/P|_ұ߯>Y ;.ZhL;.j7k&
+բAxlA5Yft_@sao4'C,,n6[5:4ʟZ	ܘo_e@nȷY6l/K/>Gj8_(U|zٮ|Z&'?'Х9ia&&*BV9KTs҄نTTxj01Xw	8S4ˤQџxKN&*y.)]3ߡ.3 .szF9<K\~Yw7T_ꥤl02S57V%\~C :rVDlUY$&mL.92#D\aVo߾vQ-gq6f(
+=IYj$RVm(T{7DM\`@BXܯ'$+ o+|zt-28XWsVp</a=h2p))4l}D6sZ!8.,UfP
+F"cta%EF$ {G5Q5zi
+4\_%K
+&ߍ	lb
+ZܰB7&mN\Q4RE^B5ީM775 )MyS0g[086`[ 5+TuK)l tނy%?k2 0qڦe1w)ieCMhuim]u!˜s$qX啼 E̟3~4~~C2}Wf!a/%@m/_S}ho0QCP,A	!Xe^{<PҎE=<3	!Gy|JfBG7eCkҵjQafl>|q	2!	^Ǔ-6o;]6!n-~nGUa̴Ga:n_ (3qdBn7x:zku4:p@$E;e{2쇴XSkƎv xz9`}'5X`̳.0G/Oq@Ka#^E~WӃTˎt='9]4E5TGK:9+_R3(q9\8p1S?OwST6T`9%&4TƽxzopY g>AJunf;}ySEzo~|#NK[fsT%qL,P HSu&FԫAZ J|[X@B ÉfՔԒC1Ul?wƵ۪HaEpַ*9M`_JF&_9@A
+RiAؑؽ;),{VGNWNvmpZ\j͍箏r@~Ԁ\BTf)X5l ҩ:'EܙFj^65P1Yp"I@9y˭w-e13`.M.bE[e/P<tm@\$x\qa`za@10aE)C:kG~ZQa!KǑw;~Z,xL٢8GM /R>lq 9̖Cxh!\sg%;nӻؘ3J	-y31[-҂<VluHUnBJR )%2.pZ#yʀSbhnKt=_2#`N˲(/~zճ/zZWHjXγ?~9oM~q$*>-_i*6WвJ`ss%C$8Ӑ!TN¬ZիB24	@m=O2T4%@n .H( 6?cp5n3\XR= 6 }(
+[8}[Nahݞ|ëzݠJSΤ6:[O/ُEY,0t,ZJ
+wd3T	?=Zٍ-"Nyuypn_t$`C߂(︔2* 8ǩkͥD3C
+QLs4qsXs/Q;Cc@jrOC{2	"!fDSֲ@.ژOYn,դZF>;-AOvmMDig>؛-P$ب;O#񣮈x4(Tz:%RpS	 9S?h-qrh/]kguWdh-fuDB{nNH\pfiMW}2gЂؿ~ga L|:(^8k$Bh)J@!Y:h.}oecuЭa@+bйk3tj3U?m0Fػݮ;>YcazMu!HI (o_Ҵ7P 9+#GO@g8 aGb2Tc"ᢙkѫ]6gÎä+ke*iniBY`!6QS!ᘮk[!
+L綌T֟P#W&7ED5L`(Wr}VTa|T9FU.Zm%_id&5˼u(lXA~ԟ`6jO̽b21iU-_yb1:9qQ݀0-q5izN
+_u)IId\C7?f*^~M7H'Pt9.G/zKխQLk鰲,8??77ZA*TܻjР	?UlmM3*Fd~ehjg]uל)hvezl^wfX.AT,.aj7& V/SHGLaׇ-TT',Z뷛]JAiXmX}qH ,Dk9囯ަ7ءSO\	^^+88f4`sbu`ZLi.[q%:,!a+w* p廚Pl
+sM`t3Q5֋9!1v~Eos__qUo&f. b"3v*1Ԙ<Jp)fe	zL$o5U8ղx]<+ֆqVF58}/Ьa\VUiL֬='t*1;![BgΡ
+KMf*$dqy!kSm8fDKw.&&棗s䁊!.[z̬_+!&Upf`%".G/vghAEў<x2&c7[G1qq} R)8)PZyՂ=E8.wl+,#'k̵*7c<̵v V'hAvsIfsWN$cG'AKvJ-;# b]Y'Vw'G='-hIǞ5/k7J` I¢0TVR_$.>7bY.鬵*pH,*)xCO>QxPxk<˸؀UlˡriN8HP	jwjol-lf6yK~R|/}-k`HUa=7O`d~n`8SiQ8?;k0
+}?+H2K?0T%3oJΤ7&^-,aʍuRtdF-ztwu,$6jbkIhѣPj*Θgѿ>|5\tHa	>(k2P|ΖڌSوGR]j7vϝhk~T'P㽷dbdS(̘&}	WZw]H|R~*-rf({Zϯ"\M=6MA3K* =Ö.7:z;4vȈUPYgB ݸU.oA-)VJhD(mgivTb(U!g+#6%H^4Nk㫲O:6I
+Sm|	)mggլBeع-ĢU%壿>uS~8;/ȄG2^!<QДbg9*3ӦxW"5<A	W
+ZVm}PA-u֠bX*M9ɳ7"3uiF!;;m M!]R:`R:!pA7ƴ+O,=q>0\+,_c{gn@2?n7ji8|Qx-no{QFNݐ*{!#zkЖ78G-(vWs!݆;Z?VQzcl"aSl=St\Pxt93J-ǥ:1RXCycd_|;<Yn|da
+KLF=,sY2UA\1Z67VùD=HSvs	."~D?'nƌvj	z{V*\DT-!	:rx#:
+amF, 9n<:#(oP
+gŋ%]؁H{o]!bh*+"5,D
+&(7[2w"e(VB1n^0-be+ўj5KnF.L5* (m2r"m01a+e=0ZS$tcX7eFͼ+m 1ξ/B{ TtT47Bq[46E	9k3Q-/Sj	=yv: s*:qYa
+j-m*kukx'۵6D)uOY[Qt`2QKL>I}tc=+i]d{~Gwj9OGZ&.<#,X:eJ Vv99Z5t=xa6@?xlFUy+q[ǳ\l>!n!8Rǌ7G;_.FlGuEI"<UbY	/P\Z6Y]<Ư%R<Jm)/ј4J^a1=?x3?~#5G~2nX[6-?Q.o49旾=y6/|jH'BkIQ5mum^D5FpL,MP;;ib8ߍtsM$8	2ྱ]K ~[JFGs"Rˮ];\S5zvȑbO?ͬAr=LGK~A>N0,nSANfiig{٦,itK@{P?۹D˃n8^7tp?a`{m 	j%Yal`GDRYbF%\H7/f
+9h,췚`KaWh"U=]#{Vj<\6 yL8
+EyosC=Zw`| 2b%|9y@Ϯ֟,?ju;[\8СgTv5%&}{K-Ք&Q
+L3Yd V-ViiYD;؃ЙF6oV
+]"ŘkZ&ۜcN+J6>?6`XM3y_BT_	;fE80J?5!Jb֕Ym6sN kթ[|ѭ۴ROv!\'fL:~L̦;%~}D0L\@d/jhyB!C]_DOg+3oaME^N.\|לRP8KNBErQmMٕ)UIcq[ʰs6x	gR+vf:Ao0byxxAu6u=]Tݪ9D&yqKp:&jщK1%BZv=$17g7ׇJ+9?j1P٦AZ/{UɄ֖ER`{ŢFDFbeB)l_8*<IͬĎMZFZ,Z]6
+6izݱIoxaD+mG Ve(b^V1{ڐPRŐ#kU
+M܌9W50@F;kZ80!%tGtg/*w7kUM;GΔp2tEN:Wf-.ZQ̤)G;HQ<t,VnCaaXN.Me9GUK:98!*Gtua-̆=.aB6b6ٗ0i}we@uN.Po*F,ԦE<SH%޷}܁ph7[ĥ3̋o.7WblJa_`/Bƫz3èSDnmd #hVGP<7ߊ2)7JѹWWt×u3Յ	b/$jBj5~NCֵr]\XX'79z6;V{YdiY˺2K%ڈ{:~+نNeʀ58m伃nx<I4ecen_ !	sP^_A-|wX6l+5?|ʅSu.WKfpgfMXpaf- ?f07Uct (T8q|i;N M9ȸ[G<_ZŴ01gga.u6RolJ	7saJ8-Ϝ<qUe_ƏO/`_ݑuÏ=ћN9
+߻G)98QͽNzg>,?m91}gN{^i1l~?~iZLk,ɼ\}r:SIpήLaRtZ8X^xޠ082=?PJ?ggޙ3׽tn?4d\q桿5bhN]lMiN')t(MYl0Nϐc.[cu6x_Waݻv>uMmZj]mR;]I 蟏e9)_<6K:ǧ{^>7muO{ܻoCsfÿXWzi45IrmJ(@B.YL˧43_i0q^T7ü.X~:\ݿOӹ.W'Ŵ7keTg<ff(~uq1=4)wOIvӧדicW`q}|jS4OK#[l;]y4߹PfG^ѵڐϴ rVި1LWSYj%h=Qû՘x,7o^ь#p`禞Kaix=~x/~ 9#)6];C5O&s'	Vlʊ<U&m#@)`9^a3T9;@ҹ:	[09o3f˭@[."Σ:;+f F dA#,uK[ý+"b|Td
+좤8- ̝ y( xL
+S63e9Eybjcn[*́fmˎfx5@ϟz1sT<K5,?n@~q#y "հS 9(B0N'vv4©Gfw ~=|˃,JO$ ωJV	Π5vx@.I!7ΫŕKFڸYGKz2*	܅[P=$ [GS%>[婵+I!Xu-l3"4M9?Y 0rTa/%#BL6km
+1.w8C[X/78f	(Ҁ᜿]ؖ D_:Qs\l)1GMιG MZG%7w5 ZP=ye>bӊ*RImB(F >;tlJx	wZVǖ&rF2ӖJE;[B$l84U[m=fF<hG͔楙9+)A~Vx*%n!TZs Uu5|uиBܔB'lę ↖	b1VDh}(9Z WȚLLiD]I̷%W@zMWa3HK.|fm vn;#T^,QhS+@[Bc]_Y0[oj!ob6"Ո)!*,獣!jSv45jWV{ CJ @ =gfϬK9?/Ge`CҐ
+.RwEi='FGW?_4aAƩF@i,Z06-x;ԓН7#c8`.2frd4s1o6d)V2(BgkJN!(4G tu+2L뇯-;L6۳\CXHKq}?	fFo-f9G_Ӟ}a?t8IfAɉ? d+FDN1q۲";vYO2Nl(`+q6MӑGK!xzp?lYWȨ4,o:"^9l@',,҅t)r/BD6b^2vd-Y[Sz]զQP(d?Dm~eŬk?OZLD3''p{q"nn{$iQ`RP#7{6b4x& FUJh~I$?{Э1O]KWţPCόM&xjhn$@C1a&YKWgx.~4Lms:x {6G^N>>Ka0U {Lr'L=ZN&`[g[Ԋ( .}U$#jrs`O`ݏ.+/akJi	<tډޖ5rTM=i404Cbã_l:XfilIy9Z(UR]Wmv.8IVAq;j@u?5\jӔm{beq+I3i*6AYo O(;wNw8Zav^cG+	xK}6RO-dw81n?۹s˕A>5/
+]'8Ԡ^F6!x'3OhސFYpPT߁IbduԴ1qܔAWWl,5FuaHp:JYļML'8B]g +zM'<0D5<P^w"v\n<NJs7,KpxCe{n}mU~GWXQ]d0I¶[]iq.<Ab7lv7
+pҋk|+9 aހi ys;@~!{
+I2k KCs^`vf)'azG?ͭ	:3/!g0ڭϣ=T8%`X#R:%k2+y
+çx]e7;Fĥ֦D3Abd"1{3Mrŵ%1x \i=%m: UkΗޓGEݶjuP>\q=n ͌MD{Rh_	|8VU\ޡVt ]nqEGIfMJQ3S2|V} .#{M 88 "{PTu?wTxH)ĸvZD?f1y/W+rS40'֥ P 0d\O(Z4jnAe0!_tmoNkզwt".t>AAN)	d/ƥLqOVclK{7E9B)F$#iphkJZælFT;w:'>_ѩEC j&D]޽fh:#Jpj:Dut(w	̄Q3$XYLχNH:ږNWALK/z]Q+PJH$L_6	7v\{d2[T$^穉S,ur ^.|NW[OVXSrCEcaTݡXv"U}6_pYs}vO8-UgKJ순KJ1~rVi}47y=C]0At9V(%s	ړk`[%UJjC	kXmf4&o/  _@V(ݢ;Hm/teR=eI>[W5zRxJjTeA.s4(N^m+ m5ijn^%SsuJ*­4Sw#9޿[x`E_`' 6ؕcC^A=NVؕ`i$]vҢ~3s0}5E 9&lrC QsSWmqkg%-e&UL{'݈6;HTډ̙õJJT*|<$V£c'tFsnĺ>yDO:M kg簪=9mb	dlPi}!}6/C~m#MРbv5yVMQi\|Q1gkR2'H7TCmmY&$An.r!&x2|bor4-)IFR) \B`FP:#.o{gI;Vtd+ѱ#_6jy'QѸ#kԧX6{qB_X?[-SrXZ+}c-vGC ɡ{._1A(G3|`μѺyP2MJXp()˒0+vuU"SP!lՌ*M	Û޽`LIPj61dm0PA8#<w29 MjlS#:Tf'do7$_*oiOv(^u&08(w5M#3<1rY\gHAY>/0&@\,ru =
+}6Cڀw86𪀻C3!pxኛ ^P:/2;It獼>Nˣ5	"_u8AQ\p@8_\;ME=6iF2	Utmǁj:wۓ	8ݱ"%
+eGaN
+œcUy	!`!`,8hs	C.x%)m-_.үLf7;Pwq2NPe8\?OH֩[VrՉOb˷RĸTqv~M _MiЄU͑j^}'Coj-_IssWLZ!IVK{;+	!s3C.L/4MJO4AXP:,UVc CUQ~xmAu<7*̗5|}ZkxRu:7v3l>'`^B,kOPy&C|id:NJ=\y@{Fބ7yGI(vsu}V{Eɍ˽k62V{",.ylr8=N꒦4%bеM+(+˜sފrc믌ԵtM
+o@`F7HB!-KVFZB@L;DNY֛TG	#kܷۣ48-'3e&R&e	$oLQc\V59:%[_&Mԓ,iqi*\U AR_2z)(No 3^G`bQ_m&K_6"BPddۊ[dSՈFTyu2QoAfVGy	rVs7{IW1pj3tChOq3pC-,ͤuHoUz]Q5T=fd0e&{Ӭwɥ;{
+v gYWj+rF-=)+Se	 ?qnPIK8:ߏH$͏zTִwp	˛AsS^֛jii&!?pwi]4:/QHm[3"٣ϫM_1FN"z;%ˈ_0Ը	b6!'<*eqn|oGZՕCpcv$)|Uf׭"/l itnv,6pJ  u镫O
+a	+C!1aN6ƖO$?)H
+ƌjKw:U#	BhjA@r t\)i70˯FTxD/N$-iq
+Ku0p'&0nv 3N|&u%S!}e Y8+*Y#[?qП)#0mJ.w>"wp6a89)K(}MDR Y_<z67A	tBiy$fiA"b#]8nxQYgP+{tyG5(Du `aǝՓ~>kr?R9TqG=ӧA!?z:
+ %*!U/@SfD\0ʠ_yJ~~uuTPb!鮶fLm{I5p؇_dV<Ɣ+8p5V1Sbx+,b~?}>?,,nLQM{eQb=Z8̮̧S4ADPBOk`;bXZsLŽkya_BNʱ`Sxd߉6UܜsR '1`JZPZ/d:%ּ}V?0{xCT'2"Bւ<Að<[,@C͘G0E#*icRRce2j/:'4[uCkPu*b.!~uI SG뗪o\lEK5<ǪoAíK>U̽V5'FN:!n2kB[UT牑KyzVp{V'ڠMfub*~$>*a ֦tb8h+kmʐ%$W
+VX՛7ˢټ lt=e=Ǉƫd=yB;tSuhHs|JuBrQiTǥfOZj7m⼴OmiVi"='jA$AFW^,!96S1 V`vlGjL[	-홋]%. A>.oC_"AO0\/Rz6we=)֍P)Yb S(񨶙pO9^RG}IFP#pB&ZhP_f|a&@hKFM-;Z*Fղ7<FNivnqJ%|Bw-uG̈́+1
+MGt6&b$O< 
+] u|CqOnBJݘʰ@Vt:!0v#._S{v(*XWv1rQ0C&Ow ^Y7Nsx9u-m	¶+JҢˍ=X3!(#y;09-슜kWI4+Ozjz]$NjSهB$ Ф.{AR-H蝐Z,7lomˣZpyi=G<<PgIC$t:>{6DI*֍j55q9/]¬nW઱P#릕@u?#!v,AB8Gjk=||2^/ mY纫&.ޜZ#LuF҃k
+67ǐcQ 뻮QfHEAQ	6n]]@nnc	FV>ù\a^Om#(lV0NiSX b4b&-9KImiaF]#r.*SW v!ua+6]]lZo'h
+p='~
+j*
+8{Ei\[B~z9g/N}7mCp|,If$9_:fqp-DQQV0$^vK[)Vek%\WȴꊟŰ.xK_.Q+)񼾯OeO
+g_>4$q9PQml+v	F7kDI!eQُM[x)Vە!fX2Y-͡C1<`HaJAfbWiigpմ(|5a^LOƙ:G(;<LYT_Vմvz:$fZW'1>kLl@_ߙN7Va946lxqBq{BJ|36px}ȳcy><O-<,5Z?I;SLh#zMala8Ї̰hfkRv&NFb]Ӥ)bU&IpÁVcY}UHPfӍ?,^ҙGJF>{sHeYd:CLiYmͧ^*YѕEQYN{ΡS4
+gWN^D)M $b78&-6rO#JhEmeU#0-y~ӷO\9+-QmR#2B(slӼjJ\_Bt$굝yi+8oD[AeAr.&LBv^ޔu[eNI3?6+	8|LxSИ˶zT<DYՂ7NrG,TkT>	^g3T`bX۪W"UdF.?!􇧀]	ZUr;jʿh0sl$&g\\ek瓬\ZK~aHӂS:CM# j`4  >Ѿd!xQq
+dp5d(`13
+R_D)dBF̼ tɅhI_	T21W`!HZөW?ShHJ!$
+:Q6&Ξ;QIۇ. .N٢8<6SVY\眾C"375 &3P^Q|Rb'v1Hg6w&?9G@eKytR$P9Bw5L_DDD&u"f)#]VFEZ<C@ʢC\g qgI9 Bρ[ӧU+L}CFހsA+@Fj}iYj_>$Yޥʓjj%uL0SJUUCeEf,;~YtM['ntKHZ`
+})SBS0yA8?.0]}we	wh~7caT/7-8IbV-=	H%z({p[nzO=~0, jY!ɚn౩6%\BDT*ǿ~ tiQ'Q`<X_$ cg^x(`_v)o]V2vtkk7/ti%a?MKP/n֜Jh{KubC-[K{QlM7`V`L,.:)Ф󲹦^ԅ\j<%pS24`T,i\;Ó Bn:(GCxg-dヷk4Gi5ITWF[9.\MkwGym!aOG#lR~!?jEVh[e쀲~hRʱs)|zjOcܡ^e]PjFk2rGIvorc2,
+Xѱ4&6xK-P9mʵp
+j?7lA),T0`hg"@WHb%i?t{4FLb[+\B+La'q
+^[ԋx߳P)5Xw1 	GH!7
+і=d:I76F#1'acj#CixR/bo8BsӗPk}y L_<M8	AgT@&Ut쭶fUOܓA@
+\rӺ-HWHd]/!c}y\DiThJ 喠rUz	^TK@*=gWg7_\<VӒߺXs>&SE>,Tֈ.=p3.m	<J-c0pgg ]v$u-w:b
+m9C0,8!c>P4Wlst@Tkl+(mX%OٜpG3y)t"PY+[ԧ?MrzzNOz;1#=8ޅ𭒖+yT	0 ?ϟ!;YJKH~u'2iǟdxį^mVk0+|Bsʿ1vΖ+MYi,gG?DQ.Q~p.?6{ؖ0d4_yenY#>[	$ɋr,|̣w&]"উn2DpcdLny.z͗"Ŗ$pH-:⬦]T	칀!IE*R\V|@溺Z.ze$ոk)toJ'oӴEVH))xg>X	W	:js>/y^k6&Γ|\%js4b.?[SR;,xmeϪ-,;Q 7U_a
+u9l >H_A2Rpk|4W$v UKmX-BstgխY6Gl|
+L9m:VkqBc?=y0rކ?ɕOذxҜ<Lb<BqI]FxQ7ٵnW+!0l6}BDiZs]v>n+heVR,K3o9]j:m#0>K3*ȥ+s1Fk^$EIgoX!],Vp6!Mc-"	1x#;ce6GU"	?baJRmH
+}W6Uc>+ҨHb}3(~6<Q:/&E{?i~(;:)eq(uU~	Tk}~8YmU9VWn10gsl8\Z
+![,}^}pYOTI +VoMnQ= "毰w~ֲ`m	/̼!:%\Б$#hYEC5butO*0!gO"}@loMa'K@[(%(mXyU2fzӪ`|v-z6#A FzO@nc2YN^Eo)Vjm
+]s&(HOGzk4nWNjN`8˩I'8PUKwF	Ju%%,2S<:nǐ|߰/
+|լx`$J^<R'% QVOA뎚PYvnWpu}|_,*`&(n^w@)c!d5&co;mgda٧Q48x#00_KרhMP%xkJel(8xMϘ]']%:bUi¦sS-oI1LB+Q:mX{KB@FkUcO6](r]ݠHifP+j&{6dN*,T4&VL@ԦU^t1f1?C>GͲƤMS(,>IՊM@1҈1Bp~KNҔDȟFz)Cȳ4(s̑^~3MVǙ3wңIeBE<hpI\ն0xG]=1$|VcW	FP\]D&oΨ,-PfOmak/wIHVٳ??1X>Hj쪄ZĄ!S :3#PTsaVVuL.AFqQr6b6!żeQZEZ<CW8uRRu=G~ALonGV!w+Drs	`fK(^٤bղYWQ)W!1`ͼq\^J^q/#Mg딽(
+R |n\`}#_­ߔ8L(#	דzrZni=ZgP&)Vfͼ.y*=uEbQz5$4HNx0FQr;R*JAhIrdl:H]9>i]eY*Lyg:=`s(ټ2Z1).KyhlE~H?@䣚3'a)ӃHG.OЕieܠH`Qӗ'@dnJَ9J)vC],8@+E7b$⦩)3(@t<baSX[ڬn¥|9yø<yѐK`wzVzIiR߀~pԗw^\$K2\BBi@-+n
+ ~.$ZI{pYS2Vq:.XDǓe;j<ڶ
+uq8ԀbA͂+55D9,]ʨȧOC" ^UlU.jts#eqV8yd` TNp0w v+Zp;/1nK;N@eΗq3lx k G/؟~@lxyQb0s[#ӈq4NbPuu^iv*}؂"WwUķD8L\BKm?ڪy`h[sE]@S_Џr¢1='fA+h᰼roY`/-B#̪>Y	H_zS@~FJ3r_uvVsx$M{Vwv3?WFز$ԫ[B{fyե|uT-t0K2]9Sp~?Ŷ{%<	)՝(OI*Jէ\ɷF6w:ߺ WJor;7s9)7%A>/MF-/rxh&H߻'\1oܜ6CtsXV7|9ѽ[.:$˰3G"XFnO/kWto:7pVV!'?ЇNքQT^Sq7C_G5bx@̱5_u$b-+c	/z~PN"M.#6 |]}	lzAJgsAu+OS؏'%VӃߓ㚾nQPǷ_ԍ)dwWCF}}ZTC*$\*BT"ZN[9AeLuoTm:0S,Y+#X@`K,W1[G< i"!3Oxmz6	eahL*n#d+ۉ76$~fGO>SԏA8`in#%zPareՔ;<jI9^]î?
+Zd L ::α}>]P	cBH0ۜ`QƴHU^	^WNw[GhK"eK),eb1ϟ5}f:cAA"zk@"
+ԱDtdĝhd)RE
+>T=?6S'A}JhTZ%Ԙ5NM9E4q$ImzV!GJȣyT2Ɓ\/ɧm6T LթoZ߅a:K#Fmt~,db.Z풤`6ٹX@vLzaRC:`O`Yߒ xBlI'}4/cO~riوQK<sPL)oަkhsw:w
+O=|Ye-=2?2@dRuh!	{oЗ&S?@IɡiG`IDENzˈDяnT[s95D̛~jA]֧Ncwݴ?TL%C)B'.)6ҕ ~$-nQibwΞyRn|a%Sw3ʵ!My);p7xQ);05eiN^KNxg(غɍQt鸚@ܷcE4S*]3BqxdCuw$mh(Mo{0|\|rXrQ/Flܧ4{yze#Eό}2+SgThҿ]/MdI\Ŀ jGWCkiN*#Z,?!!$إE2 K*A,7w06gĀ҆٢zW,3)^lKۘ4l"O=O*E\$9Z=<ߤ<;S?6o%`=:9Ցyb%UύGoP8lSmՃ/G' 1;β3¤]qwT5}`^چEؔ?`m^5-簊
+h㉱/x2!똤È6HFup3y@ۺ%q$)d{q1+?P&uǵP͖$c%`8P05vQߵp
+M1(h zQ\l
+EKY]@a`%E5ugk8	_mqyFX6,pH_Ygw LZcjJҏ]MoŰf9e&jN?~IQNJkio!M#tfs0y{Ξ2ʔ_Yv/Q=זYt^6]"n:P º)E5BvhOj@h`)@ۓw|htRHi-gu6q_f[tDG6Ư+C8@ܟin蔮RSCH4-ŰMîk	SD2F0Myr}mNfCL(1yyڑ`KE:t+%,.~ >D?u+o+jmr\q"U#l+ϗ 8#SKψa6LkbOwi iowh'8-9/y|ʛ]ZRM܄?P/)vy*)VBH}p]5SWcgm%f T:RC,փ;.~)>N]{VvEq싫l^TNte`I< gs} ss~?>ea_>|ezy|yy))ɸn,m(2/^Aoӏfm!}rp^qFI^ڞIn^N!;7벜Oa|ʽɝG9a?H㊌%<$]S~eP L?%wܔ|]<W`V{(5EM '_h{\W~啪00e^@[y3z䵩)zl>H>7Ħ\l3xEO>Bڤ(/0'f<>AIԃPjlW݌ +k( qr+DAijc=:T+63vtkG\[N{X=[Es[f=(yk$K;`eJϮjZ}p:[nb郡Ïj_,כ[ui)6UMV<kW%_1~ʼ-SR]S8R>i^%K~,pļ{՛'٢MB10)LԘ۩!TcE_feflH\cH)gkqJEoAŷjz%cSÖ=Jg=wfP=(	)[93[|ҋiN+0'<Pz<kJC.5&Tlװ~F7Ƚ{,O74sÉz8Ի{$hizo<GG9w,ЫYTfRfGO1D~(F%iy @lsx4:΢gKW^ly</O?sd~7<\Ex:-Rfܼ]_@*uB~M\w}{yT5okZեO-;\ouWgP'Oz#ZKnUyc M.ff~=-Yt}U7p$0N[7zoaAE9?
+$W7Qȑd_T7B# gX.\RÓܟx/}`pwQOO(t5&i
+Ŕ^\j^pqOOs~0otDuodc:osaⱛ_"5F=nzO=F3ZDo*VJy=s8 `|;5Fa|1ǞCfV>ai+zHXFE):zTXl;L`etG7	MԕQV,#]lU=Mzq^TA,`1̇gu3a7ϦDʛO3.mK3켓C\S8n,\#^'i<͞\0|!;]~Pnnlvk$(_o75^1靇Uj;r}Z=Xk'-cA'|sթ*+²1`i	^Wt[p옐65< DGسPUUex9EBֻt|0޴ō)NO!eF+㘶 7E2zh#R͚S=_ipm	nY|Ѽfo00{Iؼzz#3	aAȝ;Op΁ivܮ%ʫ9PCbP_STo=r&/Pu)I5.BZ6:@оp}.Zq\}oNz\554$69Xů9X=՚0g
+}̑(	{)A1@Оi#<A:Q`_|_l.ƳZ-kmk( -  ϨOl0Q)=0Qi?Jp5rJiNJj>;s1S?LHJSKy6;ӟyǜN}(Ģ;VItVy(Κ1D1	Vۀ?ޚȘ{h{9DWq݉PiVy6݀*\u0gv^z|,Mb1}ZO.r|HGa>UoC#ݣr0|M D~q_гzAw05X.EeB.6XҳvT>vi.WyggH I߭kIYG>vn`6OLz޺Mk0Lus0}GIov˝z1}<+㛤B+oʤ]%OqgCntzSN<5ooCHޯmurk!V^*: \"}d}lkۮim;.mY[uE8]6z4d78?7h"e^EY^JE?KooP\;+ڐoIw٢/Y-!=볬VSh
+ؘ`N	3~m@;ꅑq4f,=Vt!K
+M5iZ`ot_U=c\A9c|l=A7a%j+a.w y/ON{Pz`=3%:mŕH=G4hQ@/B	:yu
+񝉺khUGdV▇}eʆeϨ$F5wPQ=:[}jW;8IDm!prTswOzIL>δ	OS`>mspݧC4)M=9Rk%%60}{OKz^6`_	1={@د{mP}y/g43a88ljGd:])@kԬ4!qsb<\:ޡ&Aiu*BWcS]-k;'w(b
+zT|EZWx<wh
+p>41VL떃ZdU]*TuI^7*oዩ[V OI15~R3quqW@Pz&>VG$:g=1åˋ
+¤G#8wD>٩Z^C$tWpmx3OwCݎAΤ7}5{i#.*UMNo}ZJ7u'jy^i{׽{Iț0ͧwl.'T&bhq><nGv׹vMASj"ޝ10́Ggg;;wlGO {S6S>) 6%#oΐ{6YjV޻ʐЕrH\❕;vldqÁh56<\=}q)~tg:#g¸Dzgyhu~hȇyvbE3h/9#OJG N~ŭ!ޫv43A~Z\fv: *[]
+ȠxMr=#+llc0 mCOHl^5<8v}=r'M#8m	[km	S{RE䇝C(%4-0hf pM;$o^n  >!\la*2º&-)=})-wn|p?eL+:g!@BǶjNW r66GGՂPTMiBqa=v-^W%q
+7z.6nମy.a9N!Bё9-m-`x>.l%'k߶Ŝ7 W4jX 1TX.&0ag#mLt&2^wSb{qG%BqX}V?UK9_ 1L"PN}{T-~[M=!{!XO\縇AB`3Bƍo8yD0 ϫ=Ag9){M~'HAIJZ uiQUnS$x#yݑ2!m7ߧNNb}lR);3S3YS(ihX אܜ
+ovvR$;:GJ|,5|9:AGi~Zo!/iln\ֱ)g^OPnKf۾C2L81!a;]pD;Mcޕcja<)~kWAd3/$1"8O~!?$^[6Dp8	&s.CIpQ7x/[	Lp9/2AcR @|B+yq@0FZEv`B!k	cInw,m\UDJjs:bxTlQ\| ¶33n,?ǡ?I{HqAթ\jdvm*:5Q^xpzP#beiSt+W> W$7Ajq! Pű6>!g.C?lS%t'MдJq7GH)eC% ZbƋ9~sZZ1XX4	y9UJّe(zi!r=7PdoՍEGk`ӪI%1`p})iK%t%)hq
+=`etT40'Ȋ2=0it]@%^7P">&ʿ7,]E9ZMCGy
+Xi >0RB9UVe=ۡ		:w/"wjp1%^3 xr 䒊 AԦ7دh{v$q^vGif`dhQLa&Q~fDa,?~P`NV7N
+v8^4]aױ+bKXEi^SZ'jKԶT1]3~()Hu7J%)
+F۵IoB1cSo(;X{m">,qy7nŜ @y1UP`m`-&Ϊ2&)v/4̄:8!r-IfFA~R*`uMQn/H{ح8N`hepQiTLGX 6keeIYw/VdÓv98fTgVZC%ݑtʆ~o$D~%NK%6҅M MQiDcz +X}Lag[,!XZ#Yd.oPo*Lwi 7q(NWNjsZj0k2ݣ6墾hf(tȰ,l!E"<CD'}|y]WFۓ`J/iK9wFSɋV@p6i^-s@jl7HumW3:0_.Uܝ.%Q#3$f,eZVr&thkO*lpħCl9H<fԶaOũi!Չc3R7J[2lqL·$`:BKs4
+@K rV6O[\o9{=}߸0 tcLQ>p4涷:U~~iIc#Rρ+u lyFyO8d` 7L;ag.iyVKVSI
+sqm[AZTɵK-O̽j8P;7 ݫTE@*ꭕk!w5$--gF%Y\XˁWXonwh1P_V_1feׁcD~G[2m/r[[%{649-d	?]ƣemii5
+<d_իVwH}Np*404HrɕZh$AF:9Mj/A<QHz	}Rw4ӽ=KyGA|q9=VSүc^Bw|sʳ3sيSa ͍J&Tq;	ݼ@r4)]0Sm\\wSzSUi*鈵ڸ~uL|#T"+g/&q0C+L NvSSlKu%Y2H-ujtpQSIS`OF8X)3`QA/'178?8Y6C3cKyB]LvgAQaK0^՛LK"oiUbv\/gFƕi%psDb%XXܞj:.Z_6B*1#KmqxiexO fKo9*鯿Dj$DĮVTyoT*?7p챦uz+%N.ӊj~ND{[Txo)kضtuS;d'd+![ߍE
+cz0o˛Ҋof-ۑ͐sՇKoIAE`?JҲ?nI\g؋w_BxQ7R9YG-P>OVzCtY}#e[nnP/yxnCiT;̞iɁW"bqC_|hV=by:a5˅G>&m118^=jO'9.j߃ͣ.m~c΄]'r؎\zeg7yvSV qS6l#dHgp/A6ThӠo~C8£=զavvbۼk_5$E-fܝם쒦F'O;v1YG-i\H`AͶ8ŷHSh8pv
+caGgC:`e_1tmxT
+cyנ֠Ж
+fs5>sR7z2ܑXJވ2p'΅QY
+.#0,%ee:*fMA t
+EQ&5DW	;YUI6}v/XZM}$n!֬N
+5qGʀ"g嫺F!ÉY.,l|`qnjy0GҜ*e2,w`[ $_O5IT(,vĒ11ALLѩڙem=  3ZbnѽB;53&g{vm;9r`wٵ_S[Z裔ɖd"EkGj~5`XSl->xs B'=lX|֞&-We77׹ݺZ2UzXZn|tOo:6BhK~7byd_眰
+`"
+'sIu|'Ll*;AFaS0K
+\&ɦ4 #2ُ0yYvޜS{$XDm1xҶ!`MgS = g֪5xtэw
+ݭ]d;׵=ٺBEZm^(~ΐ{1Z lƊpzb[t$.̰99 :3Bjo5CB?\SR[
+p󴨖?}O+g9<P3&vѫÃB!*2
+[n`q^ʅ][5Ag qj
+6!%V&/Uk~axtZ9c'3Ǖ/%M=02v&ٮ=<`]`?EїΙ1BpPJ!ϘMLفp'϶Mi<WE.IaX IT{2,w7Hܽ须f׹9)zzRэ* ʪy7ץz7Mv@-@:hH
+Cz{ރ<*(Ѿa?ٳ*4?ghy	 hפjKGM$bu_J 	X͇Ң^pks~CRDRb\iZ ds8>Zu6NfXƑ6JY2&E_wt\@$NB(q\9Y+@f ,P_mxr`Ey :p!\851"}	}v+u;ha)P^e;=X8 3+nW1HfP#&}"n/\JJ5x'ar`ޡIk3"$=/}cŮ	\ܔ#x-ߙ{u!bJZ̍6CayaوN*c.9\|^BwSuB21qf&̓@"p-Rشe]5hfW'/:oXIdD+b} պI#S XyI Vƅ=60{b![f-1	Iͺ<{{#N`U61b3}ztGoլSb22#/@:++qzsXn7.^q?cjvDoV5`8of6(ߕW۵Iz+wO0lDZfe	!G]fUJ9OA]O\ҿYQxr}/+tCm(0fi%^d,bxjgʚMWS\
+w?{%^#?fY*mS&T}Yuwj&hX6fCӘkdCY"зtaAWI$ǁ-V̼]po,6 l%etӷzhn.ݴbm`	Wru!DLF;hAVR0!ak9);~huX2 i6`23*<`FE+4sv֡Z
+yOr的UR⾋w,cc2;8=ާq,^L=<18pDdf>fś㐽`&֢V'-/}clYJK") OyL{4ܒ]hx+.k.3!#I	>r\^VKқ(|u6zm	n!]&xJyy_SE熼ҶkZRxͼ"7|?Voc%[E'
+}NOJc;4@RŦKGj5E<K7ajh@WVp?P5a'dHyş"qcռ q@P]
+3ˢ;g۸6Tr|$.1>QGcxsȥ\ge9/L%(Isi$!#>o<h"VCĩ;m!s`&@9!quc``W+=k4},˭Oci9+`ͼ5òR(.٢쉗Y1yFfe\
+VZ<X{ߚ]ܣ5Jmݞ]˷}nlӵn;4 ߆0r]̪]Z vO'	uT+uĺ 0CB{7+cxC r -͊5Tevt|fZ4<c1.P	( @^P 
\ No newline at end of file
diff --git a/sites/default/files/js/js_wSLSvw9LE_9RlifcXbAcPq4S8qOwfFZPr4LUM9sm7dE.js b/sites/default/files/js/js_wSLSvw9LE_9RlifcXbAcPq4S8qOwfFZPr4LUM9sm7dE.js
new file mode 100644
index 0000000..c61660d
--- /dev/null
+++ b/sites/default/files/js/js_wSLSvw9LE_9RlifcXbAcPq4S8qOwfFZPr4LUM9sm7dE.js
@@ -0,0 +1,4662 @@
+/*! jQuery v2.1.4 | (c) 2005, 2015 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=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,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=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.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},n.extend=n.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||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},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=s(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(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;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=s(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&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=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)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(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||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(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 H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(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 pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(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 p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),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))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),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===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(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?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.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 ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.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},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.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=ga.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=ga.selectors={cacheLength:50,createPseudo:ia,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(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===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]||ga.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]&&ga.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(ca,da).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("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.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.replace(Q," ")+" ").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()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(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),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).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:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(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]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.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?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(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 ta(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 ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(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 wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(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?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(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 wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(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]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.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(ca,da),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(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(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&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.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?n.extend(a,d):d}},e={};return d.pipe=d.then,n.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&&n.isFunction(a.promise)?e:0,g=1===f?a:n.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]&&n.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;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(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};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){
+return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.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.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.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 L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.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=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!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(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},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 offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.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=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.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(g in a)this.on(g,b,c,a[g],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=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.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,n(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=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=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=ja(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=ja(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?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(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,n.cleanData(oa(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,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.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}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.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",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.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 za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(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+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.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}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(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":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.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))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,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||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=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):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.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,n.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 Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.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 Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),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:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.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(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.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)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(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=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.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)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.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})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.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=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)),
+void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.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 n.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=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.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||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.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){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.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(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(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(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.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&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.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){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.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 cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.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 sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(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}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,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":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e: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 c&&c.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||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(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]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=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,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;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)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.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,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.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?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
+
+//     Underscore.js 1.8.3
+//     http://underscorejs.org
+//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+//     Underscore may be freely distributed under the MIT license.
+(function(){function n(n){function t(t,r,e,u,i,o){for(;i>=0&&o>i;i+=n){var a=u?u[i]:i;e=r(e,t[a],a,t)}return e}return function(r,e,u,i){e=b(e,i,4);var o=!k(r)&&m.keys(r),a=(o||r).length,c=n>0?0:a-1;return arguments.length<3&&(u=r[o?o[c]:c],c+=n),t(r,e,u,o,c,a)}}function t(n){return function(t,r,e){r=x(r,e);for(var u=O(t),i=n>0?0:u-1;i>=0&&u>i;i+=n)if(r(t[i],i,t))return i;return-1}}function r(n,t,r){return function(e,u,i){var o=0,a=O(e);if("number"==typeof i)n>0?o=i>=0?i:Math.max(i+a,o):a=i>=0?Math.min(i+1,a):i+a+1;else if(r&&i&&a)return i=r(e,u),e[i]===u?i:-1;if(u!==u)return i=t(l.call(e,o,a),m.isNaN),i>=0?i+o:-1;for(i=n>0?o:a-1;i>=0&&a>i;i+=n)if(e[i]===u)return i;return-1}}function e(n,t){var r=I.length,e=n.constructor,u=m.isFunction(e)&&e.prototype||a,i="constructor";for(m.has(n,i)&&!m.contains(t,i)&&t.push(i);r--;)i=I[r],i in n&&n[i]!==u[i]&&!m.contains(t,i)&&t.push(i)}var u=this,i=u._,o=Array.prototype,a=Object.prototype,c=Function.prototype,f=o.push,l=o.slice,s=a.toString,p=a.hasOwnProperty,h=Array.isArray,v=Object.keys,g=c.bind,y=Object.create,d=function(){},m=function(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=m),exports._=m):u._=m,m.VERSION="1.8.3";var b=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}},x=function(n,t,r){return null==n?m.identity:m.isFunction(n)?b(n,t,r):m.isObject(n)?m.matcher(n):m.property(n)};m.iteratee=function(n,t){return x(n,t,1/0)};var _=function(n,t){return function(r){var e=arguments.length;if(2>e||null==r)return r;for(var u=1;e>u;u++)for(var i=arguments[u],o=n(i),a=o.length,c=0;a>c;c++){var f=o[c];t&&r[f]!==void 0||(r[f]=i[f])}return r}},j=function(n){if(!m.isObject(n))return{};if(y)return y(n);d.prototype=n;var t=new d;return d.prototype=null,t},w=function(n){return function(t){return null==t?void 0:t[n]}},A=Math.pow(2,53)-1,O=w("length"),k=function(n){var t=O(n);return"number"==typeof t&&t>=0&&A>=t};m.each=m.forEach=function(n,t,r){t=b(t,r);var e,u;if(k(n))for(e=0,u=n.length;u>e;e++)t(n[e],e,n);else{var i=m.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},m.map=m.collect=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=Array(u),o=0;u>o;o++){var a=e?e[o]:o;i[o]=t(n[a],a,n)}return i},m.reduce=m.foldl=m.inject=n(1),m.reduceRight=m.foldr=n(-1),m.find=m.detect=function(n,t,r){var e;return e=k(n)?m.findIndex(n,t,r):m.findKey(n,t,r),e!==void 0&&e!==-1?n[e]:void 0},m.filter=m.select=function(n,t,r){var e=[];return t=x(t,r),m.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e},m.reject=function(n,t,r){return m.filter(n,m.negate(x(t)),r)},m.every=m.all=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(!t(n[o],o,n))return!1}return!0},m.some=m.any=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(t(n[o],o,n))return!0}return!1},m.contains=m.includes=m.include=function(n,t,r,e){return k(n)||(n=m.values(n)),("number"!=typeof r||e)&&(r=0),m.indexOf(n,t,r)>=0},m.invoke=function(n,t){var r=l.call(arguments,2),e=m.isFunction(t);return m.map(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})},m.pluck=function(n,t){return m.map(n,m.property(t))},m.where=function(n,t){return m.filter(n,m.matcher(t))},m.findWhere=function(n,t){return m.find(n,m.matcher(t))},m.max=function(n,t,r){var e,u,i=-1/0,o=-1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],e>i&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(u>o||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},m.min=function(n,t,r){var e,u,i=1/0,o=1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],i>e&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(o>u||1/0===u&&1/0===i)&&(i=n,o=u)});return i},m.shuffle=function(n){for(var t,r=k(n)?n:m.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=m.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},m.sample=function(n,t,r){return null==t||r?(k(n)||(n=m.values(n)),n[m.random(n.length-1)]):m.shuffle(n).slice(0,Math.max(0,t))},m.sortBy=function(n,t,r){return t=x(t,r),m.pluck(m.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={};return r=x(r,e),m.each(t,function(e,i){var o=r(e,i,t);n(u,e,o)}),u}};m.groupBy=F(function(n,t,r){m.has(n,r)?n[r].push(t):n[r]=[t]}),m.indexBy=F(function(n,t,r){n[r]=t}),m.countBy=F(function(n,t,r){m.has(n,r)?n[r]++:n[r]=1}),m.toArray=function(n){return n?m.isArray(n)?l.call(n):k(n)?m.map(n,m.identity):m.values(n):[]},m.size=function(n){return null==n?0:k(n)?n.length:m.keys(n).length},m.partition=function(n,t,r){t=x(t,r);var e=[],u=[];return m.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},m.first=m.head=m.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:m.initial(n,n.length-t)},m.initial=function(n,t,r){return l.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},m.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:m.rest(n,Math.max(0,n.length-t))},m.rest=m.tail=m.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},m.compact=function(n){return m.filter(n,m.identity)};var S=function(n,t,r,e){for(var u=[],i=0,o=e||0,a=O(n);a>o;o++){var c=n[o];if(k(c)&&(m.isArray(c)||m.isArguments(c))){t||(c=S(c,t,r));var f=0,l=c.length;for(u.length+=l;l>f;)u[i++]=c[f++]}else r||(u[i++]=c)}return u};m.flatten=function(n,t){return S(n,t,!1)},m.without=function(n){return m.difference(n,l.call(arguments,1))},m.uniq=m.unique=function(n,t,r,e){m.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=x(r,e));for(var u=[],i=[],o=0,a=O(n);a>o;o++){var c=n[o],f=r?r(c,o,n):c;t?(o&&i===f||u.push(c),i=f):r?m.contains(i,f)||(i.push(f),u.push(c)):m.contains(u,c)||u.push(c)}return u},m.union=function(){return m.uniq(S(arguments,!0,!0))},m.intersection=function(n){for(var t=[],r=arguments.length,e=0,u=O(n);u>e;e++){var i=n[e];if(!m.contains(t,i)){for(var o=1;r>o&&m.contains(arguments[o],i);o++);o===r&&t.push(i)}}return t},m.difference=function(n){var t=S(arguments,!0,!0,1);return m.filter(n,function(n){return!m.contains(t,n)})},m.zip=function(){return m.unzip(arguments)},m.unzip=function(n){for(var t=n&&m.max(n,O).length||0,r=Array(t),e=0;t>e;e++)r[e]=m.pluck(n,e);return r},m.object=function(n,t){for(var r={},e=0,u=O(n);u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},m.findIndex=t(1),m.findLastIndex=t(-1),m.sortedIndex=function(n,t,r,e){r=x(r,e,1);for(var u=r(t),i=0,o=O(n);o>i;){var a=Math.floor((i+o)/2);r(n[a])<u?i=a+1:o=a}return i},m.indexOf=r(1,m.findIndex,m.sortedIndex),m.lastIndexOf=r(-1,m.findLastIndex),m.range=function(n,t,r){null==t&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var E=function(n,t,r,e,u){if(!(e instanceof t))return n.apply(r,u);var i=j(n.prototype),o=n.apply(i,u);return m.isObject(o)?o:i};m.bind=function(n,t){if(g&&n.bind===g)return g.apply(n,l.call(arguments,1));if(!m.isFunction(n))throw new TypeError("Bind must be called on a function");var r=l.call(arguments,2),e=function(){return E(n,e,t,this,r.concat(l.call(arguments)))};return e},m.partial=function(n){var t=l.call(arguments,1),r=function(){for(var e=0,u=t.length,i=Array(u),o=0;u>o;o++)i[o]=t[o]===m?arguments[e++]:t[o];for(;e<arguments.length;)i.push(arguments[e++]);return E(n,r,this,this,i)};return r},m.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=m.bind(n[r],n);return n},m.memoize=function(n,t){var r=function(e){var u=r.cache,i=""+(t?t.apply(this,arguments):e);return m.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},m.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},m.defer=m.partial(m.delay,m,1),m.throttle=function(n,t,r){var e,u,i,o=null,a=0;r||(r={});var c=function(){a=r.leading===!1?0:m.now(),o=null,i=n.apply(e,u),o||(e=u=null)};return function(){var f=m.now();a||r.leading!==!1||(a=f);var l=t-(f-a);return e=this,u=arguments,0>=l||l>t?(o&&(clearTimeout(o),o=null),a=f,i=n.apply(e,u),o||(e=u=null)):o||r.trailing===!1||(o=setTimeout(c,l)),i}},m.debounce=function(n,t,r){var e,u,i,o,a,c=function(){var f=m.now()-o;t>f&&f>=0?e=setTimeout(c,t-f):(e=null,r||(a=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,o=m.now();var f=r&&!e;return e||(e=setTimeout(c,t)),f&&(a=n.apply(i,u),i=u=null),a}},m.wrap=function(n,t){return m.partial(t,n)},m.negate=function(n){return function(){return!n.apply(this,arguments)}},m.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},m.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},m.before=function(n,t){var r;return function(){return--n>0&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}},m.once=m.partial(m.before,2);var M=!{toString:null}.propertyIsEnumerable("toString"),I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];m.keys=function(n){if(!m.isObject(n))return[];if(v)return v(n);var t=[];for(var r in n)m.has(n,r)&&t.push(r);return M&&e(n,t),t},m.allKeys=function(n){if(!m.isObject(n))return[];var t=[];for(var r in n)t.push(r);return M&&e(n,t),t},m.values=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},m.mapObject=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=u.length,o={},a=0;i>a;a++)e=u[a],o[e]=t(n[e],e,n);return o},m.pairs=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},m.invert=function(n){for(var t={},r=m.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},m.functions=m.methods=function(n){var t=[];for(var r in n)m.isFunction(n[r])&&t.push(r);return t.sort()},m.extend=_(m.allKeys),m.extendOwn=m.assign=_(m.keys),m.findKey=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=0,o=u.length;o>i;i++)if(e=u[i],t(n[e],e,n))return e},m.pick=function(n,t,r){var e,u,i={},o=n;if(null==o)return i;m.isFunction(t)?(u=m.allKeys(o),e=b(t,r)):(u=S(arguments,!1,!1,1),e=function(n,t,r){return t in r},o=Object(o));for(var a=0,c=u.length;c>a;a++){var f=u[a],l=o[f];e(l,f,o)&&(i[f]=l)}return i},m.omit=function(n,t,r){if(m.isFunction(t))t=m.negate(t);else{var e=m.map(S(arguments,!1,!1,1),String);t=function(n,t){return!m.contains(e,t)}}return m.pick(n,t,r)},m.defaults=_(m.allKeys,!0),m.create=function(n,t){var r=j(n);return t&&m.extendOwn(r,t),r},m.clone=function(n){return m.isObject(n)?m.isArray(n)?n.slice():m.extend({},n):n},m.tap=function(n,t){return t(n),n},m.isMatch=function(n,t){var r=m.keys(t),e=r.length;if(null==n)return!e;for(var u=Object(n),i=0;e>i;i++){var o=r[i];if(t[o]!==u[o]||!(o in u))return!1}return!0};var N=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof m&&(n=n._wrapped),t instanceof m&&(t=t._wrapped);var u=s.call(n);if(u!==s.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof t)return!1;var o=n.constructor,a=t.constructor;if(o!==a&&!(m.isFunction(o)&&o instanceof o&&m.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t)return!1}r=r||[],e=e||[];for(var c=r.length;c--;)if(r[c]===n)return e[c]===t;if(r.push(n),e.push(t),i){if(c=n.length,c!==t.length)return!1;for(;c--;)if(!N(n[c],t[c],r,e))return!1}else{var f,l=m.keys(n);if(c=l.length,m.keys(t).length!==c)return!1;for(;c--;)if(f=l[c],!m.has(t,f)||!N(n[f],t[f],r,e))return!1}return r.pop(),e.pop(),!0};m.isEqual=function(n,t){return N(n,t)},m.isEmpty=function(n){return null==n?!0:k(n)&&(m.isArray(n)||m.isString(n)||m.isArguments(n))?0===n.length:0===m.keys(n).length},m.isElement=function(n){return!(!n||1!==n.nodeType)},m.isArray=h||function(n){return"[object Array]"===s.call(n)},m.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},m.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(n){m["is"+n]=function(t){return s.call(t)==="[object "+n+"]"}}),m.isArguments(arguments)||(m.isArguments=function(n){return m.has(n,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(m.isFunction=function(n){return"function"==typeof n||!1}),m.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},m.isNaN=function(n){return m.isNumber(n)&&n!==+n},m.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===s.call(n)},m.isNull=function(n){return null===n},m.isUndefined=function(n){return n===void 0},m.has=function(n,t){return null!=n&&p.call(n,t)},m.noConflict=function(){return u._=i,this},m.identity=function(n){return n},m.constant=function(n){return function(){return n}},m.noop=function(){},m.property=w,m.propertyOf=function(n){return null==n?function(){}:function(t){return n[t]}},m.matcher=m.matches=function(n){return n=m.extendOwn({},n),function(t){return m.isMatch(t,n)}},m.times=function(n,t,r){var e=Array(Math.max(0,n));t=b(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},m.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},m.now=Date.now||function(){return(new Date).getTime()};var B={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},T=m.invert(B),R=function(n){var t=function(t){return n[t]},r="(?:"+m.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};m.escape=R(B),m.unescape=R(T),m.result=function(n,t,r){var e=null==n?void 0:n[t];return e===void 0&&(e=r),m.isFunction(e)?e.call(n):e};var q=0;m.uniqueId=function(n){var t=++q+"";return n?n+t:t},m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var K=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\u2028|\u2029/g,L=function(n){return"\\"+z[n]};m.template=function(n,t,r){!t&&r&&(t=r),t=m.defaults({},t,m.templateSettings);var e=RegExp([(t.escape||K).source,(t.interpolate||K).source,(t.evaluate||K).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,o,a){return i+=n.slice(u,a).replace(D,L),u=a+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":o&&(i+="';\n"+o+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var o=new Function(t.variable||"obj","_",i)}catch(a){throw a.source=i,a}var c=function(n){return o.call(this,n,m)},f=t.variable||"obj";return c.source="function("+f+"){\n"+i+"}",c},m.chain=function(n){var t=m(n);return t._chain=!0,t};var P=function(n,t){return n._chain?m(t).chain():t};m.mixin=function(n){m.each(m.functions(n),function(t){var r=m[t]=n[t];m.prototype[t]=function(){var n=[this._wrapped];return f.apply(n,arguments),P(this,r.apply(m,n))}})},m.mixin(m),m.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=o[n];m.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],P(this,r)}}),m.each(["concat","join","slice"],function(n){var t=o[n];m.prototype[n]=function(){return P(this,t.apply(this._wrapped,arguments))}}),m.prototype.value=function(){return this._wrapped},m.prototype.valueOf=m.prototype.toJSON=m.prototype.value,m.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return m})}).call(this);
+
+(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h<u;h++){t=o[h];if(a=this._events[t]){this._events[t]=s=[];if(e||r){for(l=0,f=a.length;l<f;l++){n=a[l];if(e&&e!==n.callback&&e!==n.callback._callback||r&&r!==n.context){s.push(n)}}}if(!s.length)delete this._events[t]}}return this},trigger:function(t){if(!this._events)return this;var e=o.call(arguments,1);if(!c(this,"trigger",t,e))return this;var i=this._events[t];var r=this._events.all;if(i)f(i,e);if(r)f(r,arguments);return this},stopListening:function(t,e,r){var s=this._listeningTo;if(!s)return this;var n=!e&&!r;if(!r&&typeof e==="object")r=this;if(t)(s={})[t._listenId]=t;for(var a in s){t=s[a];t.off(e,r,this);if(n||i.isEmpty(t._events))delete this._listeningTo[a]}return this}};var l=/\s+/;var c=function(t,e,i,r){if(!i)return true;if(typeof i==="object"){for(var s in i){t[e].apply(t,[s,i[s]].concat(r))}return false}if(l.test(i)){var n=i.split(l);for(var a=0,o=n.length;a<o;a++){t[e].apply(t,[n[a]].concat(r))}return false}return true};var f=function(t,e){var i,r=-1,s=t.length,n=e[0],a=e[1],o=e[2];switch(e.length){case 0:while(++r<s)(i=t[r]).callback.call(i.ctx);return;case 1:while(++r<s)(i=t[r]).callback.call(i.ctx,n);return;case 2:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a);return;case 3:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a,o);return;default:while(++r<s)(i=t[r]).callback.apply(i.ctx,e);return}};var d={listenTo:"on",listenToOnce:"once"};i.each(d,function(t,e){u[e]=function(e,r,s){var n=this._listeningTo||(this._listeningTo={});var a=e._listenId||(e._listenId=i.uniqueId("l"));n[a]=e;if(!s&&typeof r==="object")s=this;e[t](r,s,this);return this}});u.bind=u.on;u.unbind=u.off;i.extend(e,u);var p=e.Model=function(t,e){var r=t||{};e||(e={});this.cid=i.uniqueId("c");this.attributes={};if(e.collection)this.collection=e.collection;if(e.parse)r=this.parse(r,e)||{};r=i.defaults({},r,i.result(this,"defaults"));this.set(r,e);this.changed={};this.initialize.apply(this,arguments)};i.extend(p.prototype,u,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(t){return i.clone(this.attributes)},sync:function(){return e.sync.apply(this,arguments)},get:function(t){return this.attributes[t]},escape:function(t){return i.escape(this.get(t))},has:function(t){return this.get(t)!=null},set:function(t,e,r){var s,n,a,o,h,u,l,c;if(t==null)return this;if(typeof t==="object"){n=t;r=e}else{(n={})[t]=e}r||(r={});if(!this._validate(n,r))return false;a=r.unset;h=r.silent;o=[];u=this._changing;this._changing=true;if(!u){this._previousAttributes=i.clone(this.attributes);this.changed={}}c=this.attributes,l=this._previousAttributes;if(this.idAttribute in n)this.id=n[this.idAttribute];for(s in n){e=n[s];if(!i.isEqual(c[s],e))o.push(s);if(!i.isEqual(l[s],e)){this.changed[s]=e}else{delete this.changed[s]}a?delete c[s]:c[s]=e}if(!h){if(o.length)this._pending=r;for(var f=0,d=o.length;f<d;f++){this.trigger("change:"+o[f],this,c[o[f]],r)}}if(u)return this;if(!h){while(this._pending){r=this._pending;this._pending=false;this.trigger("change",this,r)}}this._pending=false;this._changing=false;return this},unset:function(t,e){return this.set(t,void 0,i.extend({},e,{unset:true}))},clear:function(t){var e={};for(var r in this.attributes)e[r]=void 0;return this.set(e,i.extend({},t,{unset:true}))},hasChanged:function(t){if(t==null)return!i.isEmpty(this.changed);return i.has(this.changed,t)},changedAttributes:function(t){if(!t)return this.hasChanged()?i.clone(this.changed):false;var e,r=false;var s=this._changing?this._previousAttributes:this.attributes;for(var n in t){if(i.isEqual(s[n],e=t[n]))continue;(r||(r={}))[n]=e}return r},previous:function(t){if(t==null||!this._previousAttributes)return null;return this._previousAttributes[t]},previousAttributes:function(){return i.clone(this._previousAttributes)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=this;var r=t.success;t.success=function(i){if(!e.set(e.parse(i,t),t))return false;if(r)r(e,i,t);e.trigger("sync",e,i,t)};q(this,t);return this.sync("read",this,t)},save:function(t,e,r){var s,n,a,o=this.attributes;if(t==null||typeof t==="object"){s=t;r=e}else{(s={})[t]=e}r=i.extend({validate:true},r);if(s&&!r.wait){if(!this.set(s,r))return false}else{if(!this._validate(s,r))return false}if(s&&r.wait){this.attributes=i.extend({},o,s)}if(r.parse===void 0)r.parse=true;var h=this;var u=r.success;r.success=function(t){h.attributes=o;var e=h.parse(t,r);if(r.wait)e=i.extend(s||{},e);if(i.isObject(e)&&!h.set(e,r)){return false}if(u)u(h,t,r);h.trigger("sync",h,t,r)};q(this,r);n=this.isNew()?"create":r.patch?"patch":"update";if(n==="patch")r.attrs=s;a=this.sync(n,this,r);if(s&&r.wait)this.attributes=o;return a},destroy:function(t){t=t?i.clone(t):{};var e=this;var r=t.success;var s=function(){e.trigger("destroy",e,e.collection,t)};t.success=function(i){if(t.wait||e.isNew())s();if(r)r(e,i,t);if(!e.isNew())e.trigger("sync",e,i,t)};if(this.isNew()){t.success();return false}q(this,t);var n=this.sync("delete",this,t);if(!t.wait)s();return n},url:function(){var t=i.result(this,"urlRoot")||i.result(this.collection,"url")||M();if(this.isNew())return t;return t.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(t,e){return t},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return this._validate({},i.extend(t||{},{validate:true}))},_validate:function(t,e){if(!e.validate||!this.validate)return true;t=i.extend({},this.attributes,t);var r=this.validationError=this.validate(t,e)||null;if(!r)return true;this.trigger("invalid",this,r,i.extend(e,{validationError:r}));return false}});var v=["keys","values","pairs","invert","pick","omit"];i.each(v,function(t){p.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.attributes);return i[t].apply(i,e)}});var g=e.Collection=function(t,e){e||(e={});if(e.model)this.model=e.model;if(e.comparator!==void 0)this.comparator=e.comparator;this._reset();this.initialize.apply(this,arguments);if(t)this.reset(t,i.extend({silent:true},e))};var m={add:true,remove:true,merge:true};var y={add:true,remove:false};i.extend(g.prototype,u,{model:p,initialize:function(){},toJSON:function(t){return this.map(function(e){return e.toJSON(t)})},sync:function(){return e.sync.apply(this,arguments)},add:function(t,e){return this.set(t,i.extend({merge:false},e,y))},remove:function(t,e){var r=!i.isArray(t);t=r?[t]:i.clone(t);e||(e={});var s,n,a,o;for(s=0,n=t.length;s<n;s++){o=t[s]=this.get(t[s]);if(!o)continue;delete this._byId[o.id];delete this._byId[o.cid];a=this.indexOf(o);this.models.splice(a,1);this.length--;if(!e.silent){e.index=a;o.trigger("remove",o,this,e)}this._removeReference(o,e)}return r?t[0]:t},set:function(t,e){e=i.defaults({},e,m);if(e.parse)t=this.parse(t,e);var r=!i.isArray(t);t=r?t?[t]:[]:i.clone(t);var s,n,a,o,h,u,l;var c=e.at;var f=this.model;var d=this.comparator&&c==null&&e.sort!==false;var v=i.isString(this.comparator)?this.comparator:null;var g=[],y=[],_={};var b=e.add,w=e.merge,x=e.remove;var E=!d&&b&&x?[]:false;for(s=0,n=t.length;s<n;s++){h=t[s]||{};if(h instanceof p){a=o=h}else{a=h[f.prototype.idAttribute||"id"]}if(u=this.get(a)){if(x)_[u.cid]=true;if(w){h=h===o?o.attributes:h;if(e.parse)h=u.parse(h,e);u.set(h,e);if(d&&!l&&u.hasChanged(v))l=true}t[s]=u}else if(b){o=t[s]=this._prepareModel(h,e);if(!o)continue;g.push(o);this._addReference(o,e)}o=u||o;if(E&&(o.isNew()||!_[o.id]))E.push(o);_[o.id]=true}if(x){for(s=0,n=this.length;s<n;++s){if(!_[(o=this.models[s]).cid])y.push(o)}if(y.length)this.remove(y,e)}if(g.length||E&&E.length){if(d)l=true;this.length+=g.length;if(c!=null){for(s=0,n=g.length;s<n;s++){this.models.splice(c+s,0,g[s])}}else{if(E)this.models.length=0;var k=E||g;for(s=0,n=k.length;s<n;s++){this.models.push(k[s])}}}if(l)this.sort({silent:true});if(!e.silent){for(s=0,n=g.length;s<n;s++){(o=g[s]).trigger("add",o,this,e)}if(l||E&&E.length)this.trigger("sort",this,e)}return r?t[0]:t},reset:function(t,e){e||(e={});for(var r=0,s=this.models.length;r<s;r++){this._removeReference(this.models[r],e)}e.previousModels=this.models;this._reset();t=this.add(t,i.extend({silent:true},e));if(!e.silent)this.trigger("reset",this,e);return t},push:function(t,e){return this.add(t,i.extend({at:this.length},e))},pop:function(t){var e=this.at(this.length-1);this.remove(e,t);return e},unshift:function(t,e){return this.add(t,i.extend({at:0},e))},shift:function(t){var e=this.at(0);this.remove(e,t);return e},slice:function(){return o.apply(this.models,arguments)},get:function(t){if(t==null)return void 0;return this._byId[t]||this._byId[t.id]||this._byId[t.cid]},at:function(t){return this.models[t]},where:function(t,e){if(i.isEmpty(t))return e?void 0:[];return this[e?"find":"filter"](function(e){for(var i in t){if(t[i]!==e.get(i))return false}return true})},findWhere:function(t){return this.where(t,true)},sort:function(t){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");t||(t={});if(i.isString(this.comparator)||this.comparator.length===1){this.models=this.sortBy(this.comparator,this)}else{this.models.sort(i.bind(this.comparator,this))}if(!t.silent)this.trigger("sort",this,t);return this},pluck:function(t){return i.invoke(this.models,"get",t)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=t.success;var r=this;t.success=function(i){var s=t.reset?"reset":"set";r[s](i,t);if(e)e(r,i,t);r.trigger("sync",r,i,t)};q(this,t);return this.sync("read",this,t)},create:function(t,e){e=e?i.clone(e):{};if(!(t=this._prepareModel(t,e)))return false;if(!e.wait)this.add(t,e);var r=this;var s=e.success;e.success=function(t,i){if(e.wait)r.add(t,e);if(s)s(t,i,e)};t.save(null,e);return t},parse:function(t,e){return t},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0;this.models=[];this._byId={}},_prepareModel:function(t,e){if(t instanceof p)return t;e=e?i.clone(e):{};e.collection=this;var r=new this.model(t,e);if(!r.validationError)return r;this.trigger("invalid",this,r.validationError,e);return false},_addReference:function(t,e){this._byId[t.cid]=t;if(t.id!=null)this._byId[t.id]=t;if(!t.collection)t.collection=this;t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){if(this===t.collection)delete t.collection;t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,i,r){if((t==="add"||t==="remove")&&i!==this)return;if(t==="destroy")this.remove(e,r);if(e&&t==="change:"+e.idAttribute){delete this._byId[e.previous(e.idAttribute)];if(e.id!=null)this._byId[e.id]=e}this.trigger.apply(this,arguments)}});var _=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];i.each(_,function(t){g.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.models);return i[t].apply(i,e)}});var b=["groupBy","countBy","sortBy","indexBy"];i.each(b,function(t){g.prototype[t]=function(e,r){var s=i.isFunction(e)?e:function(t){return t.get(e)};return i[t](this.models,s,r)}});var w=e.View=function(t){this.cid=i.uniqueId("view");t||(t={});i.extend(this,i.pick(t,E));this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()};var x=/^(\S+)\s*(.*)$/;var E=["model","collection","el","id","attributes","className","tagName","events"];i.extend(w.prototype,u,{tagName:"div",$:function(t){return this.$el.find(t)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();this.stopListening();return this},setElement:function(t,i){if(this.$el)this.undelegateEvents();this.$el=t instanceof e.$?t:e.$(t);this.el=this.$el[0];if(i!==false)this.delegateEvents();return this},delegateEvents:function(t){if(!(t||(t=i.result(this,"events"))))return this;this.undelegateEvents();for(var e in t){var r=t[e];if(!i.isFunction(r))r=this[t[e]];if(!r)continue;var s=e.match(x);var n=s[1],a=s[2];r=i.bind(r,this);n+=".delegateEvents"+this.cid;if(a===""){this.$el.on(n,r)}else{this.$el.on(n,a,r)}}return this},undelegateEvents:function(){this.$el.off(".delegateEvents"+this.cid);return this},_ensureElement:function(){if(!this.el){var t=i.extend({},i.result(this,"attributes"));if(this.id)t.id=i.result(this,"id");if(this.className)t["class"]=i.result(this,"className");var r=e.$("<"+i.result(this,"tagName")+">").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('<iframe src="javascript:0" tabindex="-1">');this.iframe=a.hide().appendTo("body")[0].contentWindow;this.navigate(r)}if(this._hasPushState){e.$(window).on("popstate",this.checkUrl)}else if(this._wantsHashChange&&"onhashchange"in window&&!n){e.$(window).on("hashchange",this.checkUrl)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}this.fragment=r;var o=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){this.fragment=this.getFragment(null,true);this.location.replace(this.root+"#"+this.fragment);return true}else if(this._hasPushState&&this.atRoot()&&o.hash){this.fragment=this.getHash().replace(R,"");this.history.replaceState({},document.title,this.root+this.fragment)}}if(!this.options.silent)return this.loadUrl()},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl);if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);N.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getFragment(this.getHash(this.iframe))}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){t=this.fragment=this.getFragment(t);return i.any(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!N.started)return false;if(!e||e===true)e={trigger:!!e};var i=this.root+(t=this.getFragment(t||""));t=t.replace(j,"");if(this.fragment===t)return;this.fragment=t;if(t===""&&i!=="/")i=i.slice(0,-1);if(this._hasPushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,i)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getFragment(this.getHash(this.iframe))){if(!e.replace)this.iframe.document.open().close();this._updateHash(this.iframe.location,t,e.replace)}}else{return this.location.assign(i)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new N;var U=function(t,e){var r=this;var s;if(t&&i.has(t,"constructor")){s=t.constructor}else{s=function(){return r.apply(this,arguments)}}i.extend(s,r,e);var n=function(){this.constructor=s};n.prototype=r.prototype;s.prototype=new n;if(t)i.extend(s.prototype,t);s.__super__=r.prototype;return s};p.extend=g.extend=$.extend=w.extend=N.extend=U;var M=function(){throw new Error('A "url" property or function must be specified')};var q=function(t,e){var i=e.error;e.error=function(r){if(i)i(t,r,e);t.trigger("error",t,r,e)}};return e});
+
+/*!
+ * jQuery Once v2.0.1 - http://github.com/robloach/jquery-once
+ * @license MIT, GPL-2.0
+ *   http://opensource.org/licenses/MIT
+ *   http://opensource.org/licenses/GPL-2.0
+ */
+(function(e){"use strict";if(typeof exports==="object"){e(require("jquery"))}else if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){"use strict";var n=function(e){e=e||"once";if(typeof e!=="string"){throw new Error("The jQuery Once id parameter must be a string")}return e};e.fn.once=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)!==true}).data(r,true)};e.fn.removeOnce=function(e){return this.findOnce(e).removeData("jquery-once-"+n(e))};e.fn.findOnce=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)===true})}});
+
+/**
+ * Base framework for Drupal-specific JavaScript, behaviors, and settings.
+ */
+window.Drupal = {behaviors: {}};
+
+// Class indicating that JS is enabled; used for styling purpose.
+document.documentElement.className += ' js';
+
+// Allow other JavaScript libraries to use $.
+if (window.jQuery) {
+  jQuery.noConflict();
+}
+
+// JavaScript should be made compatible with libraries other than jQuery by
+// wrapping it in an anonymous closure.
+(function (domready, Drupal, drupalSettings, drupalTranslations) {
+
+  "use strict";
+
+  /**
+   * Custom error type thrown after attach/detach if one or more behaviors failed.
+   *
+   * @param list
+   *   An array of errors thrown during attach/detach.
+   * @param event
+   *   A string containing either 'attach' or 'detach'.
+   */
+  function DrupalBehaviorError(list, event) {
+    this.name = 'DrupalBehaviorError';
+    this.event = event || 'attach';
+    this.list = list;
+    // Makes the list of errors readable.
+    var messageList = [];
+    messageList.push(this.event);
+    var il = this.list.length;
+    for (var i = 0; i < il; i++) {
+      messageList.push(this.list[i].behavior + ': ' + this.list[i].error.message);
+    }
+    this.message = messageList.join(' ; ');
+  }
+
+  DrupalBehaviorError.prototype = new Error();
+
+  /**
+   * Attach all registered behaviors to a page element.
+   *
+   * Behaviors are event-triggered actions that attach to page elements, enhancing
+   * default non-JavaScript UIs. Behaviors are registered in the Drupal.behaviors
+   * object using the method 'attach' and optionally also 'detach' as follows:
+   * @code
+   *    Drupal.behaviors.behaviorName = {
+   *      attach: function (context, settings) {
+   *        ...
+   *      },
+   *      detach: function (context, settings, trigger) {
+   *        ...
+   *      }
+   *    };
+   * @endcode
+   *
+   * Drupal.attachBehaviors is added below to the jQuery.ready event and therefore
+   * runs on initial page load. Developers implementing Ajax in their solutions
+   * should also call this function after new page content has been loaded,
+   * feeding in an element to be processed, in order to attach all behaviors to
+   * the new content.
+   *
+   * Behaviors should use
+   * @code
+   *   var elements = $(context).find(selector).once('behavior-name');
+   * @endcode
+   * to ensure the behavior is attached only once to a given element. (Doing so
+   * enables the reprocessing of given elements, which may be needed on occasion
+   * despite the ability to limit behavior attachment to a particular element.)
+   *
+   * @param context
+   *   An element to attach behaviors to. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none is given,
+   *   the global drupalSettings object is used.
+   */
+  Drupal.attachBehaviors = function (context, settings) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].attach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].attach(context, settings);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'attach');
+    }
+  };
+
+  // Attach all behaviors.
+  domready(function () { Drupal.attachBehaviors(document, drupalSettings); });
+
+  /**
+   * Detach registered behaviors from a page element.
+   *
+   * Developers implementing AHAH/Ajax in their solutions should call this
+   * function before page content is about to be removed, feeding in an element
+   * to be processed, in order to allow special behaviors to detach from the
+   * content.
+   *
+   * Such implementations should use .findOnce() and .removeOnce() to find
+   * elements with their corresponding Drupal.behaviors.behaviorName.attach
+   * implementation, i.e. .removeOnce('behaviorName'), to ensure the behavior is
+   * detached only from previously processed elements.
+   *
+   * @param context
+   *   An element to detach behaviors from. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none given, the
+   *   global drupalSettings object is used.
+   * @param trigger
+   *   A string containing what's causing the behaviors to be detached. The
+   *   possible triggers are:
+   *   - unload: (default) The context element is being removed from the DOM.
+   *   - move: The element is about to be moved within the DOM (for example,
+   *     during a tabledrag row swap). After the move is completed,
+   *     Drupal.attachBehaviors() is called, so that the behavior can undo
+   *     whatever it did in response to the move. Many behaviors won't need to
+   *     do anything simply in response to the element being moved, but because
+   *     IFRAME elements reload their "src" when being moved within the DOM,
+   *     behaviors bound to IFRAME elements (like WYSIWYG editors) may need to
+   *     take some action.
+   *   - serialize: When an Ajax form is submitted, this is called with the
+   *     form as the context. This provides every behavior within the form an
+   *     opportunity to ensure that the field elements have correct content
+   *     in them before the form is serialized. The canonical use-case is so
+   *     that WYSIWYG editors can update the hidden textarea to which they are
+   *     bound.
+   *
+   * @see Drupal.attachBehaviors
+   */
+  Drupal.detachBehaviors = function (context, settings, trigger) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    trigger = trigger || 'unload';
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].detach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].detach(context, settings, trigger);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'detach:' + trigger);
+    }
+  };
+
+  /**
+   * Helper to test document width for mobile configurations.
+   * @todo Temporary solution for the mobile initiative.
+   */
+  Drupal.checkWidthBreakpoint = function (width) {
+    width = width || drupalSettings.widthBreakpoint || 640;
+    return (document.documentElement.clientWidth > width);
+  };
+
+  /**
+   * Encode special characters in a plain-text string for display as HTML.
+   *
+   * @param str
+   *   The string to be encoded.
+   * @return
+   *   The encoded string.
+   * @ingroup sanitization
+   */
+  Drupal.checkPlain = function (str) {
+    str = str.toString()
+      .replace(/&/g, '&amp;')
+      .replace(/"/g, '&quot;')
+      .replace(/</g, '&lt;')
+      .replace(/>/g, '&gt;');
+    return str;
+  };
+
+  /**
+   * Replace placeholders with sanitized values in a string.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   An object of replacements pairs to make. Incidences of any key in this
+   *   array are replaced with the corresponding value. Based on the first
+   *   character of the key, the value is escaped and/or themed:
+   *    - !variable: inserted as is
+   *    - @variable: escape plain text to HTML (Drupal.checkPlain)
+   *    - %variable: escape text and theme as a placeholder for user-submitted
+   *      content (checkPlain + Drupal.theme('placeholder'))
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   *
+   * @see Drupal.t()
+   * @ingroup sanitization
+   */
+  Drupal.formatString = function (str, args) {
+    // Keep args intact.
+    var processedArgs = {};
+    // Transform arguments before inserting them.
+    for (var key in args) {
+      if (args.hasOwnProperty(key)) {
+        switch (key.charAt(0)) {
+          // Escaped only.
+          case '@':
+            processedArgs[key] = Drupal.checkPlain(args[key]);
+            break;
+          // Pass-through.
+          case '!':
+            processedArgs[key] = args[key];
+            break;
+          // Escaped and placeholder.
+          default:
+            processedArgs[key] = Drupal.theme('placeholder', args[key]);
+            break;
+        }
+      }
+    }
+
+    return Drupal.stringReplace(str, processedArgs, null);
+  };
+
+  /**
+   * Replace substring.
+   *
+   * The longest keys will be tried first. Once a substring has been replaced,
+   * its new value will not be searched again.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   Key-value pairs.
+   * @param {Array|null} keys
+   *   Array of keys from the "args".  Internal use only.
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   */
+  Drupal.stringReplace = function (str, args, keys) {
+    if (str.length === 0) {
+      return str;
+    }
+
+    // If the array of keys is not passed then collect the keys from the args.
+    if (!Array.isArray(keys)) {
+      keys = [];
+      for (var k in args) {
+        if (args.hasOwnProperty(k)) {
+          keys.push(k);
+        }
+      }
+
+      // Order the keys by the character length. The shortest one is the first.
+      keys.sort(function (a, b) { return a.length - b.length; });
+    }
+
+    if (keys.length === 0) {
+      return str;
+    }
+
+    // Take next longest one from the end.
+    var key = keys.pop();
+    var fragments = str.split(key);
+
+    if (keys.length) {
+      for (var i = 0; i < fragments.length; i++) {
+        // Process each fragment with a copy of remaining keys.
+        fragments[i] = Drupal.stringReplace(fragments[i], args, keys.slice(0));
+      }
+    }
+
+    return fragments.join(args[key]);
+  };
+
+  /**
+   * Translate strings to the page language or a given language.
+   *
+   * See the documentation of the server-side t() function for further details.
+   *
+   * @param str
+   *   A string containing the English string to translate.
+   * @param args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *
+   * @param options
+   *   - 'context' (defaults to the empty context): The context the source string
+   *     belongs to.
+   *
+   * @return
+   *   The translated string.
+   */
+  Drupal.t = function (str, args, options) {
+    options = options || {};
+    options.context = options.context || '';
+
+    // Fetch the localized version of the string.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.strings && drupalTranslations.strings[options.context] && drupalTranslations.strings[options.context][str]) {
+      str = drupalTranslations.strings[options.context][str];
+    }
+
+    if (args) {
+      str = Drupal.formatString(str, args);
+    }
+    return str;
+  };
+
+  /**
+   * Returns the URL to a Drupal page.
+   */
+  Drupal.url = function (path) {
+    return drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + path;
+  };
+
+  /**
+   * Format a string containing a count of items.
+   *
+   * This function ensures that the string is pluralized correctly. Since
+   * Drupal.t() is called by this function, make sure not to pass
+   * already-localized strings to it.
+   *
+   * See the documentation of the server-side
+   * \Drupal\Core\StringTranslation\TranslationInterface::formatPlural()
+   * function for more details.
+   *
+   * @param {Number} count
+   *   The item count to display.
+   * @param {String} singular
+   *   The string for the singular case. Please make sure it is clear this is
+   *   singular, to ease translation (e.g. use "1 new comment" instead of "1
+   *   new"). Do not use @count in the singular string.
+   * @param {String} plural
+   *   The string for the plural case. Please make sure it is clear this is
+   *   plural, to ease translation. Use @count in place of the item count, as in
+   *   "@count new comments".
+   * @param {Object} args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *   Note that you do not need to include @count in this array.
+   *   This replacement is done automatically for the plural case.
+   * @param {Object} options
+   *   The options to pass to the Drupal.t() function.
+   *
+   * @return {String}
+   *   A translated string.
+   */
+  Drupal.formatPlural = function (count, singular, plural, args, options) {
+    args = args || {};
+    args['@count'] = count;
+
+    var pluralDelimiter = drupalSettings.pluralDelimiter;
+    var translations = Drupal.t(singular + pluralDelimiter + plural, args, options).split(pluralDelimiter);
+    var index = 0;
+
+    // Determine the index of the plural form.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.pluralFormula) {
+      index = count in drupalTranslations.pluralFormula ? drupalTranslations.pluralFormula[count] : drupalTranslations.pluralFormula['default'];
+    }
+    else if (args['@count'] !== 1) {
+      index = 1;
+    }
+
+    return translations[index];
+  };
+
+  /**
+   * Encodes a Drupal path for use in a URL.
+   *
+   * For aesthetic reasons slashes are not escaped.
+   */
+  Drupal.encodePath = function (item) {
+    return window.encodeURIComponent(item).replace(/%2F/g, '/');
+  };
+
+  /**
+   * Generate the themed representation of a Drupal object.
+   *
+   * All requests for themed output must go through this function. It examines
+   * the request and routes it to the appropriate theme function. If the current
+   * theme does not provide an override function, the generic theme function is
+   * called.
+   *
+   * For example, to retrieve the HTML for text that should be emphasized and
+   * displayed as a placeholder inside a sentence, call
+   * Drupal.theme('placeholder', text).
+   *
+   * @param func
+   *   The name of the theme function to call.
+   * @param ...
+   *   Additional arguments to pass along to the theme function.
+   * @return
+   *   Any data the theme function returns. This could be a plain HTML string,
+   *   but also a complex object.
+   */
+  Drupal.theme = function (func) {
+    var args = Array.prototype.slice.apply(arguments, [1]);
+    if (func in Drupal.theme) {
+      return Drupal.theme[func].apply(this, args);
+    }
+  };
+
+  /**
+   * Formats text for emphasized display in a placeholder inside a sentence.
+   *
+   * @param str
+   *   The text to format (plain-text).
+   * @return
+   *   The formatted text (html).
+   */
+  Drupal.theme.placeholder = function (str) {
+    return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>';
+  };
+
+})(domready, Drupal, window.drupalSettings, window.drupalTranslations);
+;
+/*!
+ * jQuery UI Core 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,r){var i,s,o,u=t.nodeName.toLowerCase();return"area"===u?(i=t.parentNode,s=i.name,!t.href||!s||i.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap='#"+s+"']")[0],!!o&&n(o))):(/^(input|select|textarea|button|object)$/.test(u)?!t.disabled:"a"===u?t.href||r:r)&&n(t)}function n(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return e.css(this,"visibility")==="hidden"}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var n=this.css("position"),r=n==="absolute",i=t?/(auto|scroll|hidden)/:/(auto|scroll)/,s=this.parents().filter(function(){var t=e(this);return r&&t.css("position")==="static"?!1:i.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return n==="fixed"||!s.length?e(this[0].ownerDocument||document):s},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(n){return t(n,!isNaN(e.attr(n,"tabindex")))},tabbable:function(n){var r=e.attr(n,"tabindex"),i=isNaN(r);return(i||r>=0)&&t(n,!i)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,n){function o(t,n,i,s){return e.each(r,function(){n-=parseFloat(e.css(t,"padding"+this))||0,i&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var r=n==="Width"?["Left","Right"]:["Top","Bottom"],i=n.toLowerCase(),s={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+n]=function(t){return t===undefined?s["inner"+n].call(this):this.each(function(){e(this).css(i,o(this,t)+"px")})},e.fn["outer"+n]=function(t,r){return typeof t!="number"?s["outer"+n].call(this,t):this.each(function(){e(this).css(i,o(this,t,!0,r)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(n,r){return typeof n=="number"?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),r&&r.call(t)},n)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(t!==undefined)return this.css("zIndex",t);if(this.length){var n=e(this[0]),r,i;while(n.length&&n[0]!==document){r=n.css("position");if(r==="absolute"||r==="relative"||r==="fixed"){i=parseInt(n.css("zIndex"),10);if(!isNaN(i)&&i!==0)return i}n=n.parent()}}return 0}}),e.ui.plugin={add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n,r){var i,s=e.plugins[t];if(!s)return;if(!r&&(!e.element[0].parentNode||e.element[0].parentNode.nodeType===11))return;for(i=0;i<s.length;i++)e.options[s[i][0]]&&s[i][1].apply(e.element,n)}}});;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module.
+ */
+
+(function ($, Drupal, drupalSettings, _, Backbone, JSON, storage) {
+
+  "use strict";
+
+  var options = $.extend(drupalSettings.contextual,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        open: Drupal.t('Open'),
+        close: Drupal.t('Close')
+      }
+    }
+  );
+
+  // Clear the cached contextual links whenever the current user's set of
+  // permissions changes.
+  var cachedPermissionsHash = storage.getItem('Drupal.contextual.permissionsHash');
+  var permissionsHash = drupalSettings.user.permissionsHash;
+  if (cachedPermissionsHash !== permissionsHash) {
+    if (typeof permissionsHash === 'string') {
+      _.chain(storage).keys().each(function (key) {
+        if (key.substring(0, 18) === 'Drupal.contextual.') {
+          storage.removeItem(key);
+        }
+      });
+    }
+    storage.setItem('Drupal.contextual.permissionsHash', permissionsHash);
+  }
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   * @param string html
+   *   The server-side rendered HTML for this contextual link.
+   */
+  function initContextual($contextual, html) {
+    var $region = $contextual.closest('.contextual-region');
+    var contextual = Drupal.contextual;
+
+    $contextual
+      // Update the placeholder to contain its rendered contextual links.
+      .html(html)
+      // Use the placeholder as a wrapper with a specific class to provide
+      // positioning and behavior attachment context.
+      .addClass('contextual')
+      // Ensure a trigger element exists before the actual contextual links.
+      .prepend(Drupal.theme('contextualTrigger'));
+
+    // Set the destination parameter on each of the contextual links.
+    var destination = 'destination=' + Drupal.encodePath(drupalSettings.path.currentPath);
+    $contextual.find('.contextual-links a').each(function () {
+      var url = this.getAttribute('href');
+      var glue = (url.indexOf('?') === -1) ? '?' : '&';
+      this.setAttribute('href', url + glue + destination);
+    });
+
+    // Create a model and the appropriate views.
+    var model = new contextual.StateModel({
+      title: $region.find('h2').eq(0).text().trim()
+    });
+    var viewOptions = $.extend({el: $contextual, model: model}, options);
+    contextual.views.push({
+      visual: new contextual.VisualView(viewOptions),
+      aural: new contextual.AuralView(viewOptions),
+      keyboard: new contextual.KeyboardView(viewOptions)
+    });
+    contextual.regionViews.push(new contextual.RegionView(
+      $.extend({el: $region, model: model}, options))
+    );
+
+    // Add the model to the collection. This must happen after the views have been
+    // associated with it, otherwise collection change event handlers can't
+    // trigger the model change event handler in its views.
+    contextual.collection.add(model);
+
+    // Let other JavaScript react to the adding of a new contextual link.
+    $(document).trigger('drupalContextualLinkAdded', {
+      $el: $contextual,
+      $region: $region,
+      model: model
+    });
+
+    // Fix visual collisions between contextual link triggers.
+    adjustIfNestedAndOverlapping($contextual);
+  }
+
+  /**
+   * Determines if a contextual link is nested & overlapping, if so: adjusts it.
+   *
+   * This only deals with two levels of nesting; deeper levels are not touched.
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   */
+  function adjustIfNestedAndOverlapping($contextual) {
+    var $contextuals = $contextual
+      // @todo confirm that .closest() is not sufficient
+      .parents('.contextual-region').eq(-1)
+      .find('.contextual');
+
+    // Early-return when there's no nesting.
+    if ($contextuals.length === 1) {
+      return;
+    }
+
+    // If the two contextual links overlap, then we move the second one.
+    var firstTop = $contextuals.eq(0).offset().top;
+    var secondTop = $contextuals.eq(1).offset().top;
+    if (firstTop === secondTop) {
+      var $nestedContextual = $contextuals.eq(1);
+
+      // Retrieve height of nested contextual link.
+      var height = 0;
+      var $trigger = $nestedContextual.find('.trigger');
+      // Elements with the .visually-hidden class have no dimensions, so this
+      // class must be temporarily removed to the calculate the height.
+      $trigger.removeClass('visually-hidden');
+      height = $nestedContextual.height();
+      $trigger.addClass('visually-hidden');
+
+      // Adjust nested contextual link's position.
+      $nestedContextual.css({top: $nestedContextual.position().top + height});
+    }
+  }
+
+  /**
+   * Attaches outline behavior for regions associated with contextual links.
+   *
+   * Events
+   *   Contextual triggers an event that can be used by other scripts.
+   *   - drupalContextualLinkAdded: Triggered when a contextual link is added.
+   */
+  Drupal.behaviors.contextual = {
+    attach: function (context) {
+      var $context = $(context);
+
+      // Find all contextual links placeholders, if any.
+      var $placeholders = $context.find('[data-contextual-id]').once('contextual-render');
+      if ($placeholders.length === 0) {
+        return;
+      }
+
+      // Collect the IDs for all contextual links placeholders.
+      var ids = [];
+      $placeholders.each(function () {
+        ids.push($(this).attr('data-contextual-id'));
+      });
+
+      // Update all contextual links placeholders whose HTML is cached.
+      var uncachedIDs = _.filter(ids, function initIfCached(contextualID) {
+        var html = storage.getItem('Drupal.contextual.' + contextualID);
+        if (html !== null) {
+          // Initialize after the current execution cycle, to make the AJAX
+          // request for retrieving the uncached contextual links as soon as
+          // possible, but also to ensure that other Drupal behaviors have had the
+          // chance to set up an event listener on the Backbone collection
+          // Drupal.contextual.collection.
+          window.setTimeout(function () {
+            initContextual($context.find('[data-contextual-id="' + contextualID + '"]'), html);
+          });
+          return false;
+        }
+        return true;
+      });
+
+      // Perform an AJAX request to let the server render the contextual links for
+      // each of the placeholders.
+      if (uncachedIDs.length > 0) {
+        $.ajax({
+          url: Drupal.url('contextual/render'),
+          type: 'POST',
+          data: {'ids[]': uncachedIDs},
+          dataType: 'json',
+          success: function (results) {
+            _.each(results, function (html, contextualID) {
+              // Store the metadata.
+              storage.setItem('Drupal.contextual.' + contextualID, html);
+              // If the rendered contextual links are empty, then the current user
+              // does not have permission to access the associated links: don't
+              // render anything.
+              if (html.length > 0) {
+                // Update the placeholders to contain its rendered contextual links.
+                // Usually there will only be one placeholder, but it's possible for
+                // multiple identical placeholders exist on the page (probably
+                // because the same content appears more than once).
+                $placeholders = $context.find('[data-contextual-id="' + contextualID + '"]');
+
+                // Initialize the contextual links.
+                for (var i = 0; i < $placeholders.length; i++) {
+                  initContextual($placeholders.eq(i), html);
+                }
+              }
+            });
+          }
+        });
+      }
+    }
+  };
+
+  Drupal.contextual = {
+    // The Drupal.contextual.View instances associated with each list element of
+    // contextual links.
+    views: [],
+
+    // The Drupal.contextual.RegionView instances associated with each contextual
+    // region element.
+    regionViews: []
+  };
+
+  // A Backbone.Collection of Drupal.contextual.StateModel instances.
+  Drupal.contextual.collection = new Backbone.Collection([], {model: Drupal.contextual.StateModel});
+
+  /**
+   * A trigger is an interactive element often bound to a click handler.
+   *
+   * @return String
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.contextualTrigger = function () {
+    return '<button class="trigger visually-hidden focusable" type="button"></button>';
+  };
+
+})(jQuery, Drupal, drupalSettings, _, Backbone, window.JSON, window.sessionStorage);
+;
+/**
+ * @file
+ * A Backbone Model for the state of a contextual link's trigger, list & region.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of a contextual link's trigger, list & region.
+   */
+  Drupal.contextual.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // The title of the entity to which these contextual links apply.
+      title: '',
+      // Represents if the contextual region is being hovered.
+      regionIsHovered: false,
+      // Represents if the contextual trigger or options have focus.
+      hasFocus: false,
+      // Represents if the contextual options for an entity are available to
+      // be selected (i.e. whether the list of options is visible).
+      isOpen: false,
+      // When the model is locked, the trigger remains active.
+      isLocked: false
+    },
+
+    /**
+     * Opens or closes the contextual link.
+     *
+     * If it is opened, then also give focus.
+     */
+    toggleOpen: function () {
+      var newIsOpen = !this.get('isOpen');
+      this.set('isOpen', newIsOpen);
+      if (newIsOpen) {
+        this.focus();
+      }
+      return this;
+    },
+
+    /**
+     * Closes this contextual link.
+     *
+     * Does not call blur() because we want to allow a contextual link to have
+     * focus, yet be closed for example when hovering.
+     */
+    close: function () {
+      this.set('isOpen', false);
+      return this;
+    },
+
+    /**
+     * Gives focus to this contextual link.
+     *
+     * Also closes + removes focus from every other contextual link.
+     */
+    focus: function () {
+      this.set('hasFocus', true);
+      var cid = this.cid;
+      this.collection.each(function (model) {
+        if (model.cid !== cid) {
+          model.close().blur();
+        }
+      });
+      return this;
+    },
+
+    /**
+     * Removes focus from this contextual link, unless it is open.
+     */
+    blur: function () {
+      if (!this.get('isOpen')) {
+        this.set('hasFocus', false);
+      }
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of a contextual link (i.e. screen reader support).
+   */
+  Drupal.contextual.AuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+
+      // Use aria-role form so that the number of items in the list is spoken.
+      this.$el.attr('role', 'form');
+
+      // Initial render.
+      this.render();
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+
+      // Set the hidden property of the links.
+      this.$el.find('.contextual-links')
+        .prop('hidden', !isOpen);
+
+      // Update the view of the trigger.
+      this.$el.find('.trigger')
+        .text(Drupal.t('@action @title configuration options', {
+          '@action': (!isOpen) ? this.options.strings.open : this.options.strings.close,
+          '@title': this.model.get('title')
+        }))
+        .attr('aria-pressed', isOpen);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides keyboard interaction for a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Provides keyboard interaction for a contextual link.
+   */
+  Drupal.contextual.KeyboardView = Backbone.View.extend({
+    events: {
+      'focus .trigger': 'focus',
+      'focus .contextual-links a': 'focus',
+      'blur .trigger': function () { this.model.blur(); },
+      'blur .contextual-links a': function () {
+        // Set up a timeout to allow a user to tab between the trigger and the
+        // contextual links without the menu dismissing.
+        var that = this;
+        this.timer = window.setTimeout(function () {
+          that.model.close().blur();
+        }, 150);
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      // The timer is used to create a delay before dismissing the contextual
+      // links on blur. This is only necessary when keyboard users tab into
+      // contextual links without edit mode (i.e. without TabbingManager).
+      // That means that if we decide to disable tabbing of contextual links
+      // without edit mode, all this timer logic can go away.
+      this.timer = NaN;
+    },
+
+    /**
+     * Sets focus on the model; Clears the timer that dismisses the links.
+     */
+    focus: function () {
+      // Clear the timeout that might have been set by blurring a link.
+      window.clearTimeout(this.timer);
+      this.model.focus();
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that renders the visual view of a contextual region element.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual region element.
+   */
+  Drupal.contextual.RegionView = Backbone.View.extend({
+
+    events: function () {
+      var mapping = {
+        mouseenter: function () { this.model.set('regionIsHovered', true); },
+        mouseleave: function () {
+          this.model.close().blur().set('regionIsHovered', false);
+        }
+      };
+      // We don't want mouse hover events on touch.
+      if (Modernizr.touch) {
+        mapping = {};
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:hasFocus', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.$el.toggleClass('focus', this.model.get('hasFocus'));
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of a contextual link.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual link. Listens to mouse & touch.
+   */
+  Drupal.contextual.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+      var mapping = {
+        'click .trigger': function () { this.model.toggleOpen(); },
+        'touchend .trigger': touchEndToClick,
+        'click .contextual-links a': function () { this.model.close().blur(); },
+        'touchend .contextual-links a': touchEndToClick
+      };
+      // We only want mouse hover events on non-touch.
+      if (!Modernizr.touch) {
+        mapping.mouseenter = function () { this.model.focus(); };
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+      // The trigger should be visible when:
+      //  - the mouse hovered over the region,
+      //  - the trigger is locked,
+      //  - and for as long as the contextual menu is open.
+      var isVisible = this.model.get('isLocked') || this.model.get('regionIsHovered') || isOpen;
+
+      this.$el
+        // The open state determines if the links are visible.
+        .toggleClass('open', isOpen)
+        // Update the visibility of the trigger.
+        .find('.trigger').toggleClass('visually-hidden', !isVisible);
+
+      // Nested contextual region handling: hide any nested contextual triggers.
+      if ('isOpen' in this.model.changed) {
+        this.$el.closest('.contextual-region')
+          .find('.contextual .trigger:not(:first)')
+          .toggle(!isOpen);
+      }
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+/**
+ * @file
+ * Attaches behaviors for Drupal's active link marking.
+ */
+
+(function (Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Append is-active class.
+   *
+   * The link is only active if its path corresponds to the current path, the
+   * language of the linked path is equal to the current language, and if the
+   * query parameters of the link equal those of the current request, since the
+   * same request with different query parameters may yield a different page
+   * (e.g. pagers, exposed View filters).
+   *
+   * Does not discriminate based on element type, so allows you to set the
+   * is-active class on any element: a, li…
+   */
+  Drupal.behaviors.activeLinks = {
+    attach: function (context) {
+      // Start by finding all potentially active links.
+      var path = drupalSettings.path;
+      var queryString = JSON.stringify(path.currentQuery);
+      var querySelector = path.currentQuery ? "[data-drupal-link-query='" + queryString + "']" : ':not([data-drupal-link-query])';
+      var originalSelectors = ['[data-drupal-link-system-path="' + path.currentPath + '"]'];
+      var selectors;
+
+      // If this is the front page, we have to check for the <front> path as well.
+      if (path.isFront) {
+        originalSelectors.push('[data-drupal-link-system-path="<front>"]');
+      }
+
+      // Add language filtering.
+      selectors = [].concat(
+        // Links without any hreflang attributes (most of them).
+        originalSelectors.map(function (selector) { return selector + ':not([hreflang])'; }),
+        // Links with hreflang equals to the current language.
+        originalSelectors.map(function (selector) { return selector + '[hreflang="' + path.currentLanguage + '"]'; })
+      );
+
+      // Add query string selector for pagers, exposed filters.
+      selectors = selectors.map(function (current) { return current + querySelector; });
+
+      // Query the DOM.
+      var activeLinks = context.querySelectorAll(selectors.join(','));
+      var il = activeLinks.length;
+      for (var i = 0; i < il; i++) {
+        activeLinks[i].classList.add('is-active');
+      }
+    },
+    detach: function (context, settings, trigger) {
+      if (trigger === 'unload') {
+        var activeLinks = context.querySelectorAll('[data-drupal-link-system-path].is-active');
+        var il = activeLinks.length;
+        for (var i = 0; i < il; i++) {
+          activeLinks[i].classList.remove('is-active');
+        }
+      }
+    }
+  };
+
+})(Drupal, drupalSettings);
+;
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Theme function for the progress bar.
+   *
+   * @return
+   *   The HTML for the progress bar.
+   */
+  Drupal.theme.progressBar = function (id) {
+    return '<div id="' + id + '" class="progress" aria-live="polite">' +
+      '<div class="progress__label">&nbsp;</div>' +
+      '<div class="progress__track"><div class="progress__bar"></div></div>' +
+      '<div class="progress__percentage"></div>' +
+      '<div class="progress__description">&nbsp;</div>' +
+      '</div>';
+  };
+
+  /**
+   * A progressbar object. Initialized with the given id. Must be inserted into
+   * the DOM afterwards through progressBar.element.
+   *
+   * method is the function which will perform the HTTP request to get the
+   * progress bar state. Either "GET" or "POST".
+   *
+   * e.g. pb = new Drupal.ProgressBar('myProgressBar');
+   *      some_element.appendChild(pb.element);
+   */
+  Drupal.ProgressBar = function (id, updateCallback, method, errorCallback) {
+    this.id = id;
+    this.method = method || 'GET';
+    this.updateCallback = updateCallback;
+    this.errorCallback = errorCallback;
+
+    // The WAI-ARIA setting aria-live="polite" will announce changes after users
+    // have completed their current activity and not interrupt the screen reader.
+    this.element = $(Drupal.theme('progressBar', id));
+  };
+
+  $.extend(Drupal.ProgressBar.prototype, {
+    /**
+     * Set the percentage and status message for the progressbar.
+     */
+    setProgress: function (percentage, message, label) {
+      if (percentage >= 0 && percentage <= 100) {
+        $(this.element).find('div.progress__bar').css('width', percentage + '%');
+        $(this.element).find('div.progress__percentage').html(percentage + '%');
+      }
+      $('div.progress__description', this.element).html(message);
+      $('div.progress__label', this.element).html(label);
+      if (this.updateCallback) {
+        this.updateCallback(percentage, message, this);
+      }
+    },
+
+    /**
+     * Start monitoring progress via Ajax.
+     */
+    startMonitoring: function (uri, delay) {
+      this.delay = delay;
+      this.uri = uri;
+      this.sendPing();
+    },
+
+    /**
+     * Stop monitoring progress via Ajax.
+     */
+    stopMonitoring: function () {
+      clearTimeout(this.timer);
+      // This allows monitoring to be stopped from within the callback.
+      this.uri = null;
+    },
+
+    /**
+     * Request progress data from server.
+     */
+    sendPing: function () {
+      if (this.timer) {
+        clearTimeout(this.timer);
+      }
+      if (this.uri) {
+        var pb = this;
+        // When doing a post request, you need non-null data. Otherwise a
+        // HTTP 411 or HTTP 406 (with Apache mod_security) error may result.
+        $.ajax({
+          type: this.method,
+          url: this.uri,
+          data: '',
+          dataType: 'json',
+          success: function (progress) {
+            // Display errors.
+            if (progress.status === 0) {
+              pb.displayError(progress.data);
+              return;
+            }
+            // Update display.
+            pb.setProgress(progress.percentage, progress.message, progress.label);
+            // Schedule next timer.
+            pb.timer = setTimeout(function () { pb.sendPing(); }, pb.delay);
+          },
+          error: function (xmlhttp) {
+            var e = new Drupal.AjaxError(xmlhttp, pb.uri);
+            pb.displayError('<pre>' + e.message + '</pre>');
+          }
+        });
+      }
+    },
+
+    /**
+     * Display errors on the page.
+     */
+    displayError: function (string) {
+      var error = $('<div class="messages messages--error"></div>').html(string);
+      $(this.element).before(error).hide();
+
+      if (this.errorCallback) {
+        this.errorCallback(this);
+      }
+    }
+  });
+
+})(jQuery, Drupal);
+;
+(function ($, window, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Attaches the Ajax behavior to each Ajax form element.
+   */
+  Drupal.behaviors.AJAX = {
+    attach: function (context, settings) {
+
+      function loadAjaxBehavior(base) {
+        var element_settings = settings.ajax[base];
+        if (typeof element_settings.selector === 'undefined') {
+          element_settings.selector = '#' + base;
+        }
+        $(element_settings.selector).once('drupal-ajax').each(function () {
+          element_settings.element = this;
+          element_settings.base = base;
+          Drupal.ajax(element_settings);
+        });
+      }
+
+      // Load all Ajax behaviors specified in the settings.
+      for (var base in settings.ajax) {
+        if (settings.ajax.hasOwnProperty(base)) {
+          loadAjaxBehavior(base);
+        }
+      }
+
+      // Bind Ajax behaviors to all items showing the class.
+      $('.use-ajax').once('ajax').each(function () {
+        var element_settings = {};
+        // Clicked links look better with the throbber than the progress bar.
+        element_settings.progress = {'type': 'throbber'};
+
+        // For anchor tags, these will go to the target of the anchor rather
+        // than the usual location.
+        if ($(this).attr('href')) {
+          element_settings.url = $(this).attr('href');
+          element_settings.event = 'click';
+        }
+        element_settings.dialogType = $(this).data('dialog-type');
+        element_settings.dialog = $(this).data('dialog-options');
+        element_settings.base = $(this).attr('id');
+        element_settings.element = this;
+        Drupal.ajax(element_settings);
+      });
+
+      // This class means to submit the form to the action using Ajax.
+      $('.use-ajax-submit').once('ajax').each(function () {
+        var element_settings = {};
+
+        // Ajax submits specified in this manner automatically submit to the
+        // normal form action.
+        element_settings.url = $(this.form).attr('action');
+        // Form submit button clicks need to tell the form what was clicked so
+        // it gets passed in the POST request.
+        element_settings.setClick = true;
+        // Form buttons use the 'click' event rather than mousedown.
+        element_settings.event = 'click';
+        // Clicked form buttons look better with the throbber than the progress bar.
+        element_settings.progress = {'type': 'throbber'};
+        element_settings.base = $(this).attr('id');
+        element_settings.element = this;
+
+        Drupal.ajax(element_settings);
+      });
+    }
+  };
+
+  /**
+   * Extends Error to provide handling for Errors in Ajax.
+   */
+  Drupal.AjaxError = function (xmlhttp, uri) {
+
+    var statusCode;
+    var statusText;
+    var pathText;
+    var responseText;
+    var readyStateText;
+    if (xmlhttp.status) {
+      statusCode = "\n" + Drupal.t("An AJAX HTTP error occurred.") + "\n" + Drupal.t("HTTP Result Code: !status", {'!status': xmlhttp.status});
+    }
+    else {
+      statusCode = "\n" + Drupal.t("An AJAX HTTP request terminated abnormally.");
+    }
+    statusCode += "\n" + Drupal.t("Debugging information follows.");
+    pathText = "\n" + Drupal.t("Path: !uri", {'!uri': uri});
+    statusText = '';
+    // In some cases, when statusCode === 0, xmlhttp.statusText may not be defined.
+    // Unfortunately, testing for it with typeof, etc, doesn't seem to catch that
+    // and the test causes an exception. So we need to catch the exception here.
+    try {
+      statusText = "\n" + Drupal.t("StatusText: !statusText", {'!statusText': $.trim(xmlhttp.statusText)});
+    }
+    catch (e) {
+      // empty
+    }
+
+    responseText = '';
+    // Again, we don't have a way to know for sure whether accessing
+    // xmlhttp.responseText is going to throw an exception. So we'll catch it.
+    try {
+      responseText = "\n" + Drupal.t("ResponseText: !responseText", {'!responseText': $.trim(xmlhttp.responseText)});
+    }
+    catch (e) {
+      // Empty.
+    }
+
+    // Make the responseText more readable by stripping HTML tags and newlines.
+    responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, "");
+    responseText = responseText.replace(/[\n]+\s+/g, "\n");
+
+    // We don't need readyState except for status == 0.
+    readyStateText = xmlhttp.status === 0 ? ("\n" + Drupal.t("ReadyState: !readyState", {'!readyState': xmlhttp.readyState})) : "";
+
+    this.message = statusCode + pathText + statusText + responseText + readyStateText;
+    this.name = 'AjaxError';
+  };
+
+  Drupal.AjaxError.prototype = new Error();
+  Drupal.AjaxError.prototype.constructor = Drupal.AjaxError;
+
+  /**
+   * Provides Ajax page updating via jQuery $.ajax.
+   *
+   * This function is designed to improve developer experience by wrapping the
+   * initialization of Drupal.Ajax objects and storing all created object in the
+   * Drupal.ajax.instances array.
+   *
+   * @example
+   * Drupal.behaviors.myCustomAJAXStuff = {
+   *   attach: function (context, settings) {
+   *
+   *     var ajaxSettings = {
+   *       url: 'my/url/path',
+   *       // If the old version of Drupal.ajax() needs to be used those
+   *       // properties can be added
+   *       base: 'myBase',
+   *       element: $(context).find('.someElement')
+   *     };
+   *
+   *     var myAjaxObject = Drupal.ajax(ajaxSettings);
+   *
+   *     // Declare a new Ajax command specifically for this Ajax object.
+   *     myAjaxObject.commands.insert = function (ajax, response, status) {
+   *       $('#my-wrapper').append(response.data);
+   *       alert('New content was appended to #my-wrapper');
+   *     };
+   *
+   *     // This command will remove this Ajax object from the page.
+   *     myAjaxObject.commands.destroyObject = function (ajax, response, status) {
+   *       Drupal.ajax.instances[this.instanceIndex] = null;
+   *     };
+   *
+   *     // Programmatically trigger the Ajax request.
+   *     myAjaxObject.execute();
+   *   }
+   * };
+   *
+   * @see Drupal.AjaxCommands
+   *
+   * @param {object} settings
+   *   The settings object passed to Drupal.Ajax constructor.
+   * @param {string} [settings.base]
+   *   Base is passed to Drupal.Ajax constructor as the 'base' parameter.
+   * @param {HTMLElement} [settings.element]
+   *   Element parameter of Drupal.Ajax constructor, element on which
+   *   event listeners will be bound.
+   *
+   * @return {Drupal.Ajax}
+   */
+  Drupal.ajax = function (settings) {
+    if (arguments.length !== 1) {
+      throw new Error('Drupal.ajax() function must be called with one configuration object only');
+    }
+    // Map those config keys to variables for the old Drupal.ajax function.
+    var base = settings.base || false;
+    var element = settings.element || false;
+    delete settings.base;
+    delete settings.element;
+
+    // By default do not display progress for ajax calls without an element.
+    if (!settings.progress && !element) {
+      settings.progress = false;
+    }
+
+    var ajax = new Drupal.Ajax(base, element, settings);
+    ajax.instanceIndex = Drupal.ajax.instances.length;
+    Drupal.ajax.instances.push(ajax);
+
+    return ajax;
+  };
+
+  /**
+   * Contains all created Ajax objects.
+   *
+   * @type {Array}
+   */
+  Drupal.ajax.instances = [];
+
+  /**
+   * Ajax constructor.
+   *
+   * The Ajax request returns an array of commands encoded in JSON, which is
+   * then executed to make any changes that are necessary to the page.
+   *
+   * Drupal uses this file to enhance form elements with #ajax['url'] and
+   * #ajax['wrapper'] properties. If set, this file will automatically be
+   * included to provide Ajax capabilities.
+   *
+   * @constructor
+   *
+   * @param {string} [base]
+   *   Base parameter of Drupal.Ajax constructor
+   * @param {HTMLElement} [element]
+   *   Element parameter of Drupal.Ajax constructor, element on which
+   *   event listeners will be bound.
+   * @param {object} element_settings
+   * @param {string} element_settings.url
+   *   Target of the Ajax request.
+   * @param {string} [element_settings.event]
+   *   Event bound to settings.element which will trigger the Ajax request.
+   * @param {string} [element_settings.method]
+   *   Name of the jQuery method used to insert new content in the targeted
+   *   element.
+   */
+  Drupal.Ajax = function (base, element, element_settings) {
+    var defaults = {
+      event: element ? 'mousedown' : null,
+      keypress: true,
+      selector: base ? '#' + base : null,
+      effect: 'none',
+      speed: 'none',
+      method: 'replaceWith',
+      progress: {
+        type: 'throbber',
+        message: Drupal.t('Please wait...')
+      },
+      submit: {
+        'js': true
+      }
+    };
+
+    $.extend(this, defaults, element_settings);
+
+    this.commands = new Drupal.AjaxCommands();
+    this.instanceIndex = false;
+
+    // @todo Remove this after refactoring the PHP code to:
+    //   - Call this 'selector'.
+    //   - Include the '#' for ID-based selectors.
+    //   - Support non-ID-based selectors.
+    if (this.wrapper) {
+      this.wrapper = '#' + this.wrapper;
+    }
+
+    this.element = element;
+    this.element_settings = element_settings;
+
+    // If there isn't a form, jQuery.ajax() will be used instead, allowing us to
+    // bind Ajax to links as well.
+    if (this.element && this.element.form) {
+      this.$form = $(this.element.form);
+    }
+
+    // If no Ajax callback URL was given, use the link href or form action.
+    if (!this.url) {
+      var $element = $(this.element);
+      if ($element.is('a')) {
+        this.url = $element.attr('href');
+      }
+      else if (this.element && element.form) {
+        this.url = this.$form.attr('action');
+
+        // @todo If there's a file input on this form, then jQuery will submit the
+        //   Ajax response with a hidden Iframe rather than the XHR object. If the
+        //   response to the submission is an HTTP redirect, then the Iframe will
+        //   follow it, but the server won't content negotiate it correctly,
+        //   because there won't be an ajax_iframe_upload POST variable. Until we
+        //   figure out a work around to this problem, we prevent Ajax-enabling
+        //   elements that submit to the same URL as the form when there's a file
+        //   input. For example, this means the Delete button on the edit form of
+        //   an Article node doesn't open its confirmation form in a dialog.
+        if (this.$form.find(':file').length) {
+          return;
+        }
+      }
+    }
+
+    // Replacing 'nojs' with 'ajax' in the URL allows for an easy method to let
+    // the server detect when it needs to degrade gracefully.
+    // There are four scenarios to check for:
+    // 1. /nojs/
+    // 2. /nojs$ - The end of a URL string.
+    // 3. /nojs? - Followed by a query (e.g. path/nojs?destination=foobar).
+    // 4. /nojs# - Followed by a fragment (e.g.: path/nojs#myfragment).
+    this.url = this.url.replace(/\/nojs(\/|$|\?|#)/g, '/ajax$1');
+
+    // Set the options for the ajaxSubmit function.
+    // The 'this' variable will not persist inside of the options object.
+    var ajax = this;
+    ajax.options = {
+      url: ajax.url,
+      data: ajax.submit,
+      beforeSerialize: function (element_settings, options) {
+        return ajax.beforeSerialize(element_settings, options);
+      },
+      beforeSubmit: function (form_values, element_settings, options) {
+        ajax.ajaxing = true;
+        return ajax.beforeSubmit(form_values, element_settings, options);
+      },
+      beforeSend: function (xmlhttprequest, options) {
+        ajax.ajaxing = true;
+        return ajax.beforeSend(xmlhttprequest, options);
+      },
+      success: function (response, status) {
+        // Sanity check for browser support (object expected).
+        // When using iFrame uploads, responses must be returned as a string.
+        if (typeof response === 'string') {
+          response = $.parseJSON(response);
+        }
+        return ajax.success(response, status);
+      },
+      complete: function (response, status) {
+        ajax.ajaxing = false;
+        if (status === 'error' || status === 'parsererror') {
+          return ajax.error(response, ajax.url);
+        }
+      },
+      dataType: 'json',
+      type: 'POST'
+    };
+
+    if (element_settings.dialog) {
+      ajax.options.data.dialogOptions = element_settings.dialog;
+    }
+
+    // Ensure that we have a valid URL by adding ? when no query parameter is
+    // yet available, otherwise append using &.
+    if (ajax.options.url.indexOf('?') === -1) {
+      ajax.options.url += '?';
+    }
+    else {
+      ajax.options.url += '&';
+    }
+    ajax.options.url += Drupal.ajax.WRAPPER_FORMAT + '=drupal_' + (element_settings.dialogType || 'ajax');
+
+    // Bind the ajaxSubmit function to the element event.
+    $(ajax.element).on(element_settings.event, function (event) {
+      return ajax.eventResponse(this, event);
+    });
+
+    // If necessary, enable keyboard submission so that Ajax behaviors
+    // can be triggered through keyboard input as well as e.g. a mousedown
+    // action.
+    if (element_settings.keypress) {
+      $(ajax.element).on('keypress', function (event) {
+        return ajax.keypressResponse(this, event);
+      });
+    }
+
+    // If necessary, prevent the browser default action of an additional event.
+    // For example, prevent the browser default action of a click, even if the
+    // Ajax behavior binds to mousedown.
+    if (element_settings.prevent) {
+      $(ajax.element).on(element_settings.prevent, false);
+    }
+  };
+
+  /**
+   * URL query attribute to indicate the wrapper used to render a request.
+   *
+   * The wrapper format determines how the HTML is wrapped, for example in a
+   * modal dialog.
+   */
+  Drupal.ajax.WRAPPER_FORMAT = '_wrapper_format';
+
+  /**
+   * Execute the ajax request.
+   *
+   * Allows developers to execute an Ajax request manually without specifying
+   * an event to respond to.
+   */
+  Drupal.Ajax.prototype.execute = function () {
+    // Do not perform another ajax command if one is already in progress.
+    if (this.ajaxing) {
+      return;
+    }
+
+    try {
+      this.beforeSerialize(this.element, this.options);
+      $.ajax(this.options);
+    }
+    catch (e) {
+      // Unset the ajax.ajaxing flag here because it won't be unset during
+      // the complete response.
+      this.ajaxing = false;
+      window.alert("An error occurred while attempting to process " + this.options.url + ": " + e.message);
+    }
+  };
+
+  /**
+   * Handle a key press.
+   *
+   * The Ajax object will, if instructed, bind to a key press response. This
+   * will test to see if the key press is valid to trigger this event and
+   * if it is, trigger it for us and prevent other keypresses from triggering.
+   * In this case we're handling RETURN and SPACEBAR keypresses (event codes 13
+   * and 32. RETURN is often used to submit a form when in a textfield, and
+   * SPACE is often used to activate an element without submitting.
+   */
+  Drupal.Ajax.prototype.keypressResponse = function (element, event) {
+    // Create a synonym for this to reduce code confusion.
+    var ajax = this;
+
+    // Detect enter key and space bar and allow the standard response for them,
+    // except for form elements of type 'text', 'tel', 'number' and 'textarea',
+    // where the spacebar activation causes inappropriate activation if
+    // #ajax['keypress'] is TRUE. On a text-type widget a space should always be a
+    // space.
+    if (event.which === 13 || (event.which === 32 && element.type !== 'text' &&
+      element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number')) {
+      event.preventDefault();
+      event.stopPropagation();
+      $(ajax.element_settings.element).trigger(ajax.element_settings.event);
+    }
+  };
+
+  /**
+   * Handle an event that triggers an Ajax response.
+   *
+   * When an event that triggers an Ajax response happens, this method will
+   * perform the actual Ajax call. It is bound to the event using
+   * bind() in the constructor, and it uses the options specified on the
+   * Ajax object.
+   */
+  Drupal.Ajax.prototype.eventResponse = function (element, event) {
+    event.preventDefault();
+    event.stopPropagation();
+
+    // Create a synonym for this to reduce code confusion.
+    var ajax = this;
+
+    // Do not perform another Ajax command if one is already in progress.
+    if (ajax.ajaxing) {
+      return;
+    }
+
+    try {
+      if (ajax.$form) {
+        // If setClick is set, we must set this to ensure that the button's
+        // value is passed.
+        if (ajax.setClick) {
+          // Mark the clicked button. 'form.clk' is a special variable for
+          // ajaxSubmit that tells the system which element got clicked to
+          // trigger the submit. Without it there would be no 'op' or
+          // equivalent.
+          element.form.clk = element;
+        }
+
+        ajax.$form.ajaxSubmit(ajax.options);
+      }
+      else {
+        ajax.beforeSerialize(ajax.element, ajax.options);
+        $.ajax(ajax.options);
+      }
+    }
+    catch (e) {
+      // Unset the ajax.ajaxing flag here because it won't be unset during
+      // the complete response.
+      ajax.ajaxing = false;
+      window.alert("An error occurred while attempting to process " + ajax.options.url + ": " + e.message);
+    }
+  };
+
+  /**
+   * Handler for the form serialization.
+   *
+   * Runs before the beforeSend() handler (see below), and unlike that one, runs
+   * before field data is collected.
+   */
+  Drupal.Ajax.prototype.beforeSerialize = function (element, options) {
+    // Allow detaching behaviors to update field values before collecting them.
+    // This is only needed when field values are added to the POST data, so only
+    // when there is a form such that this.$form.ajaxSubmit() is used instead of
+    // $.ajax(). When there is no form and $.ajax() is used, beforeSerialize()
+    // isn't called, but don't rely on that: explicitly check this.$form.
+    if (this.$form) {
+      var settings = this.settings || drupalSettings;
+      Drupal.detachBehaviors(this.$form.get(0), settings, 'serialize');
+    }
+
+    // Prevent duplicate HTML ids in the returned markup.
+    // @see \Drupal\Component\Utility\Html::getUniqueId()
+    var ids = document.querySelectorAll('[id]');
+    var ajaxHtmlIds = [];
+    var il = ids.length;
+    for (var i = 0; i < il; i++) {
+      ajaxHtmlIds.push(ids[i].id);
+    }
+    // Join IDs to minimize request size.
+    options.data.ajax_html_ids = ajaxHtmlIds.join(' ');
+
+    // Allow Drupal to return new JavaScript and CSS files to load without
+    // returning the ones already loaded.
+    // @see \Drupal\Core\Theme\AjaxBasePageNegotiator
+    // @see \Drupal\Core\Asset\LibraryDependencyResolverInterface::getMinimalRepresentativeSubset()
+    // @see system_js_settings_alter()
+    var pageState = drupalSettings.ajaxPageState;
+    options.data['ajax_page_state[theme]'] = pageState.theme;
+    options.data['ajax_page_state[theme_token]'] = pageState.theme_token;
+    options.data['ajax_page_state[libraries]'] = pageState.libraries;
+  };
+
+  /**
+   * Modify form values prior to form submission.
+   */
+  Drupal.Ajax.prototype.beforeSubmit = function (form_values, element, options) {
+    // This function is left empty to make it simple to override for modules
+    // that wish to add functionality here.
+  };
+
+  /**
+   * Prepare the Ajax request before it is sent.
+   */
+  Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
+    // For forms without file inputs, the jQuery Form plugin serializes the form
+    // values, and then calls jQuery's $.ajax() function, which invokes this
+    // handler. In this circumstance, options.extraData is never used. For forms
+    // with file inputs, the jQuery Form plugin uses the browser's normal form
+    // submission mechanism, but captures the response in a hidden IFRAME. In this
+    // circumstance, it calls this handler first, and then appends hidden fields
+    // to the form to submit the values in options.extraData. There is no simple
+    // way to know which submission mechanism will be used, so we add to extraData
+    // regardless, and allow it to be ignored in the former case.
+    if (this.$form) {
+      options.extraData = options.extraData || {};
+
+      // Let the server know when the IFRAME submission mechanism is used. The
+      // server can use this information to wrap the JSON response in a TEXTAREA,
+      // as per http://jquery.malsup.com/form/#file-upload.
+      options.extraData.ajax_iframe_upload = '1';
+
+      // The triggering element is about to be disabled (see below), but if it
+      // contains a value (e.g., a checkbox, textfield, select, etc.), ensure that
+      // value is included in the submission. As per above, submissions that use
+      // $.ajax() are already serialized prior to the element being disabled, so
+      // this is only needed for IFRAME submissions.
+      var v = $.fieldValue(this.element);
+      if (v !== null) {
+        options.extraData[this.element.name] = v;
+      }
+    }
+
+    // Disable the element that received the change to prevent user interface
+    // interaction while the Ajax request is in progress. ajax.ajaxing prevents
+    // the element from triggering a new request, but does not prevent the user
+    // from changing its value.
+    $(this.element).prop('disabled', true);
+
+    if (!this.progress || !this.progress.type) {
+      return;
+    }
+
+    // Insert progress indicator
+    var progressIndicatorMethod = 'setProgressIndicator' + this.progress.type.slice(0, 1).toUpperCase() + this.progress.type.slice(1).toLowerCase();
+    if (progressIndicatorMethod in this && typeof this[progressIndicatorMethod] === 'function') {
+      this[progressIndicatorMethod].call(this);
+      $(this.element).after(this.progress.element);
+    }
+  };
+
+  /**
+   * Sets the progress bar progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorBar = function () {
+    var progressBar = new Drupal.ProgressBar('ajax-progress-' + this.element.id, $.noop, this.progress.method, $.noop);
+    if (this.progress.message) {
+      progressBar.setProgress(-1, this.progress.message);
+    }
+    if (this.progress.url) {
+      progressBar.startMonitoring(this.progress.url, this.progress.interval || 1500);
+    }
+    this.progress.element = $(progressBar.element).addClass('ajax-progress ajax-progress-bar');
+    this.progress.object = progressBar;
+    $(this.element).after(this.progress.element);
+  };
+
+  /**
+   * Sets the throbber progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorThrobber = function () {
+    this.progress.element = $('<div class="ajax-progress ajax-progress-throbber"><div class="throbber">&nbsp;</div></div>');
+    if (this.progress.message) {
+      this.progress.element.find('.throbber').after('<div class="message">' + this.progress.message + '</div>');
+    }
+    $(this.element).after(this.progress.element);
+  };
+
+  /**
+   * Sets the fullscreen progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
+    this.progress.element = $('<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>');
+    $('body').after(this.progress.element);
+  };
+
+  /**
+   * Handler for the form redirection completion.
+   */
+  Drupal.Ajax.prototype.success = function (response, status) {
+    // Remove the progress element.
+    if (this.progress.element) {
+      $(this.progress.element).remove();
+    }
+    if (this.progress.object) {
+      this.progress.object.stopMonitoring();
+    }
+    $(this.element).prop('disabled', false);
+
+    for (var i in response) {
+      if (response.hasOwnProperty(i) && response[i].command && this.commands[response[i].command]) {
+        this.commands[response[i].command](this, response[i], status);
+      }
+    }
+
+    // Reattach behaviors, if they were detached in beforeSerialize(). The
+    // attachBehaviors() called on the new content from processing the response
+    // commands is not sufficient, because behaviors from the entire form need
+    // to be reattached.
+    if (this.$form) {
+      var settings = this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+
+    // Remove any response-specific settings so they don't get used on the next
+    // call by mistake.
+    this.settings = null;
+  };
+
+  /**
+   * Build an effect object which tells us how to apply the effect when adding new HTML.
+   */
+  Drupal.Ajax.prototype.getEffect = function (response) {
+    var type = response.effect || this.effect;
+    var speed = response.speed || this.speed;
+
+    var effect = {};
+    if (type === 'none') {
+      effect.showEffect = 'show';
+      effect.hideEffect = 'hide';
+      effect.showSpeed = '';
+    }
+    else if (type === 'fade') {
+      effect.showEffect = 'fadeIn';
+      effect.hideEffect = 'fadeOut';
+      effect.showSpeed = speed;
+    }
+    else {
+      effect.showEffect = type + 'Toggle';
+      effect.hideEffect = type + 'Toggle';
+      effect.showSpeed = speed;
+    }
+
+    return effect;
+  };
+
+  /**
+   * Handler for the form redirection error.
+   */
+  Drupal.Ajax.prototype.error = function (response, uri) {
+    // Remove the progress element.
+    if (this.progress.element) {
+      $(this.progress.element).remove();
+    }
+    if (this.progress.object) {
+      this.progress.object.stopMonitoring();
+    }
+    // Undo hide.
+    $(this.wrapper).show();
+    // Re-enable the element.
+    $(this.element).prop('disabled', false);
+    // Reattach behaviors, if they were detached in beforeSerialize().
+    if (this.$form) {
+      var settings = response.settings || this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+    throw new Drupal.AjaxError(response, uri);
+  };
+
+  /**
+   * Provide a series of commands that the server can request the client perform.
+   */
+  Drupal.AjaxCommands = function () {};
+  Drupal.AjaxCommands.prototype = {
+    /**
+     * Command to insert new content into the DOM.
+     */
+    insert: function (ajax, response, status) {
+      // Get information from the response. If it is not there, default to
+      // our presets.
+      var wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
+      var method = response.method || ajax.method;
+      var effect = ajax.getEffect(response);
+      var settings;
+
+      // We don't know what response.data contains: it might be a string of text
+      // without HTML, so don't rely on jQuery correctly interpreting
+      // $(response.data) as new HTML rather than a CSS selector. Also, if
+      // response.data contains top-level text nodes, they get lost with either
+      // $(response.data) or $('<div></div>').replaceWith(response.data).
+      var new_content_wrapped = $('<div></div>').html(response.data);
+      var new_content = new_content_wrapped.contents();
+
+      // For legacy reasons, the effects processing code assumes that new_content
+      // consists of a single top-level element. Also, it has not been
+      // sufficiently tested whether attachBehaviors() can be successfully called
+      // with a context object that includes top-level text nodes. However, to
+      // give developers full control of the HTML appearing in the page, and to
+      // enable Ajax content to be inserted in places where DIV elements are not
+      // allowed (e.g., within TABLE, TR, and SPAN parents), we check if the new
+      // content satisfies the requirement of a single top-level element, and
+      // only use the container DIV created above when it doesn't. For more
+      // information, please see http://drupal.org/node/736066.
+      if (new_content.length !== 1 || new_content.get(0).nodeType !== 1) {
+        new_content = new_content_wrapped;
+      }
+
+      // If removing content from the wrapper, detach behaviors first.
+      switch (method) {
+        case 'html':
+        case 'replaceWith':
+        case 'replaceAll':
+        case 'empty':
+        case 'remove':
+          settings = response.settings || ajax.settings || drupalSettings;
+          Drupal.detachBehaviors(wrapper.get(0), settings);
+      }
+
+      // Add the new content to the page.
+      wrapper[method](new_content);
+
+      // Immediately hide the new content if we're using any effects.
+      if (effect.showEffect !== 'show') {
+        new_content.hide();
+      }
+
+      // Determine which effect to use and what content will receive the
+      // effect, then show the new content.
+      if (new_content.find('.ajax-new-content').length > 0) {
+        new_content.find('.ajax-new-content').hide();
+        new_content.show();
+        new_content.find('.ajax-new-content')[effect.showEffect](effect.showSpeed);
+      }
+      else if (effect.showEffect !== 'show') {
+        new_content[effect.showEffect](effect.showSpeed);
+      }
+
+      // Attach all JavaScript behaviors to the new content, if it was successfully
+      // added to the page, this if statement allows #ajax['wrapper'] to be
+      // optional.
+      if (new_content.parents('html').length > 0) {
+        // Apply any settings from the returned JSON if available.
+        settings = response.settings || ajax.settings || drupalSettings;
+        Drupal.attachBehaviors(new_content.get(0), settings);
+      }
+    },
+
+    /**
+     * Command to remove a chunk from the page.
+     */
+    remove: function (ajax, response, status) {
+      var settings = response.settings || ajax.settings || drupalSettings;
+      $(response.selector).each(function () {
+        Drupal.detachBehaviors(this, settings);
+      })
+        .remove();
+    },
+
+    /**
+     * Command to mark a chunk changed.
+     */
+    changed: function (ajax, response, status) {
+      if (!$(response.selector).hasClass('ajax-changed')) {
+        $(response.selector).addClass('ajax-changed');
+        if (response.asterisk) {
+          $(response.selector).find(response.asterisk).append(' <abbr class="ajax-changed" title="' + Drupal.t('Changed') + '">*</abbr> ');
+        }
+      }
+    },
+
+    /**
+     * Command to provide an alert.
+     */
+    alert: function (ajax, response, status) {
+      window.alert(response.text, response.title);
+    },
+
+    /**
+     * Command to set the window.location, redirecting the browser.
+     */
+    redirect: function (ajax, response, status) {
+      window.location = response.url;
+    },
+
+    /**
+     * Command to provide the jQuery css() function.
+     */
+    css: function (ajax, response, status) {
+      $(response.selector).css(response.argument);
+    },
+
+    /**
+     * Command to set the settings that will be used for other commands in this response.
+     */
+    settings: function (ajax, response, status) {
+      if (response.merge) {
+        $.extend(true, drupalSettings, response.settings);
+      }
+      else {
+        ajax.settings = response.settings;
+      }
+    },
+
+    /**
+     * Command to attach data using jQuery's data API.
+     */
+    data: function (ajax, response, status) {
+      $(response.selector).data(response.name, response.value);
+    },
+
+    /**
+     * Command to apply a jQuery method.
+     */
+    invoke: function (ajax, response, status) {
+      var $element = $(response.selector);
+      $element[response.method].apply($element, response.args);
+    },
+
+    /**
+     * Command to restripe a table.
+     */
+    restripe: function (ajax, response, status) {
+      // :even and :odd are reversed because jQuery counts from 0 and
+      // we count from 1, so we're out of sync.
+      // Match immediate children of the parent element to allow nesting.
+      $(response.selector).find('> tbody > tr:visible, > tr:visible')
+        .removeClass('odd even')
+        .filter(':even').addClass('odd').end()
+        .filter(':odd').addClass('even');
+    },
+
+    /**
+     * Command to update a form's build ID.
+     */
+    update_build_id: function (ajax, response, status) {
+      $('input[name="form_build_id"][value="' + response.old + '"]').val(response.new);
+    },
+
+    /**
+     * Command to add css.
+     *
+     * Uses the proprietary addImport method if available as browsers which
+     * support that method ignore @import statements in dynamically added
+     * stylesheets.
+     */
+    add_css: function (ajax, response, status) {
+      // Add the styles in the normal way.
+      $('head').prepend(response.data);
+      // Add imports in the styles using the addImport method if available.
+      var match;
+      var importMatch = /^@import url\("(.*)"\);$/igm;
+      if (document.styleSheets[0].addImport && importMatch.test(response.data)) {
+        importMatch.lastIndex = 0;
+        do {
+          match = importMatch.exec(response.data);
+          document.styleSheets[0].addImport(match[1]);
+        } while (match);
+      }
+    }
+  };
+
+})(jQuery, this, Drupal, drupalSettings);
+;
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Filters the view listing tables by a text input search string.
+   *
+   * Text search input: input.views-filter-text
+   * Target table:      input.views-filter-text[data-table]
+   * Source text:       .views-table-filter-text-source
+   */
+  Drupal.behaviors.viewTableFilterByText = {
+    attach: function (context, settings) {
+      var $input = $('input.views-filter-text').once('views-filter-text');
+      var $table = $($input.attr('data-table'));
+      var $rows;
+
+      function filterViewList(e) {
+        var query = $(e.target).val().toLowerCase();
+
+        function showViewRow(index, row) {
+          var $row = $(row);
+          var $sources = $row.find('.views-table-filter-text-source');
+          var textMatch = $sources.text().toLowerCase().indexOf(query) !== -1;
+          $row.closest('tr').toggle(textMatch);
+        }
+
+        // Filter if the length of the query is at least 2 characters.
+        if (query.length >= 2) {
+          $rows.each(showViewRow);
+        }
+        else {
+          $rows.show();
+        }
+      }
+
+      if ($table.length) {
+        $rows = $table.find('tbody tr');
+        $input.on('keyup', filterViewList);
+      }
+    }
+  };
+
+}(jQuery, Drupal));
+;
+(function ($, Drupal, window) {
+
+  "use strict";
+
+  /**
+   * Attach the tableResponsive function to Drupal.behaviors.
+   */
+  Drupal.behaviors.tableResponsive = {
+    attach: function (context, settings) {
+      var $tables = $(context).find('table.responsive-enabled').once('tableresponsive');
+      if ($tables.length) {
+        var il = $tables.length;
+        for (var i = 0; i < il; i++) {
+          TableResponsive.tables.push(new TableResponsive($tables[i]));
+        }
+      }
+    }
+  };
+
+  /**
+   * The TableResponsive object optimizes table presentation for all screen sizes.
+   *
+   * A responsive table hides columns at small screen sizes, leaving the most
+   * important columns visible to the end user. Users should not be prevented from
+   * accessing all columns, however. This class adds a toggle to a table with
+   * hidden columns that exposes the columns. Exposing the columns will likely
+   * break layouts, but it provides the user with a means to access data, which
+   * is a guiding principle of responsive design.
+   */
+  function TableResponsive(table) {
+    this.table = table;
+    this.$table = $(table);
+    this.showText = Drupal.t('Show all columns');
+    this.hideText = Drupal.t('Hide lower priority columns');
+    // Store a reference to the header elements of the table so that the DOM is
+    // traversed only once to find them.
+    this.$headers = this.$table.find('th');
+    // Add a link before the table for users to show or hide weight columns.
+    this.$link = $('<button type="button" class="link tableresponsive-toggle"></button>')
+      .attr('title', Drupal.t('Show table cells that were hidden to make the table fit within a small screen.'))
+      .on('click', $.proxy(this, 'eventhandlerToggleColumns'));
+
+    this.$table.before($('<div class="tableresponsive-toggle-columns"></div>').append(this.$link));
+
+    // Attach a resize handler to the window.
+    $(window)
+      .on('resize.tableresponsive', $.proxy(this, 'eventhandlerEvaluateColumnVisibility'))
+      .trigger('resize.tableresponsive');
+  }
+
+  /**
+   * Extend the TableResponsive function with a list of managed tables.
+   */
+  $.extend(TableResponsive, {
+    tables: []
+  });
+
+  /**
+   * Associates an action link with the table that will show hidden columns.
+   *
+   * Columns are assumed to be hidden if their header has the class priority-low
+   * or priority-medium.
+   */
+  $.extend(TableResponsive.prototype, {
+    eventhandlerEvaluateColumnVisibility: function (e) {
+      var pegged = parseInt(this.$link.data('pegged'), 10);
+      var hiddenLength = this.$headers.filter('.priority-medium:hidden, .priority-low:hidden').length;
+      // If the table has hidden columns, associate an action link with the table
+      // to show the columns.
+      if (hiddenLength > 0) {
+        this.$link.show().text(this.showText);
+      }
+      // When the toggle is pegged, its presence is maintained because the user
+      // has interacted with it. This is necessary to keep the link visible if the
+      // user adjusts screen size and changes the visibility of columns.
+      if (!pegged && hiddenLength === 0) {
+        this.$link.hide().text(this.hideText);
+      }
+    },
+    // Toggle the visibility of columns classed with either 'priority-low' or
+    // 'priority-medium'.
+    eventhandlerToggleColumns: function (e) {
+      e.preventDefault();
+      var self = this;
+      var $hiddenHeaders = this.$headers.filter('.priority-medium:hidden, .priority-low:hidden');
+      this.$revealedCells = this.$revealedCells || $();
+      // Reveal hidden columns.
+      if ($hiddenHeaders.length > 0) {
+        $hiddenHeaders.each(function (index, element) {
+          var $header = $(this);
+          var position = $header.prevAll('th').length;
+          self.$table.find('tbody tr').each(function () {
+            var $cells = $(this).find('td').eq(position);
+            $cells.show();
+            // Keep track of the revealed cells, so they can be hidden later.
+            self.$revealedCells = $().add(self.$revealedCells).add($cells);
+          });
+          $header.show();
+          // Keep track of the revealed headers, so they can be hidden later.
+          self.$revealedCells = $().add(self.$revealedCells).add($header);
+        });
+        this.$link.text(this.hideText).data('pegged', 1);
+      }
+      // Hide revealed columns.
+      else {
+        this.$revealedCells.hide();
+        // Strip the 'display:none' declaration from the style attributes of
+        // the table cells that .hide() added.
+        this.$revealedCells.each(function (index, element) {
+          var $cell = $(this);
+          var properties = $cell.attr('style').split(';');
+          var newProps = [];
+          // The hide method adds display none to the element. The element should
+          // be returned to the same state it was in before the columns were
+          // revealed, so it is necessary to remove the display none
+          // value from the style attribute.
+          var match = /^display\s*\:\s*none$/;
+          for (var i = 0; i < properties.length; i++) {
+            var prop = properties[i];
+            prop.trim();
+            // Find the display:none property and remove it.
+            var isDisplayNone = match.exec(prop);
+            if (isDisplayNone) {
+              continue;
+            }
+            newProps.push(prop);
+          }
+          // Return the rest of the style attribute values to the element.
+          $cell.attr('style', newProps.join(';'));
+        });
+        this.$link.text(this.showText).data('pegged', 0);
+        // Refresh the toggle link.
+        $(window).trigger('resize.tableresponsive');
+      }
+    }
+  });
+  // Make the TableResponsive object available in the Drupal namespace.
+  Drupal.TableResponsive = TableResponsive;
+
+})(jQuery, Drupal, window);
+;
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Process elements with the .dropbutton class on page load.
+   */
+  Drupal.behaviors.dropButton = {
+    attach: function (context, settings) {
+      var $dropbuttons = $(context).find('.dropbutton-wrapper').once('dropbutton');
+      if ($dropbuttons.length) {
+        // Adds the delegated handler that will toggle dropdowns on click.
+        var $body = $('body').once('dropbutton-click');
+        if ($body.length) {
+          $body.on('click', '.dropbutton-toggle', dropbuttonClickHandler);
+        }
+        // Initialize all buttons.
+        var il = $dropbuttons.length;
+        for (var i = 0; i < il; i++) {
+          DropButton.dropbuttons.push(new DropButton($dropbuttons[i], settings.dropbutton));
+        }
+      }
+    }
+  };
+
+  /**
+   * Delegated callback for opening and closing dropbutton secondary actions.
+   */
+  function dropbuttonClickHandler(e) {
+    e.preventDefault();
+    $(e.target).closest('.dropbutton-wrapper').toggleClass('open');
+  }
+
+  /**
+   * A DropButton presents an HTML list as a button with a primary action.
+   *
+   * All secondary actions beyond the first in the list are presented in a
+   * dropdown list accessible through a toggle arrow associated with the button.
+   *
+   * @param {jQuery} $dropbutton
+   *   A jQuery element.
+   *
+   * @param {Object} settings
+   *   A list of options including:
+   *    - {String} title: The text inside the toggle link element. This text is
+   *      hidden from visual UAs.
+   */
+  function DropButton(dropbutton, settings) {
+    // Merge defaults with settings.
+    var options = $.extend({'title': Drupal.t('List additional actions')}, settings);
+    var $dropbutton = $(dropbutton);
+    this.$dropbutton = $dropbutton;
+    this.$list = $dropbutton.find('.dropbutton');
+    // Find actions and mark them.
+    this.$actions = this.$list.find('li').addClass('dropbutton-action');
+
+    // Add the special dropdown only if there are hidden actions.
+    if (this.$actions.length > 1) {
+      // Identify the first element of the collection.
+      var $primary = this.$actions.slice(0, 1);
+      // Identify the secondary actions.
+      var $secondary = this.$actions.slice(1);
+      $secondary.addClass('secondary-action');
+      // Add toggle link.
+      $primary.after(Drupal.theme('dropbuttonToggle', options));
+      // Bind mouse events.
+      this.$dropbutton
+        .addClass('dropbutton-multiple')
+        .on({
+          /**
+           * Adds a timeout to close the dropdown on mouseleave.
+           */
+          'mouseleave.dropbutton': $.proxy(this.hoverOut, this),
+          /**
+           * Clears timeout when mouseout of the dropdown.
+           */
+          'mouseenter.dropbutton': $.proxy(this.hoverIn, this),
+          /**
+           * Similar to mouseleave/mouseenter, but for keyboard navigation.
+           */
+          'focusout.dropbutton': $.proxy(this.focusOut, this),
+          'focusin.dropbutton': $.proxy(this.focusIn, this)
+        });
+    }
+    else {
+      this.$dropbutton.addClass('dropbutton-single');
+    }
+  }
+
+  /**
+   * Extend the DropButton constructor.
+   */
+  $.extend(DropButton, {
+    /**
+     * Store all processed DropButtons.
+     *
+     * @type {Array}
+     */
+    dropbuttons: []
+  });
+
+  /**
+   * Extend the DropButton prototype.
+   */
+  $.extend(DropButton.prototype, {
+    /**
+     * Toggle the dropbutton open and closed.
+     *
+     * @param {Boolean} show
+     *   (optional) Force the dropbutton to open by passing true or to close by
+     *   passing false.
+     */
+    toggle: function (show) {
+      var isBool = typeof show === 'boolean';
+      show = isBool ? show : !this.$dropbutton.hasClass('open');
+      this.$dropbutton.toggleClass('open', show);
+    },
+
+    hoverIn: function () {
+      // Clear any previous timer we were using.
+      if (this.timerID) {
+        window.clearTimeout(this.timerID);
+      }
+    },
+
+    hoverOut: function () {
+      // Wait half a second before closing.
+      this.timerID = window.setTimeout($.proxy(this, 'close'), 500);
+    },
+
+    open: function () {
+      this.toggle(true);
+    },
+
+    close: function () {
+      this.toggle(false);
+    },
+
+    focusOut: function (e) {
+      this.hoverOut.call(this, e);
+    },
+
+    focusIn: function (e) {
+      this.hoverIn.call(this, e);
+    }
+  });
+
+  $.extend(Drupal.theme, {
+    /**
+     * A toggle is an interactive element often bound to a click handler.
+     *
+     * @param {Object} options
+     *   - {String} title: (optional) The HTML anchor title attribute and
+     *     text for the inner span element.
+     *
+     * @return {String}
+     *   A string representing a DOM fragment.
+     */
+    dropbuttonToggle: function (options) {
+      return '<li class="dropbutton-toggle"><button type="button"><span class="dropbutton-arrow"><span class="visually-hidden">' + options.title + '</span></span></button></li>';
+    }
+  });
+
+  // Expose constructor in the public space.
+  Drupal.DropButton = DropButton;
+
+})(jQuery, Drupal);
+;
+window.matchMedia||(window.matchMedia=function(){"use strict";var e=window.styleMedia||window.media;if(!e){var t=document.createElement("style"),i=document.getElementsByTagName("script")[0],n=null;t.type="text/css";t.id="matchmediajs-test";i.parentNode.insertBefore(t,i);n="getComputedStyle"in window&&window.getComputedStyle(t,null)||t.currentStyle;e={matchMedium:function(e){var i="@media "+e+"{ #matchmediajs-test { width: 1px; } }";if(t.styleSheet){t.styleSheet.cssText=i}else{t.textContent=i}return n.width==="1px"}}}return function(t){return{matches:e.matchMedium(t||"all"),media:t||"all"}}}());
+;
+/**
+ * Limits the invocations of a function in a given time frame.
+ *
+ * Adapted from underscore.js with the addition Drupal namespace.
+ *
+ * The debounce function wrapper should be used sparingly. One clear use case
+ * is limiting the invocation of a callback attached to the window resize event.
+ *
+ * Before using the debounce function wrapper, consider first whether the
+ * callback could be attached to an event that fires less frequently or if the
+ * function can be written in such a way that it is only invoked under specific
+ * conditions.
+ *
+ * @param {Function} callback
+ *   The function to be invoked.
+ *
+ * @param {Number} wait
+ *   The time period within which the callback function should only be
+ *   invoked once. For example if the wait period is 250ms, then the callback
+ *   will only be called at most 4 times per second.
+ */
+Drupal.debounce = function (func, wait, immediate) {
+
+  "use strict";
+
+  var timeout;
+  var result;
+  return function () {
+    var context = this;
+    var args = arguments;
+    var later = function () {
+      timeout = null;
+      if (!immediate) {
+        result = func.apply(context, args);
+      }
+    };
+    var callNow = immediate && !timeout;
+    clearTimeout(timeout);
+    timeout = setTimeout(later, wait);
+    if (callNow) {
+      result = func.apply(context, args);
+    }
+    return result;
+  };
+};
+;
+/**
+ * @file
+ * Responsive navigation tabs.
+ *
+ * This also supports collapsible navigable is the 'is-collapsible' class is
+ * added to the main element, and a target element is included.
+ */
+(function ($, Drupal) {
+
+  "use strict";
+
+  function init(i, tab) {
+    var $tab = $(tab);
+    var $target = $tab.find('[data-drupal-nav-tabs-target]');
+    var isCollapsible = $tab.hasClass('is-collapsible');
+
+    function openMenu(e) {
+      $target.toggleClass('is-open');
+    }
+
+    function handleResize(e) {
+      $tab.addClass('is-horizontal');
+      var $tabs = $tab.find('.tabs');
+      var isHorizontal = $tabs.outerHeight() <= $tabs.find('.tabs__tab').outerHeight();
+      $tab.toggleClass('is-horizontal', isHorizontal);
+      if (isCollapsible) {
+        $tab.toggleClass('is-collapse-enabled', !isHorizontal);
+      }
+      if (isHorizontal) {
+        $target.removeClass('is-open');
+      }
+    }
+
+    $tab.addClass('position-container is-horizontal-enabled');
+
+    $tab.on('click.tabs', '[data-drupal-nav-tabs-trigger]', openMenu);
+    $(window).on('resize.tabs', Drupal.debounce(handleResize, 150)).trigger('resize.tabs');
+  }
+
+  /**
+   * Initialise the tabs JS.
+   */
+  Drupal.behaviors.navTabs = {
+    attach: function (context, settings) {
+      var $tabs = $(context).find('[data-drupal-nav-tabs]');
+      if ($tabs.length) {
+        var notSmartPhone = window.matchMedia('(min-width: 300px)');
+        if (notSmartPhone.matches) {
+          $tabs.once('nav-tabs').each(init);
+        }
+      }
+    }
+  };
+
+})(jQuery, Drupal);
+;
+/**
+ * Adds an HTML element and method to trigger audio UAs to read system messages.
+ *
+ * Use Drupal.announce() to indicate to screen reader users that an element on
+ * the page has changed state. For instance, if clicking a link loads 10 more
+ * items into a list, one might announce the change like this.
+ * $('#search-list')
+ *   .on('itemInsert', function (event, data) {
+ *     // Insert the new items.
+ *     $(data.container.el).append(data.items.el);
+ *     // Announce the change to the page contents.
+ *     Drupal.announce(Drupal.t('@count items added to @container',
+ *       {'@count': data.items.length, '@container': data.container.title}
+ *     ));
+ *   });
+ */
+(function (Drupal, debounce) {
+
+  "use strict";
+
+  var liveElement;
+  var announcements = [];
+
+  /**
+   * Builds a div element with the aria-live attribute and attaches it
+   * to the DOM.
+   */
+  Drupal.behaviors.drupalAnnounce = {
+    attach: function (context) {
+      // Create only one aria-live element.
+      if (!liveElement) {
+        liveElement = document.createElement('div');
+        liveElement.id = 'drupal-live-announce';
+        liveElement.className = 'visually-hidden';
+        liveElement.setAttribute('aria-live', 'polite');
+        liveElement.setAttribute('aria-busy', 'false');
+        document.body.appendChild(liveElement);
+      }
+    }
+  };
+
+  /**
+   * Concatenates announcements to a single string; appends to the live region.
+   */
+  function announce() {
+    var text = [];
+    var priority = 'polite';
+    var announcement;
+
+    // Create an array of announcement strings to be joined and appended to the
+    // aria live region.
+    var il = announcements.length;
+    for (var i = 0; i < il; i++) {
+      announcement = announcements.pop();
+      text.unshift(announcement.text);
+      // If any of the announcements has a priority of assertive then the group
+      // of joined announcements will have this priority.
+      if (announcement.priority === 'assertive') {
+        priority = 'assertive';
+      }
+    }
+
+    if (text.length) {
+      // Clear the liveElement so that repeated strings will be read.
+      liveElement.innerHTML = '';
+      // Set the busy state to true until the node changes are complete.
+      liveElement.setAttribute('aria-busy', 'true');
+      // Set the priority to assertive, or default to polite.
+      liveElement.setAttribute('aria-live', priority);
+      // Print the text to the live region. Text should be run through
+      // Drupal.t() before being passed to Drupal.announce().
+      liveElement.innerHTML = text.join('\n');
+      // The live text area is updated. Allow the AT to announce the text.
+      liveElement.setAttribute('aria-busy', 'false');
+    }
+  }
+
+  /**
+   * Triggers audio UAs to read the supplied text.
+   *
+   * The aria-live region will only read the text that currently populates its
+   * text node. Replacing text quickly in rapid calls to announce results in
+   * only the text from the most recent call to Drupal.announce() being read.
+   * By wrapping the call to announce in a debounce function, we allow for
+   * time for multiple calls to Drupal.announce() to queue up their messages.
+   * These messages are then joined and append to the aria-live region as one
+   * text node.
+   *
+   * @param String text
+   *   A string to be read by the UA.
+   * @param String priority
+   *   A string to indicate the priority of the message. Can be either
+   *   'polite' or 'assertive'. Polite is the default.
+   *
+   * @see http://www.w3.org/WAI/PF/aria-practices/#liveprops
+   */
+  Drupal.announce = function (text, priority) {
+    // Save the text and priority into a closure variable. Multiple simultaneous
+    // announcements will be concatenated and read in sequence.
+    announcements.push({
+      text: text,
+      priority: priority
+    });
+    // Immediately invoke the function that debounce returns. 200 ms is right at
+    // the cusp where humans notice a pause, so we will wait
+    // at most this much time before the set of queued announcements is read.
+    return (debounce(announce, 200)());
+  };
+}(Drupal, Drupal.debounce));
+;
+(function(){if(window.matchMedia&&window.matchMedia("all").addListener){return false}var e=window.matchMedia,i=e("only all").matches,n=false,t=0,a=[],r=function(i){clearTimeout(t);t=setTimeout(function(){for(var i=0,n=a.length;i<n;i++){var t=a[i].mql,r=a[i].listeners||[],o=e(t.media).matches;if(o!==t.matches){t.matches=o;for(var s=0,l=r.length;s<l;s++){r[s].call(window,t)}}}},30)};window.matchMedia=function(t){var o=e(t),s=[],l=0;o.addListener=function(e){if(!i){return}if(!n){n=true;window.addEventListener("resize",r,true)}if(l===0){l=a.push({mql:o,listeners:s})}s.push(e)};o.removeListener=function(e){for(var i=0,n=s.length;i<n;i++){if(s[i]===e){s.splice(i,1)}}};return o}})();
+;
+/**
+ * Manages elements that can offset the size of the viewport.
+ *
+ * Measures and reports viewport offset dimensions from elements like the
+ * toolbar that can potentially displace the positioning of other elements.
+ */
+(function ($, Drupal, debounce) {
+
+  "use strict";
+
+  var offsets = {
+    top: 0,
+    right: 0,
+    bottom: 0,
+    left: 0
+  };
+
+  /**
+   * Registers a resize handler on the window.
+   */
+  Drupal.behaviors.drupalDisplace = {
+    attach: function () {
+      // Mark this behavior as processed on the first pass.
+      if (this.displaceProcessed) {
+        return;
+      }
+      this.displaceProcessed = true;
+
+      $(window).on('resize.drupalDisplace', debounce(displace, 200));
+    }
+  };
+
+  /**
+   * Informs listeners of the current offset dimensions.
+   *
+   * @param {boolean} broadcast
+   *   (optional) When true or undefined, causes the recalculated offsets values to be
+   *   broadcast to listeners.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function displace(broadcast) {
+    offsets = Drupal.displace.offsets = calculateOffsets();
+    if (typeof broadcast === 'undefined' || broadcast) {
+      $(document).trigger('drupalViewportOffsetChange', offsets);
+    }
+    return offsets;
+  }
+
+  /**
+   * Determines the viewport offsets.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function calculateOffsets() {
+    return {
+      top: calculateOffset('top'),
+      right: calculateOffset('right'),
+      bottom: calculateOffset('bottom'),
+      left: calculateOffset('left')
+    };
+  }
+
+  /**
+   * Gets a specific edge's offset.
+   *
+   * Any element with the attribute data-offset-{edge} e.g. data-offset-top will
+   * be considered in the viewport offset calculations. If the attribute has a
+   * numeric value, that value will be used. If no value is provided, one will
+   * be calculated using the element's dimensions and placement.
+   *
+   * @param {string} edge
+   *   The name of the edge to calculate. Can be 'top', 'right',
+   *   'bottom' or 'left'.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function calculateOffset(edge) {
+    var edgeOffset = 0;
+    var displacingElements = document.querySelectorAll('[data-offset-' + edge + ']');
+    var n = displacingElements.length;
+    for (var i = 0; i < n; i++) {
+      var el = displacingElements[i];
+      // If the element is not visible, do consider its dimensions.
+      if (el.style.display === 'none') {
+        continue;
+      }
+      // If the offset data attribute contains a displacing value, use it.
+      var displacement = parseInt(el.getAttribute('data-offset-' + edge), 10);
+      // If the element's offset data attribute exits
+      // but is not a valid number then get the displacement
+      // dimensions directly from the element.
+      if (isNaN(displacement)) {
+        displacement = getRawOffset(el, edge);
+      }
+      // If the displacement value is larger than the current value for this
+      // edge, use the displacement value.
+      edgeOffset = Math.max(edgeOffset, displacement);
+    }
+
+    return edgeOffset;
+  }
+
+  /**
+   * Calculates displacement for element based on its dimensions and placement.
+   *
+   * @param {jQuery} $el
+   *   The jQuery element whose dimensions and placement will be measured.
+   *
+   * @param {string} edge
+   *   The name of the edge of the viewport that the element is associated
+   *   with.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function getRawOffset(el, edge) {
+    var $el = $(el);
+    var documentElement = document.documentElement;
+    var displacement = 0;
+    var horizontal = (edge === 'left' || edge === 'right');
+    // Get the offset of the element itself.
+    var placement = $el.offset()[horizontal ? 'left' : 'top'];
+    // Subtract scroll distance from placement to get the distance
+    // to the edge of the viewport.
+    placement -= window['scroll' + (horizontal ? 'X' : 'Y')] || document.documentElement['scroll' + (horizontal) ? 'Left' : 'Top'] || 0;
+    // Find the displacement value according to the edge.
+    switch (edge) {
+      // Left and top elements displace as a sum of their own offset value
+      // plus their size.
+      case 'top':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerHeight();
+        break;
+
+      case 'left':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerWidth();
+        break;
+
+      // Right and bottom elements displace according to their left and
+      // top offset. Their size isn't important.
+      case 'bottom':
+        displacement = documentElement.clientHeight - placement;
+        break;
+
+      case 'right':
+        displacement = documentElement.clientWidth - placement;
+        break;
+
+      default:
+        displacement = 0;
+    }
+    return displacement;
+  }
+
+  /**
+   * Assign the displace function to a property of the Drupal global object.
+   */
+  Drupal.displace = displace;
+  $.extend(Drupal.displace, {
+    /**
+     * Expose offsets to other scripts to avoid having to recalculate offsets
+     */
+    offsets: offsets,
+    /**
+     * Expose method to compute a single edge offsets.
+     */
+    calculateOffset: calculateOffset
+  });
+
+})(jQuery, Drupal, Drupal.debounce);
+;
+/**
+ * Builds a nested accordion widget.
+ *
+ * Invoke on an HTML list element with the jQuery plugin pattern.
+ * - For example, $('.menu').drupalToolbarMenu();
+ */
+
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Store the open menu tray.
+   */
+  var activeItem = Drupal.url(drupalSettings.path.currentPath);
+
+  $.fn.drupalToolbarMenu = function () {
+
+    var ui = {
+      'handleOpen': Drupal.t('Extend'),
+      'handleClose': Drupal.t('Collapse')
+    };
+
+    /**
+     * Handle clicks from the disclosure button on an item with sub-items.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function toggleClickHandler(event) {
+      var $toggle = $(event.target);
+      var $item = $toggle.closest('li');
+      // Toggle the list item.
+      toggleList($item);
+      // Close open sibling menus.
+      var $openItems = $item.siblings().filter('.open');
+      toggleList($openItems, false);
+    }
+
+    /**
+     * Handle clicks from a menu item link.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function linkClickHandler(event) {
+      // If the toolbar is positioned fixed (and therefore hiding content
+      // underneath), then users expect clicks in the administration menu tray
+      // to take them to that destination but for the menu tray to be closed
+      // after clicking: otherwise the toolbar itself is obstructing the view
+      // of the destination they chose.
+      if (!Drupal.toolbar.models.toolbarModel.get('isFixed')) {
+        Drupal.toolbar.models.toolbarModel.set('activeTab', null);
+      }
+      // Stopping propagation to make sure that once a toolbar-box is clicked
+      // (the whitespace part), the page is not redirected anymore.
+      event.stopPropagation();
+    }
+
+    /**
+     * Toggle the open/close state of a list is a menu.
+     *
+     * @param {jQuery} $item
+     *   The li item to be toggled.
+     *
+     * @param {Boolean} switcher
+     *   A flag that forces toggleClass to add or a remove a class, rather than
+     *   simply toggling its presence.
+     */
+    function toggleList($item, switcher) {
+      var $toggle = $item.children('.toolbar-box').children('.toolbar-handle');
+      switcher = (typeof switcher !== 'undefined') ? switcher : !$item.hasClass('open');
+      // Toggle the item open state.
+      $item.toggleClass('open', switcher);
+      // Twist the toggle.
+      $toggle.toggleClass('open', switcher);
+      // Adjust the toggle text.
+      $toggle
+        .find('.action')
+        // Expand Structure, Collapse Structure
+        .text((switcher) ? ui.handleClose : ui.handleOpen);
+    }
+
+    /**
+     * Add markup to the menu elements.
+     *
+     * Items with sub-elements have a list toggle attached to them. Menu item
+     * links and the corresponding list toggle are wrapped with in a div
+     * classed with .toolbar-box. The .toolbar-box div provides a positioning
+     * context for the item list toggle.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu to be initialized.
+     */
+    function initItems($menu) {
+      var options = {
+        'class': 'toolbar-icon toolbar-handle',
+        'action': ui.handleOpen,
+        'text': ''
+      };
+      // Initialize items and their links.
+      $menu.find('li > a').wrap('<div class="toolbar-box">');
+      // Add a handle to each list item if it has a menu.
+      $menu.find('li').each(function (index, element) {
+        var $item = $(element);
+        if ($item.children('ul.menu').length) {
+          var $box = $item.children('.toolbar-box');
+          options.text = Drupal.t('@label', {'@label': $box.find('a').text()});
+          $item.children('.toolbar-box')
+            .append(Drupal.theme('toolbarMenuItemToggle', options));
+        }
+      });
+    }
+
+    /**
+     * Adds a level class to each list based on its depth in the menu.
+     *
+     * This function is called recursively on each sub level of lists elements
+     * until the depth of the menu is exhausted.
+     *
+     * @param {jQuery} $lists
+     *   A jQuery object of ul elements.
+     *
+     * @param {Integer} level
+     *   The current level number to be assigned to the list elements.
+     */
+    function markListLevels($lists, level) {
+      level = (!level) ? 1 : level;
+      var $lis = $lists.children('li').addClass('level-' + level);
+      $lists = $lis.children('ul');
+      if ($lists.length) {
+        markListLevels($lists, level + 1);
+      }
+    }
+
+    /**
+     * On page load, open the active menu item.
+     *
+     * Marks the trail of the active link in the menu back to the root of the
+     * menu with .menu-item--active-trail.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu.
+     */
+    function openActiveItem($menu) {
+      var pathItem = $menu.find('a[href="' + location.pathname + '"]');
+      if (pathItem.length && !activeItem) {
+        activeItem = location.pathname;
+      }
+      if (activeItem) {
+        var $activeItem = $menu.find('a[href="' + activeItem + '"]').addClass('menu-item--active');
+        var $activeTrail = $activeItem.parentsUntil('.root', 'li').addClass('menu-item--active-trail');
+        toggleList($activeTrail, true);
+      }
+    }
+
+    // Bind event handlers.
+    $(document)
+      .on('click.toolbar', '.toolbar-box', toggleClickHandler)
+      .on('click.toolbar', '.toolbar-box a', linkClickHandler);
+
+    // Return the jQuery object.
+    return this.each(function (selector) {
+      var $menu = $(this).once('toolbar-menu');
+      if ($menu.length) {
+        $menu.addClass('root');
+        initItems($menu);
+        markListLevels($menu);
+        // Restore previous and active states.
+        openActiveItem($menu);
+      }
+    });
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarMenuItemToggle = function (options) {
+    return '<button class="' + options['class'] + '"><span class="action">' + options.action + '</span><span class="label">' + options.text + '</span></button>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file toolbar.js
+ *
+ * Defines the behavior of the Drupal administration toolbar.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  // Merge run-time settings with the defaults.
+  var options = $.extend(
+    {
+      breakpoints: {
+        'toolbar.narrow': '',
+        'toolbar.standard': '',
+        'toolbar.wide': ''
+      }
+    },
+    drupalSettings.toolbar,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        horizontal: Drupal.t('Horizontal orientation'),
+        vertical: Drupal.t('Vertical orientation')
+      }
+    }
+  );
+
+  /**
+   * Registers tabs with the toolbar.
+   *
+   * The Drupal toolbar allows modules to register top-level tabs. These may
+   * point directly to a resource or toggle the visibility of a tray.
+   *
+   * Modules register tabs with hook_toolbar().
+   */
+  Drupal.behaviors.toolbar = {
+
+    attach: function (context) {
+      // Verify that the user agent understands media queries. Complex admin
+      // toolbar layouts require media query support.
+      if (!window.matchMedia('only screen').matches) {
+        return;
+      }
+      // Process the administrative toolbar.
+      $(context).find('#toolbar-administration').once('toolbar').each(function () {
+
+        // Establish the toolbar models and views.
+        var model = Drupal.toolbar.models.toolbarModel = new Drupal.toolbar.ToolbarModel({
+          locked: JSON.parse(localStorage.getItem('Drupal.toolbar.trayVerticalLocked')) || false,
+          activeTab: document.getElementById(JSON.parse(localStorage.getItem('Drupal.toolbar.activeTabID')))
+        });
+        Drupal.toolbar.views.toolbarVisualView = new Drupal.toolbar.ToolbarVisualView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.toolbarAuralView = new Drupal.toolbar.ToolbarAuralView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.bodyVisualView = new Drupal.toolbar.BodyVisualView({
+          el: this,
+          model: model
+        });
+
+        // Render collapsible menus.
+        var menuModel = Drupal.toolbar.models.menuModel = new Drupal.toolbar.MenuModel();
+        Drupal.toolbar.views.menuVisualView = new Drupal.toolbar.MenuVisualView({
+          el: $(this).find('.toolbar-menu-administration').get(0),
+          model: menuModel,
+          strings: options.strings
+        });
+
+        // Handle the resolution of Drupal.toolbar.setSubtrees.
+        // This is handled with a deferred so that the function may be invoked
+        // asynchronously.
+        Drupal.toolbar.setSubtrees.done(function (subtrees) {
+          menuModel.set('subtrees', subtrees);
+          localStorage.setItem('Drupal.toolbar.subtrees', JSON.stringify(subtrees));
+          // Indicate on the toolbarModel that subtrees are now loaded.
+          model.set('areSubtreesLoaded', true);
+        });
+
+        // Attach a listener to the configured media query breakpoints.
+        for (var label in options.breakpoints) {
+          if (options.breakpoints.hasOwnProperty(label)) {
+            var mq = options.breakpoints[label];
+            var mql = Drupal.toolbar.mql[label] = window.matchMedia(mq);
+            // Curry the model and the label of the media query breakpoint to
+            // the mediaQueryChangeHandler function.
+            mql.addListener(Drupal.toolbar.mediaQueryChangeHandler.bind(null, model, label));
+            // Fire the mediaQueryChangeHandler for each configured breakpoint
+            // so that they process once.
+            Drupal.toolbar.mediaQueryChangeHandler.call(null, model, label, mql);
+          }
+        }
+
+        // Trigger an initial attempt to load menu subitems. This first attempt
+        // is made after the media query handlers have had an opportunity to
+        // process. The toolbar starts in the vertical orientation by default,
+        // unless the viewport is wide enough to accommodate a horizontal
+        // orientation. Thus we give the Toolbar a chance to determine if it
+        // should be set to horizontal orientation before attempting to load
+        // menu subtrees.
+        Drupal.toolbar.views.toolbarVisualView.loadSubtrees();
+
+        $(document)
+          // Update the model when the viewport offset changes.
+          .on('drupalViewportOffsetChange.toolbar', function (event, offsets) {
+            model.set('offsets', offsets);
+          });
+
+        // Broadcast model changes to other modules.
+        model
+          .on('change:orientation', function (model, orientation) {
+            $(document).trigger('drupalToolbarOrientationChange', orientation);
+          })
+          .on('change:activeTab', function (model, tab) {
+            $(document).trigger('drupalToolbarTabChange', tab);
+          })
+          .on('change:activeTray', function (model, tray) {
+            $(document).trigger('drupalToolbarTrayChange', tray);
+          });
+
+        // If the toolbar's orientation is horizontal and no active tab is
+        // defined then show the tray of the first toolbar tab by default (but
+        // not the first 'Home' toolbar tab).
+        if (Drupal.toolbar.models.toolbarModel.get('orientation') === 'horizontal' && Drupal.toolbar.models.toolbarModel.get('activeTab') === null) {
+          Drupal.toolbar.models.toolbarModel.set({
+            'activeTab': $('.toolbar-bar .toolbar-tab:not(.home-toolbar-tab) a').get(0)
+          });
+        }
+      });
+    }
+  };
+
+  /**
+   * Toolbar methods of Backbone objects.
+   */
+  Drupal.toolbar = {
+
+    // A hash of View instances.
+    views: {},
+
+    // A hash of Model instances.
+    models: {},
+
+    // A hash of MediaQueryList objects tracked by the toolbar.
+    mql: {},
+
+    /**
+     * Accepts a list of subtree menu elements.
+     *
+     * A deferred object that is resolved by an inlined JavaScript callback.
+     *
+     * JSONP callback.
+     * @see toolbar_subtrees_jsonp().
+     */
+    setSubtrees: new $.Deferred(),
+
+    /**
+     * Respond to configured narrow media query changes.
+     */
+    mediaQueryChangeHandler: function (model, label, mql) {
+      switch (label) {
+        case 'toolbar.narrow':
+          model.set({
+            'isOriented': mql.matches,
+            'isTrayToggleVisible': false
+          });
+          // If the toolbar doesn't have an explicit orientation yet, or if the
+          // narrow media query doesn't match then set the orientation to
+          // vertical.
+          if (!mql.matches || !model.get('orientation')) {
+            model.set({'orientation': 'vertical'}, {validate: true});
+          }
+          break;
+        case 'toolbar.standard':
+          model.set({
+            'isFixed': mql.matches
+          });
+          break;
+        case 'toolbar.wide':
+          model.set({
+            'orientation': ((mql.matches) ? 'horizontal' : 'vertical')
+          }, {validate: true});
+          // The tray orientation toggle visibility does not need to be
+          // validated.
+          model.set({
+            'isTrayToggleVisible': mql.matches
+          });
+          break;
+        default:
+          break;
+      }
+    }
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarOrientationToggle = function () {
+    return '<div class="toolbar-toggle-orientation"><div class="toolbar-lining">' +
+      '<button class="toolbar-icon" type="button"></button>' +
+      '</div></div>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file
+ * A Backbone Model for collapsible menus.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone Model for collapsible menus.
+   */
+  Drupal.toolbar.MenuModel = Backbone.Model.extend({
+    defaults: {
+      subtrees: {}
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone Model for the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone model for the toolbar.
+   */
+  Drupal.toolbar.ToolbarModel = Backbone.Model.extend({
+    defaults: {
+      // The active toolbar tab. All other tabs should be inactive under
+      // normal circumstances. It will remain active across page loads. The
+      // active item is stored as an ID selector e.g. '#toolbar-item--1'.
+      activeTab: null,
+      // Represents whether a tray is open or not. Stored as an ID selector e.g.
+      // '#toolbar-item--1-tray'.
+      activeTray: null,
+      // Indicates whether the toolbar is displayed in an oriented fashion,
+      // either horizontal or vertical.
+      isOriented: false,
+      // Indicates whether the toolbar is positioned absolute (false) or fixed
+      // (true).
+      isFixed: false,
+      // Menu subtrees are loaded through an AJAX request only when the Toolbar
+      // is set to a vertical orientation.
+      areSubtreesLoaded: false,
+      // If the viewport overflow becomes constrained, isFixed must be true so
+      // that elements in the trays aren't lost off-screen and impossible to
+      // get to.
+      isViewportOverflowConstrained: false,
+      // The orientation of the active tray.
+      orientation: 'vertical',
+      // A tray is locked if a user toggled it to vertical. Otherwise a tray
+      // will switch between vertical and horizontal orientation based on the
+      // configured breakpoints. The locked state will be maintained across page
+      // loads.
+      locked: false,
+      // Indicates whether the tray orientation toggle is visible.
+      isTrayToggleVisible: false,
+      // The height of the toolbar.
+      height: null,
+      // The current viewport offsets determined by Drupal.displace(). The
+      // offsets suggest how a module might position is components relative to
+      // the viewport.
+      offsets: {
+        top: 0,
+        right: 0,
+        bottom: 0,
+        left: 0
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    validate: function (attributes, options) {
+      // Prevent the orientation being set to horizontal if it is locked, unless
+      // override has not been passed as an option.
+      if (attributes.orientation === 'horizontal' && this.get('locked') && !options.override) {
+        return Drupal.t('The toolbar cannot be set to a horizontal orientation when it is locked.');
+      }
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the body element.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Adjusts the body element with the toolbar position and dimension changes.
+   */
+  Drupal.toolbar.BodyVisualView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:orientation change:offsets change:activeTray change:isOriented change:isFixed change:isViewportOverflowConstrained', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var $body = $('body');
+      var orientation = this.model.get('orientation');
+      var isOriented = this.model.get('isOriented');
+      var isViewportOverflowConstrained = this.model.get('isViewportOverflowConstrained');
+
+      $body
+        // We are using JavaScript to control media-query handling for two
+        // reasons: (1) Using JavaScript let's us leverage the breakpoint
+        // configurations and (2) the CSS is really complex if we try to hide
+        // some styling from browsers that don't understand CSS media queries.
+        // If we drive the CSS from classes added through JavaScript,
+        // then the CSS becomes simpler and more robust.
+        .toggleClass('toolbar-vertical', (orientation === 'vertical'))
+        .toggleClass('toolbar-horizontal', (isOriented && orientation === 'horizontal'))
+        // When the toolbar is fixed, it will not scroll with page scrolling.
+        .toggleClass('toolbar-fixed', (isViewportOverflowConstrained || this.model.get('isFixed')))
+        // Toggle the toolbar-tray-open class on the body element. The class is
+        // applied when a toolbar tray is active. Padding might be applied to
+        // the body element to prevent the tray from overlapping content.
+        .toggleClass('toolbar-tray-open', !!this.model.get('activeTray'))
+        // Apply padding to the top of the body to offset the placement of the
+        // toolbar bar element.
+        .css('padding-top', this.model.get('offsets').top);
+    }
+  });
+
+}(jQuery, Drupal, Backbone));
+;
+/**
+ * @file
+ * A Backbone view for the collapsible menus.
+ */
+
+(function ($, Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone View for collapsible menus.
+   */
+  Drupal.toolbar.MenuVisualView = Backbone.View.extend({
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:subtrees', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var subtrees = this.model.get('subtrees');
+      // Add subtrees.
+      for (var id in subtrees) {
+        if (subtrees.hasOwnProperty(id)) {
+          this.$el
+            .find('#toolbar-link-' + id)
+            .once('toolbar-subtrees')
+            .after(subtrees[id]);
+        }
+      }
+      // Render the main menu as a nested, collapsible accordion.
+      if ('drupalToolbarMenu' in $.fn) {
+        this.$el
+          .children('.menu')
+          .drupalToolbarMenu();
+      }
+    }
+  });
+
+}(jQuery, Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the aural feedback of the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the aural feedback of the toolbar.
+   */
+  Drupal.toolbar.ToolbarAuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:orientation', this.onOrientationChange);
+      this.listenTo(this.model, 'change:activeTray', this.onActiveTrayChange);
+    },
+
+    /**
+     * Announces an orientation change.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param String orientation
+     *   The new value of the orientation attribute in the model.
+     */
+    onOrientationChange: function (model, orientation) {
+      Drupal.announce(Drupal.t('Tray orientation changed to @orientation.', {
+        '@orientation': orientation
+      }));
+    },
+
+    /**
+     * Announces a changed active tray.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param Element orientation
+     *   The new value of the tray attribute in the model.
+     */
+    onActiveTrayChange: function (model, tray) {
+      var relevantTray = (tray === null) ? model.previous('activeTray') : tray;
+      var action = (tray === null) ? Drupal.t('closed') : Drupal.t('opened');
+      var trayNameElement = relevantTray.querySelector('.toolbar-tray-name');
+      var text;
+      if (trayNameElement !== null) {
+        text = Drupal.t('Tray "@tray" @action.', {
+          '@tray': trayNameElement.textContent, '@action': action
+        });
+      }
+      else {
+        text = Drupal.t('Tray @action.', {'@action': action});
+      }
+      Drupal.announce(text);
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the toolbar element. Listens to mouse & touch.
+ */
+
+(function ($, Drupal, drupalSettings, Backbone) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the toolbar element. Listens to mouse & touch.
+   */
+  Drupal.toolbar.ToolbarVisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click .toolbar-bar .toolbar-tab': 'onTabClick',
+        'click .toolbar-toggle-orientation button': 'onOrientationToggleClick',
+        'touchend .toolbar-bar .toolbar-tab': touchEndToClick,
+        'touchend .toolbar-toggle-orientation button': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:activeTab change:orientation change:isOriented change:isTrayToggleVisible', this.render);
+      this.listenTo(this.model, 'change:mqMatches', this.onMediaQueryChange);
+      this.listenTo(this.model, 'change:offsets', this.adjustPlacement);
+
+      // Add the tray orientation toggles.
+      this.$el
+        .find('.toolbar-tray .toolbar-lining')
+        .append(Drupal.theme('toolbarOrientationToggle'));
+
+      // Trigger an activeTab change so that listening scripts can respond on
+      // page load. This will call render.
+      this.model.trigger('change:activeTab');
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.updateTabs();
+      this.updateTrayOrientation();
+      this.updateBarAttributes();
+      // Load the subtrees if the orientation of the toolbar is changed to
+      // vertical. This condition responds to the case that the toolbar switches
+      // from horizontal to vertical orientation. The toolbar starts in a
+      // vertical orientation by default and then switches to horizontal during
+      // initialization if the media query conditions are met. Simply checking
+      // that the orientation is vertical here would result in the subtrees
+      // always being loaded, even when the toolbar initialization ultimately
+      // results in a horizontal orientation.
+      //
+      // @see Drupal.behaviors.toolbar.attach() where admin menu subtrees
+      // loading is invoked during initialization after media query conditions
+      // have been processed.
+      if (this.model.changed.orientation === 'vertical' || this.model.changed.activeTab) {
+        this.loadSubtrees();
+      }
+      // Trigger a recalculation of viewport displacing elements. Use setTimeout
+      // to ensure this recalculation happens after changes to visual elements
+      // have processed.
+      window.setTimeout(function () {
+        Drupal.displace(true);
+      }, 0);
+      return this;
+    },
+
+    /**
+     * Responds to a toolbar tab click.
+     *
+     * @param jQuery.Event event
+     */
+    onTabClick: function (event) {
+      // If this tab has a tray associated with it, it is considered an
+      // activatable tab.
+      if (event.target.hasAttribute('data-toolbar-tray')) {
+        var activeTab = this.model.get('activeTab');
+        var clickedTab = event.target;
+
+        // Set the event target as the active item if it is not already.
+        this.model.set('activeTab', (!activeTab || clickedTab !== activeTab) ? clickedTab : null);
+
+        event.preventDefault();
+        event.stopPropagation();
+      }
+    },
+
+    /**
+     * Toggles the orientation of a toolbar tray.
+     *
+     * @param jQuery.Event event
+     */
+    onOrientationToggleClick: function (event) {
+      var orientation = this.model.get('orientation');
+      // Determine the toggle-to orientation.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      var locked = (antiOrientation === 'vertical') ? true : false;
+      // Remember the locked state.
+      if (locked) {
+        localStorage.setItem('Drupal.toolbar.trayVerticalLocked', 'true');
+      }
+      else {
+        localStorage.removeItem('Drupal.toolbar.trayVerticalLocked');
+      }
+      // Update the model.
+      this.model.set({
+        locked: locked,
+        orientation: antiOrientation
+      }, {
+        validate: true,
+        override: true
+      });
+
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Updates the display of the tabs: toggles a tab and the associated tray.
+     */
+    updateTabs: function () {
+      var $tab = $(this.model.get('activeTab'));
+      // Deactivate the previous tab.
+      $(this.model.previous('activeTab'))
+        .removeClass('is-active')
+        .prop('aria-pressed', false);
+      // Deactivate the previous tray.
+      $(this.model.previous('activeTray'))
+        .removeClass('is-active');
+
+      // Activate the selected tab.
+      if ($tab.length > 0) {
+        $tab
+          .addClass('is-active')
+          // Mark the tab as pressed.
+          .prop('aria-pressed', true);
+        var name = $tab.attr('data-toolbar-tray');
+        // Store the active tab name or remove the setting.
+        var id = $tab.get(0).id;
+        if (id) {
+          localStorage.setItem('Drupal.toolbar.activeTabID', JSON.stringify(id));
+        }
+        // Activate the associated tray.
+        var $tray = this.$el.find('[data-toolbar-tray="' + name + '"].toolbar-tray');
+        if ($tray.length) {
+          $tray.addClass('is-active');
+          this.model.set('activeTray', $tray.get(0));
+        }
+        else {
+          // There is no active tray.
+          this.model.set('activeTray', null);
+        }
+      }
+      else {
+        // There is no active tray.
+        this.model.set('activeTray', null);
+        localStorage.removeItem('Drupal.toolbar.activeTabID');
+      }
+    },
+
+    /**
+     * Update the attributes of the toolbar bar element.
+     */
+    updateBarAttributes: function () {
+      var isOriented = this.model.get('isOriented');
+      if (isOriented) {
+        this.$el.find('.toolbar-bar').attr('data-offset-top', '');
+      }
+      else {
+        this.$el.find('.toolbar-bar').removeAttr('data-offset-top');
+      }
+      // Toggle between a basic vertical view and a more sophisticated
+      // horizontal and vertical display of the toolbar bar and trays.
+      this.$el.toggleClass('toolbar-oriented', isOriented);
+    },
+
+    /**
+     * Updates the orientation of the active tray if necessary.
+     */
+    updateTrayOrientation: function () {
+      var orientation = this.model.get('orientation');
+      // The antiOrientation is used to render the view of action buttons like
+      // the tray orientation toggle.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      // Update the orientation of the trays.
+      var $trays = this.$el.find('.toolbar-tray')
+        .removeClass('toolbar-tray-horizontal toolbar-tray-vertical')
+        .addClass('toolbar-tray-' + orientation);
+
+      // Update the tray orientation toggle button.
+      var iconClass = 'toolbar-icon-toggle-' + orientation;
+      var iconAntiClass = 'toolbar-icon-toggle-' + antiOrientation;
+      var $orientationToggle = this.$el.find('.toolbar-toggle-orientation')
+        .toggle(this.model.get('isTrayToggleVisible'));
+      $orientationToggle.find('button')
+        .val(antiOrientation)
+        .attr('title', this.strings[antiOrientation])
+        .text(this.strings[antiOrientation])
+        .removeClass(iconClass)
+        .addClass(iconAntiClass);
+
+      // Update data offset attributes for the trays.
+      var dir = document.documentElement.dir;
+      var edge = (dir === 'rtl') ? 'right' : 'left';
+      // Remove data-offset attributes from the trays so they can be refreshed.
+      $trays.removeAttr('data-offset-left data-offset-right data-offset-top');
+      // If an active vertical tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-vertical.is-active').attr('data-offset-' + edge, '');
+      // If an active horizontal tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-horizontal.is-active').attr('data-offset-top', '');
+    },
+
+    /**
+     * Sets the tops of the trays so that they align with the bottom of the bar.
+     */
+    adjustPlacement: function () {
+      var $trays = this.$el.find('.toolbar-tray');
+      if (!this.model.get('isOriented')) {
+        $trays.css('padding-top', 0);
+        $trays.removeClass('toolbar-tray-horizontal').addClass('toolbar-tray-vertical');
+      }
+      else {
+        // The toolbar container is invisible. Its placement is used to
+        // determine the container for the trays.
+        $trays.css('padding-top', this.$el.find('.toolbar-bar').outerHeight());
+      }
+    },
+
+    /**
+     * Calls the endpoint URI that will return rendered subtrees with JSONP.
+     *
+     * The rendered admin menu subtrees HTML is cached on the client in
+     * localStorage until the cache of the admin menu subtrees on the server-
+     * side is invalidated. The subtreesHash is stored in localStorage as well
+     * and compared to the subtreesHash in drupalSettings to determine when the
+     * admin menu subtrees cache has been invalidated.
+     */
+    loadSubtrees: function () {
+      var $activeTab = $(this.model.get('activeTab'));
+      var orientation = this.model.get('orientation');
+      // Only load and render the admin menu subtrees if:
+      //   (1) They have not been loaded yet.
+      //   (2) The active tab is the administration menu tab, indicated by the
+      //       presence of the data-drupal-subtrees attribute.
+      //   (3) The orientation of the tray is vertical.
+      if (!this.model.get('areSubtreesLoaded') && typeof $activeTab.data('drupal-subtrees') !== 'undefined' && orientation === 'vertical') {
+        var subtreesHash = drupalSettings.toolbar.subtreesHash;
+        var langcode = drupalSettings.toolbar.langcode;
+        var endpoint = Drupal.url('toolbar/subtrees/' + subtreesHash + '/' + langcode);
+        var cachedSubtreesHash = localStorage.getItem('Drupal.toolbar.subtreesHash');
+        var cachedSubtrees = JSON.parse(localStorage.getItem('Drupal.toolbar.subtrees'));
+        var isVertical = this.model.get('orientation') === 'vertical';
+        // If we have the subtrees in localStorage and the subtree hash has not
+        // changed, then use the cached data.
+        if (isVertical && subtreesHash === cachedSubtreesHash && cachedSubtrees) {
+          Drupal.toolbar.setSubtrees.resolve(cachedSubtrees);
+        }
+        // Only make the call to get the subtrees if the orientation of the
+        // toolbar is vertical.
+        else if (isVertical) {
+          // Remove the cached menu information.
+          localStorage.removeItem('Drupal.toolbar.subtreesHash');
+          localStorage.removeItem('Drupal.toolbar.subtrees');
+          // The response from the server will call the resolve method of the
+          // Drupal.toolbar.setSubtrees Promise.
+          $.ajax(endpoint);
+          // Cache the hash for the subtrees locally.
+          localStorage.setItem('Drupal.toolbar.subtreesHash', subtreesHash);
+        }
+      }
+    }
+  });
+
+}(jQuery, Drupal, drupalSettings, Backbone));
+;
+/*! jquery.cookie v1.4.1 | MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});;
+/* jQuery Foundation Joyride Plugin 2.1 | Copyright 2012, ZURB | www.opensource.org/licenses/mit-license.php */
+(function(e,t,n){"use strict";var r={version:"2.0.3",tipLocation:"bottom",nubPosition:"auto",scroll:!0,scrollSpeed:300,timer:0,autoStart:!1,startTimerOnClick:!0,startOffset:0,nextButton:!0,tipAnimation:"fade",pauseAfter:[],tipAnimationFadeSpeed:300,cookieMonster:!1,cookieName:"joyride",cookieDomain:!1,cookiePath:!1,localStorage:!1,localStorageKey:"joyride",tipContainer:"body",modal:!1,expose:!1,postExposeCallback:e.noop,preRideCallback:e.noop,postRideCallback:e.noop,preStepCallback:e.noop,postStepCallback:e.noop,template:{link:'<a href="#close" class="joyride-close-tip">X</a>',timer:'<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',tip:'<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',wrapper:'<div class="joyride-content-wrapper" role="dialog"></div>',button:'<a href="#" class="joyride-next-tip"></a>',modal:'<div class="joyride-modal-bg"></div>',expose:'<div class="joyride-expose-wrapper"></div>',exposeCover:'<div class="joyride-expose-cover"></div>'}},i=i||!1,s={},o={init:function(n){return this.each(function(){e.isEmptyObject(s)?(s=e.extend(!0,r,n),s.document=t.document,s.$document=e(s.document),s.$window=e(t),s.$content_el=e(this),s.$body=e(s.tipContainer),s.body_offset=e(s.tipContainer).position(),s.$tip_content=e("> li",s.$content_el),s.paused=!1,s.attempts=0,s.tipLocationPatterns={top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},o.jquery_check(),e.isFunction(e.cookie)||(s.cookieMonster=!1),(!s.cookieMonster||!e.cookie(s.cookieName))&&(!s.localStorage||!o.support_localstorage()||!localStorage.getItem(s.localStorageKey))&&(s.$tip_content.each(function(t){o.create({$li:e(this),index:t})}),s.autoStart&&(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"))),s.$document.on("click.joyride",".joyride-next-tip, .joyride-modal-bg",function(e){e.preventDefault(),s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())}),s.$document.on("click.joyride",".joyride-close-tip",function(e){e.preventDefault(),o.end()}),s.$window.bind("resize.joyride",function(t){if(s.$li){if(s.exposed&&s.exposed.length>0){var n=e(s.exposed);n.each(function(){var t=e(this);o.un_expose(t),o.expose(t)})}o.is_phone()?o.pos_phone():o.pos_default()}})):o.restart()})},resume:function(){o.set_li(),o.show()},nextTip:function(){s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())},tip_template:function(t){var n,r,i;return t.tip_class=t.tip_class||"",n=e(s.template.tip).addClass(t.tip_class),r=e.trim(e(t.li).html())+o.button_text(t.button_text)+s.template.link+o.timer_instance(t.index),i=e(s.template.wrapper),t.li.attr("data-aria-labelledby")&&i.attr("aria-labelledby",t.li.attr("data-aria-labelledby")),t.li.attr("data-aria-describedby")&&i.attr("aria-describedby",t.li.attr("data-aria-describedby")),n.append(i),n.first().attr("data-index",t.index),e(".joyride-content-wrapper",n).append(r),n[0]},timer_instance:function(t){var n;return t===0&&s.startTimerOnClick&&s.timer>0||s.timer===0?n="":n=o.outerHTML(e(s.template.timer)[0]),n},button_text:function(t){return s.nextButton?(t=e.trim(t)||"Next",t=o.outerHTML(e(s.template.button).append(t)[0])):t="",t},create:function(t){var n=t.$li.attr("data-button")||t.$li.attr("data-text"),r=t.$li.attr("class"),i=e(o.tip_template({tip_class:r,index:t.index,button_text:n,li:t.$li}));e(s.tipContainer).append(i)},show:function(t){var r={},i,u=[],a=0,f,l=null;if(s.$li===n||e.inArray(s.$li.index(),s.pauseAfter)===-1){s.paused?s.paused=!1:o.set_li(t),s.attempts=0;if(s.$li.length&&s.$target.length>0){t&&(s.preRideCallback(s.$li.index(),s.$next_tip),s.modal&&o.show_modal()),s.preStepCallback(s.$li.index(),s.$next_tip),u=(s.$li.data("options")||":").split(";"),a=u.length;for(i=a-1;i>=0;i--)f=u[i].split(":"),f.length===2&&(r[e.trim(f[0])]=e.trim(f[1]));s.tipSettings=e.extend({},s,r),s.tipSettings.tipLocationPattern=s.tipLocationPatterns[s.tipSettings.tipLocation],s.modal&&s.expose&&o.expose(),!/body/i.test(s.$target.selector)&&s.scroll&&o.scroll_to(),o.is_phone()?o.pos_phone(!0):o.pos_default(!0),l=e(".joyride-timer-indicator",s.$next_tip),/pop/i.test(s.tipAnimation)?(l.outerWidth(0),s.timer>0?(s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.show()):/fade/i.test(s.tipAnimation)&&(l.outerWidth(0),s.timer>0?(s.$next_tip.fadeIn(s.tipAnimationFadeSpeed),s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.fadeIn(s.tipAnimationFadeSpeed)),s.$current_tip=s.$next_tip,e(".joyride-next-tip",s.$current_tip).focus(),o.tabbable(s.$current_tip)}else s.$li&&s.$target.length<1?o.show():o.end()}else s.paused=!0},is_phone:function(){return i?i.mq("only screen and (max-width: 767px)"):s.$window.width()<767?!0:!1},support_localstorage:function(){return i?i.localstorage:!!t.localStorage},hide:function(){s.modal&&s.expose&&o.un_expose(),s.modal||e(".joyride-modal-bg").hide(),s.$current_tip.hide(),s.postStepCallback(s.$li.index(),s.$current_tip)},set_li:function(e){e?(s.$li=s.$tip_content.eq(s.startOffset),o.set_next_tip(),s.$current_tip=s.$next_tip):(s.$li=s.$li.next(),o.set_next_tip()),o.set_target()},set_next_tip:function(){s.$next_tip=e(".joyride-tip-guide[data-index="+s.$li.index()+"]")},set_target:function(){var t=s.$li.attr("data-class"),n=s.$li.attr("data-id"),r=function(){return n?e(s.document.getElementById(n)):t?e("."+t).filter(":visible").first():e("body")};s.$target=r()},scroll_to:function(){var t,n;t=s.$window.height()/2,n=Math.ceil(s.$target.offset().top-t+s.$next_tip.outerHeight()),e("html, body").stop().animate({scrollTop:n},s.scrollSpeed)},paused:function(){return e.inArray(s.$li.index()+1,s.pauseAfter)===-1?!0:!1},destroy:function(){e.isEmptyObject(s)||s.$document.off(".joyride"),e(t).off(".joyride"),e(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),e(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(s.automate),s={}},restart:function(){s.autoStart?(o.hide(),s.$li=n,o.show("init")):(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"),s.autoStart=!0)},pos_default:function(t){var n=Math.ceil(s.$window.height()/2),r=s.$next_tip.offset(),i=e(".joyride-nub",s.$next_tip),u=Math.ceil(i.outerWidth()/2),a=Math.ceil(i.outerHeight()/2),f=t||!1;f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show());if(!/body/i.test(s.$target.selector)){var l=s.tipSettings.tipAdjustmentY?parseInt(s.tipSettings.tipAdjustmentY):0,c=s.tipSettings.tipAdjustmentX?parseInt(s.tipSettings.tipAdjustmentX):0;o.bottom()?(s.$next_tip.css({top:s.$target.offset().top+a+s.$target.outerHeight()+l,left:s.$target.offset().left+c}),/right/i.test(s.tipSettings.nubPosition)&&s.$next_tip.css("left",s.$target.offset().left-s.$next_tip.outerWidth()+s.$target.outerWidth()),o.nub_position(i,s.tipSettings.nubPosition,"top")):o.top()?(s.$next_tip.css({top:s.$target.offset().top-s.$next_tip.outerHeight()-a+l,left:s.$target.offset().left+c}),o.nub_position(i,s.tipSettings.nubPosition,"bottom")):o.right()?(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.outerWidth()+s.$target.offset().left+u+c}),o.nub_position(i,s.tipSettings.nubPosition,"left")):o.left()&&(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.offset().left-s.$next_tip.outerWidth()-u+c}),o.nub_position(i,s.tipSettings.nubPosition,"right")),!o.visible(o.corners(s.$next_tip))&&s.attempts<s.tipSettings.tipLocationPattern.length&&(i.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),s.tipSettings.tipLocation=s.tipSettings.tipLocationPattern[s.attempts],s.attempts++,o.pos_default(!0))}else s.$li.length&&o.pos_modal(i);f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_phone:function(t){var n=s.$next_tip.outerHeight(),r=s.$next_tip.offset(),i=s.$target.outerHeight(),u=e(".joyride-nub",s.$next_tip),a=Math.ceil(u.outerHeight()/2),f=t||!1;u.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show()),/body/i.test(s.$target.selector)?s.$li.length&&o.pos_modal(u):o.top()?(s.$next_tip.offset({top:s.$target.offset().top-n-a}),u.addClass("bottom")):(s.$next_tip.offset({top:s.$target.offset().top+i+a}),u.addClass("top")),f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_modal:function(e){o.center(),e.hide(),o.show_modal()},show_modal:function(){e(".joyride-modal-bg").length<1&&e("body").append(s.template.modal).show(),/pop/i.test(s.tipAnimation)?e(".joyride-modal-bg").show():e(".joyride-modal-bg").fadeIn(s.tipAnimationFadeSpeed)},expose:function(){var n,r,i,u,a="expose-"+Math.floor(Math.random()*1e4);if(arguments.length>0&&arguments[0]instanceof e)i=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;i=s.$target}if(i.length<1)return t.console&&console.error("element not valid",i),!1;n=e(s.template.expose),s.$body.append(n),n.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),r=e(s.template.exposeCover),u={zIndex:i.css("z-index"),position:i.css("position")},i.css("z-index",n.css("z-index")*1+1),u.position=="static"&&i.css("position","relative"),i.data("expose-css",u),r.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),s.$body.append(r),n.addClass(a),r.addClass(a),s.tipSettings.exposeClass&&(n.addClass(s.tipSettings.exposeClass),r.addClass(s.tipSettings.exposeClass)),i.data("expose",a),s.postExposeCallback(s.$li.index(),s.$next_tip,i),o.add_exposed(i)},un_expose:function(){var n,r,i,u,a=!1;if(arguments.length>0&&arguments[0]instanceof e)r=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;r=s.$target}if(r.length<1)return t.console&&console.error("element not valid",r),!1;n=r.data("expose"),i=e("."+n),arguments.length>1&&(a=arguments[1]),a===!0?e(".joyride-expose-wrapper,.joyride-expose-cover").remove():i.remove(),u=r.data("expose-css"),u.zIndex=="auto"?r.css("z-index",""):r.css("z-index",u.zIndex),u.position!=r.css("position")&&(u.position=="static"?r.css("position",""):r.css("position",u.position)),r.removeData("expose"),r.removeData("expose-z-index"),o.remove_exposed(r)},add_exposed:function(t){s.exposed=s.exposed||[],t instanceof e?s.exposed.push(t[0]):typeof t=="string"&&s.exposed.push(t)},remove_exposed:function(t){var n;t instanceof e?n=t[0]:typeof t=="string"&&(n=t),s.exposed=s.exposed||[];for(var r=0;r<s.exposed.length;r++)if(s.exposed[r]==n){s.exposed.splice(r,1);return}},center:function(){var e=s.$window;return s.$next_tip.css({top:(e.height()-s.$next_tip.outerHeight())/2+e.scrollTop(),left:(e.width()-s.$next_tip.outerWidth())/2+e.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(s.tipSettings.tipLocation)},top:function(){return/top/i.test(s.tipSettings.tipLocation)},right:function(){return/right/i.test(s.tipSettings.tipLocation)},left:function(){return/left/i.test(s.tipSettings.tipLocation)},corners:function(e){var t=s.$window,n=t.height()/2,r=Math.ceil(s.$target.offset().top-n+s.$next_tip.outerHeight()),i=t.width()+t.scrollLeft(),o=t.height()+r,u=t.height()+t.scrollTop(),a=t.scrollTop();return r<a&&(r<0?a=0:a=r),o>u&&(u=o),[e.offset().top<a,i<e.offset().left+e.outerWidth(),u<e.offset().top+e.outerHeight(),t.scrollLeft()>e.offset().left]},visible:function(e){var t=e.length;while(t--)if(e[t])return!1;return!0},nub_position:function(e,t,n){t==="auto"?e.addClass(n):e.addClass(t)},startTimer:function(){s.$li.length?s.automate=setTimeout(function(){o.hide(),o.show(),o.startTimer()},s.timer):clearTimeout(s.automate)},end:function(){s.cookieMonster&&e.cookie(s.cookieName,"ridden",{expires:365,domain:s.cookieDomain,path:s.cookiePath}),s.localStorage&&localStorage.setItem(s.localStorageKey,!0),s.timer>0&&clearTimeout(s.automate),s.modal&&s.expose&&o.un_expose(),s.$current_tip&&s.$current_tip.hide(),s.$li&&(s.postStepCallback(s.$li.index(),s.$current_tip),s.postRideCallback(s.$li.index(),s.$current_tip)),e(".joyride-modal-bg").hide()},jquery_check:function(){return e.isFunction(e.fn.on)?!0:(e.fn.on=function(e,t,n){return this.delegate(t,e,n)},e.fn.off=function(e,t,n){return this.undelegate(t,e,n)},!1)},outerHTML:function(e){return e.outerHTML||(new XMLSerializer).serializeToString(e)},version:function(){return s.version},tabbable:function(t){e(t).on("keydown",function(n){if(!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===27){n.preventDefault(),o.end();return}if(n.keyCode!==9)return;var r=e(t).find(":tabbable"),i=r.filter(":first"),s=r.filter(":last");n.target===s[0]&&!n.shiftKey?(i.focus(1),n.preventDefault()):n.target===i[0]&&n.shiftKey&&(s.focus(1),n.preventDefault())})}};e.fn.joyride=function(t){if(o[t])return o[t].apply(this,Array.prototype.slice.call(arguments,1));if(typeof t=="object"||!t)return o.init.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.joyride")}})(jQuery,this);
+;
+/**
+ * @file
+ * Attaches behaviors for the Tour module's toolbar tab.
+ */
+
+(function ($, Backbone, Drupal, document) {
+
+  "use strict";
+
+  var queryString = decodeURI(window.location.search);
+
+  /**
+   * Attaches the tour's toolbar tab behavior.
+   *
+   * It uses the query string for:
+   * - tour: When ?tour=1 is present, the tour will start automatically
+   *         after the page has loaded.
+   * - tips: Pass ?tips=class in the url to filter the available tips to
+   *         the subset which match the given class.
+   *
+   * Example:
+   *   http://example.com/foo?tour=1&tips=bar
+   */
+  Drupal.behaviors.tour = {
+    attach: function (context) {
+      $('body').once('tour').each(function () {
+        var model = new Drupal.tour.models.StateModel();
+        new Drupal.tour.views.ToggleTourView({
+          el: $(context).find('#toolbar-tab-tour'),
+          model: model
+        });
+
+        model
+          // Allow other scripts to respond to tour events.
+          .on('change:isActive', function (model, isActive) {
+            $(document).trigger((isActive) ? 'drupalTourStarted' : 'drupalTourStopped');
+          })
+          // Initialization: check whether a tour is available on the current page.
+          .set('tour', $(context).find('ol#tour'));
+
+        // Start the tour immediately if toggled via query string.
+        if (/tour=?/i.test(queryString)) {
+          model.set('isActive', true);
+        }
+      });
+    }
+  };
+
+  Drupal.tour = Drupal.tour || {models: {}, views: {}};
+
+  /**
+   * Backbone Model for tours.
+   */
+  Drupal.tour.models.StateModel = Backbone.Model.extend({
+    defaults: {
+      // Indicates whether the Drupal root window has a tour.
+      tour: [],
+      // Indicates whether the tour is currently running.
+      isActive: false,
+      // Indicates which tour is the active one (necessary to cleanly stop).
+      activeTour: []
+    }
+  });
+
+  /**
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.tour.views.ToggleTourView = Backbone.View.extend({
+
+    events: {'click': 'onClick'},
+
+    /**
+     * Implements Backbone Views' initialize().
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:tour change:isActive', this.render);
+      this.listenTo(this.model, 'change:isActive', this.toggleTour);
+    },
+
+    /**
+     * Implements Backbone Views' render().
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', this._getTour().length === 0);
+      // Render the state.
+      var isActive = this.model.get('isActive');
+      this.$el.find('button')
+        .toggleClass('is-active', isActive)
+        .prop('aria-pressed', isActive);
+      return this;
+    },
+
+    /**
+     * Model change handler; starts or stops the tour.
+     */
+    toggleTour: function () {
+      if (this.model.get('isActive')) {
+        var $tour = this._getTour();
+        this._removeIrrelevantTourItems($tour, this._getDocument());
+        var that = this;
+        if ($tour.find('li').length) {
+          $tour.joyride({
+            autoStart: true,
+            postRideCallback: function () { that.model.set('isActive', false); },
+            template: { // HTML segments for tip layout
+              link: '<a href=\"#close\" class=\"joyride-close-tip\">&times;</a>',
+              button: '<a href=\"#\" class=\"button button--primary joyride-next-tip\"></a>'
+            }
+          });
+          this.model.set({isActive: true, activeTour: $tour});
+        }
+      }
+      else {
+        this.model.get('activeTour').joyride('destroy');
+        this.model.set({isActive: false, activeTour: []});
+      }
+    },
+
+    /**
+     * Toolbar tab click event handler; toggles isActive.
+     */
+    onClick: function (event) {
+      this.model.set('isActive', !this.model.get('isActive'));
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Gets the tour.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to a <ol> containing tour items.
+     */
+    _getTour: function () {
+      return this.model.get('tour');
+    },
+
+    /**
+     * Gets the relevant document as a jQuery element.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to the document within which a tour would be
+     *   started given the current state.
+     */
+    _getDocument: function () {
+      return $(document);
+    },
+
+    /**
+     * Removes tour items for elements that don't have matching page elements or
+     * are explicitly filtered out via the 'tips' query string.
+     *
+     * Example:
+     *   http://example.com/foo?tips=bar
+     *
+     *   The above will filter out tips that do not have a matching page element or
+     *   don't have the "bar" class.
+     *
+     * @param jQuery $tour
+     *   A jQuery element pointing to a <ol> containing tour items.
+     * @param jQuery $document
+     *   A jQuery element pointing to the document within which the elements
+     *   should be sought.
+     *
+     * @see _getDocument()
+     */
+    _removeIrrelevantTourItems: function ($tour, $document) {
+      var removals = false;
+      var tips = /tips=([^&]+)/.exec(queryString);
+      $tour
+        .find('li')
+        .each(function () {
+          var $this = $(this);
+          var itemId = $this.attr('data-id');
+          var itemClass = $this.attr('data-class');
+          // If the query parameter 'tips' is set, remove all tips that don't
+          // have the matching class.
+          if (tips && !$(this).hasClass(tips[1])) {
+            removals = true;
+            $this.remove();
+            return;
+          }
+          // Remove tip from the DOM if there is no corresponding page element.
+          if ((!itemId && !itemClass) ||
+            (itemId && $document.find('#' + itemId).length) ||
+            (itemClass && $document.find('.' + itemClass).length)) {
+            return;
+          }
+          removals = true;
+          $this.remove();
+        });
+
+      // If there were removals, we'll have to do some clean-up.
+      if (removals) {
+        var total = $tour.find('li').length;
+        if (!total) {
+          this.model.set({tour: []});
+        }
+
+        $tour
+          .find('li')
+          // Rebuild the progress data.
+          .each(function (index) {
+            var progress = Drupal.t('!tour_item of !total', {'!tour_item': index + 1, '!total': total});
+            $(this).find('.tour-progress').text(progress);
+          })
+          // Update the last item to have "End tour" as the button.
+          .eq(-1)
+          .attr('data-text', Drupal.t('End tour'));
+      }
+    }
+
+  });
+
+})(jQuery, Backbone, Drupal, document);
+;
+/**
+ * @file
+ * Manages page tabbing modifications made by modules.
+ */
+
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Provides an API for managing page tabbing order modifications.
+   */
+  function TabbingManager() {
+    // Tabbing sets are stored as a stack. The active set is at the top of the
+    // stack. We use a JavaScript array as if it were a stack; we consider the
+    // first element to be the bottom and the last element to be the top. This
+    // allows us to use JavaScript's built-in Array.push() and Array.pop()
+    // methods.
+    this.stack = [];
+  }
+
+  /**
+   * Add public methods to the TabbingManager class.
+   */
+  $.extend(TabbingManager.prototype, {
+    /**
+     * Constrain tabbing to the specified set of elements only.
+     *
+     * Makes elements outside of the specified set of elements unreachable via the
+     * tab key.
+     *
+     * @param jQuery elements
+     *   The set of elements to which tabbing should be constrained. Can also be
+     *   a jQuery-compatible selector string.
+     *
+     * @return TabbingContext
+     */
+    constrain: function (elements) {
+      // Deactivate all tabbingContexts to prepare for the new constraint. A
+      // tabbingContext instance will only be reactivated if the stack is unwound
+      // to it in the _unwindStack() method.
+      var il = this.stack.length;
+      for (var i = 0; i < il; i++) {
+        this.stack[i].deactivate();
+      }
+
+      // The "active tabbing set" are the elements tabbing should be constrained
+      // to.
+      var $elements = $(elements).find(':tabbable').addBack(':tabbable');
+
+      var tabbingContext = new TabbingContext({
+        // The level is the current height of the stack before this new
+        // tabbingContext is pushed on top of the stack.
+        level: this.stack.length,
+        $tabbableElements: $elements
+      });
+
+      this.stack.push(tabbingContext);
+
+      // Activates the tabbingContext; this will manipulate the DOM to constrain
+      // tabbing.
+      tabbingContext.activate();
+
+      // Allow modules to respond to the constrain event.
+      $(document).trigger('drupalTabbingConstrained', tabbingContext);
+
+      return tabbingContext;
+    },
+
+    /**
+     * Restores a former tabbingContext when an active tabbingContext is released.
+     *
+     * The TabbingManager stack of tabbingContext instances will be unwound from
+     * the top-most released tabbingContext down to the first non-released
+     * tabbingContext instance. This non-released instance is then activated.
+     */
+    release: function () {
+      // Unwind as far as possible: find the topmost non-released tabbingContext.
+      var toActivate = this.stack.length - 1;
+      while (toActivate >= 0 && this.stack[toActivate].released) {
+        toActivate--;
+      }
+
+      // Delete all tabbingContexts after the to be activated one. They have
+      // already been deactivated, so their effect on the DOM has been reversed.
+      this.stack.splice(toActivate + 1);
+
+      // Get topmost tabbingContext, if one exists, and activate it.
+      if (toActivate >= 0) {
+        this.stack[toActivate].activate();
+      }
+    },
+
+    /**
+     * Makes all elements outside the of the tabbingContext's set untabbable.
+     *
+     * Elements made untabbable have their original tabindex and autofocus values
+     * stored so that they might be restored later when this tabbingContext
+     * is deactivated.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been activated.
+     */
+    activate: function (tabbingContext) {
+      var $set = tabbingContext.$tabbableElements;
+      var level = tabbingContext.level;
+      // Determine which elements are reachable via tabbing by default.
+      var $disabledSet = $(':tabbable')
+        // Exclude elements of the active tabbing set.
+        .not($set);
+      // Set the disabled set on the tabbingContext.
+      tabbingContext.$disabledElements = $disabledSet;
+      // Record the tabindex for each element, so we can restore it later.
+      var il = $disabledSet.length;
+      for (var i = 0; i < il; i++) {
+        this.recordTabindex($disabledSet.eq(i), level);
+      }
+      // Make all tabbable elements outside of the active tabbing set unreachable.
+      $disabledSet
+        .prop('tabindex', -1)
+        .prop('autofocus', false);
+
+      // Set focus on an element in the tabbingContext's set of tabbable elements.
+      // First, check if there is an element with an autofocus attribute. Select
+      // the last one from the DOM order.
+      var $hasFocus = $set.filter('[autofocus]').eq(-1);
+      // If no element in the tabbable set has an autofocus attribute, select the
+      // first element in the set.
+      if ($hasFocus.length === 0) {
+        $hasFocus = $set.eq(0);
+      }
+      $hasFocus.trigger('focus');
+    },
+
+    /**
+     * Restores that tabbable state of a tabbingContext's disabled elements.
+     *
+     * Elements that were made untabbable have their original tabindex and autofocus
+     * values restored.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been deactivated.
+     */
+    deactivate: function (tabbingContext) {
+      var $set = tabbingContext.$disabledElements;
+      var level = tabbingContext.level;
+      var il = $set.length;
+      for (var i = 0; i < il; i++) {
+        this.restoreTabindex($set.eq(i), level);
+      }
+    },
+
+    /**
+     * Records the tabindex and autofocus values of an untabbable element.
+     *
+     * @param jQuery $set
+     *   The set of elements that have been disabled.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be recorded.
+     */
+    recordTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices') || {};
+      tabInfo[level] = {
+        tabindex: $el[0].getAttribute('tabindex'),
+        autofocus: $el[0].hasAttribute('autofocus')
+      };
+      $el.data('drupalOriginalTabIndices', tabInfo);
+    },
+
+    /**
+     * Restores the tabindex and autofocus values of a reactivated element.
+     *
+     * @param jQuery $el
+     *   The element that is being reactivated.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be restored.
+     */
+    restoreTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices');
+      if (tabInfo && tabInfo[level]) {
+        var data = tabInfo[level];
+        if (data.tabindex) {
+          $el[0].setAttribute('tabindex', data.tabindex);
+        }
+        // If the element did not have a tabindex at this stack level then
+        // remove it.
+        else {
+          $el[0].removeAttribute('tabindex');
+        }
+        if (data.autofocus) {
+          $el[0].setAttribute('autofocus', 'autofocus');
+        }
+
+        // Clean up $.data.
+        if (level === 0) {
+          // Remove all data.
+          $el.removeData('drupalOriginalTabIndices');
+        }
+        else {
+          // Remove the data for this stack level and higher.
+          var levelToDelete = level;
+          while (tabInfo.hasOwnProperty(levelToDelete)) {
+            delete tabInfo[levelToDelete];
+            levelToDelete++;
+          }
+          $el.data('drupalOriginalTabIndices', tabInfo);
+        }
+      }
+    }
+  });
+
+  /**
+   * Stores a set of tabbable elements.
+   *
+   * This constraint can be removed with the release() method.
+   *
+   * @param Object options
+   *   A set of initiating values that include:
+   *   - Number level: The level in the TabbingManager's stack of this
+   *   tabbingContext.
+   *   - jQuery $tabbableElements: The DOM elements that should be reachable via
+   *   the tab key when this tabbingContext is active.
+   *   - jQuery $disabledElements: The DOM elements that should not be reachable
+   *   via the tab key when this tabbingContext is active.
+   *   - Boolean released: A released tabbingContext can never be activated again.
+   *   It will be cleaned up when the TabbingManager unwinds its stack.
+   *   - Boolean active: When true, the tabbable elements of this tabbingContext
+   *   will be reachable via the tab key and the disabled elements will not. Only
+   *   one tabbingContext can be active at a time.
+   */
+  function TabbingContext(options) {
+    $.extend(this, {
+      level: null,
+      $tabbableElements: $(),
+      $disabledElements: $(),
+      released: false,
+      active: false
+    }, options);
+  }
+
+  /**
+   * Add public methods to the TabbingContext class.
+   */
+  $.extend(TabbingContext.prototype, {
+    /**
+     * Releases this TabbingContext.
+     *
+     * Once a TabbingContext object is released, it can never be activated again.
+     */
+    release: function () {
+      if (!this.released) {
+        this.deactivate();
+        this.released = true;
+        Drupal.tabbingManager.release(this);
+        // Allow modules to respond to the tabbingContext release event.
+        $(document).trigger('drupalTabbingContextReleased', this);
+      }
+    },
+
+    /**
+     * Activates this TabbingContext.
+     */
+    activate: function () {
+      // A released TabbingContext object can never be activated again.
+      if (!this.active && !this.released) {
+        this.active = true;
+        Drupal.tabbingManager.activate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextActivated', this);
+      }
+    },
+
+    /**
+     * Deactivates this TabbingContext.
+     */
+    deactivate: function () {
+      if (this.active) {
+        this.active = false;
+        Drupal.tabbingManager.deactivate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextDeactivated', this);
+      }
+    }
+  });
+
+  // Mark this behavior as processed on the first pass and return if it is
+  // already processed.
+  if (Drupal.tabbingManager) {
+    return;
+  }
+  Drupal.tabbingManager = new TabbingManager();
+
+}(jQuery, Drupal));
+;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module's edit toolbar tab.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  var strings = {
+    tabbingReleased: Drupal.t('Tabbing is no longer constrained by the Contextual module.'),
+    tabbingConstrained: Drupal.t('Tabbing is constrained to a set of @contextualsCount and the edit mode toggle.'),
+    pressEsc: Drupal.t('Press the esc key to exit.')
+  };
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param DOM links
+   *   A contextual links DOM element as rendered by the server.
+   */
+  function initContextualToolbar(context) {
+    if (!Drupal.contextual || !Drupal.contextual.collection) {
+      return;
+    }
+
+    var contextualToolbar = Drupal.contextualToolbar;
+    var model = contextualToolbar.model = new contextualToolbar.StateModel({
+      // Checks whether localStorage indicates we should start in edit mode
+      // rather than view mode.
+      // @see Drupal.contextualToolbar.VisualView.persist()
+      isViewing: localStorage.getItem('Drupal.contextualToolbar.isViewing') !== 'false'
+    }, {
+      contextualCollection: Drupal.contextual.collection
+    });
+
+    var viewOptions = {
+      el: $('.toolbar .toolbar-bar .contextual-toolbar-tab'),
+      model: model,
+      strings: strings
+    };
+    new contextualToolbar.VisualView(viewOptions);
+    new contextualToolbar.AuralView(viewOptions);
+  }
+
+  /**
+   * Attaches contextual's edit toolbar tab behavior.
+   */
+  Drupal.behaviors.contextualToolbar = {
+    attach: function (context) {
+      if ($('body').once('contextualToolbar-init').length) {
+        initContextualToolbar(context);
+      }
+    }
+  };
+
+  Drupal.contextualToolbar = {
+    // The Drupal.contextualToolbar.Model instance.
+    model: null
+  };
+
+})(jQuery, Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone Model for the state of Contextual module's edit toolbar tab.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of the edit mode toggle.
+   */
+  Drupal.contextualToolbar.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // Indicates whether the toggle is currently in "view" or "edit" mode.
+      isViewing: true,
+      // Indicates whether the toggle should be visible or hidden. Automatically
+      // calculated, depends on contextualCount.
+      isVisible: false,
+      // Tracks how many contextual links exist on the page.
+      contextualCount: 0,
+      // A TabbingContext object as returned by Drupal.TabbingManager: the set
+      // of tabbable elements when edit mode is enabled.
+      tabbingContext: null
+    },
+
+    /**
+     * {@inheritdoc}
+     *
+     * @param Object attrs
+     * @param Object options
+     *   An object with the following option:
+     *     - Backbone.collection contextualCollection: the collection of
+     *       Drupal.contextual.StateModel models that represent the contextual
+     *       links on the page.
+     */
+    initialize: function (attrs, options) {
+      // Respond to new/removed contextual links.
+      this.listenTo(options.contextualCollection, {
+        'reset remove add': this.countContextualLinks,
+        'add': this.lockNewContextualLinks
+      });
+
+      this.listenTo(this, {
+        // Automatically determine visibility.
+        'change:contextualCount': this.updateVisibility,
+        // Whenever edit mode is toggled, lock all contextual links.
+        'change:isViewing': function (model, isViewing) {
+          options.contextualCollection.each(function (contextualModel) {
+            contextualModel.set('isLocked', !isViewing);
+          });
+        }
+      });
+    },
+
+    /**
+     * Tracks the number of contextual link models in the collection.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added or removed.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    countContextualLinks: function (contextualModel, contextualCollection) {
+      this.set('contextualCount', contextualCollection.length);
+    },
+
+    /**
+     * Lock newly added contextual links if edit mode is enabled.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    lockNewContextualLinks: function (contextualModel, contextualCollection) {
+      if (!this.get('isViewing')) {
+        contextualModel.set('isLocked', true);
+      }
+    },
+
+    /**
+     * Automatically updates visibility of the view/edit mode toggle.
+     */
+    updateVisibility: function () {
+      this.set('isVisible', this.get('contextualCount') > 0);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of the edit mode toggle.
+ */
+
+(function ($, Drupal, Backbone, _) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of the edit mode toggle (i.e.screen reader support).
+   */
+  Drupal.contextualToolbar.AuralView = Backbone.View.extend({
+
+    // Tracks whether the tabbing constraint announcement has been read once yet.
+    announcedOnce: false,
+
+    /*
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.manageTabbing);
+
+      $(document).on('keyup', _.bind(this.onKeypress, this));
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the state.
+      this.$el.find('button').attr('aria-pressed', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Limits tabbing to the contextual links and edit mode toolbar tab.
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    manageTabbing: function () {
+      var tabbingContext = this.model.get('tabbingContext');
+      // Always release an existing tabbing context.
+      if (tabbingContext) {
+        tabbingContext.release();
+        Drupal.announce(this.options.strings.tabbingReleased);
+      }
+      // Create a new tabbing context when edit mode is enabled.
+      if (!this.model.get('isViewing')) {
+        tabbingContext = Drupal.tabbingManager.constrain($('.contextual-toolbar-tab, .contextual'));
+        this.model.set('tabbingContext', tabbingContext);
+        this.announceTabbingConstraint();
+        this.announcedOnce = true;
+      }
+    },
+
+    /**
+     * Announces the current tabbing constraint.
+     */
+    announceTabbingConstraint: function () {
+      var strings = this.options.strings;
+      Drupal.announce(Drupal.formatString(strings.tabbingConstrained, {
+        '@contextualsCount': Drupal.formatPlural(Drupal.contextual.collection.length, '@count contextual link', '@count contextual links')
+      }));
+      Drupal.announce(strings.pressEsc);
+    },
+
+    /**
+     * Responds to esc and tab key press events.
+     *
+     * @param jQuery.Event event
+     */
+    onKeypress: function (event) {
+      // The first tab key press is tracked so that an annoucement about tabbing
+      // constraints can be raised if edit mode is enabled when the page is
+      // loaded.
+      if (!this.announcedOnce && event.keyCode === 9 && !this.model.get('isViewing')) {
+        this.announceTabbingConstraint();
+        // Set announce to true so that this conditional block won't run again.
+        this.announcedOnce = true;
+      }
+      // Respond to the ESC key. Exit out of edit mode.
+      if (event.keyCode === 27) {
+        this.model.set('isViewing', true);
+      }
+    }
+
+  });
+
+})(jQuery, Drupal, Backbone, _);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of the edit mode toggle.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of the edit mode toggle. Listens to mouse & touch.
+   *
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.contextualToolbar.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click': function () {
+          this.model.set('isViewing', !this.model.get('isViewing'));
+        },
+        'touchend': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.persist);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', !this.model.get('isVisible'));
+      // Render the state.
+      this.$el.find('button').toggleClass('is-active', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Model change handler; persists the isViewing value to localStorage.
+     *
+     * isViewing === true is the default, so only stores in localStorage when
+     * it's not the default value (i.e. false).
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    persist: function (model, isViewing) {
+      if (!isViewing) {
+        localStorage.setItem('Drupal.contextualToolbar.isViewing', 'false');
+      }
+      else {
+        localStorage.removeItem('Drupal.contextualToolbar.isViewing');
+      }
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ *
+ * Replaces the home link in toolbar with a back to site link.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  var pathInfo = drupalSettings.path;
+  var escapeAdminPath = sessionStorage.getItem('escapeAdminPath');
+  var windowLocation = window.location;
+
+  // Saves the last non-administrative page in the browser to be able to link back
+  // to it when browsing administrative pages. If there is a destination parameter
+  // there is not need to save the current path because the page is loaded within
+  // an existing "workflow".
+  if (!pathInfo.currentPathIsAdmin && !/destination=/.test(windowLocation.search)) {
+    sessionStorage.setItem('escapeAdminPath', windowLocation);
+  }
+
+  /**
+   * Replaces the "Home" link with "Back to site" link.
+   *
+   * Back to site link points to the last non-administrative page the user visited
+   * within the same browser tab.
+   */
+  Drupal.behaviors.escapeAdmin = {
+    attach: function () {
+      var $toolbarEscape = $('[data-toolbar-escape-admin]').once('escapeAdmin');
+      if ($toolbarEscape.length && pathInfo.currentPathIsAdmin) {
+        if (escapeAdminPath !== null) {
+          $toolbarEscape.attr('href', escapeAdminPath);
+        }
+        else {
+          $toolbarEscape.text(Drupal.t('Home'));
+        }
+        $toolbarEscape.closest('.toolbar-tab').removeClass('hidden');
+      }
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
diff --git a/sites/default/files/js/js_wSLSvw9LE_9RlifcXbAcPq4S8qOwfFZPr4LUM9sm7dE.js.gz b/sites/default/files/js/js_wSLSvw9LE_9RlifcXbAcPq4S8qOwfFZPr4LUM9sm7dE.js.gz
new file mode 100644
index 0000000..1d4e0ad
--- /dev/null
+++ b/sites/default/files/js/js_wSLSvw9LE_9RlifcXbAcPq4S8qOwfFZPr4LUM9sm7dE.js.gz
@@ -0,0 +1,284 @@
+     zV?~﫠	0!Jr=``8wǱ'v0$AI<XvDγf_ؾ]u@y}v"u^pu|Qek
+GQbwv96E[ϗz/r5=|[~s4.G(f0U>ix֢oMڬ{cuhȗސZ>:QtWL#[$Vmk߶V*,Vm׭u[,TI*lW7hXHWO؟lA<NG5V(ר\M<7,j#rһ}\Φ|Yi|ElvjU΂ċ4eALQ/L~_/>O]4bY.=;At6-UsgCO74֧:}=ͪܔXN 'YĴj;ڔdy? fǛj}m:wF|bi>|Av>?J㬇?iȻA7yF^!d988C߿dO8(?ȣ~8Fy:=ŲkiܤtHCnB&d
+F.gWwG5Քo&j9@.<2"T&װΎţCl097]qz~|<|<yGA,͆v)H&PRB^:z6ÆIĩNm&8	! nG{^0ԯңlX<[Z9=>ҩL5nGqNw;BonN	D{T wvzuǳ."<+'*̼
+hNCGi:gR:<k>"zaNO<>GQoL{-JSF^MޗŸuFEݸNFh=Qd#hl3zFQg̳Q]~CX2Xgyxp\%HDUeY޸HG!+DQKz߄2Ɖuh?WŨΑ݂,7j;/3'Qp6i
+vYgY7( )O$sOѕ`.ﵥ,q@C/'7q#{|l#j
+0PZGZ^v²27jP]-	z0?{#%Ӈn\F ~x1Z4L*6yѪD&e3#~#tV06Sh\M7i2sNn‸w8ZhN g~}y@QA~qs)FtMZ19 㼛SB~>!->ZN.5%y?4#! T	:b;nPfFqf=`22RQ<p22a"j&4\tU*Mj@ 6ְJIiF; ?fѨ;}<NqzDEBh%Ύsfa!LysX
+eG!@RHa!'+!*hķ8	+hp=j3#|J Uܺ@GEȆŹj6b!noNȨce=ZQaj4ҳh1LB|MKp󒄥[PVA0֖F,a)6,Fmb{GIaJ92Ѷ%c0a{m6P9ǳx/e\71xom_~A!8+,gox|>ĳ_u
+P8OΣizW_\s\ş>ܔ7"ws!C|>ǣHHAFBHm>Kf:Dfr˶rB_/w4W||l8
+b<ΗbMe7'^t7<;r9SJkDA}//?<:\^./AH\:;*p{:ov>ACP6L~<vQSH%'g=DePpevvj*%zg:7_`0hסr:*>qКSZ<67jt^E@U~Pa,aq1DzLџ.J|xvF={M}Zz'__i'ShRɛ7?&QW_Z2^cnS<D𮜜)QSǴ{6(?;zm(AIe8y>PEy>^?}RҰϲ͉Un79Ɍ9q;{ig5}*7ۍBH;dl7n62zpVEfc| wemy,~+6в/zAmYiZg~ټ$)|y琎8;.yL$  <F+?=~5fP=ɪ\<eDqkDIǏ/wݣ?>8xY@{Y}N1·0A.[G>kE{bC.vgT'RRL%og7ݽs/@ӟkp(ӌȽ5!/d: +{NyW(T	r,ic"5EzF8r#_Q\&c{DKl8Iv9 W12LQf4(yUͨۙ#T{}:d+R+@AO޻zThk|_|M!cb=c|JelӔĘi@;֐#ʽl5tn6'^ۥTA]qݕRz! !tEԤУf1!A;jݚ"Zܓn'VR3vr&槧Qٟu{uo,"Xh (ٕX",ʇHVynQЁ('ctK:TU
+ʬljo~F|P#-
+mFm3!y=FKRаuֳb	#\vz,Cev@|:U^T^}uzGjV,$և`ǐJ2: ch+˖y!OkmPC^.A|trܮFs(wĺwV}<(QgIu1
+9rQ.fw5cP&Xĺ!Y$UR):_GPv4mcɱ2JG(HFRLӉSyB (~!xg^=uֈ	~tJp )O\DʼJڪs{{&tot+V[:>.iLx '-ۘj(冦w1̛&q`0/3By]DI#L؍KA<A	/ߤGDd+x\5HƔX(+8Zlm*O˅`L:퇼 ޫ!!oClr`7D:" "&mqʸr4Z|T9:50]`Ȓ^>FM7az\֙`>JBE_Tʔ3w2Bo}gm6CrIqsdef7{ʌQ=P6J'T%ӴuAd-UkNh
+Щ;>nnv
+yG0-ʩ%!K4*k	%WgDa`_^N'Śvи
+7VO~w&/釼~Y}Tw`p;Y Aju]BQ=n^н͡2[sDO5rwU;]ajR]*g-Tԭ
+G8$Ra/AC˄i︦軌ТKV7-֔ha|Ofy`"|&IN}m>.6/(ix[6\W^@VvlԡJ: V.W,"Ql#J(Ww;흒OwV$57YezEΨ\:j6U.0(@[nbzM?zRP/{	/u11XBc ({'Jl8t~|+7U4;J _dhsQaN^+>.N>36 aXWEK0.Vt1vP%h:zgRjx"9
+Cc:O<EZؑ1!|8K Áhi4+äi>Uj(ͺV^wg.E2Bas-%%f1m%%Qcȅ}1%i|_hNظ*6	.8c]ad~Li+nvJp0"r "ֶ2hr(ݮ8FAzclQڧ<5KYMhԸXmM@4qev^8j,^FV-WJFG7 f4'Iا^E֡3&bA'M>*&E>MDHXIfzf#[*eK>nnVzKVdI˂؄Pԕǘ0f7[7S_o{@|bL>_G\$' F'PalOQ/f@I1a8׬ES6YCj1܏ -v?(t֋Mr1H}u×*v.^Q;eX}7teK9n|/m0Jҕ7;G[<:ߎˤbF&c0@|]8H*	,<lLVwz6Wܮ콺}~ӫoYOVIп"Y|PAKw0ZuUQ( \1ɠ _i{8Xnf}-} mÐT"J=܄Kc_	x"	W{k낦s0hP{@]bd/y2:>`x%#kF|:N75byĭ`iQF_tޑTƿ4:c?$h\gcBE0 XT\|7k({ЀFV<}RUVU)nYӁ]ּ֗qISټi{aRE({Їv}QGc7'"0ul0bQmtuv;8	F(ii,}%ce#7VKkp8r1B9#HC*4V0#>tӣhDs7Ht޿@懏ފMAU[7J9fey|do>uRiCw<utwo	~JW5qlL(D^<sØr`fn9?͚zX<z妼	ßq,aim1芑IeC5\=&C0ڋAaP>gLrsԠyH\4w),ɬ|iӚdo 9'l}sl2C'	'&ۖ6F4K .z$8	bfUyĽ\{T\֎?HsqY;~;왬Mr,7IѤjť XUMӱ?  Ϗ)Sa:CDd`m!2+gg~ɏ$0f:ǆ{W30t_\)@+YCWԀ' =hhN~rzϿ))! q	n)2te.py-U͕>,	>` oXwcLL-|j鱪DV%IKV+k#X2Q83.P(8vcʲѵzXSd#`JK2[!8#Vf*'iE6d;vfvU	ӅISw5g1~;c I-7ڋC}UXjk>x9b۠DKϒ[5<0eM~tw#cjjXh(,vBmr49-^զI=>ܮ⣂ h:UUv/<gG#^LZJ0ǣި=LF\zkLwn2(ޓgT_||4PٗvOO uu3cg7n6f"IFIpgVٸ(x·X~os!A\XdSG+ mspQ@rR^]V&k;bc!]FlujzYкhΓk'g.$ ;F.<qȁb=X-L5CEDnqB1	7	[̵k<wt970p-_Xb
+9uwb+M=fxQLcuBqE5Rfg{2YWBUDf,V&"	<]G CxSTź1fWƐ
+t9R'İUC<=OڞX9{x7t}LjTrӄrZoes뫦
+{Vɘ⎏gFA!3D☼n<R+fykaN6TҞ@i{fvZkws-!G޴>s<-AfdaA*桉r;%%W	穾[؜@'0"fqiL'5N
+OryG!(eV5܀"aϬM'.7	M ǫt#P',)IZzA2MޱE8q %iۯR^XX|N|@`9'u+/dw<b.-?;[I{W?Q=Jޟi}Q+ӿ	]~X%+ʞ1Etc&tn\qG_Y_НBb>,jVj}@,fr˂x~П9]UUs~`C>#n"iתx2W?lT,Q	Aw<ZF4 *HcwEZf[E*,Y<m/܆o4_t2	fE
+(:K{E#iGG1	6H;ж?.?& )oټewGh0b(s7hfPCD{;>Cհ6ׅy+UߧT9i\ҭ>ؗk	^%Ө~}8>Vn@oi/ϣq4,i˅&9?L016}GL4CgLtNTJ_eDteoo+wbV4n~+f5:kP6C3qJ xcenD6>0J&,M1ǌ#<q8#ܝM6'	Et?"
+32X!$եfp{sўfsa}\"m
+2jҀӥElr7 }x<Tܐ{t|)8Oubl3a:!gbRc(h7}Z]կ-ʸ҂0z"{u$FUHwAqbf"CuL~(wNJfGy	n_`cdJYտFFW$qc$LZǮY/D(G6GGPz\^.1 mjl06ofz[1෢(:!vיvt,MzbЕT-\&ċ~lƊ3vp&I8`_yKQ3qU<aŜ]zƆI6N˚%n]Э T7*+C6tcǆnE4,pg>pěUSUx2ڠeT5z+!RKI	dĭ)9+%ga/%nsse'<|pf"jhUF0-A*L5kІv|6VUӤ0*2Zna"نV2n@ ::DdY`D8OXBj,=J"ܔfIs['<kx{M[nYᕻ֦':NPj:[Z0.a##t+*JC+dŅS{j<(ا#P!:nŻyN.~Tɺp4Qh/н3X3¯GTnIjg73%{xDE1"Z%"8[KeqE/B-߮_tQ5Kx4A	1R%C;:	-MaNr2ݸ`Axf<fG||by7ʂ%aZ9"jȬm7"yAw ']-9?tXܨ<Hnw'RUIq(9l2AX=;\7fxYƎg__h|B?f!.!Z#$@ZnD]Q	ˋ5~/%à06i3/"	c@ҝ7JxX#mDVKqU.#Wը_tVc1#Bz3\EE"XkF͡0$uj'\KxKp4Y-97|>r@ƃ.TXnO	4TVhՕ 'fiZػ0$(zAn#d_A\+tO#oІDam&J@</$/U9b9r-a܀P&ɫRRs_W"PO*bt#~#ìH+rpBDf]>-˥X3Hɸus)nQUKUF{VUNOU9 }UMQ]a[.<"D(6v\e*iBEZH-BAAnCI1W/goGPј ȷ.Sus-vnȣk'|Bqfgg1=bwFiγr3-s,tRkg:'Kqmp.拏+\o4|Q>a`_ofǣ.	TC;C̖)o^.kbVH!ij(,zB+zdГkm`[G	$D٨!!oŰCFx05 Ћ=;kWRnlzKwYމ{v!(0.K(.A ʄ
+o4`*<%lRD3zA3yۓi<_1U0,1rZ5_3tcpC曣>.EtĴ9ФDVlsa`G_'qրx ( =0JxUaw5CSiGĈktf1W~=rIdp_%fUvbTq0mre)&r
+J]]m  qVR;7MK6"7>L97fN] ͨkiO7# u;E,UL=pl#6LM0ڲ,`;` _ƅ#۪dJ3$3`}BӜptDق09q}3ƈJ[cYt
+^LbORـi@o3C yRq|b4.}9P^਴f913M0C|Fl ;'aQ)7Mtp=<~US}YbFћ*c<n7kHE9x?``[B9|ksQ2UrOa r	HsՙxZ~ǉE6:LCE&sEUr>cSTW6wzTcU7)lP+}</JwD\tPCnL̛"?:Wm+.yBM}_fczz5hRD.I||SXG,À juyS,r	UQu}3t:3P4䛣
+d1<FiBn2>&寣jQ։IpS=S/%XJʘ*tvFLi퐝a^L]3SdsBW==()&L]l@$Q۹veM%4<twb;*kAW/E5uΆ^;Q̶ej|j!a;2'ZF!~T(NGaA<#9{f<63qZ@$u6N?D1CC'j,NXǻy&֬ie$AHb&ZljݰAyCLQ/TWֲ=RZ%zhFakhè.XWln]3o`TٜצF=c'CVs9#prsFB.i oa&0Hl8[.b,`ʃ邖3!KߣlK&=9/\_?. w/ӳW>{U*/91-iж^)k%")5HJݬLGFlzH"y8Q;(A?~+j/8Jcwv`[/:#_p}<udac*:zd7:E moU~_mf^8Dx
+c灌)G\F<18wrG˗8PXY%%kH9GvXi~GgU0Cd^:d9@@MXKs55v(Z?j6Wf|O|n,&qRB8:2q|=uW(i+ik{`l w|O}3$e!*С}oI,ڎƒ$F	P&&ws"n{ׇD%R2UW@sa>[.]Y^M@ˎMAFZE(Mc:}pO1T1Xn]**$lȴ)Ĕ}َHamV@匵9Z~.t1"6K>D{~XZUf9?4[=H*l%J>#-DXȬ_qS{μ#&N6,j(9Q0aOl l`R nM:PS"}*ͅNOǈQ&1r18qofE!3XIAX=1:>3|*?t{7~xE6=g@LL&aO.7rA?'`>q'X#(9vC(|FP`	^*NFvMّ?>ՁX  </8{*H~p.Lp<Qʓ	icC}AL|3;%7TjlN~eϯ@)~rsut;0X~qUJIRY7E]绛XnNoѺo݈RP$)hrη+H"'sgSMv^4onf.m("GQ" a={(һfsfFy +iUaM][!(\'`rjmr3I#8,ҕn})=KOM*S[o6bZ/pMB'ytgɜQNGXCT\ u5ˍ2}"A|? )祈vS.뱱I6,DS#aޛwaLCH!1,ve|uj	8ǿ(x'8V$ySw0lUxDdҜ8B<QaJ4.҂FqT?i%X=BۛcúS8] LUUuk:$&;f8u@cj	4/RY*-5DeDΩD9&_3;"[ߨUgec4"ƞ$οl9_?ypǟ \q:P|A[C"C䚎 `Ӆ?	M:]#);Cv!Tc
+cy.ȾgP2͌[6l/QwJYXĂ+ctiKhOKHo6![}u#`SVxُ*S;O;GF+툥v'C:4.`M&/w%>9>C5҂y?5AUF2bJ8;U [A8] t.wqM-ph-{/bg	ҕ+0oxW<h5 af:O'JF0tVy'XY^U?M&ؑ 8NSe)= rF^"̝jǋ;>%~wڭ?Ĵ;T7"rS2.'&u~#yh`QeS zSGN`vN_4XSYЋ=K'Sqr	>U:zQɣCl6osȶU()2wgLVx%1U[|F"j0`$.+cبGDc@!q`BI,fCCzֹu++oBճe%FieT冉}FHPnfS\-_6>!6`=;wYg]ĨM:4E<rH֜]7|X4R1tu*@p`te54.DTu1G
+
+Gss<l3)30ômzqf!V[fl:l!nfZwJ&Kbϑ1aҴ<7PkʲQCCT;Hh¦[%$q27Ma ;[}R
+ʈX/nĈ"aד®xo6nհ8wfjhS,PY'A6%5mVs|NVA#o20(X`eo[bd{m7B.Bj|TF3 󔶶E~Wxb;
+=7;stngZ^dfKвZh	WѢGk=Z?ZRii>=%.rG2OJǋnG9y1"|RO
+=Xik*L(sS9U8NqJ/8/i^oq~m8眷z3'wBcd{D~|I>Je	 FG{h(Za3Ֆ?tM+HՁ_칀o7kVH?%LYaZ~	̒&OSxr)c>ᘦǪ75.$J}Har[C$ S:IP󻚘]Vhϲ̨'ќsKFGh>rSnGOwSn7QpKh-1Ae:b_٣Te<5nv3魋,|>̉N撯0^hl7U^4b{nJ3f&Ӂn\{ k{zc'*۫DUŤV7J!^abk.5FKaZ1&O6yE½]66 :Z
+TSɼrlLn2%13JU|C*Џe-I0FX-n5T$bE\q u/wb*L>qцW%5cgI4k^{ 1zӡ[}_^Յ*zPU'Ug抜=H<"1~
+^?As(8'ݽA3)22{y<:0a=*N,nCbºɂĝY2xK'_/vRiʨ
+R54cF=l4<jOku?E7yOHhDݎv;^@M5!KN*rLBr?LE+
+LIG1b>rfҸieգ3 ʬs=؋LxL|y=JMQ(B0o>HO}o8\qk߈,LalL&岉r 9`w5L*f IE'1v	Nv>%g~jVl5Gva.IBTS+MoC0ܡp`Yc6J|b<sJC5.[P{.iNp#
+dtYeEeWa4!W|1$neݼX^ّ-ߒA[EgϦE<ԗxo{Y<ۋn8Ϲ謈s~nN~ksMvgT*{"E<gXSC/`R͓7O.;nwx1c*lYz'iE|%p"2)nyz 0WgqH9IB\CwsӪ&GW<%vF'fU@nQjѯ6+U|} If#I7-IkfR#X1Ǳ5]|#[+<	hF	6 |J=luqxlؤUfr"f~sBѦJ΂FT(gsӜTbhփ"6X)Ţڜ8gy#(
+"'`2k!JUdA
+Qkc v5NFF`jm_hrT&PFG?ܿ5K_8*R7,_1R^f<yÁt'yʔ8yhWD)cP'M%|l6}1aot7QևɣN$׵LΑ[&u_ݲgX5hi*ؙk*ãAmҮ`FݏTI52$)h81&&P6K)HZz1'pfs@웜132Q[BڪxO-6<l<g=GiNx]H,(Q'wTy;yyAGUeZNz^{}x zCosuɋ8ۀEnGKH2LޜT-W.>x8ڰP#tLSv7ֵK&n4k"8ZuFl3sdaל^{qNcrrOdDND&gno'bYmrɥWE>3njIxrЃS-!4ih]aɓu6o* -0ޡo}Wo^hϵ*oH/V7ۓDɄF5	)<x"hze5d ;pٲi[OVqgĮ*ӆӐ24@:j5_ {q1\'G+NʋjFn&wfz1PYoi!@®ʯ4b㎈sbwyTa\
+NZHULm(<}j|G="lFSjn$G,`+>Juqҁn.LL^bAc);,柉p(m[8ٵlPS9"}< {!C5etF2Je\)qqҸ^Fj~Z4;G	c>JTu\XK5i<o;Oo3{l"AGKc.z \)|Vi _h2^7 ~ayn7Gttǹ(:Z4I⑾jzƱAJn@keDmlF}2oaomn=Qq|}_dD.1QO	-,k,|1{"
+^WIbNT&)cԌ1c\V@f#yLg&mNE~ZQF2m+kaf9U?_S&
+4wWg6	o0Q Pv q38s˹N%(qQ{e0GZ"zDX3':xUf^gWEF)C1T+Ov_C!9~DQwq"x8 wmDRnp)ʈ8̫Vksٓґrr.K?rbyqJOOZߌI3<#B,ðjIw@g'^0G]f&<942,~/nG0hg;͇oa۬_7_Wa,A㲃0;nYӔ![Ghc[̈#A {;eڌYҕ$7Tf턖NŰ;0auoԋ<[]/*)n<vj!X什i;i=
+>LsnT)5iatBw:*"76{407H?:ҁ?Mr
+C@<?*p60pq^ʁ)']'+g~lwO67rOoT$9h=qlNC|x]O/H;#u5_~6Fh-yR\Qu%p f=7>]c2$<s㻛C>	2NvӢU1A*/x8FR?!sVVk~;	?b=q	B>
+D82۷25K$Fn_Qm/_C@{<nn쉣n&q胊+LZ A4hȰ%PƎ/|y6:xrfwFT]-8/QJBOe32}.ż|LY1 U&@|l$H`s*,K
+ۗߋw}4bjȹ}˟,vrJ!yC?GqiSm>!':4D;s?pme'=[{T&5A2	$.m/Ov(
+c8mP;yXƽ4˞ڰ<^Q(G uN+բESQmln>Je&j14΋Wd{ |cDrD(W-G{{gRna h	rsV;A;76A-Q`iWYM˗Dhuf*̘/`1RlqPFਂջxt:DíJM2ʇE4Fn1<e}I4TG"añ:{#%2y1RRx`%ZWO6mԇ=>sV&wrf*u	CC
+e2_`Ta#اEyS?lCw#%cR/U_x*o׳U'i^,Si>̲%'o[_s<*{0^]0k>	?Λ<Z*ϙ"[jl*LQwSePKqZr,8Ne#fMS8BA	DEdUYH67ÜS#An &E4#j-2Q;eW rFS`jN嫂4֭GʷSlj	,'q svRw'c;^)SDFZdsEyo2.'Ik:"1="ZI=ڵ$fI9iU<Rz(WG0(ME	M:iMsZ6xqW)Pf{OQqyjQr *xrGw4tq%pHT3iK"/ jF$.E?8JHܫj7rܬ8~rjxaѿ#mflŃoQ=ч5+@L[us+W$~5 `3P&0^mQ/2Z5e`^N󦐨%ݐ*4:V٤:@ZNz8;T_I<Z0u$N9r2K;'xBQ/iʌl!A;e;iτ53`}g]\"({[hK[8-'qPhrHh_ n 8µb:6HWۆUD>љ vn~5%ZY6"V|E7Uϭj#ZP]m֛Fɻݤyd0# |NhbTڛj	/%>9tIDWhF-q	 nJ0`ސYwS%|Ӵ_{Éхs'UȢLo`oۜ tS5{1jL5f'JFJ³Ij\2:V:io[wFu#ny!]lvzHN/L
+	;9aGU	Kpi\Y+jF3KYz<5bgncӗFFT&/ԙY	3dՎXiC)vzA2#&H#']Ӵ#lu]OYROۓHgfzngcU|\kM"_&Z٬7m{2Zƿ48W3KLenzc"D=uGhGc$D1VɲhӉ^?f,EBo)AےM:t#XF(u|I#Ê"0Z»'34· yV˘ibA3u8fk)fN.}pC:]+om.84NOcjf~rNV#3wP:t?wl:5zYzWѸbXIUtr'*$jGOcR=6.gbnC)gęˣ^U&1V6#{*.u/ϟBXwC0,דߒh9.ۼ{1{w|:+U+!_"	n#Wrx7黎wn}$cDyp Y)DMW.sI:ewa06-"W[@SwvqMS|7=crN˜($yq'3<ȣ%#OW6bIX }<dUStPTbß0(PяE!&։O`Lsh@K׊|
+0!.z&Ln93CזG]e~Oc&˹}n_YTx3$8K^u6`!KC"At$C7oh0QBTW"H"]	YC$aBN4hwGr&zƼ0BC!BUc@&CHm(6K둌2&-Ż׀J@spf̀xeFC}6ެYyvDIjٷZ~ثlUx0d/.rjCu#ǩM1ad{ocmzM;}ٿnwNX\]ǲP6:w8¬ga}ԡԹ
+	/?
+lY,tK~ ?i'0'3-~tOOhpֳY|U%gz*Ï	Zsࡊ+|Ɛ_Nɑ5_ؖf 	S8mԒrz^:SwzE1\18k@=Y,*C[{轓b^WLPɤwK'3*[g&'(HɘRn[UOgyS|S=S?jYbϑFF77]˛ùb''B(o
+8>|8@|vZeoL2J&J8!Wm`h:Ăeb=[!#$#)|'v.ĊSzU⺂׽SQhi]ͦHr!qMRI7N~|emC1tQ6j+8v1#vXҔ]h/0NW"$$⟞v	 b#O<V\#^ dSGlw[@I$!(:QNQvyTkj<rWY_l ]}+=-gUC%'K2a{%"/u1:eʲ*Wp``=chŬWRt;p[#n{px=)S@9hLN,AWuɑwM$
+qڶQpްo˽syA\9*_tïxUk5MZV¼ϗFۍ[!M5OY5	4|KZ*e/W$Q&;jd $KG8TnrpGNO	#4RiaWL(|
+ї$Tqp<"ݙ vy|\͒DUmXL4⥫34It֛0>_+M'x(_"(3vV9[cH&CMed<4'ņ~l*Xά3\x?zM$OMN`V.y12{HMpR9ېZ"u=5WXr66կȖj+JY\%ݮ5yė(~@?OȠNr6Ic!}rzd sKbz%Uo+SЍMeXυYP;k*e+Nl&jKkӨk76vhIovLxgOiB-tT&J#<%
+c؆o,LkɁ]Xywt!Ijov%{TepzZ59Ua΢
+Ƈ̆oʺ2e+l_YZ^Y*?¥(fH޸^Wml592eh˯|Z$)lԎBnӫ%}n%$`Н8TC\ O .qq9}LU;_q0g5H5#  FxBA<T7Ca燜Pښݰ-N]2Nsj̖[̆Ia>Pk(Ͳ{Բ!^ҳw4J	.O/*Cu;&7pmp\#=;ɴc`$jtH֜gGegHZROe6U)o˹]/2$f"ƅE0!!&,鸲\]./'illɴ)JD?]*z{"b@"Qf~zaHbHEE"nVO:^=.hU0b,-M=Ql\aJ6Pr9#2SyⲊVpӑ`w,
+}tmwyNvqzA[2_bM6ҿn[EDnc6{vF!?=HoX֛Qes@}_d +W}
+< P9`AB{bso2(tr_A'O#O"(߾5޾p[yNGZA*6#uL1edhYvωYfjCsʾk+1$q"=L
+Ň%Z0>6| 
+F~C`[EMu 5F{?A~lEí-xqR	;2q["j#F;i}_`p?"P)N؆CX
+':}0H;8d Kz0[!+ifZz^TY->g~q2Jqp*	EU ,ҷ1QxdUPǅLgOFuPvpZB/얀ĚtUDSR')XwvrhHٴ-)J16zƑR(zzr:ñm\ܱ	#,Brs'xRe_{RY-a mE3Aɗ,!X%Y{7QO-Ƚ:=$"O:1ҧ}Z*OKi!e\k_ر$\ӵù<KȖ#7eR3t6Բٚ(t9$z;\$vL.WH7wêgjZN2G:ۙ1j}g=9D쌱vҸ_D(GȽ4H6M䷋.kU*Fgĳ?\Pj:E>x5 LA`%zgIK_	^J |}tph9z<r7/_B{+"#iUx9mهŜH:%NcT)/ð1z;f~ϗtN1PvF^V距	
+A6|<xxOPuߺ!÷lgCQeC:7*Nyc	!m1Fz,T?={ٓoqwggg5_RCv!e~Q~;x(	>$wI\ó@#B\BM3/GlAZf^h%ET0&7XRcfvs N|*"-9jxfCYb}jlbpވX8ASE5]1@c1tCu{abWfL2v;{U:S5MvnI(,+= `ԮFqax0|w
+bVYe'>7ۺ3geְwYV!0d@}8"XE	e3<Cuk`&8SY;N.ch|}Cʿ˳1Q@E=}#Ym Pخj!\y05&<,17侥P){hnD QRro 7z'G2qAFz)p_wV.^ GWiU1MhJX$֛kt|sj	>8*-[Ʊ}"9cm;,ޜiz/x3&04?iL@o9'Pa<lȐa[')[&'?y:A(C\Q95咑e`3[`)a@Yٹހ'hio?-BвքH7)
+XdwdyI.E9.&Xl&y"n'0[ʀeh͓PF({QfnV%:@)~(!ɧasT;pz{{{J8$q
+~zXrg d YҐyB˓#xzZu5is
+*o*T^zG}&qOg>=.R%/
++ԃJb< M+hoobJ".B{חQ*&V>}{-L'WܚX9a|ʖ4/eۺA >ʓ$PF^	)v>Rs'¼sɱanqǥl>G/G$*ĸ; =:Sj鯀X,3MrdCOp5F	<PHZhthG=YǇ1'?uCHT/Okb7I`Z#7Y7TYW8s4i#t]9k]o"㜖E ߱M#\E՞W$mwQ Oz{4E#k(ہ"#6@V4uah1sbǫahqL*IYY9&kFPIÿ@JA`4t0W%rAk9_bxzW XGx&;ҽA|}Z[quǡZs v
+2&v}IrD^#9{
+oҲai7UaApT&BQ~)
+;325?{1Y/jhEx~JrBmGMnSp"}T9}]ZMB#u_#?ЉD,iTxr#$<tE=ySM0gklz1qa;ޥ wԉm}X5*6vbQG2C&NW‚G7Hc3dµQ(1@:M.S~筋}'LbĨJcI9h/*3\id&XX#".)UCS3|>-Z>IZJ!<	?A0Y qZ2%^xa^6#8){$IG~\"e{_&0i_?&bPϲ6kOߦ[<l*zak0|Oלi$chB-}hkL	=@ij+rƕ&j>vI9ĭ5`e9ZCN? Gp5Dm(tA4Brs?j{<QRsx=[
+߁UUO[ɢ	?=1کUn8*ɀS9sT9sVNO5qÍo#i+o3kTtH(Xk]ICǻUsܔM=*d2|coJxU)1,dY.}k
+%xWoS ]=W-_E <U-oWrU1չ"K5[cX@j0;9":=o1SE-ON?Q]LPɍ[$FSITT:rᠥSeѸڲՒ(%GheHh}z#Q2tr!77xCޛFC&J_ˆ2I"v&2sWyܬZKi4vb~CFTWjkC`74w/!ٿ=:?Ʒ_̩wM\Q+c]5ц|gng謰|9THu`"ȢvaM!`' suR7-VLg{;L7977iQ	ii$H+^a̓0"$צ3T?ԎpєHvi2^>ɡw5o#Wtdl.z.ZԪ]o]XKg	{HkeމC+:96׆)*eHRU6'
+n͋_(Y\2/8aF|+a([SB*P@#I`ݒ34)aX_1 xI?z?Ayss]B?~H4}BFQOGw!~f@;{{戒梒*Of+R/nQ⢒w2el5|v79{^<zr? 2 3ѳxQ7%x:ـaA_ӣgB%talQFxPL-ۡU^hޑ'8J>0/XǓ|':Up6Yoш{k9%ayA]{||<TMB[}:ScuS?rDi
+-.'u0l"+St%},3)mKH4oǜW<q(7۫N:SO%q^]5ԨGV9a6i5q)+J2,
+SuUĸzʽ!*پ<Mݝsq(!{q˻<>-8_B"yyV:D(9iVؿ8\F05-
+Uժu!/2}X8X;5}+am!Q_Ik3wrR.Tj0""@Ml#HMeg`<thd<	<JB=|dʊ w4<m,`ɖFD˞:@	M}\zo5loEå{#!	\_!>/B_VPiBO;-Owl|@-L{:f9uŬ0Gz/Bޛx¦>O|@\)WkXЫ/"Tq9Ӭ5QKniCDemn-M`)->$EGqS{-OIk@<=qG>SR`1/'u&tb#+VYVug?,!\`.{Nta%RE})|#t~%EG:x=ֿcǏek~5AStz6|/=fS72ACO眹*uVdZ rX=cŸG6EqMrfqf\Q) %I27!/8ME&!hsl"*׬K籽%|I3BSBsՐ:c+\	>g?OKlBz◷PdjF1'~dщUz @쉇8 s1RQuZ.|F\"|io)U\ YڅK%c"z|z,w֣`l̙y/#MjL~rjgECQt$X:J0<o{jo.JZ Ǜ);ᢱ@hy~FTZ斯wj:^ta]>NJǜPfc1l'Ns3$P}4m$O"?gwصR:7(!y"m=*!RRHG!;3O_pXgȬѸFڂ@!P|&J9&{Jiꉄ8oxڸ73S@: rIIEKcrOC9,-\}j&() I^ujQ4eqŝLVk{>Mu#2r6&tI#lԜHk^8cS%C4a0M{h}e2&Mjg$&I枪8QUd$I+Aߟ 3yF)IghB;KII,#jrJ&_7Q*xW>hgZőD0	J"ixgyql#`˝HV`=5%љy;!Ĺw9ȭA4$CÓY&HCP^']@.?#@-&6)GHSIolw8{'<_hFqR0[_"_CtM'tN|31i-wm"6d\*pWnԲ|Z.'$f8y 4ڃVm//J
+5%o~sv~ZB9*W9ɸ:_Olzv5%3֣?>:]9~[Oֳ|!E+z|OG21Zn	\cj-aޚ|5.Ezaўߴ KC'FܖR.0%KM~m$E7O@%YjW(/ :\E0?'Iaۭhy^t9eoT%0`Aulm20k@d]z]_Z7(bkV6˘:HV圖% WcyRDH)Au9O_N|u|\Ё1CF|
+Go]Lsn9b$+ӢB|BbZLD5,V&9wr,*}NNx.\wMG"
+bڹ_*uaو ڂEK<V[y/THqu䐶U#ΫQ'㼜%7Kbk)ʗx;!hF/o*KGT3u]ᤁvtԯE]s{d-Y1Ť-rn,hV~ZPC$rQT-? {aE9"?WH-ُ!":		 TSrK}PQFG"<G!J˥%<mK/FX^Z_&qc=/4E("I1j,{t>z{10R?(szW78T#AjkzM^+b>yW\$i5@Ec&c^ZzvTh+hu7ǫEX_<H/HýSüczXIp5q
+lo谿r@}"n~"~ކ,gs1`RJh6LN<N7*DhW7pD+ep[>λ9m-#nKx*e5nTD.l1 cӹ~j`--{;rz,#pI,tv@( )I16f
+jq>.L)2)ϒ]ʬ)^Mӄ<+Ol,T/ܜ"2</.z+S{6^(ة"ݨ>/!8>WM}`3!u2³6K`-.b!6.yb.:.l4GqŖ}bͷYC%1,DlHE߰8*=gvUeS^b;koУc4$fّ E|P%fuMTKwMĕnZ*9 	⺬^C.9#a_:2R2qv ]k(:zu3.I@_c8&e'6A6ݨqHrۦ) +&4-.\H2=3o̳xY>v4,HYgv2q̗ֆzmTdt+t z"<'2HdOa$-&f[f4웎ԨR1sdTн&돇wvjX?.CW69*Ykϰ@Ģ7j o+OdpFuUXXD}};[(vP~P*hZt=ǊA@$w[iE#B7$[CJд7h:pQ]n>v[ZjQ0l(AB̵k{k(rT0yjeM:4\'2%>H5DgײIͨ+ܨ_<F'48JZÀlS .XCS5sz7jpaޱwMEE,
+2nNA	^,x&:0x[Zd3L~HY1 KꑨTDon'OEB74]OMɋlC;w'݈hC=HG\(P6Xl6yyS唼Y=nb2!h9ʱ]mŻTlRrE舆L&ްə+D5fށ><IW-)dRx	15:"mEɪh&!a!E&dua` Slc3ͷKi.:qV+v.#Up[`֫%BJ$ym?]=.!V+CXDݒVnjlMzBE6A?)n-}	}[X%&_F&)9ضF-
+ۚY:Y+t$V{åF""!x (_̑s ʁ;`5.Zd^Rh#8+G"IfD	;np'MӋX5oć6̺J	]81c0ܜ.3Hϣxle+?-)!!"wfKk/ʩ
+늈cIe<Eeʤ -D$R>9iFVnB]u4wZN\?_Sv%Pe+3\zHg8=x|ٳ^qu<~F㗆	ƞ㛅'?iYdX	3|ujZHgΐ8ɼaFci충-S]횽ZpmX/n}f3/
+;^ZGEVsw0pȧ;' .ZsRɸصT;ǴOyJ7GrYͥcKx3b>m6ѐ A#9,猕	$91&I[5P9m*V.0nFL@ER
+3x$tsNNm A.tzamJ=HLi\ϕnQ_^HRFOK	.s)1YhYqJfe a[ ^$~tn:G8UvsHK*WoOh<{-m뼺Kg
+c٥Lp`KXs<lqS6h7˯.$aBe5a=msp*!Ex|)o⊻BdLH@REztm$jQt?_?[R+x#
+y}IBc3*6W]Ѱ|ֵNoyj1ǰp+6$Ɉ +/ైY!˯á.?Ս
+he\+0ux߂П,ëϻd',hT% Ia4[hKH3VXf	w#j{mUC&	 a\7pMńdn#Zhdmh/2oq.K.q>{_vK6(g3㟋M9CMt̔ެr(y>n}a
+]Yz糭(`<Ody<K!ܿ/Ŧl21QǜXƩ	拺FJj0r{K#lշZPĎem^Y{8@G&u5k|K"Gq:CƬ{b.R9vg4o{1yK}fzޥI8ckr%ktHƌE%.lR;\!!1=ڮHG󆰨ܕɮ]*U/6v.ڼn+FuA_P7 
+[e)iLn/{mE7	E⬭V#V!`@){^" .l|tTHn*mdF7}ph944͊=4 $RĺQ/q`{jVL_6BMArW|dOÈi'
+ah̀wKqobY1{Sbw<"#fNc]u8HBwI:G'GmXOڽ9q'm+\O-n6&<{BfjTekO"GE<4]0 aGZ^3jrq:΋AR7jnG h=Upyfϡ[=:bTܵԉק~A ?xk<O!nAw43W* s{v6
+R$/{iHS$9|]N:gxUh6B[6d=BGyIKr[*KoAmEU#Tuki_ϲ:>їrܞL%ذ*mB|HMrrq[Hafen^S	d-nh0hbX֡{D߿K:.]on#OSm.uFgv.U".m
+-ݏs<Buuz!gMpW=cIpB?mK~ϻ>~j6:l@D %AC( VAЩwLSg#0h *aP"ҳaĦDzP_?nOn^r D5b\6 x>nXv];̅DoI*K|A:.az[d9݋4;r2}|9 "	A%~ ^rAT/H Mzvy;]v˝?|Di/p!>|h77"6˦Í/ۮFyn:
+Vew^\=~2µ۷7$ZtRm]+D8RT&MfmZlpҾ\۷4ګ6'+NNjnET63+-V6ĕoCZ@2$bTGj`Xvy\UxA0 F$'To8䠒aZՈ3h0Eoo\_rm&+V)~/"`&CE0}0k#&೬X6!鼕bG-P"UX?(a'EґcX!J]ƋxW2{ހN̝yWHoXPEdy anK-WeaKB9DRovI35#G#0+cD=@MR,
+h8OAWޘ982{4P^%.$M	kba;	=ӇBqZrktz{ݚ	Suw@JBA^BՙS/;H9^n+Qͩj@z"yKInfSG yZ ֩m0\Pqm:F0O3<qEQ@on~@Tr&2Q|MBMپNyt83Znl$\Tdp(6.$ot($k"E^6Fbw:phE<|H
+AgÝ?Uu@<U.˴k\׆D2oauzѡ# <,vBLXy =#^ioy<O7oqt&;o&\	n^[2hB"Nvg_m3hgϪ{]ri+sL7;jҝeRV"{Z}KM,Z]ڀG&C!ZX'gQ<-m]
+Uغ</ptpń&%zƊ~<;w*My}K4aK)ypşaUp3RE2^։B nxn^xPq}>`2QhE0qz=tMxWOgY ˠpV[NS3"	_1OTeffb0Kng$ܿ>-\U)ק~g=ܕ32Q);[JO/⵵X9س\P??+UE8O$[jH=|l]EsYQkƙ__U7.Mm%n2ƜIA8}S&LHK,!Ln!L8iE3΅cȩ!;CiK!}}J	9R\p9+$(Z	)(Db<9ы[1nۥ~L0]εyEIPW#0%IRcCQ~xl$us~¬WLؙǰ.]*.~Mx2l$ؒ`1ݫSa	TKlCD#Ř󭍼,OJ$A1&txoU؅VYWdA,Pw\kJYU:1)WCv?emKdilԕ9lWaGLx"hK!}t&jr6\݅0I;_kB<MUxL5:jf/=
+{	V*jǁ9e'o@|]Z
+}GX%
+W|wQ_YO}@H*eIǡH6x'e'_&ќHh]59gr54 !5^^t	4Fry鱏ݓur±9;L(ۓ'UoWuمν>7>E
+/#t_f%w;v8a0:ңڧuŤ~fq<,{%Z( =K!AYtk'	/tjLV'8*6'91x7$Q"\Fh"_0ZX5hUѮey@HQr۳ g w)eHe ɅAP}ֻ5RGeKM,a5mV4d]%{xvuUE%{1vUڙZ+]շ
+4fj7jj|kɹf
+\望FpY>佁*DbC~KX&3 oUƓ=-&N]a [jBVI]?q9W|vqr<nxл]W'BWʱG拓wSiP6О\Gp+\9:,
+դI"xPrhwu8x!fWga˳AY΂)[182MY.[ŧYG[~k:29(X\CӜV9
+ZOa'ے#ᏚgOTxJh+HLE)wqŒki0v`	~ Uq"1mh@ί @6{W7^U Z.hVr+S+fu
+,/?SJkHJydY!uK)s	9Ro㰸"*
+J.m,y7'bJc1L}='#zT|j0OI%vd%d?hP74Ia];MMW8"֨v_-kuA̴z_Zk?>KBe#|PZG+b	z@*7fbYX(她?:LOZ<mhSW@gn۸6{RS(m?RەQz=>	𘰨3nůia+5^m!5Ƿ-eU*=>К1hvs8Lg\g?q*AA8`ni1UoΈk,{ts)xDKueQ4.|X` yv
+cӢ{0--xdtE׳lriD9;boJfm?,[2Fuh죧nR>bbhhP{=c^Y䖔Vsn7u`^x:_IQ4"0r{#}HltBcZyN]}EYudE@5Ze+@?+O2wqWj&rEoʛbB0i:@;rVEu9WVޮlG)]2ٜ{;7
+zMq*oJ:| 
+4[Xu;ֶNliE{$_cLxxfHIQwP0gSvV\4[",*2iyd&Z0=o4nL}ڊ\*5!'˧
+㵣MvPڦbК/$RÿXyHF1)l"jM᪖VUkREuVcds3\O(4&lSvgrWW,PޠT6zmrnZь__X~B+)0,{&XK[:QZwUE3"QT5-6ƽzj5gq)+JƳiu	\y[.yESʇ4,7SۙF]	1dˤs0F?pFC6G%1'ࢪΏĞ.Z[+ˊYb1C1"0?fjYi)g`ەGtȟ&()tH
+	H/ˏ	%HU1~lD'"$# .k{ J2IfRa7QI26ہÚ{`p@InUo=zTj!
+KɁmUwFމ܆6x=<1xJ whnJ|ќsDiCr]4R8"Czsx]у3@<5{ sVe2OkeМ_bl*#hB>[s1&uR֕jOдBx5	ݞ58R+R=$b~9P(=kMZԸ5?x}0I*QcgubMUc[À6?l2l^Ӡ
+هΘ#̋یof"M^EeS[ɣ}Kګ>9.rn 8Ae8s-=j{57
+ڕGqҀ=#_β;_ 8"]T/RﾁuUwOĎO9;d7!$I\	B'aE{]{'̖֚p=$V)SIm=w}"sg<n&cН5c(yk*CJ]t4OO]gӞd1}M a5o}3ɛT9\7lBU輕u*]U0t<Onf?DgכSwUMo!X?={ՖofDLe?Vixd4W-b*d1#&7knrj9,DYl^i-g=Gwa!~zQm67j4ekrƓrޤwJ? @ˡHxb.%G)!ፀH@'j(Y}rWΪrw_jY.cn]{lʯK۶z=ӳ9h:v\>uw¸*Ք\EB8JqoJAk\NWD@ǔC5pxhM(kf *t %6ly Y3]%M3m-ã/8.~ 3+ENP
+`d3%:Mȋxe2{yo]25y9(TR+oqGakQi~u,җ`T(
+	U;yPQUq[8+^"9/kȑzvm'1^tld "ěe/_^//_FQA J6q$ }3l5VqW~Fo29ҏq^7$--N%rl9ӰQTGl,]&qhBZX
+S*Q9kHeg@᪗򬽣Wb]mg\;SUzCz !w2%0*jM{͓ߝv|DA3Xsΐ鱕¦MwzplODs[mX΁	!F*Vܻ2Y~]^o븷Ll ɒΛym:VYzbfeA+L@V#4#wmV2^~ҎZ(lnck˖J㵰cle,L4	eF
+ZoƩev2=:Sٰ{8'[ʳtO_rIGYQW*W:_=4¡櫧:'A,	#w1En6=Y2#[RW֤+&b<ZFip֣UqI΃&1Vpz<>Ѽ'9fFL:)`X?Q|e1^j(Xo(G|c@4sɴQrG^'Gtq	Q^GR!hⳗN}]?WXk0V|S6l6XaI6]Z- 6Òw]i s`
+ukm1|M<*?q)6<C+1<Tn}RiH$'Qd[znW*b5ꅪA+<L؆;ٳSqZG|GWm`Xy;fDQkvVQ_yg8l4[*	kx·r]$8燕ñ? ͨliw^R;#HW;G;lnW#N\i_[Y&sȅ(N0*>wn߰0g8HCmAÉ.>E2Ăf}*D`x?Vυnh8 B09a-ImxR(d#.	"WPD#oS
+ĵ[I6h!Y1Q0jF)Rh-P wL.Xo­cW|ZU4tHSvcB#ۇ#pJ x䫷oft(}F['<iʕMoQ1)I#6Dn!62G]זY)@*Tj⢁ʙw!ãߴ$ZIZu;lIΦflU	G3v0&@CK/[z)-Ć씫*>
+Uζy0 ~K&yt\t8.w	1! ΫqbY0{p' ,VjPަ֍ZtRUc^ξeX1S_TK?^e)}Ko^ܛ tVRamxōJ<~@CLFnukB&3=jk1ʌx15DlugJ';:Y);[T/SDiuX%-7u]![75YY]lګV;m'ߓ@LZbVEnmJtzM1iuZwi)8u=͞w\|]d\r7MMud(4>Ïh#fb)ܮ[`+V8.Նŭ11U\ϙ1!w񂁡E^h1m(X߮m6@e(W>I,wIi?tI^ZOQa-Z5uvr4DK~g^*H'4t"-ѿf-eVґAD1:qWrw3Cqʠ*?Ev$_`q:x-vl/҆Vi1Éni=32O[]^C~1hHh['	v3&ԠvYcy6e%8Ox/Z$lѺNax NȈ  r^XyeOBdYК9s/RIeRѢ;rЙ\-Y󵴨Rjlׂb	+=@ߢŠUHK.ietK u4պ4~qgJ$*elGUh:󼏝཭--߬9Kl)Dev#Te1Cm3ъ˹"ń4pj:o\6 SP
+UAvA$oĤ=Ewx=3dG6wԭg=zj'y>f
+GA+beAe\AJ=>V]^ Pc:5XvGb(*'z҂(A]Ϡ*)υSӉ@mVEp6ɵL(@۫Iy;+hnMhe7/GlMa1/Hq̋EZmvn	Z>;NX)lbtu Sk}2^zr(.]zPCnnrHgt7ި᨝3ֿbfڟ(cE-gClgTU|kgbfS%tZMEKZ%Au|R)ҭ@d։^*zEANn)K1l+mаA]Sco~q҈IZ^{*ln<i|IDPmmp*4O\}Gs.LqO7z3Գ5s*bCfj/ϙOZ~pD
+5WWoD:hd&+.V)wO;;@51O2=+1W=6i	!PA2Yb|B88\k 3oj׬R!bCE%OYQIt}Sr8Җ?aL;^'nՓ(>L_5us,/\gf_Iz "~>CR}-!'k:VZoI$.z.:&P.*7 ~3pNMJm {^hXM9R,aWuyDY$6t50t;m@G2G R<G8qiqqruEC9LG%gGf@ІE
+xP\?>y"UUh#XF _-UY6;z;?ep^\筿O-·fL
+WX@QReUGi-mz;$~*7m7\'ޜ7E}Ay=.; R*Hܢ7a;+D⠡"wML^ 9 rY'NB)w51>+HNi	g-#Pa=rނr>Jb\5uීGrK1ܷ̮+5kFp8wNo˄eYn1	k߇Ŝ1פnW;jFaSx/'e_m6,(Ԥdz0MYfX^V֎\2{uqsS ~,]6_gIe,y.LǜxS_bYfNDwo^|wRapU]O^u[ZPt9	g:[׸0foթ!xn2H8>qٓ@rن_yqF҈vGgτ(UU(]yq'sݻcX`nģjO$GPi^GB<r$#\3~l]uxݚnҞGEv.&]`E?НH0\N9E>6:1LG:eObu;^*'g2rZ\YiɭL{jX6GM%9m}2i$
+5vFe+{ f?	_qdAAZ=1>D7dŜ|+MLSwBaPȥĒTzd> ~Č$λ?><su=$] x;p90}g`v1} ;n}T!FsMG~^@r
+6.n0ۂGQɓ48)Aq܌=gS;(_2O}<qӥo0 -a)r͈(CL >BZ ɺ.:υ,eބ*an2Vm &9ǌH2O<D;i1Ց=譂Ь(NƜՓ~n,Yb]q8yv{56^%rjc>v~޽e	"/Fj6&WB~KT-T$׊ ّ5l=AZץnDE(\B)BoSt@Ż>bt˸EGJpػV*Z'r\;eλBsOiy/'x13LؠwRK~٧Iˌ-b=s䢍/	[1l-˄fuS-2sa԰6&Oh͆VQ)yxXW:pLiPЧL=RiDúj'k̷)vmHԖ-$w!Ԏ6iY12'PKuQk2,ާDkxܧ`h4Zqµmه~^GA(lWsbͬǦzxP3$f'n^h>P<4[Q }dQlB]'Ѿ]5|RĀ^Xm[N'a[BG¼ߋ?)	|]:ǜKW<m-zdxӀaXWI`_)5ҴNRaz5!u.z=nMW{hTshF+;sL[`G[.tcK
+촾)ygQ?dǌWU&,pvt?1Y8N'o"(p
+P@Up4*NPnrU촺lޮtkwح18l)K\ҡaN `4VE3s$'%r;`cϙF&"qfOdYO|͝|ql[j_!Q
+Мv9(RܵGZ<ĖAԩi&h~j"}nlJ>]D'/Qj8ۏ^~ms٨2 qU =+B"wӁŚz=RN\˞
+Rqa{ok&O2_;{qvY3}A|ǉ3Jhnnq-EYB6!\[Ko+B%HhBUHW"w[R\Х"p`l 7Rk!6hUeIEu"n˴͝yNſ ւހ<lR{\.I
+T 8OB|@{Me2Ȝz+(>!oæHɵTB9̕د!S&Z<@veZ=zǰB$jEL59,@_h%;p;)܏}U!QYQ1}/է=PwMxtZ
+WlG[qwZWAᴙNs6:O4FGn
+V!מSd7݊#O[ZΗw[7-}Z|\!-k ra6|JrԺtU{vStaNǳmqJq~\ϣ,+krO$n1x6tDش؋Yܘin{arJanĖ8\ΑwteAA{Nw*>:*aEQK"{;'iצ\D$T6x\yi!U7ެ^=nVo{y_-8>> kD{-ksb!1"6Vyg(Br:T&S$bB'w_?yׯ<}!~ŋ'KP߼ɗIyO^=K{ϒ/~7zgo_O/_=o??>wTţ͓?(>q\-v
+n5S W)GGΆl1A_,ܶvY⽎t4U_쯎7Ձ*"nI1;yyDʛӏ> (D!7 9ғ+A[❾QNòKꄤq:CTc_i@VA`>TҀ񳟥q[SXGB%8=8 !Tw>&QGU"&Zqkx6$Q0&Q.8>rc N~`\%|a.1/[`ӰV]Wc 4/VsZJN-9Q^x)ZtGq]Ή_n֥C9J^Q-DNnyroe	C61?a.v@TCܑm5@õKxW	pȤ^?> '$'$z%(ҥO˥ZǄq},M^v}On=煄T^Ҧ\  mZ	[;%Ex$q|bGTޞm߼9J%T8sFEq#y<r+t$)8z%[A>4sP48s|΀$~\1JY 0PsC[r4@̀C`|X2 AsWjGlQ׹JSr#!ƨn3spB _r['-jmiuTyPRQ߈.ԔW<]r_=IjDD⅚cF**#zOsp[QL_Bn.w|Z^y56gw,[s9Y(eeTܡ\hJvbFYl7 b_UVM8%uv v_IS UVH 7wr=Zy~HBHC|dOë1|jip|̿.&g:n]OPuT޷ټ([7np*[:vB^4+9]k
+/h̨b͕1nZx:~zpA%j$!"%%=DAJS0^ &OU%\Jά5/k'dHAdmˉtN{FӯlDd3
+D|V%1tnJ_KZk-QJjR5TԬ1~djh4OƮj{mcoǭ?DI}uN|HByIŦf陠j߆P&Γѓ>7T֬*Q~k_*iMo[BqIm^UrY㢪A\6r5?mU<:U.[Iocgdzl|/Cg1wj C	$%aS)yܔ:C杺>oؐ6+P]emtDu77/_icR
+|?"Q)eurG!h3g9Tԝ(Â#=1hdN^e$b)
+mU0UN=c)\cjd/+rcAyNI;Z솱ml',Sl'QעV:9>oPIWm8f]!DmxRAEbUFjN`@.[J[2|wUDNV8{tT%
+C_(½s:_sϓJ$[̍<W/}/Iu.H:0lKcZ'x{aƵjQj5q*jN{4ppݤcDʗ.lmYuw3N¡f
+v'nR9*B`Aon۶T;QN6-**w٥3v6йp3
+| ~P"ıG& #K&OαUe+NЅ0|s7pEfhO~ ,H8Ȳ.}o`LcbwnuFe^WZ88:&mٚ#.MT"a-GW.e_}^2d?ÈEjR(feU#OdL@eSm.rynZ7wFsEՆS
+ cq+U|d70OPogoA׊ʕ	iйR7iES%61mg:)zُ4iƊ{}fnFeDs6v^SEbs̔d	#p*ϘKJK,iM8 $Di"GU$TlXʨ$z-BSԴl9ft9?'t*p`F^wMX#~Q
+ƈMajr5
+k{JNq68RQsF*4%;!I̒	dp:HYPK#55C$/:=hĕ#jlYwǿd#3k&{,xa/W۞S?o=h=f7P^O߈stV}\@%*
+@I}-NKoC%p":)v1	[;aMOrwR7i%!{-u=7m"{WC.XkŪ48RƮ썁BO~[ڌWpi%8ߘ"[cJH4Ni&q&!;Hdf7 <uw.8bST6\$`,*;[;`Xr='/WC4-'XyT:7?*QHMJ&<`vΘFS}$%Cwiy$Lc)z:A=ND'{ro5qvsHu*>q0zu||aPJеW!|>UrY+zƈϴU)]xQl)PA0ˡrjV-noTD$j	KÜ*8	N,6 JU{F<´ABX=ެJ}}ljN e	ʡ[ۂpmTb9eMa$8Z(øg_ޅEtHG۾ABΰaay:X3LV1sR}׬BS%ſgTmfUr*yjDoꣲn;N:T_iiZwJow_gpO`1"ى"ꐹ$̋ѵ֌6tDLqHxl<ӆXk=*XL@:_>Bbbxa3&(ŸsTA,7( a|ͱqj~cus=r'lTBD6B}j_K9:4Qo4X@&dtbx&a)dr+$`Ϡ޳r|~N^'~nHKkÜbeC_׶nE^,Hg@Cy[bGX1X\%)tnC10$Xd(y1`rt-ѯMwic˪V.	̢5VQTMdYh<2RY0F0<<W<pmK(9OdmND_/)N[-b Si+Xr=իtYo49,&[L%4u]}DxqcU-ɦ]EgjW7,'ËYY?Ѷe<Vm Mp2n:SQ0;9	ycm/@?=8s4EUVL%a9RY?w"\}X_发B=*b4͋ȑvC)1{ELC~3w'ӟN NH,>~Vo$G+	A]o9@t7.s;pŒL]P;Yf91_u:IWNW\%<psm	0Dʃ +2ZOШN%{>GbJät̮P!j,e۔ `l}8uXyCRnQId_8ԩI}I&Ia:;O9IZjj%^<>rvgFXlR\ƿqiS%+K ^?ATZSV./tr" U)Chs9 ok_K: وo\vLʆڕɟ\ݤ̸YV/zVWANQԡbd+h	V%n](Q3Tn	7X.KE~)%3:vN0-s諑Hyhs$k@:wp~<-o"[f
+q'I3[[8+GqSZ n#nܱr
+gjGkX! Q|o4Y:iWD!vx>jgLkK>ͽ{^'чM;GZ$̵Q4' `#XS~ǬvZ-_VkUc8%LXK4Y݃Y蒌r.5!u9XY-K/y"EhަM'wRWH_?)$R60ZR]c3c,$QsB}=D8Zp9:BVYhkã{;̧|^opit}V:|I(@R'r9LՂ>j:kh$Tz4z꾱HQsR`e<aOK&?%bT8|BlCu%pbNg$`;w+#"暓STt7_OW5ΦʅIկUͅdu|փ|d<&=w
+ZqiS)uCMɊu@cj̚j燚abJTaFоfm:<|5cVWxT,M~בu	
+rh4&fNZ$S	[ʯqR&֌UbPJ6;im{>{ 7|Hk[zVu[l[z1ea#ǭ=~Vl2.&B⏜7sJxw/ޘQh֏$ѪXT4x\iTvš'?&V}V^W˳bbEuS`K8=F%7ɤ-&C7XR֫u{	Vkb&`F攫'Aun!x$|7N!xh_zlRHXsq\Y׺Qcb]sU`4!P!K=!{
+[`(ĈSS݉_ެkqkw%l4{Oцs kG5n`fPc}N:hWdүGC@Qyxv\ևlpf\u^/Fzx:^TgyR[>05gz5yVL@.1Sz2v@$v\M=Ӗ&'Y1ٚ: 2ckH|bI]a.[=Um'I8yW3=4LVUƅlٷ
+'έ)$'Y7~scUNq?H$~,^Nz۪י/Zc9.޷5v1npV|˒Dr/nRy6p}|fEs#Mh3W#?V█ q./0<138麓FNr{5YCĉ6[V-xvI,!@l6FHz7\gL&l`O0VwtOGu0UuYqY17C=YUW>V9$eZʕ~φ
+Lh.IeIShG?qPQS
+z]ϾoO>Nh\[3*6H 3|=a#IX!#`,H"|O\\;3%9V3rr'(hnQ`nI&u4!K+^SPj"Y	'N8!ꫴuq;REJ)Ax!	K{rhMI\9-0G:ؠm8Qk#MܤZ&-_mk{pjsIO(	C̿dZOA9UEDE+|󮌩
+pĪX(/ǯ8+t8Q7̓C7##xة=g;RP9e7RԩOX
+52SD2ܺ_9βhQ99ikm6t0e6DIIO=ThG{V\YO]E9IϽ'b*e|UTp¥U:sʁef7J^Y@L_ࢥw8 !8RorC])
+3Xua4 YY09$CUGL[a8YshUb|XԞӷ댖sRq_>t>ISA,jqs>+7].Z5KU	i'_/اR̄>o[u	r 7l?XΌlEf|2`y<Imf{KZ/>nݙHijj3HҢ(g1P,KP]Ayā f8Vj|"ISO#:ziVAJ=: U{H۹+!:eZz}lFnlrOԚjI+8Ag]Aa-|fHQ)w.#Aa2˅o4Ɗr3#Tp/BU(qyuYfz!4wQL= _`hΫKjq[, -ٱL`g>Rpo)_]fFw-fڇ.ZFFONρ8d Sr*nĲx(ݘ
+] PIr+6Vq h	cUgVdx+ELҧW8/)DWu	XiN؈|JI8q\dQ6TY 6	XWӳMCkjE u59A2hHkr֜1#1aC(~%z8O%%^fLѕnδr; D-=kzng<NIDg~lO=ѡn\TDT_L3xCؑ9en}N<$jΊ
+֊,m;N ~{'lv	90*a|9wY(PMQ: ]i|Rz{^jm?Z}?lvBg~eo>,?Y%%ClS(OYoBV.YDkA25GÝL`Џ$ħ/R>b9!v.-x4ɗKX^"2Ff!J0 2?M~[?^i!wE b{},x״o΂zwo3	ս=QCQ `~vvw:8ˊ}O(XSCY]<# `a*@#K3r=
+P]C(]{ C`Xjo2nzo&T)Oړn2aZG
+Kj:]@01GY'f['ӥv;?ziғQkGGG&XHp<6*_+C$|D' RR~JoE~#ȹ?%#=҇?[W6W<Fk>ekk"c`A@Id*Dm4YIX  c>i<氝1(V,~a *@gTtHax)^%Z\=].}\*1c:VVNJj4[ |pRg5]5lˡYb"o1u)`Q;ߛ?XS,p389b?T"\,`)ۭ8=Mð.r#Ab
+8Qbs<fS&4r-fDIAO|hvWۜcȠ0j\!UҠ(I2t&Ly"PBS9<_7#ȦRqb3'_<ֶQe&[8[!AjA52.Nn:ok.P<t47̳\mVV9E,ad`I<X>=Bۛ>T;sd#o?EtިӮ/޹-k&'nB9Ra0aNw}j =Zs{l"@u t 	G2ܟKl	_RzaBW0|!KG~Y~E~{7\1_	a%vV__Kin.ږ{b`sSD)sTM3'S<&Pxc9yK3=,'<8#>%{4sۉg݋">+_ddByPȐX4!d {Z\>Ә*BsZ]YuKV± -=B_pZc-%~*F|MO >Lt\i4E}Eco6߄cu}LI^5qmQM{rm~gy$,ê 0Z*dRs}! 2*R'V3BqvO<1h!"v*+l "It=Q~~zjJ4uQ2?iSV]
+twTy]+ ɯ92+O]Bˌn+haؾdKZPo9Zga	ofU|*Ddo@.ȵT,ٍcO-P_?^}$Ԭ1p/mSU^"u5LNI*'Ж	iah?wVJ/pB Wdu3t3	;E9"ao2*@*xKN&*IVVr/o~B!Rk ^0'K?!A&9UyE3gHRy_hM]|ּ)ljQΕ'N(/Vhx{ Ą7&lH%HheXUo\TiI\iJA`lxiCeAɆFOV^KVgKF.Wߘsl tXB/WCkF/岘td<A)4X0\&vl4x0Nv^vŤa۳&[ Ŧqa*"
+E"#ta%'H4c' D$8-Br N'hX8ME!kݨO1?diw	=t -nk~B7&mN\=k,DlZ cY/Ni:̅4?]Bx@XÂ Y/ނ{d:#Uv3BbSh?}be+s*soVI& p[_ڒصJUxt,a?{!X;L\|@KGlpTٷg!(.@	e3ҼRjy08쐎eߙ<>,/m^Bezn4\M8?fU ?wmNCEZ6q[;pR`i"4[^t{5N
+M;e{2쇴XÈM;s|pӚS	VtRᡋ3KZLTӻD/rc޿Ădtv:Owxsi".&B( b\ 8	]pqXWA	D'CoErAYXQ-,ݓ~oT|V߼՛2! yB09*w~AL>(jhQi7﷒у'USě+_}?waKW86,¿ȼdVak*Dg !I53(3(B,~d6(l{[~ȉ t~щ揯J> nCY1<QԈSRC:Ug䳨!ΫKFFTrzys@ajfEI8-I@9y_O_޵h!6`.[GPLfEVR&J1ÕMRvW|FuuH>pܜXd%0bp1zAڸH_3{H|-J!5~-n/%L<;CM /R>lU;e ˜Xfˋ`q<DC˃ٹ&{Kƴ=mz7`}FҘ\-҂<)6B%<m
+5F+t [2.pZ#`.ֻ|\W>&$v\R&QaC2QB~ޯC燿[}Ax}#r|H#fJLPUNGM GF4ZJ`K;nJ^>5-$-CsUV^! LUZ5'[C*@]f<mpr܆gXH={Am ]fr-O%|!m{H	ЩA"uFz_ltl1_Wfr͌g{evՠS~G6L{}Ll7_ke7~chZ̫-/(sUgXit[@Hr5Ҋ
+\lW1)wD{b*U"\2Uc}Cl'vQO暁IB0]`=1/xR8M~m˧rsɺmй	<J}Ƽx?@b IuEs@F;MHß)V0gGm4^TSdhm>GNrA~M>tH41 zY%ꢟ2!s+tPډ`qHSB,d5)Khs	^0}n\Ayy\d0CTxΜy(5eHTwU΋|:h60$$tS(o_7P 9+%{D:dK%2xɶ.d׍Kl1JU!Lsp=NcG625mS-#ͤg0ՃMQun& o<>]U,b9PjV}	{"Wa|T9FEhY[H;԰}y-0`OefswZSݯ.~@wԟwOI0\e\cә_Ub 4ñ-fZthL\^=ZӞ系ZjyM+ Y[B7Uf*^<#[Q8iO^ /F(Ɖ>ae7XqP	~`>fo7ӷoѵ {,JSTUܻ*Р	?Ulmuq!_3;su`8廟:RNX?N8%L`636Rso3 V	),VZ^ z8cDzqKHom^mț"`WD N-Dc9ۯ&ءcO+p.).ٺppPqk@2pn@5_Esʑ6az	ľ	#ooOwni#o9"tY 3b#gj\WgĔmiξI%~j߸MziˏfcÞE.fTdEm1yk=cdxiTʍFh%S6bx!htOC߸+rM~xs5sy#,<8za0b262r:nkV܍BX%t{Z4xnT]"Eβz9Sn#G6>3s b`(f@]wiIab" TqCff'5̀\	AUf`%".yxJk5"Hhwv~Eddfc#@;_6&Qׄ"nr0p'$3_䀳r?-E R01gzR}J*7c4LvaN0f#7:jԚY*%ܭ'9LCh%n'/Gt;=#9!nKr8py|&(947"P I¢0TVRQYIn]|Nz,WeGbgKo詴m`;jо
+o2b$[4T鵚9Ī
+ۮEޒ_7/te[uc*dxO3HḮ8SiQ8?:k0
+}?nL4\<1OUD;٨CЮƫŖ%@ß]NneQUu*Zİ)tx{P5#C:c.>]tBVuMpOMG_	j|KdfrF<b{<Du3%S:o%),%N:YjۗpunЅ Η,?i1]7CjvտDFoo'`ao
+1#oAǡ|$-hF׮f3avGXEie?ryJ)q-z)t
+q[[%իx+U!e+#9H^hi؝2Wetl42ltF[SڬNOi*s䮂91k> F()=SLQ| ~A&d[p\,2etNdJ>*HO~" #4b
+T,sJȥQ!`<1jy>c?*4ht]HqIryK$1Ӯ<emr	H:Jz}nf[e^;e^2vpymkq}׋׷:ʹt_r=l/&RQJ0U\Hw!(SzڪX1adn)%& !+<f?^lR)!t	e9oooG?򥏖,Lv~Rgp.K)+F7:
+{8[OҔ!蔷62!b%ػ	'V[HXۣR"ZjQSH#pfjnѐW"LH3_5!C۹L(97U*^l-Ǭ;iO+d$"5,D
+&(7{2s"e(Vn4^a#`gˬJўj4KnF]-L}ƳU@wC!PPm2r"8uyL@&P+rJ`n,"6 L2ɱ,+m 1J~.Bz TtT|DNjmilT})(^Ks&oS*	|49|JV
+M9|8ìo^562[r":D'Ҭ-Ipdq L R$>5SO`Rcsأ>ہo׿v=	TW;|o=K/N	NU]|pmP0}qPnu;Gqr+o%n˷Vkxv+f!-Vj1h 9VfgQl`tUｶ(.vl-=g^)$x6whL@hTPC@"5u~XyzO|[䱟GrZZظţּBTۖ(A7X K߉rО6/Cg5$BkIQr|um(jXvvVE	y0r!̵o(HFU!m*ygvÉI/wqaMVk'ԑ#̟4~xYCx{͙ܶfAmE'V[MmiZ`o3G{ɲXItJ@{hqv]"ABGwY/ĎR:06p0uZ@6@#cx"@媞aF%\H/˦
+9h$w`KaWh"U=]#{ںVj<\6 ipn`'+{ 2b%|9y@Ϯ֟,?ju;QC;a,0FcsLRq8;)_WFF0dXMlZ
+}dv}wxK/؃ЙF6ohKb.b̵YgUm΋b'Rn%x3VoY?MUW	 %uÚҐWX$8u&tf	@_<WJǗݎaMz!mm'N5}ldޫ_nv<Nmc['LDby֜7(dl<%zH&'Ԟ3Ϯ0NMw--ys;p;^sJ@͊F.9	yLAIm[_YWӨ8ZK-Q$;%gw`p{7ܿS-sî;=<x5[5h)从AU.뚀c1-`G{ǚ/ehz	kp@ܔy7ps_
+r~beϷH]W +	rɳ@>@~Eǌ.6DӶP*gƼVG0XV4nhR5,+o7X64lPjL|ŉiKlMnz%جґ7`S*0WHU.n>YA&4FpU>\m-47 .}IPzFOu|IK'BnIXH`{9t^5@[K#]G~dc vU2bƄfi	( CD^7>2Ei|װ֤P0g}*oBB6` 1MZ/o]Q\]!(%|L:i\bꭴc@q5[$x|9`r;i?	GAefp~.j86V/Vnx00{Qq<ӴE 6-hBXb|CHnG4;HCx<wtZWOk[H>iQ5|ې!RUg!-D'#nqiXMM2S.j6wEFD ؎!-|i8rTzn._P(Q"h<̳
+clOBJX9@Ńb	7VŌrZ@P&5$uӞp=7xT_ǡn[d߂iI-UGPmB+$u~jN5|}^sB,. )eD[<etrO~>q?W!<,
+f)Kh3x0alG8aMz'*a,лmPVf	54\;픁Ӻx,gwH]MF5Q}2Px_rX7>.ӴطyF{Unvۃsp 9Dy֗r#jY;03@EM uO>.hBׇ]W:Sl,2;"RXjP*ˏ#BڱMSMAEø[n92[\>8/حYB9]B`+GuAsZ>vj[KW9!rv(iqT?L]OqDħXVg6
+8Zi23OMw+L|@KbR_i^97+-!vRj%v@iM1֙أ)>_d0t$,Ĵ {'\^:y~t	Snd_Wr+&|95[x7Ճ1r]lWMpAF`Gtdr2Mg1 Mk`r";H坨dMziX֠Y1IA2#<u}]BDfwc?k)Z
+nrJxbrY\	%FaQ-iʳ]Ft@zu5Z-1?֐dHYR.*li7KA-y=~G7%X5"_u !(.UCԉuAf*C  .B${sפd]O&|e͹YeGaNnaX/!Uy8(l=s Ì(I[Թt>+	dFqs8kĥ;7B:]>
+fkaM:ự4|G_L_3l+܊W8*}:@jXD=GotipyryF~Z4sp7y5$X:eK܇9k}_7/AA6?uzҭJzB]ȜLC2S7fT%fa=g.r|Й
+ʠ`ٶ;8l)|'.PP5桯Y'Vg wĂUP{ZkZun[pEk^
+kfDkM'f9D @bVA^"Ť<}d&
+"6sGCJoțW?M3>ިG`Q淧4F߽֋plz3NjgvUmhtK
+F0/椘V{ޛti|p|ʝ<%Miè
+6-8\`+ T+#u-LO+nQ5P|¥@z+fmY6]9 aޤT 1s~b
+Bz}cw+=-AqqX$[tZ!W1agC#.d;?c@֌_bN76M
+|=%=OezkVr'\B7Fxrj9Du|/~{fm_ʘl[8&D}:AtH)#GHYk"By[/frzH̩	es>ǭq;>'¾7uEլgjR}6'aP(ٛ ?P.E-McLL0HKt6Ķ)0%jLs"#vSEHp`OZ?
+c0&s~st]ƽxS^/̈u[^tm0tmBwWHwMY,G!jjgm[N.&܂GJӈD)bq6T[azvZ!A]gW7s:_;u=o[]]9RYЅOّ0}U]WޠE^&@"=m+LV*OɕkO
+!KPR_|*';XoTxBǌ2rgt[؏b	G`sƑӏtt%:|r2/iSh(_6"axٴ2$Ex	50Jқ̔
+v;}}	VX
+y{M/n*~D:,E`s$ڎf^VP~Y鐣?a6'():Tca8>P4BR U\L1ʗt5u 4!!lkp93ZH[&`%ii%z7k&Ah~M3
+69%Bvvg^<vG5}'ZP E3r?b9TqG=K+yz6	=eMdې&~q:Yybc49AkiJ 2+:~k07<=N	RI6δiz=60/8j{8ZpW!اd+,b",fXD\|rmgqi(&{IQw|qrJd~r`>uZ0PPBO`;oJ>6knݞiws#/lM􈆐7|3X~3;,w,MSrZFb0 QRpC.9xDOi̾fم&+^L͒~U
+acZll5@LIU]MM J+W&\:e50.u#TRL<$i=6BnJM3IbTFgO5 E C+٢|Y%T,q%LAdMA!3Z0I{:nA.w;-%}_\[ޘAB{L\QęAPA!a*qS32PxO"'|Qa]4ǢB]`w)n0ȝ-K	eJ %&n=㯀@ƥk0-\!uޠA;ïMWNrclM5*"2ˮ0?0ag<0$pW3ƱѬ+wA6CubFqwP8G τƑ<LTI.mSbA9hU>[@G9'1MΑT5}bTB)KC*u>PpkI)͘!
+۰h6dL2/WZnbiHK7A;޿"hD)ZL+O/Ɵ7~lAVF޿7.Vu3@bmJ4m*WhV)@^C|Ѷ07p[k);*y65щ8.z_5d/hb;662Iv6ףSt܎*EV/_KKf݋O52b90yBtSjl|MBrцDZ@9_w1*Ioa_"i%m!(#-trMI< YExFE ${in)!n+չ8tG(J{*1䡄u@Ӕ
+4#^n{ŊJ0ܰg#yYg-sox6y{8p;wCTHk.'otn5R4neoCJ熛y#kC$ rUl8 ktba]dЪy} ƺyź:cTxH4Z	MWcWTh*
+LL^l\UE?8Ⴛfuu.Rd\AEzvxD') vPh3u%0齆qIIov3/K$?6*rb'HVOΜϛ	Bq|JU۰ `XN~1ss&2|뮅]T8]t9Tc%_s#
+ fTjuP1O4PR7ӚJzt	-]eT/+e4vr3
+%PȂz(^@7i 5>2.u	3>EFb'00yf`7N`>C|NK4U?'(I͔gF;#Xa*[Lʵ<eP)Hm+(CYLM`Wg|T<m?$🔶b^ȗ܁i6@Ȥr7/)Y͑KvY"dr2,'):(fZ)aXҒ3$K"Pk%岎+=|s"}o)N)!g}`o*IÄkDEk2
+}8x$ef `-7ւ]4KG8J^ef*
+(yEi²]~X8xNf+7zhB3s|,If$P>kdRX!G%/e4l̫P\'(4h=iLW<8P_+~Op-u@
+I	%$ tR6]#@bnMrR'VpZ >͚  NIGGX@%@T5YP dX-MPX9* Auq6ZۥsX2+FL~sw]ŴBji9zrfvbxׇˉҥY$4SN2a7o}*ِAossch>6_Ldiuo2YZ͵sRg6l}pet91o̗c0m`^JOD^^Rrx]N1A=!=R:E67znqډ77>)@i-AOF\{0I@^"(
+=+ꩅ%K)l@GK^дI9423{tgۯL˪dE*!.)y%Qr*%E6mi@Nq..QJ$bI\Vs»\O8ݤ>Yx&Эē^465Nl[r2ot5^f8>[[aқH{D6Mby'!c'yRWl57RZu^`b?,MB2j5Exf<ɥYxluM(vƲZ)
+J+/"? ooÖNi/98İ)s˞oYlyV>q	|XXWrgPZ.:roԾGgtM+"QTNKfhSGL#ѷcc~6؄3\rWn<2V#@wyڷL[+&tU^D[1oܴ?`;fֽox5h*JqQkh&<ds3zd/^HKNv4Hd}u\iv
+iSZC:QVq7#s;GOO; %R1ܰ,L2جe&4ޡ|ʕm҄7FjL (`*G_IM2mvPL7r?kD41!\2<]8W.o6;>rX0J{?80dHp&b87nk "/359#?:0hhcg&/ >Xk,U	bm}\fb&%s:0.3|NV4?g?t[z0oK#awWݒ9xp*S1BM|$mZl}^fs#N~Ww͢mora9'3@|	BW/H.J&Tw-M]r Z
+XW--E?׮`爐{h&U@U$lf\QGOc:HR&hk\Ê`-KصGm:R{cֱd0TheDtZ3sːh\To$lřl/j7lڬ<1E`/-,~5u1_5\-[Vm<+/oֻϹBW|~%&l$^<̺;	HA4c!"d.(j#LC, %3c,_BfN]C
+v'n׀?76nDpE"& p{GLoG9W'[SɟXBjr(( .Ef͏UAy(XH;\f:͂x-W"RD铭3XI7. r6~A6$Q3-C yD'mT]F<$u2:O\VOis&1Q r{
+0yZ-֪.d[BXO0ZAN_V%lZR.iBNb8.nygT5CL6^):w͵Ty#Eb Ou#f
+Ei/ha0pC5ލ066l'>^@g	uheЁaꣶ~xۛjFAͯ[4͆"P>%bOL΁w4ĕ98#GhUy
+XEiaJ 6 Њ9=p}v D	i k?K/GcN(4YlL{^u$:Cش 	zB E5|	0sh~nPuD {݈o,MIXE@	%2SH̼laF̒<YS"Yj[
+ޭV#eX.^:Opv02(DgDYyΞ;QbFIP$pu:쌃P+̄|$!Umx&(ƵFܳX>V;nvRkyB?9G g <ۉ@<=x։iǐ1aQnh
+ ζ?7m 5Ҝ7t"P6--H[$9,kYnMVe30,
+p <*GFt_ZJmFGP(y)WW>& XZ%UAIaҐկw.Yٌ2`[X`Bϭ'-uU-sS-(%pتzn08}T0Ѡ): >o`èдחE+)bkOdK')A6N-<;`ІjyBh(w:ȃhj.RHi?Jl5FEZ	sO}7Nr;?:r%kWKptrn?+0lom}}~AG_Qx1*ܝF!㓨yCT·4" Ҟg+o%|y\wjIq&ڧ.bM
+)Lj߮M́ X9Cx)4}l]Igz:lylE Ŏ״8ԀwւXj}֍|m/6+Mq$'1Rxj/'niMm[c?%vU2fGF^sFAڴ8u^DiG0X)|zjV۱x;Cƺ
+Is{[k!n$65 1|*ѱ;WKLnsc%l$SjeÓkFDW7lARX(_"9:J|N ퟤ=[#;%ԼBw5Ac[#
+4>zPu{@
+Nxx|L(sxZ ςD
+tx};};tdh<`42ȇҗClaG6427J6ib3fj{7W6F܅32hKNڸ.*i%,߂5|ճF.0pqxSG0<t+ZAXQ0oܔk1I侂B[S_2>rGn/whN1rIl59&ڃ&C$/6\rŐLNX2e ^ݧHΫ{,Gv$MsmgwJxԓ`A\Dp%IS&DTk}mW})#/D&a%o&T
+Wr\|y^S4NLHw!)VIs@h'^CUÓ7|6N#A 9%[xAKHmg2iTs'^wm3a4SP1Qlbޔ.!z1sKwޠǶ`	+szJԨyyra%"])M4tDʴ&Ϧ9||mw7Z/|9[5_	j0$4_x<D`$grCTN7W
+@T75WJ#A̯F]K{3\KPi"+k駣WMR 6WC<W&hc<IU.QZ5e~r@n/M.af1iq^xQ;
++ ~^]gkcYi	B6
+Qo턎OWu}0Nb[Tl܆(TQ +B.HA8xc.`bO>Hxn#+ٟ_hF7Ȱ9O`SJn8n#iRymCA+Ō|r`KslHiiNy&~bnSrv^TSdi<ZW%axz'L$> T7*[
+߼<j LL&W)qN>[AX"J!-]3	k$#na`DyݽQO:;I
+dh3p	h"~Au/jGKz*;T[ZBED+5N4^UY v93ыbu z*@[ՠ?ʎjGV2m8ͺah?/舩zM[wibԉ͝EJ\4)v!9Lf#kMT"9J'+,UX-;yVM<UE( dlڒC:J7r{WX;FekY0?Ff^!:%\Бþmn҅8$|M?@/+;T8?	htFyH0e%k$qr-I~
+5h
+;X.LrGaB`<`֔Q:/0v[x޵	7l	Pm-   l׭cŃy/W_0ulUEg=vӑg;?NjṈQĎ]\Q'8PECwFJu),2(cSu[)v<r!_|ŴXz
+EU^dMqOUT8aZpZޢ<vs^qҗoo[4Fq3]<GWB6[cr;s~,,|ԟ@}CŢ#̷G5-6Z%v	ޚeN2'Βt79_0(D'O!t[܈ s[-oq1LB+Q:mX{K|ix<.B;n4AԺ-C3Qĩr"IC#b$gڴʴOw3s$,:>Cߘta
+%rӖG4`:I(8_/1-j#痼`:6\5U86ғH*F22y,gq>NT,T4_ME\
+Y((ۮV';*yꊨjLB1	!҉9"4Z0f´x	S}&QqYf[Y!O8{(|ct݇o>?Ђ>*j쪄ZȄX Oi(dFq<d1(rMꈟ%AFq^r@@t8HR58]>>u]k0@}P N]T[}XՌ8	rحoYrE|y	`fKǘ9CZTjY,EpY3_ckՖou0E#Hn-[\|	:m	lb9e/
+ApM}:-Keo2B02ĭ_sL(>b
+VnA<)|]Q*jg.w-RStyN3({R	7'?Dpǃ1鎢~xIl/G149g/t|\c
+Ke Ⱥ/Rs=Q?b6UxՍ o(
+i`s(k11.KyhlE~NÊ0cY$AKG.OЕi@+w$H3Ѩf|5B>O$~1k)WPi<DY7orԺPt#8*&)u5'}ֶ2BQ<Lܯ8_9ܭ|:-mk91C[y);/2w	,n
+Y)+p^^Qम.]~Yso^|kVJcjS1d9P]IFӳ%uubH`9OZީ4emkuЋ#LI(@ޑ͂+aƐ@H6Zlz|9$p0wUI*9(z)U:q2'V3LTq |Iޖ*(x_yYO㶹,R6N ӮYIct_?;yUsk|!Ӏҷ	E{`>4ЦaT'f;(|n*M؂!W*ڷD8[ʴ1VڊY`h+,WJMMuFEQ1;x]mmvif+v"DYՇ8+=Po
+h/^q_Nc3NN|-SkuڙO[+MBcNIJP-G oukw`y|8	P4Zau9ܕ3U>K=ߢ,H| 7to{$0d~mAzϵuw=wAj76w0oj|%9pNHOStb["ZrLdX=/>HLu}z$2E<Zp#8Qn/oD؊htXاCe8CDe+ݛV6үa*.ᨭBNz`\MGgA;BXRRәFճ5#*aa@l(s,=#D #tPe*/V(cmZp6 _庾SpPw-\D'Әn6⷗㸦Zs6Ck@Xja60j4-C*$\*BF~\vT*v5p	*0--7dCx񣔺4UfՔE|okXhAlzr6~4S<6]<ڀDpCʀ2eRF04&#dD`뛭jNB؁~fGO>KМ}<IKt^W%c&WVM/C䚑|0:,L.k\5JBum"߄0DbH]찒n9Q>ZKKZʖ0쩥MXEփD6<!FzDcY ^k83VJtIa3u7d^FŅQK	[d(|ظSOOGdPHG)U|2D|AO>QKsa*}..ƶµu]I%FmZ~,[YKR$)MɁ5l*\I=o=Ƃe}GTz	%MMH_=&o6%sP*+C묘ց&jj_+Wl2Ad15tk 7}al;c덝v&ݑdMTtjV+q\>x4F%A<9>t{d4`-SvN-p|{mTؠh=h,l+( EQd-ՙ&KX`_'UoO6chDJvbl*tm#rS w`BN`/uӨ(^JW?j|b&Q1󁤋o܈i\T
+FVϑ=# ZEЊu5-C1lzgIڠy@@'1[?ehOn|n#R`m{JnZ|g=J*c&P{EXsꬻpzo& zT*$'{2Dr J~hMuaDv@=Ox~q%	vj6G79HY}X2ƴh07!WZ\J$CwhX\Vg c>ؖ7m~5z<<W!s=b7h5 ~Lb=0Ktk`=*9-kK%:hĶY]uGٌ7@(Cj,0HLia0=QVYQ+<2Rd0S'e9W}xBux~t2N1p玹3y`^T tDwq1?Q&uǵP͖%#E`]a5C;b6iƦp\ݵd|ƽuF]P1[SUM_^nc6:U8XaC^Bcw LZcZҏuMR8΁?sP!_޼QݨT'f%w#'w#fs0y{Sz⤰~[ZPre"s{M^uޖ@f6RG)rYͭ0.R"{@{bVEB#KڞtϽ-Dkήoro#@#Lbuc,NǮfE@pdC 9`*__=D>1cwtJ7I9M	$sŰMaWܵcDa-&ʝ<̆Qbo6#qHu_<tו~=KBw;p{}|4мGJmŻ
+Z.\#,~;R 6>BT:r<3cAo)Țbӵ}HA$'%C@yKK,)rb8.O%*Om%T׵oB?xE9fpVȠVAYX6}T^TH(z(54:v)^sZűϯF_
+z{S%&8%/hZU
+#;2K>'/_OA6ɏdQ=?G=jwfq@]84OHp87}n/fGuv$[.Q>\SVFUf|OÄgTړ0'A>x0̣f^L^V5ysB);gޙ[Wҝl뻭h$FLov3tpNרMsSh_>id1'l8@λGfl&v,-cU̒],=xpkl
+S]<oLaO{0ۦ>:	]0q<_{f5'An93ӹ6H˽G9>}`zԀ}PŲU8//|MR2|Pǣ_zfU5O'4c3_I0'Qs1/jo8>:NnZM$9~/=鼘,c1&Ũ9/NAKwȼ7gh@notPg}ƿ?N?GOj}3L`?.J]vf>7ߩP5/x{䞪;1T:[uP)3|DiuqEʩwN7ߛǗ#O>ہo.fgQ,[f2-ա367`{{_vGeqHKkղ?ʽSԯJr遚 M}we^df Lw=	a:=XqW?|Fzҗj?+ՎSQͮz)ϡ\G6`]>_OhwʪHƴzl*Dj_ĊǞ=Ċ!w6K([WhdG6>6=;>/,)6U4E.S!6$Lc7.V0l5Fi;:ͨ\Oz"Wg=Y
+,M-{jD[#ZuڊS(aܤŤ!jr>cKJKYA\˫WlA3ɅZ6@0q}\(<hs+>OȠOHaU}xOz=7o'!M`F16-d5K3 u$D8e</C먇$L9[zP֬Έ.ozk&kfQ:a:<5.ulCo#ll5|yEC/s
+C]^WėZ#K;^o`-Al ߏwLϫA**Uܰcpw%K봥Qxd:ʩ`ᐄ~y1*1<C=Fphc<j!C<`8 @{dVmnߨsKI~z);w6EiK<%ăeapPj*Si !m6QesH54n^ȯ1@`na7)~A}VPs}\ˡTe+*"]еĻCaki	xP009-fGfGQ5=ٹ#6p$0N{`#!0	߆>FѓHu;Owm_۠0-%1`+@[<u/ܔG7?`rv4?P+{rRO`CӗT~3r\R\73_xi:.H7L{fG[=njOq--7ej=l`'ڼ7) j`t51Fft>w}fϟPuvE#(54EjDqAcK?s7-9d%rx}̤h$Q{x]RϺVV~CƽUW&~$/Qajzʥ͔}mV~=w<>55)uDΣjnyqvy0Yr	T 8eWLEzo7J͓wGB_IFƘG1[CRuuF
+\_B^uE2O;vyQ*A-OT]qPa8:5ik@ (rv'<mڂMXR./kאGޥ5kxRr~|"M_ӰS%۷Փ{{{f#R"-=&v"#qX*&CuOC}QzE0'|لo(HL.dn6jVŀ'n\tJGywC$҄0eU1CV='Z3f2/y}=Vo($?o홙8;B[#H}sڌe<Mbҷr{HqhiB}h7`sQq	HM GROh/)5kuZ*mL}aDVuʃJ6s.:EHPx<X'Eґ+@Q25/Zc4c"[;xk"cI/]Åw'BYꛧ%ROIe~=.Ѷu+KF0>rE|HGx7kOξQY9>iM DQHгhNH=xhzcEԚz,2O!	Y;n0	ag1pV\!.$}wNʺm2aw&+I	FҶ1^7Ww(.%v#Gnh+l߽;p5{PiU}ۤB+oʤOqgCntr[ѣ%jJ_[RkȭZ	{t뤃pdEUU]OmWӓ[u<u4A[9}"MwlQ(lql.2jio	b)EEʼEX^JXOooQ܈;+ڐI鼪Y{_2"\'!>x`>D6{v7u;EB9߀Ϙ5 Q57r81ڌ')zYf,)4֤-kY\*{*%Ǹލ3i,+0hi]TT:y#A(
+\{Iɤ4Ŵ9s_r-ЪV\49
+F3Ў:"O(4E,]*^w&Vf[:"$u\8w<{(kPֿP|(kFE\=2'5=򭵣;[}bW;(qDU!prTswOzqL*woR׌)v0ԭsyOi#,[6[RmQk  Ĺ\l2c] } uo"[>0E/>dw6د=jGx2)5jtO<onRb<;޾FAnu*BW#S]SғJm؂Z*zE2:*VM @><ޤ:Kiʴn)XJ]%[S9^GKoMJ}Qm>xeof`vI6gCn+ 5j^7<޾IWu何<;Iip.' m8wX>٩Z^C$:wWzi8j6Ջ3OwEAΤ7=s[RSIgQ앶w=xZjyej¨]-ǘ'[+&Nq3v
+=-G ˏIO̰Gg`Yy
+*A{{?;h˟5F+uM*q	7#~g?[,5!2$T%!+ܱc#'W0aʑOpu)iV7/#gBXzgyhu~hȇy_2 pA`Ќ9#OJ=YǪr]]*onqw^	
+3SVF
+Ƞx)3Ҷ<n60ܷLK
+=Z>%*'^AHF6;i,w	Bv_h6&Z՜Fh R6:+Q	JbC&-l܄9DY==	n!Q&b	aTĉQ65O2,p?%L^Fab!lF{E3N^{	-	%cUc3Ms6)ĀZ1<Y@">>+>J:M=+?et,/㝝nsZU<f1~JGM)>)c&[Rc{VpUM-c:*`fDY!@t9L#h66UucMW9WI%Qn@0ipBh(Ć	oM1p$6F6UŅf{)]3f[`g11qUha9W{'a|>	;xXRaw	hoWVUe_?'״MMG(ˆԏe3	L%ta3vKc&>UJ$Gm^a֮^Z'mh4)ap |!^>Z![fK[XV %;#F6̶uMY(eK lLOsަX_T)l`im͸%:zpU2OJlCjewOp44Q܃ =9'kCBztxxܖK"8	Sj<{ǭy|0Ą}&8iM)6V߯FQ&j^<6h^HP kҰ[󰀺EejqM~FGo"gW.wĆ!wL}KZfMRfS;z5p.\͡;Ih?ܧNѭ\a7dH	p{^%Q|*Lz[\m{kN?865]*!\dß*;qVjF}<BN!Ft> R%3^Sܵאª IکRRΚS@&H$a뙹,چ5%{[-fd0$j"t?&m~i|DsU+g' cJV&@7H@C},M-n+=?:^4ܞcZ	o}vz2q_ktjӄ!VKBt^׃G#%SOPPn5\O`9ܳ5za i`z"rfp/(	&*uE3҂ު۫xT)p3 ,@͗$hA;&[;?	m<xQC2767$(ZԪSkaX!"ڷ⌈(4L{%$$#ӪfuRx ϟ\)[*2@׎{U0H{VMΚ9[L%OKϾHW*MIQбR'3C;x}_ ݲ\ly֟E:煉U1q* >M(?XEt{ЗN:Mhpݽll=#s1MMpBZU-63@{R e<н稈]{"'h^~lV*H?U!-[P[ҚqYYb֝YAO<`co6LqZa14n2z5oM8oxFA/uZ@,.T5h28!ASn_#ň&qaeQ^hSGYc5qI/'WiYwNr/`ڥL(M;.
+A]M'umX6FE"W8?9Gǰn|l\N*]WFۓ`J/P܃wFɋV/%koV,][y8_f@j*mZ/&A)3$f,eZVr*bTT$6b/'A6^d Q]O${*Nb9(Mlf_)ɫmI8uL"_	3mWHP^Ȥٳߛ"xiK-l7}ƅcaJ55̿a}јD~C%CKdnW/DA7Z#v␁CV#sNv䧕6{H0תj3vj^I(A~[|!rzMHJJUp;܂-gF%Yֹő`[ݘb|6bҵ]fiM?5ٽ᪆{nì.O{KԜ^N^&NnxuNr!'(<YO2|5l
+<d/r[J;$}Q*KCVH8SH9׀ΟE 	2:ׁ`iP٤l'{BHȮcCH1=HW~{;FP:s!#`5uKTvJcNyL)\ g}usЪav5F@V^	 )\{`<WR)ZsLsVLXwZ
+ķԔPq6FzpI)X-+tЗUn.4[@kS4A-BmϿ;ZJ4ijq<S:<֧=~"!Ix[נV|*OYM⡙1%xʬh-vǎh|5 R%r o9{|2u;_RlS#JӴsђ9C"dVgWj:.V 6B,]-Kmqh2 ?L;.ET:u(ިT֨fOcMTUmK\)'L(u4!?`{<61JOXVg$9Չw8eO5
+]CN"|\;7Z#!m/%(J巕4JUwK:a/?~	]GIpfk֓fB<{*貞F&_ޢ,܆Fϟ1+hw=gtttE}qxJţYȋ^W|L =8cb6<phw/=f'9.fvfWǶKf3DnۑJo7L&On
+ުa@ "OF>um?~鼶RNoC8=	
+7~ɀ/<SM|_#[efLb&E/
+h	tSl.AH]*Nݶ̄fQ(!CXPErXȷHSh8pv
+`af	t	?7cb$AA-	e	Nkyx[mg)|MwuѿILLoE	¨,s'bRi2WsL3a-& wtbLDQԆIm{dseNoF|bkKׇ,-܂J!֬N
+5qG"B!ñY.,lTs0;36bia
+#ɟC2C]e𻖱-'{
+^,vĒcfRA،Lщڙ// >:B{W-AV1f`Soݢ{Q=vjf&Lvr۵k7Ї15-
+d,EkG
+j[f:`
+Z|B*o 0Nذ]MZ ʌonsueFѫRoj肟ulKekaolo>9a;"BY+\֟Hk&K73]2Ph%mu5.ї*74 #2{<,;oΛ)={X$<il0n6qǳ׀Nc<7rsށFDw+gJ#Q,[uxϼwSvZAa@&>oK5S^GOFJEKlcQ8p=h:ifϔF Am3BZo4CB?\SR[
+p/?砆< eKIΰᇝmV*2
+
+[AlO>5QRk&" n\[u2$Q]h/ 4aͦ'ьFm07$}}a8e"\ŧvɺ<`]`įUOKDmNB1)[J_y7*M5!K$v6#A3V Hjp{4,w=ܽ须f׹9)zzm?\[7VH+ڗݘ^vo;(ht[0;=iϣb۾<(9qAsFx  qMVXqXg@ρkʫiѨh!+ML_^S5$JTyMjiMT(ͺKÆm3cHԏ̌2p<@D	,b@Q$&Pu}Nr2K.7GBT9͍a"s7~(j78MLHwqY݊c	>}UҰ~/N}͙6HbP#&}"nbJJ5x'aR`>Ik"8=/}cź	\ܔ#x-?{uaš? 7&9.lpÈm-K\;9wfp=y	z<]O=>HGAI E0eE nxMa:v	shZ3k5wǿxI1N~J:=&#zXKζ֭HAx(ci!$krTtۼ䱅|?ʫ#NnDLHfom[uɠ!:9gPɩGpV[:0eY,ȔT@?4OQ
+vcexxulPSYu  ~Gnys7 F!Z]:GNBMWWd5t75a<3"0C(!T,
+t>u>ZnrHf9ؼRxr}/+tCm(0fi%_h,bʚMWS\
+w?{E^[~ͤe0w*Q?5BPv9ݩsL
+7bYMcUa7YfB%.]%n+[!0vu{/;Ol_H?=Ŀ!Z2[2|qg[CSsps%[O@o;d$b2ZD 		P}d丧9a Nn5t%mPg	d6";A-Z1mYP{;$(ז]c)s ؀hl|*9GhΤ
+#ss
+KDW)UF0[>E'3`=i߇q8Ɵ$r_D;5?|%E> v2du6;GΖbAzsNQfTaЖE?n5Utn{*J/X] m-U)'+1y(nX?Na+(:PUn%u=qPۙ	*ouW4^*>V;̍,y$\ڸ	Dj	3Y LwET{OE*-(X;n7QmUx1D\8?T̲N	 k6n%{8\#=I}qD_ioa`( )>|9À4ϴdGi4Z+!DWITie䉐90MESМm6#	``%nIȵ`>ԧ1b$f0fޚaQ)zUt^]ӈۆ}<#:;١L"K#9_
+6]+K6qG{w{߫ۓkÍMx֍~6F[FC;ˬ%	b>Ǻ=qD،ˠVH}3wk60"GpZZxK{Ab`sل]᳀[l_FgL}>*"$c=| 
\ No newline at end of file
diff --git a/sites/default/files/js/js_xXOlF90KMxOoEFgnD2gqOnw0zbhHZ9HvM3EPVyAAJyU.js b/sites/default/files/js/js_xXOlF90KMxOoEFgnD2gqOnw0zbhHZ9HvM3EPVyAAJyU.js
new file mode 100644
index 0000000..74e00d6
--- /dev/null
+++ b/sites/default/files/js/js_xXOlF90KMxOoEFgnD2gqOnw0zbhHZ9HvM3EPVyAAJyU.js
@@ -0,0 +1,8627 @@
+/*! jQuery v2.1.4 | (c) 2005, 2015 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=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,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=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.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},n.extend=n.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||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},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=s(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(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;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=s(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&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=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)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(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||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(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 H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(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 pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(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 p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),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))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),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===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(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?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.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 ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.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},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.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=ga.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=ga.selectors={cacheLength:50,createPseudo:ia,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(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===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]||ga.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]&&ga.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(ca,da).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("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.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.replace(Q," ")+" ").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()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(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),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).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:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(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]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.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?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(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 ta(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 ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(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 wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(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?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(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 wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(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]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.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(ca,da),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(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(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&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.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?n.extend(a,d):d}},e={};return d.pipe=d.then,n.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&&n.isFunction(a.promise)?e:0,g=1===f?a:n.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]&&n.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;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(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};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){
+return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.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.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.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 L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.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=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!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(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},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 offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.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=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.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(g in a)this.on(g,b,c,a[g],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=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.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,n(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=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=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=ja(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=ja(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?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(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,n.cleanData(oa(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,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.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}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.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",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.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 za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(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+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.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}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(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":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.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))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,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||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=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):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.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,n.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 Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.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 Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),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:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.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(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.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)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(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=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.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)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.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})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.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=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)),
+void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.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 n.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=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.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||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.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){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.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(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(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(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.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&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.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){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.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 cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.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 sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(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}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,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":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e: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 c&&c.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||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(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]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=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,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;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)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.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,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.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?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
+
+//     Underscore.js 1.8.3
+//     http://underscorejs.org
+//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+//     Underscore may be freely distributed under the MIT license.
+(function(){function n(n){function t(t,r,e,u,i,o){for(;i>=0&&o>i;i+=n){var a=u?u[i]:i;e=r(e,t[a],a,t)}return e}return function(r,e,u,i){e=b(e,i,4);var o=!k(r)&&m.keys(r),a=(o||r).length,c=n>0?0:a-1;return arguments.length<3&&(u=r[o?o[c]:c],c+=n),t(r,e,u,o,c,a)}}function t(n){return function(t,r,e){r=x(r,e);for(var u=O(t),i=n>0?0:u-1;i>=0&&u>i;i+=n)if(r(t[i],i,t))return i;return-1}}function r(n,t,r){return function(e,u,i){var o=0,a=O(e);if("number"==typeof i)n>0?o=i>=0?i:Math.max(i+a,o):a=i>=0?Math.min(i+1,a):i+a+1;else if(r&&i&&a)return i=r(e,u),e[i]===u?i:-1;if(u!==u)return i=t(l.call(e,o,a),m.isNaN),i>=0?i+o:-1;for(i=n>0?o:a-1;i>=0&&a>i;i+=n)if(e[i]===u)return i;return-1}}function e(n,t){var r=I.length,e=n.constructor,u=m.isFunction(e)&&e.prototype||a,i="constructor";for(m.has(n,i)&&!m.contains(t,i)&&t.push(i);r--;)i=I[r],i in n&&n[i]!==u[i]&&!m.contains(t,i)&&t.push(i)}var u=this,i=u._,o=Array.prototype,a=Object.prototype,c=Function.prototype,f=o.push,l=o.slice,s=a.toString,p=a.hasOwnProperty,h=Array.isArray,v=Object.keys,g=c.bind,y=Object.create,d=function(){},m=function(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=m),exports._=m):u._=m,m.VERSION="1.8.3";var b=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}},x=function(n,t,r){return null==n?m.identity:m.isFunction(n)?b(n,t,r):m.isObject(n)?m.matcher(n):m.property(n)};m.iteratee=function(n,t){return x(n,t,1/0)};var _=function(n,t){return function(r){var e=arguments.length;if(2>e||null==r)return r;for(var u=1;e>u;u++)for(var i=arguments[u],o=n(i),a=o.length,c=0;a>c;c++){var f=o[c];t&&r[f]!==void 0||(r[f]=i[f])}return r}},j=function(n){if(!m.isObject(n))return{};if(y)return y(n);d.prototype=n;var t=new d;return d.prototype=null,t},w=function(n){return function(t){return null==t?void 0:t[n]}},A=Math.pow(2,53)-1,O=w("length"),k=function(n){var t=O(n);return"number"==typeof t&&t>=0&&A>=t};m.each=m.forEach=function(n,t,r){t=b(t,r);var e,u;if(k(n))for(e=0,u=n.length;u>e;e++)t(n[e],e,n);else{var i=m.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},m.map=m.collect=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=Array(u),o=0;u>o;o++){var a=e?e[o]:o;i[o]=t(n[a],a,n)}return i},m.reduce=m.foldl=m.inject=n(1),m.reduceRight=m.foldr=n(-1),m.find=m.detect=function(n,t,r){var e;return e=k(n)?m.findIndex(n,t,r):m.findKey(n,t,r),e!==void 0&&e!==-1?n[e]:void 0},m.filter=m.select=function(n,t,r){var e=[];return t=x(t,r),m.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e},m.reject=function(n,t,r){return m.filter(n,m.negate(x(t)),r)},m.every=m.all=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(!t(n[o],o,n))return!1}return!0},m.some=m.any=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(t(n[o],o,n))return!0}return!1},m.contains=m.includes=m.include=function(n,t,r,e){return k(n)||(n=m.values(n)),("number"!=typeof r||e)&&(r=0),m.indexOf(n,t,r)>=0},m.invoke=function(n,t){var r=l.call(arguments,2),e=m.isFunction(t);return m.map(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})},m.pluck=function(n,t){return m.map(n,m.property(t))},m.where=function(n,t){return m.filter(n,m.matcher(t))},m.findWhere=function(n,t){return m.find(n,m.matcher(t))},m.max=function(n,t,r){var e,u,i=-1/0,o=-1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],e>i&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(u>o||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},m.min=function(n,t,r){var e,u,i=1/0,o=1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],i>e&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(o>u||1/0===u&&1/0===i)&&(i=n,o=u)});return i},m.shuffle=function(n){for(var t,r=k(n)?n:m.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=m.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},m.sample=function(n,t,r){return null==t||r?(k(n)||(n=m.values(n)),n[m.random(n.length-1)]):m.shuffle(n).slice(0,Math.max(0,t))},m.sortBy=function(n,t,r){return t=x(t,r),m.pluck(m.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={};return r=x(r,e),m.each(t,function(e,i){var o=r(e,i,t);n(u,e,o)}),u}};m.groupBy=F(function(n,t,r){m.has(n,r)?n[r].push(t):n[r]=[t]}),m.indexBy=F(function(n,t,r){n[r]=t}),m.countBy=F(function(n,t,r){m.has(n,r)?n[r]++:n[r]=1}),m.toArray=function(n){return n?m.isArray(n)?l.call(n):k(n)?m.map(n,m.identity):m.values(n):[]},m.size=function(n){return null==n?0:k(n)?n.length:m.keys(n).length},m.partition=function(n,t,r){t=x(t,r);var e=[],u=[];return m.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},m.first=m.head=m.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:m.initial(n,n.length-t)},m.initial=function(n,t,r){return l.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},m.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:m.rest(n,Math.max(0,n.length-t))},m.rest=m.tail=m.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},m.compact=function(n){return m.filter(n,m.identity)};var S=function(n,t,r,e){for(var u=[],i=0,o=e||0,a=O(n);a>o;o++){var c=n[o];if(k(c)&&(m.isArray(c)||m.isArguments(c))){t||(c=S(c,t,r));var f=0,l=c.length;for(u.length+=l;l>f;)u[i++]=c[f++]}else r||(u[i++]=c)}return u};m.flatten=function(n,t){return S(n,t,!1)},m.without=function(n){return m.difference(n,l.call(arguments,1))},m.uniq=m.unique=function(n,t,r,e){m.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=x(r,e));for(var u=[],i=[],o=0,a=O(n);a>o;o++){var c=n[o],f=r?r(c,o,n):c;t?(o&&i===f||u.push(c),i=f):r?m.contains(i,f)||(i.push(f),u.push(c)):m.contains(u,c)||u.push(c)}return u},m.union=function(){return m.uniq(S(arguments,!0,!0))},m.intersection=function(n){for(var t=[],r=arguments.length,e=0,u=O(n);u>e;e++){var i=n[e];if(!m.contains(t,i)){for(var o=1;r>o&&m.contains(arguments[o],i);o++);o===r&&t.push(i)}}return t},m.difference=function(n){var t=S(arguments,!0,!0,1);return m.filter(n,function(n){return!m.contains(t,n)})},m.zip=function(){return m.unzip(arguments)},m.unzip=function(n){for(var t=n&&m.max(n,O).length||0,r=Array(t),e=0;t>e;e++)r[e]=m.pluck(n,e);return r},m.object=function(n,t){for(var r={},e=0,u=O(n);u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},m.findIndex=t(1),m.findLastIndex=t(-1),m.sortedIndex=function(n,t,r,e){r=x(r,e,1);for(var u=r(t),i=0,o=O(n);o>i;){var a=Math.floor((i+o)/2);r(n[a])<u?i=a+1:o=a}return i},m.indexOf=r(1,m.findIndex,m.sortedIndex),m.lastIndexOf=r(-1,m.findLastIndex),m.range=function(n,t,r){null==t&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var E=function(n,t,r,e,u){if(!(e instanceof t))return n.apply(r,u);var i=j(n.prototype),o=n.apply(i,u);return m.isObject(o)?o:i};m.bind=function(n,t){if(g&&n.bind===g)return g.apply(n,l.call(arguments,1));if(!m.isFunction(n))throw new TypeError("Bind must be called on a function");var r=l.call(arguments,2),e=function(){return E(n,e,t,this,r.concat(l.call(arguments)))};return e},m.partial=function(n){var t=l.call(arguments,1),r=function(){for(var e=0,u=t.length,i=Array(u),o=0;u>o;o++)i[o]=t[o]===m?arguments[e++]:t[o];for(;e<arguments.length;)i.push(arguments[e++]);return E(n,r,this,this,i)};return r},m.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=m.bind(n[r],n);return n},m.memoize=function(n,t){var r=function(e){var u=r.cache,i=""+(t?t.apply(this,arguments):e);return m.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},m.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},m.defer=m.partial(m.delay,m,1),m.throttle=function(n,t,r){var e,u,i,o=null,a=0;r||(r={});var c=function(){a=r.leading===!1?0:m.now(),o=null,i=n.apply(e,u),o||(e=u=null)};return function(){var f=m.now();a||r.leading!==!1||(a=f);var l=t-(f-a);return e=this,u=arguments,0>=l||l>t?(o&&(clearTimeout(o),o=null),a=f,i=n.apply(e,u),o||(e=u=null)):o||r.trailing===!1||(o=setTimeout(c,l)),i}},m.debounce=function(n,t,r){var e,u,i,o,a,c=function(){var f=m.now()-o;t>f&&f>=0?e=setTimeout(c,t-f):(e=null,r||(a=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,o=m.now();var f=r&&!e;return e||(e=setTimeout(c,t)),f&&(a=n.apply(i,u),i=u=null),a}},m.wrap=function(n,t){return m.partial(t,n)},m.negate=function(n){return function(){return!n.apply(this,arguments)}},m.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},m.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},m.before=function(n,t){var r;return function(){return--n>0&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}},m.once=m.partial(m.before,2);var M=!{toString:null}.propertyIsEnumerable("toString"),I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];m.keys=function(n){if(!m.isObject(n))return[];if(v)return v(n);var t=[];for(var r in n)m.has(n,r)&&t.push(r);return M&&e(n,t),t},m.allKeys=function(n){if(!m.isObject(n))return[];var t=[];for(var r in n)t.push(r);return M&&e(n,t),t},m.values=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},m.mapObject=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=u.length,o={},a=0;i>a;a++)e=u[a],o[e]=t(n[e],e,n);return o},m.pairs=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},m.invert=function(n){for(var t={},r=m.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},m.functions=m.methods=function(n){var t=[];for(var r in n)m.isFunction(n[r])&&t.push(r);return t.sort()},m.extend=_(m.allKeys),m.extendOwn=m.assign=_(m.keys),m.findKey=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=0,o=u.length;o>i;i++)if(e=u[i],t(n[e],e,n))return e},m.pick=function(n,t,r){var e,u,i={},o=n;if(null==o)return i;m.isFunction(t)?(u=m.allKeys(o),e=b(t,r)):(u=S(arguments,!1,!1,1),e=function(n,t,r){return t in r},o=Object(o));for(var a=0,c=u.length;c>a;a++){var f=u[a],l=o[f];e(l,f,o)&&(i[f]=l)}return i},m.omit=function(n,t,r){if(m.isFunction(t))t=m.negate(t);else{var e=m.map(S(arguments,!1,!1,1),String);t=function(n,t){return!m.contains(e,t)}}return m.pick(n,t,r)},m.defaults=_(m.allKeys,!0),m.create=function(n,t){var r=j(n);return t&&m.extendOwn(r,t),r},m.clone=function(n){return m.isObject(n)?m.isArray(n)?n.slice():m.extend({},n):n},m.tap=function(n,t){return t(n),n},m.isMatch=function(n,t){var r=m.keys(t),e=r.length;if(null==n)return!e;for(var u=Object(n),i=0;e>i;i++){var o=r[i];if(t[o]!==u[o]||!(o in u))return!1}return!0};var N=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof m&&(n=n._wrapped),t instanceof m&&(t=t._wrapped);var u=s.call(n);if(u!==s.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof t)return!1;var o=n.constructor,a=t.constructor;if(o!==a&&!(m.isFunction(o)&&o instanceof o&&m.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t)return!1}r=r||[],e=e||[];for(var c=r.length;c--;)if(r[c]===n)return e[c]===t;if(r.push(n),e.push(t),i){if(c=n.length,c!==t.length)return!1;for(;c--;)if(!N(n[c],t[c],r,e))return!1}else{var f,l=m.keys(n);if(c=l.length,m.keys(t).length!==c)return!1;for(;c--;)if(f=l[c],!m.has(t,f)||!N(n[f],t[f],r,e))return!1}return r.pop(),e.pop(),!0};m.isEqual=function(n,t){return N(n,t)},m.isEmpty=function(n){return null==n?!0:k(n)&&(m.isArray(n)||m.isString(n)||m.isArguments(n))?0===n.length:0===m.keys(n).length},m.isElement=function(n){return!(!n||1!==n.nodeType)},m.isArray=h||function(n){return"[object Array]"===s.call(n)},m.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},m.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(n){m["is"+n]=function(t){return s.call(t)==="[object "+n+"]"}}),m.isArguments(arguments)||(m.isArguments=function(n){return m.has(n,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(m.isFunction=function(n){return"function"==typeof n||!1}),m.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},m.isNaN=function(n){return m.isNumber(n)&&n!==+n},m.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===s.call(n)},m.isNull=function(n){return null===n},m.isUndefined=function(n){return n===void 0},m.has=function(n,t){return null!=n&&p.call(n,t)},m.noConflict=function(){return u._=i,this},m.identity=function(n){return n},m.constant=function(n){return function(){return n}},m.noop=function(){},m.property=w,m.propertyOf=function(n){return null==n?function(){}:function(t){return n[t]}},m.matcher=m.matches=function(n){return n=m.extendOwn({},n),function(t){return m.isMatch(t,n)}},m.times=function(n,t,r){var e=Array(Math.max(0,n));t=b(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},m.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},m.now=Date.now||function(){return(new Date).getTime()};var B={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},T=m.invert(B),R=function(n){var t=function(t){return n[t]},r="(?:"+m.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};m.escape=R(B),m.unescape=R(T),m.result=function(n,t,r){var e=null==n?void 0:n[t];return e===void 0&&(e=r),m.isFunction(e)?e.call(n):e};var q=0;m.uniqueId=function(n){var t=++q+"";return n?n+t:t},m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var K=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\u2028|\u2029/g,L=function(n){return"\\"+z[n]};m.template=function(n,t,r){!t&&r&&(t=r),t=m.defaults({},t,m.templateSettings);var e=RegExp([(t.escape||K).source,(t.interpolate||K).source,(t.evaluate||K).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,o,a){return i+=n.slice(u,a).replace(D,L),u=a+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":o&&(i+="';\n"+o+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var o=new Function(t.variable||"obj","_",i)}catch(a){throw a.source=i,a}var c=function(n){return o.call(this,n,m)},f=t.variable||"obj";return c.source="function("+f+"){\n"+i+"}",c},m.chain=function(n){var t=m(n);return t._chain=!0,t};var P=function(n,t){return n._chain?m(t).chain():t};m.mixin=function(n){m.each(m.functions(n),function(t){var r=m[t]=n[t];m.prototype[t]=function(){var n=[this._wrapped];return f.apply(n,arguments),P(this,r.apply(m,n))}})},m.mixin(m),m.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=o[n];m.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],P(this,r)}}),m.each(["concat","join","slice"],function(n){var t=o[n];m.prototype[n]=function(){return P(this,t.apply(this._wrapped,arguments))}}),m.prototype.value=function(){return this._wrapped},m.prototype.valueOf=m.prototype.toJSON=m.prototype.value,m.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return m})}).call(this);
+
+(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h<u;h++){t=o[h];if(a=this._events[t]){this._events[t]=s=[];if(e||r){for(l=0,f=a.length;l<f;l++){n=a[l];if(e&&e!==n.callback&&e!==n.callback._callback||r&&r!==n.context){s.push(n)}}}if(!s.length)delete this._events[t]}}return this},trigger:function(t){if(!this._events)return this;var e=o.call(arguments,1);if(!c(this,"trigger",t,e))return this;var i=this._events[t];var r=this._events.all;if(i)f(i,e);if(r)f(r,arguments);return this},stopListening:function(t,e,r){var s=this._listeningTo;if(!s)return this;var n=!e&&!r;if(!r&&typeof e==="object")r=this;if(t)(s={})[t._listenId]=t;for(var a in s){t=s[a];t.off(e,r,this);if(n||i.isEmpty(t._events))delete this._listeningTo[a]}return this}};var l=/\s+/;var c=function(t,e,i,r){if(!i)return true;if(typeof i==="object"){for(var s in i){t[e].apply(t,[s,i[s]].concat(r))}return false}if(l.test(i)){var n=i.split(l);for(var a=0,o=n.length;a<o;a++){t[e].apply(t,[n[a]].concat(r))}return false}return true};var f=function(t,e){var i,r=-1,s=t.length,n=e[0],a=e[1],o=e[2];switch(e.length){case 0:while(++r<s)(i=t[r]).callback.call(i.ctx);return;case 1:while(++r<s)(i=t[r]).callback.call(i.ctx,n);return;case 2:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a);return;case 3:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a,o);return;default:while(++r<s)(i=t[r]).callback.apply(i.ctx,e);return}};var d={listenTo:"on",listenToOnce:"once"};i.each(d,function(t,e){u[e]=function(e,r,s){var n=this._listeningTo||(this._listeningTo={});var a=e._listenId||(e._listenId=i.uniqueId("l"));n[a]=e;if(!s&&typeof r==="object")s=this;e[t](r,s,this);return this}});u.bind=u.on;u.unbind=u.off;i.extend(e,u);var p=e.Model=function(t,e){var r=t||{};e||(e={});this.cid=i.uniqueId("c");this.attributes={};if(e.collection)this.collection=e.collection;if(e.parse)r=this.parse(r,e)||{};r=i.defaults({},r,i.result(this,"defaults"));this.set(r,e);this.changed={};this.initialize.apply(this,arguments)};i.extend(p.prototype,u,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(t){return i.clone(this.attributes)},sync:function(){return e.sync.apply(this,arguments)},get:function(t){return this.attributes[t]},escape:function(t){return i.escape(this.get(t))},has:function(t){return this.get(t)!=null},set:function(t,e,r){var s,n,a,o,h,u,l,c;if(t==null)return this;if(typeof t==="object"){n=t;r=e}else{(n={})[t]=e}r||(r={});if(!this._validate(n,r))return false;a=r.unset;h=r.silent;o=[];u=this._changing;this._changing=true;if(!u){this._previousAttributes=i.clone(this.attributes);this.changed={}}c=this.attributes,l=this._previousAttributes;if(this.idAttribute in n)this.id=n[this.idAttribute];for(s in n){e=n[s];if(!i.isEqual(c[s],e))o.push(s);if(!i.isEqual(l[s],e)){this.changed[s]=e}else{delete this.changed[s]}a?delete c[s]:c[s]=e}if(!h){if(o.length)this._pending=r;for(var f=0,d=o.length;f<d;f++){this.trigger("change:"+o[f],this,c[o[f]],r)}}if(u)return this;if(!h){while(this._pending){r=this._pending;this._pending=false;this.trigger("change",this,r)}}this._pending=false;this._changing=false;return this},unset:function(t,e){return this.set(t,void 0,i.extend({},e,{unset:true}))},clear:function(t){var e={};for(var r in this.attributes)e[r]=void 0;return this.set(e,i.extend({},t,{unset:true}))},hasChanged:function(t){if(t==null)return!i.isEmpty(this.changed);return i.has(this.changed,t)},changedAttributes:function(t){if(!t)return this.hasChanged()?i.clone(this.changed):false;var e,r=false;var s=this._changing?this._previousAttributes:this.attributes;for(var n in t){if(i.isEqual(s[n],e=t[n]))continue;(r||(r={}))[n]=e}return r},previous:function(t){if(t==null||!this._previousAttributes)return null;return this._previousAttributes[t]},previousAttributes:function(){return i.clone(this._previousAttributes)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=this;var r=t.success;t.success=function(i){if(!e.set(e.parse(i,t),t))return false;if(r)r(e,i,t);e.trigger("sync",e,i,t)};q(this,t);return this.sync("read",this,t)},save:function(t,e,r){var s,n,a,o=this.attributes;if(t==null||typeof t==="object"){s=t;r=e}else{(s={})[t]=e}r=i.extend({validate:true},r);if(s&&!r.wait){if(!this.set(s,r))return false}else{if(!this._validate(s,r))return false}if(s&&r.wait){this.attributes=i.extend({},o,s)}if(r.parse===void 0)r.parse=true;var h=this;var u=r.success;r.success=function(t){h.attributes=o;var e=h.parse(t,r);if(r.wait)e=i.extend(s||{},e);if(i.isObject(e)&&!h.set(e,r)){return false}if(u)u(h,t,r);h.trigger("sync",h,t,r)};q(this,r);n=this.isNew()?"create":r.patch?"patch":"update";if(n==="patch")r.attrs=s;a=this.sync(n,this,r);if(s&&r.wait)this.attributes=o;return a},destroy:function(t){t=t?i.clone(t):{};var e=this;var r=t.success;var s=function(){e.trigger("destroy",e,e.collection,t)};t.success=function(i){if(t.wait||e.isNew())s();if(r)r(e,i,t);if(!e.isNew())e.trigger("sync",e,i,t)};if(this.isNew()){t.success();return false}q(this,t);var n=this.sync("delete",this,t);if(!t.wait)s();return n},url:function(){var t=i.result(this,"urlRoot")||i.result(this.collection,"url")||M();if(this.isNew())return t;return t.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(t,e){return t},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return this._validate({},i.extend(t||{},{validate:true}))},_validate:function(t,e){if(!e.validate||!this.validate)return true;t=i.extend({},this.attributes,t);var r=this.validationError=this.validate(t,e)||null;if(!r)return true;this.trigger("invalid",this,r,i.extend(e,{validationError:r}));return false}});var v=["keys","values","pairs","invert","pick","omit"];i.each(v,function(t){p.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.attributes);return i[t].apply(i,e)}});var g=e.Collection=function(t,e){e||(e={});if(e.model)this.model=e.model;if(e.comparator!==void 0)this.comparator=e.comparator;this._reset();this.initialize.apply(this,arguments);if(t)this.reset(t,i.extend({silent:true},e))};var m={add:true,remove:true,merge:true};var y={add:true,remove:false};i.extend(g.prototype,u,{model:p,initialize:function(){},toJSON:function(t){return this.map(function(e){return e.toJSON(t)})},sync:function(){return e.sync.apply(this,arguments)},add:function(t,e){return this.set(t,i.extend({merge:false},e,y))},remove:function(t,e){var r=!i.isArray(t);t=r?[t]:i.clone(t);e||(e={});var s,n,a,o;for(s=0,n=t.length;s<n;s++){o=t[s]=this.get(t[s]);if(!o)continue;delete this._byId[o.id];delete this._byId[o.cid];a=this.indexOf(o);this.models.splice(a,1);this.length--;if(!e.silent){e.index=a;o.trigger("remove",o,this,e)}this._removeReference(o,e)}return r?t[0]:t},set:function(t,e){e=i.defaults({},e,m);if(e.parse)t=this.parse(t,e);var r=!i.isArray(t);t=r?t?[t]:[]:i.clone(t);var s,n,a,o,h,u,l;var c=e.at;var f=this.model;var d=this.comparator&&c==null&&e.sort!==false;var v=i.isString(this.comparator)?this.comparator:null;var g=[],y=[],_={};var b=e.add,w=e.merge,x=e.remove;var E=!d&&b&&x?[]:false;for(s=0,n=t.length;s<n;s++){h=t[s]||{};if(h instanceof p){a=o=h}else{a=h[f.prototype.idAttribute||"id"]}if(u=this.get(a)){if(x)_[u.cid]=true;if(w){h=h===o?o.attributes:h;if(e.parse)h=u.parse(h,e);u.set(h,e);if(d&&!l&&u.hasChanged(v))l=true}t[s]=u}else if(b){o=t[s]=this._prepareModel(h,e);if(!o)continue;g.push(o);this._addReference(o,e)}o=u||o;if(E&&(o.isNew()||!_[o.id]))E.push(o);_[o.id]=true}if(x){for(s=0,n=this.length;s<n;++s){if(!_[(o=this.models[s]).cid])y.push(o)}if(y.length)this.remove(y,e)}if(g.length||E&&E.length){if(d)l=true;this.length+=g.length;if(c!=null){for(s=0,n=g.length;s<n;s++){this.models.splice(c+s,0,g[s])}}else{if(E)this.models.length=0;var k=E||g;for(s=0,n=k.length;s<n;s++){this.models.push(k[s])}}}if(l)this.sort({silent:true});if(!e.silent){for(s=0,n=g.length;s<n;s++){(o=g[s]).trigger("add",o,this,e)}if(l||E&&E.length)this.trigger("sort",this,e)}return r?t[0]:t},reset:function(t,e){e||(e={});for(var r=0,s=this.models.length;r<s;r++){this._removeReference(this.models[r],e)}e.previousModels=this.models;this._reset();t=this.add(t,i.extend({silent:true},e));if(!e.silent)this.trigger("reset",this,e);return t},push:function(t,e){return this.add(t,i.extend({at:this.length},e))},pop:function(t){var e=this.at(this.length-1);this.remove(e,t);return e},unshift:function(t,e){return this.add(t,i.extend({at:0},e))},shift:function(t){var e=this.at(0);this.remove(e,t);return e},slice:function(){return o.apply(this.models,arguments)},get:function(t){if(t==null)return void 0;return this._byId[t]||this._byId[t.id]||this._byId[t.cid]},at:function(t){return this.models[t]},where:function(t,e){if(i.isEmpty(t))return e?void 0:[];return this[e?"find":"filter"](function(e){for(var i in t){if(t[i]!==e.get(i))return false}return true})},findWhere:function(t){return this.where(t,true)},sort:function(t){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");t||(t={});if(i.isString(this.comparator)||this.comparator.length===1){this.models=this.sortBy(this.comparator,this)}else{this.models.sort(i.bind(this.comparator,this))}if(!t.silent)this.trigger("sort",this,t);return this},pluck:function(t){return i.invoke(this.models,"get",t)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=t.success;var r=this;t.success=function(i){var s=t.reset?"reset":"set";r[s](i,t);if(e)e(r,i,t);r.trigger("sync",r,i,t)};q(this,t);return this.sync("read",this,t)},create:function(t,e){e=e?i.clone(e):{};if(!(t=this._prepareModel(t,e)))return false;if(!e.wait)this.add(t,e);var r=this;var s=e.success;e.success=function(t,i){if(e.wait)r.add(t,e);if(s)s(t,i,e)};t.save(null,e);return t},parse:function(t,e){return t},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0;this.models=[];this._byId={}},_prepareModel:function(t,e){if(t instanceof p)return t;e=e?i.clone(e):{};e.collection=this;var r=new this.model(t,e);if(!r.validationError)return r;this.trigger("invalid",this,r.validationError,e);return false},_addReference:function(t,e){this._byId[t.cid]=t;if(t.id!=null)this._byId[t.id]=t;if(!t.collection)t.collection=this;t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){if(this===t.collection)delete t.collection;t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,i,r){if((t==="add"||t==="remove")&&i!==this)return;if(t==="destroy")this.remove(e,r);if(e&&t==="change:"+e.idAttribute){delete this._byId[e.previous(e.idAttribute)];if(e.id!=null)this._byId[e.id]=e}this.trigger.apply(this,arguments)}});var _=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];i.each(_,function(t){g.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.models);return i[t].apply(i,e)}});var b=["groupBy","countBy","sortBy","indexBy"];i.each(b,function(t){g.prototype[t]=function(e,r){var s=i.isFunction(e)?e:function(t){return t.get(e)};return i[t](this.models,s,r)}});var w=e.View=function(t){this.cid=i.uniqueId("view");t||(t={});i.extend(this,i.pick(t,E));this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()};var x=/^(\S+)\s*(.*)$/;var E=["model","collection","el","id","attributes","className","tagName","events"];i.extend(w.prototype,u,{tagName:"div",$:function(t){return this.$el.find(t)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();this.stopListening();return this},setElement:function(t,i){if(this.$el)this.undelegateEvents();this.$el=t instanceof e.$?t:e.$(t);this.el=this.$el[0];if(i!==false)this.delegateEvents();return this},delegateEvents:function(t){if(!(t||(t=i.result(this,"events"))))return this;this.undelegateEvents();for(var e in t){var r=t[e];if(!i.isFunction(r))r=this[t[e]];if(!r)continue;var s=e.match(x);var n=s[1],a=s[2];r=i.bind(r,this);n+=".delegateEvents"+this.cid;if(a===""){this.$el.on(n,r)}else{this.$el.on(n,a,r)}}return this},undelegateEvents:function(){this.$el.off(".delegateEvents"+this.cid);return this},_ensureElement:function(){if(!this.el){var t=i.extend({},i.result(this,"attributes"));if(this.id)t.id=i.result(this,"id");if(this.className)t["class"]=i.result(this,"className");var r=e.$("<"+i.result(this,"tagName")+">").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('<iframe src="javascript:0" tabindex="-1">');this.iframe=a.hide().appendTo("body")[0].contentWindow;this.navigate(r)}if(this._hasPushState){e.$(window).on("popstate",this.checkUrl)}else if(this._wantsHashChange&&"onhashchange"in window&&!n){e.$(window).on("hashchange",this.checkUrl)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}this.fragment=r;var o=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){this.fragment=this.getFragment(null,true);this.location.replace(this.root+"#"+this.fragment);return true}else if(this._hasPushState&&this.atRoot()&&o.hash){this.fragment=this.getHash().replace(R,"");this.history.replaceState({},document.title,this.root+this.fragment)}}if(!this.options.silent)return this.loadUrl()},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl);if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);N.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getFragment(this.getHash(this.iframe))}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){t=this.fragment=this.getFragment(t);return i.any(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!N.started)return false;if(!e||e===true)e={trigger:!!e};var i=this.root+(t=this.getFragment(t||""));t=t.replace(j,"");if(this.fragment===t)return;this.fragment=t;if(t===""&&i!=="/")i=i.slice(0,-1);if(this._hasPushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,i)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getFragment(this.getHash(this.iframe))){if(!e.replace)this.iframe.document.open().close();this._updateHash(this.iframe.location,t,e.replace)}}else{return this.location.assign(i)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new N;var U=function(t,e){var r=this;var s;if(t&&i.has(t,"constructor")){s=t.constructor}else{s=function(){return r.apply(this,arguments)}}i.extend(s,r,e);var n=function(){this.constructor=s};n.prototype=r.prototype;s.prototype=new n;if(t)i.extend(s.prototype,t);s.__super__=r.prototype;return s};p.extend=g.extend=$.extend=w.extend=N.extend=U;var M=function(){throw new Error('A "url" property or function must be specified')};var q=function(t,e){var i=e.error;e.error=function(r){if(i)i(t,r,e);t.trigger("error",t,r,e)}};return e});
+
+/*!
+ * jQuery Once v2.0.1 - http://github.com/robloach/jquery-once
+ * @license MIT, GPL-2.0
+ *   http://opensource.org/licenses/MIT
+ *   http://opensource.org/licenses/GPL-2.0
+ */
+(function(e){"use strict";if(typeof exports==="object"){e(require("jquery"))}else if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){"use strict";var n=function(e){e=e||"once";if(typeof e!=="string"){throw new Error("The jQuery Once id parameter must be a string")}return e};e.fn.once=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)!==true}).data(r,true)};e.fn.removeOnce=function(e){return this.findOnce(e).removeData("jquery-once-"+n(e))};e.fn.findOnce=function(t){var r="jquery-once-"+n(t);return this.filter(function(){return e(this).data(r)===true})}});
+
+/**
+ * Base framework for Drupal-specific JavaScript, behaviors, and settings.
+ */
+window.Drupal = {behaviors: {}};
+
+// Class indicating that JS is enabled; used for styling purpose.
+document.documentElement.className += ' js';
+
+// Allow other JavaScript libraries to use $.
+if (window.jQuery) {
+  jQuery.noConflict();
+}
+
+// JavaScript should be made compatible with libraries other than jQuery by
+// wrapping it in an anonymous closure.
+(function (domready, Drupal, drupalSettings, drupalTranslations) {
+
+  "use strict";
+
+  /**
+   * Custom error type thrown after attach/detach if one or more behaviors failed.
+   *
+   * @param list
+   *   An array of errors thrown during attach/detach.
+   * @param event
+   *   A string containing either 'attach' or 'detach'.
+   */
+  function DrupalBehaviorError(list, event) {
+    this.name = 'DrupalBehaviorError';
+    this.event = event || 'attach';
+    this.list = list;
+    // Makes the list of errors readable.
+    var messageList = [];
+    messageList.push(this.event);
+    var il = this.list.length;
+    for (var i = 0; i < il; i++) {
+      messageList.push(this.list[i].behavior + ': ' + this.list[i].error.message);
+    }
+    this.message = messageList.join(' ; ');
+  }
+
+  DrupalBehaviorError.prototype = new Error();
+
+  /**
+   * Attach all registered behaviors to a page element.
+   *
+   * Behaviors are event-triggered actions that attach to page elements, enhancing
+   * default non-JavaScript UIs. Behaviors are registered in the Drupal.behaviors
+   * object using the method 'attach' and optionally also 'detach' as follows:
+   * @code
+   *    Drupal.behaviors.behaviorName = {
+   *      attach: function (context, settings) {
+   *        ...
+   *      },
+   *      detach: function (context, settings, trigger) {
+   *        ...
+   *      }
+   *    };
+   * @endcode
+   *
+   * Drupal.attachBehaviors is added below to the jQuery.ready event and therefore
+   * runs on initial page load. Developers implementing Ajax in their solutions
+   * should also call this function after new page content has been loaded,
+   * feeding in an element to be processed, in order to attach all behaviors to
+   * the new content.
+   *
+   * Behaviors should use
+   * @code
+   *   var elements = $(context).find(selector).once('behavior-name');
+   * @endcode
+   * to ensure the behavior is attached only once to a given element. (Doing so
+   * enables the reprocessing of given elements, which may be needed on occasion
+   * despite the ability to limit behavior attachment to a particular element.)
+   *
+   * @param context
+   *   An element to attach behaviors to. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none is given,
+   *   the global drupalSettings object is used.
+   */
+  Drupal.attachBehaviors = function (context, settings) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].attach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].attach(context, settings);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'attach');
+    }
+  };
+
+  // Attach all behaviors.
+  domready(function () { Drupal.attachBehaviors(document, drupalSettings); });
+
+  /**
+   * Detach registered behaviors from a page element.
+   *
+   * Developers implementing AHAH/Ajax in their solutions should call this
+   * function before page content is about to be removed, feeding in an element
+   * to be processed, in order to allow special behaviors to detach from the
+   * content.
+   *
+   * Such implementations should use .findOnce() and .removeOnce() to find
+   * elements with their corresponding Drupal.behaviors.behaviorName.attach
+   * implementation, i.e. .removeOnce('behaviorName'), to ensure the behavior is
+   * detached only from previously processed elements.
+   *
+   * @param context
+   *   An element to detach behaviors from. If none is given, the document element
+   *   is used.
+   * @param settings
+   *   An object containing settings for the current context. If none given, the
+   *   global drupalSettings object is used.
+   * @param trigger
+   *   A string containing what's causing the behaviors to be detached. The
+   *   possible triggers are:
+   *   - unload: (default) The context element is being removed from the DOM.
+   *   - move: The element is about to be moved within the DOM (for example,
+   *     during a tabledrag row swap). After the move is completed,
+   *     Drupal.attachBehaviors() is called, so that the behavior can undo
+   *     whatever it did in response to the move. Many behaviors won't need to
+   *     do anything simply in response to the element being moved, but because
+   *     IFRAME elements reload their "src" when being moved within the DOM,
+   *     behaviors bound to IFRAME elements (like WYSIWYG editors) may need to
+   *     take some action.
+   *   - serialize: When an Ajax form is submitted, this is called with the
+   *     form as the context. This provides every behavior within the form an
+   *     opportunity to ensure that the field elements have correct content
+   *     in them before the form is serialized. The canonical use-case is so
+   *     that WYSIWYG editors can update the hidden textarea to which they are
+   *     bound.
+   *
+   * @see Drupal.attachBehaviors
+   */
+  Drupal.detachBehaviors = function (context, settings, trigger) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    trigger = trigger || 'unload';
+    var errors = [];
+    var behaviors = Drupal.behaviors;
+    // Execute all of them.
+    for (var i in behaviors) {
+      if (behaviors.hasOwnProperty(i) && typeof behaviors[i].detach === 'function') {
+        // Don't stop the execution of behaviors in case of an error.
+        try {
+          behaviors[i].detach(context, settings, trigger);
+        }
+        catch (e) {
+          errors.push({behavior: i, error: e});
+        }
+      }
+    }
+    // Once all behaviors have been processed, inform the user about errors.
+    if (errors.length) {
+      throw new DrupalBehaviorError(errors, 'detach:' + trigger);
+    }
+  };
+
+  /**
+   * Helper to test document width for mobile configurations.
+   * @todo Temporary solution for the mobile initiative.
+   */
+  Drupal.checkWidthBreakpoint = function (width) {
+    width = width || drupalSettings.widthBreakpoint || 640;
+    return (document.documentElement.clientWidth > width);
+  };
+
+  /**
+   * Encode special characters in a plain-text string for display as HTML.
+   *
+   * @param str
+   *   The string to be encoded.
+   * @return
+   *   The encoded string.
+   * @ingroup sanitization
+   */
+  Drupal.checkPlain = function (str) {
+    str = str.toString()
+      .replace(/&/g, '&amp;')
+      .replace(/"/g, '&quot;')
+      .replace(/</g, '&lt;')
+      .replace(/>/g, '&gt;');
+    return str;
+  };
+
+  /**
+   * Replace placeholders with sanitized values in a string.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   An object of replacements pairs to make. Incidences of any key in this
+   *   array are replaced with the corresponding value. Based on the first
+   *   character of the key, the value is escaped and/or themed:
+   *    - !variable: inserted as is
+   *    - @variable: escape plain text to HTML (Drupal.checkPlain)
+   *    - %variable: escape text and theme as a placeholder for user-submitted
+   *      content (checkPlain + Drupal.theme('placeholder'))
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   *
+   * @see Drupal.t()
+   * @ingroup sanitization
+   */
+  Drupal.formatString = function (str, args) {
+    // Keep args intact.
+    var processedArgs = {};
+    // Transform arguments before inserting them.
+    for (var key in args) {
+      if (args.hasOwnProperty(key)) {
+        switch (key.charAt(0)) {
+          // Escaped only.
+          case '@':
+            processedArgs[key] = Drupal.checkPlain(args[key]);
+            break;
+          // Pass-through.
+          case '!':
+            processedArgs[key] = args[key];
+            break;
+          // Escaped and placeholder.
+          default:
+            processedArgs[key] = Drupal.theme('placeholder', args[key]);
+            break;
+        }
+      }
+    }
+
+    return Drupal.stringReplace(str, processedArgs, null);
+  };
+
+  /**
+   * Replace substring.
+   *
+   * The longest keys will be tried first. Once a substring has been replaced,
+   * its new value will not be searched again.
+   *
+   * @param {String} str
+   *   A string with placeholders.
+   * @param {Object} args
+   *   Key-value pairs.
+   * @param {Array|null} keys
+   *   Array of keys from the "args".  Internal use only.
+   *
+   * @return {String}
+   *   Returns the replaced string.
+   */
+  Drupal.stringReplace = function (str, args, keys) {
+    if (str.length === 0) {
+      return str;
+    }
+
+    // If the array of keys is not passed then collect the keys from the args.
+    if (!Array.isArray(keys)) {
+      keys = [];
+      for (var k in args) {
+        if (args.hasOwnProperty(k)) {
+          keys.push(k);
+        }
+      }
+
+      // Order the keys by the character length. The shortest one is the first.
+      keys.sort(function (a, b) { return a.length - b.length; });
+    }
+
+    if (keys.length === 0) {
+      return str;
+    }
+
+    // Take next longest one from the end.
+    var key = keys.pop();
+    var fragments = str.split(key);
+
+    if (keys.length) {
+      for (var i = 0; i < fragments.length; i++) {
+        // Process each fragment with a copy of remaining keys.
+        fragments[i] = Drupal.stringReplace(fragments[i], args, keys.slice(0));
+      }
+    }
+
+    return fragments.join(args[key]);
+  };
+
+  /**
+   * Translate strings to the page language or a given language.
+   *
+   * See the documentation of the server-side t() function for further details.
+   *
+   * @param str
+   *   A string containing the English string to translate.
+   * @param args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *
+   * @param options
+   *   - 'context' (defaults to the empty context): The context the source string
+   *     belongs to.
+   *
+   * @return
+   *   The translated string.
+   */
+  Drupal.t = function (str, args, options) {
+    options = options || {};
+    options.context = options.context || '';
+
+    // Fetch the localized version of the string.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.strings && drupalTranslations.strings[options.context] && drupalTranslations.strings[options.context][str]) {
+      str = drupalTranslations.strings[options.context][str];
+    }
+
+    if (args) {
+      str = Drupal.formatString(str, args);
+    }
+    return str;
+  };
+
+  /**
+   * Returns the URL to a Drupal page.
+   */
+  Drupal.url = function (path) {
+    return drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + path;
+  };
+
+  /**
+   * Format a string containing a count of items.
+   *
+   * This function ensures that the string is pluralized correctly. Since
+   * Drupal.t() is called by this function, make sure not to pass
+   * already-localized strings to it.
+   *
+   * See the documentation of the server-side
+   * \Drupal\Core\StringTranslation\TranslationInterface::formatPlural()
+   * function for more details.
+   *
+   * @param {Number} count
+   *   The item count to display.
+   * @param {String} singular
+   *   The string for the singular case. Please make sure it is clear this is
+   *   singular, to ease translation (e.g. use "1 new comment" instead of "1
+   *   new"). Do not use @count in the singular string.
+   * @param {String} plural
+   *   The string for the plural case. Please make sure it is clear this is
+   *   plural, to ease translation. Use @count in place of the item count, as in
+   *   "@count new comments".
+   * @param {Object} args
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See Drupal.formatString().
+   *   Note that you do not need to include @count in this array.
+   *   This replacement is done automatically for the plural case.
+   * @param {Object} options
+   *   The options to pass to the Drupal.t() function.
+   *
+   * @return {String}
+   *   A translated string.
+   */
+  Drupal.formatPlural = function (count, singular, plural, args, options) {
+    args = args || {};
+    args['@count'] = count;
+
+    var pluralDelimiter = drupalSettings.pluralDelimiter;
+    var translations = Drupal.t(singular + pluralDelimiter + plural, args, options).split(pluralDelimiter);
+    var index = 0;
+
+    // Determine the index of the plural form.
+    if (typeof drupalTranslations !== 'undefined' && drupalTranslations.pluralFormula) {
+      index = count in drupalTranslations.pluralFormula ? drupalTranslations.pluralFormula[count] : drupalTranslations.pluralFormula['default'];
+    }
+    else if (args['@count'] !== 1) {
+      index = 1;
+    }
+
+    return translations[index];
+  };
+
+  /**
+   * Encodes a Drupal path for use in a URL.
+   *
+   * For aesthetic reasons slashes are not escaped.
+   */
+  Drupal.encodePath = function (item) {
+    return window.encodeURIComponent(item).replace(/%2F/g, '/');
+  };
+
+  /**
+   * Generate the themed representation of a Drupal object.
+   *
+   * All requests for themed output must go through this function. It examines
+   * the request and routes it to the appropriate theme function. If the current
+   * theme does not provide an override function, the generic theme function is
+   * called.
+   *
+   * For example, to retrieve the HTML for text that should be emphasized and
+   * displayed as a placeholder inside a sentence, call
+   * Drupal.theme('placeholder', text).
+   *
+   * @param func
+   *   The name of the theme function to call.
+   * @param ...
+   *   Additional arguments to pass along to the theme function.
+   * @return
+   *   Any data the theme function returns. This could be a plain HTML string,
+   *   but also a complex object.
+   */
+  Drupal.theme = function (func) {
+    var args = Array.prototype.slice.apply(arguments, [1]);
+    if (func in Drupal.theme) {
+      return Drupal.theme[func].apply(this, args);
+    }
+  };
+
+  /**
+   * Formats text for emphasized display in a placeholder inside a sentence.
+   *
+   * @param str
+   *   The text to format (plain-text).
+   * @return
+   *   The formatted text (html).
+   */
+  Drupal.theme.placeholder = function (str) {
+    return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>';
+  };
+
+})(domready, Drupal, window.drupalSettings, window.drupalTranslations);
+;
+/*!
+ * jQuery UI Core 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,r){var i,s,o,u=t.nodeName.toLowerCase();return"area"===u?(i=t.parentNode,s=i.name,!t.href||!s||i.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap='#"+s+"']")[0],!!o&&n(o))):(/^(input|select|textarea|button|object)$/.test(u)?!t.disabled:"a"===u?t.href||r:r)&&n(t)}function n(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return e.css(this,"visibility")==="hidden"}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var n=this.css("position"),r=n==="absolute",i=t?/(auto|scroll|hidden)/:/(auto|scroll)/,s=this.parents().filter(function(){var t=e(this);return r&&t.css("position")==="static"?!1:i.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return n==="fixed"||!s.length?e(this[0].ownerDocument||document):s},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(n){return t(n,!isNaN(e.attr(n,"tabindex")))},tabbable:function(n){var r=e.attr(n,"tabindex"),i=isNaN(r);return(i||r>=0)&&t(n,!i)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,n){function o(t,n,i,s){return e.each(r,function(){n-=parseFloat(e.css(t,"padding"+this))||0,i&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var r=n==="Width"?["Left","Right"]:["Top","Bottom"],i=n.toLowerCase(),s={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+n]=function(t){return t===undefined?s["inner"+n].call(this):this.each(function(){e(this).css(i,o(this,t)+"px")})},e.fn["outer"+n]=function(t,r){return typeof t!="number"?s["outer"+n].call(this,t):this.each(function(){e(this).css(i,o(this,t,!0,r)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(n,r){return typeof n=="number"?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),r&&r.call(t)},n)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(t!==undefined)return this.css("zIndex",t);if(this.length){var n=e(this[0]),r,i;while(n.length&&n[0]!==document){r=n.css("position");if(r==="absolute"||r==="relative"||r==="fixed"){i=parseInt(n.css("zIndex"),10);if(!isNaN(i)&&i!==0)return i}n=n.parent()}}return 0}}),e.ui.plugin={add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n,r){var i,s=e.plugins[t];if(!s)return;if(!r&&(!e.element[0].parentNode||e.element[0].parentNode.nodeType===11))return;for(i=0;i<s.length;i++)e.options[s[i][0]]&&s[i][1].apply(e.element,n)}}});;
+/*!
+ * jQuery UI Widget 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){var t=0,n=Array.prototype.slice;return e.cleanData=function(t){return function(n){var r,i,s;for(s=0;(i=n[s])!=null;s++)try{r=e._data(i,"events"),r&&r.remove&&e(i).triggerHandler("remove")}catch(o){}t(n)}}(e.cleanData),e.widget=function(t,n,r){var i,s,o,u,a={},f=t.split(".")[0];return t=t.split(".")[1],i=f+"-"+t,r||(r=n,n=e.Widget),e.expr[":"][i.toLowerCase()]=function(t){return!!e.data(t,i)},e[f]=e[f]||{},s=e[f][t],o=e[f][t]=function(e,t){if(!this._createWidget)return new o(e,t);arguments.length&&this._createWidget(e,t)},e.extend(o,s,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),u=new n,u.options=e.widget.extend({},u.options),e.each(r,function(t,r){if(!e.isFunction(r)){a[t]=r;return}a[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},i=function(e){return n.prototype[t].apply(this,e)};return function(){var t=this._super,n=this._superApply,s;return this._super=e,this._superApply=i,s=r.apply(this,arguments),this._super=t,this._superApply=n,s}}()}),o.prototype=e.widget.extend(u,{widgetEventPrefix:s?u.widgetEventPrefix||t:t},a,{constructor:o,namespace:f,widgetName:t,widgetFullName:i}),s?(e.each(s._childConstructors,function(t,n){var r=n.prototype;e.widget(r.namespace+"."+r.widgetName,o,n._proto)}),delete s._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){var r=n.call(arguments,1),i=0,s=r.length,o,u;for(;i<s;i++)for(o in r[i])u=r[i][o],r[i].hasOwnProperty(o)&&u!==undefined&&(e.isPlainObject(u)?t[o]=e.isPlainObject(t[o])?e.widget.extend({},t[o],u):e.widget.extend({},u):t[o]=u);return t},e.widget.bridge=function(t,r){var i=r.prototype.widgetFullName||t;e.fn[t]=function(s){var o=typeof s=="string",u=n.call(arguments,1),a=this;return o?this.each(function(){var n,r=e.data(this,i);if(s==="instance")return a=r,!1;if(!r)return e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+s+"'");if(!e.isFunction(r[s])||s.charAt(0)==="_")return e.error("no such method '"+s+"' for "+t+" widget instance");n=r[s].apply(r,u);if(n!==r&&n!==undefined)return a=n&&n.jquery?a.pushStack(n.get()):n,!1}):(u.length&&(s=e.widget.extend.apply(null,[s].concat(u))),this.each(function(){var t=e.data(this,i);t?(t.option(s||{}),t._init&&t._init()):e.data(this,i,new r(s,this))})),a}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(n,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=t++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),n),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,n){var r=t,i,s,o;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof t=="string"){r={},i=t.split("."),t=i.shift();if(i.length){s=r[t]=e.widget.extend({},this.options[t]);for(o=0;o<i.length-1;o++)s[i[o]]=s[i[o]]||{},s=s[i[o]];t=i.pop();if(arguments.length===1)return s[t]===undefined?null:s[t];s[t]=n}else{if(arguments.length===1)return this.options[t]===undefined?null:this.options[t];r[t]=n}}return this._setOptions(r),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,e==="disabled"&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,n,r){var i,s=this;typeof t!="boolean"&&(r=n,n=t,t=!1),r?(n=i=e(n),this.bindings=this.bindings.add(n)):(r=n,n=this.element,i=this.widget()),e.each(r,function(r,o){function u(){if(!t&&(s.options.disabled===!0||e(this).hasClass("ui-state-disabled")))return;return(typeof o=="string"?s[o]:o).apply(s,arguments)}typeof o!="string"&&(u.guid=o.guid=o.guid||u.guid||e.guid++);var a=r.match(/^([\w:-]*)\s*(.*)$/),f=a[1]+s.eventNamespace,l=a[2];l?i.delegate(l,f,u):n.bind(f,u)})},_off:function(t,n){n=(n||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(n).undelegate(n),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function n(){return(typeof e=="string"?r[e]:e).apply(r,arguments)}var r=this;return setTimeout(n,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,n,r){var i,s,o=this.options[t];r=r||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],s=n.originalEvent;if(s)for(i in s)i in n||(n[i]=s[i]);return this.element.trigger(n,r),!(e.isFunction(o)&&o.apply(this.element[0],[n].concat(r))===!1||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(r,i,s){typeof i=="string"&&(i={effect:i});var o,u=i?i===!0||typeof i=="number"?n:i.effect||n:t;i=i||{},typeof i=="number"&&(i={duration:i}),o=!e.isEmptyObject(i),i.complete=s,i.delay&&r.delay(i.delay),o&&e.effects&&e.effects.effect[u]?r[t](i):u!==t&&r[u]?r[u](i.duration,i.easing,s):r.queue(function(n){e(this)[t](),s&&s.call(r[0]),n()})}}),e.widget});;
+/**
+ * @file
+ * Javascript related to contextual links.
+ */
+(function ($) {
+
+  "use strict";
+
+  Drupal.behaviors.viewsContextualLinks = {
+    attach: function (context) {
+      var id = $('body').attr('data-views-page-contextual-id');
+
+      $('[data-contextual-id="' + id + '"]')
+        .closest(':has(.view)')
+        .addClass('contextual-region');
+    }
+  };
+
+})(jQuery);
+;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module.
+ */
+
+(function ($, Drupal, drupalSettings, _, Backbone, JSON, storage) {
+
+  "use strict";
+
+  var options = $.extend(drupalSettings.contextual,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        open: Drupal.t('Open'),
+        close: Drupal.t('Close')
+      }
+    }
+  );
+
+  // Clear the cached contextual links whenever the current user's set of
+  // permissions changes.
+  var cachedPermissionsHash = storage.getItem('Drupal.contextual.permissionsHash');
+  var permissionsHash = drupalSettings.user.permissionsHash;
+  if (cachedPermissionsHash !== permissionsHash) {
+    if (typeof permissionsHash === 'string') {
+      _.chain(storage).keys().each(function (key) {
+        if (key.substring(0, 18) === 'Drupal.contextual.') {
+          storage.removeItem(key);
+        }
+      });
+    }
+    storage.setItem('Drupal.contextual.permissionsHash', permissionsHash);
+  }
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   * @param string html
+   *   The server-side rendered HTML for this contextual link.
+   */
+  function initContextual($contextual, html) {
+    var $region = $contextual.closest('.contextual-region');
+    var contextual = Drupal.contextual;
+
+    $contextual
+      // Update the placeholder to contain its rendered contextual links.
+      .html(html)
+      // Use the placeholder as a wrapper with a specific class to provide
+      // positioning and behavior attachment context.
+      .addClass('contextual')
+      // Ensure a trigger element exists before the actual contextual links.
+      .prepend(Drupal.theme('contextualTrigger'));
+
+    // Set the destination parameter on each of the contextual links.
+    var destination = 'destination=' + Drupal.encodePath(drupalSettings.path.currentPath);
+    $contextual.find('.contextual-links a').each(function () {
+      var url = this.getAttribute('href');
+      var glue = (url.indexOf('?') === -1) ? '?' : '&';
+      this.setAttribute('href', url + glue + destination);
+    });
+
+    // Create a model and the appropriate views.
+    var model = new contextual.StateModel({
+      title: $region.find('h2').eq(0).text().trim()
+    });
+    var viewOptions = $.extend({el: $contextual, model: model}, options);
+    contextual.views.push({
+      visual: new contextual.VisualView(viewOptions),
+      aural: new contextual.AuralView(viewOptions),
+      keyboard: new contextual.KeyboardView(viewOptions)
+    });
+    contextual.regionViews.push(new contextual.RegionView(
+      $.extend({el: $region, model: model}, options))
+    );
+
+    // Add the model to the collection. This must happen after the views have been
+    // associated with it, otherwise collection change event handlers can't
+    // trigger the model change event handler in its views.
+    contextual.collection.add(model);
+
+    // Let other JavaScript react to the adding of a new contextual link.
+    $(document).trigger('drupalContextualLinkAdded', {
+      $el: $contextual,
+      $region: $region,
+      model: model
+    });
+
+    // Fix visual collisions between contextual link triggers.
+    adjustIfNestedAndOverlapping($contextual);
+  }
+
+  /**
+   * Determines if a contextual link is nested & overlapping, if so: adjusts it.
+   *
+   * This only deals with two levels of nesting; deeper levels are not touched.
+   *
+   * @param jQuery $contextual
+   *   A contextual links placeholder DOM element, containing the actual
+   *   contextual links as rendered by the server.
+   */
+  function adjustIfNestedAndOverlapping($contextual) {
+    var $contextuals = $contextual
+      // @todo confirm that .closest() is not sufficient
+      .parents('.contextual-region').eq(-1)
+      .find('.contextual');
+
+    // Early-return when there's no nesting.
+    if ($contextuals.length === 1) {
+      return;
+    }
+
+    // If the two contextual links overlap, then we move the second one.
+    var firstTop = $contextuals.eq(0).offset().top;
+    var secondTop = $contextuals.eq(1).offset().top;
+    if (firstTop === secondTop) {
+      var $nestedContextual = $contextuals.eq(1);
+
+      // Retrieve height of nested contextual link.
+      var height = 0;
+      var $trigger = $nestedContextual.find('.trigger');
+      // Elements with the .visually-hidden class have no dimensions, so this
+      // class must be temporarily removed to the calculate the height.
+      $trigger.removeClass('visually-hidden');
+      height = $nestedContextual.height();
+      $trigger.addClass('visually-hidden');
+
+      // Adjust nested contextual link's position.
+      $nestedContextual.css({top: $nestedContextual.position().top + height});
+    }
+  }
+
+  /**
+   * Attaches outline behavior for regions associated with contextual links.
+   *
+   * Events
+   *   Contextual triggers an event that can be used by other scripts.
+   *   - drupalContextualLinkAdded: Triggered when a contextual link is added.
+   */
+  Drupal.behaviors.contextual = {
+    attach: function (context) {
+      var $context = $(context);
+
+      // Find all contextual links placeholders, if any.
+      var $placeholders = $context.find('[data-contextual-id]').once('contextual-render');
+      if ($placeholders.length === 0) {
+        return;
+      }
+
+      // Collect the IDs for all contextual links placeholders.
+      var ids = [];
+      $placeholders.each(function () {
+        ids.push($(this).attr('data-contextual-id'));
+      });
+
+      // Update all contextual links placeholders whose HTML is cached.
+      var uncachedIDs = _.filter(ids, function initIfCached(contextualID) {
+        var html = storage.getItem('Drupal.contextual.' + contextualID);
+        if (html !== null) {
+          // Initialize after the current execution cycle, to make the AJAX
+          // request for retrieving the uncached contextual links as soon as
+          // possible, but also to ensure that other Drupal behaviors have had the
+          // chance to set up an event listener on the Backbone collection
+          // Drupal.contextual.collection.
+          window.setTimeout(function () {
+            initContextual($context.find('[data-contextual-id="' + contextualID + '"]'), html);
+          });
+          return false;
+        }
+        return true;
+      });
+
+      // Perform an AJAX request to let the server render the contextual links for
+      // each of the placeholders.
+      if (uncachedIDs.length > 0) {
+        $.ajax({
+          url: Drupal.url('contextual/render'),
+          type: 'POST',
+          data: {'ids[]': uncachedIDs},
+          dataType: 'json',
+          success: function (results) {
+            _.each(results, function (html, contextualID) {
+              // Store the metadata.
+              storage.setItem('Drupal.contextual.' + contextualID, html);
+              // If the rendered contextual links are empty, then the current user
+              // does not have permission to access the associated links: don't
+              // render anything.
+              if (html.length > 0) {
+                // Update the placeholders to contain its rendered contextual links.
+                // Usually there will only be one placeholder, but it's possible for
+                // multiple identical placeholders exist on the page (probably
+                // because the same content appears more than once).
+                $placeholders = $context.find('[data-contextual-id="' + contextualID + '"]');
+
+                // Initialize the contextual links.
+                for (var i = 0; i < $placeholders.length; i++) {
+                  initContextual($placeholders.eq(i), html);
+                }
+              }
+            });
+          }
+        });
+      }
+    }
+  };
+
+  Drupal.contextual = {
+    // The Drupal.contextual.View instances associated with each list element of
+    // contextual links.
+    views: [],
+
+    // The Drupal.contextual.RegionView instances associated with each contextual
+    // region element.
+    regionViews: []
+  };
+
+  // A Backbone.Collection of Drupal.contextual.StateModel instances.
+  Drupal.contextual.collection = new Backbone.Collection([], {model: Drupal.contextual.StateModel});
+
+  /**
+   * A trigger is an interactive element often bound to a click handler.
+   *
+   * @return String
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.contextualTrigger = function () {
+    return '<button class="trigger visually-hidden focusable" type="button"></button>';
+  };
+
+})(jQuery, Drupal, drupalSettings, _, Backbone, window.JSON, window.sessionStorage);
+;
+/**
+ * @file
+ * A Backbone Model for the state of a contextual link's trigger, list & region.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of a contextual link's trigger, list & region.
+   */
+  Drupal.contextual.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // The title of the entity to which these contextual links apply.
+      title: '',
+      // Represents if the contextual region is being hovered.
+      regionIsHovered: false,
+      // Represents if the contextual trigger or options have focus.
+      hasFocus: false,
+      // Represents if the contextual options for an entity are available to
+      // be selected (i.e. whether the list of options is visible).
+      isOpen: false,
+      // When the model is locked, the trigger remains active.
+      isLocked: false
+    },
+
+    /**
+     * Opens or closes the contextual link.
+     *
+     * If it is opened, then also give focus.
+     */
+    toggleOpen: function () {
+      var newIsOpen = !this.get('isOpen');
+      this.set('isOpen', newIsOpen);
+      if (newIsOpen) {
+        this.focus();
+      }
+      return this;
+    },
+
+    /**
+     * Closes this contextual link.
+     *
+     * Does not call blur() because we want to allow a contextual link to have
+     * focus, yet be closed for example when hovering.
+     */
+    close: function () {
+      this.set('isOpen', false);
+      return this;
+    },
+
+    /**
+     * Gives focus to this contextual link.
+     *
+     * Also closes + removes focus from every other contextual link.
+     */
+    focus: function () {
+      this.set('hasFocus', true);
+      var cid = this.cid;
+      this.collection.each(function (model) {
+        if (model.cid !== cid) {
+          model.close().blur();
+        }
+      });
+      return this;
+    },
+
+    /**
+     * Removes focus from this contextual link, unless it is open.
+     */
+    blur: function () {
+      if (!this.get('isOpen')) {
+        this.set('hasFocus', false);
+      }
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of a contextual link (i.e. screen reader support).
+   */
+  Drupal.contextual.AuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+
+      // Use aria-role form so that the number of items in the list is spoken.
+      this.$el.attr('role', 'form');
+
+      // Initial render.
+      this.render();
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+
+      // Set the hidden property of the links.
+      this.$el.find('.contextual-links')
+        .prop('hidden', !isOpen);
+
+      // Update the view of the trigger.
+      this.$el.find('.trigger')
+        .text(Drupal.t('@action @title configuration options', {
+          '@action': (!isOpen) ? this.options.strings.open : this.options.strings.close,
+          '@title': this.model.get('title')
+        }))
+        .attr('aria-pressed', isOpen);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides keyboard interaction for a contextual link.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Provides keyboard interaction for a contextual link.
+   */
+  Drupal.contextual.KeyboardView = Backbone.View.extend({
+    events: {
+      'focus .trigger': 'focus',
+      'focus .contextual-links a': 'focus',
+      'blur .trigger': function () { this.model.blur(); },
+      'blur .contextual-links a': function () {
+        // Set up a timeout to allow a user to tab between the trigger and the
+        // contextual links without the menu dismissing.
+        var that = this;
+        this.timer = window.setTimeout(function () {
+          that.model.close().blur();
+        }, 150);
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      // The timer is used to create a delay before dismissing the contextual
+      // links on blur. This is only necessary when keyboard users tab into
+      // contextual links without edit mode (i.e. without TabbingManager).
+      // That means that if we decide to disable tabbing of contextual links
+      // without edit mode, all this timer logic can go away.
+      this.timer = NaN;
+    },
+
+    /**
+     * Sets focus on the model; Clears the timer that dismisses the links.
+     */
+    focus: function () {
+      // Clear the timeout that might have been set by blurring a link.
+      window.clearTimeout(this.timer);
+      this.model.focus();
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that renders the visual view of a contextual region element.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual region element.
+   */
+  Drupal.contextual.RegionView = Backbone.View.extend({
+
+    events: function () {
+      var mapping = {
+        mouseenter: function () { this.model.set('regionIsHovered', true); },
+        mouseleave: function () {
+          this.model.close().blur().set('regionIsHovered', false);
+        }
+      };
+      // We don't want mouse hover events on touch.
+      if (Modernizr.touch) {
+        mapping = {};
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:hasFocus', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.$el.toggleClass('focus', this.model.get('hasFocus'));
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of a contextual link.
+ */
+
+(function (Drupal, Backbone, Modernizr) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of a contextual link. Listens to mouse & touch.
+   */
+  Drupal.contextual.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+      var mapping = {
+        'click .trigger': function () { this.model.toggleOpen(); },
+        'touchend .trigger': touchEndToClick,
+        'click .contextual-links a': function () { this.model.close().blur(); },
+        'touchend .contextual-links a': touchEndToClick
+      };
+      // We only want mouse hover events on non-touch.
+      if (!Modernizr.touch) {
+        mapping.mouseenter = function () { this.model.focus(); };
+      }
+      return mapping;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var isOpen = this.model.get('isOpen');
+      // The trigger should be visible when:
+      //  - the mouse hovered over the region,
+      //  - the trigger is locked,
+      //  - and for as long as the contextual menu is open.
+      var isVisible = this.model.get('isLocked') || this.model.get('regionIsHovered') || isOpen;
+
+      this.$el
+        // The open state determines if the links are visible.
+        .toggleClass('open', isOpen)
+        // Update the visibility of the trigger.
+        .find('.trigger').toggleClass('visually-hidden', !isVisible);
+
+      // Nested contextual region handling: hide any nested contextual triggers.
+      if ('isOpen' in this.model.changed) {
+        this.$el.closest('.contextual-region')
+          .find('.contextual .trigger:not(:first)')
+          .toggle(!isOpen);
+      }
+
+      return this;
+    }
+
+  });
+
+})(Drupal, Backbone, Modernizr);
+;
+/*!
+ * jQuery Form Plugin
+ * version: 3.51.0-2014.06.20
+ * Requires jQuery v1.5 or later
+ * Copyright (c) 2014 M. Alsup
+ * Examples and documentation at: http://malsup.com/jquery/form/
+ * Project repository: https://github.com/malsup/form
+ * Dual licensed under the MIT and GPL licenses.
+ * https://github.com/malsup/form#copyright-and-license
+ */
+!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e("undefined"!=typeof jQuery?jQuery:window.Zepto)}(function(e){"use strict";function t(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).ajaxSubmit(r))}function r(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=this;if(i.clk=r,"image"==r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function a(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}var n={};n.fileapi=void 0!==e("<input type='file'/>").get(0).files,n.formdata=void 0!==window.FormData;var i=!!e.fn.prop;e.fn.attr2=function(){if(!i)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t){function r(r){var a,n,i=e.param(r,t.traditional).split("&"),o=i.length,s=[];for(a=0;o>a;a++)i[a]=i[a].replace(/\+/g," "),n=i[a].split("="),s.push([decodeURIComponent(n[0]),decodeURIComponent(n[1])]);return s}function o(a){for(var n=new FormData,i=0;i<a.length;i++)n.append(a[i].name,a[i].value);if(t.extraData){var o=r(t.extraData);for(i=0;i<o.length;i++)o[i]&&n.append(o[i][0],o[i][1])}t.data=null;var s=e.extend(!0,{},e.ajaxSettings,t,{contentType:!1,processData:!1,cache:!1,type:u||"POST"});t.uploadProgress&&(s.xhr=function(){var r=e.ajaxSettings.xhr();return r.upload&&r.upload.addEventListener("progress",function(e){var r=0,a=e.loaded||e.position,n=e.total;e.lengthComputable&&(r=Math.ceil(a/n*100)),t.uploadProgress(e,a,n,r)},!1),r}),s.data=null;var c=s.beforeSend;return s.beforeSend=function(e,r){r.data=t.formData?t.formData:n,c&&c.call(this,e,r)},e.ajax(s)}function s(r){function n(e){var t=null;try{e.contentWindow&&(t=e.contentWindow.document)}catch(r){a("cannot get iframe.contentWindow document: "+r)}if(t)return t;try{t=e.contentDocument?e.contentDocument:e.document}catch(r){a("cannot get iframe.contentDocument: "+r),t=e.document}return t}function o(){function t(){try{var e=n(g).readyState;a("state = "+e),e&&"uninitialized"==e.toLowerCase()&&setTimeout(t,50)}catch(r){a("Server abort: ",r," (",r.name,")"),s(k),j&&clearTimeout(j),j=void 0}}var r=f.attr2("target"),i=f.attr2("action"),o="multipart/form-data",c=f.attr("enctype")||f.attr("encoding")||o;w.setAttribute("target",p),(!u||/post/i.test(u))&&w.setAttribute("method","POST"),i!=m.url&&w.setAttribute("action",m.url),m.skipEncodingOverride||u&&!/post/i.test(u)||f.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),m.timeout&&(j=setTimeout(function(){T=!0,s(D)},m.timeout));var l=[];try{if(m.extraData)for(var d in m.extraData)m.extraData.hasOwnProperty(d)&&l.push(e.isPlainObject(m.extraData[d])&&m.extraData[d].hasOwnProperty("name")&&m.extraData[d].hasOwnProperty("value")?e('<input type="hidden" name="'+m.extraData[d].name+'">').val(m.extraData[d].value).appendTo(w)[0]:e('<input type="hidden" name="'+d+'">').val(m.extraData[d]).appendTo(w)[0]);m.iframeTarget||v.appendTo("body"),g.attachEvent?g.attachEvent("onload",s):g.addEventListener("load",s,!1),setTimeout(t,15);try{w.submit()}catch(h){var x=document.createElement("form").submit;x.apply(w)}}finally{w.setAttribute("action",i),w.setAttribute("enctype",c),r?w.setAttribute("target",r):f.removeAttr("target"),e(l).remove()}}function s(t){if(!x.aborted&&!F){if(M=n(g),M||(a("cannot access response document"),t=k),t===D&&x)return x.abort("timeout"),void S.reject(x,"timeout");if(t==k&&x)return x.abort("server abort"),void S.reject(x,"error","server abort");if(M&&M.location.href!=m.iframeSrc||T){g.detachEvent?g.detachEvent("onload",s):g.removeEventListener("load",s,!1);var r,i="success";try{if(T)throw"timeout";var o="xml"==m.dataType||M.XMLDocument||e.isXMLDoc(M);if(a("isXml="+o),!o&&window.opera&&(null===M.body||!M.body.innerHTML)&&--O)return a("requeing onLoad callback, DOM not available"),void setTimeout(s,250);var u=M.body?M.body:M.documentElement;x.responseText=u?u.innerHTML:null,x.responseXML=M.XMLDocument?M.XMLDocument:M,o&&(m.dataType="xml"),x.getResponseHeader=function(e){var t={"content-type":m.dataType};return t[e.toLowerCase()]},u&&(x.status=Number(u.getAttribute("status"))||x.status,x.statusText=u.getAttribute("statusText")||x.statusText);var c=(m.dataType||"").toLowerCase(),l=/(json|script|text)/.test(c);if(l||m.textarea){var f=M.getElementsByTagName("textarea")[0];if(f)x.responseText=f.value,x.status=Number(f.getAttribute("status"))||x.status,x.statusText=f.getAttribute("statusText")||x.statusText;else if(l){var p=M.getElementsByTagName("pre")[0],h=M.getElementsByTagName("body")[0];p?x.responseText=p.textContent?p.textContent:p.innerText:h&&(x.responseText=h.textContent?h.textContent:h.innerText)}}else"xml"==c&&!x.responseXML&&x.responseText&&(x.responseXML=X(x.responseText));try{E=_(x,c,m)}catch(y){i="parsererror",x.error=r=y||i}}catch(y){a("error caught: ",y),i="error",x.error=r=y||i}x.aborted&&(a("upload aborted"),i=null),x.status&&(i=x.status>=200&&x.status<300||304===x.status?"success":"error"),"success"===i?(m.success&&m.success.call(m.context,E,"success",x),S.resolve(x.responseText,"success",x),d&&e.event.trigger("ajaxSuccess",[x,m])):i&&(void 0===r&&(r=x.statusText),m.error&&m.error.call(m.context,x,i,r),S.reject(x,"error",r),d&&e.event.trigger("ajaxError",[x,m,r])),d&&e.event.trigger("ajaxComplete",[x,m]),d&&!--e.active&&e.event.trigger("ajaxStop"),m.complete&&m.complete.call(m.context,x,i),F=!0,m.timeout&&clearTimeout(j),setTimeout(function(){m.iframeTarget?v.attr("src",m.iframeSrc):v.remove(),x.responseXML=null},100)}}}var c,l,m,d,p,v,g,x,y,b,T,j,w=f[0],S=e.Deferred();if(S.abort=function(e){x.abort(e)},r)for(l=0;l<h.length;l++)c=e(h[l]),i?c.prop("disabled",!1):c.removeAttr("disabled");if(m=e.extend(!0,{},e.ajaxSettings,t),m.context=m.context||m,p="jqFormIO"+(new Date).getTime(),m.iframeTarget?(v=e(m.iframeTarget),b=v.attr2("name"),b?p=b:v.attr2("name",p)):(v=e('<iframe name="'+p+'" src="'+m.iframeSrc+'" />'),v.css({position:"absolute",top:"-1000px",left:"-1000px"})),g=v[0],x={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var r="timeout"===t?"timeout":"aborted";a("aborting upload... "+r),this.aborted=1;try{g.contentWindow.document.execCommand&&g.contentWindow.document.execCommand("Stop")}catch(n){}v.attr("src",m.iframeSrc),x.error=r,m.error&&m.error.call(m.context,x,r,t),d&&e.event.trigger("ajaxError",[x,m,r]),m.complete&&m.complete.call(m.context,x,r)}},d=m.global,d&&0===e.active++&&e.event.trigger("ajaxStart"),d&&e.event.trigger("ajaxSend",[x,m]),m.beforeSend&&m.beforeSend.call(m.context,x,m)===!1)return m.global&&e.active--,S.reject(),S;if(x.aborted)return S.reject(),S;y=w.clk,y&&(b=y.name,b&&!y.disabled&&(m.extraData=m.extraData||{},m.extraData[b]=y.value,"image"==y.type&&(m.extraData[b+".x"]=w.clk_x,m.extraData[b+".y"]=w.clk_y)));var D=1,k=2,A=e("meta[name=csrf-token]").attr("content"),L=e("meta[name=csrf-param]").attr("content");L&&A&&(m.extraData=m.extraData||{},m.extraData[L]=A),m.forceSync?o():setTimeout(o,10);var E,M,F,O=50,X=e.parseXML||function(e,t){return window.ActiveXObject?(t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!=t.documentElement.nodeName?t:null},C=e.parseJSON||function(e){return window.eval("("+e+")")},_=function(t,r,a){var n=t.getResponseHeader("content-type")||"",i="xml"===r||!r&&n.indexOf("xml")>=0,o=i?t.responseXML:t.responseText;return i&&"parsererror"===o.documentElement.nodeName&&e.error&&e.error("parsererror"),a&&a.dataFilter&&(o=a.dataFilter(o,r)),"string"==typeof o&&("json"===r||!r&&n.indexOf("json")>=0?o=C(o):("script"===r||!r&&n.indexOf("javascript")>=0)&&e.globalEval(o)),o};return S}if(!this.length)return a("ajaxSubmit: skipping submit process - no element selected"),this;var u,c,l,f=this;"function"==typeof t?t={success:t}:void 0===t&&(t={}),u=t.type||this.attr2("method"),c=t.url||this.attr2("action"),l="string"==typeof c?e.trim(c):"",l=l||window.location.href||"",l&&(l=(l.match(/^([^#]+)/)||[])[1]),t=e.extend(!0,{url:l,success:e.ajaxSettings.success,type:u||e.ajaxSettings.type,iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var m={};if(this.trigger("form-pre-serialize",[this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(t.beforeSerialize&&t.beforeSerialize(this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var d=t.traditional;void 0===d&&(d=e.ajaxSettings.traditional);var p,h=[],v=this.formToArray(t.semantic,h);if(t.data&&(t.extraData=t.data,p=e.param(t.data,d)),t.beforeSubmit&&t.beforeSubmit(v,this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[v,this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var g=e.param(v,d);p&&(g=g?g+"&"+p:p),"GET"==t.type.toUpperCase()?(t.url+=(t.url.indexOf("?")>=0?"&":"?")+g,t.data=null):t.data=g;var x=[];if(t.resetForm&&x.push(function(){f.resetForm()}),t.clearForm&&x.push(function(){f.clearForm(t.includeHidden)}),!t.dataType&&t.target){var y=t.success||function(){};x.push(function(r){var a=t.replaceTarget?"replaceWith":"html";e(t.target)[a](r).each(y,arguments)})}else t.success&&x.push(t.success);if(t.success=function(e,r,a){for(var n=t.context||this,i=0,o=x.length;o>i;i++)x[i].apply(n,[e,r,a||f,f])},t.error){var b=t.error;t.error=function(e,r,a){var n=t.context||this;b.apply(n,[e,r,a,f])}}if(t.complete){var T=t.complete;t.complete=function(e,r){var a=t.context||this;T.apply(a,[e,r,f])}}var j=e("input[type=file]:enabled",this).filter(function(){return""!==e(this).val()}),w=j.length>0,S="multipart/form-data",D=f.attr("enctype")==S||f.attr("encoding")==S,k=n.fileapi&&n.formdata;a("fileAPI :"+k);var A,L=(w||D)&&!k;t.iframe!==!1&&(t.iframe||L)?t.closeKeepAlive?e.get(t.closeKeepAlive,function(){A=s(v)}):A=s(v):A=(w||D)&&k?o(v):e.ajax(t),f.removeData("jqxhr").data("jqxhr",A);for(var E=0;E<h.length;E++)h[E]=null;return this.trigger("form-submit-notify",[this,t]),this},e.fn.ajaxForm=function(n){if(n=n||{},n.delegation=n.delegation&&e.isFunction(e.fn.on),!n.delegation&&0===this.length){var i={s:this.selector,c:this.context};return!e.isReady&&i.s?(a("DOM not ready, queuing ajaxForm"),e(function(){e(i.s,i.c).ajaxForm(n)}),this):(a("terminating; zero elements found by selector"+(e.isReady?"":" (DOM not ready)")),this)}return n.delegation?(e(document).off("submit.form-plugin",this.selector,t).off("click.form-plugin",this.selector,r).on("submit.form-plugin",this.selector,n,t).on("click.form-plugin",this.selector,n,r),this):this.ajaxFormUnbind().bind("submit.form-plugin",n,t).bind("click.form-plugin",n,r)},e.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")},e.fn.formToArray=function(t,r){var a=[];if(0===this.length)return a;var i,o=this[0],s=this.attr("id"),u=t?o.getElementsByTagName("*"):o.elements;if(u&&!/MSIE [678]/.test(navigator.userAgent)&&(u=e(u).get()),s&&(i=e(':input[form="'+s+'"]').get(),i.length&&(u=(u||[]).concat(i))),!u||!u.length)return a;var c,l,f,m,d,p,h;for(c=0,p=u.length;p>c;c++)if(d=u[c],f=d.name,f&&!d.disabled)if(t&&o.clk&&"image"==d.type)o.clk==d&&(a.push({name:f,value:e(d).val(),type:d.type}),a.push({name:f+".x",value:o.clk_x},{name:f+".y",value:o.clk_y}));else if(m=e.fieldValue(d,!0),m&&m.constructor==Array)for(r&&r.push(d),l=0,h=m.length;h>l;l++)a.push({name:f,value:m[l]});else if(n.fileapi&&"file"==d.type){r&&r.push(d);var v=d.files;if(v.length)for(l=0;l<v.length;l++)a.push({name:f,value:v[l],type:d.type});else a.push({name:f,value:"",type:d.type})}else null!==m&&"undefined"!=typeof m&&(r&&r.push(d),a.push({name:f,value:m,type:d.type,required:d.required}));if(!t&&o.clk){var g=e(o.clk),x=g[0];f=x.name,f&&!x.disabled&&"image"==x.type&&(a.push({name:f,value:g.val()}),a.push({name:f+".x",value:o.clk_x},{name:f+".y",value:o.clk_y}))}return a},e.fn.formSerialize=function(t){return e.param(this.formToArray(t))},e.fn.fieldSerialize=function(t){var r=[];return this.each(function(){var a=this.name;if(a){var n=e.fieldValue(this,t);if(n&&n.constructor==Array)for(var i=0,o=n.length;o>i;i++)r.push({name:a,value:n[i]});else null!==n&&"undefined"!=typeof n&&r.push({name:this.name,value:n})}}),e.param(r)},e.fn.fieldValue=function(t){for(var r=[],a=0,n=this.length;n>a;a++){var i=this[a],o=e.fieldValue(i,t);null===o||"undefined"==typeof o||o.constructor==Array&&!o.length||(o.constructor==Array?e.merge(r,o):r.push(o))}return r},e.fieldValue=function(t,r){var a=t.name,n=t.type,i=t.tagName.toLowerCase();if(void 0===r&&(r=!0),r&&(!a||t.disabled||"reset"==n||"button"==n||("checkbox"==n||"radio"==n)&&!t.checked||("submit"==n||"image"==n)&&t.form&&t.form.clk!=t||"select"==i&&-1==t.selectedIndex))return null;if("select"==i){var o=t.selectedIndex;if(0>o)return null;for(var s=[],u=t.options,c="select-one"==n,l=c?o+1:u.length,f=c?o:0;l>f;f++){var m=u[f];if(m.selected){var d=m.value;if(d||(d=m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value),c)return d;s.push(d)}}return s}return e(t).val()},e.fn.clearForm=function(t){return this.each(function(){e("input,select,textarea",this).clearFields(t)})},e.fn.clearFields=e.fn.clearInputs=function(t){var r=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var a=this.type,n=this.tagName.toLowerCase();r.test(a)||"textarea"==n?this.value="":"checkbox"==a||"radio"==a?this.checked=!1:"select"==n?this.selectedIndex=-1:"file"==a?/MSIE/.test(navigator.userAgent)?e(this).replaceWith(e(this).clone(!0)):e(this).val(""):t&&(t===!0&&/hidden/.test(a)||"string"==typeof t&&e(this).is(t))&&(this.value="")})},e.fn.resetForm=function(){return this.each(function(){("function"==typeof this.reset||"object"==typeof this.reset&&!this.reset.nodeType)&&this.reset()})},e.fn.enable=function(e){return void 0===e&&(e=!0),this.each(function(){this.disabled=!e})},e.fn.selected=function(t){return void 0===t&&(t=!0),this.each(function(){var r=this.type;if("checkbox"==r||"radio"==r)this.checked=t;else if("option"==this.tagName.toLowerCase()){var a=e(this).parent("select");t&&a[0]&&"select-one"==a[0].type&&a.find("option").selected(!1),this.selected=t}})},e.fn.ajaxSubmit.debug=!1});
+;
+/*!
+ * jQuery UI Position 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){return function(){function h(e,t,n){return[parseFloat(e[0])*(l.test(e[0])?t/100:1),parseFloat(e[1])*(l.test(e[1])?n/100:1)]}function p(t,n){return parseInt(e.css(t,n),10)||0}function d(t){var n=t[0];return n.nodeType===9?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(n)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:n.preventDefault?{width:0,height:0,offset:{top:n.pageY,left:n.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var t,n,r=Math.max,i=Math.abs,s=Math.round,o=/left|center|right/,u=/top|center|bottom/,a=/[\+\-]\d+(\.[\d]+)?%?/,f=/^\w+/,l=/%$/,c=e.fn.position;e.position={scrollbarWidth:function(){if(t!==undefined)return t;var n,r,i=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),s=i.children()[0];return e("body").append(i),n=s.offsetWidth,i.css("overflow","scroll"),r=s.offsetWidth,n===r&&(r=i[0].clientWidth),i.remove(),t=n-r},getScrollInfo:function(t){var n=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),r=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width<t.element[0].scrollWidth,s=r==="scroll"||r==="auto"&&t.height<t.element[0].scrollHeight;return{width:s?e.position.scrollbarWidth():0,height:i?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var n=e(t||window),r=e.isWindow(n[0]),i=!!n[0]&&n[0].nodeType===9;return{element:n,isWindow:r,isDocument:i,offset:n.offset()||{left:0,top:0},scrollLeft:n.scrollLeft(),scrollTop:n.scrollTop(),width:r||i?n.width():n.outerWidth(),height:r||i?n.height():n.outerHeight()}}},e.fn.position=function(t){if(!t||!t.of)return c.apply(this,arguments);t=e.extend({},t);var l,v,m,g,y,b,w=e(t.of),E=e.position.getWithinInfo(t.within),S=e.position.getScrollInfo(E),x=(t.collision||"flip").split(" "),T={};return b=d(w),w[0].preventDefault&&(t.at="left top"),v=b.width,m=b.height,g=b.offset,y=e.extend({},g),e.each(["my","at"],function(){var e=(t[this]||"").split(" "),n,r;e.length===1&&(e=o.test(e[0])?e.concat(["center"]):u.test(e[0])?["center"].concat(e):["center","center"]),e[0]=o.test(e[0])?e[0]:"center",e[1]=u.test(e[1])?e[1]:"center",n=a.exec(e[0]),r=a.exec(e[1]),T[this]=[n?n[0]:0,r?r[0]:0],t[this]=[f.exec(e[0])[0],f.exec(e[1])[0]]}),x.length===1&&(x[1]=x[0]),t.at[0]==="right"?y.left+=v:t.at[0]==="center"&&(y.left+=v/2),t.at[1]==="bottom"?y.top+=m:t.at[1]==="center"&&(y.top+=m/2),l=h(T.at,v,m),y.left+=l[0],y.top+=l[1],this.each(function(){var o,u,a=e(this),f=a.outerWidth(),c=a.outerHeight(),d=p(this,"marginLeft"),b=p(this,"marginTop"),N=f+d+p(this,"marginRight")+S.width,C=c+b+p(this,"marginBottom")+S.height,k=e.extend({},y),L=h(T.my,a.outerWidth(),a.outerHeight());t.my[0]==="right"?k.left-=f:t.my[0]==="center"&&(k.left-=f/2),t.my[1]==="bottom"?k.top-=c:t.my[1]==="center"&&(k.top-=c/2),k.left+=L[0],k.top+=L[1],n||(k.left=s(k.left),k.top=s(k.top)),o={marginLeft:d,marginTop:b},e.each(["left","top"],function(n,r){e.ui.position[x[n]]&&e.ui.position[x[n]][r](k,{targetWidth:v,targetHeight:m,elemWidth:f,elemHeight:c,collisionPosition:o,collisionWidth:N,collisionHeight:C,offset:[l[0]+L[0],l[1]+L[1]],my:t.my,at:t.at,within:E,elem:a})}),t.using&&(u=function(e){var n=g.left-k.left,s=n+v-f,o=g.top-k.top,u=o+m-c,l={target:{element:w,left:g.left,top:g.top,width:v,height:m},element:{element:a,left:k.left,top:k.top,width:f,height:c},horizontal:s<0?"left":n>0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};v<f&&i(n+s)<v&&(l.horizontal="center"),m<c&&i(o+u)<m&&(l.vertical="middle"),r(i(n),i(s))>r(i(o),i(u))?l.important="horizontal":l.important="vertical",t.using.call(this,e,l)}),a.offset(e.extend(k,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p<i(a))e.left+=l+c+h}else if(f>0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)<f)e.left+=l+c+h}},top:function(e,t){var n=t.within,r=n.offset.top+n.scrollTop,s=n.height,o=n.isWindow?n.scrollTop:n.offset.top,u=e.top-t.collisionPosition.marginTop,a=u-o,f=u+t.collisionHeight-s-o,l=t.my[1]==="top",c=l?-t.elemHeight:t.my[1]==="bottom"?t.elemHeight:0,h=t.at[1]==="top"?t.targetHeight:t.at[1]==="bottom"?-t.targetHeight:0,p=-2*t.offset[1],d,v;if(a<0){v=e.top+c+h+p+t.collisionHeight-s-r;if(v<0||v<i(a))e.top+=c+h+p}else if(f>0){d=e.top-t.collisionPosition.marginTop+c+h+p-o;if(d>0||i(d)<f)e.top+=c+h+p}}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,r,i,s,o,u=document.getElementsByTagName("body")[0],a=document.createElement("div");t=document.createElement(u?"div":"body"),i={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},u&&e.extend(i,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in i)t.style[o]=i[o];t.appendChild(a),r=u||document.documentElement,r.insertBefore(t,r.firstChild),a.style.cssText="position: absolute; left: 10.7432222px;",s=e(a).offset().left,n=s>10&&s<11,t.innerHTML="",r.removeChild(t)}()}(),e.ui.position});;
+/**
+ * Limits the invocations of a function in a given time frame.
+ *
+ * Adapted from underscore.js with the addition Drupal namespace.
+ *
+ * The debounce function wrapper should be used sparingly. One clear use case
+ * is limiting the invocation of a callback attached to the window resize event.
+ *
+ * Before using the debounce function wrapper, consider first whether the
+ * callback could be attached to an event that fires less frequently or if the
+ * function can be written in such a way that it is only invoked under specific
+ * conditions.
+ *
+ * @param {Function} callback
+ *   The function to be invoked.
+ *
+ * @param {Number} wait
+ *   The time period within which the callback function should only be
+ *   invoked once. For example if the wait period is 250ms, then the callback
+ *   will only be called at most 4 times per second.
+ */
+Drupal.debounce = function (func, wait, immediate) {
+
+  "use strict";
+
+  var timeout;
+  var result;
+  return function () {
+    var context = this;
+    var args = arguments;
+    var later = function () {
+      timeout = null;
+      if (!immediate) {
+        result = func.apply(context, args);
+      }
+    };
+    var callNow = immediate && !timeout;
+    clearTimeout(timeout);
+    timeout = setTimeout(later, wait);
+    if (callNow) {
+      result = func.apply(context, args);
+    }
+    return result;
+  };
+};
+;
+/**
+ * Manages elements that can offset the size of the viewport.
+ *
+ * Measures and reports viewport offset dimensions from elements like the
+ * toolbar that can potentially displace the positioning of other elements.
+ */
+(function ($, Drupal, debounce) {
+
+  "use strict";
+
+  var offsets = {
+    top: 0,
+    right: 0,
+    bottom: 0,
+    left: 0
+  };
+
+  /**
+   * Registers a resize handler on the window.
+   */
+  Drupal.behaviors.drupalDisplace = {
+    attach: function () {
+      // Mark this behavior as processed on the first pass.
+      if (this.displaceProcessed) {
+        return;
+      }
+      this.displaceProcessed = true;
+
+      $(window).on('resize.drupalDisplace', debounce(displace, 200));
+    }
+  };
+
+  /**
+   * Informs listeners of the current offset dimensions.
+   *
+   * @param {boolean} broadcast
+   *   (optional) When true or undefined, causes the recalculated offsets values to be
+   *   broadcast to listeners.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function displace(broadcast) {
+    offsets = Drupal.displace.offsets = calculateOffsets();
+    if (typeof broadcast === 'undefined' || broadcast) {
+      $(document).trigger('drupalViewportOffsetChange', offsets);
+    }
+    return offsets;
+  }
+
+  /**
+   * Determines the viewport offsets.
+   *
+   * @return {object}
+   *   An object whose keys are the for sides an element -- top, right, bottom
+   *   and left. The value of each key is the viewport displacement distance for
+   *   that edge.
+   */
+  function calculateOffsets() {
+    return {
+      top: calculateOffset('top'),
+      right: calculateOffset('right'),
+      bottom: calculateOffset('bottom'),
+      left: calculateOffset('left')
+    };
+  }
+
+  /**
+   * Gets a specific edge's offset.
+   *
+   * Any element with the attribute data-offset-{edge} e.g. data-offset-top will
+   * be considered in the viewport offset calculations. If the attribute has a
+   * numeric value, that value will be used. If no value is provided, one will
+   * be calculated using the element's dimensions and placement.
+   *
+   * @param {string} edge
+   *   The name of the edge to calculate. Can be 'top', 'right',
+   *   'bottom' or 'left'.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function calculateOffset(edge) {
+    var edgeOffset = 0;
+    var displacingElements = document.querySelectorAll('[data-offset-' + edge + ']');
+    var n = displacingElements.length;
+    for (var i = 0; i < n; i++) {
+      var el = displacingElements[i];
+      // If the element is not visible, do consider its dimensions.
+      if (el.style.display === 'none') {
+        continue;
+      }
+      // If the offset data attribute contains a displacing value, use it.
+      var displacement = parseInt(el.getAttribute('data-offset-' + edge), 10);
+      // If the element's offset data attribute exits
+      // but is not a valid number then get the displacement
+      // dimensions directly from the element.
+      if (isNaN(displacement)) {
+        displacement = getRawOffset(el, edge);
+      }
+      // If the displacement value is larger than the current value for this
+      // edge, use the displacement value.
+      edgeOffset = Math.max(edgeOffset, displacement);
+    }
+
+    return edgeOffset;
+  }
+
+  /**
+   * Calculates displacement for element based on its dimensions and placement.
+   *
+   * @param {jQuery} $el
+   *   The jQuery element whose dimensions and placement will be measured.
+   *
+   * @param {string} edge
+   *   The name of the edge of the viewport that the element is associated
+   *   with.
+   *
+   * @return {number}
+   *   The viewport displacement distance for the requested edge.
+   */
+  function getRawOffset(el, edge) {
+    var $el = $(el);
+    var documentElement = document.documentElement;
+    var displacement = 0;
+    var horizontal = (edge === 'left' || edge === 'right');
+    // Get the offset of the element itself.
+    var placement = $el.offset()[horizontal ? 'left' : 'top'];
+    // Subtract scroll distance from placement to get the distance
+    // to the edge of the viewport.
+    placement -= window['scroll' + (horizontal ? 'X' : 'Y')] || document.documentElement['scroll' + (horizontal) ? 'Left' : 'Top'] || 0;
+    // Find the displacement value according to the edge.
+    switch (edge) {
+      // Left and top elements displace as a sum of their own offset value
+      // plus their size.
+      case 'top':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerHeight();
+        break;
+
+      case 'left':
+        // Total displacement is the sum of the elements placement and size.
+        displacement = placement + $el.outerWidth();
+        break;
+
+      // Right and bottom elements displace according to their left and
+      // top offset. Their size isn't important.
+      case 'bottom':
+        displacement = documentElement.clientHeight - placement;
+        break;
+
+      case 'right':
+        displacement = documentElement.clientWidth - placement;
+        break;
+
+      default:
+        displacement = 0;
+    }
+    return displacement;
+  }
+
+  /**
+   * Assign the displace function to a property of the Drupal global object.
+   */
+  Drupal.displace = displace;
+  $.extend(Drupal.displace, {
+    /**
+     * Expose offsets to other scripts to avoid having to recalculate offsets
+     */
+    offsets: offsets,
+    /**
+     * Expose method to compute a single edge offsets.
+     */
+    calculateOffset: calculateOffset
+  });
+
+})(jQuery, Drupal, Drupal.debounce);
+;
+/*! jquery.cookie v1.4.1 | MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});;
+(function ($, Drupal, debounce) {
+
+  "use strict";
+
+  /**
+   * Retrieves the summary for the first element.
+   */
+  $.fn.drupalGetSummary = function () {
+    var callback = this.data('summaryCallback');
+    return (this[0] && callback) ? $.trim(callback(this[0])) : '';
+  };
+
+  /**
+   * Sets the summary for all matched elements.
+   *
+   * @param callback
+   *   Either a function that will be called each time the summary is
+   *   retrieved or a string (which is returned each time).
+   */
+  $.fn.drupalSetSummary = function (callback) {
+    var self = this;
+
+    // To facilitate things, the callback should always be a function. If it's
+    // not, we wrap it into an anonymous function which just returns the value.
+    if (typeof callback !== 'function') {
+      var val = callback;
+      callback = function () { return val; };
+    }
+
+    return this
+      .data('summaryCallback', callback)
+      // To prevent duplicate events, the handlers are first removed and then
+      // (re-)added.
+      .off('formUpdated.summary')
+      .on('formUpdated.summary', function () {
+        self.trigger('summaryUpdated');
+      })
+      // The actual summaryUpdated handler doesn't fire when the callback is
+      // changed, so we have to do this manually.
+      .trigger('summaryUpdated');
+  };
+
+  /**
+   * Prevents consecutive form submissions of identical form values.
+   *
+   * Repetitive form submissions that would submit the identical form values are
+   * prevented, unless the form values are different to the previously submitted
+   * values.
+   *
+   * This is a simplified re-implementation of a user-agent behavior that should
+   * be natively supported by major web browsers, but at this time, only Firefox
+   * has a built-in protection.
+   *
+   * A form value-based approach ensures that the constraint is triggered for
+   * consecutive, identical form submissions only. Compared to that, a form
+   * button-based approach would (1) rely on [visible] buttons to exist where
+   * technically not required and (2) require more complex state management if
+   * there are multiple buttons in a form.
+   *
+   * This implementation is based on form-level submit events only and relies on
+   * jQuery's serialize() method to determine submitted form values. As such, the
+   * following limitations exist:
+   *
+   * - Event handlers on form buttons that preventDefault() do not receive a
+   *   double-submit protection. That is deemed to be fine, since such button
+   *   events typically trigger reversible client-side or server-side operations
+   *   that are local to the context of a form only.
+   * - Changed values in advanced form controls, such as file inputs, are not part
+   *   of the form values being compared between consecutive form submits (due to
+   *   limitations of jQuery.serialize()). That is deemed to be acceptable,
+   *   because if the user forgot to attach a file, then the size of HTTP payload
+   *   will most likely be small enough to be fully passed to the server endpoint
+   *   within (milli)seconds. If a user mistakenly attached a wrong file and is
+   *   technically versed enough to cancel the form submission (and HTTP payload)
+   *   in order to attach a different file, then that edge-case is not supported
+   *   here.
+   *
+   * Lastly, all forms submitted via HTTP GET are idempotent by definition of HTTP
+   * standards, so excluded in this implementation.
+   */
+  Drupal.behaviors.formSingleSubmit = {
+    attach: function () {
+      function onFormSubmit(e) {
+        var $form = $(e.currentTarget);
+        var formValues = $form.serialize();
+        var previousValues = $form.attr('data-drupal-form-submit-last');
+        if (previousValues === formValues) {
+          e.preventDefault();
+        }
+        else {
+          $form.attr('data-drupal-form-submit-last', formValues);
+        }
+      }
+
+      $('body').once('form-single-submit')
+        .on('submit.singleSubmit', 'form:not([method~="GET"])', onFormSubmit);
+    }
+  };
+
+  /**
+   * Sends a 'formUpdated' event each time a form element is modified.
+   */
+  function triggerFormUpdated(element) {
+    $(element).trigger('formUpdated');
+  }
+
+  /**
+   * Collects the IDs of all form fields in the given form.
+   *
+   * @param {HTMLFormElement} form
+   * @return {Array}
+   */
+  function fieldsList(form) {
+    var $fieldList = $(form).find('[name]').map(function (index, element) {
+      // We use id to avoid name duplicates on radio fields and filter out
+      // elements with a name but no id.
+      return element.getAttribute('id');
+    });
+    // Return a true array.
+    return $.makeArray($fieldList);
+  }
+
+  /**
+   * Triggers the 'formUpdated' event on form elements when they are modified.
+   */
+  Drupal.behaviors.formUpdated = {
+    attach: function (context) {
+      var $context = $(context);
+      var contextIsForm = $context.is('form');
+      var $forms = (contextIsForm ? $context : $context.find('form')).once('form-updated');
+      var formFields;
+
+      if ($forms.length) {
+        // Initialize form behaviors, use $.makeArray to be able to use native
+        // forEach array method and have the callback parameters in the right order.
+        $.makeArray($forms).forEach(function (form) {
+          var events = 'change.formUpdated keypress.formUpdated';
+          var eventHandler = debounce(function (event) { triggerFormUpdated(event.target); }, 300);
+          formFields = fieldsList(form).join(',');
+
+          form.setAttribute('data-drupal-form-fields', formFields);
+          $(form).on(events, eventHandler);
+        });
+      }
+      // On ajax requests context is the form element.
+      if (contextIsForm) {
+        formFields = fieldsList(context).join(',');
+        // @todo replace with form.getAttribute() when #1979468 is in.
+        var currentFields = $(context).attr('data-drupal-form-fields');
+        // if there has been a change in the fields or their order, trigger
+        // formUpdated.
+        if (formFields !== currentFields) {
+          triggerFormUpdated(context);
+        }
+      }
+
+    },
+    detach: function (context, settings, trigger) {
+      var $context = $(context);
+      var contextIsForm = $context.is('form');
+      if (trigger === 'unload') {
+        var $forms = (contextIsForm ? $context : $context.find('form')).removeOnce('form-updated');
+        if ($forms.length) {
+          $.makeArray($forms).forEach(function (form) {
+            form.removeAttribute('data-drupal-form-fields');
+            $(form).off('.formUpdated');
+          });
+        }
+      }
+    }
+  };
+
+  /**
+   * Prepopulate form fields with information from the visitor browser.
+   */
+  Drupal.behaviors.fillUserInfoFromBrowser = {
+    attach: function (context, settings) {
+      var userInfo = ['name', 'mail', 'homepage'];
+      var $forms = $('[data-user-info-from-browser]').once('user-info-from-browser');
+      if ($forms.length) {
+        userInfo.map(function (info) {
+          var $element = $forms.find('[name=' + info + ']');
+          var browserData = localStorage.getItem('Drupal.visitor.' + info);
+          var emptyOrDefault = ($element.val() === '' || ($element.attr('data-drupal-default-value') === $element.val()));
+          if ($element.length && emptyOrDefault && browserData) {
+            $element.val(browserData);
+          }
+        });
+      }
+      $forms.on('submit', function () {
+        userInfo.map(function (info) {
+          var $element = $forms.find('[name=' + info + ']');
+          if ($element.length) {
+            localStorage.setItem('Drupal.visitor.' + info, $element.val());
+          }
+        });
+      });
+    }
+  };
+
+})(jQuery, Drupal, Drupal.debounce);
+;
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Theme function for the progress bar.
+   *
+   * @return
+   *   The HTML for the progress bar.
+   */
+  Drupal.theme.progressBar = function (id) {
+    return '<div id="' + id + '" class="progress" aria-live="polite">' +
+      '<div class="progress__label">&nbsp;</div>' +
+      '<div class="progress__track"><div class="progress__bar"></div></div>' +
+      '<div class="progress__percentage"></div>' +
+      '<div class="progress__description">&nbsp;</div>' +
+      '</div>';
+  };
+
+  /**
+   * A progressbar object. Initialized with the given id. Must be inserted into
+   * the DOM afterwards through progressBar.element.
+   *
+   * method is the function which will perform the HTTP request to get the
+   * progress bar state. Either "GET" or "POST".
+   *
+   * e.g. pb = new Drupal.ProgressBar('myProgressBar');
+   *      some_element.appendChild(pb.element);
+   */
+  Drupal.ProgressBar = function (id, updateCallback, method, errorCallback) {
+    this.id = id;
+    this.method = method || 'GET';
+    this.updateCallback = updateCallback;
+    this.errorCallback = errorCallback;
+
+    // The WAI-ARIA setting aria-live="polite" will announce changes after users
+    // have completed their current activity and not interrupt the screen reader.
+    this.element = $(Drupal.theme('progressBar', id));
+  };
+
+  $.extend(Drupal.ProgressBar.prototype, {
+    /**
+     * Set the percentage and status message for the progressbar.
+     */
+    setProgress: function (percentage, message, label) {
+      if (percentage >= 0 && percentage <= 100) {
+        $(this.element).find('div.progress__bar').css('width', percentage + '%');
+        $(this.element).find('div.progress__percentage').html(percentage + '%');
+      }
+      $('div.progress__description', this.element).html(message);
+      $('div.progress__label', this.element).html(label);
+      if (this.updateCallback) {
+        this.updateCallback(percentage, message, this);
+      }
+    },
+
+    /**
+     * Start monitoring progress via Ajax.
+     */
+    startMonitoring: function (uri, delay) {
+      this.delay = delay;
+      this.uri = uri;
+      this.sendPing();
+    },
+
+    /**
+     * Stop monitoring progress via Ajax.
+     */
+    stopMonitoring: function () {
+      clearTimeout(this.timer);
+      // This allows monitoring to be stopped from within the callback.
+      this.uri = null;
+    },
+
+    /**
+     * Request progress data from server.
+     */
+    sendPing: function () {
+      if (this.timer) {
+        clearTimeout(this.timer);
+      }
+      if (this.uri) {
+        var pb = this;
+        // When doing a post request, you need non-null data. Otherwise a
+        // HTTP 411 or HTTP 406 (with Apache mod_security) error may result.
+        $.ajax({
+          type: this.method,
+          url: this.uri,
+          data: '',
+          dataType: 'json',
+          success: function (progress) {
+            // Display errors.
+            if (progress.status === 0) {
+              pb.displayError(progress.data);
+              return;
+            }
+            // Update display.
+            pb.setProgress(progress.percentage, progress.message, progress.label);
+            // Schedule next timer.
+            pb.timer = setTimeout(function () { pb.sendPing(); }, pb.delay);
+          },
+          error: function (xmlhttp) {
+            var e = new Drupal.AjaxError(xmlhttp, pb.uri);
+            pb.displayError('<pre>' + e.message + '</pre>');
+          }
+        });
+      }
+    },
+
+    /**
+     * Display errors on the page.
+     */
+    displayError: function (string) {
+      var error = $('<div class="messages messages--error"></div>').html(string);
+      $(this.element).before(error).hide();
+
+      if (this.errorCallback) {
+        this.errorCallback(this);
+      }
+    }
+  });
+
+})(jQuery, Drupal);
+;
+(function ($, window, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Attaches the Ajax behavior to each Ajax form element.
+   */
+  Drupal.behaviors.AJAX = {
+    attach: function (context, settings) {
+
+      function loadAjaxBehavior(base) {
+        var element_settings = settings.ajax[base];
+        if (typeof element_settings.selector === 'undefined') {
+          element_settings.selector = '#' + base;
+        }
+        $(element_settings.selector).once('drupal-ajax').each(function () {
+          element_settings.element = this;
+          element_settings.base = base;
+          Drupal.ajax(element_settings);
+        });
+      }
+
+      // Load all Ajax behaviors specified in the settings.
+      for (var base in settings.ajax) {
+        if (settings.ajax.hasOwnProperty(base)) {
+          loadAjaxBehavior(base);
+        }
+      }
+
+      // Bind Ajax behaviors to all items showing the class.
+      $('.use-ajax').once('ajax').each(function () {
+        var element_settings = {};
+        // Clicked links look better with the throbber than the progress bar.
+        element_settings.progress = {'type': 'throbber'};
+
+        // For anchor tags, these will go to the target of the anchor rather
+        // than the usual location.
+        if ($(this).attr('href')) {
+          element_settings.url = $(this).attr('href');
+          element_settings.event = 'click';
+        }
+        element_settings.dialogType = $(this).data('dialog-type');
+        element_settings.dialog = $(this).data('dialog-options');
+        element_settings.base = $(this).attr('id');
+        element_settings.element = this;
+        Drupal.ajax(element_settings);
+      });
+
+      // This class means to submit the form to the action using Ajax.
+      $('.use-ajax-submit').once('ajax').each(function () {
+        var element_settings = {};
+
+        // Ajax submits specified in this manner automatically submit to the
+        // normal form action.
+        element_settings.url = $(this.form).attr('action');
+        // Form submit button clicks need to tell the form what was clicked so
+        // it gets passed in the POST request.
+        element_settings.setClick = true;
+        // Form buttons use the 'click' event rather than mousedown.
+        element_settings.event = 'click';
+        // Clicked form buttons look better with the throbber than the progress bar.
+        element_settings.progress = {'type': 'throbber'};
+        element_settings.base = $(this).attr('id');
+        element_settings.element = this;
+
+        Drupal.ajax(element_settings);
+      });
+    }
+  };
+
+  /**
+   * Extends Error to provide handling for Errors in Ajax.
+   */
+  Drupal.AjaxError = function (xmlhttp, uri) {
+
+    var statusCode;
+    var statusText;
+    var pathText;
+    var responseText;
+    var readyStateText;
+    if (xmlhttp.status) {
+      statusCode = "\n" + Drupal.t("An AJAX HTTP error occurred.") + "\n" + Drupal.t("HTTP Result Code: !status", {'!status': xmlhttp.status});
+    }
+    else {
+      statusCode = "\n" + Drupal.t("An AJAX HTTP request terminated abnormally.");
+    }
+    statusCode += "\n" + Drupal.t("Debugging information follows.");
+    pathText = "\n" + Drupal.t("Path: !uri", {'!uri': uri});
+    statusText = '';
+    // In some cases, when statusCode === 0, xmlhttp.statusText may not be defined.
+    // Unfortunately, testing for it with typeof, etc, doesn't seem to catch that
+    // and the test causes an exception. So we need to catch the exception here.
+    try {
+      statusText = "\n" + Drupal.t("StatusText: !statusText", {'!statusText': $.trim(xmlhttp.statusText)});
+    }
+    catch (e) {
+      // empty
+    }
+
+    responseText = '';
+    // Again, we don't have a way to know for sure whether accessing
+    // xmlhttp.responseText is going to throw an exception. So we'll catch it.
+    try {
+      responseText = "\n" + Drupal.t("ResponseText: !responseText", {'!responseText': $.trim(xmlhttp.responseText)});
+    }
+    catch (e) {
+      // Empty.
+    }
+
+    // Make the responseText more readable by stripping HTML tags and newlines.
+    responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, "");
+    responseText = responseText.replace(/[\n]+\s+/g, "\n");
+
+    // We don't need readyState except for status == 0.
+    readyStateText = xmlhttp.status === 0 ? ("\n" + Drupal.t("ReadyState: !readyState", {'!readyState': xmlhttp.readyState})) : "";
+
+    this.message = statusCode + pathText + statusText + responseText + readyStateText;
+    this.name = 'AjaxError';
+  };
+
+  Drupal.AjaxError.prototype = new Error();
+  Drupal.AjaxError.prototype.constructor = Drupal.AjaxError;
+
+  /**
+   * Provides Ajax page updating via jQuery $.ajax.
+   *
+   * This function is designed to improve developer experience by wrapping the
+   * initialization of Drupal.Ajax objects and storing all created object in the
+   * Drupal.ajax.instances array.
+   *
+   * @example
+   * Drupal.behaviors.myCustomAJAXStuff = {
+   *   attach: function (context, settings) {
+   *
+   *     var ajaxSettings = {
+   *       url: 'my/url/path',
+   *       // If the old version of Drupal.ajax() needs to be used those
+   *       // properties can be added
+   *       base: 'myBase',
+   *       element: $(context).find('.someElement')
+   *     };
+   *
+   *     var myAjaxObject = Drupal.ajax(ajaxSettings);
+   *
+   *     // Declare a new Ajax command specifically for this Ajax object.
+   *     myAjaxObject.commands.insert = function (ajax, response, status) {
+   *       $('#my-wrapper').append(response.data);
+   *       alert('New content was appended to #my-wrapper');
+   *     };
+   *
+   *     // This command will remove this Ajax object from the page.
+   *     myAjaxObject.commands.destroyObject = function (ajax, response, status) {
+   *       Drupal.ajax.instances[this.instanceIndex] = null;
+   *     };
+   *
+   *     // Programmatically trigger the Ajax request.
+   *     myAjaxObject.execute();
+   *   }
+   * };
+   *
+   * @see Drupal.AjaxCommands
+   *
+   * @param {object} settings
+   *   The settings object passed to Drupal.Ajax constructor.
+   * @param {string} [settings.base]
+   *   Base is passed to Drupal.Ajax constructor as the 'base' parameter.
+   * @param {HTMLElement} [settings.element]
+   *   Element parameter of Drupal.Ajax constructor, element on which
+   *   event listeners will be bound.
+   *
+   * @return {Drupal.Ajax}
+   */
+  Drupal.ajax = function (settings) {
+    if (arguments.length !== 1) {
+      throw new Error('Drupal.ajax() function must be called with one configuration object only');
+    }
+    // Map those config keys to variables for the old Drupal.ajax function.
+    var base = settings.base || false;
+    var element = settings.element || false;
+    delete settings.base;
+    delete settings.element;
+
+    // By default do not display progress for ajax calls without an element.
+    if (!settings.progress && !element) {
+      settings.progress = false;
+    }
+
+    var ajax = new Drupal.Ajax(base, element, settings);
+    ajax.instanceIndex = Drupal.ajax.instances.length;
+    Drupal.ajax.instances.push(ajax);
+
+    return ajax;
+  };
+
+  /**
+   * Contains all created Ajax objects.
+   *
+   * @type {Array}
+   */
+  Drupal.ajax.instances = [];
+
+  /**
+   * Ajax constructor.
+   *
+   * The Ajax request returns an array of commands encoded in JSON, which is
+   * then executed to make any changes that are necessary to the page.
+   *
+   * Drupal uses this file to enhance form elements with #ajax['url'] and
+   * #ajax['wrapper'] properties. If set, this file will automatically be
+   * included to provide Ajax capabilities.
+   *
+   * @constructor
+   *
+   * @param {string} [base]
+   *   Base parameter of Drupal.Ajax constructor
+   * @param {HTMLElement} [element]
+   *   Element parameter of Drupal.Ajax constructor, element on which
+   *   event listeners will be bound.
+   * @param {object} element_settings
+   * @param {string} element_settings.url
+   *   Target of the Ajax request.
+   * @param {string} [element_settings.event]
+   *   Event bound to settings.element which will trigger the Ajax request.
+   * @param {string} [element_settings.method]
+   *   Name of the jQuery method used to insert new content in the targeted
+   *   element.
+   */
+  Drupal.Ajax = function (base, element, element_settings) {
+    var defaults = {
+      event: element ? 'mousedown' : null,
+      keypress: true,
+      selector: base ? '#' + base : null,
+      effect: 'none',
+      speed: 'none',
+      method: 'replaceWith',
+      progress: {
+        type: 'throbber',
+        message: Drupal.t('Please wait...')
+      },
+      submit: {
+        'js': true
+      }
+    };
+
+    $.extend(this, defaults, element_settings);
+
+    this.commands = new Drupal.AjaxCommands();
+    this.instanceIndex = false;
+
+    // @todo Remove this after refactoring the PHP code to:
+    //   - Call this 'selector'.
+    //   - Include the '#' for ID-based selectors.
+    //   - Support non-ID-based selectors.
+    if (this.wrapper) {
+      this.wrapper = '#' + this.wrapper;
+    }
+
+    this.element = element;
+    this.element_settings = element_settings;
+
+    // If there isn't a form, jQuery.ajax() will be used instead, allowing us to
+    // bind Ajax to links as well.
+    if (this.element && this.element.form) {
+      this.$form = $(this.element.form);
+    }
+
+    // If no Ajax callback URL was given, use the link href or form action.
+    if (!this.url) {
+      var $element = $(this.element);
+      if ($element.is('a')) {
+        this.url = $element.attr('href');
+      }
+      else if (this.element && element.form) {
+        this.url = this.$form.attr('action');
+
+        // @todo If there's a file input on this form, then jQuery will submit the
+        //   Ajax response with a hidden Iframe rather than the XHR object. If the
+        //   response to the submission is an HTTP redirect, then the Iframe will
+        //   follow it, but the server won't content negotiate it correctly,
+        //   because there won't be an ajax_iframe_upload POST variable. Until we
+        //   figure out a work around to this problem, we prevent Ajax-enabling
+        //   elements that submit to the same URL as the form when there's a file
+        //   input. For example, this means the Delete button on the edit form of
+        //   an Article node doesn't open its confirmation form in a dialog.
+        if (this.$form.find(':file').length) {
+          return;
+        }
+      }
+    }
+
+    // Replacing 'nojs' with 'ajax' in the URL allows for an easy method to let
+    // the server detect when it needs to degrade gracefully.
+    // There are four scenarios to check for:
+    // 1. /nojs/
+    // 2. /nojs$ - The end of a URL string.
+    // 3. /nojs? - Followed by a query (e.g. path/nojs?destination=foobar).
+    // 4. /nojs# - Followed by a fragment (e.g.: path/nojs#myfragment).
+    this.url = this.url.replace(/\/nojs(\/|$|\?|#)/g, '/ajax$1');
+
+    // Set the options for the ajaxSubmit function.
+    // The 'this' variable will not persist inside of the options object.
+    var ajax = this;
+    ajax.options = {
+      url: ajax.url,
+      data: ajax.submit,
+      beforeSerialize: function (element_settings, options) {
+        return ajax.beforeSerialize(element_settings, options);
+      },
+      beforeSubmit: function (form_values, element_settings, options) {
+        ajax.ajaxing = true;
+        return ajax.beforeSubmit(form_values, element_settings, options);
+      },
+      beforeSend: function (xmlhttprequest, options) {
+        ajax.ajaxing = true;
+        return ajax.beforeSend(xmlhttprequest, options);
+      },
+      success: function (response, status) {
+        // Sanity check for browser support (object expected).
+        // When using iFrame uploads, responses must be returned as a string.
+        if (typeof response === 'string') {
+          response = $.parseJSON(response);
+        }
+        return ajax.success(response, status);
+      },
+      complete: function (response, status) {
+        ajax.ajaxing = false;
+        if (status === 'error' || status === 'parsererror') {
+          return ajax.error(response, ajax.url);
+        }
+      },
+      dataType: 'json',
+      type: 'POST'
+    };
+
+    if (element_settings.dialog) {
+      ajax.options.data.dialogOptions = element_settings.dialog;
+    }
+
+    // Ensure that we have a valid URL by adding ? when no query parameter is
+    // yet available, otherwise append using &.
+    if (ajax.options.url.indexOf('?') === -1) {
+      ajax.options.url += '?';
+    }
+    else {
+      ajax.options.url += '&';
+    }
+    ajax.options.url += Drupal.ajax.WRAPPER_FORMAT + '=drupal_' + (element_settings.dialogType || 'ajax');
+
+    // Bind the ajaxSubmit function to the element event.
+    $(ajax.element).on(element_settings.event, function (event) {
+      return ajax.eventResponse(this, event);
+    });
+
+    // If necessary, enable keyboard submission so that Ajax behaviors
+    // can be triggered through keyboard input as well as e.g. a mousedown
+    // action.
+    if (element_settings.keypress) {
+      $(ajax.element).on('keypress', function (event) {
+        return ajax.keypressResponse(this, event);
+      });
+    }
+
+    // If necessary, prevent the browser default action of an additional event.
+    // For example, prevent the browser default action of a click, even if the
+    // Ajax behavior binds to mousedown.
+    if (element_settings.prevent) {
+      $(ajax.element).on(element_settings.prevent, false);
+    }
+  };
+
+  /**
+   * URL query attribute to indicate the wrapper used to render a request.
+   *
+   * The wrapper format determines how the HTML is wrapped, for example in a
+   * modal dialog.
+   */
+  Drupal.ajax.WRAPPER_FORMAT = '_wrapper_format';
+
+  /**
+   * Execute the ajax request.
+   *
+   * Allows developers to execute an Ajax request manually without specifying
+   * an event to respond to.
+   */
+  Drupal.Ajax.prototype.execute = function () {
+    // Do not perform another ajax command if one is already in progress.
+    if (this.ajaxing) {
+      return;
+    }
+
+    try {
+      this.beforeSerialize(this.element, this.options);
+      $.ajax(this.options);
+    }
+    catch (e) {
+      // Unset the ajax.ajaxing flag here because it won't be unset during
+      // the complete response.
+      this.ajaxing = false;
+      window.alert("An error occurred while attempting to process " + this.options.url + ": " + e.message);
+    }
+  };
+
+  /**
+   * Handle a key press.
+   *
+   * The Ajax object will, if instructed, bind to a key press response. This
+   * will test to see if the key press is valid to trigger this event and
+   * if it is, trigger it for us and prevent other keypresses from triggering.
+   * In this case we're handling RETURN and SPACEBAR keypresses (event codes 13
+   * and 32. RETURN is often used to submit a form when in a textfield, and
+   * SPACE is often used to activate an element without submitting.
+   */
+  Drupal.Ajax.prototype.keypressResponse = function (element, event) {
+    // Create a synonym for this to reduce code confusion.
+    var ajax = this;
+
+    // Detect enter key and space bar and allow the standard response for them,
+    // except for form elements of type 'text', 'tel', 'number' and 'textarea',
+    // where the spacebar activation causes inappropriate activation if
+    // #ajax['keypress'] is TRUE. On a text-type widget a space should always be a
+    // space.
+    if (event.which === 13 || (event.which === 32 && element.type !== 'text' &&
+      element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number')) {
+      event.preventDefault();
+      event.stopPropagation();
+      $(ajax.element_settings.element).trigger(ajax.element_settings.event);
+    }
+  };
+
+  /**
+   * Handle an event that triggers an Ajax response.
+   *
+   * When an event that triggers an Ajax response happens, this method will
+   * perform the actual Ajax call. It is bound to the event using
+   * bind() in the constructor, and it uses the options specified on the
+   * Ajax object.
+   */
+  Drupal.Ajax.prototype.eventResponse = function (element, event) {
+    event.preventDefault();
+    event.stopPropagation();
+
+    // Create a synonym for this to reduce code confusion.
+    var ajax = this;
+
+    // Do not perform another Ajax command if one is already in progress.
+    if (ajax.ajaxing) {
+      return;
+    }
+
+    try {
+      if (ajax.$form) {
+        // If setClick is set, we must set this to ensure that the button's
+        // value is passed.
+        if (ajax.setClick) {
+          // Mark the clicked button. 'form.clk' is a special variable for
+          // ajaxSubmit that tells the system which element got clicked to
+          // trigger the submit. Without it there would be no 'op' or
+          // equivalent.
+          element.form.clk = element;
+        }
+
+        ajax.$form.ajaxSubmit(ajax.options);
+      }
+      else {
+        ajax.beforeSerialize(ajax.element, ajax.options);
+        $.ajax(ajax.options);
+      }
+    }
+    catch (e) {
+      // Unset the ajax.ajaxing flag here because it won't be unset during
+      // the complete response.
+      ajax.ajaxing = false;
+      window.alert("An error occurred while attempting to process " + ajax.options.url + ": " + e.message);
+    }
+  };
+
+  /**
+   * Handler for the form serialization.
+   *
+   * Runs before the beforeSend() handler (see below), and unlike that one, runs
+   * before field data is collected.
+   */
+  Drupal.Ajax.prototype.beforeSerialize = function (element, options) {
+    // Allow detaching behaviors to update field values before collecting them.
+    // This is only needed when field values are added to the POST data, so only
+    // when there is a form such that this.$form.ajaxSubmit() is used instead of
+    // $.ajax(). When there is no form and $.ajax() is used, beforeSerialize()
+    // isn't called, but don't rely on that: explicitly check this.$form.
+    if (this.$form) {
+      var settings = this.settings || drupalSettings;
+      Drupal.detachBehaviors(this.$form.get(0), settings, 'serialize');
+    }
+
+    // Prevent duplicate HTML ids in the returned markup.
+    // @see \Drupal\Component\Utility\Html::getUniqueId()
+    var ids = document.querySelectorAll('[id]');
+    var ajaxHtmlIds = [];
+    var il = ids.length;
+    for (var i = 0; i < il; i++) {
+      ajaxHtmlIds.push(ids[i].id);
+    }
+    // Join IDs to minimize request size.
+    options.data.ajax_html_ids = ajaxHtmlIds.join(' ');
+
+    // Allow Drupal to return new JavaScript and CSS files to load without
+    // returning the ones already loaded.
+    // @see \Drupal\Core\Theme\AjaxBasePageNegotiator
+    // @see \Drupal\Core\Asset\LibraryDependencyResolverInterface::getMinimalRepresentativeSubset()
+    // @see system_js_settings_alter()
+    var pageState = drupalSettings.ajaxPageState;
+    options.data['ajax_page_state[theme]'] = pageState.theme;
+    options.data['ajax_page_state[theme_token]'] = pageState.theme_token;
+    options.data['ajax_page_state[libraries]'] = pageState.libraries;
+  };
+
+  /**
+   * Modify form values prior to form submission.
+   */
+  Drupal.Ajax.prototype.beforeSubmit = function (form_values, element, options) {
+    // This function is left empty to make it simple to override for modules
+    // that wish to add functionality here.
+  };
+
+  /**
+   * Prepare the Ajax request before it is sent.
+   */
+  Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
+    // For forms without file inputs, the jQuery Form plugin serializes the form
+    // values, and then calls jQuery's $.ajax() function, which invokes this
+    // handler. In this circumstance, options.extraData is never used. For forms
+    // with file inputs, the jQuery Form plugin uses the browser's normal form
+    // submission mechanism, but captures the response in a hidden IFRAME. In this
+    // circumstance, it calls this handler first, and then appends hidden fields
+    // to the form to submit the values in options.extraData. There is no simple
+    // way to know which submission mechanism will be used, so we add to extraData
+    // regardless, and allow it to be ignored in the former case.
+    if (this.$form) {
+      options.extraData = options.extraData || {};
+
+      // Let the server know when the IFRAME submission mechanism is used. The
+      // server can use this information to wrap the JSON response in a TEXTAREA,
+      // as per http://jquery.malsup.com/form/#file-upload.
+      options.extraData.ajax_iframe_upload = '1';
+
+      // The triggering element is about to be disabled (see below), but if it
+      // contains a value (e.g., a checkbox, textfield, select, etc.), ensure that
+      // value is included in the submission. As per above, submissions that use
+      // $.ajax() are already serialized prior to the element being disabled, so
+      // this is only needed for IFRAME submissions.
+      var v = $.fieldValue(this.element);
+      if (v !== null) {
+        options.extraData[this.element.name] = v;
+      }
+    }
+
+    // Disable the element that received the change to prevent user interface
+    // interaction while the Ajax request is in progress. ajax.ajaxing prevents
+    // the element from triggering a new request, but does not prevent the user
+    // from changing its value.
+    $(this.element).prop('disabled', true);
+
+    if (!this.progress || !this.progress.type) {
+      return;
+    }
+
+    // Insert progress indicator
+    var progressIndicatorMethod = 'setProgressIndicator' + this.progress.type.slice(0, 1).toUpperCase() + this.progress.type.slice(1).toLowerCase();
+    if (progressIndicatorMethod in this && typeof this[progressIndicatorMethod] === 'function') {
+      this[progressIndicatorMethod].call(this);
+      $(this.element).after(this.progress.element);
+    }
+  };
+
+  /**
+   * Sets the progress bar progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorBar = function () {
+    var progressBar = new Drupal.ProgressBar('ajax-progress-' + this.element.id, $.noop, this.progress.method, $.noop);
+    if (this.progress.message) {
+      progressBar.setProgress(-1, this.progress.message);
+    }
+    if (this.progress.url) {
+      progressBar.startMonitoring(this.progress.url, this.progress.interval || 1500);
+    }
+    this.progress.element = $(progressBar.element).addClass('ajax-progress ajax-progress-bar');
+    this.progress.object = progressBar;
+    $(this.element).after(this.progress.element);
+  };
+
+  /**
+   * Sets the throbber progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorThrobber = function () {
+    this.progress.element = $('<div class="ajax-progress ajax-progress-throbber"><div class="throbber">&nbsp;</div></div>');
+    if (this.progress.message) {
+      this.progress.element.find('.throbber').after('<div class="message">' + this.progress.message + '</div>');
+    }
+    $(this.element).after(this.progress.element);
+  };
+
+  /**
+   * Sets the fullscreen progress indicator.
+   */
+  Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
+    this.progress.element = $('<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>');
+    $('body').after(this.progress.element);
+  };
+
+  /**
+   * Handler for the form redirection completion.
+   */
+  Drupal.Ajax.prototype.success = function (response, status) {
+    // Remove the progress element.
+    if (this.progress.element) {
+      $(this.progress.element).remove();
+    }
+    if (this.progress.object) {
+      this.progress.object.stopMonitoring();
+    }
+    $(this.element).prop('disabled', false);
+
+    for (var i in response) {
+      if (response.hasOwnProperty(i) && response[i].command && this.commands[response[i].command]) {
+        this.commands[response[i].command](this, response[i], status);
+      }
+    }
+
+    // Reattach behaviors, if they were detached in beforeSerialize(). The
+    // attachBehaviors() called on the new content from processing the response
+    // commands is not sufficient, because behaviors from the entire form need
+    // to be reattached.
+    if (this.$form) {
+      var settings = this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+
+    // Remove any response-specific settings so they don't get used on the next
+    // call by mistake.
+    this.settings = null;
+  };
+
+  /**
+   * Build an effect object which tells us how to apply the effect when adding new HTML.
+   */
+  Drupal.Ajax.prototype.getEffect = function (response) {
+    var type = response.effect || this.effect;
+    var speed = response.speed || this.speed;
+
+    var effect = {};
+    if (type === 'none') {
+      effect.showEffect = 'show';
+      effect.hideEffect = 'hide';
+      effect.showSpeed = '';
+    }
+    else if (type === 'fade') {
+      effect.showEffect = 'fadeIn';
+      effect.hideEffect = 'fadeOut';
+      effect.showSpeed = speed;
+    }
+    else {
+      effect.showEffect = type + 'Toggle';
+      effect.hideEffect = type + 'Toggle';
+      effect.showSpeed = speed;
+    }
+
+    return effect;
+  };
+
+  /**
+   * Handler for the form redirection error.
+   */
+  Drupal.Ajax.prototype.error = function (response, uri) {
+    // Remove the progress element.
+    if (this.progress.element) {
+      $(this.progress.element).remove();
+    }
+    if (this.progress.object) {
+      this.progress.object.stopMonitoring();
+    }
+    // Undo hide.
+    $(this.wrapper).show();
+    // Re-enable the element.
+    $(this.element).prop('disabled', false);
+    // Reattach behaviors, if they were detached in beforeSerialize().
+    if (this.$form) {
+      var settings = response.settings || this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+    throw new Drupal.AjaxError(response, uri);
+  };
+
+  /**
+   * Provide a series of commands that the server can request the client perform.
+   */
+  Drupal.AjaxCommands = function () {};
+  Drupal.AjaxCommands.prototype = {
+    /**
+     * Command to insert new content into the DOM.
+     */
+    insert: function (ajax, response, status) {
+      // Get information from the response. If it is not there, default to
+      // our presets.
+      var wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
+      var method = response.method || ajax.method;
+      var effect = ajax.getEffect(response);
+      var settings;
+
+      // We don't know what response.data contains: it might be a string of text
+      // without HTML, so don't rely on jQuery correctly interpreting
+      // $(response.data) as new HTML rather than a CSS selector. Also, if
+      // response.data contains top-level text nodes, they get lost with either
+      // $(response.data) or $('<div></div>').replaceWith(response.data).
+      var new_content_wrapped = $('<div></div>').html(response.data);
+      var new_content = new_content_wrapped.contents();
+
+      // For legacy reasons, the effects processing code assumes that new_content
+      // consists of a single top-level element. Also, it has not been
+      // sufficiently tested whether attachBehaviors() can be successfully called
+      // with a context object that includes top-level text nodes. However, to
+      // give developers full control of the HTML appearing in the page, and to
+      // enable Ajax content to be inserted in places where DIV elements are not
+      // allowed (e.g., within TABLE, TR, and SPAN parents), we check if the new
+      // content satisfies the requirement of a single top-level element, and
+      // only use the container DIV created above when it doesn't. For more
+      // information, please see http://drupal.org/node/736066.
+      if (new_content.length !== 1 || new_content.get(0).nodeType !== 1) {
+        new_content = new_content_wrapped;
+      }
+
+      // If removing content from the wrapper, detach behaviors first.
+      switch (method) {
+        case 'html':
+        case 'replaceWith':
+        case 'replaceAll':
+        case 'empty':
+        case 'remove':
+          settings = response.settings || ajax.settings || drupalSettings;
+          Drupal.detachBehaviors(wrapper.get(0), settings);
+      }
+
+      // Add the new content to the page.
+      wrapper[method](new_content);
+
+      // Immediately hide the new content if we're using any effects.
+      if (effect.showEffect !== 'show') {
+        new_content.hide();
+      }
+
+      // Determine which effect to use and what content will receive the
+      // effect, then show the new content.
+      if (new_content.find('.ajax-new-content').length > 0) {
+        new_content.find('.ajax-new-content').hide();
+        new_content.show();
+        new_content.find('.ajax-new-content')[effect.showEffect](effect.showSpeed);
+      }
+      else if (effect.showEffect !== 'show') {
+        new_content[effect.showEffect](effect.showSpeed);
+      }
+
+      // Attach all JavaScript behaviors to the new content, if it was successfully
+      // added to the page, this if statement allows #ajax['wrapper'] to be
+      // optional.
+      if (new_content.parents('html').length > 0) {
+        // Apply any settings from the returned JSON if available.
+        settings = response.settings || ajax.settings || drupalSettings;
+        Drupal.attachBehaviors(new_content.get(0), settings);
+      }
+    },
+
+    /**
+     * Command to remove a chunk from the page.
+     */
+    remove: function (ajax, response, status) {
+      var settings = response.settings || ajax.settings || drupalSettings;
+      $(response.selector).each(function () {
+        Drupal.detachBehaviors(this, settings);
+      })
+        .remove();
+    },
+
+    /**
+     * Command to mark a chunk changed.
+     */
+    changed: function (ajax, response, status) {
+      if (!$(response.selector).hasClass('ajax-changed')) {
+        $(response.selector).addClass('ajax-changed');
+        if (response.asterisk) {
+          $(response.selector).find(response.asterisk).append(' <abbr class="ajax-changed" title="' + Drupal.t('Changed') + '">*</abbr> ');
+        }
+      }
+    },
+
+    /**
+     * Command to provide an alert.
+     */
+    alert: function (ajax, response, status) {
+      window.alert(response.text, response.title);
+    },
+
+    /**
+     * Command to set the window.location, redirecting the browser.
+     */
+    redirect: function (ajax, response, status) {
+      window.location = response.url;
+    },
+
+    /**
+     * Command to provide the jQuery css() function.
+     */
+    css: function (ajax, response, status) {
+      $(response.selector).css(response.argument);
+    },
+
+    /**
+     * Command to set the settings that will be used for other commands in this response.
+     */
+    settings: function (ajax, response, status) {
+      if (response.merge) {
+        $.extend(true, drupalSettings, response.settings);
+      }
+      else {
+        ajax.settings = response.settings;
+      }
+    },
+
+    /**
+     * Command to attach data using jQuery's data API.
+     */
+    data: function (ajax, response, status) {
+      $(response.selector).data(response.name, response.value);
+    },
+
+    /**
+     * Command to apply a jQuery method.
+     */
+    invoke: function (ajax, response, status) {
+      var $element = $(response.selector);
+      $element[response.method].apply($element, response.args);
+    },
+
+    /**
+     * Command to restripe a table.
+     */
+    restripe: function (ajax, response, status) {
+      // :even and :odd are reversed because jQuery counts from 0 and
+      // we count from 1, so we're out of sync.
+      // Match immediate children of the parent element to allow nesting.
+      $(response.selector).find('> tbody > tr:visible, > tr:visible')
+        .removeClass('odd even')
+        .filter(':even').addClass('odd').end()
+        .filter(':odd').addClass('even');
+    },
+
+    /**
+     * Command to update a form's build ID.
+     */
+    update_build_id: function (ajax, response, status) {
+      $('input[name="form_build_id"][value="' + response.old + '"]').val(response.new);
+    },
+
+    /**
+     * Command to add css.
+     *
+     * Uses the proprietary addImport method if available as browsers which
+     * support that method ignore @import statements in dynamically added
+     * stylesheets.
+     */
+    add_css: function (ajax, response, status) {
+      // Add the styles in the normal way.
+      $('head').prepend(response.data);
+      // Add imports in the styles using the addImport method if available.
+      var match;
+      var importMatch = /^@import url\("(.*)"\);$/igm;
+      if (document.styleSheets[0].addImport && importMatch.test(response.data)) {
+        importMatch.lastIndex = 0;
+        do {
+          match = importMatch.exec(response.data);
+          document.styleSheets[0].addImport(match[1]);
+        } while (match);
+      }
+    }
+  };
+
+})(jQuery, this, Drupal, drupalSettings);
+;
+/*!
+ * jQuery UI Button 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/button/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./widget"],e):e(jQuery)})(function(e){var t,n="ui-button ui-widget ui-state-default ui-corner-all",r="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",i=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},s=function(t){var n=t.name,r=t.form,i=e([]);return n&&(n=n.replace(/'/g,"\\'"),r?i=e(r).find("[name='"+n+"'][type=radio]"):i=e("[name='"+n+"'][type=radio]",t.ownerDocument).filter(function(){return!this.form})),i};return e.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,i),typeof this.options.disabled!="boolean"?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var r=this,o=this.options,u=this.type==="checkbox"||this.type==="radio",a=u?"":"ui-state-active";o.label===null&&(o.label=this.type==="input"?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(n).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){if(o.disabled)return;this===t&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){if(o.disabled)return;e(this).removeClass(a)}).bind("click"+this.eventNamespace,function(e){o.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),u&&this.element.bind("change"+this.eventNamespace,function(){r.refresh()}),this.type==="checkbox"?this.buttonElement.bind("click"+this.eventNamespace,function(){if(o.disabled)return!1}):this.type==="radio"?this.buttonElement.bind("click"+this.eventNamespace,function(){if(o.disabled)return!1;e(this).addClass("ui-state-active"),r.buttonElement.attr("aria-pressed","true");var t=r.element[0];s(t).not(t).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){if(o.disabled)return!1;e(this).addClass("ui-state-active"),t=this,r.document.one("mouseup",function(){t=null})}).bind("mouseup"+this.eventNamespace,function(){if(o.disabled)return!1;e(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(t){if(o.disabled)return!1;(t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active")}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",o.disabled),this._resetButton()},_determineButtonType:function(){var e,t,n;this.element.is("[type=checkbox]")?this.type="checkbox":this.element.is("[type=radio]")?this.type="radio":this.element.is("input")?this.type="input":this.type="button",this.type==="checkbox"||this.type==="radio"?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),n=this.element.is(":checked"),n&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",n)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(n+" ui-state-active "+r).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){this._super(e,t);if(e==="disabled"){this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),t&&(this.type==="checkbox"||this.type==="radio"?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active"));return}this._resetButton()},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),this.type==="radio"?s(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):this.type==="checkbox"&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if(this.type==="input"){this.options.label&&this.element.val(this.options.label);return}var t=this.buttonElement.removeClass(r),n=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),i=this.options.icons,s=i.primary&&i.secondary,o=[];i.primary||i.secondary?(this.options.text&&o.push("ui-button-text-icon"+(s?"s":i.primary?"-primary":"-secondary")),i.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+i.primary+"'></span>"),i.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+i.secondary+"'></span>"),this.options.text||(o.push(s?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(n)))):o.push("ui-button-text-only"),t.addClass(o.join(" "))}}),e.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){e==="disabled"&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t=this.element.css("direction")==="rtl",n=this.element.find(this.options.items),r=n.filter(":ui-button");n.not(":ui-button").button(),r.button("refresh"),this.buttons=n.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}}),e.ui.button});;
+/*!
+ * jQuery UI Mouse 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/mouse/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./widget"],e):e(jQuery)})(function(e){var t=!1;return e(document).mouseup(function(){t=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(n){if(!0===e.data(n.target,t.widgetName+".preventClickEvent"))return e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(n){if(t)return;this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(n),this._mouseDownEvent=n;var r=this,i=n.which===1,s=typeof this.options.cancel=="string"&&n.target.nodeName?e(n.target).closest(this.options.cancel).length:!1;if(!i||s||!this._mouseCapture(n))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){r.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(n)&&this._mouseDelayMet(n)){this._mouseStarted=this._mouseStart(n)!==!1;if(!this._mouseStarted)return n.preventDefault(),!0}return!0===e.data(n.target,this.widgetName+".preventClickEvent")&&e.removeData(n.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return r._mouseMove(e)},this._mouseUpDelegate=function(e){return r._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),n.preventDefault(),t=!0,!0},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}if(t.which||t.button)this._mouseMoved=!0;return this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(n){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,n.target===this._mouseDownEvent.target&&e.data(n.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(n)),t=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})});;
+/*!
+ * jQuery UI Draggable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/draggable/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./mouse","./widget"],e):e(jQuery)})(function(e){return e.widget("ui.draggable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){this.options.helper==="original"&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),e==="handle"&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){if((this.helper||this.element).is(".ui-draggable-dragging")){this.destroyOnClear=!0;return}this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy()},_mouseCapture:function(t){var n=this.options;return this._blurActiveElement(t),this.helper||n.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(this._blockFrames(n.iframeFix===!0?"iframe":n.iframeFix),!0):!1)},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this);return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var n=this.document[0];if(!this.handleElement.is(t.target))return;try{n.activeElement&&n.activeElement.nodeName.toLowerCase()!=="body"&&e(n.activeElement).blur()}catch(r){}},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return e(this).css("position")==="fixed"}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._normalizeRightBottom(),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,n){this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=this,r=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(r=e.ui.ddmanager.drop(this,t)),this.dropped&&(r=this.dropped,this.dropped=!1),this.options.revert==="invalid"&&!r||this.options.revert==="valid"&&r||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,r)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){n._trigger("stop",t)!==!1&&n._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper),i=r?e(n.helper.apply(this.element[0],[t])):n.helper==="clone"?this.element.clone().removeAttr("id"):this.element;return i.parents("body").length||i.appendTo(n.appendTo==="parent"?this.element[0].parentNode:n.appendTo),r&&i[0]===this.element[0]&&this._setPositionRelative(),i[0]!==this.element[0]&&!/(fixed|absolute)/.test(i.css("position"))&&i.css("position","absolute"),i},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),n=this.document[0];return this.cssPosition==="absolute"&&this.scrollParent[0]!==n&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition!=="relative")return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,r,i=this.options,s=this.document[0];this.relativeContainer=null;if(!i.containment){this.containment=null;return}if(i.containment==="window"){this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||s.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return}if(i.containment==="document"){this.containment=[0,0,e(s).width()-this.helperProportions.width-this.margins.left,(e(s).height()||s.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return}if(i.containment.constructor===Array){this.containment=i.containment;return}i.containment==="parent"&&(i.containment=this.helper[0].parentNode),n=e(i.containment),r=n[0];if(!r)return;t=/(scroll|auto)/.test(n.css("overflow")),this.containment=[(parseInt(n.css("borderLeftWidth"),10)||0)+(parseInt(n.css("paddingLeft"),10)||0),(parseInt(n.css("borderTopWidth"),10)||0)+(parseInt(n.css("paddingTop"),10)||0),(t?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(n.css("borderRightWidth"),10)||0)-(parseInt(n.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(n.css("borderBottomWidth"),10)||0)-(parseInt(n.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=n},_convertPositionTo:function(e,t){t||(t=this.position);var n=e==="absolute"?1:-1,r=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*n+this.offset.parent.top*n-(this.cssPosition==="fixed"?-this.offset.scroll.top:r?0:this.offset.scroll.top)*n,left:t.left+this.offset.relative.left*n+this.offset.parent.left*n-(this.cssPosition==="fixed"?-this.offset.scroll.left:r?0:this.offset.scroll.left)*n}},_generatePosition:function(e,t){var n,r,i,s,o=this.options,u=this._isRootNode(this.scrollParent[0]),a=e.pageX,f=e.pageY;if(!u||!this.offset.scroll)this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()};return t&&(this.containment&&(this.relativeContainer?(r=this.relativeContainer.offset(),n=[this.containment[0]+r.left,this.containment[1]+r.top,this.containment[2]+r.left,this.containment[3]+r.top]):n=this.containment,e.pageX-this.offset.click.left<n[0]&&(a=n[0]+this.offset.click.left),e.pageY-this.offset.click.top<n[1]&&(f=n[1]+this.offset.click.top),e.pageX-this.offset.click.left>n[2]&&(a=n[2]+this.offset.click.left),e.pageY-this.offset.click.top>n[3]&&(f=n[3]+this.offset.click.top)),o.grid&&(i=o.grid[1]?this.originalPageY+Math.round((f-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,f=n?i-this.offset.click.top>=n[1]||i-this.offset.click.top>n[3]?i:i-this.offset.click.top>=n[1]?i-o.grid[1]:i+o.grid[1]:i,s=o.grid[0]?this.originalPageX+Math.round((a-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,a=n?s-this.offset.click.left>=n[0]||s-this.offset.click.left>n[2]?s:s-this.offset.click.left>=n[0]?s-o.grid[0]:s+o.grid[0]:s),o.axis==="y"&&(a=this.originalPageX),o.axis==="x"&&(f=this.originalPageY)),{top:f-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition==="fixed"?-this.offset.scroll.top:u?0:this.offset.scroll.top),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition==="fixed"?-this.offset.scroll.left:u?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!==this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){this.options.axis!=="y"&&this.helper.css("right")!=="auto"&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),this.options.axis!=="x"&&this.helper.css("bottom")!=="auto"&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(t,n,r){return r=r||this._uiHash(),e.ui.plugin.call(this,t,[n,r,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),r.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,n,r)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,n,r){var i=e.extend({},n,{item:r.element});r.sortables=[],e(r.options.connectToSortable).each(function(){var n=e(this).sortable("instance");n&&!n.options.disabled&&(r.sortables.push(n),n.refreshPositions(),n._trigger("activate",t,i))})},stop:function(t,n,r){var i=e.extend({},n,{item:r.element});r.cancelHelperRemoval=!1,e.each(r.sortables,function(){var e=this;e.isOver?(e.isOver=0,r.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,i))})},drag:function(t,n,r){e.each(r.sortables,function(){var i=!1,s=this;s.positionAbs=r.positionAbs,s.helperProportions=r.helperProportions,s.offset.click=r.offset.click,s._intersectsWith(s.containerCache)&&(i=!0,e.each(r.sortables,function(){return this.positionAbs=r.positionAbs,this.helperProportions=r.helperProportions,this.offset.click=r.offset.click,this!==s&&this._intersectsWith(this.containerCache)&&e.contains(s.element[0],this.element[0])&&(i=!1),i})),i?(s.isOver||(s.isOver=1,r._parent=n.helper.parent(),s.currentItem=n.helper.appendTo(s.element).data("ui-sortable-item",!0),s.options._helper=s.options.helper,s.options.helper=function(){return n.helper[0]},t.target=s.currentItem[0],s._mouseCapture(t,!0),s._mouseStart(t,!0,!0),s.offset.click.top=r.offset.click.top,s.offset.click.left=r.offset.click.left,s.offset.parent.left-=r.offset.parent.left-s.offset.parent.left,s.offset.parent.top-=r.offset.parent.top-s.offset.parent.top,r._trigger("toSortable",t),r.dropped=s.element,e.each(r.sortables,function(){this.refreshPositions()}),r.currentItem=r.element,s.fromOutside=r),s.currentItem&&(s._mouseDrag(t),n.position=s.position)):s.isOver&&(s.isOver=0,s.cancelHelperRemoval=!0,s.options._revert=s.options.revert,s.options.revert=!1,s._trigger("out",t,s._uiHash(s)),s._mouseStop(t,!0),s.options.revert=s.options._revert,s.options.helper=s.options._helper,s.placeholder&&s.placeholder.remove(),n.helper.appendTo(r._parent),r._refreshOffsets(t),n.position=r._generatePosition(t,!0),r._trigger("fromSortable",t),r.dropped=!1,e.each(r.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,n,r){var i=e("body"),s=r.options;i.css("cursor")&&(s._cursor=i.css("cursor")),i.css("cursor",s.cursor)},stop:function(t,n,r){var i=r.options;i._cursor&&e("body").css("cursor",i._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n,r){var i=e(n.helper),s=r.options;i.css("opacity")&&(s._opacity=i.css("opacity")),i.css("opacity",s.opacity)},stop:function(t,n,r){var i=r.options;i._opacity&&e(n.helper).css("opacity",i._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&n.scrollParentNotHidden[0].tagName!=="HTML"&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(t,n,r){var i=r.options,s=!1,o=r.scrollParentNotHidden[0],u=r.document[0];if(o!==u&&o.tagName!=="HTML"){if(!i.axis||i.axis!=="x")r.overflowOffset.top+o.offsetHeight-t.pageY<i.scrollSensitivity?o.scrollTop=s=o.scrollTop+i.scrollSpeed:t.pageY-r.overflowOffset.top<i.scrollSensitivity&&(o.scrollTop=s=o.scrollTop-i.scrollSpeed);if(!i.axis||i.axis!=="y")r.overflowOffset.left+o.offsetWidth-t.pageX<i.scrollSensitivity?o.scrollLeft=s=o.scrollLeft+i.scrollSpeed:t.pageX-r.overflowOffset.left<i.scrollSensitivity&&(o.scrollLeft=s=o.scrollLeft-i.scrollSpeed)}else{if(!i.axis||i.axis!=="x")t.pageY-e(u).scrollTop()<i.scrollSensitivity?s=e(u).scrollTop(e(u).scrollTop()-i.scrollSpeed):e(window).height()-(t.pageY-e(u).scrollTop())<i.scrollSensitivity&&(s=e(u).scrollTop(e(u).scrollTop()+i.scrollSpeed));if(!i.axis||i.axis!=="y")t.pageX-e(u).scrollLeft()<i.scrollSensitivity?s=e(u).scrollLeft(e(u).scrollLeft()-i.scrollSpeed):e(window).width()-(t.pageX-e(u).scrollLeft())<i.scrollSensitivity&&(s=e(u).scrollLeft(e(u).scrollLeft()+i.scrollSpeed))}s!==!1&&e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(r,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,n,r){var i=r.options;r.snapElements=[],e(i.snap.constructor!==String?i.snap.items||":data(ui-draggable)":i.snap).each(function(){var t=e(this),n=t.offset();this!==r.element[0]&&r.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:n.top,left:n.left})})},drag:function(t,n,r){var i,s,o,u,a,f,l,c,h,p,d=r.options,v=d.snapTolerance,m=n.offset.left,g=m+r.helperProportions.width,y=n.offset.top,b=y+r.helperProportions.height;for(h=r.snapElements.length-1;h>=0;h--){a=r.snapElements[h].left-r.margins.left,f=a+r.snapElements[h].width,l=r.snapElements[h].top-r.margins.top,c=l+r.snapElements[h].height;if(g<a-v||m>f+v||b<l-v||y>c+v||!e.contains(r.snapElements[h].item.ownerDocument,r.snapElements[h].item)){r.snapElements[h].snapping&&r.options.snap.release&&r.options.snap.release.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[h].item})),r.snapElements[h].snapping=!1;continue}d.snapMode!=="inner"&&(i=Math.abs(l-b)<=v,s=Math.abs(c-y)<=v,o=Math.abs(a-g)<=v,u=Math.abs(f-m)<=v,i&&(n.position.top=r._convertPositionTo("relative",{top:l-r.helperProportions.height,left:0}).top),s&&(n.position.top=r._convertPositionTo("relative",{top:c,left:0}).top),o&&(n.position.left=r._convertPositionTo("relative",{top:0,left:a-r.helperProportions.width}).left),u&&(n.position.left=r._convertPositionTo("relative",{top:0,left:f}).left)),p=i||s||o||u,d.snapMode!=="outer"&&(i=Math.abs(l-y)<=v,s=Math.abs(c-b)<=v,o=Math.abs(a-m)<=v,u=Math.abs(f-g)<=v,i&&(n.position.top=r._convertPositionTo("relative",{top:l,left:0}).top),s&&(n.position.top=r._convertPositionTo("relative",{top:c-r.helperProportions.height,left:0}).top),o&&(n.position.left=r._convertPositionTo("relative",{top:0,left:a}).left),u&&(n.position.left=r._convertPositionTo("relative",{top:0,left:f-r.helperProportions.width}).left)),!r.snapElements[h].snapping&&(i||s||o||u||p)&&r.options.snap.snap&&r.options.snap.snap.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[h].item})),r.snapElements[h].snapping=i||s||o||u||p}}}),e.ui.plugin.add("draggable","stack",{start:function(t,n,r){var i,s=r.options,o=e.makeArray(e(s.stack)).sort(function(t,n){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(n).css("zIndex"),10)||0)});if(!o.length)return;i=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",i+t)}),this.css("zIndex",i+o.length)}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,n,r){var i=e(n.helper),s=r.options;i.css("zIndex")&&(s._zIndex=i.css("zIndex")),i.css("zIndex",s.zIndex)},stop:function(t,n,r){var i=r.options;i._zIndex&&e(n.helper).css("zIndex",i._zIndex)}}),e.ui.draggable});;
+/*!
+ * jQuery UI Resizable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/resizable/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./mouse","./widget"],e):e(jQuery)})(function(e){return e.widget("ui.resizable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,n){if(e(t).css("overflow")==="hidden")return!1;var r=n&&n==="left"?"scrollLeft":"scrollTop",i=!1;return t[r]>0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)},_create:function(){var t,n,r,i,s,o=this,u=this.options;this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!u.aspectRatio,aspectRatio:u.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:u.helper||u.ghost||u.animate?u.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=u.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e();if(this.handles.constructor===String){this.handles==="all"&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={};for(n=0;n<t.length;n++)r=e.trim(t[n]),s="ui-resizable-"+r,i=e("<div class='ui-resizable-handle "+s+"'></div>"),i.css({zIndex:u.zIndex}),"se"===r&&i.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[r]=".ui-resizable-"+r,this.element.append(i)}this._renderAxis=function(t){var n,r,i,s;t=t||this.element;for(n in this.handles){if(this.handles[n].constructor===String)this.handles[n]=this.element.children(this.handles[n]).first().show();else if(this.handles[n].jquery||this.handles[n].nodeType)this.handles[n]=e(this.handles[n]),this._on(this.handles[n],{mousedown:o._mouseDown});this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(r=e(this.handles[n],this.element),s=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth(),i=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[n])}},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=i&&i[1]?i[1]:"se")}),u.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(u.disabled)return;e(this).removeClass("ui-resizable-autohide"),o._handles.show()}).mouseleave(function(){if(u.disabled)return;o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,n=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(n(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),n(this.originalElement),this},_mouseCapture:function(t){var n,r,i=!1;for(n in this.handles){r=e(this.handles[n])[0];if(r===t.target||e.contains(r,t.target))i=!0}return!this.options.disabled&&i},_mouseStart:function(t){var n,r,i,s=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),n=this._num(this.helper.css("left")),r=this._num(this.helper.css("top")),s.containment&&(n+=e(s.containment).scrollLeft()||0,r+=e(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:n,top:r},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:n,top:r},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof s.aspectRatio=="number"?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,i=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor",i==="auto"?this.axis+"-resize":i),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var n,r,i=this.originalMousePosition,s=this.axis,o=t.pageX-i.left||0,u=t.pageY-i.top||0,a=this._change[s];this._updatePrevProperties();if(!a)return!1;n=a.apply(this,[t,o,u]),this._updateVirtualBoundaries(t.shiftKey);if(this._aspectRatio||t.shiftKey)n=this._updateRatio(n,t);return n=this._respectSize(n,t),this._updateCache(n),this._propagate("resize",t),r=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(r)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1},_mouseStop:function(t){this.resizing=!1;var n,r,i,s,o,u,a,f=this.options,l=this;return this._helper&&(n=this._proportionallyResizeElements,r=n.length&&/textarea/i.test(n[0].nodeName),i=r&&this._hasScroll(n[0],"left")?0:l.sizeDiff.height,s=r?0:l.sizeDiff.width,o={width:l.helper.width()-s,height:l.helper.height()-i},u=parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left)||null,a=parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top)||null,f.animate||this.element.css(e.extend(o,{top:a,left:u})),l.helper.height(l.size.height),l.helper.width(l.size.width),this._helper&&!f.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,n,r,i,s,o=this.options;s={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:Infinity,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:Infinity};if(this._aspectRatio||e)t=s.minHeight*this.aspectRatio,r=s.minWidth/this.aspectRatio,n=s.maxHeight*this.aspectRatio,i=s.maxWidth/this.aspectRatio,t>s.minWidth&&(s.minWidth=t),r>s.minHeight&&(s.minHeight=r),n<s.maxWidth&&(s.maxWidth=n),i<s.maxHeight&&(s.maxHeight=i);this._vBoundaries=s},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,n=this.size,r=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),r==="sw"&&(e.left=t.left+(n.width-e.width),e.top=null),r==="nw"&&(e.top=t.top+(n.height-e.height),e.left=t.left+(n.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,n=this.axis,r=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,i=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,s=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,u=this.originalPosition.left+this.originalSize.width,a=this.position.top+this.size.height,f=/sw|nw|w/.test(n),l=/nw|ne|n/.test(n);return s&&(e.width=t.minWidth),o&&(e.height=t.minHeight),r&&(e.width=t.maxWidth),i&&(e.height=t.maxHeight),s&&f&&(e.left=u-t.minWidth),r&&f&&(e.left=u-t.maxWidth),o&&l&&(e.top=a-t.minHeight),i&&l&&(e.top=a-t.maxHeight),!e.width&&!e.height&&!e.left&&e.top?e.top=null:!e.width&&!e.height&&!e.top&&e.left&&(e.left=null),e},_getPaddingPlusBorderDimensions:function(e){var t=0,n=[],r=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],i=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];for(;t<4;t++)n[t]=parseInt(r[t],10)||0,n[t]+=parseInt(i[t],10)||0;return{height:n[0]+n[2],width:n[1]+n[3]}},_proportionallyResize:function(){if(!this._proportionallyResizeElements.length)return;var e,t=0,n=this.helper||this.element;for(;t<this._proportionallyResizeElements.length;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:n.height()-this.outerDimensions.height||0,width:n.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,n=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var n=this.originalSize,r=this.originalPosition;return{left:r.left+t,width:n.width-t}},n:function(e,t,n){var r=this.originalSize,i=this.originalPosition;return{top:i.top+n,height:r.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!=="resize"&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var n=e(this).resizable("instance"),r=n.options,i=n._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&n._hasScroll(i[0],"left")?0:n.sizeDiff.height,u=s?0:n.sizeDiff.width,a={width:n.size.width-u,height:n.size.height-o},f=parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left)||null,l=parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top)||null;n.element.animate(e.extend(a,l&&f?{top:l,left:f}:{}),{duration:r.animateDuration,easing:r.animateEasing,step:function(){var r={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};i&&i.length&&e(i[0]).css({width:r.width,height:r.height}),n._updateCache(r),n._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,n,r,i,s,o,u,a=e(this).resizable("instance"),f=a.options,l=a.element,c=f.containment,h=c instanceof e?c.get(0):/parent/.test(c)?l.parent().get(0):c;if(!h)return;a.containerElement=e(h),/document/.test(c)||c===document?(a.containerOffset={left:0,top:0},a.containerPosition={left:0,top:0},a.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(h),n=[],e(["Top","Right","Left","Bottom"]).each(function(e,r){n[e]=a._num(t.css("padding"+r))}),a.containerOffset=t.offset(),a.containerPosition=t.position(),a.containerSize={height:t.innerHeight()-n[3],width:t.innerWidth()-n[1]},r=a.containerOffset,i=a.containerSize.height,s=a.containerSize.width,o=a._hasScroll(h,"left")?h.scrollWidth:s,u=a._hasScroll(h)?h.scrollHeight:i,a.parentData={element:h,left:r.left,top:r.top,width:o,height:u})},resize:function(t){var n,r,i,s,o=e(this).resizable("instance"),u=o.options,a=o.containerOffset,f=o.position,l=o._aspectRatio||t.shiftKey,c={top:0,left:0},h=o.containerElement,p=!0;h[0]!==document&&/static/.test(h.css("position"))&&(c=a),f.left<(o._helper?a.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-a.left:o.position.left-c.left),l&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=u.helper?a.left:0),f.top<(o._helper?a.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-a.top:o.position.top),l&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?a.top:0),i=o.containerElement.get(0)===o.element.parent().get(0),s=/relative|absolute/.test(o.containerElement.css("position")),i&&s?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),n=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-c.left:o.offset.left-a.left)),r=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-c.top:o.offset.top-a.top)),n+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-n,l&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),r+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-r,l&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),n=t.options,r=t.containerOffset,i=t.containerPosition,s=t.containerElement,o=e(t.helper),u=o.offset(),a=o.outerWidth()-t.sizeDiff.width,f=o.outerHeight()-t.sizeDiff.height;t._helper&&!n.animate&&/relative/.test(s.css("position"))&&e(this).css({left:u.left-i.left-r.left,width:a,height:f}),t._helper&&!n.animate&&/static/.test(s.css("position"))&&e(this).css({left:u.left-i.left-r.left,width:a,height:f})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),n=t.options;e(n.alsoResize).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})},resize:function(t,n){var r=e(this).resizable("instance"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0};e(i.alsoResize).each(function(){var t=e(this),r=e(this).data("ui-resizable-alsoresize"),i={},s=t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(s,function(e,t){var n=(r[t]||0)+(u[t]||0);n&&n>=0&&(i[t]=n||null)}),t.css(i)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),n=t.options,r=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:r.height,width:r.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof n.ghost=="string"?n.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,n=e(this).resizable("instance"),r=n.options,i=n.size,s=n.originalSize,o=n.originalPosition,u=n.axis,a=typeof r.grid=="number"?[r.grid,r.grid]:r.grid,f=a[0]||1,l=a[1]||1,c=Math.round((i.width-s.width)/f)*f,h=Math.round((i.height-s.height)/l)*l,p=s.width+c,d=s.height+h,v=r.maxWidth&&r.maxWidth<p,m=r.maxHeight&&r.maxHeight<d,g=r.minWidth&&r.minWidth>p,y=r.minHeight&&r.minHeight>d;r.grid=a,g&&(p+=f),y&&(d+=l),v&&(p-=f),m&&(d-=l);if(/^(se|s|e)$/.test(u))n.size.width=p,n.size.height=d;else if(/^(ne)$/.test(u))n.size.width=p,n.size.height=d,n.position.top=o.top-h;else if(/^(sw)$/.test(u))n.size.width=p,n.size.height=d,n.position.left=o.left-c;else{if(d-l<=0||p-f<=0)t=n._getPaddingPlusBorderDimensions(this);d-l>0?(n.size.height=d,n.position.top=o.top-h):(d=l-t.height,n.size.height=d,n.position.top=o.top+s.height-d),p-f>0?(n.size.width=p,n.position.left=o.left-c):(p=f-t.width,n.size.width=p,n.position.left=o.left+s.width-p)}}}),e.ui.resizable});;
+/*!
+ * jQuery UI Dialog 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/dialog/
+ */(function(e){typeof define=="function"&&define.amd?define(["jquery","./core","./widget","./button","./draggable","./mouse","./position","./resizable"],e):e(jQuery)})(function(e){return e.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var n,r=this;if(!this._isOpen||this._trigger("beforeClose",t)===!1)return;this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance();if(!this.opener.filter(":focusable").focus().length)try{n=this.document[0].activeElement,n&&n.nodeName.toLowerCase()!=="body"&&e(n).blur()}catch(i){}this._hide(this.uiDialog,this.options.hide,function(){r._trigger("close",t)})},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,n){var r=!1,i=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),s=Math.max.apply(null,i);return s>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",s+1),r=!0),r&&!n&&this._trigger("focus",t),r},open:function(){var t=this;if(this._isOpen){this._moveToTop()&&this._focusTabbable();return}this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open")},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function n(){var t=this.document[0].activeElement,n=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);n||this._focusTabbable()}t.preventDefault(),n.call(this),this._delay(n)},_createWrapper:function(){this.uiDialog=e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE){t.preventDefault(),this.close(t);return}if(t.keyCode!==e.ui.keyCode.TAB||t.isDefaultPrevented())return;var n=this.uiDialog.find(":tabbable"),r=n.filter(":first"),i=n.filter(":last");t.target!==i[0]&&t.target!==this.uiDialog[0]||!!t.shiftKey?(t.target===r[0]||t.target===this.uiDialog[0])&&t.shiftKey&&(this._delay(function(){i.focus()}),t.preventDefault()):(this._delay(function(){r.focus()}),t.preventDefault())},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html("&#160;"),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,n=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty();if(e.isEmptyObject(n)||e.isArray(n)&&!n.length){this.uiDialog.removeClass("ui-dialog-buttons");return}e.each(n,function(n,r){var i,s;r=e.isFunction(r)?{click:r,text:n}:r,r=e.extend({type:"button"},r),i=r.click,r.click=function(){i.apply(t.element[0],arguments)},s={icons:r.icons,text:r.showText},delete r.icons,delete r.showText,e("<button></button>",r).button(s).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog)},_makeDraggable:function(){function r(e){return{position:e.position,offset:e.offset}}var t=this,n=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){e(this).addClass("ui-dialog-dragging"),t._blockFrames(),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,s){var o=s.offset.left-t.document.scrollLeft(),u=s.offset.top-t.document.scrollTop();n.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" "+"top"+(u>=0?"+":"")+u,of:t.window},e(this).removeClass("ui-dialog-dragging"),t._unblockFrames(),t._trigger("dragStop",i,r(s))}})},_makeResizable:function(){function o(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var t=this,n=this.options,r=n.resizable,i=this.uiDialog.css("position"),s=typeof r=="string"?r:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:n.maxWidth,maxHeight:n.maxHeight,minWidth:n.minWidth,minHeight:this._minHeight(),handles:s,start:function(n,r){e(this).addClass("ui-dialog-resizing"),t._blockFrames(),t._trigger("resizeStart",n,o(r))},resize:function(e,n){t._trigger("resize",e,o(n))},stop:function(r,i){var s=t.uiDialog.offset(),u=s.left-t.document.scrollLeft(),a=s.top-t.document.scrollTop();n.height=t.uiDialog.height(),n.width=t.uiDialog.width(),n.position={my:"left top",at:"left"+(u>=0?"+":"")+u+" "+"top"+(a>=0?"+":"")+a,of:t.window},e(this).removeClass("ui-dialog-resizing"),t._unblockFrames(),t._trigger("resizeStop",r,o(i))}}).css("position",i)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=e(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),n=e.inArray(this,t);n!==-1&&t.splice(n,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var n=this,r=!1,i={};e.each(t,function(e,t){n._setOption(e,t),e in n.sizeRelatedOptions&&(r=!0),e in n.resizableRelatedOptions&&(i[e]=t)}),r&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",i)},_setOption:function(e,t){var n,r,i=this.uiDialog;e==="dialogClass"&&i.removeClass(this.options.dialogClass).addClass(t);if(e==="disabled")return;this._super(e,t),e==="appendTo"&&this.uiDialog.appendTo(this._appendTo()),e==="buttons"&&this._createButtons(),e==="closeText"&&this.uiDialogTitlebarClose.button({label:""+t}),e==="draggable"&&(n=i.is(":data(ui-draggable)"),n&&!t&&i.draggable("destroy"),!n&&t&&this._makeDraggable()),e==="position"&&this._position(),e==="resizable"&&(r=i.is(":data(ui-resizable)"),r&&!t&&i.resizable("destroy"),r&&typeof t=="string"&&i.resizable("option","handles",t),!r&&t!==!1&&this._makeResizable()),e==="title"&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title"))},_size:function(){var e,t,n,r=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),r.minWidth>r.width&&(r.width=r.minWidth),e=this.uiDialog.css({height:"auto",width:r.width}).outerHeight(),t=Math.max(0,r.minHeight-e),n=typeof r.maxHeight=="number"?Math.max(0,r.maxHeight-e):"none",r.height==="auto"?this.element.css({minHeight:t,maxHeight:n,height:"auto"}):this.element.height(Math.max(0,r.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(!this.options.modal)return;var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){if(t)return;this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)},_destroyOverlay:function(){if(!this.options.modal)return;if(this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}})});;
+/**
+ * @file
+ *
+ * Dialog API inspired by HTML5 dialog element:
+ * http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#the-dialog-element
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  drupalSettings.dialog = {
+    autoOpen: true,
+    dialogClass: '',
+    // Drupal-specific extensions: see dialog.jquery-ui.js.
+    buttonClass: 'button',
+    buttonPrimaryClass: 'button--primary',
+    // When using this API directly (when generating dialogs on the client side),
+    // you may want to override this method and do
+    // @code
+    // jQuery(event.target).remove()
+    // @endcode
+    // as well, to remove the dialog on closing.
+    close: function (event) {
+      Drupal.detachBehaviors(event.target, null, 'unload');
+    }
+  };
+
+  Drupal.dialog = function (element, options) {
+
+    function openDialog(settings) {
+      settings = $.extend({}, drupalSettings.dialog, options, settings);
+      // Trigger a global event to allow scripts to bind events to the dialog.
+      $(window).trigger('dialog:beforecreate', [dialog, $element, settings]);
+      $element.dialog(settings);
+      dialog.open = true;
+      $(window).trigger('dialog:aftercreate', [dialog, $element, settings]);
+    }
+
+    function closeDialog(value) {
+      $(window).trigger('dialog:beforeclose', [dialog, $element]);
+      $element.dialog('close');
+      dialog.returnValue = value;
+      dialog.open = false;
+      $(window).trigger('dialog:afterclose', [dialog, $element]);
+    }
+
+    var undef;
+    var $element = $(element);
+    var dialog = {
+      open: false,
+      returnValue: undef,
+      show: function () {
+        openDialog({modal: false});
+      },
+      showModal: function () {
+        openDialog({modal: true});
+      },
+      close: closeDialog
+    };
+
+    return dialog;
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
+(function ($, Drupal, drupalSettings, debounce, displace) {
+
+  "use strict";
+
+  // autoResize option will turn off resizable and draggable.
+  drupalSettings.dialog = $.extend({autoResize: true, maxHeight: '95%'}, drupalSettings.dialog);
+
+  /**
+   * Resets the current options for positioning.
+   *
+   * This is used as a window resize and scroll callback to reposition the
+   * jQuery UI dialog. Although not a built-in jQuery UI option, this can
+   * be disabled by setting autoResize: false in the options array when creating
+   * a new Drupal.dialog().
+   */
+  function resetSize(event) {
+    var positionOptions = ['width', 'height', 'minWidth', 'minHeight', 'maxHeight', 'maxWidth', 'position'];
+    var adjustedOptions = {};
+    var windowHeight = $(window).height();
+    var option;
+    var optionValue;
+    var adjustedValue;
+    for (var n = 0; n < positionOptions.length; n++) {
+      option = positionOptions[n];
+      optionValue = event.data.settings[option];
+      if (optionValue) {
+        // jQuery UI does not support percentages on heights, convert to pixels.
+        if (typeof optionValue === 'string' && /%$/.test(optionValue) && /height/i.test(option)) {
+          // Take offsets in account.
+          windowHeight -= displace.offsets.top + displace.offsets.bottom;
+          adjustedValue = parseInt(0.01 * parseInt(optionValue, 10) * windowHeight, 10);
+          // Don't force the dialog to be bigger vertically than needed.
+          if (option === 'height' && event.data.$element.parent().outerHeight() < adjustedValue) {
+            adjustedValue = 'auto';
+          }
+          adjustedOptions[option] = adjustedValue;
+        }
+      }
+    }
+    // Offset the dialog center to be at the center of Drupal.displace.offsets.
+    adjustedOptions = resetPosition(adjustedOptions);
+    event.data.$element
+      .dialog('option', adjustedOptions)
+      .trigger('dialogContentResize');
+  }
+
+  /**
+   * Position the dialog's center at the center of displace.offsets boundaries.
+   */
+  function resetPosition(options) {
+    var offsets = displace.offsets;
+    var left = offsets.left - offsets.right;
+    var top = offsets.top - offsets.bottom;
+
+    var leftString = (left > 0 ? '+' : '-') + Math.abs(Math.round(left / 2)) + 'px';
+    var topString = (top > 0 ? '+' : '-') + Math.abs(Math.round(top / 2)) + 'px';
+    options.position = {
+      my: 'center' + (left !== 0 ? leftString : '') + ' center' + (top !== 0 ? topString : ''),
+      of: window
+    };
+    return options;
+  }
+
+  $(window).on({
+    'dialog:aftercreate': function (event, dialog, $element, settings) {
+      var autoResize = debounce(resetSize, 20);
+      var eventData = {settings: settings, $element: $element};
+      if (settings.autoResize === true || settings.autoResize === 'true') {
+        $element
+          .dialog('option', {resizable: false, draggable: false})
+          .dialog('widget').css('position', 'fixed');
+        $(window)
+          .on('resize.dialogResize scroll.dialogResize', eventData, autoResize)
+          .trigger('resize.dialogResize');
+        $(document).on('drupalViewportOffsetChange', eventData, autoResize);
+      }
+    },
+    'dialog:beforeclose': function (event, dialog, $element) {
+      $(window).off('.dialogResize');
+    }
+  });
+
+})(jQuery, Drupal, drupalSettings, Drupal.debounce, Drupal.displace);
+;
+/**
+ * @file
+ * Adds default classes to buttons for styling purposes.
+ */
+(function ($) {
+
+  "use strict";
+
+  $.widget('ui.dialog', $.ui.dialog, {
+    options: {
+      buttonClass: 'button',
+      buttonPrimaryClass: 'button--primary'
+    },
+    _createButtons: function () {
+      var opts = this.options;
+      var primaryIndex;
+      var $buttons;
+      var index;
+      var il = opts.buttons.length;
+      for (index = 0; index < il; index++) {
+        if (opts.buttons[index].primary && opts.buttons[index].primary === true) {
+          primaryIndex = index;
+          delete opts.buttons[index].primary;
+          break;
+        }
+      }
+      this._super();
+      $buttons = this.uiButtonSet.children().addClass(opts.buttonClass);
+      if (typeof primaryIndex !== 'undefined') {
+        $buttons.eq(index).addClass(opts.buttonPrimaryClass);
+      }
+    }
+  });
+
+})(jQuery);
+;
+/**
+ * @file
+ * Attaches behavior for the Quick Edit module.
+ *
+ * Everything happens asynchronously, to allow for:
+ *   - dynamically rendered contextual links
+ *   - asynchronously retrieved (and cached) per-field in-place editing metadata
+ *   - asynchronous setup of in-place editable field and "Quick edit" link
+ *
+ * To achieve this, there are several queues:
+ *   - fieldsMetadataQueue: fields whose metadata still needs to be fetched.
+ *   - fieldsAvailableQueue: queue of fields whose metadata is known, and for
+ *     which it has been confirmed that the user has permission to edit them.
+ *     However, FieldModels will only be created for them once there's a
+ *     contextual link for their entity: when it's possible to initiate editing.
+ *   - contextualLinksQueue: queue of contextual links on entities for which it
+ *     is not yet known whether the user has permission to edit at >=1 of them.
+ */
+
+(function ($, _, Backbone, Drupal, drupalSettings, JSON, storage) {
+
+  "use strict";
+
+  var options = $.extend(drupalSettings.quickedit,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        quickEdit: Drupal.t('Quick edit')
+      }
+    }
+  );
+
+  /**
+   * Tracks fields without metadata. Contains objects with the following keys:
+   *   - DOM el
+   *   - String fieldID
+   *   - String entityID
+   */
+  var fieldsMetadataQueue = [];
+
+  /**
+   * Tracks fields ready for use. Contains objects with the following keys:
+   *   - DOM el
+   *   - String fieldID
+   *   - String entityID
+   */
+  var fieldsAvailableQueue = [];
+
+  /**
+   * Tracks contextual links on entities. Contains objects with the following
+   * keys:
+   *   - String entityID
+   *   - DOM el
+   *   - DOM region
+   */
+  var contextualLinksQueue = [];
+
+  /**
+   * Tracks how many instances exist for each unique entity. Contains key-value
+   * pairs:
+   * - String entityID
+   * - Number count
+   */
+  var entityInstancesTracker = {};
+
+  Drupal.behaviors.quickedit = {
+    attach: function (context) {
+      // Initialize the Quick Edit app once per page load.
+      $('body').once('quickedit-init').each(initQuickEdit);
+
+      // Find all in-place editable fields, if any.
+      var $fields = $(context).find('[data-quickedit-field-id]').once('quickedit');
+      if ($fields.length === 0) {
+        return;
+      }
+
+      // Process each entity element: identical entities that appear multiple
+      // times will get a numeric identifier, starting at 0.
+      $(context).find('[data-quickedit-entity-id]').once('quickedit').each(function (index, entityElement) {
+        processEntity(entityElement);
+      });
+
+      // Process each field element: queue to be used or to fetch metadata.
+      // When a field is being rerendered after editing, it will be processed
+      // immediately. New fields will be unable to be processed immediately, but
+      // will instead be queued to have their metadata fetched, which occurs below
+      // in fetchMissingMetaData().
+      $fields.each(function (index, fieldElement) {
+        processField(fieldElement);
+      });
+
+      // Entities and fields on the page have been detected, try to set up the
+      // contextual links for those entities that already have the necessary meta-
+      // data in the client-side cache.
+      contextualLinksQueue = _.filter(contextualLinksQueue, function (contextualLink) {
+        return !initializeEntityContextualLink(contextualLink);
+      });
+
+      // Fetch metadata for any fields that are queued to retrieve it.
+      fetchMissingMetadata(function (fieldElementsWithFreshMetadata) {
+        // Metadata has been fetched, reprocess fields whose metadata was missing.
+        _.each(fieldElementsWithFreshMetadata, processField);
+
+        // Metadata has been fetched, try to set up more contextual links now.
+        contextualLinksQueue = _.filter(contextualLinksQueue, function (contextualLink) {
+          return !initializeEntityContextualLink(contextualLink);
+        });
+      });
+    },
+    detach: function (context, settings, trigger) {
+      if (trigger === 'unload') {
+        deleteContainedModelsAndQueues($(context));
+      }
+    }
+  };
+
+  Drupal.quickedit = {
+    // A Drupal.quickedit.AppView instance.
+    app: null,
+
+    collections: {
+      // All in-place editable entities (Drupal.quickedit.EntityModel) on the
+      // page.
+      entities: null,
+      // All in-place editable fields (Drupal.quickedit.FieldModel) on the page.
+      fields: null
+    },
+
+    // In-place editors will register themselves in this object.
+    editors: {},
+
+    // Per-field metadata that indicates whether in-place editing is allowed,
+    // which in-place editor should be used, etc.
+    metadata: {
+      has: function (fieldID) {
+        return storage.getItem(this._prefixFieldID(fieldID)) !== null;
+      },
+      add: function (fieldID, metadata) {
+        storage.setItem(this._prefixFieldID(fieldID), JSON.stringify(metadata));
+      },
+      get: function (fieldID, key) {
+        var metadata = JSON.parse(storage.getItem(this._prefixFieldID(fieldID)));
+        return (typeof key === 'undefined') ? metadata : metadata[key];
+      },
+      _prefixFieldID: function (fieldID) {
+        return 'Drupal.quickedit.metadata.' + fieldID;
+      },
+      _unprefixFieldID: function (fieldID) {
+        // Strip "Drupal.quickedit.metadata.", which is 26 characters long.
+        return fieldID.substring(26);
+      },
+      intersection: function (fieldIDs) {
+        var prefixedFieldIDs = _.map(fieldIDs, this._prefixFieldID);
+        var intersection = _.intersection(prefixedFieldIDs, _.keys(sessionStorage));
+        return _.map(intersection, this._unprefixFieldID);
+      }
+    }
+  };
+
+  // Clear the Quick Edit metadata cache whenever the current user's set of
+  // permissions changes.
+  var permissionsHashKey = Drupal.quickedit.metadata._prefixFieldID('permissionsHash');
+  var permissionsHashValue = storage.getItem(permissionsHashKey);
+  var permissionsHash = drupalSettings.user.permissionsHash;
+  if (permissionsHashValue !== permissionsHash) {
+    if (typeof permissionsHash === 'string') {
+      _.chain(storage).keys().each(function (key) {
+        if (key.substring(0, 26) === 'Drupal.quickedit.metadata.') {
+          storage.removeItem(key);
+        }
+      });
+    }
+    storage.setItem(permissionsHashKey, permissionsHash);
+  }
+
+  /**
+   * Detect contextual links on entities annotated by Quick Edit; queue these to
+   * be processed.
+   */
+  $(document).on('drupalContextualLinkAdded', function (event, data) {
+    if (data.$region.is('[data-quickedit-entity-id]')) {
+      // If the contextual link is cached on the client side, an entity instance
+      // will not yet have been assigned. So assign one.
+      if (!data.$region.is('[data-quickedit-entity-instance-id]')) {
+        data.$region.once('quickedit');
+        processEntity(data.$region.get(0));
+      }
+      var contextualLink = {
+        entityID: data.$region.attr('data-quickedit-entity-id'),
+        entityInstanceID: data.$region.attr('data-quickedit-entity-instance-id'),
+        el: data.$el[0],
+        region: data.$region[0]
+      };
+      // Set up contextual links for this, otherwise queue it to be set up later.
+      if (!initializeEntityContextualLink(contextualLink)) {
+        contextualLinksQueue.push(contextualLink);
+      }
+    }
+  });
+
+  /**
+   * Extracts the entity ID from a field ID.
+   *
+   * @param String fieldID
+   *   A field ID: a string of the format
+   *   `<entity type>/<id>/<field name>/<language>/<view mode>`.
+   * @return String
+   *   An entity ID: a string of the format `<entity type>/<id>`.
+   */
+  function extractEntityID(fieldID) {
+    return fieldID.split('/').slice(0, 2).join('/');
+  }
+
+  /**
+   * Initialize the Quick Edit app.
+   *
+   * @param DOM bodyElement
+   *   This document's body element.
+   */
+  function initQuickEdit(bodyElement) {
+    Drupal.quickedit.collections.entities = new Drupal.quickedit.EntityCollection();
+    Drupal.quickedit.collections.fields = new Drupal.quickedit.FieldCollection();
+
+    // Instantiate AppModel (application state) and AppView, which is the
+    // controller of the whole in-place editing experience.
+    Drupal.quickedit.app = new Drupal.quickedit.AppView({
+      el: bodyElement,
+      model: new Drupal.quickedit.AppModel(),
+      entitiesCollection: Drupal.quickedit.collections.entities,
+      fieldsCollection: Drupal.quickedit.collections.fields
+    });
+  }
+
+  /**
+   * Assigns the entity an instance ID.
+   *
+   * @param DOM entityElement.
+   *   A Drupal Entity API entity's DOM element with a data-quickedit-entity-id
+   *   attribute.
+   */
+  function processEntity(entityElement) {
+    var entityID = entityElement.getAttribute('data-quickedit-entity-id');
+    if (!entityInstancesTracker.hasOwnProperty(entityID)) {
+      entityInstancesTracker[entityID] = 0;
+    }
+    else {
+      entityInstancesTracker[entityID]++;
+    }
+
+    // Set the calculated entity instance ID for this element.
+    var entityInstanceID = entityInstancesTracker[entityID];
+    entityElement.setAttribute('data-quickedit-entity-instance-id', entityInstanceID);
+  }
+
+  /**
+   * Fetch the field's metadata; queue or initialize it (if EntityModel exists).
+   *
+   * @param DOM fieldElement
+   *   A Drupal Field API field's DOM element with a data-quickedit-field-id
+   *   attribute.
+   */
+  function processField(fieldElement) {
+    var metadata = Drupal.quickedit.metadata;
+    var fieldID = fieldElement.getAttribute('data-quickedit-field-id');
+    var entityID = extractEntityID(fieldID);
+    // Figure out the instance ID by looking at the ancestor
+    // [data-quickedit-entity-id] element's data-quickedit-entity-instance-id
+    // attribute.
+    var entityElementSelector = '[data-quickedit-entity-id="' + entityID + '"]';
+    var entityElement = $(fieldElement).closest(entityElementSelector);
+    // In the case of a full entity view page, the entity title is rendered
+    // outside of "the entity DOM node": it's rendered as the page title. So in
+    // this case, we must find the entity in the mandatory "content" region.
+    if (entityElement.length === 0) {
+      entityElement = $('.region-content').find(entityElementSelector);
+    }
+    var entityInstanceID = entityElement
+      .get(0)
+      .getAttribute('data-quickedit-entity-instance-id');
+
+    // Early-return if metadata for this field is missing.
+    if (!metadata.has(fieldID)) {
+      fieldsMetadataQueue.push({
+        el: fieldElement,
+        fieldID: fieldID,
+        entityID: entityID,
+        entityInstanceID: entityInstanceID
+      });
+      return;
+    }
+    // Early-return if the user is not allowed to in-place edit this field.
+    if (metadata.get(fieldID, 'access') !== true) {
+      return;
+    }
+
+    // If an EntityModel for this field already exists (and hence also a "Quick
+    // edit" contextual link), then initialize it immediately.
+    if (Drupal.quickedit.collections.entities.findWhere({entityID: entityID, entityInstanceID: entityInstanceID})) {
+      initializeField(fieldElement, fieldID, entityID, entityInstanceID);
+    }
+    // Otherwise: queue the field. It is now available to be set up when its
+    // corresponding entity becomes in-place editable.
+    else {
+      fieldsAvailableQueue.push({el: fieldElement, fieldID: fieldID, entityID: entityID, entityInstanceID: entityInstanceID});
+    }
+  }
+
+  /**
+   * Initialize a field; create FieldModel.
+   *
+   * @param DOM fieldElement
+   *   The field's DOM element.
+   * @param String fieldID
+   *   The field's ID.
+   * @param String entityID
+   *   The field's entity's ID.
+   * @param String entityInstanceID
+   *   The field's entity's instance ID.
+   */
+  function initializeField(fieldElement, fieldID, entityID, entityInstanceID) {
+    var entity = Drupal.quickedit.collections.entities.findWhere({
+      entityID: entityID,
+      entityInstanceID: entityInstanceID
+    });
+
+    $(fieldElement).addClass('quickedit-field');
+
+    // The FieldModel stores the state of an in-place editable entity field.
+    var field = new Drupal.quickedit.FieldModel({
+      el: fieldElement,
+      fieldID: fieldID,
+      id: fieldID + '[' + entity.get('entityInstanceID') + ']',
+      entity: entity,
+      metadata: Drupal.quickedit.metadata.get(fieldID),
+      acceptStateChange: _.bind(Drupal.quickedit.app.acceptEditorStateChange, Drupal.quickedit.app)
+    });
+
+    // Track all fields on the page.
+    Drupal.quickedit.collections.fields.add(field);
+  }
+
+  /**
+   * Fetches metadata for fields whose metadata is missing.
+   *
+   * Fields whose metadata is missing are tracked at fieldsMetadataQueue.
+   *
+   * @param Function callback
+   *   A callback function that receives field elements whose metadata will just
+   *   have been fetched.
+   */
+  function fetchMissingMetadata(callback) {
+    if (fieldsMetadataQueue.length) {
+      var fieldIDs = _.pluck(fieldsMetadataQueue, 'fieldID');
+      var fieldElementsWithoutMetadata = _.pluck(fieldsMetadataQueue, 'el');
+      var entityIDs = _.uniq(_.pluck(fieldsMetadataQueue, 'entityID'), true);
+      // Ensure we only request entityIDs for which we don't have metadata yet.
+      entityIDs = _.difference(entityIDs, Drupal.quickedit.metadata.intersection(entityIDs));
+      fieldsMetadataQueue = [];
+
+      $.ajax({
+        url: Drupal.url('quickedit/metadata'),
+        type: 'POST',
+        data: {
+          'fields[]': fieldIDs,
+          'entities[]': entityIDs
+        },
+        dataType: 'json',
+        success: function (results) {
+          // Store the metadata.
+          _.each(results, function (fieldMetadata, fieldID) {
+            Drupal.quickedit.metadata.add(fieldID, fieldMetadata);
+          });
+
+          callback(fieldElementsWithoutMetadata);
+        }
+      });
+    }
+  }
+
+  /**
+   * Loads missing in-place editor's attachments (JavaScript and CSS files).
+   *
+   * Missing in-place editors are those whose fields are actively being used on
+   * the page but don't have
+   *
+   * @param Function callback
+   *   Callback function to be called when the missing in-place editors (if any)
+   *   have been inserted into the DOM. i.e. they may still be loading.
+   */
+  function loadMissingEditors(callback) {
+    var loadedEditors = _.keys(Drupal.quickedit.editors);
+    var missingEditors = [];
+    Drupal.quickedit.collections.fields.each(function (fieldModel) {
+      var metadata = Drupal.quickedit.metadata.get(fieldModel.get('fieldID'));
+      if (metadata.access && _.indexOf(loadedEditors, metadata.editor) === -1) {
+        missingEditors.push(metadata.editor);
+        // Set a stub, to prevent subsequent calls to loadMissingEditors() from
+        // loading the same in-place editor again. Loading an in-place editor
+        // requires talking to a server, to download its JavaScript, then
+        // executing its JavaScript, and only then its Drupal.quickedit.editors
+        // entry will be set.
+        Drupal.quickedit.editors[metadata.editor] = false;
+      }
+    });
+    missingEditors = _.uniq(missingEditors);
+    if (missingEditors.length === 0) {
+      callback();
+      return;
+    }
+
+    // @see https://drupal.org/node/2029999.
+    // Create a Drupal.Ajax instance to load the form.
+    var loadEditorsAjax = Drupal.ajax({
+      url: Drupal.url('quickedit/attachments'),
+      submit: {'editors[]': missingEditors}
+    });
+    // Implement a scoped insert AJAX command: calls the callback after all AJAX
+    // command functions have been executed (hence the deferred calling).
+    var realInsert = Drupal.AjaxCommands.prototype.insert;
+    loadEditorsAjax.commands.insert = function (ajax, response, status) {
+      _.defer(callback);
+      realInsert(ajax, response, status);
+    };
+    // Trigger the AJAX request, which will should return AJAX commands to insert
+    // any missing attachments.
+    loadEditorsAjax.execute();
+  }
+
+  /**
+   * Attempts to set up a "Quick edit" link and corresponding EntityModel.
+   *
+   * @param Object contextualLink
+   *   An object with the following properties:
+   *     - String entityID: a Quick Edit entity identifier, e.g. "node/1" or
+   *       "block_content/5".
+   *     - String entityInstanceID: a Quick Edit entity instance identifier,
+   *       e.g. 0, 1 or n (depending on whether it's the first, second, or n+1st
+   *       instance of this entity).
+   *     - DOM el: element pointing to the contextual links placeholder for this
+   *       entity.
+   *     - DOM region: element pointing to the contextual region for this entity.
+   * @return Boolean
+   *   Returns true when a contextual the given contextual link metadata can be
+   *   removed from the queue (either because the contextual link has been set up
+   *   or because it is certain that in-place editing is not allowed for any of
+   *   its fields).
+   *   Returns false otherwise.
+   */
+  function initializeEntityContextualLink(contextualLink) {
+    var metadata = Drupal.quickedit.metadata;
+    // Check if the user has permission to edit at least one of them.
+    function hasFieldWithPermission(fieldIDs) {
+      for (var i = 0; i < fieldIDs.length; i++) {
+        var fieldID = fieldIDs[i];
+        if (metadata.get(fieldID, 'access') === true) {
+          return true;
+        }
+      }
+      return false;
+    }
+
+    // Checks if the metadata for all given field IDs exists.
+    function allMetadataExists(fieldIDs) {
+      return fieldIDs.length === metadata.intersection(fieldIDs).length;
+    }
+
+    // Find all fields for this entity instance and collect their field IDs.
+    var fields = _.where(fieldsAvailableQueue, {
+      entityID: contextualLink.entityID,
+      entityInstanceID: contextualLink.entityInstanceID
+    });
+    var fieldIDs = _.pluck(fields, 'fieldID');
+
+    // No fields found yet.
+    if (fieldIDs.length === 0) {
+      return false;
+    }
+    // The entity for the given contextual link contains at least one field that
+    // the current user may edit in-place; instantiate EntityModel,
+    // EntityDecorationView and ContextualLinkView.
+    else if (hasFieldWithPermission(fieldIDs)) {
+      var entityModel = new Drupal.quickedit.EntityModel({
+        el: contextualLink.region,
+        entityID: contextualLink.entityID,
+        entityInstanceID: contextualLink.entityInstanceID,
+        id: contextualLink.entityID + '[' + contextualLink.entityInstanceID + ']',
+        label: Drupal.quickedit.metadata.get(contextualLink.entityID, 'label')
+      });
+      Drupal.quickedit.collections.entities.add(entityModel);
+      // Create an EntityDecorationView associated with the root DOM node of the
+      // entity.
+      var entityDecorationView = new Drupal.quickedit.EntityDecorationView({
+        el: contextualLink.region,
+        model: entityModel
+      });
+      entityModel.set('entityDecorationView', entityDecorationView);
+
+      // Initialize all queued fields within this entity (creates FieldModels).
+      _.each(fields, function (field) {
+        initializeField(field.el, field.fieldID, contextualLink.entityID, contextualLink.entityInstanceID);
+      });
+      fieldsAvailableQueue = _.difference(fieldsAvailableQueue, fields);
+
+      // Initialization should only be called once. Use Underscore's once method
+      // to get a one-time use version of the function.
+      var initContextualLink = _.once(function () {
+        var $links = $(contextualLink.el).find('.contextual-links');
+        var contextualLinkView = new Drupal.quickedit.ContextualLinkView($.extend({
+          el: $('<li class="quickedit"><a href="" role="button" aria-pressed="false"></a></li>').prependTo($links),
+          model: entityModel,
+          appModel: Drupal.quickedit.app.model
+        }, options));
+        entityModel.set('contextualLinkView', contextualLinkView);
+      });
+
+      // Set up ContextualLinkView after loading any missing in-place editors.
+      loadMissingEditors(initContextualLink);
+
+      return true;
+    }
+    // There was not at least one field that the current user may edit in-place,
+    // even though the metadata for all fields within this entity is available.
+    else if (allMetadataExists(fieldIDs)) {
+      return true;
+    }
+
+    return false;
+  }
+
+  /**
+   * Delete models and queue items that are contained within a given context.
+   *
+   * Deletes any contained EntityModels (plus their associated FieldModels and
+   * ContextualLinkView) and FieldModels, as well as the corresponding queues.
+   *
+   * After EntityModels, FieldModels must also be deleted, because it is possible
+   * in Drupal for a field DOM element to exist outside of the entity DOM element,
+   * e.g. when viewing the full node, the title of the node is not rendered within
+   * the node (the entity) but as the page title.
+   *
+   * Note: this will not delete an entity that is actively being in-place edited.
+   *
+   * @param jQuery $context
+   *   The context within which to delete.
+   */
+  function deleteContainedModelsAndQueues($context) {
+    $context.find('[data-quickedit-entity-id]').addBack('[data-quickedit-entity-id]').each(function (index, entityElement) {
+      // Delete entity model.
+      var entityModel = Drupal.quickedit.collections.entities.findWhere({el: entityElement});
+      if (entityModel) {
+        var contextualLinkView = entityModel.get('contextualLinkView');
+        contextualLinkView.undelegateEvents();
+        contextualLinkView.remove();
+        // Remove the EntityDecorationView.
+        entityModel.get('entityDecorationView').remove();
+        // Destroy the EntityModel; this will also destroy its FieldModels.
+        entityModel.destroy();
+      }
+
+      // Filter queue.
+      function hasOtherRegion(contextualLink) {
+        return contextualLink.region !== entityElement;
+      }
+
+      contextualLinksQueue = _.filter(contextualLinksQueue, hasOtherRegion);
+    });
+
+    $context.find('[data-quickedit-field-id]').addBack('[data-quickedit-field-id]').each(function (index, fieldElement) {
+      // Delete field models.
+      Drupal.quickedit.collections.fields.chain()
+        .filter(function (fieldModel) { return fieldModel.get('el') === fieldElement; })
+        .invoke('destroy');
+
+      // Filter queues.
+      function hasOtherFieldElement(field) {
+        return field.el !== fieldElement;
+      }
+
+      fieldsMetadataQueue = _.filter(fieldsMetadataQueue, hasOtherFieldElement);
+      fieldsAvailableQueue = _.filter(fieldsAvailableQueue, hasOtherFieldElement);
+    });
+  }
+
+})(jQuery, _, Backbone, Drupal, drupalSettings, window.JSON, window.sessionStorage);
+;
+/**
+ * @file
+ * Provides utility functions for Quick Edit.
+ */
+
+(function ($, Drupal) {
+
+  "use strict";
+
+  Drupal.quickedit.util = Drupal.quickedit.util || {};
+
+  Drupal.quickedit.util.constants = {};
+  Drupal.quickedit.util.constants.transitionEnd = "transitionEnd.quickedit webkitTransitionEnd.quickedit transitionend.quickedit msTransitionEnd.quickedit oTransitionEnd.quickedit";
+
+  /**
+   * Converts a field id into a formatted url path.
+   *
+   * @param String id
+   *   The id of an editable field. For example, 'node/1/body/und/full'.
+   * @param String urlFormat
+   *   The Controller route for field processing. For example,
+   *   '/quickedit/form/!entity_type/!id/!field_name/!langcode/!view_mode'.
+   */
+  Drupal.quickedit.util.buildUrl = function (id, urlFormat) {
+    var parts = id.split('/');
+    return Drupal.formatString(decodeURIComponent(urlFormat), {
+      '!entity_type': parts[0],
+      '!id': parts[1],
+      '!field_name': parts[2],
+      '!langcode': parts[3],
+      '!view_mode': parts[4]
+    });
+  };
+
+  /**
+   * Shows a network error modal dialog.
+   *
+   * @param String title
+   *   The title to use in the modal dialog.
+   * @param String message
+   *   The message to use in the modal dialog.
+   */
+  Drupal.quickedit.util.networkErrorModal = function (title, message) {
+    var $message = $('<div>' + message + '</div>');
+    var networkErrorModal = Drupal.dialog($message.get(0), {
+      title: title,
+      dialogClass: 'quickedit-network-error',
+      buttons: [
+        {
+          text: Drupal.t('OK'),
+          click: function () {
+            networkErrorModal.close();
+          },
+          primary: true
+        }
+      ],
+      create: function () {
+        $(this).parent().find('.ui-dialog-titlebar-close').remove();
+      },
+      close: function (event) {
+        // Automatically destroy the DOM element that was used for the dialog.
+        $(event.target).remove();
+      }
+    });
+    networkErrorModal.showModal();
+  };
+
+  Drupal.quickedit.util.form = {
+
+    /**
+     * Loads a form, calls a callback to insert.
+     *
+     * Leverages Drupal.ajax' ability to have scoped (per-instance) command
+     * implementations to be able to call a callback.
+     *
+     * @param Object options
+     *   An object with the following keys:
+     *    - jQuery $el: (required) DOM element necessary for Drupal.ajax to
+     *      perform AJAX commands.
+     *    - String fieldID: (required) the field ID that uniquely identifies the
+     *      field for which this form will be loaded.
+     *    - Boolean nocssjs: (required) boolean indicating whether no CSS and JS
+     *      should be returned (necessary when the form is invisible to the user).
+     *    - Boolean reset: (required) boolean indicating whether the data stored
+     *      for this field's entity in PrivateTempStore should be used or reset.
+     * @param Function callback
+     *   A callback function that will receive the form to be inserted, as well as
+     *   the ajax object, necessary if the callback wants to perform other AJAX
+     *   commands.
+     */
+    load: function (options, callback) {
+      var fieldID = options.fieldID;
+
+      // Create a Drupal.ajax instance to load the form.
+      var formLoaderAjax = Drupal.ajax({
+        url: Drupal.quickedit.util.buildUrl(fieldID, Drupal.url('quickedit/form/!entity_type/!id/!field_name/!langcode/!view_mode')),
+        submit: {
+          nocssjs: options.nocssjs,
+          reset: options.reset
+        },
+        error: function (xhr, url) {
+          // Show a modal to inform the user of the network error.
+          var fieldLabel = Drupal.quickedit.metadata.get(fieldID, 'label');
+          var message = Drupal.t('Could not load the form for <q>@field-label</q>, either due to a website problem or a network connection problem.<br>Please try again.', {'@field-label': fieldLabel});
+          Drupal.quickedit.util.networkErrorModal(Drupal.t('Sorry!'), message);
+
+          // Change the state back to "candidate", to allow the user to start
+          // in-place editing of the field again.
+          var fieldModel = Drupal.quickedit.app.model.get('activeField');
+          fieldModel.set('state', 'candidate');
+        }
+      });
+      // Implement a scoped quickeditFieldForm AJAX command: calls the callback.
+      formLoaderAjax.commands.quickeditFieldForm = function (ajax, response, status) {
+        callback(response.data, ajax);
+        Drupal.ajax.instances[this.instanceIndex] = null;
+      };
+      // This will ensure our scoped quickeditFieldForm AJAX command gets called.
+      formLoaderAjax.execute();
+    },
+
+    /**
+     * Creates a Drupal.ajax instance that is used to save a form.
+     *
+     * @param Object options
+     *   An object with the following keys:
+     *    - nocssjs: (required) boolean indicating whether no CSS and JS should be
+     *      returned (necessary when the form is invisible to the user).
+     *    - other_view_modes: (required) array containing view mode IDs (of other
+     *      instances of this field on the page).
+     * @return Drupal.ajax
+     *   A Drupal.ajax instance.
+     */
+    ajaxifySaving: function (options, $submit) {
+      // Re-wire the form to handle submit.
+      var settings = {
+        url: $submit.closest('form').attr('action'),
+        setClick: true,
+        event: 'click.quickedit',
+        progress: false,
+        submit: {
+          nocssjs: options.nocssjs,
+          other_view_modes: options.other_view_modes
+        },
+        // Reimplement the success handler to ensure Drupal.attachBehaviors() does
+        // not get called on the form.
+        success: function (response, status) {
+          for (var i in response) {
+            if (response.hasOwnProperty(i) && response[i].command && this.commands[response[i].command]) {
+              this.commands[response[i].command](this, response[i], status);
+            }
+          }
+        },
+        base: $submit.attr('id'),
+        element: $submit[0]
+      };
+
+      return Drupal.ajax(settings);
+    },
+
+    /**
+     * Cleans up the Drupal.ajax instance that is used to save the form.
+     *
+     * @param Drupal.ajax ajax
+     *   A Drupal.ajax instance that was returned by
+     *   Drupal.quickedit.form.ajaxifySaving().
+     */
+    unajaxifySaving: function (ajax) {
+      $(ajax.element).off('click.quickedit');
+    }
+
+  };
+
+})(jQuery, Drupal);
+;
+/**
+ * @file
+ * A Backbone Model subclass that enforces validation when calling set().
+ */
+
+(function (Backbone) {
+
+  "use strict";
+
+  Drupal.quickedit.BaseModel = Backbone.Model.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.__initialized = true;
+      return Backbone.Model.prototype.initialize.call(this, options);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    set: function (key, val, options) {
+      if (this.__initialized) {
+        // Deal with both the "key", value and {key:value}-style arguments.
+        if (typeof key === 'object') {
+          key.validate = true;
+        }
+        else {
+          if (!options) {
+            options = {};
+          }
+          options.validate = true;
+        }
+      }
+      return Backbone.Model.prototype.set.call(this, key, val, options);
+    }
+
+  });
+
+}(Backbone));
+;
+/**
+ * @file
+ * A Backbone Model for the state of the in-place editing application.
+ *
+ * @see Drupal.quickedit.AppView
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  Drupal.quickedit.AppModel = Backbone.Model.extend({
+
+    defaults: {
+      // The currently state = 'highlighted' Drupal.quickedit.FieldModel, if
+      // any.
+      // @see Drupal.quickedit.FieldModel.states
+      highlightedField: null,
+      // The currently state = 'active' Drupal.quickedit.FieldModel, if any.
+      // @see Drupal.quickedit.FieldModel.states
+      activeField: null,
+      // Reference to a Drupal.dialog instance if a state change requires
+      // confirmation.
+      activeModal: null
+    }
+
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone Model for the state of an in-place editable entity in the DOM.
+ */
+
+(function (_, $, Backbone, Drupal) {
+
+  "use strict";
+
+  Drupal.quickedit.EntityModel = Drupal.quickedit.BaseModel.extend({
+
+    defaults: {
+      // The DOM element that represents this entity. It may seem bizarre to
+      // have a DOM element in a Backbone Model, but we need to be able to map
+      // entities in the DOM to EntityModels in memory.
+      el: null,
+      // An entity ID, of the form "<entity type>/<entity ID>", e.g. "node/1".
+      entityID: null,
+      // An entity instance ID. The first instance of a specific entity (i.e. with
+      // a given entity ID) is assigned 0, the second 1, and so on.
+      entityInstanceID: null,
+      // The unique ID of this entity instance on the page, of the form "<entity
+      // type>/<entity ID>[entity instance ID]", e.g. "node/1[0]".
+      id: null,
+      // The label of the entity.
+      label: null,
+      // A Drupal.quickedit.FieldCollection for all fields of this entity.
+      fields: null,
+
+      // The attributes below are stateful. The ones above will never change
+      // during the life of a EntityModel instance.
+
+      // Indicates whether this instance of this entity is currently being
+      // edited in-place.
+      isActive: false,
+      // Whether one or more fields have already been stored in
+      // PrivateTempStore.
+      inTempStore: false,
+      // Whether one or more fields have already been stored in PrivateTempStore
+      // *or* the field that's currently being edited is in the 'changed' or a
+      // later state. In other words, this boolean indicates whether a "Save"
+      // button is necessary or not.
+      isDirty: false,
+      // Whether the request to the server has been made to commit this entity.
+      // Used to prevent multiple such requests.
+      isCommitting: false,
+      // The current processing state of an entity.
+      state: 'closed',
+      // The IDs of the fields whose new values have been stored in
+      // PrivateTempStore. We must store this on the EntityModel as well (even
+      // though it already is on the FieldModel) because when a field is
+      // rerendered, its FieldModel is destroyed and this allows us to
+      // transition it back to the proper state.
+      fieldsInTempStore: [],
+      // A flag the tells the application that this EntityModel must be reloaded
+      // in order to restore the original values to its fields in the client.
+      reload: false
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.set('fields', new Drupal.quickedit.FieldCollection());
+
+      // Respond to entity state changes.
+      this.listenTo(this, 'change:state', this.stateChange);
+
+      // The state of the entity is largely dependent on the state of its
+      // fields.
+      this.listenTo(this.get('fields'), 'change:state', this.fieldStateChange);
+
+      // Call Drupal.quickedit.BaseModel's initialize() method.
+      Drupal.quickedit.BaseModel.prototype.initialize.call(this);
+    },
+
+    /**
+     * Updates FieldModels' states when an EntityModel change occurs.
+     *
+     * @param Drupal.quickedit.EntityModel entityModel
+     * @param String state
+     *   The state of the associated entity. One of Drupal.quickedit.EntityModel.states.
+     * @param Object options
+     */
+    stateChange: function (entityModel, state, options) {
+      var to = state;
+      switch (to) {
+        case 'closed':
+          this.set({
+            'isActive': false,
+            'inTempStore': false,
+            'isDirty': false
+          });
+          break;
+
+        case 'launching':
+          break;
+
+        case 'opening':
+          // Set the fields to candidate state.
+          entityModel.get('fields').each(function (fieldModel) {
+            fieldModel.set('state', 'candidate', options);
+          });
+          break;
+
+        case 'opened':
+          // The entity is now ready for editing!
+          this.set('isActive', true);
+          break;
+
+        case 'committing':
+          // The user indicated they want to save the entity.
+          var fields = this.get('fields');
+          // For fields that are in an active state, transition them to candidate.
+          fields.chain()
+            .filter(function (fieldModel) {
+              return _.intersection([fieldModel.get('state')], ['active']).length;
+            })
+            .each(function (fieldModel) {
+              fieldModel.set('state', 'candidate');
+            });
+          // For fields that are in a changed state, field values must first be
+          // stored in PrivateTempStore.
+          fields.chain()
+            .filter(function (fieldModel) {
+              return _.intersection([fieldModel.get('state')], Drupal.quickedit.app.changedFieldStates).length;
+            })
+            .each(function (fieldModel) {
+              fieldModel.set('state', 'saving');
+            });
+          break;
+
+        case 'deactivating':
+          var changedFields = this.get('fields')
+            .filter(function (fieldModel) {
+              return _.intersection([fieldModel.get('state')], ['changed', 'invalid']).length;
+            });
+          // If the entity contains unconfirmed or unsaved changes, return the
+          // entity to an opened state and ask the user if they would like to save
+          // the changes or discard the changes.
+          //   1. One of the fields is in a changed state. The changed field might
+          //   just be a change in the client or it might have been saved to
+          //   tempstore.
+          //   2. The saved flag is empty and the confirmed flag is empty. If the
+          //   entity has been saved to the server, the fields changed in the
+          //   client are irrelevant. If the changes are confirmed, then proceed
+          //   to set the fields to candidate state.
+          if ((changedFields.length || this.get('fieldsInTempStore').length) && (!options.saved && !options.confirmed)) {
+            // Cancel deactivation until the user confirms save or discard.
+            this.set('state', 'opened', {confirming: true});
+            // An action in reaction to state change must be deferred.
+            _.defer(function () {
+              Drupal.quickedit.app.confirmEntityDeactivation(entityModel);
+            });
+          }
+          else {
+            var invalidFields = this.get('fields')
+              .filter(function (fieldModel) {
+                return _.intersection([fieldModel.get('state')], ['invalid']).length;
+              });
+            // Indicate if this EntityModel needs to be reloaded in order to
+            // restore the original values of its fields.
+            entityModel.set('reload', (this.get('fieldsInTempStore').length || invalidFields.length));
+            // Set all fields to the 'candidate' state. A changed field may have to
+            // go through confirmation first.
+            entityModel.get('fields').each(function (fieldModel) {
+              // If the field is already in the candidate state, trigger a change
+              // event so that the entityModel can move to the next state in
+              // deactivation.
+              if (_.intersection([fieldModel.get('state')], ['candidate', 'highlighted']).length) {
+                fieldModel.trigger('change:state', fieldModel, fieldModel.get('state'), options);
+              }
+              else {
+                fieldModel.set('state', 'candidate', options);
+              }
+            });
+          }
+          break;
+
+        case 'closing':
+          // Set all fields to the 'inactive' state.
+          options.reason = 'stop';
+          this.get('fields').each(function (fieldModel) {
+            fieldModel.set({
+              'inTempStore': false,
+              'state': 'inactive'
+            }, options);
+          });
+          break;
+      }
+    },
+
+    /**
+     * Updates a Field and Entity model's "inTempStore" when appropriate.
+     *
+     * Helper function.
+     *
+     * @param Drupal.quickedit.EntityModel entityModel
+     *   The model of the entity for which a field's state attribute has changed.
+     * @param Drupal.quickedit.FieldModel fieldModel
+     *   The model of the field whose state attribute has changed.
+     *
+     * @see fieldStateChange()
+     */
+    _updateInTempStoreAttributes: function (entityModel, fieldModel) {
+      var current = fieldModel.get('state');
+      var previous = fieldModel.previous('state');
+      var fieldsInTempStore = entityModel.get('fieldsInTempStore');
+      // If the fieldModel changed to the 'saved' state: remember that this
+      // field was saved to PrivateTempStore.
+      if (current === 'saved') {
+        // Mark the entity as saved in PrivateTempStore, so that we can pass the
+        // proper "reset PrivateTempStore" boolean value when communicating with
+        // the server.
+        entityModel.set('inTempStore', true);
+        // Mark the field as saved in PrivateTempStore, so that visual
+        // indicators signifying just that may be rendered.
+        fieldModel.set('inTempStore', true);
+        // Remember that this field is in PrivateTempStore, restore when
+        // rerendered.
+        fieldsInTempStore.push(fieldModel.get('fieldID'));
+        fieldsInTempStore = _.uniq(fieldsInTempStore);
+        entityModel.set('fieldsInTempStore', fieldsInTempStore);
+      }
+      // If the fieldModel changed to the 'candidate' state from the
+      // 'inactive' state, then this is a field for this entity that got
+      // rerendered. Restore its previous 'inTempStore' attribute value.
+      else if (current === 'candidate' && previous === 'inactive') {
+        fieldModel.set('inTempStore', _.intersection([fieldModel.get('fieldID')], fieldsInTempStore).length > 0);
+      }
+    },
+
+    /**
+     * Reacts to state changes in this entity's fields.
+     *
+     * @param Drupal.quickedit.FieldModel fieldModel
+     *   The model of the field whose state attribute changed.
+     * @param String state
+     *   The state of the associated field. One of Drupal.quickedit.FieldModel.states.
+     */
+    fieldStateChange: function (fieldModel, state) {
+      var entityModel = this;
+      var fieldState = state;
+      // Switch on the entityModel state.
+      // The EntityModel responds to FieldModel state changes as a function of its
+      // state. For example, a field switching back to 'candidate' state when its
+      // entity is in the 'opened' state has no effect on the entity. But that
+      // same switch back to 'candidate' state of a field when the entity is in
+      // the 'committing' state might allow the entity to proceed with the commit
+      // flow.
+      switch (this.get('state')) {
+        case 'closed':
+        case 'launching':
+          // It should be impossible to reach these: fields can't change state
+          // while the entity is closed or still launching.
+          break;
+
+        case 'opening':
+          // We must change the entity to the 'opened' state, but it must first be
+          // confirmed that all of its fieldModels have transitioned to the
+          // 'candidate' state.
+          // We do this here, because this is called every time a fieldModel
+          // changes state, hence each time this is called, we get closer to the
+          // goal of having all fieldModels in the 'candidate' state.
+          // A state change in reaction to another state change must be deferred.
+          _.defer(function () {
+            entityModel.set('state', 'opened', {
+              'accept-field-states': Drupal.quickedit.app.readyFieldStates
+            });
+          });
+          break;
+
+        case 'opened':
+          // Set the isDirty attribute when appropriate so that it is known when
+          // to display the "Save" button in the entity toolbar.
+          // Note that once a field has been changed, there's no way to discard
+          // that change, hence it will have to be saved into PrivateTempStore,
+          // or the in-place editing of this field will have to be stopped
+          // completely. In other words: once any field enters the 'changed'
+          // field, then for the remainder of the in-place editing session, the
+          // entity is by definition dirty.
+          if (fieldState === 'changed') {
+            entityModel.set('isDirty', true);
+          }
+          else {
+            this._updateInTempStoreAttributes(entityModel, fieldModel);
+          }
+          break;
+
+        case 'committing':
+          // If the field save returned a validation error, set the state of the
+          // entity back to 'opened'.
+          if (fieldState === 'invalid') {
+            // A state change in reaction to another state change must be deferred.
+            _.defer(function () {
+              entityModel.set('state', 'opened', {reason: 'invalid'});
+            });
+          }
+          else {
+            this._updateInTempStoreAttributes(entityModel, fieldModel);
+          }
+
+          // Attempt to save the entity. If the entity's fields are not yet all in
+          // a ready state, the save will not be processed.
+          var options = {
+            'accept-field-states': Drupal.quickedit.app.readyFieldStates
+          };
+          if (entityModel.set('isCommitting', true, options)) {
+            entityModel.save({
+              success: function () {
+                entityModel.set({
+                  'state': 'deactivating',
+                  'isCommitting': false
+                }, {'saved': true});
+              },
+              error: function () {
+                // Reset the "isCommitting" mutex.
+                entityModel.set('isCommitting', false);
+                // Change the state back to "opened", to allow the user to hit the
+                // "Save" button again.
+                entityModel.set('state', 'opened', {reason: 'networkerror'});
+                // Show a modal to inform the user of the network error.
+                var message = Drupal.t('Your changes to <q>@entity-title</q> could not be saved, either due to a website problem or a network connection problem.<br>Please try again.', {'@entity-title': entityModel.get('label')});
+                Drupal.quickedit.util.networkErrorModal(Drupal.t('Sorry!'), message);
+              }
+            });
+          }
+          break;
+
+        case 'deactivating':
+          // When setting the entity to 'closing', require that all fieldModels
+          // are in either the 'candidate' or 'highlighted' state.
+          // A state change in reaction to another state change must be deferred.
+          _.defer(function () {
+            entityModel.set('state', 'closing', {
+              'accept-field-states': Drupal.quickedit.app.readyFieldStates
+            });
+          });
+          break;
+
+        case 'closing':
+          // When setting the entity to 'closed', require that all fieldModels are
+          // in the 'inactive' state.
+          // A state change in reaction to another state change must be deferred.
+          _.defer(function () {
+            entityModel.set('state', 'closed', {
+              'accept-field-states': ['inactive']
+            });
+          });
+          break;
+      }
+    },
+
+    /**
+     * Fires an AJAX request to the REST save URL for an entity.
+     *
+     * @param options
+     *   An object of options that contains:
+     *     - success: (optional) A function to invoke if the entity is success-
+     *     fully saved.
+     */
+    save: function (options) {
+      var entityModel = this;
+
+      // Create a Drupal.ajax instance to save the entity.
+      var entitySaverAjax = Drupal.ajax({
+        url: Drupal.url('quickedit/entity/' + entityModel.get('entityID')),
+        error: function () {
+          // Let the Drupal.quickedit.EntityModel Backbone model's error()=
+          // method handle errors.
+          options.error.call(entityModel);
+        }
+      });
+      // Entity saved successfully.
+      entitySaverAjax.commands.quickeditEntitySaved = function (ajax, response, status) {
+        // All fields have been moved from PrivateTempStore to permanent
+        // storage, update the "inTempStore" attribute on FieldModels, on the
+        // EntityModel and clear EntityModel's "fieldInTempStore" attribute.
+        entityModel.get('fields').each(function (fieldModel) {
+          fieldModel.set('inTempStore', false);
+        });
+        entityModel.set('inTempStore', false);
+        entityModel.set('fieldsInTempStore', []);
+
+        // Invoke the optional success callback.
+        if (options.success) {
+          options.success.call(entityModel);
+        }
+      };
+      // Trigger the AJAX request, which will will return the
+      // quickeditEntitySaved AJAX command to which we then react.
+      entitySaverAjax.execute();
+    },
+
+    /**
+     * {@inheritdoc}
+     *
+     * @param Object attrs
+     *   The attributes changes in the save or set call.
+     * @param Object options
+     *   An object with the following option:
+     *     - String reason (optional): a string that conveys a particular reason
+     *       to allow for an exceptional state change.
+     *     - Array accept-field-states (optional) An array of strings that
+     *     represent field states that the entities must be in to validate. For
+     *     example, if accept-field-states is ['candidate', 'highlighted'], then
+     *     all the fields of the entity must be in either of these two states
+     *     for the save or set call to validate and proceed.
+     */
+    validate: function (attrs, options) {
+      var acceptedFieldStates = options['accept-field-states'] || [];
+
+      // Validate state change.
+      var currentState = this.get('state');
+      var nextState = attrs.state;
+      if (currentState !== nextState) {
+        // Ensure it's a valid state.
+        if (_.indexOf(this.constructor.states, nextState) === -1) {
+          return '"' + nextState + '" is an invalid state';
+        }
+
+        // Ensure it's a state change that is allowed.
+        // Check if the acceptStateChange function accepts it.
+        if (!this._acceptStateChange(currentState, nextState, options)) {
+          return 'state change not accepted';
+        }
+        // If that function accepts it, then ensure all fields are also in an
+        // acceptable state.
+        else if (!this._fieldsHaveAcceptableStates(acceptedFieldStates)) {
+          return 'state change not accepted because fields are not in acceptable state';
+        }
+      }
+
+      // Validate setting isCommitting = true.
+      var currentIsCommitting = this.get('isCommitting');
+      var nextIsCommitting = attrs.isCommitting;
+      if (currentIsCommitting === false && nextIsCommitting === true) {
+        if (!this._fieldsHaveAcceptableStates(acceptedFieldStates)) {
+          return 'isCommitting change not accepted because fields are not in acceptable state';
+        }
+      }
+      else if (currentIsCommitting === true && nextIsCommitting === true) {
+        return "isCommitting is a mutex, hence only changes are allowed";
+      }
+    },
+
+    // Like @see AppView.acceptEditorStateChange()
+    _acceptStateChange: function (from, to, context) {
+      var accept = true;
+
+      // In general, enforce the states sequence. Disallow going back from a
+      // "later" state to an "earlier" state, except in explicitly allowed
+      // cases.
+      if (!this.constructor.followsStateSequence(from, to)) {
+        accept = false;
+
+        // Allow: closing -> closed.
+        // Necessary to stop editing an entity.
+        if (from === 'closing' && to === 'closed') {
+          accept = true;
+        }
+        // Allow: committing -> opened.
+        // Necessary to be able to correct an invalid field, or to hit the "Save"
+        // button again after a server/network error.
+        else if (from === 'committing' && to === 'opened' && context.reason && (context.reason === 'invalid' || context.reason === 'networkerror')) {
+          accept = true;
+        }
+        // Allow: deactivating -> opened.
+        // Necessary to be able to confirm changes with the user.
+        else if (from === 'deactivating' && to === 'opened' && context.confirming) {
+          accept = true;
+        }
+        // Allow: opened -> deactivating.
+        // Necessary to be able to stop editing.
+        else if (from === 'opened' && to === 'deactivating' && context.confirmed) {
+          accept = true;
+        }
+      }
+
+      return accept;
+    },
+
+    /**
+     * @param Array acceptedFieldStates
+     *   @see validate()
+     * @return Boolean
+     */
+    _fieldsHaveAcceptableStates: function (acceptedFieldStates) {
+      var accept = true;
+
+      // If no acceptable field states are provided, assume all field states are
+      // acceptable. We want to let validation pass as a default and only
+      // check validity on calls to set that explicitly request it.
+      if (acceptedFieldStates.length > 0) {
+        var fieldStates = this.get('fields').pluck('state') || [];
+        // If not all fields are in one of the accepted field states, then we
+        // still can't allow this state change.
+        if (_.difference(fieldStates, acceptedFieldStates).length) {
+          accept = false;
+        }
+      }
+
+      return accept;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    destroy: function (options) {
+      Drupal.quickedit.BaseModel.prototype.destroy.call(this, options);
+
+      this.stopListening();
+
+      // Destroy all fields of this entity.
+      this.get('fields').each(function (fieldModel) {
+        fieldModel.destroy();
+      });
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    sync: function () {
+      // We don't use REST updates to sync.
+      return;
+    }
+
+  }, {
+
+    /**
+     * A list (sequence) of all possible states an entity can be in during
+     * in-place editing.
+     */
+    states: [
+      // Initial state, like field's 'inactive' OR the user has just finished
+      // in-place editing this entity.
+      // - Trigger: none (initial) or EntityModel (finished).
+      // - Expected behavior: (when not initial state): tear down
+      //   EntityToolbarView, in-place editors and related views.
+      'closed',
+      // User has activated in-place editing of this entity.
+      // - Trigger: user.
+      // - Expected behavior: the EntityToolbarView is gets set up, in-place
+      //   editors (EditorViews) and related views for this entity's fields are
+      //   set up. Upon completion of those, the state is changed to 'opening'.
+      'launching',
+      // Launching has finished.
+      // - Trigger: application.
+      // - Guarantees: in-place editors ready for use, all entity and field views
+      //   have been set up, all fields are in the 'inactive' state.
+      // - Expected behavior: all fields are changed to the 'candidate' state and
+      //   once this is completed, the entity state will be changed to 'opened'.
+      'opening',
+      // Opening has finished.
+      // - Trigger: EntityModel.
+      // - Guarantees: see 'opening', all fields are in the 'candidate' state.
+      // - Expected behavior: the user is able to actually use in-place editing.
+      'opened',
+      // User has clicked the 'Save' button (and has thus changed at least one
+      // field).
+      // - Trigger: user.
+      // - Guarantees: see 'opened', plus: either a changed field is in
+      //   PrivateTempStore, or the user has just modified a field without
+      //   activating (switching to) another field.
+      // - Expected behavior: 1) if any of the fields are not yet in
+      //   PrivateTempStore, save them to PrivateTempStore, 2) if then any of
+      //   the fields has the 'invalid' state, then change the entity state back
+      //   to 'opened', otherwise: save the entity by committing it from
+      //   PrivateTempStore into permanent storage.
+      'committing',
+      // User has clicked the 'Close' button, or has clicked the 'Save' button and
+      // that was successfully completed.
+      // - Trigger: user or EntityModel.
+      // - Guarantees: when having clicked 'Close' hardly any: fields may be in a
+      //   variety of states; when having clicked 'Save': all fields are in the
+      //   'candidate' state.
+      // - Expected behavior: transition all fields to the 'candidate' state,
+      //   possibly requiring confirmation in the case of having clicked 'Close'.
+      'deactivating',
+      // Deactivation has been completed.
+      // - Trigger: EntityModel.
+      // - Guarantees: all fields are in the 'candidate' state.
+      // - Expected behavior: change all fields to the 'inactive' state.
+      'closing'
+    ],
+
+    /**
+     * Indicates whether the 'from' state comes before the 'to' state.
+     *
+     * @param String from
+     *   One of Drupal.quickedit.EntityModel.states.
+     * @param String to
+     *   One of Drupal.quickedit.EntityModel.states.
+     * @return Boolean
+     */
+    followsStateSequence: function (from, to) {
+      return _.indexOf(this.states, from) < _.indexOf(this.states, to);
+    }
+
+  });
+
+  Drupal.quickedit.EntityCollection = Backbone.Collection.extend({
+    model: Drupal.quickedit.EntityModel
+  });
+
+}(_, jQuery, Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone Model for the state of an in-place editable field in the DOM.
+ */
+
+(function (_, Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * State of an in-place editable field in the DOM.
+   */
+  Drupal.quickedit.FieldModel = Drupal.quickedit.BaseModel.extend({
+
+    defaults: {
+      // The DOM element that represents this field. It may seem bizarre to have
+      // a DOM element in a Backbone Model, but we need to be able to map fields
+      // in the DOM to FieldModels in memory.
+      el: null,
+      // A field ID, of the form
+      // "<entity type>/<id>/<field name>/<language>/<view mode>", e.g.
+      // "node/1/field_tags/und/full".
+      fieldID: null,
+      // The unique ID of this field within its entity instance on the page, of
+      // the form "<entity type>/<id>/<field name>/<language>/<view mode>[entity instance ID]",
+      // e.g. "node/1/field_tags/und/full[0]".
+      id: null,
+      // A Drupal.quickedit.EntityModel. Its "fields" attribute, which is a
+      // FieldCollection, is automatically updated to include this FieldModel.
+      entity: null,
+      // This field's metadata as returned by the QuickEditController::metadata().
+      metadata: null,
+      // Callback function for validating changes between states. Receives the
+      // previous state, new state, context, and a callback
+      acceptStateChange: null,
+      // A logical field ID, of the form
+      // "<entity type>/<id>/<field name>/<language>", i.e. the fieldID without
+      // the view mode, to be able to identify other instances of the same field
+      // on the page but rendered in a different view mode. e.g. "node/1/field_tags/und".
+      logicalFieldID: null,
+
+      // The attributes below are stateful. The ones above will never change
+      // during the life of a FieldModel instance.
+
+      // In-place editing state of this field. Defaults to the initial state.
+      // Possible values: @see Drupal.quickedit.FieldModel.states.
+      state: 'inactive',
+      // The field is currently in the 'changed' state or one of the following
+      // states in which the field is still changed.
+      isChanged: false,
+      // Is tracked by the EntityModel, is mirrored here solely for decorative
+      // purposes: so that FieldDecorationView.renderChanged() can react to it.
+      inTempStore: false,
+      // The full HTML representation of this field (with the element that has
+      // the data-quickedit-field-id as the outer element). Used to propagate
+      // changes from this field to other instances of the same field storage.
+      html: null,
+      // An object containing the full HTML representations (values) of other view
+      // modes (keys) of this field, for other instances of this field displayed
+      // in a different view mode.
+      htmlForOtherViewModes: null
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      // Store the original full HTML representation of this field.
+      this.set('html', options.el.outerHTML);
+
+      // Enlist field automatically in the associated entity's field collection.
+      this.get('entity').get('fields').add(this);
+
+      // Automatically generate the logical field ID.
+      this.set('logicalFieldID', this.get('fieldID').split('/').slice(0, 4).join('/'));
+
+      // Call Drupal.quickedit.BaseModel's initialize() method.
+      Drupal.quickedit.BaseModel.prototype.initialize.call(this, options);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    destroy: function (options) {
+      if (this.get('state') !== 'inactive') {
+        throw new Error("FieldModel cannot be destroyed if it is not inactive state.");
+      }
+      Drupal.quickedit.BaseModel.prototype.destroy.call(this, options);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    sync: function () {
+      // We don't use REST updates to sync.
+      return;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    validate: function (attrs, options) {
+      var current = this.get('state');
+      var next = attrs.state;
+      if (current !== next) {
+        // Ensure it's a valid state.
+        if (_.indexOf(this.constructor.states, next) === -1) {
+          return '"' + next + '" is an invalid state';
+        }
+        // Check if the acceptStateChange callback accepts it.
+        if (!this.get('acceptStateChange')(current, next, options, this)) {
+          return 'state change not accepted';
+        }
+      }
+    },
+
+    /**
+     * Extracts the entity ID from this field's ID.
+     *
+     * @return String
+     *   An entity ID: a string of the format `<entity type>/<id>`.
+     */
+    getEntityID: function () {
+      return this.get('fieldID').split('/').slice(0, 2).join('/');
+    },
+
+    /**
+     * Extracts the view mode ID from this field's ID.
+     *
+     * @return String
+     *   A view mode ID.
+     */
+    getViewMode: function () {
+      return this.get('fieldID').split('/').pop();
+    },
+
+    /**
+     * Find other instances of this field with different view modes.
+     *
+     * @return Array
+     *   An array containing view mode IDs.
+     */
+    findOtherViewModes: function () {
+      var currentField = this;
+      var otherViewModes = [];
+      Drupal.quickedit.collections.fields
+        // Find all instances of fields that display the same logical field (same
+        // entity, same field, just a different instance and maybe a different
+        // view mode).
+        .where({logicalFieldID: currentField.get('logicalFieldID')})
+        .forEach(function (field) {
+          // Ignore the current field.
+          if (field === currentField) {
+            return;
+          }
+          // Also ignore other fields with the same view mode.
+          else if (field.get('fieldID') === currentField.get('fieldID')) {
+            return;
+          }
+          else {
+            otherViewModes.push(field.getViewMode());
+          }
+        });
+      return otherViewModes;
+    }
+
+  }, {
+
+    /**
+     * A list (sequence) of all possible states a field can be in during in-place
+     * editing.
+     */
+    states: [
+      // The field associated with this FieldModel is linked to an EntityModel;
+      // the user can choose to start in-place editing that entity (and
+      // consequently this field). No in-place editor (EditorView) is associated
+      // with this field, because this field is not being in-place edited.
+      // This is both the initial (not yet in-place editing) and the end state (
+      // finished in-place editing).
+      'inactive',
+      // The user is in-place editing this entity, and this field is a candidate
+      // for in-place editing. In-place editor should not
+      // - Trigger: user.
+      // - Guarantees: entity is ready, in-place editor (EditorView) is associated
+      //   with the field.
+      // - Expected behavior: visual indicators around the field indicate it is
+      //   available for in-place editing, no in-place editor presented yet.
+      'candidate',
+      // User is highlighting this field.
+      // - Trigger: user.
+      // - Guarantees: see 'candidate'.
+      // - Expected behavior: visual indicators to convey highlighting, in-place
+      //   editing toolbar shows field's label.
+      'highlighted',
+      // User has activated the in-place editing of this field; in-place editor is
+      // activating.
+      // - Trigger: user.
+      // - Guarantees: see 'candidate'.
+      // - Expected behavior: loading indicator, in-place editor is loading remote
+      //   data (e.g. retrieve form from back-end). Upon retrieval of remote data,
+      //   the in-place editor transitions the field's state to 'active'.
+      'activating',
+      // In-place editor has finished loading remote data; ready for use.
+      // - Trigger: in-place editor.
+      // - Guarantees: see 'candidate'.
+      // - Expected behavior: in-place editor for the field is ready for use.
+      'active',
+      // User has modified values in the in-place editor.
+      // - Trigger: user.
+      // - Guarantees: see 'candidate', plus in-place editor is ready for use.
+      // - Expected behavior: visual indicator of change.
+      'changed',
+      // User is saving changed field data in in-place editor to
+      // PrivateTempStore. The save mechanism of the in-place editor is called.
+      // - Trigger: user.
+      // - Guarantees: see 'candidate' and 'active'.
+      // - Expected behavior: saving indicator, in-place editor is saving field
+      //   data into PrivateTempStore. Upon successful saving (without
+      //   validation errors), the in-place editor transitions the field's state
+      //   to 'saved', but to 'invalid' upon failed saving (with validation
+      //   errors).
+      'saving',
+      // In-place editor has successfully saved the changed field.
+      // - Trigger: in-place editor.
+      // - Guarantees: see 'candidate' and 'active'.
+      // - Expected behavior: transition back to 'candidate' state because the
+      //   deed is done. Then: 1) transition to 'inactive' to allow the field to
+      //   be rerendered, 2) destroy the FieldModel (which also destroys attached
+      //   views like the EditorView), 3) replace the existing field HTML with the
+      //   existing HTML and 4) attach behaviors again so that the field becomes
+      //   available again for in-place editing.
+      'saved',
+      // In-place editor has failed to saved the changed field: there were
+      // validation errors.
+      // - Trigger: in-place editor.
+      // - Guarantees: see 'candidate' and 'active'.
+      // - Expected behavior: remain in 'invalid' state, let the user make more
+      //   changes so that he can save it again, without validation errors.
+      'invalid'
+    ],
+
+    /**
+     * Indicates whether the 'from' state comes before the 'to' state.
+     *
+     * @param String from
+     *   One of Drupal.quickedit.FieldModel.states.
+     * @param String to
+     *   One of Drupal.quickedit.FieldModel.states.
+     * @return Boolean
+     */
+    followsStateSequence: function (from, to) {
+      return _.indexOf(this.states, from) < _.indexOf(this.states, to);
+    }
+
+  });
+
+  Drupal.quickedit.FieldCollection = Backbone.Collection.extend({
+    model: Drupal.quickedit.FieldModel
+  });
+
+}(_, Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone Model for the state of an in-place editor.
+ *
+ * @see Drupal.quickedit.EditorView
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  Drupal.quickedit.EditorModel = Backbone.Model.extend({
+
+    defaults: {
+      // Not the full HTML representation of this field, but the "actual"
+      // original value of the field, stored by the used in-place editor, and
+      // in a representation that can be chosen by the in-place editor.
+      originalValue: null,
+      // Analogous to originalValue, but the current value.
+      currentValue: null,
+      // Stores any validation errors to be rendered.
+      validationErrors: null
+    }
+
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone View that controls the overall "in-place editing application".
+ *
+ * @see Drupal.quickedit.AppModel
+ */
+
+(function ($, _, Backbone, Drupal) {
+
+  "use strict";
+
+  // Indicates whether the page should be reloaded after in-place editing has
+  // shut down. A page reload is necessary to re-instate the original HTML of the
+  // edited fields if in-place editing has been canceled and one or more of the
+  // entity's fields were saved to PrivateTempStore: one of them may have been
+  // changed to the empty value and hence may have been rerendered as the empty
+  // string, which makes it impossible for Quick Edit to know where to restore
+  // the original HTML.
+  var reload = false;
+
+  Drupal.quickedit.AppView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     *
+     * @param Object options
+     *   An object with the following keys:
+     *   - Drupal.quickedit.AppModel model: the application state model
+     *   - Drupal.quickedit.EntityCollection entitiesCollection: all on-page entities
+     *   - Drupal.quickedit.FieldCollection fieldsCollection: all on-page fields
+     */
+    initialize: function (options) {
+      // AppView's configuration for handling states.
+      // @see Drupal.quickedit.FieldModel.states
+      this.activeFieldStates = ['activating', 'active'];
+      this.singleFieldStates = ['highlighted', 'activating', 'active'];
+      this.changedFieldStates = ['changed', 'saving', 'saved', 'invalid'];
+      this.readyFieldStates = ['candidate', 'highlighted'];
+
+      this.listenTo(options.entitiesCollection, {
+        // Track app state.
+        'change:state': this.appStateChange,
+        'change:isActive': this.enforceSingleActiveEntity
+      });
+
+      // Track app state.
+      this.listenTo(options.fieldsCollection, 'change:state', this.editorStateChange);
+      // Respond to field model HTML representation change events.
+      this.listenTo(options.fieldsCollection, 'change:html', this.renderUpdatedField);
+      this.listenTo(options.fieldsCollection, 'change:html', this.propagateUpdatedField);
+      // Respond to addition.
+      this.listenTo(options.fieldsCollection, 'add', this.rerenderedFieldToCandidate);
+      // Respond to destruction.
+      this.listenTo(options.fieldsCollection, 'destroy', this.teardownEditor);
+    },
+
+    /**
+     * Handles setup/teardown and state changes when the active entity changes.
+     *
+     * @param Drupal.quickedit.EntityModel entityModel
+     *   An instance of the EntityModel class.
+     * @param String state
+     *   The state of the associated field. One of Drupal.quickedit.EntityModel.states.
+     */
+    appStateChange: function (entityModel, state) {
+      var app = this;
+      var entityToolbarView;
+      switch (state) {
+        case 'launching':
+          reload = false;
+          // First, create an entity toolbar view.
+          entityToolbarView = new Drupal.quickedit.EntityToolbarView({
+            model: entityModel,
+            appModel: this.model
+          });
+          entityModel.toolbarView = entityToolbarView;
+          // Second, set up in-place editors.
+          // They must be notified of state changes, hence this must happen while
+          // the associated fields are still in the 'inactive' state.
+          entityModel.get('fields').each(function (fieldModel) {
+            app.setupEditor(fieldModel);
+          });
+          // Third, transition the entity to the 'opening' state, which will
+          // transition all fields from 'inactive' to 'candidate'.
+          _.defer(function () {
+            entityModel.set('state', 'opening');
+          });
+          break;
+        case 'closed':
+          entityToolbarView = entityModel.toolbarView;
+          // First, tear down the in-place editors.
+          entityModel.get('fields').each(function (fieldModel) {
+            app.teardownEditor(fieldModel);
+          });
+          // Second, tear down the entity toolbar view.
+          if (entityToolbarView) {
+            entityToolbarView.remove();
+            delete entityModel.toolbarView;
+          }
+          // A page reload may be necessary to re-instate the original HTML of the
+          // edited fields.
+          if (reload) {
+            reload = false;
+            location.reload();
+          }
+          break;
+      }
+    },
+
+    /**
+     * Accepts or reject editor (Editor) state changes.
+     *
+     * This is what ensures that the app is in control of what happens.
+     *
+     * @param String from
+     *   The previous state.
+     * @param String to
+     *   The new state.
+     * @param null|Object context
+     *   The context that is trying to trigger the state change.
+     * @param Drupal.quickedit.FieldModel fieldModel
+     *   The fieldModel to which this change applies.
+     */
+    acceptEditorStateChange: function (from, to, context, fieldModel) {
+      var accept = true;
+
+      // If the app is in view mode, then reject all state changes except for
+      // those to 'inactive'.
+      if (context && (context.reason === 'stop' || context.reason === 'rerender')) {
+        if (from === 'candidate' && to === 'inactive') {
+          accept = true;
+        }
+      }
+      // Handling of edit mode state changes is more granular.
+      else {
+        // In general, enforce the states sequence. Disallow going back from a
+        // "later" state to an "earlier" state, except in explicitly allowed
+        // cases.
+        if (!Drupal.quickedit.FieldModel.followsStateSequence(from, to)) {
+          accept = false;
+          // Allow: activating/active -> candidate.
+          // Necessary to stop editing a field.
+          if (_.indexOf(this.activeFieldStates, from) !== -1 && to === 'candidate') {
+            accept = true;
+          }
+          // Allow: changed/invalid -> candidate.
+          // Necessary to stop editing a field when it is changed or invalid.
+          else if ((from === 'changed' || from === 'invalid') && to === 'candidate') {
+            accept = true;
+          }
+          // Allow: highlighted -> candidate.
+          // Necessary to stop highlighting a field.
+          else if (from === 'highlighted' && to === 'candidate') {
+            accept = true;
+          }
+          // Allow: saved -> candidate.
+          // Necessary when successfully saved a field.
+          else if (from === 'saved' && to === 'candidate') {
+            accept = true;
+          }
+          // Allow: invalid -> saving.
+          // Necessary to be able to save a corrected, invalid field.
+          else if (from === 'invalid' && to === 'saving') {
+            accept = true;
+          }
+          // Allow: invalid -> activating.
+          // Necessary to be able to correct a field that turned out to be invalid
+          // after the user already had moved on to the next field (which we
+          // explicitly allow to have a fluent UX).
+          else if (from === 'invalid' && to === 'activating') {
+            accept = true;
+          }
+        }
+
+        // If it's not against the general principle, then here are more
+        // disallowed cases to check.
+        if (accept) {
+          var activeField;
+          var activeFieldState;
+          // Ensure only one field (editor) at a time is active … but allow a user
+          // to hop from one field to the next, even if we still have to start
+          // saving the field that is currently active: assume it will be valid,
+          // to allow for a fluent UX. (If it turns out to be invalid, this block
+          // of code also handles that.)
+          if ((this.readyFieldStates.indexOf(from) !== -1 || from === 'invalid') && this.activeFieldStates.indexOf(to) !== -1) {
+            activeField = this.model.get('activeField');
+            if (activeField && activeField !== fieldModel) {
+              activeFieldState = activeField.get('state');
+              // Allow the state change. If the state of the active field is:
+              // - 'activating' or 'active': change it to 'candidate'
+              // - 'changed' or 'invalid': change it to 'saving'
+              // - 'saving' or 'saved': don't do anything.
+              if (this.activeFieldStates.indexOf(activeFieldState) !== -1) {
+                activeField.set('state', 'candidate');
+              }
+              else if (activeFieldState === 'changed' || activeFieldState === 'invalid') {
+                activeField.set('state', 'saving');
+              }
+
+              // If the field that's being activated is in fact already in the
+              // invalid state (which can only happen because above we allowed the
+              // user to move on to another field to allow for a fluent UX; we
+              // assumed it would be saved successfully), then we shouldn't allow
+              // the field to enter the 'activating' state, instead, we simply
+              // change the active editor. All guarantees and assumptions for this
+              // field still hold!
+              if (from === 'invalid') {
+                this.model.set('activeField', fieldModel);
+                accept = false;
+              }
+              // Do not reject: the field is either in the 'candidate' or
+              // 'highlighted' state and we allow it to enter the 'activating'
+              // state!
+            }
+          }
+          // Reject going from activating/active to candidate because of a
+          // mouseleave.
+          else if (_.indexOf(this.activeFieldStates, from) !== -1 && to === 'candidate') {
+            if (context && context.reason === 'mouseleave') {
+              accept = false;
+            }
+          }
+          // When attempting to stop editing a changed/invalid property, ask for
+          // confirmation.
+          else if ((from === 'changed' || from === 'invalid') && to === 'candidate') {
+            if (context && context.reason === 'mouseleave') {
+              accept = false;
+            }
+            else {
+              // Check whether the transition has been confirmed?
+              if (context && context.confirmed) {
+                accept = true;
+              }
+            }
+          }
+        }
+      }
+
+      return accept;
+    },
+
+    /**
+     * Sets up the in-place editor for the given field.
+     *
+     * Must happen before the fieldModel's state is changed to 'candidate'.
+     *
+     * @param Drupal.quickedit.FieldModel fieldModel
+     *   The field for which an in-place editor must be set up.
+     */
+    setupEditor: function (fieldModel) {
+      // Get the corresponding entity toolbar.
+      var entityModel = fieldModel.get('entity');
+      var entityToolbarView = entityModel.toolbarView;
+      // Get the field toolbar DOM root from the entity toolbar.
+      var fieldToolbarRoot = entityToolbarView.getToolbarRoot();
+      // Create in-place editor.
+      var editorName = fieldModel.get('metadata').editor;
+      var editorModel = new Drupal.quickedit.EditorModel();
+      var editorView = new Drupal.quickedit.editors[editorName]({
+        el: $(fieldModel.get('el')),
+        model: editorModel,
+        fieldModel: fieldModel
+      });
+
+      // Create in-place editor's toolbar for this field — stored inside the
+      // entity toolbar, the entity toolbar will position itself appropriately
+      // above (or below) the edited element.
+      var toolbarView = new Drupal.quickedit.FieldToolbarView({
+        el: fieldToolbarRoot,
+        model: fieldModel,
+        $editedElement: $(editorView.getEditedElement()),
+        editorView: editorView,
+        entityModel: entityModel
+      });
+
+      // Create decoration for edited element: padding if necessary, sets classes
+      // on the element to style it according to the current state.
+      var decorationView = new Drupal.quickedit.FieldDecorationView({
+        el: $(editorView.getEditedElement()),
+        model: fieldModel,
+        editorView: editorView
+      });
+
+      // Track these three views in FieldModel so that we can tear them down
+      // correctly.
+      fieldModel.editorView = editorView;
+      fieldModel.toolbarView = toolbarView;
+      fieldModel.decorationView = decorationView;
+    },
+
+    /**
+     * Tears down the in-place editor for the given field.
+     *
+     * Must happen after the fieldModel's state is changed to 'inactive'.
+     *
+     * @param Drupal.quickedit.FieldModel fieldModel
+     *   The field for which an in-place editor must be torn down.
+     */
+    teardownEditor: function (fieldModel) {
+      // Early-return if this field was not yet decorated.
+      if (typeof fieldModel.editorView === 'undefined') {
+        return;
+      }
+
+      // Unbind event handlers; remove toolbar element; delete toolbar view.
+      fieldModel.toolbarView.remove();
+      delete fieldModel.toolbarView;
+
+      // Unbind event handlers; delete decoration view. Don't remove the element
+      // because that would remove the field itself.
+      fieldModel.decorationView.remove();
+      delete fieldModel.decorationView;
+
+      // Unbind event handlers; delete editor view. Don't remove the element
+      // because that would remove the field itself.
+      fieldModel.editorView.remove();
+      delete fieldModel.editorView;
+    },
+
+    /**
+     * Asks the user to confirm whether he wants to stop editing via a modal.
+     *
+     * @see acceptEditorStateChange()
+     */
+    confirmEntityDeactivation: function (entityModel) {
+      var that = this;
+      var discardDialog;
+
+      function closeDiscardDialog(action) {
+        discardDialog.close(action);
+        // The active modal has been removed.
+        that.model.set('activeModal', null);
+
+        // If the targetState is saving, the field must be saved, then the
+        // entity must be saved.
+        if (action === 'save') {
+          entityModel.set('state', 'committing', {confirmed: true});
+        }
+        else {
+          entityModel.set('state', 'deactivating', {confirmed: true});
+          // Editing has been canceled and the changes will not be saved. Mark
+          // the page for reload if the entityModel declares that it requires
+          // a reload.
+          if (entityModel.get('reload')) {
+            reload = true;
+            entityModel.set('reload', false);
+          }
+        }
+      }
+
+      // Only instantiate if there isn't a modal instance visible yet.
+      if (!this.model.get('activeModal')) {
+        var $unsavedChanges = $('<div>' + Drupal.t('You have unsaved changes') + '</div>');
+        discardDialog = Drupal.dialog($unsavedChanges.get(0), {
+          title: Drupal.t('Discard changes?'),
+          dialogClass: 'quickedit-discard-modal',
+          resizable: false,
+          buttons: [
+            {
+              text: Drupal.t('Save'),
+              click: function () {
+                closeDiscardDialog('save');
+              },
+              primary: true
+            },
+            {
+              text: Drupal.t('Discard changes'),
+              click: function () {
+                closeDiscardDialog('discard');
+              }
+            }
+          ],
+          // Prevent this modal from being closed without the user making a choice
+          // as per http://stackoverflow.com/a/5438771.
+          closeOnEscape: false,
+          create: function () {
+            $(this).parent().find('.ui-dialog-titlebar-close').remove();
+          },
+          beforeClose: false,
+          close: function (event) {
+            // Automatically destroy the DOM element that was used for the dialog.
+            $(event.target).remove();
+          }
+        });
+        this.model.set('activeModal', discardDialog);
+
+        discardDialog.showModal();
+      }
+    },
+
+    /**
+     * Reacts to field state changes; tracks global state.
+     *
+     * @param Drupal.quickedit.FieldModel fieldModel
+     * @param String state
+     *   The state of the associated field. One of Drupal.quickedit.FieldModel.states.
+     */
+    editorStateChange: function (fieldModel, state) {
+      var from = fieldModel.previous('state');
+      var to = state;
+
+      // Keep track of the highlighted field in the global state.
+      if (_.indexOf(this.singleFieldStates, to) !== -1 && this.model.get('highlightedField') !== fieldModel) {
+        this.model.set('highlightedField', fieldModel);
+      }
+      else if (this.model.get('highlightedField') === fieldModel && to === 'candidate') {
+        this.model.set('highlightedField', null);
+      }
+
+      // Keep track of the active field in the global state.
+      if (_.indexOf(this.activeFieldStates, to) !== -1 && this.model.get('activeField') !== fieldModel) {
+        this.model.set('activeField', fieldModel);
+      }
+      else if (this.model.get('activeField') === fieldModel && to === 'candidate') {
+        // Discarded if it transitions from a changed state to 'candidate'.
+        if (from === 'changed' || from === 'invalid') {
+          fieldModel.editorView.revert();
+        }
+        this.model.set('activeField', null);
+      }
+    },
+
+    /**
+     * Render an updated field (a field whose 'html' attribute changed).
+     *
+     * @param Drupal.quickedit.FieldModel fieldModel
+     *   The FieldModel whose 'html' attribute changed.
+     * @param String html
+     *   The updated 'html' attribute.
+     * @param Object options
+     *   An object with the following keys:
+     *   - Boolean propagation: whether this change to the 'html' attribute
+     *     occurred because of the propagation of changes to another instance of
+     *     this field.
+     */
+    renderUpdatedField: function (fieldModel, html, options) {
+      // Get data necessary to rerender property before it is unavailable.
+      var $fieldWrapper = $(fieldModel.get('el'));
+      var $context = $fieldWrapper.parent();
+
+      var renderField = function () {
+        // Destroy the field model; this will cause all attached views to be
+        // destroyed too, and removal from all collections in which it exists.
+        fieldModel.destroy();
+
+        // Replace the old content with the new content.
+        $fieldWrapper.replaceWith(html);
+
+        // Attach behaviors again to the modified piece of HTML; this will
+        // create a new field model and call rerenderedFieldToCandidate() with
+        // it.
+        Drupal.attachBehaviors($context.get(0));
+      };
+
+      // When propagating the changes of another instance of this field, this
+      // field is not being actively edited and hence no state changes are
+      // necessary. So: only update the state of this field when the rerendering
+      // of this field happens not because of propagation, but because it is
+      // being edited itself.
+      if (!options.propagation) {
+        // Deferred because renderUpdatedField is reacting to a field model change
+        // event, and we want to make sure that event fully propagates before
+        // making another change to the same model.
+        _.defer(function () {
+          // First set the state to 'candidate', to allow all attached views to
+          // clean up all their "active state"-related changes.
+          fieldModel.set('state', 'candidate');
+
+          // Similarly, the above .set() call's change event must fully propagate
+          // before calling it again.
+          _.defer(function () {
+            // Set the field's state to 'inactive', to enable the updating of its
+            // DOM value.
+            fieldModel.set('state', 'inactive', {reason: 'rerender'});
+
+            renderField();
+          });
+        });
+      }
+      else {
+        renderField();
+      }
+    },
+
+    /**
+     * Propagates the changes to an updated field to all instances of that field.
+     *
+     * @param Drupal.quickedit.FieldModel updatedField
+     *   The FieldModel whose 'html' attribute changed.
+     * @param String html
+     *   The updated 'html' attribute.
+     * @param Object options
+     *   An object with the following keys:
+     *   - Boolean propagation: whether this change to the 'html' attribute
+     *     occurred because of the propagation of changes to another instance of
+     *     this field.
+     *
+     * @see Drupal.quickedit.AppView.renderUpdatedField()
+     */
+    propagateUpdatedField: function (updatedField, html, options) {
+      // Don't propagate field updates that themselves were caused by propagation.
+      if (options.propagation) {
+        return;
+      }
+
+      var htmlForOtherViewModes = updatedField.get('htmlForOtherViewModes');
+      Drupal.quickedit.collections.fields
+        // Find all instances of fields that display the same logical field (same
+        // entity, same field, just a different instance and maybe a different
+        // view mode).
+        .where({logicalFieldID: updatedField.get('logicalFieldID')})
+        .forEach(function (field) {
+          // Ignore the field that was already updated.
+          if (field === updatedField) {
+            return;
+          }
+          // If this other instance of the field has the same view mode, we can
+          // update it easily.
+          else if (field.getViewMode() === updatedField.getViewMode()) {
+            field.set('html', updatedField.get('html'));
+          }
+          // If this other instance of the field has a different view mode, and
+          // that is one of the view modes for which a re-rendered version is
+          // available (and that should be the case unless this field was only
+          // added to the page after editing of the updated field began), then use
+          // that view mode's re-rendered version.
+          else {
+            if (field.getViewMode() in htmlForOtherViewModes) {
+              field.set('html', htmlForOtherViewModes[field.getViewMode()], {propagation: true});
+            }
+          }
+        });
+    },
+
+    /**
+     * If the new in-place editable field is for the entity that's currently
+     * being edited, then transition it to the 'candidate' state.
+     *
+     * This happens when a field was modified, saved and hence rerendered.
+     *
+     * @param Drupal.quickedit.FieldModel fieldModel
+     *   A field that was just added to the collection of fields.
+     */
+    rerenderedFieldToCandidate: function (fieldModel) {
+      var activeEntity = Drupal.quickedit.collections.entities.findWhere({isActive: true});
+
+      // Early-return if there is no active entity.
+      if (!activeEntity) {
+        return;
+      }
+
+      // If the field's entity is the active entity, make it a candidate.
+      if (fieldModel.get('entity') === activeEntity) {
+        this.setupEditor(fieldModel);
+        fieldModel.set('state', 'candidate');
+      }
+    },
+
+    /**
+     * EntityModel Collection change handler, called on change:isActive, enforces
+     * a single active entity.
+     *
+     * @param Drupal.quickedit.EntityModel
+     *   The entityModel instance whose active state has changed.
+     */
+    enforceSingleActiveEntity: function (changedEntityModel) {
+      // When an entity is deactivated, we don't need to enforce anything.
+      if (changedEntityModel.get('isActive') === false) {
+        return;
+      }
+
+      // This entity was activated; deactivate all other entities.
+      changedEntityModel.collection.chain()
+        .filter(function (entityModel) {
+          return entityModel.get('isActive') === true && entityModel !== changedEntityModel;
+        })
+        .each(function (entityModel) {
+          entityModel.set('state', 'deactivating');
+        });
+    }
+
+  });
+
+}(jQuery, _, Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone View that decorates the in-place edited element.
+ */
+
+(function ($, Backbone, Drupal) {
+
+  "use strict";
+
+  Drupal.quickedit.FieldDecorationView = Backbone.View.extend({
+
+    _widthAttributeIsEmpty: null,
+
+    events: {
+      'mouseenter.quickedit': 'onMouseEnter',
+      'mouseleave.quickedit': 'onMouseLeave',
+      'click': 'onClick',
+      'tabIn.quickedit': 'onMouseEnter',
+      'tabOut.quickedit': 'onMouseLeave'
+    },
+
+    /**
+     * {@inheritdoc}
+     *
+     * @param Object options
+     *   An object with the following keys:
+     *   - Drupal.quickedit.EditorView editorView: the editor object view.
+     */
+    initialize: function (options) {
+      this.editorView = options.editorView;
+
+      this.listenTo(this.model, 'change:state', this.stateChange);
+      this.listenTo(this.model, 'change:isChanged change:inTempStore', this.renderChanged);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    remove: function () {
+      // The el property is the field, which should not be removed. Remove the
+      // pointer to it, then call Backbone.View.prototype.remove().
+      this.setElement();
+      Backbone.View.prototype.remove.call(this);
+    },
+
+    /**
+     * Determines the actions to take given a change of state.
+     *
+     * @param Drupal.quickedit.FieldModel model
+     * @param String state
+     *   The state of the associated field. One of Drupal.quickedit.FieldModel.states.
+     */
+    stateChange: function (model, state) {
+      var from = model.previous('state');
+      var to = state;
+      switch (to) {
+        case 'inactive':
+          this.undecorate();
+          break;
+        case 'candidate':
+          this.decorate();
+          if (from !== 'inactive') {
+            this.stopHighlight();
+            if (from !== 'highlighted') {
+              this.model.set('isChanged', false);
+              this.stopEdit();
+            }
+          }
+          this._unpad();
+          break;
+        case 'highlighted':
+          this.startHighlight();
+          break;
+        case 'activating':
+          // NOTE: this state is not used by every editor! It's only used by those
+          // that need to interact with the server.
+          this.prepareEdit();
+          break;
+        case 'active':
+          if (from !== 'activating') {
+            this.prepareEdit();
+          }
+          if (this.editorView.getQuickEditUISettings().padding) {
+            this._pad();
+          }
+          break;
+        case 'changed':
+          this.model.set('isChanged', true);
+          break;
+        case 'saving':
+          break;
+        case 'saved':
+          break;
+        case 'invalid':
+          break;
+      }
+    },
+
+    /**
+     * Adds a class to the edited element that indicates whether the field has
+     * been changed by the user (i.e. locally) or the field has already been
+     * changed and stored before by the user (i.e. remotely, stored in
+     * PrivateTempStore).
+     */
+    renderChanged: function () {
+      this.$el.toggleClass('quickedit-changed', this.model.get('isChanged') || this.model.get('inTempStore'));
+    },
+
+    /**
+     * Starts hover; transitions to 'highlight' state.
+     *
+     * @param jQuery event
+     */
+    onMouseEnter: function (event) {
+      var that = this;
+      that.model.set('state', 'highlighted');
+      event.stopPropagation();
+    },
+
+    /**
+     * Stops hover; transitions to 'candidate' state.
+     *
+     * @param jQuery event
+     */
+    onMouseLeave: function (event) {
+      var that = this;
+      that.model.set('state', 'candidate', {reason: 'mouseleave'});
+      event.stopPropagation();
+    },
+
+    /**
+     * Transition to 'activating' stage.
+     *
+     * @param jQuery event
+     */
+    onClick: function (event) {
+      this.model.set('state', 'activating');
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Adds classes used to indicate an elements editable state.
+     */
+    decorate: function () {
+      this.$el.addClass('quickedit-candidate quickedit-editable');
+    },
+
+    /**
+     * Removes classes used to indicate an elements editable state.
+     */
+    undecorate: function () {
+      this.$el.removeClass('quickedit-candidate quickedit-editable quickedit-highlighted quickedit-editing');
+    },
+
+    /**
+     * Adds that class that indicates that an element is highlighted.
+     */
+    startHighlight: function () {
+      // Animations.
+      var that = this;
+      // Use a timeout to grab the next available animation frame.
+      that.$el.addClass('quickedit-highlighted');
+    },
+
+    /**
+     * Removes the class that indicates that an element is highlighted.
+     */
+    stopHighlight: function () {
+      this.$el.removeClass('quickedit-highlighted');
+    },
+
+    /**
+     * Removes the class that indicates that an element as editable.
+     */
+    prepareEdit: function () {
+      this.$el.addClass('quickedit-editing');
+
+      // Allow the field to be styled differently while editing in a pop-up
+      // in-place editor.
+      if (this.editorView.getQuickEditUISettings().popup) {
+        this.$el.addClass('quickedit-editor-is-popup');
+      }
+    },
+
+    /**
+     * Removes the class that indicates that an element is being edited.
+     *
+     * Reapplies the class that indicates that a candidate editable element is
+     * again available to be edited.
+     */
+    stopEdit: function () {
+      this.$el.removeClass('quickedit-highlighted quickedit-editing');
+
+      // Done editing in a pop-up in-place editor; remove the class.
+      if (this.editorView.getQuickEditUISettings().popup) {
+        this.$el.removeClass('quickedit-editor-is-popup');
+      }
+
+      // Make the other editors show up again.
+      $('.quickedit-candidate').addClass('quickedit-editable');
+    },
+
+    /**
+     * Adds padding around the editable element in order to make it pop visually.
+     */
+    _pad: function () {
+      // Early return if the element has already been padded.
+      if (this.$el.data('quickedit-padded')) {
+        return;
+      }
+      var self = this;
+
+      // Add 5px padding for readability. This means we'll freeze the current
+      // width and *then* add 5px padding, hence ensuring the padding is added "on
+      // the outside".
+      // 1) Freeze the width (if it's not already set); don't use animations.
+      if (this.$el[0].style.width === "") {
+        this._widthAttributeIsEmpty = true;
+        this.$el
+          .addClass('quickedit-animate-disable-width')
+          .css('width', this.$el.width());
+      }
+
+      // 2) Add padding; use animations.
+      var posProp = this._getPositionProperties(this.$el);
+      setTimeout(function () {
+        // Re-enable width animations (padding changes affect width too!).
+        self.$el.removeClass('quickedit-animate-disable-width');
+
+        // Pad the editable.
+        self.$el
+          .css({
+            'position': 'relative',
+            'top': posProp.top - 5 + 'px',
+            'left': posProp.left - 5 + 'px',
+            'padding-top': posProp['padding-top'] + 5 + 'px',
+            'padding-left': posProp['padding-left'] + 5 + 'px',
+            'padding-right': posProp['padding-right'] + 5 + 'px',
+            'padding-bottom': posProp['padding-bottom'] + 5 + 'px',
+            'margin-bottom': posProp['margin-bottom'] - 10 + 'px'
+          })
+          .data('quickedit-padded', true);
+      }, 0);
+    },
+
+    /**
+     * Removes the padding around the element being edited when editing ceases.
+     */
+    _unpad: function () {
+      // Early return if the element has not been padded.
+      if (!this.$el.data('quickedit-padded')) {
+        return;
+      }
+      var self = this;
+
+      // 1) Set the empty width again.
+      if (this._widthAttributeIsEmpty) {
+        this.$el
+          .addClass('quickedit-animate-disable-width')
+          .css('width', '');
+      }
+
+      // 2) Remove padding; use animations (these will run simultaneously with)
+      // the fading out of the toolbar as its gets removed).
+      var posProp = this._getPositionProperties(this.$el);
+      setTimeout(function () {
+        // Re-enable width animations (padding changes affect width too!).
+        self.$el.removeClass('quickedit-animate-disable-width');
+
+        // Unpad the editable.
+        self.$el
+          .css({
+            'position': 'relative',
+            'top': posProp.top + 5 + 'px',
+            'left': posProp.left + 5 + 'px',
+            'padding-top': posProp['padding-top'] - 5 + 'px',
+            'padding-left': posProp['padding-left'] - 5 + 'px',
+            'padding-right': posProp['padding-right'] - 5 + 'px',
+            'padding-bottom': posProp['padding-bottom'] - 5 + 'px',
+            'margin-bottom': posProp['margin-bottom'] + 10 + 'px'
+          });
+      }, 0);
+      // Remove the marker that indicates that this field has padding. This is
+      // done outside the timed out function above so that we don't get numerous
+      // queued functions that will remove padding before the data marker has
+      // been removed.
+      this.$el.removeData('quickedit-padded');
+    },
+
+    /**
+     * Gets the top and left properties of an element.
+     *
+     * Convert extraneous values and information into numbers ready for
+     * subtraction.
+     *
+     * @param DOM $e
+     */
+    _getPositionProperties: function ($e) {
+      var p;
+      var r = {};
+      var props = [
+        'top', 'left', 'bottom', 'right',
+        'padding-top', 'padding-left', 'padding-right', 'padding-bottom',
+        'margin-bottom'
+      ];
+
+      var propCount = props.length;
+      for (var i = 0; i < propCount; i++) {
+        p = props[i];
+        r[p] = parseInt(this._replaceBlankPosition($e.css(p)), 10);
+      }
+      return r;
+    },
+
+    /**
+     * Replaces blank or 'auto' CSS "position: <value>" values with "0px".
+     *
+     * @param String pos
+     *   (optional) The value for a CSS position declaration.
+     */
+    _replaceBlankPosition: function (pos) {
+      if (pos === 'auto' || !pos) {
+        pos = '0px';
+      }
+      return pos;
+    }
+
+  });
+
+})(jQuery, Backbone, Drupal);
+;
+/**
+ * @file
+ * A Backbone view that decorates the in-place editable entity.
+ */
+
+(function (Drupal, $, Backbone) {
+
+  "use strict";
+
+  Drupal.quickedit.EntityDecorationView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     *
+     * Associated with the DOM root node of an editable entity.
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.$el.toggleClass('quickedit-entity-active', this.model.get('isActive'));
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    remove: function () {
+      this.setElement(null);
+      Backbone.View.prototype.remove.call(this);
+    }
+
+  });
+
+}(Drupal, jQuery, Backbone));
+;
+/**
+ * @file
+ * A Backbone View that provides an entity level toolbar.
+ */
+
+(function ($, _, Backbone, Drupal, debounce) {
+
+  "use strict";
+
+  Drupal.quickedit.EntityToolbarView = Backbone.View.extend({
+
+    _fieldToolbarRoot: null,
+
+    events: function () {
+      var map = {
+        'click button.action-save': 'onClickSave',
+        'click button.action-cancel': 'onClickCancel',
+        'mouseenter': 'onMouseenter'
+      };
+      return map;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      var that = this;
+      this.appModel = options.appModel;
+      this.$entity = $(this.model.get('el'));
+
+      // Rerender whenever the entity state changes.
+      this.listenTo(this.model, 'change:isActive change:isDirty change:state', this.render);
+      // Also rerender whenever a different field is highlighted or activated.
+      this.listenTo(this.appModel, 'change:highlightedField change:activeField', this.render);
+      // Rerender when a field of the entity changes state.
+      this.listenTo(this.model.get('fields'), 'change:state', this.fieldStateChange);
+
+      // Reposition the entity toolbar as the viewport and the position within the
+      // viewport changes.
+      $(window).on('resize.quickedit scroll.quickedit', debounce($.proxy(this.windowChangeHandler, this), 150));
+
+      // Adjust the fence placement within which the entity toolbar may be
+      // positioned.
+      $(document).on('drupalViewportOffsetChange.quickedit', function (event, offsets) {
+        if (that.$fence) {
+          that.$fence.css(offsets);
+        }
+      });
+
+      // Set the entity toolbar DOM element as the el for this view.
+      var $toolbar = this.buildToolbarEl();
+      this.setElement($toolbar);
+      this._fieldToolbarRoot = $toolbar.find('.quickedit-toolbar-field').get(0);
+
+      // Initial render.
+      this.render();
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      if (this.model.get('isActive')) {
+        // If the toolbar container doesn't exist, create it.
+        var $body = $('body');
+        if ($body.children('#quickedit-entity-toolbar').length === 0) {
+          $body.append(this.$el);
+        }
+        // The fence will define a area on the screen that the entity toolbar
+        // will be position within.
+        if ($body.children('#quickedit-toolbar-fence').length === 0) {
+          this.$fence = $(Drupal.theme('quickeditEntityToolbarFence'))
+            .css(Drupal.displace())
+            .appendTo($body);
+        }
+        // Adds the entity title to the toolbar.
+        this.label();
+
+        // Show the save and cancel buttons.
+        this.show('ops');
+        // If render is being called and the toolbar is already visible, just
+        // reposition it.
+        this.position();
+      }
+
+      // The save button text and state varies with the state of the entity model.
+      var $button = this.$el.find('.quickedit-button.action-save');
+      var isDirty = this.model.get('isDirty');
+      // Adjust the save button according to the state of the model.
+      switch (this.model.get('state')) {
+        // Quick editing is active, but no field is being edited.
+        case 'opened':
+          // The saving throbber is not managed by AJAX system. The
+          // EntityToolbarView manages this visual element.
+          $button
+            .removeClass('action-saving icon-throbber icon-end')
+            .text(Drupal.t('Save'))
+            .removeAttr('disabled')
+            .attr('aria-hidden', !isDirty);
+          break;
+        // The changes to the fields of the entity are being committed.
+        case 'committing':
+          $button
+            .addClass('action-saving icon-throbber icon-end')
+            .text(Drupal.t('Saving'))
+            .attr('disabled', 'disabled');
+          break;
+        default:
+          $button.attr('aria-hidden', true);
+          break;
+      }
+
+      return this;
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    remove: function () {
+      // Remove additional DOM elements controlled by this View.
+      this.$fence.remove();
+
+      // Stop listening to additional events.
+      $(window).off('resize.quickedit scroll.quickedit');
+      $(document).off('drupalViewportOffsetChange.quickedit');
+
+      Backbone.View.prototype.remove.call(this);
+    },
+
+    /**
+     * Repositions the entity toolbar on window scroll and resize.
+     *
+     * @param jQuery.Event event
+     */
+    windowChangeHandler: function (event) {
+      this.position();
+    },
+
+    /**
+     * Determines the actions to take given a change of state.
+     *
+     * @param Drupal.quickedit.FieldModel model
+     * @param String state
+     *   The state of the associated field. One of Drupal.quickedit.FieldModel.states.
+     */
+    fieldStateChange: function (model, state) {
+      switch (state) {
+        case 'active':
+          this.render();
+          break;
+        case 'invalid':
+          this.render();
+          break;
+      }
+    },
+
+    /**
+     * Uses the jQuery.ui.position() method to position the entity toolbar.
+     *
+     * @param jQuery|DOM element
+     *   (optional) The element against which the entity toolbar is positioned.
+     */
+    position: function (element) {
+      clearTimeout(this.timer);
+
+      var that = this;
+      // Vary the edge of the positioning according to the direction of language
+      // in the document.
+      var edge = (document.documentElement.dir === 'rtl') ? 'right' : 'left';
+      // A time unit to wait until the entity toolbar is repositioned.
+      var delay = 0;
+      // Determines what check in the series of checks below should be evaluated
+      var check = 0;
+      // When positioned against an active field that has padding, we should
+      // ignore that padding when positioning the toolbar, to not unnecessarily
+      // move the toolbar horizontally, which feels annoying.
+      var horizontalPadding = 0;
+      var of;
+      var activeField;
+      var highlightedField;
+      // There are several elements in the page that the entity toolbar might be
+      // positioned against. They are considered below in a priority order.
+      do {
+        switch (check) {
+          case 0:
+            // Position against a specific element.
+            of = element;
+            break;
+          case 1:
+            // Position against a form container.
+            activeField = Drupal.quickedit.app.model.get('activeField');
+            of = activeField && activeField.editorView && activeField.editorView.$formContainer && activeField.editorView.$formContainer.find('.quickedit-form');
+            break;
+          case 2:
+            // Position against an active field.
+            of = activeField && activeField.editorView && activeField.editorView.getEditedElement();
+            if (activeField && activeField.editorView && activeField.editorView.getQuickEditUISettings().padding) {
+              horizontalPadding = 5;
+            }
+            break;
+          case 3:
+            // Position against a highlighted field.
+            highlightedField = Drupal.quickedit.app.model.get('highlightedField');
+            of = highlightedField && highlightedField.editorView && highlightedField.editorView.getEditedElement();
+            delay = 250;
+            break;
+          default:
+            var fieldModels = this.model.get('fields').models;
+            var topMostPosition = 1000000;
+            var topMostField = null;
+            // Position against the topmost field.
+            for (var i = 0; i < fieldModels.length; i++) {
+              var pos = fieldModels[i].get('el').getBoundingClientRect().top;
+              if (pos < topMostPosition) {
+                topMostPosition = pos;
+                topMostField = fieldModels[i];
+              }
+            }
+            of = topMostField.get('el');
+            delay = 50;
+            break;
+        }
+        // Prepare to check the next possible element to position against.
+        check++;
+      } while (!of);
+
+      /**
+       * Refines the positioning algorithm of jquery.ui.position().
+       *
+       * Invoked as the 'using' callback of jquery.ui.position() in
+       * positionToolbar().
+       *
+       * @param Object suggested
+       *   A hash of top and left values for the position that should be set. It
+       *   can be forwarded to .css() or .animate().
+       * @param Object info
+       *   The position and dimensions of both the 'my' element and the 'of'
+       *   elements, as well as calculations to their relative position. This
+       *   object contains the following properties:
+       *     - Object element: A hash that contains information about the HTML
+       *     element that will be positioned. Also known as the 'my' element.
+       *     - Object target: A hash that contains information about the HTML
+       *     element that the 'my' element will be positioned against. Also known
+       *     as the 'of' element.
+       */
+      function refinePosition(view, suggested, info) {
+        // Determine if the pointer should be on the top or bottom.
+        var isBelow = suggested.top > info.target.top;
+        info.element.element.toggleClass('quickedit-toolbar-pointer-top', isBelow);
+        // Don't position the toolbar past the first or last editable field if
+        // the entity is the target.
+        if (view.$entity[0] === info.target.element[0]) {
+          // Get the first or last field according to whether the toolbar is above
+          // or below the entity.
+          var $field = view.$entity.find('.quickedit-editable').eq((isBelow) ? -1 : 0);
+          if ($field.length > 0) {
+            suggested.top = (isBelow) ? ($field.offset().top + $field.outerHeight(true)) : $field.offset().top - info.element.element.outerHeight(true);
+          }
+        }
+        // Don't let the toolbar go outside the fence.
+        var fenceTop = view.$fence.offset().top;
+        var fenceHeight = view.$fence.height();
+        var toolbarHeight = info.element.element.outerHeight(true);
+        if (suggested.top < fenceTop) {
+          suggested.top = fenceTop;
+        }
+        else if ((suggested.top + toolbarHeight) > (fenceTop + fenceHeight)) {
+          suggested.top = fenceTop + fenceHeight - toolbarHeight;
+        }
+        // Position the toolbar.
+        info.element.element.css({
+          left: Math.floor(suggested.left),
+          top: Math.floor(suggested.top)
+        });
+      }
+
+      /**
+       * Calls the jquery.ui.position() method on the $el of this view.
+       */
+      function positionToolbar() {
+        that.$el
+          .position({
+            my: edge + ' bottom',
+            // Move the toolbar 1px towards the start edge of the 'of' element,
+            // plus any horizontal padding that may have been added to the element
+            // that is being added, to prevent unwanted horizontal movement.
+            at: edge + '+' + (1 + horizontalPadding) + ' top',
+            of: of,
+            collision: 'flipfit',
+            using: refinePosition.bind(null, that),
+            within: that.$fence
+          })
+          // Resize the toolbar to match the dimensions of the field, up to a
+          // maximum width that is equal to 90% of the field's width.
+          .css({
+            'max-width': (document.documentElement.clientWidth < 450) ? document.documentElement.clientWidth : 450,
+            // Set a minimum width of 240px for the entity toolbar, or the width
+            // of the client if it is less than 240px, so that the toolbar
+            // never folds up into a squashed and jumbled mess.
+            'min-width': (document.documentElement.clientWidth < 240) ? document.documentElement.clientWidth : 240,
+            'width': '100%'
+          });
+      }
+
+      // Uses the jQuery.ui.position() method. Use a timeout to move the toolbar
+      // only after the user has focused on an editable for 250ms. This prevents
+      // the toolbar from jumping around the screen.
+      this.timer = setTimeout(function () {
+        // Render the position in the next execution cycle, so that animations on
+        // the field have time to process. This is not strictly speaking, a
+        // guarantee that all animations will be finished, but it's a simple way
+        // to get better positioning without too much additional code.
+        _.defer(positionToolbar);
+      }, delay);
+    },
+
+    /**
+     * Set the model state to 'saving' when the save button is clicked.
+     *
+     * @param jQuery event
+     */
+    onClickSave: function (event) {
+      event.stopPropagation();
+      event.preventDefault();
+      // Save the model.
+      this.model.set('state', 'committing');
+    },
+
+    /**
+     * Sets the model state to candidate when the cancel button is clicked.
+     *
+     * @param jQuery event
+     */
+    onClickCancel: function (event) {
+      event.preventDefault();
+      this.model.set('state', 'deactivating');
+    },
+
+    /**
+     * Clears the timeout that will eventually reposition the entity toolbar.
+     *
+     * Without this, it may reposition itself, away from the user's cursor!
+     *
+     * @param jQuery event
+     */
+    onMouseenter: function (event) {
+      clearTimeout(this.timer);
+    },
+
+    /**
+     * Builds the entity toolbar HTML; attaches to DOM; sets starting position.
+     */
+    buildToolbarEl: function () {
+      var $toolbar = $(Drupal.theme('quickeditEntityToolbar', {
+        id: 'quickedit-entity-toolbar'
+      }));
+
+      $toolbar
+        .find('.quickedit-toolbar-entity')
+        // Append the "ops" toolgroup into the toolbar.
+        .prepend(Drupal.theme('quickeditToolgroup', {
+          classes: ['ops'],
+          buttons: [
+            {
+              label: Drupal.t('Save'),
+              type: 'submit',
+              classes: 'action-save quickedit-button icon',
+              attributes: {
+                'aria-hidden': true
+              }
+            },
+            {
+              label: Drupal.t('Close'),
+              classes: 'action-cancel quickedit-button icon icon-close icon-only'
+            }
+          ]
+        }));
+
+      // Give the toolbar a sensible starting position so that it doesn't animate
+      // on to the screen from a far off corner.
+      $toolbar
+        .css({
+          left: this.$entity.offset().left,
+          top: this.$entity.offset().top
+        });
+
+      return $toolbar;
+    },
+
+    /**
+     * Returns the DOM element that fields will attach their toolbars to.
+     *
+     * @return jQuery
+     *   The DOM element that fields will attach their toolbars to.
+     */
+    getToolbarRoot: function () {
+      return this._fieldToolbarRoot;
+    },
+
+    /**
+     * Generates a state-dependent label for the entity toolbar.
+     */
+    label: function () {
+      // The entity label.
+      var label = '';
+      var entityLabel = this.model.get('label');
+
+      // Label of an active field, if it exists.
+      var activeField = Drupal.quickedit.app.model.get('activeField');
+      var activeFieldLabel = activeField && activeField.get('metadata').label;
+      // Label of a highlighted field, if it exists.
+      var highlightedField = Drupal.quickedit.app.model.get('highlightedField');
+      var highlightedFieldLabel = highlightedField && highlightedField.get('metadata').label;
+      // The label is constructed in a priority order.
+      if (activeFieldLabel) {
+        label = Drupal.theme('quickeditEntityToolbarLabel', {
+          entityLabel: entityLabel,
+          fieldLabel: activeFieldLabel
+        });
+      }
+      else if (highlightedFieldLabel) {
+        label = Drupal.theme('quickeditEntityToolbarLabel', {
+          entityLabel: entityLabel,
+          fieldLabel: highlightedFieldLabel
+        });
+      }
+      else {
+        label = entityLabel;
+      }
+
+      this.$el
+        .find('.quickedit-toolbar-label')
+        .html(label);
+    },
+
+    /**
+     * Adds classes to a toolgroup.
+     *
+     * @param String toolgroup
+     *   A toolgroup name.
+     * @param String classes
+     *   A string of space-delimited class names that will be applied to the
+     *   wrapping element of the toolbar group.
+     */
+    addClass: function (toolgroup, classes) {
+      this._find(toolgroup).addClass(classes);
+    },
+
+    /**
+     * Removes classes from a toolgroup.
+     *
+     * @param String toolgroup
+     *   A toolgroup name.
+     * @param String classes
+     *   A string of space-delimited class names that will be removed from the
+     *   wrapping element of the toolbar group.
+     */
+    removeClass: function (toolgroup, classes) {
+      this._find(toolgroup).removeClass(classes);
+    },
+
+    /**
+     * Finds a toolgroup.
+     *
+     * @param String toolgroup
+     *   A toolgroup name.
+     * @return jQuery
+     *   The toolgroup DOM element.
+     */
+    _find: function (toolgroup) {
+      return this.$el.find('.quickedit-toolbar .quickedit-toolgroup.' + toolgroup);
+    },
+
+    /**
+     * Shows a toolgroup.
+     *
+     * @param String toolgroup
+     *   A toolgroup name.
+     */
+    show: function (toolgroup) {
+      this.$el.removeClass('quickedit-animate-invisible');
+    }
+
+  });
+
+})(jQuery, _, Backbone, Drupal, Drupal.debounce);
+;
+/**
+ * @file
+ * A Backbone View that provides a dynamic contextual link.
+ */
+
+(function ($, Backbone, Drupal) {
+
+  "use strict";
+
+  Drupal.quickedit.ContextualLinkView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      function touchEndToClick(event) {
+        event.preventDefault();
+        event.target.click();
+      }
+
+      return {
+        'click a': function (event) {
+          event.preventDefault();
+          this.model.set('state', 'launching');
+        },
+        'touchEnd a': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     *
+     * @param Object options
+     *   An object with the following keys:
+     *   - Drupal.quickedit.EntityModel model: the associated entity's model
+     *   - Drupal.quickedit.AppModel appModel: the application state model
+     *   - strings: the strings for the "Quick edit" link
+     */
+    initialize: function (options) {
+      // Insert the text of the quick edit toggle.
+      this.$el.find('a').text(options.strings.quickEdit);
+      // Initial render.
+      this.render();
+      // Re-render whenever this entity's isActive attribute changes.
+      this.listenTo(this.model, 'change:isActive', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function (entityModel, isActive) {
+      this.$el.find('a').attr('aria-pressed', isActive);
+
+      // Hides the contextual links if an in-place editor is active.
+      this.$el.closest('.contextual').toggle(!isActive);
+
+      return this;
+    }
+
+  });
+
+})(jQuery, Backbone, Drupal);
+;
+/**
+ * @file
+ * A Backbone View that provides an interactive toolbar (1 per in-place editor).
+ */
+
+(function ($, _, Backbone, Drupal) {
+
+  "use strict";
+
+  Drupal.quickedit.FieldToolbarView = Backbone.View.extend({
+
+    // The edited element, as indicated by EditorView.getEditedElement().
+    $editedElement: null,
+
+    // A reference to the in-place editor.
+    editorView: null,
+
+    _id: null,
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.$editedElement = options.$editedElement;
+      this.editorView = options.editorView;
+      this.$root = this.$el;
+
+      // Generate a DOM-compatible ID for the form container DOM element.
+      this._id = 'quickedit-toolbar-for-' + this.model.id.replace(/[\/\[\]]/g, '_');
+
+      this.listenTo(this.model, 'change:state', this.stateChange);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render toolbar and set it as the view's element.
+      this.setElement($(Drupal.theme('quickeditFieldToolbar', {
+        id: this._id
+      })));
+
+      // Attach to the field toolbar $root element in the entity toolbar.
+      this.$el.prependTo(this.$root);
+
+      return this;
+    },
+
+    /**
+     * Determines the actions to take given a change of state.
+     *
+     * @param Drupal.quickedit.FieldModel model
+     * @param String state
+     *   The state of the associated field. One of Drupal.quickedit.FieldModel.states.
+     */
+    stateChange: function (model, state) {
+      var from = model.previous('state');
+      var to = state;
+      switch (to) {
+        case 'inactive':
+          break;
+        case 'candidate':
+          // Remove the view's existing element if we went to the 'activating'
+          // state or later, because it will be recreated. Not doing this would
+          // result in memory leaks.
+          if (from !== 'inactive' && from !== 'highlighted') {
+            this.$el.remove();
+            this.setElement();
+          }
+          break;
+        case 'highlighted':
+          break;
+        case 'activating':
+          this.render();
+
+          if (this.editorView.getQuickEditUISettings().fullWidthToolbar) {
+            this.$el.addClass('quickedit-toolbar-fullwidth');
+          }
+
+          if (this.editorView.getQuickEditUISettings().unifiedToolbar) {
+            this.insertWYSIWYGToolGroups();
+          }
+          break;
+        case 'active':
+          break;
+        case 'changed':
+          break;
+        case 'saving':
+          break;
+        case 'saved':
+          break;
+        case 'invalid':
+          break;
+      }
+    },
+
+    /**
+     * Insert WYSIWYG markup into the associated toolbar.
+     */
+    insertWYSIWYGToolGroups: function () {
+      this.$el
+        .append(Drupal.theme('quickeditToolgroup', {
+          id: this.getFloatedWysiwygToolgroupId(),
+          classes: ['wysiwyg-floated', 'quickedit-animate-slow', 'quickedit-animate-invisible', 'quickedit-animate-delay-veryfast'],
+          buttons: []
+        }))
+        .append(Drupal.theme('quickeditToolgroup', {
+          id: this.getMainWysiwygToolgroupId(),
+          classes: ['wysiwyg-main', 'quickedit-animate-slow', 'quickedit-animate-invisible', 'quickedit-animate-delay-veryfast'],
+          buttons: []
+        }));
+
+      // Animate the toolgroups into visibility.
+      this.show('wysiwyg-floated');
+      this.show('wysiwyg-main');
+    },
+
+    /**
+     * Retrieves the ID for this toolbar's container.
+     *
+     * Only used to make sane hovering behavior possible.
+     *
+     * @return String
+     *   A string that can be used as the ID for this toolbar's container.
+     */
+    getId: function () {
+      return 'quickedit-toolbar-for-' + this._id;
+    },
+
+    /**
+     * Retrieves the ID for this toolbar's floating WYSIWYG toolgroup.
+     *
+     * Used to provide an abstraction for any WYSIWYG editor to plug in.
+     *
+     * @return String
+     *   A string that can be used as the ID.
+     */
+    getFloatedWysiwygToolgroupId: function () {
+      return 'quickedit-wysiwyg-floated-toolgroup-for-' + this._id;
+    },
+
+    /**
+     * Retrieves the ID for this toolbar's main WYSIWYG toolgroup.
+     *
+     * Used to provide an abstraction for any WYSIWYG editor to plug in.
+     *
+     * @return String
+     *   A string that can be used as the ID.
+     */
+    getMainWysiwygToolgroupId: function () {
+      return 'quickedit-wysiwyg-main-toolgroup-for-' + this._id;
+    },
+
+    /**
+     * Finds a toolgroup.
+     *
+     * @param String toolgroup
+     *   A toolgroup name.
+     * @return jQuery
+     */
+    _find: function (toolgroup) {
+      return this.$el.find('.quickedit-toolgroup.' + toolgroup);
+    },
+
+    /**
+     * Shows a toolgroup.
+     *
+     * @param String toolgroup
+     *   A toolgroup name.
+     */
+    show: function (toolgroup) {
+      var $group = this._find(toolgroup);
+      // Attach a transitionEnd event handler to the toolbar group so that update
+      // events can be triggered after the animations have ended.
+      $group.on(Drupal.quickedit.util.constants.transitionEnd, function (event) {
+        $group.off(Drupal.quickedit.util.constants.transitionEnd);
+      });
+      // The call to remove the class and start the animation must be started in
+      // the next animation frame or the event handler attached above won't be
+      // triggered.
+      window.setTimeout(function () {
+        $group.removeClass('quickedit-animate-invisible');
+      }, 0);
+    }
+
+  });
+
+})(jQuery, _, Backbone, Drupal);
+;
+/**
+ * @file
+ * An abstract Backbone View that controls an in-place editor.
+ */
+
+(function ($, Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * A base implementation that outlines the structure for in-place editors.
+   *
+   * Specific in-place editor implementations should subclass (extend) this View
+   * and override whichever method they deem necessary to override.
+   *
+   * Look at Drupal.quickedit.editors.form and
+   * Drupal.quickedit.editors.plain_text for examples.
+   *
+   * @see Drupal.quickedit.EditorModel
+   */
+  Drupal.quickedit.EditorView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     *
+     * Typically you would want to override this method to set the originalValue
+     * attribute in the FieldModel to such a value that your in-place editor can
+     * revert to the original value when necessary.
+     *
+     * If you override this method, you should call this method (the parent
+     * class' initialize()) first, like this:
+     *   Drupal.quickedit.EditorView.prototype.initialize.call(this, options);
+     *
+     * For an example, @see Drupal.quickedit.editors.plain_text.
+     *
+     * @param Object options
+     *   An object with the following keys:
+     *   - Drupal.quickedit.EditorModel model: the in-place editor state model
+     *   - Drupal.quickedit.FieldModel fieldModel: the field model
+     */
+    initialize: function (options) {
+      this.fieldModel = options.fieldModel;
+      this.listenTo(this.fieldModel, 'change:state', this.stateChange);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    remove: function () {
+      // The el property is the field, which should not be removed. Remove the
+      // pointer to it, then call Backbone.View.prototype.remove().
+      this.setElement();
+      Backbone.View.prototype.remove.call(this);
+    },
+
+    /**
+     * Returns the edited element.
+     *
+     * For some single cardinality fields, it may be necessary or useful to
+     * not in-place edit (and hence decorate) the DOM element with the
+     * data-quickedit-field-id attribute (which is the field's wrapper), but a
+     * specific element within the field's wrapper.
+     * e.g. using a WYSIWYG editor on a body field should happen on the DOM
+     * element containing the text itself, not on the field wrapper.
+     *
+     * For example, @see Drupal.quickedit.editors.plain_text.
+     *
+     * @return jQuery
+     *   A jQuery-wrapped DOM element.
+     */
+    getEditedElement: function () {
+      return this.$el;
+    },
+
+    /**
+     * Returns 3 Quick Edit UI settings that depend on the in-place editor:
+     *  - Boolean padding: indicates whether padding should be applied to the
+     *    edited element, to guarantee legibility of text.
+     *  - Boolean unifiedToolbar: provides the in-place editor with the ability
+     *    to insert its own toolbar UI into Quick Edit's tightly integrated
+     *    toolbar.
+     *  - Boolean fullWidthToolbar: indicates whether Quick Edit's tightly
+     *    integrated toolbar should consume the full width of the element,
+     *    rather than being just long enough to accommodate a label.
+     */
+    getQuickEditUISettings: function () {
+      return {padding: false, unifiedToolbar: false, fullWidthToolbar: false, popup: false};
+    },
+
+    /**
+     * Determines the actions to take given a change of state.
+     *
+     * @param Drupal.quickedit.FieldModel fieldModel
+     * @param String state
+     *   The state of the associated field. One of Drupal.quickedit.FieldModel.states.
+     */
+    stateChange: function (fieldModel, state) {
+      var from = fieldModel.previous('state');
+      var to = state;
+      switch (to) {
+        case 'inactive':
+          // An in-place editor view will not yet exist in this state, hence
+          // this will never be reached. Listed for sake of completeness.
+          break;
+        case 'candidate':
+          // Nothing to do for the typical in-place editor: it should not be
+          // visible yet.
+
+          // Except when we come from the 'invalid' state, then we clean up.
+          if (from === 'invalid') {
+            this.removeValidationErrors();
+          }
+          break;
+        case 'highlighted':
+          // Nothing to do for the typical in-place editor: it should not be
+          // visible yet.
+          break;
+        case 'activating':
+          // The user has indicated he wants to do in-place editing: if
+          // something needs to be loaded (CSS/JavaScript/server data/…), then
+          // do so at this stage, and once the in-place editor is ready,
+          // set the 'active' state.
+          // A "loading" indicator will be shown in the UI for as long as the
+          // field remains in this state.
+          var loadDependencies = function (callback) {
+            // Do the loading here.
+            callback();
+          };
+          loadDependencies(function () {
+            fieldModel.set('state', 'active');
+          });
+          break;
+        case 'active':
+          // The user can now actually use the in-place editor.
+          break;
+        case 'changed':
+          // Nothing to do for the typical in-place editor. The UI will show an
+          // indicator that the field has changed.
+          break;
+        case 'saving':
+          // When the user has indicated he wants to save his changes to this
+          // field, this state will be entered.
+          // If the previous saving attempt resulted in validation errors, the
+          // previous state will be 'invalid'. Clean up those validation errors
+          // while the user is saving.
+          if (from === 'invalid') {
+            this.removeValidationErrors();
+          }
+          this.save();
+          break;
+        case 'saved':
+          // Nothing to do for the typical in-place editor. Immediately after
+          // being saved, a field will go to the 'candidate' state, where it
+          // should no longer be visible (after all, the field will then again
+          // just be a *candidate* to be in-place edited).
+          break;
+        case 'invalid':
+          // The modified field value was attempted to be saved, but there were
+          // validation errors.
+          this.showValidationErrors();
+          break;
+      }
+    },
+
+    /**
+     * Reverts the modified value to the original, before editing started.
+     */
+    revert: function () {
+      // A no-op by default; each editor should implement reverting itself.
+
+      // Note that if the in-place editor does not cause the FieldModel's
+      // element to be modified, then nothing needs to happen.
+    },
+
+    /**
+     * Saves the modified value in the in-place editor for this field.
+     */
+    save: function () {
+      var fieldModel = this.fieldModel;
+      var editorModel = this.model;
+      var backstageId = 'quickedit_backstage-' + this.fieldModel.id.replace(/[\/\[\]\_\s]/g, '-');
+
+      function fillAndSubmitForm(value) {
+        var $form = $('#' + backstageId).find('form');
+        // Fill in the value in any <input> that isn't hidden or a submit
+        // button.
+        $form.find(':input[type!="hidden"][type!="submit"]:not(select)')
+          // Don't mess with the node summary.
+          .not('[name$="\\[summary\\]"]').val(value);
+        // Submit the form.
+        $form.find('.quickedit-form-submit').trigger('click.quickedit');
+      }
+
+      var formOptions = {
+        fieldID: this.fieldModel.get('fieldID'),
+        $el: this.$el,
+        nocssjs: true,
+        other_view_modes: fieldModel.findOtherViewModes(),
+        // Reset an existing entry for this entity in the PrivateTempStore (if
+        // any) when saving the field. Logically speaking, this should happen in
+        // a separate request because this is an entity-level operation, not a
+        // field-level operation. But that would require an additional request,
+        // that might not even be necessary: it is only when a user saves a
+        // first changed field for an entity that this needs to happen:
+        // precisely now!
+        reset: !this.fieldModel.get('entity').get('inTempStore')
+      };
+
+      var self = this;
+      Drupal.quickedit.util.form.load(formOptions, function (form, ajax) {
+        // Create a backstage area for storing forms that are hidden from view
+        // (hence "backstage" — since the editing doesn't happen in the form, it
+        // happens "directly" in the content, the form is only used for saving).
+        var $backstage = $(Drupal.theme('quickeditBackstage', {id: backstageId})).appendTo('body');
+        // Hidden forms are stuffed into the backstage container for this field.
+        var $form = $(form).appendTo($backstage);
+        // Disable the browser's HTML5 validation; we only care about server-
+        // side validation. (Not disabling this will actually cause problems
+        // because browsers don't like to set HTML5 validation errors on hidden
+        // forms.)
+        $form.prop('novalidate', true);
+        var $submit = $form.find('.quickedit-form-submit');
+        self.formSaveAjax = Drupal.quickedit.util.form.ajaxifySaving(formOptions, $submit);
+
+        function removeHiddenForm() {
+          Drupal.quickedit.util.form.unajaxifySaving(self.formSaveAjax);
+          delete self.formSaveAjax;
+          $backstage.remove();
+        }
+
+        // Successfully saved.
+        self.formSaveAjax.commands.quickeditFieldFormSaved = function (ajax, response, status) {
+          removeHiddenForm();
+          // First, transition the state to 'saved'.
+          fieldModel.set('state', 'saved');
+          // Second, set the 'htmlForOtherViewModes' attribute, so that when this
+          // field is rerendered, the change can be propagated to other instances of
+          // this field, which may be displayed in different view modes.
+          fieldModel.set('htmlForOtherViewModes', response.other_view_modes);
+          // Finally, set the 'html' attribute on the field model. This will cause
+          // the field to be rerendered.
+          fieldModel.set('html', response.data);
+        };
+
+        // Unsuccessfully saved; validation errors.
+        self.formSaveAjax.commands.quickeditFieldFormValidationErrors = function (ajax, response, status) {
+          removeHiddenForm();
+          editorModel.set('validationErrors', response.data);
+          fieldModel.set('state', 'invalid');
+        };
+
+        // The quickeditFieldForm AJAX command is only called upon loading the
+        // form for the first time, and when there are validation errors in the
+        // form; Form API then marks which form items have errors. This is
+        // useful for the form-based in-place editor, but pointless for any
+        // other: the form itself won't be visible at all anyway! So, we just
+        // ignore it.
+        self.formSaveAjax.commands.quickeditFieldForm = function () {};
+
+        fillAndSubmitForm(editorModel.get('currentValue'));
+      });
+    },
+
+    /**
+     * Shows validation error messages.
+     *
+     * Should be called when the state is changed to 'invalid'.
+     */
+    showValidationErrors: function () {
+      var $errors = $('<div class="quickedit-validation-errors"></div>')
+        .append(this.model.get('validationErrors'));
+      this.getEditedElement()
+        .addClass('quickedit-validation-error')
+        .after($errors);
+    },
+
+    /**
+     * Cleans up validation error messages.
+     *
+     * Should be called when the state is changed to 'candidate' or 'saving'. In
+     * the case of the latter: the user has modified the value in the in-place
+     * editor again to attempt to save again. In the case of the latter: the
+     * invalid value was discarded.
+     */
+    removeValidationErrors: function () {
+      this.getEditedElement()
+        .removeClass('quickedit-validation-error')
+        .next('.quickedit-validation-errors')
+        .remove();
+    }
+
+  });
+
+}(jQuery, Backbone, Drupal));
+;
+/**
+ * @file
+ * Provides overridable theme functions for all of Quick Edit's client-side HTML.
+ */
+
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Theme function for a "backstage" for the Quick Edit module.
+   *
+   * @param Object settings
+   *   An object with the following keys:
+   *   - String id: the id to apply to the backstage.
+   * @return String
+   *   The corresponding HTML.
+   */
+  Drupal.theme.quickeditBackstage = function (settings) {
+    var html = '';
+    html += '<div id="' + settings.id + '" />';
+    return html;
+  };
+
+  /**
+   * Theme function for a toolbar container of the Quick Edit module.
+   *
+   * @param Object settings
+   *   An object with the following keys:
+   *   - String id: the id to apply to the toolbar container.
+   * @return String
+   *   The corresponding HTML.
+   */
+  Drupal.theme.quickeditEntityToolbar = function (settings) {
+    var html = '';
+    html += '<div id="' + settings.id + '" class="quickedit quickedit-toolbar-container clearfix">';
+    html += '<i class="quickedit-toolbar-pointer"></i>';
+    html += '<div class="quickedit-toolbar-content">';
+    html += '<div class="quickedit-toolbar quickedit-toolbar-entity clearfix icon icon-pencil">';
+    html += '<div class="quickedit-toolbar-label" />';
+    html += '</div>';
+    html += '<div class="quickedit-toolbar quickedit-toolbar-field clearfix" />';
+    html += '</div><div class="quickedit-toolbar-lining"></div></div>';
+    return html;
+  };
+
+  /**
+   * Theme function for a toolbar container of the Quick Edit module.
+   *
+   * @param Object settings
+   *   An object with the following keys:
+   *   - String entityLabel: The title of the active entity.
+   *   - String fieldLabel: The label of the highlighted or active field.
+   * @return String
+   *   The corresponding HTML.
+   */
+  Drupal.theme.quickeditEntityToolbarLabel = function (settings) {
+    return '<span class="field">' + settings.fieldLabel + '</span>' + settings.entityLabel;
+  };
+
+  /**
+   * Element that defines a containing box of the placement of the entity toolbar.
+   *
+   * @return String
+   *   The corresponding HTML.
+   */
+  Drupal.theme.quickeditEntityToolbarFence = function () {
+    return '<div id="quickedit-toolbar-fence" />';
+  };
+
+  /**
+   * Theme function for a toolbar container of the Quick Edit module.
+   *
+   * @param settings
+   *   An object with the following keys:
+   *   - id: the id to apply to the toolbar container.
+   * @return
+   *   The corresponding HTML.
+   */
+  Drupal.theme.quickeditFieldToolbar = function (settings) {
+    return '<div id="' + settings.id + '" />';
+  };
+
+  /**
+   * Theme function for a toolbar toolgroup of the Quick Edit module.
+   *
+   * @param Object settings
+   *   An object with the following keys:
+   *   - String id: (optional) the id of the toolgroup
+   *   - String classes: the class of the toolgroup.
+   *   - Array buttons: @see Drupal.theme.quickeditButtons().
+   * @return String
+   *   The corresponding HTML.
+   */
+  Drupal.theme.quickeditToolgroup = function (settings) {
+    // Classes.
+    var classes = (settings.classes || []);
+    classes.unshift('quickedit-toolgroup');
+    var html = '';
+    html += '<div class="' + classes.join(' ') + '"';
+    if (settings.id) {
+      html += ' id="' + settings.id + '"';
+    }
+    html += '>';
+    html += Drupal.theme('quickeditButtons', {buttons: settings.buttons});
+    html += '</div>';
+    return html;
+  };
+
+  /**
+   * Theme function for buttons of the Quick Edit module.
+   *
+   * Can be used for the buttons both in the toolbar toolgroups and in the modal.
+   *
+   * @param Object settings
+   *   An object with the following keys:
+   *   - buttons: an array of objects with the following keys:
+   *     - String type: the type of the button (defaults to 'button')
+   *     - Array classes: the classes of the button.
+   *     - String label: the label of the button.
+   * @return String
+   *   The corresponding HTML.
+   */
+  Drupal.theme.quickeditButtons = function (settings) {
+    var html = '';
+    for (var i = 0; i < settings.buttons.length; i++) {
+      var button = settings.buttons[i];
+      if (!button.hasOwnProperty('type')) {
+        button.type = 'button';
+      }
+      // Attributes.
+      var attributes = [];
+      var attrMap = settings.buttons[i].attributes || {};
+      for (var attr in attrMap) {
+        if (attrMap.hasOwnProperty(attr)) {
+          attributes.push(attr + ((attrMap[attr]) ? '="' + attrMap[attr] + '"' : ''));
+        }
+      }
+      html += '<button type="' + button.type + '" class="' + button.classes + '"' + ' ' + attributes.join(' ') + '>';
+      html += button.label;
+      html += '</button>';
+    }
+    return html;
+  };
+
+  /**
+   * Theme function for a form container of the Quick Edit module.
+   *
+   * @param Object settings
+   *   An object with the following keys:
+   *   - String id: the id to apply to the toolbar container.
+   *   - String loadingMsg: The message to show while loading.
+   * @return String
+   *   The corresponding HTML.
+   */
+  Drupal.theme.quickeditFormContainer = function (settings) {
+    var html = '';
+    html += '<div id="' + settings.id + '" class="quickedit-form-container">';
+    html += '  <div class="quickedit-form">';
+    html += '    <div class="placeholder">';
+    html += settings.loadingMsg;
+    html += '    </div>';
+    html += '  </div>';
+    html += '</div>';
+    return html;
+  };
+
+})(jQuery, Drupal);
+;
+/**
+ * @file
+ * Attaches behaviors for Drupal's active link marking.
+ */
+
+(function (Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Append is-active class.
+   *
+   * The link is only active if its path corresponds to the current path, the
+   * language of the linked path is equal to the current language, and if the
+   * query parameters of the link equal those of the current request, since the
+   * same request with different query parameters may yield a different page
+   * (e.g. pagers, exposed View filters).
+   *
+   * Does not discriminate based on element type, so allows you to set the
+   * is-active class on any element: a, li…
+   */
+  Drupal.behaviors.activeLinks = {
+    attach: function (context) {
+      // Start by finding all potentially active links.
+      var path = drupalSettings.path;
+      var queryString = JSON.stringify(path.currentQuery);
+      var querySelector = path.currentQuery ? "[data-drupal-link-query='" + queryString + "']" : ':not([data-drupal-link-query])';
+      var originalSelectors = ['[data-drupal-link-system-path="' + path.currentPath + '"]'];
+      var selectors;
+
+      // If this is the front page, we have to check for the <front> path as well.
+      if (path.isFront) {
+        originalSelectors.push('[data-drupal-link-system-path="<front>"]');
+      }
+
+      // Add language filtering.
+      selectors = [].concat(
+        // Links without any hreflang attributes (most of them).
+        originalSelectors.map(function (selector) { return selector + ':not([hreflang])'; }),
+        // Links with hreflang equals to the current language.
+        originalSelectors.map(function (selector) { return selector + '[hreflang="' + path.currentLanguage + '"]'; })
+      );
+
+      // Add query string selector for pagers, exposed filters.
+      selectors = selectors.map(function (current) { return current + querySelector; });
+
+      // Query the DOM.
+      var activeLinks = context.querySelectorAll(selectors.join(','));
+      var il = activeLinks.length;
+      for (var i = 0; i < il; i++) {
+        activeLinks[i].classList.add('is-active');
+      }
+    },
+    detach: function (context, settings, trigger) {
+      if (trigger === 'unload') {
+        var activeLinks = context.querySelectorAll('[data-drupal-link-system-path].is-active');
+        var il = activeLinks.length;
+        for (var i = 0; i < il; i++) {
+          activeLinks[i].classList.remove('is-active');
+        }
+      }
+    }
+  };
+
+})(Drupal, drupalSettings);
+;
+/**
+ * Adds an HTML element and method to trigger audio UAs to read system messages.
+ *
+ * Use Drupal.announce() to indicate to screen reader users that an element on
+ * the page has changed state. For instance, if clicking a link loads 10 more
+ * items into a list, one might announce the change like this.
+ * $('#search-list')
+ *   .on('itemInsert', function (event, data) {
+ *     // Insert the new items.
+ *     $(data.container.el).append(data.items.el);
+ *     // Announce the change to the page contents.
+ *     Drupal.announce(Drupal.t('@count items added to @container',
+ *       {'@count': data.items.length, '@container': data.container.title}
+ *     ));
+ *   });
+ */
+(function (Drupal, debounce) {
+
+  "use strict";
+
+  var liveElement;
+  var announcements = [];
+
+  /**
+   * Builds a div element with the aria-live attribute and attaches it
+   * to the DOM.
+   */
+  Drupal.behaviors.drupalAnnounce = {
+    attach: function (context) {
+      // Create only one aria-live element.
+      if (!liveElement) {
+        liveElement = document.createElement('div');
+        liveElement.id = 'drupal-live-announce';
+        liveElement.className = 'visually-hidden';
+        liveElement.setAttribute('aria-live', 'polite');
+        liveElement.setAttribute('aria-busy', 'false');
+        document.body.appendChild(liveElement);
+      }
+    }
+  };
+
+  /**
+   * Concatenates announcements to a single string; appends to the live region.
+   */
+  function announce() {
+    var text = [];
+    var priority = 'polite';
+    var announcement;
+
+    // Create an array of announcement strings to be joined and appended to the
+    // aria live region.
+    var il = announcements.length;
+    for (var i = 0; i < il; i++) {
+      announcement = announcements.pop();
+      text.unshift(announcement.text);
+      // If any of the announcements has a priority of assertive then the group
+      // of joined announcements will have this priority.
+      if (announcement.priority === 'assertive') {
+        priority = 'assertive';
+      }
+    }
+
+    if (text.length) {
+      // Clear the liveElement so that repeated strings will be read.
+      liveElement.innerHTML = '';
+      // Set the busy state to true until the node changes are complete.
+      liveElement.setAttribute('aria-busy', 'true');
+      // Set the priority to assertive, or default to polite.
+      liveElement.setAttribute('aria-live', priority);
+      // Print the text to the live region. Text should be run through
+      // Drupal.t() before being passed to Drupal.announce().
+      liveElement.innerHTML = text.join('\n');
+      // The live text area is updated. Allow the AT to announce the text.
+      liveElement.setAttribute('aria-busy', 'false');
+    }
+  }
+
+  /**
+   * Triggers audio UAs to read the supplied text.
+   *
+   * The aria-live region will only read the text that currently populates its
+   * text node. Replacing text quickly in rapid calls to announce results in
+   * only the text from the most recent call to Drupal.announce() being read.
+   * By wrapping the call to announce in a debounce function, we allow for
+   * time for multiple calls to Drupal.announce() to queue up their messages.
+   * These messages are then joined and append to the aria-live region as one
+   * text node.
+   *
+   * @param String text
+   *   A string to be read by the UA.
+   * @param String priority
+   *   A string to indicate the priority of the message. Can be either
+   *   'polite' or 'assertive'. Polite is the default.
+   *
+   * @see http://www.w3.org/WAI/PF/aria-practices/#liveprops
+   */
+  Drupal.announce = function (text, priority) {
+    // Save the text and priority into a closure variable. Multiple simultaneous
+    // announcements will be concatenated and read in sequence.
+    announcements.push({
+      text: text,
+      priority: priority
+    });
+    // Immediately invoke the function that debounce returns. 200 ms is right at
+    // the cusp where humans notice a pause, so we will wait
+    // at most this much time before the set of queued announcements is read.
+    return (debounce(announce, 200)());
+  };
+}(Drupal, Drupal.debounce));
+;
+window.matchMedia||(window.matchMedia=function(){"use strict";var e=window.styleMedia||window.media;if(!e){var t=document.createElement("style"),i=document.getElementsByTagName("script")[0],n=null;t.type="text/css";t.id="matchmediajs-test";i.parentNode.insertBefore(t,i);n="getComputedStyle"in window&&window.getComputedStyle(t,null)||t.currentStyle;e={matchMedium:function(e){var i="@media "+e+"{ #matchmediajs-test { width: 1px; } }";if(t.styleSheet){t.styleSheet.cssText=i}else{t.textContent=i}return n.width==="1px"}}}return function(t){return{matches:e.matchMedium(t||"all"),media:t||"all"}}}());
+;
+(function(){if(window.matchMedia&&window.matchMedia("all").addListener){return false}var e=window.matchMedia,i=e("only all").matches,n=false,t=0,a=[],r=function(i){clearTimeout(t);t=setTimeout(function(){for(var i=0,n=a.length;i<n;i++){var t=a[i].mql,r=a[i].listeners||[],o=e(t.media).matches;if(o!==t.matches){t.matches=o;for(var s=0,l=r.length;s<l;s++){r[s].call(window,t)}}}},30)};window.matchMedia=function(t){var o=e(t),s=[],l=0;o.addListener=function(e){if(!i){return}if(!n){n=true;window.addEventListener("resize",r,true)}if(l===0){l=a.push({mql:o,listeners:s})}s.push(e)};o.removeListener=function(e){for(var i=0,n=s.length;i<n;i++){if(s[i]===e){s.splice(i,1)}}};return o}})();
+;
+/**
+ * Builds a nested accordion widget.
+ *
+ * Invoke on an HTML list element with the jQuery plugin pattern.
+ * - For example, $('.menu').drupalToolbarMenu();
+ */
+
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Store the open menu tray.
+   */
+  var activeItem = Drupal.url(drupalSettings.path.currentPath);
+
+  $.fn.drupalToolbarMenu = function () {
+
+    var ui = {
+      'handleOpen': Drupal.t('Extend'),
+      'handleClose': Drupal.t('Collapse')
+    };
+
+    /**
+     * Handle clicks from the disclosure button on an item with sub-items.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function toggleClickHandler(event) {
+      var $toggle = $(event.target);
+      var $item = $toggle.closest('li');
+      // Toggle the list item.
+      toggleList($item);
+      // Close open sibling menus.
+      var $openItems = $item.siblings().filter('.open');
+      toggleList($openItems, false);
+    }
+
+    /**
+     * Handle clicks from a menu item link.
+     *
+     * @param {Object} event
+     *   A jQuery Event object.
+     */
+    function linkClickHandler(event) {
+      // If the toolbar is positioned fixed (and therefore hiding content
+      // underneath), then users expect clicks in the administration menu tray
+      // to take them to that destination but for the menu tray to be closed
+      // after clicking: otherwise the toolbar itself is obstructing the view
+      // of the destination they chose.
+      if (!Drupal.toolbar.models.toolbarModel.get('isFixed')) {
+        Drupal.toolbar.models.toolbarModel.set('activeTab', null);
+      }
+      // Stopping propagation to make sure that once a toolbar-box is clicked
+      // (the whitespace part), the page is not redirected anymore.
+      event.stopPropagation();
+    }
+
+    /**
+     * Toggle the open/close state of a list is a menu.
+     *
+     * @param {jQuery} $item
+     *   The li item to be toggled.
+     *
+     * @param {Boolean} switcher
+     *   A flag that forces toggleClass to add or a remove a class, rather than
+     *   simply toggling its presence.
+     */
+    function toggleList($item, switcher) {
+      var $toggle = $item.children('.toolbar-box').children('.toolbar-handle');
+      switcher = (typeof switcher !== 'undefined') ? switcher : !$item.hasClass('open');
+      // Toggle the item open state.
+      $item.toggleClass('open', switcher);
+      // Twist the toggle.
+      $toggle.toggleClass('open', switcher);
+      // Adjust the toggle text.
+      $toggle
+        .find('.action')
+        // Expand Structure, Collapse Structure
+        .text((switcher) ? ui.handleClose : ui.handleOpen);
+    }
+
+    /**
+     * Add markup to the menu elements.
+     *
+     * Items with sub-elements have a list toggle attached to them. Menu item
+     * links and the corresponding list toggle are wrapped with in a div
+     * classed with .toolbar-box. The .toolbar-box div provides a positioning
+     * context for the item list toggle.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu to be initialized.
+     */
+    function initItems($menu) {
+      var options = {
+        'class': 'toolbar-icon toolbar-handle',
+        'action': ui.handleOpen,
+        'text': ''
+      };
+      // Initialize items and their links.
+      $menu.find('li > a').wrap('<div class="toolbar-box">');
+      // Add a handle to each list item if it has a menu.
+      $menu.find('li').each(function (index, element) {
+        var $item = $(element);
+        if ($item.children('ul.menu').length) {
+          var $box = $item.children('.toolbar-box');
+          options.text = Drupal.t('@label', {'@label': $box.find('a').text()});
+          $item.children('.toolbar-box')
+            .append(Drupal.theme('toolbarMenuItemToggle', options));
+        }
+      });
+    }
+
+    /**
+     * Adds a level class to each list based on its depth in the menu.
+     *
+     * This function is called recursively on each sub level of lists elements
+     * until the depth of the menu is exhausted.
+     *
+     * @param {jQuery} $lists
+     *   A jQuery object of ul elements.
+     *
+     * @param {Integer} level
+     *   The current level number to be assigned to the list elements.
+     */
+    function markListLevels($lists, level) {
+      level = (!level) ? 1 : level;
+      var $lis = $lists.children('li').addClass('level-' + level);
+      $lists = $lis.children('ul');
+      if ($lists.length) {
+        markListLevels($lists, level + 1);
+      }
+    }
+
+    /**
+     * On page load, open the active menu item.
+     *
+     * Marks the trail of the active link in the menu back to the root of the
+     * menu with .menu-item--active-trail.
+     *
+     * @param {jQuery} $menu
+     *   The root of the menu.
+     */
+    function openActiveItem($menu) {
+      var pathItem = $menu.find('a[href="' + location.pathname + '"]');
+      if (pathItem.length && !activeItem) {
+        activeItem = location.pathname;
+      }
+      if (activeItem) {
+        var $activeItem = $menu.find('a[href="' + activeItem + '"]').addClass('menu-item--active');
+        var $activeTrail = $activeItem.parentsUntil('.root', 'li').addClass('menu-item--active-trail');
+        toggleList($activeTrail, true);
+      }
+    }
+
+    // Bind event handlers.
+    $(document)
+      .on('click.toolbar', '.toolbar-box', toggleClickHandler)
+      .on('click.toolbar', '.toolbar-box a', linkClickHandler);
+
+    // Return the jQuery object.
+    return this.each(function (selector) {
+      var $menu = $(this).once('toolbar-menu');
+      if ($menu.length) {
+        $menu.addClass('root');
+        initItems($menu);
+        markListLevels($menu);
+        // Restore previous and active states.
+        openActiveItem($menu);
+      }
+    });
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarMenuItemToggle = function (options) {
+    return '<button class="' + options['class'] + '"><span class="action">' + options.action + '</span><span class="label">' + options.text + '</span></button>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file toolbar.js
+ *
+ * Defines the behavior of the Drupal administration toolbar.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  // Merge run-time settings with the defaults.
+  var options = $.extend(
+    {
+      breakpoints: {
+        'toolbar.narrow': '',
+        'toolbar.standard': '',
+        'toolbar.wide': ''
+      }
+    },
+    drupalSettings.toolbar,
+    // Merge strings on top of drupalSettings so that they are not mutable.
+    {
+      strings: {
+        horizontal: Drupal.t('Horizontal orientation'),
+        vertical: Drupal.t('Vertical orientation')
+      }
+    }
+  );
+
+  /**
+   * Registers tabs with the toolbar.
+   *
+   * The Drupal toolbar allows modules to register top-level tabs. These may
+   * point directly to a resource or toggle the visibility of a tray.
+   *
+   * Modules register tabs with hook_toolbar().
+   */
+  Drupal.behaviors.toolbar = {
+
+    attach: function (context) {
+      // Verify that the user agent understands media queries. Complex admin
+      // toolbar layouts require media query support.
+      if (!window.matchMedia('only screen').matches) {
+        return;
+      }
+      // Process the administrative toolbar.
+      $(context).find('#toolbar-administration').once('toolbar').each(function () {
+
+        // Establish the toolbar models and views.
+        var model = Drupal.toolbar.models.toolbarModel = new Drupal.toolbar.ToolbarModel({
+          locked: JSON.parse(localStorage.getItem('Drupal.toolbar.trayVerticalLocked')) || false,
+          activeTab: document.getElementById(JSON.parse(localStorage.getItem('Drupal.toolbar.activeTabID')))
+        });
+        Drupal.toolbar.views.toolbarVisualView = new Drupal.toolbar.ToolbarVisualView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.toolbarAuralView = new Drupal.toolbar.ToolbarAuralView({
+          el: this,
+          model: model,
+          strings: options.strings
+        });
+        Drupal.toolbar.views.bodyVisualView = new Drupal.toolbar.BodyVisualView({
+          el: this,
+          model: model
+        });
+
+        // Render collapsible menus.
+        var menuModel = Drupal.toolbar.models.menuModel = new Drupal.toolbar.MenuModel();
+        Drupal.toolbar.views.menuVisualView = new Drupal.toolbar.MenuVisualView({
+          el: $(this).find('.toolbar-menu-administration').get(0),
+          model: menuModel,
+          strings: options.strings
+        });
+
+        // Handle the resolution of Drupal.toolbar.setSubtrees.
+        // This is handled with a deferred so that the function may be invoked
+        // asynchronously.
+        Drupal.toolbar.setSubtrees.done(function (subtrees) {
+          menuModel.set('subtrees', subtrees);
+          localStorage.setItem('Drupal.toolbar.subtrees', JSON.stringify(subtrees));
+          // Indicate on the toolbarModel that subtrees are now loaded.
+          model.set('areSubtreesLoaded', true);
+        });
+
+        // Attach a listener to the configured media query breakpoints.
+        for (var label in options.breakpoints) {
+          if (options.breakpoints.hasOwnProperty(label)) {
+            var mq = options.breakpoints[label];
+            var mql = Drupal.toolbar.mql[label] = window.matchMedia(mq);
+            // Curry the model and the label of the media query breakpoint to
+            // the mediaQueryChangeHandler function.
+            mql.addListener(Drupal.toolbar.mediaQueryChangeHandler.bind(null, model, label));
+            // Fire the mediaQueryChangeHandler for each configured breakpoint
+            // so that they process once.
+            Drupal.toolbar.mediaQueryChangeHandler.call(null, model, label, mql);
+          }
+        }
+
+        // Trigger an initial attempt to load menu subitems. This first attempt
+        // is made after the media query handlers have had an opportunity to
+        // process. The toolbar starts in the vertical orientation by default,
+        // unless the viewport is wide enough to accommodate a horizontal
+        // orientation. Thus we give the Toolbar a chance to determine if it
+        // should be set to horizontal orientation before attempting to load
+        // menu subtrees.
+        Drupal.toolbar.views.toolbarVisualView.loadSubtrees();
+
+        $(document)
+          // Update the model when the viewport offset changes.
+          .on('drupalViewportOffsetChange.toolbar', function (event, offsets) {
+            model.set('offsets', offsets);
+          });
+
+        // Broadcast model changes to other modules.
+        model
+          .on('change:orientation', function (model, orientation) {
+            $(document).trigger('drupalToolbarOrientationChange', orientation);
+          })
+          .on('change:activeTab', function (model, tab) {
+            $(document).trigger('drupalToolbarTabChange', tab);
+          })
+          .on('change:activeTray', function (model, tray) {
+            $(document).trigger('drupalToolbarTrayChange', tray);
+          });
+
+        // If the toolbar's orientation is horizontal and no active tab is
+        // defined then show the tray of the first toolbar tab by default (but
+        // not the first 'Home' toolbar tab).
+        if (Drupal.toolbar.models.toolbarModel.get('orientation') === 'horizontal' && Drupal.toolbar.models.toolbarModel.get('activeTab') === null) {
+          Drupal.toolbar.models.toolbarModel.set({
+            'activeTab': $('.toolbar-bar .toolbar-tab:not(.home-toolbar-tab) a').get(0)
+          });
+        }
+      });
+    }
+  };
+
+  /**
+   * Toolbar methods of Backbone objects.
+   */
+  Drupal.toolbar = {
+
+    // A hash of View instances.
+    views: {},
+
+    // A hash of Model instances.
+    models: {},
+
+    // A hash of MediaQueryList objects tracked by the toolbar.
+    mql: {},
+
+    /**
+     * Accepts a list of subtree menu elements.
+     *
+     * A deferred object that is resolved by an inlined JavaScript callback.
+     *
+     * JSONP callback.
+     * @see toolbar_subtrees_jsonp().
+     */
+    setSubtrees: new $.Deferred(),
+
+    /**
+     * Respond to configured narrow media query changes.
+     */
+    mediaQueryChangeHandler: function (model, label, mql) {
+      switch (label) {
+        case 'toolbar.narrow':
+          model.set({
+            'isOriented': mql.matches,
+            'isTrayToggleVisible': false
+          });
+          // If the toolbar doesn't have an explicit orientation yet, or if the
+          // narrow media query doesn't match then set the orientation to
+          // vertical.
+          if (!mql.matches || !model.get('orientation')) {
+            model.set({'orientation': 'vertical'}, {validate: true});
+          }
+          break;
+        case 'toolbar.standard':
+          model.set({
+            'isFixed': mql.matches
+          });
+          break;
+        case 'toolbar.wide':
+          model.set({
+            'orientation': ((mql.matches) ? 'horizontal' : 'vertical')
+          }, {validate: true});
+          // The tray orientation toggle visibility does not need to be
+          // validated.
+          model.set({
+            'isTrayToggleVisible': mql.matches
+          });
+          break;
+        default:
+          break;
+      }
+    }
+  };
+
+  /**
+   * A toggle is an interactive element often bound to a click handler.
+   *
+   * @return {String}
+   *   A string representing a DOM fragment.
+   */
+  Drupal.theme.toolbarOrientationToggle = function () {
+    return '<div class="toolbar-toggle-orientation"><div class="toolbar-lining">' +
+      '<button class="toolbar-icon" type="button"></button>' +
+      '</div></div>';
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file
+ * A Backbone Model for collapsible menus.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone Model for collapsible menus.
+   */
+  Drupal.toolbar.MenuModel = Backbone.Model.extend({
+    defaults: {
+      subtrees: {}
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone Model for the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone model for the toolbar.
+   */
+  Drupal.toolbar.ToolbarModel = Backbone.Model.extend({
+    defaults: {
+      // The active toolbar tab. All other tabs should be inactive under
+      // normal circumstances. It will remain active across page loads. The
+      // active item is stored as an ID selector e.g. '#toolbar-item--1'.
+      activeTab: null,
+      // Represents whether a tray is open or not. Stored as an ID selector e.g.
+      // '#toolbar-item--1-tray'.
+      activeTray: null,
+      // Indicates whether the toolbar is displayed in an oriented fashion,
+      // either horizontal or vertical.
+      isOriented: false,
+      // Indicates whether the toolbar is positioned absolute (false) or fixed
+      // (true).
+      isFixed: false,
+      // Menu subtrees are loaded through an AJAX request only when the Toolbar
+      // is set to a vertical orientation.
+      areSubtreesLoaded: false,
+      // If the viewport overflow becomes constrained, isFixed must be true so
+      // that elements in the trays aren't lost off-screen and impossible to
+      // get to.
+      isViewportOverflowConstrained: false,
+      // The orientation of the active tray.
+      orientation: 'vertical',
+      // A tray is locked if a user toggled it to vertical. Otherwise a tray
+      // will switch between vertical and horizontal orientation based on the
+      // configured breakpoints. The locked state will be maintained across page
+      // loads.
+      locked: false,
+      // Indicates whether the tray orientation toggle is visible.
+      isTrayToggleVisible: false,
+      // The height of the toolbar.
+      height: null,
+      // The current viewport offsets determined by Drupal.displace(). The
+      // offsets suggest how a module might position is components relative to
+      // the viewport.
+      offsets: {
+        top: 0,
+        right: 0,
+        bottom: 0,
+        left: 0
+      }
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    validate: function (attributes, options) {
+      // Prevent the orientation being set to horizontal if it is locked, unless
+      // override has not been passed as an option.
+      if (attributes.orientation === 'horizontal' && this.get('locked') && !options.override) {
+        return Drupal.t('The toolbar cannot be set to a horizontal orientation when it is locked.');
+      }
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the body element.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Adjusts the body element with the toolbar position and dimension changes.
+   */
+  Drupal.toolbar.BodyVisualView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:orientation change:offsets change:activeTray change:isOriented change:isFixed change:isViewportOverflowConstrained', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var $body = $('body');
+      var orientation = this.model.get('orientation');
+      var isOriented = this.model.get('isOriented');
+      var isViewportOverflowConstrained = this.model.get('isViewportOverflowConstrained');
+
+      $body
+        // We are using JavaScript to control media-query handling for two
+        // reasons: (1) Using JavaScript let's us leverage the breakpoint
+        // configurations and (2) the CSS is really complex if we try to hide
+        // some styling from browsers that don't understand CSS media queries.
+        // If we drive the CSS from classes added through JavaScript,
+        // then the CSS becomes simpler and more robust.
+        .toggleClass('toolbar-vertical', (orientation === 'vertical'))
+        .toggleClass('toolbar-horizontal', (isOriented && orientation === 'horizontal'))
+        // When the toolbar is fixed, it will not scroll with page scrolling.
+        .toggleClass('toolbar-fixed', (isViewportOverflowConstrained || this.model.get('isFixed')))
+        // Toggle the toolbar-tray-open class on the body element. The class is
+        // applied when a toolbar tray is active. Padding might be applied to
+        // the body element to prevent the tray from overlapping content.
+        .toggleClass('toolbar-tray-open', !!this.model.get('activeTray'))
+        // Apply padding to the top of the body to offset the placement of the
+        // toolbar bar element.
+        .css('padding-top', this.model.get('offsets').top);
+    }
+  });
+
+}(jQuery, Drupal, Backbone));
+;
+/**
+ * @file
+ * A Backbone view for the collapsible menus.
+ */
+
+(function ($, Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone View for collapsible menus.
+   */
+  Drupal.toolbar.MenuVisualView = Backbone.View.extend({
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:subtrees', this.render);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      var subtrees = this.model.get('subtrees');
+      // Add subtrees.
+      for (var id in subtrees) {
+        if (subtrees.hasOwnProperty(id)) {
+          this.$el
+            .find('#toolbar-link-' + id)
+            .once('toolbar-subtrees')
+            .after(subtrees[id]);
+        }
+      }
+      // Render the main menu as a nested, collapsible accordion.
+      if ('drupalToolbarMenu' in $.fn) {
+        this.$el
+          .children('.menu')
+          .drupalToolbarMenu();
+      }
+    }
+  });
+
+}(jQuery, Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the aural feedback of the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the aural feedback of the toolbar.
+   */
+  Drupal.toolbar.ToolbarAuralView = Backbone.View.extend({
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:orientation', this.onOrientationChange);
+      this.listenTo(this.model, 'change:activeTray', this.onActiveTrayChange);
+    },
+
+    /**
+     * Announces an orientation change.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param String orientation
+     *   The new value of the orientation attribute in the model.
+     */
+    onOrientationChange: function (model, orientation) {
+      Drupal.announce(Drupal.t('Tray orientation changed to @orientation.', {
+        '@orientation': orientation
+      }));
+    },
+
+    /**
+     * Announces a changed active tray.
+     *
+     * @param Drupal.Toolbar.ToolbarModel model
+     * @param Element orientation
+     *   The new value of the tray attribute in the model.
+     */
+    onActiveTrayChange: function (model, tray) {
+      var relevantTray = (tray === null) ? model.previous('activeTray') : tray;
+      var action = (tray === null) ? Drupal.t('closed') : Drupal.t('opened');
+      var trayNameElement = relevantTray.querySelector('.toolbar-tray-name');
+      var text;
+      if (trayNameElement !== null) {
+        text = Drupal.t('Tray "@tray" @action.', {
+          '@tray': trayNameElement.textContent, '@action': action
+        });
+      }
+      else {
+        text = Drupal.t('Tray @action.', {'@action': action});
+      }
+      Drupal.announce(text);
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the toolbar element. Listens to mouse & touch.
+ */
+
+(function ($, Drupal, drupalSettings, Backbone) {
+
+  "use strict";
+
+  /**
+   * Backbone view for the toolbar element. Listens to mouse & touch.
+   */
+  Drupal.toolbar.ToolbarVisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click .toolbar-bar .toolbar-tab': 'onTabClick',
+        'click .toolbar-toggle-orientation button': 'onOrientationToggleClick',
+        'touchend .toolbar-bar .toolbar-tab': touchEndToClick,
+        'touchend .toolbar-toggle-orientation button': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.strings = options.strings;
+
+      this.listenTo(this.model, 'change:activeTab change:orientation change:isOriented change:isTrayToggleVisible', this.render);
+      this.listenTo(this.model, 'change:mqMatches', this.onMediaQueryChange);
+      this.listenTo(this.model, 'change:offsets', this.adjustPlacement);
+
+      // Add the tray orientation toggles.
+      this.$el
+        .find('.toolbar-tray .toolbar-lining')
+        .append(Drupal.theme('toolbarOrientationToggle'));
+
+      // Trigger an activeTab change so that listening scripts can respond on
+      // page load. This will call render.
+      this.model.trigger('change:activeTab');
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      this.updateTabs();
+      this.updateTrayOrientation();
+      this.updateBarAttributes();
+      // Load the subtrees if the orientation of the toolbar is changed to
+      // vertical. This condition responds to the case that the toolbar switches
+      // from horizontal to vertical orientation. The toolbar starts in a
+      // vertical orientation by default and then switches to horizontal during
+      // initialization if the media query conditions are met. Simply checking
+      // that the orientation is vertical here would result in the subtrees
+      // always being loaded, even when the toolbar initialization ultimately
+      // results in a horizontal orientation.
+      //
+      // @see Drupal.behaviors.toolbar.attach() where admin menu subtrees
+      // loading is invoked during initialization after media query conditions
+      // have been processed.
+      if (this.model.changed.orientation === 'vertical' || this.model.changed.activeTab) {
+        this.loadSubtrees();
+      }
+      // Trigger a recalculation of viewport displacing elements. Use setTimeout
+      // to ensure this recalculation happens after changes to visual elements
+      // have processed.
+      window.setTimeout(function () {
+        Drupal.displace(true);
+      }, 0);
+      return this;
+    },
+
+    /**
+     * Responds to a toolbar tab click.
+     *
+     * @param jQuery.Event event
+     */
+    onTabClick: function (event) {
+      // If this tab has a tray associated with it, it is considered an
+      // activatable tab.
+      if (event.target.hasAttribute('data-toolbar-tray')) {
+        var activeTab = this.model.get('activeTab');
+        var clickedTab = event.target;
+
+        // Set the event target as the active item if it is not already.
+        this.model.set('activeTab', (!activeTab || clickedTab !== activeTab) ? clickedTab : null);
+
+        event.preventDefault();
+        event.stopPropagation();
+      }
+    },
+
+    /**
+     * Toggles the orientation of a toolbar tray.
+     *
+     * @param jQuery.Event event
+     */
+    onOrientationToggleClick: function (event) {
+      var orientation = this.model.get('orientation');
+      // Determine the toggle-to orientation.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      var locked = (antiOrientation === 'vertical') ? true : false;
+      // Remember the locked state.
+      if (locked) {
+        localStorage.setItem('Drupal.toolbar.trayVerticalLocked', 'true');
+      }
+      else {
+        localStorage.removeItem('Drupal.toolbar.trayVerticalLocked');
+      }
+      // Update the model.
+      this.model.set({
+        locked: locked,
+        orientation: antiOrientation
+      }, {
+        validate: true,
+        override: true
+      });
+
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Updates the display of the tabs: toggles a tab and the associated tray.
+     */
+    updateTabs: function () {
+      var $tab = $(this.model.get('activeTab'));
+      // Deactivate the previous tab.
+      $(this.model.previous('activeTab'))
+        .removeClass('is-active')
+        .prop('aria-pressed', false);
+      // Deactivate the previous tray.
+      $(this.model.previous('activeTray'))
+        .removeClass('is-active');
+
+      // Activate the selected tab.
+      if ($tab.length > 0) {
+        $tab
+          .addClass('is-active')
+          // Mark the tab as pressed.
+          .prop('aria-pressed', true);
+        var name = $tab.attr('data-toolbar-tray');
+        // Store the active tab name or remove the setting.
+        var id = $tab.get(0).id;
+        if (id) {
+          localStorage.setItem('Drupal.toolbar.activeTabID', JSON.stringify(id));
+        }
+        // Activate the associated tray.
+        var $tray = this.$el.find('[data-toolbar-tray="' + name + '"].toolbar-tray');
+        if ($tray.length) {
+          $tray.addClass('is-active');
+          this.model.set('activeTray', $tray.get(0));
+        }
+        else {
+          // There is no active tray.
+          this.model.set('activeTray', null);
+        }
+      }
+      else {
+        // There is no active tray.
+        this.model.set('activeTray', null);
+        localStorage.removeItem('Drupal.toolbar.activeTabID');
+      }
+    },
+
+    /**
+     * Update the attributes of the toolbar bar element.
+     */
+    updateBarAttributes: function () {
+      var isOriented = this.model.get('isOriented');
+      if (isOriented) {
+        this.$el.find('.toolbar-bar').attr('data-offset-top', '');
+      }
+      else {
+        this.$el.find('.toolbar-bar').removeAttr('data-offset-top');
+      }
+      // Toggle between a basic vertical view and a more sophisticated
+      // horizontal and vertical display of the toolbar bar and trays.
+      this.$el.toggleClass('toolbar-oriented', isOriented);
+    },
+
+    /**
+     * Updates the orientation of the active tray if necessary.
+     */
+    updateTrayOrientation: function () {
+      var orientation = this.model.get('orientation');
+      // The antiOrientation is used to render the view of action buttons like
+      // the tray orientation toggle.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      // Update the orientation of the trays.
+      var $trays = this.$el.find('.toolbar-tray')
+        .removeClass('toolbar-tray-horizontal toolbar-tray-vertical')
+        .addClass('toolbar-tray-' + orientation);
+
+      // Update the tray orientation toggle button.
+      var iconClass = 'toolbar-icon-toggle-' + orientation;
+      var iconAntiClass = 'toolbar-icon-toggle-' + antiOrientation;
+      var $orientationToggle = this.$el.find('.toolbar-toggle-orientation')
+        .toggle(this.model.get('isTrayToggleVisible'));
+      $orientationToggle.find('button')
+        .val(antiOrientation)
+        .attr('title', this.strings[antiOrientation])
+        .text(this.strings[antiOrientation])
+        .removeClass(iconClass)
+        .addClass(iconAntiClass);
+
+      // Update data offset attributes for the trays.
+      var dir = document.documentElement.dir;
+      var edge = (dir === 'rtl') ? 'right' : 'left';
+      // Remove data-offset attributes from the trays so they can be refreshed.
+      $trays.removeAttr('data-offset-left data-offset-right data-offset-top');
+      // If an active vertical tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-vertical.is-active').attr('data-offset-' + edge, '');
+      // If an active horizontal tray exists, mark it as an offset element.
+      $trays.filter('.toolbar-tray-horizontal.is-active').attr('data-offset-top', '');
+    },
+
+    /**
+     * Sets the tops of the trays so that they align with the bottom of the bar.
+     */
+    adjustPlacement: function () {
+      var $trays = this.$el.find('.toolbar-tray');
+      if (!this.model.get('isOriented')) {
+        $trays.css('padding-top', 0);
+        $trays.removeClass('toolbar-tray-horizontal').addClass('toolbar-tray-vertical');
+      }
+      else {
+        // The toolbar container is invisible. Its placement is used to
+        // determine the container for the trays.
+        $trays.css('padding-top', this.$el.find('.toolbar-bar').outerHeight());
+      }
+    },
+
+    /**
+     * Calls the endpoint URI that will return rendered subtrees with JSONP.
+     *
+     * The rendered admin menu subtrees HTML is cached on the client in
+     * localStorage until the cache of the admin menu subtrees on the server-
+     * side is invalidated. The subtreesHash is stored in localStorage as well
+     * and compared to the subtreesHash in drupalSettings to determine when the
+     * admin menu subtrees cache has been invalidated.
+     */
+    loadSubtrees: function () {
+      var $activeTab = $(this.model.get('activeTab'));
+      var orientation = this.model.get('orientation');
+      // Only load and render the admin menu subtrees if:
+      //   (1) They have not been loaded yet.
+      //   (2) The active tab is the administration menu tab, indicated by the
+      //       presence of the data-drupal-subtrees attribute.
+      //   (3) The orientation of the tray is vertical.
+      if (!this.model.get('areSubtreesLoaded') && typeof $activeTab.data('drupal-subtrees') !== 'undefined' && orientation === 'vertical') {
+        var subtreesHash = drupalSettings.toolbar.subtreesHash;
+        var langcode = drupalSettings.toolbar.langcode;
+        var endpoint = Drupal.url('toolbar/subtrees/' + subtreesHash + '/' + langcode);
+        var cachedSubtreesHash = localStorage.getItem('Drupal.toolbar.subtreesHash');
+        var cachedSubtrees = JSON.parse(localStorage.getItem('Drupal.toolbar.subtrees'));
+        var isVertical = this.model.get('orientation') === 'vertical';
+        // If we have the subtrees in localStorage and the subtree hash has not
+        // changed, then use the cached data.
+        if (isVertical && subtreesHash === cachedSubtreesHash && cachedSubtrees) {
+          Drupal.toolbar.setSubtrees.resolve(cachedSubtrees);
+        }
+        // Only make the call to get the subtrees if the orientation of the
+        // toolbar is vertical.
+        else if (isVertical) {
+          // Remove the cached menu information.
+          localStorage.removeItem('Drupal.toolbar.subtreesHash');
+          localStorage.removeItem('Drupal.toolbar.subtrees');
+          // The response from the server will call the resolve method of the
+          // Drupal.toolbar.setSubtrees Promise.
+          $.ajax(endpoint);
+          // Cache the hash for the subtrees locally.
+          localStorage.setItem('Drupal.toolbar.subtreesHash', subtreesHash);
+        }
+      }
+    }
+  });
+
+}(jQuery, Drupal, drupalSettings, Backbone));
+;
+/* jQuery Foundation Joyride Plugin 2.1 | Copyright 2012, ZURB | www.opensource.org/licenses/mit-license.php */
+(function(e,t,n){"use strict";var r={version:"2.0.3",tipLocation:"bottom",nubPosition:"auto",scroll:!0,scrollSpeed:300,timer:0,autoStart:!1,startTimerOnClick:!0,startOffset:0,nextButton:!0,tipAnimation:"fade",pauseAfter:[],tipAnimationFadeSpeed:300,cookieMonster:!1,cookieName:"joyride",cookieDomain:!1,cookiePath:!1,localStorage:!1,localStorageKey:"joyride",tipContainer:"body",modal:!1,expose:!1,postExposeCallback:e.noop,preRideCallback:e.noop,postRideCallback:e.noop,preStepCallback:e.noop,postStepCallback:e.noop,template:{link:'<a href="#close" class="joyride-close-tip">X</a>',timer:'<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',tip:'<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',wrapper:'<div class="joyride-content-wrapper" role="dialog"></div>',button:'<a href="#" class="joyride-next-tip"></a>',modal:'<div class="joyride-modal-bg"></div>',expose:'<div class="joyride-expose-wrapper"></div>',exposeCover:'<div class="joyride-expose-cover"></div>'}},i=i||!1,s={},o={init:function(n){return this.each(function(){e.isEmptyObject(s)?(s=e.extend(!0,r,n),s.document=t.document,s.$document=e(s.document),s.$window=e(t),s.$content_el=e(this),s.$body=e(s.tipContainer),s.body_offset=e(s.tipContainer).position(),s.$tip_content=e("> li",s.$content_el),s.paused=!1,s.attempts=0,s.tipLocationPatterns={top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},o.jquery_check(),e.isFunction(e.cookie)||(s.cookieMonster=!1),(!s.cookieMonster||!e.cookie(s.cookieName))&&(!s.localStorage||!o.support_localstorage()||!localStorage.getItem(s.localStorageKey))&&(s.$tip_content.each(function(t){o.create({$li:e(this),index:t})}),s.autoStart&&(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"))),s.$document.on("click.joyride",".joyride-next-tip, .joyride-modal-bg",function(e){e.preventDefault(),s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())}),s.$document.on("click.joyride",".joyride-close-tip",function(e){e.preventDefault(),o.end()}),s.$window.bind("resize.joyride",function(t){if(s.$li){if(s.exposed&&s.exposed.length>0){var n=e(s.exposed);n.each(function(){var t=e(this);o.un_expose(t),o.expose(t)})}o.is_phone()?o.pos_phone():o.pos_default()}})):o.restart()})},resume:function(){o.set_li(),o.show()},nextTip:function(){s.$li.next().length<1?o.end():s.timer>0?(clearTimeout(s.automate),o.hide(),o.show(),o.startTimer()):(o.hide(),o.show())},tip_template:function(t){var n,r,i;return t.tip_class=t.tip_class||"",n=e(s.template.tip).addClass(t.tip_class),r=e.trim(e(t.li).html())+o.button_text(t.button_text)+s.template.link+o.timer_instance(t.index),i=e(s.template.wrapper),t.li.attr("data-aria-labelledby")&&i.attr("aria-labelledby",t.li.attr("data-aria-labelledby")),t.li.attr("data-aria-describedby")&&i.attr("aria-describedby",t.li.attr("data-aria-describedby")),n.append(i),n.first().attr("data-index",t.index),e(".joyride-content-wrapper",n).append(r),n[0]},timer_instance:function(t){var n;return t===0&&s.startTimerOnClick&&s.timer>0||s.timer===0?n="":n=o.outerHTML(e(s.template.timer)[0]),n},button_text:function(t){return s.nextButton?(t=e.trim(t)||"Next",t=o.outerHTML(e(s.template.button).append(t)[0])):t="",t},create:function(t){var n=t.$li.attr("data-button")||t.$li.attr("data-text"),r=t.$li.attr("class"),i=e(o.tip_template({tip_class:r,index:t.index,button_text:n,li:t.$li}));e(s.tipContainer).append(i)},show:function(t){var r={},i,u=[],a=0,f,l=null;if(s.$li===n||e.inArray(s.$li.index(),s.pauseAfter)===-1){s.paused?s.paused=!1:o.set_li(t),s.attempts=0;if(s.$li.length&&s.$target.length>0){t&&(s.preRideCallback(s.$li.index(),s.$next_tip),s.modal&&o.show_modal()),s.preStepCallback(s.$li.index(),s.$next_tip),u=(s.$li.data("options")||":").split(";"),a=u.length;for(i=a-1;i>=0;i--)f=u[i].split(":"),f.length===2&&(r[e.trim(f[0])]=e.trim(f[1]));s.tipSettings=e.extend({},s,r),s.tipSettings.tipLocationPattern=s.tipLocationPatterns[s.tipSettings.tipLocation],s.modal&&s.expose&&o.expose(),!/body/i.test(s.$target.selector)&&s.scroll&&o.scroll_to(),o.is_phone()?o.pos_phone(!0):o.pos_default(!0),l=e(".joyride-timer-indicator",s.$next_tip),/pop/i.test(s.tipAnimation)?(l.outerWidth(0),s.timer>0?(s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.show()):/fade/i.test(s.tipAnimation)&&(l.outerWidth(0),s.timer>0?(s.$next_tip.fadeIn(s.tipAnimationFadeSpeed),s.$next_tip.show(),l.animate({width:e(".joyride-timer-indicator-wrap",s.$next_tip).outerWidth()},s.timer)):s.$next_tip.fadeIn(s.tipAnimationFadeSpeed)),s.$current_tip=s.$next_tip,e(".joyride-next-tip",s.$current_tip).focus(),o.tabbable(s.$current_tip)}else s.$li&&s.$target.length<1?o.show():o.end()}else s.paused=!0},is_phone:function(){return i?i.mq("only screen and (max-width: 767px)"):s.$window.width()<767?!0:!1},support_localstorage:function(){return i?i.localstorage:!!t.localStorage},hide:function(){s.modal&&s.expose&&o.un_expose(),s.modal||e(".joyride-modal-bg").hide(),s.$current_tip.hide(),s.postStepCallback(s.$li.index(),s.$current_tip)},set_li:function(e){e?(s.$li=s.$tip_content.eq(s.startOffset),o.set_next_tip(),s.$current_tip=s.$next_tip):(s.$li=s.$li.next(),o.set_next_tip()),o.set_target()},set_next_tip:function(){s.$next_tip=e(".joyride-tip-guide[data-index="+s.$li.index()+"]")},set_target:function(){var t=s.$li.attr("data-class"),n=s.$li.attr("data-id"),r=function(){return n?e(s.document.getElementById(n)):t?e("."+t).filter(":visible").first():e("body")};s.$target=r()},scroll_to:function(){var t,n;t=s.$window.height()/2,n=Math.ceil(s.$target.offset().top-t+s.$next_tip.outerHeight()),e("html, body").stop().animate({scrollTop:n},s.scrollSpeed)},paused:function(){return e.inArray(s.$li.index()+1,s.pauseAfter)===-1?!0:!1},destroy:function(){e.isEmptyObject(s)||s.$document.off(".joyride"),e(t).off(".joyride"),e(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),e(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(s.automate),s={}},restart:function(){s.autoStart?(o.hide(),s.$li=n,o.show("init")):(!s.startTimerOnClick&&s.timer>0?(o.show("init"),o.startTimer()):o.show("init"),s.autoStart=!0)},pos_default:function(t){var n=Math.ceil(s.$window.height()/2),r=s.$next_tip.offset(),i=e(".joyride-nub",s.$next_tip),u=Math.ceil(i.outerWidth()/2),a=Math.ceil(i.outerHeight()/2),f=t||!1;f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show());if(!/body/i.test(s.$target.selector)){var l=s.tipSettings.tipAdjustmentY?parseInt(s.tipSettings.tipAdjustmentY):0,c=s.tipSettings.tipAdjustmentX?parseInt(s.tipSettings.tipAdjustmentX):0;o.bottom()?(s.$next_tip.css({top:s.$target.offset().top+a+s.$target.outerHeight()+l,left:s.$target.offset().left+c}),/right/i.test(s.tipSettings.nubPosition)&&s.$next_tip.css("left",s.$target.offset().left-s.$next_tip.outerWidth()+s.$target.outerWidth()),o.nub_position(i,s.tipSettings.nubPosition,"top")):o.top()?(s.$next_tip.css({top:s.$target.offset().top-s.$next_tip.outerHeight()-a+l,left:s.$target.offset().left+c}),o.nub_position(i,s.tipSettings.nubPosition,"bottom")):o.right()?(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.outerWidth()+s.$target.offset().left+u+c}),o.nub_position(i,s.tipSettings.nubPosition,"left")):o.left()&&(s.$next_tip.css({top:s.$target.offset().top+l,left:s.$target.offset().left-s.$next_tip.outerWidth()-u+c}),o.nub_position(i,s.tipSettings.nubPosition,"right")),!o.visible(o.corners(s.$next_tip))&&s.attempts<s.tipSettings.tipLocationPattern.length&&(i.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),s.tipSettings.tipLocation=s.tipSettings.tipLocationPattern[s.attempts],s.attempts++,o.pos_default(!0))}else s.$li.length&&o.pos_modal(i);f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_phone:function(t){var n=s.$next_tip.outerHeight(),r=s.$next_tip.offset(),i=s.$target.outerHeight(),u=e(".joyride-nub",s.$next_tip),a=Math.ceil(u.outerHeight()/2),f=t||!1;u.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),f&&(s.$next_tip.css("visibility","hidden"),s.$next_tip.show()),/body/i.test(s.$target.selector)?s.$li.length&&o.pos_modal(u):o.top()?(s.$next_tip.offset({top:s.$target.offset().top-n-a}),u.addClass("bottom")):(s.$next_tip.offset({top:s.$target.offset().top+i+a}),u.addClass("top")),f&&(s.$next_tip.hide(),s.$next_tip.css("visibility","visible"))},pos_modal:function(e){o.center(),e.hide(),o.show_modal()},show_modal:function(){e(".joyride-modal-bg").length<1&&e("body").append(s.template.modal).show(),/pop/i.test(s.tipAnimation)?e(".joyride-modal-bg").show():e(".joyride-modal-bg").fadeIn(s.tipAnimationFadeSpeed)},expose:function(){var n,r,i,u,a="expose-"+Math.floor(Math.random()*1e4);if(arguments.length>0&&arguments[0]instanceof e)i=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;i=s.$target}if(i.length<1)return t.console&&console.error("element not valid",i),!1;n=e(s.template.expose),s.$body.append(n),n.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),r=e(s.template.exposeCover),u={zIndex:i.css("z-index"),position:i.css("position")},i.css("z-index",n.css("z-index")*1+1),u.position=="static"&&i.css("position","relative"),i.data("expose-css",u),r.css({top:i.offset().top,left:i.offset().left,width:i.outerWidth(!0),height:i.outerHeight(!0)}),s.$body.append(r),n.addClass(a),r.addClass(a),s.tipSettings.exposeClass&&(n.addClass(s.tipSettings.exposeClass),r.addClass(s.tipSettings.exposeClass)),i.data("expose",a),s.postExposeCallback(s.$li.index(),s.$next_tip,i),o.add_exposed(i)},un_expose:function(){var n,r,i,u,a=!1;if(arguments.length>0&&arguments[0]instanceof e)r=arguments[0];else{if(!s.$target||!!/body/i.test(s.$target.selector))return!1;r=s.$target}if(r.length<1)return t.console&&console.error("element not valid",r),!1;n=r.data("expose"),i=e("."+n),arguments.length>1&&(a=arguments[1]),a===!0?e(".joyride-expose-wrapper,.joyride-expose-cover").remove():i.remove(),u=r.data("expose-css"),u.zIndex=="auto"?r.css("z-index",""):r.css("z-index",u.zIndex),u.position!=r.css("position")&&(u.position=="static"?r.css("position",""):r.css("position",u.position)),r.removeData("expose"),r.removeData("expose-z-index"),o.remove_exposed(r)},add_exposed:function(t){s.exposed=s.exposed||[],t instanceof e?s.exposed.push(t[0]):typeof t=="string"&&s.exposed.push(t)},remove_exposed:function(t){var n;t instanceof e?n=t[0]:typeof t=="string"&&(n=t),s.exposed=s.exposed||[];for(var r=0;r<s.exposed.length;r++)if(s.exposed[r]==n){s.exposed.splice(r,1);return}},center:function(){var e=s.$window;return s.$next_tip.css({top:(e.height()-s.$next_tip.outerHeight())/2+e.scrollTop(),left:(e.width()-s.$next_tip.outerWidth())/2+e.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(s.tipSettings.tipLocation)},top:function(){return/top/i.test(s.tipSettings.tipLocation)},right:function(){return/right/i.test(s.tipSettings.tipLocation)},left:function(){return/left/i.test(s.tipSettings.tipLocation)},corners:function(e){var t=s.$window,n=t.height()/2,r=Math.ceil(s.$target.offset().top-n+s.$next_tip.outerHeight()),i=t.width()+t.scrollLeft(),o=t.height()+r,u=t.height()+t.scrollTop(),a=t.scrollTop();return r<a&&(r<0?a=0:a=r),o>u&&(u=o),[e.offset().top<a,i<e.offset().left+e.outerWidth(),u<e.offset().top+e.outerHeight(),t.scrollLeft()>e.offset().left]},visible:function(e){var t=e.length;while(t--)if(e[t])return!1;return!0},nub_position:function(e,t,n){t==="auto"?e.addClass(n):e.addClass(t)},startTimer:function(){s.$li.length?s.automate=setTimeout(function(){o.hide(),o.show(),o.startTimer()},s.timer):clearTimeout(s.automate)},end:function(){s.cookieMonster&&e.cookie(s.cookieName,"ridden",{expires:365,domain:s.cookieDomain,path:s.cookiePath}),s.localStorage&&localStorage.setItem(s.localStorageKey,!0),s.timer>0&&clearTimeout(s.automate),s.modal&&s.expose&&o.un_expose(),s.$current_tip&&s.$current_tip.hide(),s.$li&&(s.postStepCallback(s.$li.index(),s.$current_tip),s.postRideCallback(s.$li.index(),s.$current_tip)),e(".joyride-modal-bg").hide()},jquery_check:function(){return e.isFunction(e.fn.on)?!0:(e.fn.on=function(e,t,n){return this.delegate(t,e,n)},e.fn.off=function(e,t,n){return this.undelegate(t,e,n)},!1)},outerHTML:function(e){return e.outerHTML||(new XMLSerializer).serializeToString(e)},version:function(){return s.version},tabbable:function(t){e(t).on("keydown",function(n){if(!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===27){n.preventDefault(),o.end();return}if(n.keyCode!==9)return;var r=e(t).find(":tabbable"),i=r.filter(":first"),s=r.filter(":last");n.target===s[0]&&!n.shiftKey?(i.focus(1),n.preventDefault()):n.target===i[0]&&n.shiftKey&&(s.focus(1),n.preventDefault())})}};e.fn.joyride=function(t){if(o[t])return o[t].apply(this,Array.prototype.slice.call(arguments,1));if(typeof t=="object"||!t)return o.init.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.joyride")}})(jQuery,this);
+;
+/**
+ * @file
+ * Attaches behaviors for the Tour module's toolbar tab.
+ */
+
+(function ($, Backbone, Drupal, document) {
+
+  "use strict";
+
+  var queryString = decodeURI(window.location.search);
+
+  /**
+   * Attaches the tour's toolbar tab behavior.
+   *
+   * It uses the query string for:
+   * - tour: When ?tour=1 is present, the tour will start automatically
+   *         after the page has loaded.
+   * - tips: Pass ?tips=class in the url to filter the available tips to
+   *         the subset which match the given class.
+   *
+   * Example:
+   *   http://example.com/foo?tour=1&tips=bar
+   */
+  Drupal.behaviors.tour = {
+    attach: function (context) {
+      $('body').once('tour').each(function () {
+        var model = new Drupal.tour.models.StateModel();
+        new Drupal.tour.views.ToggleTourView({
+          el: $(context).find('#toolbar-tab-tour'),
+          model: model
+        });
+
+        model
+          // Allow other scripts to respond to tour events.
+          .on('change:isActive', function (model, isActive) {
+            $(document).trigger((isActive) ? 'drupalTourStarted' : 'drupalTourStopped');
+          })
+          // Initialization: check whether a tour is available on the current page.
+          .set('tour', $(context).find('ol#tour'));
+
+        // Start the tour immediately if toggled via query string.
+        if (/tour=?/i.test(queryString)) {
+          model.set('isActive', true);
+        }
+      });
+    }
+  };
+
+  Drupal.tour = Drupal.tour || {models: {}, views: {}};
+
+  /**
+   * Backbone Model for tours.
+   */
+  Drupal.tour.models.StateModel = Backbone.Model.extend({
+    defaults: {
+      // Indicates whether the Drupal root window has a tour.
+      tour: [],
+      // Indicates whether the tour is currently running.
+      isActive: false,
+      // Indicates which tour is the active one (necessary to cleanly stop).
+      activeTour: []
+    }
+  });
+
+  /**
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.tour.views.ToggleTourView = Backbone.View.extend({
+
+    events: {'click': 'onClick'},
+
+    /**
+     * Implements Backbone Views' initialize().
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:tour change:isActive', this.render);
+      this.listenTo(this.model, 'change:isActive', this.toggleTour);
+    },
+
+    /**
+     * Implements Backbone Views' render().
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', this._getTour().length === 0);
+      // Render the state.
+      var isActive = this.model.get('isActive');
+      this.$el.find('button')
+        .toggleClass('is-active', isActive)
+        .prop('aria-pressed', isActive);
+      return this;
+    },
+
+    /**
+     * Model change handler; starts or stops the tour.
+     */
+    toggleTour: function () {
+      if (this.model.get('isActive')) {
+        var $tour = this._getTour();
+        this._removeIrrelevantTourItems($tour, this._getDocument());
+        var that = this;
+        if ($tour.find('li').length) {
+          $tour.joyride({
+            autoStart: true,
+            postRideCallback: function () { that.model.set('isActive', false); },
+            template: { // HTML segments for tip layout
+              link: '<a href=\"#close\" class=\"joyride-close-tip\">&times;</a>',
+              button: '<a href=\"#\" class=\"button button--primary joyride-next-tip\"></a>'
+            }
+          });
+          this.model.set({isActive: true, activeTour: $tour});
+        }
+      }
+      else {
+        this.model.get('activeTour').joyride('destroy');
+        this.model.set({isActive: false, activeTour: []});
+      }
+    },
+
+    /**
+     * Toolbar tab click event handler; toggles isActive.
+     */
+    onClick: function (event) {
+      this.model.set('isActive', !this.model.get('isActive'));
+      event.preventDefault();
+      event.stopPropagation();
+    },
+
+    /**
+     * Gets the tour.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to a <ol> containing tour items.
+     */
+    _getTour: function () {
+      return this.model.get('tour');
+    },
+
+    /**
+     * Gets the relevant document as a jQuery element.
+     *
+     * @return jQuery
+     *   A jQuery element pointing to the document within which a tour would be
+     *   started given the current state.
+     */
+    _getDocument: function () {
+      return $(document);
+    },
+
+    /**
+     * Removes tour items for elements that don't have matching page elements or
+     * are explicitly filtered out via the 'tips' query string.
+     *
+     * Example:
+     *   http://example.com/foo?tips=bar
+     *
+     *   The above will filter out tips that do not have a matching page element or
+     *   don't have the "bar" class.
+     *
+     * @param jQuery $tour
+     *   A jQuery element pointing to a <ol> containing tour items.
+     * @param jQuery $document
+     *   A jQuery element pointing to the document within which the elements
+     *   should be sought.
+     *
+     * @see _getDocument()
+     */
+    _removeIrrelevantTourItems: function ($tour, $document) {
+      var removals = false;
+      var tips = /tips=([^&]+)/.exec(queryString);
+      $tour
+        .find('li')
+        .each(function () {
+          var $this = $(this);
+          var itemId = $this.attr('data-id');
+          var itemClass = $this.attr('data-class');
+          // If the query parameter 'tips' is set, remove all tips that don't
+          // have the matching class.
+          if (tips && !$(this).hasClass(tips[1])) {
+            removals = true;
+            $this.remove();
+            return;
+          }
+          // Remove tip from the DOM if there is no corresponding page element.
+          if ((!itemId && !itemClass) ||
+            (itemId && $document.find('#' + itemId).length) ||
+            (itemClass && $document.find('.' + itemClass).length)) {
+            return;
+          }
+          removals = true;
+          $this.remove();
+        });
+
+      // If there were removals, we'll have to do some clean-up.
+      if (removals) {
+        var total = $tour.find('li').length;
+        if (!total) {
+          this.model.set({tour: []});
+        }
+
+        $tour
+          .find('li')
+          // Rebuild the progress data.
+          .each(function (index) {
+            var progress = Drupal.t('!tour_item of !total', {'!tour_item': index + 1, '!total': total});
+            $(this).find('.tour-progress').text(progress);
+          })
+          // Update the last item to have "End tour" as the button.
+          .eq(-1)
+          .attr('data-text', Drupal.t('End tour'));
+      }
+    }
+
+  });
+
+})(jQuery, Backbone, Drupal, document);
+;
+/**
+ * @file
+ * Manages page tabbing modifications made by modules.
+ */
+
+(function ($, Drupal) {
+
+  "use strict";
+
+  /**
+   * Provides an API for managing page tabbing order modifications.
+   */
+  function TabbingManager() {
+    // Tabbing sets are stored as a stack. The active set is at the top of the
+    // stack. We use a JavaScript array as if it were a stack; we consider the
+    // first element to be the bottom and the last element to be the top. This
+    // allows us to use JavaScript's built-in Array.push() and Array.pop()
+    // methods.
+    this.stack = [];
+  }
+
+  /**
+   * Add public methods to the TabbingManager class.
+   */
+  $.extend(TabbingManager.prototype, {
+    /**
+     * Constrain tabbing to the specified set of elements only.
+     *
+     * Makes elements outside of the specified set of elements unreachable via the
+     * tab key.
+     *
+     * @param jQuery elements
+     *   The set of elements to which tabbing should be constrained. Can also be
+     *   a jQuery-compatible selector string.
+     *
+     * @return TabbingContext
+     */
+    constrain: function (elements) {
+      // Deactivate all tabbingContexts to prepare for the new constraint. A
+      // tabbingContext instance will only be reactivated if the stack is unwound
+      // to it in the _unwindStack() method.
+      var il = this.stack.length;
+      for (var i = 0; i < il; i++) {
+        this.stack[i].deactivate();
+      }
+
+      // The "active tabbing set" are the elements tabbing should be constrained
+      // to.
+      var $elements = $(elements).find(':tabbable').addBack(':tabbable');
+
+      var tabbingContext = new TabbingContext({
+        // The level is the current height of the stack before this new
+        // tabbingContext is pushed on top of the stack.
+        level: this.stack.length,
+        $tabbableElements: $elements
+      });
+
+      this.stack.push(tabbingContext);
+
+      // Activates the tabbingContext; this will manipulate the DOM to constrain
+      // tabbing.
+      tabbingContext.activate();
+
+      // Allow modules to respond to the constrain event.
+      $(document).trigger('drupalTabbingConstrained', tabbingContext);
+
+      return tabbingContext;
+    },
+
+    /**
+     * Restores a former tabbingContext when an active tabbingContext is released.
+     *
+     * The TabbingManager stack of tabbingContext instances will be unwound from
+     * the top-most released tabbingContext down to the first non-released
+     * tabbingContext instance. This non-released instance is then activated.
+     */
+    release: function () {
+      // Unwind as far as possible: find the topmost non-released tabbingContext.
+      var toActivate = this.stack.length - 1;
+      while (toActivate >= 0 && this.stack[toActivate].released) {
+        toActivate--;
+      }
+
+      // Delete all tabbingContexts after the to be activated one. They have
+      // already been deactivated, so their effect on the DOM has been reversed.
+      this.stack.splice(toActivate + 1);
+
+      // Get topmost tabbingContext, if one exists, and activate it.
+      if (toActivate >= 0) {
+        this.stack[toActivate].activate();
+      }
+    },
+
+    /**
+     * Makes all elements outside the of the tabbingContext's set untabbable.
+     *
+     * Elements made untabbable have their original tabindex and autofocus values
+     * stored so that they might be restored later when this tabbingContext
+     * is deactivated.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been activated.
+     */
+    activate: function (tabbingContext) {
+      var $set = tabbingContext.$tabbableElements;
+      var level = tabbingContext.level;
+      // Determine which elements are reachable via tabbing by default.
+      var $disabledSet = $(':tabbable')
+        // Exclude elements of the active tabbing set.
+        .not($set);
+      // Set the disabled set on the tabbingContext.
+      tabbingContext.$disabledElements = $disabledSet;
+      // Record the tabindex for each element, so we can restore it later.
+      var il = $disabledSet.length;
+      for (var i = 0; i < il; i++) {
+        this.recordTabindex($disabledSet.eq(i), level);
+      }
+      // Make all tabbable elements outside of the active tabbing set unreachable.
+      $disabledSet
+        .prop('tabindex', -1)
+        .prop('autofocus', false);
+
+      // Set focus on an element in the tabbingContext's set of tabbable elements.
+      // First, check if there is an element with an autofocus attribute. Select
+      // the last one from the DOM order.
+      var $hasFocus = $set.filter('[autofocus]').eq(-1);
+      // If no element in the tabbable set has an autofocus attribute, select the
+      // first element in the set.
+      if ($hasFocus.length === 0) {
+        $hasFocus = $set.eq(0);
+      }
+      $hasFocus.trigger('focus');
+    },
+
+    /**
+     * Restores that tabbable state of a tabbingContext's disabled elements.
+     *
+     * Elements that were made untabbable have their original tabindex and autofocus
+     * values restored.
+     *
+     * @param TabbingContext tabbingContext
+     *   The TabbingContext instance that has been deactivated.
+     */
+    deactivate: function (tabbingContext) {
+      var $set = tabbingContext.$disabledElements;
+      var level = tabbingContext.level;
+      var il = $set.length;
+      for (var i = 0; i < il; i++) {
+        this.restoreTabindex($set.eq(i), level);
+      }
+    },
+
+    /**
+     * Records the tabindex and autofocus values of an untabbable element.
+     *
+     * @param jQuery $set
+     *   The set of elements that have been disabled.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be recorded.
+     */
+    recordTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices') || {};
+      tabInfo[level] = {
+        tabindex: $el[0].getAttribute('tabindex'),
+        autofocus: $el[0].hasAttribute('autofocus')
+      };
+      $el.data('drupalOriginalTabIndices', tabInfo);
+    },
+
+    /**
+     * Restores the tabindex and autofocus values of a reactivated element.
+     *
+     * @param jQuery $el
+     *   The element that is being reactivated.
+     * @param Number level
+     *   The stack level for which the tabindex attribute should be restored.
+     */
+    restoreTabindex: function ($el, level) {
+      var tabInfo = $el.data('drupalOriginalTabIndices');
+      if (tabInfo && tabInfo[level]) {
+        var data = tabInfo[level];
+        if (data.tabindex) {
+          $el[0].setAttribute('tabindex', data.tabindex);
+        }
+        // If the element did not have a tabindex at this stack level then
+        // remove it.
+        else {
+          $el[0].removeAttribute('tabindex');
+        }
+        if (data.autofocus) {
+          $el[0].setAttribute('autofocus', 'autofocus');
+        }
+
+        // Clean up $.data.
+        if (level === 0) {
+          // Remove all data.
+          $el.removeData('drupalOriginalTabIndices');
+        }
+        else {
+          // Remove the data for this stack level and higher.
+          var levelToDelete = level;
+          while (tabInfo.hasOwnProperty(levelToDelete)) {
+            delete tabInfo[levelToDelete];
+            levelToDelete++;
+          }
+          $el.data('drupalOriginalTabIndices', tabInfo);
+        }
+      }
+    }
+  });
+
+  /**
+   * Stores a set of tabbable elements.
+   *
+   * This constraint can be removed with the release() method.
+   *
+   * @param Object options
+   *   A set of initiating values that include:
+   *   - Number level: The level in the TabbingManager's stack of this
+   *   tabbingContext.
+   *   - jQuery $tabbableElements: The DOM elements that should be reachable via
+   *   the tab key when this tabbingContext is active.
+   *   - jQuery $disabledElements: The DOM elements that should not be reachable
+   *   via the tab key when this tabbingContext is active.
+   *   - Boolean released: A released tabbingContext can never be activated again.
+   *   It will be cleaned up when the TabbingManager unwinds its stack.
+   *   - Boolean active: When true, the tabbable elements of this tabbingContext
+   *   will be reachable via the tab key and the disabled elements will not. Only
+   *   one tabbingContext can be active at a time.
+   */
+  function TabbingContext(options) {
+    $.extend(this, {
+      level: null,
+      $tabbableElements: $(),
+      $disabledElements: $(),
+      released: false,
+      active: false
+    }, options);
+  }
+
+  /**
+   * Add public methods to the TabbingContext class.
+   */
+  $.extend(TabbingContext.prototype, {
+    /**
+     * Releases this TabbingContext.
+     *
+     * Once a TabbingContext object is released, it can never be activated again.
+     */
+    release: function () {
+      if (!this.released) {
+        this.deactivate();
+        this.released = true;
+        Drupal.tabbingManager.release(this);
+        // Allow modules to respond to the tabbingContext release event.
+        $(document).trigger('drupalTabbingContextReleased', this);
+      }
+    },
+
+    /**
+     * Activates this TabbingContext.
+     */
+    activate: function () {
+      // A released TabbingContext object can never be activated again.
+      if (!this.active && !this.released) {
+        this.active = true;
+        Drupal.tabbingManager.activate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextActivated', this);
+      }
+    },
+
+    /**
+     * Deactivates this TabbingContext.
+     */
+    deactivate: function () {
+      if (this.active) {
+        this.active = false;
+        Drupal.tabbingManager.deactivate(this);
+        // Allow modules to respond to the constrain event.
+        $(document).trigger('drupalTabbingContextDeactivated', this);
+      }
+    }
+  });
+
+  // Mark this behavior as processed on the first pass and return if it is
+  // already processed.
+  if (Drupal.tabbingManager) {
+    return;
+  }
+  Drupal.tabbingManager = new TabbingManager();
+
+}(jQuery, Drupal));
+;
+/**
+ * @file
+ * Attaches behaviors for the Contextual module's edit toolbar tab.
+ */
+
+(function ($, Drupal, Backbone) {
+
+  "use strict";
+
+  var strings = {
+    tabbingReleased: Drupal.t('Tabbing is no longer constrained by the Contextual module.'),
+    tabbingConstrained: Drupal.t('Tabbing is constrained to a set of @contextualsCount and the edit mode toggle.'),
+    pressEsc: Drupal.t('Press the esc key to exit.')
+  };
+
+  /**
+   * Initializes a contextual link: updates its DOM, sets up model and views
+   *
+   * @param DOM links
+   *   A contextual links DOM element as rendered by the server.
+   */
+  function initContextualToolbar(context) {
+    if (!Drupal.contextual || !Drupal.contextual.collection) {
+      return;
+    }
+
+    var contextualToolbar = Drupal.contextualToolbar;
+    var model = contextualToolbar.model = new contextualToolbar.StateModel({
+      // Checks whether localStorage indicates we should start in edit mode
+      // rather than view mode.
+      // @see Drupal.contextualToolbar.VisualView.persist()
+      isViewing: localStorage.getItem('Drupal.contextualToolbar.isViewing') !== 'false'
+    }, {
+      contextualCollection: Drupal.contextual.collection
+    });
+
+    var viewOptions = {
+      el: $('.toolbar .toolbar-bar .contextual-toolbar-tab'),
+      model: model,
+      strings: strings
+    };
+    new contextualToolbar.VisualView(viewOptions);
+    new contextualToolbar.AuralView(viewOptions);
+  }
+
+  /**
+   * Attaches contextual's edit toolbar tab behavior.
+   */
+  Drupal.behaviors.contextualToolbar = {
+    attach: function (context) {
+      if ($('body').once('contextualToolbar-init').length) {
+        initContextualToolbar(context);
+      }
+    }
+  };
+
+  Drupal.contextualToolbar = {
+    // The Drupal.contextualToolbar.Model instance.
+    model: null
+  };
+
+})(jQuery, Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone Model for the state of Contextual module's edit toolbar tab.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Models the state of the edit mode toggle.
+   */
+  Drupal.contextualToolbar.StateModel = Backbone.Model.extend({
+
+    defaults: {
+      // Indicates whether the toggle is currently in "view" or "edit" mode.
+      isViewing: true,
+      // Indicates whether the toggle should be visible or hidden. Automatically
+      // calculated, depends on contextualCount.
+      isVisible: false,
+      // Tracks how many contextual links exist on the page.
+      contextualCount: 0,
+      // A TabbingContext object as returned by Drupal.TabbingManager: the set
+      // of tabbable elements when edit mode is enabled.
+      tabbingContext: null
+    },
+
+    /**
+     * {@inheritdoc}
+     *
+     * @param Object attrs
+     * @param Object options
+     *   An object with the following option:
+     *     - Backbone.collection contextualCollection: the collection of
+     *       Drupal.contextual.StateModel models that represent the contextual
+     *       links on the page.
+     */
+    initialize: function (attrs, options) {
+      // Respond to new/removed contextual links.
+      this.listenTo(options.contextualCollection, {
+        'reset remove add': this.countContextualLinks,
+        'add': this.lockNewContextualLinks
+      });
+
+      this.listenTo(this, {
+        // Automatically determine visibility.
+        'change:contextualCount': this.updateVisibility,
+        // Whenever edit mode is toggled, lock all contextual links.
+        'change:isViewing': function (model, isViewing) {
+          options.contextualCollection.each(function (contextualModel) {
+            contextualModel.set('isLocked', !isViewing);
+          });
+        }
+      });
+    },
+
+    /**
+     * Tracks the number of contextual link models in the collection.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added or removed.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    countContextualLinks: function (contextualModel, contextualCollection) {
+      this.set('contextualCount', contextualCollection.length);
+    },
+
+    /**
+     * Lock newly added contextual links if edit mode is enabled.
+     *
+     * @param Drupal.contextual.StateModel contextualModel
+     *   The contextual links model that was added.
+     * @param Backbone.Collection contextualCollection
+     *    The collection of contextual link models.
+     */
+    lockNewContextualLinks: function (contextualModel, contextualCollection) {
+      if (!this.get('isViewing')) {
+        contextualModel.set('isLocked', true);
+      }
+    },
+
+    /**
+     * Automatically updates visibility of the view/edit mode toggle.
+     */
+    updateVisibility: function () {
+      this.set('isVisible', this.get('contextualCount') > 0);
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone View that provides the aural view of the edit mode toggle.
+ */
+
+(function ($, Drupal, Backbone, _) {
+
+  "use strict";
+
+  /**
+   * Renders the aural view of the edit mode toggle (i.e.screen reader support).
+   */
+  Drupal.contextualToolbar.AuralView = Backbone.View.extend({
+
+    // Tracks whether the tabbing constraint announcement has been read once yet.
+    announcedOnce: false,
+
+    /*
+     * {@inheritdoc}
+     */
+    initialize: function (options) {
+      this.options = options;
+
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.manageTabbing);
+
+      $(document).on('keyup', _.bind(this.onKeypress, this));
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the state.
+      this.$el.find('button').attr('aria-pressed', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Limits tabbing to the contextual links and edit mode toolbar tab.
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    manageTabbing: function () {
+      var tabbingContext = this.model.get('tabbingContext');
+      // Always release an existing tabbing context.
+      if (tabbingContext) {
+        tabbingContext.release();
+        Drupal.announce(this.options.strings.tabbingReleased);
+      }
+      // Create a new tabbing context when edit mode is enabled.
+      if (!this.model.get('isViewing')) {
+        tabbingContext = Drupal.tabbingManager.constrain($('.contextual-toolbar-tab, .contextual'));
+        this.model.set('tabbingContext', tabbingContext);
+        this.announceTabbingConstraint();
+        this.announcedOnce = true;
+      }
+    },
+
+    /**
+     * Announces the current tabbing constraint.
+     */
+    announceTabbingConstraint: function () {
+      var strings = this.options.strings;
+      Drupal.announce(Drupal.formatString(strings.tabbingConstrained, {
+        '@contextualsCount': Drupal.formatPlural(Drupal.contextual.collection.length, '@count contextual link', '@count contextual links')
+      }));
+      Drupal.announce(strings.pressEsc);
+    },
+
+    /**
+     * Responds to esc and tab key press events.
+     *
+     * @param jQuery.Event event
+     */
+    onKeypress: function (event) {
+      // The first tab key press is tracked so that an annoucement about tabbing
+      // constraints can be raised if edit mode is enabled when the page is
+      // loaded.
+      if (!this.announcedOnce && event.keyCode === 9 && !this.model.get('isViewing')) {
+        this.announceTabbingConstraint();
+        // Set announce to true so that this conditional block won't run again.
+        this.announcedOnce = true;
+      }
+      // Respond to the ESC key. Exit out of edit mode.
+      if (event.keyCode === 27) {
+        this.model.set('isViewing', true);
+      }
+    }
+
+  });
+
+})(jQuery, Drupal, Backbone, _);
+;
+/**
+ * @file
+ * A Backbone View that provides the visual view of the edit mode toggle.
+ */
+
+(function (Drupal, Backbone) {
+
+  "use strict";
+
+  /**
+   * Renders the visual view of the edit mode toggle. Listens to mouse & touch.
+   *
+   * Handles edit mode toggle interactions.
+   */
+  Drupal.contextualToolbar.VisualView = Backbone.View.extend({
+
+    events: function () {
+      // Prevents delay and simulated mouse events.
+      var touchEndToClick = function (event) {
+        event.preventDefault();
+        event.target.click();
+      };
+
+      return {
+        'click': function () {
+          this.model.set('isViewing', !this.model.get('isViewing'));
+        },
+        'touchend': touchEndToClick
+      };
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.persist);
+    },
+
+    /**
+     * {@inheritdoc}
+     */
+    render: function () {
+      // Render the visibility.
+      this.$el.toggleClass('hidden', !this.model.get('isVisible'));
+      // Render the state.
+      this.$el.find('button').toggleClass('is-active', !this.model.get('isViewing'));
+
+      return this;
+    },
+
+    /**
+     * Model change handler; persists the isViewing value to localStorage.
+     *
+     * isViewing === true is the default, so only stores in localStorage when
+     * it's not the default value (i.e. false).
+     *
+     * @param Drupal.contextualToolbar.StateModel model
+     *   A Drupal.contextualToolbar.StateModel model.
+     * @param bool isViewing
+     *   The value of the isViewing attribute in the model.
+     */
+    persist: function (model, isViewing) {
+      if (!isViewing) {
+        localStorage.setItem('Drupal.contextualToolbar.isViewing', 'false');
+      }
+      else {
+        localStorage.removeItem('Drupal.contextualToolbar.isViewing');
+      }
+    }
+
+  });
+
+})(Drupal, Backbone);
+;
+/**
+ * @file
+ *
+ * Replaces the home link in toolbar with a back to site link.
+ */
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  var pathInfo = drupalSettings.path;
+  var escapeAdminPath = sessionStorage.getItem('escapeAdminPath');
+  var windowLocation = window.location;
+
+  // Saves the last non-administrative page in the browser to be able to link back
+  // to it when browsing administrative pages. If there is a destination parameter
+  // there is not need to save the current path because the page is loaded within
+  // an existing "workflow".
+  if (!pathInfo.currentPathIsAdmin && !/destination=/.test(windowLocation.search)) {
+    sessionStorage.setItem('escapeAdminPath', windowLocation);
+  }
+
+  /**
+   * Replaces the "Home" link with "Back to site" link.
+   *
+   * Back to site link points to the last non-administrative page the user visited
+   * within the same browser tab.
+   */
+  Drupal.behaviors.escapeAdmin = {
+    attach: function () {
+      var $toolbarEscape = $('[data-toolbar-escape-admin]').once('escapeAdmin');
+      if ($toolbarEscape.length && pathInfo.currentPathIsAdmin) {
+        if (escapeAdminPath !== null) {
+          $toolbarEscape.attr('href', escapeAdminPath);
+        }
+        else {
+          $toolbarEscape.text(Drupal.t('Home'));
+        }
+        $toolbarEscape.closest('.toolbar-tab').removeClass('hidden');
+      }
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
diff --git a/sites/default/files/js/js_xXOlF90KMxOoEFgnD2gqOnw0zbhHZ9HvM3EPVyAAJyU.js.gz b/sites/default/files/js/js_xXOlF90KMxOoEFgnD2gqOnw0zbhHZ9HvM3EPVyAAJyU.js.gz
new file mode 100644
index 0000000..4583b31
--- /dev/null
+++ b/sites/default/files/js/js_xXOlF90KMxOoEFgnD2gqOnw0zbhHZ9HvM3EPVyAAJyU.js.gz
@@ -0,0 +1,531 @@
+     ֕/޿B=`B=-8N6=ӦC1 	HB&Aˎ (;9m,ⱱk^G䫏:/[V8Zߋ?ߖ8r/G*xo:jz6/FrhYP.atë|TiZ}IkQ7N\Ufq9,eRGQbIxdDlU޶mjU@b|ZrLenjFw jZh0b#]'?I5+ֱ?٪5Jx:kPը\*f=tAu^NYzt֩ժXN+e뗷W&_Uk;/Ҁ/5LĲ3YRCEovqҿ\_n}i|CNӳ]zv/鯃lZīƆnOuF.ZNUYN 'Y4jU*Y|e|9fy\OV]mи3SOz(z珳J6~:R gį+F^X!d988C߿dO8([V]gYҼnbYEv4Jt:.f7xdg2XzJ#ak;jFbUϩ<5Lb(mg9L|9zz}^`~9>8J`\$xM()MM?bӢ}wvĐh1iqO[ݳЀy~]t'@gò"qxNfv;t%tVkmPKDiAMpgQx<"³k)Яa F?3=J1w|jKpyӃ(9G<>/GQoLs.~KCF&*MޗŸuzE]NFh=Qd#huVxo(.!,Q\̳<At<8$*,o\`$o֣a-"ըI(zLqqF5e!aZU1j.Aч7j;/3'Q*pi
+oYgY7t+ )W$swѕ`.ﱥ,q@]7/'Wq={>6L^5G^doeۭdio/ "ڠD'蝗l}6)^t3XЋ2T|+ċT1a:VyV9vlG^YbΌY1èCL"_s&JF6([s>"q+	h=&V4aS2R隺%6b&ry7|7e|@5bK	5EC]>7g~q-|Jc9.@}LJ@o`=+?Lj&Xiikfom&,#.#/#ڹ6NFz=^$Sdj]ŴIwCc DwxbۃtQ2)0R^ gOYz4NOj`pџP)Z+BY~jS^g\hk L-ŌӢn )kDFQ׀D@.*h78	+hp==8̌oRR4)xTqE4]z6.Ε+4h~mZ'B m&>%t77Q{0h-|iGbn֏هl%	KA8}=l`<t 0`eM;mHq5d5h;:OCR)m[>c~zCתi8E|_x/2p븊7i.~u틇0{W0}LggY|O(GQLk4/.o9ϰ˿Munʛ/HxN"5='k3~<ꎄd$+!i^⿥hVdfm	W?n!iz;'j;.pN̊8_n5xb3y-D7rq&ֈ^4_^~xt~yY]^./AH\:[*p{:7;D !}a(Kp	_e?hAE;*u˃zi6~Od{_\xslhj>Jޙ//0UG0	A%0v%#ʶ4'Gy*DQ?Pna,?M_"DO^TNh{qwx7F=&^M=}ׯ4P͓oI)͛Z/^F~euwϿu-	Ybfw4ޖS 7<jVߦ]rkWPMa%(!o42맢OJY9m4&?];zuca/B}WfS)EgHvȶMUY']q _˻2y,~+>д`A=,K4xHW7/I
+e>m8N';Eo+C=# JDgO?|GY#`qOh{g*Og)p/?џ_?xxt΂,=VSl̳-;}Q=ZiP&DkK*_fI5rMwoK1u<"e&DޗLo`eao)oEܷa>*xA=#~X%`Q$&HGp~D.?j;FGܰdxʆm'B}N.jFOJ_|>hFkk) ]g<XZW$Sm~!oYM6,I<__)5~NS}A*[C<zG3Sk%y*7$O-N9KG}AtWSKJIE@B芨I1&>G3bB((v15qE4'A{N fdOOO?*quo,"Xh (ѕX"LʇHao6o;|Z<Qvn7)[W)tj*.B1\F(!rCsGc!<E</c-IA~YϊIF$ u_"sK̀t= ;:х(w1Hn9#lי!Lit9ƸR|-?BW>
+.]hkYPnOu;xaQ$]Βb8'
+7r]$MBc(3RKM<ysC3V I¥]tmmRi+c?9P4$H4!Q8K7^ pN5m(g_|/2/S,2j޼ǿ	mx敮Aϡ75BAoOt-HIF"ߋ6srCC;xb]ԏ#ˌGQcvRP9aP.mq7tFW>Ҥ1%;>jʼ&`ݮ0r!jnC^T ߪ!!oCl|	^@KtDf7QBELBpS&q75L1istjdSc%%Gѻ]U7az[]
+3/л]4+C>kLOf?z>orX{MOAV6av1R6jATiǀDwN!9L#3Kc	Mvz~XauǍ͛A1^a8Gp"$d	r_e-7#?,{(वXUގwPFtJ!]A^u|N;qZ#t~PjTVꪬ60toEisb_6z]W_f>ӆvImuOL뜵pSQ.a'"fJ/oMާ㦵/EeŇ&-_
+i8H@-_Ɲ	+Y@׺?kԫzŋEkӲbdT&rtοbb{_awVjlGi,KߙwTm|"-33RvFQyuGq}SlYerO^VgHKC_:>cb£(ƎAQ82M%Jlux|-7թ4;J odhsQao=4!V|]>27&f"mp_9O0J.c̺X}OXCqC7Ր =|-8`0RC{u5}py__4-Сl8p.?VF> NSrL:'oZ;Ju6KQPj\pKIYǂ~qmယĻ${t	1(YLcVBs"`j?1so1P3F8HO\Ǵ3-v:>^	FD@W]6BMEc6 W (hYolb-JGw;;'x)Bps󢍿*fz <YrKƵQ/gэ:5+Io1֩WuhO1&"&"c$F3F3xfCKƭr57|f+hg2eAlkSۘ0fLZש+؀ <Q<	l		FX"&ۓ(rԋ2PfmRLN5-aєC3C3MAnZd"#@KoE޳bC>\V	3fpYnW9jlFtXz)gϥFIuzh?ZqY$9dh]s>LAr7.VI`nacyfF}_
+v1=OśA?5?__B/`XQ ;.X@"qf 5}T: m˸#G 'Rl;A_
+$9>M;fѠs@6bdOy2:>`x%7#kF|:Nusz1bjl<qWVB֨Y/ޞޑTƿ;~IF+L6/a ,08nP֠Ź&S ⽶SۻyREñ$y-¼ȃ8Q_-rg(	ڗwNRE`ax^v85/vp$t~lR.̧Yi p	DO/XMQȕGO
+gN ;_XWN;&IDws#yf s֛z+6Yڣn,-lQ7HwOu0|=:}"~JW5qlL(D<sØr`Fn9G2=^)oB6z|n/8KwEڿe[box5eCPu=WI#buo\iR8͝ad2*o`q4(Y,HI(8g@[op-yP	CBjC	gIⶥᴍ9u@壋ɵ,bBjp@sڪYY]qm3 )c֎OvQYCuP=IeMVl"`:1 i:ւv@c5057s
+3gIٖ2K!zv|KC,Nvhcl8w5CGᝒ}Ԓq"~5#	H=DO 9yhcJ}{82te.px5͕>,	^wX7cLL-|j鱮DV%ISUe+۵,G(H5;J{!]Řltެ$/;Òm:wt߬3[$M=Ȇl'|"̮"AR~0pꬦL;!O|r F{qWj澹&O#A,9UL_SjK[gX82櫦ڬfN?	l*φb'\&Hhْ{K^ա6`5sP|3M]UKI"4H(L7j$|6c;d7Q3>󪩣Ƴ/5}힞j^5Ϯ5lD4:x-߭qQ7ksސ y[Ƹ.wʆt+H[z3\P-ū8K)
+t.sB|h+ǎ.#d
+N:Z5=,h_DOHXj{ɵѓvaH\Nt8k1EAٖzɡ"Qv;b8zᘊTS-چ5H;Q:ą+uFp,k1舚Jv{E>݋i@<:FLOf=_i΂*$@P$(aw6|ޚX7\!a:G]
+j(I={α95}*=a4aWP3TU9UӇ;HkdL`gq3#ΠFuԏ"U☼V}0Jf`iO-nLI+ݵ #G{oyJ] 3xkD9+FTWlN NӅ[4aTfƧG<#ϐX@OOU' 4}3kAIf,Kr4MB3u/HfF*I/KJ֣^LwlN96HIZ>^K	bL,^\W> \C]t򝺚G E#Ϫw%knΜX]Wi+<JxD|W?OW8uQLi(SpL?1fBƥwQ )t(h!2ib*g8,
+XU	\G6#8!v'suabJ EO?B5PW	-FS(:4Y&*"Gƒvm]OExL!K5'.N/"T@YZ>,*NI=ڊI윰Aڡqq|VY IyjT)hмC`}FqOA4u-@59<@cTk쬊mU.[}zNE0Im"nĺ\K*15FwtX=5cp|<Ѱ^,o0Ơ}3FzxU1M;}SAtok(m!є=y|lYQ5~+f5:iP6C3qJ xcelD*;CY%]nN&c̑K8PΦgIр"@i\_uZj#(c\#x-(ĄH,=L1timbi=^ëU:'D<"~750DJ6N:``4s'یf/NYԘ0J"Mo#cw|ib2  HNĨ.h]OBd^{"eI=^i=4-rbL	!·6Z\(
+$0qylI{`R-5!H(Vv=+{HLC^8(!ByHu&-Fgy1Ub\͂']Ir+o"HמMsX1v. `|s	>1n)j<4NbE1wtX1gBaҡS!jݲfgctV hj{a!cC7vmx`=V?fVzJ=#oVFT[FO%DCO?6=KzdL +s։#SrWJ'z^-JNN<x*2>yEK7М,;ag:>[UAx~,ୱ[5U
+"um&⾖mhqz.]ZD	sCd8H%a+F!ꦺl#?!/Mi4u³wld冞U`mzxѠXKc29bq8bQA#rU{Ľ=q
+Y~qa}l
+cT`沎.xO< M?Gp4"1^;1f*f#_/o/1h?<<ܪ39̓ԄnfKֿqfcDJDqZKeqE/B-_uQ5Kx4A	1R%{1kwt'[Uvr2ݸt`Axx͎x6jj#Z;8#hkU稧.DԐQ('nDAN1Z:ǝhQym4OLW'flca>/Cw$
+nG+/4a>L]sL_I\oaF?-beѳizvWTbk!}sE0hn&-̀GL!CH5ЪtR#0^.H[;)E)HAÑv=*Gv#]XsHD!^Wvh3u, =
+#aaPt:wVN.]ġX<M%Vx4Y-97|Aƃ.T͘nO	4TVhݕ 'fiX;=0$(zAn#d_A\+tO#oІDam&%VbxYy/a܀P&ɫ!H꾮'Ep+#\5BF,FYG*]6w*,b) #$.Αcd`w0LqçxYP`<h'8Pٺa ޡ44Oyw	@m9uug|Ro-h'I"Gto= iBEZH-BAAnCI1GOgOG졢15AO7])[ܐGVOk-:#b?K._Ϧc?HZg>cg[σYi?%9Vמ[O,ʷ;Ve$6>ls-Q7Ex|<Mq|+?λ$NOS3rr1[_U޼\~ĬCv'TQX
+#:_VFɰ';HB}6=QCC^a-`*j4A/zg0LSل-<u- ω)β;$&CQ|a(].?Pl]@	 iUyKтfZ<[g'xW6u0,1rZ5_#tcpC曣..EtĴ9ФGl-sa4aG'qրx 	 o%y4nGĈktf1W~=rI?2BQ e*;1>q0m+eUL> ȵogrޑ<_5Mو6nxw0,gCvpoVK8u@HS̢v=Nf4//nGAaTu3Q8 .
+±=sF2QG-4`eYrVΜ /pGV74Kg92}BӜwptDق08gvv2<(_LbGR/ـӈ<{ (yBƩ{y_zs0=c9gQirbfpbw;˛,aSqKֳ{/KȆE4AG"AsIξEoHNO'TCyN |e-o
+n[E<W<>\o DuSgs(;N,(zmWne,7.bYQ%g˞D݅G߽+ac{ga>en8{SY@鎈Ns~ j?pa!\<^yD[*m-7/_(l0YϡWRy0iwom e[#WDΫ7"/7Upp:]';EC>9A_hD;CP6MƧbutCzޝA->t3\;1NJwC~dB{BC$^C9ή]ֈ)1!̋	k|'Xq`N%B4+ɪ,	"q+(ۍh*a֦۽QYWu8sЎӋoj=vr^2ۚ.SSC	?jy=-`7M@g&88~;,<q$yl>Zu0C@ Ț~pLWd˩nޯI=5t*s:=cI4m޺ɽvؠgȨ^hkS}UWˎa}<T^/Ga/XGl.ԝ#w`TٜצF=c'CVs9=FwrsFB.i Oa&0Hl8޷\T1r1X<-gXMW#Gʗ kEM{j#=sh_	_?m/zYrHl+ܵڋ*/91Miж^)<k&KDR`ZN")Zm8:/u{ Drqڣv QS}V29!^8-qF;·^tK>޹%!#ݽP\
+ZUZ{x{y #t3DL}&Ι&,VD	 tJٸ k|B&]$1Vڤ?%n<p"{z`3"Y&Dj!P1Zmͬ.Ce%js0SF.h9i3@ 8r:g6s|gߩh+o4 ѵ{k`, w|O}3$e!OCޒX%7ILΦtM)MLL(E68e`KIV]ͅqRowey6K-;5]j]"1d7i=-DGReĠcRQ!a>@M'vDr#oj.Yeskp,ĈQ|'Ժ2AY@lQe*I?9h$2@f{07ۚX;irt@X!8+-4i7`c%yzL
+MIz\Ĺ ZP\5$F]N,Us(x?q+#;R;BgtF]RpRܝz`/;rܦ~l/vT>i?xSq#벪]|O`>q'X#(9vC(|~FP`	*NF+vMّ?>ՁX  ܡ/8{*H~p.Lp&~z(X΄41Z羠S&>ՙe?R6'?PWS?:S,|8m	ONIRYYEYۛXVj̷h7vDYT5I
+Z[n|$y"t9d' kinPHAfO߆"BH~%فr/a6G`ֺavX%ٵόu&'	&)g8t((askh8O^}kR*$tzlTif7	9jP	6$sBD9A:`Qs"t8K)@,7]`M"T:}*KN>'ټ_Myo1=!"wpxݖoSK9E4)\;ƱZd$ebIXe~&"9Ҡ	ɍrTpԻ
+G3`<mnՅu!p"9@`{@jhP2#U[hkZSUrLfWD
+QynEIrr90?#txY3"$E%5A>	q`Ӆ?	:]#);CV!Tc
+cy.>gP2͌MlNOc}P+QwJYXĂctiKhwKH/6![}u#`SVxُ*~wLWK	NO=;h\9%`M:K9_<K|r|{~g1$~eʕ<8qv>Ms$o]wH7g)XҾXvd!{jC+oki{|;S,.v]y3LD	0c@ՑxRp(铿^o6G[%.;*8*#$4`G8}Oŗ0|tMzy3wbPzXj}/iFNG\PAsl"UI৿9cqFM9$He<Ii,HCSY=ߗL%X W-#D>>p$Qy*6C}BDIq:c+)bߪ;>ת78sbmB=@Ea+LNƎGGOcY[\u@%@e-n'1O+B6.WLVsG:7ڇw3Ӝn
+	C!`:
+;Fulҡ.⑻i@dE>.ƢʸL{SZրSLCP֧{j9'SG9RЬV8T)flXLq5e+ו^7,:ƙX=OMt݇ ~|\i%
+(q,U=?GP@|Kh`0@+fD1KP#aI
+zOlolH8$xz04U+lJ2*L*#bB#;6vUO
+;YWܘB`e9e:	yck(sLZkTx+=G20(X`em[U_Whff!յh@?Oii[p](tn_0w]y^\VdfK~hMr2!1gmgzTZO=ѭqDN>AO
+=Xi+k*L(sS9U=8N|rp"'S?ߔ7^|_ۖq9o/vkvx7 *~|I%uM4LOFaDJw0ԙja:M$r7v_7eЛv+Km*D}jGV>#hB	\Taח)q=_H<e'o2i|zSO$Ŋ&w5D a95CoY_(D4AZ㻋TC>P͔*{
+ v	%&1,<n(UfLuz  sk'E 7062,aIGZg.Bu=7J@7=Y={6s"*bV7J!^cvbk.{ƣ&buAB
+Bv	loBt*CMM&A/e8v3yPQ"fR.kI0rVlq4t"+"u皘0y7i ?C׸v54?
+p҆G)-}gJ4kN{ 1|iӭy>׏	OWwQW59{yDbkM]
+絃#1曃SQpN{r8gJSddPy,VM؝2B
+&wf6G-M|IuS<)#:L*K/&XҌ*aΑ`dlQxZO/yϫ>G|F`{ x	;Κ|i$dhS
+3p&DGtmgԘ8\3Fi4xe9hEr<&r>GMQ(B0oHO}n8qk߈=3!Y(%ؘ&MleZ9	Nr& +kT.*AܓOfciJ+']jVl5Gva.IBTS+MoC0ܡp`Yc6J|b<sJB{\^lCiZ#:v(kсfUg_#Xl0^oŐXj[,[!byzgK[BKm]=>+Sonǿ]޶gXJHn/n8Ϲ謈sz~nI۔9P&T3*q϶hER#5,@!uaTWG0?ɛ'-I[<\pJ<8EIZ_	\T<OO	~u&D$q\y.1jd^~ESbnsV.RtR_ԋ~UTo?G6 Ib7$kGդ,+\u=fؚ.]eΑ-〻DhF	UIsZM6oqxlؤլfrC( Lׯ4焢M;.m%5953g$1Pt9 r^nl/T<FJ-ā<{̓AThX9Y_Q{XXE0Ɛ bXnmk^!7Am.E`tASө"u̢cLEhC)G:L\{27oꣂ(e|%<8ͦO#&N p4y@%I){9um.S?s!6Ekfa'=vD[?Z
+v:ڨ(eP3Qc#oRϻCx
+7aA	yJ-S8tGq MNf	ٌVM(Ft!BmUIj<6KX|.$Ssѓ;<Ν< #ê2~b>=><`=Má·غEms"d%i$q&oN*&DZ<zDmX:C)ǂnF];Ή@ڥp7kb5W@MHEl3sdaל{qNcrOdDND&gnO'b&CpO+}5jgp!0G䎡<7ZBi*P'mN[֡CmY׵Vh^k]|H7V7ۓDɄF{
+Sx.aEó?E:Юr<~JyKg\.^d1l/ؿYŝLOCQik>0r^/V(еܚMgf;b绡z;M ]_i
+0X2cő24SG5
+$O]2֡Ldc6Ru;&9bQ= sXF&YԚg)"T8e(68>h,agbN6҆5ӛXy
+8G7#~/;Ap(fҢHsQ˟T_:;NNc_(Yu]QB}r1}#1G@z]NKx*,tأ}ȳ4W
+_E9Z.|L6nX^x]vn\o\MV-NHa`yXy]?;:t4wjG*h?9<DL[[[OT_+,9QiKLe4CSB% K#LľfU$j{ҟؼAJ'<;5AzX3=2:iDAbY}SVs\MY|m0,C>ZPXq9o$@s7x.إI ~	}>Јię,E\* =-Mu*1Fڝ._9у'ĚKv9љ]2/0:PLj0M\ćԦ:\yZ.n6U>~88mGQoQƉxܵIݻX(#02ME{O2HGYRͻ,Wd-qJOOZߌ$.ψ90[mEx**Hī  ޣ'ATXMhQ;_m~@ r5R竽z9%h\vfC/>41k-+qc2dmaq2(`m̵V7R4ʬ&)vg ΢Xoz}yK1}JʳM;_!X什i;~VW|1$]+әܨR(j:nWwgUD:o0mΧi~and֑x/:ҁ?Mr
+C@<?O"&m`CMƹzL(4}wyW<]T*93CW6)\JИdu9''Nih~zigCx=]xT!zQgcDk̓r4㚲+QD 1ſF T(%Tm'n2x:)>s aGLow1Mkyq ~17#HROHwH:s =Hpx8}!BP
+D82۷21H$ܶ姶|%6I̲':UHt)*2h{. : irvJ"ÖHl_ACp[>%j|: ZyiRuD*
+=%lźb<ΗA=u'oV /ϩܳ,`(f_ҿw}4bjȹ}˟,vrJ!yE?GqjSm>!':4D;s?pme'=[{T&5A2	$.m/Ov(
+c8mP;yXƽT˞ڰ<j7\9]|%n/jz}o*dX!)w1`[qKxE'p?F$wA*[O8Qq&-[njG[A:s&`[&h%j,5S!_;gZmJ53")aT(q88 u,<#7QwkRLx6QldsXE5rp:网ǎLSq<0iЇ=5?r\W&grf*u	Cte FUO .z,DFDK3Ǥ_p;?eU׳U;n^,]i+>/nfْ7-oWe`&+v& z;!yXk~Q_S>Rs_\ԅɡ 
+T6}Jj) ~!NkC΀eng	L uDܬwBGHQ C81oJ|h(0IE0'vw['id @`>	bCꈽ 32 ϲFS`jN嫂4֭GʧSlY7XNV7Y]Iݕ<mMLEJjUMYɸ7FP$鈐O \rhh:G$-hΓ<JrGD$%^L(`O/הzUPpT&T\.J̵q[7CL23G{B#pTs gc>¸Avw.@L_yqP3~7"q%-Tҗv2kc)F"q>4# FVw; P۽fKeS?T;>sGśfwk=NpktH
+6WH?$j<0 ;A6g"¡M`p@^`3[hH{9ΛB`8#tCNhXe}]fy-$qvӷO7OϬ 'Aw6ϗ߲-9z(S&ӑLX8ַ%PeJ[ܪL,,X.7]C"A,!Qj Xv#Po:i}Xeo~cxiPEoV\Kh#<h~VmBY==_ߺoԙȞMJ]Nv9B.	 ~hR{`M]֗TkS=^ǽ0T6.
+ȸ9N1d6%~3uRx:M{O8Q׻{㤾#0(>X6' fvgF	q6<FdcCI]ix6IMk7XF'w ٪1Q']H!_z='=J@	<EI\![`-p2'+{n#3#>8|ETdi 1KA?FlmlyAy(҈*$Š:3:a8mt#?N/Hf{D9!|qK9x4mȽ;.[tFMtӳtk$Rj$Xe!Za>sF'vWtA@6M۞ufIBc="USSR(nT|]tR0vqךh@ݶ:>͜0q?J}0Y?a:ǌ Y	A tֲ;e=h[@.(ߛudX18ZfUKx75w&qC0Ay$2&pڇXV_ZEp
+ voܐ '6rUُNOcjf~rNɶgGg6t2'/ul/v	?}1NgU4nذ:*VR>j9WXZ'M3c1!MS딳}OͣNU&1V6#{*.u.ϯBXwC,'גh9.{1{w|:+U+!_"	/"Wrx7黎<wn%cDyp Y)DMW.sI:e²1x`eZDf"nz$9QHy!LT17 Lq;3<Ƚ!#OW6bIX }<dU/SQTbݟ0(PӏE!&։O`̷$"2éC\~L<#<lYsfҿw-.&
+M2s>x%Zݾ2ЩFg	Izq:ӗ"T`!KC"At$C7oh
+i3QBTW"H"]	YC$aBNigGr&zƼ0BC!BUc@&CHm(6S2&-ŻǀJ@cpf̀\v2^o<;ZV"${ٷZ~ث-Ux0d/.rjCu#Yǩyb$Le=@ Wۢ8g#3Bل߽-ncVROHxAUh5ebA[ǕM^{Y=ŵ2F6]=;螞P'gY|JTaW8-X=i׵=C5Vލ!a_N/Ucla?2StcT)|6jI9~^:wSwzF118s@ݾY,*C[蹓b^2I<чNWX^&Bdws"sUk~^]q
+o{abC6ZMKl/indl|!f9[}*fpIFlx6[uĬ950>b9V=q}~/q<5NJC-\XbYg|4pdݘt}:.مXqT2R\+=$ZZW)nH\m.E{S_(-^`(}	gF;,i.]'8⮧Up~Wx~$$⟞v	>JW{ʯ8Gt'< tɢ#/HBTQt }H֩x8 "{+=gz[ϜJNeJD^Yu1:iʴ*Wp``=c;gRt;p[#j;w`'zP&!+q32QsXuɑwL$
+qZQlpްo˹sxSA\9*tÏ9Uc5LV¼ϗFy5U}}gQ5	4|KZ:e/W$Q&;jd $KG8TnqGNO	#4RiaWL(|
+ч$Tqp<"ݑ vyz
+fJJ"]+zF,Ի⥫34ItU.̡ϗf>ʗ<>݀U!øIqt"oaxt~0b="ueDbCrFc6Fg_.@
+=$O&'0+<=cQmA8*#S#YYS gRXKǝ
+KMdڏ,뗯%ݮ5<C?GӋf'dP'9T@p1a9p2yB9U1T̒w	[)&2BH(1O'6R_KkSk76vhIovLxXgOiB-tT&J#<%
+c0Xo,LsɁ]Xywt!IjoV%sTepz5Ua
+ƛ̆oʺ2e+lY!'fCeQ&|Ir\gi<Ȕ5.?okh`u,ozm#yT8dSoթǶz 	%#W~5#.ǳoࠎ[pty^0 @%MMM5z2>i:+? XnqJq{8e𲎐%Tcb6M
+ˠf͆bLgb,[[-}.j+={F* 좮bbX;4QcIy!]1гpLF߾Lzdy6~Q{TK>+%uJf'-Zy9WWu"CBlvZ<,bal\HXAQdl+;Lry9Mkx@decKMQW qUR23GZUsfE*,q~Aq-DdaOhA|lAv TdcG*PjC7vT|ḝ]U4h}!EP8sֈ͠kh{WՋw`it&&V+1dMa#ۖUD:OjmndBCQIڍvg\kmN/0%A?rDg 6X$D'<3w(!~;/h[۠Կ%%,`$bٯ3bXZj<S Y@-K91p\xx\DC?gz*|xIyw/{>@jJQEvCxa[EMu 5(!x3jѱV9돛؊VqkC[Z〥vdDH1FJs;7$n|v"YCѦ4:qh`a)4o#‒q8\/UθVGlPqkkb:κny@8Se`PRs@ЁSiN.}f	=FA܎#:>.f*O=|2Zs>ӚPd7%|c"IĺCCʦ{RrΨin)򧧧-8[+0/$7w'-=@ǻ+exjo]1Y>=/|25^EysW۠DV'FvR8OKi>-kuk;kq~x8γl9r_I٘Z6sSfkBDpQTHL.pAUI@$y[lgêg=e,t3ca#ƢA|! 41.Nlx6᧳јcjW曋4<DD|FPc3$إ_x.%BY>C۟_|60Z>r=<GPߊHvU.^bNmKNEFAၔ\a=3?
+KڧT(e#OVN3g~xM!Tn(.ðdzVMl(*lH{p*W4vڧkNnimo1%b>˳7=Wxvyvyv_-U4h'RqYBNK"	/hK?CX/܇g6GVf^؂@01rYJ`L2OƂj VrI]:EZr:͆"Ď(36q6!Dّklc؁b8¯dv'WL27n'm޿&HpY7_]Fqax0|ۣ
+bǽYe'>ΫLY>#J4D4Qk8wX]4i0AwTÃ0DQXfp!:jёq*X8֌V~74<U	T$78QjWTZȣpgH톾WhSxSH[
+FďH%x1.%W5N9LaNPz'pr$Gxd$O繙Ͱ1Eqwjy_"pt՟ހEk(j&LNw+mk10G ө߲ekQ!biq0L0&=4l0řWcCc=|M#'/`:9!e
+a@[L27>	霳qzEQkהKFj*o S˽"s+r]'h?ɴ7Oʖ,!hYkB@ICJ~=p1>h7A{byQIA"[^e6]dmV|Jb=y2 Ex#ͪD>(eq9|6GоSj._HBw=7ߞ)%wB<%u	'q!<9R<eb_9HS OT	$xSw:gt&5gP_E>	Cwaug3Үڸ7w,Hm#-j9ƛXH%#z> GO %
+	1&fNX߬%{UB=5oP-5%	#Tj:QsBDjuTI0\qr,Dldqy7t4$1xH6f`+x$+b6i0Bl(4>|Qw=5Rƾ4Z<'7K@\JfCQwӓֺ!w'bHh2@ܤf~Z0-ABӛJF,srsbbPE9k4f[8s]WqNˢwئWz!{浼1	,svc;<){t f Ňatб<qŗm9 x-fZLs{5ͷ3I%I;co6O4>$a$JMsUI)9о5Q)Gpae|ə|0J?I_nz1+ǭcړ+#\rjFRΙ L24w U+Q,;]:ZJdX+fNK0F]TÂ;L,GRvf
+^)ej|};Cͧc^pъ"΅+;3	ꃋi6	L	T^L4IL\^d:
+S]uA:d-$1RUHD[zZ;q:LCYܒ'>^-QfwϲsҖAǽ &nu9lֻs~:հKW4BV^5.Y,HfJPs+f}|t̲&R6%tNB1q޺E}T'F
+Lک;#9Ez6 h2Yĺ	ItiO{/#SQ8o!вǭ	L"WZEX,L' j)*^Ǜ60UYKO#$qqL{=>}X#{>:q~_B=b״ʿI7U_%נa6HЄ[z=Lmd*NY:JC^'0}@E6Q㑧Bw$	?rb7tGr
+m~A>hPr#M霃ifM_rs?l{<QRsx=[
+߁UUO[ɢ	=>کUn8*ȀS9}Tm9WNO5qÉo#i+o3kTtH(X,:omGqpS{W=)UevRİeLao*`kT6֖:O~0j1(u(-ɨnynpY:V!?y|I/*l1|r"eJHnD4=Mb4LEH/'Z:&ڛ$
+z	ZZ_.Anˍ^/7ijgFֲ!c& Lş$̪lܝF7+'Rح_УѮ^5geazoϦ-$g6s].Gu&Gʘ}[,pF!|OxRqEU(s"BCشGv{C`Ĺ:Lgj{;L39W7Q	ii$Hk^a̓0"$צ3T?ԎpѐHvix3v^>ɡw5o#Wtdl.z.ZԪ]/]XKg	{Hke&މC3:9׆)*eHRU6'
+n͋_(Y\2.8aF|+a([SB*P@#I`ݒ34)aX_6 xI?z_Aycs]B?~H4}BFQOGw!~f@+s{戒梒*Of+RWU7J\TNԣS>ţG_ŗY}ΖYoDB+vDAܔ[0z:gq|N
+UN("8]" "#9'{EG
+ݭ#1#<Npl=|`5_'wx	l^ߖ+9rC¤n$xҩ+qϧj)'MZF
+ODX8Xð;KTTZO95B"|!X6fR'Z(i95$xqQ2#o*o:GO={SgTSZk4٤0Tǡd*ɰ($2O%GB)f*(f=9hCU	=ދ[	hé}`/:(óЩ*F1I
+ŉ@-4LiQǧV=Wknyi"6vکSil"Jj{Lğ=+_rrW*`My[rh.#>=硳D#L VBB#SV y8iӿo`K4셽x ^Jn`FG8v(AXvV4./07{P1p!/b^@TJ{}zix2F<c \t2G&ƀ/=!zOYo21|_ԁrS\ְv֡gMDsYk҆\lS	ˤlZU`)M.$EGqR{5OIb7,&
+c>XL%J{ļS֙LӉl4f.
+g[NdYW}kcsC8SW [`HQ$D$ŗ4|}rJX?jX|7lu_@ѩOn3eL=9sO]U󬔓ɰ!"ǵNW/_su-zjQ9q2mjeb!͸xZSAJbg5BdNC_pLBv153DU&FkYckJmW=)c{J4#@{fJ<7k}B!AuƈW}&)*:+/oɒ?bNrRQ%_щUz @쉇8 s1RQuZ.|F\"|j>o )U\h qYڅK%c"z|z,wֽ`l̙y/#MjL~r(+:H8u8`;o{jm.uOfuDbF7@hLB>8Z}>Z:niOS|D1'>cL', [/^
+n'9	MMF6Hx؇ɳ=ZF)Isr^xsLʸN!RZ)!Y|ӐƧ8txdh\#mAoZp[o(>|MKBz4DBL<mCA) $1PQ秡&Ts.[>5oQ%OR}(ȸ7i&fk}>Mu#4rϤ:&tI#lԜHk^82&J*iN[4aқ eHLj.NI<MUNF֑$ɮEpyg@xG}F$M|},|,m*9'm2b*wQ(|UɈyvU	L$,O2ed_4קl間ڪ;$:3Y}qΝVI܀yIDʬc|~!Kse^;]@.#@-6)GHSIolw8{'<_hFqR0[_"_CNfb䷓-:4	x2R.8ƫ@{\?,	Äv 1 ~(U]捺b-{Bnk԰Dߝ𿟖tUN2n[mL+ū~M{ϧ/kN֓:_f븥yr3nL/Ӗ.`~̡l[-DB*W>0oMVy>k"=nqhM֋oZH@Υ!_KXxEHnCLs)݂ӥ&?ަ_ЊW|IVvu7C_ ezt"]tIeXn+-Z@wdn_}Fa~+Gxƕj-F^$4I_ܑuDeUX!A[B했^ַ1\~jdVi^~=G#eNĠtpBKz|}aWmU^MDȧq0'ᆘӍ-V!&)X&f?pg%>ll2[3[{*TɌd7mp6dop(@L;8|.,^JX.-G?>^R1+s;JE鼍˔S$̬qR=$-Z[KQkPAȯE#zyTYB>*3n
+;ĵ~,zx쒈];- L.G Eoҗ-&-oas`Dւ*"
+bli~o^.巣Bl.n~^_AD tXzm)9%_H(-u<G!JT˥%<m_$(z29Q$)yO>ޮ>&V]F>܄/MF4$H{V?pgJNc^*U8#IZm+0B}nX=+l= ~b	hw3J Zx՟ ^	}7ywlQws;V<9[ ͪ]|ۄ ,ͬvV:D7(E2JV/}z*B4ULN<N+@D"4pUŊ\Hĉxþ&I 绥^㼛Ӳ4$*o,Q:]--k"ciPM
+1\C_?H_50`=Z9=$:DmnRCVp`r݂~RY5۫Z(I砧K SLJi2+zu8j'{m|!ǣՃ879]^ZGeSbrjOre#;_H+uS.sԆZw/:K0RcpۊuBƢCxhűXKXffȁ%ax;[~?џ2ԯزOwf;:TBD)*ˆd[nCݭsfW]8):=ST	=:VopH,#AK|㦛pnU} &3l)?$yӁ{vN?l+AG[YY
+2X&TbZGnFE4	+¤,&٤CB&Mo$\R78p#PTc1fnA:>Qg50_ZFjaVlRTA
+*x˸!D'aK{avƆ{h~ƲnW,a=D 5jTb;&tIn{U݉+	{V`a,{׵g` bUy57'2ړXXD};Y(:vZ/l2T=ᠿ
+3ĴECk;X22Unv`8B#-a}"x$\uE%ݤM;?be9mRV썂1e3MEbX#[DaS.ĩsLub(Q.`PA
+9$ڻMjF-\azyOhp d~Tu)P
+v^3{H58TӦi""Wzj±̲YSP' =^I_7ǌ6ya_70RV%(@z$*)Dxb?ąʝb vpCxCyjbuNI7"n+G+ԏ@$*_63/y6.&⁖#8YͲxϦ/|-XDpVq&gjy7$]V4ওQꅥ0bjt$=DڊUL1LCBL@&bw;$Ӹ]tf$|L9ˆYF>"W{ʗXk-Z+1`WIXwbJXMcvK5Aw:`6>^*қѷف\b?ed"fw+5+nk.f8gАX6nC5R[DDd!C/^F@Q(7_?5#A";j%g6j?bicɼa.G4pVD_mzE/2<%~"EO§AJпBZH2*%wH(/aX.3Hϣxle+?ۛRC8BD*ɖC_ҕ]y:ǒ2x62ISI,rM܄Zh8&!iz[ͺ!Pe+3\zHߩϰ{hgֿaaO_{oOE?iYdX	3|u"7fI1_Ö.;BX'uI˦LcV~gj,;[kU^Vp>KB\K~(}
+bU1NƠV@>,p"<7K布qL4+t%qdj{\
+9F@j1#fSU5FCT.8`@7Tl3V&d7#ĘH$mUAaOK6XtOTt3bu*R=i89$+;v;,<W腵)u'q3Qxbs=Vz_A~F1~;!I{'1C#?-O'8fSbCuֳq6y,3UIudOx2^DָiMW!-Nf^?qU.VǲKLp`KXsܡlRO4WqϰPI98"<VqM!2Mm )4"=65(-<AZ
+Q<틾$bJs!|o
+ASMȱM'6WacWXbaVlHY%AVf_c,B ЇCM~E-7V`<	ë_x~mn4d04%V5\
+UFw!j[mwL2$4=dIՋ32	n	4]%Zh9dmh/2Oi q.K.q^s߾vK6(g3Y㟋I8CMtٞ̔ެv7(y>n|a]xb@x 3BF֩lg>f3Ӳ?tpOl`2EQ5-g0Trn`[5RWMY:\RGwkB;J,Y#{e?` 	U$0GjD:~'u&Y{b.R9vgc4W>]RMLL$a9ni:gCzpc"KxzqV9N,mG",j^wek}JՃʎEmĨ.c>}f$SRz,6uV]l`t{k,]%8ۋ/|CZR:U;Qb~8Q!&"SXQ
+5q4*v H.FlǙ[=]Y1}?8`咯FNx=qϖ\2c<!Ĩx$2D2FD9NcMuf;HBwI:G#GUj'h~RoH_`ɳwAD? g}ǄGrN,QJ;!ړp7M|iQx±ִ׌ζAߨ#T>nQr2C'_42` AEt!OAh|guÌ
+#Nάޫf'sbgAΙu78O=4 B]F1<@(/Y"\`pBƍǖJǲAMMU#T5ki]:>чܞGa/T{eY^}>˛[>֐4YPcgR}nS	d-n0hbX֡{D?K:.]
+7'6:rl;P|l8iey搳{uZN8q
+
+q9IpB6%??xp?w]&2mu؀~-/AK% qHQ@SuLSg#0h *aP"ҳaĦDzP[?NOn^r D5b\6 x>nv];́DoI*KUaUK!rbξ|=h{|6ioN7ɿga',`qBqyI
+>GD7Y=37d{^.R^~LP[_Bе[#LƢٯR+oETӦJv7XmV<37zڝ_p,M;=	0Tr
+?:C(@=6}*NzT68i_.*J ^Gk_Qa)S.ݥnmZq5(+CZ@2$bTG.=1%󶊩~^q<{C\GE$%5TO8䠒aZՈi0Eno_re&jV)~/"kUaB`*GLgYlWCy+ŎiY_Ddo/(a'E֐cX#J]Ƌxwd3}ƯBu. ;ᮆ7r"n[r%Dޖ@2%o ˽RovI3Շ#G=0+cD=@R,
+/AWޘ18	5P]n8Ϫ"B"75oO`(X8:[j^CL'V;jkքHR
+ ΜZ]ǅxh7nq@rݦXcN}:Zk O$lU?Ep RA5sGVU@86Zbxtsc('U7? *9X{|MB>Lyt83Znl$Tdp(*A7r
+r~5GAh"	w
+aq#
+;84M"Ucp`U#a0r|ڐHF&G]:b(D+wg+M<'MdbG㍄?5é{3WU&?).).kowզ;Hx~Xu*p9't&9]Y.e/R1{;T+qR˥w`{d):T5exRyv<{ E[ׅBU-./ٰupĄ*=cE+ʺ*o/UA#ܩԛ{?B5n]PJH:Q_麟iƃۭxԎGFLD6UN>]gu,Bp
+9F H}2`-#W63#]\xXrk<#ɜii]沯J9>%ᦜ씉OUzz=2esChOtW<XluD"Qw9y#*~gtD2oMƥZ۟\tƜIA8}S&LHK,!Ln!L8iE3΅c~CRg ӒM4{F_sl WNPRPxcu7bܼ!GכL0\9εyuEIPW8#0$IR}EVXQ@?LKt<6o}꾔¬WLnؙ&]*.~Mx2TlIe0]{Uzsuw&!CbqF'z&oK<*MJB+ PwXkZYU:>)$*~6BGب+rضbk:О$EBh#M!ԂlȻ;a;5!e-BmԮ祧oSM6Yr~bġ%N¡:Eyz֮q`NS(Pj }-`B#zVI"C8wzWe]S/P2PnFs<FŁ2œ	hs4JI.3q=`lDXwꀐix~nZbi9y豏ݝur±9;lP'O5 tߒ9en:ڬD'k>@@W|>ؗ%Qۈ
+Hjֵ;]rZ0hA,(T,	eEЭ68S<0$ꘗөe0}bSx"|%%TBmѪ`Ev͕]% ULDF5l	:|}~"I	$V@ѷ:ZﺫHe[;-OS4|z;Y
+ИuIrԫ|.B(_މɕ\Y/jiə^@cVRCWm ^XNu7SzW&ڄ3>!|P%[2	L.o0AWO45:]wfl	Iכ6k<&QwU~ƻg_	s1ѫʱA\Xq\N,m܏QL6Ӡ,ݹ&Wu=uY^I&xP˲Bx;;܈
+a{#xٳ zp@gAԔSqwx`P,ӬeH=.;Aڞfx
+S<;-93~	Llv)k8"1iߌKJ#cHxAw$9x{JiTǚfY!!<?<hV*j|GZ@*V#$[Jלc8>O)*aPQ\TZwxOc$ל)JdmaxͿ8;:UM)Λ̄PGlc=&t4	ڬ+uF閣r*gS4ewѐ.VAwKv{z~Il|B1^:^3C8!OOhY
+Ҭ[Zl!4w\G)J
+э}{_qFU {MV)0	
+Vz֪eԫ=`=AަSq|?ЕL
+Vq4>> ֌A43^e::Kgc|P
+sHڇm g4LhvF\c+T%3熷L14#+97Ͳ1F CAC{Vݝ4oik [fl]EL%gYxQ0oa[1kFe=uJ}Dc@C|f`0jܭN_Hn_{Ӏ0Fu|Oݝ˞EnI%=gNmSFm~-~jxaLs-%w'ĆJChLCu?DuW_,i&b@Fs ` *JU;޸X{lͬJ\+`QA맘%LN=;ꎜU`~[wU'ֻq~olm,ν'
+zMqojOJ:| 
+4/8jOvmȋ8?I ܙVXIIQgP0GC/9y/l!\LKͣ;Nq{hZD4^j2Qs2pb!|?avT5jU5|&=UG4nVIaPknG|knV]*=F67ª5a;=}/aaGy8+wE~ZHeZz8^ ֠񁰏4+Џhepp{*5JUqՂ~ь`aHT'uM͆q3Jڐ+NQ4썵|.-<lM\C
+©mLK݄o}=ah9iw#ĊK%F\QQ	l*8	c.dc='-e,qar^|ʡKTBG"VGZ
+ar(5<RNǁTɗb%f!=
+*L4*(~~"B21!e7ϯ \I&Ɍ*:&*)̺v`_8|$VǷqU=*L	VX@Yzdte9n:vEwb+_+O5HDw5[R>d4%Q"T3m6_7+fs\
+^`]{~H~	/_ð0zp(f7`,PiTSu%Ʀ:2[_9&AA>`)iRWnp ER	VO[a8<=FB'hwu#yAv3T++!*J3sZ5G
+ξZEQ0I*QmgubMUc>[À6G6d^[6/iPC{LLYcR
+iƛfsh*A(֭>Rn%Vmm9'M}Qi2fFnA57
+ڵzGqҀ#^δ;o 8"]T/RﾁuUwOĎO9;d7!$I\	B;aEk=fˊ֚p=$V)SNn=w}"sgܑn&ӝ5c(yk*CJ]49䧧nG2>ш^&7Ͼ晾{dB.x6*mtJ:L*k]' s; t|N_*IT<upAgo㣽%)̙>Q#5?>FU,>!ʺ%xQV府T_|A1Ys-DU'd* bwvJln9!`8usn|hè3.'eI~@ M0\:QSkKDSMCI6>W:ng^< jΪr:M?1Y7.Czet6Gߥgexًzm[=|BYnwٿ{_T@:;IjJ"!p@8G7y5|.Ϳ[+A c㡿8V<p*We.@Ŀ$CFիlED".ih&nn}qY^W,rJR #_/@iR G^[([{k|mR̃FA]Xy;b^Oc>BQHOuzH!u0.QyA7hGΖqo@F"R@BY]^aPX]CG
+q7VcʞU&G7"	olDhIpI,[mv5[7G?Iq\/V4
+{-UZ?@`{n?P%=<ko~*=[տkSpgJJ~yH7`s2PPGmhy8`w@45)[鱑Y l
+ˊOֳ0HT,تg|$ߋ`mOzpL1oWٴ.O9-βzrfDK3@&Ko1<[fEQyԶ2t[,t+S叨޵)Y'E>ylOv1y#&YUX3xoIqr38_LnSٰ9;[ʳtO_rIG_@ݬ(+A~PfLQol Wr'1In6Y2-[R֤+&b<ZFip֣UqS%Aʆb^O4/IFδo0A?h3CW,N/(G|b@4s]e(qit(b4F}\?WXuU+VV)D,I N-\ GʹÒg]i s`
+umi?~>M<*_qX<mJLlecZ0(	@4YV8u_Bu
+ 5&I*NvT&mVѼU,X'{y+fDWj,SuP9iTz
+cOx*%Izwqkcw@QS{I1[4Ot#e^piDm^8q96lxnm̩g ;HDHݸ}6 	;L-^!n:A:LX>> 1`6${S5R@62 y
+L4b186\*,uq#Mf#r^j`PxuTo/0:+HAu$:qpŧECt:9H05ݵc:6P&_}UCY7:?T_<}uOX[&wI7$U"ҮeV
+
+@hhr&4}vw-	BpGE5lZT6hgrHp=IS14$WߟRxҕ`;JlN3:~Ϸp0^8ϟ"E{>?❪Bv	,rܸ]AX!& ˯U*=
+roъqFkTe-],:d)٪c^κeX3S_TK?^e)mK5^ tVR^+_oTS;! kb2r[[߬67TQ믄_3iUfą˴%*0`+|J[wtҺK⸳E%l9AdU믯[ź/umm8$e]}D6f|o`iu>ze5##i͋*[Uhb+j+~RpD5$zWT`ƹXVMu+4Ï#fb)_(7؀͊o+`b`qk̿:ʖ95D#v400+-ƹ-lo]۵!*9¢\6$h*B&yj=Ja@{kx]7a	SB-e˼Y>:NDj:f.eVҐAD1oL1vkAT?Ev$o`;-vl/RTi1݉tB{kl;eλv[OġVPWt4$ڭ6cuTS;;-±OZ	6e{Kp"̟ZHآyh &AN
+8)̞*n*$(5YsTVF[3_JʤE)?=_wj933kQجV3x#EAb]-h@D;hk\ Δl)HfUPt:.vn<szUc$SBcZ3ъ˾$ńTpj:o9lj,ߓZHb90I}A{{ΏmlnH[Yϊ{O|ɏVyʂuѰ}>
+V6o"5 "I
+$k6Q,U$oOtNQ0AUXSLZL	Z7%&i)LlkePp%AZd85ǒ߼5F뛢eb^EZUh3։	>;]NX)hbB*ͧzg:*Pl]mV+]JOvf^±R?TX_u!̌%(ucE-gClWu|kgbfS'[͇׵OKx$9S
+[=W'V7᪼̩[ANn)S1T:[M}hXbg8iD$->q[WX$]׶s8'>\.as;pS]^uNtMoĤG3u+-?8"5{`kRFmj7"42VIY'ߝ h+ȞWAhTА{ ,1g>!Tz.5HTzЙ74kV1[!	5"iɒLר$l)9Z{Q0ӓ(>L_5us,O\{3fH| #~>]R}-!'kVZ/Iv$.~{,:&P.>6$Q/H6-fA뛗/:6/-*_E+$oʑ f	|ʨyl&괞0G"Չvة <9X"yp>"ıYK[V kPd+s-:'Źe:
+.0<:B7ˏ6lϏM5iWmZϿɋgir,Bz5
+hҭδA)u?_??"|[1cxopkO%UV{4L "7C◱"u3X6d}_>z_CbCK[[yfvL|nћ"qPK&b=PO[ ^,h[;Bm^|k$R43@z(Yky~`9oA9y%a\UN\?ҥ-JŚQo6]2a'bYbLxla1g5)QJ"oᤌK͆?Q:
+&{R2[}M,Xm7,Dρt+U{[s[Js:
+9)XU?&DO32h<x&cN)/a2,3'"Dt7/o;~@[Ou[ZP_rt	g:K8go֩"=t	<WLf0R i1Ϧyzdm o9lcy9Ko!G|⿳rgB,,INY.wƼ܅1,0W6swQ##utS4R/#!~9B?:
+MNDiUY֣&h;|@aV@hN$N9lE>6:1LG:eObu_*ﶌ'{eTo{UJNn-[P/o>`Sò9jz-.h'Ne'TpE#?6*[Y0s*~Ö*iic9u0-oʞdŜ|+ML꜆SBaPȥĒTzd> ~yŌɿ$γ?><]su=$]x3ws:`tksmXc7 v)?.BV+<,0&l=~)cv<D`l,JoE%Oq]s3O	6OPOL	j_p<-Mھgè>tH=R$6]CB7#;710kY8'h<y&XWAJWM4s&Ñd1t\Ao5܅jUFqwfϿůuCeD._sJh{̳˓ŭ!:/^Pkv
+%W[,KiyS0[|jj%amVd6fF뙟E.FTě-"6ߛHVxGnwh@IC`{ЪBZ: [N7:Sϼ#<ڙxైom3cQzWl/}hr:/3G.||/ʎl.+3zmY?Q@V7y'F;n4G/Oij]*&W4S~&TeJ+5&:A2"ص#Q[ޅP_FڤyϊuŖ>lTGo{k}z1I$)TVp>!}[e{c/܃x3뾩j*>m7şW+ZT 7=Gj .~,gUX\k$Uʠ۟oV
+낝=Z~b?[+d|O-;-/oOI`pҹfsB/It^86=L~,j'b,Z&s%0SjPi.[jCr\ {:]TΡC3Zaޙv.epp8Z*Lxp+["V`M+]~L?}^mgW
+iuW$ NvbV
+!ALq?:XnpV-S[uݛ]b5mđ,ybk FS`\43 (?G|\+js6vi ld"2Q\>03|"z2sN+&gTKEV\F*TBW{A0=bbo D6PN<fɑJA*ipFO >m>YϕZɧK(d%WMg1ҋ_t*wy\rp hr6HOqʷHalfybyĠ{Ew^e|e
+lURE踰=TGI|8_ gwO[%TRnM%.xӲ>CHb̵Vձ"TTv)TtU>/rk)e*\ʕI0p](Z:rC,{B/iVE^:xZD0\/fٚٹL)GTb--(]̽y&aK%I!+q
+)d<.9GT&̩h"6lꉔ\+Ku+.Ș\2edWܭ+8"Q+dRQfVB+فP؞b}ׁ.5:k66j ϥa>N9	\Ka
+y8y	:nV:
+<(6*x|bM_'#7Hbސc)n͑-HVEKP⋻)N{>-o>^-k ra6|Jr5麓:g┘ιGwYW*X/qIbN%,:.MZuDش؋Yܘinzar!À#-"Uq>#A"	4b1ŧ8T|tT/2$<%,DOo[Z\nD$T&Qh_yi.Uhgfw7+巽/Ζ
+GMc^{;Zaḃ*U 
+æ&*=:.	ꃘ$4O'O%|Ir?67/Cyo/@?o\|?{ɫgɣų??M_=˳_O/_=o??>wTϱţ͓?(.q^"ܔkxAR(*bYm+me{|ivH+/|:>I9T$EBb`w&6ڵ'}@PCn0Ar'9G*=;}OۭVAE	e	^	@GQRWҀ0T1>ڭ6D]?54{_gH]ަ:J񱎄 U#7Jq91AB|LDL~7,lH`-M\b1p]Az1£/H_E&ٯ2>*?d?Ą_"TCn]LwýuOhH}+A!Ry2D@l^D!]9Q?7A|s◁uP@d)Q5[yU~<G"Ev{\zȞ;R:EWb⊥PܩMdRS|OFR~|]=Yҧ]PRc¸|)輓yg@B*h/iS.6譝Ғo"iܒza	z4=5owo` 0^Pտ9b:鉢ȑeČteE^RA_[=Nb- Nx9
+wW!"3 .r%Z0SjP>f;}pfqхrXu^)9L*hmМ4%ա_2e+&uS ^9xcX7	љ98!OI/9-Ԗs퀖ޫ<(¨oDIj+cq[,h~$W{DD⅚cF>
+TFD'!'
+Tݦ7Ԃa]#,Լ8>"kmΦ^x%궐su3/%4PB%z;+vtC'=7Im_Č:t8oHľ"hqJlA>>UM7' 艓kYm%uGȭB_h5&M/X`{#	9..t#Wf>G1_]LN	*Y5D yB/QEֵ&z9"s:vzlגۀ3`WwB2+lN,ABu&GwM549w4Dݎ`hKl76"R'G>A&ΚۤB
+
+kh򎀜HJ>kb [ԟRa!}͗R_Yo^8J]gthh3.J Xu|$4koGOmuHlxc"Eq7/yj|mL2dZ]֘!㏗ *}?u6r"/ݻ'6Kߤ*S.~>-V.5<-G/&3HLtuo{VH1wNӤ[dGoR7dZsE%g9Pw>\uLUǶL{xUԦdTgiIg/u6!ܜs^Kي@B'AdRO/ڤ&uC؏_PYu2Zm^Eߧx#^[cԵq33צ&I X'<[&G2ϕ:WNiLX~Wl@ XJ
+jp:OdQhCѪ&$HRs8Mfgq$QI$X?FVAyD*@>۵A{Z5UђLfe]]1' "Jlb޳tIot51ؔ$I.iH
+7{_'B"t@DBi͢]m^X)HJXubڡpt*U"D' 5!O0DJymQ띃}Љ*H|Ċ&wBgwgg#IM`&i%Ir:~*sATL~j7bVvlGl
+8uKْPcQk
+ΨKݵh<!keuGzYxIƂ2,	!+~䉒1{+_1NLɩN{H?jΑXVd#I{ϒÃOy_cå=oM,m3~5wQV6[ԥoex}k[Tqh FO_ .{WT6r.>Y9Jëք
+7C.:)N9SGmsyMۚ}Pv
+{NϦImddv
+k%M[ɂkH(O>nBʍ2WxZľD%LZ%k|-c$09%h~Al UJ^Sw]4-NR5yЊfLX¯Ժ_a@w%u|#4>Q( >Lt<;lb2Y'V4_mG>H2ViUNnA|tDy߱o"=kM=]܉v;Eo<W'qʰ,%U/\EÀ9?p^?wJ+I_dO6:&xD_I |G9$ԧbO^TjȥE5mФ	)MtJgݨߜ	+yF*#a<IŠ]G?t7RELjuKNԣq_.ﰁj"6v9@O	$8E-wW?]5Lpl^1(e_>I8β;id4VF˸閟Bm &òʧ:[y0+7̱Or/zRoRadX2|_дktt(+&P2O_J2qNa5G޽*/4Kbt)2s̙:}6`&w
+yV4*jb]cĝFwYyl?_1=MjJ}9%yD"uq	NEPH/#XTJcAe
+gU
+"CFu|q^;귿Q	wDVl3@Ty$w|9W֢[Q24ꬌO}R9_M*nyk^,U'HCD˾'!x=yg6ּ_ CO"[:k?i1>ѡZei cc:	&U%yUx ?ruTy"}&vKt|UbvZr 
+N6n鴽q믯_#
+7&ӆ5+;,	V:i&	x,6j8<ĉZ:yI'QlbO,OG%"gr0:sSQ	oQjz':{=;W q^
+p5ϫ|hwӇ΍V["t9>/CsUP^PrKr-$}q9H=FJ@yܺS$ΉEϧ<zd/)?[2{ewZ.h5JT58B\ Ӛbs8`Ρ*OEz܎lVWMVX8hwީ{p0j:;aGL5ֻJ|3Awha?]GU4s_v]A3EMj/8'BםwEFTTD6V!,x8u+f/3Ntj؍KlU(,ǍDtCN= Ǚ	cOKgAoV9RW-FZ8"qKhO' cs	")斱)"HaSXE$^Aƃ@NHQJg!`9"FY
+s'QעV:9>隠TznKmw4uA
+,}2RsqfY,/.4Qu7[[щsӐ*h>_sϓJCx׍98$bMoXΏq:0lK齏ol5oޗބ8lV}h&; d<V!ʯTEcG`ve^qNMYWIh,0,mvV|J˥r#Iv飖B0tƎƙ5SQY?ivcm=,q$iعYD/d=A2La^?k9+->(.mΑ42l|E||d9~I\\`2`+:ȵW\LTZ=NI2γNr[HIa~]*p?~?NW.e}^2{Òs@u#̈́XB93|y5`|"cI=q Y<Ձ~sa6;"7E@K 2( %9"A$a!ߐMZQr2YKݤ.>bvP|좧.K@׉0c"gݎӌ*ATmR~E43uxzVGPJm!1S%bUQy\*ڤNG] !	Fl{:IRWzeac*4EM͖Co	kBB{=ARN-FtwIXB}S1#eï(|#þƉFKE!0lӄ$2"t9HYK#5T{r:Jh3c+-yqY3i̖mow|ݢhj}\}~K?9ƎI:(p9imhXoA%p":)=hX-.& m΅כ<<傡m7	Wi%!{5u=Wm"Gz1׊Ufqbp8z'?uhC+hHM#W.tƜenܠ)2$]_%dI UƢF"Aqůj1)"4;`,AUjKOMJOkޔǄͻURY#+sxFU V*cM=ԃNv}ݩݬ:ņgNy֓ɫߜ9@vtp~W/FZ[oFґUF8:8U9A!!auu|ЩNg Y>}P*qjX~&i<"wY~[JگOW-@SQjyu~'D$XiHpbQ	(9!V*]7&5FVz
+a8yx*cSu*Uo8`ʨ-aWob9eM8qϾBqnӽ^{lolRO'}3H9FcV{h߲Uh~6w3*9[{IU<JH7n۫N:T_iiZwJow_cO`1unϝTg$ig^f)k/`BUJ0ot΀r{$p/GVWKpgʋ4'jϴP^ƌ	ku0hbA	'j}]/}s s\D\q a@-]#ԧ9d3(XkTHp%ɷjҕx@{J'gbL.PB&1PZL^?_'x?raNT71rVE奞,HgCy[b)og9K@Z4CK6ةr^%II5[~lsYUP"bhxYUsYV5OOTuX,EDo		v@-<G6<:}jKOqb:l5kT
+Vj>4]O,p!pYр5vKeޖ0zqǜZ㖓[Tj,_{5|t2Y-Zz(:OR*8D:Sd;8	'g`Ķ\{phj.9dCTJ9R@aϛgicdPfw?M$rM!1{ELg5N&8K:n#	 ?Y)$k_9w}DX645@ݿK0E5.G;o}KjZ;MSd947@NDwDk+U9WyזX5:iSOdf)JR)Fj8JT]oHF+ f$ݳز,5k^I94[[dY@
+y"5;Wr+3#@P{g~f,*+?"##;9L*+= ^fn#K앤0'uw8Gik$[aaȨA_Xtj-n,r)r,f+mpJY7I20SM=|4UHIQ&џ6ܮ]	_Sl1\oM%A~Q;IVTՂN:ej"OaD m}yT#\mit]@.*@6"fPmJPvf|4..K}nIQ\n0=YVgVS]V%Mt_}BU,dtF񛤠!,/7q0)9T樯΀$	6:){3b<^ee[o>Z$l2J:Ψ$cq{@
+:kM#%)Eu ^ ^e7}}&_fR0Czdg/wܻubO>{#Ϯikk֑iA}	f߭,=702TwNuYg}/^s$JII5teZUd~)9.Jy2ߤ~}5/(!NyY%gK4(]jk1ToO &ZDߔͶLga؁g4t$Q}>O(vv~N#'цrA
+#;G
+S1+Xn8gCa>'6oPk}`A+QdQ;T:0N:ISa媛`ikĻynz5|`&qG
+WVEMX+;/H_JEqU$A5NF-Ūw&p͕mT^<$bkdZfv|=e?ڙF_(_h"INayZ2	J-力CxwYq5:1΋ߪaaBf<-fa@Ge*˶ >LWCy[
+G1k+,`ʛ	o.o8 Bk%?R&x|jr@'p|0y)ζ|p'W)a'h3٬64tzb/3l)>G1?:pzU_W|vR>3kf(%{g?~g^76{w43#}C8cr\KK2{h-8&"+?tNCp(:8XM_o6g˂ɸbhe7蝐GFCXfiohjBd9ut:5"lJ)ltL()l~Z=|?Cx*fgHIO8Jrjgg6JuqU0<^W[%ξ}g^VeQS=g=<8Pq6.cwz<6&IoDJ8Mz{aqLQqGU6N{.ۏ !/PY]ϱ-cȡgZ$=T(݅ؠU|F>"py\<:S*"=b|uĀ\/ua1x&G^UV&&$2źL%n`K­{aupeM\YL+Sp>͎aqN?\{)KK~#MmV咲$E_]zV)`u0#3r1L3)<dY_TStYgTB(B=TuR*u`nb)iťRL
+Nm)崦3lkJP0,BE2聎{_Ǜբp_q8~ZTqNm8􂹴/m$hb[~Q# 1~S^FF܀d8fAj=D/_Q B_~Q۔db ĳi3f L,H9)3]gE1[΂h+̰ʊPӘu<	MI3)]9;L1,Zdri`jvsѿM)#V%P֫Q;czY.0`6&#E)K1YNf*>~nuo88%;jn
+F2H/Z<+V2T11DLjp/~V3!ҙr qQE5Yutg1㥫a:xGT_p^D&pĐvKwJOX on6?df?\{c=/8ov
+d|7M!ߺ t{щ~y`_Yaz_]烾oL`*0?n^v!\pr9WXp`rîG1SNzsa@1r{+^D.yI;އ^_Y.>NJ!a^UWvc=0_#0esys/[%`abuHQ)R,,'ze
+d?G%8
+n:e_N~[	C{!,W Mc7:Z(@vǏ_0#Fܼ~ QFð{ڴ'y=C*חuueM\2˱	y5\f$`zda}IFɸyHٷ*1`k`y5B_~k!߳l>px;nNI~,?Ws [8͋*z5yiWt! XZ:|xz]hM\?$OoS5l9ýo̰i?xUO}bh~t17Ҁ8fqsjs.0D_].0A8WiǥaqLΠO9U&|iVVޯɊM.	O/O_K)`\}`zH_q|IZ8K撺ƺ=*lZe(Cq7p7XBxk8{ՅDJi^Se˃\%|򇃃?yvl	Df0L#hWÉȟ,@-=}>J?S2j@՜28{6'p8̳s!.cZ(#ǴݑnHkFg璹L>@`UUn_ߑoYV\u(Yl; ISP:pr.ݠT,3d:=KߦWso@:?Rbv0<G>B/G'FΦd0-gSGǉ8.@<OW/Gz{X朔0: 3ӳ#Gؐg)	}|<}oY	K
+v>Ndt2W9ŔBlc/Ee.p>N?	12Ѐ𩃶Mz>x,>;Lo-vkJC{ˢ~`"9/сǢ },7uP)v8ˬKAϸVy߁Ո;	Lp.Y*I2:9?KJmqZr?0<Qt xui\O}zWuEg@mUbt<US-?B̝Y35NNz㏽S4|wm]E0}?2}6eOvB$a5$Ua4&@p?Np`frv\uTT"}~0AWM֦_Y)s)\USI:J㬁L{c	T4d=eë7d%GLg
+[cpjAؑ=^Kf:GLoPeyj1ˮۢ( .\MYBڂ=.͈eEv\<~[dxȜp%C;{ (Tf(|P/ຎAWi0}42ayQ [[	3z0tjD<!T&[ "/uvi{}9X.
+M?Q%5)h^ojg9}0j1o]=Pc`Uot7t<9źlFP\fs>Bخ䱵qj/y讻f9<V>aJAf=9[dm*
+%Q?F#6#f6XF֣juՅ"*YxJ Ҧ[=^E?Ū4bΧ-"ސ䨭*Lyz"GXWs.fj :nl`N6DY L5_~$F1"'fF1(
+@w18=&+ -h:/u4`t7]<f
+}LｋTٺ*G?9kP@ųX3)]sxMwsz.b3Ͽ%c~pm5sE#zP-G(ob6~"_%@ s=Iv
+s)IdLD\~y{X;	i]ӂ|>TNOXuz~
+Ú^^T~ɿSdv?{?[$Ahl2db39pO#8IlUȥus5E@ }amƝN,Xsʄ̅MBI?e2gZk<|t=DDd|7<^ճǔ9t>NʟMX`G0+
+ͽ_W_3v!>~zp©c^ ]8e>%e.ί=yjk'<S]u\*Z!rk{@F)M̾ad@ND2xfӽFǏqsWc!4qD(!۟ڔ| Юu@TPs=x3-:1윎{@7!k㧡q<Uu=oҘ9rH@cZRɶ5(ޥǒ,w蒊,2kĕT\5:$¯#ÔPvڭvkx!|y8jc:\Ҳ@0|N*Sxu*֪2P zT56{vey|nl!Y6')2uof,M7sMt$2HnԴ>Z=A9knaask,9[hdxL{ͤ19OI3"7X5ir䓊9{w5E;Ӈ"N!l?ڐ:F=|K˧ҏGײ<Y޺UE'=mxE8̎9A6	kʼ^0p;.I勿DMX96Hql,>[gqzfs`,}TzBa/:ˇZL2=Sd
+qqG6SKZR@r:v
+Nn]d2lP"ԁ|O#[lo	tj0A26Ed/!Z-E̸O.,$X!"^$͍S~T`.四ApK,"J5'aQM-NR$I@]4_đZnCN"I&bquIJ?¾1꣼DB#0m,1f|C+>qh%c{)oO(kQVއ'rw(MQUTώÉR OϏ,;'faiG7h!ŗ|Ի_~8V&0͏Ckoo1XH)+(Ry/%)F=1n=x=5BdV-+`bD/vʚ檪75%4f/>CU>/v%tPQY|@cvf:*:*aat-'ȎIZJe>S1tN ;ʺj&>{u
+hhnz(pǑ-pꗺp3bcvݠk"[S%!BcXa1~,D!':*=4ts0]>ٹ
+$pV8U=ra=&o6o6Y:<yffQH|&lUaf] =oo1T?6GHǇ?ɾDn6?­-aX|"%:[mjJ45个/]zlXOk~`ENwAָ8_U7-M.*st-b3O@ݡ~9Sj	8/BḰbn[9p`U1__NcALC='T뀝jno'a?A9o?Xjx[40'el80}x]ʝB/vb0 _o)m m>`@kԨp2!5ix:ǩ(C}aYrx~<<>y~7<o"竽}toHO9 G.6mw*'~j*B1(u^|H5>a'g:[_#V7&8_TWOuڇf_cb11%B_]kldhᨁC3SA}[MK˺H|gjxkzZjrzC=,ϫWJH _4ֵQO}Y}Η	+0뻹_'{\!7>潊}EvDWs0q#`l-Y1\4Tbp1;3cYФLͷ8 Ё8L6ujRz+;`"p&8."dIiZ2u{+׽=L߹yD̜YGRdt^;J_Ly4@DCrՍi@Ӥ/p[bճt]dg 
+ѿ	Ȁ=ܓ]?LbХ'oaz-@!50|ɒsQj@2m0!qs>1AU-0u>clSA{p.1]U'1t=tmޝP?zߧ#N#K B`QM?L;.|k_)_R/sr-~^B#aj]tZNn?3銏Yo	(*t-!5AhFtwဍ{}~u8//yOPM'}͛-ypMgNov5crCn@_X~r S٭;-&$ꀣMru\|<)OOzxRާ)y)b0N))vbZzg$I߻ss |O:`fk: )yݲy*O+Z`ʽsAXjo9Oy\6BW"}(ws-oS4O߻O߫OͧtIwrR>?QM6zRa;AIo	"bP5'Џo솱h:LOfج,bj::4SQpxXypIzg6а`p t"R#$+~:/ bp+8ZXs0鱨!t478=vЦU@3=Ր}Ԍ(|9<=x8{2=80{v'~lf^3
++{_ifyTɰl{2;(EtoWboPFT^~ކ/MG^\!\|`Kd?Y|Px.[O=n3 I@-+ $Ju<b/oY<-#7<ACh*}]Jd|r02j7ۻ-ƶ'77' /n)6j<ب"S̇O΃w8TjԱ-GhE۞[0{Q/#=n`붋;
+x㮯l<\wVN|
+16#|iкXoiZtuWƳHmi}(-Eڤ Rwv Д~sL-&&I1RNLR=jB<vdӜJTPːi4#3o߲d6p=&Iتӣ.3IqQ6I}EhSS9(ugE߳M.3&?|	[}<aat뢜6OVlk^b<L00nSW,2Fp4ܪDU,C¹>lЕƿp.5(StU6`"yXg]Љ|8KS
+9jCq][dX Spl:=LS)3M6ItxS@כĞ3*=,irsJDK)I^\c2ZoptvUk,mlfܫZꗬmU{kgM*y?gNx%<Ry.Y8-̨Xo	 pEua𩃖 %=$ /tlt9uoA^	q|=ca
+64&!X\@R[񯔦&rϱFsW "y$?=
+.8t7Wj{C)Շ[e>6:/Й')Ʌdbi
+aE"7V*=''į#1ԥ]ruڷ(Xŭ8EQNO&p.?EcIygͦј ^7dK,K8h}nºЮf0h\	[fR-OnU⑪-Ⱦyʍʀpr)I?><p]LUݦ#1CQ͘]m`tƫ~LO_BNLѕI_7^%4 QZ@B;<&I&**n4:@Vz$ImꚫNgpmU6KzmKl1jʰ&ݬ8M"o#Τ+Mj1q{'v;U*55T1&嗒Q:e\NMwxI{D0v7&XRcQզC:"w-].w-%Mh88(&ZCkPDJbB.+B2ɕWDs=}`)?}&7k5tnxЇ!ՈfNא)x>RWDr~#7Yym	65&b=qmxbp!d]	W!{ȸ@3GYɛ1Ua*v91D@  R\bEIf[2DVwT;NAh&  Rpc_[=GA. JR07wP@b!JFb-Ƣ~ǰKV&RA
+,	^Є'I	%ETl4Rn	(z,G
+qbZ:fVE.J@|vMð )u@@U1gbK
+y0U>?b?!49<vRpG 
+Xf	0I|^O}dR>J8
+˫sdWف#ew%9䒠Pz7W( Y>zf|i}z5nao98˄1nn2J|CBW/Y*J6: sT3+T8?"r)jT5s> ;7<'cBF7-ʁPTuH5D،;Ԏfsƺ	ۉFVt.Dued*My<YGxPڂ(|;ԷTk(Q6U$^Bh̳wS8VΪAv##VruR]YUZ-64"YޠNwmU*wù	F\@?U1>iO)WγVIowuMC~e;- c! )lZ9t-)̯~dV}s.cଛ/gMS\ޑt
+$TZp8u-Uܩ̟8#crUWxLLdt82yu:v)H:X孅N`;Dܫj2ԨK%4Ee8>Ln(ɫ?}nl8iEI|$d`(e`ή	KRe,Id>9\11|3;U_Ct>~@̦cpqۿH~XIrr$`{S=gjp$=~R5,gD3&942N3d~i%$<9.҂|meǏz]AAƳr,t=$tvK/S }GbF; ޴αzw{{1`{\* %6-S|k49G96z*a	D_LcӹNUW4-)%b(J.OJ$ߧj\:dBSNƍB>bxDm~scV5*O݁)6.> ]Nw
+ X5K?ɦMF(SD}JYi!,2a5l29GZkG.1WK	d՗K#lpm{I:Pyd\74:$(9^(:8/
+n	F8~eeBuY9yhaowr;5?prk9Sz߿@
+UvݐWźߘj&W9y|WEɞYYX[9R4kY(DYXd`j$ӚGa7'2[뾎E)w:5uh*WDD%PB+3d(˖>\L8,]x0EIs,h}?rXeH3 ZpBg~;˱x<r:SXfRj;M
+Wү+6*/j[ lipqC*^07%6|Mcܺ9:-O5=xuI IJU.q׹Õ&\Ĭp~ע V=}Wm?rW~0( 1Ӻ Xkfg=M_gh𼂮 QAL8;`y;$,QQPΙhʈU
+"mKj?<	+g
+p<(ѓլ6p:$\ZA91& ktK+6$3K,q2R`D_̓d.wc,aês{&$ sRGt0bJ- ],Eʎ9 oE~ؼ@v97j!\RvϫŢ»+ 9Q+%T͑Z>bKX)}1m=6w#K(,#4 80d<ՐG5	jMp:5ICvѺ=38n3&_:aeOm ľsCj!P*{@Cc@AJgp+L[k!MΨ̜|}U' |7V+lvl+\Q_k=e8>"ñ/*ℐ*r4>i߾}#,98e,jsqia~OΡVd%\ٍL%*tތslVPSLMPSn/ܖ9ڗfGNAO3FK4LH4.k֋svrӬ[@8Kv;8Ѱ!wvyV0[<Zow7$}$e?U'.1/<DC[@Ɵhӑ;)p
+A{ʆa"F:MW!vL^I)꺺Q܊l癥zv׷}tXY)YvYfɨۨF_p;8=dCtR[,ń,y_ٝ(4Z-՜%Qno\#zanw+k̆&1?t185Q*~ɚY)%m{e<XWu+:'Sq]f+!Ef!/9{U̝,Vd#R#M<IQVCVoYAڋժQ|/YZ!Z>}}sUƾeaJfQh$n(,/?rl#@l)05ķ'&ţP5ԗ3<ZG$'V=LlMy@SDma]?-Z;]҈,5kNcNrl9O΂.d8QQ҇Q_}>ϯ.h<zVtSF=&er&881܎( .7~]ux+CIOIcBi	"nRꂃ9p
+h@d%8GL/_/cQ=VDX;wһ.}?k'=CI"AqլFDNpvPM?	X5e*Wcu֢?zI*V>w~;LʺP;(9ʮ;uXov3#.+:Z:Ch,zm0H?AN_w_|THgId1;1{Y-sL?޾70qe#\Hqj9{G;q̰WQn]C=Neܕ2/Tߓl  ueGdƦV_ EDceƙ,;{Ӧb|_	=MklZkxu;DlNJc6pf7wlvn	$ab&;o/c2U]] eu)V¢l;E84*iyӧ\|#Hqzf3-VdbB{%|";˳fuiLO_r{^V;[5 ~2٥:"vgvs0Uє02wA,̃Bk,EcR],y*ABe<Ixy	"շ
+CW폆U޽bcc'}x'@M3Fݤ)1-Β`buf+؉ aLȩ<ۓD"u1?rOS['jM704~+O؜<{9z3.DN#hVyhC
+j*ͅ]7!TOXU	&JF濦cw	47TRmүuEeڮonvB7MBbih`5ozMM_iBOu?&xGO!F{4Р24#c)@%KsY:;u*\EiI]
+lO|oGadl4#{FI2adYMٲ~>X_s6u_Ze ݑ~ iG<v׬U|n~B ?jFMh8$Vw<"K|-]Ql3-8X&9xǲo[YNKrbtݨWD1\ir]mV̑Ɩ#-nUшD9'lH#P CK% gZGiS>Rt/p>{Kћ{g|kJ+%ؓҌlOBQ;I`_L*Do?S;E(9X!Q`8u4y-O|RhG|"&Uf|;*E%e|a>DkC
+ oh<<9GmPɪΟRROnd2'"z2z(@!#$dږiF#jiKwg#W!pe1'3sHk(ˡzxZVM8*6Ӗ=t{oz_[:W+u.W!m3)rHKOS_j"WOma0aI`,2f߷F':,yw@y86߿"MqΟFo:l3*,4-]gv6Ь0@h<2k~*3Lq,#K
+NeA:\1P	Vb3țznv`[cy|ª:"ZL練Qq`>>FKo[e	ĸ\t/gH2qo$SEe iߤ}!;348܋&cuew?z4[v?|3/EuՈ sP9oHNvuI	ؕWy}*#Yi4["otge@دHͺB{	TFЎzi[1rF4ޥL7Cf<@Uk7,\rT"oVk6Rh1ܳeu{ybCNx瓎.9p* yw=?Fkb_$YÛ܀$jΊ
+֊"mp*W(x3 W>oP} Q7>̷sv̨<gHdLIHgru>ij~b!K7o@>^J:ϭ~
+ 	PEKk^{t
+hlWfSb3^߼r5kuo^d-)O ~GP}Kp8Xo&U:&igj|>kMbF]$#:SL2&ghu]`}cZ7Z;ۀ3OȘ׳()\q^! !Y}Y]qq')`L'f0p^T6UGE ܇+`R{i`nz I.`}`kRWΪOb#5IGY'Z`zqlO]ɠw_oO/4l\` YbͲF%h( 9N4_^f'oE~[{d?e#úCk/zQg^ޢr&9VtsFaЗn]T2IJƪV⏱C	^DI|6O"G{&3e+UFSy *PsaTI!,@in3$L-o`%޳o֛s^`_8k8%M2JPrV>"ˁ@\)C:r1\БdhCOAҺ4&Cep	\7X^84EB$Fg DU%!x%ydL.]Ozc頑IAOªIk>S
+Iaɒ%3ZZ AZvlGZ6_յݪ{&z O;C~XSmK^%YfUIkA5.Iv IXg5)z.ЈHg{˗0]$&spO<D-Ơč]xø}d#NBk)nBF!Dq\byUxjP%[.
+\qD'CmGݸ}Η%KHʰbSe{}M$oŴYkL\5	^ b_Q(
+<[4Jv:Zo<ѯ/&73ͺ6	LDk%@XheBw)L-XãSʨ:ՃI`$uTu"bXy-V(aM-xqF|n+G3GI!1D4Ei~M<j(
+SL8;1Y<!e:D0Dz>o6,Qh=&4HABBY^ Nj@~aTIFNم),S+aJVU*+\#VPߒMw!h6޺>CeGJ㈺^)));`2hdý{dv۱CR5,&Q-(z69,2*R'b͚e''A|0Z|L݋L12{ڱ2r"9+~5x*FB]U^d5ΛF4|qvXj<۰xÖ}U{nisd3fVU\|vAa23.foL6N̷	G͖ǺK̑#Gkd>iOpjj=jq=>!pupNG/M%g\".߁'{g4ژE2YDV~" YLW.FQ"G?dWpyqv	e$OAF63O|[7Qq]11K96Pp ljd@V4"	'pVreb.M
+C%VqWkrf61|bx*Ꮜg
+̸ن`BL\\`e~QT_k.ndD|a1I۬ЧMF'?bg%lyBRtX\'pOK2xQ^BƤa+ynI5*TXH(VT(0E3qHأ$:{p=v>HÍX^lAr3B}M|	
+hL`\pi2ntNR%HYsҤ-rkSHӨ0-)ME,࿳ROU;61v.*lvc-Q`\Lq7*CQ
+nxN.+`i{mi2f'ʂCdؤ}WYVm_"qOkn?Ujhͣoi>nӣþ2R58135ion^JݫDiX;Pv|m2}cHi@fjsזB6S>fdtB4Џ'2[Nɵ8]qQ4ʹ:tֽ?+1nR%9lp
+2aGBjr:Gޘ(x.ka?Ŧ	25vc6xZ055`̳.0'/OiA5A<Ws1g?A,HFdGd:XUТޜnf"HZ`TG!Jf8gp1pS=cũ}
+lz;J	%38UO/[X2-;Vlq7*>D+Aُ?x^zSRjmpav2U:oS(rٺC"Pd1d3"(ILFDWƷEܥG2ѬBnYs77s7݈%
+6q+mD>yɜ
+(HׂmoZ beF(6Ađٽ'֨ ߱;vJ~ʀX6
+h|+>JRw"aRj#2sީԶ(jFsxMN%L{Ytεɼ\ϏMb[TJ8-I@9л:Ė3#ì.&5õȠ_AR0~.V=.*qIv \B(T99.L1_<裐?֊	KY:Sو1!삼7]6>lv 9c-/őj!2ZT#}6[R'=n776&r=8oXXze/ |J}>S;cۉ+A0*a\"FxXnw8|*h
+Ie5DV(*!?z}/zZwiƛXΓ?|96!vM\?8QeJD4g[*~dL3tkڮסGiHoAiG\"24`>T3Vixdn)h 0"&_a$v(OaT cGHcn5es>D2XbGxp͉5]T`UJS*؏-rO/Ɣǒ`+h
+2Kzwb3T(7Z_je7Hc,4 t}x#VZ{SWl~*03 PTRZ3.sG3)wD{RҊ˗$%=+خ=I	k'/{ivKhRtC?t'ӤJٶ|*0Z0فlCN$(Qy'v}쇏BK!6hE*g]s1\iH +A}MX#CfK3qcΘ=-`Jeוy9:nsa	
+3>>\lJ#QS%jO	a JY_h'E#!B@OQ7H
+֤,MY&x`m_AfkWяnekXh9Ж {Ր"(ֿ7BE, 'O"'o6*P _7P8+Np.-UsUh^Tf.EF~'?B/d5SXq_0L3
+v06QPp׵PmcIC`hcWf7GDV8	r녱y?hV}	{"7VXcd3⶚D698,}[ ҀتjW*p?lVȹg϶?5od,_삜lSR%7 @A,N_΍˫jA!}]fh*kyt\C7 XuoEY,])ɋ8||Xxmؿe77Z@!MWqPflbk)=ϔCD~/rFz:)]X->`
+cA!tx s@B*(DB?bK6GA'd xD'',[NviAp,&Ǿ8
+%^1X9@Pjxn]<E~d&^ #+@xnXkՖm`\,Ď$4rǑ	w|y,+Bu[L
+ިoq%jʇ$=М}yaK>
+\~pq\),q1c"+jQjnu0,%VKsVg/s
+dj7:U82xY<VkwPVo^?{.͚k0uTVKXԬt7*+)X-3`ayb`LMX<dpaeps*u;aKKkRn]1<&Fea6(5~m%FsI7hdWB^3.}׷^xU	/Ę7{@Ǿ	|.#nӤ)JiKegH1xER9,\QF J gzV}L*)oxj:FØn>*53m4j,"AAKv.itGtArE&nR,CRzHωqZa嚪:"x$`IUvE>kWPj`
+>lZE-t,_TeifXV$^^|,\R[q?CQFW9mfcz{ A2NoQ
+Z\.ɯ^7L-k`o|p&	ρۚS+%CꚔIiQ8?O:kU֯xcKͣ0TECJEA{kbV O~i4mQ@˪ZVmb،Wvt9	xt!{23w'[h9N)sL! 8}fQW&d2ڜr"5Űv^Fm2K3JFg ;XfRG_+gtn$ Hf+qNT7}	"ћu;	mA30EH$"Tu(x)p72j1[1ŪPYV+!XJݸUnޢZX)M=4:mmm-ΒU#U5WqBK8־*{hrH&FRBFim|FkUl!6/j9(F()MQBbRǗ@F&9!=QȔb!q휂Qp*H-d	WZJ>f`SF:+T`nM
+lǽG{]V򂿎Q#I>6{dP>S%4htݞ%&$L:o7Ŵ+Oj=v}eJ,:Z௰~Fo8wNۼ,OYo #
+ 62M8":M;EI;fZt?z$OyR_7']}$QJ0U\H!(Sz?UXG1Hݖ7^St6)1QBsorҪ3Gh_7Ovo:^zy;db)ȳp.Kes]
+=RKS39=ʰ-h?t#?w7f;NPV۔'mʋhղ~	o$']aX'C_!#A՜ ܵ(ΈJ|7xY2 gJXKbˁ]AH{o]bdU"65m]"&hVN_UN
+EU{aWX~7E6C2kR{Sf-d Sx
+n8
+$[&=Ke=2@)["EJD2LyûBGqmuԣKEGy]-L;a*?9o͑&H՟ܗ&Z	aT#_w)O*[|^שJ!9zV(U9/8ض-!BOѬc2ȉ5<zdwy $1K@DIФ&>U};c%+LrO"c/o<K/9,2%pT-M۬EP>ҏ$xnu{hFU;y+|o=N\p~6aBth>O$Fv\.Al$F^ƽD$.v-V^&xbsp_mFcNDLIj}(u~DyLzOx>6Lԯ#۷s'-B;gl=ThmˠlM*vK߉rО+[#g5"璻y%EWՅru.4FxL,MP8as8ߌts Jp:
+d*G2Ʀ|ImnygvG@ĤmŻ0 5zCoe:v@D6gJ~6臁~IfEDD{&'O3Gd]E:P{œ}iv&ۺE&.fo=x&v\ą@&dF5
+S82'}HXn= |/0HeOEl2Mj{RUI4QʑzΪ#.A쑭=}P+5J}Uu\1m@6)l!:ORW0h݁ٳ_e)گrWiyvlȡ6]{yyG4;	thcML촶:OxyarB)bpI2JFeje*6(pK([~y(}I	ys]TX(2R\b^0+q2.T]WTiFo`CJ귘 3༠(_Zc]"k͟M!lp k׹;zɭ۴G	9-^ӧ&xk~lc'9)%5Q!+wd2c_&~%'.?+f_ $O-wD=ys;"w
+59S"T/yhJAK^OzXW`%IN71<<z_\,s!D?}Qѫڭ!ZAW纔)/1Q ;&=NOO5_*.:ֲ'_=@<?L✽E)#<e#6@fSΙgXkQ/9,1x.^Mc`Hd[XgbϑpbطB ~_b.9#zq󟃓K{b3N|8C 3r#I}IȘ^@/g
+#V{gZ-59wyCbj&+4,b=;PmDԛz1196=o\kr`/ MǃrZd0{|{{^z?yQlEWW+_U-Vž4`C ɛdR)r2=O{DeL>?	՛͙<<H~D;?$[&zlQ5H>=۔GŀB	}`_hTyLYU!({ӇIDϼ}6v9lN>&uhȻˬyK*N#ѻ7<bS"Tn'aPԻl9&=K (7S;ƴ7<z!JO%CK[E MM ZR/WNt;RҬ8(|,aqv$?Mur3rX@XF5ci<sS~;z9y Y?_΁5۱#.۳Ŧsv0qPN(c!Ɉ[~>c퀣i%(~h	tPA#e=&5pYj,UFJ$̵+\v쳙]|6䟆k2脛M{nͤ[fެzz5ۀ&@_9𳣽ϯw ƺsbg@|LSEE޿K2{ǝP<Yo(G3hm[7d$75P8g+0	<51Kiǎ970#&^/#E͜ރ/9SDb䘦=GNoD^kĤ N9^da]3l6Y.͂*4sϻ"ѠRr/
+8N ONdg%4ڱ	ش"V2n̯Oar0i_#/0PN1"<[rBY<Ն<s<8Fb!qK0l&L  Kd:5=8OI3FFH$@P {ߗ5F_a'-=D?GKpn|qmӨ,)6~6Wx *q[Rlc.':1l4~pvǝgZg#Bc+t9F(^F
+O+>٧51aLD*V#D=fZEq1ʧw77ݱ?2vqzUeoovw3ޤ4=ù鬭9a%>"@.ص	;}{JVۻ}߂
+$XL;jP?ka*1r L	79,8_/q:ՁUUh|LM9{Ʃgt G&YLo7ݭ\,֭|k,%fP[Dqމҳ1~!]BE/F5n0=}QIߩ7_zt[-DP(9If->'=]/(tvBLzIp'y-a=I&ޓo(bG|:3͈.-;Zc_yֶ)7}LͶf\La6RǒI͐yY'<_dד^e@	:]'Q̍9A/౯yEI|R/\~n1^Ϩ)n4k#=O-ck1Y0s\{悠n^sn[rXM"`jYmЮqlZxԨdD7h6pݐ!1s$8	'l9E=@2φTxO#77C5.\'>N͌{6z7 pI7 m0]r>l>v Lp+۶2Wh?w]>:U;$^K@o=~M#Xa&9#<X]'p-LP&-XPjuřq698jw y읊: ]rFJ>=ӃTd;	G+rދ%zA`1'}: (o<ܟYRD0UCI֗Y1FKu!c8|Rb҄e	`[9'\@jІ.pr?R."(wĜz,Q?!D㤇*HykF81fxsK=Vo"!ɓ{MUOzlQO~=7u199EƧI}/lK970GxX_㟢j
+3=A[75aOi3V9,i~~b @W/Cwe_&3@~[-$.lf1?:|'+wTjs@Aec S1At[=]Carceq|eE&<">Vq1DĮbP ]2f@dBİsCNnjlId;/_a'vj}
+JF4oUZFЃ['DaO
+/Ư0;;[T h4Pq&'C8ꚿ
+4SP;][PR8dSjYYYqҢD¼K1__cü6;Ҽ_ڬC%-9bs3|͕ UMɻ,&YD}gzx2gw#zy|LN	UtpNwیL㿥G$Aa
+9TpˬƱ&U`LEď (Nz>ݐ?fgZXf0\PpH3U᦬GSզǫ:#FbN%w@Of~+QX`F	SگC^H2@6eӬyfR5Tsǣ٥=bS硡3H)j!@-lj<]q$Vr[km_Uun7IC$s>"w	ٶaƘFE.>O EL)>ˍ{`a-lk`?V7~Ɉ:it\HKx~i)	2:]bdMc=ՕJWJɤڐMm6_4b:㚩Ox.Hi=>wdgؗ<ѫ]H#[!SGe(_4?4yiT|canf~SWV̭l0qXap-{7J=ؠF^MեVzZ9CWgӐk_sf.*ЌBsSɌdgF;T`1lێ[{C
+	-+haL Ñ:Ɓlb=Ocm`2}&'-5}"9R'43-5M6d}:NJy+qYbfV\mech'OSm줣Q> ^`yXs9!zvKi(QboI}ݜQڎQj@cEU@^='9c_36*$բX\8k_GH*uxzss B0BC3|A}yܑ8~Fx}9C]D;ǋkb8YZ;>O40/;:5Q~hQvANpW*&ܚR":
+Mcq^Nxe΃X>kƕi#ۊv[mxsTxXAf	F̌!ٳ5I+ l+ڱ\_-/ >LQI4}b
+%`Z.ko>>ܱ"Б8cܭg Vn9B=S *y'o8R"cwWLd	;V-N<צL/JiL?mDJ͟_^Nce'Pks"_~9S+)e-`D!~A-L|:{oheRDg7p/eSon1^YmOx;G6epMnѝ9H`g/y@ׅKmF"} n6Uzqk1W 1omؒ&8_1v3w\y{+.VQac*P`o}l^zJ~'Q<X3uħE[	]&0O]kd}o:a#4oPEQ򵌜pcl'ôHIE_Af+αGyxjR6jEqR|Js;&E2%3;&ӮEwnIM
+_Atlcۏ	;UN6ӦݲrQFl'aZLC|B͗A>:NDDToӘŉOJү2D⍆icel8{6;<y@0C<i5FW/t'Lm#\`p>j7χ_?'톀q1gMeIdзS7."KĬĿ%%DW8qӵ[mf{͠S㖢 = $,E5pidKEp}Ϲ-6ݷLj>l9HbESEE:X7打c*Pyo v|o}9b~ ^y=[jj.iRQ]0tI|MBtI+(6N%@j.tejL$Φbhm	)6@!O44Zrk_eYeq,qu)O:/m$
+wHC$nɷ>nmԭ@$ 3O^ˇ~j_37J\)Ol[`ǍtLONA][8T;p?ez\-|v99AI6hJMwEIo7sAar^bHXYM  zoL?Yn
+^Vy̯p6.<[Vަg!-p wމ5t2Ȼb&C ܤ\ p 4ֿҘ~n?KGDLgF5.-ޠ|H\)-xԵէ{zؼ>ZԱk?\:Rq3hxчh+Кq9ANJpcJ_j:۲<hQ-b5!RN	ޗ.qzSD0!kR0X6֣4f38r-Ө6<?Ǉ1%xZ3ʴ~WcQЉSQž4JXsb?lM1ϧu;afJ#5ԤO,qnh-q
+=Җ{R'jcFFz,+qf)AE~]Ip:λ?ڸ"W8 C"m5"=4x9FHk;ǒ18x=wY\sb,t"떟]0~~ `q~JҊZ}rSUF~(}>mDEʮE7b7t0Qa1qZw&L0m0=[8SζRhJgVD
+HRy<)ƭ)lk4αbSG^ã##uLUn]gtyEGc}ރbE=A䃍g¯'mh5cwseOmx끭wڵ^:ia6/GSVw\>+
+i;=LyQ;JPwsӳ9u6},<TX*wN'!Ita<q-,n,=O,LW\؋OQnq8^eN]k:ژWtt^Ճi 9]>]FOYŐ8f{<EEj/ j6]Dzx>,?gO=TmcOo4ĔJ\E29!mͩ$щ9$8vV*OKVTx0 W^<hX0LmZldxh6G{.=:-QA5B!NlYq:I!fA?ߏ;tt`:gCcjʹŪM$ўN^w򬽓N^kw;81Ln!77ax1ě	Jg9(f4}Q2'ٔ0GYy眤0<%InS3yT}[QT!v'iQv;Ak5RYk"_onڸu۵sA6I@esew\PiA-r4I|Y5jȰ,<B4kVl[ҷKXƨ˪$j&XlXo2L;U˯_ߒ_R^LfK 稊73mr»Z/GS0Z)i~z;	Y{NMzV.{}Rb֝ bp=KAZT4F4^ptgr9tu靇'7c!Ǜl3^뻕̱x3㲹' Ê46cBCؽIie\;`q7\ˋbVḪ3ԘP6!U $\y72IW`J@wvLU@͇5ʢ~)tS@2mswF|raLǋX'te"x;?2A<PK8w|gaa2{J6!2+|gQu1Y1c
+(Ab(	qU*ڦNH褼'XP&|>i}Wnj@۲6+-[m˫ޭm	[Y{rȳ 臕^ r+kNǹ`0C-Diç[ҜӃ)2wTс꯬OS[WS2XOl9r ,ۓ
+ȿ#V 1ȁXV7y!8]~8pݛDW3?CV ~D]R<5)O4
+\9*
+ӀXp\VWJh I"C2-3VPo&d%L*vxiLzمm|d}j\ݔMy]ܔ7Pq nȥ^]^b}P֙--tYJu"Yk'ipno>pv1o"l'2ޑoh$k@ܚ6|T̵ MIBJBoB٬qs5\NH[q%]ljU3Q#$!֏'UPTĻ_X[9hݻFer~FۮAA>#iorfaS8[*(=e2WD?܆;K&{2<zvʡ[e/"D^?;7gvaYaZFScj{b^ѽ㒍\Cq+xEb3gJK]bU5;:R@wBeLtH$8j.!?k}0]-65ڈvro=Nt!'֙!)MavCNQ
+r'!r>>dN a0n']\3t]ER$}@\4(ҁ7Ҩs?niD͂6*_Nɔ|A*ޱ|-jsssBȗ4>ZqZL<&~~	1t5wI(_*	 t ༐LA4<iD-OhnSB>ӆL%vKOawߋz_nF_̠jmaHwF%6S[;}kUR7oyتaQv[g8{d8=m؇Ŧp)IV>65/{6PL}#s<c(USI6<>,,3FfZ{2tqQc("$#7ΰiP<khѢl־!G٩Qn>.Ѭ/=+Nb+|yp7^3-2C;Ib%2ZaWIYChĎ]K*GkGNm~8z>z
+KzJ&XS[Ev/mYiTݕǩkoiuÏs~{R\,Л"Bޚ!Gl!lTcfx&eǮ}`Z,ϱ򵲼Fd:y%I;3mǅ1ǎE5[>?.u맮kr0?x?U2oGO\V~LY(Ym!wL<pt`VYjx	o6h}_?"oQgdnWLĚW̲ߥ;C&g2ڳ>v^Qg=uΫ(b!GIjzInR`{(^Y)$CwtH]hhIb ՂZai7P?6=粒eҶβԎFV%9!Ȼ l0nxUFcNkCɽTa)4:;܌8u氰șYwn~nه\ɱ;xG'7ib|EY߾.e' 3Q)Δxywn#C)iH
+<L/'#IOIx~ǣް<Y:!_ƃW{udn&D$Vw	o$}kċ):w \"$bˡǺ\J'pua[y:0pS%e3'roU)
+VU%?Zu6znңMû)lnM:NQ*ܒދ/^uo#͌I&KJ*jɧ<H0(T}-wL8m}a3"-)[7P} 8)JF0̋Mk `u)q+ÒhF+'\]6nLEa{5++~:V&d-FuɜHFd8~z	6E$Uw5x1ݳX-m1U<|D9bDFAѪS$Qvn3-0N-[ʹ.!\NmR{%+n}TîwjmQ]kTim XNk{1)R`Ϗu}Hz9G6|iע\e箦Zz e:7]h,AsQSsR4mIsۑ4E2enh=ܝO3eX,MϽDYb>Γx6dEe[lg9e2eH&f6NRKf,mv`Մ0O3`VEM˘oKoK5y%ן]*s);Υƽ4Z,OS9v^NKil-+PXeQ90(oH}лS߄/r&ӤK~*~CB4E&\We72CJu 2wo?|ie_9gZ_.#5Wתu(8Aey9t_4RYM2Y{0&Nஓ3./\}W~EY&ցge] _ޯ܁Л1{Tb}2jG;	6aж̛xP)*qb~Z$~sN7k>Ո`_ *`}T#
+M	]pdP2ɔ^ix"	[8#=`lkm՟tus3iնOCh=NCxvܴ5>
+tmJNckO#Wں}9M~At[yέCi|:ϭC<Z+ψyFXR |ԆDar񭘙[Wzo:©kw#w=ޑ8J@kaƄe2#LKr	g9j11N&~:+l,X{r[_]k駅nʸ
+q>=U;[V}n逛e$Ltzu;==,*RŒ];m/]>`	pJ)N#o"ɷ]h;ETg(,	ǈWC>MH90Si]f@pO}^"A<3W^{q)kgɄxVo	fhVٲgp6;wgX78c`aL_mu1d Rz_#Mi2FJvsȌyMS	?IӉ<fT.T8]3p|9v~/iW{=z~d.nP?|i&OW5RY#K1_joz>L1S|oajhovM,f8:*ӹo{|!7ʥeȤO779;Աwv?SbdxVǵEj㫃V0.N_2~3.O$u-3iK
+!Ir0P4Cr6!^P/helkJ<<<Hy.&|̲U#܋^ʃe
+wej׆18S->;N?yCaF:ptV-ἀؐ	
+7zi-'\ J4euc(,/f]p  A~jĦ7.Hy54gF4JD<R	R|AwKC@CQ!K,H4 ɳ>o'Q	ge,o#)u\+}V+>n4c,bXDys،O`~ƇlƂZ#q:5<98\gz\g3+>Ðk&~	: 4fA:4Wt~J[@چ.-A{
+ϣ(&S^Hm}w:?}w5&
+рE}̫2x*?
+s:H;*;|RdS:8؃hxOes~9w@q]Stf8k`c\&ِ̪0yP1_;~%L@"LfٷMr@
+,^_|ELq.|IM=<ΨKO1-=$t=scv;^nVxj@>/7M6>u]_<U	bLL `f]}W]aEw&:.s8>[l:(H1$Y(煷>^,˙"*l]+PMVo}I!D*C!Kq n CO)iI'`iCn]:/?	#6{Z=Ez4|˼YȺ`)rkmvv,T!IBщ%X|cãfH}hS0p;s z ?:B>`~{QFhvĥ{n__(gWojy=^'R!914ocj|:|qdrCT>|xz+GIbl!P x	Soo nd\Dh~mT:6QtiVEmQ<3I24Μ:NSYU94C:2Xz(iQľô 3{"߆\ 6OkJP'[T+h?2x9Q1UO?R!7ϟmkg$5inq.A_o}hl2:$@Q!M1C؈5)9W̤'A77:W-8Z=%`Om"0Sc ^&^+TU]y-u$D.0a8g@-q~܍홋.=m!uEzvT_j$[(#*~^GuH4sid&of|T0|n!ƻ JP!:T";6@a2ɧU],zbhv%ufwAV~
+[IS0#4 k(N֡tz!'"}V;c}-M>\/:#
+<DmyrFum yl!Mm@N\q NNDsŬqX CܴxDK!UJO"Goh1ᱜOjyժ"8҈IOp5ew]_%8"ttӿ<lM2 R|'iZ)33TѨbx:(ڪPF,\;#W<x%}Tt';w4O $vj=S4tH,>w%M-9镮n%=9*"Oziay!tvN+iIG0Y˄LIh"Atzp^M{~AvuvmrSJQiCPjZ)TmŮm/-]:bp;g'ou-S!D$규Γxфj=@Tq>?7FH}
+Pv
+a5 T$w7:Y[\<y[f6mI?vn9Ktþ3.;e곜7ٽββ3-48R[kg1Hv(vNZW/$,@a^>~S`ĄCvXW6.J8
+Pd!	+1thaZ<1h	O$u_r >[Mָ9L{JN2}+}=PP*e#pwYմcܰ֗F&>gu[]/$13R~T 5Ң)qUthC`M	_;°gT1 nWK ɚ~PSjԭt~,pOʺ0|	kڢCn4S<ǍZ"W^oy։rC=\#;$%ReIML598BV5o7te~HB.̎3LYbf_eu(obbĪ
+7h\x`%\[@0Kyᒽu~}<7v֊98H(''|:fC >4[>Rnn.V&o&oJzvz"~(H+lL#>+=nж?Ct"Geςc7ĪXsgN%zVZ,X{c<Pk>|HL6_XXyC.#;4:NJ,ٍU[v|as67\Fh]9ƍ48̴S'*
+Vif{X[m9oow`ݡ~0;TcFkwcFGC?8SEP]5l1ba|ُ/17Ȫyrv|wJDm*(e yn`D?HFWU~	Z`ŀY\'А5֗YKzi25zO$I0+Ac0Z'?뺞M3픞p_Ẋb֚sG&Mw8_1}|PL`z#[r	֋dpo/Ѕ'õ|oy2[hi@M|HEjh/e5ye>Yl~@5U-MPDVcġ 6Ld[ħ2PTuM)M(oE#{KHb0ȡZ"A,qMO̠Qȓ3OGqƱdIbQe@!A+j~:莥GVF;&'fj,$N;YǠ5{AvtD2,tyC#;![lr-w.?ڽ>.oa48PγE3T*y:??MKDHC: 	a'#	woP:<>&8{ݼ&8JBHO^ۡKu^5Gvw~VAYuO!]ˈBbHh'|Qd#鏷rKhOE<?
+w![	0~Wo>C/,aEXp|=p@	J-\\&e6b=*JՒg6JɢGJAE8ʥr	ݷD#0KʿMCEj!.3<f=<reUa[g_6S-⹿uoy7(kʐ	#wz41f@CyBdjNKi<= csqpAqGXVЮBfd
+H2,q[8~U1_4c!%oigY?y8o&HٛQLvL~=sf!{',7li=VmM-uٿ3^wz6d(9b`,ّs׈/3[Df'~8#vd%|Z3@!@<jyzQo>`#AFfX_ )ҰpVQƯR>L
+&C$˘{٬eK=
+{09[3wu]G?Ao2[W]dڮYI I/Cv)YI15y=smf@?M㤿ORpnmz3`'_AرKl1)ryC88Zih155_u>bX>A'wZ䐖&r#t9njeKGHA!L۹pbi8OYJnn}l$-8ŰTz`b5Iy_vt?_}!KY33B5UgOS2.?,΁Y/+d	sIa|Bzh.& pY'u#IC1y67u	9Y1T0tOjSP?ndGƙoV TaRVXlQ{FUtMa9#abjm,mæ?w-d{;6c#2J^
+Dz0o	aіu3 .v(ICě&-im-j*쌠Iު22(jii6&;oD|w!ih[
+ڙhAib,t`"p/pms].몬6:uE	$2[
+ue@&ŏX01
+~|0@sQb1"ʒ0a2_gU:ċlB$cMN`7*`) 5,|7vgJf?D&W@ldF|=F#M򾬮ʔV½ wY.q Uy^K 5C-{Y4A/Ǧo+@|xU!mX!U~seKxY0q5&cMJ" .f(` jBh"9L>nd&X4Cy4(ߥWYUW쿽{pL
+BV	89kyS)ƠaTG	$hg&ѨH^&;E[4W7-ʏTMh+$NH%xLx[d׭猋b_9쨐;6y8k33)KԷ/@]b{pE-ֳhcѐ(Ād>jY0YfUVf%\C2!e7iih@YuFsEtkvR 
+8/<.P	xșJʞә&bH};	n_Ӝ(hoжa-3``#ƚÁZdYPQ1?mϰaҧzhK8,qK`k
+0Аs|2C40"{+aׅEz[\nFϒB̲Fl\X'n+ϭ~cSYЋP.D6fL^{bn[kȪSXG]_伐I/2(:#)Ze"C0eV,A`']Ɇ=!}7~C˛cpPsaX,&\*D5BBM<ǒ۽BkwvH/ز(/`})Zsfk\d9X:*w׺+C580
+yp.n*#tSa 6xg,ާm*ۄ"yXXGEAxO;Ip5viݬ4Drs[o꼹4ydu.!g\K3d:Qfcݲ@t7'~-V0^ֈ="{tS"Ńx MYLjҬG&Y9u7w;i$qZoV+xZKGՄ=x1*W5UBve",e!-3a0ӸcHNji*}ǃ~`35
+y| ۬Y\6C0+w}G .VCb(/_Y#"kKݓNM`{Y͝z32CXēas\ˁCҤQЗ'#vfzd3dÐ,Y-ίö? "Y^GS߃{BQ=x
+8sb<u#\P>fȵJzh?'s8dJ_V2qelx_s{k4.6L"slEsYVCE}ȃ4lRVA`BMN71j	DwffFM Sň9#	=0ԙI3TܗӞ5	W%;ҽ6k.vҽaxc'=|Whmq
+?::<+mYU^AߍEiHʐQ%	G0p<Ȗ#sGM|/2ئm-}>&9e7+jMkGFn#Hsi@n$9{Ű׶WF'GF#h0Ûx;/_M2NT.ΫA$C~'TVx_IV*oj&(Uk/;Ihב/0wtY
+
+xòRP-*qU4"t^""falym$1yk4³oTgGaGcA_'uZ$ӕʖgI	C7e6-', ??,iK	F_!B9dBg(փ~8n(
+n|ڦ[5/.<7h#՟YWjRbؒ%SvIߣDd &+C9WE!iDV,kEن~L콸&Zm/&#F#YR`9V9숃d-L=zϹrH3d㔄TZK>vԄºk
+㖀l(eIbû呃Mk\Qޜ|fvYVa܆5ǺTS!Ӄi><1-OITk׏&H	2*OV`=	qt a#ˊd[ՉZ)?afknZjcRGl
+S.qra(o;)U(>H7k԰Cu u,꽘-!un ~'6٠Zj%79
+-ݢǴ;;$[u6Ct`"d 7Y,%
+ՔFc-4}TT{V,ћ_326ES?	C<Yn ުo1TazNz&]cKI}:7Ts?&`_z{7Q{Gd~݋)nEV/Gvª=|=s]5V R OIQV(jڈ,h&OipL&fgO7)98Y0Ys?!їDIhw{h^"[`I8Iic@-I[v	nOanJYoԢʖF`-%/׼WIf\|[\uެrZ(\\TKL뤴OHUq]¤HG7JUbI; ]'G%:h	-YסhK0PwwIX2} 9Kh .;&K*ҳeus٧O жӾRH+z[k^Va~pXInL)b17A`Q&%m/*~.~#Q(o|K^s;ڒsB^q?rDR8y&3Lu>4{Numci](AH=Cf$[εs>=j[Brߙ@<tс|G#נ|>E49\1\ S :mݟ|=$l^g,j&rx=8:igd[ZߊQ)J/$xzƚg=nNN5~o.jaŴ~oy_$͆ZmYV~43*o58_-WvK:jRCqէUQpȗ߀	}CYH͛c|ѫx_FOLcFQA)K+nh=6%@Bt|6>,QodS9Nq>HLq\gFo/_MR>4҂[h&WZ׹]#\yi:ͱ̹Sc
+f}g8xp>\rFCE#ύ挂%QfHO"
+͋lߐL?}f=e.ӑ$V[)%8K
+kD0q'ekS1m/hHIyk\%$؈0MZ,W\Y$+,qtsV6}頄/M,ffuқ5⎽.ӥO-"]bݧ<޲>t|Pg"׬ZC<gM$Ĝ0豩Q522bl/k(+KCO0ѡ@w'3 ~n҂j]!s29mQj]7v9z̭#YDehEl4]:Sa+AqD/h0b~3XQY;(Rå.ͱ[FBUBGG0BU[-z#:9jl=M M*H7J}!o<OZJQ%lbr
+K".cMBeF-5iqoWUM$yMONMsabK˲|QK ??I~jA^6cNu6&r_ѝfEiZoëy3
+qzmmUYU.s8p	sU*^b/IΏkXH3m"OY1Bsz˄O]bj؜˕xA`l0%6iF8|A#ݾ<)e]x	cmyv/:$L.'л2wE嘝"M:gw5wj|VnU@V@GOh%iKBc#5rl$Y:\m?(֋4D! :+{V>_7`z%);f;: Qՠ;$5%}%ް\nV To]ZS#4լ _,܆%CZ4,A[o{?F;2fT?9t0a*	Z0`[iqVnzA1Nu؉Ow o+5@㗀pFQ,P6+1`$'YQ*.e6T38 lKVQ8!_0_XH.L{3 Xl֢]M.nO'lOϧEnj*!)ZfڣZgi_*u}L'Qx'lYamíF/mvda}םh@=c-ShDЈ; Gh"Yԣj7bs6`*ĸ0r.9/2%&%_D3of|VjpNqM2 .Wt:ELkc;Ʃb}S|F(g#EyȮ& _iAr%RRe#`eiT ;vGtE|HU7<$RۡSjYmЛ$tr,7;i$##A%#ұ4xD+uC%orV%åUFYBƾLK5n%+A c_p_PYgzjŸqd7QBgjH"RtQg!X:o(
+S+C~A5qwg2Ck
+ƟQ[Lg*<d}<#&)?.D! i[rL(QټEzn% _Î=Q=5	Mni1dtiT
+rv1A>Xr\MYR3Y^McʓJMF#FMb\9;ڍuVr%:w*U~Xxʽ˦닪EϏe~u`NN2	ErS/Y_v4*d1v}o0ig>s%lX?ƋQ 8KÅ1ޘf2%s;QX%p!rG4^x8^RVRs핅QxS,yrޝƺWן`*cKڀžz eTS\VWըZc$k6*FqXk̿o\}vWA/Kw#	d9/p5T6gjM1WTմ^O 6_*UAh"'J RiaFCA}hyb/FANE_=lw}ߣ1m'r-ETVbvbbKeHj,߰_gPNYWpx%}\˞؋b!jXțe28xӸS¶@8#U&S|@.Iō'S}GhM'3&a84>+8eSH)w¹)IDg^HbsNȊ(CI.)Zdf3󃍼!m >q
+aq̘=<ŕCudSլi~iy;I5>)eEn74\&@ܬ-Mk;
+߸sGΐNSLWiw@tѥ10|G4v>X\x*;U&|NṣBݷb(2árLaw~m3wzp7Fv}΍#C\pCRzȃ!7-g,nx7/kb_ۑ>Έh:c1TXߡex7omI>
+rܓc9C-tNYB>49gP@q)Y&6Km|?~rV?m9%fl,GcXZYʁ[㛪b<)r9hf {A4~o-2cxmZql;u֎V{c.]OJDf4Zfo	Ur=	/ט9)~#]XyFc
+/"'VbPeEܭ6jS4X7b ;^tm`IĴ]s-tѾ?I-BM	G|,{Ss%J{/f0g_9y>?*ίd`~Q>_su>*j6Pqk}^Ek}%f4-bDTJ(?PՉ>I+).j?oiB+mqF"B&W6XkZww+:X>I<ۢ2T XA5ۓPg|LPHpdoR
+2bŖoc;u *#fӔZF^.NߍA3l79FH{`C;څ^8e%gAC{d5);ݪ\)ݧ)-P9ʖ!ZkJ"#6gK& [ ;SpFiѲstgkW_3>Y!b|sQ)jvAEH+g~ZaDXB:|9Fqx?5wJݚ:9xJ٣N7	Lbeǋ
+
+o۴̺91mJ SS/MtZ1ߧۮ
+ֹsjO;uHI3Rʈj
+RpfWΣxozǉ~ݒέnq-K,..X=h3U(ĦnvL@HMZN:f"ߝUsSbekZsq f3Ps
+9s 3IlץY"l3z[!1da:ھmy_lͮܲz`e:Q><_&g[9vvҢ<.}8R5̨qC2[6C&Z˪/ETTNzAmi/-:ѹ$WݬNU>+΋ux) vVCrS4nJHQ!7UNB;%B*˯PS5a'C8ri"NHZj	w|ݡcX?)qU
+qh<<lz)Jajmj$(A!wb>;)f^9ZRfyF4#H5j02	$IKfbUJ;biVr~Q_(M*R~J8
+yGrQ1eUUϥPR[%=mmW'^|]Ԙ*Py%9DE\2}djy? O"x**.slR_07Ő(!Fǧ7,w67	0(~bDL"I+U,v@SվtRr/@%1^i=BΥidI@w;6B-'ō`G^3xrEdj.j 1'0+'YlGz:ol&..;B4vـyNJ<bD|ha~cM5Gvڏn	X&|[&Dgbl0<!m(x;`n*Zx
+=m{zOΉO&>MzckKRp_c}1?aeq'dk|+4.*?p"m㊰6Ś#ET9X8>nQn~vnqMnACkPO|5'^{y`q&w[-US%hp9~yٲv19?$pQ= gfMS6$Z}âMqiim$bA栨x;?M툎:-9	c>!irbE~lvo,vB:Ėu5v#!k^?nlߧ)XYRZRcπRNH}}`6{̔U슸)+ڠ CBb¤V潪3q.ԍ#8Ky\ʼhfY=׏Irhyum=փGʆ*_DL0|>;ZZ#Yvқ/yB!3(.WTlnrxǲa#.sI	ܩEQz!1yilk6Id;OSm8m+
+N3{ƪwL29Tbhs?~]c<Oć$yWMack-X	g&RQ Wq0f&*6g0­IqH:H:D	;XD(ϭ#0HL&Dv%%Eh*=M(@6`4ZvMq w <[v^-e5vjk3g2tYHukE_`'5鮴A~E[*Lm0@!̩U3_{oF\':fJܤ?(e3MkbPOrQK>+Z1"DC[TM9 pPŪݺҜ~ jR-j?
+Fax"ItǽnW&5yxf
+5u k;6_*9ȕku`J}-l؏p G̘P]Qu[$;kGPjGQk:un]eEt]զ[OZY,J;z:ղ}
+T|yF-4jraxz{(٫~6=GwJVeңXV=kd5DMiߝwXw'?ԧB˔xVh6BLGgLB}`l?`8&":g]e-FW.3qw$zAնdu&0<M:	Q-ٵs^\Tsv/2ϖxH(asDrqU ґ.|gOv}	?Mw^lB)Rl_#k(FejM9IbXeF7	陣dDuGS)H>[ZNYGhlKbp}RZY|WD"_\R$??'^8jv	yXFv΂ay]·HsN)*.Q+& EqeIZEKP2.Ni(Da+dnvp)vOٹ?h<[f.:A쥉:nsӔet$J[\H~_mFk$LU$"
+=^}ˁr9*SIE/S<󕋁1+٥lgѕ*	vLzIRmY6s⫫,\-yPߗU鳅&5hVs°gu+S-β:F:QiC@X(C5ZFUvẖ5ZH	QQ.a#O'nrO_WUh_ $q"/MSb|J3j'/<ugK;meyO	VOBɔ)ydH?%<8m;{*:"<-,Sl_(DjI勂rrdQGB1M(]dmMd~+\..mV "_c&;N<m~xG[E=./.lNro;Ɩj7hS凳h`1"5vZ*O؊8Tnd4հ#PKN:8 6
+Zӻ#
+ĮD*ΞǺ/VϠ .klOFp;&ۑޔ<emvwMOںa+o4Fu+qEi2`r5b&xщJJ@H,{քj_\p/$JtI:6.Lt}~G;qK;ܡ.
+$gWLը+^xY^'5}Po%Gfބ-I%>ʒs*tI HO|5C:|]xK/ȼ]c>ݎbd>ْ;a9ZmeSHL:#j<U4뙘Y r-#^{2Cb#*JI%a
+0;4\"vpWئ*C@5#mj٠[Clq_fN潓SB<ڈ;*LǂVj;NYKUkI8-QIG9~:+wÜߚ=\nMɾ5-q[+fB0$V/5ڔ0{1,:|es%?E.xx?g.r{_))
+5l8J>	i^|GfwePlYLmnwb"<}#5)a=<Wbm{		0F(سߴRf!v1 $ʴɩ+ڝXN[V5mcEJӐ>ʠϭ&^p<.:ɐ6NrG@0ZCŭ`Ci<ty&Xv[ixUn7MU-hz85/=H+ tSA~,%"3:TΛl*ӽǔ&m"+殾~`9]53ѢlMK;a"_j%A+{<Z)ԟDXRGzKă5q2wSF
+`"RɅ65rѶKix4 ԖA])6͜N:\e^c8IT "cHEx.8.*BJң)=!`Qا*t~Lffh4`Y[y Fia]TDj(=Go3Wr	Vh12luMܳ!2آ(E6ueu|u,FlD[iFg!mUuCmϡrR0n*VςGyٞ{O?l@kAM4&XQm[) {5J)NIغ$5s*%A\mwJ"iyȻOpֻߦ(e {sG}&J0}V\j4bTތ%	s ǣ$$o>E饏PҒ+Z4}t2)7{Ibu<E1⳱SB-(lUPs.ƌY4Q1H:\g*G
+%AhYxѝWI2UmeG:g"4RQRj}La;}n0*~Vr׉Hd.<=D7{`fd`x!9w!6!%^3Z`ָGH#R4R.e833/ZͥV,3܁$"wu30G$pI2 CAԊdyu-"Os`u z7`HF`T9[>~yxj(P$ޛ[^YـEAka硤O4^T9[;`k!:?k cAo˄f9+B0VI0ikc^!5 yZWieN?革e6~Vdg][ܚ]^g`i,{r\4J oQLSINXQ)kXM֗9[ Apc D($'
+r/9DjuWJL g|$8:Jz v~kƀɗCQ2M+!U޵5?ˋU(: wʭuؘ-TUЖ`;b{V(uGaQ:;1n0s2S9k#bCF(1-t8Rn4!K8kpt 67GX V3~\åq17rSLX)zֱT=s)=_W0_2E'4e_=GLI;!GR=#Kca5tV1,«z +kd+\\wib*U'^tb׊b}*֊}
+	> YYu+L<]>\7~*lh؂E+9n?m5BSB:h7|/֞|m+(J~(p"ǎPЪDlwԠx
+׵F9)\_A^{Y3gwb3J{QQ%MUįF ßW9Փt]zު(o"yŲݱpe}?9ɂIEuO(by8
+-_Z<M!U%p2(s=u:Tgɳn6X/?Ȋ'AIZôy8E~4ZM7ٵUXq'Ҫ"y!`r󁗴=KA %b؅q@3(Fnʩy>N^a]׉&}-M\EeN!)ɓK;T
+8|wϜ^@k=x5c$mdZ\
+ʁD[JeqP$	d"z-a%NzH,芘Mz|*g}p-a6n)mwtve!ou߾
+&޵yGV\Kw8@8=y%R$whm0m_+uQtTP^;ބ)gC`\|p&bJ+,3Qa+k(qSPEt~sIVF%]=`ke
+&_giN;}걼n~ʻc``7	oq2#7F+-.fKW
+8lG*CI\|7-;06zf7R"G;ȿ"^We,sU|S+Vx7t-]pUՕ󐳉^!οPWy@"[:[>&N⡀DGĒ =hwINs~V	2t
+P P>2TNBN+EiCC=XCX#X; yQb }OI{vZS3k5>VcuÎ
+.RNod5)Dbgפ*3ee0(߳W;Nbu^<R*{PdYpdDژ²ס[k/70!*Rǁ
+N%m4lk=Y\als
+K]MW P*4pKgn.a 949Y]mdCX{J$6EqaΊ5GLh7ֵWvG7akoRݾnlV%9D+pQ~ݩ}G-Mk~*(L-idjU/A\H7G]PD+J(# Cq&;&h]#nWܹ!M-X%MwG0jkBCѩt֢96B:v@!R74w8ۈ4ǽ+&IxoEƯj[iS,Y],.y.@%~Q`JPb:. lr4'vw[>&QzE)xi|٤nEX.7	tJ֝۱>FW	U4%y]ꂧG_4NT%-iҠ&AIb7sv0Xh  Wl:0<@Xq(c[6+Uq JtsWQU8瓪m(-"6U[ZrJ`-م"<P~-ZcL}%(Ɗ߽j;]򷥯<_.~/??:NIW߮}=[ԡ᙮a)xr{1z~,&T OVLs*hC鰃);(bz3niT^yئB
+ZɖvdsLm)fKM|L*8VrD~&c<Jx 5qAWK8	J1^#҂:6q:*IyfK(Gy*%<HrWUm\B(@9/.'(Ҍ#}% ;8FݐJPA2HnĐX!! CM`8Ѷ1$#Vt|Y]pT
+Qy0Wli2sOM5(*BDo~kʨե6SۙGpdŦά)e󴎁AѷO0/T;>_9FKvGVJFtB+uN:
+[mI}5V׃_v"^@j\4<^!0+jhஹWmwya%5CJ%eXtL\drWFoЭw9ϋ.nVvJRfY㊆qx3-e@j|Ew_͖@-:_fr*<Mfi~~݁aLY6RpQ"ߚ0䶺n!gi2eP tIaJ^0S rk y3:.Zg~uxͭܷTrR\ԲZQ7H֗zxa	6"6~P˝YXN<AWQJ (dSoQK7yGfҁhSDwyny{pŋѲ!O`:'JgȹځL˻yRaƨ%IwUu{8V(A]}
+^vXeKKtő)Hh}vPﾥCW)mu}_.C|4(\YDtc8}[F<7^Q38=_%kw892Uw%g.O;6&b4avY7hk.n,^O~i*oVivOI۝OtZ}60?հHiwڸl`ui)H}!+x	l-b8Ef9-+?MïY)sqbb8Ἱz=FRz~ŰJzeFE<%v[	~5(4d]ܶЉpQWWcA歖$n=Ծ6p}kFݑŚ;q]"IEY#~\ _6>pbtN~3 4eBs't8hAT2}8^|wmuOП65uz7Jc$ْ\dǕԋ(̞+u%P+שt+#?w'N[ʟHVSǦpN[SUt:({vV-&g 
+qùK	KQ)4DFn-WRvzehƄN.8ѓ}?qn;i!dG͐öZNR:i6 ̌em\zh/w.}Ev {Sl^cvTM6;֏t9d-o-k۫GHJKyF_^E>L~'*4asBTƥRҨ .Mc+^Qu_6&Z8'bh#ڕ6QG'*/>M"iUKbⵔRb
+{Pdșp5R$nwipЍR-#g'FRHHcΪwIx+ X0]%5k$bU{&߻vwԁn5HXLg	%"_c`e=+x[!ͪw}ШPq^k(!7ъּW'Oh}C*vST
+GBdI";ϪoVp	wzQ s%P+eSʎH zoi;%7x>8x|Kx|͸*%jže.V6#aɺ&Ce\A_7+0Z5h0K+'c@{& ZQKŸ5nTYіhڹWژ$HI8P[3J<7;I]UB5s4`Pm]Was SlCxMonooZ
+Zvt^p޽Я^qnNcś'mVm;;ZdRHwUѰ1n&^S(sc}Snķu_}+TlU[eU26犣xN~QNt{8j;B?[XAp߻iVﾪC?K.kbEV/G~Fd;TLT\rȑn@~8/ʠKE|<<)
+9JMd9GQ#ÖÇo}t{Eh koŁfFs`Jê!R'ҼoD4"%kZ"
+<[N7o/%k΢C'DA lp΋fG>qk݆tUϟǘ>1}oʈ`<ey#%|K
+*3<z'\g5\oeMcJ&R%V{,MbyL2ErViʴtV;]I;+S4	0ҲZIN[Ď@ |5Si@\vDo;){3tP7=~OWkI[Uu\k՞[+~tO3%&%]*z$OM3F2LJ Z+3c|N:Jr<k1-[kr#2fahE.gB@9n3Nk4NosJR;ͱӡ?kh
+xyF<ߛo%K
+(7e=~=HjAv"t^qGÑGvCE6QC`!=?WZ~$;(h%^wP1XHf 0!b)(x1Ka\
+7(t4:^6q&
+Hg"Ab(pPF ,fk 1,00jzܹcyl?]9gc3UlPbAnHqqroCŇwh`oqɖubcՀְ:- czh24q0UiLi<bq\{/@ H~2n!#tRpLPur(O^}V ΀ZRxQE^	_"0!aew[27#<jk r#:8|/;aaf:GOh"^Mn@حd{)cK|k*|Ze[qa[
+@7M&!?Rۈ#\0.ľSWfF16)Jw-ߢL)lhEhV!A91]brm%I9C\Qrm;LZGdS`/ffr`$jAIݛ"hi-
+̤/Qnwm2{OJR*ILDC̿Ì-cEڪqEm#9m(pWPȐ
+TBJ[bS=ѵ듎!~2`.Ɓxc[UQ3$)y҉@%[sh0)ݜ.LV@Gjy8ihU9n8n\
+gaLH31k##ʁeUgl('F|.tutJzEw9jy;$aOɷ1CU{wyɡNt&5ofd{.8n
+T!צb2i`qN&*(o #FRܞ+З0F.X0q!6+|4We+lW/r 6_^^-ȢJi|_{dBȗ|,_|-B(aB΋3{8lTglT?)j}Z&/_ec*>w^9ʺCچaqty n?P Om\(B^.9N'o/JNIh.rAn3 bo:J1Mb}J1*q',A$UücX?s/5*4f	u0T*g| BSW](mV6
+-J<q.wlÐsM
+J=dyeaMk] m;,ʋ^V~*ˉjPnnGb=脭k몐HJJYҘVJı)"LƈzED4$ԪR]DIeCFG[Nw"4ۢ\*8pV`BDW*F~sP=6O#-LkU7"uf^=xrm#ݰUc۪/8(GcEbXGa4!MtEn: &$k@gWXXLM)Ԏ4QVge;Gx'a'f4b3a%;mۗ@I92c5LBvK?nH66ObŰ|h$JyɶL<xeR9.`1*Vk_M%nF{1MTFoAT~}E|R?|hA:ӅIR0uݟ$x
+OǢo)emOǏth^|YwtvHiW-˗D(5+\BXF[ϱno"{U~(,}LElVi¹Z2 U$tz
+NM~ǮUSVni;џ@W[i¢6C݀+No33e^dNLFt1mA?Bx]嶀ba|[];E6!XcX*C ;h'ފI.WA35Sӛ*e`Ox4`[5~zSB(CG[S2$bz1b+ZɑWK2j'y9K/:޺
+svNfI	_"x'~/|"Hz Ajg\Q{vx6en[2ὠky(9ȅi[1پbup6ɕA>
+#IY>rlL!$v
+D>fT6ֹB)X</`	XFE
+1w033xdaL\@l_T,i%${bpGpKO]c5&, f^Z'Q.xU M~ u#((&:;˘:LYQTClѓEęt=ūBvv^oRf$l9hkS~&3x[ObƯ~ajqևjW;T	զwM*w^xRF.UYsvFul4:q:uxlOm-4BR;wNX/\JL,WU@5:CKͷv^cokQatY}tgm6l!߂5ro]Ssmt7)2fs<܀-ct\ۭAar!_p*7X.3)nxx;M!:ҫ~k&q7	M|n҄ryz/Ee7C!*i4ZQ
+,|_V7/t[}=]wf B=U*0j$1;0Bqj"::#Sg hPKJsn\S鼰	}!0FC\\qakVA}msF^zN_T-lg/I&r(l@2uC#.}B~?CfQ1duRTIǀnqWWZ:|b+P4@vh\e	~2UlpbxBu=Jv'c
+sy/ #ee\&h넼1ѫd%'K|93otl,4&m|nKv\L8|aS) wXa5b_\g)n	؏#I)s@Tc#O߂+܄+|W>D|\3pO-\9kyZ%4&ꜗe9s1DI:~سB:
+GsbkW6y<<Nh15cx
+o[v`/vV(n^YB{HQY@u4p9!غFM2:*LF3rEn*7NgO[F9oECkKJy\a'7UYQppGA5Εj?#}d*
+yyp9JZy8դz:iUgO5ɜ"-뮆Ñ9T+D!	"Y*HYыIO$~O6zs{Gw8=1,,kw1mgpqwpV>$;Io$}3~Xkm	{K;$L5~F9NnjcCc]J
+5³/?KS:tɚD~0˃Ըi
+)ēs$xR'%́95\tvâwFр/S`玳PP(#=Dd5'"'h>zD?ˆQAxL#Qkb*S~:$lj0FxY6r;zaul%;j,bslr27_qP;-gSJ|iN~ 3dp<ELWe`Jo{-pl$>3爛UBD[N]̩%O~woهs̄BK_
+VLh]1n19yUADc7/q~zr|)Új?^qH3zu;6̜nr+$^G[ț~~pHZCFl
+=d;@s+11%E} ϤyAa`g$(8iZΉY_:Uǳ făoBwlHG
+GV0q޴JZ?ޖ	H]s3DIcO&E3uv:'I=%lV%lzw3	5An{-9`B%l3#BzJUUt;/."SE$e6h΃Q>٫|_ٰN{@q\ZL*SLȓ03#-G1"]Q,R5$jk괍^*ӈOn"=F}o޸m*A!\Tw%trQ$FfnA{]ELO+#,uiC>ҁ vq'$<[0᱇n@X'AcP"ϳƙ
+FA^|	#l
+<~tΟy!;QXA¥_QcBݱa62}Μ16؃퓌pZ1WNԥ FluDsD>;EܶZv'֍ӳќRRU`n<	O	vEH#X3N:Qlo9u=NnԣäZh>HĘs~P՞o55.GߪPY%t7bvJ f`%tx+=5g|EC&N	2zyIfmL[̘҅ [5iz&ķL聾4&@`.Sߍ!뢅Nu0r .pMU.1bg$\S?MZ{!R;(MƅS+.@Z``fG@]Ct)4e
+3[HxQV_@^@nm,[(r[<5wx<;n  ?&cO0;@kY'xjQd%b3@Q8##߰v33WioeRqHaZhBTm^e,d6V;̖K-w&CX1 @7G[}+0`Z5bSz
+gx,L}(7uՑSF
+,ٰvv<޺r?}-{3($do1M=k}U+!?˲^1@f$&a$H6}Af>Zf~0fHǑڽ&KMٸk5xs;jˆ)$(c̤*
+X=+sz`<SaY̓Kp^,aڔm'^Sc.(\y%֔a6g6;ayV; Lw"wx"GT
+iqdb?tIPJt/u0uc3Ӓ͸U);lpg}ݘg# e?,Rn#޹)>R0J,P jkG*PSb*\Cò-]slUjIn~2	Vxnm\&G pvI0mϚ:q-A	}:#?;>["mCKw00JӍTKzTa.y.]*i=qybCųhWpdIr/wW5,yS:w@<Vm]$J[~TL1Mt5IHucVB%{hF0w&Ui=^8?	=4,W"bag/Y`Vk]h:hl%сp̊{IS0fGa*	
+i-ʲRG^P3W͓a0EL{d$6nTY<KK"UcjBƃ4B%;4k]3.$(c0])ך$֋̳_ε41K)iFu	ֺe(];@]?'x
+7 kG,__H=	1/(gK#-Ֆ	;yyk6Rܬ緶LRƘٯ6oZxKis&*?a\>;=G9ibD(5%3lr]36S!C$$(aSits?ՆYٰ̋ӌ4ob_hnM8Ү{ U) k83	[~ed0j?S"4` Lz|MCTW6ȣ {6_~5#9*S=Hj*g̽<8b%-l:3(P^eXki|c]<1\ΕÞ i 
+P+op%۝fkX%mKzr54DM8TE͕bpCWEN3A	VelDT)udU+
+$Tر>X\mhv=2G!m")h]"Pɖx xm94oQ?)0o7a\T>{z&afvnݞ'´wn<C.=l˝yVxAoK)/dTrUR;= ,)L若M-I
+^O!$Z1vjeYޜ.2
+}&fFME2tdUT6n6GL1!w)QLZdoE(Ch_ZQad%X$mZD0ܴ_7w~\VTjuUSxFFGTW۔Qϖˑȹ-ٜ[ոg~'u@Έ@^`ѩXf&I&Y>L	N>#Voj*yc>IRYPo|,<z}u\U*RtAA32܎ l(*)>@N|rF>ꈏ5(33mhs6*f%C~X֋dr-D1
+K+X՞GDt@Wѕ᪞J{]Cބ*{uGd4wXY%¾99pܛ'JgAѽvZ}&a5v	51/ (ʛ^IZd$b_:33 gH-}UͧQ_l] z[!w1%h)0(%bJ4LD3m7C\_Dk2m踂&v`D)$R@*> #_3ށ"Yś[mm{],/p?&o 2EdYcH?EQhf%GU$Qx#wTvNHMa;(:_T!D$aJ'D{(P fm<2Y6Q%|	&׀նPL(Hۘ(0'<N" j <6 `kx /
+^`#ڑRUiy_}?"3AOݥ 7Vm@9c,+`}3s`ZMVXܛpWUXI^'HL;}'Ns+ӿzL%Ue3jZj5u@ߨn"5mKF0"\[o-a"%95"qC
+Ř7;?ιa3Kw~6-4fTPFʴYi6Γ@iUVCpc]T;y">lh0fjܗa7#NY
+H}B2S	n3Jﴰ,a/@+@Lxq2-B[@+sZTM
+tǖ<3WHEbF,LǎjS0λƔx^Wb)]EU&BWkb{QGQyO쨛%g6wFU_^/W/3t6lDJޞ9|?'9#h4	I)ԌLjژ/0k`}`y഻,F6Ȥq!Em?~fkK:5%I@)͉rذF'N6HDA\(V#LMVa7|Z<W*}F
+7ʇvmoR?6,d:|ΚG`}?ڎm-}@.*$/ڬ^%xci#1Wm%Š%nb)5
+u^a@PU])G|Nejⴒ4/Gι2%iKr!)ᙍF3nK蹋_ˌa-X?W`>螩K7T[Xkl*JB2BPuoZ)rPW$B KheDe?#,ߘԴ,(i[_3ʋbdRGYqjaOżW/*aU!GnJDrVsCiU^?xk==lS32
+n$oc YYÏ-`]jyrcOxRUpp}0R(YoqX9s#1;qrLF-]9.qO`Z&/ĵvπ{K:T	PP7,<Toh+)Fb#s5L,<pؤL9N]dGNH]Ia  ~B
+j>GX۔L	3s	mGI[@5o&l<TM6H3z `\1-^@HxгR>\j+tDU
+R-HgL5No4#I^meS8NRrR8 ZZ/=B-tn%cơ'pkYna>S)&#Koچ"-LJ$+Ek=^>q 1&o/.PzD2Bka1y>-Ϭ:buZw]!`.͒a@LG.[ATSpAeA%xrs>U}Yk:=؈3s߾,]漅?7Vj⿮nXw}btuo}q, cUƩ$$\fiD^sE~89?5,;Y.;C6\dMJLU@~cì{Awl&"!S&Yk WQeHџTW>,Z`}zCK,,wf?._^ŬW;?ذ CZ@Ak]&R;جYg5`PW˹(+ـՌ'T˓i刖.2qevCשArn 	@cYÃN ڇoݫn1 g&v8{LEy	%胁5DĆe {!I권qծy㏈&Sٰͼ
+->Ȓڏv#?JWLF)cTli3P[6y0\;^ߖ+@ȢHn4G0:INÈc@n,柆rF,v4祍r7\))79/$%\L71bjކ4ʎ+%yfce}j)ͩ-K:i&d:%$
+۪7߸tow~@h7NbMZe=,Wj	H2Hko=]BXx=̆d/e@1@	 }t_4)(SG2/@2nu{BG5~eXܢamf@g\M%qfY>߁e'~`k9՝5Wj;3sX]Y-H	|.X7бߐ}a'`:[CXmonB!-q1-޸	6
+L;lٳl=z.
+kN%r_ִϯ>c3O&G
+"$(ph,1;NukȂUƝIc8$'j[d'C(guKMp-kPd_Æ3f^ 3T865Ub]])迴WXa/>^fCRm@F|_(\sZM2`98F KFq򍅦@OyE!;@텸TϼgY0v!qYgjd UA|xy)I+=IP0>eak\CA]x$3PuxKPGT6u\ƢUv|e(ͷ"zVhJ-%>{7GթW=yԊe,2{\;` "Wսp=j"4Ba)v\
+R~nR.f+-Tܑ:Kf̳)LJH`vq[C j8`V2WHY4XލǼU݀&8NNA;@0wi9%75S"]"p[oQDg =4+}'JsGs>hkPu7ecCM:~F\73``"-dN1!Tg/Yͮ22{oj,MBwRT_F4xov"3ڈ02f(wY0Q(Irpߊ9ID<`kysӚjh_èh&C>?]-8SP-:|Z-Yrp.Bm3k~4P̧Bin4At8J
+mΖ
+W39Ε7f,p|_  Ia{	!B(waƂ]|PQ' 7GM6jX
+2O^Xb2,%&uIMo/]뭆lS{~Яs <ߚ=8Sm#<<ȯ[y='Y˽7V!at&^xX!%t". KFř0N8Nw~&Q>'ֹ`eFl֋1_>:xW){egX+Vۺ-q]QبFf$z;H4p$(/3'\ POCxL1'uiUR虽ER*ǚP٣x *	u^KDʊ.q:R~8|T=/󑍈؝FXRx_>*4~/s1g"RNw2~9*wWLtgF'yʮߏS6nYn'W>a-O.)4ܭl$؊Lz"Y*[}jh0˪YnACn?Fz^,9l]}߻o?ְs.e*l;4LO#BpAS_FFlE,	]L
+2y8>.5F1U:AFp=X6sD[CCm)lbUa6L~y=
+U,\~^m&Z*3ٕ/bK7՝N#v |"gAPvWHJ2<x@̴z(RNKp#
+yjqk.cϪP]`-fѱϽV¼ocRNOU}EZ?,s^S,a B\J=^)qiv>4l90"cƒs8C9Nz6>W('N)%kCwJi
+kUP=]N}AQH܌WC9z|cp($>'hm淾  #K(M<I-|{5r14mk-ɷV]RN0J_qWE!0
+B`7ZՈC)OjеxE,"T'j9 6+sl j	~Kau5ֺUi:.(Qi.ګ0FB8gy/_&U@PߐX[ r!Yyhbʗy.r(E4tù1 T#$נդW҄ ~1}="KX&ah#{/RÉ}UA/8"4ؿcU
+@ɿx'Ϯݰ)ՖoK
+Si`J{sM/;:?Hz\+G&!2
+Soz-aXX=F537ZUE1-}̵)=|>Hjdlp0yH6?BcŚkQ2	`P@;iK_ _egТ˲{R6LW}UrOF7CɵKƅncmpv\=ٱ+e!pzyK!c[e<5ƁuF32:ЌC,'9kb1p"iwnT\>lKPqPUtD7 jrkȃoxHǡ(<H\tL?R~٦ QH}2Lb'
+L*/4];ERVKû
+y^&?>	.'DCmByӢ:L!^P$T:}@n' @Mv99!T$Ab!NB	0^	P(_-LSq,f1Y@m|>4MXq)$#[`씮l!^J_9$@}t:_L/s)v@Pr+)o'QWnZ2*.Hm 	Qe<	GIF>p5n6Ќ,yk15)5+LJ.RN@ZP
+V^aM3Hl_Re 	Rh>>S+fB~e|61_jP?1ZǸЂJ!W"_gm|xCpٹCGf/4鎣,VmG(eF"8~`WeR:+BN9 R(vj	1Z=eE[֋bA Q8d	Q&wMtEzC[[+87h{X̫u߽G=%8(^=sdma7i)H^9_=N ~=F/{#ܫօD!4> aPe/B"QXCa;
+5wP_H}I/\
+(@,@ĺ8lΥmHAn<>;vLI֝>7$S"=y	xYmUk^C@'L `Cڶ2H#臀8B2&5:C4DjC}GFI#'nMzV>w5iiuA<aC Z 'lU`o~$g/?eْ*]儧Z{!s[-*U6CAFn
+Ҵ]+0j=V^+h6A0_e$oZdn2QPpx0$˃hj\:0#l\#r.땂/W?ye_
+[=Ǿk.3C:!B#'wg1i %_׫ɝ;ߎOy,IVu(wNT@\["#^oQ5e	1n0IŌ n$Oe`Ye妶"A<EMD%	@9u̦2	x0½WWWP2Љ6[.{o7^(p)hT-bYǊޚm\liP& :@ڸ/p2ǐ;GsxnZ#nf c?Ȭ׃Rh`le]<R}0h6z=6/Zd܆4gliï{Q87W/sP&̋j::SyƝY]A_p8_C͈1\	
+r~GLbS^0<-cZq6}oYN,{^;z4F'Irw8N{@5QE_c30uf$ ?";7N1f3i~)d$>]a;MS[m̘4&F|a0܇fߘAN>lmzGtdTݜcȲE0zz)`oi+b*+Ac͝ot\Lϥ΄,f?XM<nkbZIqV&CCoxM#G5e1=:.5ze)b-OK%덪g㎆&jR_/̈(ucQL`V5]qA>D:mU^_DjCE O[I##ɞ
+hȍe~r 6tr>$AbXl&uNX.t)_9[3?TAϩ|̸5>+h=[s&W :}*v?qP1|p9#(\,U-p&r_v"9xY $Z_pҒ֛C1P|S5mit'xH8`Osb	Ʋ4*,j&v:=rZ?~^HmZb38lNmy >v4,Oi@c~do}xK՞SGtmF2.4ߵhQb0Tz~+HǘbElw-m 41h9Uw+cpk:_EuxU5!LJƀE@"lᦚP|3̟<eCp)V&7,t3-90K?Uw^#8w-LO#,[>yK`Щ梆1]BJ^49>
+r͎]Ӣ'*#`"&!PA=w"ux)sVۉsM'&_t iQ.@t:)3sH;!z9%GIF޵W
+ U;W;8lgs0wa|jy@לd/>9)
+|ܳIO_5'bL׿pk4ejBљ[Q3]5[DV]y8GTSאg{\28'"GRk~sA/[FT+ K멂/d,/6	/!K v\yƬ%|^SDo%oPP\nֿgHMY^,|Kle-@BTevbcaoHҼ H2ا"Y/,к>o`è^/ i1H7l~KuBi|@<Ī2!ϲLq_'| {7ހ>1uXCY^n+AR*2 )J9y@_dCg;^z&ؗĘ^Z,"LnG6ZyrT+1ɩ5ň6*P{qTB_yҜRBhtS%͢JkO NV]Ө}b#qBfyJENJ~^X.YCsGԺ;䮹vO3ÖVv;D6	Κ;(x뚍0VYA-DqHPIV)`dP"ȭ DICC;>íԲ`%vM2KѰrFИ.@(s(/crv>HOv`\Cܡ^cmP/mI}ĭ0]؍aȰ(G˪~Яp=m~'&K+3_5`H8RԻBF3`0X]R-y~0Wۚ5-wjA7!]d1[+\B-+Bq+s
+66EmtXJa9#	Eι:D`ր*]nO=@vL=9*#uMPJm`3.*sxV۠Q`sJ7_L)=@	D/Mx_
+lu/O k7r, /5[edgNajhds"~\w>Wc!zmqEd^ܒJɸ\rRȠKEFͧ=OyKyz0Ğ!GF%V-7kPMi^UI^h"5R?_i}>Cv-OO:Fh^&SN<aZw%&'(\D ̉Qn՛w1S rk;|+赅iaWn!цٕ+Fp4SC8O(ouNa`;:McXWf]j +:++?Һ2ū/ކmT47P%-~p65rX'HtY\`eܼY/^4O(Omu6 sK:aʑ +\׳{2=$o76	>N׆)grry$2"z\LQ.QC~v}o8`Fown4Xo X	,)=)$ä߈<l#4Ow1Zo!pct!x
+lr!M,^lN׆9+c3%͖m=˪
+KUgnȪ1 sM}U.0B5ͼ,2AMq%~Iů~	m!"	-=%ژH'KK:ןU&tk@'AA6ݸ,,;nhQ^^W nK!t68KH1v?0ϚBqXѦb!<Ifhf_FjA<,376>.	Ӷ1rgjZQ{M2lS.V,12kNcdiv1y)47/2ZGIlǚ 4µy/R&0MAy4~)$lxҰ'o#**
+lp[A	VӘg%:&p6ٱq3tͥ;9:O)D
+qEEfs2nL+vHX@ƦQʁ`*:ޒ<;qWL|~/&WF
+45ZPq~Kk}SzPw+nd&vQ^u=x>q8EhW4Ћu|>&2YP5gT˴edF1_@]kā"lE)V[3Ǡ	Pb&p4-8NN7[ r
+]<S%9WkKnQ;ܵ-_a㖭ga(2CCH/h)eh7B%tiNXHptF}\f`Ó佭3? 7H@fBR<ȫ֔S6VZ .ТNa8%-Mߦ/0Vy)d^˕,V6eU8h*<L(bڬLd:[{qg-ڤLUQ'8PyMw-GyYX׀u[TYɼ;v5/fTR#X5fIg2K8n毜[	(ͲaXD~_ w.]^$}=JK1F{Zv>Zm)[e<,t`0P]#VX4<Ƽ^DNרMP[*RL|.#dK1XH#>("~(H<Tۻ{Ox	|:Z FO9oa9"@2Z5
+Gm˰ڱpLf1b}6rm}v,ڭUBDhl N3fa%z߂Gt`:M?/u))ZUcWF/y*[B64Ue]6LF]C':PBdu>Nk*_9pż3<]A@tU8Sc(b:v#	RZ`tb7 Xr4d	'SM|.QyYf[[!K}}aN/fOd5$_WH^%QifW%GrXL{g r͌VNPF2d	9>uQؤ)`Nll!C"BҐXZ5vstԵ(#7^jTҒj=:Q5Nbxv+&l[!`U4[_"5l֜$jf,25r;AЍlp<k	?l0X:kgEeW1!ϧzs~,G)LR×f#l!q{EFdwuj9i_NK#--^Y|=/gמn$}U}>(5Ti3,{FlWڛ
+
+)ƿ;Jz1+%!❓;*K{<f V"7דcp)aat[_)v |;>fՍl8 '֘Ma<t~X1o2:
+ג+e 4l=/te?;n1@4|{YӗUq&4?IϞCvsn~\GtE79	j[OݸdNm$*d:TnPy:OǰE75&TXNK۬num^`'=0E.á</e	+7VZcQv"}Q5g
+ocRgaYvu$<8>aѥ=G*Oc[,*ɒA;pK3.0mkc$SZ#`(f`AH?J mh]gÇ!o*ۚu:D=h$Hcߛ2#^i!sO$H2(Jfq`DFK;OC^S!VFZl$[gjzSd
+Лg0`t"0Ykl{Fb[b;},$XW
+TyAax[&H!Vς|8Zp 
+e~sE?"H %;Wt@0¡4uX^#oY`/BU}YiDS)M?#zŅ~9ş&se^g3ިNۮ&BrCyŕtiuli	ʢ6p{o^s %Uk0-9̼./c6wLBgM[LĕVpY﨏pcV{}Jʌ@m>{ߗژ9;i0V"|m`pTFyk9m(Jn}Y,`A$TK-&@2_}B+jc5TJfԱWo}?ՀAB~t[.p
+XG$YFnO :*=F6J1|6HVW s
+]py6.ƻgwTEHgѺѸiDm>./K"dCcu[L$P9 % [V4t_a=eqE>l/0'Јh $kDA;>ԍtd=I4fmԪ]F)8iw\:>M\TFI=[!L~@&:ѢrI¥i/Dtܠ9t\*w5p	-7em@x#s)11!"YobbKh/7ܲͽf$r|y:qZg.!&>rLS:L͡H6YaBaЂ$oS2z^sAV6VjĨ*"B
+Y\By-)4cW*b,ĞrHVoqatT6
+mg.|1%S#=eŗ5䇥/Ү;6j-Xn0iOlB.f lp<֯t$1dµ@L$*u@Y5'3U4+K
+>(9(lVb*BQqeRcB8٢ 6iUagp$IrDJȣ!(7lع_0OmEO4}ZTXUߴ~ipm\W6W?I[ 
+IR0.J&Wj`R!SSDo(ѷJwXRI߅0.wɏtyC61pTq?:bvEkGwM9>h qձ6/3߽DYZ^3K`#ҩc Qo@%ks'T;eD5`7{ksV85D8#HTisuGyA/svp|{m5LؠSh?Xvo J?W)h4=.B=:2O}RL64byQ;1F
+RN7-nbxYQU 9z{08fJPV`&wF٥|IsߏӸNp6͵#{F<.6	j븍-B6=۔3%EmV\"SF	tK7n*{EvfȈǂ=#E;/q{ZkNu2q@K.aVH!O_B|>s#+šƠv@{T-ޟJE2n%,2:*~{6q22])Bƕ 5`ud~|ˊھ ŶLnrg3#麊{"dAX[oR_C\Am>XG$m7DMtK?wnվQ BL/ruv^v
+>:iv}Y,n=-Ll ӕpGu[Ygx9mXM8cVq_|<1O&$}dBux~tèts	tf[[tH[o"2wYg8eB`ZhA|(Vˋ"W0(wCԬ5e^db^= C/Pݵ	d|ν.v'Ʈe.aאX#%z۴j\ǻ.שҗ<ji6> bbi~GLK=e9HՍFuV2^K{o5r2~MC5cv"Gٸ-sJ9"s{uVu>f6pȥf ag BjJZ7~KE[Ͷ<{#u]m&3HFF*yoE<2ܢqdS 9a*[z|^3=5j
+nO
+i1]ܴh~;l˻F~I6a1Mk$v[	>J@F.|"-gf2wyewߑu lBFN溗~gś
+Zk[\aˑņ9[r`g{){vEw;1$tdMk}H-IdNK.KQ;7r{HK,)rYi1?8.}gB
+jk۷7o39dm,,90z[h]T(kz8%}7>^"ZŹ/y{$ۑtRx;@΢<_lz|7<*WW}}tQ7K,)NMeu~g߆s.sʫ3FQ1|b$Y[b\m#7*69}K77*O59{/ jwaXR=+y_k/"_@MR32yuyF0+7yJͫw'_=KOeW3G"W 9/ݪcCJNqQJ~0-5~6D7:[^=yk4t`|C3w' e|tbWYBU֠ V˫ ŭ|7l6g1*2hί=zٿٴ7Ey޳mKA+زD*-{S|tx}</{3x~v}=ʧpG=DM,0`>j}UfoNke˨_oٟ{޿EbwWu#Ok4cgyn~{~r5fzjX*%0ɓ#ք5z{y}0o^S:_0`5|L|jკ̰~Yv~ p8}^֌ͼ[2k|PӃn?*Έ6zϪ0[|"k'5?hmX3rЃ}<]	=
+<7(7]pH¨d>{wc84ÉlDK!L9Aގs~dxR9du "42]cpd~6<.x;MR&*͹yR4CCu@_s53-LzF^P] F^(4Wzop׽^a1O;Կ?|ax)U<U0r`>6k<X/f$.T  sܼ$|G{hD^dӫ@<|ۖdFvz8*$%#`?B@[L	scsJs6ūO^(GpOxA1&Ŵd˧bQ\{뱓ֲ<1$hڶ_cpӜ%b^i;]?ߣYcR}F葢kbNwcqh35Fjb
+=oR>ɡxXUHXAUy.p-~()hbYgN"0rC_$7܂-ambj^ׁfOф?Xޤ7׫ES||VV|=gͫD7mCܪW_`L_w><5[#_|9
+Z?;qԓp;9?zVF6<z]rWe»cW՝Urc*1tNՈ\	KŤczC}cFvpr-6cǁC#O{kv_s[ESwQY8`8>3ikB x-x)"DR~_XבaKhN /5U%eջaI%y`hP0,t轲s9NڵpyEsE>	~EMǈ.%<&T~DA=RK][ȶQ+F7_h_x|</Y镓
+7MMHJ"GE(hHX w517(P$H`h^33:38apk3b</2@f~PF		:@FczY&"eG69J-2݈T#Ԉ몼tڴ@UZٙ,=!}ǈ&,]ƃJs.ZUH0x<XEґ+Fd-/ڬc4";xk`i/]ùw'BiUg5Re{+mYы]CdDŴ!h1lx~'!-o'GYW;S;n96=+M4,@S`Awh5D.;DB)6X4~``ϰMu9lx݈\0݅`7&Flii7͍KÄ#xao>P2ݲ_6rVVFcEM+L:T.+?'#ѵ]'n+7e)885C-[ouT_+o/փ~0.st_4*ٴ_%/v=]Mo]<8LA8{bM7l ?"n<,\Z2+yyc1/ȢqN۷\/Aeb貧tÊt-ƀkqcjzFs zQ8[e5VF)⫻?<dqC&bC}DY~t<|Lv7]"AuƯM3кL \=1Ϊ̥'ЊQnB.mY| ʽMLUS#Px+ݸf/H0 x<AKuN/~䮓'7(<Wwo/xO}5ev[	e0hci,Kn)@_LPxh5BrFo`v8lb%©ᡬ>CY}ڡPV>EE]ؘᾃT	Sz8NoN'N97q
+\7GO9惪q.]Gv1M[c)ݒْjzR} {\HjS_p\'	9={@/_&/*|y/:ft3踺FAWC(:NEFͲA5;d'$gάwleiYJiՃllMv kex6l@Rz*:Z>8@{yYHkTuZd&٢$xޚJAes-|:UK'zA:=Sn`5r8zyü{Y`ȼ}3Vgp?hzB{ˋҤe'IU1̢3wFVa3 [h3Xp<Ar.IeH/hX 4P]7(zќ§M Z~jh|~#pݧowowi	~18nc;AnAtPY1oh"L}#|F<:'zGgg_AY]?6>;hv ߿*p)~YRlRKhμ3{])7ٕa
+H,0q0F7Q9?!㟇րHM_p
+z{5J1G>oC/d}D}y`U%p>c-nǸ;xN
+3G`u	Ҹe:N0*J*%3ڶ<n60<BSJGzɼk!yqz()<NCGp2uf,7L^]K,D$?*@%I<x2`_؂	sjv1J[	W`SôS"~ %f=W	U{ T{dzp?%̩s\g!ARǶ|UO  =m0͏%M9_+ǅc`Exu<+4UKDڹXW;w2\t;geɴCֺ> e@w
+ִe6	G躰y\XM|TsZ_ &^  aT	v<jTl11!>;ю78D&#[@n*l/0D(d>pm.ΞTR/Oۣj-еyr d4_~O<	0;(Bhw ,pEh8>޼?j.Q-0jpDmY.
+jSIx ZbA5RV&@]k`&ZmTU!yO|!	U Bn틝]Kn0N$UYB[c\Cd{r+5UP$.QR l@E`zF.`:((}0OUKGKk3lWAG9XW=Sb)T%;~Ǻ\iXW>$l`mG1o?sW
+su{Rȯ0dRXGh3/ 	~!?d}&p	sΪc)pQVx/[-f[l@|B+*8 X#-"[0a%k	s}Aau6/|m*"%91uUH\d iۉMCl䟛?I}LyA쵩֡ٵ|3g={_{M{w!zwP#eitPt+W. \W$۠Cp_;N`CsV7`F*+P`0G\:MF?l'8Cv+ExGXUҩ?2aġN {-/XbftVV=E&aRZNGZ]R\k'B&},:Ze~~>T:nF&}6츴~ޭ+\}ODS A`dB=	g禦hB<zߞ-!Kؼ'PyL;UnE[ڊk&2u`xh	ST-([WD[F&($|޽ҩǒ|?4l7>Հvzrz PN`#f둔"@'&[;<	mܾlL-j@(80Pq!₈2BESpbsRxy`vEɇ-[&2,#:XZ&UA6_{(O?7J	.
+7+(߄jƺ\#P^+?P[78Ş.hYn:9M)A\Ritu}k,U%49,R'	i6];"upBZlMu("PiT^Psq0dЫʨGbzgج<MI{a+qDSw]ZZo&h?Ai	#FPV``6M@q;Pe,ƾE!7c
+0,wLsOCɿoh7S;.<8JtCG594VjeG%ElEy	_'pRׇFdag$|bX)3䛌S,vߵ_ϓKh,-1I9GTxQlU63*BtEXZ+5'3m{[v^˥Itdݵ"RK*xbĂ_+JduiE"z)mQDauxDOz*93qbZ(Aym܌ց6z<T5Am!)'P\0MiPyq	 ^։}mmN^^jj7.L sѱ=A~8s;Z]Rѯs`¿zȿѽ;%s
+h2[G+%ێ^r{hЀ7L?ag.ivVJVӰI
+sqmjAZ\ٵ+=O9*D9(ZrJSQ 7hZi-mf%sp*ɪ6΅x-|yVv)Z (ul᪆{pnC|yWۢ%@kN]q;?h^L	*Oe|,=-MA,mu
+(偡C
+?hH$3(T͟E`	2;7`iPx&waԩѐ#E x3ӓW0P5ߴ\F.*wԁ:X+L^%ٙl%(ΰp J\TvE
+x+Od&=vWۧu=i\s(VմGԿ`0jJS%"F{HqIDl%A&Rk^A%@(Mc`ÕԱ`ҖyA_--%55$H-]~֧=~4<ʍkЫIw9Z?$YҊ6%CcKy^ë8[8f\[ςZ"J9`\AϥtLyٺ-ׯc%jixqiڹIH͐
+9AِUu? V8<j+5Ff&`-r\`YDuьܡm)m _יCyΥXFf|7#ִMU5u@pUZ1cEͯ?pwb7smku=@$ZaE|J#qGYEf|F.ՊkȎc5kʦ%1;Srp-+ּyGQa)XQ׺["LKoz8nW"C:6WwfFY<&{*hN:[o1xOiDs>M7!9@WDS稄X<GL'OV3[x垞1ju ]+lF#i	=:Pv7Lou"7ChwL&n
+ޚa "n#6NG|	jBGVH/7~Ʉ(<Su|ӖNus(M:^͝uy̮hji	a>jQ%BjY%\|2*a稄vz~+=dVN?@݆/K6aLڒ]U뫁y!>V,/nSA#`Ga)bz!N!_Fcs(sW4I`vG	cg0!Eceb6Mcm/"~~,fmT|_ZWij5R7qݖqPL7iP>j,ߔ%2N̪ga`m>'kka>R44)c6ܵV~h)b!EzoɈZAU3i	'CffDVc7kgzȗY7^@|tX/&ZG{Θ"{L=ue:09Ïk[tv״/cf&3p-=#0mۻy
+\ר	雖bh$ 	
+v-7;vtiA*sξٮjG_:j=όWaiպх8uLmKekow_
+d.m:>Z:ʴQSe`%}U9.)pT' `
+6ʥf?mt*h	6<,RtxS&&]8 x$j֬^n.:P(|wQn\9@_~KUgY3v@aB3sJ/R-\qT8[lA$sDFl#H  6V%ZOT18"!3BdLIWO+Hg9S3;vᶍG{!B㕱Wh>U
+f{]ڵ5t07I*dosZc,	/L^Nm0FlIw%fK)S/}.$Z=/	fXe$(wNkPS8CߘM{_yGف듇8k"~X(H0Fn !hZn7ܽ}f׺9){F;R+zUF$.Wn]K7:zwu[B 4$al==^H{SHhoYy'4q0!͟3?4< `kVq%LbU
+,ִj^J \ͣ։^pkK~CbD2b*+K-P2*f]ï1s?RGF
+5f"`r@$&-L79.,{3((m6AR9ˍa"soQnp#H>Llm>`:N=t}))m	2`M@Dlά]5E1It?`D[w2i"tQ:Q8,"MbSwVtL`Mz=ǂ n-( ?Lo ۿ5m丰'nfܗv
+Vs)zz}-x=~ُ4a2QtH.p_ֺKF4kPHw_yIfgoΎɈV{ ڍKc"Sv'*XZ:,yD%xO;L['/:YIN&e"Ftݶ5J^o	jnA>Fu
+O!Kw譂ɯX60YN,ȌL@*?,K$Q^J˼d.1!)9!Ki &Ǒ[tތo'hk4Qɮ6+1PeoZ΍	;ւxƉxYf1FS2W|Φsx0W.fo-='Gȡx0i%_h.bȏub6(ƽ64lI$\aMldX6A-v=ݩ-uN
+wbYKH vp"%mo";<b䧮6o6>}!ْ䃭;:p{sedZl?>Qn3˨3, %z8㑲ǈVotr;u`ӱ~ߠ3h bDzh[b2g7NmҼ)wI׮-+xmv&3?S ؁i|*9G+МIG91,Vm
+?aSZ_<B;CTXRXIyc}*5KL8-:dn(]z4ȕxZ%4{`nf:㐑|R;#\-2?)<}ͬ%B[BXHO)ϹkPT^@ںyǔlhL+Y@х"p6-iBqlg&sUK?\u`x0{0dv27pi&Lkʪ&8
+/n{-6hݫ]b*FOP9pjȶWjph.ʲN	 k65CpܸF{RJ+|qF[FDNW2ȩFK&-N4HE?BPGb_oh")@$;!s`HShN(mc	``Iʵ`1fVԧ1bhuRYf|XpTeY9[=rܗus@'5;j;TI'=`ݶ`"6&7jdZpcX6 kJpw2v	[q>j>A2-AO"lFeP4%ݬp@N+AA_DK@7+["[ &vM!"kC(򌹳/Ǵ@Et%; +EH 
\ No newline at end of file
diff --git a/sites/default/files/php/service_container/.htaccess b/sites/default/files/php/service_container/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/service_container/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/service_container/service_container_prod/.htaccess b/sites/default/files/php/service_container/service_container_prod/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/service_container/service_container_prod/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/.htaccess b/sites/default/files/php/twig/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#0b#a0#ceb71a35f63ca3ff502b1c63797f8720e06dbba3c9b14ba7120a091d65a4/.htaccess b/sites/default/files/php/twig/1#0b#a0#ceb71a35f63ca3ff502b1c63797f8720e06dbba3c9b14ba7120a091d65a4/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#0b#a0#ceb71a35f63ca3ff502b1c63797f8720e06dbba3c9b14ba7120a091d65a4/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#10#b2#9b989a07d8f9d93df3b2d8eab94e83fa93619798475414d9cc98d73ae2d4/.htaccess b/sites/default/files/php/twig/1#10#b2#9b989a07d8f9d93df3b2d8eab94e83fa93619798475414d9cc98d73ae2d4/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#10#b2#9b989a07d8f9d93df3b2d8eab94e83fa93619798475414d9cc98d73ae2d4/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#1b#38#cd8d7bcccbbeefaff6b597366c53eac1d2c628813ec5ad2c56c6c50138ce/.htaccess b/sites/default/files/php/twig/1#1b#38#cd8d7bcccbbeefaff6b597366c53eac1d2c628813ec5ad2c56c6c50138ce/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#1b#38#cd8d7bcccbbeefaff6b597366c53eac1d2c628813ec5ad2c56c6c50138ce/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#21#c3#c92d53ea1b3a93cfc317fb14bc91474e15389b6197c905443aa3231c9f2d/.htaccess b/sites/default/files/php/twig/1#21#c3#c92d53ea1b3a93cfc317fb14bc91474e15389b6197c905443aa3231c9f2d/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#21#c3#c92d53ea1b3a93cfc317fb14bc91474e15389b6197c905443aa3231c9f2d/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#27#b5#e49bcf47deaf0818ceca724bba9a9cf02559116a74a2dc58e77e36d33cf2/.htaccess b/sites/default/files/php/twig/1#27#b5#e49bcf47deaf0818ceca724bba9a9cf02559116a74a2dc58e77e36d33cf2/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#27#b5#e49bcf47deaf0818ceca724bba9a9cf02559116a74a2dc58e77e36d33cf2/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#2b#0c#2c8ef4ac1d5fcf247a3b1344cc4c02e895ec086587fd50c9412d48a3e11f/.htaccess b/sites/default/files/php/twig/1#2b#0c#2c8ef4ac1d5fcf247a3b1344cc4c02e895ec086587fd50c9412d48a3e11f/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#2b#0c#2c8ef4ac1d5fcf247a3b1344cc4c02e895ec086587fd50c9412d48a3e11f/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#38#2c#be4468d4d65fe5ca89081082cd4e8c0584da5ae09934cb771d668289c67e/.htaccess b/sites/default/files/php/twig/1#38#2c#be4468d4d65fe5ca89081082cd4e8c0584da5ae09934cb771d668289c67e/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#38#2c#be4468d4d65fe5ca89081082cd4e8c0584da5ae09934cb771d668289c67e/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#4f#28#b5946662ac1b4eb4ef4068ec2c5e9559551f417114680dd3133ccd064832/.htaccess b/sites/default/files/php/twig/1#4f#28#b5946662ac1b4eb4ef4068ec2c5e9559551f417114680dd3133ccd064832/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#4f#28#b5946662ac1b4eb4ef4068ec2c5e9559551f417114680dd3133ccd064832/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#52#dd#12092562b1a7c20e4a064390aa9732c1a78d2011464890a4319e95aa33d4/.htaccess b/sites/default/files/php/twig/1#52#dd#12092562b1a7c20e4a064390aa9732c1a78d2011464890a4319e95aa33d4/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#52#dd#12092562b1a7c20e4a064390aa9732c1a78d2011464890a4319e95aa33d4/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#55#f6#ef3bed5f6f35987cb1afb4e4d37f698fa1b1813fa294a39485129f8adc76/.htaccess b/sites/default/files/php/twig/1#55#f6#ef3bed5f6f35987cb1afb4e4d37f698fa1b1813fa294a39485129f8adc76/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#55#f6#ef3bed5f6f35987cb1afb4e4d37f698fa1b1813fa294a39485129f8adc76/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#58#4d#cb333761d50e1a0ba8399b4a287178595c08e12bf3bdc5f1e78501ad7d28/.htaccess b/sites/default/files/php/twig/1#58#4d#cb333761d50e1a0ba8399b4a287178595c08e12bf3bdc5f1e78501ad7d28/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#58#4d#cb333761d50e1a0ba8399b4a287178595c08e12bf3bdc5f1e78501ad7d28/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#59#3a#71331a6c43a23a248d3a356872e8d0c764ccbb9e64c9eda7e4bff810608e/.htaccess b/sites/default/files/php/twig/1#59#3a#71331a6c43a23a248d3a356872e8d0c764ccbb9e64c9eda7e4bff810608e/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#59#3a#71331a6c43a23a248d3a356872e8d0c764ccbb9e64c9eda7e4bff810608e/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#5b#52#42f9e11b9bb7cacc662387d3987a831e898de735477dfb136afa3606dad7/.htaccess b/sites/default/files/php/twig/1#5b#52#42f9e11b9bb7cacc662387d3987a831e898de735477dfb136afa3606dad7/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#5b#52#42f9e11b9bb7cacc662387d3987a831e898de735477dfb136afa3606dad7/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#5d#b7#de367c4931566e19a3860fe7c566874ed67e9bf41f579dba7cbea1b6ac24/.htaccess b/sites/default/files/php/twig/1#5d#b7#de367c4931566e19a3860fe7c566874ed67e9bf41f579dba7cbea1b6ac24/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#5d#b7#de367c4931566e19a3860fe7c566874ed67e9bf41f579dba7cbea1b6ac24/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#64#4c#56622cc4d69b7387d8cbd2de04d33588313d7ce659dc93b8b98c331f6ab6/.htaccess b/sites/default/files/php/twig/1#64#4c#56622cc4d69b7387d8cbd2de04d33588313d7ce659dc93b8b98c331f6ab6/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#64#4c#56622cc4d69b7387d8cbd2de04d33588313d7ce659dc93b8b98c331f6ab6/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#66#8e#c2a82f7688d992c7997c4f1aa49eb155eeec9f0b6a6c28605d71d12c644c/.htaccess b/sites/default/files/php/twig/1#66#8e#c2a82f7688d992c7997c4f1aa49eb155eeec9f0b6a6c28605d71d12c644c/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#66#8e#c2a82f7688d992c7997c4f1aa49eb155eeec9f0b6a6c28605d71d12c644c/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#6e#e2#0a68dffd1b46d25826aa2450703e2daa5de49ef99706e754c92b1b66737a/.htaccess b/sites/default/files/php/twig/1#6e#e2#0a68dffd1b46d25826aa2450703e2daa5de49ef99706e754c92b1b66737a/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#6e#e2#0a68dffd1b46d25826aa2450703e2daa5de49ef99706e754c92b1b66737a/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#6e#f5#b25ec82788b3f5782b3f4cee71c1dc50f1c106bf196ade061f24e5cad540/.htaccess b/sites/default/files/php/twig/1#6e#f5#b25ec82788b3f5782b3f4cee71c1dc50f1c106bf196ade061f24e5cad540/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#6e#f5#b25ec82788b3f5782b3f4cee71c1dc50f1c106bf196ade061f24e5cad540/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#7e#87#81170c21962b99e3ae0c6a833271e9174cbfc8e5caef0a694994e1278d96/.htaccess b/sites/default/files/php/twig/1#7e#87#81170c21962b99e3ae0c6a833271e9174cbfc8e5caef0a694994e1278d96/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#7e#87#81170c21962b99e3ae0c6a833271e9174cbfc8e5caef0a694994e1278d96/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#84#66#9bed6aac644e8118be21e9f081be4663b23d429195a9ee4de34c1b0b8160/.htaccess b/sites/default/files/php/twig/1#84#66#9bed6aac644e8118be21e9f081be4663b23d429195a9ee4de34c1b0b8160/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#84#66#9bed6aac644e8118be21e9f081be4663b23d429195a9ee4de34c1b0b8160/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#89#6c#9128ed59f7022c460dfab96f547cb85854ae15f0c99f2816300a8ec5771c/.htaccess b/sites/default/files/php/twig/1#89#6c#9128ed59f7022c460dfab96f547cb85854ae15f0c99f2816300a8ec5771c/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#89#6c#9128ed59f7022c460dfab96f547cb85854ae15f0c99f2816300a8ec5771c/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#8e#bd#4818b8cfd4913a25e4967e6e6bfe889dbb57914d2541f65744dc035a07c2/.htaccess b/sites/default/files/php/twig/1#8e#bd#4818b8cfd4913a25e4967e6e6bfe889dbb57914d2541f65744dc035a07c2/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#8e#bd#4818b8cfd4913a25e4967e6e6bfe889dbb57914d2541f65744dc035a07c2/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#92#8c#eabc6de310d689f770cb2c82a82052a1d229d5f651f5b6256386ab75c032/.htaccess b/sites/default/files/php/twig/1#92#8c#eabc6de310d689f770cb2c82a82052a1d229d5f651f5b6256386ab75c032/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#92#8c#eabc6de310d689f770cb2c82a82052a1d229d5f651f5b6256386ab75c032/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#97#ce#b3362e27b0ae4c1fce5002a9d9897fba13ec904f8d60356e19c09b2aad12/.htaccess b/sites/default/files/php/twig/1#97#ce#b3362e27b0ae4c1fce5002a9d9897fba13ec904f8d60356e19c09b2aad12/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#97#ce#b3362e27b0ae4c1fce5002a9d9897fba13ec904f8d60356e19c09b2aad12/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#9c#d2#fffcf95da740ca1131260751eeb1bb2b92898874436e793be35526fb6bfb/.htaccess b/sites/default/files/php/twig/1#9c#d2#fffcf95da740ca1131260751eeb1bb2b92898874436e793be35526fb6bfb/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#9c#d2#fffcf95da740ca1131260751eeb1bb2b92898874436e793be35526fb6bfb/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#a5#1a#d9ff04ce5aaaf317e0061caf5521993d87bc97986965ed18fa45310bb1c4/.htaccess b/sites/default/files/php/twig/1#a5#1a#d9ff04ce5aaaf317e0061caf5521993d87bc97986965ed18fa45310bb1c4/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#a5#1a#d9ff04ce5aaaf317e0061caf5521993d87bc97986965ed18fa45310bb1c4/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#a8#dd#bc53a7e5ae837ea601215cd855761765685f0eafbd7ebf4d9ce42621d8ba/.htaccess b/sites/default/files/php/twig/1#a8#dd#bc53a7e5ae837ea601215cd855761765685f0eafbd7ebf4d9ce42621d8ba/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#a8#dd#bc53a7e5ae837ea601215cd855761765685f0eafbd7ebf4d9ce42621d8ba/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#a9#29#2f07bc4074ffa01b06ea47c925f26ce14190bebb8d6bc32a0fa09088aedd/.htaccess b/sites/default/files/php/twig/1#a9#29#2f07bc4074ffa01b06ea47c925f26ce14190bebb8d6bc32a0fa09088aedd/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#a9#29#2f07bc4074ffa01b06ea47c925f26ce14190bebb8d6bc32a0fa09088aedd/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#ad#1a#dc38cde5c847cb58e26120f535dfa94ee0c802671c33caa020121f90db63/.htaccess b/sites/default/files/php/twig/1#ad#1a#dc38cde5c847cb58e26120f535dfa94ee0c802671c33caa020121f90db63/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#ad#1a#dc38cde5c847cb58e26120f535dfa94ee0c802671c33caa020121f90db63/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#af#1f#81f486bbe2294ae5277d79d358283c1a4e459f7fbebf4340a8f4e69b0704/.htaccess b/sites/default/files/php/twig/1#af#1f#81f486bbe2294ae5277d79d358283c1a4e459f7fbebf4340a8f4e69b0704/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#af#1f#81f486bbe2294ae5277d79d358283c1a4e459f7fbebf4340a8f4e69b0704/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#b1#16#9ae3a8fa3be3fdd0c78dbba761192b0af1562d50b7d982abbbdea1bf4e4b/.htaccess b/sites/default/files/php/twig/1#b1#16#9ae3a8fa3be3fdd0c78dbba761192b0af1562d50b7d982abbbdea1bf4e4b/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#b1#16#9ae3a8fa3be3fdd0c78dbba761192b0af1562d50b7d982abbbdea1bf4e4b/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#b4#a5#dfe0893728f61371392e0eb3c6ff4cd2a103bacb434dee284d49cc8469ff/.htaccess b/sites/default/files/php/twig/1#b4#a5#dfe0893728f61371392e0eb3c6ff4cd2a103bacb434dee284d49cc8469ff/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#b4#a5#dfe0893728f61371392e0eb3c6ff4cd2a103bacb434dee284d49cc8469ff/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#be#94#e75d19587af816fa77e86d4fc8f756ddb35376aa3be2a13cff3f65fe552a/.htaccess b/sites/default/files/php/twig/1#be#94#e75d19587af816fa77e86d4fc8f756ddb35376aa3be2a13cff3f65fe552a/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#be#94#e75d19587af816fa77e86d4fc8f756ddb35376aa3be2a13cff3f65fe552a/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#bf#1e#7ed563b8d414d1f068b035659f0c26e75e12d7c16f66254dcab65a7c4ac7/.htaccess b/sites/default/files/php/twig/1#bf#1e#7ed563b8d414d1f068b035659f0c26e75e12d7c16f66254dcab65a7c4ac7/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#bf#1e#7ed563b8d414d1f068b035659f0c26e75e12d7c16f66254dcab65a7c4ac7/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#c8#97#c295bc1e0383e32906eccb4a7ab3ba9669ddbd94cd81824c50285c0954b7/.htaccess b/sites/default/files/php/twig/1#c8#97#c295bc1e0383e32906eccb4a7ab3ba9669ddbd94cd81824c50285c0954b7/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#c8#97#c295bc1e0383e32906eccb4a7ab3ba9669ddbd94cd81824c50285c0954b7/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#ca#d9#81daa5b82b1b992b6f0e85917a94b0285555d0bcc470b6954b9e5e143af4/.htaccess b/sites/default/files/php/twig/1#ca#d9#81daa5b82b1b992b6f0e85917a94b0285555d0bcc470b6954b9e5e143af4/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#ca#d9#81daa5b82b1b992b6f0e85917a94b0285555d0bcc470b6954b9e5e143af4/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#cb#e0#3a7c65a180cd76bfaefe3c9e813b8ab116264116e4780f6070ced67752d9/.htaccess b/sites/default/files/php/twig/1#cb#e0#3a7c65a180cd76bfaefe3c9e813b8ab116264116e4780f6070ced67752d9/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#cb#e0#3a7c65a180cd76bfaefe3c9e813b8ab116264116e4780f6070ced67752d9/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#cf#dd#0d6ce8537f6cc7fd93ec27b666f66b2e855d07246d6720db467020e7ac81/.htaccess b/sites/default/files/php/twig/1#cf#dd#0d6ce8537f6cc7fd93ec27b666f66b2e855d07246d6720db467020e7ac81/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#cf#dd#0d6ce8537f6cc7fd93ec27b666f66b2e855d07246d6720db467020e7ac81/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#d7#66#d87a362725159703b9784d2ba7b4ed557cf90ed18cebd8a5439401b90edc/.htaccess b/sites/default/files/php/twig/1#d7#66#d87a362725159703b9784d2ba7b4ed557cf90ed18cebd8a5439401b90edc/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#d7#66#d87a362725159703b9784d2ba7b4ed557cf90ed18cebd8a5439401b90edc/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#df#49#0b95f178e6352a5d4c089212ebd32ecd98c70d9f683e0bbe138abbb098a7/.htaccess b/sites/default/files/php/twig/1#df#49#0b95f178e6352a5d4c089212ebd32ecd98c70d9f683e0bbe138abbb098a7/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#df#49#0b95f178e6352a5d4c089212ebd32ecd98c70d9f683e0bbe138abbb098a7/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#e3#89#c149c25f929a6040b9520e6c27aa397f89669fad4a3763ecfa115e1c4e8f/.htaccess b/sites/default/files/php/twig/1#e3#89#c149c25f929a6040b9520e6c27aa397f89669fad4a3763ecfa115e1c4e8f/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#e3#89#c149c25f929a6040b9520e6c27aa397f89669fad4a3763ecfa115e1c4e8f/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#e6#48#15aebe51b9c9197a3ac1505e9ca746d4fdc31886e4a778e3d3633b4045d0/.htaccess b/sites/default/files/php/twig/1#e6#48#15aebe51b9c9197a3ac1505e9ca746d4fdc31886e4a778e3d3633b4045d0/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#e6#48#15aebe51b9c9197a3ac1505e9ca746d4fdc31886e4a778e3d3633b4045d0/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#ea#d5#0caf14ea4af10ff98e099ef95bce9a178364f5c0a170ce59663d8ab5ea6f/.htaccess b/sites/default/files/php/twig/1#ea#d5#0caf14ea4af10ff98e099ef95bce9a178364f5c0a170ce59663d8ab5ea6f/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#ea#d5#0caf14ea4af10ff98e099ef95bce9a178364f5c0a170ce59663d8ab5ea6f/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#fd#2e#d406327f805ba3f13d6388dd1663dadf9a28bfd4d1051c01c4d836da0f36/.htaccess b/sites/default/files/php/twig/1#fd#2e#d406327f805ba3f13d6388dd1663dadf9a28bfd4d1051c01c4d836da0f36/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#fd#2e#d406327f805ba3f13d6388dd1663dadf9a28bfd4d1051c01c4d836da0f36/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/files/php/twig/1#ff#47#ec0db21462b314d8297edb01bc95e2457de0b4af1e7a813245fb898ec37f/.htaccess b/sites/default/files/php/twig/1#ff#47#ec0db21462b314d8297edb01bc95e2457de0b4af1e7a813245fb898ec37f/.htaccess
new file mode 100644
index 0000000..91883a3
--- /dev/null
+++ b/sites/default/files/php/twig/1#ff#47#ec0db21462b314d8297edb01bc95e2457de0b4af1e7a813245fb898ec37f/.htaccess
@@ -0,0 +1,23 @@
+# Deny all requests from Apache 2.4+.
+<IfModule mod_authz_core.c>
+  Require all denied
+</IfModule>
+
+# Deny all requests from Apache 2.0-2.2.
+<IfModule !mod_authz_core.c>
+  Deny from all
+</IfModule># Turn off all options we don't need.
+Options None
+Options +FollowSymLinks
+
+# Set the catch-all handler to prevent scripts from being executed.
+SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+<Files *>
+  # Override the handler again if we're run later in the evaluation list.
+  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
+</Files>
+
+# If we know how to do it safely, disable the PHP engine entirely.
+<IfModule mod_php5.c>
+  php_flag engine off
+</IfModule>
\ No newline at end of file
diff --git a/sites/default/services.yml b/sites/default/services.yml
new file mode 100755
index 0000000..c44c73b
--- /dev/null
+++ b/sites/default/services.yml
@@ -0,0 +1,98 @@
+parameters:
+  session.storage.options:
+    # Default ini options for sessions.
+    #
+    # Some distributions of Linux (most notably Debian) ship their PHP
+    # installations with garbage collection (gc) disabled. Since Drupal depends
+    # on PHP's garbage collection for clearing sessions, ensure that garbage
+    # collection occurs by using the most common settings.
+    # @default 1
+    gc_probability: 1
+    # @default 100
+    gc_divisor: 100
+    #
+    # Set session lifetime (in seconds), i.e. the time from the user's last
+    # visit to the active session may be deleted by the session garbage
+    # collector. When a session is deleted, authenticated users are logged out,
+    # and the contents of the user's $_SESSION variable is discarded.
+    # @default 200000
+    gc_maxlifetime: 200000
+    #
+    # Set session cookie lifetime (in seconds), i.e. the time from the session
+    # is created to the cookie expires, i.e. when the browser is expected to
+    # discard the cookie. The value 0 means "until the browser is closed".
+    # @default 2000000
+    cookie_lifetime: 2000000
+    #
+    # Drupal automatically generates a unique session cookie name based on the
+    # full domain name used to access the site. This mechanism is sufficent for
+    # most use-cases, including multi-site deployments. However, if it is
+    # desired that a session can be reused accross different subdomains, the
+    # cookie domain needs to be set to the shared base domain. Doing so assures
+    # that users remain logged in as they cross between various subdomains.
+    # To maximize compatibility and normalize the behavior across user agents,
+    # the cookie domain should start with a dot.
+    #
+    # @default none
+    # cookie_domain: '.example.com'
+    #
+  twig.config:
+    # Twig debugging:
+    #
+    # When debugging is enabled:
+    # - The markup of each Twig template is surrounded by HTML comments that
+    #   contain theming information, such as template file name suggestions.
+    # - Note that this debugging markup will cause automated tests that directly
+    #   check rendered HTML to fail. When running automated tests, 'debug'
+    #   should be set to FALSE.
+    # - The dump() function can be used in Twig templates to output information
+    #   about template variables.
+    # - Twig templates are automatically recompiled whenever the source code
+    #   changes (see auto_reload below).
+    #
+    # For more information about debugging Twig templates, see
+    # http://drupal.org/node/1906392.
+    #
+    # Not recommended in production environments
+    # @default false
+    debug: false
+    # Twig auto-reload:
+    #
+    # Automatically recompile Twig templates whenever the source code changes.
+    # If you don't provide a value for auto_reload, it will be determined
+    # based on the value of debug.
+    #
+    # Not recommended in production environments
+    # @default null
+    auto_reload: null
+    # Twig cache:
+    #
+    # By default, Twig templates will be compiled and stored in the filesystem
+    # to increase performance. Disabling the Twig cache will recompile the
+    # templates from source each time they are used. In most cases the
+    # auto_reload setting above should be enabled rather than disabling the
+    # Twig cache.
+    #
+    # Not recommended in production environments
+    # @default true
+    cache: true
+  renderer.config:
+    # Renderer required cache contexts:
+    #
+    # The Renderer will automatically associate these cache contexts with every
+    # render array, hence varying every render array by these cache contexts.
+    #
+    # @default ['languages:language_interface', 'theme']
+    required_cache_contexts: ['languages:language_interface', 'theme']
+  factory.keyvalue:
+    {}
+    # Default key/value storage service to use.
+    # @default keyvalue.database
+    # default: keyvalue.database
+    # Collection-specific overrides.
+    # state: keyvalue.database
+  factory.keyvalue.expirable:
+    {}
+    # Default key/value expirable storage service to use.
+    # @default keyvalue.database.expirable
+    # default: keyvalue.database.expirable
diff --git a/sites/default/settings.php b/sites/default/settings.php
new file mode 100755
index 0000000..c15d0df
--- /dev/null
+++ b/sites/default/settings.php
@@ -0,0 +1,687 @@
+<?php
+
+/**
+ * @file
+ * Drupal site-specific configuration file.
+ *
+ * IMPORTANT NOTE:
+ * This file may have been set to read-only by the Drupal installation program.
+ * If you make changes to this file, be sure to protect it again after making
+ * your modifications. Failure to remove write permissions to this file is a
+ * security risk.
+ *
+ * In order to use the selection rules below the multisite aliasing file named
+ * sites/sites.php must be present. Its optional settings will be loaded, and
+ * the aliases in the array $sites will override the default directory rules
+ * below. See sites/example.sites.php for more information about aliases.
+ *
+ * The configuration directory will be discovered by stripping the website's
+ * hostname from left to right and pathname from right to left. The first
+ * configuration file found will be used and any others will be ignored. If no
+ * other configuration file is found then the default configuration file at
+ * 'sites/default' will be used.
+ *
+ * For example, for a fictitious site installed at
+ * http://www.drupal.org:8080/mysite/test/, the 'settings.php' file is searched
+ * for in the following directories:
+ *
+ * - sites/8080.www.drupal.org.mysite.test
+ * - sites/www.drupal.org.mysite.test
+ * - sites/drupal.org.mysite.test
+ * - sites/org.mysite.test
+ *
+ * - sites/8080.www.drupal.org.mysite
+ * - sites/www.drupal.org.mysite
+ * - sites/drupal.org.mysite
+ * - sites/org.mysite
+ *
+ * - sites/8080.www.drupal.org
+ * - sites/www.drupal.org
+ * - sites/drupal.org
+ * - sites/org
+ *
+ * - sites/default
+ *
+ * Note that if you are installing on a non-standard port number, prefix the
+ * hostname with that number. For example,
+ * http://www.drupal.org:8080/mysite/test/ could be loaded from
+ * sites/8080.www.drupal.org.mysite.test/.
+ *
+ * @see example.sites.php
+ * @see conf_path()
+ *
+ * In addition to customizing application settings through variables in
+ * settings.php, you can create a services.yml file in the same directory to
+ * register custom, site-specific service definitions and/or swap out default
+ * implementations with custom ones.
+ */
+
+/**
+ * Database settings:
+ *
+ * The $databases array specifies the database connection or
+ * connections that Drupal may use.  Drupal is able to connect
+ * to multiple databases, including multiple types of databases,
+ * during the same request.
+ *
+ * Each database connection is specified as an array of settings,
+ * similar to the following:
+ * @code
+ * array(
+ *   'driver' => 'mysql',
+ *   'database' => 'databasename',
+ *   'username' => 'username',
+ *   'password' => 'password',
+ *   'host' => 'localhost',
+ *   'port' => 3306,
+ *   'prefix' => 'myprefix_',
+ *   'collation' => 'utf8_general_ci',
+ * );
+ * @endcode
+ *
+ * The "driver" property indicates what Drupal database driver the
+ * connection should use.  This is usually the same as the name of the
+ * database type, such as mysql or sqlite, but not always.  The other
+ * properties will vary depending on the driver.  For SQLite, you must
+ * specify a database file name in a directory that is writable by the
+ * webserver.  For most other drivers, you must specify a
+ * username, password, host, and database name.
+ *
+ * Transaction support is enabled by default for all drivers that support it,
+ * including MySQL. To explicitly disable it, set the 'transactions' key to
+ * FALSE.
+ * Note that some configurations of MySQL, such as the MyISAM engine, don't
+ * support it and will proceed silently even if enabled. If you experience
+ * transaction related crashes with such configuration, set the 'transactions'
+ * key to FALSE.
+ *
+ * For each database, you may optionally specify multiple "target" databases.
+ * A target database allows Drupal to try to send certain queries to a
+ * different database if it can but fall back to the default connection if not.
+ * That is useful for primary/replica replication, as Drupal may try to connect
+ * to a replica server when appropriate and if one is not available will simply
+ * fall back to the single primary server (The terms primary/replica are
+ * traditionally referred to as master/slave in database server documentation).
+ *
+ * The general format for the $databases array is as follows:
+ * @code
+ * $databases['default']['default'] = $info_array;
+ * $databases['default']['replica'][] = $info_array;
+ * $databases['default']['replica'][] = $info_array;
+ * $databases['extra']['default'] = $info_array;
+ * @endcode
+ *
+ * In the above example, $info_array is an array of settings described above.
+ * The first line sets a "default" database that has one primary database
+ * (the second level default).  The second and third lines create an array
+ * of potential replica databases.  Drupal will select one at random for a given
+ * request as needed.  The fourth line creates a new database with a name of
+ * "extra".
+ *
+ * For a single database configuration, the following is sufficient:
+ * @code
+ * $databases['default']['default'] = array(
+ *   'driver' => 'mysql',
+ *   'database' => 'databasename',
+ *   'username' => 'username',
+ *   'password' => 'password',
+ *   'host' => 'localhost',
+ *   'prefix' => 'main_',
+ *   'collation' => 'utf8_general_ci',
+ * );
+ * @endcode
+ *
+ * You can optionally set prefixes for some or all database table names
+ * by using the 'prefix' setting. If a prefix is specified, the table
+ * name will be prepended with its value. Be sure to use valid database
+ * characters only, usually alphanumeric and underscore. If no prefixes
+ * are desired, leave it as an empty string ''.
+ *
+ * To have all database names prefixed, set 'prefix' as a string:
+ * @code
+ *   'prefix' => 'main_',
+ * @endcode
+ * To provide prefixes for specific tables, set 'prefix' as an array.
+ * The array's keys are the table names and the values are the prefixes.
+ * The 'default' element is mandatory and holds the prefix for any tables
+ * not specified elsewhere in the array. Example:
+ * @code
+ *   'prefix' => array(
+ *     'default'   => 'main_',
+ *     'users'     => 'shared_',
+ *     'sessions'  => 'shared_',
+ *     'role'      => 'shared_',
+ *     'authmap'   => 'shared_',
+ *   ),
+ * @endcode
+ * You can also use a reference to a schema/database as a prefix. This may be
+ * useful if your Drupal installation exists in a schema that is not the default
+ * or you want to access several databases from the same code base at the same
+ * time.
+ * Example:
+ * @code
+ *   'prefix' => array(
+ *     'default'   => 'main.',
+ *     'users'     => 'shared.',
+ *     'sessions'  => 'shared.',
+ *     'role'      => 'shared.',
+ *     'authmap'   => 'shared.',
+ *   );
+ * @endcode
+ * NOTE: MySQL and SQLite's definition of a schema is a database.
+ *
+ * Advanced users can add or override initial commands to execute when
+ * connecting to the database server, as well as PDO connection settings. For
+ * example, to enable MySQL SELECT queries to exceed the max_join_size system
+ * variable, and to reduce the database connection timeout to 5 seconds:
+ *
+ * @code
+ * $databases['default']['default'] = array(
+ *   'init_commands' => array(
+ *     'big_selects' => 'SET SQL_BIG_SELECTS=1',
+ *   ),
+ *   'pdo' => array(
+ *     PDO::ATTR_TIMEOUT => 5,
+ *   ),
+ * );
+ * @endcode
+ *
+ * WARNING: These defaults are designed for database portability. Changing them
+ * may cause unexpected behavior, including potential data loss.
+ *
+ * @see DatabaseConnection_mysql::__construct
+ * @see DatabaseConnection_pgsql::__construct
+ * @see DatabaseConnection_sqlite::__construct
+ *
+ * Database configuration format:
+ * @code
+ *   $databases['default']['default'] = array(
+ *     'driver' => 'mysql',
+ *     'database' => 'databasename',
+ *     'username' => 'username',
+ *     'password' => 'password',
+ *     'host' => 'localhost',
+ *     'prefix' => '',
+ *   );
+ *   $databases['default']['default'] = array(
+ *     'driver' => 'pgsql',
+ *     'database' => 'databasename',
+ *     'username' => 'username',
+ *     'password' => 'password',
+ *     'host' => 'localhost',
+ *     'prefix' => '',
+ *   );
+ *   $databases['default']['default'] = array(
+ *     'driver' => 'sqlite',
+ *     'database' => '/path/to/databasefilename',
+ *   );
+ * @endcode
+ */
+$databases = array();
+
+/**
+ * Location of the site configuration files.
+ *
+ * The $config_directories array specifies the location of file system
+ * directories used for configuration data. On install, "active" and "staging"
+ * directories are created for configuration. The staging directory is used for
+ * configuration imports; the active directory is not used by default, since the
+ * default storage for active configuration is the database rather than the file
+ * system (this can be changed; see "Active configuration settings" below).
+ *
+ * The default location for the active and staging directories is inside a
+ * randomly-named directory in the public files path; this setting allows you to
+ * override these locations. If you use files for the active configuration, you
+ * can enhance security by putting the active configuration outside your
+ * document root.
+ *
+ * Example:
+ * @code
+ *   $config_directories = array(
+ *     CONFIG_ACTIVE_DIRECTORY => '/some/directory/outside/webroot',
+ *     CONFIG_STAGING_DIRECTORY => '/another/directory/outside/webroot',
+ *   );
+ * @endcode
+ */
+$config_directories = array();
+
+/**
+ * Settings:
+ *
+ * $settings contains environment-specific configuration, such as the files
+ * directory and reverse proxy address, and temporary configuration, such as
+ * security overrides.
+ *
+ * @see \Drupal\Core\Site\Settings::get()
+ */
+
+/**
+ * The active installation profile.
+ *
+ * Changing this after installation is not recommended as it changes which
+ * directories are scanned during extension discovery. If this is set prior to
+ * installation this value will be rewritten according to the profile selected
+ * by the user.
+ *
+ * @see install_select_profile()
+ */
+# $settings['install_profile'] = '';
+
+/**
+ * Salt for one-time login links, cancel links, form tokens, etc.
+ *
+ * This variable will be set to a random value by the installer. All one-time
+ * login links will be invalidated if the value is changed. Note that if your
+ * site is deployed on a cluster of web servers, you must ensure that this
+ * variable has the same value on each server.
+ *
+ * For enhanced security, you may set this variable to the contents of a file
+ * outside your document root; you should also ensure that this file is not
+ * stored with backups of your database.
+ *
+ * Example:
+ * @code
+ *   $settings['hash_salt'] = file_get_contents('/home/example/salt.txt');
+ * @endcode
+ */
+$settings['hash_salt'] = 'N6jhTy02R7QrZz_r5gnZj2VpZ5cKfGun3mrpe8zWyY0hbnUu425BaKCwQwmg-VrOJ-4wuiUoHg';
+
+/**
+ * Access control for update.php script.
+ *
+ * If you are updating your Drupal installation using the update.php script but
+ * are not logged in using either an account with the "Administer software
+ * updates" permission or the site maintenance account (the account that was
+ * created during installation), you will need to modify the access check
+ * statement below. Change the FALSE to a TRUE to disable the access check.
+ * After finishing the upgrade, be sure to open this file again and change the
+ * TRUE back to a FALSE!
+ */
+$settings['update_free_access'] = FALSE;
+
+/**
+ * External access proxy settings:
+ *
+ * If your site must access the Internet via a web proxy then you can enter
+ * the proxy settings here. Currently only basic authentication is supported
+ * by using the username and password variables. The proxy_user_agent variable
+ * can be set to NULL for proxies that require no User-Agent header or to a
+ * non-empty string for proxies that limit requests to a specific agent. The
+ * proxy_exceptions variable is an array of host names to be accessed directly,
+ * not via proxy.
+ */
+# $settings['proxy_server'] = '';
+# $settings['proxy_port'] = 8080;
+# $settings['proxy_username'] = '';
+# $settings['proxy_password'] = '';
+# $settings['proxy_user_agent'] = '';
+# $settings['proxy_exceptions'] = array('127.0.0.1', 'localhost');
+
+/**
+ * Reverse Proxy Configuration:
+ *
+ * Reverse proxy servers are often used to enhance the performance
+ * of heavily visited sites and may also provide other site caching,
+ * security, or encryption benefits. In an environment where Drupal
+ * is behind a reverse proxy, the real IP address of the client should
+ * be determined such that the correct client IP address is available
+ * to Drupal's logging, statistics, and access management systems. In
+ * the most simple scenario, the proxy server will add an
+ * X-Forwarded-For header to the request that contains the client IP
+ * address. However, HTTP headers are vulnerable to spoofing, where a
+ * malicious client could bypass restrictions by setting the
+ * X-Forwarded-For header directly. Therefore, Drupal's proxy
+ * configuration requires the IP addresses of all remote proxies to be
+ * specified in $settings['reverse_proxy_addresses'] to work correctly.
+ *
+ * Enable this setting to get Drupal to determine the client IP from
+ * the X-Forwarded-For header (or $settings['reverse_proxy_header'] if set).
+ * If you are unsure about this setting, do not have a reverse proxy,
+ * or Drupal operates in a shared hosting environment, this setting
+ * should remain commented out.
+ *
+ * In order for this setting to be used you must specify every possible
+ * reverse proxy IP address in $settings['reverse_proxy_addresses'].
+ * If a complete list of reverse proxies is not available in your
+ * environment (for example, if you use a CDN) you may set the
+ * $_SERVER['REMOTE_ADDR'] variable directly in settings.php.
+ * Be aware, however, that it is likely that this would allow IP
+ * address spoofing unless more advanced precautions are taken.
+ */
+# $settings['reverse_proxy'] = TRUE;
+
+/**
+ * Specify every reverse proxy IP address in your environment.
+ * This setting is required if $settings['reverse_proxy'] is TRUE.
+ */
+# $settings['reverse_proxy_addresses'] = array('a.b.c.d', ...);
+
+/**
+ * Set this value if your proxy server sends the client IP in a header
+ * other than X-Forwarded-For.
+ */
+# $settings['reverse_proxy_header'] = 'HTTP_X_CLUSTER_CLIENT_IP';
+
+/**
+ * Page caching:
+ *
+ * By default, Drupal sends a "Vary: Cookie" HTTP header for anonymous page
+ * views. This tells a HTTP proxy that it may return a page from its local
+ * cache without contacting the web server, if the user sends the same Cookie
+ * header as the user who originally requested the cached page. Without "Vary:
+ * Cookie", authenticated users would also be served the anonymous page from
+ * the cache. If the site has mostly anonymous users except a few known
+ * editors/administrators, the Vary header can be omitted. This allows for
+ * better caching in HTTP proxies (including reverse proxies), i.e. even if
+ * clients send different cookies, they still get content served from the cache.
+ * However, authenticated users should access the site directly (i.e. not use an
+ * HTTP proxy, and bypass the reverse proxy if one is used) in order to avoid
+ * getting cached pages from the proxy.
+ */
+# $settings['omit_vary_cookie'] = TRUE;
+
+/**
+ * Class Loader.
+ *
+ * If the APC extension is detected, the Symfony APC class loader is used for
+ * performance reasons. Detection can be prevented by setting
+ * class_loader_auto_detect to false, as in the example below.
+ */
+# $settings['class_loader_auto_detect'] = FALSE;
+
+/*
+ * If the APC extension is not detected, either because APC is missing or
+ * because auto-detection has been disabled, auto-loading falls back to
+ * Composer's ClassLoader, which is good for development as it does not break
+ * when code is moved in the file system. You can also decorate the base class
+ * loader with another cached solution than the Symfony APC class loader, as
+ * all production sites should have a cached class loader of some sort enabled.
+ *
+ * To do so, you may decorate and replace the local $class_loader variable. For
+ * example, to use Symfony's APC class loader without automatic detection,
+ * uncomment the code below.
+ */
+/*
+if ($settings['hash_salt']) {
+  $prefix = 'drupal.' . hash('sha256', 'drupal.' . $settings['hash_salt']);
+  $apc_loader = new \Symfony\Component\ClassLoader\ApcClassLoader($prefix, $class_loader);
+  unset($prefix);
+  $class_loader->unregister();
+  $apc_loader->register();
+  $class_loader = $apc_loader;
+}
+*/
+
+/**
+ * Authorized file system operations:
+ *
+ * The Update Manager module included with Drupal provides a mechanism for
+ * site administrators to securely install missing updates for the site
+ * directly through the web user interface. On securely-configured servers,
+ * the Update manager will require the administrator to provide SSH or FTP
+ * credentials before allowing the installation to proceed; this allows the
+ * site to update the new files as the user who owns all the Drupal files,
+ * instead of as the user the webserver is running as. On servers where the
+ * webserver user is itself the owner of the Drupal files, the administrator
+ * will not be prompted for SSH or FTP credentials (note that these server
+ * setups are common on shared hosting, but are inherently insecure).
+ *
+ * Some sites might wish to disable the above functionality, and only update
+ * the code directly via SSH or FTP themselves. This setting completely
+ * disables all functionality related to these authorized file operations.
+ *
+ * @see http://drupal.org/node/244924
+ *
+ * Remove the leading hash signs to disable.
+ */
+# $settings['allow_authorize_operations'] = FALSE;
+
+/**
+ * Default mode for for directories and files written by Drupal.
+ *
+ * Value should be in PHP Octal Notation, with leading zero.
+ */
+# $settings['file_chmod_directory'] = 0775;
+# $settings['file_chmod_file'] = 0664;
+
+/**
+ * Public file path:
+ *
+ * A local file system path where public files will be stored. This directory
+ * must exist and be writable by Drupal. This directory must be relative to
+ * the Drupal installation directory and be accessible over the web.
+ */
+# $settings['file_public_path'] = 'sites/default/files';
+
+/**
+ * Private file path:
+ *
+ * A local file system path where private files will be stored. This directory
+ * must be absolute, outside of the Drupal installation directory and not
+ * accessible over the web.
+ *
+ * Note: Caches need to be cleared when this value is changed to make the
+ * private:// stream wrapper available to the system.
+ *
+ * See http://drupal.org/documentation/modules/file for more information about
+ * securing private files.
+ */
+# $settings['file_private_path'] = '';
+
+/**
+ * Session write interval:
+ *
+ * Set the minimum interval between each session write to database.
+ * For performance reasons it defaults to 180.
+ */
+# $settings['session_write_interval'] = 180;
+
+/**
+ * String overrides:
+ *
+ * To override specific strings on your site with or without enabling the Locale
+ * module, add an entry to this list. This functionality allows you to change
+ * a small number of your site's default English language interface strings.
+ *
+ * Remove the leading hash signs to enable.
+ *
+ * The "en" part of the variable name, is dynamic and can be any langcode of
+ * any added language. (eg locale_custom_strings_de for german).
+ */
+# $settings['locale_custom_strings_en'][''] = array(
+#   'forum'      => 'Discussion board',
+#   '@count min' => '@count minutes',
+# );
+
+/**
+ * A custom theme for the offline page:
+ *
+ * This applies when the site is explicitly set to maintenance mode through the
+ * administration page or when the database is inactive due to an error.
+ * The template file should also be copied into the theme. It is located inside
+ * 'core/modules/system/templates/maintenance-page.html.twig'.
+ *
+ * Note: This setting does not apply to installation and update pages.
+ */
+# $settings['maintenance_theme'] = 'bartik';
+
+/**
+ * Base URL (optional).
+ *
+ * If Drupal is generating incorrect URLs on your site, which could
+ * be in HTML headers (links to CSS and JS files) or visible links on pages
+ * (such as in menus), uncomment the Base URL statement below (remove the
+ * leading hash sign) and fill in the absolute URL to your Drupal installation.
+ *
+ * You might also want to force users to use a given domain.
+ * See the .htaccess file for more information.
+ *
+ * Examples:
+ *   $base_url = 'http://www.example.com';
+ *   $base_url = 'http://www.example.com:8888';
+ *   $base_url = 'http://www.example.com/drupal';
+ *   $base_url = 'https://www.example.com:8888/drupal';
+ *
+ * It is not allowed to have a trailing slash; Drupal will add it
+ * for you.
+ */
+# $base_url = 'http://www.example.com';  // NO trailing slash!
+
+/**
+ * PHP settings:
+ *
+ * To see what PHP settings are possible, including whether they can be set at
+ * runtime (by using ini_set()), read the PHP documentation:
+ * http://php.net/manual/ini.list.php
+ * See \Drupal\Core\DrupalKernel::bootEnvironment() for required runtime
+ * settings and the .htaccess file for non-runtime settings.
+ * Settings defined there should not be duplicated here so as to avoid conflict
+ * issues.
+ */
+
+/**
+ * If you encounter a situation where users post a large amount of text, and
+ * the result is stripped out upon viewing but can still be edited, Drupal's
+ * output filter may not have sufficient memory to process it.  If you
+ * experience this issue, you may wish to uncomment the following two lines
+ * and increase the limits of these variables.  For more information, see
+ * http://php.net/manual/pcre.configuration.php.
+ */
+# ini_set('pcre.backtrack_limit', 200000);
+# ini_set('pcre.recursion_limit', 200000);
+
+/**
+ * Active configuration settings.
+ *
+ * By default, the active configuration is stored in the database in the
+ * {config} table. To use a different storage mechanism for the active
+ * configuration, do the following prior to installing:
+ * - Override the 'bootstrap_config_storage' setting here. It must be set to a
+ *   callable that returns an object that implements
+ *   \Drupal\Core\Config\StorageInterface.
+ * - Override the service definition 'config.storage.active'. Put this
+ *   override in a services.yml file in the same directory as settings.php
+ *   (definitions in this file will override service definition defaults).
+ */
+# $settings['bootstrap_config_storage'] = array('Drupal\Core\Config\BootstrapConfigStorageFactory', 'getFileStorage');
+
+/**
+ * Configuration overrides.
+ *
+ * To globally override specific configuration values for this site,
+ * set them here. You usually don't need to use this feature. This is
+ * useful in a configuration file for a vhost or directory, rather than
+ * the default settings.php.
+ *
+ * Note that any values you provide in these variable overrides will not be
+ * viewable from the Drupal administration interface. The administration
+ * interface displays the values stored in configuration so that you can stage
+ * changes to other environments that don't have the overrides.
+ *
+ * There are particular configuration values that are risky to override. For
+ * example, overriding the list of installed modules in 'core.extension' is not
+ * supported as module install or uninstall has not occurred. Other examples
+ * include field storage configuration, because it has effects on database
+ * structure, and 'core.menu.static_menu_link_overrides' since this is cached in
+ * a way that is not config override aware. Also, note that changing
+ * configuration values in settings.php will not fire any of the configuration
+ * change events.
+ */
+# $config['system.site']['name'] = 'My Drupal site';
+# $config['system.theme']['default'] = 'stark';
+# $config['user.settings']['anonymous'] = 'Visitor';
+
+/**
+ * Fast 404 pages:
+ *
+ * Drupal can generate fully themed 404 pages. However, some of these responses
+ * are for images or other resource files that are not displayed to the user.
+ * This can waste bandwidth, and also generate server load.
+ *
+ * The options below return a simple, fast 404 page for URLs matching a
+ * specific pattern:
+ * - $conf['system.performance]['fast_404']['exclude_paths']: A regular
+ *   expression to match paths to exclude, such as images generated by image
+ *   styles, or dynamically-resized images. If you need to add more paths, you
+ *   can add '|path' to the expression.
+ * - $conf['system.performance]['fast_404']['paths']: A regular expression to
+ *   match paths that should return a simple 404 page, rather than the fully
+ *   themed 404 page. If you don't have any aliases ending in htm or html you
+ *   can add '|s?html?' to the expression.
+ * - $conf['system.performance]['fast_404']['html']: The html to return for
+ *   simple 404 pages.
+ *
+ * Remove the leading hash signs if you would like to alter this functionality.
+ */
+# $config['system.performance']['fast_404']['exclude_paths'] = '/\/(?:styles)\//';
+# $config['system.performance']['fast_404']['paths'] = '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i';
+# $config['system.performance']['fast_404']['html'] = '<!DOCTYPE html><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL "@path" was not found on this server.</p></body></html>';
+
+/**
+ * Load services definition file.
+ */
+$settings['container_yamls'][] = __DIR__ . '/services.yml';
+
+/**
+ * Trusted host configuration.
+ *
+ * Drupal core can use the Symfony trusted host mechanism to prevent HTTP Host
+ * header spoofing.
+ *
+ * To enable the trusted host mechanism, you enable your allowable hosts
+ * in $settings['trusted_host_patterns']. This should be an array of regular
+ * expression patterns, without delimiters, representing the hosts you would
+ * like to allow.
+ *
+ * For example:
+ * @code
+ * $settings['trusted_host_patterns'] = array(
+ *   '^www\.example\.com$',
+ * );
+ * @endcode
+ * will allow the site to only run from www.example.com.
+ *
+ * If you are running multisite, or if you are running your site from
+ * different domain names (eg, you don't redirect http://www.example.com to
+ * http://example.com), you should specify all of the host patterns that are
+ * allowed by your site.
+ *
+ * For example:
+ * @code
+ * $settings['trusted_host_patterns'] = array(
+ *   '^example\.com$',
+ *   '^.+\.example\.com$',
+ *   '^example\.org$',
+ *   '^.+\.example\.org$',
+ * );
+ * @endcode
+ * will allow the site to run off of all variants of example.com and
+ * example.org, with all subdomains included.
+ */
+
+/**
+ * Load local development override configuration, if available.
+ *
+ * Use settings.local.php to override variables on secondary (staging,
+ * development, etc) installations of this site. Typically used to disable
+ * caching, JavaScript/CSS compression, re-routing of outgoing emails, and
+ * other things that should not happen on development and testing sites.
+ *
+ * Keep this code block at the end of this file to take full effect.
+ */
+# if (file_exists(__DIR__ . '/settings.local.php')) {
+#   include __DIR__ . '/settings.local.php';
+# }
+$databases['default']['default'] = array (
+  'database' => 'dcontribute',
+  'username' => 'admin',
+  'password' => 'nasreen',
+  'prefix' => '',
+  'host' => 'localhost',
+  'port' => '3306',
+  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
+  'driver' => 'mysql',
+);
+$settings['install_profile'] = 'standard';
+$config_directories['active'] = 'sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/active';
+$config_directories['staging'] = 'sites/default/files/config_cqHWI7V45jYq6sroib8y-Tkqb2UhIxXQ_Am8-ZIlZXosX3OG6TMJrPDtgLK4OpfZwOMAbD0dtg/staging';
